diff --git a/.gitmodules b/.gitmodules index 00b2836e619b0418e55c4f87865ccf9c17c7724c..83f3b28090a345d806304d048bb1d4b355347e9c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,3 +5,6 @@ [submodule "ttcn/modules/titan.TestPorts.Common_Components.Abstract_Socket/module"] path = ttcn/modules/titan.TestPorts.Common_Components.Abstract_Socket/module url = https://gitlab.eclipse.org/eclipse/titan/titan.TestPorts.Common_Components.Abstract_Socket.git +[submodule "ttcn/LibCommon"] + path = ttcn/LibCommon + url = https://forge.etsi.org/rep/LIBS/LibCommon.git diff --git a/bin/Ats_NG_NAS b/bin/Ats_NG_NAS new file mode 100755 index 0000000000000000000000000000000000000000..8f4f09c5f2d457ccadb6aa613ab855f18b023d51 Binary files /dev/null and b/bin/Ats_NG_NAS differ diff --git a/build/Ats_NG_NAS/.generate b/build/Ats_NG_NAS/.generate new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/build/Ats_NG_NAS/Common4G5G.cc b/build/Ats_NG_NAS/Common4G5G.cc new file mode 100644 index 0000000000000000000000000000000000000000..8f195c44a72edab1fed263a2348754e7eb0538f0 --- /dev/null +++ b/build/Ats_NG_NAS/Common4G5G.cc @@ -0,0 +1,12353 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "Common4G5G.hh" + +namespace Common4G5G { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0x3d, 0x4d, 0xe1, 0xc3, 0x05, 0xa0, 0x43, 0x4b, 0xac, 0x3c, 0x3f, 0x7f, 0xd7, 0x0c, 0xe3, 0x2a }; + +/* Global variable definitions */ + +// No XER for NR__Configuration__Type +const TTCN_Typedescriptor_t NR__Configuration__Type_descr_ = { "@Common4G5G.NR_Configuration_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__TESTMODE__STATE__Type +const TTCN_Typedescriptor_t NR__TESTMODE__STATE__Type_descr_ = { "@Common4G5G.NR_TESTMODE_STATE_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ENDC__DRB__Configuration__Type +const TTCN_Typedescriptor_t ENDC__DRB__Configuration__Type_descr_ = { "@Common4G5G.ENDC_DRB_Configuration_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& ENDC__Bearer__Type_descr_ = ENDC__DRB__Configuration__Type_descr_; +// No XER for NEDC__DRB__Configuration__Type +const TTCN_Typedescriptor_t NEDC__DRB__Configuration__Type_descr_ = { "@Common4G5G.NEDC_DRB_Configuration_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__TestEnvironment__Type +const TTCN_Typedescriptor_t NR__TestEnvironment__Type_descr_ = { "@Common4G5G.NR_TestEnvironment_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ENDC__SRB__DRB__Configuration__Type +const TTCN_Typedescriptor_t ENDC__SRB__DRB__Configuration__Type_descr_ = { "@Common4G5G.ENDC_SRB_DRB_Configuration_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ENDC__BandCombination__Type +const TTCN_Typedescriptor_t ENDC__BandCombination__Type_descr_ = { "@Common4G5G.ENDC_BandCombination_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ENDC__CombinationType__Type +const TTCN_Typedescriptor_t ENDC__CombinationType__Type_descr_ = { "@Common4G5G.ENDC_CombinationType_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ENDC__CA__BandCombination__Type +const TTCN_Typedescriptor_t ENDC__CA__BandCombination__Type_descr_ = { "@Common4G5G.ENDC_CA_BandCombination_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__CA__BandCombination__Type +const TTCN_Typedescriptor_t NR__CA__BandCombination__Type_descr_ = { "@Common4G5G.NR_CA_BandCombination_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__CA__3CC__BandCombination__Type +const TTCN_Typedescriptor_t NR__CA__3CC__BandCombination__Type_descr_ = { "@Common4G5G.NR_CA_3CC_BandCombination_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__DC__BandCombination__Type +const TTCN_Typedescriptor_t NR__DC__BandCombination__Type_descr_ = { "@Common4G5G.NR_DC_BandCombination_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__DC__CA__BandCombination__Type +const TTCN_Typedescriptor_t NR__DC__CA__BandCombination__Type_descr_ = { "@Common4G5G.NR_DC_CA_BandCombination_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NEDC__CombinationType__Type +const TTCN_Typedescriptor_t NEDC__CombinationType__Type_descr_ = { "@Common4G5G.NEDC_CombinationType_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EUTRA__NR__PduSessionInfo__Type_PDU__SessionId_xer_ = { {"PDU_SessionId>\n", "PDU_SessionId>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EUTRA__NR__PduSessionInfo__Type_PDU__SessionId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_PDU__SessionId_descr_ = { "@Common4G5G.EUTRA_NR_PduSessionInfo_Type.PDU_SessionId", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &EUTRA__NR__PduSessionInfo__Type_PDU__SessionId_xer_, &INTEGER_json_, &EUTRA__NR__PduSessionInfo__Type_PDU__SessionId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EUTRA__NR__PduSessionInfo__Type_EPS__Bearer_xer_ = { {"EPS_Bearer>\n", "EPS_Bearer>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EUTRA__NR__PduSessionInfo__Type_EPS__Bearer_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_EPS__Bearer_descr_ = { "@Common4G5G.EUTRA_NR_PduSessionInfo_Type.EPS_Bearer", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &EUTRA__NR__PduSessionInfo__Type_EPS__Bearer_xer_, &INTEGER_json_, &EUTRA__NR__PduSessionInfo__Type_EPS__Bearer_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EUTRA__NR__PduSessionInfo__Type_IsIMS_xer_ = { {"IsIMS>\n", "IsIMS>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EUTRA__NR__PduSessionInfo__Type_IsIMS_oer_ext_arr_[0] = {}; +const int EUTRA__NR__PduSessionInfo__Type_IsIMS_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EUTRA__NR__PduSessionInfo__Type_IsIMS_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EUTRA__NR__PduSessionInfo__Type_IsIMS_oer_ext_arr_, 0, EUTRA__NR__PduSessionInfo__Type_IsIMS_oer_p_}; +const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_IsIMS_descr_ = { "@Common4G5G.EUTRA_NR_PduSessionInfo_Type.IsIMS", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &EUTRA__NR__PduSessionInfo__Type_IsIMS_xer_, &BOOLEAN_json_, &EUTRA__NR__PduSessionInfo__Type_IsIMS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EUTRA__NR__PduSessionInfo__Type +const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_descr_ = { "@Common4G5G.EUTRA_NR_PduSessionInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EUTRA__NR__PduSessionInfo__Type_QFI_xer_ = { {"QFI>\n", "QFI>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EUTRA__NR__PduSessionInfo__Type_QFI_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_QFI_descr_ = { "@Common4G5G.EUTRA_NR_PduSessionInfo_Type.QFI", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &EUTRA__NR__PduSessionInfo__Type_QFI_xer_, &INTEGER_json_, &EUTRA__NR__PduSessionInfo__Type_QFI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NEDC__BandCombination__Type +const TTCN_Typedescriptor_t NEDC__BandCombination__Type_descr_ = { "@Common4G5G.NEDC_BandCombination_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EUTRA__NR__PduSessionInfoList__Type +const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfoList__Type_descr_ = { "@Common4G5G.EUTRA_NR_PduSessionInfoList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &EUTRA__NR__PduSessionInfo__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__V2X__ConcurrentOperationBandCombination__Type +const TTCN_Typedescriptor_t NR__V2X__ConcurrentOperationBandCombination__Type_descr_ = { "@Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("Common4G5G", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_Common4G5G(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "ENDC_BandCombination_Type")) { + ((const ENDC__BandCombination__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ENDC_BandCombination_Type template")) { + ((const ENDC__BandCombination__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ENDC_CA_BandCombination_Type")) { + ((const ENDC__CA__BandCombination__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ENDC_CA_BandCombination_Type template")) { + ((const ENDC__CA__BandCombination__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ENDC_CombinationType_Type")) { + ((const ENDC__CombinationType__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ENDC_CombinationType_Type template")) { + ((const ENDC__CombinationType__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ENDC_DRB_Configuration_Type")) { + ((const ENDC__DRB__Configuration__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ENDC_DRB_Configuration_Type template")) { + ((const ENDC__DRB__Configuration__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ENDC_SRB_DRB_Configuration_Type")) { + ((const ENDC__SRB__DRB__Configuration__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ENDC_SRB_DRB_Configuration_Type template")) { + ((const ENDC__SRB__DRB__Configuration__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_NR_PduSessionInfoList_Type")) { + ((const EUTRA__NR__PduSessionInfoList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_NR_PduSessionInfoList_Type template")) { + ((const EUTRA__NR__PduSessionInfoList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_NR_PduSessionInfo_Type")) { + ((const EUTRA__NR__PduSessionInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_NR_PduSessionInfo_Type template")) { + ((const EUTRA__NR__PduSessionInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NEDC_BandCombination_Type")) { + ((const NEDC__BandCombination__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NEDC_BandCombination_Type template")) { + ((const NEDC__BandCombination__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NEDC_CombinationType_Type")) { + ((const NEDC__CombinationType__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NEDC_CombinationType_Type template")) { + ((const NEDC__CombinationType__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NEDC_DRB_Configuration_Type")) { + ((const NEDC__DRB__Configuration__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NEDC_DRB_Configuration_Type template")) { + ((const NEDC__DRB__Configuration__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CA_3CC_BandCombination_Type")) { + ((const NR__CA__3CC__BandCombination__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CA_3CC_BandCombination_Type template")) { + ((const NR__CA__3CC__BandCombination__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CA_BandCombination_Type")) { + ((const NR__CA__BandCombination__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CA_BandCombination_Type template")) { + ((const NR__CA__BandCombination__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_Configuration_Type")) { + ((const NR__Configuration__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_Configuration_Type template")) { + ((const NR__Configuration__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_DC_BandCombination_Type")) { + ((const NR__DC__BandCombination__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_DC_BandCombination_Type template")) { + ((const NR__DC__BandCombination__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_DC_CA_BandCombination_Type")) { + ((const NR__DC__CA__BandCombination__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_DC_CA_BandCombination_Type template")) { + ((const NR__DC__CA__BandCombination__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_TESTMODE_STATE_Type")) { + ((const NR__TESTMODE__STATE__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_TESTMODE_STATE_Type template")) { + ((const NR__TESTMODE__STATE__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_TestEnvironment_Type")) { + ((const NR__TestEnvironment__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_TestEnvironment_Type template")) { + ((const NR__TestEnvironment__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_V2X_ConcurrentOperationBandCombination_Type")) { + ((const NR__V2X__ConcurrentOperationBandCombination__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_V2X_ConcurrentOperationBandCombination_Type template")) { + ((const NR__V2X__ConcurrentOperationBandCombination__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_Common4G5G(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "ENDC_BandCombination_Type")) { + ((ENDC__BandCombination__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ENDC_BandCombination_Type template")) { + ((ENDC__BandCombination__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ENDC_CA_BandCombination_Type")) { + ((ENDC__CA__BandCombination__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ENDC_CA_BandCombination_Type template")) { + ((ENDC__CA__BandCombination__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ENDC_CombinationType_Type")) { + ((ENDC__CombinationType__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ENDC_CombinationType_Type template")) { + ((ENDC__CombinationType__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ENDC_DRB_Configuration_Type")) { + ((ENDC__DRB__Configuration__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ENDC_DRB_Configuration_Type template")) { + ((ENDC__DRB__Configuration__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ENDC_SRB_DRB_Configuration_Type")) { + ((ENDC__SRB__DRB__Configuration__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ENDC_SRB_DRB_Configuration_Type template")) { + ((ENDC__SRB__DRB__Configuration__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_NR_PduSessionInfoList_Type")) { + ((EUTRA__NR__PduSessionInfoList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_NR_PduSessionInfoList_Type template")) { + ((EUTRA__NR__PduSessionInfoList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_NR_PduSessionInfo_Type")) { + ((EUTRA__NR__PduSessionInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_NR_PduSessionInfo_Type template")) { + ((EUTRA__NR__PduSessionInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NEDC_BandCombination_Type")) { + ((NEDC__BandCombination__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NEDC_BandCombination_Type template")) { + ((NEDC__BandCombination__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NEDC_CombinationType_Type")) { + ((NEDC__CombinationType__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NEDC_CombinationType_Type template")) { + ((NEDC__CombinationType__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NEDC_DRB_Configuration_Type")) { + ((NEDC__DRB__Configuration__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NEDC_DRB_Configuration_Type template")) { + ((NEDC__DRB__Configuration__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CA_3CC_BandCombination_Type")) { + ((NR__CA__3CC__BandCombination__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CA_3CC_BandCombination_Type template")) { + ((NR__CA__3CC__BandCombination__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CA_BandCombination_Type")) { + ((NR__CA__BandCombination__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CA_BandCombination_Type template")) { + ((NR__CA__BandCombination__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_Configuration_Type")) { + ((NR__Configuration__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_Configuration_Type template")) { + ((NR__Configuration__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_DC_BandCombination_Type")) { + ((NR__DC__BandCombination__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_DC_BandCombination_Type template")) { + ((NR__DC__BandCombination__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_DC_CA_BandCombination_Type")) { + ((NR__DC__CA__BandCombination__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_DC_CA_BandCombination_Type template")) { + ((NR__DC__CA__BandCombination__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_TESTMODE_STATE_Type")) { + ((NR__TESTMODE__STATE__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_TESTMODE_STATE_Type template")) { + ((NR__TESTMODE__STATE__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_TestEnvironment_Type")) { + ((NR__TestEnvironment__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_TestEnvironment_Type template")) { + ((NR__TestEnvironment__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_V2X_ConcurrentOperationBandCombination_Type")) { + ((NR__V2X__ConcurrentOperationBandCombination__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_V2X_ConcurrentOperationBandCombination_Type template")) { + ((NR__V2X__ConcurrentOperationBandCombination__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("Common4G5G"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +NR__Configuration__Type::NR__Configuration__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NR__Configuration__Type::NR__Configuration__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NR_Configuration_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NR__Configuration__Type::NR__Configuration__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NR__Configuration__Type::NR__Configuration__Type(const NR__Configuration__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +enum_value = other_value.enum_value; +} + +NR__Configuration__Type& NR__Configuration__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NR_Configuration_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NR__Configuration__Type& NR__Configuration__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NR__Configuration__Type& NR__Configuration__Type::operator=(const NR__Configuration__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NR__Configuration__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +return enum_value == other_value; +} + +boolean NR__Configuration__Type::operator==(const NR__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +return enum_value == other_value.enum_value; +} + +boolean NR__Configuration__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +return enum_value < other_value; +} + +boolean NR__Configuration__Type::operator<(const NR__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +return enum_value < other_value.enum_value; +} + +boolean NR__Configuration__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +return enum_value > other_value; +} + +boolean NR__Configuration__Type::operator>(const NR__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +return enum_value > other_value.enum_value; +} + +const char *NR__Configuration__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case NR__SA: return "NR_SA"; +case EN__DC: return "EN_DC"; +case NE__DC: return "NE_DC"; +case NGE__SA: return "NGE_SA"; +case NGEN__DC: return "NGEN_DC"; +default: return ""; +} +} + +NR__Configuration__Type::enum_type NR__Configuration__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "NR_SA")) return NR__SA; +else if (!strcmp(str_par, "EN_DC")) return EN__DC; +else if (!strcmp(str_par, "NE_DC")) return NE__DC; +else if (!strcmp(str_par, "NGE_SA")) return NGE__SA; +else if (!strcmp(str_par, "NGEN_DC")) return NGEN__DC; +else return UNKNOWN_VALUE; +} + +boolean NR__Configuration__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +return TRUE; +default: +return FALSE; +} +} + +int NR__Configuration__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_Configuration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NR__Configuration__Type::enum2int(const NR__Configuration__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_Configuration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NR__Configuration__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NR_Configuration_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NR__Configuration__Type::operator NR__Configuration__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NR_Configuration_Type."); +return enum_value; +} + +boolean NR__Configuration__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NR__Configuration__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NR__Configuration__Type::clone() const { return new NR__Configuration__Type(*this); } +const TTCN_Typedescriptor_t* NR__Configuration__Type::get_descriptor() const { return &NR__Configuration__Type_descr_; } +void NR__Configuration__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NR__Configuration__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NR_Configuration_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_Configuration_Type."); + } +} + +Module_Param* NR__Configuration__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NR__Configuration__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +text_buf.push_int(enum_value); +} + +void NR__Configuration__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NR_Configuration_Type.", enum_value); +} + +void NR__Configuration__Type_template::copy_template(const NR__Configuration__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NR__Configuration__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NR__Configuration__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NR__Configuration__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NR_Configuration_Type."); +} +} + +NR__Configuration__Type_template::NR__Configuration__Type_template() +{ +} + +NR__Configuration__Type_template::NR__Configuration__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NR__Configuration__Type_template::NR__Configuration__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NR__Configuration__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NR_Configuration_Type with unknown numeric value %d.", other_value); +single_value = (NR__Configuration__Type::enum_type)other_value; +} + +NR__Configuration__Type_template::NR__Configuration__Type_template(NR__Configuration__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NR__Configuration__Type_template::NR__Configuration__Type_template(const NR__Configuration__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NR__Configuration__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NR_Configuration_Type."); +single_value = other_value.enum_value; +} + +NR__Configuration__Type_template::NR__Configuration__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__Configuration__Type::enum_type)(const NR__Configuration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NR_Configuration_Type from an unbound optional field."); +} +} + +NR__Configuration__Type_template::NR__Configuration__Type_template(NR__Configuration__Type_template* p_precondition, NR__Configuration__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NR__Configuration__Type_template::NR__Configuration__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NR__Configuration__Type_template::NR__Configuration__Type_template(const NR__Configuration__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NR__Configuration__Type_template::~NR__Configuration__Type_template() +{ +clean_up(); +} + +boolean NR__Configuration__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NR__Configuration__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NR__Configuration__Type::UNBOUND_VALUE; +} + +void NR__Configuration__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NR__Configuration__Type_template& NR__Configuration__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__Configuration__Type_template& NR__Configuration__Type_template::operator=(int other_value) +{ +if (!NR__Configuration__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NR_Configuration_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NR__Configuration__Type::enum_type)other_value; +return *this; +} + +NR__Configuration__Type_template& NR__Configuration__Type_template::operator=(NR__Configuration__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NR__Configuration__Type_template& NR__Configuration__Type_template::operator=(const NR__Configuration__Type& other_value) +{ +if (other_value.enum_value == NR__Configuration__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_Configuration_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NR__Configuration__Type_template& NR__Configuration__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__Configuration__Type::enum_type)(const NR__Configuration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NR_Configuration_Type."); +} +return *this; +} + +NR__Configuration__Type_template& NR__Configuration__Type_template::operator=(const NR__Configuration__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NR__Configuration__Type_template::match(NR__Configuration__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NR_Configuration_Type."); +} +return FALSE; +} + +boolean NR__Configuration__Type_template::match(const NR__Configuration__Type& other_value, boolean) const +{ +if (other_value.enum_value == NR__Configuration__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NR_Configuration_Type with an unbound value."); +return match(other_value.enum_value); +} + +NR__Configuration__Type::enum_type NR__Configuration__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NR_Configuration_Type."); +return single_value; +} + +void NR__Configuration__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NR_Configuration_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NR__Configuration__Type_template[list_length]; +} + +NR__Configuration__Type_template& NR__Configuration__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NR_Configuration_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NR_Configuration_Type."); +return value_list.list_value[list_index]; +} + +void NR__Configuration__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NR__Configuration__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NR__Configuration__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NR__Configuration__Type_template::clone() const { return new NR__Configuration__Type_template(*this); } +const TTCN_Typedescriptor_t* NR__Configuration__Type_template::get_descriptor() const { return &NR__Configuration__Type_descr_; } +boolean NR__Configuration__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NR__Configuration__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NR__Configuration__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NR__Configuration__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NR__Configuration__Type_template::log_match(const NR__Configuration__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NR__Configuration__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NR_Configuration_Type."); +} +} + +void NR__Configuration__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NR__Configuration__Type::enum_type)text_buf.pull_int().get_val(); +if (!NR__Configuration__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NR_Configuration_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NR__Configuration__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NR_Configuration_Type."); +} +} + +boolean NR__Configuration__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NR__Configuration__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NR__Configuration__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NR__Configuration__Type::enum_type enum_val = NR__Configuration__Type::str_to_enum(m_p->get_enumerated()); + if (!NR__Configuration__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_Configuration_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NR__Configuration__Type_template* precondition = new NR__Configuration__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NR__Configuration__Type_template* implied_template = new NR__Configuration__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NR__Configuration__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NR_Configuration_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NR__Configuration__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NR__Configuration__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NR__TESTMODE__STATE__Type::NR__TESTMODE__STATE__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NR__TESTMODE__STATE__Type::NR__TESTMODE__STATE__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NR__TESTMODE__STATE__Type::NR__TESTMODE__STATE__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NR__TESTMODE__STATE__Type::NR__TESTMODE__STATE__Type(const NR__TESTMODE__STATE__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +enum_value = other_value.enum_value; +} + +NR__TESTMODE__STATE__Type& NR__TESTMODE__STATE__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NR__TESTMODE__STATE__Type& NR__TESTMODE__STATE__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NR__TESTMODE__STATE__Type& NR__TESTMODE__STATE__Type::operator=(const NR__TESTMODE__STATE__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NR__TESTMODE__STATE__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +return enum_value == other_value; +} + +boolean NR__TESTMODE__STATE__Type::operator==(const NR__TESTMODE__STATE__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +return enum_value == other_value.enum_value; +} + +boolean NR__TESTMODE__STATE__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +return enum_value < other_value; +} + +boolean NR__TESTMODE__STATE__Type::operator<(const NR__TESTMODE__STATE__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +return enum_value < other_value.enum_value; +} + +boolean NR__TESTMODE__STATE__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +return enum_value > other_value; +} + +boolean NR__TESTMODE__STATE__Type::operator>(const NR__TESTMODE__STATE__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +return enum_value > other_value.enum_value; +} + +const char *NR__TESTMODE__STATE__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case TESTMode__OFF: return "TESTMode_OFF"; +case TESTModeA__ON: return "TESTModeA_ON"; +case TEST__LOOPModeA__ON: return "TEST_LOOPModeA_ON"; +case PING__Or__TESTModeB__ON: return "PING_Or_TESTModeB_ON"; +case TESTModeB__ON: return "TESTModeB_ON"; +case TEST__LOOPModeB__ON: return "TEST_LOOPModeB_ON"; +case PING__Or__TEST__LOOPModeB__ON: return "PING_Or_TEST_LOOPModeB_ON"; +case TESTModeE__ON: return "TESTModeE_ON"; +case TEST__LOOPModeE__ON: return "TEST_LOOPModeE_ON"; +default: return ""; +} +} + +NR__TESTMODE__STATE__Type::enum_type NR__TESTMODE__STATE__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "TESTMode_OFF")) return TESTMode__OFF; +else if (!strcmp(str_par, "TESTModeA_ON")) return TESTModeA__ON; +else if (!strcmp(str_par, "TEST_LOOPModeA_ON")) return TEST__LOOPModeA__ON; +else if (!strcmp(str_par, "PING_Or_TESTModeB_ON")) return PING__Or__TESTModeB__ON; +else if (!strcmp(str_par, "TESTModeB_ON")) return TESTModeB__ON; +else if (!strcmp(str_par, "TEST_LOOPModeB_ON")) return TEST__LOOPModeB__ON; +else if (!strcmp(str_par, "PING_Or_TEST_LOOPModeB_ON")) return PING__Or__TEST__LOOPModeB__ON; +else if (!strcmp(str_par, "TESTModeE_ON")) return TESTModeE__ON; +else if (!strcmp(str_par, "TEST_LOOPModeE_ON")) return TEST__LOOPModeE__ON; +else return UNKNOWN_VALUE; +} + +boolean NR__TESTMODE__STATE__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +case 8: +return TRUE; +default: +return FALSE; +} +} + +int NR__TESTMODE__STATE__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NR__TESTMODE__STATE__Type::enum2int(const NR__TESTMODE__STATE__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NR__TESTMODE__STATE__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NR__TESTMODE__STATE__Type::operator NR__TESTMODE__STATE__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +return enum_value; +} + +boolean NR__TESTMODE__STATE__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NR__TESTMODE__STATE__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NR__TESTMODE__STATE__Type::clone() const { return new NR__TESTMODE__STATE__Type(*this); } +const TTCN_Typedescriptor_t* NR__TESTMODE__STATE__Type::get_descriptor() const { return &NR__TESTMODE__STATE__Type_descr_; } +void NR__TESTMODE__STATE__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NR__TESTMODE__STATE__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NR_TESTMODE_STATE_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_TESTMODE_STATE_Type."); + } +} + +Module_Param* NR__TESTMODE__STATE__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NR__TESTMODE__STATE__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +text_buf.push_int(enum_value); +} + +void NR__TESTMODE__STATE__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NR_TESTMODE_STATE_Type.", enum_value); +} + +void NR__TESTMODE__STATE__Type_template::copy_template(const NR__TESTMODE__STATE__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NR__TESTMODE__STATE__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NR__TESTMODE__STATE__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NR__TESTMODE__STATE__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +} +} + +NR__TESTMODE__STATE__Type_template::NR__TESTMODE__STATE__Type_template() +{ +} + +NR__TESTMODE__STATE__Type_template::NR__TESTMODE__STATE__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NR__TESTMODE__STATE__Type_template::NR__TESTMODE__STATE__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NR__TESTMODE__STATE__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type with unknown numeric value %d.", other_value); +single_value = (NR__TESTMODE__STATE__Type::enum_type)other_value; +} + +NR__TESTMODE__STATE__Type_template::NR__TESTMODE__STATE__Type_template(NR__TESTMODE__STATE__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NR__TESTMODE__STATE__Type_template::NR__TESTMODE__STATE__Type_template(const NR__TESTMODE__STATE__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NR__TESTMODE__STATE__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +single_value = other_value.enum_value; +} + +NR__TESTMODE__STATE__Type_template::NR__TESTMODE__STATE__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__TESTMODE__STATE__Type::enum_type)(const NR__TESTMODE__STATE__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type from an unbound optional field."); +} +} + +NR__TESTMODE__STATE__Type_template::NR__TESTMODE__STATE__Type_template(NR__TESTMODE__STATE__Type_template* p_precondition, NR__TESTMODE__STATE__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NR__TESTMODE__STATE__Type_template::NR__TESTMODE__STATE__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NR__TESTMODE__STATE__Type_template::NR__TESTMODE__STATE__Type_template(const NR__TESTMODE__STATE__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NR__TESTMODE__STATE__Type_template::~NR__TESTMODE__STATE__Type_template() +{ +clean_up(); +} + +boolean NR__TESTMODE__STATE__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NR__TESTMODE__STATE__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NR__TESTMODE__STATE__Type::UNBOUND_VALUE; +} + +void NR__TESTMODE__STATE__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NR__TESTMODE__STATE__Type_template& NR__TESTMODE__STATE__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__TESTMODE__STATE__Type_template& NR__TESTMODE__STATE__Type_template::operator=(int other_value) +{ +if (!NR__TESTMODE__STATE__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NR__TESTMODE__STATE__Type::enum_type)other_value; +return *this; +} + +NR__TESTMODE__STATE__Type_template& NR__TESTMODE__STATE__Type_template::operator=(NR__TESTMODE__STATE__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NR__TESTMODE__STATE__Type_template& NR__TESTMODE__STATE__Type_template::operator=(const NR__TESTMODE__STATE__Type& other_value) +{ +if (other_value.enum_value == NR__TESTMODE__STATE__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NR__TESTMODE__STATE__Type_template& NR__TESTMODE__STATE__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__TESTMODE__STATE__Type::enum_type)(const NR__TESTMODE__STATE__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +} +return *this; +} + +NR__TESTMODE__STATE__Type_template& NR__TESTMODE__STATE__Type_template::operator=(const NR__TESTMODE__STATE__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NR__TESTMODE__STATE__Type_template::match(NR__TESTMODE__STATE__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +} +return FALSE; +} + +boolean NR__TESTMODE__STATE__Type_template::match(const NR__TESTMODE__STATE__Type& other_value, boolean) const +{ +if (other_value.enum_value == NR__TESTMODE__STATE__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type with an unbound value."); +return match(other_value.enum_value); +} + +NR__TESTMODE__STATE__Type::enum_type NR__TESTMODE__STATE__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +return single_value; +} + +void NR__TESTMODE__STATE__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NR__TESTMODE__STATE__Type_template[list_length]; +} + +NR__TESTMODE__STATE__Type_template& NR__TESTMODE__STATE__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +return value_list.list_value[list_index]; +} + +void NR__TESTMODE__STATE__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NR__TESTMODE__STATE__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NR__TESTMODE__STATE__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NR__TESTMODE__STATE__Type_template::clone() const { return new NR__TESTMODE__STATE__Type_template(*this); } +const TTCN_Typedescriptor_t* NR__TESTMODE__STATE__Type_template::get_descriptor() const { return &NR__TESTMODE__STATE__Type_descr_; } +boolean NR__TESTMODE__STATE__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NR__TESTMODE__STATE__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NR__TESTMODE__STATE__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NR__TESTMODE__STATE__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NR__TESTMODE__STATE__Type_template::log_match(const NR__TESTMODE__STATE__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NR__TESTMODE__STATE__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +} +} + +void NR__TESTMODE__STATE__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NR__TESTMODE__STATE__Type::enum_type)text_buf.pull_int().get_val(); +if (!NR__TESTMODE__STATE__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NR__TESTMODE__STATE__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NR_TESTMODE_STATE_Type."); +} +} + +boolean NR__TESTMODE__STATE__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NR__TESTMODE__STATE__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NR__TESTMODE__STATE__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NR__TESTMODE__STATE__Type::enum_type enum_val = NR__TESTMODE__STATE__Type::str_to_enum(m_p->get_enumerated()); + if (!NR__TESTMODE__STATE__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_TESTMODE_STATE_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NR__TESTMODE__STATE__Type_template* precondition = new NR__TESTMODE__STATE__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NR__TESTMODE__STATE__Type_template* implied_template = new NR__TESTMODE__STATE__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NR__TESTMODE__STATE__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NR_TESTMODE_STATE_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NR__TESTMODE__STATE__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NR__TESTMODE__STATE__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +ENDC__DRB__Configuration__Type::ENDC__DRB__Configuration__Type() +{ +enum_value = UNBOUND_VALUE; +} + +ENDC__DRB__Configuration__Type::ENDC__DRB__Configuration__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +ENDC__DRB__Configuration__Type::ENDC__DRB__Configuration__Type(enum_type other_value) +{ +enum_value = other_value; +} + +ENDC__DRB__Configuration__Type::ENDC__DRB__Configuration__Type(const ENDC__DRB__Configuration__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +enum_value = other_value.enum_value; +} + +ENDC__DRB__Configuration__Type& ENDC__DRB__Configuration__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +ENDC__DRB__Configuration__Type& ENDC__DRB__Configuration__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +ENDC__DRB__Configuration__Type& ENDC__DRB__Configuration__Type::operator=(const ENDC__DRB__Configuration__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean ENDC__DRB__Configuration__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +return enum_value == other_value; +} + +boolean ENDC__DRB__Configuration__Type::operator==(const ENDC__DRB__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +return enum_value == other_value.enum_value; +} + +boolean ENDC__DRB__Configuration__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +return enum_value < other_value; +} + +boolean ENDC__DRB__Configuration__Type::operator<(const ENDC__DRB__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +return enum_value < other_value.enum_value; +} + +boolean ENDC__DRB__Configuration__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +return enum_value > other_value; +} + +boolean ENDC__DRB__Configuration__Type::operator>(const ENDC__DRB__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +return enum_value > other_value.enum_value; +} + +const char *ENDC__DRB__Configuration__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case MCG__Only: return "MCG_Only"; +case MCG__SCG: return "MCG_SCG"; +case MCG__Split: return "MCG_Split"; +case RBConfig__Only: return "RBConfig_Only"; +case SCG__RBConfig: return "SCG_RBConfig"; +case Meas__SCGOnly: return "Meas_SCGOnly"; +default: return ""; +} +} + +ENDC__DRB__Configuration__Type::enum_type ENDC__DRB__Configuration__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "MCG_Only")) return MCG__Only; +else if (!strcmp(str_par, "MCG_SCG")) return MCG__SCG; +else if (!strcmp(str_par, "MCG_Split")) return MCG__Split; +else if (!strcmp(str_par, "RBConfig_Only")) return RBConfig__Only; +else if (!strcmp(str_par, "SCG_RBConfig")) return SCG__RBConfig; +else if (!strcmp(str_par, "Meas_SCGOnly")) return Meas__SCGOnly; +else return UNKNOWN_VALUE; +} + +boolean ENDC__DRB__Configuration__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +return TRUE; +default: +return FALSE; +} +} + +int ENDC__DRB__Configuration__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int ENDC__DRB__Configuration__Type::enum2int(const ENDC__DRB__Configuration__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void ENDC__DRB__Configuration__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type.", int_val); +enum_value = (enum_type)int_val; +} + +ENDC__DRB__Configuration__Type::operator ENDC__DRB__Configuration__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +return enum_value; +} + +boolean ENDC__DRB__Configuration__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void ENDC__DRB__Configuration__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* ENDC__DRB__Configuration__Type::clone() const { return new ENDC__DRB__Configuration__Type(*this); } +const TTCN_Typedescriptor_t* ENDC__DRB__Configuration__Type::get_descriptor() const { return &ENDC__DRB__Configuration__Type_descr_; } +void ENDC__DRB__Configuration__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void ENDC__DRB__Configuration__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.ENDC_DRB_Configuration_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_DRB_Configuration_Type."); + } +} + +Module_Param* ENDC__DRB__Configuration__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void ENDC__DRB__Configuration__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +text_buf.push_int(enum_value); +} + +void ENDC__DRB__Configuration__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.ENDC_DRB_Configuration_Type.", enum_value); +} + +void ENDC__DRB__Configuration__Type_template::copy_template(const ENDC__DRB__Configuration__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new ENDC__DRB__Configuration__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new ENDC__DRB__Configuration__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new ENDC__DRB__Configuration__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +} +} + +ENDC__DRB__Configuration__Type_template::ENDC__DRB__Configuration__Type_template() +{ +} + +ENDC__DRB__Configuration__Type_template::ENDC__DRB__Configuration__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +ENDC__DRB__Configuration__Type_template::ENDC__DRB__Configuration__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!ENDC__DRB__Configuration__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type with unknown numeric value %d.", other_value); +single_value = (ENDC__DRB__Configuration__Type::enum_type)other_value; +} + +ENDC__DRB__Configuration__Type_template::ENDC__DRB__Configuration__Type_template(ENDC__DRB__Configuration__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +ENDC__DRB__Configuration__Type_template::ENDC__DRB__Configuration__Type_template(const ENDC__DRB__Configuration__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == ENDC__DRB__Configuration__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +single_value = other_value.enum_value; +} + +ENDC__DRB__Configuration__Type_template::ENDC__DRB__Configuration__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__DRB__Configuration__Type::enum_type)(const ENDC__DRB__Configuration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type from an unbound optional field."); +} +} + +ENDC__DRB__Configuration__Type_template::ENDC__DRB__Configuration__Type_template(ENDC__DRB__Configuration__Type_template* p_precondition, ENDC__DRB__Configuration__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +ENDC__DRB__Configuration__Type_template::ENDC__DRB__Configuration__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +ENDC__DRB__Configuration__Type_template::ENDC__DRB__Configuration__Type_template(const ENDC__DRB__Configuration__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +ENDC__DRB__Configuration__Type_template::~ENDC__DRB__Configuration__Type_template() +{ +clean_up(); +} + +boolean ENDC__DRB__Configuration__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean ENDC__DRB__Configuration__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != ENDC__DRB__Configuration__Type::UNBOUND_VALUE; +} + +void ENDC__DRB__Configuration__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +ENDC__DRB__Configuration__Type_template& ENDC__DRB__Configuration__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ENDC__DRB__Configuration__Type_template& ENDC__DRB__Configuration__Type_template::operator=(int other_value) +{ +if (!ENDC__DRB__Configuration__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__DRB__Configuration__Type::enum_type)other_value; +return *this; +} + +ENDC__DRB__Configuration__Type_template& ENDC__DRB__Configuration__Type_template::operator=(ENDC__DRB__Configuration__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +ENDC__DRB__Configuration__Type_template& ENDC__DRB__Configuration__Type_template::operator=(const ENDC__DRB__Configuration__Type& other_value) +{ +if (other_value.enum_value == ENDC__DRB__Configuration__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +ENDC__DRB__Configuration__Type_template& ENDC__DRB__Configuration__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__DRB__Configuration__Type::enum_type)(const ENDC__DRB__Configuration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +} +return *this; +} + +ENDC__DRB__Configuration__Type_template& ENDC__DRB__Configuration__Type_template::operator=(const ENDC__DRB__Configuration__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean ENDC__DRB__Configuration__Type_template::match(ENDC__DRB__Configuration__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +} +return FALSE; +} + +boolean ENDC__DRB__Configuration__Type_template::match(const ENDC__DRB__Configuration__Type& other_value, boolean) const +{ +if (other_value.enum_value == ENDC__DRB__Configuration__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type with an unbound value."); +return match(other_value.enum_value); +} + +ENDC__DRB__Configuration__Type::enum_type ENDC__DRB__Configuration__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +return single_value; +} + +void ENDC__DRB__Configuration__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new ENDC__DRB__Configuration__Type_template[list_length]; +} + +ENDC__DRB__Configuration__Type_template& ENDC__DRB__Configuration__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +return value_list.list_value[list_index]; +} + +void ENDC__DRB__Configuration__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void ENDC__DRB__Configuration__Type_template::set_value(template_sel other_value) { *this = other_value; } +void ENDC__DRB__Configuration__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* ENDC__DRB__Configuration__Type_template::clone() const { return new ENDC__DRB__Configuration__Type_template(*this); } +const TTCN_Typedescriptor_t* ENDC__DRB__Configuration__Type_template::get_descriptor() const { return &ENDC__DRB__Configuration__Type_descr_; } +boolean ENDC__DRB__Configuration__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void ENDC__DRB__Configuration__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void ENDC__DRB__Configuration__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(ENDC__DRB__Configuration__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void ENDC__DRB__Configuration__Type_template::log_match(const ENDC__DRB__Configuration__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void ENDC__DRB__Configuration__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +} +} + +void ENDC__DRB__Configuration__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (ENDC__DRB__Configuration__Type::enum_type)text_buf.pull_int().get_val(); +if (!ENDC__DRB__Configuration__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new ENDC__DRB__Configuration__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.ENDC_DRB_Configuration_Type."); +} +} + +boolean ENDC__DRB__Configuration__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean ENDC__DRB__Configuration__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + ENDC__DRB__Configuration__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + ENDC__DRB__Configuration__Type::enum_type enum_val = ENDC__DRB__Configuration__Type::str_to_enum(m_p->get_enumerated()); + if (!ENDC__DRB__Configuration__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_DRB_Configuration_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + ENDC__DRB__Configuration__Type_template* precondition = new ENDC__DRB__Configuration__Type_template; + precondition->set_param(*m_p->get_elem(0)); + ENDC__DRB__Configuration__Type_template* implied_template = new ENDC__DRB__Configuration__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = ENDC__DRB__Configuration__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.ENDC_DRB_Configuration_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* ENDC__DRB__Configuration__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(ENDC__DRB__Configuration__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NEDC__DRB__Configuration__Type::NEDC__DRB__Configuration__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NEDC__DRB__Configuration__Type::NEDC__DRB__Configuration__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NEDC__DRB__Configuration__Type::NEDC__DRB__Configuration__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NEDC__DRB__Configuration__Type::NEDC__DRB__Configuration__Type(const NEDC__DRB__Configuration__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +enum_value = other_value.enum_value; +} + +NEDC__DRB__Configuration__Type& NEDC__DRB__Configuration__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NEDC__DRB__Configuration__Type& NEDC__DRB__Configuration__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NEDC__DRB__Configuration__Type& NEDC__DRB__Configuration__Type::operator=(const NEDC__DRB__Configuration__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NEDC__DRB__Configuration__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +return enum_value == other_value; +} + +boolean NEDC__DRB__Configuration__Type::operator==(const NEDC__DRB__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +return enum_value == other_value.enum_value; +} + +boolean NEDC__DRB__Configuration__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +return enum_value < other_value; +} + +boolean NEDC__DRB__Configuration__Type::operator<(const NEDC__DRB__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +return enum_value < other_value.enum_value; +} + +boolean NEDC__DRB__Configuration__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +return enum_value > other_value; +} + +boolean NEDC__DRB__Configuration__Type::operator>(const NEDC__DRB__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +return enum_value > other_value.enum_value; +} + +const char *NEDC__DRB__Configuration__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case MCG__SCG: return "MCG_SCG"; +case MCG__Split: return "MCG_Split"; +case MCG__SCG__MNTerminated: return "MCG_SCG_MNTerminated"; +case MCG__Split__MNTerminated: return "MCG_Split_MNTerminated"; +case MCG__SCG__OnNR: return "MCG_SCG_OnNR"; +case MCG__SplitOnNR: return "MCG_SplitOnNR"; +default: return ""; +} +} + +NEDC__DRB__Configuration__Type::enum_type NEDC__DRB__Configuration__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "MCG_SCG")) return MCG__SCG; +else if (!strcmp(str_par, "MCG_Split")) return MCG__Split; +else if (!strcmp(str_par, "MCG_SCG_MNTerminated")) return MCG__SCG__MNTerminated; +else if (!strcmp(str_par, "MCG_Split_MNTerminated")) return MCG__Split__MNTerminated; +else if (!strcmp(str_par, "MCG_SCG_OnNR")) return MCG__SCG__OnNR; +else if (!strcmp(str_par, "MCG_SplitOnNR")) return MCG__SplitOnNR; +else return UNKNOWN_VALUE; +} + +boolean NEDC__DRB__Configuration__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +return TRUE; +default: +return FALSE; +} +} + +int NEDC__DRB__Configuration__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NEDC__DRB__Configuration__Type::enum2int(const NEDC__DRB__Configuration__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NEDC__DRB__Configuration__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NEDC__DRB__Configuration__Type::operator NEDC__DRB__Configuration__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +return enum_value; +} + +boolean NEDC__DRB__Configuration__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NEDC__DRB__Configuration__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NEDC__DRB__Configuration__Type::clone() const { return new NEDC__DRB__Configuration__Type(*this); } +const TTCN_Typedescriptor_t* NEDC__DRB__Configuration__Type::get_descriptor() const { return &NEDC__DRB__Configuration__Type_descr_; } +void NEDC__DRB__Configuration__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NEDC__DRB__Configuration__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NEDC_DRB_Configuration_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NEDC_DRB_Configuration_Type."); + } +} + +Module_Param* NEDC__DRB__Configuration__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NEDC__DRB__Configuration__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +text_buf.push_int(enum_value); +} + +void NEDC__DRB__Configuration__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NEDC_DRB_Configuration_Type.", enum_value); +} + +void NEDC__DRB__Configuration__Type_template::copy_template(const NEDC__DRB__Configuration__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NEDC__DRB__Configuration__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NEDC__DRB__Configuration__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NEDC__DRB__Configuration__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +} +} + +NEDC__DRB__Configuration__Type_template::NEDC__DRB__Configuration__Type_template() +{ +} + +NEDC__DRB__Configuration__Type_template::NEDC__DRB__Configuration__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NEDC__DRB__Configuration__Type_template::NEDC__DRB__Configuration__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NEDC__DRB__Configuration__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type with unknown numeric value %d.", other_value); +single_value = (NEDC__DRB__Configuration__Type::enum_type)other_value; +} + +NEDC__DRB__Configuration__Type_template::NEDC__DRB__Configuration__Type_template(NEDC__DRB__Configuration__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NEDC__DRB__Configuration__Type_template::NEDC__DRB__Configuration__Type_template(const NEDC__DRB__Configuration__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NEDC__DRB__Configuration__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +single_value = other_value.enum_value; +} + +NEDC__DRB__Configuration__Type_template::NEDC__DRB__Configuration__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NEDC__DRB__Configuration__Type::enum_type)(const NEDC__DRB__Configuration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type from an unbound optional field."); +} +} + +NEDC__DRB__Configuration__Type_template::NEDC__DRB__Configuration__Type_template(NEDC__DRB__Configuration__Type_template* p_precondition, NEDC__DRB__Configuration__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NEDC__DRB__Configuration__Type_template::NEDC__DRB__Configuration__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NEDC__DRB__Configuration__Type_template::NEDC__DRB__Configuration__Type_template(const NEDC__DRB__Configuration__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NEDC__DRB__Configuration__Type_template::~NEDC__DRB__Configuration__Type_template() +{ +clean_up(); +} + +boolean NEDC__DRB__Configuration__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NEDC__DRB__Configuration__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NEDC__DRB__Configuration__Type::UNBOUND_VALUE; +} + +void NEDC__DRB__Configuration__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NEDC__DRB__Configuration__Type_template& NEDC__DRB__Configuration__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NEDC__DRB__Configuration__Type_template& NEDC__DRB__Configuration__Type_template::operator=(int other_value) +{ +if (!NEDC__DRB__Configuration__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NEDC__DRB__Configuration__Type::enum_type)other_value; +return *this; +} + +NEDC__DRB__Configuration__Type_template& NEDC__DRB__Configuration__Type_template::operator=(NEDC__DRB__Configuration__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NEDC__DRB__Configuration__Type_template& NEDC__DRB__Configuration__Type_template::operator=(const NEDC__DRB__Configuration__Type& other_value) +{ +if (other_value.enum_value == NEDC__DRB__Configuration__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NEDC__DRB__Configuration__Type_template& NEDC__DRB__Configuration__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NEDC__DRB__Configuration__Type::enum_type)(const NEDC__DRB__Configuration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +} +return *this; +} + +NEDC__DRB__Configuration__Type_template& NEDC__DRB__Configuration__Type_template::operator=(const NEDC__DRB__Configuration__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NEDC__DRB__Configuration__Type_template::match(NEDC__DRB__Configuration__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +} +return FALSE; +} + +boolean NEDC__DRB__Configuration__Type_template::match(const NEDC__DRB__Configuration__Type& other_value, boolean) const +{ +if (other_value.enum_value == NEDC__DRB__Configuration__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type with an unbound value."); +return match(other_value.enum_value); +} + +NEDC__DRB__Configuration__Type::enum_type NEDC__DRB__Configuration__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +return single_value; +} + +void NEDC__DRB__Configuration__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NEDC__DRB__Configuration__Type_template[list_length]; +} + +NEDC__DRB__Configuration__Type_template& NEDC__DRB__Configuration__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +return value_list.list_value[list_index]; +} + +void NEDC__DRB__Configuration__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NEDC__DRB__Configuration__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NEDC__DRB__Configuration__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NEDC__DRB__Configuration__Type_template::clone() const { return new NEDC__DRB__Configuration__Type_template(*this); } +const TTCN_Typedescriptor_t* NEDC__DRB__Configuration__Type_template::get_descriptor() const { return &NEDC__DRB__Configuration__Type_descr_; } +boolean NEDC__DRB__Configuration__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NEDC__DRB__Configuration__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NEDC__DRB__Configuration__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NEDC__DRB__Configuration__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NEDC__DRB__Configuration__Type_template::log_match(const NEDC__DRB__Configuration__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NEDC__DRB__Configuration__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +} +} + +void NEDC__DRB__Configuration__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NEDC__DRB__Configuration__Type::enum_type)text_buf.pull_int().get_val(); +if (!NEDC__DRB__Configuration__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NEDC__DRB__Configuration__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NEDC_DRB_Configuration_Type."); +} +} + +boolean NEDC__DRB__Configuration__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NEDC__DRB__Configuration__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NEDC__DRB__Configuration__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NEDC__DRB__Configuration__Type::enum_type enum_val = NEDC__DRB__Configuration__Type::str_to_enum(m_p->get_enumerated()); + if (!NEDC__DRB__Configuration__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NEDC_DRB_Configuration_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NEDC__DRB__Configuration__Type_template* precondition = new NEDC__DRB__Configuration__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NEDC__DRB__Configuration__Type_template* implied_template = new NEDC__DRB__Configuration__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NEDC__DRB__Configuration__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NEDC_DRB_Configuration_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NEDC__DRB__Configuration__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NEDC__DRB__Configuration__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NR__TestEnvironment__Type::NR__TestEnvironment__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NR__TestEnvironment__Type::NR__TestEnvironment__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NR_TestEnvironment_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NR__TestEnvironment__Type::NR__TestEnvironment__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NR__TestEnvironment__Type::NR__TestEnvironment__Type(const NR__TestEnvironment__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +enum_value = other_value.enum_value; +} + +NR__TestEnvironment__Type& NR__TestEnvironment__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NR_TestEnvironment_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NR__TestEnvironment__Type& NR__TestEnvironment__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NR__TestEnvironment__Type& NR__TestEnvironment__Type::operator=(const NR__TestEnvironment__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NR__TestEnvironment__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +return enum_value == other_value; +} + +boolean NR__TestEnvironment__Type::operator==(const NR__TestEnvironment__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +return enum_value == other_value.enum_value; +} + +boolean NR__TestEnvironment__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +return enum_value < other_value; +} + +boolean NR__TestEnvironment__Type::operator<(const NR__TestEnvironment__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +return enum_value < other_value.enum_value; +} + +boolean NR__TestEnvironment__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +return enum_value > other_value; +} + +boolean NR__TestEnvironment__Type::operator>(const NR__TestEnvironment__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +return enum_value > other_value.enum_value; +} + +const char *NR__TestEnvironment__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case Conducted: return "Conducted"; +case OTA: return "OTA"; +default: return ""; +} +} + +NR__TestEnvironment__Type::enum_type NR__TestEnvironment__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "Conducted")) return Conducted; +else if (!strcmp(str_par, "OTA")) return OTA; +else return UNKNOWN_VALUE; +} + +boolean NR__TestEnvironment__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int NR__TestEnvironment__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_TestEnvironment_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NR__TestEnvironment__Type::enum2int(const NR__TestEnvironment__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_TestEnvironment_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NR__TestEnvironment__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NR_TestEnvironment_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NR__TestEnvironment__Type::operator NR__TestEnvironment__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +return enum_value; +} + +boolean NR__TestEnvironment__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NR__TestEnvironment__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NR__TestEnvironment__Type::clone() const { return new NR__TestEnvironment__Type(*this); } +const TTCN_Typedescriptor_t* NR__TestEnvironment__Type::get_descriptor() const { return &NR__TestEnvironment__Type_descr_; } +void NR__TestEnvironment__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NR__TestEnvironment__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NR_TestEnvironment_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_TestEnvironment_Type."); + } +} + +Module_Param* NR__TestEnvironment__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NR__TestEnvironment__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +text_buf.push_int(enum_value); +} + +void NR__TestEnvironment__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NR_TestEnvironment_Type.", enum_value); +} + +void NR__TestEnvironment__Type_template::copy_template(const NR__TestEnvironment__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NR__TestEnvironment__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NR__TestEnvironment__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NR__TestEnvironment__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +} +} + +NR__TestEnvironment__Type_template::NR__TestEnvironment__Type_template() +{ +} + +NR__TestEnvironment__Type_template::NR__TestEnvironment__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NR__TestEnvironment__Type_template::NR__TestEnvironment__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NR__TestEnvironment__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NR_TestEnvironment_Type with unknown numeric value %d.", other_value); +single_value = (NR__TestEnvironment__Type::enum_type)other_value; +} + +NR__TestEnvironment__Type_template::NR__TestEnvironment__Type_template(NR__TestEnvironment__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NR__TestEnvironment__Type_template::NR__TestEnvironment__Type_template(const NR__TestEnvironment__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NR__TestEnvironment__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +single_value = other_value.enum_value; +} + +NR__TestEnvironment__Type_template::NR__TestEnvironment__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__TestEnvironment__Type::enum_type)(const NR__TestEnvironment__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NR_TestEnvironment_Type from an unbound optional field."); +} +} + +NR__TestEnvironment__Type_template::NR__TestEnvironment__Type_template(NR__TestEnvironment__Type_template* p_precondition, NR__TestEnvironment__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NR__TestEnvironment__Type_template::NR__TestEnvironment__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NR__TestEnvironment__Type_template::NR__TestEnvironment__Type_template(const NR__TestEnvironment__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NR__TestEnvironment__Type_template::~NR__TestEnvironment__Type_template() +{ +clean_up(); +} + +boolean NR__TestEnvironment__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NR__TestEnvironment__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NR__TestEnvironment__Type::UNBOUND_VALUE; +} + +void NR__TestEnvironment__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NR__TestEnvironment__Type_template& NR__TestEnvironment__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__TestEnvironment__Type_template& NR__TestEnvironment__Type_template::operator=(int other_value) +{ +if (!NR__TestEnvironment__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NR_TestEnvironment_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NR__TestEnvironment__Type::enum_type)other_value; +return *this; +} + +NR__TestEnvironment__Type_template& NR__TestEnvironment__Type_template::operator=(NR__TestEnvironment__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NR__TestEnvironment__Type_template& NR__TestEnvironment__Type_template::operator=(const NR__TestEnvironment__Type& other_value) +{ +if (other_value.enum_value == NR__TestEnvironment__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_TestEnvironment_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NR__TestEnvironment__Type_template& NR__TestEnvironment__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__TestEnvironment__Type::enum_type)(const NR__TestEnvironment__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +} +return *this; +} + +NR__TestEnvironment__Type_template& NR__TestEnvironment__Type_template::operator=(const NR__TestEnvironment__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NR__TestEnvironment__Type_template::match(NR__TestEnvironment__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +} +return FALSE; +} + +boolean NR__TestEnvironment__Type_template::match(const NR__TestEnvironment__Type& other_value, boolean) const +{ +if (other_value.enum_value == NR__TestEnvironment__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NR_TestEnvironment_Type with an unbound value."); +return match(other_value.enum_value); +} + +NR__TestEnvironment__Type::enum_type NR__TestEnvironment__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +return single_value; +} + +void NR__TestEnvironment__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NR__TestEnvironment__Type_template[list_length]; +} + +NR__TestEnvironment__Type_template& NR__TestEnvironment__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +return value_list.list_value[list_index]; +} + +void NR__TestEnvironment__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NR__TestEnvironment__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NR__TestEnvironment__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NR__TestEnvironment__Type_template::clone() const { return new NR__TestEnvironment__Type_template(*this); } +const TTCN_Typedescriptor_t* NR__TestEnvironment__Type_template::get_descriptor() const { return &NR__TestEnvironment__Type_descr_; } +boolean NR__TestEnvironment__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NR__TestEnvironment__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NR__TestEnvironment__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NR__TestEnvironment__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NR__TestEnvironment__Type_template::log_match(const NR__TestEnvironment__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NR__TestEnvironment__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +} +} + +void NR__TestEnvironment__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NR__TestEnvironment__Type::enum_type)text_buf.pull_int().get_val(); +if (!NR__TestEnvironment__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NR_TestEnvironment_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NR__TestEnvironment__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NR_TestEnvironment_Type."); +} +} + +boolean NR__TestEnvironment__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NR__TestEnvironment__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NR__TestEnvironment__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NR__TestEnvironment__Type::enum_type enum_val = NR__TestEnvironment__Type::str_to_enum(m_p->get_enumerated()); + if (!NR__TestEnvironment__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_TestEnvironment_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NR__TestEnvironment__Type_template* precondition = new NR__TestEnvironment__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NR__TestEnvironment__Type_template* implied_template = new NR__TestEnvironment__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NR__TestEnvironment__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NR_TestEnvironment_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NR__TestEnvironment__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NR__TestEnvironment__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +ENDC__SRB__DRB__Configuration__Type::ENDC__SRB__DRB__Configuration__Type() +{ +enum_value = UNBOUND_VALUE; +} + +ENDC__SRB__DRB__Configuration__Type::ENDC__SRB__DRB__Configuration__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +ENDC__SRB__DRB__Configuration__Type::ENDC__SRB__DRB__Configuration__Type(enum_type other_value) +{ +enum_value = other_value; +} + +ENDC__SRB__DRB__Configuration__Type::ENDC__SRB__DRB__Configuration__Type(const ENDC__SRB__DRB__Configuration__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +enum_value = other_value.enum_value; +} + +ENDC__SRB__DRB__Configuration__Type& ENDC__SRB__DRB__Configuration__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +ENDC__SRB__DRB__Configuration__Type& ENDC__SRB__DRB__Configuration__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +ENDC__SRB__DRB__Configuration__Type& ENDC__SRB__DRB__Configuration__Type::operator=(const ENDC__SRB__DRB__Configuration__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean ENDC__SRB__DRB__Configuration__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +return enum_value == other_value; +} + +boolean ENDC__SRB__DRB__Configuration__Type::operator==(const ENDC__SRB__DRB__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +return enum_value == other_value.enum_value; +} + +boolean ENDC__SRB__DRB__Configuration__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +return enum_value < other_value; +} + +boolean ENDC__SRB__DRB__Configuration__Type::operator<(const ENDC__SRB__DRB__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +return enum_value < other_value.enum_value; +} + +boolean ENDC__SRB__DRB__Configuration__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +return enum_value > other_value; +} + +boolean ENDC__SRB__DRB__Configuration__Type::operator>(const ENDC__SRB__DRB__Configuration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +return enum_value > other_value.enum_value; +} + +const char *ENDC__SRB__DRB__Configuration__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case NONE_: return "NONE"; +case NR__PDCP__MCG: return "NR_PDCP_MCG"; +case NR__PDCP__SRB1__2: return "NR_PDCP_SRB1_2"; +case NR__PDCP__MCG__SRB1__2: return "NR_PDCP_MCG_SRB1_2"; +case NR__PDCP__SRB1__2__SRB3: return "NR_PDCP_SRB1_2_SRB3"; +case SRB3: return "SRB3"; +default: return ""; +} +} + +ENDC__SRB__DRB__Configuration__Type::enum_type ENDC__SRB__DRB__Configuration__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "NONE")) return NONE_; +else if (!strcmp(str_par, "NR_PDCP_MCG")) return NR__PDCP__MCG; +else if (!strcmp(str_par, "NR_PDCP_SRB1_2")) return NR__PDCP__SRB1__2; +else if (!strcmp(str_par, "NR_PDCP_MCG_SRB1_2")) return NR__PDCP__MCG__SRB1__2; +else if (!strcmp(str_par, "NR_PDCP_SRB1_2_SRB3")) return NR__PDCP__SRB1__2__SRB3; +else if (!strcmp(str_par, "SRB3")) return SRB3; +else return UNKNOWN_VALUE; +} + +boolean ENDC__SRB__DRB__Configuration__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +return TRUE; +default: +return FALSE; +} +} + +int ENDC__SRB__DRB__Configuration__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int ENDC__SRB__DRB__Configuration__Type::enum2int(const ENDC__SRB__DRB__Configuration__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void ENDC__SRB__DRB__Configuration__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type.", int_val); +enum_value = (enum_type)int_val; +} + +ENDC__SRB__DRB__Configuration__Type::operator ENDC__SRB__DRB__Configuration__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +return enum_value; +} + +boolean ENDC__SRB__DRB__Configuration__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void ENDC__SRB__DRB__Configuration__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* ENDC__SRB__DRB__Configuration__Type::clone() const { return new ENDC__SRB__DRB__Configuration__Type(*this); } +const TTCN_Typedescriptor_t* ENDC__SRB__DRB__Configuration__Type::get_descriptor() const { return &ENDC__SRB__DRB__Configuration__Type_descr_; } +void ENDC__SRB__DRB__Configuration__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void ENDC__SRB__DRB__Configuration__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.ENDC_SRB_DRB_Configuration_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); + } +} + +Module_Param* ENDC__SRB__DRB__Configuration__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void ENDC__SRB__DRB__Configuration__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +text_buf.push_int(enum_value); +} + +void ENDC__SRB__DRB__Configuration__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type.", enum_value); +} + +void ENDC__SRB__DRB__Configuration__Type_template::copy_template(const ENDC__SRB__DRB__Configuration__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new ENDC__SRB__DRB__Configuration__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new ENDC__SRB__DRB__Configuration__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new ENDC__SRB__DRB__Configuration__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +} +} + +ENDC__SRB__DRB__Configuration__Type_template::ENDC__SRB__DRB__Configuration__Type_template() +{ +} + +ENDC__SRB__DRB__Configuration__Type_template::ENDC__SRB__DRB__Configuration__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +ENDC__SRB__DRB__Configuration__Type_template::ENDC__SRB__DRB__Configuration__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!ENDC__SRB__DRB__Configuration__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type with unknown numeric value %d.", other_value); +single_value = (ENDC__SRB__DRB__Configuration__Type::enum_type)other_value; +} + +ENDC__SRB__DRB__Configuration__Type_template::ENDC__SRB__DRB__Configuration__Type_template(ENDC__SRB__DRB__Configuration__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +ENDC__SRB__DRB__Configuration__Type_template::ENDC__SRB__DRB__Configuration__Type_template(const ENDC__SRB__DRB__Configuration__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == ENDC__SRB__DRB__Configuration__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +single_value = other_value.enum_value; +} + +ENDC__SRB__DRB__Configuration__Type_template::ENDC__SRB__DRB__Configuration__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__SRB__DRB__Configuration__Type::enum_type)(const ENDC__SRB__DRB__Configuration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type from an unbound optional field."); +} +} + +ENDC__SRB__DRB__Configuration__Type_template::ENDC__SRB__DRB__Configuration__Type_template(ENDC__SRB__DRB__Configuration__Type_template* p_precondition, ENDC__SRB__DRB__Configuration__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +ENDC__SRB__DRB__Configuration__Type_template::ENDC__SRB__DRB__Configuration__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +ENDC__SRB__DRB__Configuration__Type_template::ENDC__SRB__DRB__Configuration__Type_template(const ENDC__SRB__DRB__Configuration__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +ENDC__SRB__DRB__Configuration__Type_template::~ENDC__SRB__DRB__Configuration__Type_template() +{ +clean_up(); +} + +boolean ENDC__SRB__DRB__Configuration__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean ENDC__SRB__DRB__Configuration__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != ENDC__SRB__DRB__Configuration__Type::UNBOUND_VALUE; +} + +void ENDC__SRB__DRB__Configuration__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +ENDC__SRB__DRB__Configuration__Type_template& ENDC__SRB__DRB__Configuration__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ENDC__SRB__DRB__Configuration__Type_template& ENDC__SRB__DRB__Configuration__Type_template::operator=(int other_value) +{ +if (!ENDC__SRB__DRB__Configuration__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__SRB__DRB__Configuration__Type::enum_type)other_value; +return *this; +} + +ENDC__SRB__DRB__Configuration__Type_template& ENDC__SRB__DRB__Configuration__Type_template::operator=(ENDC__SRB__DRB__Configuration__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +ENDC__SRB__DRB__Configuration__Type_template& ENDC__SRB__DRB__Configuration__Type_template::operator=(const ENDC__SRB__DRB__Configuration__Type& other_value) +{ +if (other_value.enum_value == ENDC__SRB__DRB__Configuration__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +ENDC__SRB__DRB__Configuration__Type_template& ENDC__SRB__DRB__Configuration__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__SRB__DRB__Configuration__Type::enum_type)(const ENDC__SRB__DRB__Configuration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +} +return *this; +} + +ENDC__SRB__DRB__Configuration__Type_template& ENDC__SRB__DRB__Configuration__Type_template::operator=(const ENDC__SRB__DRB__Configuration__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean ENDC__SRB__DRB__Configuration__Type_template::match(ENDC__SRB__DRB__Configuration__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +} +return FALSE; +} + +boolean ENDC__SRB__DRB__Configuration__Type_template::match(const ENDC__SRB__DRB__Configuration__Type& other_value, boolean) const +{ +if (other_value.enum_value == ENDC__SRB__DRB__Configuration__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type with an unbound value."); +return match(other_value.enum_value); +} + +ENDC__SRB__DRB__Configuration__Type::enum_type ENDC__SRB__DRB__Configuration__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +return single_value; +} + +void ENDC__SRB__DRB__Configuration__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new ENDC__SRB__DRB__Configuration__Type_template[list_length]; +} + +ENDC__SRB__DRB__Configuration__Type_template& ENDC__SRB__DRB__Configuration__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +return value_list.list_value[list_index]; +} + +void ENDC__SRB__DRB__Configuration__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void ENDC__SRB__DRB__Configuration__Type_template::set_value(template_sel other_value) { *this = other_value; } +void ENDC__SRB__DRB__Configuration__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* ENDC__SRB__DRB__Configuration__Type_template::clone() const { return new ENDC__SRB__DRB__Configuration__Type_template(*this); } +const TTCN_Typedescriptor_t* ENDC__SRB__DRB__Configuration__Type_template::get_descriptor() const { return &ENDC__SRB__DRB__Configuration__Type_descr_; } +boolean ENDC__SRB__DRB__Configuration__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void ENDC__SRB__DRB__Configuration__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void ENDC__SRB__DRB__Configuration__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(ENDC__SRB__DRB__Configuration__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void ENDC__SRB__DRB__Configuration__Type_template::log_match(const ENDC__SRB__DRB__Configuration__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void ENDC__SRB__DRB__Configuration__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +} +} + +void ENDC__SRB__DRB__Configuration__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (ENDC__SRB__DRB__Configuration__Type::enum_type)text_buf.pull_int().get_val(); +if (!ENDC__SRB__DRB__Configuration__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new ENDC__SRB__DRB__Configuration__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); +} +} + +boolean ENDC__SRB__DRB__Configuration__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean ENDC__SRB__DRB__Configuration__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + ENDC__SRB__DRB__Configuration__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + ENDC__SRB__DRB__Configuration__Type::enum_type enum_val = ENDC__SRB__DRB__Configuration__Type::str_to_enum(m_p->get_enumerated()); + if (!ENDC__SRB__DRB__Configuration__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_SRB_DRB_Configuration_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + ENDC__SRB__DRB__Configuration__Type_template* precondition = new ENDC__SRB__DRB__Configuration__Type_template; + precondition->set_param(*m_p->get_elem(0)); + ENDC__SRB__DRB__Configuration__Type_template* implied_template = new ENDC__SRB__DRB__Configuration__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = ENDC__SRB__DRB__Configuration__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.ENDC_SRB_DRB_Configuration_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* ENDC__SRB__DRB__Configuration__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(ENDC__SRB__DRB__Configuration__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +ENDC__BandCombination__Type::ENDC__BandCombination__Type() +{ +enum_value = UNBOUND_VALUE; +} + +ENDC__BandCombination__Type::ENDC__BandCombination__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.ENDC_BandCombination_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +ENDC__BandCombination__Type::ENDC__BandCombination__Type(enum_type other_value) +{ +enum_value = other_value; +} + +ENDC__BandCombination__Type::ENDC__BandCombination__Type(const ENDC__BandCombination__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +enum_value = other_value.enum_value; +} + +ENDC__BandCombination__Type& ENDC__BandCombination__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.ENDC_BandCombination_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +ENDC__BandCombination__Type& ENDC__BandCombination__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +ENDC__BandCombination__Type& ENDC__BandCombination__Type::operator=(const ENDC__BandCombination__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean ENDC__BandCombination__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +return enum_value == other_value; +} + +boolean ENDC__BandCombination__Type::operator==(const ENDC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +return enum_value == other_value.enum_value; +} + +boolean ENDC__BandCombination__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +return enum_value < other_value; +} + +boolean ENDC__BandCombination__Type::operator<(const ENDC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +return enum_value < other_value.enum_value; +} + +boolean ENDC__BandCombination__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +return enum_value > other_value; +} + +boolean ENDC__BandCombination__Type::operator>(const ENDC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +return enum_value > other_value.enum_value; +} + +const char *ENDC__BandCombination__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case DC__1A__n3A: return "DC_1A_n3A"; +case DC__1A__n5A: return "DC_1A_n5A"; +case DC__1A__n7A: return "DC_1A_n7A"; +case DC__1A__n28A: return "DC_1A_n28A"; +case DC__1A__n41A: return "DC_1A_n41A"; +case DC__1A__n77A: return "DC_1A_n77A"; +case DC__1A__n78A: return "DC_1A_n78A"; +case DC__1A__n79A: return "DC_1A_n79A"; +case DC__2A__n5A: return "DC_2A_n5A"; +case DC__2A__n41A: return "DC_2A_n41A"; +case DC__2A__n48A: return "DC_2A_n48A"; +case DC__2A__n66A: return "DC_2A_n66A"; +case DC__2A__n71A: return "DC_2A_n71A"; +case DC__2A__n77A: return "DC_2A_n77A"; +case DC__2A__n78A: return "DC_2A_n78A"; +case DC__3A__n1A: return "DC_3A_n1A"; +case DC__3A__n5A: return "DC_3A_n5A"; +case DC__3A__n7A: return "DC_3A_n7A"; +case DC__3A__n28A: return "DC_3A_n28A"; +case DC__3A__n41A: return "DC_3A_n41A"; +case DC__3A__n77A: return "DC_3A_n77A"; +case DC__3A__n78A: return "DC_3A_n78A"; +case DC__3A__n79A: return "DC_3A_n79A"; +case DC__5A__n2A: return "DC_5A_n2A"; +case DC__5A__n66A: return "DC_5A_n66A"; +case DC__5A__n77A: return "DC_5A_n77A"; +case DC__5A__n78A: return "DC_5A_n78A"; +case DC__7A__n1A: return "DC_7A_n1A"; +case DC__7A__n3A: return "DC_7A_n3A"; +case DC__7A__n5A: return "DC_7A_n5A"; +case DC__7A__n28A: return "DC_7A_n28A"; +case DC__7A__n66A: return "DC_7A_n66A"; +case DC__7A__n78A: return "DC_7A_n78A"; +case DC__8A__n1A: return "DC_8A_n1A"; +case DC__8A__n3A: return "DC_8A_n3A"; +case DC__8A__n20A: return "DC_8A_n20A"; +case DC__8A__n41A: return "DC_8A_n41A"; +case DC__8A__n77A: return "DC_8A_n77A"; +case DC__8A__n78A: return "DC_8A_n78A"; +case DC__11A__n77A: return "DC_11A_n77A"; +case DC__11A__n78A: return "DC_11A_n78A"; +case DC__11A__n79A: return "DC_11A_n79A"; +case DC__12A__n2A: return "DC_12A_n2A"; +case DC__12A__n5A: return "DC_12A_n5A"; +case DC__12A__n66A: return "DC_12A_n66A"; +case DC__12A__n78A: return "DC_12A_n78A"; +case DC__13A__n2A: return "DC_13A_n2A"; +case DC__13A__n66A: return "DC_13A_n66A"; +case DC__13A__n77A: return "DC_13A_n77A"; +case DC__14A__n2A: return "DC_14A_n2A"; +case DC__14A__n66A: return "DC_14A_n66A"; +case DC__18A__n77A: return "DC_18A_n77A"; +case DC__18A__n78A: return "DC_18A_n78A"; +case DC__18A__n79A: return "DC_18A_n79A"; +case DC__19A__n1A: return "DC_19A_n1A"; +case DC__19A__n77A: return "DC_19A_n77A"; +case DC__19A__n78A: return "DC_19A_n78A"; +case DC__19A__n79A: return "DC_19A_n79A"; +case DC__20A__n1A: return "DC_20A_n1A"; +case DC__20A__n3A: return "DC_20A_n3A"; +case DC__20A__n7A: return "DC_20A_n7A"; +case DC__20A__n8A: return "DC_20A_n8A"; +case DC__20A__n28A: return "DC_20A_n28A"; +case DC__20A__n78A: return "DC_20A_n78A"; +case DC__21A__n1A: return "DC_21A_n1A"; +case DC__21A__n28A: return "DC_21A_n28A"; +case DC__21A__n77A: return "DC_21A_n77A"; +case DC__21A__n78A: return "DC_21A_n78A"; +case DC__21A__n79A: return "DC_21A_n79A"; +case DC__25A__n41A: return "DC_25A_n41A"; +case DC__26A__n41A: return "DC_26A_n41A"; +case DC__26A__n77A: return "DC_26A_n77A"; +case DC__26A__n78A: return "DC_26A_n78A"; +case DC__26A__n79A: return "DC_26A_n79A"; +case DC__28A__n3A: return "DC_28A_n3A"; +case DC__28A__n5A: return "DC_28A_n5A"; +case DC__28A__n7A: return "DC_28A_n7A"; +case DC__28A__n77A: return "DC_28A_n77A"; +case DC__28A__n78A: return "DC_28A_n78A"; +case DC__28A__n79A: return "DC_28A_n79A"; +case DC__30A__n5A: return "DC_30A_n5A"; +case DC__30A__n66A: return "DC_30A_n66A"; +case DC__38A__n78A: return "DC_38A_n78A"; +case DC__39A__n41A: return "DC_39A_n41A"; +case DC__39A__n79A: return "DC_39A_n79A"; +case DC__40A__n1A: return "DC_40A_n1A"; +case DC__40A__n41A: return "DC_40A_n41A"; +case DC__40A__n78A: return "DC_40A_n78A"; +case DC__40A__n79A: return "DC_40A_n79A"; +case DC__41A__n28A: return "DC_41A_n28A"; +case DC__41A__n77A: return "DC_41A_n77A"; +case DC__41A__n78A: return "DC_41A_n78A"; +case DC__41A__n79A: return "DC_41A_n79A"; +case DC__42A__n1A: return "DC_42A_n1A"; +case DC__42A__n77A: return "DC_42A_n77A"; +case DC__42A__n78A: return "DC_42A_n78A"; +case DC__42A__n79A: return "DC_42A_n79A"; +case DC__48A__n5A: return "DC_48A_n5A"; +case DC__48A__n66A: return "DC_48A_n66A"; +case DC__66A__n2A: return "DC_66A_n2A"; +case DC__66A__n41A: return "DC_66A_n41A"; +case DC__66A__n5A: return "DC_66A_n5A"; +case DC__66A__n71A: return "DC_66A_n71A"; +case DC__66A__n77A: return "DC_66A_n77A"; +case DC__66A__n78A: return "DC_66A_n78A"; +case DC__71A__n2A: return "DC_71A_n2A"; +case DC__71A__n66A: return "DC_71A_n66A"; +case DC__1A__n257A: return "DC_1A_n257A"; +case DC__2A__n257A: return "DC_2A_n257A"; +case DC__2A__n260A: return "DC_2A_n260A"; +case DC__3A__n257A: return "DC_3A_n257A"; +case DC__5A__n257A: return "DC_5A_n257A"; +case DC__5A__n260A: return "DC_5A_n260A"; +case DC__5A__n261A: return "DC_5A_n261A"; +case DC__7A__n257A: return "DC_7A_n257A"; +case DC__8A__n257A: return "DC_8A_n257A"; +case DC__8A__n258A: return "DC_8A_n258A"; +case DC__11A__n257A: return "DC_11A_n257A"; +case DC__12A__n260A: return "DC_12A_n260A"; +case DC__13A__n257A: return "DC_13A_n257A"; +case DC__13A__n260A: return "DC_13A_n260A"; +case DC__14A__n260A: return "DC_14A_n260A"; +case DC__18A__n257A: return "DC_18A_n257A"; +case DC__19A__n257A: return "DC_19A_n257A"; +case DC__20A__n257A: return "DC_20A_n257A"; +case DC__21A__n257A: return "DC_21A_n257A"; +case DC__28A__n257A: return "DC_28A_n257A"; +case DC__30A__n260A: return "DC_30A_n260A"; +case DC__41A__n257A: return "DC_41A_n257A"; +case DC__42A__n257A: return "DC_42A_n257A"; +case DC__48A__n260A: return "DC_48A_n260A"; +case DC__66A__n257A: return "DC_66A_n257A"; +case DC__66A__n260A: return "DC_66A_n260A"; +case DC__66A__n261A: return "DC_66A_n261A"; +case DC__n41AA: return "DC_n41AA"; +case DC__n71AA: return "DC_n71AA"; +case DC__41A__n41A: return "DC_41A_n41A"; +default: return ""; +} +} + +ENDC__BandCombination__Type::enum_type ENDC__BandCombination__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "DC_1A_n3A")) return DC__1A__n3A; +else if (!strcmp(str_par, "DC_1A_n5A")) return DC__1A__n5A; +else if (!strcmp(str_par, "DC_1A_n7A")) return DC__1A__n7A; +else if (!strcmp(str_par, "DC_1A_n28A")) return DC__1A__n28A; +else if (!strcmp(str_par, "DC_1A_n41A")) return DC__1A__n41A; +else if (!strcmp(str_par, "DC_1A_n77A")) return DC__1A__n77A; +else if (!strcmp(str_par, "DC_1A_n78A")) return DC__1A__n78A; +else if (!strcmp(str_par, "DC_1A_n79A")) return DC__1A__n79A; +else if (!strcmp(str_par, "DC_2A_n5A")) return DC__2A__n5A; +else if (!strcmp(str_par, "DC_2A_n41A")) return DC__2A__n41A; +else if (!strcmp(str_par, "DC_2A_n48A")) return DC__2A__n48A; +else if (!strcmp(str_par, "DC_2A_n66A")) return DC__2A__n66A; +else if (!strcmp(str_par, "DC_2A_n71A")) return DC__2A__n71A; +else if (!strcmp(str_par, "DC_2A_n77A")) return DC__2A__n77A; +else if (!strcmp(str_par, "DC_2A_n78A")) return DC__2A__n78A; +else if (!strcmp(str_par, "DC_3A_n1A")) return DC__3A__n1A; +else if (!strcmp(str_par, "DC_3A_n5A")) return DC__3A__n5A; +else if (!strcmp(str_par, "DC_3A_n7A")) return DC__3A__n7A; +else if (!strcmp(str_par, "DC_3A_n28A")) return DC__3A__n28A; +else if (!strcmp(str_par, "DC_3A_n41A")) return DC__3A__n41A; +else if (!strcmp(str_par, "DC_3A_n77A")) return DC__3A__n77A; +else if (!strcmp(str_par, "DC_3A_n78A")) return DC__3A__n78A; +else if (!strcmp(str_par, "DC_3A_n79A")) return DC__3A__n79A; +else if (!strcmp(str_par, "DC_5A_n2A")) return DC__5A__n2A; +else if (!strcmp(str_par, "DC_5A_n66A")) return DC__5A__n66A; +else if (!strcmp(str_par, "DC_5A_n77A")) return DC__5A__n77A; +else if (!strcmp(str_par, "DC_5A_n78A")) return DC__5A__n78A; +else if (!strcmp(str_par, "DC_7A_n1A")) return DC__7A__n1A; +else if (!strcmp(str_par, "DC_7A_n3A")) return DC__7A__n3A; +else if (!strcmp(str_par, "DC_7A_n5A")) return DC__7A__n5A; +else if (!strcmp(str_par, "DC_7A_n28A")) return DC__7A__n28A; +else if (!strcmp(str_par, "DC_7A_n66A")) return DC__7A__n66A; +else if (!strcmp(str_par, "DC_7A_n78A")) return DC__7A__n78A; +else if (!strcmp(str_par, "DC_8A_n1A")) return DC__8A__n1A; +else if (!strcmp(str_par, "DC_8A_n3A")) return DC__8A__n3A; +else if (!strcmp(str_par, "DC_8A_n20A")) return DC__8A__n20A; +else if (!strcmp(str_par, "DC_8A_n41A")) return DC__8A__n41A; +else if (!strcmp(str_par, "DC_8A_n77A")) return DC__8A__n77A; +else if (!strcmp(str_par, "DC_8A_n78A")) return DC__8A__n78A; +else if (!strcmp(str_par, "DC_11A_n77A")) return DC__11A__n77A; +else if (!strcmp(str_par, "DC_11A_n78A")) return DC__11A__n78A; +else if (!strcmp(str_par, "DC_11A_n79A")) return DC__11A__n79A; +else if (!strcmp(str_par, "DC_12A_n2A")) return DC__12A__n2A; +else if (!strcmp(str_par, "DC_12A_n5A")) return DC__12A__n5A; +else if (!strcmp(str_par, "DC_12A_n66A")) return DC__12A__n66A; +else if (!strcmp(str_par, "DC_12A_n78A")) return DC__12A__n78A; +else if (!strcmp(str_par, "DC_13A_n2A")) return DC__13A__n2A; +else if (!strcmp(str_par, "DC_13A_n66A")) return DC__13A__n66A; +else if (!strcmp(str_par, "DC_13A_n77A")) return DC__13A__n77A; +else if (!strcmp(str_par, "DC_14A_n2A")) return DC__14A__n2A; +else if (!strcmp(str_par, "DC_14A_n66A")) return DC__14A__n66A; +else if (!strcmp(str_par, "DC_18A_n77A")) return DC__18A__n77A; +else if (!strcmp(str_par, "DC_18A_n78A")) return DC__18A__n78A; +else if (!strcmp(str_par, "DC_18A_n79A")) return DC__18A__n79A; +else if (!strcmp(str_par, "DC_19A_n1A")) return DC__19A__n1A; +else if (!strcmp(str_par, "DC_19A_n77A")) return DC__19A__n77A; +else if (!strcmp(str_par, "DC_19A_n78A")) return DC__19A__n78A; +else if (!strcmp(str_par, "DC_19A_n79A")) return DC__19A__n79A; +else if (!strcmp(str_par, "DC_20A_n1A")) return DC__20A__n1A; +else if (!strcmp(str_par, "DC_20A_n3A")) return DC__20A__n3A; +else if (!strcmp(str_par, "DC_20A_n7A")) return DC__20A__n7A; +else if (!strcmp(str_par, "DC_20A_n8A")) return DC__20A__n8A; +else if (!strcmp(str_par, "DC_20A_n28A")) return DC__20A__n28A; +else if (!strcmp(str_par, "DC_20A_n78A")) return DC__20A__n78A; +else if (!strcmp(str_par, "DC_21A_n1A")) return DC__21A__n1A; +else if (!strcmp(str_par, "DC_21A_n28A")) return DC__21A__n28A; +else if (!strcmp(str_par, "DC_21A_n77A")) return DC__21A__n77A; +else if (!strcmp(str_par, "DC_21A_n78A")) return DC__21A__n78A; +else if (!strcmp(str_par, "DC_21A_n79A")) return DC__21A__n79A; +else if (!strcmp(str_par, "DC_25A_n41A")) return DC__25A__n41A; +else if (!strcmp(str_par, "DC_26A_n41A")) return DC__26A__n41A; +else if (!strcmp(str_par, "DC_26A_n77A")) return DC__26A__n77A; +else if (!strcmp(str_par, "DC_26A_n78A")) return DC__26A__n78A; +else if (!strcmp(str_par, "DC_26A_n79A")) return DC__26A__n79A; +else if (!strcmp(str_par, "DC_28A_n3A")) return DC__28A__n3A; +else if (!strcmp(str_par, "DC_28A_n5A")) return DC__28A__n5A; +else if (!strcmp(str_par, "DC_28A_n7A")) return DC__28A__n7A; +else if (!strcmp(str_par, "DC_28A_n77A")) return DC__28A__n77A; +else if (!strcmp(str_par, "DC_28A_n78A")) return DC__28A__n78A; +else if (!strcmp(str_par, "DC_28A_n79A")) return DC__28A__n79A; +else if (!strcmp(str_par, "DC_30A_n5A")) return DC__30A__n5A; +else if (!strcmp(str_par, "DC_30A_n66A")) return DC__30A__n66A; +else if (!strcmp(str_par, "DC_38A_n78A")) return DC__38A__n78A; +else if (!strcmp(str_par, "DC_39A_n41A")) return DC__39A__n41A; +else if (!strcmp(str_par, "DC_39A_n79A")) return DC__39A__n79A; +else if (!strcmp(str_par, "DC_40A_n1A")) return DC__40A__n1A; +else if (!strcmp(str_par, "DC_40A_n41A")) return DC__40A__n41A; +else if (!strcmp(str_par, "DC_40A_n78A")) return DC__40A__n78A; +else if (!strcmp(str_par, "DC_40A_n79A")) return DC__40A__n79A; +else if (!strcmp(str_par, "DC_41A_n28A")) return DC__41A__n28A; +else if (!strcmp(str_par, "DC_41A_n77A")) return DC__41A__n77A; +else if (!strcmp(str_par, "DC_41A_n78A")) return DC__41A__n78A; +else if (!strcmp(str_par, "DC_41A_n79A")) return DC__41A__n79A; +else if (!strcmp(str_par, "DC_42A_n1A")) return DC__42A__n1A; +else if (!strcmp(str_par, "DC_42A_n77A")) return DC__42A__n77A; +else if (!strcmp(str_par, "DC_42A_n78A")) return DC__42A__n78A; +else if (!strcmp(str_par, "DC_42A_n79A")) return DC__42A__n79A; +else if (!strcmp(str_par, "DC_48A_n5A")) return DC__48A__n5A; +else if (!strcmp(str_par, "DC_48A_n66A")) return DC__48A__n66A; +else if (!strcmp(str_par, "DC_66A_n2A")) return DC__66A__n2A; +else if (!strcmp(str_par, "DC_66A_n41A")) return DC__66A__n41A; +else if (!strcmp(str_par, "DC_66A_n5A")) return DC__66A__n5A; +else if (!strcmp(str_par, "DC_66A_n71A")) return DC__66A__n71A; +else if (!strcmp(str_par, "DC_66A_n77A")) return DC__66A__n77A; +else if (!strcmp(str_par, "DC_66A_n78A")) return DC__66A__n78A; +else if (!strcmp(str_par, "DC_71A_n2A")) return DC__71A__n2A; +else if (!strcmp(str_par, "DC_71A_n66A")) return DC__71A__n66A; +else if (!strcmp(str_par, "DC_1A_n257A")) return DC__1A__n257A; +else if (!strcmp(str_par, "DC_2A_n257A")) return DC__2A__n257A; +else if (!strcmp(str_par, "DC_2A_n260A")) return DC__2A__n260A; +else if (!strcmp(str_par, "DC_3A_n257A")) return DC__3A__n257A; +else if (!strcmp(str_par, "DC_5A_n257A")) return DC__5A__n257A; +else if (!strcmp(str_par, "DC_5A_n260A")) return DC__5A__n260A; +else if (!strcmp(str_par, "DC_5A_n261A")) return DC__5A__n261A; +else if (!strcmp(str_par, "DC_7A_n257A")) return DC__7A__n257A; +else if (!strcmp(str_par, "DC_8A_n257A")) return DC__8A__n257A; +else if (!strcmp(str_par, "DC_8A_n258A")) return DC__8A__n258A; +else if (!strcmp(str_par, "DC_11A_n257A")) return DC__11A__n257A; +else if (!strcmp(str_par, "DC_12A_n260A")) return DC__12A__n260A; +else if (!strcmp(str_par, "DC_13A_n257A")) return DC__13A__n257A; +else if (!strcmp(str_par, "DC_13A_n260A")) return DC__13A__n260A; +else if (!strcmp(str_par, "DC_14A_n260A")) return DC__14A__n260A; +else if (!strcmp(str_par, "DC_18A_n257A")) return DC__18A__n257A; +else if (!strcmp(str_par, "DC_19A_n257A")) return DC__19A__n257A; +else if (!strcmp(str_par, "DC_20A_n257A")) return DC__20A__n257A; +else if (!strcmp(str_par, "DC_21A_n257A")) return DC__21A__n257A; +else if (!strcmp(str_par, "DC_28A_n257A")) return DC__28A__n257A; +else if (!strcmp(str_par, "DC_30A_n260A")) return DC__30A__n260A; +else if (!strcmp(str_par, "DC_41A_n257A")) return DC__41A__n257A; +else if (!strcmp(str_par, "DC_42A_n257A")) return DC__42A__n257A; +else if (!strcmp(str_par, "DC_48A_n260A")) return DC__48A__n260A; +else if (!strcmp(str_par, "DC_66A_n257A")) return DC__66A__n257A; +else if (!strcmp(str_par, "DC_66A_n260A")) return DC__66A__n260A; +else if (!strcmp(str_par, "DC_66A_n261A")) return DC__66A__n261A; +else if (!strcmp(str_par, "DC_n41AA")) return DC__n41AA; +else if (!strcmp(str_par, "DC_n71AA")) return DC__n71AA; +else if (!strcmp(str_par, "DC_41A_n41A")) return DC__41A__n41A; +else return UNKNOWN_VALUE; +} + +boolean ENDC__BandCombination__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +case 8: +case 9: +case 10: +case 11: +case 12: +case 13: +case 14: +case 15: +case 16: +case 17: +case 18: +case 19: +case 20: +case 21: +case 22: +case 23: +case 24: +case 25: +case 26: +case 27: +case 28: +case 29: +case 30: +case 31: +case 32: +case 33: +case 34: +case 35: +case 36: +case 37: +case 38: +case 39: +case 40: +case 41: +case 42: +case 43: +case 44: +case 45: +case 46: +case 47: +case 48: +case 49: +case 50: +case 51: +case 52: +case 53: +case 54: +case 55: +case 56: +case 57: +case 58: +case 59: +case 60: +case 61: +case 62: +case 63: +case 64: +case 65: +case 66: +case 67: +case 68: +case 69: +case 70: +case 71: +case 72: +case 73: +case 74: +case 75: +case 76: +case 77: +case 78: +case 79: +case 80: +case 81: +case 82: +case 83: +case 84: +case 85: +case 86: +case 87: +case 88: +case 89: +case 90: +case 91: +case 92: +case 93: +case 94: +case 95: +case 96: +case 97: +case 98: +case 99: +case 100: +case 101: +case 102: +case 103: +case 104: +case 105: +case 106: +case 107: +case 108: +case 109: +case 110: +case 111: +case 112: +case 113: +case 114: +case 115: +case 116: +case 117: +case 118: +case 119: +case 120: +case 121: +case 122: +case 123: +case 124: +case 125: +case 126: +case 127: +case 128: +case 129: +case 130: +case 131: +case 132: +case 133: +case 134: +case 135: +case 136: +return TRUE; +default: +return FALSE; +} +} + +int ENDC__BandCombination__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int ENDC__BandCombination__Type::enum2int(const ENDC__BandCombination__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void ENDC__BandCombination__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.ENDC_BandCombination_Type.", int_val); +enum_value = (enum_type)int_val; +} + +ENDC__BandCombination__Type::operator ENDC__BandCombination__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +return enum_value; +} + +boolean ENDC__BandCombination__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void ENDC__BandCombination__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* ENDC__BandCombination__Type::clone() const { return new ENDC__BandCombination__Type(*this); } +const TTCN_Typedescriptor_t* ENDC__BandCombination__Type::get_descriptor() const { return &ENDC__BandCombination__Type_descr_; } +void ENDC__BandCombination__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void ENDC__BandCombination__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.ENDC_BandCombination_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_BandCombination_Type."); + } +} + +Module_Param* ENDC__BandCombination__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void ENDC__BandCombination__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +text_buf.push_int(enum_value); +} + +void ENDC__BandCombination__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.ENDC_BandCombination_Type.", enum_value); +} + +void ENDC__BandCombination__Type_template::copy_template(const ENDC__BandCombination__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new ENDC__BandCombination__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new ENDC__BandCombination__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new ENDC__BandCombination__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +} +} + +ENDC__BandCombination__Type_template::ENDC__BandCombination__Type_template() +{ +} + +ENDC__BandCombination__Type_template::ENDC__BandCombination__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +ENDC__BandCombination__Type_template::ENDC__BandCombination__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!ENDC__BandCombination__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.ENDC_BandCombination_Type with unknown numeric value %d.", other_value); +single_value = (ENDC__BandCombination__Type::enum_type)other_value; +} + +ENDC__BandCombination__Type_template::ENDC__BandCombination__Type_template(ENDC__BandCombination__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +ENDC__BandCombination__Type_template::ENDC__BandCombination__Type_template(const ENDC__BandCombination__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == ENDC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +single_value = other_value.enum_value; +} + +ENDC__BandCombination__Type_template::ENDC__BandCombination__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__BandCombination__Type::enum_type)(const ENDC__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.ENDC_BandCombination_Type from an unbound optional field."); +} +} + +ENDC__BandCombination__Type_template::ENDC__BandCombination__Type_template(ENDC__BandCombination__Type_template* p_precondition, ENDC__BandCombination__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +ENDC__BandCombination__Type_template::ENDC__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +ENDC__BandCombination__Type_template::ENDC__BandCombination__Type_template(const ENDC__BandCombination__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +ENDC__BandCombination__Type_template::~ENDC__BandCombination__Type_template() +{ +clean_up(); +} + +boolean ENDC__BandCombination__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean ENDC__BandCombination__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != ENDC__BandCombination__Type::UNBOUND_VALUE; +} + +void ENDC__BandCombination__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +ENDC__BandCombination__Type_template& ENDC__BandCombination__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ENDC__BandCombination__Type_template& ENDC__BandCombination__Type_template::operator=(int other_value) +{ +if (!ENDC__BandCombination__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.ENDC_BandCombination_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__BandCombination__Type::enum_type)other_value; +return *this; +} + +ENDC__BandCombination__Type_template& ENDC__BandCombination__Type_template::operator=(ENDC__BandCombination__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +ENDC__BandCombination__Type_template& ENDC__BandCombination__Type_template::operator=(const ENDC__BandCombination__Type& other_value) +{ +if (other_value.enum_value == ENDC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_BandCombination_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +ENDC__BandCombination__Type_template& ENDC__BandCombination__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__BandCombination__Type::enum_type)(const ENDC__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +} +return *this; +} + +ENDC__BandCombination__Type_template& ENDC__BandCombination__Type_template::operator=(const ENDC__BandCombination__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean ENDC__BandCombination__Type_template::match(ENDC__BandCombination__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +} +return FALSE; +} + +boolean ENDC__BandCombination__Type_template::match(const ENDC__BandCombination__Type& other_value, boolean) const +{ +if (other_value.enum_value == ENDC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.ENDC_BandCombination_Type with an unbound value."); +return match(other_value.enum_value); +} + +ENDC__BandCombination__Type::enum_type ENDC__BandCombination__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +return single_value; +} + +void ENDC__BandCombination__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new ENDC__BandCombination__Type_template[list_length]; +} + +ENDC__BandCombination__Type_template& ENDC__BandCombination__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +return value_list.list_value[list_index]; +} + +void ENDC__BandCombination__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void ENDC__BandCombination__Type_template::set_value(template_sel other_value) { *this = other_value; } +void ENDC__BandCombination__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* ENDC__BandCombination__Type_template::clone() const { return new ENDC__BandCombination__Type_template(*this); } +const TTCN_Typedescriptor_t* ENDC__BandCombination__Type_template::get_descriptor() const { return &ENDC__BandCombination__Type_descr_; } +boolean ENDC__BandCombination__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void ENDC__BandCombination__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void ENDC__BandCombination__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(ENDC__BandCombination__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void ENDC__BandCombination__Type_template::log_match(const ENDC__BandCombination__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void ENDC__BandCombination__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +} +} + +void ENDC__BandCombination__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (ENDC__BandCombination__Type::enum_type)text_buf.pull_int().get_val(); +if (!ENDC__BandCombination__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.ENDC_BandCombination_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new ENDC__BandCombination__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.ENDC_BandCombination_Type."); +} +} + +boolean ENDC__BandCombination__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean ENDC__BandCombination__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + ENDC__BandCombination__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + ENDC__BandCombination__Type::enum_type enum_val = ENDC__BandCombination__Type::str_to_enum(m_p->get_enumerated()); + if (!ENDC__BandCombination__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_BandCombination_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + ENDC__BandCombination__Type_template* precondition = new ENDC__BandCombination__Type_template; + precondition->set_param(*m_p->get_elem(0)); + ENDC__BandCombination__Type_template* implied_template = new ENDC__BandCombination__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = ENDC__BandCombination__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.ENDC_BandCombination_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* ENDC__BandCombination__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(ENDC__BandCombination__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +ENDC__CombinationType__Type::ENDC__CombinationType__Type() +{ +enum_value = UNBOUND_VALUE; +} + +ENDC__CombinationType__Type::ENDC__CombinationType__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.ENDC_CombinationType_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +ENDC__CombinationType__Type::ENDC__CombinationType__Type(enum_type other_value) +{ +enum_value = other_value; +} + +ENDC__CombinationType__Type::ENDC__CombinationType__Type(const ENDC__CombinationType__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +enum_value = other_value.enum_value; +} + +ENDC__CombinationType__Type& ENDC__CombinationType__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.ENDC_CombinationType_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +ENDC__CombinationType__Type& ENDC__CombinationType__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +ENDC__CombinationType__Type& ENDC__CombinationType__Type::operator=(const ENDC__CombinationType__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean ENDC__CombinationType__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +return enum_value == other_value; +} + +boolean ENDC__CombinationType__Type::operator==(const ENDC__CombinationType__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +return enum_value == other_value.enum_value; +} + +boolean ENDC__CombinationType__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +return enum_value < other_value; +} + +boolean ENDC__CombinationType__Type::operator<(const ENDC__CombinationType__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +return enum_value < other_value.enum_value; +} + +boolean ENDC__CombinationType__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +return enum_value > other_value; +} + +boolean ENDC__CombinationType__Type::operator>(const ENDC__CombinationType__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +return enum_value > other_value.enum_value; +} + +const char *ENDC__CombinationType__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case InterBand: return "InterBand"; +case IntraBandContiguous: return "IntraBandContiguous"; +case IntraBandNonContiguous: return "IntraBandNonContiguous"; +default: return ""; +} +} + +ENDC__CombinationType__Type::enum_type ENDC__CombinationType__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "InterBand")) return InterBand; +else if (!strcmp(str_par, "IntraBandContiguous")) return IntraBandContiguous; +else if (!strcmp(str_par, "IntraBandNonContiguous")) return IntraBandNonContiguous; +else return UNKNOWN_VALUE; +} + +boolean ENDC__CombinationType__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +return TRUE; +default: +return FALSE; +} +} + +int ENDC__CombinationType__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_CombinationType_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int ENDC__CombinationType__Type::enum2int(const ENDC__CombinationType__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_CombinationType_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void ENDC__CombinationType__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.ENDC_CombinationType_Type.", int_val); +enum_value = (enum_type)int_val; +} + +ENDC__CombinationType__Type::operator ENDC__CombinationType__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +return enum_value; +} + +boolean ENDC__CombinationType__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void ENDC__CombinationType__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* ENDC__CombinationType__Type::clone() const { return new ENDC__CombinationType__Type(*this); } +const TTCN_Typedescriptor_t* ENDC__CombinationType__Type::get_descriptor() const { return &ENDC__CombinationType__Type_descr_; } +void ENDC__CombinationType__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void ENDC__CombinationType__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.ENDC_CombinationType_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_CombinationType_Type."); + } +} + +Module_Param* ENDC__CombinationType__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void ENDC__CombinationType__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +text_buf.push_int(enum_value); +} + +void ENDC__CombinationType__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.ENDC_CombinationType_Type.", enum_value); +} + +void ENDC__CombinationType__Type_template::copy_template(const ENDC__CombinationType__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new ENDC__CombinationType__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new ENDC__CombinationType__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new ENDC__CombinationType__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +} +} + +ENDC__CombinationType__Type_template::ENDC__CombinationType__Type_template() +{ +} + +ENDC__CombinationType__Type_template::ENDC__CombinationType__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +ENDC__CombinationType__Type_template::ENDC__CombinationType__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!ENDC__CombinationType__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.ENDC_CombinationType_Type with unknown numeric value %d.", other_value); +single_value = (ENDC__CombinationType__Type::enum_type)other_value; +} + +ENDC__CombinationType__Type_template::ENDC__CombinationType__Type_template(ENDC__CombinationType__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +ENDC__CombinationType__Type_template::ENDC__CombinationType__Type_template(const ENDC__CombinationType__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == ENDC__CombinationType__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +single_value = other_value.enum_value; +} + +ENDC__CombinationType__Type_template::ENDC__CombinationType__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__CombinationType__Type::enum_type)(const ENDC__CombinationType__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.ENDC_CombinationType_Type from an unbound optional field."); +} +} + +ENDC__CombinationType__Type_template::ENDC__CombinationType__Type_template(ENDC__CombinationType__Type_template* p_precondition, ENDC__CombinationType__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +ENDC__CombinationType__Type_template::ENDC__CombinationType__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +ENDC__CombinationType__Type_template::ENDC__CombinationType__Type_template(const ENDC__CombinationType__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +ENDC__CombinationType__Type_template::~ENDC__CombinationType__Type_template() +{ +clean_up(); +} + +boolean ENDC__CombinationType__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean ENDC__CombinationType__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != ENDC__CombinationType__Type::UNBOUND_VALUE; +} + +void ENDC__CombinationType__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +ENDC__CombinationType__Type_template& ENDC__CombinationType__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ENDC__CombinationType__Type_template& ENDC__CombinationType__Type_template::operator=(int other_value) +{ +if (!ENDC__CombinationType__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.ENDC_CombinationType_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__CombinationType__Type::enum_type)other_value; +return *this; +} + +ENDC__CombinationType__Type_template& ENDC__CombinationType__Type_template::operator=(ENDC__CombinationType__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +ENDC__CombinationType__Type_template& ENDC__CombinationType__Type_template::operator=(const ENDC__CombinationType__Type& other_value) +{ +if (other_value.enum_value == ENDC__CombinationType__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_CombinationType_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +ENDC__CombinationType__Type_template& ENDC__CombinationType__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__CombinationType__Type::enum_type)(const ENDC__CombinationType__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +} +return *this; +} + +ENDC__CombinationType__Type_template& ENDC__CombinationType__Type_template::operator=(const ENDC__CombinationType__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean ENDC__CombinationType__Type_template::match(ENDC__CombinationType__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +} +return FALSE; +} + +boolean ENDC__CombinationType__Type_template::match(const ENDC__CombinationType__Type& other_value, boolean) const +{ +if (other_value.enum_value == ENDC__CombinationType__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.ENDC_CombinationType_Type with an unbound value."); +return match(other_value.enum_value); +} + +ENDC__CombinationType__Type::enum_type ENDC__CombinationType__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +return single_value; +} + +void ENDC__CombinationType__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new ENDC__CombinationType__Type_template[list_length]; +} + +ENDC__CombinationType__Type_template& ENDC__CombinationType__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +return value_list.list_value[list_index]; +} + +void ENDC__CombinationType__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void ENDC__CombinationType__Type_template::set_value(template_sel other_value) { *this = other_value; } +void ENDC__CombinationType__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* ENDC__CombinationType__Type_template::clone() const { return new ENDC__CombinationType__Type_template(*this); } +const TTCN_Typedescriptor_t* ENDC__CombinationType__Type_template::get_descriptor() const { return &ENDC__CombinationType__Type_descr_; } +boolean ENDC__CombinationType__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void ENDC__CombinationType__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void ENDC__CombinationType__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(ENDC__CombinationType__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void ENDC__CombinationType__Type_template::log_match(const ENDC__CombinationType__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void ENDC__CombinationType__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +} +} + +void ENDC__CombinationType__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (ENDC__CombinationType__Type::enum_type)text_buf.pull_int().get_val(); +if (!ENDC__CombinationType__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.ENDC_CombinationType_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new ENDC__CombinationType__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.ENDC_CombinationType_Type."); +} +} + +boolean ENDC__CombinationType__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean ENDC__CombinationType__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + ENDC__CombinationType__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + ENDC__CombinationType__Type::enum_type enum_val = ENDC__CombinationType__Type::str_to_enum(m_p->get_enumerated()); + if (!ENDC__CombinationType__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_CombinationType_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + ENDC__CombinationType__Type_template* precondition = new ENDC__CombinationType__Type_template; + precondition->set_param(*m_p->get_elem(0)); + ENDC__CombinationType__Type_template* implied_template = new ENDC__CombinationType__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = ENDC__CombinationType__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.ENDC_CombinationType_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* ENDC__CombinationType__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(ENDC__CombinationType__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +ENDC__CA__BandCombination__Type::ENDC__CA__BandCombination__Type() +{ +enum_value = UNBOUND_VALUE; +} + +ENDC__CA__BandCombination__Type::ENDC__CA__BandCombination__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +ENDC__CA__BandCombination__Type::ENDC__CA__BandCombination__Type(enum_type other_value) +{ +enum_value = other_value; +} + +ENDC__CA__BandCombination__Type::ENDC__CA__BandCombination__Type(const ENDC__CA__BandCombination__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +enum_value = other_value.enum_value; +} + +ENDC__CA__BandCombination__Type& ENDC__CA__BandCombination__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +ENDC__CA__BandCombination__Type& ENDC__CA__BandCombination__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +ENDC__CA__BandCombination__Type& ENDC__CA__BandCombination__Type::operator=(const ENDC__CA__BandCombination__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean ENDC__CA__BandCombination__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +return enum_value == other_value; +} + +boolean ENDC__CA__BandCombination__Type::operator==(const ENDC__CA__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +return enum_value == other_value.enum_value; +} + +boolean ENDC__CA__BandCombination__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +return enum_value < other_value; +} + +boolean ENDC__CA__BandCombination__Type::operator<(const ENDC__CA__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +return enum_value < other_value.enum_value; +} + +boolean ENDC__CA__BandCombination__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +return enum_value > other_value; +} + +boolean ENDC__CA__BandCombination__Type::operator>(const ENDC__CA__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +return enum_value > other_value.enum_value; +} + +const char *ENDC__CA__BandCombination__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case DC__1A__n28A__n78A: return "DC_1A_n28A_n78A"; +case DC__1A__n78A__n79A: return "DC_1A_n78A_n79A"; +case DC__1A__n78A__n257A: return "DC_1A_n78A_n257A"; +case DC__1A__n79A__n257A: return "DC_1A_n79A_n257A"; +case DC__3A__n28A__n78A: return "DC_3A_n28A_n78A"; +case DC__3A__n78A__n79A: return "DC_3A_n78A_n79A"; +case DC__7A__n5A__n78A: return "DC_7A_n5A_n78A"; +case DC__3A__n78A__n257A: return "DC_3A_n78A_n257A"; +case DC__3A__n79A__n257A: return "DC_3A_n79A_n257A"; +case DC__7A__n28A__n78A: return "DC_7A_n28A_n78A"; +case DC__19A__n78A__n79A: return "DC_19A_n78A_n79A"; +case DC__19A__n78A__n257A: return "DC_19A_n78A_n257A"; +case DC__19A__n79A__n257A: return "DC_19A_n79A_n257A"; +case DC__20A__n28A__n78A: return "DC_20A_n28A_n78A"; +case DC__21A__n78A__n79A: return "DC_21A_n78A_n79A"; +case DC__28A__n7A__n78A: return "DC_28A_n7A_n78A"; +case DC__1A__n78C: return "DC_1A_n78C"; +case DC__3A__n78C: return "DC_3A_n78C"; +case DC__5A__n78C: return "DC_5A_n78C"; +case DC__8A__n77__2A: return "DC_8A_n77_2A"; +case DC__19A__n78__2A: return "DC_19A_n78_2A"; +case DC__19A__n78C: return "DC_19A_n78C"; +case DC__21A__n78__2A: return "DC_21A_n78_2A"; +case DC__21A__n78C: return "DC_21A_n78C"; +case DC__28A__n78C: return "DC_28A_n78C"; +case DC__42A__n78C: return "DC_42A_n78C"; +case DC__1A__n257G: return "DC_1A_n257G"; +case DC__2A__n260G: return "DC_2A_n260G"; +case DC__3A__n257G: return "DC_3A_n257G"; +case DC__5A__n260G: return "DC_5A_n260G"; +case DC__5A__n261G: return "DC_5A_n261G"; +case DC__5A__n261__2A: return "DC_5A_n261_2A"; +case DC__8A__n257G: return "DC_8A_n257G"; +case DC__12A__n260G: return "DC_12A_n260G"; +case DC__14A__n260G: return "DC_14A_n260G"; +case DC__19A__n257G: return "DC_19A_n257G"; +case DC__21A__n257G: return "DC_21A_n257G"; +case DC__30A__n260G: return "DC_30A_n260G"; +case DC__66A__n260G: return "DC_66A_n260G"; +case DC__66A__n261G: return "DC_66A_n261G"; +case DC__66A__n261__2A: return "DC_66A_n261_2A"; +default: return ""; +} +} + +ENDC__CA__BandCombination__Type::enum_type ENDC__CA__BandCombination__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "DC_1A_n28A_n78A")) return DC__1A__n28A__n78A; +else if (!strcmp(str_par, "DC_1A_n78A_n79A")) return DC__1A__n78A__n79A; +else if (!strcmp(str_par, "DC_1A_n78A_n257A")) return DC__1A__n78A__n257A; +else if (!strcmp(str_par, "DC_1A_n79A_n257A")) return DC__1A__n79A__n257A; +else if (!strcmp(str_par, "DC_3A_n28A_n78A")) return DC__3A__n28A__n78A; +else if (!strcmp(str_par, "DC_3A_n78A_n79A")) return DC__3A__n78A__n79A; +else if (!strcmp(str_par, "DC_7A_n5A_n78A")) return DC__7A__n5A__n78A; +else if (!strcmp(str_par, "DC_3A_n78A_n257A")) return DC__3A__n78A__n257A; +else if (!strcmp(str_par, "DC_3A_n79A_n257A")) return DC__3A__n79A__n257A; +else if (!strcmp(str_par, "DC_7A_n28A_n78A")) return DC__7A__n28A__n78A; +else if (!strcmp(str_par, "DC_19A_n78A_n79A")) return DC__19A__n78A__n79A; +else if (!strcmp(str_par, "DC_19A_n78A_n257A")) return DC__19A__n78A__n257A; +else if (!strcmp(str_par, "DC_19A_n79A_n257A")) return DC__19A__n79A__n257A; +else if (!strcmp(str_par, "DC_20A_n28A_n78A")) return DC__20A__n28A__n78A; +else if (!strcmp(str_par, "DC_21A_n78A_n79A")) return DC__21A__n78A__n79A; +else if (!strcmp(str_par, "DC_28A_n7A_n78A")) return DC__28A__n7A__n78A; +else if (!strcmp(str_par, "DC_1A_n78C")) return DC__1A__n78C; +else if (!strcmp(str_par, "DC_3A_n78C")) return DC__3A__n78C; +else if (!strcmp(str_par, "DC_5A_n78C")) return DC__5A__n78C; +else if (!strcmp(str_par, "DC_8A_n77_2A")) return DC__8A__n77__2A; +else if (!strcmp(str_par, "DC_19A_n78_2A")) return DC__19A__n78__2A; +else if (!strcmp(str_par, "DC_19A_n78C")) return DC__19A__n78C; +else if (!strcmp(str_par, "DC_21A_n78_2A")) return DC__21A__n78__2A; +else if (!strcmp(str_par, "DC_21A_n78C")) return DC__21A__n78C; +else if (!strcmp(str_par, "DC_28A_n78C")) return DC__28A__n78C; +else if (!strcmp(str_par, "DC_42A_n78C")) return DC__42A__n78C; +else if (!strcmp(str_par, "DC_1A_n257G")) return DC__1A__n257G; +else if (!strcmp(str_par, "DC_2A_n260G")) return DC__2A__n260G; +else if (!strcmp(str_par, "DC_3A_n257G")) return DC__3A__n257G; +else if (!strcmp(str_par, "DC_5A_n260G")) return DC__5A__n260G; +else if (!strcmp(str_par, "DC_5A_n261G")) return DC__5A__n261G; +else if (!strcmp(str_par, "DC_5A_n261_2A")) return DC__5A__n261__2A; +else if (!strcmp(str_par, "DC_8A_n257G")) return DC__8A__n257G; +else if (!strcmp(str_par, "DC_12A_n260G")) return DC__12A__n260G; +else if (!strcmp(str_par, "DC_14A_n260G")) return DC__14A__n260G; +else if (!strcmp(str_par, "DC_19A_n257G")) return DC__19A__n257G; +else if (!strcmp(str_par, "DC_21A_n257G")) return DC__21A__n257G; +else if (!strcmp(str_par, "DC_30A_n260G")) return DC__30A__n260G; +else if (!strcmp(str_par, "DC_66A_n260G")) return DC__66A__n260G; +else if (!strcmp(str_par, "DC_66A_n261G")) return DC__66A__n261G; +else if (!strcmp(str_par, "DC_66A_n261_2A")) return DC__66A__n261__2A; +else return UNKNOWN_VALUE; +} + +boolean ENDC__CA__BandCombination__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +case 8: +case 9: +case 10: +case 11: +case 12: +case 13: +case 14: +case 15: +case 16: +case 17: +case 18: +case 19: +case 20: +case 21: +case 22: +case 23: +case 24: +case 25: +case 26: +case 27: +case 28: +case 29: +case 30: +case 31: +case 32: +case 33: +case 34: +case 35: +case 36: +case 37: +case 38: +case 39: +case 40: +return TRUE; +default: +return FALSE; +} +} + +int ENDC__CA__BandCombination__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int ENDC__CA__BandCombination__Type::enum2int(const ENDC__CA__BandCombination__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void ENDC__CA__BandCombination__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type.", int_val); +enum_value = (enum_type)int_val; +} + +ENDC__CA__BandCombination__Type::operator ENDC__CA__BandCombination__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +return enum_value; +} + +boolean ENDC__CA__BandCombination__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void ENDC__CA__BandCombination__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* ENDC__CA__BandCombination__Type::clone() const { return new ENDC__CA__BandCombination__Type(*this); } +const TTCN_Typedescriptor_t* ENDC__CA__BandCombination__Type::get_descriptor() const { return &ENDC__CA__BandCombination__Type_descr_; } +void ENDC__CA__BandCombination__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void ENDC__CA__BandCombination__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.ENDC_CA_BandCombination_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_CA_BandCombination_Type."); + } +} + +Module_Param* ENDC__CA__BandCombination__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void ENDC__CA__BandCombination__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +text_buf.push_int(enum_value); +} + +void ENDC__CA__BandCombination__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.ENDC_CA_BandCombination_Type.", enum_value); +} + +void ENDC__CA__BandCombination__Type_template::copy_template(const ENDC__CA__BandCombination__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new ENDC__CA__BandCombination__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new ENDC__CA__BandCombination__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new ENDC__CA__BandCombination__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +} +} + +ENDC__CA__BandCombination__Type_template::ENDC__CA__BandCombination__Type_template() +{ +} + +ENDC__CA__BandCombination__Type_template::ENDC__CA__BandCombination__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +ENDC__CA__BandCombination__Type_template::ENDC__CA__BandCombination__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!ENDC__CA__BandCombination__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type with unknown numeric value %d.", other_value); +single_value = (ENDC__CA__BandCombination__Type::enum_type)other_value; +} + +ENDC__CA__BandCombination__Type_template::ENDC__CA__BandCombination__Type_template(ENDC__CA__BandCombination__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +ENDC__CA__BandCombination__Type_template::ENDC__CA__BandCombination__Type_template(const ENDC__CA__BandCombination__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == ENDC__CA__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +single_value = other_value.enum_value; +} + +ENDC__CA__BandCombination__Type_template::ENDC__CA__BandCombination__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__CA__BandCombination__Type::enum_type)(const ENDC__CA__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type from an unbound optional field."); +} +} + +ENDC__CA__BandCombination__Type_template::ENDC__CA__BandCombination__Type_template(ENDC__CA__BandCombination__Type_template* p_precondition, ENDC__CA__BandCombination__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +ENDC__CA__BandCombination__Type_template::ENDC__CA__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +ENDC__CA__BandCombination__Type_template::ENDC__CA__BandCombination__Type_template(const ENDC__CA__BandCombination__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +ENDC__CA__BandCombination__Type_template::~ENDC__CA__BandCombination__Type_template() +{ +clean_up(); +} + +boolean ENDC__CA__BandCombination__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean ENDC__CA__BandCombination__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != ENDC__CA__BandCombination__Type::UNBOUND_VALUE; +} + +void ENDC__CA__BandCombination__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +ENDC__CA__BandCombination__Type_template& ENDC__CA__BandCombination__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ENDC__CA__BandCombination__Type_template& ENDC__CA__BandCombination__Type_template::operator=(int other_value) +{ +if (!ENDC__CA__BandCombination__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__CA__BandCombination__Type::enum_type)other_value; +return *this; +} + +ENDC__CA__BandCombination__Type_template& ENDC__CA__BandCombination__Type_template::operator=(ENDC__CA__BandCombination__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +ENDC__CA__BandCombination__Type_template& ENDC__CA__BandCombination__Type_template::operator=(const ENDC__CA__BandCombination__Type& other_value) +{ +if (other_value.enum_value == ENDC__CA__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +ENDC__CA__BandCombination__Type_template& ENDC__CA__BandCombination__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (ENDC__CA__BandCombination__Type::enum_type)(const ENDC__CA__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +} +return *this; +} + +ENDC__CA__BandCombination__Type_template& ENDC__CA__BandCombination__Type_template::operator=(const ENDC__CA__BandCombination__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean ENDC__CA__BandCombination__Type_template::match(ENDC__CA__BandCombination__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +} +return FALSE; +} + +boolean ENDC__CA__BandCombination__Type_template::match(const ENDC__CA__BandCombination__Type& other_value, boolean) const +{ +if (other_value.enum_value == ENDC__CA__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type with an unbound value."); +return match(other_value.enum_value); +} + +ENDC__CA__BandCombination__Type::enum_type ENDC__CA__BandCombination__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +return single_value; +} + +void ENDC__CA__BandCombination__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new ENDC__CA__BandCombination__Type_template[list_length]; +} + +ENDC__CA__BandCombination__Type_template& ENDC__CA__BandCombination__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +return value_list.list_value[list_index]; +} + +void ENDC__CA__BandCombination__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void ENDC__CA__BandCombination__Type_template::set_value(template_sel other_value) { *this = other_value; } +void ENDC__CA__BandCombination__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* ENDC__CA__BandCombination__Type_template::clone() const { return new ENDC__CA__BandCombination__Type_template(*this); } +const TTCN_Typedescriptor_t* ENDC__CA__BandCombination__Type_template::get_descriptor() const { return &ENDC__CA__BandCombination__Type_descr_; } +boolean ENDC__CA__BandCombination__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void ENDC__CA__BandCombination__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void ENDC__CA__BandCombination__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(ENDC__CA__BandCombination__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void ENDC__CA__BandCombination__Type_template::log_match(const ENDC__CA__BandCombination__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void ENDC__CA__BandCombination__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +} +} + +void ENDC__CA__BandCombination__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (ENDC__CA__BandCombination__Type::enum_type)text_buf.pull_int().get_val(); +if (!ENDC__CA__BandCombination__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new ENDC__CA__BandCombination__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.ENDC_CA_BandCombination_Type."); +} +} + +boolean ENDC__CA__BandCombination__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean ENDC__CA__BandCombination__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + ENDC__CA__BandCombination__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + ENDC__CA__BandCombination__Type::enum_type enum_val = ENDC__CA__BandCombination__Type::str_to_enum(m_p->get_enumerated()); + if (!ENDC__CA__BandCombination__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.ENDC_CA_BandCombination_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + ENDC__CA__BandCombination__Type_template* precondition = new ENDC__CA__BandCombination__Type_template; + precondition->set_param(*m_p->get_elem(0)); + ENDC__CA__BandCombination__Type_template* implied_template = new ENDC__CA__BandCombination__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = ENDC__CA__BandCombination__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.ENDC_CA_BandCombination_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* ENDC__CA__BandCombination__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(ENDC__CA__BandCombination__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NR__CA__BandCombination__Type::NR__CA__BandCombination__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NR__CA__BandCombination__Type::NR__CA__BandCombination__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NR_CA_BandCombination_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NR__CA__BandCombination__Type::NR__CA__BandCombination__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NR__CA__BandCombination__Type::NR__CA__BandCombination__Type(const NR__CA__BandCombination__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +enum_value = other_value.enum_value; +} + +NR__CA__BandCombination__Type& NR__CA__BandCombination__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NR_CA_BandCombination_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NR__CA__BandCombination__Type& NR__CA__BandCombination__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NR__CA__BandCombination__Type& NR__CA__BandCombination__Type::operator=(const NR__CA__BandCombination__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NR__CA__BandCombination__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +return enum_value == other_value; +} + +boolean NR__CA__BandCombination__Type::operator==(const NR__CA__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +return enum_value == other_value.enum_value; +} + +boolean NR__CA__BandCombination__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +return enum_value < other_value; +} + +boolean NR__CA__BandCombination__Type::operator<(const NR__CA__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +return enum_value < other_value.enum_value; +} + +boolean NR__CA__BandCombination__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +return enum_value > other_value; +} + +boolean NR__CA__BandCombination__Type::operator>(const NR__CA__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +return enum_value > other_value.enum_value; +} + +const char *NR__CA__BandCombination__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case CA__n1A__n3A: return "CA_n1A_n3A"; +case CA__n1A__n8A: return "CA_n1A_n8A"; +case CA__n1A__n77A: return "CA_n1A_n77A"; +case CA__n1A__n78A: return "CA_n1A_n78A"; +case CA__n1A__n79A: return "CA_n1A_n79A"; +case CA__n2A__n5A: return "CA_n2A_n5A"; +case CA__n2A__n14A: return "CA_n2A_n14A"; +case CA__n2A__n48A: return "CA_n2A_n48A"; +case CA__n2A__n66A: return "CA_n2A_n66A"; +case CA__n2A__n77A: return "CA_n2A_n77A"; +case CA__n3A__n5A: return "CA_n3A_n5A"; +case CA__n3A__n8A: return "CA_n3A_n8A"; +case CA__n3A__n41A: return "CA_n3A_n41A"; +case CA__n3A__n77A: return "CA_n3A_n77A"; +case CA__n3A__n78A: return "CA_n3A_n78A"; +case CA__n5A__n7A: return "CA_n5A_n7A"; +case CA__n5A__n48A: return "CA_n5A_n48A"; +case CA__n5A__n66A: return "CA_n5A_n66A"; +case CA__n5A__n77A: return "CA_n5A_n77A"; +case CA__n5A__n78A: return "CA_n5A_n78A"; +case CA__n7A__n78A: return "CA_n7A_n78A"; +case CA__n8A__n78A: return "CA_n8A_n78A"; +case CA__n14A__n30A: return "CA_n14A_n30A"; +case CA__n14A__n66A: return "CA_n14A_n66A"; +case CA__n14A__n77A: return "CA_n14A_n77A"; +case CA__n20A__n78A: return "CA_n20A_n78A"; +case CA__n24A__n41A: return "CA_n24A_n41A"; +case CA__n24A__n48A: return "CA_n24A_n48A"; +case CA__n24A__n77A: return "CA_n24A_n77A"; +case CA__n26A__n66A: return "CA_n26A_n66A"; +case CA__n26A__n70A: return "CA_n26A_n70A"; +case CA__n28A__n41A: return "CA_n28A_n41A"; +case CA__n28A__n77A: return "CA_n28A_n77A"; +case CA__n28A__n78A: return "CA_n28A_n78A"; +case CA__n28A__n79A: return "CA_n28A_n79A"; +case CA__n29A__n66A: return "CA_n29A_n66A"; +case CA__n29A__n70A: return "CA_n29A_n70A"; +case CA__n29A__n71A: return "CA_n29A_n71A"; +case CA__n39A__n41A: return "CA_n39A_n41A"; +case CA__n41A__n66A: return "CA_n41A_n66A"; +case CA__n41A__n71A: return "CA_n41A_n71A"; +case CA__n41A__n79A: return "CA_n41A_n79A"; +case CA__n48A__n66A: return "CA_n48A_n66A"; +case CA__n48A__n70A: return "CA_n48A_n70A"; +case CA__n48A__n71A: return "CA_n48A_n71A"; +case CA__n48A__n77A: return "CA_n48A_n77A"; +case CA__n66A__n70A: return "CA_n66A_n70A"; +case CA__n66A__n71A: return "CA_n66A_n71A"; +case CA__n66A__n77A: return "CA_n66A_n77A"; +case CA__n70A__n71A: return "CA_n70A_n71A"; +case CA__n71A__n77A: return "CA_n71A_n77A"; +case CA__n77A__n79A: return "CA_n77A_n79A"; +case CA__n78A__n79A: return "CA_n78A_n79A"; +case CA__n78A__n257A: return "CA_n78A_n257A"; +case CA__n79A__n257A: return "CA_n79A_n257A"; +case CA__n1A__n258A: return "CA_n1A_n258A"; +case CA__n260A__n261A: return "CA_n260A_n261A"; +case CA__n41C: return "CA_n41C"; +case CA__n48B: return "CA_n48B"; +case CA__n66B: return "CA_n66B"; +case CA__n77C: return "CA_n77C"; +case CA__n78C: return "CA_n78C"; +case CA__n257G: return "CA_n257G"; +case CA__n258G: return "CA_n258G"; +case CA__n260G: return "CA_n260G"; +case CA__n261G: return "CA_n261G"; +case CA__n48__2A: return "CA_n48_2A"; +case CA__n66__2A: return "CA_n66_2A"; +case CA__n71__2A: return "CA_n71_2A"; +case CA__n77__2A: return "CA_n77_2A"; +case CA__n78__2A: return "CA_n78_2A"; +case CA__n261__2A: return "CA_n261_2A"; +default: return ""; +} +} + +NR__CA__BandCombination__Type::enum_type NR__CA__BandCombination__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "CA_n1A_n3A")) return CA__n1A__n3A; +else if (!strcmp(str_par, "CA_n1A_n8A")) return CA__n1A__n8A; +else if (!strcmp(str_par, "CA_n1A_n77A")) return CA__n1A__n77A; +else if (!strcmp(str_par, "CA_n1A_n78A")) return CA__n1A__n78A; +else if (!strcmp(str_par, "CA_n1A_n79A")) return CA__n1A__n79A; +else if (!strcmp(str_par, "CA_n2A_n5A")) return CA__n2A__n5A; +else if (!strcmp(str_par, "CA_n2A_n14A")) return CA__n2A__n14A; +else if (!strcmp(str_par, "CA_n2A_n48A")) return CA__n2A__n48A; +else if (!strcmp(str_par, "CA_n2A_n66A")) return CA__n2A__n66A; +else if (!strcmp(str_par, "CA_n2A_n77A")) return CA__n2A__n77A; +else if (!strcmp(str_par, "CA_n3A_n5A")) return CA__n3A__n5A; +else if (!strcmp(str_par, "CA_n3A_n8A")) return CA__n3A__n8A; +else if (!strcmp(str_par, "CA_n3A_n41A")) return CA__n3A__n41A; +else if (!strcmp(str_par, "CA_n3A_n77A")) return CA__n3A__n77A; +else if (!strcmp(str_par, "CA_n3A_n78A")) return CA__n3A__n78A; +else if (!strcmp(str_par, "CA_n5A_n7A")) return CA__n5A__n7A; +else if (!strcmp(str_par, "CA_n5A_n48A")) return CA__n5A__n48A; +else if (!strcmp(str_par, "CA_n5A_n66A")) return CA__n5A__n66A; +else if (!strcmp(str_par, "CA_n5A_n77A")) return CA__n5A__n77A; +else if (!strcmp(str_par, "CA_n5A_n78A")) return CA__n5A__n78A; +else if (!strcmp(str_par, "CA_n7A_n78A")) return CA__n7A__n78A; +else if (!strcmp(str_par, "CA_n8A_n78A")) return CA__n8A__n78A; +else if (!strcmp(str_par, "CA_n14A_n30A")) return CA__n14A__n30A; +else if (!strcmp(str_par, "CA_n14A_n66A")) return CA__n14A__n66A; +else if (!strcmp(str_par, "CA_n14A_n77A")) return CA__n14A__n77A; +else if (!strcmp(str_par, "CA_n20A_n78A")) return CA__n20A__n78A; +else if (!strcmp(str_par, "CA_n24A_n41A")) return CA__n24A__n41A; +else if (!strcmp(str_par, "CA_n24A_n48A")) return CA__n24A__n48A; +else if (!strcmp(str_par, "CA_n24A_n77A")) return CA__n24A__n77A; +else if (!strcmp(str_par, "CA_n26A_n66A")) return CA__n26A__n66A; +else if (!strcmp(str_par, "CA_n26A_n70A")) return CA__n26A__n70A; +else if (!strcmp(str_par, "CA_n28A_n41A")) return CA__n28A__n41A; +else if (!strcmp(str_par, "CA_n28A_n77A")) return CA__n28A__n77A; +else if (!strcmp(str_par, "CA_n28A_n78A")) return CA__n28A__n78A; +else if (!strcmp(str_par, "CA_n28A_n79A")) return CA__n28A__n79A; +else if (!strcmp(str_par, "CA_n29A_n66A")) return CA__n29A__n66A; +else if (!strcmp(str_par, "CA_n29A_n70A")) return CA__n29A__n70A; +else if (!strcmp(str_par, "CA_n29A_n71A")) return CA__n29A__n71A; +else if (!strcmp(str_par, "CA_n39A_n41A")) return CA__n39A__n41A; +else if (!strcmp(str_par, "CA_n41A_n66A")) return CA__n41A__n66A; +else if (!strcmp(str_par, "CA_n41A_n71A")) return CA__n41A__n71A; +else if (!strcmp(str_par, "CA_n41A_n79A")) return CA__n41A__n79A; +else if (!strcmp(str_par, "CA_n48A_n66A")) return CA__n48A__n66A; +else if (!strcmp(str_par, "CA_n48A_n70A")) return CA__n48A__n70A; +else if (!strcmp(str_par, "CA_n48A_n71A")) return CA__n48A__n71A; +else if (!strcmp(str_par, "CA_n48A_n77A")) return CA__n48A__n77A; +else if (!strcmp(str_par, "CA_n66A_n70A")) return CA__n66A__n70A; +else if (!strcmp(str_par, "CA_n66A_n71A")) return CA__n66A__n71A; +else if (!strcmp(str_par, "CA_n66A_n77A")) return CA__n66A__n77A; +else if (!strcmp(str_par, "CA_n70A_n71A")) return CA__n70A__n71A; +else if (!strcmp(str_par, "CA_n71A_n77A")) return CA__n71A__n77A; +else if (!strcmp(str_par, "CA_n77A_n79A")) return CA__n77A__n79A; +else if (!strcmp(str_par, "CA_n78A_n79A")) return CA__n78A__n79A; +else if (!strcmp(str_par, "CA_n78A_n257A")) return CA__n78A__n257A; +else if (!strcmp(str_par, "CA_n79A_n257A")) return CA__n79A__n257A; +else if (!strcmp(str_par, "CA_n1A_n258A")) return CA__n1A__n258A; +else if (!strcmp(str_par, "CA_n260A_n261A")) return CA__n260A__n261A; +else if (!strcmp(str_par, "CA_n41C")) return CA__n41C; +else if (!strcmp(str_par, "CA_n48B")) return CA__n48B; +else if (!strcmp(str_par, "CA_n66B")) return CA__n66B; +else if (!strcmp(str_par, "CA_n77C")) return CA__n77C; +else if (!strcmp(str_par, "CA_n78C")) return CA__n78C; +else if (!strcmp(str_par, "CA_n257G")) return CA__n257G; +else if (!strcmp(str_par, "CA_n258G")) return CA__n258G; +else if (!strcmp(str_par, "CA_n260G")) return CA__n260G; +else if (!strcmp(str_par, "CA_n261G")) return CA__n261G; +else if (!strcmp(str_par, "CA_n48_2A")) return CA__n48__2A; +else if (!strcmp(str_par, "CA_n66_2A")) return CA__n66__2A; +else if (!strcmp(str_par, "CA_n71_2A")) return CA__n71__2A; +else if (!strcmp(str_par, "CA_n77_2A")) return CA__n77__2A; +else if (!strcmp(str_par, "CA_n78_2A")) return CA__n78__2A; +else if (!strcmp(str_par, "CA_n261_2A")) return CA__n261__2A; +else return UNKNOWN_VALUE; +} + +boolean NR__CA__BandCombination__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +case 8: +case 9: +case 10: +case 11: +case 12: +case 13: +case 14: +case 15: +case 16: +case 17: +case 18: +case 19: +case 20: +case 21: +case 22: +case 23: +case 24: +case 25: +case 26: +case 27: +case 28: +case 29: +case 30: +case 31: +case 32: +case 33: +case 34: +case 35: +case 36: +case 37: +case 38: +case 39: +case 40: +case 41: +case 42: +case 43: +case 44: +case 45: +case 46: +case 47: +case 48: +case 49: +case 50: +case 51: +case 52: +case 53: +case 54: +case 55: +case 56: +case 57: +case 58: +case 59: +case 60: +case 61: +case 62: +case 63: +case 64: +case 65: +case 66: +case 67: +case 68: +case 69: +case 70: +case 71: +return TRUE; +default: +return FALSE; +} +} + +int NR__CA__BandCombination__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_CA_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NR__CA__BandCombination__Type::enum2int(const NR__CA__BandCombination__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_CA_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NR__CA__BandCombination__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NR_CA_BandCombination_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NR__CA__BandCombination__Type::operator NR__CA__BandCombination__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +return enum_value; +} + +boolean NR__CA__BandCombination__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NR__CA__BandCombination__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NR__CA__BandCombination__Type::clone() const { return new NR__CA__BandCombination__Type(*this); } +const TTCN_Typedescriptor_t* NR__CA__BandCombination__Type::get_descriptor() const { return &NR__CA__BandCombination__Type_descr_; } +void NR__CA__BandCombination__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NR__CA__BandCombination__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NR_CA_BandCombination_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_CA_BandCombination_Type."); + } +} + +Module_Param* NR__CA__BandCombination__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NR__CA__BandCombination__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +text_buf.push_int(enum_value); +} + +void NR__CA__BandCombination__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NR_CA_BandCombination_Type.", enum_value); +} + +void NR__CA__BandCombination__Type_template::copy_template(const NR__CA__BandCombination__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NR__CA__BandCombination__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NR__CA__BandCombination__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NR__CA__BandCombination__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +} +} + +NR__CA__BandCombination__Type_template::NR__CA__BandCombination__Type_template() +{ +} + +NR__CA__BandCombination__Type_template::NR__CA__BandCombination__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NR__CA__BandCombination__Type_template::NR__CA__BandCombination__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NR__CA__BandCombination__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NR_CA_BandCombination_Type with unknown numeric value %d.", other_value); +single_value = (NR__CA__BandCombination__Type::enum_type)other_value; +} + +NR__CA__BandCombination__Type_template::NR__CA__BandCombination__Type_template(NR__CA__BandCombination__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NR__CA__BandCombination__Type_template::NR__CA__BandCombination__Type_template(const NR__CA__BandCombination__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NR__CA__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +single_value = other_value.enum_value; +} + +NR__CA__BandCombination__Type_template::NR__CA__BandCombination__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__CA__BandCombination__Type::enum_type)(const NR__CA__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NR_CA_BandCombination_Type from an unbound optional field."); +} +} + +NR__CA__BandCombination__Type_template::NR__CA__BandCombination__Type_template(NR__CA__BandCombination__Type_template* p_precondition, NR__CA__BandCombination__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NR__CA__BandCombination__Type_template::NR__CA__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NR__CA__BandCombination__Type_template::NR__CA__BandCombination__Type_template(const NR__CA__BandCombination__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NR__CA__BandCombination__Type_template::~NR__CA__BandCombination__Type_template() +{ +clean_up(); +} + +boolean NR__CA__BandCombination__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NR__CA__BandCombination__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NR__CA__BandCombination__Type::UNBOUND_VALUE; +} + +void NR__CA__BandCombination__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NR__CA__BandCombination__Type_template& NR__CA__BandCombination__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__CA__BandCombination__Type_template& NR__CA__BandCombination__Type_template::operator=(int other_value) +{ +if (!NR__CA__BandCombination__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NR_CA_BandCombination_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NR__CA__BandCombination__Type::enum_type)other_value; +return *this; +} + +NR__CA__BandCombination__Type_template& NR__CA__BandCombination__Type_template::operator=(NR__CA__BandCombination__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NR__CA__BandCombination__Type_template& NR__CA__BandCombination__Type_template::operator=(const NR__CA__BandCombination__Type& other_value) +{ +if (other_value.enum_value == NR__CA__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_CA_BandCombination_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NR__CA__BandCombination__Type_template& NR__CA__BandCombination__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__CA__BandCombination__Type::enum_type)(const NR__CA__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +} +return *this; +} + +NR__CA__BandCombination__Type_template& NR__CA__BandCombination__Type_template::operator=(const NR__CA__BandCombination__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NR__CA__BandCombination__Type_template::match(NR__CA__BandCombination__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +} +return FALSE; +} + +boolean NR__CA__BandCombination__Type_template::match(const NR__CA__BandCombination__Type& other_value, boolean) const +{ +if (other_value.enum_value == NR__CA__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NR_CA_BandCombination_Type with an unbound value."); +return match(other_value.enum_value); +} + +NR__CA__BandCombination__Type::enum_type NR__CA__BandCombination__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +return single_value; +} + +void NR__CA__BandCombination__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NR__CA__BandCombination__Type_template[list_length]; +} + +NR__CA__BandCombination__Type_template& NR__CA__BandCombination__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +return value_list.list_value[list_index]; +} + +void NR__CA__BandCombination__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NR__CA__BandCombination__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NR__CA__BandCombination__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NR__CA__BandCombination__Type_template::clone() const { return new NR__CA__BandCombination__Type_template(*this); } +const TTCN_Typedescriptor_t* NR__CA__BandCombination__Type_template::get_descriptor() const { return &NR__CA__BandCombination__Type_descr_; } +boolean NR__CA__BandCombination__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NR__CA__BandCombination__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NR__CA__BandCombination__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NR__CA__BandCombination__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NR__CA__BandCombination__Type_template::log_match(const NR__CA__BandCombination__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NR__CA__BandCombination__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +} +} + +void NR__CA__BandCombination__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NR__CA__BandCombination__Type::enum_type)text_buf.pull_int().get_val(); +if (!NR__CA__BandCombination__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NR_CA_BandCombination_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NR__CA__BandCombination__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NR_CA_BandCombination_Type."); +} +} + +boolean NR__CA__BandCombination__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NR__CA__BandCombination__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NR__CA__BandCombination__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NR__CA__BandCombination__Type::enum_type enum_val = NR__CA__BandCombination__Type::str_to_enum(m_p->get_enumerated()); + if (!NR__CA__BandCombination__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_CA_BandCombination_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NR__CA__BandCombination__Type_template* precondition = new NR__CA__BandCombination__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NR__CA__BandCombination__Type_template* implied_template = new NR__CA__BandCombination__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NR__CA__BandCombination__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NR_CA_BandCombination_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NR__CA__BandCombination__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NR__CA__BandCombination__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NR__CA__3CC__BandCombination__Type::NR__CA__3CC__BandCombination__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NR__CA__3CC__BandCombination__Type::NR__CA__3CC__BandCombination__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NR__CA__3CC__BandCombination__Type::NR__CA__3CC__BandCombination__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NR__CA__3CC__BandCombination__Type::NR__CA__3CC__BandCombination__Type(const NR__CA__3CC__BandCombination__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +enum_value = other_value.enum_value; +} + +NR__CA__3CC__BandCombination__Type& NR__CA__3CC__BandCombination__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NR__CA__3CC__BandCombination__Type& NR__CA__3CC__BandCombination__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NR__CA__3CC__BandCombination__Type& NR__CA__3CC__BandCombination__Type::operator=(const NR__CA__3CC__BandCombination__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NR__CA__3CC__BandCombination__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +return enum_value == other_value; +} + +boolean NR__CA__3CC__BandCombination__Type::operator==(const NR__CA__3CC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +return enum_value == other_value.enum_value; +} + +boolean NR__CA__3CC__BandCombination__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +return enum_value < other_value; +} + +boolean NR__CA__3CC__BandCombination__Type::operator<(const NR__CA__3CC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +return enum_value < other_value.enum_value; +} + +boolean NR__CA__3CC__BandCombination__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +return enum_value > other_value; +} + +boolean NR__CA__3CC__BandCombination__Type::operator>(const NR__CA__3CC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +return enum_value > other_value.enum_value; +} + +const char *NR__CA__3CC__BandCombination__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case CA__n257H: return "CA_n257H"; +case CA__n258H: return "CA_n258H"; +case CA__n260H: return "CA_n260H"; +case CA__n261H: return "CA_n261H"; +default: return ""; +} +} + +NR__CA__3CC__BandCombination__Type::enum_type NR__CA__3CC__BandCombination__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "CA_n257H")) return CA__n257H; +else if (!strcmp(str_par, "CA_n258H")) return CA__n258H; +else if (!strcmp(str_par, "CA_n260H")) return CA__n260H; +else if (!strcmp(str_par, "CA_n261H")) return CA__n261H; +else return UNKNOWN_VALUE; +} + +boolean NR__CA__3CC__BandCombination__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +return TRUE; +default: +return FALSE; +} +} + +int NR__CA__3CC__BandCombination__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NR__CA__3CC__BandCombination__Type::enum2int(const NR__CA__3CC__BandCombination__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NR__CA__3CC__BandCombination__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NR__CA__3CC__BandCombination__Type::operator NR__CA__3CC__BandCombination__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +return enum_value; +} + +boolean NR__CA__3CC__BandCombination__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NR__CA__3CC__BandCombination__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NR__CA__3CC__BandCombination__Type::clone() const { return new NR__CA__3CC__BandCombination__Type(*this); } +const TTCN_Typedescriptor_t* NR__CA__3CC__BandCombination__Type::get_descriptor() const { return &NR__CA__3CC__BandCombination__Type_descr_; } +void NR__CA__3CC__BandCombination__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NR__CA__3CC__BandCombination__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NR_CA_3CC_BandCombination_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_CA_3CC_BandCombination_Type."); + } +} + +Module_Param* NR__CA__3CC__BandCombination__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NR__CA__3CC__BandCombination__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +text_buf.push_int(enum_value); +} + +void NR__CA__3CC__BandCombination__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type.", enum_value); +} + +void NR__CA__3CC__BandCombination__Type_template::copy_template(const NR__CA__3CC__BandCombination__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NR__CA__3CC__BandCombination__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NR__CA__3CC__BandCombination__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NR__CA__3CC__BandCombination__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +} +} + +NR__CA__3CC__BandCombination__Type_template::NR__CA__3CC__BandCombination__Type_template() +{ +} + +NR__CA__3CC__BandCombination__Type_template::NR__CA__3CC__BandCombination__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NR__CA__3CC__BandCombination__Type_template::NR__CA__3CC__BandCombination__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NR__CA__3CC__BandCombination__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type with unknown numeric value %d.", other_value); +single_value = (NR__CA__3CC__BandCombination__Type::enum_type)other_value; +} + +NR__CA__3CC__BandCombination__Type_template::NR__CA__3CC__BandCombination__Type_template(NR__CA__3CC__BandCombination__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NR__CA__3CC__BandCombination__Type_template::NR__CA__3CC__BandCombination__Type_template(const NR__CA__3CC__BandCombination__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NR__CA__3CC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +single_value = other_value.enum_value; +} + +NR__CA__3CC__BandCombination__Type_template::NR__CA__3CC__BandCombination__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__CA__3CC__BandCombination__Type::enum_type)(const NR__CA__3CC__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type from an unbound optional field."); +} +} + +NR__CA__3CC__BandCombination__Type_template::NR__CA__3CC__BandCombination__Type_template(NR__CA__3CC__BandCombination__Type_template* p_precondition, NR__CA__3CC__BandCombination__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NR__CA__3CC__BandCombination__Type_template::NR__CA__3CC__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NR__CA__3CC__BandCombination__Type_template::NR__CA__3CC__BandCombination__Type_template(const NR__CA__3CC__BandCombination__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NR__CA__3CC__BandCombination__Type_template::~NR__CA__3CC__BandCombination__Type_template() +{ +clean_up(); +} + +boolean NR__CA__3CC__BandCombination__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NR__CA__3CC__BandCombination__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NR__CA__3CC__BandCombination__Type::UNBOUND_VALUE; +} + +void NR__CA__3CC__BandCombination__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NR__CA__3CC__BandCombination__Type_template& NR__CA__3CC__BandCombination__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__CA__3CC__BandCombination__Type_template& NR__CA__3CC__BandCombination__Type_template::operator=(int other_value) +{ +if (!NR__CA__3CC__BandCombination__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NR__CA__3CC__BandCombination__Type::enum_type)other_value; +return *this; +} + +NR__CA__3CC__BandCombination__Type_template& NR__CA__3CC__BandCombination__Type_template::operator=(NR__CA__3CC__BandCombination__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NR__CA__3CC__BandCombination__Type_template& NR__CA__3CC__BandCombination__Type_template::operator=(const NR__CA__3CC__BandCombination__Type& other_value) +{ +if (other_value.enum_value == NR__CA__3CC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NR__CA__3CC__BandCombination__Type_template& NR__CA__3CC__BandCombination__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__CA__3CC__BandCombination__Type::enum_type)(const NR__CA__3CC__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +} +return *this; +} + +NR__CA__3CC__BandCombination__Type_template& NR__CA__3CC__BandCombination__Type_template::operator=(const NR__CA__3CC__BandCombination__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NR__CA__3CC__BandCombination__Type_template::match(NR__CA__3CC__BandCombination__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +} +return FALSE; +} + +boolean NR__CA__3CC__BandCombination__Type_template::match(const NR__CA__3CC__BandCombination__Type& other_value, boolean) const +{ +if (other_value.enum_value == NR__CA__3CC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type with an unbound value."); +return match(other_value.enum_value); +} + +NR__CA__3CC__BandCombination__Type::enum_type NR__CA__3CC__BandCombination__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +return single_value; +} + +void NR__CA__3CC__BandCombination__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NR__CA__3CC__BandCombination__Type_template[list_length]; +} + +NR__CA__3CC__BandCombination__Type_template& NR__CA__3CC__BandCombination__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +return value_list.list_value[list_index]; +} + +void NR__CA__3CC__BandCombination__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NR__CA__3CC__BandCombination__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NR__CA__3CC__BandCombination__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NR__CA__3CC__BandCombination__Type_template::clone() const { return new NR__CA__3CC__BandCombination__Type_template(*this); } +const TTCN_Typedescriptor_t* NR__CA__3CC__BandCombination__Type_template::get_descriptor() const { return &NR__CA__3CC__BandCombination__Type_descr_; } +boolean NR__CA__3CC__BandCombination__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NR__CA__3CC__BandCombination__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NR__CA__3CC__BandCombination__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NR__CA__3CC__BandCombination__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NR__CA__3CC__BandCombination__Type_template::log_match(const NR__CA__3CC__BandCombination__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NR__CA__3CC__BandCombination__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +} +} + +void NR__CA__3CC__BandCombination__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NR__CA__3CC__BandCombination__Type::enum_type)text_buf.pull_int().get_val(); +if (!NR__CA__3CC__BandCombination__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NR__CA__3CC__BandCombination__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NR_CA_3CC_BandCombination_Type."); +} +} + +boolean NR__CA__3CC__BandCombination__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NR__CA__3CC__BandCombination__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NR__CA__3CC__BandCombination__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NR__CA__3CC__BandCombination__Type::enum_type enum_val = NR__CA__3CC__BandCombination__Type::str_to_enum(m_p->get_enumerated()); + if (!NR__CA__3CC__BandCombination__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_CA_3CC_BandCombination_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NR__CA__3CC__BandCombination__Type_template* precondition = new NR__CA__3CC__BandCombination__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NR__CA__3CC__BandCombination__Type_template* implied_template = new NR__CA__3CC__BandCombination__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NR__CA__3CC__BandCombination__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NR_CA_3CC_BandCombination_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NR__CA__3CC__BandCombination__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NR__CA__3CC__BandCombination__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NR__DC__BandCombination__Type::NR__DC__BandCombination__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NR__DC__BandCombination__Type::NR__DC__BandCombination__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NR_DC_BandCombination_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NR__DC__BandCombination__Type::NR__DC__BandCombination__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NR__DC__BandCombination__Type::NR__DC__BandCombination__Type(const NR__DC__BandCombination__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +enum_value = other_value.enum_value; +} + +NR__DC__BandCombination__Type& NR__DC__BandCombination__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NR_DC_BandCombination_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NR__DC__BandCombination__Type& NR__DC__BandCombination__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NR__DC__BandCombination__Type& NR__DC__BandCombination__Type::operator=(const NR__DC__BandCombination__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NR__DC__BandCombination__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +return enum_value == other_value; +} + +boolean NR__DC__BandCombination__Type::operator==(const NR__DC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +return enum_value == other_value.enum_value; +} + +boolean NR__DC__BandCombination__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +return enum_value < other_value; +} + +boolean NR__DC__BandCombination__Type::operator<(const NR__DC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +return enum_value < other_value.enum_value; +} + +boolean NR__DC__BandCombination__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +return enum_value > other_value; +} + +boolean NR__DC__BandCombination__Type::operator>(const NR__DC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +return enum_value > other_value.enum_value; +} + +const char *NR__DC__BandCombination__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case DC__n1A__n258A: return "DC_n1A_n258A"; +case DC__n77A__n261A: return "DC_n77A_n261A"; +case DC__n78A__n257A: return "DC_n78A_n257A"; +case DC__n78A__n258A: return "DC_n78A_n258A"; +case DC__n79A__n257A: return "DC_n79A_n257A"; +case DC__n48A__n70A: return "DC_n48A_n70A"; +default: return ""; +} +} + +NR__DC__BandCombination__Type::enum_type NR__DC__BandCombination__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "DC_n1A_n258A")) return DC__n1A__n258A; +else if (!strcmp(str_par, "DC_n77A_n261A")) return DC__n77A__n261A; +else if (!strcmp(str_par, "DC_n78A_n257A")) return DC__n78A__n257A; +else if (!strcmp(str_par, "DC_n78A_n258A")) return DC__n78A__n258A; +else if (!strcmp(str_par, "DC_n79A_n257A")) return DC__n79A__n257A; +else if (!strcmp(str_par, "DC_n48A_n70A")) return DC__n48A__n70A; +else return UNKNOWN_VALUE; +} + +boolean NR__DC__BandCombination__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +return TRUE; +default: +return FALSE; +} +} + +int NR__DC__BandCombination__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_DC_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NR__DC__BandCombination__Type::enum2int(const NR__DC__BandCombination__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_DC_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NR__DC__BandCombination__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NR_DC_BandCombination_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NR__DC__BandCombination__Type::operator NR__DC__BandCombination__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +return enum_value; +} + +boolean NR__DC__BandCombination__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NR__DC__BandCombination__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NR__DC__BandCombination__Type::clone() const { return new NR__DC__BandCombination__Type(*this); } +const TTCN_Typedescriptor_t* NR__DC__BandCombination__Type::get_descriptor() const { return &NR__DC__BandCombination__Type_descr_; } +void NR__DC__BandCombination__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NR__DC__BandCombination__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NR_DC_BandCombination_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_DC_BandCombination_Type."); + } +} + +Module_Param* NR__DC__BandCombination__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NR__DC__BandCombination__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +text_buf.push_int(enum_value); +} + +void NR__DC__BandCombination__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NR_DC_BandCombination_Type.", enum_value); +} + +void NR__DC__BandCombination__Type_template::copy_template(const NR__DC__BandCombination__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NR__DC__BandCombination__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NR__DC__BandCombination__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NR__DC__BandCombination__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +} +} + +NR__DC__BandCombination__Type_template::NR__DC__BandCombination__Type_template() +{ +} + +NR__DC__BandCombination__Type_template::NR__DC__BandCombination__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NR__DC__BandCombination__Type_template::NR__DC__BandCombination__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NR__DC__BandCombination__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NR_DC_BandCombination_Type with unknown numeric value %d.", other_value); +single_value = (NR__DC__BandCombination__Type::enum_type)other_value; +} + +NR__DC__BandCombination__Type_template::NR__DC__BandCombination__Type_template(NR__DC__BandCombination__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NR__DC__BandCombination__Type_template::NR__DC__BandCombination__Type_template(const NR__DC__BandCombination__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NR__DC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +single_value = other_value.enum_value; +} + +NR__DC__BandCombination__Type_template::NR__DC__BandCombination__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__DC__BandCombination__Type::enum_type)(const NR__DC__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NR_DC_BandCombination_Type from an unbound optional field."); +} +} + +NR__DC__BandCombination__Type_template::NR__DC__BandCombination__Type_template(NR__DC__BandCombination__Type_template* p_precondition, NR__DC__BandCombination__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NR__DC__BandCombination__Type_template::NR__DC__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NR__DC__BandCombination__Type_template::NR__DC__BandCombination__Type_template(const NR__DC__BandCombination__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NR__DC__BandCombination__Type_template::~NR__DC__BandCombination__Type_template() +{ +clean_up(); +} + +boolean NR__DC__BandCombination__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NR__DC__BandCombination__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NR__DC__BandCombination__Type::UNBOUND_VALUE; +} + +void NR__DC__BandCombination__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NR__DC__BandCombination__Type_template& NR__DC__BandCombination__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__DC__BandCombination__Type_template& NR__DC__BandCombination__Type_template::operator=(int other_value) +{ +if (!NR__DC__BandCombination__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NR_DC_BandCombination_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NR__DC__BandCombination__Type::enum_type)other_value; +return *this; +} + +NR__DC__BandCombination__Type_template& NR__DC__BandCombination__Type_template::operator=(NR__DC__BandCombination__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NR__DC__BandCombination__Type_template& NR__DC__BandCombination__Type_template::operator=(const NR__DC__BandCombination__Type& other_value) +{ +if (other_value.enum_value == NR__DC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_DC_BandCombination_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NR__DC__BandCombination__Type_template& NR__DC__BandCombination__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__DC__BandCombination__Type::enum_type)(const NR__DC__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +} +return *this; +} + +NR__DC__BandCombination__Type_template& NR__DC__BandCombination__Type_template::operator=(const NR__DC__BandCombination__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NR__DC__BandCombination__Type_template::match(NR__DC__BandCombination__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +} +return FALSE; +} + +boolean NR__DC__BandCombination__Type_template::match(const NR__DC__BandCombination__Type& other_value, boolean) const +{ +if (other_value.enum_value == NR__DC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NR_DC_BandCombination_Type with an unbound value."); +return match(other_value.enum_value); +} + +NR__DC__BandCombination__Type::enum_type NR__DC__BandCombination__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +return single_value; +} + +void NR__DC__BandCombination__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NR__DC__BandCombination__Type_template[list_length]; +} + +NR__DC__BandCombination__Type_template& NR__DC__BandCombination__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +return value_list.list_value[list_index]; +} + +void NR__DC__BandCombination__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NR__DC__BandCombination__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NR__DC__BandCombination__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NR__DC__BandCombination__Type_template::clone() const { return new NR__DC__BandCombination__Type_template(*this); } +const TTCN_Typedescriptor_t* NR__DC__BandCombination__Type_template::get_descriptor() const { return &NR__DC__BandCombination__Type_descr_; } +boolean NR__DC__BandCombination__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NR__DC__BandCombination__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NR__DC__BandCombination__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NR__DC__BandCombination__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NR__DC__BandCombination__Type_template::log_match(const NR__DC__BandCombination__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NR__DC__BandCombination__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +} +} + +void NR__DC__BandCombination__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NR__DC__BandCombination__Type::enum_type)text_buf.pull_int().get_val(); +if (!NR__DC__BandCombination__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NR_DC_BandCombination_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NR__DC__BandCombination__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NR_DC_BandCombination_Type."); +} +} + +boolean NR__DC__BandCombination__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NR__DC__BandCombination__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NR__DC__BandCombination__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NR__DC__BandCombination__Type::enum_type enum_val = NR__DC__BandCombination__Type::str_to_enum(m_p->get_enumerated()); + if (!NR__DC__BandCombination__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_DC_BandCombination_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NR__DC__BandCombination__Type_template* precondition = new NR__DC__BandCombination__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NR__DC__BandCombination__Type_template* implied_template = new NR__DC__BandCombination__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NR__DC__BandCombination__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NR_DC_BandCombination_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NR__DC__BandCombination__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NR__DC__BandCombination__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NR__DC__CA__BandCombination__Type::NR__DC__CA__BandCombination__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NR__DC__CA__BandCombination__Type::NR__DC__CA__BandCombination__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NR__DC__CA__BandCombination__Type::NR__DC__CA__BandCombination__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NR__DC__CA__BandCombination__Type::NR__DC__CA__BandCombination__Type(const NR__DC__CA__BandCombination__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +enum_value = other_value.enum_value; +} + +NR__DC__CA__BandCombination__Type& NR__DC__CA__BandCombination__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NR__DC__CA__BandCombination__Type& NR__DC__CA__BandCombination__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NR__DC__CA__BandCombination__Type& NR__DC__CA__BandCombination__Type::operator=(const NR__DC__CA__BandCombination__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NR__DC__CA__BandCombination__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +return enum_value == other_value; +} + +boolean NR__DC__CA__BandCombination__Type::operator==(const NR__DC__CA__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +return enum_value == other_value.enum_value; +} + +boolean NR__DC__CA__BandCombination__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +return enum_value < other_value; +} + +boolean NR__DC__CA__BandCombination__Type::operator<(const NR__DC__CA__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +return enum_value < other_value.enum_value; +} + +boolean NR__DC__CA__BandCombination__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +return enum_value > other_value; +} + +boolean NR__DC__CA__BandCombination__Type::operator>(const NR__DC__CA__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +return enum_value > other_value.enum_value; +} + +const char *NR__DC__CA__BandCombination__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case DC__n1A__n258G: return "DC_n1A_n258G"; +case DC__n77A__n261G: return "DC_n77A_n261G"; +case DC__n78A__n257G: return "DC_n78A_n257G"; +case DC__n78A__n258G: return "DC_n78A_n258G"; +case DC__n79A__n257G: return "DC_n79A_n257G"; +default: return ""; +} +} + +NR__DC__CA__BandCombination__Type::enum_type NR__DC__CA__BandCombination__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "DC_n1A_n258G")) return DC__n1A__n258G; +else if (!strcmp(str_par, "DC_n77A_n261G")) return DC__n77A__n261G; +else if (!strcmp(str_par, "DC_n78A_n257G")) return DC__n78A__n257G; +else if (!strcmp(str_par, "DC_n78A_n258G")) return DC__n78A__n258G; +else if (!strcmp(str_par, "DC_n79A_n257G")) return DC__n79A__n257G; +else return UNKNOWN_VALUE; +} + +boolean NR__DC__CA__BandCombination__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +return TRUE; +default: +return FALSE; +} +} + +int NR__DC__CA__BandCombination__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NR__DC__CA__BandCombination__Type::enum2int(const NR__DC__CA__BandCombination__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NR__DC__CA__BandCombination__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NR__DC__CA__BandCombination__Type::operator NR__DC__CA__BandCombination__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +return enum_value; +} + +boolean NR__DC__CA__BandCombination__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NR__DC__CA__BandCombination__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NR__DC__CA__BandCombination__Type::clone() const { return new NR__DC__CA__BandCombination__Type(*this); } +const TTCN_Typedescriptor_t* NR__DC__CA__BandCombination__Type::get_descriptor() const { return &NR__DC__CA__BandCombination__Type_descr_; } +void NR__DC__CA__BandCombination__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NR__DC__CA__BandCombination__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NR_DC_CA_BandCombination_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_DC_CA_BandCombination_Type."); + } +} + +Module_Param* NR__DC__CA__BandCombination__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NR__DC__CA__BandCombination__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +text_buf.push_int(enum_value); +} + +void NR__DC__CA__BandCombination__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type.", enum_value); +} + +void NR__DC__CA__BandCombination__Type_template::copy_template(const NR__DC__CA__BandCombination__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NR__DC__CA__BandCombination__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NR__DC__CA__BandCombination__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NR__DC__CA__BandCombination__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +} +} + +NR__DC__CA__BandCombination__Type_template::NR__DC__CA__BandCombination__Type_template() +{ +} + +NR__DC__CA__BandCombination__Type_template::NR__DC__CA__BandCombination__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NR__DC__CA__BandCombination__Type_template::NR__DC__CA__BandCombination__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NR__DC__CA__BandCombination__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type with unknown numeric value %d.", other_value); +single_value = (NR__DC__CA__BandCombination__Type::enum_type)other_value; +} + +NR__DC__CA__BandCombination__Type_template::NR__DC__CA__BandCombination__Type_template(NR__DC__CA__BandCombination__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NR__DC__CA__BandCombination__Type_template::NR__DC__CA__BandCombination__Type_template(const NR__DC__CA__BandCombination__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NR__DC__CA__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +single_value = other_value.enum_value; +} + +NR__DC__CA__BandCombination__Type_template::NR__DC__CA__BandCombination__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__DC__CA__BandCombination__Type::enum_type)(const NR__DC__CA__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type from an unbound optional field."); +} +} + +NR__DC__CA__BandCombination__Type_template::NR__DC__CA__BandCombination__Type_template(NR__DC__CA__BandCombination__Type_template* p_precondition, NR__DC__CA__BandCombination__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NR__DC__CA__BandCombination__Type_template::NR__DC__CA__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NR__DC__CA__BandCombination__Type_template::NR__DC__CA__BandCombination__Type_template(const NR__DC__CA__BandCombination__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NR__DC__CA__BandCombination__Type_template::~NR__DC__CA__BandCombination__Type_template() +{ +clean_up(); +} + +boolean NR__DC__CA__BandCombination__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NR__DC__CA__BandCombination__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NR__DC__CA__BandCombination__Type::UNBOUND_VALUE; +} + +void NR__DC__CA__BandCombination__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NR__DC__CA__BandCombination__Type_template& NR__DC__CA__BandCombination__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__DC__CA__BandCombination__Type_template& NR__DC__CA__BandCombination__Type_template::operator=(int other_value) +{ +if (!NR__DC__CA__BandCombination__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NR__DC__CA__BandCombination__Type::enum_type)other_value; +return *this; +} + +NR__DC__CA__BandCombination__Type_template& NR__DC__CA__BandCombination__Type_template::operator=(NR__DC__CA__BandCombination__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NR__DC__CA__BandCombination__Type_template& NR__DC__CA__BandCombination__Type_template::operator=(const NR__DC__CA__BandCombination__Type& other_value) +{ +if (other_value.enum_value == NR__DC__CA__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NR__DC__CA__BandCombination__Type_template& NR__DC__CA__BandCombination__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__DC__CA__BandCombination__Type::enum_type)(const NR__DC__CA__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +} +return *this; +} + +NR__DC__CA__BandCombination__Type_template& NR__DC__CA__BandCombination__Type_template::operator=(const NR__DC__CA__BandCombination__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NR__DC__CA__BandCombination__Type_template::match(NR__DC__CA__BandCombination__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +} +return FALSE; +} + +boolean NR__DC__CA__BandCombination__Type_template::match(const NR__DC__CA__BandCombination__Type& other_value, boolean) const +{ +if (other_value.enum_value == NR__DC__CA__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type with an unbound value."); +return match(other_value.enum_value); +} + +NR__DC__CA__BandCombination__Type::enum_type NR__DC__CA__BandCombination__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +return single_value; +} + +void NR__DC__CA__BandCombination__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NR__DC__CA__BandCombination__Type_template[list_length]; +} + +NR__DC__CA__BandCombination__Type_template& NR__DC__CA__BandCombination__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +return value_list.list_value[list_index]; +} + +void NR__DC__CA__BandCombination__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NR__DC__CA__BandCombination__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NR__DC__CA__BandCombination__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NR__DC__CA__BandCombination__Type_template::clone() const { return new NR__DC__CA__BandCombination__Type_template(*this); } +const TTCN_Typedescriptor_t* NR__DC__CA__BandCombination__Type_template::get_descriptor() const { return &NR__DC__CA__BandCombination__Type_descr_; } +boolean NR__DC__CA__BandCombination__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NR__DC__CA__BandCombination__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NR__DC__CA__BandCombination__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NR__DC__CA__BandCombination__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NR__DC__CA__BandCombination__Type_template::log_match(const NR__DC__CA__BandCombination__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NR__DC__CA__BandCombination__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +} +} + +void NR__DC__CA__BandCombination__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NR__DC__CA__BandCombination__Type::enum_type)text_buf.pull_int().get_val(); +if (!NR__DC__CA__BandCombination__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NR__DC__CA__BandCombination__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NR_DC_CA_BandCombination_Type."); +} +} + +boolean NR__DC__CA__BandCombination__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NR__DC__CA__BandCombination__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NR__DC__CA__BandCombination__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NR__DC__CA__BandCombination__Type::enum_type enum_val = NR__DC__CA__BandCombination__Type::str_to_enum(m_p->get_enumerated()); + if (!NR__DC__CA__BandCombination__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_DC_CA_BandCombination_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NR__DC__CA__BandCombination__Type_template* precondition = new NR__DC__CA__BandCombination__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NR__DC__CA__BandCombination__Type_template* implied_template = new NR__DC__CA__BandCombination__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NR__DC__CA__BandCombination__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NR_DC_CA_BandCombination_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NR__DC__CA__BandCombination__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NR__DC__CA__BandCombination__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NEDC__CombinationType__Type::NEDC__CombinationType__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NEDC__CombinationType__Type::NEDC__CombinationType__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NEDC_CombinationType_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NEDC__CombinationType__Type::NEDC__CombinationType__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NEDC__CombinationType__Type::NEDC__CombinationType__Type(const NEDC__CombinationType__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +enum_value = other_value.enum_value; +} + +NEDC__CombinationType__Type& NEDC__CombinationType__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NEDC_CombinationType_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NEDC__CombinationType__Type& NEDC__CombinationType__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NEDC__CombinationType__Type& NEDC__CombinationType__Type::operator=(const NEDC__CombinationType__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NEDC__CombinationType__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +return enum_value == other_value; +} + +boolean NEDC__CombinationType__Type::operator==(const NEDC__CombinationType__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +return enum_value == other_value.enum_value; +} + +boolean NEDC__CombinationType__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +return enum_value < other_value; +} + +boolean NEDC__CombinationType__Type::operator<(const NEDC__CombinationType__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +return enum_value < other_value.enum_value; +} + +boolean NEDC__CombinationType__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +return enum_value > other_value; +} + +boolean NEDC__CombinationType__Type::operator>(const NEDC__CombinationType__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +return enum_value > other_value.enum_value; +} + +const char *NEDC__CombinationType__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case InterBand: return "InterBand"; +default: return ""; +} +} + +NEDC__CombinationType__Type::enum_type NEDC__CombinationType__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "InterBand")) return InterBand; +else return UNKNOWN_VALUE; +} + +boolean NEDC__CombinationType__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +return TRUE; +default: +return FALSE; +} +} + +int NEDC__CombinationType__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NEDC_CombinationType_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NEDC__CombinationType__Type::enum2int(const NEDC__CombinationType__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NEDC_CombinationType_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NEDC__CombinationType__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NEDC_CombinationType_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NEDC__CombinationType__Type::operator NEDC__CombinationType__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +return enum_value; +} + +boolean NEDC__CombinationType__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NEDC__CombinationType__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NEDC__CombinationType__Type::clone() const { return new NEDC__CombinationType__Type(*this); } +const TTCN_Typedescriptor_t* NEDC__CombinationType__Type::get_descriptor() const { return &NEDC__CombinationType__Type_descr_; } +void NEDC__CombinationType__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NEDC__CombinationType__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NEDC_CombinationType_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NEDC_CombinationType_Type."); + } +} + +Module_Param* NEDC__CombinationType__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NEDC__CombinationType__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +text_buf.push_int(enum_value); +} + +void NEDC__CombinationType__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NEDC_CombinationType_Type.", enum_value); +} + +void NEDC__CombinationType__Type_template::copy_template(const NEDC__CombinationType__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NEDC__CombinationType__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NEDC__CombinationType__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NEDC__CombinationType__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +} +} + +NEDC__CombinationType__Type_template::NEDC__CombinationType__Type_template() +{ +} + +NEDC__CombinationType__Type_template::NEDC__CombinationType__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NEDC__CombinationType__Type_template::NEDC__CombinationType__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NEDC__CombinationType__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NEDC_CombinationType_Type with unknown numeric value %d.", other_value); +single_value = (NEDC__CombinationType__Type::enum_type)other_value; +} + +NEDC__CombinationType__Type_template::NEDC__CombinationType__Type_template(NEDC__CombinationType__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NEDC__CombinationType__Type_template::NEDC__CombinationType__Type_template(const NEDC__CombinationType__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NEDC__CombinationType__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +single_value = other_value.enum_value; +} + +NEDC__CombinationType__Type_template::NEDC__CombinationType__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NEDC__CombinationType__Type::enum_type)(const NEDC__CombinationType__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NEDC_CombinationType_Type from an unbound optional field."); +} +} + +NEDC__CombinationType__Type_template::NEDC__CombinationType__Type_template(NEDC__CombinationType__Type_template* p_precondition, NEDC__CombinationType__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NEDC__CombinationType__Type_template::NEDC__CombinationType__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NEDC__CombinationType__Type_template::NEDC__CombinationType__Type_template(const NEDC__CombinationType__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NEDC__CombinationType__Type_template::~NEDC__CombinationType__Type_template() +{ +clean_up(); +} + +boolean NEDC__CombinationType__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NEDC__CombinationType__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NEDC__CombinationType__Type::UNBOUND_VALUE; +} + +void NEDC__CombinationType__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NEDC__CombinationType__Type_template& NEDC__CombinationType__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NEDC__CombinationType__Type_template& NEDC__CombinationType__Type_template::operator=(int other_value) +{ +if (!NEDC__CombinationType__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NEDC_CombinationType_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NEDC__CombinationType__Type::enum_type)other_value; +return *this; +} + +NEDC__CombinationType__Type_template& NEDC__CombinationType__Type_template::operator=(NEDC__CombinationType__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NEDC__CombinationType__Type_template& NEDC__CombinationType__Type_template::operator=(const NEDC__CombinationType__Type& other_value) +{ +if (other_value.enum_value == NEDC__CombinationType__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NEDC_CombinationType_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NEDC__CombinationType__Type_template& NEDC__CombinationType__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NEDC__CombinationType__Type::enum_type)(const NEDC__CombinationType__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +} +return *this; +} + +NEDC__CombinationType__Type_template& NEDC__CombinationType__Type_template::operator=(const NEDC__CombinationType__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NEDC__CombinationType__Type_template::match(NEDC__CombinationType__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +} +return FALSE; +} + +boolean NEDC__CombinationType__Type_template::match(const NEDC__CombinationType__Type& other_value, boolean) const +{ +if (other_value.enum_value == NEDC__CombinationType__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NEDC_CombinationType_Type with an unbound value."); +return match(other_value.enum_value); +} + +NEDC__CombinationType__Type::enum_type NEDC__CombinationType__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +return single_value; +} + +void NEDC__CombinationType__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NEDC__CombinationType__Type_template[list_length]; +} + +NEDC__CombinationType__Type_template& NEDC__CombinationType__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +return value_list.list_value[list_index]; +} + +void NEDC__CombinationType__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NEDC__CombinationType__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NEDC__CombinationType__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NEDC__CombinationType__Type_template::clone() const { return new NEDC__CombinationType__Type_template(*this); } +const TTCN_Typedescriptor_t* NEDC__CombinationType__Type_template::get_descriptor() const { return &NEDC__CombinationType__Type_descr_; } +boolean NEDC__CombinationType__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NEDC__CombinationType__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NEDC__CombinationType__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NEDC__CombinationType__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NEDC__CombinationType__Type_template::log_match(const NEDC__CombinationType__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NEDC__CombinationType__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +} +} + +void NEDC__CombinationType__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NEDC__CombinationType__Type::enum_type)text_buf.pull_int().get_val(); +if (!NEDC__CombinationType__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NEDC_CombinationType_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NEDC__CombinationType__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NEDC_CombinationType_Type."); +} +} + +boolean NEDC__CombinationType__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NEDC__CombinationType__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NEDC__CombinationType__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NEDC__CombinationType__Type::enum_type enum_val = NEDC__CombinationType__Type::str_to_enum(m_p->get_enumerated()); + if (!NEDC__CombinationType__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NEDC_CombinationType_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NEDC__CombinationType__Type_template* precondition = new NEDC__CombinationType__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NEDC__CombinationType__Type_template* implied_template = new NEDC__CombinationType__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NEDC__CombinationType__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NEDC_CombinationType_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NEDC__CombinationType__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NEDC__CombinationType__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void EUTRA__NR__PduSessionInfo__Type::init_vec() { fld_vec[0]=&field_PDU__SessionId; fld_vec[1]=&field_EPS__Bearer; fld_vec[2]=&field_QFI; fld_vec[3]=&field_PdnIndex; fld_vec[4]=&field_IsIMS; } + +EUTRA__NR__PduSessionInfo__Type::EUTRA__NR__PduSessionInfo__Type() : Record_Type() { init_vec(); } + +EUTRA__NR__PduSessionInfo__Type::EUTRA__NR__PduSessionInfo__Type(const EUTRA__NR__PduSessionInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_PDU__SessionId.is_bound() ) + field_PDU__SessionId = other_value.field_PDU__SessionId; +if (other_value.field_EPS__Bearer.is_bound() ) + field_EPS__Bearer = other_value.field_EPS__Bearer; +if (other_value.field_QFI.is_bound() ) + field_QFI = other_value.field_QFI; +if (other_value.field_PdnIndex.is_bound() ) + field_PdnIndex = other_value.field_PdnIndex; +if (other_value.field_IsIMS.is_bound() ) + field_IsIMS = other_value.field_IsIMS; +init_vec(); +} + +EUTRA__NR__PduSessionInfo__Type::EUTRA__NR__PduSessionInfo__Type(const INTEGER& par_PDU__SessionId, + const INTEGER& par_EPS__Bearer, + const OPTIONAL& par_QFI, + const CommonDefs::PDN__Index__Type& par_PdnIndex, + const BOOLEAN& par_IsIMS) : field_PDU__SessionId(par_PDU__SessionId), + field_EPS__Bearer(par_EPS__Bearer), + field_QFI(par_QFI), + field_PdnIndex(par_PdnIndex), + field_IsIMS(par_IsIMS) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EUTRA__NR__PduSessionInfo__Type::get_descriptor() const { return &EUTRA__NR__PduSessionInfo__Type_descr_; } +const TTCN_Typedescriptor_t* EUTRA__NR__PduSessionInfo__Type::fld_descriptors[] = { &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_, &CommonDefs::PDN__Index__Type_descr_, &BOOLEAN_descr_ }; +const TTCN_Typedescriptor_t* EUTRA__NR__PduSessionInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EUTRA__NR__PduSessionInfo__Type::fld_names[] = { "PDU_SessionId", "EPS_Bearer", "QFI", "PdnIndex", "IsIMS" }; +const char* EUTRA__NR__PduSessionInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EUTRA__NR__PduSessionInfo__Type::optional_indexes[] = { 2, -1 }; +const int* EUTRA__NR__PduSessionInfo__Type::get_optional_indexes() const { return optional_indexes; } + +const int EUTRA__NR__PduSessionInfo__Type::optional_indexes_asn[] = { 2, -1 }; +const int* EUTRA__NR__PduSessionInfo__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EUTRA__NR__PduSessionInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[1] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[2] = was_any ? new INTEGER_template(ANY_OR_OMIT) : new INTEGER_template; +single_value.value_elements[3] = was_any ? new CommonDefs::PDN__Index__Type_template(ANY_VALUE) : new CommonDefs::PDN__Index__Type_template; +single_value.value_elements[4] = was_any ? new BOOLEAN_template(ANY_VALUE) : new BOOLEAN_template; +} +} + +EUTRA__NR__PduSessionInfo__Type_template::EUTRA__NR__PduSessionInfo__Type_template(EUTRA__NR__PduSessionInfo__Type_template* p_precondition, EUTRA__NR__PduSessionInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EUTRA__NR__PduSessionInfo__Type_template::EUTRA__NR__PduSessionInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EUTRA__NR__PduSessionInfo__Type_template::~EUTRA__NR__PduSessionInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EUTRA__NR__PduSessionInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const EUTRA__NR__PduSessionInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EUTRA__NR__PduSessionInfo__Type_template& EUTRA__NR__PduSessionInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EUTRA__NR__PduSessionInfo__Type_template& EUTRA__NR__PduSessionInfo__Type_template::operator=(const EUTRA__NR__PduSessionInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EUTRA__NR__PduSessionInfo__Type_template& EUTRA__NR__PduSessionInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EUTRA__NR__PduSessionInfo__Type_template& EUTRA__NR__PduSessionInfo__Type_template::operator=(const EUTRA__NR__PduSessionInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EUTRA__NR__PduSessionInfo__Type EUTRA__NR__PduSessionInfo__Type_template::valueof() const +{ +EUTRA__NR__PduSessionInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +INTEGER_template& EUTRA__NR__PduSessionInfo__Type_template::PDU__SessionId() { return *(static_cast(get_at(0))); } +const INTEGER_template& EUTRA__NR__PduSessionInfo__Type_template::PDU__SessionId() const { return *(static_cast(get_at(0))); } +INTEGER_template& EUTRA__NR__PduSessionInfo__Type_template::EPS__Bearer() { return *(static_cast(get_at(1))); } +const INTEGER_template& EUTRA__NR__PduSessionInfo__Type_template::EPS__Bearer() const { return *(static_cast(get_at(1))); } +INTEGER_template& EUTRA__NR__PduSessionInfo__Type_template::QFI() { return *(static_cast(get_at(2))); } +const INTEGER_template& EUTRA__NR__PduSessionInfo__Type_template::QFI() const { return *(static_cast(get_at(2))); } +CommonDefs::PDN__Index__Type_template& EUTRA__NR__PduSessionInfo__Type_template::PdnIndex() { return *(static_cast(get_at(3))); } +const CommonDefs::PDN__Index__Type_template& EUTRA__NR__PduSessionInfo__Type_template::PdnIndex() const { return *(static_cast(get_at(3))); } +BOOLEAN_template& EUTRA__NR__PduSessionInfo__Type_template::IsIMS() { return *(static_cast(get_at(4))); } +const BOOLEAN_template& EUTRA__NR__PduSessionInfo__Type_template::IsIMS() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* EUTRA__NR__PduSessionInfo__Type_template::get_descriptor() const { return &EUTRA__NR__PduSessionInfo__Type_descr_; } +const char* EUTRA__NR__PduSessionInfo__Type_template::fld_name(int p_index) const { return EUTRA__NR__PduSessionInfo__Type::fld_names[p_index]; } +NEDC__BandCombination__Type::NEDC__BandCombination__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NEDC__BandCombination__Type::NEDC__BandCombination__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NEDC_BandCombination_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NEDC__BandCombination__Type::NEDC__BandCombination__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NEDC__BandCombination__Type::NEDC__BandCombination__Type(const NEDC__BandCombination__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +enum_value = other_value.enum_value; +} + +NEDC__BandCombination__Type& NEDC__BandCombination__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NEDC_BandCombination_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NEDC__BandCombination__Type& NEDC__BandCombination__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NEDC__BandCombination__Type& NEDC__BandCombination__Type::operator=(const NEDC__BandCombination__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NEDC__BandCombination__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +return enum_value == other_value; +} + +boolean NEDC__BandCombination__Type::operator==(const NEDC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +return enum_value == other_value.enum_value; +} + +boolean NEDC__BandCombination__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +return enum_value < other_value; +} + +boolean NEDC__BandCombination__Type::operator<(const NEDC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +return enum_value < other_value.enum_value; +} + +boolean NEDC__BandCombination__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +return enum_value > other_value; +} + +boolean NEDC__BandCombination__Type::operator>(const NEDC__BandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +return enum_value > other_value.enum_value; +} + +const char *NEDC__BandCombination__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case DC__n28A__3A: return "DC_n28A_3A"; +case DC__n28A__39A: return "DC_n28A_39A"; +default: return ""; +} +} + +NEDC__BandCombination__Type::enum_type NEDC__BandCombination__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "DC_n28A_3A")) return DC__n28A__3A; +else if (!strcmp(str_par, "DC_n28A_39A")) return DC__n28A__39A; +else return UNKNOWN_VALUE; +} + +boolean NEDC__BandCombination__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int NEDC__BandCombination__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NEDC_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NEDC__BandCombination__Type::enum2int(const NEDC__BandCombination__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NEDC_BandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NEDC__BandCombination__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NEDC_BandCombination_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NEDC__BandCombination__Type::operator NEDC__BandCombination__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +return enum_value; +} + +boolean NEDC__BandCombination__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NEDC__BandCombination__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NEDC__BandCombination__Type::clone() const { return new NEDC__BandCombination__Type(*this); } +const TTCN_Typedescriptor_t* NEDC__BandCombination__Type::get_descriptor() const { return &NEDC__BandCombination__Type_descr_; } +void NEDC__BandCombination__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NEDC__BandCombination__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NEDC_BandCombination_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NEDC_BandCombination_Type."); + } +} + +Module_Param* NEDC__BandCombination__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NEDC__BandCombination__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +text_buf.push_int(enum_value); +} + +void NEDC__BandCombination__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NEDC_BandCombination_Type.", enum_value); +} + +void NEDC__BandCombination__Type_template::copy_template(const NEDC__BandCombination__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NEDC__BandCombination__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NEDC__BandCombination__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NEDC__BandCombination__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +} +} + +NEDC__BandCombination__Type_template::NEDC__BandCombination__Type_template() +{ +} + +NEDC__BandCombination__Type_template::NEDC__BandCombination__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NEDC__BandCombination__Type_template::NEDC__BandCombination__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NEDC__BandCombination__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NEDC_BandCombination_Type with unknown numeric value %d.", other_value); +single_value = (NEDC__BandCombination__Type::enum_type)other_value; +} + +NEDC__BandCombination__Type_template::NEDC__BandCombination__Type_template(NEDC__BandCombination__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NEDC__BandCombination__Type_template::NEDC__BandCombination__Type_template(const NEDC__BandCombination__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NEDC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +single_value = other_value.enum_value; +} + +NEDC__BandCombination__Type_template::NEDC__BandCombination__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NEDC__BandCombination__Type::enum_type)(const NEDC__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NEDC_BandCombination_Type from an unbound optional field."); +} +} + +NEDC__BandCombination__Type_template::NEDC__BandCombination__Type_template(NEDC__BandCombination__Type_template* p_precondition, NEDC__BandCombination__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NEDC__BandCombination__Type_template::NEDC__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NEDC__BandCombination__Type_template::NEDC__BandCombination__Type_template(const NEDC__BandCombination__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NEDC__BandCombination__Type_template::~NEDC__BandCombination__Type_template() +{ +clean_up(); +} + +boolean NEDC__BandCombination__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NEDC__BandCombination__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NEDC__BandCombination__Type::UNBOUND_VALUE; +} + +void NEDC__BandCombination__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NEDC__BandCombination__Type_template& NEDC__BandCombination__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NEDC__BandCombination__Type_template& NEDC__BandCombination__Type_template::operator=(int other_value) +{ +if (!NEDC__BandCombination__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NEDC_BandCombination_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NEDC__BandCombination__Type::enum_type)other_value; +return *this; +} + +NEDC__BandCombination__Type_template& NEDC__BandCombination__Type_template::operator=(NEDC__BandCombination__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NEDC__BandCombination__Type_template& NEDC__BandCombination__Type_template::operator=(const NEDC__BandCombination__Type& other_value) +{ +if (other_value.enum_value == NEDC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NEDC_BandCombination_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NEDC__BandCombination__Type_template& NEDC__BandCombination__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NEDC__BandCombination__Type::enum_type)(const NEDC__BandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +} +return *this; +} + +NEDC__BandCombination__Type_template& NEDC__BandCombination__Type_template::operator=(const NEDC__BandCombination__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NEDC__BandCombination__Type_template::match(NEDC__BandCombination__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +} +return FALSE; +} + +boolean NEDC__BandCombination__Type_template::match(const NEDC__BandCombination__Type& other_value, boolean) const +{ +if (other_value.enum_value == NEDC__BandCombination__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NEDC_BandCombination_Type with an unbound value."); +return match(other_value.enum_value); +} + +NEDC__BandCombination__Type::enum_type NEDC__BandCombination__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +return single_value; +} + +void NEDC__BandCombination__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NEDC__BandCombination__Type_template[list_length]; +} + +NEDC__BandCombination__Type_template& NEDC__BandCombination__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +return value_list.list_value[list_index]; +} + +void NEDC__BandCombination__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NEDC__BandCombination__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NEDC__BandCombination__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NEDC__BandCombination__Type_template::clone() const { return new NEDC__BandCombination__Type_template(*this); } +const TTCN_Typedescriptor_t* NEDC__BandCombination__Type_template::get_descriptor() const { return &NEDC__BandCombination__Type_descr_; } +boolean NEDC__BandCombination__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NEDC__BandCombination__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NEDC__BandCombination__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NEDC__BandCombination__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NEDC__BandCombination__Type_template::log_match(const NEDC__BandCombination__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NEDC__BandCombination__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +} +} + +void NEDC__BandCombination__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NEDC__BandCombination__Type::enum_type)text_buf.pull_int().get_val(); +if (!NEDC__BandCombination__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NEDC_BandCombination_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NEDC__BandCombination__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NEDC_BandCombination_Type."); +} +} + +boolean NEDC__BandCombination__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NEDC__BandCombination__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NEDC__BandCombination__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NEDC__BandCombination__Type::enum_type enum_val = NEDC__BandCombination__Type::str_to_enum(m_p->get_enumerated()); + if (!NEDC__BandCombination__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NEDC_BandCombination_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NEDC__BandCombination__Type_template* precondition = new NEDC__BandCombination__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NEDC__BandCombination__Type_template* implied_template = new NEDC__BandCombination__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NEDC__BandCombination__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NEDC_BandCombination_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NEDC__BandCombination__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NEDC__BandCombination__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + + +const EUTRA__NR__PduSessionInfo__Type EUTRA__NR__PduSessionInfoList__Type::UNBOUND_ELEM; +EUTRA__NR__PduSessionInfo__Type& EUTRA__NR__PduSessionInfoList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +EUTRA__NR__PduSessionInfo__Type& EUTRA__NR__PduSessionInfoList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const EUTRA__NR__PduSessionInfo__Type& EUTRA__NR__PduSessionInfoList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const EUTRA__NR__PduSessionInfo__Type& EUTRA__NR__PduSessionInfoList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::operator<<=(const INTEGER& rotate_count) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +return *((EUTRA__NR__PduSessionInfoList__Type*)rotl(rotate_count, &rec_of)); +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::operator>>=(const INTEGER& rotate_count) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +return *((EUTRA__NR__PduSessionInfoList__Type*)rotr(rotate_count, &rec_of)); +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::operator>>=(int rotate_count) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +return *((EUTRA__NR__PduSessionInfoList__Type*)rotr(rotate_count, &rec_of)); +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::operator+(const EUTRA__NR__PduSessionInfoList__Type& other_value) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +return *((EUTRA__NR__PduSessionInfoList__Type*)concat(&other_value, &rec_of)); +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const EUTRA__NR__PduSessionInfoList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @Common4G5G.EUTRA_NR_PduSessionInfoList_Type concatenation."); +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::operator+(null_type) const +{ +return *this; +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::substr(int index, int returncount) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::replace(int index, int len, const EUTRA__NR__PduSessionInfoList__Type& repl) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type::replace(int index, int len, const EUTRA__NR__PduSessionInfoList__Type_template& repl) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* EUTRA__NR__PduSessionInfoList__Type::create_elem() const { return new EUTRA__NR__PduSessionInfo__Type; } +const Base_Type* EUTRA__NR__PduSessionInfoList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* EUTRA__NR__PduSessionInfoList__Type::get_descriptor() const { return &EUTRA__NR__PduSessionInfoList__Type_descr_; } +EUTRA__NR__PduSessionInfoList__Type_template::EUTRA__NR__PduSessionInfoList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +EUTRA__NR__PduSessionInfoList__Type_template::EUTRA__NR__PduSessionInfoList__Type_template(EUTRA__NR__PduSessionInfoList__Type_template* p_precondition, EUTRA__NR__PduSessionInfoList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EUTRA__NR__PduSessionInfoList__Type_template::EUTRA__NR__PduSessionInfoList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EUTRA__NR__PduSessionInfoList__Type_template::~EUTRA__NR__PduSessionInfoList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EUTRA__NR__PduSessionInfoList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const EUTRA__NR__PduSessionInfoList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +EUTRA__NR__PduSessionInfoList__Type_template& EUTRA__NR__PduSessionInfoList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EUTRA__NR__PduSessionInfoList__Type_template& EUTRA__NR__PduSessionInfoList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +EUTRA__NR__PduSessionInfoList__Type_template& EUTRA__NR__PduSessionInfoList__Type_template::operator=(const EUTRA__NR__PduSessionInfoList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EUTRA__NR__PduSessionInfoList__Type_template& EUTRA__NR__PduSessionInfoList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EUTRA__NR__PduSessionInfoList__Type_template& EUTRA__NR__PduSessionInfoList__Type_template::operator=(const EUTRA__NR__PduSessionInfoList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EUTRA__NR__PduSessionInfoList__Type_template EUTRA__NR__PduSessionInfoList__Type_template::operator+(const EUTRA__NR__PduSessionInfoList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return EUTRA__NR__PduSessionInfoList__Type_template(ANY_VALUE); +} +EUTRA__NR__PduSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +EUTRA__NR__PduSessionInfoList__Type_template EUTRA__NR__PduSessionInfoList__Type_template::operator+(const EUTRA__NR__PduSessionInfoList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +EUTRA__NR__PduSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +EUTRA__NR__PduSessionInfoList__Type_template EUTRA__NR__PduSessionInfoList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return EUTRA__NR__PduSessionInfoList__Type_template(ANY_VALUE); +} +EUTRA__NR__PduSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +EUTRA__NR__PduSessionInfoList__Type_template EUTRA__NR__PduSessionInfoList__Type_template::operator+(null_type) const +{ +return *this; +} + +EUTRA__NR__PduSessionInfo__Type_template& EUTRA__NR__PduSessionInfoList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +EUTRA__NR__PduSessionInfo__Type_template& EUTRA__NR__PduSessionInfoList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const EUTRA__NR__PduSessionInfo__Type_template& EUTRA__NR__PduSessionInfoList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const EUTRA__NR__PduSessionInfo__Type_template& EUTRA__NR__PduSessionInfoList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type_template::valueof() const +{ +EUTRA__NR__PduSessionInfoList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type_template::substr(int index, int returncount) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type_template::replace(int index, int len, const EUTRA__NR__PduSessionInfoList__Type_template& repl) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +EUTRA__NR__PduSessionInfoList__Type EUTRA__NR__PduSessionInfoList__Type_template::replace(int index, int len, const EUTRA__NR__PduSessionInfoList__Type& repl) const +{ +EUTRA__NR__PduSessionInfoList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* EUTRA__NR__PduSessionInfoList__Type_template::create_elem() const { return new EUTRA__NR__PduSessionInfo__Type_template; } +const TTCN_Typedescriptor_t* EUTRA__NR__PduSessionInfoList__Type_template::get_descriptor() const { return &EUTRA__NR__PduSessionInfoList__Type_descr_; } +NR__V2X__ConcurrentOperationBandCombination__Type::NR__V2X__ConcurrentOperationBandCombination__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NR__V2X__ConcurrentOperationBandCombination__Type::NR__V2X__ConcurrentOperationBandCombination__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NR__V2X__ConcurrentOperationBandCombination__Type::NR__V2X__ConcurrentOperationBandCombination__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NR__V2X__ConcurrentOperationBandCombination__Type::NR__V2X__ConcurrentOperationBandCombination__Type(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +enum_value = other_value.enum_value; +} + +NR__V2X__ConcurrentOperationBandCombination__Type& NR__V2X__ConcurrentOperationBandCombination__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NR__V2X__ConcurrentOperationBandCombination__Type& NR__V2X__ConcurrentOperationBandCombination__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NR__V2X__ConcurrentOperationBandCombination__Type& NR__V2X__ConcurrentOperationBandCombination__Type::operator=(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +return enum_value == other_value; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type::operator==(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +return enum_value == other_value.enum_value; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +return enum_value < other_value; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type::operator<(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +return enum_value < other_value.enum_value; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +return enum_value > other_value; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type::operator>(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +return enum_value > other_value.enum_value; +} + +const char *NR__V2X__ConcurrentOperationBandCombination__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case V2X__n71__n47: return "V2X_n71_n47"; +default: return ""; +} +} + +NR__V2X__ConcurrentOperationBandCombination__Type::enum_type NR__V2X__ConcurrentOperationBandCombination__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "V2X_n71_n47")) return V2X__n71__n47; +else return UNKNOWN_VALUE; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +return TRUE; +default: +return FALSE; +} +} + +int NR__V2X__ConcurrentOperationBandCombination__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NR__V2X__ConcurrentOperationBandCombination__Type::enum2int(const NR__V2X__ConcurrentOperationBandCombination__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NR__V2X__ConcurrentOperationBandCombination__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NR__V2X__ConcurrentOperationBandCombination__Type::operator NR__V2X__ConcurrentOperationBandCombination__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +return enum_value; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NR__V2X__ConcurrentOperationBandCombination__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NR__V2X__ConcurrentOperationBandCombination__Type::clone() const { return new NR__V2X__ConcurrentOperationBandCombination__Type(*this); } +const TTCN_Typedescriptor_t* NR__V2X__ConcurrentOperationBandCombination__Type::get_descriptor() const { return &NR__V2X__ConcurrentOperationBandCombination__Type_descr_; } +void NR__V2X__ConcurrentOperationBandCombination__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NR__V2X__ConcurrentOperationBandCombination__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); + } +} + +Module_Param* NR__V2X__ConcurrentOperationBandCombination__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NR__V2X__ConcurrentOperationBandCombination__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +text_buf.push_int(enum_value); +} + +void NR__V2X__ConcurrentOperationBandCombination__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type.", enum_value); +} + +void NR__V2X__ConcurrentOperationBandCombination__Type_template::copy_template(const NR__V2X__ConcurrentOperationBandCombination__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NR__V2X__ConcurrentOperationBandCombination__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NR__V2X__ConcurrentOperationBandCombination__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NR__V2X__ConcurrentOperationBandCombination__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +} +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::NR__V2X__ConcurrentOperationBandCombination__Type_template() +{ +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::NR__V2X__ConcurrentOperationBandCombination__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::NR__V2X__ConcurrentOperationBandCombination__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NR__V2X__ConcurrentOperationBandCombination__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type with unknown numeric value %d.", other_value); +single_value = (NR__V2X__ConcurrentOperationBandCombination__Type::enum_type)other_value; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::NR__V2X__ConcurrentOperationBandCombination__Type_template(NR__V2X__ConcurrentOperationBandCombination__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::NR__V2X__ConcurrentOperationBandCombination__Type_template(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NR__V2X__ConcurrentOperationBandCombination__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +single_value = other_value.enum_value; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::NR__V2X__ConcurrentOperationBandCombination__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__V2X__ConcurrentOperationBandCombination__Type::enum_type)(const NR__V2X__ConcurrentOperationBandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type from an unbound optional field."); +} +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::NR__V2X__ConcurrentOperationBandCombination__Type_template(NR__V2X__ConcurrentOperationBandCombination__Type_template* p_precondition, NR__V2X__ConcurrentOperationBandCombination__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::NR__V2X__ConcurrentOperationBandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::NR__V2X__ConcurrentOperationBandCombination__Type_template(const NR__V2X__ConcurrentOperationBandCombination__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template::~NR__V2X__ConcurrentOperationBandCombination__Type_template() +{ +clean_up(); +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NR__V2X__ConcurrentOperationBandCombination__Type::UNBOUND_VALUE; +} + +void NR__V2X__ConcurrentOperationBandCombination__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template& NR__V2X__ConcurrentOperationBandCombination__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template& NR__V2X__ConcurrentOperationBandCombination__Type_template::operator=(int other_value) +{ +if (!NR__V2X__ConcurrentOperationBandCombination__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NR__V2X__ConcurrentOperationBandCombination__Type::enum_type)other_value; +return *this; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template& NR__V2X__ConcurrentOperationBandCombination__Type_template::operator=(NR__V2X__ConcurrentOperationBandCombination__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template& NR__V2X__ConcurrentOperationBandCombination__Type_template::operator=(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) +{ +if (other_value.enum_value == NR__V2X__ConcurrentOperationBandCombination__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template& NR__V2X__ConcurrentOperationBandCombination__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__V2X__ConcurrentOperationBandCombination__Type::enum_type)(const NR__V2X__ConcurrentOperationBandCombination__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +} +return *this; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template& NR__V2X__ConcurrentOperationBandCombination__Type_template::operator=(const NR__V2X__ConcurrentOperationBandCombination__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type_template::match(NR__V2X__ConcurrentOperationBandCombination__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +} +return FALSE; +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type_template::match(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value, boolean) const +{ +if (other_value.enum_value == NR__V2X__ConcurrentOperationBandCombination__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type with an unbound value."); +return match(other_value.enum_value); +} + +NR__V2X__ConcurrentOperationBandCombination__Type::enum_type NR__V2X__ConcurrentOperationBandCombination__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +return single_value; +} + +void NR__V2X__ConcurrentOperationBandCombination__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NR__V2X__ConcurrentOperationBandCombination__Type_template[list_length]; +} + +NR__V2X__ConcurrentOperationBandCombination__Type_template& NR__V2X__ConcurrentOperationBandCombination__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +return value_list.list_value[list_index]; +} + +void NR__V2X__ConcurrentOperationBandCombination__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NR__V2X__ConcurrentOperationBandCombination__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NR__V2X__ConcurrentOperationBandCombination__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NR__V2X__ConcurrentOperationBandCombination__Type_template::clone() const { return new NR__V2X__ConcurrentOperationBandCombination__Type_template(*this); } +const TTCN_Typedescriptor_t* NR__V2X__ConcurrentOperationBandCombination__Type_template::get_descriptor() const { return &NR__V2X__ConcurrentOperationBandCombination__Type_descr_; } +boolean NR__V2X__ConcurrentOperationBandCombination__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NR__V2X__ConcurrentOperationBandCombination__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NR__V2X__ConcurrentOperationBandCombination__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NR__V2X__ConcurrentOperationBandCombination__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NR__V2X__ConcurrentOperationBandCombination__Type_template::log_match(const NR__V2X__ConcurrentOperationBandCombination__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NR__V2X__ConcurrentOperationBandCombination__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +} +} + +void NR__V2X__ConcurrentOperationBandCombination__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NR__V2X__ConcurrentOperationBandCombination__Type::enum_type)text_buf.pull_int().get_val(); +if (!NR__V2X__ConcurrentOperationBandCombination__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NR__V2X__ConcurrentOperationBandCombination__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); +} +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NR__V2X__ConcurrentOperationBandCombination__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NR__V2X__ConcurrentOperationBandCombination__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NR__V2X__ConcurrentOperationBandCombination__Type::enum_type enum_val = NR__V2X__ConcurrentOperationBandCombination__Type::str_to_enum(m_p->get_enumerated()); + if (!NR__V2X__ConcurrentOperationBandCombination__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NR__V2X__ConcurrentOperationBandCombination__Type_template* precondition = new NR__V2X__ConcurrentOperationBandCombination__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NR__V2X__ConcurrentOperationBandCombination__Type_template* implied_template = new NR__V2X__ConcurrentOperationBandCombination__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NR__V2X__ConcurrentOperationBandCombination__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@Common4G5G.NR_V2X_ConcurrentOperationBandCombination_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NR__V2X__ConcurrentOperationBandCombination__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NR__V2X__ConcurrentOperationBandCombination__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + + +/* Bodies of functions, altsteps and testcases */ + +EUTRA__NR__PduSessionInfoList__Type_template operator+(template_sel left_template, const EUTRA__NR__PduSessionInfoList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = EUTRA__NR__PduSessionInfoList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return EUTRA__NR__PduSessionInfoList__Type_template(ANY_VALUE); +} +EUTRA__NR__PduSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +EUTRA__NR__PduSessionInfoList__Type_template operator+(const EUTRA__NR__PduSessionInfoList__Type& left_value, const EUTRA__NR__PduSessionInfoList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = EUTRA__NR__PduSessionInfoList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +EUTRA__NR__PduSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +EUTRA__NR__PduSessionInfoList__Type_template operator+(template_sel left_template, const EUTRA__NR__PduSessionInfoList__Type& right_value) +{ +int res_length = EUTRA__NR__PduSessionInfoList__Type_template::get_length_for_concat(left_template) + EUTRA__NR__PduSessionInfoList__Type_template::get_length_for_concat(right_value); +EUTRA__NR__PduSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +EUTRA__NR__PduSessionInfoList__Type_template operator+(const EUTRA__NR__PduSessionInfoList__Type& left_value, template_sel right_template) +{ +int res_length = EUTRA__NR__PduSessionInfoList__Type_template::get_length_for_concat(left_value) + EUTRA__NR__PduSessionInfoList__Type_template::get_length_for_concat(right_template); +EUTRA__NR__PduSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Common4G5G"); +Common4G5G::init_ttcn3_debugger(); +CommonDefs::module_object.pre_init_module(); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Common4G5G"); +CommonDefs::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/Common4G5G.hh b/build/Ats_NG_NAS/Common4G5G.hh new file mode 100644 index 0000000000000000000000000000000000000000..8d60c2363c173e10f00fa7f2ad6c76ec9910bc0b --- /dev/null +++ b/build/Ats_NG_NAS/Common4G5G.hh @@ -0,0 +1,2156 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef Common4G5G_HH +#define Common4G5G_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "CommonDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 Common4G5G_HH +#endif + +namespace Common4G5G { + +/* Forward declarations of classes */ + +class NR__Configuration__Type; +class NR__Configuration__Type_template; +class NR__TESTMODE__STATE__Type; +class NR__TESTMODE__STATE__Type_template; +class ENDC__DRB__Configuration__Type; +class ENDC__DRB__Configuration__Type_template; +class NEDC__DRB__Configuration__Type; +class NEDC__DRB__Configuration__Type_template; +class NR__TestEnvironment__Type; +class NR__TestEnvironment__Type_template; +class ENDC__SRB__DRB__Configuration__Type; +class ENDC__SRB__DRB__Configuration__Type_template; +class ENDC__BandCombination__Type; +class ENDC__BandCombination__Type_template; +class ENDC__CombinationType__Type; +class ENDC__CombinationType__Type_template; +class ENDC__CA__BandCombination__Type; +class ENDC__CA__BandCombination__Type_template; +class NR__CA__BandCombination__Type; +class NR__CA__BandCombination__Type_template; +class NR__CA__3CC__BandCombination__Type; +class NR__CA__3CC__BandCombination__Type_template; +class NR__DC__BandCombination__Type; +class NR__DC__BandCombination__Type_template; +class NR__DC__CA__BandCombination__Type; +class NR__DC__CA__BandCombination__Type_template; +class NEDC__CombinationType__Type; +class NEDC__CombinationType__Type_template; +class EUTRA__NR__PduSessionInfo__Type; +class EUTRA__NR__PduSessionInfo__Type_template; +class NEDC__BandCombination__Type; +class NEDC__BandCombination__Type_template; +class EUTRA__NR__PduSessionInfoList__Type; +class EUTRA__NR__PduSessionInfoList__Type_template; +class NR__V2X__ConcurrentOperationBandCombination__Type; +class NR__V2X__ConcurrentOperationBandCombination__Type_template; + +} /* end of namespace */ + +#ifndef Common4G5G_HH +#define Common4G5G_HH + +namespace Common4G5G { + +/* Type definitions */ + +typedef ENDC__DRB__Configuration__Type ENDC__Bearer__Type; +typedef ENDC__DRB__Configuration__Type_template ENDC__Bearer__Type_template; + +/* Class definitions */ + +class NR__Configuration__Type : public Enum_Type { // enum +friend class NR__Configuration__Type_template; +public: +enum enum_type { NR__SA = 0, EN__DC = 1, NE__DC = 2, NGE__SA = 3, NGEN__DC = 4, UNKNOWN_VALUE = 5, UNBOUND_VALUE = 6 }; +private: +enum_type enum_value; + +public: +NR__Configuration__Type(); +NR__Configuration__Type(int other_value); +NR__Configuration__Type(enum_type other_value); +NR__Configuration__Type(const NR__Configuration__Type& other_value); + +NR__Configuration__Type& operator=(int other_value); +NR__Configuration__Type& operator=(enum_type other_value); +NR__Configuration__Type& operator=(const NR__Configuration__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NR__Configuration__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NR__Configuration__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NR__Configuration__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NR__Configuration__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NR__Configuration__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NR__Configuration__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NR__Configuration__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NR__Configuration__Type_template : public Base_Template { +union { +NR__Configuration__Type::enum_type single_value; +struct { +unsigned int n_values; +NR__Configuration__Type_template *list_value; +} value_list; +struct { +NR__Configuration__Type_template* precondition; +NR__Configuration__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NR__Configuration__Type_template& other_value); + +public: +NR__Configuration__Type_template(); +NR__Configuration__Type_template(template_sel other_value); +NR__Configuration__Type_template(int other_value); +NR__Configuration__Type_template(NR__Configuration__Type::enum_type other_value); +NR__Configuration__Type_template(const NR__Configuration__Type& other_value); +NR__Configuration__Type_template(const OPTIONAL& other_value); +NR__Configuration__Type_template(NR__Configuration__Type_template* p_precondition, NR__Configuration__Type_template* p_implied_template); +NR__Configuration__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__Configuration__Type_template(const NR__Configuration__Type_template& other_value); +~NR__Configuration__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NR__Configuration__Type_template& operator=(template_sel other_value); +NR__Configuration__Type_template& operator=(int other_value); +NR__Configuration__Type_template& operator=(NR__Configuration__Type::enum_type other_value); +NR__Configuration__Type_template& operator=(const NR__Configuration__Type& other_value); +NR__Configuration__Type_template& operator=(const OPTIONAL& other_value); +NR__Configuration__Type_template& operator=(const NR__Configuration__Type_template& other_value); + +boolean match(NR__Configuration__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NR__Configuration__Type& other_value, boolean legacy = FALSE) const; +NR__Configuration__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NR__Configuration__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NR__Configuration__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NR__TESTMODE__STATE__Type : public Enum_Type { // enum +friend class NR__TESTMODE__STATE__Type_template; +public: +enum enum_type { TESTMode__OFF = 0, TESTModeA__ON = 1, TEST__LOOPModeA__ON = 2, PING__Or__TESTModeB__ON = 3, TESTModeB__ON = 4, TEST__LOOPModeB__ON = 5, PING__Or__TEST__LOOPModeB__ON = 6, TESTModeE__ON = 7, TEST__LOOPModeE__ON = 8, UNKNOWN_VALUE = 9, UNBOUND_VALUE = 10 }; +private: +enum_type enum_value; + +public: +NR__TESTMODE__STATE__Type(); +NR__TESTMODE__STATE__Type(int other_value); +NR__TESTMODE__STATE__Type(enum_type other_value); +NR__TESTMODE__STATE__Type(const NR__TESTMODE__STATE__Type& other_value); + +NR__TESTMODE__STATE__Type& operator=(int other_value); +NR__TESTMODE__STATE__Type& operator=(enum_type other_value); +NR__TESTMODE__STATE__Type& operator=(const NR__TESTMODE__STATE__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NR__TESTMODE__STATE__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NR__TESTMODE__STATE__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NR__TESTMODE__STATE__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NR__TESTMODE__STATE__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NR__TESTMODE__STATE__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NR__TESTMODE__STATE__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NR__TESTMODE__STATE__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NR__TESTMODE__STATE__Type_template : public Base_Template { +union { +NR__TESTMODE__STATE__Type::enum_type single_value; +struct { +unsigned int n_values; +NR__TESTMODE__STATE__Type_template *list_value; +} value_list; +struct { +NR__TESTMODE__STATE__Type_template* precondition; +NR__TESTMODE__STATE__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NR__TESTMODE__STATE__Type_template& other_value); + +public: +NR__TESTMODE__STATE__Type_template(); +NR__TESTMODE__STATE__Type_template(template_sel other_value); +NR__TESTMODE__STATE__Type_template(int other_value); +NR__TESTMODE__STATE__Type_template(NR__TESTMODE__STATE__Type::enum_type other_value); +NR__TESTMODE__STATE__Type_template(const NR__TESTMODE__STATE__Type& other_value); +NR__TESTMODE__STATE__Type_template(const OPTIONAL& other_value); +NR__TESTMODE__STATE__Type_template(NR__TESTMODE__STATE__Type_template* p_precondition, NR__TESTMODE__STATE__Type_template* p_implied_template); +NR__TESTMODE__STATE__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__TESTMODE__STATE__Type_template(const NR__TESTMODE__STATE__Type_template& other_value); +~NR__TESTMODE__STATE__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NR__TESTMODE__STATE__Type_template& operator=(template_sel other_value); +NR__TESTMODE__STATE__Type_template& operator=(int other_value); +NR__TESTMODE__STATE__Type_template& operator=(NR__TESTMODE__STATE__Type::enum_type other_value); +NR__TESTMODE__STATE__Type_template& operator=(const NR__TESTMODE__STATE__Type& other_value); +NR__TESTMODE__STATE__Type_template& operator=(const OPTIONAL& other_value); +NR__TESTMODE__STATE__Type_template& operator=(const NR__TESTMODE__STATE__Type_template& other_value); + +boolean match(NR__TESTMODE__STATE__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NR__TESTMODE__STATE__Type& other_value, boolean legacy = FALSE) const; +NR__TESTMODE__STATE__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NR__TESTMODE__STATE__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NR__TESTMODE__STATE__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class ENDC__DRB__Configuration__Type : public Enum_Type { // enum +friend class ENDC__DRB__Configuration__Type_template; +public: +enum enum_type { MCG__Only = 0, MCG__SCG = 1, MCG__Split = 2, RBConfig__Only = 3, SCG__RBConfig = 4, Meas__SCGOnly = 5, UNKNOWN_VALUE = 6, UNBOUND_VALUE = 7 }; +private: +enum_type enum_value; + +public: +ENDC__DRB__Configuration__Type(); +ENDC__DRB__Configuration__Type(int other_value); +ENDC__DRB__Configuration__Type(enum_type other_value); +ENDC__DRB__Configuration__Type(const ENDC__DRB__Configuration__Type& other_value); + +ENDC__DRB__Configuration__Type& operator=(int other_value); +ENDC__DRB__Configuration__Type& operator=(enum_type other_value); +ENDC__DRB__Configuration__Type& operator=(const ENDC__DRB__Configuration__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const ENDC__DRB__Configuration__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const ENDC__DRB__Configuration__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const ENDC__DRB__Configuration__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const ENDC__DRB__Configuration__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const ENDC__DRB__Configuration__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const ENDC__DRB__Configuration__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const ENDC__DRB__Configuration__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class ENDC__DRB__Configuration__Type_template : public Base_Template { +union { +ENDC__DRB__Configuration__Type::enum_type single_value; +struct { +unsigned int n_values; +ENDC__DRB__Configuration__Type_template *list_value; +} value_list; +struct { +ENDC__DRB__Configuration__Type_template* precondition; +ENDC__DRB__Configuration__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const ENDC__DRB__Configuration__Type_template& other_value); + +public: +ENDC__DRB__Configuration__Type_template(); +ENDC__DRB__Configuration__Type_template(template_sel other_value); +ENDC__DRB__Configuration__Type_template(int other_value); +ENDC__DRB__Configuration__Type_template(ENDC__DRB__Configuration__Type::enum_type other_value); +ENDC__DRB__Configuration__Type_template(const ENDC__DRB__Configuration__Type& other_value); +ENDC__DRB__Configuration__Type_template(const OPTIONAL& other_value); +ENDC__DRB__Configuration__Type_template(ENDC__DRB__Configuration__Type_template* p_precondition, ENDC__DRB__Configuration__Type_template* p_implied_template); +ENDC__DRB__Configuration__Type_template(Dynamic_Match_Interface* p_dyn_match); +ENDC__DRB__Configuration__Type_template(const ENDC__DRB__Configuration__Type_template& other_value); +~ENDC__DRB__Configuration__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +ENDC__DRB__Configuration__Type_template& operator=(template_sel other_value); +ENDC__DRB__Configuration__Type_template& operator=(int other_value); +ENDC__DRB__Configuration__Type_template& operator=(ENDC__DRB__Configuration__Type::enum_type other_value); +ENDC__DRB__Configuration__Type_template& operator=(const ENDC__DRB__Configuration__Type& other_value); +ENDC__DRB__Configuration__Type_template& operator=(const OPTIONAL& other_value); +ENDC__DRB__Configuration__Type_template& operator=(const ENDC__DRB__Configuration__Type_template& other_value); + +boolean match(ENDC__DRB__Configuration__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const ENDC__DRB__Configuration__Type& other_value, boolean legacy = FALSE) const; +ENDC__DRB__Configuration__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +ENDC__DRB__Configuration__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const ENDC__DRB__Configuration__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NEDC__DRB__Configuration__Type : public Enum_Type { // enum +friend class NEDC__DRB__Configuration__Type_template; +public: +enum enum_type { MCG__SCG = 0, MCG__Split = 1, MCG__SCG__MNTerminated = 2, MCG__Split__MNTerminated = 3, MCG__SCG__OnNR = 4, MCG__SplitOnNR = 5, UNKNOWN_VALUE = 6, UNBOUND_VALUE = 7 }; +private: +enum_type enum_value; + +public: +NEDC__DRB__Configuration__Type(); +NEDC__DRB__Configuration__Type(int other_value); +NEDC__DRB__Configuration__Type(enum_type other_value); +NEDC__DRB__Configuration__Type(const NEDC__DRB__Configuration__Type& other_value); + +NEDC__DRB__Configuration__Type& operator=(int other_value); +NEDC__DRB__Configuration__Type& operator=(enum_type other_value); +NEDC__DRB__Configuration__Type& operator=(const NEDC__DRB__Configuration__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NEDC__DRB__Configuration__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NEDC__DRB__Configuration__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NEDC__DRB__Configuration__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NEDC__DRB__Configuration__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NEDC__DRB__Configuration__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NEDC__DRB__Configuration__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NEDC__DRB__Configuration__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NEDC__DRB__Configuration__Type_template : public Base_Template { +union { +NEDC__DRB__Configuration__Type::enum_type single_value; +struct { +unsigned int n_values; +NEDC__DRB__Configuration__Type_template *list_value; +} value_list; +struct { +NEDC__DRB__Configuration__Type_template* precondition; +NEDC__DRB__Configuration__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NEDC__DRB__Configuration__Type_template& other_value); + +public: +NEDC__DRB__Configuration__Type_template(); +NEDC__DRB__Configuration__Type_template(template_sel other_value); +NEDC__DRB__Configuration__Type_template(int other_value); +NEDC__DRB__Configuration__Type_template(NEDC__DRB__Configuration__Type::enum_type other_value); +NEDC__DRB__Configuration__Type_template(const NEDC__DRB__Configuration__Type& other_value); +NEDC__DRB__Configuration__Type_template(const OPTIONAL& other_value); +NEDC__DRB__Configuration__Type_template(NEDC__DRB__Configuration__Type_template* p_precondition, NEDC__DRB__Configuration__Type_template* p_implied_template); +NEDC__DRB__Configuration__Type_template(Dynamic_Match_Interface* p_dyn_match); +NEDC__DRB__Configuration__Type_template(const NEDC__DRB__Configuration__Type_template& other_value); +~NEDC__DRB__Configuration__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NEDC__DRB__Configuration__Type_template& operator=(template_sel other_value); +NEDC__DRB__Configuration__Type_template& operator=(int other_value); +NEDC__DRB__Configuration__Type_template& operator=(NEDC__DRB__Configuration__Type::enum_type other_value); +NEDC__DRB__Configuration__Type_template& operator=(const NEDC__DRB__Configuration__Type& other_value); +NEDC__DRB__Configuration__Type_template& operator=(const OPTIONAL& other_value); +NEDC__DRB__Configuration__Type_template& operator=(const NEDC__DRB__Configuration__Type_template& other_value); + +boolean match(NEDC__DRB__Configuration__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NEDC__DRB__Configuration__Type& other_value, boolean legacy = FALSE) const; +NEDC__DRB__Configuration__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NEDC__DRB__Configuration__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NEDC__DRB__Configuration__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NR__TestEnvironment__Type : public Enum_Type { // enum +friend class NR__TestEnvironment__Type_template; +public: +enum enum_type { Conducted = 0, OTA = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +NR__TestEnvironment__Type(); +NR__TestEnvironment__Type(int other_value); +NR__TestEnvironment__Type(enum_type other_value); +NR__TestEnvironment__Type(const NR__TestEnvironment__Type& other_value); + +NR__TestEnvironment__Type& operator=(int other_value); +NR__TestEnvironment__Type& operator=(enum_type other_value); +NR__TestEnvironment__Type& operator=(const NR__TestEnvironment__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NR__TestEnvironment__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NR__TestEnvironment__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NR__TestEnvironment__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NR__TestEnvironment__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NR__TestEnvironment__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NR__TestEnvironment__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NR__TestEnvironment__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NR__TestEnvironment__Type_template : public Base_Template { +union { +NR__TestEnvironment__Type::enum_type single_value; +struct { +unsigned int n_values; +NR__TestEnvironment__Type_template *list_value; +} value_list; +struct { +NR__TestEnvironment__Type_template* precondition; +NR__TestEnvironment__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NR__TestEnvironment__Type_template& other_value); + +public: +NR__TestEnvironment__Type_template(); +NR__TestEnvironment__Type_template(template_sel other_value); +NR__TestEnvironment__Type_template(int other_value); +NR__TestEnvironment__Type_template(NR__TestEnvironment__Type::enum_type other_value); +NR__TestEnvironment__Type_template(const NR__TestEnvironment__Type& other_value); +NR__TestEnvironment__Type_template(const OPTIONAL& other_value); +NR__TestEnvironment__Type_template(NR__TestEnvironment__Type_template* p_precondition, NR__TestEnvironment__Type_template* p_implied_template); +NR__TestEnvironment__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__TestEnvironment__Type_template(const NR__TestEnvironment__Type_template& other_value); +~NR__TestEnvironment__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NR__TestEnvironment__Type_template& operator=(template_sel other_value); +NR__TestEnvironment__Type_template& operator=(int other_value); +NR__TestEnvironment__Type_template& operator=(NR__TestEnvironment__Type::enum_type other_value); +NR__TestEnvironment__Type_template& operator=(const NR__TestEnvironment__Type& other_value); +NR__TestEnvironment__Type_template& operator=(const OPTIONAL& other_value); +NR__TestEnvironment__Type_template& operator=(const NR__TestEnvironment__Type_template& other_value); + +boolean match(NR__TestEnvironment__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NR__TestEnvironment__Type& other_value, boolean legacy = FALSE) const; +NR__TestEnvironment__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NR__TestEnvironment__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NR__TestEnvironment__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class ENDC__SRB__DRB__Configuration__Type : public Enum_Type { // enum +friend class ENDC__SRB__DRB__Configuration__Type_template; +public: +enum enum_type { NONE_ = 0, NR__PDCP__MCG = 1, NR__PDCP__SRB1__2 = 2, NR__PDCP__MCG__SRB1__2 = 3, NR__PDCP__SRB1__2__SRB3 = 4, SRB3 = 5, UNKNOWN_VALUE = 6, UNBOUND_VALUE = 7 }; +private: +enum_type enum_value; + +public: +ENDC__SRB__DRB__Configuration__Type(); +ENDC__SRB__DRB__Configuration__Type(int other_value); +ENDC__SRB__DRB__Configuration__Type(enum_type other_value); +ENDC__SRB__DRB__Configuration__Type(const ENDC__SRB__DRB__Configuration__Type& other_value); + +ENDC__SRB__DRB__Configuration__Type& operator=(int other_value); +ENDC__SRB__DRB__Configuration__Type& operator=(enum_type other_value); +ENDC__SRB__DRB__Configuration__Type& operator=(const ENDC__SRB__DRB__Configuration__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const ENDC__SRB__DRB__Configuration__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const ENDC__SRB__DRB__Configuration__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const ENDC__SRB__DRB__Configuration__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const ENDC__SRB__DRB__Configuration__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const ENDC__SRB__DRB__Configuration__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const ENDC__SRB__DRB__Configuration__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const ENDC__SRB__DRB__Configuration__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class ENDC__SRB__DRB__Configuration__Type_template : public Base_Template { +union { +ENDC__SRB__DRB__Configuration__Type::enum_type single_value; +struct { +unsigned int n_values; +ENDC__SRB__DRB__Configuration__Type_template *list_value; +} value_list; +struct { +ENDC__SRB__DRB__Configuration__Type_template* precondition; +ENDC__SRB__DRB__Configuration__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const ENDC__SRB__DRB__Configuration__Type_template& other_value); + +public: +ENDC__SRB__DRB__Configuration__Type_template(); +ENDC__SRB__DRB__Configuration__Type_template(template_sel other_value); +ENDC__SRB__DRB__Configuration__Type_template(int other_value); +ENDC__SRB__DRB__Configuration__Type_template(ENDC__SRB__DRB__Configuration__Type::enum_type other_value); +ENDC__SRB__DRB__Configuration__Type_template(const ENDC__SRB__DRB__Configuration__Type& other_value); +ENDC__SRB__DRB__Configuration__Type_template(const OPTIONAL& other_value); +ENDC__SRB__DRB__Configuration__Type_template(ENDC__SRB__DRB__Configuration__Type_template* p_precondition, ENDC__SRB__DRB__Configuration__Type_template* p_implied_template); +ENDC__SRB__DRB__Configuration__Type_template(Dynamic_Match_Interface* p_dyn_match); +ENDC__SRB__DRB__Configuration__Type_template(const ENDC__SRB__DRB__Configuration__Type_template& other_value); +~ENDC__SRB__DRB__Configuration__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +ENDC__SRB__DRB__Configuration__Type_template& operator=(template_sel other_value); +ENDC__SRB__DRB__Configuration__Type_template& operator=(int other_value); +ENDC__SRB__DRB__Configuration__Type_template& operator=(ENDC__SRB__DRB__Configuration__Type::enum_type other_value); +ENDC__SRB__DRB__Configuration__Type_template& operator=(const ENDC__SRB__DRB__Configuration__Type& other_value); +ENDC__SRB__DRB__Configuration__Type_template& operator=(const OPTIONAL& other_value); +ENDC__SRB__DRB__Configuration__Type_template& operator=(const ENDC__SRB__DRB__Configuration__Type_template& other_value); + +boolean match(ENDC__SRB__DRB__Configuration__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const ENDC__SRB__DRB__Configuration__Type& other_value, boolean legacy = FALSE) const; +ENDC__SRB__DRB__Configuration__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +ENDC__SRB__DRB__Configuration__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const ENDC__SRB__DRB__Configuration__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class ENDC__BandCombination__Type : public Enum_Type { // enum +friend class ENDC__BandCombination__Type_template; +public: +enum enum_type { DC__1A__n3A = 0, DC__1A__n5A = 1, DC__1A__n7A = 2, DC__1A__n28A = 3, DC__1A__n41A = 4, DC__1A__n77A = 5, DC__1A__n78A = 6, DC__1A__n79A = 7, DC__2A__n5A = 8, DC__2A__n41A = 9, DC__2A__n48A = 10, DC__2A__n66A = 11, DC__2A__n71A = 12, DC__2A__n77A = 13, DC__2A__n78A = 14, DC__3A__n1A = 15, DC__3A__n5A = 16, DC__3A__n7A = 17, DC__3A__n28A = 18, DC__3A__n41A = 19, DC__3A__n77A = 20, DC__3A__n78A = 21, DC__3A__n79A = 22, DC__5A__n2A = 23, DC__5A__n66A = 24, DC__5A__n77A = 25, DC__5A__n78A = 26, DC__7A__n1A = 27, DC__7A__n3A = 28, DC__7A__n5A = 29, DC__7A__n28A = 30, DC__7A__n66A = 31, DC__7A__n78A = 32, DC__8A__n1A = 33, DC__8A__n3A = 34, DC__8A__n20A = 35, DC__8A__n41A = 36, DC__8A__n77A = 37, DC__8A__n78A = 38, DC__11A__n77A = 39, DC__11A__n78A = 40, DC__11A__n79A = 41, DC__12A__n2A = 42, DC__12A__n5A = 43, DC__12A__n66A = 44, DC__12A__n78A = 45, DC__13A__n2A = 46, DC__13A__n66A = 47, DC__13A__n77A = 48, DC__14A__n2A = 49, DC__14A__n66A = 50, DC__18A__n77A = 51, DC__18A__n78A = 52, DC__18A__n79A = 53, DC__19A__n1A = 54, DC__19A__n77A = 55, DC__19A__n78A = 56, DC__19A__n79A = 57, DC__20A__n1A = 58, DC__20A__n3A = 59, DC__20A__n7A = 60, DC__20A__n8A = 61, DC__20A__n28A = 62, DC__20A__n78A = 63, DC__21A__n1A = 64, DC__21A__n28A = 65, DC__21A__n77A = 66, DC__21A__n78A = 67, DC__21A__n79A = 68, DC__25A__n41A = 69, DC__26A__n41A = 70, DC__26A__n77A = 71, DC__26A__n78A = 72, DC__26A__n79A = 73, DC__28A__n3A = 74, DC__28A__n5A = 75, DC__28A__n7A = 76, DC__28A__n77A = 77, DC__28A__n78A = 78, DC__28A__n79A = 79, DC__30A__n5A = 80, DC__30A__n66A = 81, DC__38A__n78A = 82, DC__39A__n41A = 83, DC__39A__n79A = 84, DC__40A__n1A = 85, DC__40A__n41A = 86, DC__40A__n78A = 87, DC__40A__n79A = 88, DC__41A__n28A = 89, DC__41A__n77A = 90, DC__41A__n78A = 91, DC__41A__n79A = 92, DC__42A__n1A = 93, DC__42A__n77A = 94, DC__42A__n78A = 95, DC__42A__n79A = 96, DC__48A__n5A = 97, DC__48A__n66A = 98, DC__66A__n2A = 99, DC__66A__n41A = 100, DC__66A__n5A = 101, DC__66A__n71A = 102, DC__66A__n77A = 103, DC__66A__n78A = 104, DC__71A__n2A = 105, DC__71A__n66A = 106, DC__1A__n257A = 107, DC__2A__n257A = 108, DC__2A__n260A = 109, DC__3A__n257A = 110, DC__5A__n257A = 111, DC__5A__n260A = 112, DC__5A__n261A = 113, DC__7A__n257A = 114, DC__8A__n257A = 115, DC__8A__n258A = 116, DC__11A__n257A = 117, DC__12A__n260A = 118, DC__13A__n257A = 119, DC__13A__n260A = 120, DC__14A__n260A = 121, DC__18A__n257A = 122, DC__19A__n257A = 123, DC__20A__n257A = 124, DC__21A__n257A = 125, DC__28A__n257A = 126, DC__30A__n260A = 127, DC__41A__n257A = 128, DC__42A__n257A = 129, DC__48A__n260A = 130, DC__66A__n257A = 131, DC__66A__n260A = 132, DC__66A__n261A = 133, DC__n41AA = 134, DC__n71AA = 135, DC__41A__n41A = 136, UNKNOWN_VALUE = 137, UNBOUND_VALUE = 138 }; +private: +enum_type enum_value; + +public: +ENDC__BandCombination__Type(); +ENDC__BandCombination__Type(int other_value); +ENDC__BandCombination__Type(enum_type other_value); +ENDC__BandCombination__Type(const ENDC__BandCombination__Type& other_value); + +ENDC__BandCombination__Type& operator=(int other_value); +ENDC__BandCombination__Type& operator=(enum_type other_value); +ENDC__BandCombination__Type& operator=(const ENDC__BandCombination__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const ENDC__BandCombination__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const ENDC__BandCombination__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const ENDC__BandCombination__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const ENDC__BandCombination__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const ENDC__BandCombination__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const ENDC__BandCombination__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const ENDC__BandCombination__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class ENDC__BandCombination__Type_template : public Base_Template { +union { +ENDC__BandCombination__Type::enum_type single_value; +struct { +unsigned int n_values; +ENDC__BandCombination__Type_template *list_value; +} value_list; +struct { +ENDC__BandCombination__Type_template* precondition; +ENDC__BandCombination__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const ENDC__BandCombination__Type_template& other_value); + +public: +ENDC__BandCombination__Type_template(); +ENDC__BandCombination__Type_template(template_sel other_value); +ENDC__BandCombination__Type_template(int other_value); +ENDC__BandCombination__Type_template(ENDC__BandCombination__Type::enum_type other_value); +ENDC__BandCombination__Type_template(const ENDC__BandCombination__Type& other_value); +ENDC__BandCombination__Type_template(const OPTIONAL& other_value); +ENDC__BandCombination__Type_template(ENDC__BandCombination__Type_template* p_precondition, ENDC__BandCombination__Type_template* p_implied_template); +ENDC__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match); +ENDC__BandCombination__Type_template(const ENDC__BandCombination__Type_template& other_value); +~ENDC__BandCombination__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +ENDC__BandCombination__Type_template& operator=(template_sel other_value); +ENDC__BandCombination__Type_template& operator=(int other_value); +ENDC__BandCombination__Type_template& operator=(ENDC__BandCombination__Type::enum_type other_value); +ENDC__BandCombination__Type_template& operator=(const ENDC__BandCombination__Type& other_value); +ENDC__BandCombination__Type_template& operator=(const OPTIONAL& other_value); +ENDC__BandCombination__Type_template& operator=(const ENDC__BandCombination__Type_template& other_value); + +boolean match(ENDC__BandCombination__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const ENDC__BandCombination__Type& other_value, boolean legacy = FALSE) const; +ENDC__BandCombination__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +ENDC__BandCombination__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const ENDC__BandCombination__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class ENDC__CombinationType__Type : public Enum_Type { // enum +friend class ENDC__CombinationType__Type_template; +public: +enum enum_type { InterBand = 0, IntraBandContiguous = 1, IntraBandNonContiguous = 2, UNKNOWN_VALUE = 3, UNBOUND_VALUE = 4 }; +private: +enum_type enum_value; + +public: +ENDC__CombinationType__Type(); +ENDC__CombinationType__Type(int other_value); +ENDC__CombinationType__Type(enum_type other_value); +ENDC__CombinationType__Type(const ENDC__CombinationType__Type& other_value); + +ENDC__CombinationType__Type& operator=(int other_value); +ENDC__CombinationType__Type& operator=(enum_type other_value); +ENDC__CombinationType__Type& operator=(const ENDC__CombinationType__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const ENDC__CombinationType__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const ENDC__CombinationType__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const ENDC__CombinationType__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const ENDC__CombinationType__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const ENDC__CombinationType__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const ENDC__CombinationType__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const ENDC__CombinationType__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class ENDC__CombinationType__Type_template : public Base_Template { +union { +ENDC__CombinationType__Type::enum_type single_value; +struct { +unsigned int n_values; +ENDC__CombinationType__Type_template *list_value; +} value_list; +struct { +ENDC__CombinationType__Type_template* precondition; +ENDC__CombinationType__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const ENDC__CombinationType__Type_template& other_value); + +public: +ENDC__CombinationType__Type_template(); +ENDC__CombinationType__Type_template(template_sel other_value); +ENDC__CombinationType__Type_template(int other_value); +ENDC__CombinationType__Type_template(ENDC__CombinationType__Type::enum_type other_value); +ENDC__CombinationType__Type_template(const ENDC__CombinationType__Type& other_value); +ENDC__CombinationType__Type_template(const OPTIONAL& other_value); +ENDC__CombinationType__Type_template(ENDC__CombinationType__Type_template* p_precondition, ENDC__CombinationType__Type_template* p_implied_template); +ENDC__CombinationType__Type_template(Dynamic_Match_Interface* p_dyn_match); +ENDC__CombinationType__Type_template(const ENDC__CombinationType__Type_template& other_value); +~ENDC__CombinationType__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +ENDC__CombinationType__Type_template& operator=(template_sel other_value); +ENDC__CombinationType__Type_template& operator=(int other_value); +ENDC__CombinationType__Type_template& operator=(ENDC__CombinationType__Type::enum_type other_value); +ENDC__CombinationType__Type_template& operator=(const ENDC__CombinationType__Type& other_value); +ENDC__CombinationType__Type_template& operator=(const OPTIONAL& other_value); +ENDC__CombinationType__Type_template& operator=(const ENDC__CombinationType__Type_template& other_value); + +boolean match(ENDC__CombinationType__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const ENDC__CombinationType__Type& other_value, boolean legacy = FALSE) const; +ENDC__CombinationType__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +ENDC__CombinationType__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const ENDC__CombinationType__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class ENDC__CA__BandCombination__Type : public Enum_Type { // enum +friend class ENDC__CA__BandCombination__Type_template; +public: +enum enum_type { DC__1A__n28A__n78A = 0, DC__1A__n78A__n79A = 1, DC__1A__n78A__n257A = 2, DC__1A__n79A__n257A = 3, DC__3A__n28A__n78A = 4, DC__3A__n78A__n79A = 5, DC__7A__n5A__n78A = 6, DC__3A__n78A__n257A = 7, DC__3A__n79A__n257A = 8, DC__7A__n28A__n78A = 9, DC__19A__n78A__n79A = 10, DC__19A__n78A__n257A = 11, DC__19A__n79A__n257A = 12, DC__20A__n28A__n78A = 13, DC__21A__n78A__n79A = 14, DC__28A__n7A__n78A = 15, DC__1A__n78C = 16, DC__3A__n78C = 17, DC__5A__n78C = 18, DC__8A__n77__2A = 19, DC__19A__n78__2A = 20, DC__19A__n78C = 21, DC__21A__n78__2A = 22, DC__21A__n78C = 23, DC__28A__n78C = 24, DC__42A__n78C = 25, DC__1A__n257G = 26, DC__2A__n260G = 27, DC__3A__n257G = 28, DC__5A__n260G = 29, DC__5A__n261G = 30, DC__5A__n261__2A = 31, DC__8A__n257G = 32, DC__12A__n260G = 33, DC__14A__n260G = 34, DC__19A__n257G = 35, DC__21A__n257G = 36, DC__30A__n260G = 37, DC__66A__n260G = 38, DC__66A__n261G = 39, DC__66A__n261__2A = 40, UNKNOWN_VALUE = 41, UNBOUND_VALUE = 42 }; +private: +enum_type enum_value; + +public: +ENDC__CA__BandCombination__Type(); +ENDC__CA__BandCombination__Type(int other_value); +ENDC__CA__BandCombination__Type(enum_type other_value); +ENDC__CA__BandCombination__Type(const ENDC__CA__BandCombination__Type& other_value); + +ENDC__CA__BandCombination__Type& operator=(int other_value); +ENDC__CA__BandCombination__Type& operator=(enum_type other_value); +ENDC__CA__BandCombination__Type& operator=(const ENDC__CA__BandCombination__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const ENDC__CA__BandCombination__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const ENDC__CA__BandCombination__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const ENDC__CA__BandCombination__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const ENDC__CA__BandCombination__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const ENDC__CA__BandCombination__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const ENDC__CA__BandCombination__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const ENDC__CA__BandCombination__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class ENDC__CA__BandCombination__Type_template : public Base_Template { +union { +ENDC__CA__BandCombination__Type::enum_type single_value; +struct { +unsigned int n_values; +ENDC__CA__BandCombination__Type_template *list_value; +} value_list; +struct { +ENDC__CA__BandCombination__Type_template* precondition; +ENDC__CA__BandCombination__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const ENDC__CA__BandCombination__Type_template& other_value); + +public: +ENDC__CA__BandCombination__Type_template(); +ENDC__CA__BandCombination__Type_template(template_sel other_value); +ENDC__CA__BandCombination__Type_template(int other_value); +ENDC__CA__BandCombination__Type_template(ENDC__CA__BandCombination__Type::enum_type other_value); +ENDC__CA__BandCombination__Type_template(const ENDC__CA__BandCombination__Type& other_value); +ENDC__CA__BandCombination__Type_template(const OPTIONAL& other_value); +ENDC__CA__BandCombination__Type_template(ENDC__CA__BandCombination__Type_template* p_precondition, ENDC__CA__BandCombination__Type_template* p_implied_template); +ENDC__CA__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match); +ENDC__CA__BandCombination__Type_template(const ENDC__CA__BandCombination__Type_template& other_value); +~ENDC__CA__BandCombination__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +ENDC__CA__BandCombination__Type_template& operator=(template_sel other_value); +ENDC__CA__BandCombination__Type_template& operator=(int other_value); +ENDC__CA__BandCombination__Type_template& operator=(ENDC__CA__BandCombination__Type::enum_type other_value); +ENDC__CA__BandCombination__Type_template& operator=(const ENDC__CA__BandCombination__Type& other_value); +ENDC__CA__BandCombination__Type_template& operator=(const OPTIONAL& other_value); +ENDC__CA__BandCombination__Type_template& operator=(const ENDC__CA__BandCombination__Type_template& other_value); + +boolean match(ENDC__CA__BandCombination__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const ENDC__CA__BandCombination__Type& other_value, boolean legacy = FALSE) const; +ENDC__CA__BandCombination__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +ENDC__CA__BandCombination__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const ENDC__CA__BandCombination__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NR__CA__BandCombination__Type : public Enum_Type { // enum +friend class NR__CA__BandCombination__Type_template; +public: +enum enum_type { CA__n1A__n3A = 0, CA__n1A__n8A = 1, CA__n1A__n77A = 2, CA__n1A__n78A = 3, CA__n1A__n79A = 4, CA__n2A__n5A = 5, CA__n2A__n14A = 6, CA__n2A__n48A = 7, CA__n2A__n66A = 8, CA__n2A__n77A = 9, CA__n3A__n5A = 10, CA__n3A__n8A = 11, CA__n3A__n41A = 12, CA__n3A__n77A = 13, CA__n3A__n78A = 14, CA__n5A__n7A = 15, CA__n5A__n48A = 16, CA__n5A__n66A = 17, CA__n5A__n77A = 18, CA__n5A__n78A = 19, CA__n7A__n78A = 20, CA__n8A__n78A = 21, CA__n14A__n30A = 22, CA__n14A__n66A = 23, CA__n14A__n77A = 24, CA__n20A__n78A = 25, CA__n24A__n41A = 26, CA__n24A__n48A = 27, CA__n24A__n77A = 28, CA__n26A__n66A = 29, CA__n26A__n70A = 30, CA__n28A__n41A = 31, CA__n28A__n77A = 32, CA__n28A__n78A = 33, CA__n28A__n79A = 34, CA__n29A__n66A = 35, CA__n29A__n70A = 36, CA__n29A__n71A = 37, CA__n39A__n41A = 38, CA__n41A__n66A = 39, CA__n41A__n71A = 40, CA__n41A__n79A = 41, CA__n48A__n66A = 42, CA__n48A__n70A = 43, CA__n48A__n71A = 44, CA__n48A__n77A = 45, CA__n66A__n70A = 46, CA__n66A__n71A = 47, CA__n66A__n77A = 48, CA__n70A__n71A = 49, CA__n71A__n77A = 50, CA__n77A__n79A = 51, CA__n78A__n79A = 52, CA__n78A__n257A = 53, CA__n79A__n257A = 54, CA__n1A__n258A = 55, CA__n260A__n261A = 56, CA__n41C = 57, CA__n48B = 58, CA__n66B = 59, CA__n77C = 60, CA__n78C = 61, CA__n257G = 62, CA__n258G = 63, CA__n260G = 64, CA__n261G = 65, CA__n48__2A = 66, CA__n66__2A = 67, CA__n71__2A = 68, CA__n77__2A = 69, CA__n78__2A = 70, CA__n261__2A = 71, UNKNOWN_VALUE = 72, UNBOUND_VALUE = 73 }; +private: +enum_type enum_value; + +public: +NR__CA__BandCombination__Type(); +NR__CA__BandCombination__Type(int other_value); +NR__CA__BandCombination__Type(enum_type other_value); +NR__CA__BandCombination__Type(const NR__CA__BandCombination__Type& other_value); + +NR__CA__BandCombination__Type& operator=(int other_value); +NR__CA__BandCombination__Type& operator=(enum_type other_value); +NR__CA__BandCombination__Type& operator=(const NR__CA__BandCombination__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NR__CA__BandCombination__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NR__CA__BandCombination__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NR__CA__BandCombination__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NR__CA__BandCombination__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NR__CA__BandCombination__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NR__CA__BandCombination__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NR__CA__BandCombination__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NR__CA__BandCombination__Type_template : public Base_Template { +union { +NR__CA__BandCombination__Type::enum_type single_value; +struct { +unsigned int n_values; +NR__CA__BandCombination__Type_template *list_value; +} value_list; +struct { +NR__CA__BandCombination__Type_template* precondition; +NR__CA__BandCombination__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NR__CA__BandCombination__Type_template& other_value); + +public: +NR__CA__BandCombination__Type_template(); +NR__CA__BandCombination__Type_template(template_sel other_value); +NR__CA__BandCombination__Type_template(int other_value); +NR__CA__BandCombination__Type_template(NR__CA__BandCombination__Type::enum_type other_value); +NR__CA__BandCombination__Type_template(const NR__CA__BandCombination__Type& other_value); +NR__CA__BandCombination__Type_template(const OPTIONAL& other_value); +NR__CA__BandCombination__Type_template(NR__CA__BandCombination__Type_template* p_precondition, NR__CA__BandCombination__Type_template* p_implied_template); +NR__CA__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__CA__BandCombination__Type_template(const NR__CA__BandCombination__Type_template& other_value); +~NR__CA__BandCombination__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NR__CA__BandCombination__Type_template& operator=(template_sel other_value); +NR__CA__BandCombination__Type_template& operator=(int other_value); +NR__CA__BandCombination__Type_template& operator=(NR__CA__BandCombination__Type::enum_type other_value); +NR__CA__BandCombination__Type_template& operator=(const NR__CA__BandCombination__Type& other_value); +NR__CA__BandCombination__Type_template& operator=(const OPTIONAL& other_value); +NR__CA__BandCombination__Type_template& operator=(const NR__CA__BandCombination__Type_template& other_value); + +boolean match(NR__CA__BandCombination__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NR__CA__BandCombination__Type& other_value, boolean legacy = FALSE) const; +NR__CA__BandCombination__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NR__CA__BandCombination__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NR__CA__BandCombination__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NR__CA__3CC__BandCombination__Type : public Enum_Type { // enum +friend class NR__CA__3CC__BandCombination__Type_template; +public: +enum enum_type { CA__n257H = 0, CA__n258H = 1, CA__n260H = 2, CA__n261H = 3, UNKNOWN_VALUE = 4, UNBOUND_VALUE = 5 }; +private: +enum_type enum_value; + +public: +NR__CA__3CC__BandCombination__Type(); +NR__CA__3CC__BandCombination__Type(int other_value); +NR__CA__3CC__BandCombination__Type(enum_type other_value); +NR__CA__3CC__BandCombination__Type(const NR__CA__3CC__BandCombination__Type& other_value); + +NR__CA__3CC__BandCombination__Type& operator=(int other_value); +NR__CA__3CC__BandCombination__Type& operator=(enum_type other_value); +NR__CA__3CC__BandCombination__Type& operator=(const NR__CA__3CC__BandCombination__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NR__CA__3CC__BandCombination__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NR__CA__3CC__BandCombination__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NR__CA__3CC__BandCombination__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NR__CA__3CC__BandCombination__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NR__CA__3CC__BandCombination__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NR__CA__3CC__BandCombination__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NR__CA__3CC__BandCombination__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NR__CA__3CC__BandCombination__Type_template : public Base_Template { +union { +NR__CA__3CC__BandCombination__Type::enum_type single_value; +struct { +unsigned int n_values; +NR__CA__3CC__BandCombination__Type_template *list_value; +} value_list; +struct { +NR__CA__3CC__BandCombination__Type_template* precondition; +NR__CA__3CC__BandCombination__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NR__CA__3CC__BandCombination__Type_template& other_value); + +public: +NR__CA__3CC__BandCombination__Type_template(); +NR__CA__3CC__BandCombination__Type_template(template_sel other_value); +NR__CA__3CC__BandCombination__Type_template(int other_value); +NR__CA__3CC__BandCombination__Type_template(NR__CA__3CC__BandCombination__Type::enum_type other_value); +NR__CA__3CC__BandCombination__Type_template(const NR__CA__3CC__BandCombination__Type& other_value); +NR__CA__3CC__BandCombination__Type_template(const OPTIONAL& other_value); +NR__CA__3CC__BandCombination__Type_template(NR__CA__3CC__BandCombination__Type_template* p_precondition, NR__CA__3CC__BandCombination__Type_template* p_implied_template); +NR__CA__3CC__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__CA__3CC__BandCombination__Type_template(const NR__CA__3CC__BandCombination__Type_template& other_value); +~NR__CA__3CC__BandCombination__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NR__CA__3CC__BandCombination__Type_template& operator=(template_sel other_value); +NR__CA__3CC__BandCombination__Type_template& operator=(int other_value); +NR__CA__3CC__BandCombination__Type_template& operator=(NR__CA__3CC__BandCombination__Type::enum_type other_value); +NR__CA__3CC__BandCombination__Type_template& operator=(const NR__CA__3CC__BandCombination__Type& other_value); +NR__CA__3CC__BandCombination__Type_template& operator=(const OPTIONAL& other_value); +NR__CA__3CC__BandCombination__Type_template& operator=(const NR__CA__3CC__BandCombination__Type_template& other_value); + +boolean match(NR__CA__3CC__BandCombination__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NR__CA__3CC__BandCombination__Type& other_value, boolean legacy = FALSE) const; +NR__CA__3CC__BandCombination__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NR__CA__3CC__BandCombination__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NR__CA__3CC__BandCombination__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NR__DC__BandCombination__Type : public Enum_Type { // enum +friend class NR__DC__BandCombination__Type_template; +public: +enum enum_type { DC__n1A__n258A = 0, DC__n77A__n261A = 1, DC__n78A__n257A = 2, DC__n78A__n258A = 3, DC__n79A__n257A = 4, DC__n48A__n70A = 5, UNKNOWN_VALUE = 6, UNBOUND_VALUE = 7 }; +private: +enum_type enum_value; + +public: +NR__DC__BandCombination__Type(); +NR__DC__BandCombination__Type(int other_value); +NR__DC__BandCombination__Type(enum_type other_value); +NR__DC__BandCombination__Type(const NR__DC__BandCombination__Type& other_value); + +NR__DC__BandCombination__Type& operator=(int other_value); +NR__DC__BandCombination__Type& operator=(enum_type other_value); +NR__DC__BandCombination__Type& operator=(const NR__DC__BandCombination__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NR__DC__BandCombination__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NR__DC__BandCombination__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NR__DC__BandCombination__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NR__DC__BandCombination__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NR__DC__BandCombination__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NR__DC__BandCombination__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NR__DC__BandCombination__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NR__DC__BandCombination__Type_template : public Base_Template { +union { +NR__DC__BandCombination__Type::enum_type single_value; +struct { +unsigned int n_values; +NR__DC__BandCombination__Type_template *list_value; +} value_list; +struct { +NR__DC__BandCombination__Type_template* precondition; +NR__DC__BandCombination__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NR__DC__BandCombination__Type_template& other_value); + +public: +NR__DC__BandCombination__Type_template(); +NR__DC__BandCombination__Type_template(template_sel other_value); +NR__DC__BandCombination__Type_template(int other_value); +NR__DC__BandCombination__Type_template(NR__DC__BandCombination__Type::enum_type other_value); +NR__DC__BandCombination__Type_template(const NR__DC__BandCombination__Type& other_value); +NR__DC__BandCombination__Type_template(const OPTIONAL& other_value); +NR__DC__BandCombination__Type_template(NR__DC__BandCombination__Type_template* p_precondition, NR__DC__BandCombination__Type_template* p_implied_template); +NR__DC__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__DC__BandCombination__Type_template(const NR__DC__BandCombination__Type_template& other_value); +~NR__DC__BandCombination__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NR__DC__BandCombination__Type_template& operator=(template_sel other_value); +NR__DC__BandCombination__Type_template& operator=(int other_value); +NR__DC__BandCombination__Type_template& operator=(NR__DC__BandCombination__Type::enum_type other_value); +NR__DC__BandCombination__Type_template& operator=(const NR__DC__BandCombination__Type& other_value); +NR__DC__BandCombination__Type_template& operator=(const OPTIONAL& other_value); +NR__DC__BandCombination__Type_template& operator=(const NR__DC__BandCombination__Type_template& other_value); + +boolean match(NR__DC__BandCombination__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NR__DC__BandCombination__Type& other_value, boolean legacy = FALSE) const; +NR__DC__BandCombination__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NR__DC__BandCombination__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NR__DC__BandCombination__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NR__DC__CA__BandCombination__Type : public Enum_Type { // enum +friend class NR__DC__CA__BandCombination__Type_template; +public: +enum enum_type { DC__n1A__n258G = 0, DC__n77A__n261G = 1, DC__n78A__n257G = 2, DC__n78A__n258G = 3, DC__n79A__n257G = 4, UNKNOWN_VALUE = 5, UNBOUND_VALUE = 6 }; +private: +enum_type enum_value; + +public: +NR__DC__CA__BandCombination__Type(); +NR__DC__CA__BandCombination__Type(int other_value); +NR__DC__CA__BandCombination__Type(enum_type other_value); +NR__DC__CA__BandCombination__Type(const NR__DC__CA__BandCombination__Type& other_value); + +NR__DC__CA__BandCombination__Type& operator=(int other_value); +NR__DC__CA__BandCombination__Type& operator=(enum_type other_value); +NR__DC__CA__BandCombination__Type& operator=(const NR__DC__CA__BandCombination__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NR__DC__CA__BandCombination__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NR__DC__CA__BandCombination__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NR__DC__CA__BandCombination__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NR__DC__CA__BandCombination__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NR__DC__CA__BandCombination__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NR__DC__CA__BandCombination__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NR__DC__CA__BandCombination__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NR__DC__CA__BandCombination__Type_template : public Base_Template { +union { +NR__DC__CA__BandCombination__Type::enum_type single_value; +struct { +unsigned int n_values; +NR__DC__CA__BandCombination__Type_template *list_value; +} value_list; +struct { +NR__DC__CA__BandCombination__Type_template* precondition; +NR__DC__CA__BandCombination__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NR__DC__CA__BandCombination__Type_template& other_value); + +public: +NR__DC__CA__BandCombination__Type_template(); +NR__DC__CA__BandCombination__Type_template(template_sel other_value); +NR__DC__CA__BandCombination__Type_template(int other_value); +NR__DC__CA__BandCombination__Type_template(NR__DC__CA__BandCombination__Type::enum_type other_value); +NR__DC__CA__BandCombination__Type_template(const NR__DC__CA__BandCombination__Type& other_value); +NR__DC__CA__BandCombination__Type_template(const OPTIONAL& other_value); +NR__DC__CA__BandCombination__Type_template(NR__DC__CA__BandCombination__Type_template* p_precondition, NR__DC__CA__BandCombination__Type_template* p_implied_template); +NR__DC__CA__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__DC__CA__BandCombination__Type_template(const NR__DC__CA__BandCombination__Type_template& other_value); +~NR__DC__CA__BandCombination__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NR__DC__CA__BandCombination__Type_template& operator=(template_sel other_value); +NR__DC__CA__BandCombination__Type_template& operator=(int other_value); +NR__DC__CA__BandCombination__Type_template& operator=(NR__DC__CA__BandCombination__Type::enum_type other_value); +NR__DC__CA__BandCombination__Type_template& operator=(const NR__DC__CA__BandCombination__Type& other_value); +NR__DC__CA__BandCombination__Type_template& operator=(const OPTIONAL& other_value); +NR__DC__CA__BandCombination__Type_template& operator=(const NR__DC__CA__BandCombination__Type_template& other_value); + +boolean match(NR__DC__CA__BandCombination__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NR__DC__CA__BandCombination__Type& other_value, boolean legacy = FALSE) const; +NR__DC__CA__BandCombination__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NR__DC__CA__BandCombination__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NR__DC__CA__BandCombination__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NEDC__CombinationType__Type : public Enum_Type { // enum +friend class NEDC__CombinationType__Type_template; +public: +enum enum_type { InterBand = 0, UNKNOWN_VALUE = 1, UNBOUND_VALUE = 2 }; +private: +enum_type enum_value; + +public: +NEDC__CombinationType__Type(); +NEDC__CombinationType__Type(int other_value); +NEDC__CombinationType__Type(enum_type other_value); +NEDC__CombinationType__Type(const NEDC__CombinationType__Type& other_value); + +NEDC__CombinationType__Type& operator=(int other_value); +NEDC__CombinationType__Type& operator=(enum_type other_value); +NEDC__CombinationType__Type& operator=(const NEDC__CombinationType__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NEDC__CombinationType__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NEDC__CombinationType__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NEDC__CombinationType__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NEDC__CombinationType__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NEDC__CombinationType__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NEDC__CombinationType__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NEDC__CombinationType__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NEDC__CombinationType__Type_template : public Base_Template { +union { +NEDC__CombinationType__Type::enum_type single_value; +struct { +unsigned int n_values; +NEDC__CombinationType__Type_template *list_value; +} value_list; +struct { +NEDC__CombinationType__Type_template* precondition; +NEDC__CombinationType__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NEDC__CombinationType__Type_template& other_value); + +public: +NEDC__CombinationType__Type_template(); +NEDC__CombinationType__Type_template(template_sel other_value); +NEDC__CombinationType__Type_template(int other_value); +NEDC__CombinationType__Type_template(NEDC__CombinationType__Type::enum_type other_value); +NEDC__CombinationType__Type_template(const NEDC__CombinationType__Type& other_value); +NEDC__CombinationType__Type_template(const OPTIONAL& other_value); +NEDC__CombinationType__Type_template(NEDC__CombinationType__Type_template* p_precondition, NEDC__CombinationType__Type_template* p_implied_template); +NEDC__CombinationType__Type_template(Dynamic_Match_Interface* p_dyn_match); +NEDC__CombinationType__Type_template(const NEDC__CombinationType__Type_template& other_value); +~NEDC__CombinationType__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NEDC__CombinationType__Type_template& operator=(template_sel other_value); +NEDC__CombinationType__Type_template& operator=(int other_value); +NEDC__CombinationType__Type_template& operator=(NEDC__CombinationType__Type::enum_type other_value); +NEDC__CombinationType__Type_template& operator=(const NEDC__CombinationType__Type& other_value); +NEDC__CombinationType__Type_template& operator=(const OPTIONAL& other_value); +NEDC__CombinationType__Type_template& operator=(const NEDC__CombinationType__Type_template& other_value); + +boolean match(NEDC__CombinationType__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NEDC__CombinationType__Type& other_value, boolean legacy = FALSE) const; +NEDC__CombinationType__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NEDC__CombinationType__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NEDC__CombinationType__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class EUTRA__NR__PduSessionInfo__Type : public Record_Type { + INTEGER field_PDU__SessionId; + INTEGER field_EPS__Bearer; + OPTIONAL field_QFI; + CommonDefs::PDN__Index__Type field_PdnIndex; + BOOLEAN field_IsIMS; + Base_Type* fld_vec[5]; + void init_vec(); +public: + EUTRA__NR__PduSessionInfo__Type(); + EUTRA__NR__PduSessionInfo__Type(const EUTRA__NR__PduSessionInfo__Type& other_value); + EUTRA__NR__PduSessionInfo__Type(const INTEGER& par_PDU__SessionId, + const INTEGER& par_EPS__Bearer, + const OPTIONAL& par_QFI, + const CommonDefs::PDN__Index__Type& par_PdnIndex, + const BOOLEAN& par_IsIMS); +inline EUTRA__NR__PduSessionInfo__Type& operator=(const EUTRA__NR__PduSessionInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EUTRA__NR__PduSessionInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EUTRA__NR__PduSessionInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline INTEGER& PDU__SessionId() + {return field_PDU__SessionId;} + inline const INTEGER& PDU__SessionId() const + {return field_PDU__SessionId;} + inline INTEGER& EPS__Bearer() + {return field_EPS__Bearer;} + inline const INTEGER& EPS__Bearer() const + {return field_EPS__Bearer;} + inline OPTIONAL& QFI() + {return field_QFI;} + inline const OPTIONAL& QFI() const + {return field_QFI;} + inline CommonDefs::PDN__Index__Type& PdnIndex() + {return field_PdnIndex;} + inline const CommonDefs::PDN__Index__Type& PdnIndex() const + {return field_PdnIndex;} + inline BOOLEAN& IsIMS() + {return field_IsIMS;} + inline const BOOLEAN& IsIMS() const + {return field_IsIMS;} +Base_Type* clone() const { return new EUTRA__NR__PduSessionInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EUTRA__NR__PduSessionInfo__Type_template : public Record_Template { +void set_specific(); +public: +EUTRA__NR__PduSessionInfo__Type_template(): Record_Template() {} +EUTRA__NR__PduSessionInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +EUTRA__NR__PduSessionInfo__Type_template(const EUTRA__NR__PduSessionInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +EUTRA__NR__PduSessionInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EUTRA__NR__PduSessionInfo__Type_template(EUTRA__NR__PduSessionInfo__Type_template* p_precondition, EUTRA__NR__PduSessionInfo__Type_template* p_implied_template); +EUTRA__NR__PduSessionInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +EUTRA__NR__PduSessionInfo__Type_template(const EUTRA__NR__PduSessionInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~EUTRA__NR__PduSessionInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EUTRA__NR__PduSessionInfo__Type_template& operator=(template_sel other_value); +EUTRA__NR__PduSessionInfo__Type_template& operator=(const EUTRA__NR__PduSessionInfo__Type& other_value); +EUTRA__NR__PduSessionInfo__Type_template& operator=(const OPTIONAL& other_value); +EUTRA__NR__PduSessionInfo__Type_template& operator=(const EUTRA__NR__PduSessionInfo__Type_template& other_value); +inline boolean match(const EUTRA__NR__PduSessionInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EUTRA__NR__PduSessionInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EUTRA__NR__PduSessionInfo__Type valueof() const; +inline EUTRA__NR__PduSessionInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +INTEGER_template& PDU__SessionId(); +const INTEGER_template& PDU__SessionId() const; +INTEGER_template& EPS__Bearer(); +const INTEGER_template& EPS__Bearer() const; +INTEGER_template& QFI(); +const INTEGER_template& QFI() const; +CommonDefs::PDN__Index__Type_template& PdnIndex(); +const CommonDefs::PDN__Index__Type_template& PdnIndex() const; +BOOLEAN_template& IsIMS(); +const BOOLEAN_template& IsIMS() const; +Record_Template* create() const { return new EUTRA__NR__PduSessionInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NEDC__BandCombination__Type : public Enum_Type { // enum +friend class NEDC__BandCombination__Type_template; +public: +enum enum_type { DC__n28A__3A = 0, DC__n28A__39A = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +NEDC__BandCombination__Type(); +NEDC__BandCombination__Type(int other_value); +NEDC__BandCombination__Type(enum_type other_value); +NEDC__BandCombination__Type(const NEDC__BandCombination__Type& other_value); + +NEDC__BandCombination__Type& operator=(int other_value); +NEDC__BandCombination__Type& operator=(enum_type other_value); +NEDC__BandCombination__Type& operator=(const NEDC__BandCombination__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NEDC__BandCombination__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NEDC__BandCombination__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NEDC__BandCombination__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NEDC__BandCombination__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NEDC__BandCombination__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NEDC__BandCombination__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NEDC__BandCombination__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NEDC__BandCombination__Type_template : public Base_Template { +union { +NEDC__BandCombination__Type::enum_type single_value; +struct { +unsigned int n_values; +NEDC__BandCombination__Type_template *list_value; +} value_list; +struct { +NEDC__BandCombination__Type_template* precondition; +NEDC__BandCombination__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NEDC__BandCombination__Type_template& other_value); + +public: +NEDC__BandCombination__Type_template(); +NEDC__BandCombination__Type_template(template_sel other_value); +NEDC__BandCombination__Type_template(int other_value); +NEDC__BandCombination__Type_template(NEDC__BandCombination__Type::enum_type other_value); +NEDC__BandCombination__Type_template(const NEDC__BandCombination__Type& other_value); +NEDC__BandCombination__Type_template(const OPTIONAL& other_value); +NEDC__BandCombination__Type_template(NEDC__BandCombination__Type_template* p_precondition, NEDC__BandCombination__Type_template* p_implied_template); +NEDC__BandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match); +NEDC__BandCombination__Type_template(const NEDC__BandCombination__Type_template& other_value); +~NEDC__BandCombination__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NEDC__BandCombination__Type_template& operator=(template_sel other_value); +NEDC__BandCombination__Type_template& operator=(int other_value); +NEDC__BandCombination__Type_template& operator=(NEDC__BandCombination__Type::enum_type other_value); +NEDC__BandCombination__Type_template& operator=(const NEDC__BandCombination__Type& other_value); +NEDC__BandCombination__Type_template& operator=(const OPTIONAL& other_value); +NEDC__BandCombination__Type_template& operator=(const NEDC__BandCombination__Type_template& other_value); + +boolean match(NEDC__BandCombination__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NEDC__BandCombination__Type& other_value, boolean legacy = FALSE) const; +NEDC__BandCombination__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NEDC__BandCombination__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NEDC__BandCombination__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class EUTRA__NR__PduSessionInfoList__Type : public Record_Of_Type { + +static const EUTRA__NR__PduSessionInfo__Type UNBOUND_ELEM; + +public: +EUTRA__NR__PduSessionInfoList__Type(): Record_Of_Type() {} +EUTRA__NR__PduSessionInfoList__Type(null_type other_value): Record_Of_Type(other_value) {} +EUTRA__NR__PduSessionInfoList__Type(const EUTRA__NR__PduSessionInfoList__Type& other_value): Record_Of_Type(other_value) {} +~EUTRA__NR__PduSessionInfoList__Type() { clean_up(); } + +inline EUTRA__NR__PduSessionInfoList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline EUTRA__NR__PduSessionInfoList__Type& operator=(const EUTRA__NR__PduSessionInfoList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EUTRA__NR__PduSessionInfoList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const EUTRA__NR__PduSessionInfoList__Type& other_value) const { return !is_equal(&other_value); } +EUTRA__NR__PduSessionInfo__Type& operator[](int index_value); +EUTRA__NR__PduSessionInfo__Type& operator[](const INTEGER& index_value); +const EUTRA__NR__PduSessionInfo__Type& operator[](int index_value) const; +const EUTRA__NR__PduSessionInfo__Type& operator[](const INTEGER& index_value) const; +EUTRA__NR__PduSessionInfoList__Type operator<<=(int rotate_count) const; +EUTRA__NR__PduSessionInfoList__Type operator<<=(const INTEGER& rotate_count) const; +EUTRA__NR__PduSessionInfoList__Type operator>>=(int rotate_count) const; +EUTRA__NR__PduSessionInfoList__Type operator>>=(const INTEGER& rotate_count) const; + +EUTRA__NR__PduSessionInfoList__Type operator+(const EUTRA__NR__PduSessionInfoList__Type& other_value) const; + +EUTRA__NR__PduSessionInfoList__Type operator+(const OPTIONAL& other_value) const; + +EUTRA__NR__PduSessionInfoList__Type operator+(null_type) const; + +EUTRA__NR__PduSessionInfoList__Type substr(int index, int returncount) const; + +EUTRA__NR__PduSessionInfoList__Type replace(int index, int len, const EUTRA__NR__PduSessionInfoList__Type& repl) const; + +EUTRA__NR__PduSessionInfoList__Type replace(int index, int len, const EUTRA__NR__PduSessionInfoList__Type_template& repl) const; + +Base_Type* clone() const { return new EUTRA__NR__PduSessionInfoList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class EUTRA__NR__PduSessionInfoList__Type_template : public Record_Of_Template { +friend EUTRA__NR__PduSessionInfoList__Type_template operator+(template_sel left_template, const EUTRA__NR__PduSessionInfoList__Type_template& right_template); +friend EUTRA__NR__PduSessionInfoList__Type_template operator+(const EUTRA__NR__PduSessionInfoList__Type& left_value, const EUTRA__NR__PduSessionInfoList__Type_template& right_template); +friend EUTRA__NR__PduSessionInfoList__Type_template operator+(template_sel left_template, const EUTRA__NR__PduSessionInfoList__Type& right_value); +friend EUTRA__NR__PduSessionInfoList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend EUTRA__NR__PduSessionInfoList__Type_template operator+(const EUTRA__NR__PduSessionInfoList__Type& left_value, template_sel right_template); + +public: +EUTRA__NR__PduSessionInfoList__Type_template() {} +EUTRA__NR__PduSessionInfoList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +EUTRA__NR__PduSessionInfoList__Type_template(null_type other_value); +EUTRA__NR__PduSessionInfoList__Type_template(const EUTRA__NR__PduSessionInfoList__Type& other_value) { copy_value(&other_value); } +EUTRA__NR__PduSessionInfoList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +EUTRA__NR__PduSessionInfoList__Type_template(EUTRA__NR__PduSessionInfoList__Type_template* p_precondition, EUTRA__NR__PduSessionInfoList__Type_template* p_implied_template); +EUTRA__NR__PduSessionInfoList__Type_template(Dynamic_Match_Interface* p_dyn_match); +EUTRA__NR__PduSessionInfoList__Type_template(const EUTRA__NR__PduSessionInfoList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~EUTRA__NR__PduSessionInfoList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EUTRA__NR__PduSessionInfoList__Type_template& operator=(template_sel other_value); +EUTRA__NR__PduSessionInfoList__Type_template& operator=(null_type other_value); +EUTRA__NR__PduSessionInfoList__Type_template& operator=(const EUTRA__NR__PduSessionInfoList__Type& other_value); +EUTRA__NR__PduSessionInfoList__Type_template& operator=(const OPTIONAL& other_value); +EUTRA__NR__PduSessionInfoList__Type_template& operator=(const EUTRA__NR__PduSessionInfoList__Type_template& other_value); + +EUTRA__NR__PduSessionInfoList__Type_template operator+(const EUTRA__NR__PduSessionInfoList__Type_template& other_value) const; +EUTRA__NR__PduSessionInfoList__Type_template operator+(const EUTRA__NR__PduSessionInfoList__Type& other_value) const; +EUTRA__NR__PduSessionInfoList__Type_template operator+(template_sel other_value) const; +EUTRA__NR__PduSessionInfoList__Type_template operator+(null_type) const; + +EUTRA__NR__PduSessionInfo__Type_template& operator[](int index_value); +EUTRA__NR__PduSessionInfo__Type_template& operator[](const INTEGER& index_value); +const EUTRA__NR__PduSessionInfo__Type_template& operator[](int index_value) const; +const EUTRA__NR__PduSessionInfo__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const EUTRA__NR__PduSessionInfoList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +EUTRA__NR__PduSessionInfoList__Type valueof() const; +EUTRA__NR__PduSessionInfoList__Type substr(int index, int returncount) const; + +EUTRA__NR__PduSessionInfoList__Type replace(int index, int len, const EUTRA__NR__PduSessionInfoList__Type_template& repl) const; + +EUTRA__NR__PduSessionInfoList__Type replace(int index, int len, const EUTRA__NR__PduSessionInfoList__Type& repl) const; + +inline EUTRA__NR__PduSessionInfoList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const EUTRA__NR__PduSessionInfoList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new EUTRA__NR__PduSessionInfoList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NR__V2X__ConcurrentOperationBandCombination__Type : public Enum_Type { // enum +friend class NR__V2X__ConcurrentOperationBandCombination__Type_template; +public: +enum enum_type { V2X__n71__n47 = 0, UNKNOWN_VALUE = 1, UNBOUND_VALUE = 2 }; +private: +enum_type enum_value; + +public: +NR__V2X__ConcurrentOperationBandCombination__Type(); +NR__V2X__ConcurrentOperationBandCombination__Type(int other_value); +NR__V2X__ConcurrentOperationBandCombination__Type(enum_type other_value); +NR__V2X__ConcurrentOperationBandCombination__Type(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value); + +NR__V2X__ConcurrentOperationBandCombination__Type& operator=(int other_value); +NR__V2X__ConcurrentOperationBandCombination__Type& operator=(enum_type other_value); +NR__V2X__ConcurrentOperationBandCombination__Type& operator=(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NR__V2X__ConcurrentOperationBandCombination__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NR__V2X__ConcurrentOperationBandCombination__Type_template : public Base_Template { +union { +NR__V2X__ConcurrentOperationBandCombination__Type::enum_type single_value; +struct { +unsigned int n_values; +NR__V2X__ConcurrentOperationBandCombination__Type_template *list_value; +} value_list; +struct { +NR__V2X__ConcurrentOperationBandCombination__Type_template* precondition; +NR__V2X__ConcurrentOperationBandCombination__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NR__V2X__ConcurrentOperationBandCombination__Type_template& other_value); + +public: +NR__V2X__ConcurrentOperationBandCombination__Type_template(); +NR__V2X__ConcurrentOperationBandCombination__Type_template(template_sel other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template(int other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template(NR__V2X__ConcurrentOperationBandCombination__Type::enum_type other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template(const OPTIONAL& other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template(NR__V2X__ConcurrentOperationBandCombination__Type_template* p_precondition, NR__V2X__ConcurrentOperationBandCombination__Type_template* p_implied_template); +NR__V2X__ConcurrentOperationBandCombination__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__V2X__ConcurrentOperationBandCombination__Type_template(const NR__V2X__ConcurrentOperationBandCombination__Type_template& other_value); +~NR__V2X__ConcurrentOperationBandCombination__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NR__V2X__ConcurrentOperationBandCombination__Type_template& operator=(template_sel other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template& operator=(int other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template& operator=(NR__V2X__ConcurrentOperationBandCombination__Type::enum_type other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template& operator=(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template& operator=(const OPTIONAL& other_value); +NR__V2X__ConcurrentOperationBandCombination__Type_template& operator=(const NR__V2X__ConcurrentOperationBandCombination__Type_template& other_value); + +boolean match(NR__V2X__ConcurrentOperationBandCombination__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NR__V2X__ConcurrentOperationBandCombination__Type& other_value, boolean legacy = FALSE) const; +NR__V2X__ConcurrentOperationBandCombination__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NR__V2X__ConcurrentOperationBandCombination__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NR__V2X__ConcurrentOperationBandCombination__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_Common4G5G(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_Common4G5G(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern EUTRA__NR__PduSessionInfoList__Type_template operator+(template_sel left_template, const EUTRA__NR__PduSessionInfoList__Type_template& right_template); +extern EUTRA__NR__PduSessionInfoList__Type_template operator+(template_sel left_template, const EUTRA__NR__PduSessionInfoList__Type& right_value); +extern EUTRA__NR__PduSessionInfoList__Type_template operator+(const EUTRA__NR__PduSessionInfoList__Type& left_value, template_sel right_template); + +/* Global variable declarations */ + +extern const TTCN_Typedescriptor_t NR__Configuration__Type_descr_; +extern const TTCN_Typedescriptor_t NR__TESTMODE__STATE__Type_descr_; +extern const TTCN_Typedescriptor_t ENDC__DRB__Configuration__Type_descr_; +extern const TTCN_Typedescriptor_t& ENDC__Bearer__Type_descr_; +extern const TTCN_Typedescriptor_t NEDC__DRB__Configuration__Type_descr_; +extern const TTCN_Typedescriptor_t NR__TestEnvironment__Type_descr_; +extern const TTCN_Typedescriptor_t ENDC__SRB__DRB__Configuration__Type_descr_; +extern const TTCN_Typedescriptor_t ENDC__BandCombination__Type_descr_; +extern const TTCN_Typedescriptor_t ENDC__CombinationType__Type_descr_; +extern const TTCN_Typedescriptor_t ENDC__CA__BandCombination__Type_descr_; +extern const TTCN_Typedescriptor_t NR__CA__BandCombination__Type_descr_; +extern const TTCN_Typedescriptor_t NR__CA__3CC__BandCombination__Type_descr_; +extern const TTCN_Typedescriptor_t NR__DC__BandCombination__Type_descr_; +extern const TTCN_Typedescriptor_t NR__DC__CA__BandCombination__Type_descr_; +extern const TTCN_Typedescriptor_t NEDC__CombinationType__Type_descr_; +extern const XERdescriptor_t EUTRA__NR__PduSessionInfo__Type_PDU__SessionId_xer_; +extern const TTCN_OERdescriptor_t EUTRA__NR__PduSessionInfo__Type_PDU__SessionId_oer_; +extern const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_PDU__SessionId_descr_; +extern const XERdescriptor_t EUTRA__NR__PduSessionInfo__Type_EPS__Bearer_xer_; +extern const TTCN_OERdescriptor_t EUTRA__NR__PduSessionInfo__Type_EPS__Bearer_oer_; +extern const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_EPS__Bearer_descr_; +extern const XERdescriptor_t EUTRA__NR__PduSessionInfo__Type_IsIMS_xer_; +extern const TTCN_OERdescriptor_t EUTRA__NR__PduSessionInfo__Type_IsIMS_oer_; +extern const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_IsIMS_descr_; +extern const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_descr_; +extern const XERdescriptor_t EUTRA__NR__PduSessionInfo__Type_QFI_xer_; +extern const TTCN_OERdescriptor_t EUTRA__NR__PduSessionInfo__Type_QFI_oer_; +extern const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfo__Type_QFI_descr_; +extern const TTCN_Typedescriptor_t NEDC__BandCombination__Type_descr_; +extern const TTCN_Typedescriptor_t EUTRA__NR__PduSessionInfoList__Type_descr_; +extern const TTCN_Typedescriptor_t NR__V2X__ConcurrentOperationBandCombination__Type_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/Common4G5G.o b/build/Ats_NG_NAS/Common4G5G.o new file mode 100644 index 0000000000000000000000000000000000000000..96da4afdf3e6eca66a2a6a0e36f3265c7965ef10 Binary files /dev/null and b/build/Ats_NG_NAS/Common4G5G.o differ diff --git a/build/Ats_NG_NAS/Common4G5G_LoopBack.cc b/build/Ats_NG_NAS/Common4G5G_LoopBack.cc new file mode 100644 index 0000000000000000000000000000000000000000..41b9072c22e498ea0d1b61573e838562a41671af --- /dev/null +++ b/build/Ats_NG_NAS/Common4G5G_LoopBack.cc @@ -0,0 +1,1637 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "Common4G5G_LoopBack.hh" + +namespace Common4G5G__LoopBack { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char bs_13_bits[] = { 0 }, +bs_14_bits[] = { 0 }, +bs_10_bits[] = { 0 }, +bs_15_bits[] = { 0 }, +bs_12_bits[] = { 1 }, +bs_0_bits[] = { 1 }, +bs_1_bits[] = { 129 }, +bs_2_bits[] = { 65 }, +bs_3_bits[] = { 193 }, +bs_4_bits[] = { 33 }, +bs_5_bits[] = { 161 }, +bs_6_bits[] = { 97 }, +bs_7_bits[] = { 225 }, +bs_8_bits[] = { 53 }, +bs_9_bits[] = { 181 }, +bs_11_bits[] = { 15 }; +static const BITSTRING bs_13(1, bs_13_bits), +bs_14(2, bs_14_bits), +bs_10(4, bs_10_bits), +bs_15(6, bs_15_bits), +bs_12(1, bs_12_bits), +bs_0(8, bs_0_bits), +bs_1(8, bs_1_bits), +bs_2(8, bs_2_bits), +bs_3(8, bs_3_bits), +bs_4(8, bs_4_bits), +bs_5(8, bs_5_bits), +bs_6(8, bs_6_bits), +bs_7(8, bs_7_bits), +bs_8(8, bs_8_bits), +bs_9(8, bs_9_bits), +bs_11(4, bs_11_bits); +static const unsigned char os_0_octets[] = { 0 }, +os_1_octets[] = { 1 }, +os_3_octets[] = { 3 }, +os_2_octets[] = { 4 }; +static const OCTETSTRING os_0(1, os_0_octets), +os_1(1, os_1_octets), +os_3(1, os_3_octets), +os_2(1, os_2_octets); +static const unsigned char module_checksum[] = { 0x73, 0xc9, 0xba, 0x3a, 0xbc, 0x2f, 0x10, 0xde, 0xaf, 0xe1, 0xc2, 0x68, 0x7a, 0x00, 0x86, 0x8c }; + +/* Global variable definitions */ + +BITSTRING const_tsc__MsgType__CloseUE__TestLoop; +const BITSTRING& tsc__MsgType__CloseUE__TestLoop = const_tsc__MsgType__CloseUE__TestLoop; +BITSTRING const_tsc__MsgType__CloseUE__TestLoopCmpl; +const BITSTRING& tsc__MsgType__CloseUE__TestLoopCmpl = const_tsc__MsgType__CloseUE__TestLoopCmpl; +BITSTRING const_tsc__MsgType__OpenUE__TestLoop; +const BITSTRING& tsc__MsgType__OpenUE__TestLoop = const_tsc__MsgType__OpenUE__TestLoop; +BITSTRING const_tsc__MsgType__OpenUE__TestLoopCmpl; +const BITSTRING& tsc__MsgType__OpenUE__TestLoopCmpl = const_tsc__MsgType__OpenUE__TestLoopCmpl; +BITSTRING const_tsc__MsgType__Activate__TestMode; +const BITSTRING& tsc__MsgType__Activate__TestMode = const_tsc__MsgType__Activate__TestMode; +BITSTRING const_tsc__MsgType__Activate__TestModeCmpl; +const BITSTRING& tsc__MsgType__Activate__TestModeCmpl = const_tsc__MsgType__Activate__TestModeCmpl; +BITSTRING const_tsc__MsgType__Deactivate__TestMode; +const BITSTRING& tsc__MsgType__Deactivate__TestMode = const_tsc__MsgType__Deactivate__TestMode; +BITSTRING const_tsc__MsgType__Deactivate__TestModeCmpl; +const BITSTRING& tsc__MsgType__Deactivate__TestModeCmpl = const_tsc__MsgType__Deactivate__TestModeCmpl; +BITSTRING const_tsc__MsgType__SetULMsgReq; +const BITSTRING& tsc__MsgType__SetULMsgReq = const_tsc__MsgType__SetULMsgReq; +BITSTRING const_tsc__MsgType__SetULMsgResp; +const BITSTRING& tsc__MsgType__SetULMsgResp = const_tsc__MsgType__SetULMsgResp; +OCTETSTRING const_tsc__UE__TestLoopMode__TypeA; +const OCTETSTRING& tsc__UE__TestLoopMode__TypeA = const_tsc__UE__TestLoopMode__TypeA; +OCTETSTRING const_tsc__UE__TestLoopMode__TypeB; +const OCTETSTRING& tsc__UE__TestLoopMode__TypeB = const_tsc__UE__TestLoopMode__TypeB; +OCTETSTRING const_tsc__UE__TestLoopMode__TypeE; +const OCTETSTRING& tsc__UE__TestLoopMode__TypeE = const_tsc__UE__TestLoopMode__TypeE; +BITSTRING const_tsc__Gen__SkipIndicator; +const BITSTRING& tsc__Gen__SkipIndicator = const_tsc__Gen__SkipIndicator; +BITSTRING const_tsc__LB__ProtocolDiscriminator; +const BITSTRING& tsc__LB__ProtocolDiscriminator = const_tsc__LB__ProtocolDiscriminator; +BITSTRING const_tsc__LoopModeE__Transmission; +const BITSTRING& tsc__LoopModeE__Transmission = const_tsc__LoopModeE__Transmission; +BITSTRING const_tsc__LoopModeE__Reception; +const BITSTRING& tsc__LoopModeE__Reception = const_tsc__LoopModeE__Reception; +BITSTRING const_tsc__LoopModeE__V2x; +const BITSTRING& tsc__LoopModeE__V2x = const_tsc__LoopModeE__V2x; +const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_skipIndicator_descr_ = { "@Common4G5G_LoopBack.NR_CLOSE_UE_TEST_LOOP.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NR__CLOSE__UE__TEST__LOOP_skipIndicator_xer_, &BITSTRING_json_, &NR__CLOSE__UE__TEST__LOOP_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_protocolDiscriminator_descr_ = { "@Common4G5G_LoopBack.NR_CLOSE_UE_TEST_LOOP.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NR__CLOSE__UE__TEST__LOOP_protocolDiscriminator_xer_, &BITSTRING_json_, &NR__CLOSE__UE__TEST__LOOP_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_messageType_descr_ = { "@Common4G5G_LoopBack.NR_CLOSE_UE_TEST_LOOP.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NR__CLOSE__UE__TEST__LOOP_messageType_xer_, &BITSTRING_json_, &NR__CLOSE__UE__TEST__LOOP_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_xer_ = { {"ueTestLoopMode>\n", "ueTestLoopMode>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_ext_arr_[0] = {}; +const int NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_ext_arr_, 0, NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_p_}; +const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_descr_ = { "@Common4G5G_LoopBack.NR_CLOSE_UE_TEST_LOOP.ueTestLoopMode", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_xer_, &OCTETSTRING_json_, &NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__CLOSE__UE__TEST__LOOP +const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_descr_ = { "@Common4G5G_LoopBack.NR_CLOSE_UE_TEST_LOOP", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeA__NR__LB__Setup__Type_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__TestLoopModeA__NR__LB__Setup__Type_iel_oer_ext_arr_[0] = {}; +const int UE__TestLoopModeA__NR__LB__Setup__Type_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__TestLoopModeA__NR__LB__Setup__Type_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__TestLoopModeA__NR__LB__Setup__Type_iel_oer_ext_arr_, 0, UE__TestLoopModeA__NR__LB__Setup__Type_iel_oer_p_}; +const TTCN_Typedescriptor_t UE__TestLoopModeA__NR__LB__Setup__Type_iel_descr_ = { "@Common4G5G_LoopBack.UE_TestLoopModeA_NR_LB_Setup_Type.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__TestLoopModeA__NR__LB__Setup__Type_iel_xer_, &OCTETSTRING_json_, &UE__TestLoopModeA__NR__LB__Setup__Type_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TestLoopModeA__NR__LB__Setup__Type +const TTCN_Typedescriptor_t UE__TestLoopModeA__NR__LB__Setup__Type_descr_ = { "@Common4G5G_LoopBack.UE_TestLoopModeA_NR_LB_Setup_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__LB__SetupDRB__IE__List__Type +const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__List__Type_descr_ = { "@Common4G5G_LoopBack.NR_LB_SetupDRB_IE_List_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NR__LB__SetupDRB__IE__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__LB__SetupDRB__IE__Type_uplinkPdcpSduSize_xer_ = { {"uplinkPdcpSduSize>\n", "uplinkPdcpSduSize>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NR__LB__SetupDRB__IE__Type_uplinkPdcpSduSize_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_uplinkPdcpSduSize_descr_ = { "@Common4G5G_LoopBack.NR_LB_SetupDRB_IE_Type.uplinkPdcpSduSize", &BITSTRING_ber_, &CommonDefs::B16__Type_raw_, NULL, &NR__LB__SetupDRB__IE__Type_uplinkPdcpSduSize_xer_, &BITSTRING_json_, &NR__LB__SetupDRB__IE__Type_uplinkPdcpSduSize_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__LB__SetupDRB__IE__Type_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NR__LB__SetupDRB__IE__Type_reserved_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_reserved_descr_ = { "@Common4G5G_LoopBack.NR_LB_SetupDRB_IE_Type.reserved", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NR__LB__SetupDRB__IE__Type_reserved_xer_, &BITSTRING_json_, &NR__LB__SetupDRB__IE__Type_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__LB__SetupDRB__IE__Type_nrDRB_xer_ = { {"nrDRB>\n", "nrDRB>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NR__LB__SetupDRB__IE__Type_nrDRB_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_nrDRB_descr_ = { "@Common4G5G_LoopBack.NR_LB_SetupDRB_IE_Type.nrDRB", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NR__LB__SetupDRB__IE__Type_nrDRB_xer_, &BITSTRING_json_, &NR__LB__SetupDRB__IE__Type_nrDRB_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__LB__SetupDRB__IE__Type_drbIdentity_xer_ = { {"drbIdentity>\n", "drbIdentity>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NR__LB__SetupDRB__IE__Type_drbIdentity_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_drbIdentity_descr_ = { "@Common4G5G_LoopBack.NR_LB_SetupDRB_IE_Type.drbIdentity", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &NR__LB__SetupDRB__IE__Type_drbIdentity_xer_, &BITSTRING_json_, &NR__LB__SetupDRB__IE__Type_drbIdentity_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__LB__SetupDRB__IE__Type +const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_descr_ = { "@Common4G5G_LoopBack.NR_LB_SetupDRB_IE_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_xer_ = { {"ueTestLoopModeB_LB_Setup>\n", "ueTestLoopModeB_LB_Setup>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_ext_arr_[0] = {}; +const int NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_ext_arr_, 0, NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_p_}; +const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_descr_ = { "@Common4G5G_LoopBack.NR_CLOSE_UE_TEST_LOOP.ueTestLoopModeB_LB_Setup", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_xer_, &OCTETSTRING_json_, &NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UL__MESSAGE__REQUEST_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_skipIndicator_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_REQUEST.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SET__UL__MESSAGE__REQUEST_skipIndicator_xer_, &BITSTRING_json_, &SET__UL__MESSAGE__REQUEST_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UL__MESSAGE__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_protocolDiscriminator_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SET__UL__MESSAGE__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &SET__UL__MESSAGE__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UL__MESSAGE__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_messageType_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &SET__UL__MESSAGE__REQUEST_messageType_xer_, &BITSTRING_json_, &SET__UL__MESSAGE__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UL__MESSAGE__REQUEST_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_spare_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_REQUEST.spare", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &SET__UL__MESSAGE__REQUEST_spare_xer_, &BITSTRING_json_, &SET__UL__MESSAGE__REQUEST_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UL__MESSAGE__REQUEST_usePreconfiguredULMsg_xer_ = { {"usePreconfiguredULMsg>\n", "usePreconfiguredULMsg>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_usePreconfiguredULMsg_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_usePreconfiguredULMsg_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_REQUEST.usePreconfiguredULMsg", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SET__UL__MESSAGE__REQUEST_usePreconfiguredULMsg_xer_, &BITSTRING_json_, &SET__UL__MESSAGE__REQUEST_usePreconfiguredULMsg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SET__UL__MESSAGE__REQUEST +const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UL__MESSAGE__RESPONSE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UL__MESSAGE__RESPONSE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UL__MESSAGE__RESPONSE_skipIndicator_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_RESPONSE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SET__UL__MESSAGE__RESPONSE_skipIndicator_xer_, &BITSTRING_json_, &SET__UL__MESSAGE__RESPONSE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UL__MESSAGE__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UL__MESSAGE__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UL__MESSAGE__RESPONSE_protocolDiscriminator_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SET__UL__MESSAGE__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &SET__UL__MESSAGE__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UL__MESSAGE__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UL__MESSAGE__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UL__MESSAGE__RESPONSE_messageType_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &SET__UL__MESSAGE__RESPONSE_messageType_xer_, &BITSTRING_json_, &SET__UL__MESSAGE__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SET__UL__MESSAGE__RESPONSE +const TTCN_Typedescriptor_t SET__UL__MESSAGE__RESPONSE_descr_ = { "@Common4G5G_LoopBack.SET_UL_MESSAGE_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +Erroneous_descriptor_t* template_cs__NR__LB__SetupDRB__IE_err_descr_ptr = NULL; +BITSTRING const_cs__NR__LB__SetupDRB__IE_p__NRDRB_defval; +const BITSTRING& cs__NR__LB__SetupDRB__IE_p__NRDRB_defval = const_cs__NR__LB__SetupDRB__IE_p__NRDRB_defval; +Erroneous_descriptor_t* template_cs__UE__TestLoopModeA__NR__LB__Setup__1DRB_err_descr_ptr = NULL; +BITSTRING const_cs__UE__TestLoopModeA__NR__LB__Setup__1DRB_p__NRDRB_defval; +const BITSTRING& cs__UE__TestLoopModeA__NR__LB__Setup__1DRB_p__NRDRB_defval = const_cs__UE__TestLoopModeA__NR__LB__Setup__1DRB_p__NRDRB_defval; +UE__TestLoopModeA__NR__LB__Setup__Type_template template_cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling; +const UE__TestLoopModeA__NR__LB__Setup__Type_template& cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling = template_cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling; +Erroneous_descriptor_t* template_cs__UE__TestLoopModeE__LB__Setup_err_descr_ptr = NULL; +BITSTRING const_cs__UE__TestLoopModeE__LB__Setup_p__CommTransmitOrReceive_defval; +const BITSTRING& cs__UE__TestLoopModeE__LB__Setup_p__CommTransmitOrReceive_defval = const_cs__UE__TestLoopModeE__LB__Setup_p__CommTransmitOrReceive_defval; +BITSTRING const_cs__UE__TestLoopModeE__LB__Setup_p__D2dOrV2x_defval; +const BITSTRING& cs__UE__TestLoopModeE__LB__Setup_p__D2dOrV2x_defval = const_cs__UE__TestLoopModeE__LB__Setup_p__D2dOrV2x_defval; +Erroneous_descriptor_t* template_cs__SET__UL__MESSAGE__REQUEST_err_descr_ptr = NULL; +SET__UL__MESSAGE__RESPONSE_template template_cr__SET__UL__MESSAGE__RESPONSE; +const SET__UL__MESSAGE__RESPONSE_template& cr__SET__UL__MESSAGE__RESPONSE = template_cr__SET__UL__MESSAGE__RESPONSE; +TTCN_Module module_object("Common4G5G_LoopBack", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_Common4G5G_LoopBack(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "NR_CLOSE_UE_TEST_LOOP")) { + ((const NR__CLOSE__UE__TEST__LOOP*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CLOSE_UE_TEST_LOOP template")) { + ((const NR__CLOSE__UE__TEST__LOOP_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_LB_SetupDRB_IE_List_Type")) { + ((const NR__LB__SetupDRB__IE__List__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_LB_SetupDRB_IE_List_Type template")) { + ((const NR__LB__SetupDRB__IE__List__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_LB_SetupDRB_IE_Type")) { + ((const NR__LB__SetupDRB__IE__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_LB_SetupDRB_IE_Type template")) { + ((const NR__LB__SetupDRB__IE__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SET_UL_MESSAGE_REQUEST")) { + ((const SET__UL__MESSAGE__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SET_UL_MESSAGE_REQUEST template")) { + ((const SET__UL__MESSAGE__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SET_UL_MESSAGE_RESPONSE")) { + ((const SET__UL__MESSAGE__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SET_UL_MESSAGE_RESPONSE template")) { + ((const SET__UL__MESSAGE__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeA_NR_LB_Setup_Type")) { + ((const UE__TestLoopModeA__NR__LB__Setup__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeA_NR_LB_Setup_Type template")) { + ((const UE__TestLoopModeA__NR__LB__Setup__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_Common4G5G_LoopBack(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "NR_CLOSE_UE_TEST_LOOP")) { + ((NR__CLOSE__UE__TEST__LOOP*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CLOSE_UE_TEST_LOOP template")) { + ((NR__CLOSE__UE__TEST__LOOP_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_LB_SetupDRB_IE_List_Type")) { + ((NR__LB__SetupDRB__IE__List__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_LB_SetupDRB_IE_List_Type template")) { + ((NR__LB__SetupDRB__IE__List__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_LB_SetupDRB_IE_Type")) { + ((NR__LB__SetupDRB__IE__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_LB_SetupDRB_IE_Type template")) { + ((NR__LB__SetupDRB__IE__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SET_UL_MESSAGE_REQUEST")) { + ((SET__UL__MESSAGE__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SET_UL_MESSAGE_REQUEST template")) { + ((SET__UL__MESSAGE__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SET_UL_MESSAGE_RESPONSE")) { + ((SET__UL__MESSAGE__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SET_UL_MESSAGE_RESPONSE template")) { + ((SET__UL__MESSAGE__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeA_NR_LB_Setup_Type")) { + ((UE__TestLoopModeA__NR__LB__Setup__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeA_NR_LB_Setup_Type template")) { + ((UE__TestLoopModeA__NR__LB__Setup__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("Common4G5G_LoopBack"); + global_scope->add_variable(&cr__SET__UL__MESSAGE__RESPONSE, "cr_SET_UL_MESSAGE_RESPONSE", "SET_UL_MESSAGE_RESPONSE template", "Common4G5G_LoopBack", print_var_Common4G5G_LoopBack); + global_scope->add_variable(&cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling, "cs_UE_TestLoopModeA_NR_LB_Setup_NoScaling", "UE_TestLoopModeA_NR_LB_Setup_Type template", "Common4G5G_LoopBack", print_var_Common4G5G_LoopBack); + global_scope->add_variable(&tsc__Gen__SkipIndicator, "tsc_Gen_SkipIndicator", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__LB__ProtocolDiscriminator, "tsc_LB_ProtocolDiscriminator", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__LoopModeE__Reception, "tsc_LoopModeE_Reception", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__LoopModeE__Transmission, "tsc_LoopModeE_Transmission", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__LoopModeE__V2x, "tsc_LoopModeE_V2x", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__Activate__TestMode, "tsc_MsgType_Activate_TestMode", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__Activate__TestModeCmpl, "tsc_MsgType_Activate_TestModeCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__CloseUE__TestLoop, "tsc_MsgType_CloseUE_TestLoop", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__CloseUE__TestLoopCmpl, "tsc_MsgType_CloseUE_TestLoopCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__Deactivate__TestMode, "tsc_MsgType_Deactivate_TestMode", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__Deactivate__TestModeCmpl, "tsc_MsgType_Deactivate_TestModeCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__OpenUE__TestLoop, "tsc_MsgType_OpenUE_TestLoop", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__OpenUE__TestLoopCmpl, "tsc_MsgType_OpenUE_TestLoopCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__SetULMsgReq, "tsc_MsgType_SetULMsgReq", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__SetULMsgResp, "tsc_MsgType_SetULMsgResp", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UE__TestLoopMode__TypeA, "tsc_UE_TestLoopMode_TypeA", "octetstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UE__TestLoopMode__TypeB, "tsc_UE_TestLoopMode_TypeB", "octetstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UE__TestLoopMode__TypeE, "tsc_UE_TestLoopMode_TypeE", "octetstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EPS__NAS__LoopBack__TypeDefs::tsc__MAX__ModeA__LB__Entities, "tsc_MAX_ModeA_LB_Entities", "integer", "EPS_NAS_LoopBack_TypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EPS__NAS__LoopBack__TypeDefs::tsc__MAX__ModeD__Monitor__Entities, "tsc_MAX_ModeD_Monitor_Entities", "integer", "EPS_NAS_LoopBack_TypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EPS__NAS__LoopBack__TypeDefs::tsc__MAX__ModeE__Monitor__Entities, "tsc_MAX_ModeE_Monitor_Entities", "integer", "EPS_NAS_LoopBack_TypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::cdr__AuthFailParamGSM__Any, "cdr_AuthFailParamGSM_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cdr__MS__NetworkCapAss__lv, "cdr_MS_NetworkCapAss_lv", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__1__tlv, "cds_508_EPS_QoS_Default_1_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__3, "cds_508_EPS_QoS_Default_3", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI, "cds_EPS_QoS_Def_nonGBR_QCI", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI__tlv, "cds_EPS_QoS_Def_nonGBR_QCI_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__2, "cds_QoS_Negotiated_2", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__3, "cds_QoS_Negotiated_3", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__8, "cds_QoS_Negotiated_8", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AccessPointName__Any, "cr_AccessPointName_Any", "AccessPointName template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AdditionalUpdateTypeAny, "cr_AdditionalUpdateTypeAny", "AdditionalUpdateType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AuthFailParam__Any, "cr_AuthFailParam_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecAny, "cr_CodecAny", "Codec template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecListAny, "cr_CodecListAny", "CodecList template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__DetachTypeOnSwitchOff, "cr_DetachTypeOnSwitchOff", "DetachType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__EDGE__Struct__Any, "cr_EDGE_Struct_Any", "EDGE_Struct template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdDRXParamsAny, "cr_ExtdDRXParamsAny", "ExtdDRXParams template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdPCOAny, "cr_ExtdPCOAny", "ExtdProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__Extd__EPS__QOS__Any, "cr_Extd_EPS_QOS_Any", "Extd_EPS_QOS template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any, "cr_LAI_Any", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any__v, "cr_LAI_Any_v", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MSCLSMK3__Any, "cr_MSCLSMK3_Any", "MS_Clsmk3 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__Clsmk2__Any, "cr_MS_Clsmk2_Any", "MS_Clsmk2 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__MeasCapability__Any, "cr_MS_MeasCapability_Any", "MS_MeasCapability template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__NetworkCap__Any, "cr_MS_NetworkCap_Any", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__NBIFOMContainerAny, "cr_NBIFOMContainerAny", "NBIFOMContainer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__Signature2Any, "cr_PTMSI_Signature2Any", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__SignatureAny, "cr_PTMSI_SignatureAny", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ProtocolConfigOptionsAny, "cr_ProtocolConfigOptionsAny", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__UEStatus__Any, "cr_UEStatus_Any", "UE_Status template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__VoiceDomainPref__Any, "cr_VoiceDomainPref_Any", "VoiceDomainPref template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WUSAssistInfoAny, "cr_WUSAssistInfoAny", "WUSAssistInfo template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WusInfoTypeAny, "cr_WusInfoTypeAny", "WusInfoType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__508__EPS__QoS__Default__1, "cs_508_EPS_QoS_Default_1", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__GprsTimer__v__deact, "cs_GprsTimer_v_deact", "GPRS_Timer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMP, "cs_PktFilterCompProtocolIdNextHeaderICMP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMPv6, "cs_PktFilterCompProtocolIdNextHeaderICMPv6", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderIPSec, "cs_PktFilterCompProtocolIdNextHeaderIPSec", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderTCP, "cs_PktFilterCompProtocolIdNextHeaderTCP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderUDP, "cs_PktFilterCompProtocolIdNextHeaderUDP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFlowId, "cs_PktFlowId", "PacketFlowIdentifier template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__ProtocolConfigOptions__PPP, "cs_ProtocolConfigOptions_PPP", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__QoS__Negotiated__1, "cs_QoS_Negotiated_1", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1, "tsc_APN1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1__String, "tsc_APN1_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2, "tsc_APN2", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2__String, "tsc_APN2_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3, "tsc_APN3", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3__String, "tsc_APN3_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__MAC__Failure, "tsc_Cause_MAC_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__NoNetworkSlices__Available, "tsc_Cause_NoNetworkSlices_Available", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowed, "tsc_Cause_PLMN_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation, "tsc_Cause_PLMN_NotAllowedToOperateAtPresentUELocation", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__Roaming__NotAllowed, "tsc_Cause_Roaming_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__SQN__Failure, "tsc_Cause_SQN_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__TA__NotAllowed, "tsc_Cause_TA_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__nonEPS__AuthUnacceptable, "tsc_Cause_nonEPS_AuthUnacceptable", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__ConsecutiveTacs, "tsc_ConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalMe, "tsc_EmmCause_IllegalMe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalUe, "tsc_EmmCause_IllegalUe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__SemanticallyIncorrect, "tsc_EmmCause_SemanticallyIncorrect", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__1min, "tsc_Gprs3TimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__30sec, "tsc_Gprs3TimerUnit_30sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__1min, "tsc_GprsTimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__2sec, "tsc_GprsTimerUnit_2sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__6min, "tsc_GprsTimerUnit_6min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__deact, "tsc_GprsTimerUnit_deact", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IMEISV__Requested, "tsc_IMEISV_Requested", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv4Mask, "tsc_IPv4Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv6Mask, "tsc_IPv6Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__GUTI, "tsc_IdType_GUTI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI, "tsc_IdType_IMEI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEISV, "tsc_IdType_IMEISV", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI__24301, "tsc_IdType_IMEI_24301", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMSI, "tsc_IdType_IMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__TMSI, "tsc_IdType_TMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__MultiplePlmns, "tsc_MultiplePlmns", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__MappedSecurityContext, "tsc_NasKsi_MappedSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NativeSecurityContext, "tsc_NasKsi_NativeSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NoKey, "tsc_NasKsi_NoKey", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NoValidTmsi, "tsc_NoValidTmsi", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NonConsecutiveTacs, "tsc_NonConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6, "tsc_PCO_Id_DSMIPv6", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6__IPv4, "tsc_PCO_Id_DSMIPv6_IPv4", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__1, "tsc_PTI_1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__Unassigned, "tsc_PTI_Unassigned", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PayloadContainerESMMsg, "tsc_PayloadContainerESMMsg", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4, "tsc_PdnType_IPv4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4v6, "tsc_PdnType_IPv4v6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv6, "tsc_PdnType_IPv6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected, "tsc_SHT_IntegrityProtected", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered, "tsc_SHT_IntegrityProtected_Ciphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext, "tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__NewSecurityContext, "tsc_SHT_IntegrityProtected_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__PartiallyCiphered, "tsc_SHT_IntegrityProtected_PartiallyCiphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__NoSecurityProtection, "tsc_SHT_NoSecurityProtection", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare1, "tsc_Spare1", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare2, "tsc_Spare2", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare3, "tsc_Spare3", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare4, "tsc_Spare4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare5, "tsc_Spare5", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare6, "tsc_Spare6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare7, "tsc_Spare7", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SpareHalfOctet, "tsc_SpareHalfOctet", "hexstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void NR__CLOSE__UE__TEST__LOOP::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_ueTestLoopMode; fld_vec[4]=&field_ueTestLoopModeA__LB__Setup; fld_vec[5]=&field_ueTestLoopModeB__LB__Setup; fld_vec[6]=&field_ueTestLoopModeE__LB__Setup; } + +NR__CLOSE__UE__TEST__LOOP::NR__CLOSE__UE__TEST__LOOP() : Record_Type() { init_vec(); } + +NR__CLOSE__UE__TEST__LOOP::NR__CLOSE__UE__TEST__LOOP(const NR__CLOSE__UE__TEST__LOOP& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_ueTestLoopMode.is_bound() ) + field_ueTestLoopMode = other_value.field_ueTestLoopMode; +if (other_value.field_ueTestLoopModeA__LB__Setup.is_bound() ) + field_ueTestLoopModeA__LB__Setup = other_value.field_ueTestLoopModeA__LB__Setup; +if (other_value.field_ueTestLoopModeB__LB__Setup.is_bound() ) + field_ueTestLoopModeB__LB__Setup = other_value.field_ueTestLoopModeB__LB__Setup; +if (other_value.field_ueTestLoopModeE__LB__Setup.is_bound() ) + field_ueTestLoopModeE__LB__Setup = other_value.field_ueTestLoopModeE__LB__Setup; +init_vec(); +} + +NR__CLOSE__UE__TEST__LOOP::NR__CLOSE__UE__TEST__LOOP(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_ueTestLoopMode, + const OPTIONAL& par_ueTestLoopModeA__LB__Setup, + const OPTIONAL& par_ueTestLoopModeB__LB__Setup, + const OPTIONAL& par_ueTestLoopModeE__LB__Setup) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_ueTestLoopMode(par_ueTestLoopMode), + field_ueTestLoopModeA__LB__Setup(par_ueTestLoopModeA__LB__Setup), + field_ueTestLoopModeB__LB__Setup(par_ueTestLoopModeB__LB__Setup), + field_ueTestLoopModeE__LB__Setup(par_ueTestLoopModeE__LB__Setup) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NR__CLOSE__UE__TEST__LOOP::get_descriptor() const { return &NR__CLOSE__UE__TEST__LOOP_descr_; } +const TTCN_Typedescriptor_t* NR__CLOSE__UE__TEST__LOOP::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::UE__TestLoopMode__Type_descr_, &UE__TestLoopModeA__NR__LB__Setup__Type_descr_, &EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeB__LB__Setup__Type_descr_, &EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_descr_ }; +const TTCN_Typedescriptor_t* NR__CLOSE__UE__TEST__LOOP::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NR__CLOSE__UE__TEST__LOOP::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "ueTestLoopMode", "ueTestLoopModeA_LB_Setup", "ueTestLoopModeB_LB_Setup", "ueTestLoopModeE_LB_Setup" }; +const char* NR__CLOSE__UE__TEST__LOOP::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NR__CLOSE__UE__TEST__LOOP::optional_indexes[] = { 4, 5, 6, -1 }; +const int* NR__CLOSE__UE__TEST__LOOP::get_optional_indexes() const { return optional_indexes; } + +const int NR__CLOSE__UE__TEST__LOOP::optional_indexes_asn[] = { 4, 5, 6, -1 }; +const int* NR__CLOSE__UE__TEST__LOOP::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NR__CLOSE__UE__TEST__LOOP_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new UE__TestLoopModeA__NR__LB__Setup__Type_template(ANY_OR_OMIT) : new UE__TestLoopModeA__NR__LB__Setup__Type_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[6] = was_any ? new EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_template(ANY_OR_OMIT) : new EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_template; +} +} + +NR__CLOSE__UE__TEST__LOOP_template::NR__CLOSE__UE__TEST__LOOP_template(NR__CLOSE__UE__TEST__LOOP_template* p_precondition, NR__CLOSE__UE__TEST__LOOP_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NR__CLOSE__UE__TEST__LOOP_template::NR__CLOSE__UE__TEST__LOOP_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NR__CLOSE__UE__TEST__LOOP_template::~NR__CLOSE__UE__TEST__LOOP_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NR__CLOSE__UE__TEST__LOOP_template::match_dynamic(const Base_Type* match_value) const +{ +const NR__CLOSE__UE__TEST__LOOP* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NR__CLOSE__UE__TEST__LOOP_template& NR__CLOSE__UE__TEST__LOOP_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__CLOSE__UE__TEST__LOOP_template& NR__CLOSE__UE__TEST__LOOP_template::operator=(const NR__CLOSE__UE__TEST__LOOP& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NR__CLOSE__UE__TEST__LOOP_template& NR__CLOSE__UE__TEST__LOOP_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NR__CLOSE__UE__TEST__LOOP_template& NR__CLOSE__UE__TEST__LOOP_template::operator=(const NR__CLOSE__UE__TEST__LOOP_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NR__CLOSE__UE__TEST__LOOP NR__CLOSE__UE__TEST__LOOP_template::valueof() const +{ +NR__CLOSE__UE__TEST__LOOP ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::messageType() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::ueTestLoopMode() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::ueTestLoopMode() const { return *(static_cast(get_at(3))); } +UE__TestLoopModeA__NR__LB__Setup__Type_template& NR__CLOSE__UE__TEST__LOOP_template::ueTestLoopModeA__LB__Setup() { return *(static_cast(get_at(4))); } +const UE__TestLoopModeA__NR__LB__Setup__Type_template& NR__CLOSE__UE__TEST__LOOP_template::ueTestLoopModeA__LB__Setup() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::ueTestLoopModeB__LB__Setup() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& NR__CLOSE__UE__TEST__LOOP_template::ueTestLoopModeB__LB__Setup() const { return *(static_cast(get_at(5))); } +EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_template& NR__CLOSE__UE__TEST__LOOP_template::ueTestLoopModeE__LB__Setup() { return *(static_cast(get_at(6))); } +const EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_template& NR__CLOSE__UE__TEST__LOOP_template::ueTestLoopModeE__LB__Setup() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* NR__CLOSE__UE__TEST__LOOP_template::get_descriptor() const { return &NR__CLOSE__UE__TEST__LOOP_descr_; } +const char* NR__CLOSE__UE__TEST__LOOP_template::fld_name(int p_index) const { return NR__CLOSE__UE__TEST__LOOP::fld_names[p_index]; } +void UE__TestLoopModeA__NR__LB__Setup__Type::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_lbSetupDrbList; } + +UE__TestLoopModeA__NR__LB__Setup__Type::UE__TestLoopModeA__NR__LB__Setup__Type() : Record_Type() { init_vec(); } + +UE__TestLoopModeA__NR__LB__Setup__Type::UE__TestLoopModeA__NR__LB__Setup__Type(const UE__TestLoopModeA__NR__LB__Setup__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_lbSetupDrbList.is_bound() ) + field_lbSetupDrbList = other_value.field_lbSetupDrbList; +init_vec(); +} + +UE__TestLoopModeA__NR__LB__Setup__Type::UE__TestLoopModeA__NR__LB__Setup__Type(const OCTETSTRING& par_iel, + const OPTIONAL& par_lbSetupDrbList) : field_iel(par_iel), + field_lbSetupDrbList(par_lbSetupDrbList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TestLoopModeA__NR__LB__Setup__Type::get_descriptor() const { return &UE__TestLoopModeA__NR__LB__Setup__Type_descr_; } +const TTCN_Typedescriptor_t* UE__TestLoopModeA__NR__LB__Setup__Type::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &NR__LB__SetupDRB__IE__List__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TestLoopModeA__NR__LB__Setup__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TestLoopModeA__NR__LB__Setup__Type::fld_names[] = { "iel", "lbSetupDrbList" }; +const char* UE__TestLoopModeA__NR__LB__Setup__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__TestLoopModeA__NR__LB__Setup__Type::optional_indexes[] = { 1, -1 }; +const int* UE__TestLoopModeA__NR__LB__Setup__Type::get_optional_indexes() const { return optional_indexes; } + +const int UE__TestLoopModeA__NR__LB__Setup__Type::optional_indexes_asn[] = { 1, -1 }; +const int* UE__TestLoopModeA__NR__LB__Setup__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__TestLoopModeA__NR__LB__Setup__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new NR__LB__SetupDRB__IE__List__Type_template(ANY_OR_OMIT) : new NR__LB__SetupDRB__IE__List__Type_template; +} +} + +UE__TestLoopModeA__NR__LB__Setup__Type_template::UE__TestLoopModeA__NR__LB__Setup__Type_template(UE__TestLoopModeA__NR__LB__Setup__Type_template* p_precondition, UE__TestLoopModeA__NR__LB__Setup__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TestLoopModeA__NR__LB__Setup__Type_template::UE__TestLoopModeA__NR__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TestLoopModeA__NR__LB__Setup__Type_template::~UE__TestLoopModeA__NR__LB__Setup__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TestLoopModeA__NR__LB__Setup__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TestLoopModeA__NR__LB__Setup__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TestLoopModeA__NR__LB__Setup__Type_template& UE__TestLoopModeA__NR__LB__Setup__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TestLoopModeA__NR__LB__Setup__Type_template& UE__TestLoopModeA__NR__LB__Setup__Type_template::operator=(const UE__TestLoopModeA__NR__LB__Setup__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TestLoopModeA__NR__LB__Setup__Type_template& UE__TestLoopModeA__NR__LB__Setup__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TestLoopModeA__NR__LB__Setup__Type_template& UE__TestLoopModeA__NR__LB__Setup__Type_template::operator=(const UE__TestLoopModeA__NR__LB__Setup__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TestLoopModeA__NR__LB__Setup__Type UE__TestLoopModeA__NR__LB__Setup__Type_template::valueof() const +{ +UE__TestLoopModeA__NR__LB__Setup__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UE__TestLoopModeA__NR__LB__Setup__Type_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UE__TestLoopModeA__NR__LB__Setup__Type_template::iel() const { return *(static_cast(get_at(0))); } +NR__LB__SetupDRB__IE__List__Type_template& UE__TestLoopModeA__NR__LB__Setup__Type_template::lbSetupDrbList() { return *(static_cast(get_at(1))); } +const NR__LB__SetupDRB__IE__List__Type_template& UE__TestLoopModeA__NR__LB__Setup__Type_template::lbSetupDrbList() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* UE__TestLoopModeA__NR__LB__Setup__Type_template::get_descriptor() const { return &UE__TestLoopModeA__NR__LB__Setup__Type_descr_; } +const char* UE__TestLoopModeA__NR__LB__Setup__Type_template::fld_name(int p_index) const { return UE__TestLoopModeA__NR__LB__Setup__Type::fld_names[p_index]; } + +const NR__LB__SetupDRB__IE__Type NR__LB__SetupDRB__IE__List__Type::UNBOUND_ELEM; +NR__LB__SetupDRB__IE__Type& NR__LB__SetupDRB__IE__List__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NR__LB__SetupDRB__IE__Type& NR__LB__SetupDRB__IE__List__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NR__LB__SetupDRB__IE__Type& NR__LB__SetupDRB__IE__List__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NR__LB__SetupDRB__IE__Type& NR__LB__SetupDRB__IE__List__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::operator<<=(const INTEGER& rotate_count) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +return *((NR__LB__SetupDRB__IE__List__Type*)rotl(rotate_count, &rec_of)); +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::operator>>=(const INTEGER& rotate_count) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +return *((NR__LB__SetupDRB__IE__List__Type*)rotr(rotate_count, &rec_of)); +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::operator>>=(int rotate_count) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +return *((NR__LB__SetupDRB__IE__List__Type*)rotr(rotate_count, &rec_of)); +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::operator+(const NR__LB__SetupDRB__IE__List__Type& other_value) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +return *((NR__LB__SetupDRB__IE__List__Type*)concat(&other_value, &rec_of)); +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NR__LB__SetupDRB__IE__List__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @Common4G5G_LoopBack.NR_LB_SetupDRB_IE_List_Type concatenation."); +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::operator+(null_type) const +{ +return *this; +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::substr(int index, int returncount) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::replace(int index, int len, const NR__LB__SetupDRB__IE__List__Type& repl) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type::replace(int index, int len, const NR__LB__SetupDRB__IE__List__Type_template& repl) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NR__LB__SetupDRB__IE__List__Type::create_elem() const { return new NR__LB__SetupDRB__IE__Type; } +const Base_Type* NR__LB__SetupDRB__IE__List__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NR__LB__SetupDRB__IE__List__Type::get_descriptor() const { return &NR__LB__SetupDRB__IE__List__Type_descr_; } +NR__LB__SetupDRB__IE__List__Type_template::NR__LB__SetupDRB__IE__List__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NR__LB__SetupDRB__IE__List__Type_template::NR__LB__SetupDRB__IE__List__Type_template(NR__LB__SetupDRB__IE__List__Type_template* p_precondition, NR__LB__SetupDRB__IE__List__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NR__LB__SetupDRB__IE__List__Type_template::NR__LB__SetupDRB__IE__List__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NR__LB__SetupDRB__IE__List__Type_template::~NR__LB__SetupDRB__IE__List__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NR__LB__SetupDRB__IE__List__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NR__LB__SetupDRB__IE__List__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NR__LB__SetupDRB__IE__List__Type_template& NR__LB__SetupDRB__IE__List__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__LB__SetupDRB__IE__List__Type_template& NR__LB__SetupDRB__IE__List__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NR__LB__SetupDRB__IE__List__Type_template& NR__LB__SetupDRB__IE__List__Type_template::operator=(const NR__LB__SetupDRB__IE__List__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NR__LB__SetupDRB__IE__List__Type_template& NR__LB__SetupDRB__IE__List__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NR__LB__SetupDRB__IE__List__Type_template& NR__LB__SetupDRB__IE__List__Type_template::operator=(const NR__LB__SetupDRB__IE__List__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NR__LB__SetupDRB__IE__List__Type_template NR__LB__SetupDRB__IE__List__Type_template::operator+(const NR__LB__SetupDRB__IE__List__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NR__LB__SetupDRB__IE__List__Type_template(ANY_VALUE); +} +NR__LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NR__LB__SetupDRB__IE__List__Type_template NR__LB__SetupDRB__IE__List__Type_template::operator+(const NR__LB__SetupDRB__IE__List__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NR__LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NR__LB__SetupDRB__IE__List__Type_template NR__LB__SetupDRB__IE__List__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NR__LB__SetupDRB__IE__List__Type_template(ANY_VALUE); +} +NR__LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NR__LB__SetupDRB__IE__List__Type_template NR__LB__SetupDRB__IE__List__Type_template::operator+(null_type) const +{ +return *this; +} + +NR__LB__SetupDRB__IE__Type_template& NR__LB__SetupDRB__IE__List__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NR__LB__SetupDRB__IE__Type_template& NR__LB__SetupDRB__IE__List__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NR__LB__SetupDRB__IE__Type_template& NR__LB__SetupDRB__IE__List__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NR__LB__SetupDRB__IE__Type_template& NR__LB__SetupDRB__IE__List__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type_template::valueof() const +{ +NR__LB__SetupDRB__IE__List__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type_template::substr(int index, int returncount) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type_template::replace(int index, int len, const NR__LB__SetupDRB__IE__List__Type_template& repl) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NR__LB__SetupDRB__IE__List__Type NR__LB__SetupDRB__IE__List__Type_template::replace(int index, int len, const NR__LB__SetupDRB__IE__List__Type& repl) const +{ +NR__LB__SetupDRB__IE__List__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NR__LB__SetupDRB__IE__List__Type_template::create_elem() const { return new NR__LB__SetupDRB__IE__Type_template; } +const TTCN_Typedescriptor_t* NR__LB__SetupDRB__IE__List__Type_template::get_descriptor() const { return &NR__LB__SetupDRB__IE__List__Type_descr_; } +void NR__LB__SetupDRB__IE__Type::init_vec() { fld_vec[0]=&field_uplinkPdcpSduSize; fld_vec[1]=&field_reserved; fld_vec[2]=&field_nrDRB; fld_vec[3]=&field_drbIdentity; } + +NR__LB__SetupDRB__IE__Type::NR__LB__SetupDRB__IE__Type() : Record_Type() { init_vec(); } + +NR__LB__SetupDRB__IE__Type::NR__LB__SetupDRB__IE__Type(const NR__LB__SetupDRB__IE__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_uplinkPdcpSduSize.is_bound() ) + field_uplinkPdcpSduSize = other_value.field_uplinkPdcpSduSize; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_nrDRB.is_bound() ) + field_nrDRB = other_value.field_nrDRB; +if (other_value.field_drbIdentity.is_bound() ) + field_drbIdentity = other_value.field_drbIdentity; +init_vec(); +} + +NR__LB__SetupDRB__IE__Type::NR__LB__SetupDRB__IE__Type(const BITSTRING& par_uplinkPdcpSduSize, + const BITSTRING& par_reserved, + const BITSTRING& par_nrDRB, + const BITSTRING& par_drbIdentity) : field_uplinkPdcpSduSize(par_uplinkPdcpSduSize), + field_reserved(par_reserved), + field_nrDRB(par_nrDRB), + field_drbIdentity(par_drbIdentity) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NR__LB__SetupDRB__IE__Type::get_descriptor() const { return &NR__LB__SetupDRB__IE__Type_descr_; } +const TTCN_Typedescriptor_t* NR__LB__SetupDRB__IE__Type::fld_descriptors[] = { &CommonDefs::B16__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B5__Type_descr_ }; +const TTCN_Typedescriptor_t* NR__LB__SetupDRB__IE__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NR__LB__SetupDRB__IE__Type::fld_names[] = { "uplinkPdcpSduSize", "reserved", "nrDRB", "drbIdentity" }; +const char* NR__LB__SetupDRB__IE__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NR__LB__SetupDRB__IE__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NR__LB__SetupDRB__IE__Type_template::NR__LB__SetupDRB__IE__Type_template(NR__LB__SetupDRB__IE__Type_template* p_precondition, NR__LB__SetupDRB__IE__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NR__LB__SetupDRB__IE__Type_template::NR__LB__SetupDRB__IE__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NR__LB__SetupDRB__IE__Type_template::~NR__LB__SetupDRB__IE__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NR__LB__SetupDRB__IE__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NR__LB__SetupDRB__IE__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NR__LB__SetupDRB__IE__Type_template& NR__LB__SetupDRB__IE__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__LB__SetupDRB__IE__Type_template& NR__LB__SetupDRB__IE__Type_template::operator=(const NR__LB__SetupDRB__IE__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NR__LB__SetupDRB__IE__Type_template& NR__LB__SetupDRB__IE__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NR__LB__SetupDRB__IE__Type_template& NR__LB__SetupDRB__IE__Type_template::operator=(const NR__LB__SetupDRB__IE__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NR__LB__SetupDRB__IE__Type NR__LB__SetupDRB__IE__Type_template::valueof() const +{ +NR__LB__SetupDRB__IE__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NR__LB__SetupDRB__IE__Type_template::uplinkPdcpSduSize() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NR__LB__SetupDRB__IE__Type_template::uplinkPdcpSduSize() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NR__LB__SetupDRB__IE__Type_template::reserved() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NR__LB__SetupDRB__IE__Type_template::reserved() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NR__LB__SetupDRB__IE__Type_template::nrDRB() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NR__LB__SetupDRB__IE__Type_template::nrDRB() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NR__LB__SetupDRB__IE__Type_template::drbIdentity() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NR__LB__SetupDRB__IE__Type_template::drbIdentity() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* NR__LB__SetupDRB__IE__Type_template::get_descriptor() const { return &NR__LB__SetupDRB__IE__Type_descr_; } +const char* NR__LB__SetupDRB__IE__Type_template::fld_name(int p_index) const { return NR__LB__SetupDRB__IE__Type::fld_names[p_index]; } +void SET__UL__MESSAGE__REQUEST::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_spare; fld_vec[4]=&field_usePreconfiguredULMsg; } + +SET__UL__MESSAGE__REQUEST::SET__UL__MESSAGE__REQUEST() : Record_Type() { init_vec(); } + +SET__UL__MESSAGE__REQUEST::SET__UL__MESSAGE__REQUEST(const SET__UL__MESSAGE__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_usePreconfiguredULMsg.is_bound() ) + field_usePreconfiguredULMsg = other_value.field_usePreconfiguredULMsg; +init_vec(); +} + +SET__UL__MESSAGE__REQUEST::SET__UL__MESSAGE__REQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_spare, + const BITSTRING& par_usePreconfiguredULMsg) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_spare(par_spare), + field_usePreconfiguredULMsg(par_usePreconfiguredULMsg) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SET__UL__MESSAGE__REQUEST::get_descriptor() const { return &SET__UL__MESSAGE__REQUEST_descr_; } +const TTCN_Typedescriptor_t* SET__UL__MESSAGE__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* SET__UL__MESSAGE__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SET__UL__MESSAGE__REQUEST::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "spare", "usePreconfiguredULMsg" }; +const char* SET__UL__MESSAGE__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void SET__UL__MESSAGE__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SET__UL__MESSAGE__REQUEST_template::SET__UL__MESSAGE__REQUEST_template(SET__UL__MESSAGE__REQUEST_template* p_precondition, SET__UL__MESSAGE__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SET__UL__MESSAGE__REQUEST_template::SET__UL__MESSAGE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SET__UL__MESSAGE__REQUEST_template::~SET__UL__MESSAGE__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SET__UL__MESSAGE__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const SET__UL__MESSAGE__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SET__UL__MESSAGE__REQUEST_template& SET__UL__MESSAGE__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SET__UL__MESSAGE__REQUEST_template& SET__UL__MESSAGE__REQUEST_template::operator=(const SET__UL__MESSAGE__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SET__UL__MESSAGE__REQUEST_template& SET__UL__MESSAGE__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SET__UL__MESSAGE__REQUEST_template& SET__UL__MESSAGE__REQUEST_template::operator=(const SET__UL__MESSAGE__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SET__UL__MESSAGE__REQUEST SET__UL__MESSAGE__REQUEST_template::valueof() const +{ +SET__UL__MESSAGE__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::spare() { return *(static_cast(get_at(3))); } +const BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::spare() const { return *(static_cast(get_at(3))); } +BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::usePreconfiguredULMsg() { return *(static_cast(get_at(4))); } +const BITSTRING_template& SET__UL__MESSAGE__REQUEST_template::usePreconfiguredULMsg() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* SET__UL__MESSAGE__REQUEST_template::get_descriptor() const { return &SET__UL__MESSAGE__REQUEST_descr_; } +const char* SET__UL__MESSAGE__REQUEST_template::fld_name(int p_index) const { return SET__UL__MESSAGE__REQUEST::fld_names[p_index]; } +void SET__UL__MESSAGE__RESPONSE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +SET__UL__MESSAGE__RESPONSE::SET__UL__MESSAGE__RESPONSE() : Record_Type() { init_vec(); } + +SET__UL__MESSAGE__RESPONSE::SET__UL__MESSAGE__RESPONSE(const SET__UL__MESSAGE__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +SET__UL__MESSAGE__RESPONSE::SET__UL__MESSAGE__RESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SET__UL__MESSAGE__RESPONSE::get_descriptor() const { return &SET__UL__MESSAGE__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* SET__UL__MESSAGE__RESPONSE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* SET__UL__MESSAGE__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SET__UL__MESSAGE__RESPONSE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* SET__UL__MESSAGE__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +void SET__UL__MESSAGE__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SET__UL__MESSAGE__RESPONSE_template::SET__UL__MESSAGE__RESPONSE_template(SET__UL__MESSAGE__RESPONSE_template* p_precondition, SET__UL__MESSAGE__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SET__UL__MESSAGE__RESPONSE_template::SET__UL__MESSAGE__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SET__UL__MESSAGE__RESPONSE_template::~SET__UL__MESSAGE__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SET__UL__MESSAGE__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const SET__UL__MESSAGE__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SET__UL__MESSAGE__RESPONSE_template& SET__UL__MESSAGE__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SET__UL__MESSAGE__RESPONSE_template& SET__UL__MESSAGE__RESPONSE_template::operator=(const SET__UL__MESSAGE__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SET__UL__MESSAGE__RESPONSE_template& SET__UL__MESSAGE__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SET__UL__MESSAGE__RESPONSE_template& SET__UL__MESSAGE__RESPONSE_template::operator=(const SET__UL__MESSAGE__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SET__UL__MESSAGE__RESPONSE SET__UL__MESSAGE__RESPONSE_template::valueof() const +{ +SET__UL__MESSAGE__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SET__UL__MESSAGE__RESPONSE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SET__UL__MESSAGE__RESPONSE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SET__UL__MESSAGE__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SET__UL__MESSAGE__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SET__UL__MESSAGE__RESPONSE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SET__UL__MESSAGE__RESPONSE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SET__UL__MESSAGE__RESPONSE_template::get_descriptor() const { return &SET__UL__MESSAGE__RESPONSE_descr_; } +const char* SET__UL__MESSAGE__RESPONSE_template::fld_name(int p_index) const { return SET__UL__MESSAGE__RESPONSE::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +NR__LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const NR__LB__SetupDRB__IE__List__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NR__LB__SetupDRB__IE__List__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NR__LB__SetupDRB__IE__List__Type_template(ANY_VALUE); +} +NR__LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NR__LB__SetupDRB__IE__List__Type_template operator+(const NR__LB__SetupDRB__IE__List__Type& left_value, const NR__LB__SetupDRB__IE__List__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NR__LB__SetupDRB__IE__List__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NR__LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NR__LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const NR__LB__SetupDRB__IE__List__Type& right_value) +{ +int res_length = NR__LB__SetupDRB__IE__List__Type_template::get_length_for_concat(left_template) + NR__LB__SetupDRB__IE__List__Type_template::get_length_for_concat(right_value); +NR__LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NR__LB__SetupDRB__IE__List__Type_template operator+(const NR__LB__SetupDRB__IE__List__Type& left_value, template_sel right_template) +{ +int res_length = NR__LB__SetupDRB__IE__List__Type_template::get_length_for_concat(left_value) + NR__LB__SetupDRB__IE__List__Type_template::get_length_for_concat(right_template); +NR__LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NR__LB__SetupDRB__IE__Type_template cs__NR__LB__SetupDRB__IE(const INTEGER& p__PDCP__SDU__Size, const INTEGER& p__DRB__Id, const BITSTRING& p__NRDRB) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn", 117, TTCN_Location::LOCATION_TEMPLATE, "cs_NR_LB_SetupDRB_IE"); +charstring_list param_names; +param_names[0] = "p_PDCP_SDU_Size"; +param_names[1] = "p_DRB_Id"; +param_names[2] = "p_NRDRB"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_NR_LB_SetupDRB_IE", "template", "Common4G5G_LoopBack", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDCP__SDU__Size, "p_PDCP_SDU_Size", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DRB__Id, "p_DRB_Id", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NRDRB, "p_NRDRB", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NR__LB__SetupDRB__IE__Type_template ret_val; +ret_val.uplinkPdcpSduSize() = int2bit(p__PDCP__SDU__Size, 16); +ret_val.reserved() = bs_14; +ret_val.nrDRB() = p__NRDRB; +ret_val.drbIdentity() = int2bit((p__DRB__Id - 1), 5); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NR__LB__SetupDRB__IE_err_descr_ptr); +return ret_val; +} + +UE__TestLoopModeA__NR__LB__Setup__Type_template cs__UE__TestLoopModeA__NR__LB__Setup__1DRB(const INTEGER& p__PDCP__SDU__Size, const INTEGER& p__DRB__Id, const BITSTRING& p__NRDRB) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn", 128, TTCN_Location::LOCATION_TEMPLATE, "cs_UE_TestLoopModeA_NR_LB_Setup_1DRB"); +charstring_list param_names; +param_names[0] = "p_PDCP_SDU_Size"; +param_names[1] = "p_DRB_Id"; +param_names[2] = "p_NRDRB"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_UE_TestLoopModeA_NR_LB_Setup_1DRB", "template", "Common4G5G_LoopBack", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDCP__SDU__Size, "p_PDCP_SDU_Size", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DRB__Id, "p_DRB_Id", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NRDRB, "p_NRDRB", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +UE__TestLoopModeA__NR__LB__Setup__Type_template ret_val; +ret_val.iel() = os_3; +{ +NR__LB__SetupDRB__IE__List__Type_template& tmp_0 = ret_val.lbSetupDrbList(); +tmp_0.set_size(1); +tmp_0[0] = cs__NR__LB__SetupDRB__IE(p__PDCP__SDU__Size, p__DRB__Id, p__NRDRB); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__UE__TestLoopModeA__NR__LB__Setup__1DRB_err_descr_ptr); +return ret_val; +} + +EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_template cs__UE__TestLoopModeE__LB__Setup(const BITSTRING& p__CommTransmitOrReceive, const INTEGER& p__CommMonitorListLength, const EPS__NAS__LoopBack__TypeDefs::CommMonitorList__Type_template& p__CommMonitorList, const BITSTRING& p__D2dOrV2x) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn", 144, TTCN_Location::LOCATION_TEMPLATE, "cs_UE_TestLoopModeE_LB_Setup"); +charstring_list param_names; +param_names[0] = "p_CommTransmitOrReceive"; +param_names[1] = "p_CommMonitorListLength"; +param_names[2] = "p_CommMonitorList"; +param_names[3] = "p_D2dOrV2x"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_UE_TestLoopModeE_LB_Setup", "template", "Common4G5G_LoopBack", param_names, param_types, NULL); +debug_scope.add_variable(&p__CommTransmitOrReceive, "p_CommTransmitOrReceive", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__CommMonitorListLength, "p_CommMonitorListLength", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__CommMonitorList, "p_CommMonitorList", "CommMonitorList_Type template", NULL, EPS__NAS__LoopBack__TypeDefs::print_var_EPS_NAS_LoopBack_TypeDefs); +debug_scope.add_variable(&p__D2dOrV2x, "p_D2dOrV2x", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_template ret_val; +ret_val.commMonitorListLength() = int2bit(p__CommMonitorListLength, 8); +ret_val.reserved() = bs_15; +ret_val.commTransmitOrReceive() = p__CommTransmitOrReceive; +ret_val.commMonitorList() = p__CommMonitorList; +ret_val.d2dOrV2x() = p__D2dOrV2x; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__UE__TestLoopModeE__LB__Setup_err_descr_ptr); +return ret_val; +} + +SET__UL__MESSAGE__REQUEST_template cs__SET__UL__MESSAGE__REQUEST(const BITSTRING& p__UsePreconfigured) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn", 157, TTCN_Location::LOCATION_TEMPLATE, "cs_SET_UL_MESSAGE_REQUEST"); +charstring_list param_names; +param_names[0] = "p_UsePreconfigured"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_SET_UL_MESSAGE_REQUEST", "template", "Common4G5G_LoopBack", param_names, param_types, NULL); +debug_scope.add_variable(&p__UsePreconfigured, "p_UsePreconfigured", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +SET__UL__MESSAGE__REQUEST_template ret_val; +ret_val.skipIndicator() = bs_10; +ret_val.protocolDiscriminator() = bs_11; +ret_val.messageType() = bs_8; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare7; +ret_val.usePreconfiguredULMsg() = p__UsePreconfigured; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__SET__UL__MESSAGE__REQUEST_err_descr_ptr); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Common4G5G_LoopBack"); +Common4G5G__LoopBack::init_ttcn3_debugger(); +EPS__NAS__LoopBack__TypeDefs::module_object.pre_init_module(); +NAS__CommonTemplates::module_object.pre_init_module(); +current_location.update_lineno(22); +ttcn3_debugger.breakpoint_entry(22); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 22 */ +const_tsc__MsgType__CloseUE__TestLoop = bs_0; +current_location.update_lineno(23); +ttcn3_debugger.breakpoint_entry(23); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 23 */ +const_tsc__MsgType__CloseUE__TestLoopCmpl = bs_1; +current_location.update_lineno(24); +ttcn3_debugger.breakpoint_entry(24); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 24 */ +const_tsc__MsgType__OpenUE__TestLoop = bs_2; +current_location.update_lineno(25); +ttcn3_debugger.breakpoint_entry(25); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 25 */ +const_tsc__MsgType__OpenUE__TestLoopCmpl = bs_3; +current_location.update_lineno(26); +ttcn3_debugger.breakpoint_entry(26); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 26 */ +const_tsc__MsgType__Activate__TestMode = bs_4; +current_location.update_lineno(27); +ttcn3_debugger.breakpoint_entry(27); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 27 */ +const_tsc__MsgType__Activate__TestModeCmpl = bs_5; +current_location.update_lineno(28); +ttcn3_debugger.breakpoint_entry(28); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 28 */ +const_tsc__MsgType__Deactivate__TestMode = bs_6; +current_location.update_lineno(29); +ttcn3_debugger.breakpoint_entry(29); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 29 */ +const_tsc__MsgType__Deactivate__TestModeCmpl = bs_7; +current_location.update_lineno(30); +ttcn3_debugger.breakpoint_entry(30); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 30 */ +const_tsc__MsgType__SetULMsgReq = bs_8; +current_location.update_lineno(31); +ttcn3_debugger.breakpoint_entry(31); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 31 */ +const_tsc__MsgType__SetULMsgResp = bs_9; +current_location.update_lineno(34); +ttcn3_debugger.breakpoint_entry(34); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 34 */ +const_tsc__UE__TestLoopMode__TypeA = os_0; +current_location.update_lineno(35); +ttcn3_debugger.breakpoint_entry(35); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 35 */ +const_tsc__UE__TestLoopMode__TypeB = os_1; +current_location.update_lineno(36); +ttcn3_debugger.breakpoint_entry(36); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 36 */ +const_tsc__UE__TestLoopMode__TypeE = os_2; +current_location.update_lineno(37); +ttcn3_debugger.breakpoint_entry(37); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 37 */ +const_tsc__Gen__SkipIndicator = bs_10; +current_location.update_lineno(41); +ttcn3_debugger.breakpoint_entry(41); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 41 */ +const_tsc__LB__ProtocolDiscriminator = bs_11; +current_location.update_lineno(44); +ttcn3_debugger.breakpoint_entry(44); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 44 */ +const_tsc__LoopModeE__Transmission = bs_12; +current_location.update_lineno(45); +ttcn3_debugger.breakpoint_entry(45); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 45 */ +const_tsc__LoopModeE__Reception = bs_13; +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 46 */ +const_tsc__LoopModeE__V2x = bs_12; +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Common4G5G_LoopBack"); +EPS__NAS__LoopBack__TypeDefs::module_object.post_init_module(); +NAS__CommonTemplates::module_object.post_init_module(); +current_location.update_lineno(119); +ttcn3_debugger.breakpoint_entry(119); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 119 */ +const_cs__NR__LB__SetupDRB__IE_p__NRDRB_defval = bs_12; +current_location.update_lineno(130); +ttcn3_debugger.breakpoint_entry(130); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 130 */ +const_cs__UE__TestLoopModeA__NR__LB__Setup__1DRB_p__NRDRB_defval = bs_12; +current_location.update_lineno(138); +ttcn3_debugger.breakpoint_entry(138); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 138 */ +template_cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling.iel() = os_0; +template_cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling.lbSetupDrbList() = OMIT_VALUE; +current_location.update_lineno(144); +ttcn3_debugger.breakpoint_entry(144); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 144 */ +const_cs__UE__TestLoopModeE__LB__Setup_p__CommTransmitOrReceive_defval = bs_13; +current_location.update_lineno(147); +ttcn3_debugger.breakpoint_entry(147); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 147 */ +const_cs__UE__TestLoopModeE__LB__Setup_p__D2dOrV2x_defval = bs_13; +current_location.update_lineno(166); +ttcn3_debugger.breakpoint_entry(166); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/Common4G5G_LoopBack.ttcn, line 166 */ +template_cr__SET__UL__MESSAGE__RESPONSE.skipIndicator() = bs_10; +template_cr__SET__UL__MESSAGE__RESPONSE.protocolDiscriminator() = bs_11; +template_cr__SET__UL__MESSAGE__RESPONSE.messageType() = bs_9; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/Common4G5G_LoopBack.hh b/build/Ats_NG_NAS/Common4G5G_LoopBack.hh new file mode 100644 index 0000000000000000000000000000000000000000..c08ba74a75f4816708b25c40d8abe25a466849d2 --- /dev/null +++ b/build/Ats_NG_NAS/Common4G5G_LoopBack.hh @@ -0,0 +1,740 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef Common4G5G__LoopBack_HH +#define Common4G5G__LoopBack_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "EPS_NAS_LoopBack_TypeDefs.hh" +#include "NAS_CommonTemplates.hh" + +#if TTCN3_VERSION != 100000 +#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 Common4G5G__LoopBack_HH +#endif + +namespace Common4G5G__LoopBack { + +/* Forward declarations of classes */ + +class NR__CLOSE__UE__TEST__LOOP; +class NR__CLOSE__UE__TEST__LOOP_template; +class UE__TestLoopModeA__NR__LB__Setup__Type; +class UE__TestLoopModeA__NR__LB__Setup__Type_template; +class NR__LB__SetupDRB__IE__List__Type; +class NR__LB__SetupDRB__IE__List__Type_template; +class NR__LB__SetupDRB__IE__Type; +class NR__LB__SetupDRB__IE__Type_template; +class SET__UL__MESSAGE__REQUEST; +class SET__UL__MESSAGE__REQUEST_template; +class SET__UL__MESSAGE__RESPONSE; +class SET__UL__MESSAGE__RESPONSE_template; + +} /* end of namespace */ + +#ifndef Common4G5G__LoopBack_HH +#define Common4G5G__LoopBack_HH + +namespace Common4G5G__LoopBack { + +/* Class definitions */ + +class NR__CLOSE__UE__TEST__LOOP : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OCTETSTRING field_ueTestLoopMode; + OPTIONAL field_ueTestLoopModeA__LB__Setup; + OPTIONAL field_ueTestLoopModeB__LB__Setup; + OPTIONAL field_ueTestLoopModeE__LB__Setup; + Base_Type* fld_vec[7]; + void init_vec(); +public: + NR__CLOSE__UE__TEST__LOOP(); + NR__CLOSE__UE__TEST__LOOP(const NR__CLOSE__UE__TEST__LOOP& other_value); + NR__CLOSE__UE__TEST__LOOP(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_ueTestLoopMode, + const OPTIONAL& par_ueTestLoopModeA__LB__Setup, + const OPTIONAL& par_ueTestLoopModeB__LB__Setup, + const OPTIONAL& par_ueTestLoopModeE__LB__Setup); +inline NR__CLOSE__UE__TEST__LOOP& operator=(const NR__CLOSE__UE__TEST__LOOP& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NR__CLOSE__UE__TEST__LOOP& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NR__CLOSE__UE__TEST__LOOP& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OCTETSTRING& ueTestLoopMode() + {return field_ueTestLoopMode;} + inline const OCTETSTRING& ueTestLoopMode() const + {return field_ueTestLoopMode;} + inline OPTIONAL& ueTestLoopModeA__LB__Setup() + {return field_ueTestLoopModeA__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeA__LB__Setup() const + {return field_ueTestLoopModeA__LB__Setup;} + inline OPTIONAL& ueTestLoopModeB__LB__Setup() + {return field_ueTestLoopModeB__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeB__LB__Setup() const + {return field_ueTestLoopModeB__LB__Setup;} + inline OPTIONAL& ueTestLoopModeE__LB__Setup() + {return field_ueTestLoopModeE__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeE__LB__Setup() const + {return field_ueTestLoopModeE__LB__Setup;} +Base_Type* clone() const { return new NR__CLOSE__UE__TEST__LOOP(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NR__CLOSE__UE__TEST__LOOP_template : public Record_Template { +void set_specific(); +public: +NR__CLOSE__UE__TEST__LOOP_template(): Record_Template() {} +NR__CLOSE__UE__TEST__LOOP_template(template_sel other_value): Record_Template(other_value) {} +NR__CLOSE__UE__TEST__LOOP_template(const NR__CLOSE__UE__TEST__LOOP& other_value): Record_Template() { copy_value(&other_value); } +NR__CLOSE__UE__TEST__LOOP_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NR__CLOSE__UE__TEST__LOOP_template(NR__CLOSE__UE__TEST__LOOP_template* p_precondition, NR__CLOSE__UE__TEST__LOOP_template* p_implied_template); +NR__CLOSE__UE__TEST__LOOP_template(Dynamic_Match_Interface* p_dyn_match); +NR__CLOSE__UE__TEST__LOOP_template(const NR__CLOSE__UE__TEST__LOOP_template& other_value): Record_Template() { copy_template(other_value); } +~NR__CLOSE__UE__TEST__LOOP_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NR__CLOSE__UE__TEST__LOOP_template& operator=(template_sel other_value); +NR__CLOSE__UE__TEST__LOOP_template& operator=(const NR__CLOSE__UE__TEST__LOOP& other_value); +NR__CLOSE__UE__TEST__LOOP_template& operator=(const OPTIONAL& other_value); +NR__CLOSE__UE__TEST__LOOP_template& operator=(const NR__CLOSE__UE__TEST__LOOP_template& other_value); +inline boolean match(const NR__CLOSE__UE__TEST__LOOP& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NR__CLOSE__UE__TEST__LOOP& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NR__CLOSE__UE__TEST__LOOP valueof() const; +inline NR__CLOSE__UE__TEST__LOOP_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +OCTETSTRING_template& ueTestLoopMode(); +const OCTETSTRING_template& ueTestLoopMode() const; +UE__TestLoopModeA__NR__LB__Setup__Type_template& ueTestLoopModeA__LB__Setup(); +const UE__TestLoopModeA__NR__LB__Setup__Type_template& ueTestLoopModeA__LB__Setup() const; +OCTETSTRING_template& ueTestLoopModeB__LB__Setup(); +const OCTETSTRING_template& ueTestLoopModeB__LB__Setup() const; +EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_template& ueTestLoopModeE__LB__Setup(); +const EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_template& ueTestLoopModeE__LB__Setup() const; +Record_Template* create() const { return new NR__CLOSE__UE__TEST__LOOP_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TestLoopModeA__NR__LB__Setup__Type : public Record_Type { + OCTETSTRING field_iel; + OPTIONAL field_lbSetupDrbList; + Base_Type* fld_vec[2]; + void init_vec(); +public: + UE__TestLoopModeA__NR__LB__Setup__Type(); + UE__TestLoopModeA__NR__LB__Setup__Type(const UE__TestLoopModeA__NR__LB__Setup__Type& other_value); + UE__TestLoopModeA__NR__LB__Setup__Type(const OCTETSTRING& par_iel, + const OPTIONAL& par_lbSetupDrbList); +inline UE__TestLoopModeA__NR__LB__Setup__Type& operator=(const UE__TestLoopModeA__NR__LB__Setup__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TestLoopModeA__NR__LB__Setup__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TestLoopModeA__NR__LB__Setup__Type& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OPTIONAL& lbSetupDrbList() + {return field_lbSetupDrbList;} + inline const OPTIONAL& lbSetupDrbList() const + {return field_lbSetupDrbList;} +Base_Type* clone() const { return new UE__TestLoopModeA__NR__LB__Setup__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TestLoopModeA__NR__LB__Setup__Type_template : public Record_Template { +void set_specific(); +public: +UE__TestLoopModeA__NR__LB__Setup__Type_template(): Record_Template() {} +UE__TestLoopModeA__NR__LB__Setup__Type_template(template_sel other_value): Record_Template(other_value) {} +UE__TestLoopModeA__NR__LB__Setup__Type_template(const UE__TestLoopModeA__NR__LB__Setup__Type& other_value): Record_Template() { copy_value(&other_value); } +UE__TestLoopModeA__NR__LB__Setup__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TestLoopModeA__NR__LB__Setup__Type_template(UE__TestLoopModeA__NR__LB__Setup__Type_template* p_precondition, UE__TestLoopModeA__NR__LB__Setup__Type_template* p_implied_template); +UE__TestLoopModeA__NR__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match); +UE__TestLoopModeA__NR__LB__Setup__Type_template(const UE__TestLoopModeA__NR__LB__Setup__Type_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TestLoopModeA__NR__LB__Setup__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TestLoopModeA__NR__LB__Setup__Type_template& operator=(template_sel other_value); +UE__TestLoopModeA__NR__LB__Setup__Type_template& operator=(const UE__TestLoopModeA__NR__LB__Setup__Type& other_value); +UE__TestLoopModeA__NR__LB__Setup__Type_template& operator=(const OPTIONAL& other_value); +UE__TestLoopModeA__NR__LB__Setup__Type_template& operator=(const UE__TestLoopModeA__NR__LB__Setup__Type_template& other_value); +inline boolean match(const UE__TestLoopModeA__NR__LB__Setup__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TestLoopModeA__NR__LB__Setup__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TestLoopModeA__NR__LB__Setup__Type valueof() const; +inline UE__TestLoopModeA__NR__LB__Setup__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +NR__LB__SetupDRB__IE__List__Type_template& lbSetupDrbList(); +const NR__LB__SetupDRB__IE__List__Type_template& lbSetupDrbList() const; +Record_Template* create() const { return new UE__TestLoopModeA__NR__LB__Setup__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NR__LB__SetupDRB__IE__List__Type : public Record_Of_Type { + +static const NR__LB__SetupDRB__IE__Type UNBOUND_ELEM; + +public: +NR__LB__SetupDRB__IE__List__Type(): Record_Of_Type() {} +NR__LB__SetupDRB__IE__List__Type(null_type other_value): Record_Of_Type(other_value) {} +NR__LB__SetupDRB__IE__List__Type(const NR__LB__SetupDRB__IE__List__Type& other_value): Record_Of_Type(other_value) {} +~NR__LB__SetupDRB__IE__List__Type() { clean_up(); } + +inline NR__LB__SetupDRB__IE__List__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NR__LB__SetupDRB__IE__List__Type& operator=(const NR__LB__SetupDRB__IE__List__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NR__LB__SetupDRB__IE__List__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NR__LB__SetupDRB__IE__List__Type& other_value) const { return !is_equal(&other_value); } +NR__LB__SetupDRB__IE__Type& operator[](int index_value); +NR__LB__SetupDRB__IE__Type& operator[](const INTEGER& index_value); +const NR__LB__SetupDRB__IE__Type& operator[](int index_value) const; +const NR__LB__SetupDRB__IE__Type& operator[](const INTEGER& index_value) const; +NR__LB__SetupDRB__IE__List__Type operator<<=(int rotate_count) const; +NR__LB__SetupDRB__IE__List__Type operator<<=(const INTEGER& rotate_count) const; +NR__LB__SetupDRB__IE__List__Type operator>>=(int rotate_count) const; +NR__LB__SetupDRB__IE__List__Type operator>>=(const INTEGER& rotate_count) const; + +NR__LB__SetupDRB__IE__List__Type operator+(const NR__LB__SetupDRB__IE__List__Type& other_value) const; + +NR__LB__SetupDRB__IE__List__Type operator+(const OPTIONAL& other_value) const; + +NR__LB__SetupDRB__IE__List__Type operator+(null_type) const; + +NR__LB__SetupDRB__IE__List__Type substr(int index, int returncount) const; + +NR__LB__SetupDRB__IE__List__Type replace(int index, int len, const NR__LB__SetupDRB__IE__List__Type& repl) const; + +NR__LB__SetupDRB__IE__List__Type replace(int index, int len, const NR__LB__SetupDRB__IE__List__Type_template& repl) const; + +Base_Type* clone() const { return new NR__LB__SetupDRB__IE__List__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NR__LB__SetupDRB__IE__List__Type_template : public Record_Of_Template { +friend NR__LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const NR__LB__SetupDRB__IE__List__Type_template& right_template); +friend NR__LB__SetupDRB__IE__List__Type_template operator+(const NR__LB__SetupDRB__IE__List__Type& left_value, const NR__LB__SetupDRB__IE__List__Type_template& right_template); +friend NR__LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const NR__LB__SetupDRB__IE__List__Type& right_value); +friend NR__LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NR__LB__SetupDRB__IE__List__Type_template operator+(const NR__LB__SetupDRB__IE__List__Type& left_value, template_sel right_template); + +public: +NR__LB__SetupDRB__IE__List__Type_template() {} +NR__LB__SetupDRB__IE__List__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NR__LB__SetupDRB__IE__List__Type_template(null_type other_value); +NR__LB__SetupDRB__IE__List__Type_template(const NR__LB__SetupDRB__IE__List__Type& other_value) { copy_value(&other_value); } +NR__LB__SetupDRB__IE__List__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NR__LB__SetupDRB__IE__List__Type_template(NR__LB__SetupDRB__IE__List__Type_template* p_precondition, NR__LB__SetupDRB__IE__List__Type_template* p_implied_template); +NR__LB__SetupDRB__IE__List__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__LB__SetupDRB__IE__List__Type_template(const NR__LB__SetupDRB__IE__List__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NR__LB__SetupDRB__IE__List__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NR__LB__SetupDRB__IE__List__Type_template& operator=(template_sel other_value); +NR__LB__SetupDRB__IE__List__Type_template& operator=(null_type other_value); +NR__LB__SetupDRB__IE__List__Type_template& operator=(const NR__LB__SetupDRB__IE__List__Type& other_value); +NR__LB__SetupDRB__IE__List__Type_template& operator=(const OPTIONAL& other_value); +NR__LB__SetupDRB__IE__List__Type_template& operator=(const NR__LB__SetupDRB__IE__List__Type_template& other_value); + +NR__LB__SetupDRB__IE__List__Type_template operator+(const NR__LB__SetupDRB__IE__List__Type_template& other_value) const; +NR__LB__SetupDRB__IE__List__Type_template operator+(const NR__LB__SetupDRB__IE__List__Type& other_value) const; +NR__LB__SetupDRB__IE__List__Type_template operator+(template_sel other_value) const; +NR__LB__SetupDRB__IE__List__Type_template operator+(null_type) const; + +NR__LB__SetupDRB__IE__Type_template& operator[](int index_value); +NR__LB__SetupDRB__IE__Type_template& operator[](const INTEGER& index_value); +const NR__LB__SetupDRB__IE__Type_template& operator[](int index_value) const; +const NR__LB__SetupDRB__IE__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NR__LB__SetupDRB__IE__List__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NR__LB__SetupDRB__IE__List__Type valueof() const; +NR__LB__SetupDRB__IE__List__Type substr(int index, int returncount) const; + +NR__LB__SetupDRB__IE__List__Type replace(int index, int len, const NR__LB__SetupDRB__IE__List__Type_template& repl) const; + +NR__LB__SetupDRB__IE__List__Type replace(int index, int len, const NR__LB__SetupDRB__IE__List__Type& repl) const; + +inline NR__LB__SetupDRB__IE__List__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NR__LB__SetupDRB__IE__List__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NR__LB__SetupDRB__IE__List__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NR__LB__SetupDRB__IE__Type : public Record_Type { + BITSTRING field_uplinkPdcpSduSize; + BITSTRING field_reserved; + BITSTRING field_nrDRB; + BITSTRING field_drbIdentity; + Base_Type* fld_vec[4]; + void init_vec(); +public: + NR__LB__SetupDRB__IE__Type(); + NR__LB__SetupDRB__IE__Type(const NR__LB__SetupDRB__IE__Type& other_value); + NR__LB__SetupDRB__IE__Type(const BITSTRING& par_uplinkPdcpSduSize, + const BITSTRING& par_reserved, + const BITSTRING& par_nrDRB, + const BITSTRING& par_drbIdentity); +inline NR__LB__SetupDRB__IE__Type& operator=(const NR__LB__SetupDRB__IE__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NR__LB__SetupDRB__IE__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NR__LB__SetupDRB__IE__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& uplinkPdcpSduSize() + {return field_uplinkPdcpSduSize;} + inline const BITSTRING& uplinkPdcpSduSize() const + {return field_uplinkPdcpSduSize;} + inline BITSTRING& reserved() + {return field_reserved;} + inline const BITSTRING& reserved() const + {return field_reserved;} + inline BITSTRING& nrDRB() + {return field_nrDRB;} + inline const BITSTRING& nrDRB() const + {return field_nrDRB;} + inline BITSTRING& drbIdentity() + {return field_drbIdentity;} + inline const BITSTRING& drbIdentity() const + {return field_drbIdentity;} +Base_Type* clone() const { return new NR__LB__SetupDRB__IE__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NR__LB__SetupDRB__IE__Type_template : public Record_Template { +void set_specific(); +public: +NR__LB__SetupDRB__IE__Type_template(): Record_Template() {} +NR__LB__SetupDRB__IE__Type_template(template_sel other_value): Record_Template(other_value) {} +NR__LB__SetupDRB__IE__Type_template(const NR__LB__SetupDRB__IE__Type& other_value): Record_Template() { copy_value(&other_value); } +NR__LB__SetupDRB__IE__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NR__LB__SetupDRB__IE__Type_template(NR__LB__SetupDRB__IE__Type_template* p_precondition, NR__LB__SetupDRB__IE__Type_template* p_implied_template); +NR__LB__SetupDRB__IE__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__LB__SetupDRB__IE__Type_template(const NR__LB__SetupDRB__IE__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NR__LB__SetupDRB__IE__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NR__LB__SetupDRB__IE__Type_template& operator=(template_sel other_value); +NR__LB__SetupDRB__IE__Type_template& operator=(const NR__LB__SetupDRB__IE__Type& other_value); +NR__LB__SetupDRB__IE__Type_template& operator=(const OPTIONAL& other_value); +NR__LB__SetupDRB__IE__Type_template& operator=(const NR__LB__SetupDRB__IE__Type_template& other_value); +inline boolean match(const NR__LB__SetupDRB__IE__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NR__LB__SetupDRB__IE__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NR__LB__SetupDRB__IE__Type valueof() const; +inline NR__LB__SetupDRB__IE__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& uplinkPdcpSduSize(); +const BITSTRING_template& uplinkPdcpSduSize() const; +BITSTRING_template& reserved(); +const BITSTRING_template& reserved() const; +BITSTRING_template& nrDRB(); +const BITSTRING_template& nrDRB() const; +BITSTRING_template& drbIdentity(); +const BITSTRING_template& drbIdentity() const; +Record_Template* create() const { return new NR__LB__SetupDRB__IE__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SET__UL__MESSAGE__REQUEST : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + BITSTRING field_spare; + BITSTRING field_usePreconfiguredULMsg; + Base_Type* fld_vec[5]; + void init_vec(); +public: + SET__UL__MESSAGE__REQUEST(); + SET__UL__MESSAGE__REQUEST(const SET__UL__MESSAGE__REQUEST& other_value); + SET__UL__MESSAGE__REQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_spare, + const BITSTRING& par_usePreconfiguredULMsg); +inline SET__UL__MESSAGE__REQUEST& operator=(const SET__UL__MESSAGE__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SET__UL__MESSAGE__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SET__UL__MESSAGE__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& usePreconfiguredULMsg() + {return field_usePreconfiguredULMsg;} + inline const BITSTRING& usePreconfiguredULMsg() const + {return field_usePreconfiguredULMsg;} +Base_Type* clone() const { return new SET__UL__MESSAGE__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SET__UL__MESSAGE__REQUEST_template : public Record_Template { +void set_specific(); +public: +SET__UL__MESSAGE__REQUEST_template(): Record_Template() {} +SET__UL__MESSAGE__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +SET__UL__MESSAGE__REQUEST_template(const SET__UL__MESSAGE__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +SET__UL__MESSAGE__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SET__UL__MESSAGE__REQUEST_template(SET__UL__MESSAGE__REQUEST_template* p_precondition, SET__UL__MESSAGE__REQUEST_template* p_implied_template); +SET__UL__MESSAGE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +SET__UL__MESSAGE__REQUEST_template(const SET__UL__MESSAGE__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~SET__UL__MESSAGE__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SET__UL__MESSAGE__REQUEST_template& operator=(template_sel other_value); +SET__UL__MESSAGE__REQUEST_template& operator=(const SET__UL__MESSAGE__REQUEST& other_value); +SET__UL__MESSAGE__REQUEST_template& operator=(const OPTIONAL& other_value); +SET__UL__MESSAGE__REQUEST_template& operator=(const SET__UL__MESSAGE__REQUEST_template& other_value); +inline boolean match(const SET__UL__MESSAGE__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SET__UL__MESSAGE__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SET__UL__MESSAGE__REQUEST valueof() const; +inline SET__UL__MESSAGE__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& usePreconfiguredULMsg(); +const BITSTRING_template& usePreconfiguredULMsg() const; +Record_Template* create() const { return new SET__UL__MESSAGE__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SET__UL__MESSAGE__RESPONSE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SET__UL__MESSAGE__RESPONSE(); + SET__UL__MESSAGE__RESPONSE(const SET__UL__MESSAGE__RESPONSE& other_value); + SET__UL__MESSAGE__RESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline SET__UL__MESSAGE__RESPONSE& operator=(const SET__UL__MESSAGE__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SET__UL__MESSAGE__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SET__UL__MESSAGE__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new SET__UL__MESSAGE__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SET__UL__MESSAGE__RESPONSE_template : public Record_Template { +void set_specific(); +public: +SET__UL__MESSAGE__RESPONSE_template(): Record_Template() {} +SET__UL__MESSAGE__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +SET__UL__MESSAGE__RESPONSE_template(const SET__UL__MESSAGE__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +SET__UL__MESSAGE__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SET__UL__MESSAGE__RESPONSE_template(SET__UL__MESSAGE__RESPONSE_template* p_precondition, SET__UL__MESSAGE__RESPONSE_template* p_implied_template); +SET__UL__MESSAGE__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +SET__UL__MESSAGE__RESPONSE_template(const SET__UL__MESSAGE__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~SET__UL__MESSAGE__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SET__UL__MESSAGE__RESPONSE_template& operator=(template_sel other_value); +SET__UL__MESSAGE__RESPONSE_template& operator=(const SET__UL__MESSAGE__RESPONSE& other_value); +SET__UL__MESSAGE__RESPONSE_template& operator=(const OPTIONAL& other_value); +SET__UL__MESSAGE__RESPONSE_template& operator=(const SET__UL__MESSAGE__RESPONSE_template& other_value); +inline boolean match(const SET__UL__MESSAGE__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SET__UL__MESSAGE__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SET__UL__MESSAGE__RESPONSE valueof() const; +inline SET__UL__MESSAGE__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new SET__UL__MESSAGE__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_Common4G5G_LoopBack(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_Common4G5G_LoopBack(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern NR__LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const NR__LB__SetupDRB__IE__List__Type_template& right_template); +extern NR__LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const NR__LB__SetupDRB__IE__List__Type& right_value); +extern NR__LB__SetupDRB__IE__List__Type_template operator+(const NR__LB__SetupDRB__IE__List__Type& left_value, template_sel right_template); +extern NR__LB__SetupDRB__IE__Type_template cs__NR__LB__SetupDRB__IE(const INTEGER& p__PDCP__SDU__Size, const INTEGER& p__DRB__Id, const BITSTRING& p__NRDRB); +extern UE__TestLoopModeA__NR__LB__Setup__Type_template cs__UE__TestLoopModeA__NR__LB__Setup__1DRB(const INTEGER& p__PDCP__SDU__Size, const INTEGER& p__DRB__Id, const BITSTRING& p__NRDRB); +extern EPS__NAS__LoopBack__TypeDefs::UE__TestLoopModeE__LB__Setup__Type_template cs__UE__TestLoopModeE__LB__Setup(const BITSTRING& p__CommTransmitOrReceive, const INTEGER& p__CommMonitorListLength, const EPS__NAS__LoopBack__TypeDefs::CommMonitorList__Type_template& p__CommMonitorList, const BITSTRING& p__D2dOrV2x); +extern SET__UL__MESSAGE__REQUEST_template cs__SET__UL__MESSAGE__REQUEST(const BITSTRING& p__UsePreconfigured); + +/* Global variable declarations */ + +extern const BITSTRING& tsc__MsgType__CloseUE__TestLoop; +extern BITSTRING const_tsc__MsgType__CloseUE__TestLoop; +extern const BITSTRING& tsc__MsgType__CloseUE__TestLoopCmpl; +extern BITSTRING const_tsc__MsgType__CloseUE__TestLoopCmpl; +extern const BITSTRING& tsc__MsgType__OpenUE__TestLoop; +extern BITSTRING const_tsc__MsgType__OpenUE__TestLoop; +extern const BITSTRING& tsc__MsgType__OpenUE__TestLoopCmpl; +extern BITSTRING const_tsc__MsgType__OpenUE__TestLoopCmpl; +extern const BITSTRING& tsc__MsgType__Activate__TestMode; +extern BITSTRING const_tsc__MsgType__Activate__TestMode; +extern const BITSTRING& tsc__MsgType__Activate__TestModeCmpl; +extern BITSTRING const_tsc__MsgType__Activate__TestModeCmpl; +extern const BITSTRING& tsc__MsgType__Deactivate__TestMode; +extern BITSTRING const_tsc__MsgType__Deactivate__TestMode; +extern const BITSTRING& tsc__MsgType__Deactivate__TestModeCmpl; +extern BITSTRING const_tsc__MsgType__Deactivate__TestModeCmpl; +extern const BITSTRING& tsc__MsgType__SetULMsgReq; +extern BITSTRING const_tsc__MsgType__SetULMsgReq; +extern const BITSTRING& tsc__MsgType__SetULMsgResp; +extern BITSTRING const_tsc__MsgType__SetULMsgResp; +extern const OCTETSTRING& tsc__UE__TestLoopMode__TypeA; +extern OCTETSTRING const_tsc__UE__TestLoopMode__TypeA; +extern const OCTETSTRING& tsc__UE__TestLoopMode__TypeB; +extern OCTETSTRING const_tsc__UE__TestLoopMode__TypeB; +extern const OCTETSTRING& tsc__UE__TestLoopMode__TypeE; +extern OCTETSTRING const_tsc__UE__TestLoopMode__TypeE; +extern const BITSTRING& tsc__Gen__SkipIndicator; +extern BITSTRING const_tsc__Gen__SkipIndicator; +extern const BITSTRING& tsc__LB__ProtocolDiscriminator; +extern BITSTRING const_tsc__LB__ProtocolDiscriminator; +extern const BITSTRING& tsc__LoopModeE__Transmission; +extern BITSTRING const_tsc__LoopModeE__Transmission; +extern const BITSTRING& tsc__LoopModeE__Reception; +extern BITSTRING const_tsc__LoopModeE__Reception; +extern const BITSTRING& tsc__LoopModeE__V2x; +extern BITSTRING const_tsc__LoopModeE__V2x; +extern const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_skipIndicator_descr_; +extern const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_protocolDiscriminator_descr_; +extern const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_messageType_xer_; +extern const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_messageType_oer_; +extern const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_messageType_descr_; +extern const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_xer_; +extern const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_; +extern const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopMode_descr_; +extern const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_descr_; +extern const XERdescriptor_t UE__TestLoopModeA__NR__LB__Setup__Type_iel_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeA__NR__LB__Setup__Type_iel_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeA__NR__LB__Setup__Type_iel_descr_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeA__NR__LB__Setup__Type_descr_; +extern const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__List__Type_descr_; +extern const XERdescriptor_t NR__LB__SetupDRB__IE__Type_uplinkPdcpSduSize_xer_; +extern const TTCN_OERdescriptor_t NR__LB__SetupDRB__IE__Type_uplinkPdcpSduSize_oer_; +extern const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_uplinkPdcpSduSize_descr_; +extern const XERdescriptor_t NR__LB__SetupDRB__IE__Type_reserved_xer_; +extern const TTCN_OERdescriptor_t NR__LB__SetupDRB__IE__Type_reserved_oer_; +extern const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_reserved_descr_; +extern const XERdescriptor_t NR__LB__SetupDRB__IE__Type_nrDRB_xer_; +extern const TTCN_OERdescriptor_t NR__LB__SetupDRB__IE__Type_nrDRB_oer_; +extern const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_nrDRB_descr_; +extern const XERdescriptor_t NR__LB__SetupDRB__IE__Type_drbIdentity_xer_; +extern const TTCN_OERdescriptor_t NR__LB__SetupDRB__IE__Type_drbIdentity_oer_; +extern const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_drbIdentity_descr_; +extern const TTCN_Typedescriptor_t NR__LB__SetupDRB__IE__Type_descr_; +extern const XERdescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_xer_; +extern const TTCN_OERdescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_; +extern const TTCN_Typedescriptor_t NR__CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_descr_; +extern const XERdescriptor_t SET__UL__MESSAGE__REQUEST_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_skipIndicator_descr_; +extern const XERdescriptor_t SET__UL__MESSAGE__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t SET__UL__MESSAGE__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_messageType_descr_; +extern const XERdescriptor_t SET__UL__MESSAGE__REQUEST_spare_xer_; +extern const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_spare_oer_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_spare_descr_; +extern const XERdescriptor_t SET__UL__MESSAGE__REQUEST_usePreconfiguredULMsg_xer_; +extern const TTCN_OERdescriptor_t SET__UL__MESSAGE__REQUEST_usePreconfiguredULMsg_oer_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_usePreconfiguredULMsg_descr_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__REQUEST_descr_; +extern const XERdescriptor_t SET__UL__MESSAGE__RESPONSE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t SET__UL__MESSAGE__RESPONSE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__RESPONSE_skipIndicator_descr_; +extern const XERdescriptor_t SET__UL__MESSAGE__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SET__UL__MESSAGE__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t SET__UL__MESSAGE__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t SET__UL__MESSAGE__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t SET__UL__MESSAGE__RESPONSE_descr_; +extern Erroneous_descriptor_t* template_cs__NR__LB__SetupDRB__IE_err_descr_ptr; +extern const BITSTRING& cs__NR__LB__SetupDRB__IE_p__NRDRB_defval; +extern BITSTRING const_cs__NR__LB__SetupDRB__IE_p__NRDRB_defval; +extern Erroneous_descriptor_t* template_cs__UE__TestLoopModeA__NR__LB__Setup__1DRB_err_descr_ptr; +extern const BITSTRING& cs__UE__TestLoopModeA__NR__LB__Setup__1DRB_p__NRDRB_defval; +extern BITSTRING const_cs__UE__TestLoopModeA__NR__LB__Setup__1DRB_p__NRDRB_defval; +extern const UE__TestLoopModeA__NR__LB__Setup__Type_template& cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling; +extern UE__TestLoopModeA__NR__LB__Setup__Type_template template_cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling; +extern Erroneous_descriptor_t* template_cs__UE__TestLoopModeE__LB__Setup_err_descr_ptr; +extern const BITSTRING& cs__UE__TestLoopModeE__LB__Setup_p__CommTransmitOrReceive_defval; +extern BITSTRING const_cs__UE__TestLoopModeE__LB__Setup_p__CommTransmitOrReceive_defval; +extern const BITSTRING& cs__UE__TestLoopModeE__LB__Setup_p__D2dOrV2x_defval; +extern BITSTRING const_cs__UE__TestLoopModeE__LB__Setup_p__D2dOrV2x_defval; +extern Erroneous_descriptor_t* template_cs__SET__UL__MESSAGE__REQUEST_err_descr_ptr; +extern const SET__UL__MESSAGE__RESPONSE_template& cr__SET__UL__MESSAGE__RESPONSE; +extern SET__UL__MESSAGE__RESPONSE_template template_cr__SET__UL__MESSAGE__RESPONSE; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/Common4G5G_LoopBack.o b/build/Ats_NG_NAS/Common4G5G_LoopBack.o new file mode 100644 index 0000000000000000000000000000000000000000..0b2e73de63ef95036f907d3d8e8aa8fbd334012e Binary files /dev/null and b/build/Ats_NG_NAS/Common4G5G_LoopBack.o differ diff --git a/build/Ats_NG_NAS/CommonDefs.cc b/build/Ats_NG_NAS/CommonDefs.cc new file mode 100644 index 0000000000000000000000000000000000000000..f7303d9f01d9d6cc26feaaa7f424c84432c0dcb2 --- /dev/null +++ b/build/Ats_NG_NAS/CommonDefs.cc @@ -0,0 +1,25268 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "CommonDefs.hh" + +namespace CommonDefs { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char bs_10_bits[] = { 0 }, +bs_4_bits[] = { 32, 75 }, +bs_5_bits[] = { 144, 148 }, +bs_6_bits[] = { 176, 1 }, +bs_0_bits[] = { 8, 128 }, +bs_1_bits[] = { 8, 44 }, +bs_2_bits[] = { 136, 136 }, +bs_7_bits[] = { 136, 235 }, +bs_8_bits[] = { 104, 116 }, +bs_13_bits[] = { 88 }, +bs_9_bits[] = { 88, 161 }, +bs_3_bits[] = { 248, 143 }, +bs_11_bits[] = { 1 }; +static const BITSTRING bs_12(0, NULL), +bs_10(1, bs_10_bits), +bs_4(16, bs_4_bits), +bs_5(16, bs_5_bits), +bs_6(16, bs_6_bits), +bs_0(16, bs_0_bits), +bs_1(16, bs_1_bits), +bs_2(16, bs_2_bits), +bs_7(16, bs_7_bits), +bs_8(16, bs_8_bits), +bs_13(7, bs_13_bits), +bs_9(16, bs_9_bits), +bs_3(16, bs_3_bits), +bs_11(1, bs_11_bits); +static const unsigned char os_2_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_3_octets[] = { 27 }, +os_0_octets[] = { 51, 71, 80, 80, 32, 87, 76, 65, 78, 32, 73, 110, 116, 101, 114, 87, 111, 114, 107, 105, 110, 103 }, +os_1_octets[] = { 255, 230, 101, 165, 197, 202, 52, 82, 8, 84, 8, 171, 238, 206, 75, 11, 129, 63, 211, 55, 135, 63, 44, 209, 226, 154, 233, 27, 214, 200, 225, 79, 222, 99, 15, 129, 149, 104, 142, 190, 70, 95, 9, 129, 106, 142, 235, 27, 131, 149, 61, 211, 98, 218, 227, 176, 109, 91, 118, 216, 227, 229, 48, 135, 234, 100, 90, 9, 1, 127, 217, 156, 60, 172, 187, 70, 223, 28, 214, 29, 169, 196, 53, 248, 153, 67, 223, 156, 195, 74, 222, 227, 26, 214, 226, 79, 161, 144, 61, 83, 119, 141, 148, 151, 66, 117, 13, 212, 157, 233, 206, 158, 67, 10, 212, 72, 161, 69, 117, 216, 156, 22, 2, 85, 8, 129, 64, 32, 5, 85, 221, 201, 203, 203, 158, 195, 31, 131, 63, 134, 106, 91, 163, 144, 104, 14, 171, 17, 40, 46, 174, 68, 245, 231, 101, 143, 107, 36, 122, 12, 84, 162, 16, 87, 247, 50, 120, 89, 92, 35, 80, 119, 242, 103, 165, 144, 151, 232, 206, 180, 237, 228, 154, 22, 253, 179, 109, 36, 133, 234, 49, 7, 213, 157, 195, 96, 112, 13, 84, 136, 190, 185, 185, 108, 36, 175, 68, 223, 73, 139, 193, 53, 120, 140, 20, 168, 187, 236, 100, 165, 239, 100, 218, 28, 86, 8, 254, 179, 18, 215, 183, 56, 211, 226, 207, 180, 199, 74, 116, 88, 163, 239, 155, 60, 121, 243, 205, 52, 135, 64, 223, 227, 48, 120, 12, 1, 255, 204, 203, 75, 139, 148, 104, 164, 16, 168, 17, 87, 221, 156, 150, 23, 2, 127, 166, 111, 14, 126, 89, 163, 197, 53, 210, 55, 173, 145, 194, 159, 188, 198, 31, 3, 42, 209, 29, 124, 140, 190, 19, 2, 213, 29, 214, 55, 7, 42, 123, 166, 197, 181, 199, 96, 218, 182, 237, 177, 199, 202, 97, 15, 212, 200, 180, 18, 2, 255, 179, 56, 121, 89, 118, 141, 190, 57, 172, 59, 83, 136, 107, 241, 50, 135, 191, 57, 134, 149, 189, 198, 53, 173, 196, 159, 67, 32, 122, 166, 239, 27, 41, 46, 132, 234, 27, 169, 59, 211, 157, 60, 134, 21, 168, 145, 66, 138, 235, 177, 56, 44, 4, 170, 17, 2, 128, 64, 10, 171, 187, 147, 151, 151, 61, 134, 63, 6, 127, 12, 212, 183, 71, 32, 208, 29, 86, 34, 80, 93, 92, 137, 235, 206, 203, 30, 214, 72, 244, 24, 169, 68, 32, 175, 238, 100, 240, 178, 184, 70, 160, 239, 228, 207, 75, 33, 47, 209, 157, 105, 219, 201, 52, 45, 251, 102, 218, 73, 11, 212, 98, 15, 171, 59, 134, 192, 224, 26, 169, 17, 125, 115, 114, 216, 73, 94, 137, 190, 147, 23, 130, 106, 241, 24, 41, 81, 119, 216, 201, 75, 222, 201, 180, 56, 172, 17, 253, 102, 37, 175, 110, 113, 167, 197, 159, 105, 142, 148, 232, 177, 71, 223, 54, 120, 243, 231, 154, 105, 14, 129, 191, 198, 96, 240, 24, 3, 255, 153, 150, 151, 23, 40, 209, 72, 33, 80, 34, 175, 187, 57, 44, 46, 4, 255, 76, 222, 28, 252, 179, 71, 138, 107, 164, 111, 91, 35, 133, 63, 121, 140, 62, 6, 85, 162, 58, 249, 25, 124, 38, 5, 170, 59, 172, 110, 14, 84, 247, 77, 139, 107, 142, 193, 181, 109, 219, 99, 143, 148, 194, 31, 169, 145, 104, 36, 5, 255, 102, 112, 242, 178, 237, 27, 124, 115, 88, 118, 167, 16, 215, 226, 101, 15, 126, 115, 13, 43, 123, 140, 107, 91, 137, 62, 134, 64, 245, 77, 222, 54, 82, 93, 9, 212, 55, 82, 119, 167, 58, 121, 12, 43, 81, 34, 133, 21, 215, 98, 112, 88, 9, 84, 34, 5, 0, 128, 21, 87, 119, 39, 47, 46, 123, 12, 126, 12, 254, 25, 169, 110, 142, 65, 160, 58, 172, 68, 160, 186, 185, 19, 215, 157, 150, 61, 172, 145, 232, 49, 82, 136, 65, 95, 220, 201, 225, 101, 112, 141, 65, 223, 201, 158, 150, 66, 95, 163, 58, 211, 183, 146, 104, 91, 246, 205, 180, 146, 23, 168, 196, 31, 86, 119, 13, 129, 192, 53, 82, 34, 250, 230, 229, 176, 146, 189, 19, 125, 38, 47, 4, 213, 226, 48, 82, 162, 239, 177, 146, 151, 189, 147, 104, 113, 88, 35, 250, 204, 75, 94, 220, 227, 79, 139, 62, 211, 29, 41, 209, 98, 143, 190, 108, 241, 231, 207, 52, 210, 29, 3, 127, 140, 193, 224, 48, 7, 255, 51, 45, 46, 46, 81, 162, 144, 66, 160, 69, 95, 118, 114, 88, 92, 9, 254, 153, 188, 57, 249, 102, 143, 20, 215, 72, 222, 182, 71, 10, 126, 243, 24, 124, 12, 171, 68, 117, 242, 50, 248, 76, 11, 84, 119, 88, 220, 28, 169, 238, 155, 22, 215, 29, 131, 106, 219, 182, 199, 31, 41, 132, 63, 83, 34, 208, 72, 11, 254, 204, 225, 229, 101, 218, 54, 248, 230, 176, 237, 78, 33, 175, 196, 202, 30, 252, 230, 26, 86, 247, 24, 214, 183, 18, 125, 12, 129, 234, 155, 188, 108, 164, 186, 19, 168, 110, 164, 239, 78, 116, 242, 24, 86, 162, 69, 10, 43, 174, 196, 224, 176, 18, 168, 68, 10, 1, 0, 42, 174, 238, 78, 94, 92, 246, 24, 252, 25, 252, 51, 82, 221, 28, 131, 64, 117, 88, 137, 65, 117, 114, 39, 175, 59, 44, 123, 89, 35, 208, 98, 165, 16, 130, 191, 185, 147, 194, 202, 225, 26, 131, 191, 147, 61, 44, 132, 191, 70, 117, 167, 111, 36, 208, 183, 237, 155, 105, 36, 47, 81, 136, 62, 172, 238, 27, 3, 128, 106, 164, 69, 245, 205, 203, 97, 37, 122, 38, 250, 76, 94, 9, 171, 196, 96, 165, 69, 223, 99, 37, 47, 123, 38, 208, 226, 176, 71, 245, 152, 150, 189, 185, 198, 159, 22, 125, 166, 58, 83, 162, 197, 31, 124, 217, 227, 207, 158, 105, 164, 58, 6, 255, 25, 131, 192, 96, 15, 254, 102, 90, 92, 92, 163, 69, 32, 133, 64, 138, 190, 236, 228, 176, 184, 19, 253, 51, 120, 115, 242, 205, 30, 41, 174, 145, 189, 108, 142, 20, 253, 230, 48, 248, 25, 86, 136, 235, 228, 101, 240, 152, 22, 168, 238, 177, 184, 57, 83, 221, 54, 45, 174, 59, 6, 213, 183, 109, 142, 62, 83, 8, 126, 166, 69, 160, 144, 23, 253, 153, 195, 202, 203, 180, 109, 241, 205, 97, 218, 156, 67, 95, 137, 148, 61, 249, 204, 52, 173, 238, 49, 173, 110, 36, 250, 25, 3, 213, 55, 120, 217, 73, 116, 39, 80, 221, 73, 222, 156, 233, 228, 48, 173, 68, 138, 20, 87, 93, 137, 193, 96, 37, 80, 136, 20, 2, 0, 85, 93, 220, 156, 188, 185, 236, 49, 248, 51, 248, 102, 165, 186, 57, 6, 128, 234, 177, 18, 130, 234, 228, 79, 94, 118, 88, 246, 178, 71, 160, 197, 74, 33, 5, 127, 115, 39, 133, 149, 194, 53, 7, 127, 38, 122, 89, 9, 126, 140, 235, 78, 222, 73, 161, 111, 219, 54, 210, 72, 94, 163, 16, 125, 89, 220, 54, 7, 0, 213, 72, 139, 235, 155, 150, 194, 74, 244, 77, 244, 152, 188, 19, 87, 136, 193, 74, 139, 190, 198, 74, 94, 246, 77, 161, 197, 96, 143, 235, 49, 45, 123, 115, 141, 62, 44, 251, 76, 116, 167, 69, 138, 62, 249, 179, 199, 159, 60, 211, 72, 116, 13, 254, 51, 7, 128, 192, 31, 252, 204, 180, 184, 185, 70, 138, 65, 10, 129, 21, 125, 217, 201, 97, 112, 39, 250, 102, 240, 231, 229, 154, 60, 83, 93, 35, 122, 217, 28, 41, 251, 204, 97, 240, 50, 173, 17, 215, 200, 203, 225, 48, 45, 81, 221, 99, 112, 114, 167, 186, 108, 91, 92, 118, 13, 171, 110, 219, 28, 124, 166, 16, 253, 76, 139, 65, 32, 47, 251, 51, 135, 149, 151, 104, 219, 227, 154, 195, 181, 56, 134, 191, 19, 40, 123, 243, 152, 105, 91, 220, 99, 90, 220, 73, 244, 50, 7, 170, 110, 241, 178, 146, 232, 78, 161, 186, 147, 189, 57, 211, 200, 97, 90, 137, 20, 40, 174, 187, 19, 130, 192, 74, 161, 16, 40, 4, 0, 170, 187, 185, 57, 121, 115, 216, 99, 240, 103, 240, 205, 75, 116, 114, 13, 1, 213, 98, 37, 5, 213, 200, 158, 188, 236, 177, 237, 100, 143, 65, 138, 148, 66, 10, 254, 230, 79, 11, 43, 132, 106, 14, 254, 76, 244, 178, 18, 253, 25, 214, 157, 188, 147, 66, 223, 182, 109, 164, 144, 189, 70, 32, 250, 179, 184, 108, 14, 1, 170, 145, 23, 215, 55, 45, 132, 149, 232, 155, 233, 49, 120, 38, 175, 17, 130, 149, 23, 125, 140, 148, 189, 236, 155, 67, 138, 193, 31, 214, 98, 90, 246, 231, 26, 124, 89, 246, 152, 233, 78, 139, 20, 125, 243, 103, 143, 62, 121, 166, 144, 232, 27, 252, 102, 15, 1, 128, 63, 249, 153, 105, 113, 114, 141, 20, 130, 21, 2, 42, 251, 179, 146, 194, 224, 79, 244, 205, 225, 207, 203, 52, 120, 166, 186, 70, 245, 178, 56, 83, 247, 152, 195, 224, 101, 90, 35, 175, 145, 151, 194, 96, 90, 163, 186, 198, 224, 229, 79, 116, 216, 182, 184, 236, 27, 86, 221, 182, 56, 249, 76, 33, 250, 153, 22, 130, 64, 95, 246, 103, 15, 43, 46, 209, 183, 199, 53, 135, 106, 113, 13, 126, 38, 80, 247, 231, 48, 210, 183, 184, 198, 181, 184, 147, 232, 100, 15, 84, 221, 227, 101, 37, 208, 157, 67, 117, 39, 122, 115, 167, 144, 194, 181, 18, 40, 81, 93, 118, 39, 5, 128, 149, 66, 32, 80, 8, 1, 85, 119, 114, 114, 242, 231, 176, 199, 224, 207, 225, 154, 150, 232, 228, 26, 3, 170, 196, 74, 11, 171, 145, 61, 121, 217, 99, 218, 201, 30, 131, 21, 40, 132, 21, 253, 204, 158, 22, 87, 8, 212, 29, 252, 153, 233, 100, 37, 250, 51, 173, 59, 121, 38, 133, 191, 108, 219, 73, 33, 122, 140, 65, 245, 103, 112, 216, 28, 3, 85, 34, 47, 174, 110, 91, 9, 43, 209, 55, 210, 98, 240, 77, 94, 35, 5, 42, 46, 251, 25, 41, 123, 217, 54, 135, 21, 130, 63, 172, 196, 181, 237, 206, 52, 248, 179, 237, 49, 210, 157, 22, 40, 251, 230, 207, 30, 124, 243, 77, 33, 208, 55, 248, 204, 30, 3, 0, 127, 243, 50, 210, 226, 229, 26, 41, 4, 42, 4, 85, 247, 103, 37, 133, 192, 159, 233, 155, 195, 159, 150, 104, 241, 77, 116, 141, 235, 100, 112, 167, 239, 49, 135, 192, 202, 180, 71, 95, 35, 47, 132, 192, 181, 71, 117, 141, 193, 202, 158, 233, 177, 109, 113, 216, 54, 173, 187, 108, 113, 242, 152, 67, 245, 50, 45, 4, 128, 191, 236, 206, 30, 86, 93, 163, 111, 142, 107, 14, 212, 226, 26, 252, 76, 161, 239, 206, 97, 165, 111, 113, 141, 107, 113, 39, 208, 200, 30, 169, 187, 198, 202, 75, 161, 58, 134, 234, 78, 244, 231, 79, 33, 133, 106, 36, 80, 162, 186, 236, 78, 11, 1, 42, 132, 64, 160, 16, 2, 170, 238, 228, 229, 229, 207, 97, 143, 193, 159, 195, 53, 45, 209, 200, 52, 7, 85, 136, 148, 23, 87, 34, 122, 243, 178, 199, 181, 146, 61, 6, 42, 81, 8, 43, 251, 153, 60, 44, 174, 17, 168, 59, 249, 51, 210, 200, 75, 244, 103, 90, 118, 242, 77, 11, 126, 217, 182, 146, 66, 245, 24, 131, 234, 206, 225, 176, 56, 6, 170, 68, 95, 92, 220, 182, 18, 87, 162, 111, 164, 197, 224, 154, 188, 70, 10, 84, 93, 246, 50, 82, 247, 178, 109, 14, 43, 4, 127, 89, 137, 107, 219, 156, 105, 241, 103, 218, 99, 165, 58, 44, 81, 247, 205, 158, 60, 249, 230, 154, 67, 160, 111, 241, 152, 60, 6, 0 }; +static const OCTETSTRING os_4(0, NULL), +os_2(1000, os_2_octets), +os_3(1, os_3_octets), +os_0(22, os_0_octets), +os_1(2047, os_1_octets); +static const CHARSTRING cs_7(0, NULL), +cs_4(2, "\r\n"), +cs_10(' '), +cs_8(4, "(*)("), +cs_9(4, ")(*)"), +cs_42('+'), +cs_43(2, ", "), +cs_41('-'), +cs_11(55, "/home/yanng/dev/nas/ttcn/Lib3GPP/Common/CommonDefs.ttcn"), +cs_21('0'), +cs_2(320, "0681222222222211000A9174097538740000A7a054741914afa7c76b9058febebb41e6371ea4aeb7e173d0db5e9683e8e832881dd6e741e4f7f9340789c3e3b50bb40cd7cd6537689a2e83926879590e32cac375903d5d9683c4e578bddc2e83a065b6beec02b540b0986c46abd96eb81ca805a2228ba06835395c8284d2e7d509323eb12065b5099d829ed6a21444451641cca0360b223e8fa72948181c2e5d"), +cs_5(':'), +cs_6(2, ": "), +cs_0(18, "OK"), +cs_25(3, "Apr"), +cs_29(3, "Aug"), +cs_33(3, "Dec"), +cs_17('F'), +cs_23(3, "Feb"), +cs_38(3, "Fri"), +cs_22(3, "Jan"), +cs_28(3, "Jul"), +cs_27(3, "Jun"), +cs_24(3, "Mar"), +cs_26(3, "May"), +cs_34(3, "Mon"), +cs_32(3, "Nov"), +cs_31(3, "Oct"), +cs_39(3, "Sat"), +cs_30(3, "Sep"), +cs_40(3, "Sun"), +cs_44('T'), +cs_1(160, "The quick brown fox jumps over the lazy dog's back. Kaufen Sie Ihrer Frau vier bequeme Pelze. - 0123456789 - THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG'S BACK."), +cs_3(153, "The quick brown fox jumps over the lazy dog's back. Kaufen Sie Ihrer Frau vier bequeme Pelze. 0123456789 - 153 chars - 134 octets for SMS concatenation."), +cs_37(3, "Thu"), +cs_35(3, "Tue"), +cs_36(3, "Wed"), +cs_15(5, "[0-9]"), +cs_12(53, "input character cannot be translated to GSM character"), +cs_14(24, "input string is too long"), +cs_18(20, "invalid bit position"), +cs_16(32, "invalid character for BCD string"), +cs_19(14, "invalid length"), +cs_13(31, "lookup table index out of range"), +cs_20(12, "out of range"); +static const unsigned char module_checksum[] = { 0xab, 0xa6, 0x1b, 0x45, 0xb7, 0x75, 0x5f, 0x11, 0x36, 0x16, 0x9e, 0x88, 0xca, 0x3b, 0xc3, 0x7a }; + +/* Global variable definitions */ + +const TTCN_RAWdescriptor_t B1__Type_raw_ = {1,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B1__Type_xer_ = { {"B1_Type>\n", "B1_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B1__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B1__Type_descr_ = { "@CommonDefs.B1_Type", &BITSTRING_ber_, &B1__Type_raw_, NULL, &B1__Type_xer_, &BITSTRING_json_, &B1__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B2__Type_raw_ = {2,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B2__Type_xer_ = { {"B2_Type>\n", "B2_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B2__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B2__Type_descr_ = { "@CommonDefs.B2_Type", &BITSTRING_ber_, &B2__Type_raw_, NULL, &B2__Type_xer_, &BITSTRING_json_, &B2__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B3__Type_raw_ = {3,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B3__Type_xer_ = { {"B3_Type>\n", "B3_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B3__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B3__Type_descr_ = { "@CommonDefs.B3_Type", &BITSTRING_ber_, &B3__Type_raw_, NULL, &B3__Type_xer_, &BITSTRING_json_, &B3__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B4__Type_raw_ = {4,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B4__Type_xer_ = { {"B4_Type>\n", "B4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B4__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B4__Type_descr_ = { "@CommonDefs.B4_Type", &BITSTRING_ber_, &B4__Type_raw_, NULL, &B4__Type_xer_, &BITSTRING_json_, &B4__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B5__Type_raw_ = {5,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B5__Type_xer_ = { {"B5_Type>\n", "B5_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B5__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B5__Type_descr_ = { "@CommonDefs.B5_Type", &BITSTRING_ber_, &B5__Type_raw_, NULL, &B5__Type_xer_, &BITSTRING_json_, &B5__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B6__Type_raw_ = {6,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B6__Type_xer_ = { {"B6_Type>\n", "B6_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B6__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B6__Type_descr_ = { "@CommonDefs.B6_Type", &BITSTRING_ber_, &B6__Type_raw_, NULL, &B6__Type_xer_, &BITSTRING_json_, &B6__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B7__Type_raw_ = {7,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B7__Type_xer_ = { {"B7_Type>\n", "B7_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B7__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B7__Type_descr_ = { "@CommonDefs.B7_Type", &BITSTRING_ber_, &B7__Type_raw_, NULL, &B7__Type_xer_, &BITSTRING_json_, &B7__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t B7__15__Type_xer_ = { {"B7_15_Type>\n", "B7_15_Type>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B7__15__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B7__15__Type_descr_ = { "@CommonDefs.B7_15_Type", &BITSTRING_ber_, &BITSTRING_raw_, NULL, &B7__15__Type_xer_, &BITSTRING_json_, &B7__15__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B8__Type_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B8__Type_xer_ = { {"B8_Type>\n", "B8_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B8__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B8__Type_descr_ = { "@CommonDefs.B8_Type", &BITSTRING_ber_, &B8__Type_raw_, NULL, &B8__Type_xer_, &BITSTRING_json_, &B8__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B9__Type_raw_ = {9,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B9__Type_xer_ = { {"B9_Type>\n", "B9_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B9__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B9__Type_descr_ = { "@CommonDefs.B9_Type", &BITSTRING_ber_, &B9__Type_raw_, NULL, &B9__Type_xer_, &BITSTRING_json_, &B9__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B10__Type_raw_ = {10,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B10__Type_xer_ = { {"B10_Type>\n", "B10_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B10__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B10__Type_descr_ = { "@CommonDefs.B10_Type", &BITSTRING_ber_, &B10__Type_raw_, NULL, &B10__Type_xer_, &BITSTRING_json_, &B10__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B11__Type_raw_ = {11,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B11__Type_xer_ = { {"B11_Type>\n", "B11_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B11__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B11__Type_descr_ = { "@CommonDefs.B11_Type", &BITSTRING_ber_, &B11__Type_raw_, NULL, &B11__Type_xer_, &BITSTRING_json_, &B11__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B12__Type_raw_ = {12,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B12__Type_xer_ = { {"B12_Type>\n", "B12_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B12__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B12__Type_descr_ = { "@CommonDefs.B12_Type", &BITSTRING_ber_, &B12__Type_raw_, NULL, &B12__Type_xer_, &BITSTRING_json_, &B12__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B13__Type_raw_ = {13,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B13__Type_xer_ = { {"B13_Type>\n", "B13_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B13__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B13__Type_descr_ = { "@CommonDefs.B13_Type", &BITSTRING_ber_, &B13__Type_raw_, NULL, &B13__Type_xer_, &BITSTRING_json_, &B13__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B14__Type_raw_ = {14,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B14__Type_xer_ = { {"B14_Type>\n", "B14_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B14__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B14__Type_descr_ = { "@CommonDefs.B14_Type", &BITSTRING_ber_, &B14__Type_raw_, NULL, &B14__Type_xer_, &BITSTRING_json_, &B14__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B15__Type_raw_ = {15,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B15__Type_xer_ = { {"B15_Type>\n", "B15_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B15__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B15__Type_descr_ = { "@CommonDefs.B15_Type", &BITSTRING_ber_, &B15__Type_raw_, NULL, &B15__Type_xer_, &BITSTRING_json_, &B15__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B16__Type_raw_ = {16,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B16__Type_xer_ = { {"B16_Type>\n", "B16_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B16__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B16__Type_descr_ = { "@CommonDefs.B16_Type", &BITSTRING_ber_, &B16__Type_raw_, NULL, &B16__Type_xer_, &BITSTRING_json_, &B16__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B18__Type_raw_ = {18,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B18__Type_xer_ = { {"B18_Type>\n", "B18_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B18__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B18__Type_descr_ = { "@CommonDefs.B18_Type", &BITSTRING_ber_, &B18__Type_raw_, NULL, &B18__Type_xer_, &BITSTRING_json_, &B18__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B20__Type_raw_ = {20,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B20__Type_xer_ = { {"B20_Type>\n", "B20_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B20__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B20__Type_descr_ = { "@CommonDefs.B20_Type", &BITSTRING_ber_, &B20__Type_raw_, NULL, &B20__Type_xer_, &BITSTRING_json_, &B20__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B22__Type_raw_ = {22,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B22__Type_xer_ = { {"B22_Type>\n", "B22_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B22__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B22__Type_descr_ = { "@CommonDefs.B22_Type", &BITSTRING_ber_, &B22__Type_raw_, NULL, &B22__Type_xer_, &BITSTRING_json_, &B22__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B24__Type_raw_ = {24,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B24__Type_xer_ = { {"B24_Type>\n", "B24_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B24__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B24__Type_descr_ = { "@CommonDefs.B24_Type", &BITSTRING_ber_, &B24__Type_raw_, NULL, &B24__Type_xer_, &BITSTRING_json_, &B24__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B27__Type_raw_ = {27,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B27__Type_xer_ = { {"B27_Type>\n", "B27_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B27__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B27__Type_descr_ = { "@CommonDefs.B27_Type", &BITSTRING_ber_, &B27__Type_raw_, NULL, &B27__Type_xer_, &BITSTRING_json_, &B27__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B28__Type_raw_ = {28,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B28__Type_xer_ = { {"B28_Type>\n", "B28_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B28__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B28__Type_descr_ = { "@CommonDefs.B28_Type", &BITSTRING_ber_, &B28__Type_raw_, NULL, &B28__Type_xer_, &BITSTRING_json_, &B28__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B32__Type_raw_ = {32,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B32__Type_xer_ = { {"B32_Type>\n", "B32_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B32__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B32__Type_descr_ = { "@CommonDefs.B32_Type", &BITSTRING_ber_, &B32__Type_raw_, NULL, &B32__Type_xer_, &BITSTRING_json_, &B32__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B36__Type_raw_ = {36,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B36__Type_xer_ = { {"B36_Type>\n", "B36_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B36__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B36__Type_descr_ = { "@CommonDefs.B36_Type", &BITSTRING_ber_, &B36__Type_raw_, NULL, &B36__Type_xer_, &BITSTRING_json_, &B36__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B40__Type_raw_ = {40,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B40__Type_xer_ = { {"B40_Type>\n", "B40_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B40__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B40__Type_descr_ = { "@CommonDefs.B40_Type", &BITSTRING_ber_, &B40__Type_raw_, NULL, &B40__Type_xer_, &BITSTRING_json_, &B40__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B41__Type_raw_ = {41,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B41__Type_xer_ = { {"B41_Type>\n", "B41_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B41__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B41__Type_descr_ = { "@CommonDefs.B41_Type", &BITSTRING_ber_, &B41__Type_raw_, NULL, &B41__Type_xer_, &BITSTRING_json_, &B41__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B42__Type_raw_ = {42,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B42__Type_xer_ = { {"B42_Type>\n", "B42_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B42__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B42__Type_descr_ = { "@CommonDefs.B42_Type", &BITSTRING_ber_, &B42__Type_raw_, NULL, &B42__Type_xer_, &BITSTRING_json_, &B42__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B43__Type_raw_ = {43,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B43__Type_xer_ = { {"B43_Type>\n", "B43_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B43__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B43__Type_descr_ = { "@CommonDefs.B43_Type", &BITSTRING_ber_, &B43__Type_raw_, NULL, &B43__Type_xer_, &BITSTRING_json_, &B43__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B45__Type_raw_ = {45,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B45__Type_xer_ = { {"B45_Type>\n", "B45_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B45__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B45__Type_descr_ = { "@CommonDefs.B45_Type", &BITSTRING_ber_, &B45__Type_raw_, NULL, &B45__Type_xer_, &BITSTRING_json_, &B45__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B47__Type_raw_ = {47,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B47__Type_xer_ = { {"B47_Type>\n", "B47_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B47__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B47__Type_descr_ = { "@CommonDefs.B47_Type", &BITSTRING_ber_, &B47__Type_raw_, NULL, &B47__Type_xer_, &BITSTRING_json_, &B47__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B48__Type_raw_ = {48,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B48__Type_xer_ = { {"B48_Type>\n", "B48_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B48__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B48__Type_descr_ = { "@CommonDefs.B48_Type", &BITSTRING_ber_, &B48__Type_raw_, NULL, &B48__Type_xer_, &BITSTRING_json_, &B48__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B56__Type_raw_ = {56,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B56__Type_xer_ = { {"B56_Type>\n", "B56_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B56__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B56__Type_descr_ = { "@CommonDefs.B56_Type", &BITSTRING_ber_, &B56__Type_raw_, NULL, &B56__Type_xer_, &BITSTRING_json_, &B56__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B64__Type_raw_ = {64,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B64__Type_xer_ = { {"B64_Type>\n", "B64_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B64__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B64__Type_descr_ = { "@CommonDefs.B64_Type", &BITSTRING_ber_, &B64__Type_raw_, NULL, &B64__Type_xer_, &BITSTRING_json_, &B64__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B80__Type_raw_ = {80,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B80__Type_xer_ = { {"B80_Type>\n", "B80_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B80__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B80__Type_descr_ = { "@CommonDefs.B80_Type", &BITSTRING_ber_, &B80__Type_raw_, NULL, &B80__Type_xer_, &BITSTRING_json_, &B80__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B112__Type_raw_ = {112,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B112__Type_xer_ = { {"B112_Type>\n", "B112_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B112__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B112__Type_descr_ = { "@CommonDefs.B112_Type", &BITSTRING_ber_, &B112__Type_raw_, NULL, &B112__Type_xer_, &BITSTRING_json_, &B112__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B128__Type_raw_ = {128,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B128__Type_xer_ = { {"B128_Type>\n", "B128_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B128__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B128__Type_descr_ = { "@CommonDefs.B128_Type", &BITSTRING_ber_, &B128__Type_raw_, NULL, &B128__Type_xer_, &BITSTRING_json_, &B128__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B160__Type_raw_ = {160,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B160__Type_xer_ = { {"B160_Type>\n", "B160_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B160__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B160__Type_descr_ = { "@CommonDefs.B160_Type", &BITSTRING_ber_, &B160__Type_raw_, NULL, &B160__Type_xer_, &BITSTRING_json_, &B160__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B184__Type_raw_ = {184,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B184__Type_xer_ = { {"B184_Type>\n", "B184_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B184__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B184__Type_descr_ = { "@CommonDefs.B184_Type", &BITSTRING_ber_, &B184__Type_raw_, NULL, &B184__Type_xer_, &BITSTRING_json_, &B184__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B192__Type_raw_ = {192,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B192__Type_xer_ = { {"B192_Type>\n", "B192_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B192__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B192__Type_descr_ = { "@CommonDefs.B192_Type", &BITSTRING_ber_, &B192__Type_raw_, NULL, &B192__Type_xer_, &BITSTRING_json_, &B192__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t B256__Type_raw_ = {256,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t B256__Type_xer_ = { {"B256_Type>\n", "B256_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B256__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B256__Type_descr_ = { "@CommonDefs.B256_Type", &BITSTRING_ber_, &B256__Type_raw_, NULL, &B256__Type_xer_, &BITSTRING_json_, &B256__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t B32__128__Type_xer_ = { {"B32_128_Type>\n", "B32_128_Type>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B32__128__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B32__128__Type_descr_ = { "@CommonDefs.B32_128_Type", &BITSTRING_ber_, &BITSTRING_raw_, NULL, &B32__128__Type_xer_, &BITSTRING_json_, &B32__128__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t B128__Key__Type_xer_ = { {"B128_Key_Type>\n", "B128_Key_Type>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B128__Key__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B128__Key__Type_descr_ = { "@CommonDefs.B128_Key_Type", &BITSTRING_ber_, &B128__Type_raw_, NULL, &B128__Key__Type_xer_, &BITSTRING_json_, &B128__Key__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t B256__Key__Type_xer_ = { {"B256_Key_Type>\n", "B256_Key_Type>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B256__Key__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B256__Key__Type_descr_ = { "@CommonDefs.B256_Key_Type", &BITSTRING_ber_, &B256__Type_raw_, NULL, &B256__Key__Type_xer_, &BITSTRING_json_, &B256__Key__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O1__Type_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O1__Type_xer_ = { {"O1_Type>\n", "O1_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O1__Type_oer_ext_arr_[0] = {}; +const int O1__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O1__Type_oer_ = { -1, TRUE, 1, FALSE, 0, 0, O1__Type_oer_ext_arr_, 0, O1__Type_oer_p_}; +const TTCN_Typedescriptor_t O1__Type_descr_ = { "@CommonDefs.O1_Type", &OCTETSTRING_ber_, &O1__Type_raw_, &OCTETSTRING_text_, &O1__Type_xer_, &OCTETSTRING_json_, &O1__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O2__Type_raw_ = {16,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O2__Type_xer_ = { {"O2_Type>\n", "O2_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O2__Type_oer_ext_arr_[0] = {}; +const int O2__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O2__Type_oer_ = { -1, TRUE, 2, FALSE, 0, 0, O2__Type_oer_ext_arr_, 0, O2__Type_oer_p_}; +const TTCN_Typedescriptor_t O2__Type_descr_ = { "@CommonDefs.O2_Type", &OCTETSTRING_ber_, &O2__Type_raw_, &OCTETSTRING_text_, &O2__Type_xer_, &OCTETSTRING_json_, &O2__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O3__Type_raw_ = {24,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O3__Type_xer_ = { {"O3_Type>\n", "O3_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O3__Type_oer_ext_arr_[0] = {}; +const int O3__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O3__Type_oer_ = { -1, TRUE, 3, FALSE, 0, 0, O3__Type_oer_ext_arr_, 0, O3__Type_oer_p_}; +const TTCN_Typedescriptor_t O3__Type_descr_ = { "@CommonDefs.O3_Type", &OCTETSTRING_ber_, &O3__Type_raw_, &OCTETSTRING_text_, &O3__Type_xer_, &OCTETSTRING_json_, &O3__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O4__Type_raw_ = {32,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O4__Type_xer_ = { {"O4_Type>\n", "O4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O4__Type_oer_ext_arr_[0] = {}; +const int O4__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O4__Type_oer_ = { -1, TRUE, 4, FALSE, 0, 0, O4__Type_oer_ext_arr_, 0, O4__Type_oer_p_}; +const TTCN_Typedescriptor_t O4__Type_descr_ = { "@CommonDefs.O4_Type", &OCTETSTRING_ber_, &O4__Type_raw_, &OCTETSTRING_text_, &O4__Type_xer_, &OCTETSTRING_json_, &O4__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O5__Type_raw_ = {40,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O5__Type_xer_ = { {"O5_Type>\n", "O5_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O5__Type_oer_ext_arr_[0] = {}; +const int O5__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O5__Type_oer_ = { -1, TRUE, 5, FALSE, 0, 0, O5__Type_oer_ext_arr_, 0, O5__Type_oer_p_}; +const TTCN_Typedescriptor_t O5__Type_descr_ = { "@CommonDefs.O5_Type", &OCTETSTRING_ber_, &O5__Type_raw_, &OCTETSTRING_text_, &O5__Type_xer_, &OCTETSTRING_json_, &O5__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O6__Type_raw_ = {48,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O6__Type_xer_ = { {"O6_Type>\n", "O6_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O6__Type_oer_ext_arr_[0] = {}; +const int O6__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O6__Type_oer_ = { -1, TRUE, 6, FALSE, 0, 0, O6__Type_oer_ext_arr_, 0, O6__Type_oer_p_}; +const TTCN_Typedescriptor_t O6__Type_descr_ = { "@CommonDefs.O6_Type", &OCTETSTRING_ber_, &O6__Type_raw_, &OCTETSTRING_text_, &O6__Type_xer_, &OCTETSTRING_json_, &O6__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O8__Type_raw_ = {64,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O8__Type_xer_ = { {"O8_Type>\n", "O8_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O8__Type_oer_ext_arr_[0] = {}; +const int O8__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O8__Type_oer_ = { -1, TRUE, 8, FALSE, 0, 0, O8__Type_oer_ext_arr_, 0, O8__Type_oer_p_}; +const TTCN_Typedescriptor_t O8__Type_descr_ = { "@CommonDefs.O8_Type", &OCTETSTRING_ber_, &O8__Type_raw_, &OCTETSTRING_text_, &O8__Type_xer_, &OCTETSTRING_json_, &O8__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O9__Type_raw_ = {72,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O9__Type_xer_ = { {"O9_Type>\n", "O9_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O9__Type_oer_ext_arr_[0] = {}; +const int O9__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O9__Type_oer_ = { -1, TRUE, 9, FALSE, 0, 0, O9__Type_oer_ext_arr_, 0, O9__Type_oer_p_}; +const TTCN_Typedescriptor_t O9__Type_descr_ = { "@CommonDefs.O9_Type", &OCTETSTRING_ber_, &O9__Type_raw_, &OCTETSTRING_text_, &O9__Type_xer_, &OCTETSTRING_json_, &O9__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O10__Type_raw_ = {80,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O10__Type_xer_ = { {"O10_Type>\n", "O10_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O10__Type_oer_ext_arr_[0] = {}; +const int O10__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O10__Type_oer_ = { -1, TRUE, 10, FALSE, 0, 0, O10__Type_oer_ext_arr_, 0, O10__Type_oer_p_}; +const TTCN_Typedescriptor_t O10__Type_descr_ = { "@CommonDefs.O10_Type", &OCTETSTRING_ber_, &O10__Type_raw_, &OCTETSTRING_text_, &O10__Type_xer_, &OCTETSTRING_json_, &O10__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O13__Type_raw_ = {104,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O13__Type_xer_ = { {"O13_Type>\n", "O13_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O13__Type_oer_ext_arr_[0] = {}; +const int O13__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O13__Type_oer_ = { -1, TRUE, 13, FALSE, 0, 0, O13__Type_oer_ext_arr_, 0, O13__Type_oer_p_}; +const TTCN_Typedescriptor_t O13__Type_descr_ = { "@CommonDefs.O13_Type", &OCTETSTRING_ber_, &O13__Type_raw_, &OCTETSTRING_text_, &O13__Type_xer_, &OCTETSTRING_json_, &O13__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O14__Type_raw_ = {112,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O14__Type_xer_ = { {"O14_Type>\n", "O14_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O14__Type_oer_ext_arr_[0] = {}; +const int O14__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O14__Type_oer_ = { -1, TRUE, 14, FALSE, 0, 0, O14__Type_oer_ext_arr_, 0, O14__Type_oer_p_}; +const TTCN_Typedescriptor_t O14__Type_descr_ = { "@CommonDefs.O14_Type", &OCTETSTRING_ber_, &O14__Type_raw_, &OCTETSTRING_text_, &O14__Type_xer_, &OCTETSTRING_json_, &O14__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O15__Type_raw_ = {120,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O15__Type_xer_ = { {"O15_Type>\n", "O15_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O15__Type_oer_ext_arr_[0] = {}; +const int O15__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O15__Type_oer_ = { -1, TRUE, 15, FALSE, 0, 0, O15__Type_oer_ext_arr_, 0, O15__Type_oer_p_}; +const TTCN_Typedescriptor_t O15__Type_descr_ = { "@CommonDefs.O15_Type", &OCTETSTRING_ber_, &O15__Type_raw_, &OCTETSTRING_text_, &O15__Type_xer_, &OCTETSTRING_json_, &O15__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O16__Type_raw_ = {128,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O16__Type_xer_ = { {"O16_Type>\n", "O16_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O16__Type_oer_ext_arr_[0] = {}; +const int O16__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O16__Type_oer_ = { -1, TRUE, 16, FALSE, 0, 0, O16__Type_oer_ext_arr_, 0, O16__Type_oer_p_}; +const TTCN_Typedescriptor_t O16__Type_descr_ = { "@CommonDefs.O16_Type", &OCTETSTRING_ber_, &O16__Type_raw_, &OCTETSTRING_text_, &O16__Type_xer_, &OCTETSTRING_json_, &O16__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O28__Type_raw_ = {224,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O28__Type_xer_ = { {"O28_Type>\n", "O28_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O28__Type_oer_ext_arr_[0] = {}; +const int O28__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O28__Type_oer_ = { -1, TRUE, 28, FALSE, 0, 0, O28__Type_oer_ext_arr_, 0, O28__Type_oer_p_}; +const TTCN_Typedescriptor_t O28__Type_descr_ = { "@CommonDefs.O28_Type", &OCTETSTRING_ber_, &O28__Type_raw_, &OCTETSTRING_text_, &O28__Type_xer_, &OCTETSTRING_json_, &O28__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O32__Type_raw_ = {256,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O32__Type_xer_ = { {"O32_Type>\n", "O32_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O32__Type_oer_ext_arr_[0] = {}; +const int O32__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O32__Type_oer_ = { -1, TRUE, 32, FALSE, 0, 0, O32__Type_oer_ext_arr_, 0, O32__Type_oer_p_}; +const TTCN_Typedescriptor_t O32__Type_descr_ = { "@CommonDefs.O32_Type", &OCTETSTRING_ber_, &O32__Type_raw_, &OCTETSTRING_text_, &O32__Type_xer_, &OCTETSTRING_json_, &O32__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t O43__Type_raw_ = {344,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t O43__Type_xer_ = { {"O43_Type>\n", "O43_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int O43__Type_oer_ext_arr_[0] = {}; +const int O43__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t O43__Type_oer_ = { -1, TRUE, 43, FALSE, 0, 0, O43__Type_oer_ext_arr_, 0, O43__Type_oer_p_}; +const TTCN_Typedescriptor_t O43__Type_descr_ = { "@CommonDefs.O43_Type", &OCTETSTRING_ber_, &O43__Type_raw_, &OCTETSTRING_text_, &O43__Type_xer_, &OCTETSTRING_json_, &O43__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t H1__Type_raw_ = {4,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t H1__Type_xer_ = { {"H1_Type>\n", "H1_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t H1__Type_descr_ = { "@CommonDefs.H1_Type", NULL, &H1__Type_raw_, NULL, &H1__Type_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t H2__Type_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t H2__Type_xer_ = { {"H2_Type>\n", "H2_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t H2__Type_descr_ = { "@CommonDefs.H2_Type", NULL, &H2__Type_raw_, NULL, &H2__Type_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t H4__Type_raw_ = {16,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t H4__Type_xer_ = { {"H4_Type>\n", "H4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t H4__Type_descr_ = { "@CommonDefs.H4_Type", NULL, &H4__Type_raw_, NULL, &H4__Type_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t H12__Type_raw_ = {48,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t H12__Type_xer_ = { {"H12_Type>\n", "H12_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t H12__Type_descr_ = { "@CommonDefs.H12_Type", NULL, &H12__Type_raw_, NULL, &H12__Type_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t H14__Type_raw_ = {56,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t H14__Type_xer_ = { {"H14_Type>\n", "H14_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t H14__Type_descr_ = { "@CommonDefs.H14_Type", NULL, &H14__Type_raw_, NULL, &H14__Type_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Octet__Type_xer_ = { {"Octet_Type>\n", "Octet_Type>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Octet__Type_oer_ext_arr_[0] = {}; +const int Octet__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Octet__Type_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Octet__Type_oer_ext_arr_, 0, Octet__Type_oer_p_}; +const TTCN_Typedescriptor_t Octet__Type_descr_ = { "@CommonDefs.Octet_Type", &OCTETSTRING_ber_, &O1__Type_raw_, &OCTETSTRING_text_, &Octet__Type_xer_, &OCTETSTRING_json_, &Octet__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t HalfOctet__Type_raw_ = {4,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t HalfOctet__Type_xer_ = { {"HalfOctet_Type>\n", "HalfOctet_Type>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t HalfOctet__Type_descr_ = { "@CommonDefs.HalfOctet_Type", NULL, &HalfOctet__Type_raw_, NULL, &HalfOctet__Type_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for B8__List__Type +const TTCN_Typedescriptor_t B8__List__Type_descr_ = { "@CommonDefs.B8_List_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &B8__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t B8__List__Type_0_xer_ = { {"B8_Type>\n", "B8_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t B8__List__Type_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t B8__List__Type_0_descr_ = { "@CommonDefs.B8_List_Type.", &BITSTRING_ber_, &B8__Type_raw_, NULL, &B8__List__Type_0_xer_, &BITSTRING_json_, &B8__List__Type_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Null__Type_xer_ = { {"Null_Type>\n", "Null_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Null__Type_oer_ext_arr_[0] = {}; +const int Null__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Null__Type_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Null__Type_oer_ext_arr_, 0, Null__Type_oer_p_}; +const TTCN_Typedescriptor_t Null__Type_descr_ = { "@CommonDefs.Null_Type", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &Null__Type_xer_, &BOOLEAN_json_, &Null__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Dummy__Type_xer_ = { {"Dummy_Type>\n", "Dummy_Type>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Dummy__Type_oer_ext_arr_[0] = {}; +const int Dummy__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Dummy__Type_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Dummy__Type_oer_ext_arr_, 0, Dummy__Type_oer_p_}; +const TTCN_Typedescriptor_t Dummy__Type_descr_ = { "@CommonDefs.Dummy_Type", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &Dummy__Type_xer_, &BOOLEAN_json_, &Dummy__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +INTEGER const_tsc__UInt7Max; +const INTEGER& tsc__UInt7Max = const_tsc__UInt7Max; +INTEGER const_tsc__UInt8Max; +const INTEGER& tsc__UInt8Max = const_tsc__UInt8Max; +INTEGER const_tsc__UInt16Max; +const INTEGER& tsc__UInt16Max = const_tsc__UInt16Max; +INTEGER const_tsc__UInt20Max; +const INTEGER& tsc__UInt20Max = const_tsc__UInt20Max; +INTEGER const_tsc__UInt24Max; +const INTEGER& tsc__UInt24Max = const_tsc__UInt24Max; +INTEGER const_tsc__UInt32Max; +const INTEGER& tsc__UInt32Max = const_tsc__UInt32Max; +const XERdescriptor_t UInt__Type_xer_ = { {"UInt_Type>\n", "UInt_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt__Type_descr_ = { "@CommonDefs.UInt_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &UInt__Type_xer_, &INTEGER_json_, &UInt__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UInt8__Type_xer_ = { {"UInt8_Type>\n", "UInt8_Type>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt8__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt8__Type_descr_ = { "@CommonDefs.UInt8_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &UInt8__Type_xer_, &INTEGER_json_, &UInt8__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UInt16__Type_xer_ = { {"UInt16_Type>\n", "UInt16_Type>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt16__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt16__Type_descr_ = { "@CommonDefs.UInt16_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &UInt16__Type_xer_, &INTEGER_json_, &UInt16__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UInt20__Type_xer_ = { {"UInt20_Type>\n", "UInt20_Type>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt20__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt20__Type_descr_ = { "@CommonDefs.UInt20_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &UInt20__Type_xer_, &INTEGER_json_, &UInt20__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UInt24__Type_xer_ = { {"UInt24_Type>\n", "UInt24_Type>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt24__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt24__Type_descr_ = { "@CommonDefs.UInt24_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &UInt24__Type_xer_, &INTEGER_json_, &UInt24__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UInt32__Type_xer_ = { {"UInt32_Type>\n", "UInt32_Type>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt32__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt32__Type_descr_ = { "@CommonDefs.UInt32_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &UInt32__Type_xer_, &INTEGER_json_, &UInt32__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopMode__Type_xer_ = { {"UE_TestLoopMode_Type>\n", "UE_TestLoopMode_Type>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__TestLoopMode__Type_oer_ext_arr_[0] = {}; +const int UE__TestLoopMode__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__TestLoopMode__Type_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__TestLoopMode__Type_oer_ext_arr_, 0, UE__TestLoopMode__Type_oer_p_}; +const TTCN_Typedescriptor_t UE__TestLoopMode__Type_descr_ = { "@CommonDefs.UE_TestLoopMode_Type", &OCTETSTRING_ber_, &O1__Type_raw_, &OCTETSTRING_text_, &UE__TestLoopMode__Type_xer_, &OCTETSTRING_json_, &UE__TestLoopMode__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Char1__Type_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Char1__Type_xer_ = { {"Char1_Type>\n", "Char1_Type>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t Char1__Type_descr_ = { "@CommonDefs.Char1_Type", NULL, &Char1__Type_raw_, &CHARSTRING_text_, &Char1__Type_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Char3__Type_raw_ = {24,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Char3__Type_xer_ = { {"Char3_Type>\n", "Char3_Type>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t Char3__Type_descr_ = { "@CommonDefs.Char3_Type", NULL, &Char3__Type_raw_, &CHARSTRING_text_, &Char3__Type_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Char1List__Type +const TTCN_Typedescriptor_t Char1List__Type_descr_ = { "@CommonDefs.Char1List_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &Char1__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Char1List__Type_0_xer_ = { {"Char1_Type>\n", "Char1_Type>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t Char1List__Type_0_descr_ = { "@CommonDefs.Char1List_Type.", NULL, &Char1__Type_raw_, &CHARSTRING_text_, &Char1List__Type_0_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CharStringList__Type +const TTCN_Typedescriptor_t CharStringList__Type_descr_ = { "@CommonDefs.CharStringList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CHARSTRING_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CharStringList__Type_0_xer_ = { {"CHARSTRING>\n", "CHARSTRING>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t CharStringList__Type_0_descr_ = { "@CommonDefs.CharStringList_Type.", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &CharStringList__Type_0_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SetOfCharString__Type +const TTCN_Typedescriptor_t SetOfCharString__Type_descr_ = { "@CommonDefs.SetOfCharString_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CHARSTRING_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SetOfCharString__Type_0_xer_ = { {"CHARSTRING>\n", "CHARSTRING>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t SetOfCharString__Type_0_descr_ = { "@CommonDefs.SetOfCharString_Type.", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &SetOfCharString__Type_0_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for OctetStringList__Type +const TTCN_Typedescriptor_t OctetStringList__Type_descr_ = { "@CommonDefs.OctetStringList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &OCTETSTRING_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t OctetStringList__Type_0_xer_ = { {"OCTETSTRING>\n", "OCTETSTRING>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int OctetStringList__Type_0_oer_ext_arr_[0] = {}; +const int OctetStringList__Type_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t OctetStringList__Type_0_oer_ = { -1, TRUE, -1, FALSE, 0, 0, OctetStringList__Type_0_oer_ext_arr_, 0, OctetStringList__Type_0_oer_p_}; +const TTCN_Typedescriptor_t OctetStringList__Type_0_descr_ = { "@CommonDefs.OctetStringList_Type.", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OctetStringList__Type_0_xer_, &OCTETSTRING_json_, &OctetStringList__Type_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for BitStringList__Type +const TTCN_Typedescriptor_t BitStringList__Type_descr_ = { "@CommonDefs.BitStringList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &BITSTRING_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BitStringList__Type_0_xer_ = { {"BITSTRING>\n", "BITSTRING>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BitStringList__Type_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BitStringList__Type_0_descr_ = { "@CommonDefs.BitStringList_Type.", &BITSTRING_ber_, &BITSTRING_raw_, NULL, &BitStringList__Type_0_xer_, &BITSTRING_json_, &BitStringList__Type_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IntegerList__Type +const TTCN_Typedescriptor_t IntegerList__Type_descr_ = { "@CommonDefs.IntegerList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &INTEGER_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntegerList__Type_0_xer_ = { {"INTEGER>\n", "INTEGER>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IntegerList__Type_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IntegerList__Type_0_descr_ = { "@CommonDefs.IntegerList_Type.INTEGER", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &IntegerList__Type_0_xer_, &INTEGER_json_, &IntegerList__Type_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NameValue__Type_Name_xer_ = { {"Name>\n", "Name>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NameValue__Type_Name_descr_ = { "@CommonDefs.NameValue_Type.Name", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &NameValue__Type_Name_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NameValue__Type_Value_xer_ = { {"Value>\n", "Value>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NameValue__Type_Value_descr_ = { "@CommonDefs.NameValue_Type.Value", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &NameValue__Type_Value_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NameValue__Type +const TTCN_Typedescriptor_t NameValue__Type_descr_ = { "@CommonDefs.NameValue_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NameValueList__Type +const TTCN_Typedescriptor_t NameValueList__Type_descr_ = { "@CommonDefs.NameValueList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NameValue__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +INTEGER const_tsc__DirectionUL; +const INTEGER& tsc__DirectionUL = const_tsc__DirectionUL; +INTEGER const_tsc__DirectionDL; +const INTEGER& tsc__DirectionDL = const_tsc__DirectionDL; +OCTETSTRING const_tsc__WLAN__SSID__AP1; +const OCTETSTRING& tsc__WLAN__SSID__AP1 = const_tsc__WLAN__SSID__AP1; +const XERdescriptor_t MAC__Direction__Type_xer_ = { {"MAC_Direction_Type>\n", "MAC_Direction_Type>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MAC__Direction__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MAC__Direction__Type_descr_ = { "@CommonDefs.MAC_Direction_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &MAC__Direction__Type_xer_, &INTEGER_json_, &MAC__Direction__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IndicationAndControlMode__Type +const TTCN_Typedescriptor_t IndicationAndControlMode__Type_descr_ = { "@CommonDefs.IndicationAndControlMode_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SinglePLMN__TestedType +const TTCN_Typedescriptor_t SinglePLMN__TestedType_descr_ = { "@CommonDefs.SinglePLMN_TestedType", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EUTRA__ATTACH__TESTED__Type +const TTCN_Typedescriptor_t EUTRA__ATTACH__TESTED__Type_descr_ = { "@CommonDefs.EUTRA_ATTACH_TESTED_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EUTRA__FDD__TDD__Mode__Type +const TTCN_Typedescriptor_t EUTRA__FDD__TDD__Mode__Type_descr_ = { "@CommonDefs.EUTRA_FDD_TDD_Mode_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UTRAN__FDD__TDD__Type +const TTCN_Typedescriptor_t UTRAN__FDD__TDD__Type_descr_ = { "@CommonDefs.UTRAN_FDD_TDD_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RATComb__Tested__Type +const TTCN_Typedescriptor_t RATComb__Tested__Type_descr_ = { "@CommonDefs.RATComb_Tested_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RRCConnectionReleaseRequired__Type +const TTCN_Typedescriptor_t RRCConnectionReleaseRequired__Type_descr_ = { "@CommonDefs.RRCConnectionReleaseRequired_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NTN__Satellite__Type +const TTCN_Typedescriptor_t NTN__Satellite__Type_descr_ = { "@CommonDefs.NTN_Satellite_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NGC__CellId__Type +const TTCN_Typedescriptor_t NGC__CellId__Type_descr_ = { "@CommonDefs.NGC_CellId_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__CellId__Type +const TTCN_Typedescriptor_t NR__CellId__Type_descr_ = { "@CommonDefs.NR_CellId_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__CellIdList__Type +const TTCN_Typedescriptor_t NR__CellIdList__Type_descr_ = { "@CommonDefs.NR_CellIdList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NR__CellId__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EUTRA__CellId__Type +const TTCN_Typedescriptor_t EUTRA__CellId__Type_descr_ = { "@CommonDefs.EUTRA_CellId_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EUTRA__CellIdList__Type +const TTCN_Typedescriptor_t EUTRA__CellIdList__Type_descr_ = { "@CommonDefs.EUTRA_CellIdList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &EUTRA__CellId__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UTRAN__CellId__Type +const TTCN_Typedescriptor_t UTRAN__CellId__Type_descr_ = { "@CommonDefs.UTRAN_CellId_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UTRAN__CellIdList__Type +const TTCN_Typedescriptor_t UTRAN__CellIdList__Type_descr_ = { "@CommonDefs.UTRAN_CellIdList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &UTRAN__CellId__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for WLAN__CellId__Type +const TTCN_Typedescriptor_t WLAN__CellId__Type_descr_ = { "@CommonDefs.WLAN_CellId_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeltaValues__Type_DeltaNRf1_xer_ = { {"DeltaNRf1>\n", "DeltaNRf1>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DeltaValues__Type_DeltaNRf1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DeltaValues__Type_DeltaNRf1_descr_ = { "@CommonDefs.DeltaValues_Type.DeltaNRf1", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &DeltaValues__Type_DeltaNRf1_xer_, &INTEGER_json_, &DeltaValues__Type_DeltaNRf1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeltaValues__Type_DeltaNRf2_xer_ = { {"DeltaNRf2>\n", "DeltaNRf2>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DeltaValues__Type_DeltaNRf2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DeltaValues__Type_DeltaNRf2_descr_ = { "@CommonDefs.DeltaValues_Type.DeltaNRf2", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &DeltaValues__Type_DeltaNRf2_xer_, &INTEGER_json_, &DeltaValues__Type_DeltaNRf2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeltaValues__Type_DeltaNRf3_xer_ = { {"DeltaNRf3>\n", "DeltaNRf3>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DeltaValues__Type_DeltaNRf3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DeltaValues__Type_DeltaNRf3_descr_ = { "@CommonDefs.DeltaValues_Type.DeltaNRf3", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &DeltaValues__Type_DeltaNRf3_xer_, &INTEGER_json_, &DeltaValues__Type_DeltaNRf3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeltaValues__Type_DeltaNRf4_xer_ = { {"DeltaNRf4>\n", "DeltaNRf4>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DeltaValues__Type_DeltaNRf4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DeltaValues__Type_DeltaNRf4_descr_ = { "@CommonDefs.DeltaValues_Type.DeltaNRf4", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &DeltaValues__Type_DeltaNRf4_xer_, &INTEGER_json_, &DeltaValues__Type_DeltaNRf4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DeltaValues__Type +const TTCN_Typedescriptor_t DeltaValues__Type_descr_ = { "@CommonDefs.DeltaValues_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__NR__DeltaValues__Type +const TTCN_Typedescriptor_t UE__NR__DeltaValues__Type_descr_ = { "@CommonDefs.UE_NR_DeltaValues_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AnyCellId__Type +const TTCN_Typedescriptor_t AnyCellId__Type_descr_ = { "@CommonDefs.AnyCellId_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IP__DrbId__Type_xer_ = { {"IP_DrbId_Type>\n", "IP_DrbId_Type>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IP__DrbId__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IP__DrbId__Type_descr_ = { "@CommonDefs.IP_DrbId_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &IP__DrbId__Type_xer_, &INTEGER_json_, &IP__DrbId__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IP__EUTRA__DrbInfo__Type +const TTCN_Typedescriptor_t IP__EUTRA__DrbInfo__Type_descr_ = { "@CommonDefs.IP_EUTRA_DrbInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IP__EUTRA__DrbInfo__Type_DrbId_xer_ = { {"DrbId>\n", "DrbId>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IP__EUTRA__DrbInfo__Type_DrbId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IP__EUTRA__DrbInfo__Type_DrbId_descr_ = { "@CommonDefs.IP_EUTRA_DrbInfo_Type.DrbId", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &IP__EUTRA__DrbInfo__Type_DrbId_xer_, &INTEGER_json_, &IP__EUTRA__DrbInfo__Type_DrbId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_CellId_xer_ = { {"CellId>\n", "CellId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_CellId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_CellId_descr_ = { "@CommonDefs.IP_UTRAN_GERAN_DrbInfo_Type.CellId", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &IP__UTRAN__GERAN__DrbInfo__Type_CellId_xer_, &INTEGER_json_, &IP__UTRAN__GERAN__DrbInfo__Type_CellId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IP__UTRAN__GERAN__DrbInfo__Type +const TTCN_Typedescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_descr_ = { "@CommonDefs.IP_UTRAN_GERAN_DrbInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_DrbId_xer_ = { {"DrbId>\n", "DrbId>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_DrbId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_DrbId_descr_ = { "@CommonDefs.IP_UTRAN_GERAN_DrbInfo_Type.DrbId", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &IP__UTRAN__GERAN__DrbInfo__Type_DrbId_xer_, &INTEGER_json_, &IP__UTRAN__GERAN__DrbInfo__Type_DrbId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IP__WLAN__DrbInfo__Type_CellId_xer_ = { {"CellId>\n", "CellId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IP__WLAN__DrbInfo__Type_CellId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IP__WLAN__DrbInfo__Type_CellId_descr_ = { "@CommonDefs.IP_WLAN_DrbInfo_Type.CellId", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &IP__WLAN__DrbInfo__Type_CellId_xer_, &INTEGER_json_, &IP__WLAN__DrbInfo__Type_CellId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IP__WLAN__DrbInfo__Type +const TTCN_Typedescriptor_t IP__WLAN__DrbInfo__Type_descr_ = { "@CommonDefs.IP_WLAN_DrbInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDN__Index__Type +const TTCN_Typedescriptor_t PDN__Index__Type_descr_ = { "@CommonDefs.PDN_Index_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IP__ePDG__IPsecTunnelInfo__Type +const TTCN_Typedescriptor_t IP__ePDG__IPsecTunnelInfo__Type_descr_ = { "@CommonDefs.IP_ePDG_IPsecTunnelInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QosFlow__Identification__Type_PDU__SessionId_xer_ = { {"PDU_SessionId>\n", "PDU_SessionId>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QosFlow__Identification__Type_PDU__SessionId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QosFlow__Identification__Type_PDU__SessionId_descr_ = { "@CommonDefs.QosFlow_Identification_Type.PDU_SessionId", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &QosFlow__Identification__Type_PDU__SessionId_xer_, &INTEGER_json_, &QosFlow__Identification__Type_PDU__SessionId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QosFlow__Identification__Type_QFI_xer_ = { {"QFI>\n", "QFI>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QosFlow__Identification__Type_QFI_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QosFlow__Identification__Type_QFI_descr_ = { "@CommonDefs.QosFlow_Identification_Type.QFI", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &QosFlow__Identification__Type_QFI_xer_, &INTEGER_json_, &QosFlow__Identification__Type_QFI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QosFlow__Identification__Type +const TTCN_Typedescriptor_t QosFlow__Identification__Type_descr_ = { "@CommonDefs.QosFlow_Identification_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IP__NR__QosFlowInfo__Type +const TTCN_Typedescriptor_t IP__NR__QosFlowInfo__Type_descr_ = { "@CommonDefs.IP_NR_QosFlowInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IP__EUTRA__QosFlowInfo__Type +const TTCN_Typedescriptor_t IP__EUTRA__QosFlowInfo__Type_descr_ = { "@CommonDefs.IP_EUTRA_QosFlowInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IP__NR__DrbInfo__Type +const TTCN_Typedescriptor_t IP__NR__DrbInfo__Type_descr_ = { "@CommonDefs.IP_NR_DrbInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IP__NR__DrbInfo__Type_DrbId_xer_ = { {"DrbId>\n", "DrbId>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IP__NR__DrbInfo__Type_DrbId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IP__NR__DrbInfo__Type_DrbId_descr_ = { "@CommonDefs.IP_NR_DrbInfo_Type.DrbId", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &IP__NR__DrbInfo__Type_DrbId_xer_, &INTEGER_json_, &IP__NR__DrbInfo__Type_DrbId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IP__DrbInfo__Type +const TTCN_Typedescriptor_t IP__DrbInfo__Type_descr_ = { "@CommonDefs.IP_DrbInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for GPRS__CipheringAlgorithm__Type +const TTCN_Typedescriptor_t GPRS__CipheringAlgorithm__Type_descr_ = { "@CommonDefs.GPRS_CipheringAlgorithm_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MessageAuthenticationCode_xer_ = { {"MessageAuthenticationCode>\n", "MessageAuthenticationCode>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MessageAuthenticationCode_oer_ext_arr_[0] = {}; +const int MessageAuthenticationCode_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MessageAuthenticationCode_oer_ = { -1, TRUE, 4, FALSE, 0, 0, MessageAuthenticationCode_oer_ext_arr_, 0, MessageAuthenticationCode_oer_p_}; +const TTCN_Typedescriptor_t MessageAuthenticationCode_descr_ = { "@CommonDefs.MessageAuthenticationCode", &OCTETSTRING_ber_, &O4__Type_raw_, &OCTETSTRING_text_, &MessageAuthenticationCode_xer_, &OCTETSTRING_json_, &MessageAuthenticationCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NasCount__Type_xer_ = { {"NasCount_Type>\n", "NasCount_Type>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NasCount__Type_oer_ext_arr_[0] = {}; +const int NasCount__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NasCount__Type_oer_ = { -1, TRUE, 4, FALSE, 0, 0, NasCount__Type_oer_ext_arr_, 0, NasCount__Type_oer_p_}; +const TTCN_Typedescriptor_t NasCount__Type_descr_ = { "@CommonDefs.NasCount_Type", &OCTETSTRING_ber_, &O4__Type_raw_, &OCTETSTRING_text_, &NasCount__Type_xer_, &OCTETSTRING_json_, &NasCount__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PdcpCountValue__Type_xer_ = { {"PdcpCountValue_Type>\n", "PdcpCountValue_Type>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PdcpCountValue__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PdcpCountValue__Type_descr_ = { "@CommonDefs.PdcpCountValue_Type", &BITSTRING_ber_, &B32__Type_raw_, NULL, &PdcpCountValue__Type_xer_, &BITSTRING_json_, &PdcpCountValue__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IPCAN__RAN__Type +const TTCN_Typedescriptor_t IPCAN__RAN__Type_descr_ = { "@CommonDefs.IPCAN_RAN_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IRAT__ConfiguredPTCs__Type +const TTCN_Typedescriptor_t IRAT__ConfiguredPTCs__Type_descr_ = { "@CommonDefs.IRAT_ConfiguredPTCs_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +FLOAT const_tsc__GuardTimePreamble; +const FLOAT& tsc__GuardTimePreamble = const_tsc__GuardTimePreamble; +FLOAT const_tsc__GuardTimePreamble__12min; +const FLOAT& tsc__GuardTimePreamble__12min = const_tsc__GuardTimePreamble__12min; +INTEGER const_tsc__NoOfPDNs; +const INTEGER& tsc__NoOfPDNs = const_tsc__NoOfPDNs; +INTEGER const_tsc__NoOfIMSPDNs; +const INTEGER& tsc__NoOfIMSPDNs = const_tsc__NoOfIMSPDNs; +INTEGER const_tsc__Index__IMS1; +const INTEGER& tsc__Index__IMS1 = const_tsc__Index__IMS1; +INTEGER const_tsc__Index__IMS2; +const INTEGER& tsc__Index__IMS2 = const_tsc__Index__IMS2; +INTEGER const_tsc__EUTRA__MaxEARFCN; +const INTEGER& tsc__EUTRA__MaxEARFCN = const_tsc__EUTRA__MaxEARFCN; +INTEGER const_tsc__Max__NR__PDCP__SDU__size; +const INTEGER& tsc__Max__NR__PDCP__SDU__size = const_tsc__Max__NR__PDCP__SDU__size; +INTEGER const_tsc__Max__LTE__PDCP__SDU__size; +const INTEGER& tsc__Max__LTE__PDCP__SDU__size = const_tsc__Max__LTE__PDCP__SDU__size; +const XERdescriptor_t RNTI__Value__Type_xer_ = { {"RNTI_Value_Type>\n", "RNTI_Value_Type>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RNTI__Value__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RNTI__Value__Type_descr_ = { "@CommonDefs.RNTI_Value_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &RNTI__Value__Type_xer_, &INTEGER_json_, &RNTI__Value__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RNTI__B16__Type_xer_ = { {"RNTI_B16_Type>\n", "RNTI_B16_Type>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RNTI__B16__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RNTI__B16__Type_descr_ = { "@CommonDefs.RNTI_B16_Type", &BITSTRING_ber_, &B16__Type_raw_, NULL, &RNTI__B16__Type_xer_, &BITSTRING_json_, &RNTI__B16__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +INTEGER const_tsc__C__RNTI__Value1; +const INTEGER& tsc__C__RNTI__Value1 = const_tsc__C__RNTI__Value1; +INTEGER const_tsc__C__RNTI__Value2; +const INTEGER& tsc__C__RNTI__Value2 = const_tsc__C__RNTI__Value2; +INTEGER const_tsc__C__RNTI__Value3; +const INTEGER& tsc__C__RNTI__Value3 = const_tsc__C__RNTI__Value3; +INTEGER const_tsc__C__RNTI__Value4; +const INTEGER& tsc__C__RNTI__Value4 = const_tsc__C__RNTI__Value4; +INTEGER const_tsc__C__RNTI__Value5; +const INTEGER& tsc__C__RNTI__Value5 = const_tsc__C__RNTI__Value5; +INTEGER const_tsc__C__RNTI__Value6; +const INTEGER& tsc__C__RNTI__Value6 = const_tsc__C__RNTI__Value6; +INTEGER const_tsc__C__RNTI__Value7; +const INTEGER& tsc__C__RNTI__Value7 = const_tsc__C__RNTI__Value7; +INTEGER const_tsc__C__RNTI__Value8; +const INTEGER& tsc__C__RNTI__Value8 = const_tsc__C__RNTI__Value8; +INTEGER const_tsc__C__RNTI__Value9; +const INTEGER& tsc__C__RNTI__Value9 = const_tsc__C__RNTI__Value9; +INTEGER const_tsc__C__RNTI__Value10; +const INTEGER& tsc__C__RNTI__Value10 = const_tsc__C__RNTI__Value10; +BITSTRING const_tsc__C__RNTI__Def; +const BITSTRING& tsc__C__RNTI__Def = const_tsc__C__RNTI__Def; +BITSTRING const_tsc__C__RNTI__Def2; +const BITSTRING& tsc__C__RNTI__Def2 = const_tsc__C__RNTI__Def2; +BITSTRING const_tsc__C__RNTI__Def3; +const BITSTRING& tsc__C__RNTI__Def3 = const_tsc__C__RNTI__Def3; +BITSTRING const_tsc__C__RNTI__Def4; +const BITSTRING& tsc__C__RNTI__Def4 = const_tsc__C__RNTI__Def4; +BITSTRING const_tsc__C__RNTI__Def5; +const BITSTRING& tsc__C__RNTI__Def5 = const_tsc__C__RNTI__Def5; +BITSTRING const_tsc__C__RNTI__Def6; +const BITSTRING& tsc__C__RNTI__Def6 = const_tsc__C__RNTI__Def6; +BITSTRING const_tsc__C__RNTI__Def7; +const BITSTRING& tsc__C__RNTI__Def7 = const_tsc__C__RNTI__Def7; +BITSTRING const_tsc__C__RNTI__Def8; +const BITSTRING& tsc__C__RNTI__Def8 = const_tsc__C__RNTI__Def8; +BITSTRING const_tsc__C__RNTI__Def9; +const BITSTRING& tsc__C__RNTI__Def9 = const_tsc__C__RNTI__Def9; +BITSTRING const_tsc__C__RNTI__Def10; +const BITSTRING& tsc__C__RNTI__Def10 = const_tsc__C__RNTI__Def10; +OCTETSTRING_template template_cr__Octet10__Any; +const OCTETSTRING_template& cr__Octet10__Any = template_cr__Octet10__Any; +OCTETSTRING const_tsc__RandomPRBS; +const OCTETSTRING& tsc__RandomPRBS = const_tsc__RandomPRBS; +CHARSTRING const_tsc__AT__ResultOK; +const CHARSTRING& tsc__AT__ResultOK = const_tsc__AT__ResultOK; +CHARSTRING const_tsc__Fox; +const CHARSTRING& tsc__Fox = const_tsc__Fox; +CHARSTRING const_tsc__Fox__PDU; +const CHARSTRING& tsc__Fox__PDU = const_tsc__Fox__PDU; +CHARSTRING const_tsc__FoxShort; +const CHARSTRING& tsc__FoxShort = const_tsc__FoxShort; +CHARSTRING const_tsc__CarriageReturnLineFeed; +const CHARSTRING& tsc__CarriageReturnLineFeed = const_tsc__CarriageReturnLineFeed; +OCTETSTRING const_tsc__Oct1000__0; +const OCTETSTRING& tsc__Oct1000__0 = const_tsc__Oct1000__0; +// No XER for VerdictCtrl__Type +const TTCN_Typedescriptor_t VerdictCtrl__Type_descr_ = { "@CommonDefs.VerdictCtrl_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for HarqErrorHandling__Type +const TTCN_Typedescriptor_t HarqErrorHandling__Type_descr_ = { "@CommonDefs.HarqErrorHandling_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LineNo__Type_xer_ = { {"LineNo_Type>\n", "LineNo_Type>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t LineNo__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t LineNo__Type_descr_ = { "@CommonDefs.LineNo_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &LineNo__Type_xer_, &INTEGER_json_, &LineNo__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +INTEGER const_f__StringFindChar_p__StartIndex_defval; +const INTEGER& f__StringFindChar_p__StartIndex_defval = const_f__StringFindChar_p__StartIndex_defval; +CHARSTRING const_f__StringSplitLines_p__Delimitor_defval; +const CHARSTRING& f__StringSplitLines_p__Delimitor_defval = const_f__StringSplitLines_p__Delimitor_defval; +CHARSTRING const_f__StringJoin_p__JoinString_defval; +const CHARSTRING& f__StringJoin_p__JoinString_defval = const_f__StringJoin_p__JoinString_defval; +// No XER for Gsm7BitPacking__Type +const TTCN_Typedescriptor_t Gsm7BitPacking__Type_descr_ = { "@CommonDefs.Gsm7BitPacking_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +VALUE_ARRAY, 95, 32> const_tsc__Gsm7BitLookup; +const VALUE_ARRAY, 95, 32>& tsc__Gsm7BitLookup = const_tsc__Gsm7BitLookup; +INTEGER const_f__CharPacking__IA5toGsm7Bit_p__NumFillbits_defval; +const INTEGER& f__CharPacking__IA5toGsm7Bit_p__NumFillbits_defval = const_f__CharPacking__IA5toGsm7Bit_p__NumFillbits_defval; +INTEGER const_tsc__KDF__HMAC__SHA__256; +const INTEGER& tsc__KDF__HMAC__SHA__256 = const_tsc__KDF__HMAC__SHA__256; +INTEGER const_tsc__KDF__Spare3; +const INTEGER& tsc__KDF__Spare3 = const_tsc__KDF__Spare3; +const XERdescriptor_t KDF__Type_xer_ = { {"KDF_Type>\n", "KDF_Type>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t KDF__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t KDF__Type_descr_ = { "@CommonDefs.KDF_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &KDF__Type_xer_, &INTEGER_json_, &KDF__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Struct__tm__Type_tm__sec_xer_ = { {"tm_sec>\n", "tm_sec>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Struct__tm__Type_tm__sec_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Struct__tm__Type_tm__sec_descr_ = { "@CommonDefs.Struct_tm_Type.tm_sec", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Struct__tm__Type_tm__sec_xer_, &INTEGER_json_, &Struct__tm__Type_tm__sec_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Struct__tm__Type_tm__min_xer_ = { {"tm_min>\n", "tm_min>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Struct__tm__Type_tm__min_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Struct__tm__Type_tm__min_descr_ = { "@CommonDefs.Struct_tm_Type.tm_min", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Struct__tm__Type_tm__min_xer_, &INTEGER_json_, &Struct__tm__Type_tm__min_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Struct__tm__Type_tm__hour_xer_ = { {"tm_hour>\n", "tm_hour>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Struct__tm__Type_tm__hour_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Struct__tm__Type_tm__hour_descr_ = { "@CommonDefs.Struct_tm_Type.tm_hour", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Struct__tm__Type_tm__hour_xer_, &INTEGER_json_, &Struct__tm__Type_tm__hour_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Struct__tm__Type_tm__mday_xer_ = { {"tm_mday>\n", "tm_mday>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Struct__tm__Type_tm__mday_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Struct__tm__Type_tm__mday_descr_ = { "@CommonDefs.Struct_tm_Type.tm_mday", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Struct__tm__Type_tm__mday_xer_, &INTEGER_json_, &Struct__tm__Type_tm__mday_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Struct__tm__Type_tm__mon_xer_ = { {"tm_mon>\n", "tm_mon>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Struct__tm__Type_tm__mon_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Struct__tm__Type_tm__mon_descr_ = { "@CommonDefs.Struct_tm_Type.tm_mon", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Struct__tm__Type_tm__mon_xer_, &INTEGER_json_, &Struct__tm__Type_tm__mon_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Struct__tm__Type_tm__year_xer_ = { {"tm_year>\n", "tm_year>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Struct__tm__Type_tm__year_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Struct__tm__Type_tm__year_descr_ = { "@CommonDefs.Struct_tm_Type.tm_year", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Struct__tm__Type_tm__year_xer_, &INTEGER_json_, &Struct__tm__Type_tm__year_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Struct__tm__Type_tm__wday_xer_ = { {"tm_wday>\n", "tm_wday>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Struct__tm__Type_tm__wday_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Struct__tm__Type_tm__wday_descr_ = { "@CommonDefs.Struct_tm_Type.tm_wday", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Struct__tm__Type_tm__wday_xer_, &INTEGER_json_, &Struct__tm__Type_tm__wday_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Struct__tm__Type_tm__yday_xer_ = { {"tm_yday>\n", "tm_yday>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Struct__tm__Type_tm__yday_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Struct__tm__Type_tm__yday_descr_ = { "@CommonDefs.Struct_tm_Type.tm_yday", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Struct__tm__Type_tm__yday_xer_, &INTEGER_json_, &Struct__tm__Type_tm__yday_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Struct__tm__Type_tm__isdst_xer_ = { {"tm_isdst>\n", "tm_isdst>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Struct__tm__Type_tm__isdst_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Struct__tm__Type_tm__isdst_descr_ = { "@CommonDefs.Struct_tm_Type.tm_isdst", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Struct__tm__Type_tm__isdst_xer_, &INTEGER_json_, &Struct__tm__Type_tm__isdst_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Struct__tm__Type +const TTCN_Typedescriptor_t Struct__tm__Type_descr_ = { "@CommonDefs.Struct_tm_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("CommonDefs", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_CommonDefs(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "AnyCellId_Type")) { + ((const AnyCellId__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AnyCellId_Type template")) { + ((const AnyCellId__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B10_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B10_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B112_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B112_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B11_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B11_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B128_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B128_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B12_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B12_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B13_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B13_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B14_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B14_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B15_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B15_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B160_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B160_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B16_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B16_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B184_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B184_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B18_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B18_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B192_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B192_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B1_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B1_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B20_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B20_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B22_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B22_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B24_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B24_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B256_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B256_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B27_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B27_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B28_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B28_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B2_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B2_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B32_128_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B32_128_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B32_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B32_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B36_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B36_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B3_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B3_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B40_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B40_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B41_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B41_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B42_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B42_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B43_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B43_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B45_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B45_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B47_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B47_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B48_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B48_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B4_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B4_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B56_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B56_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B5_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B5_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B64_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B64_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B6_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B6_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B7_15_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B7_15_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B7_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B7_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B80_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B80_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B8_List_Type")) { + ((const B8__List__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B8_List_Type template")) { + ((const B8__List__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B8_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B8_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B9_Type")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "B9_Type template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BitStringList_Type")) { + ((const BitStringList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BitStringList_Type template")) { + ((const BitStringList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Char1List_Type")) { + ((const Char1List__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Char1List_Type template")) { + ((const Char1List__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Char1_Type")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Char1_Type template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Char3_Type")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Char3_Type template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CharStringList_Type")) { + ((const CharStringList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CharStringList_Type template")) { + ((const CharStringList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DeltaValues_Type")) { + ((const DeltaValues__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DeltaValues_Type template")) { + ((const DeltaValues__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Dummy_Type")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Dummy_Type template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_ATTACH_TESTED_Type")) { + ((const EUTRA__ATTACH__TESTED__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_ATTACH_TESTED_Type template")) { + ((const EUTRA__ATTACH__TESTED__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_CellIdList_Type")) { + ((const EUTRA__CellIdList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_CellIdList_Type template")) { + ((const EUTRA__CellIdList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_CellId_Type")) { + ((const EUTRA__CellId__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_CellId_Type template")) { + ((const EUTRA__CellId__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_FDD_TDD_Mode_Type")) { + ((const EUTRA__FDD__TDD__Mode__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EUTRA_FDD_TDD_Mode_Type template")) { + ((const EUTRA__FDD__TDD__Mode__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GPRS_CipheringAlgorithm_Type")) { + ((const GPRS__CipheringAlgorithm__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GPRS_CipheringAlgorithm_Type template")) { + ((const GPRS__CipheringAlgorithm__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Gsm7BitPacking_Type")) { + ((const Gsm7BitPacking__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Gsm7BitPacking_Type template")) { + ((const Gsm7BitPacking__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H12_Type")) { + ((const HEXSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H12_Type template")) { + ((const HEXSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H14_Type")) { + ((const HEXSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H14_Type template")) { + ((const HEXSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H1_Type")) { + ((const HEXSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H1_Type template")) { + ((const HEXSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H2_Type")) { + ((const HEXSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H2_Type template")) { + ((const HEXSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H4_Type")) { + ((const HEXSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "H4_Type template")) { + ((const HEXSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HalfOctet_Type")) { + ((const HEXSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HalfOctet_Type template")) { + ((const HEXSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HarqErrorHandling_Type")) { + ((const HarqErrorHandling__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HarqErrorHandling_Type template")) { + ((const HarqErrorHandling__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IPCAN_RAN_Type")) { + ((const IPCAN__RAN__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IPCAN_RAN_Type template")) { + ((const IPCAN__RAN__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_DrbId_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_DrbId_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_DrbInfo_Type")) { + ((const IP__DrbInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_DrbInfo_Type template")) { + ((const IP__DrbInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_EUTRA_DrbInfo_Type")) { + ((const IP__EUTRA__DrbInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_EUTRA_DrbInfo_Type template")) { + ((const IP__EUTRA__DrbInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_EUTRA_QosFlowInfo_Type")) { + ((const IP__EUTRA__QosFlowInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_EUTRA_QosFlowInfo_Type template")) { + ((const IP__EUTRA__QosFlowInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_NR_DrbInfo_Type")) { + ((const IP__NR__DrbInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_NR_DrbInfo_Type template")) { + ((const IP__NR__DrbInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_NR_QosFlowInfo_Type")) { + ((const IP__NR__QosFlowInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_NR_QosFlowInfo_Type template")) { + ((const IP__NR__QosFlowInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_UTRAN_GERAN_DrbInfo_Type")) { + ((const IP__UTRAN__GERAN__DrbInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_UTRAN_GERAN_DrbInfo_Type template")) { + ((const IP__UTRAN__GERAN__DrbInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_WLAN_DrbInfo_Type")) { + ((const IP__WLAN__DrbInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_WLAN_DrbInfo_Type template")) { + ((const IP__WLAN__DrbInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_ePDG_IPsecTunnelInfo_Type")) { + ((const IP__ePDG__IPsecTunnelInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IP_ePDG_IPsecTunnelInfo_Type template")) { + ((const IP__ePDG__IPsecTunnelInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IRAT_ConfiguredPTCs_Type")) { + ((const IRAT__ConfiguredPTCs__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IRAT_ConfiguredPTCs_Type template")) { + ((const IRAT__ConfiguredPTCs__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IndicationAndControlMode_Type")) { + ((const IndicationAndControlMode__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IndicationAndControlMode_Type template")) { + ((const IndicationAndControlMode__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IntegerList_Type")) { + ((const IntegerList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IntegerList_Type template")) { + ((const IntegerList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "KDF_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "KDF_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LineNo_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LineNo_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MAC_Direction_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MAC_Direction_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NGC_CellId_Type")) { + ((const NGC__CellId__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NGC_CellId_Type template")) { + ((const NGC__CellId__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CellIdList_Type")) { + ((const NR__CellIdList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CellIdList_Type template")) { + ((const NR__CellIdList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CellId_Type")) { + ((const NR__CellId__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CellId_Type template")) { + ((const NR__CellId__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NTN_Satellite_Type")) { + ((const NTN__Satellite__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NTN_Satellite_Type template")) { + ((const NTN__Satellite__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NameValueList_Type")) { + ((const NameValueList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NameValueList_Type template")) { + ((const NameValueList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NameValue_Type")) { + ((const NameValue__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NameValue_Type template")) { + ((const NameValue__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Null_Type")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Null_Type template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O10_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O10_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O13_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O13_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O14_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O14_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O15_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O15_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O16_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O16_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O1_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O1_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O28_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O28_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O2_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O2_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O32_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O32_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O3_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O3_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O43_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O43_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O4_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O4_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O5_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O5_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O6_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O6_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O8_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O8_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O9_Type")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "O9_Type template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "OctetStringList_Type")) { + ((const OctetStringList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "OctetStringList_Type template")) { + ((const OctetStringList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_Index_Type")) { + ((const PDN__Index__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_Index_Type template")) { + ((const PDN__Index__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QosFlow_Identification_Type")) { + ((const QosFlow__Identification__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QosFlow_Identification_Type template")) { + ((const QosFlow__Identification__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RATComb_Tested_Type")) { + ((const RATComb__Tested__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RATComb_Tested_Type template")) { + ((const RATComb__Tested__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RRCConnectionReleaseRequired_Type")) { + ((const RRCConnectionReleaseRequired__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RRCConnectionReleaseRequired_Type template")) { + ((const RRCConnectionReleaseRequired__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SetOfCharString_Type")) { + ((const SetOfCharString__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SetOfCharString_Type template")) { + ((const SetOfCharString__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SinglePLMN_TestedType")) { + ((const SinglePLMN__TestedType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SinglePLMN_TestedType template")) { + ((const SinglePLMN__TestedType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Struct_tm_Type")) { + ((const Struct__tm__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Struct_tm_Type template")) { + ((const Struct__tm__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_NR_DeltaValues_Type")) { + ((const UE__NR__DeltaValues__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_NR_DeltaValues_Type template")) { + ((const UE__NR__DeltaValues__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt16_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt16_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt20_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt20_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt24_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt24_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt32_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt32_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt8_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt8_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UTRAN_CellIdList_Type")) { + ((const UTRAN__CellIdList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UTRAN_CellIdList_Type template")) { + ((const UTRAN__CellIdList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UTRAN_CellId_Type")) { + ((const UTRAN__CellId__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UTRAN_CellId_Type template")) { + ((const UTRAN__CellId__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UTRAN_FDD_TDD_Type")) { + ((const UTRAN__FDD__TDD__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UTRAN_FDD_TDD_Type template")) { + ((const UTRAN__FDD__TDD__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "VerdictCtrl_Type")) { + ((const VerdictCtrl__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "VerdictCtrl_Type template")) { + ((const VerdictCtrl__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WLAN_CellId_Type")) { + ((const WLAN__CellId__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WLAN_CellId_Type template")) { + ((const WLAN__CellId__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_CommonDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "AnyCellId_Type")) { + ((AnyCellId__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AnyCellId_Type template")) { + ((AnyCellId__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B10_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B10_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B112_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B112_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B11_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B11_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B128_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B128_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B12_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B12_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B13_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B13_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B14_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B14_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B15_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B15_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B160_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B160_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B16_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B16_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B184_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B184_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B18_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B18_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B192_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B192_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B1_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B1_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B20_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B20_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B22_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B22_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B24_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B24_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B256_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B256_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B27_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B27_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B28_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B28_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B2_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B2_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B32_128_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B32_128_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B32_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B32_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B36_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B36_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B3_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B3_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B40_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B40_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B41_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B41_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B42_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B42_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B43_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B43_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B45_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B45_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B47_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B47_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B48_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B48_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B4_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B4_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B56_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B56_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B5_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B5_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B64_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B64_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B6_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B6_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B7_15_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B7_15_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B7_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B7_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B80_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B80_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B8_List_Type")) { + ((B8__List__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B8_List_Type template")) { + ((B8__List__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B8_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B8_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B9_Type")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "B9_Type template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BitStringList_Type")) { + ((BitStringList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BitStringList_Type template")) { + ((BitStringList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Char1List_Type")) { + ((Char1List__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Char1List_Type template")) { + ((Char1List__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Char1_Type")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Char1_Type template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Char3_Type")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Char3_Type template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CharStringList_Type")) { + ((CharStringList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CharStringList_Type template")) { + ((CharStringList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DeltaValues_Type")) { + ((DeltaValues__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DeltaValues_Type template")) { + ((DeltaValues__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Dummy_Type")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Dummy_Type template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_ATTACH_TESTED_Type")) { + ((EUTRA__ATTACH__TESTED__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_ATTACH_TESTED_Type template")) { + ((EUTRA__ATTACH__TESTED__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_CellIdList_Type")) { + ((EUTRA__CellIdList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_CellIdList_Type template")) { + ((EUTRA__CellIdList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_CellId_Type")) { + ((EUTRA__CellId__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_CellId_Type template")) { + ((EUTRA__CellId__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_FDD_TDD_Mode_Type")) { + ((EUTRA__FDD__TDD__Mode__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EUTRA_FDD_TDD_Mode_Type template")) { + ((EUTRA__FDD__TDD__Mode__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GPRS_CipheringAlgorithm_Type")) { + ((GPRS__CipheringAlgorithm__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GPRS_CipheringAlgorithm_Type template")) { + ((GPRS__CipheringAlgorithm__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Gsm7BitPacking_Type")) { + ((Gsm7BitPacking__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Gsm7BitPacking_Type template")) { + ((Gsm7BitPacking__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H12_Type")) { + ((HEXSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H12_Type template")) { + ((HEXSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H14_Type")) { + ((HEXSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H14_Type template")) { + ((HEXSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H1_Type")) { + ((HEXSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H1_Type template")) { + ((HEXSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H2_Type")) { + ((HEXSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H2_Type template")) { + ((HEXSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H4_Type")) { + ((HEXSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "H4_Type template")) { + ((HEXSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HalfOctet_Type")) { + ((HEXSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HalfOctet_Type template")) { + ((HEXSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HarqErrorHandling_Type")) { + ((HarqErrorHandling__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HarqErrorHandling_Type template")) { + ((HarqErrorHandling__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IPCAN_RAN_Type")) { + ((IPCAN__RAN__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IPCAN_RAN_Type template")) { + ((IPCAN__RAN__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_DrbId_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_DrbId_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_DrbInfo_Type")) { + ((IP__DrbInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_DrbInfo_Type template")) { + ((IP__DrbInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_EUTRA_DrbInfo_Type")) { + ((IP__EUTRA__DrbInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_EUTRA_DrbInfo_Type template")) { + ((IP__EUTRA__DrbInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_EUTRA_QosFlowInfo_Type")) { + ((IP__EUTRA__QosFlowInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_EUTRA_QosFlowInfo_Type template")) { + ((IP__EUTRA__QosFlowInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_NR_DrbInfo_Type")) { + ((IP__NR__DrbInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_NR_DrbInfo_Type template")) { + ((IP__NR__DrbInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_NR_QosFlowInfo_Type")) { + ((IP__NR__QosFlowInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_NR_QosFlowInfo_Type template")) { + ((IP__NR__QosFlowInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_UTRAN_GERAN_DrbInfo_Type")) { + ((IP__UTRAN__GERAN__DrbInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_UTRAN_GERAN_DrbInfo_Type template")) { + ((IP__UTRAN__GERAN__DrbInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_WLAN_DrbInfo_Type")) { + ((IP__WLAN__DrbInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_WLAN_DrbInfo_Type template")) { + ((IP__WLAN__DrbInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_ePDG_IPsecTunnelInfo_Type")) { + ((IP__ePDG__IPsecTunnelInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IP_ePDG_IPsecTunnelInfo_Type template")) { + ((IP__ePDG__IPsecTunnelInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IRAT_ConfiguredPTCs_Type")) { + ((IRAT__ConfiguredPTCs__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IRAT_ConfiguredPTCs_Type template")) { + ((IRAT__ConfiguredPTCs__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IndicationAndControlMode_Type")) { + ((IndicationAndControlMode__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IndicationAndControlMode_Type template")) { + ((IndicationAndControlMode__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IntegerList_Type")) { + ((IntegerList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IntegerList_Type template")) { + ((IntegerList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "KDF_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "KDF_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LineNo_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LineNo_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MAC_Direction_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MAC_Direction_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NGC_CellId_Type")) { + ((NGC__CellId__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NGC_CellId_Type template")) { + ((NGC__CellId__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CellIdList_Type")) { + ((NR__CellIdList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CellIdList_Type template")) { + ((NR__CellIdList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CellId_Type")) { + ((NR__CellId__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CellId_Type template")) { + ((NR__CellId__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NTN_Satellite_Type")) { + ((NTN__Satellite__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NTN_Satellite_Type template")) { + ((NTN__Satellite__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NameValueList_Type")) { + ((NameValueList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NameValueList_Type template")) { + ((NameValueList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NameValue_Type")) { + ((NameValue__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NameValue_Type template")) { + ((NameValue__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Null_Type")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Null_Type template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O10_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O10_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O13_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O13_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O14_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O14_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O15_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O15_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O16_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O16_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O1_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O1_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O28_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O28_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O2_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O2_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O32_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O32_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O3_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O3_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O43_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O43_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O4_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O4_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O5_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O5_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O6_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O6_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O8_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O8_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O9_Type")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "O9_Type template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "OctetStringList_Type")) { + ((OctetStringList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "OctetStringList_Type template")) { + ((OctetStringList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_Index_Type")) { + ((PDN__Index__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_Index_Type template")) { + ((PDN__Index__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QosFlow_Identification_Type")) { + ((QosFlow__Identification__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QosFlow_Identification_Type template")) { + ((QosFlow__Identification__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RATComb_Tested_Type")) { + ((RATComb__Tested__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RATComb_Tested_Type template")) { + ((RATComb__Tested__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RRCConnectionReleaseRequired_Type")) { + ((RRCConnectionReleaseRequired__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RRCConnectionReleaseRequired_Type template")) { + ((RRCConnectionReleaseRequired__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SetOfCharString_Type")) { + ((SetOfCharString__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SetOfCharString_Type template")) { + ((SetOfCharString__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SinglePLMN_TestedType")) { + ((SinglePLMN__TestedType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SinglePLMN_TestedType template")) { + ((SinglePLMN__TestedType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Struct_tm_Type")) { + ((Struct__tm__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Struct_tm_Type template")) { + ((Struct__tm__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_NR_DeltaValues_Type")) { + ((UE__NR__DeltaValues__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_NR_DeltaValues_Type template")) { + ((UE__NR__DeltaValues__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt16_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt16_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt20_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt20_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt24_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt24_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt32_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt32_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt8_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt8_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UTRAN_CellIdList_Type")) { + ((UTRAN__CellIdList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UTRAN_CellIdList_Type template")) { + ((UTRAN__CellIdList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UTRAN_CellId_Type")) { + ((UTRAN__CellId__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UTRAN_CellId_Type template")) { + ((UTRAN__CellId__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UTRAN_FDD_TDD_Type")) { + ((UTRAN__FDD__TDD__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UTRAN_FDD_TDD_Type template")) { + ((UTRAN__FDD__TDD__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "VerdictCtrl_Type")) { + ((VerdictCtrl__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "VerdictCtrl_Type template")) { + ((VerdictCtrl__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WLAN_CellId_Type")) { + ((WLAN__CellId__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WLAN_CellId_Type template")) { + ((WLAN__CellId__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("CommonDefs"); + global_scope->add_variable(&cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void NameValue__Type::init_vec() { fld_vec[0]=&field_Name; fld_vec[1]=&field_Value; } + +NameValue__Type::NameValue__Type() : Record_Type() { init_vec(); } + +NameValue__Type::NameValue__Type(const NameValue__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Name.is_bound() ) + field_Name = other_value.field_Name; +if (other_value.field_Value.is_bound() ) + field_Value = other_value.field_Value; +init_vec(); +} + +NameValue__Type::NameValue__Type(const CHARSTRING& par_Name, + const CHARSTRING& par_Value) : field_Name(par_Name), + field_Value(par_Value) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NameValue__Type::get_descriptor() const { return &NameValue__Type_descr_; } +const TTCN_Typedescriptor_t* NameValue__Type::fld_descriptors[] = { &CHARSTRING_descr_, &CHARSTRING_descr_ }; +const TTCN_Typedescriptor_t* NameValue__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NameValue__Type::fld_names[] = { "Name", "Value" }; +const char* NameValue__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NameValue__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[1] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +} +} + +NameValue__Type_template::NameValue__Type_template(NameValue__Type_template* p_precondition, NameValue__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NameValue__Type_template::NameValue__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NameValue__Type_template::~NameValue__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NameValue__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NameValue__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NameValue__Type_template& NameValue__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NameValue__Type_template& NameValue__Type_template::operator=(const NameValue__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NameValue__Type_template& NameValue__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NameValue__Type_template& NameValue__Type_template::operator=(const NameValue__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NameValue__Type NameValue__Type_template::valueof() const +{ +NameValue__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +CHARSTRING_template& NameValue__Type_template::Name() { return *(static_cast(get_at(0))); } +const CHARSTRING_template& NameValue__Type_template::Name() const { return *(static_cast(get_at(0))); } +CHARSTRING_template& NameValue__Type_template::Value() { return *(static_cast(get_at(1))); } +const CHARSTRING_template& NameValue__Type_template::Value() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NameValue__Type_template::get_descriptor() const { return &NameValue__Type_descr_; } +const char* NameValue__Type_template::fld_name(int p_index) const { return NameValue__Type::fld_names[p_index]; } + +const NameValue__Type NameValueList__Type::UNBOUND_ELEM; +NameValue__Type& NameValueList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NameValue__Type& NameValueList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NameValue__Type& NameValueList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NameValue__Type& NameValueList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NameValueList__Type NameValueList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NameValueList__Type NameValueList__Type::operator<<=(const INTEGER& rotate_count) const +{ +NameValueList__Type rec_of; +return *((NameValueList__Type*)rotl(rotate_count, &rec_of)); +} + +NameValueList__Type NameValueList__Type::operator>>=(const INTEGER& rotate_count) const +{ +NameValueList__Type rec_of; +return *((NameValueList__Type*)rotr(rotate_count, &rec_of)); +} + +NameValueList__Type NameValueList__Type::operator>>=(int rotate_count) const +{ +NameValueList__Type rec_of; +return *((NameValueList__Type*)rotr(rotate_count, &rec_of)); +} + +NameValueList__Type NameValueList__Type::operator+(const NameValueList__Type& other_value) const +{ +NameValueList__Type rec_of; +return *((NameValueList__Type*)concat(&other_value, &rec_of)); +} + +NameValueList__Type NameValueList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NameValueList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @CommonDefs.NameValueList_Type concatenation."); +} + +NameValueList__Type NameValueList__Type::operator+(null_type) const +{ +return *this; +} + +NameValueList__Type NameValueList__Type::substr(int index, int returncount) const +{ +NameValueList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NameValueList__Type NameValueList__Type::replace(int index, int len, const NameValueList__Type& repl) const +{ +NameValueList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NameValueList__Type NameValueList__Type::replace(int index, int len, const NameValueList__Type_template& repl) const +{ +NameValueList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NameValueList__Type::create_elem() const { return new NameValue__Type; } +const Base_Type* NameValueList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NameValueList__Type::get_descriptor() const { return &NameValueList__Type_descr_; } +NameValueList__Type_template::NameValueList__Type_template(null_type) + : Set_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NameValueList__Type_template::NameValueList__Type_template(NameValueList__Type_template* p_precondition, NameValueList__Type_template* p_implied_template) +: Set_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NameValueList__Type_template::NameValueList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Set_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NameValueList__Type_template::~NameValueList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NameValueList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NameValueList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NameValueList__Type_template& NameValueList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NameValueList__Type_template& NameValueList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NameValueList__Type_template& NameValueList__Type_template::operator=(const NameValueList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NameValueList__Type_template& NameValueList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NameValueList__Type_template& NameValueList__Type_template::operator=(const NameValueList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NameValueList__Type_template NameValueList__Type_template::operator+(const NameValueList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NameValueList__Type_template(ANY_VALUE); +} +NameValueList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NameValueList__Type_template NameValueList__Type_template::operator+(const NameValueList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NameValueList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NameValueList__Type_template NameValueList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NameValueList__Type_template(ANY_VALUE); +} +NameValueList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NameValueList__Type_template NameValueList__Type_template::operator+(null_type) const +{ +return *this; +} + +NameValue__Type_template& NameValueList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NameValue__Type_template& NameValueList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NameValue__Type_template& NameValueList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NameValue__Type_template& NameValueList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NameValueList__Type NameValueList__Type_template::valueof() const +{ +NameValueList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NameValueList__Type NameValueList__Type_template::substr(int index, int returncount) const +{ +NameValueList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NameValueList__Type NameValueList__Type_template::replace(int index, int len, const NameValueList__Type_template& repl) const +{ +NameValueList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NameValueList__Type NameValueList__Type_template::replace(int index, int len, const NameValueList__Type& repl) const +{ +NameValueList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NameValue__Type_template& NameValueList__Type_template::set_item(int set_index) { return *(static_cast(get_set_item(set_index))); } +Base_Template* NameValueList__Type_template::create_elem() const { return new NameValue__Type_template; } +const TTCN_Typedescriptor_t* NameValueList__Type_template::get_descriptor() const { return &NameValueList__Type_descr_; } +IndicationAndControlMode__Type::IndicationAndControlMode__Type() +{ +enum_value = UNBOUND_VALUE; +} + +IndicationAndControlMode__Type::IndicationAndControlMode__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.IndicationAndControlMode_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +IndicationAndControlMode__Type::IndicationAndControlMode__Type(enum_type other_value) +{ +enum_value = other_value; +} + +IndicationAndControlMode__Type::IndicationAndControlMode__Type(const IndicationAndControlMode__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +enum_value = other_value.enum_value; +} + +IndicationAndControlMode__Type& IndicationAndControlMode__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.IndicationAndControlMode_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +IndicationAndControlMode__Type& IndicationAndControlMode__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +IndicationAndControlMode__Type& IndicationAndControlMode__Type::operator=(const IndicationAndControlMode__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean IndicationAndControlMode__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +return enum_value == other_value; +} + +boolean IndicationAndControlMode__Type::operator==(const IndicationAndControlMode__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +return enum_value == other_value.enum_value; +} + +boolean IndicationAndControlMode__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +return enum_value < other_value; +} + +boolean IndicationAndControlMode__Type::operator<(const IndicationAndControlMode__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +return enum_value < other_value.enum_value; +} + +boolean IndicationAndControlMode__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +return enum_value > other_value; +} + +boolean IndicationAndControlMode__Type::operator>(const IndicationAndControlMode__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +return enum_value > other_value.enum_value; +} + +const char *IndicationAndControlMode__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case enable: return "enable"; +case disable: return "disable"; +default: return ""; +} +} + +IndicationAndControlMode__Type::enum_type IndicationAndControlMode__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "enable")) return enable; +else if (!strcmp(str_par, "disable")) return disable; +else return UNKNOWN_VALUE; +} + +boolean IndicationAndControlMode__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int IndicationAndControlMode__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.IndicationAndControlMode_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int IndicationAndControlMode__Type::enum2int(const IndicationAndControlMode__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.IndicationAndControlMode_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void IndicationAndControlMode__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.IndicationAndControlMode_Type.", int_val); +enum_value = (enum_type)int_val; +} + +IndicationAndControlMode__Type::operator IndicationAndControlMode__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +return enum_value; +} + +boolean IndicationAndControlMode__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void IndicationAndControlMode__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* IndicationAndControlMode__Type::clone() const { return new IndicationAndControlMode__Type(*this); } +const TTCN_Typedescriptor_t* IndicationAndControlMode__Type::get_descriptor() const { return &IndicationAndControlMode__Type_descr_; } +void IndicationAndControlMode__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void IndicationAndControlMode__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.IndicationAndControlMode_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.IndicationAndControlMode_Type."); + } +} + +Module_Param* IndicationAndControlMode__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void IndicationAndControlMode__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +text_buf.push_int(enum_value); +} + +void IndicationAndControlMode__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.IndicationAndControlMode_Type.", enum_value); +} + +void IndicationAndControlMode__Type_template::copy_template(const IndicationAndControlMode__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new IndicationAndControlMode__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new IndicationAndControlMode__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new IndicationAndControlMode__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +} +} + +IndicationAndControlMode__Type_template::IndicationAndControlMode__Type_template() +{ +} + +IndicationAndControlMode__Type_template::IndicationAndControlMode__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +IndicationAndControlMode__Type_template::IndicationAndControlMode__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!IndicationAndControlMode__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.IndicationAndControlMode_Type with unknown numeric value %d.", other_value); +single_value = (IndicationAndControlMode__Type::enum_type)other_value; +} + +IndicationAndControlMode__Type_template::IndicationAndControlMode__Type_template(IndicationAndControlMode__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +IndicationAndControlMode__Type_template::IndicationAndControlMode__Type_template(const IndicationAndControlMode__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == IndicationAndControlMode__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +single_value = other_value.enum_value; +} + +IndicationAndControlMode__Type_template::IndicationAndControlMode__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (IndicationAndControlMode__Type::enum_type)(const IndicationAndControlMode__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.IndicationAndControlMode_Type from an unbound optional field."); +} +} + +IndicationAndControlMode__Type_template::IndicationAndControlMode__Type_template(IndicationAndControlMode__Type_template* p_precondition, IndicationAndControlMode__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +IndicationAndControlMode__Type_template::IndicationAndControlMode__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +IndicationAndControlMode__Type_template::IndicationAndControlMode__Type_template(const IndicationAndControlMode__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +IndicationAndControlMode__Type_template::~IndicationAndControlMode__Type_template() +{ +clean_up(); +} + +boolean IndicationAndControlMode__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean IndicationAndControlMode__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != IndicationAndControlMode__Type::UNBOUND_VALUE; +} + +void IndicationAndControlMode__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +IndicationAndControlMode__Type_template& IndicationAndControlMode__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IndicationAndControlMode__Type_template& IndicationAndControlMode__Type_template::operator=(int other_value) +{ +if (!IndicationAndControlMode__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.IndicationAndControlMode_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (IndicationAndControlMode__Type::enum_type)other_value; +return *this; +} + +IndicationAndControlMode__Type_template& IndicationAndControlMode__Type_template::operator=(IndicationAndControlMode__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +IndicationAndControlMode__Type_template& IndicationAndControlMode__Type_template::operator=(const IndicationAndControlMode__Type& other_value) +{ +if (other_value.enum_value == IndicationAndControlMode__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.IndicationAndControlMode_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +IndicationAndControlMode__Type_template& IndicationAndControlMode__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (IndicationAndControlMode__Type::enum_type)(const IndicationAndControlMode__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +} +return *this; +} + +IndicationAndControlMode__Type_template& IndicationAndControlMode__Type_template::operator=(const IndicationAndControlMode__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean IndicationAndControlMode__Type_template::match(IndicationAndControlMode__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +} +return FALSE; +} + +boolean IndicationAndControlMode__Type_template::match(const IndicationAndControlMode__Type& other_value, boolean) const +{ +if (other_value.enum_value == IndicationAndControlMode__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.IndicationAndControlMode_Type with an unbound value."); +return match(other_value.enum_value); +} + +IndicationAndControlMode__Type::enum_type IndicationAndControlMode__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +return single_value; +} + +void IndicationAndControlMode__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new IndicationAndControlMode__Type_template[list_length]; +} + +IndicationAndControlMode__Type_template& IndicationAndControlMode__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +return value_list.list_value[list_index]; +} + +void IndicationAndControlMode__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void IndicationAndControlMode__Type_template::set_value(template_sel other_value) { *this = other_value; } +void IndicationAndControlMode__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* IndicationAndControlMode__Type_template::clone() const { return new IndicationAndControlMode__Type_template(*this); } +const TTCN_Typedescriptor_t* IndicationAndControlMode__Type_template::get_descriptor() const { return &IndicationAndControlMode__Type_descr_; } +boolean IndicationAndControlMode__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void IndicationAndControlMode__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void IndicationAndControlMode__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(IndicationAndControlMode__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void IndicationAndControlMode__Type_template::log_match(const IndicationAndControlMode__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void IndicationAndControlMode__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +} +} + +void IndicationAndControlMode__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (IndicationAndControlMode__Type::enum_type)text_buf.pull_int().get_val(); +if (!IndicationAndControlMode__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.IndicationAndControlMode_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new IndicationAndControlMode__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.IndicationAndControlMode_Type."); +} +} + +boolean IndicationAndControlMode__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean IndicationAndControlMode__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + IndicationAndControlMode__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + IndicationAndControlMode__Type::enum_type enum_val = IndicationAndControlMode__Type::str_to_enum(m_p->get_enumerated()); + if (!IndicationAndControlMode__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.IndicationAndControlMode_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + IndicationAndControlMode__Type_template* precondition = new IndicationAndControlMode__Type_template; + precondition->set_param(*m_p->get_elem(0)); + IndicationAndControlMode__Type_template* implied_template = new IndicationAndControlMode__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = IndicationAndControlMode__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.IndicationAndControlMode_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* IndicationAndControlMode__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(IndicationAndControlMode__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +SinglePLMN__TestedType::SinglePLMN__TestedType() +{ +enum_value = UNBOUND_VALUE; +} + +SinglePLMN__TestedType::SinglePLMN__TestedType(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.SinglePLMN_TestedType with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +SinglePLMN__TestedType::SinglePLMN__TestedType(enum_type other_value) +{ +enum_value = other_value; +} + +SinglePLMN__TestedType::SinglePLMN__TestedType(const SinglePLMN__TestedType& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +enum_value = other_value.enum_value; +} + +SinglePLMN__TestedType& SinglePLMN__TestedType::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.SinglePLMN_TestedType.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +SinglePLMN__TestedType& SinglePLMN__TestedType::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +SinglePLMN__TestedType& SinglePLMN__TestedType::operator=(const SinglePLMN__TestedType& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +enum_value = other_value.enum_value; +return *this; +} + +boolean SinglePLMN__TestedType::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +return enum_value == other_value; +} + +boolean SinglePLMN__TestedType::operator==(const SinglePLMN__TestedType& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +return enum_value == other_value.enum_value; +} + +boolean SinglePLMN__TestedType::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +return enum_value < other_value; +} + +boolean SinglePLMN__TestedType::operator<(const SinglePLMN__TestedType& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +return enum_value < other_value.enum_value; +} + +boolean SinglePLMN__TestedType::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +return enum_value > other_value; +} + +boolean SinglePLMN__TestedType::operator>(const SinglePLMN__TestedType& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +return enum_value > other_value.enum_value; +} + +const char *SinglePLMN__TestedType::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case SinglePLMN: return "SinglePLMN"; +case MultiPLMN: return "MultiPLMN"; +case MultiPLMNinPrimaryBand: return "MultiPLMNinPrimaryBand"; +case MultiPLMNinSecondaryBand: return "MultiPLMNinSecondaryBand"; +default: return ""; +} +} + +SinglePLMN__TestedType::enum_type SinglePLMN__TestedType::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "SinglePLMN")) return SinglePLMN; +else if (!strcmp(str_par, "MultiPLMN")) return MultiPLMN; +else if (!strcmp(str_par, "MultiPLMNinPrimaryBand")) return MultiPLMNinPrimaryBand; +else if (!strcmp(str_par, "MultiPLMNinSecondaryBand")) return MultiPLMNinSecondaryBand; +else return UNKNOWN_VALUE; +} + +boolean SinglePLMN__TestedType::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +return TRUE; +default: +return FALSE; +} +} + +int SinglePLMN__TestedType::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.SinglePLMN_TestedType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int SinglePLMN__TestedType::enum2int(const SinglePLMN__TestedType& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.SinglePLMN_TestedType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void SinglePLMN__TestedType::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.SinglePLMN_TestedType.", int_val); +enum_value = (enum_type)int_val; +} + +SinglePLMN__TestedType::operator SinglePLMN__TestedType::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.SinglePLMN_TestedType."); +return enum_value; +} + +boolean SinglePLMN__TestedType::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void SinglePLMN__TestedType::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* SinglePLMN__TestedType::clone() const { return new SinglePLMN__TestedType(*this); } +const TTCN_Typedescriptor_t* SinglePLMN__TestedType::get_descriptor() const { return &SinglePLMN__TestedType_descr_; } +void SinglePLMN__TestedType::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void SinglePLMN__TestedType::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.SinglePLMN_TestedType"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.SinglePLMN_TestedType."); + } +} + +Module_Param* SinglePLMN__TestedType::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void SinglePLMN__TestedType::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +text_buf.push_int(enum_value); +} + +void SinglePLMN__TestedType::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.SinglePLMN_TestedType.", enum_value); +} + +void SinglePLMN__TestedType_template::copy_template(const SinglePLMN__TestedType_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new SinglePLMN__TestedType_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new SinglePLMN__TestedType_template(*other_value.implication_.precondition); +implication_.implied_template = new SinglePLMN__TestedType_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.SinglePLMN_TestedType."); +} +} + +SinglePLMN__TestedType_template::SinglePLMN__TestedType_template() +{ +} + +SinglePLMN__TestedType_template::SinglePLMN__TestedType_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +SinglePLMN__TestedType_template::SinglePLMN__TestedType_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!SinglePLMN__TestedType::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.SinglePLMN_TestedType with unknown numeric value %d.", other_value); +single_value = (SinglePLMN__TestedType::enum_type)other_value; +} + +SinglePLMN__TestedType_template::SinglePLMN__TestedType_template(SinglePLMN__TestedType::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +SinglePLMN__TestedType_template::SinglePLMN__TestedType_template(const SinglePLMN__TestedType& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == SinglePLMN__TestedType::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType."); +single_value = other_value.enum_value; +} + +SinglePLMN__TestedType_template::SinglePLMN__TestedType_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (SinglePLMN__TestedType::enum_type)(const SinglePLMN__TestedType&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.SinglePLMN_TestedType from an unbound optional field."); +} +} + +SinglePLMN__TestedType_template::SinglePLMN__TestedType_template(SinglePLMN__TestedType_template* p_precondition, SinglePLMN__TestedType_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +SinglePLMN__TestedType_template::SinglePLMN__TestedType_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +SinglePLMN__TestedType_template::SinglePLMN__TestedType_template(const SinglePLMN__TestedType_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +SinglePLMN__TestedType_template::~SinglePLMN__TestedType_template() +{ +clean_up(); +} + +boolean SinglePLMN__TestedType_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean SinglePLMN__TestedType_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != SinglePLMN__TestedType::UNBOUND_VALUE; +} + +void SinglePLMN__TestedType_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +SinglePLMN__TestedType_template& SinglePLMN__TestedType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SinglePLMN__TestedType_template& SinglePLMN__TestedType_template::operator=(int other_value) +{ +if (!SinglePLMN__TestedType::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.SinglePLMN_TestedType.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (SinglePLMN__TestedType::enum_type)other_value; +return *this; +} + +SinglePLMN__TestedType_template& SinglePLMN__TestedType_template::operator=(SinglePLMN__TestedType::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +SinglePLMN__TestedType_template& SinglePLMN__TestedType_template::operator=(const SinglePLMN__TestedType& other_value) +{ +if (other_value.enum_value == SinglePLMN__TestedType::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.SinglePLMN_TestedType to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +SinglePLMN__TestedType_template& SinglePLMN__TestedType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (SinglePLMN__TestedType::enum_type)(const SinglePLMN__TestedType&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.SinglePLMN_TestedType."); +} +return *this; +} + +SinglePLMN__TestedType_template& SinglePLMN__TestedType_template::operator=(const SinglePLMN__TestedType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean SinglePLMN__TestedType_template::match(SinglePLMN__TestedType::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.SinglePLMN_TestedType."); +} +return FALSE; +} + +boolean SinglePLMN__TestedType_template::match(const SinglePLMN__TestedType& other_value, boolean) const +{ +if (other_value.enum_value == SinglePLMN__TestedType::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.SinglePLMN_TestedType with an unbound value."); +return match(other_value.enum_value); +} + +SinglePLMN__TestedType::enum_type SinglePLMN__TestedType_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.SinglePLMN_TestedType."); +return single_value; +} + +void SinglePLMN__TestedType_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.SinglePLMN_TestedType."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new SinglePLMN__TestedType_template[list_length]; +} + +SinglePLMN__TestedType_template& SinglePLMN__TestedType_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.SinglePLMN_TestedType."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.SinglePLMN_TestedType."); +return value_list.list_value[list_index]; +} + +void SinglePLMN__TestedType_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void SinglePLMN__TestedType_template::set_value(template_sel other_value) { *this = other_value; } +void SinglePLMN__TestedType_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* SinglePLMN__TestedType_template::clone() const { return new SinglePLMN__TestedType_template(*this); } +const TTCN_Typedescriptor_t* SinglePLMN__TestedType_template::get_descriptor() const { return &SinglePLMN__TestedType_descr_; } +boolean SinglePLMN__TestedType_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void SinglePLMN__TestedType_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void SinglePLMN__TestedType_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(SinglePLMN__TestedType::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void SinglePLMN__TestedType_template::log_match(const SinglePLMN__TestedType& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void SinglePLMN__TestedType_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.SinglePLMN_TestedType."); +} +} + +void SinglePLMN__TestedType_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (SinglePLMN__TestedType::enum_type)text_buf.pull_int().get_val(); +if (!SinglePLMN__TestedType::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.SinglePLMN_TestedType.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new SinglePLMN__TestedType_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.SinglePLMN_TestedType."); +} +} + +boolean SinglePLMN__TestedType_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean SinglePLMN__TestedType_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + SinglePLMN__TestedType_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + SinglePLMN__TestedType::enum_type enum_val = SinglePLMN__TestedType::str_to_enum(m_p->get_enumerated()); + if (!SinglePLMN__TestedType::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.SinglePLMN_TestedType."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + SinglePLMN__TestedType_template* precondition = new SinglePLMN__TestedType_template; + precondition->set_param(*m_p->get_elem(0)); + SinglePLMN__TestedType_template* implied_template = new SinglePLMN__TestedType_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = SinglePLMN__TestedType_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.SinglePLMN_TestedType"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* SinglePLMN__TestedType_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(SinglePLMN__TestedType::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +EUTRA__ATTACH__TESTED__Type::EUTRA__ATTACH__TESTED__Type() +{ +enum_value = UNBOUND_VALUE; +} + +EUTRA__ATTACH__TESTED__Type::EUTRA__ATTACH__TESTED__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +EUTRA__ATTACH__TESTED__Type::EUTRA__ATTACH__TESTED__Type(enum_type other_value) +{ +enum_value = other_value; +} + +EUTRA__ATTACH__TESTED__Type::EUTRA__ATTACH__TESTED__Type(const EUTRA__ATTACH__TESTED__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +enum_value = other_value.enum_value; +} + +EUTRA__ATTACH__TESTED__Type& EUTRA__ATTACH__TESTED__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +EUTRA__ATTACH__TESTED__Type& EUTRA__ATTACH__TESTED__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +EUTRA__ATTACH__TESTED__Type& EUTRA__ATTACH__TESTED__Type::operator=(const EUTRA__ATTACH__TESTED__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean EUTRA__ATTACH__TESTED__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +return enum_value == other_value; +} + +boolean EUTRA__ATTACH__TESTED__Type::operator==(const EUTRA__ATTACH__TESTED__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +return enum_value == other_value.enum_value; +} + +boolean EUTRA__ATTACH__TESTED__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +return enum_value < other_value; +} + +boolean EUTRA__ATTACH__TESTED__Type::operator<(const EUTRA__ATTACH__TESTED__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +return enum_value < other_value.enum_value; +} + +boolean EUTRA__ATTACH__TESTED__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +return enum_value > other_value; +} + +boolean EUTRA__ATTACH__TESTED__Type::operator>(const EUTRA__ATTACH__TESTED__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +return enum_value > other_value.enum_value; +} + +const char *EUTRA__ATTACH__TESTED__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case EPS__ATTACH__ONLY: return "EPS_ATTACH_ONLY"; +case COMBINED__ATTACH: return "COMBINED_ATTACH"; +default: return ""; +} +} + +EUTRA__ATTACH__TESTED__Type::enum_type EUTRA__ATTACH__TESTED__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "EPS_ATTACH_ONLY")) return EPS__ATTACH__ONLY; +else if (!strcmp(str_par, "COMBINED_ATTACH")) return COMBINED__ATTACH; +else return UNKNOWN_VALUE; +} + +boolean EUTRA__ATTACH__TESTED__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int EUTRA__ATTACH__TESTED__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int EUTRA__ATTACH__TESTED__Type::enum2int(const EUTRA__ATTACH__TESTED__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void EUTRA__ATTACH__TESTED__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type.", int_val); +enum_value = (enum_type)int_val; +} + +EUTRA__ATTACH__TESTED__Type::operator EUTRA__ATTACH__TESTED__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +return enum_value; +} + +boolean EUTRA__ATTACH__TESTED__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void EUTRA__ATTACH__TESTED__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* EUTRA__ATTACH__TESTED__Type::clone() const { return new EUTRA__ATTACH__TESTED__Type(*this); } +const TTCN_Typedescriptor_t* EUTRA__ATTACH__TESTED__Type::get_descriptor() const { return &EUTRA__ATTACH__TESTED__Type_descr_; } +void EUTRA__ATTACH__TESTED__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void EUTRA__ATTACH__TESTED__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.EUTRA_ATTACH_TESTED_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); + } +} + +Module_Param* EUTRA__ATTACH__TESTED__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void EUTRA__ATTACH__TESTED__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +text_buf.push_int(enum_value); +} + +void EUTRA__ATTACH__TESTED__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type.", enum_value); +} + +void EUTRA__ATTACH__TESTED__Type_template::copy_template(const EUTRA__ATTACH__TESTED__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new EUTRA__ATTACH__TESTED__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new EUTRA__ATTACH__TESTED__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new EUTRA__ATTACH__TESTED__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +} +} + +EUTRA__ATTACH__TESTED__Type_template::EUTRA__ATTACH__TESTED__Type_template() +{ +} + +EUTRA__ATTACH__TESTED__Type_template::EUTRA__ATTACH__TESTED__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +EUTRA__ATTACH__TESTED__Type_template::EUTRA__ATTACH__TESTED__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!EUTRA__ATTACH__TESTED__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type with unknown numeric value %d.", other_value); +single_value = (EUTRA__ATTACH__TESTED__Type::enum_type)other_value; +} + +EUTRA__ATTACH__TESTED__Type_template::EUTRA__ATTACH__TESTED__Type_template(EUTRA__ATTACH__TESTED__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +EUTRA__ATTACH__TESTED__Type_template::EUTRA__ATTACH__TESTED__Type_template(const EUTRA__ATTACH__TESTED__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == EUTRA__ATTACH__TESTED__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +single_value = other_value.enum_value; +} + +EUTRA__ATTACH__TESTED__Type_template::EUTRA__ATTACH__TESTED__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (EUTRA__ATTACH__TESTED__Type::enum_type)(const EUTRA__ATTACH__TESTED__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type from an unbound optional field."); +} +} + +EUTRA__ATTACH__TESTED__Type_template::EUTRA__ATTACH__TESTED__Type_template(EUTRA__ATTACH__TESTED__Type_template* p_precondition, EUTRA__ATTACH__TESTED__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +EUTRA__ATTACH__TESTED__Type_template::EUTRA__ATTACH__TESTED__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +EUTRA__ATTACH__TESTED__Type_template::EUTRA__ATTACH__TESTED__Type_template(const EUTRA__ATTACH__TESTED__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +EUTRA__ATTACH__TESTED__Type_template::~EUTRA__ATTACH__TESTED__Type_template() +{ +clean_up(); +} + +boolean EUTRA__ATTACH__TESTED__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean EUTRA__ATTACH__TESTED__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != EUTRA__ATTACH__TESTED__Type::UNBOUND_VALUE; +} + +void EUTRA__ATTACH__TESTED__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +EUTRA__ATTACH__TESTED__Type_template& EUTRA__ATTACH__TESTED__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EUTRA__ATTACH__TESTED__Type_template& EUTRA__ATTACH__TESTED__Type_template::operator=(int other_value) +{ +if (!EUTRA__ATTACH__TESTED__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (EUTRA__ATTACH__TESTED__Type::enum_type)other_value; +return *this; +} + +EUTRA__ATTACH__TESTED__Type_template& EUTRA__ATTACH__TESTED__Type_template::operator=(EUTRA__ATTACH__TESTED__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +EUTRA__ATTACH__TESTED__Type_template& EUTRA__ATTACH__TESTED__Type_template::operator=(const EUTRA__ATTACH__TESTED__Type& other_value) +{ +if (other_value.enum_value == EUTRA__ATTACH__TESTED__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +EUTRA__ATTACH__TESTED__Type_template& EUTRA__ATTACH__TESTED__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (EUTRA__ATTACH__TESTED__Type::enum_type)(const EUTRA__ATTACH__TESTED__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +} +return *this; +} + +EUTRA__ATTACH__TESTED__Type_template& EUTRA__ATTACH__TESTED__Type_template::operator=(const EUTRA__ATTACH__TESTED__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean EUTRA__ATTACH__TESTED__Type_template::match(EUTRA__ATTACH__TESTED__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +} +return FALSE; +} + +boolean EUTRA__ATTACH__TESTED__Type_template::match(const EUTRA__ATTACH__TESTED__Type& other_value, boolean) const +{ +if (other_value.enum_value == EUTRA__ATTACH__TESTED__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type with an unbound value."); +return match(other_value.enum_value); +} + +EUTRA__ATTACH__TESTED__Type::enum_type EUTRA__ATTACH__TESTED__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +return single_value; +} + +void EUTRA__ATTACH__TESTED__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new EUTRA__ATTACH__TESTED__Type_template[list_length]; +} + +EUTRA__ATTACH__TESTED__Type_template& EUTRA__ATTACH__TESTED__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +return value_list.list_value[list_index]; +} + +void EUTRA__ATTACH__TESTED__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void EUTRA__ATTACH__TESTED__Type_template::set_value(template_sel other_value) { *this = other_value; } +void EUTRA__ATTACH__TESTED__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* EUTRA__ATTACH__TESTED__Type_template::clone() const { return new EUTRA__ATTACH__TESTED__Type_template(*this); } +const TTCN_Typedescriptor_t* EUTRA__ATTACH__TESTED__Type_template::get_descriptor() const { return &EUTRA__ATTACH__TESTED__Type_descr_; } +boolean EUTRA__ATTACH__TESTED__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void EUTRA__ATTACH__TESTED__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void EUTRA__ATTACH__TESTED__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(EUTRA__ATTACH__TESTED__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void EUTRA__ATTACH__TESTED__Type_template::log_match(const EUTRA__ATTACH__TESTED__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void EUTRA__ATTACH__TESTED__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +} +} + +void EUTRA__ATTACH__TESTED__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (EUTRA__ATTACH__TESTED__Type::enum_type)text_buf.pull_int().get_val(); +if (!EUTRA__ATTACH__TESTED__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new EUTRA__ATTACH__TESTED__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); +} +} + +boolean EUTRA__ATTACH__TESTED__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean EUTRA__ATTACH__TESTED__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + EUTRA__ATTACH__TESTED__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + EUTRA__ATTACH__TESTED__Type::enum_type enum_val = EUTRA__ATTACH__TESTED__Type::str_to_enum(m_p->get_enumerated()); + if (!EUTRA__ATTACH__TESTED__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.EUTRA_ATTACH_TESTED_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + EUTRA__ATTACH__TESTED__Type_template* precondition = new EUTRA__ATTACH__TESTED__Type_template; + precondition->set_param(*m_p->get_elem(0)); + EUTRA__ATTACH__TESTED__Type_template* implied_template = new EUTRA__ATTACH__TESTED__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = EUTRA__ATTACH__TESTED__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.EUTRA_ATTACH_TESTED_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* EUTRA__ATTACH__TESTED__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(EUTRA__ATTACH__TESTED__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +EUTRA__FDD__TDD__Mode__Type::EUTRA__FDD__TDD__Mode__Type() +{ +enum_value = UNBOUND_VALUE; +} + +EUTRA__FDD__TDD__Mode__Type::EUTRA__FDD__TDD__Mode__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +EUTRA__FDD__TDD__Mode__Type::EUTRA__FDD__TDD__Mode__Type(enum_type other_value) +{ +enum_value = other_value; +} + +EUTRA__FDD__TDD__Mode__Type::EUTRA__FDD__TDD__Mode__Type(const EUTRA__FDD__TDD__Mode__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +enum_value = other_value.enum_value; +} + +EUTRA__FDD__TDD__Mode__Type& EUTRA__FDD__TDD__Mode__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +EUTRA__FDD__TDD__Mode__Type& EUTRA__FDD__TDD__Mode__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +EUTRA__FDD__TDD__Mode__Type& EUTRA__FDD__TDD__Mode__Type::operator=(const EUTRA__FDD__TDD__Mode__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean EUTRA__FDD__TDD__Mode__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +return enum_value == other_value; +} + +boolean EUTRA__FDD__TDD__Mode__Type::operator==(const EUTRA__FDD__TDD__Mode__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +return enum_value == other_value.enum_value; +} + +boolean EUTRA__FDD__TDD__Mode__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +return enum_value < other_value; +} + +boolean EUTRA__FDD__TDD__Mode__Type::operator<(const EUTRA__FDD__TDD__Mode__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +return enum_value < other_value.enum_value; +} + +boolean EUTRA__FDD__TDD__Mode__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +return enum_value > other_value; +} + +boolean EUTRA__FDD__TDD__Mode__Type::operator>(const EUTRA__FDD__TDD__Mode__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +return enum_value > other_value.enum_value; +} + +const char *EUTRA__FDD__TDD__Mode__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case FDD: return "FDD"; +case TDD: return "TDD"; +default: return ""; +} +} + +EUTRA__FDD__TDD__Mode__Type::enum_type EUTRA__FDD__TDD__Mode__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "FDD")) return FDD; +else if (!strcmp(str_par, "TDD")) return TDD; +else return UNKNOWN_VALUE; +} + +boolean EUTRA__FDD__TDD__Mode__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int EUTRA__FDD__TDD__Mode__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int EUTRA__FDD__TDD__Mode__Type::enum2int(const EUTRA__FDD__TDD__Mode__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void EUTRA__FDD__TDD__Mode__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type.", int_val); +enum_value = (enum_type)int_val; +} + +EUTRA__FDD__TDD__Mode__Type::operator EUTRA__FDD__TDD__Mode__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +return enum_value; +} + +boolean EUTRA__FDD__TDD__Mode__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void EUTRA__FDD__TDD__Mode__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* EUTRA__FDD__TDD__Mode__Type::clone() const { return new EUTRA__FDD__TDD__Mode__Type(*this); } +const TTCN_Typedescriptor_t* EUTRA__FDD__TDD__Mode__Type::get_descriptor() const { return &EUTRA__FDD__TDD__Mode__Type_descr_; } +void EUTRA__FDD__TDD__Mode__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void EUTRA__FDD__TDD__Mode__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.EUTRA_FDD_TDD_Mode_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); + } +} + +Module_Param* EUTRA__FDD__TDD__Mode__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void EUTRA__FDD__TDD__Mode__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +text_buf.push_int(enum_value); +} + +void EUTRA__FDD__TDD__Mode__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type.", enum_value); +} + +void EUTRA__FDD__TDD__Mode__Type_template::copy_template(const EUTRA__FDD__TDD__Mode__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new EUTRA__FDD__TDD__Mode__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new EUTRA__FDD__TDD__Mode__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new EUTRA__FDD__TDD__Mode__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +} +} + +EUTRA__FDD__TDD__Mode__Type_template::EUTRA__FDD__TDD__Mode__Type_template() +{ +} + +EUTRA__FDD__TDD__Mode__Type_template::EUTRA__FDD__TDD__Mode__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +EUTRA__FDD__TDD__Mode__Type_template::EUTRA__FDD__TDD__Mode__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!EUTRA__FDD__TDD__Mode__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type with unknown numeric value %d.", other_value); +single_value = (EUTRA__FDD__TDD__Mode__Type::enum_type)other_value; +} + +EUTRA__FDD__TDD__Mode__Type_template::EUTRA__FDD__TDD__Mode__Type_template(EUTRA__FDD__TDD__Mode__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +EUTRA__FDD__TDD__Mode__Type_template::EUTRA__FDD__TDD__Mode__Type_template(const EUTRA__FDD__TDD__Mode__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == EUTRA__FDD__TDD__Mode__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +single_value = other_value.enum_value; +} + +EUTRA__FDD__TDD__Mode__Type_template::EUTRA__FDD__TDD__Mode__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (EUTRA__FDD__TDD__Mode__Type::enum_type)(const EUTRA__FDD__TDD__Mode__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type from an unbound optional field."); +} +} + +EUTRA__FDD__TDD__Mode__Type_template::EUTRA__FDD__TDD__Mode__Type_template(EUTRA__FDD__TDD__Mode__Type_template* p_precondition, EUTRA__FDD__TDD__Mode__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +EUTRA__FDD__TDD__Mode__Type_template::EUTRA__FDD__TDD__Mode__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +EUTRA__FDD__TDD__Mode__Type_template::EUTRA__FDD__TDD__Mode__Type_template(const EUTRA__FDD__TDD__Mode__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +EUTRA__FDD__TDD__Mode__Type_template::~EUTRA__FDD__TDD__Mode__Type_template() +{ +clean_up(); +} + +boolean EUTRA__FDD__TDD__Mode__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean EUTRA__FDD__TDD__Mode__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != EUTRA__FDD__TDD__Mode__Type::UNBOUND_VALUE; +} + +void EUTRA__FDD__TDD__Mode__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +EUTRA__FDD__TDD__Mode__Type_template& EUTRA__FDD__TDD__Mode__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EUTRA__FDD__TDD__Mode__Type_template& EUTRA__FDD__TDD__Mode__Type_template::operator=(int other_value) +{ +if (!EUTRA__FDD__TDD__Mode__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (EUTRA__FDD__TDD__Mode__Type::enum_type)other_value; +return *this; +} + +EUTRA__FDD__TDD__Mode__Type_template& EUTRA__FDD__TDD__Mode__Type_template::operator=(EUTRA__FDD__TDD__Mode__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +EUTRA__FDD__TDD__Mode__Type_template& EUTRA__FDD__TDD__Mode__Type_template::operator=(const EUTRA__FDD__TDD__Mode__Type& other_value) +{ +if (other_value.enum_value == EUTRA__FDD__TDD__Mode__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +EUTRA__FDD__TDD__Mode__Type_template& EUTRA__FDD__TDD__Mode__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (EUTRA__FDD__TDD__Mode__Type::enum_type)(const EUTRA__FDD__TDD__Mode__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +} +return *this; +} + +EUTRA__FDD__TDD__Mode__Type_template& EUTRA__FDD__TDD__Mode__Type_template::operator=(const EUTRA__FDD__TDD__Mode__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean EUTRA__FDD__TDD__Mode__Type_template::match(EUTRA__FDD__TDD__Mode__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +} +return FALSE; +} + +boolean EUTRA__FDD__TDD__Mode__Type_template::match(const EUTRA__FDD__TDD__Mode__Type& other_value, boolean) const +{ +if (other_value.enum_value == EUTRA__FDD__TDD__Mode__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type with an unbound value."); +return match(other_value.enum_value); +} + +EUTRA__FDD__TDD__Mode__Type::enum_type EUTRA__FDD__TDD__Mode__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +return single_value; +} + +void EUTRA__FDD__TDD__Mode__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new EUTRA__FDD__TDD__Mode__Type_template[list_length]; +} + +EUTRA__FDD__TDD__Mode__Type_template& EUTRA__FDD__TDD__Mode__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +return value_list.list_value[list_index]; +} + +void EUTRA__FDD__TDD__Mode__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void EUTRA__FDD__TDD__Mode__Type_template::set_value(template_sel other_value) { *this = other_value; } +void EUTRA__FDD__TDD__Mode__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* EUTRA__FDD__TDD__Mode__Type_template::clone() const { return new EUTRA__FDD__TDD__Mode__Type_template(*this); } +const TTCN_Typedescriptor_t* EUTRA__FDD__TDD__Mode__Type_template::get_descriptor() const { return &EUTRA__FDD__TDD__Mode__Type_descr_; } +boolean EUTRA__FDD__TDD__Mode__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void EUTRA__FDD__TDD__Mode__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void EUTRA__FDD__TDD__Mode__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(EUTRA__FDD__TDD__Mode__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void EUTRA__FDD__TDD__Mode__Type_template::log_match(const EUTRA__FDD__TDD__Mode__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void EUTRA__FDD__TDD__Mode__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +} +} + +void EUTRA__FDD__TDD__Mode__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (EUTRA__FDD__TDD__Mode__Type::enum_type)text_buf.pull_int().get_val(); +if (!EUTRA__FDD__TDD__Mode__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new EUTRA__FDD__TDD__Mode__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); +} +} + +boolean EUTRA__FDD__TDD__Mode__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean EUTRA__FDD__TDD__Mode__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + EUTRA__FDD__TDD__Mode__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + EUTRA__FDD__TDD__Mode__Type::enum_type enum_val = EUTRA__FDD__TDD__Mode__Type::str_to_enum(m_p->get_enumerated()); + if (!EUTRA__FDD__TDD__Mode__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.EUTRA_FDD_TDD_Mode_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + EUTRA__FDD__TDD__Mode__Type_template* precondition = new EUTRA__FDD__TDD__Mode__Type_template; + precondition->set_param(*m_p->get_elem(0)); + EUTRA__FDD__TDD__Mode__Type_template* implied_template = new EUTRA__FDD__TDD__Mode__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = EUTRA__FDD__TDD__Mode__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.EUTRA_FDD_TDD_Mode_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* EUTRA__FDD__TDD__Mode__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(EUTRA__FDD__TDD__Mode__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +UTRAN__FDD__TDD__Type::UTRAN__FDD__TDD__Type() +{ +enum_value = UNBOUND_VALUE; +} + +UTRAN__FDD__TDD__Type::UTRAN__FDD__TDD__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +UTRAN__FDD__TDD__Type::UTRAN__FDD__TDD__Type(enum_type other_value) +{ +enum_value = other_value; +} + +UTRAN__FDD__TDD__Type::UTRAN__FDD__TDD__Type(const UTRAN__FDD__TDD__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +enum_value = other_value.enum_value; +} + +UTRAN__FDD__TDD__Type& UTRAN__FDD__TDD__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +UTRAN__FDD__TDD__Type& UTRAN__FDD__TDD__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +UTRAN__FDD__TDD__Type& UTRAN__FDD__TDD__Type::operator=(const UTRAN__FDD__TDD__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean UTRAN__FDD__TDD__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +return enum_value == other_value; +} + +boolean UTRAN__FDD__TDD__Type::operator==(const UTRAN__FDD__TDD__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +return enum_value == other_value.enum_value; +} + +boolean UTRAN__FDD__TDD__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +return enum_value < other_value; +} + +boolean UTRAN__FDD__TDD__Type::operator<(const UTRAN__FDD__TDD__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +return enum_value < other_value.enum_value; +} + +boolean UTRAN__FDD__TDD__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +return enum_value > other_value; +} + +boolean UTRAN__FDD__TDD__Type::operator>(const UTRAN__FDD__TDD__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +return enum_value > other_value.enum_value; +} + +const char *UTRAN__FDD__TDD__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case UTRAN__FDD: return "UTRAN_FDD"; +case UTRAN__TDD: return "UTRAN_TDD"; +default: return ""; +} +} + +UTRAN__FDD__TDD__Type::enum_type UTRAN__FDD__TDD__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "UTRAN_FDD")) return UTRAN__FDD; +else if (!strcmp(str_par, "UTRAN_TDD")) return UTRAN__TDD; +else return UNKNOWN_VALUE; +} + +boolean UTRAN__FDD__TDD__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int UTRAN__FDD__TDD__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int UTRAN__FDD__TDD__Type::enum2int(const UTRAN__FDD__TDD__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void UTRAN__FDD__TDD__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type.", int_val); +enum_value = (enum_type)int_val; +} + +UTRAN__FDD__TDD__Type::operator UTRAN__FDD__TDD__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +return enum_value; +} + +boolean UTRAN__FDD__TDD__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void UTRAN__FDD__TDD__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* UTRAN__FDD__TDD__Type::clone() const { return new UTRAN__FDD__TDD__Type(*this); } +const TTCN_Typedescriptor_t* UTRAN__FDD__TDD__Type::get_descriptor() const { return &UTRAN__FDD__TDD__Type_descr_; } +void UTRAN__FDD__TDD__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void UTRAN__FDD__TDD__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.UTRAN_FDD_TDD_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.UTRAN_FDD_TDD_Type."); + } +} + +Module_Param* UTRAN__FDD__TDD__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void UTRAN__FDD__TDD__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +text_buf.push_int(enum_value); +} + +void UTRAN__FDD__TDD__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.UTRAN_FDD_TDD_Type.", enum_value); +} + +void UTRAN__FDD__TDD__Type_template::copy_template(const UTRAN__FDD__TDD__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new UTRAN__FDD__TDD__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new UTRAN__FDD__TDD__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new UTRAN__FDD__TDD__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +} +} + +UTRAN__FDD__TDD__Type_template::UTRAN__FDD__TDD__Type_template() +{ +} + +UTRAN__FDD__TDD__Type_template::UTRAN__FDD__TDD__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +UTRAN__FDD__TDD__Type_template::UTRAN__FDD__TDD__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!UTRAN__FDD__TDD__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type with unknown numeric value %d.", other_value); +single_value = (UTRAN__FDD__TDD__Type::enum_type)other_value; +} + +UTRAN__FDD__TDD__Type_template::UTRAN__FDD__TDD__Type_template(UTRAN__FDD__TDD__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +UTRAN__FDD__TDD__Type_template::UTRAN__FDD__TDD__Type_template(const UTRAN__FDD__TDD__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == UTRAN__FDD__TDD__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +single_value = other_value.enum_value; +} + +UTRAN__FDD__TDD__Type_template::UTRAN__FDD__TDD__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (UTRAN__FDD__TDD__Type::enum_type)(const UTRAN__FDD__TDD__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type from an unbound optional field."); +} +} + +UTRAN__FDD__TDD__Type_template::UTRAN__FDD__TDD__Type_template(UTRAN__FDD__TDD__Type_template* p_precondition, UTRAN__FDD__TDD__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +UTRAN__FDD__TDD__Type_template::UTRAN__FDD__TDD__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +UTRAN__FDD__TDD__Type_template::UTRAN__FDD__TDD__Type_template(const UTRAN__FDD__TDD__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +UTRAN__FDD__TDD__Type_template::~UTRAN__FDD__TDD__Type_template() +{ +clean_up(); +} + +boolean UTRAN__FDD__TDD__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean UTRAN__FDD__TDD__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != UTRAN__FDD__TDD__Type::UNBOUND_VALUE; +} + +void UTRAN__FDD__TDD__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +UTRAN__FDD__TDD__Type_template& UTRAN__FDD__TDD__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UTRAN__FDD__TDD__Type_template& UTRAN__FDD__TDD__Type_template::operator=(int other_value) +{ +if (!UTRAN__FDD__TDD__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (UTRAN__FDD__TDD__Type::enum_type)other_value; +return *this; +} + +UTRAN__FDD__TDD__Type_template& UTRAN__FDD__TDD__Type_template::operator=(UTRAN__FDD__TDD__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +UTRAN__FDD__TDD__Type_template& UTRAN__FDD__TDD__Type_template::operator=(const UTRAN__FDD__TDD__Type& other_value) +{ +if (other_value.enum_value == UTRAN__FDD__TDD__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +UTRAN__FDD__TDD__Type_template& UTRAN__FDD__TDD__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (UTRAN__FDD__TDD__Type::enum_type)(const UTRAN__FDD__TDD__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +} +return *this; +} + +UTRAN__FDD__TDD__Type_template& UTRAN__FDD__TDD__Type_template::operator=(const UTRAN__FDD__TDD__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean UTRAN__FDD__TDD__Type_template::match(UTRAN__FDD__TDD__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +} +return FALSE; +} + +boolean UTRAN__FDD__TDD__Type_template::match(const UTRAN__FDD__TDD__Type& other_value, boolean) const +{ +if (other_value.enum_value == UTRAN__FDD__TDD__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type with an unbound value."); +return match(other_value.enum_value); +} + +UTRAN__FDD__TDD__Type::enum_type UTRAN__FDD__TDD__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +return single_value; +} + +void UTRAN__FDD__TDD__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new UTRAN__FDD__TDD__Type_template[list_length]; +} + +UTRAN__FDD__TDD__Type_template& UTRAN__FDD__TDD__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +return value_list.list_value[list_index]; +} + +void UTRAN__FDD__TDD__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void UTRAN__FDD__TDD__Type_template::set_value(template_sel other_value) { *this = other_value; } +void UTRAN__FDD__TDD__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* UTRAN__FDD__TDD__Type_template::clone() const { return new UTRAN__FDD__TDD__Type_template(*this); } +const TTCN_Typedescriptor_t* UTRAN__FDD__TDD__Type_template::get_descriptor() const { return &UTRAN__FDD__TDD__Type_descr_; } +boolean UTRAN__FDD__TDD__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void UTRAN__FDD__TDD__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void UTRAN__FDD__TDD__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(UTRAN__FDD__TDD__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void UTRAN__FDD__TDD__Type_template::log_match(const UTRAN__FDD__TDD__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void UTRAN__FDD__TDD__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +} +} + +void UTRAN__FDD__TDD__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (UTRAN__FDD__TDD__Type::enum_type)text_buf.pull_int().get_val(); +if (!UTRAN__FDD__TDD__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new UTRAN__FDD__TDD__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.UTRAN_FDD_TDD_Type."); +} +} + +boolean UTRAN__FDD__TDD__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean UTRAN__FDD__TDD__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + UTRAN__FDD__TDD__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + UTRAN__FDD__TDD__Type::enum_type enum_val = UTRAN__FDD__TDD__Type::str_to_enum(m_p->get_enumerated()); + if (!UTRAN__FDD__TDD__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.UTRAN_FDD_TDD_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + UTRAN__FDD__TDD__Type_template* precondition = new UTRAN__FDD__TDD__Type_template; + precondition->set_param(*m_p->get_elem(0)); + UTRAN__FDD__TDD__Type_template* implied_template = new UTRAN__FDD__TDD__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = UTRAN__FDD__TDD__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.UTRAN_FDD_TDD_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* UTRAN__FDD__TDD__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(UTRAN__FDD__TDD__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +RATComb__Tested__Type::RATComb__Tested__Type() +{ +enum_value = UNBOUND_VALUE; +} + +RATComb__Tested__Type::RATComb__Tested__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.RATComb_Tested_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +RATComb__Tested__Type::RATComb__Tested__Type(enum_type other_value) +{ +enum_value = other_value; +} + +RATComb__Tested__Type::RATComb__Tested__Type(const RATComb__Tested__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +enum_value = other_value.enum_value; +} + +RATComb__Tested__Type& RATComb__Tested__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.RATComb_Tested_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +RATComb__Tested__Type& RATComb__Tested__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +RATComb__Tested__Type& RATComb__Tested__Type::operator=(const RATComb__Tested__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean RATComb__Tested__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +return enum_value == other_value; +} + +boolean RATComb__Tested__Type::operator==(const RATComb__Tested__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +return enum_value == other_value.enum_value; +} + +boolean RATComb__Tested__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +return enum_value < other_value; +} + +boolean RATComb__Tested__Type::operator<(const RATComb__Tested__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +return enum_value < other_value.enum_value; +} + +boolean RATComb__Tested__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +return enum_value > other_value; +} + +boolean RATComb__Tested__Type::operator>(const RATComb__Tested__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +return enum_value > other_value.enum_value; +} + +const char *RATComb__Tested__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case EUTRA__UTRA: return "EUTRA_UTRA"; +case EUTRA__GERAN: return "EUTRA_GERAN"; +case EUTRA__Only: return "EUTRA_Only"; +default: return ""; +} +} + +RATComb__Tested__Type::enum_type RATComb__Tested__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "EUTRA_UTRA")) return EUTRA__UTRA; +else if (!strcmp(str_par, "EUTRA_GERAN")) return EUTRA__GERAN; +else if (!strcmp(str_par, "EUTRA_Only")) return EUTRA__Only; +else return UNKNOWN_VALUE; +} + +boolean RATComb__Tested__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +return TRUE; +default: +return FALSE; +} +} + +int RATComb__Tested__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.RATComb_Tested_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int RATComb__Tested__Type::enum2int(const RATComb__Tested__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.RATComb_Tested_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void RATComb__Tested__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.RATComb_Tested_Type.", int_val); +enum_value = (enum_type)int_val; +} + +RATComb__Tested__Type::operator RATComb__Tested__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.RATComb_Tested_Type."); +return enum_value; +} + +boolean RATComb__Tested__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void RATComb__Tested__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* RATComb__Tested__Type::clone() const { return new RATComb__Tested__Type(*this); } +const TTCN_Typedescriptor_t* RATComb__Tested__Type::get_descriptor() const { return &RATComb__Tested__Type_descr_; } +void RATComb__Tested__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void RATComb__Tested__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.RATComb_Tested_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.RATComb_Tested_Type."); + } +} + +Module_Param* RATComb__Tested__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void RATComb__Tested__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +text_buf.push_int(enum_value); +} + +void RATComb__Tested__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.RATComb_Tested_Type.", enum_value); +} + +void RATComb__Tested__Type_template::copy_template(const RATComb__Tested__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new RATComb__Tested__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new RATComb__Tested__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new RATComb__Tested__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.RATComb_Tested_Type."); +} +} + +RATComb__Tested__Type_template::RATComb__Tested__Type_template() +{ +} + +RATComb__Tested__Type_template::RATComb__Tested__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +RATComb__Tested__Type_template::RATComb__Tested__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!RATComb__Tested__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.RATComb_Tested_Type with unknown numeric value %d.", other_value); +single_value = (RATComb__Tested__Type::enum_type)other_value; +} + +RATComb__Tested__Type_template::RATComb__Tested__Type_template(RATComb__Tested__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +RATComb__Tested__Type_template::RATComb__Tested__Type_template(const RATComb__Tested__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == RATComb__Tested__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type."); +single_value = other_value.enum_value; +} + +RATComb__Tested__Type_template::RATComb__Tested__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (RATComb__Tested__Type::enum_type)(const RATComb__Tested__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.RATComb_Tested_Type from an unbound optional field."); +} +} + +RATComb__Tested__Type_template::RATComb__Tested__Type_template(RATComb__Tested__Type_template* p_precondition, RATComb__Tested__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +RATComb__Tested__Type_template::RATComb__Tested__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +RATComb__Tested__Type_template::RATComb__Tested__Type_template(const RATComb__Tested__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +RATComb__Tested__Type_template::~RATComb__Tested__Type_template() +{ +clean_up(); +} + +boolean RATComb__Tested__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean RATComb__Tested__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != RATComb__Tested__Type::UNBOUND_VALUE; +} + +void RATComb__Tested__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +RATComb__Tested__Type_template& RATComb__Tested__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RATComb__Tested__Type_template& RATComb__Tested__Type_template::operator=(int other_value) +{ +if (!RATComb__Tested__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.RATComb_Tested_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (RATComb__Tested__Type::enum_type)other_value; +return *this; +} + +RATComb__Tested__Type_template& RATComb__Tested__Type_template::operator=(RATComb__Tested__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +RATComb__Tested__Type_template& RATComb__Tested__Type_template::operator=(const RATComb__Tested__Type& other_value) +{ +if (other_value.enum_value == RATComb__Tested__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.RATComb_Tested_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +RATComb__Tested__Type_template& RATComb__Tested__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (RATComb__Tested__Type::enum_type)(const RATComb__Tested__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.RATComb_Tested_Type."); +} +return *this; +} + +RATComb__Tested__Type_template& RATComb__Tested__Type_template::operator=(const RATComb__Tested__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean RATComb__Tested__Type_template::match(RATComb__Tested__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.RATComb_Tested_Type."); +} +return FALSE; +} + +boolean RATComb__Tested__Type_template::match(const RATComb__Tested__Type& other_value, boolean) const +{ +if (other_value.enum_value == RATComb__Tested__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.RATComb_Tested_Type with an unbound value."); +return match(other_value.enum_value); +} + +RATComb__Tested__Type::enum_type RATComb__Tested__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.RATComb_Tested_Type."); +return single_value; +} + +void RATComb__Tested__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.RATComb_Tested_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new RATComb__Tested__Type_template[list_length]; +} + +RATComb__Tested__Type_template& RATComb__Tested__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.RATComb_Tested_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.RATComb_Tested_Type."); +return value_list.list_value[list_index]; +} + +void RATComb__Tested__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void RATComb__Tested__Type_template::set_value(template_sel other_value) { *this = other_value; } +void RATComb__Tested__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* RATComb__Tested__Type_template::clone() const { return new RATComb__Tested__Type_template(*this); } +const TTCN_Typedescriptor_t* RATComb__Tested__Type_template::get_descriptor() const { return &RATComb__Tested__Type_descr_; } +boolean RATComb__Tested__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void RATComb__Tested__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void RATComb__Tested__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(RATComb__Tested__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void RATComb__Tested__Type_template::log_match(const RATComb__Tested__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void RATComb__Tested__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.RATComb_Tested_Type."); +} +} + +void RATComb__Tested__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (RATComb__Tested__Type::enum_type)text_buf.pull_int().get_val(); +if (!RATComb__Tested__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.RATComb_Tested_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new RATComb__Tested__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.RATComb_Tested_Type."); +} +} + +boolean RATComb__Tested__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean RATComb__Tested__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + RATComb__Tested__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + RATComb__Tested__Type::enum_type enum_val = RATComb__Tested__Type::str_to_enum(m_p->get_enumerated()); + if (!RATComb__Tested__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.RATComb_Tested_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + RATComb__Tested__Type_template* precondition = new RATComb__Tested__Type_template; + precondition->set_param(*m_p->get_elem(0)); + RATComb__Tested__Type_template* implied_template = new RATComb__Tested__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = RATComb__Tested__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.RATComb_Tested_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* RATComb__Tested__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(RATComb__Tested__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +RRCConnectionReleaseRequired__Type::RRCConnectionReleaseRequired__Type() +{ +enum_value = UNBOUND_VALUE; +} + +RRCConnectionReleaseRequired__Type::RRCConnectionReleaseRequired__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +RRCConnectionReleaseRequired__Type::RRCConnectionReleaseRequired__Type(enum_type other_value) +{ +enum_value = other_value; +} + +RRCConnectionReleaseRequired__Type::RRCConnectionReleaseRequired__Type(const RRCConnectionReleaseRequired__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +enum_value = other_value.enum_value; +} + +RRCConnectionReleaseRequired__Type& RRCConnectionReleaseRequired__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +RRCConnectionReleaseRequired__Type& RRCConnectionReleaseRequired__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +RRCConnectionReleaseRequired__Type& RRCConnectionReleaseRequired__Type::operator=(const RRCConnectionReleaseRequired__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean RRCConnectionReleaseRequired__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +return enum_value == other_value; +} + +boolean RRCConnectionReleaseRequired__Type::operator==(const RRCConnectionReleaseRequired__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +return enum_value == other_value.enum_value; +} + +boolean RRCConnectionReleaseRequired__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +return enum_value < other_value; +} + +boolean RRCConnectionReleaseRequired__Type::operator<(const RRCConnectionReleaseRequired__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +return enum_value < other_value.enum_value; +} + +boolean RRCConnectionReleaseRequired__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +return enum_value > other_value; +} + +boolean RRCConnectionReleaseRequired__Type::operator>(const RRCConnectionReleaseRequired__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +return enum_value > other_value.enum_value; +} + +const char *RRCConnectionReleaseRequired__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case rrcConnectionRelease: return "rrcConnectionRelease"; +case noRrcConnectionRelease: return "noRrcConnectionRelease"; +default: return ""; +} +} + +RRCConnectionReleaseRequired__Type::enum_type RRCConnectionReleaseRequired__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "rrcConnectionRelease")) return rrcConnectionRelease; +else if (!strcmp(str_par, "noRrcConnectionRelease")) return noRrcConnectionRelease; +else return UNKNOWN_VALUE; +} + +boolean RRCConnectionReleaseRequired__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int RRCConnectionReleaseRequired__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int RRCConnectionReleaseRequired__Type::enum2int(const RRCConnectionReleaseRequired__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void RRCConnectionReleaseRequired__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type.", int_val); +enum_value = (enum_type)int_val; +} + +RRCConnectionReleaseRequired__Type::operator RRCConnectionReleaseRequired__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +return enum_value; +} + +boolean RRCConnectionReleaseRequired__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void RRCConnectionReleaseRequired__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* RRCConnectionReleaseRequired__Type::clone() const { return new RRCConnectionReleaseRequired__Type(*this); } +const TTCN_Typedescriptor_t* RRCConnectionReleaseRequired__Type::get_descriptor() const { return &RRCConnectionReleaseRequired__Type_descr_; } +void RRCConnectionReleaseRequired__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void RRCConnectionReleaseRequired__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.RRCConnectionReleaseRequired_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.RRCConnectionReleaseRequired_Type."); + } +} + +Module_Param* RRCConnectionReleaseRequired__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void RRCConnectionReleaseRequired__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +text_buf.push_int(enum_value); +} + +void RRCConnectionReleaseRequired__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type.", enum_value); +} + +void RRCConnectionReleaseRequired__Type_template::copy_template(const RRCConnectionReleaseRequired__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new RRCConnectionReleaseRequired__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new RRCConnectionReleaseRequired__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new RRCConnectionReleaseRequired__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +} +} + +RRCConnectionReleaseRequired__Type_template::RRCConnectionReleaseRequired__Type_template() +{ +} + +RRCConnectionReleaseRequired__Type_template::RRCConnectionReleaseRequired__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +RRCConnectionReleaseRequired__Type_template::RRCConnectionReleaseRequired__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!RRCConnectionReleaseRequired__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type with unknown numeric value %d.", other_value); +single_value = (RRCConnectionReleaseRequired__Type::enum_type)other_value; +} + +RRCConnectionReleaseRequired__Type_template::RRCConnectionReleaseRequired__Type_template(RRCConnectionReleaseRequired__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +RRCConnectionReleaseRequired__Type_template::RRCConnectionReleaseRequired__Type_template(const RRCConnectionReleaseRequired__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == RRCConnectionReleaseRequired__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +single_value = other_value.enum_value; +} + +RRCConnectionReleaseRequired__Type_template::RRCConnectionReleaseRequired__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (RRCConnectionReleaseRequired__Type::enum_type)(const RRCConnectionReleaseRequired__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type from an unbound optional field."); +} +} + +RRCConnectionReleaseRequired__Type_template::RRCConnectionReleaseRequired__Type_template(RRCConnectionReleaseRequired__Type_template* p_precondition, RRCConnectionReleaseRequired__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +RRCConnectionReleaseRequired__Type_template::RRCConnectionReleaseRequired__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +RRCConnectionReleaseRequired__Type_template::RRCConnectionReleaseRequired__Type_template(const RRCConnectionReleaseRequired__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +RRCConnectionReleaseRequired__Type_template::~RRCConnectionReleaseRequired__Type_template() +{ +clean_up(); +} + +boolean RRCConnectionReleaseRequired__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean RRCConnectionReleaseRequired__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != RRCConnectionReleaseRequired__Type::UNBOUND_VALUE; +} + +void RRCConnectionReleaseRequired__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +RRCConnectionReleaseRequired__Type_template& RRCConnectionReleaseRequired__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RRCConnectionReleaseRequired__Type_template& RRCConnectionReleaseRequired__Type_template::operator=(int other_value) +{ +if (!RRCConnectionReleaseRequired__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (RRCConnectionReleaseRequired__Type::enum_type)other_value; +return *this; +} + +RRCConnectionReleaseRequired__Type_template& RRCConnectionReleaseRequired__Type_template::operator=(RRCConnectionReleaseRequired__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +RRCConnectionReleaseRequired__Type_template& RRCConnectionReleaseRequired__Type_template::operator=(const RRCConnectionReleaseRequired__Type& other_value) +{ +if (other_value.enum_value == RRCConnectionReleaseRequired__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +RRCConnectionReleaseRequired__Type_template& RRCConnectionReleaseRequired__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (RRCConnectionReleaseRequired__Type::enum_type)(const RRCConnectionReleaseRequired__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +} +return *this; +} + +RRCConnectionReleaseRequired__Type_template& RRCConnectionReleaseRequired__Type_template::operator=(const RRCConnectionReleaseRequired__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean RRCConnectionReleaseRequired__Type_template::match(RRCConnectionReleaseRequired__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +} +return FALSE; +} + +boolean RRCConnectionReleaseRequired__Type_template::match(const RRCConnectionReleaseRequired__Type& other_value, boolean) const +{ +if (other_value.enum_value == RRCConnectionReleaseRequired__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type with an unbound value."); +return match(other_value.enum_value); +} + +RRCConnectionReleaseRequired__Type::enum_type RRCConnectionReleaseRequired__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +return single_value; +} + +void RRCConnectionReleaseRequired__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new RRCConnectionReleaseRequired__Type_template[list_length]; +} + +RRCConnectionReleaseRequired__Type_template& RRCConnectionReleaseRequired__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +return value_list.list_value[list_index]; +} + +void RRCConnectionReleaseRequired__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void RRCConnectionReleaseRequired__Type_template::set_value(template_sel other_value) { *this = other_value; } +void RRCConnectionReleaseRequired__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* RRCConnectionReleaseRequired__Type_template::clone() const { return new RRCConnectionReleaseRequired__Type_template(*this); } +const TTCN_Typedescriptor_t* RRCConnectionReleaseRequired__Type_template::get_descriptor() const { return &RRCConnectionReleaseRequired__Type_descr_; } +boolean RRCConnectionReleaseRequired__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void RRCConnectionReleaseRequired__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void RRCConnectionReleaseRequired__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(RRCConnectionReleaseRequired__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void RRCConnectionReleaseRequired__Type_template::log_match(const RRCConnectionReleaseRequired__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void RRCConnectionReleaseRequired__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +} +} + +void RRCConnectionReleaseRequired__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (RRCConnectionReleaseRequired__Type::enum_type)text_buf.pull_int().get_val(); +if (!RRCConnectionReleaseRequired__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new RRCConnectionReleaseRequired__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.RRCConnectionReleaseRequired_Type."); +} +} + +boolean RRCConnectionReleaseRequired__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean RRCConnectionReleaseRequired__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + RRCConnectionReleaseRequired__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + RRCConnectionReleaseRequired__Type::enum_type enum_val = RRCConnectionReleaseRequired__Type::str_to_enum(m_p->get_enumerated()); + if (!RRCConnectionReleaseRequired__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.RRCConnectionReleaseRequired_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + RRCConnectionReleaseRequired__Type_template* precondition = new RRCConnectionReleaseRequired__Type_template; + precondition->set_param(*m_p->get_elem(0)); + RRCConnectionReleaseRequired__Type_template* implied_template = new RRCConnectionReleaseRequired__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = RRCConnectionReleaseRequired__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.RRCConnectionReleaseRequired_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* RRCConnectionReleaseRequired__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(RRCConnectionReleaseRequired__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NTN__Satellite__Type::NTN__Satellite__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NTN__Satellite__Type::NTN__Satellite__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.NTN_Satellite_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NTN__Satellite__Type::NTN__Satellite__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NTN__Satellite__Type::NTN__Satellite__Type(const NTN__Satellite__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +enum_value = other_value.enum_value; +} + +NTN__Satellite__Type& NTN__Satellite__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.NTN_Satellite_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NTN__Satellite__Type& NTN__Satellite__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NTN__Satellite__Type& NTN__Satellite__Type::operator=(const NTN__Satellite__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NTN__Satellite__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +return enum_value == other_value; +} + +boolean NTN__Satellite__Type::operator==(const NTN__Satellite__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +return enum_value == other_value.enum_value; +} + +boolean NTN__Satellite__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +return enum_value < other_value; +} + +boolean NTN__Satellite__Type::operator<(const NTN__Satellite__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +return enum_value < other_value.enum_value; +} + +boolean NTN__Satellite__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +return enum_value > other_value; +} + +boolean NTN__Satellite__Type::operator>(const NTN__Satellite__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +return enum_value > other_value.enum_value; +} + +const char *NTN__Satellite__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case ntn__None: return "ntn_None"; +case ntn__GSO: return "ntn_GSO"; +case ntn__NGSO: return "ntn_NGSO"; +default: return ""; +} +} + +NTN__Satellite__Type::enum_type NTN__Satellite__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "ntn_None")) return ntn__None; +else if (!strcmp(str_par, "ntn_GSO")) return ntn__GSO; +else if (!strcmp(str_par, "ntn_NGSO")) return ntn__NGSO; +else return UNKNOWN_VALUE; +} + +boolean NTN__Satellite__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +return TRUE; +default: +return FALSE; +} +} + +int NTN__Satellite__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.NTN_Satellite_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NTN__Satellite__Type::enum2int(const NTN__Satellite__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.NTN_Satellite_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NTN__Satellite__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.NTN_Satellite_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NTN__Satellite__Type::operator NTN__Satellite__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.NTN_Satellite_Type."); +return enum_value; +} + +boolean NTN__Satellite__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NTN__Satellite__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NTN__Satellite__Type::clone() const { return new NTN__Satellite__Type(*this); } +const TTCN_Typedescriptor_t* NTN__Satellite__Type::get_descriptor() const { return &NTN__Satellite__Type_descr_; } +void NTN__Satellite__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NTN__Satellite__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.NTN_Satellite_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.NTN_Satellite_Type."); + } +} + +Module_Param* NTN__Satellite__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NTN__Satellite__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +text_buf.push_int(enum_value); +} + +void NTN__Satellite__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.NTN_Satellite_Type.", enum_value); +} + +void NTN__Satellite__Type_template::copy_template(const NTN__Satellite__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NTN__Satellite__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NTN__Satellite__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NTN__Satellite__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.NTN_Satellite_Type."); +} +} + +NTN__Satellite__Type_template::NTN__Satellite__Type_template() +{ +} + +NTN__Satellite__Type_template::NTN__Satellite__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NTN__Satellite__Type_template::NTN__Satellite__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NTN__Satellite__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.NTN_Satellite_Type with unknown numeric value %d.", other_value); +single_value = (NTN__Satellite__Type::enum_type)other_value; +} + +NTN__Satellite__Type_template::NTN__Satellite__Type_template(NTN__Satellite__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NTN__Satellite__Type_template::NTN__Satellite__Type_template(const NTN__Satellite__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NTN__Satellite__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type."); +single_value = other_value.enum_value; +} + +NTN__Satellite__Type_template::NTN__Satellite__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NTN__Satellite__Type::enum_type)(const NTN__Satellite__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.NTN_Satellite_Type from an unbound optional field."); +} +} + +NTN__Satellite__Type_template::NTN__Satellite__Type_template(NTN__Satellite__Type_template* p_precondition, NTN__Satellite__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NTN__Satellite__Type_template::NTN__Satellite__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NTN__Satellite__Type_template::NTN__Satellite__Type_template(const NTN__Satellite__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NTN__Satellite__Type_template::~NTN__Satellite__Type_template() +{ +clean_up(); +} + +boolean NTN__Satellite__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NTN__Satellite__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NTN__Satellite__Type::UNBOUND_VALUE; +} + +void NTN__Satellite__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NTN__Satellite__Type_template& NTN__Satellite__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NTN__Satellite__Type_template& NTN__Satellite__Type_template::operator=(int other_value) +{ +if (!NTN__Satellite__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.NTN_Satellite_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NTN__Satellite__Type::enum_type)other_value; +return *this; +} + +NTN__Satellite__Type_template& NTN__Satellite__Type_template::operator=(NTN__Satellite__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NTN__Satellite__Type_template& NTN__Satellite__Type_template::operator=(const NTN__Satellite__Type& other_value) +{ +if (other_value.enum_value == NTN__Satellite__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.NTN_Satellite_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NTN__Satellite__Type_template& NTN__Satellite__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NTN__Satellite__Type::enum_type)(const NTN__Satellite__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.NTN_Satellite_Type."); +} +return *this; +} + +NTN__Satellite__Type_template& NTN__Satellite__Type_template::operator=(const NTN__Satellite__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NTN__Satellite__Type_template::match(NTN__Satellite__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.NTN_Satellite_Type."); +} +return FALSE; +} + +boolean NTN__Satellite__Type_template::match(const NTN__Satellite__Type& other_value, boolean) const +{ +if (other_value.enum_value == NTN__Satellite__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.NTN_Satellite_Type with an unbound value."); +return match(other_value.enum_value); +} + +NTN__Satellite__Type::enum_type NTN__Satellite__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.NTN_Satellite_Type."); +return single_value; +} + +void NTN__Satellite__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.NTN_Satellite_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NTN__Satellite__Type_template[list_length]; +} + +NTN__Satellite__Type_template& NTN__Satellite__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.NTN_Satellite_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.NTN_Satellite_Type."); +return value_list.list_value[list_index]; +} + +void NTN__Satellite__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NTN__Satellite__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NTN__Satellite__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NTN__Satellite__Type_template::clone() const { return new NTN__Satellite__Type_template(*this); } +const TTCN_Typedescriptor_t* NTN__Satellite__Type_template::get_descriptor() const { return &NTN__Satellite__Type_descr_; } +boolean NTN__Satellite__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NTN__Satellite__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NTN__Satellite__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NTN__Satellite__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NTN__Satellite__Type_template::log_match(const NTN__Satellite__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NTN__Satellite__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.NTN_Satellite_Type."); +} +} + +void NTN__Satellite__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NTN__Satellite__Type::enum_type)text_buf.pull_int().get_val(); +if (!NTN__Satellite__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.NTN_Satellite_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NTN__Satellite__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.NTN_Satellite_Type."); +} +} + +boolean NTN__Satellite__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NTN__Satellite__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NTN__Satellite__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NTN__Satellite__Type::enum_type enum_val = NTN__Satellite__Type::str_to_enum(m_p->get_enumerated()); + if (!NTN__Satellite__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.NTN_Satellite_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NTN__Satellite__Type_template* precondition = new NTN__Satellite__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NTN__Satellite__Type_template* implied_template = new NTN__Satellite__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NTN__Satellite__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.NTN_Satellite_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NTN__Satellite__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NTN__Satellite__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NGC__CellId__Type::NGC__CellId__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NGC__CellId__Type::NGC__CellId__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.NGC_CellId_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NGC__CellId__Type::NGC__CellId__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NGC__CellId__Type::NGC__CellId__Type(const NGC__CellId__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +enum_value = other_value.enum_value; +} + +NGC__CellId__Type& NGC__CellId__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.NGC_CellId_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NGC__CellId__Type& NGC__CellId__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NGC__CellId__Type& NGC__CellId__Type::operator=(const NGC__CellId__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NGC__CellId__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +return enum_value == other_value; +} + +boolean NGC__CellId__Type::operator==(const NGC__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +return enum_value == other_value.enum_value; +} + +boolean NGC__CellId__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +return enum_value < other_value; +} + +boolean NGC__CellId__Type::operator<(const NGC__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +return enum_value < other_value.enum_value; +} + +boolean NGC__CellId__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +return enum_value > other_value; +} + +boolean NGC__CellId__Type::operator>(const NGC__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +return enum_value > other_value.enum_value; +} + +const char *NGC__CellId__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case ngc__Cell__NonSpecific: return "ngc_Cell_NonSpecific"; +case ngc__CellA: return "ngc_CellA"; +case ngc__CellB: return "ngc_CellB"; +case ngc__CellC: return "ngc_CellC"; +case ngc__CellD: return "ngc_CellD"; +case ngc__CellE: return "ngc_CellE"; +case ngc__CellF: return "ngc_CellF"; +case ngc__CellG: return "ngc_CellG"; +case ngc__CellH: return "ngc_CellH"; +case ngc__CellI: return "ngc_CellI"; +case ngc__CellJ: return "ngc_CellJ"; +default: return ""; +} +} + +NGC__CellId__Type::enum_type NGC__CellId__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "ngc_Cell_NonSpecific")) return ngc__Cell__NonSpecific; +else if (!strcmp(str_par, "ngc_CellA")) return ngc__CellA; +else if (!strcmp(str_par, "ngc_CellB")) return ngc__CellB; +else if (!strcmp(str_par, "ngc_CellC")) return ngc__CellC; +else if (!strcmp(str_par, "ngc_CellD")) return ngc__CellD; +else if (!strcmp(str_par, "ngc_CellE")) return ngc__CellE; +else if (!strcmp(str_par, "ngc_CellF")) return ngc__CellF; +else if (!strcmp(str_par, "ngc_CellG")) return ngc__CellG; +else if (!strcmp(str_par, "ngc_CellH")) return ngc__CellH; +else if (!strcmp(str_par, "ngc_CellI")) return ngc__CellI; +else if (!strcmp(str_par, "ngc_CellJ")) return ngc__CellJ; +else return UNKNOWN_VALUE; +} + +boolean NGC__CellId__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +case 8: +case 9: +case 10: +return TRUE; +default: +return FALSE; +} +} + +int NGC__CellId__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.NGC_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NGC__CellId__Type::enum2int(const NGC__CellId__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.NGC_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NGC__CellId__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.NGC_CellId_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NGC__CellId__Type::operator NGC__CellId__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.NGC_CellId_Type."); +return enum_value; +} + +boolean NGC__CellId__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NGC__CellId__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NGC__CellId__Type::clone() const { return new NGC__CellId__Type(*this); } +const TTCN_Typedescriptor_t* NGC__CellId__Type::get_descriptor() const { return &NGC__CellId__Type_descr_; } +void NGC__CellId__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NGC__CellId__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.NGC_CellId_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.NGC_CellId_Type."); + } +} + +Module_Param* NGC__CellId__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NGC__CellId__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +text_buf.push_int(enum_value); +} + +void NGC__CellId__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.NGC_CellId_Type.", enum_value); +} + +void NGC__CellId__Type_template::copy_template(const NGC__CellId__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NGC__CellId__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NGC__CellId__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NGC__CellId__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.NGC_CellId_Type."); +} +} + +NGC__CellId__Type_template::NGC__CellId__Type_template() +{ +} + +NGC__CellId__Type_template::NGC__CellId__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NGC__CellId__Type_template::NGC__CellId__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NGC__CellId__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.NGC_CellId_Type with unknown numeric value %d.", other_value); +single_value = (NGC__CellId__Type::enum_type)other_value; +} + +NGC__CellId__Type_template::NGC__CellId__Type_template(NGC__CellId__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NGC__CellId__Type_template::NGC__CellId__Type_template(const NGC__CellId__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NGC__CellId__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.NGC_CellId_Type."); +single_value = other_value.enum_value; +} + +NGC__CellId__Type_template::NGC__CellId__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NGC__CellId__Type::enum_type)(const NGC__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.NGC_CellId_Type from an unbound optional field."); +} +} + +NGC__CellId__Type_template::NGC__CellId__Type_template(NGC__CellId__Type_template* p_precondition, NGC__CellId__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NGC__CellId__Type_template::NGC__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NGC__CellId__Type_template::NGC__CellId__Type_template(const NGC__CellId__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NGC__CellId__Type_template::~NGC__CellId__Type_template() +{ +clean_up(); +} + +boolean NGC__CellId__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NGC__CellId__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NGC__CellId__Type::UNBOUND_VALUE; +} + +void NGC__CellId__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NGC__CellId__Type_template& NGC__CellId__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NGC__CellId__Type_template& NGC__CellId__Type_template::operator=(int other_value) +{ +if (!NGC__CellId__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.NGC_CellId_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NGC__CellId__Type::enum_type)other_value; +return *this; +} + +NGC__CellId__Type_template& NGC__CellId__Type_template::operator=(NGC__CellId__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NGC__CellId__Type_template& NGC__CellId__Type_template::operator=(const NGC__CellId__Type& other_value) +{ +if (other_value.enum_value == NGC__CellId__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.NGC_CellId_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NGC__CellId__Type_template& NGC__CellId__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NGC__CellId__Type::enum_type)(const NGC__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.NGC_CellId_Type."); +} +return *this; +} + +NGC__CellId__Type_template& NGC__CellId__Type_template::operator=(const NGC__CellId__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NGC__CellId__Type_template::match(NGC__CellId__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.NGC_CellId_Type."); +} +return FALSE; +} + +boolean NGC__CellId__Type_template::match(const NGC__CellId__Type& other_value, boolean) const +{ +if (other_value.enum_value == NGC__CellId__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.NGC_CellId_Type with an unbound value."); +return match(other_value.enum_value); +} + +NGC__CellId__Type::enum_type NGC__CellId__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.NGC_CellId_Type."); +return single_value; +} + +void NGC__CellId__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.NGC_CellId_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NGC__CellId__Type_template[list_length]; +} + +NGC__CellId__Type_template& NGC__CellId__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.NGC_CellId_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.NGC_CellId_Type."); +return value_list.list_value[list_index]; +} + +void NGC__CellId__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NGC__CellId__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NGC__CellId__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NGC__CellId__Type_template::clone() const { return new NGC__CellId__Type_template(*this); } +const TTCN_Typedescriptor_t* NGC__CellId__Type_template::get_descriptor() const { return &NGC__CellId__Type_descr_; } +boolean NGC__CellId__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NGC__CellId__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NGC__CellId__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NGC__CellId__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NGC__CellId__Type_template::log_match(const NGC__CellId__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NGC__CellId__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.NGC_CellId_Type."); +} +} + +void NGC__CellId__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NGC__CellId__Type::enum_type)text_buf.pull_int().get_val(); +if (!NGC__CellId__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.NGC_CellId_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NGC__CellId__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.NGC_CellId_Type."); +} +} + +boolean NGC__CellId__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NGC__CellId__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NGC__CellId__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NGC__CellId__Type::enum_type enum_val = NGC__CellId__Type::str_to_enum(m_p->get_enumerated()); + if (!NGC__CellId__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.NGC_CellId_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NGC__CellId__Type_template* precondition = new NGC__CellId__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NGC__CellId__Type_template* implied_template = new NGC__CellId__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NGC__CellId__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.NGC_CellId_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NGC__CellId__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NGC__CellId__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NR__CellId__Type::NR__CellId__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NR__CellId__Type::NR__CellId__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.NR_CellId_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NR__CellId__Type::NR__CellId__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NR__CellId__Type::NR__CellId__Type(const NR__CellId__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +enum_value = other_value.enum_value; +} + +NR__CellId__Type& NR__CellId__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.NR_CellId_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NR__CellId__Type& NR__CellId__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NR__CellId__Type& NR__CellId__Type::operator=(const NR__CellId__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NR__CellId__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +return enum_value == other_value; +} + +boolean NR__CellId__Type::operator==(const NR__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +return enum_value == other_value.enum_value; +} + +boolean NR__CellId__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +return enum_value < other_value; +} + +boolean NR__CellId__Type::operator<(const NR__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +return enum_value < other_value.enum_value; +} + +boolean NR__CellId__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +return enum_value > other_value; +} + +boolean NR__CellId__Type::operator>(const NR__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +return enum_value > other_value.enum_value; +} + +const char *NR__CellId__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case nr__Cell__NonSpecific: return "nr_Cell_NonSpecific"; +case nr__Cell1: return "nr_Cell1"; +case nr__Cell2: return "nr_Cell2"; +case nr__Cell3: return "nr_Cell3"; +case nr__Cell4: return "nr_Cell4"; +case nr__Cell6: return "nr_Cell6"; +case nr__Cell10: return "nr_Cell10"; +case nr__Cell11: return "nr_Cell11"; +case nr__Cell12: return "nr_Cell12"; +case nr__Cell13: return "nr_Cell13"; +case nr__Cell14: return "nr_Cell14"; +case nr__Cell23: return "nr_Cell23"; +case nr__Cell28: return "nr_Cell28"; +case nr__Cell29: return "nr_Cell29"; +case nr__Cell30: return "nr_Cell30"; +case nr__Cell31: return "nr_Cell31"; +default: return ""; +} +} + +NR__CellId__Type::enum_type NR__CellId__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "nr_Cell_NonSpecific")) return nr__Cell__NonSpecific; +else if (!strcmp(str_par, "nr_Cell1")) return nr__Cell1; +else if (!strcmp(str_par, "nr_Cell2")) return nr__Cell2; +else if (!strcmp(str_par, "nr_Cell3")) return nr__Cell3; +else if (!strcmp(str_par, "nr_Cell4")) return nr__Cell4; +else if (!strcmp(str_par, "nr_Cell6")) return nr__Cell6; +else if (!strcmp(str_par, "nr_Cell10")) return nr__Cell10; +else if (!strcmp(str_par, "nr_Cell11")) return nr__Cell11; +else if (!strcmp(str_par, "nr_Cell12")) return nr__Cell12; +else if (!strcmp(str_par, "nr_Cell13")) return nr__Cell13; +else if (!strcmp(str_par, "nr_Cell14")) return nr__Cell14; +else if (!strcmp(str_par, "nr_Cell23")) return nr__Cell23; +else if (!strcmp(str_par, "nr_Cell28")) return nr__Cell28; +else if (!strcmp(str_par, "nr_Cell29")) return nr__Cell29; +else if (!strcmp(str_par, "nr_Cell30")) return nr__Cell30; +else if (!strcmp(str_par, "nr_Cell31")) return nr__Cell31; +else return UNKNOWN_VALUE; +} + +boolean NR__CellId__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +case 8: +case 9: +case 10: +case 11: +case 12: +case 13: +case 14: +case 15: +return TRUE; +default: +return FALSE; +} +} + +int NR__CellId__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.NR_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NR__CellId__Type::enum2int(const NR__CellId__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.NR_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NR__CellId__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.NR_CellId_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NR__CellId__Type::operator NR__CellId__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.NR_CellId_Type."); +return enum_value; +} + +boolean NR__CellId__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NR__CellId__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NR__CellId__Type::clone() const { return new NR__CellId__Type(*this); } +const TTCN_Typedescriptor_t* NR__CellId__Type::get_descriptor() const { return &NR__CellId__Type_descr_; } +void NR__CellId__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NR__CellId__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.NR_CellId_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.NR_CellId_Type."); + } +} + +Module_Param* NR__CellId__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NR__CellId__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +text_buf.push_int(enum_value); +} + +void NR__CellId__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.NR_CellId_Type.", enum_value); +} + +void NR__CellId__Type_template::copy_template(const NR__CellId__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NR__CellId__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NR__CellId__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NR__CellId__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.NR_CellId_Type."); +} +} + +NR__CellId__Type_template::NR__CellId__Type_template() +{ +} + +NR__CellId__Type_template::NR__CellId__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NR__CellId__Type_template::NR__CellId__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NR__CellId__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.NR_CellId_Type with unknown numeric value %d.", other_value); +single_value = (NR__CellId__Type::enum_type)other_value; +} + +NR__CellId__Type_template::NR__CellId__Type_template(NR__CellId__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NR__CellId__Type_template::NR__CellId__Type_template(const NR__CellId__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NR__CellId__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.NR_CellId_Type."); +single_value = other_value.enum_value; +} + +NR__CellId__Type_template::NR__CellId__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__CellId__Type::enum_type)(const NR__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.NR_CellId_Type from an unbound optional field."); +} +} + +NR__CellId__Type_template::NR__CellId__Type_template(NR__CellId__Type_template* p_precondition, NR__CellId__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NR__CellId__Type_template::NR__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NR__CellId__Type_template::NR__CellId__Type_template(const NR__CellId__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NR__CellId__Type_template::~NR__CellId__Type_template() +{ +clean_up(); +} + +boolean NR__CellId__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NR__CellId__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NR__CellId__Type::UNBOUND_VALUE; +} + +void NR__CellId__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NR__CellId__Type_template& NR__CellId__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__CellId__Type_template& NR__CellId__Type_template::operator=(int other_value) +{ +if (!NR__CellId__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.NR_CellId_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NR__CellId__Type::enum_type)other_value; +return *this; +} + +NR__CellId__Type_template& NR__CellId__Type_template::operator=(NR__CellId__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NR__CellId__Type_template& NR__CellId__Type_template::operator=(const NR__CellId__Type& other_value) +{ +if (other_value.enum_value == NR__CellId__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.NR_CellId_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NR__CellId__Type_template& NR__CellId__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NR__CellId__Type::enum_type)(const NR__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.NR_CellId_Type."); +} +return *this; +} + +NR__CellId__Type_template& NR__CellId__Type_template::operator=(const NR__CellId__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NR__CellId__Type_template::match(NR__CellId__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.NR_CellId_Type."); +} +return FALSE; +} + +boolean NR__CellId__Type_template::match(const NR__CellId__Type& other_value, boolean) const +{ +if (other_value.enum_value == NR__CellId__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.NR_CellId_Type with an unbound value."); +return match(other_value.enum_value); +} + +NR__CellId__Type::enum_type NR__CellId__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.NR_CellId_Type."); +return single_value; +} + +void NR__CellId__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.NR_CellId_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NR__CellId__Type_template[list_length]; +} + +NR__CellId__Type_template& NR__CellId__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.NR_CellId_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.NR_CellId_Type."); +return value_list.list_value[list_index]; +} + +void NR__CellId__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NR__CellId__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NR__CellId__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NR__CellId__Type_template::clone() const { return new NR__CellId__Type_template(*this); } +const TTCN_Typedescriptor_t* NR__CellId__Type_template::get_descriptor() const { return &NR__CellId__Type_descr_; } +boolean NR__CellId__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NR__CellId__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NR__CellId__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NR__CellId__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NR__CellId__Type_template::log_match(const NR__CellId__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NR__CellId__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.NR_CellId_Type."); +} +} + +void NR__CellId__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NR__CellId__Type::enum_type)text_buf.pull_int().get_val(); +if (!NR__CellId__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.NR_CellId_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NR__CellId__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.NR_CellId_Type."); +} +} + +boolean NR__CellId__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NR__CellId__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NR__CellId__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NR__CellId__Type::enum_type enum_val = NR__CellId__Type::str_to_enum(m_p->get_enumerated()); + if (!NR__CellId__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.NR_CellId_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NR__CellId__Type_template* precondition = new NR__CellId__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NR__CellId__Type_template* implied_template = new NR__CellId__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NR__CellId__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.NR_CellId_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NR__CellId__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NR__CellId__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + + +const NR__CellId__Type NR__CellIdList__Type::UNBOUND_ELEM; +NR__CellId__Type& NR__CellIdList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NR__CellId__Type& NR__CellIdList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NR__CellId__Type& NR__CellIdList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NR__CellId__Type& NR__CellIdList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NR__CellIdList__Type NR__CellIdList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NR__CellIdList__Type NR__CellIdList__Type::operator<<=(const INTEGER& rotate_count) const +{ +NR__CellIdList__Type rec_of; +return *((NR__CellIdList__Type*)rotl(rotate_count, &rec_of)); +} + +NR__CellIdList__Type NR__CellIdList__Type::operator>>=(const INTEGER& rotate_count) const +{ +NR__CellIdList__Type rec_of; +return *((NR__CellIdList__Type*)rotr(rotate_count, &rec_of)); +} + +NR__CellIdList__Type NR__CellIdList__Type::operator>>=(int rotate_count) const +{ +NR__CellIdList__Type rec_of; +return *((NR__CellIdList__Type*)rotr(rotate_count, &rec_of)); +} + +NR__CellIdList__Type NR__CellIdList__Type::operator+(const NR__CellIdList__Type& other_value) const +{ +NR__CellIdList__Type rec_of; +return *((NR__CellIdList__Type*)concat(&other_value, &rec_of)); +} + +NR__CellIdList__Type NR__CellIdList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NR__CellIdList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @CommonDefs.NR_CellIdList_Type concatenation."); +} + +NR__CellIdList__Type NR__CellIdList__Type::operator+(null_type) const +{ +return *this; +} + +NR__CellIdList__Type NR__CellIdList__Type::substr(int index, int returncount) const +{ +NR__CellIdList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NR__CellIdList__Type NR__CellIdList__Type::replace(int index, int len, const NR__CellIdList__Type& repl) const +{ +NR__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NR__CellIdList__Type NR__CellIdList__Type::replace(int index, int len, const NR__CellIdList__Type_template& repl) const +{ +NR__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NR__CellIdList__Type::create_elem() const { return new NR__CellId__Type; } +const Base_Type* NR__CellIdList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NR__CellIdList__Type::get_descriptor() const { return &NR__CellIdList__Type_descr_; } +NR__CellIdList__Type_template::NR__CellIdList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NR__CellIdList__Type_template::NR__CellIdList__Type_template(NR__CellIdList__Type_template* p_precondition, NR__CellIdList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NR__CellIdList__Type_template::NR__CellIdList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NR__CellIdList__Type_template::~NR__CellIdList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NR__CellIdList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NR__CellIdList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NR__CellIdList__Type_template& NR__CellIdList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__CellIdList__Type_template& NR__CellIdList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NR__CellIdList__Type_template& NR__CellIdList__Type_template::operator=(const NR__CellIdList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NR__CellIdList__Type_template& NR__CellIdList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NR__CellIdList__Type_template& NR__CellIdList__Type_template::operator=(const NR__CellIdList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NR__CellIdList__Type_template NR__CellIdList__Type_template::operator+(const NR__CellIdList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NR__CellIdList__Type_template(ANY_VALUE); +} +NR__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NR__CellIdList__Type_template NR__CellIdList__Type_template::operator+(const NR__CellIdList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NR__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NR__CellIdList__Type_template NR__CellIdList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NR__CellIdList__Type_template(ANY_VALUE); +} +NR__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NR__CellIdList__Type_template NR__CellIdList__Type_template::operator+(null_type) const +{ +return *this; +} + +NR__CellId__Type_template& NR__CellIdList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NR__CellId__Type_template& NR__CellIdList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NR__CellId__Type_template& NR__CellIdList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NR__CellId__Type_template& NR__CellIdList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NR__CellIdList__Type NR__CellIdList__Type_template::valueof() const +{ +NR__CellIdList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NR__CellIdList__Type NR__CellIdList__Type_template::substr(int index, int returncount) const +{ +NR__CellIdList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NR__CellIdList__Type NR__CellIdList__Type_template::replace(int index, int len, const NR__CellIdList__Type_template& repl) const +{ +NR__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NR__CellIdList__Type NR__CellIdList__Type_template::replace(int index, int len, const NR__CellIdList__Type& repl) const +{ +NR__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NR__CellIdList__Type_template::create_elem() const { return new NR__CellId__Type_template; } +const TTCN_Typedescriptor_t* NR__CellIdList__Type_template::get_descriptor() const { return &NR__CellIdList__Type_descr_; } +EUTRA__CellId__Type::EUTRA__CellId__Type() +{ +enum_value = UNBOUND_VALUE; +} + +EUTRA__CellId__Type::EUTRA__CellId__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.EUTRA_CellId_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +EUTRA__CellId__Type::EUTRA__CellId__Type(enum_type other_value) +{ +enum_value = other_value; +} + +EUTRA__CellId__Type::EUTRA__CellId__Type(const EUTRA__CellId__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +enum_value = other_value.enum_value; +} + +EUTRA__CellId__Type& EUTRA__CellId__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.EUTRA_CellId_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +EUTRA__CellId__Type& EUTRA__CellId__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +EUTRA__CellId__Type& EUTRA__CellId__Type::operator=(const EUTRA__CellId__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean EUTRA__CellId__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +return enum_value == other_value; +} + +boolean EUTRA__CellId__Type::operator==(const EUTRA__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +return enum_value == other_value.enum_value; +} + +boolean EUTRA__CellId__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +return enum_value < other_value; +} + +boolean EUTRA__CellId__Type::operator<(const EUTRA__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +return enum_value < other_value.enum_value; +} + +boolean EUTRA__CellId__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +return enum_value > other_value; +} + +boolean EUTRA__CellId__Type::operator>(const EUTRA__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +return enum_value > other_value.enum_value; +} + +const char *EUTRA__CellId__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case eutra__Cell__NonSpecific: return "eutra_Cell_NonSpecific"; +case eutra__Cell1: return "eutra_Cell1"; +case eutra__Cell2: return "eutra_Cell2"; +case eutra__Cell3: return "eutra_Cell3"; +case eutra__Cell4: return "eutra_Cell4"; +case eutra__Cell6: return "eutra_Cell6"; +case eutra__Cell10: return "eutra_Cell10"; +case eutra__Cell11: return "eutra_Cell11"; +case eutra__Cell12: return "eutra_Cell12"; +case eutra__Cell13: return "eutra_Cell13"; +case eutra__Cell14: return "eutra_Cell14"; +case eutra__Cell23: return "eutra_Cell23"; +case eutra__Cell28: return "eutra_Cell28"; +case eutra__Cell29: return "eutra_Cell29"; +case eutra__Cell30: return "eutra_Cell30"; +case eutra__Cell31: return "eutra_Cell31"; +case eutra__CellA: return "eutra_CellA"; +case eutra__CellB: return "eutra_CellB"; +case eutra__CellC: return "eutra_CellC"; +case eutra__CellD: return "eutra_CellD"; +case eutra__CellE: return "eutra_CellE"; +case eutra__CellG: return "eutra_CellG"; +case eutra__CellH: return "eutra_CellH"; +case eutra__CellI: return "eutra_CellI"; +case eutra__CellJ: return "eutra_CellJ"; +case eutra__CellK: return "eutra_CellK"; +case eutra__CellL: return "eutra_CellL"; +case eutra__CellM: return "eutra_CellM"; +default: return ""; +} +} + +EUTRA__CellId__Type::enum_type EUTRA__CellId__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "eutra_Cell_NonSpecific")) return eutra__Cell__NonSpecific; +else if (!strcmp(str_par, "eutra_Cell1")) return eutra__Cell1; +else if (!strcmp(str_par, "eutra_Cell2")) return eutra__Cell2; +else if (!strcmp(str_par, "eutra_Cell3")) return eutra__Cell3; +else if (!strcmp(str_par, "eutra_Cell4")) return eutra__Cell4; +else if (!strcmp(str_par, "eutra_Cell6")) return eutra__Cell6; +else if (!strcmp(str_par, "eutra_Cell10")) return eutra__Cell10; +else if (!strcmp(str_par, "eutra_Cell11")) return eutra__Cell11; +else if (!strcmp(str_par, "eutra_Cell12")) return eutra__Cell12; +else if (!strcmp(str_par, "eutra_Cell13")) return eutra__Cell13; +else if (!strcmp(str_par, "eutra_Cell14")) return eutra__Cell14; +else if (!strcmp(str_par, "eutra_Cell23")) return eutra__Cell23; +else if (!strcmp(str_par, "eutra_Cell28")) return eutra__Cell28; +else if (!strcmp(str_par, "eutra_Cell29")) return eutra__Cell29; +else if (!strcmp(str_par, "eutra_Cell30")) return eutra__Cell30; +else if (!strcmp(str_par, "eutra_Cell31")) return eutra__Cell31; +else if (!strcmp(str_par, "eutra_CellA")) return eutra__CellA; +else if (!strcmp(str_par, "eutra_CellB")) return eutra__CellB; +else if (!strcmp(str_par, "eutra_CellC")) return eutra__CellC; +else if (!strcmp(str_par, "eutra_CellD")) return eutra__CellD; +else if (!strcmp(str_par, "eutra_CellE")) return eutra__CellE; +else if (!strcmp(str_par, "eutra_CellG")) return eutra__CellG; +else if (!strcmp(str_par, "eutra_CellH")) return eutra__CellH; +else if (!strcmp(str_par, "eutra_CellI")) return eutra__CellI; +else if (!strcmp(str_par, "eutra_CellJ")) return eutra__CellJ; +else if (!strcmp(str_par, "eutra_CellK")) return eutra__CellK; +else if (!strcmp(str_par, "eutra_CellL")) return eutra__CellL; +else if (!strcmp(str_par, "eutra_CellM")) return eutra__CellM; +else return UNKNOWN_VALUE; +} + +boolean EUTRA__CellId__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +case 8: +case 9: +case 10: +case 11: +case 12: +case 13: +case 14: +case 15: +case 16: +case 17: +case 18: +case 19: +case 20: +case 21: +case 22: +case 23: +case 24: +case 25: +case 26: +case 27: +return TRUE; +default: +return FALSE; +} +} + +int EUTRA__CellId__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.EUTRA_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int EUTRA__CellId__Type::enum2int(const EUTRA__CellId__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.EUTRA_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void EUTRA__CellId__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.EUTRA_CellId_Type.", int_val); +enum_value = (enum_type)int_val; +} + +EUTRA__CellId__Type::operator EUTRA__CellId__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.EUTRA_CellId_Type."); +return enum_value; +} + +boolean EUTRA__CellId__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void EUTRA__CellId__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* EUTRA__CellId__Type::clone() const { return new EUTRA__CellId__Type(*this); } +const TTCN_Typedescriptor_t* EUTRA__CellId__Type::get_descriptor() const { return &EUTRA__CellId__Type_descr_; } +void EUTRA__CellId__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void EUTRA__CellId__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.EUTRA_CellId_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.EUTRA_CellId_Type."); + } +} + +Module_Param* EUTRA__CellId__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void EUTRA__CellId__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +text_buf.push_int(enum_value); +} + +void EUTRA__CellId__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.EUTRA_CellId_Type.", enum_value); +} + +void EUTRA__CellId__Type_template::copy_template(const EUTRA__CellId__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new EUTRA__CellId__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new EUTRA__CellId__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new EUTRA__CellId__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.EUTRA_CellId_Type."); +} +} + +EUTRA__CellId__Type_template::EUTRA__CellId__Type_template() +{ +} + +EUTRA__CellId__Type_template::EUTRA__CellId__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +EUTRA__CellId__Type_template::EUTRA__CellId__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!EUTRA__CellId__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.EUTRA_CellId_Type with unknown numeric value %d.", other_value); +single_value = (EUTRA__CellId__Type::enum_type)other_value; +} + +EUTRA__CellId__Type_template::EUTRA__CellId__Type_template(EUTRA__CellId__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +EUTRA__CellId__Type_template::EUTRA__CellId__Type_template(const EUTRA__CellId__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == EUTRA__CellId__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type."); +single_value = other_value.enum_value; +} + +EUTRA__CellId__Type_template::EUTRA__CellId__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (EUTRA__CellId__Type::enum_type)(const EUTRA__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.EUTRA_CellId_Type from an unbound optional field."); +} +} + +EUTRA__CellId__Type_template::EUTRA__CellId__Type_template(EUTRA__CellId__Type_template* p_precondition, EUTRA__CellId__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +EUTRA__CellId__Type_template::EUTRA__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +EUTRA__CellId__Type_template::EUTRA__CellId__Type_template(const EUTRA__CellId__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +EUTRA__CellId__Type_template::~EUTRA__CellId__Type_template() +{ +clean_up(); +} + +boolean EUTRA__CellId__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean EUTRA__CellId__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != EUTRA__CellId__Type::UNBOUND_VALUE; +} + +void EUTRA__CellId__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +EUTRA__CellId__Type_template& EUTRA__CellId__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EUTRA__CellId__Type_template& EUTRA__CellId__Type_template::operator=(int other_value) +{ +if (!EUTRA__CellId__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.EUTRA_CellId_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (EUTRA__CellId__Type::enum_type)other_value; +return *this; +} + +EUTRA__CellId__Type_template& EUTRA__CellId__Type_template::operator=(EUTRA__CellId__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +EUTRA__CellId__Type_template& EUTRA__CellId__Type_template::operator=(const EUTRA__CellId__Type& other_value) +{ +if (other_value.enum_value == EUTRA__CellId__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.EUTRA_CellId_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +EUTRA__CellId__Type_template& EUTRA__CellId__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (EUTRA__CellId__Type::enum_type)(const EUTRA__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.EUTRA_CellId_Type."); +} +return *this; +} + +EUTRA__CellId__Type_template& EUTRA__CellId__Type_template::operator=(const EUTRA__CellId__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean EUTRA__CellId__Type_template::match(EUTRA__CellId__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.EUTRA_CellId_Type."); +} +return FALSE; +} + +boolean EUTRA__CellId__Type_template::match(const EUTRA__CellId__Type& other_value, boolean) const +{ +if (other_value.enum_value == EUTRA__CellId__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.EUTRA_CellId_Type with an unbound value."); +return match(other_value.enum_value); +} + +EUTRA__CellId__Type::enum_type EUTRA__CellId__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.EUTRA_CellId_Type."); +return single_value; +} + +void EUTRA__CellId__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.EUTRA_CellId_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new EUTRA__CellId__Type_template[list_length]; +} + +EUTRA__CellId__Type_template& EUTRA__CellId__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.EUTRA_CellId_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.EUTRA_CellId_Type."); +return value_list.list_value[list_index]; +} + +void EUTRA__CellId__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void EUTRA__CellId__Type_template::set_value(template_sel other_value) { *this = other_value; } +void EUTRA__CellId__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* EUTRA__CellId__Type_template::clone() const { return new EUTRA__CellId__Type_template(*this); } +const TTCN_Typedescriptor_t* EUTRA__CellId__Type_template::get_descriptor() const { return &EUTRA__CellId__Type_descr_; } +boolean EUTRA__CellId__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void EUTRA__CellId__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void EUTRA__CellId__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(EUTRA__CellId__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void EUTRA__CellId__Type_template::log_match(const EUTRA__CellId__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void EUTRA__CellId__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.EUTRA_CellId_Type."); +} +} + +void EUTRA__CellId__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (EUTRA__CellId__Type::enum_type)text_buf.pull_int().get_val(); +if (!EUTRA__CellId__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.EUTRA_CellId_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new EUTRA__CellId__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.EUTRA_CellId_Type."); +} +} + +boolean EUTRA__CellId__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean EUTRA__CellId__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + EUTRA__CellId__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + EUTRA__CellId__Type::enum_type enum_val = EUTRA__CellId__Type::str_to_enum(m_p->get_enumerated()); + if (!EUTRA__CellId__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.EUTRA_CellId_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + EUTRA__CellId__Type_template* precondition = new EUTRA__CellId__Type_template; + precondition->set_param(*m_p->get_elem(0)); + EUTRA__CellId__Type_template* implied_template = new EUTRA__CellId__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = EUTRA__CellId__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.EUTRA_CellId_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* EUTRA__CellId__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(EUTRA__CellId__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + + +const EUTRA__CellId__Type EUTRA__CellIdList__Type::UNBOUND_ELEM; +EUTRA__CellId__Type& EUTRA__CellIdList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +EUTRA__CellId__Type& EUTRA__CellIdList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const EUTRA__CellId__Type& EUTRA__CellIdList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const EUTRA__CellId__Type& EUTRA__CellIdList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::operator<<=(const INTEGER& rotate_count) const +{ +EUTRA__CellIdList__Type rec_of; +return *((EUTRA__CellIdList__Type*)rotl(rotate_count, &rec_of)); +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::operator>>=(const INTEGER& rotate_count) const +{ +EUTRA__CellIdList__Type rec_of; +return *((EUTRA__CellIdList__Type*)rotr(rotate_count, &rec_of)); +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::operator>>=(int rotate_count) const +{ +EUTRA__CellIdList__Type rec_of; +return *((EUTRA__CellIdList__Type*)rotr(rotate_count, &rec_of)); +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::operator+(const EUTRA__CellIdList__Type& other_value) const +{ +EUTRA__CellIdList__Type rec_of; +return *((EUTRA__CellIdList__Type*)concat(&other_value, &rec_of)); +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const EUTRA__CellIdList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @CommonDefs.EUTRA_CellIdList_Type concatenation."); +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::operator+(null_type) const +{ +return *this; +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::substr(int index, int returncount) const +{ +EUTRA__CellIdList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::replace(int index, int len, const EUTRA__CellIdList__Type& repl) const +{ +EUTRA__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type::replace(int index, int len, const EUTRA__CellIdList__Type_template& repl) const +{ +EUTRA__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* EUTRA__CellIdList__Type::create_elem() const { return new EUTRA__CellId__Type; } +const Base_Type* EUTRA__CellIdList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* EUTRA__CellIdList__Type::get_descriptor() const { return &EUTRA__CellIdList__Type_descr_; } +EUTRA__CellIdList__Type_template::EUTRA__CellIdList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +EUTRA__CellIdList__Type_template::EUTRA__CellIdList__Type_template(EUTRA__CellIdList__Type_template* p_precondition, EUTRA__CellIdList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EUTRA__CellIdList__Type_template::EUTRA__CellIdList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EUTRA__CellIdList__Type_template::~EUTRA__CellIdList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EUTRA__CellIdList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const EUTRA__CellIdList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +EUTRA__CellIdList__Type_template& EUTRA__CellIdList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EUTRA__CellIdList__Type_template& EUTRA__CellIdList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +EUTRA__CellIdList__Type_template& EUTRA__CellIdList__Type_template::operator=(const EUTRA__CellIdList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EUTRA__CellIdList__Type_template& EUTRA__CellIdList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EUTRA__CellIdList__Type_template& EUTRA__CellIdList__Type_template::operator=(const EUTRA__CellIdList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EUTRA__CellIdList__Type_template EUTRA__CellIdList__Type_template::operator+(const EUTRA__CellIdList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return EUTRA__CellIdList__Type_template(ANY_VALUE); +} +EUTRA__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +EUTRA__CellIdList__Type_template EUTRA__CellIdList__Type_template::operator+(const EUTRA__CellIdList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +EUTRA__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +EUTRA__CellIdList__Type_template EUTRA__CellIdList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return EUTRA__CellIdList__Type_template(ANY_VALUE); +} +EUTRA__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +EUTRA__CellIdList__Type_template EUTRA__CellIdList__Type_template::operator+(null_type) const +{ +return *this; +} + +EUTRA__CellId__Type_template& EUTRA__CellIdList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +EUTRA__CellId__Type_template& EUTRA__CellIdList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const EUTRA__CellId__Type_template& EUTRA__CellIdList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const EUTRA__CellId__Type_template& EUTRA__CellIdList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type_template::valueof() const +{ +EUTRA__CellIdList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type_template::substr(int index, int returncount) const +{ +EUTRA__CellIdList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type_template::replace(int index, int len, const EUTRA__CellIdList__Type_template& repl) const +{ +EUTRA__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +EUTRA__CellIdList__Type EUTRA__CellIdList__Type_template::replace(int index, int len, const EUTRA__CellIdList__Type& repl) const +{ +EUTRA__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* EUTRA__CellIdList__Type_template::create_elem() const { return new EUTRA__CellId__Type_template; } +const TTCN_Typedescriptor_t* EUTRA__CellIdList__Type_template::get_descriptor() const { return &EUTRA__CellIdList__Type_descr_; } +UTRAN__CellId__Type::UTRAN__CellId__Type() +{ +enum_value = UNBOUND_VALUE; +} + +UTRAN__CellId__Type::UTRAN__CellId__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.UTRAN_CellId_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +UTRAN__CellId__Type::UTRAN__CellId__Type(enum_type other_value) +{ +enum_value = other_value; +} + +UTRAN__CellId__Type::UTRAN__CellId__Type(const UTRAN__CellId__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +enum_value = other_value.enum_value; +} + +UTRAN__CellId__Type& UTRAN__CellId__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.UTRAN_CellId_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +UTRAN__CellId__Type& UTRAN__CellId__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +UTRAN__CellId__Type& UTRAN__CellId__Type::operator=(const UTRAN__CellId__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean UTRAN__CellId__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +return enum_value == other_value; +} + +boolean UTRAN__CellId__Type::operator==(const UTRAN__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +return enum_value == other_value.enum_value; +} + +boolean UTRAN__CellId__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +return enum_value < other_value; +} + +boolean UTRAN__CellId__Type::operator<(const UTRAN__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +return enum_value < other_value.enum_value; +} + +boolean UTRAN__CellId__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +return enum_value > other_value; +} + +boolean UTRAN__CellId__Type::operator>(const UTRAN__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +return enum_value > other_value.enum_value; +} + +const char *UTRAN__CellId__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case utran__CellDedicated: return "utran_CellDedicated"; +case utran__Cell5: return "utran_Cell5"; +case utran__Cell7: return "utran_Cell7"; +case utran__Cell8: return "utran_Cell8"; +case utran__Cell9: return "utran_Cell9"; +case utran34__Cell1: return "utran34_Cell1"; +case utran34__Cell2: return "utran34_Cell2"; +case utran34__Cell3: return "utran34_Cell3"; +case utran34__Cell4: return "utran34_Cell4"; +case utran34__Cell5: return "utran34_Cell5"; +case utran34__Cell6: return "utran34_Cell6"; +case utran34__Cell7: return "utran34_Cell7"; +case utran34__Cell8: return "utran34_Cell8"; +case utran34__CellA: return "utran34_CellA"; +case utran34__CellB: return "utran34_CellB"; +case utran34__CellC: return "utran34_CellC"; +case utran34__CellD: return "utran34_CellD"; +case utran34__CellE: return "utran34_CellE"; +case utran34__CellF: return "utran34_CellF"; +case utran34__CellG: return "utran34_CellG"; +case utran34__CellH: return "utran34_CellH"; +default: return ""; +} +} + +UTRAN__CellId__Type::enum_type UTRAN__CellId__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "utran_CellDedicated")) return utran__CellDedicated; +else if (!strcmp(str_par, "utran_Cell5")) return utran__Cell5; +else if (!strcmp(str_par, "utran_Cell7")) return utran__Cell7; +else if (!strcmp(str_par, "utran_Cell8")) return utran__Cell8; +else if (!strcmp(str_par, "utran_Cell9")) return utran__Cell9; +else if (!strcmp(str_par, "utran34_Cell1")) return utran34__Cell1; +else if (!strcmp(str_par, "utran34_Cell2")) return utran34__Cell2; +else if (!strcmp(str_par, "utran34_Cell3")) return utran34__Cell3; +else if (!strcmp(str_par, "utran34_Cell4")) return utran34__Cell4; +else if (!strcmp(str_par, "utran34_Cell5")) return utran34__Cell5; +else if (!strcmp(str_par, "utran34_Cell6")) return utran34__Cell6; +else if (!strcmp(str_par, "utran34_Cell7")) return utran34__Cell7; +else if (!strcmp(str_par, "utran34_Cell8")) return utran34__Cell8; +else if (!strcmp(str_par, "utran34_CellA")) return utran34__CellA; +else if (!strcmp(str_par, "utran34_CellB")) return utran34__CellB; +else if (!strcmp(str_par, "utran34_CellC")) return utran34__CellC; +else if (!strcmp(str_par, "utran34_CellD")) return utran34__CellD; +else if (!strcmp(str_par, "utran34_CellE")) return utran34__CellE; +else if (!strcmp(str_par, "utran34_CellF")) return utran34__CellF; +else if (!strcmp(str_par, "utran34_CellG")) return utran34__CellG; +else if (!strcmp(str_par, "utran34_CellH")) return utran34__CellH; +else return UNKNOWN_VALUE; +} + +boolean UTRAN__CellId__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case -1: +case 5: +case 7: +case 8: +case 9: +case 1000: +case 1001: +case 1002: +case 1003: +case 1004: +case 1005: +case 1006: +case 1007: +case 2000: +case 2001: +case 2002: +case 2003: +case 2004: +case 2005: +case 2006: +case 2007: +return TRUE; +default: +return FALSE; +} +} + +int UTRAN__CellId__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.UTRAN_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int UTRAN__CellId__Type::enum2int(const UTRAN__CellId__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.UTRAN_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void UTRAN__CellId__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.UTRAN_CellId_Type.", int_val); +enum_value = (enum_type)int_val; +} + +UTRAN__CellId__Type::operator UTRAN__CellId__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.UTRAN_CellId_Type."); +return enum_value; +} + +boolean UTRAN__CellId__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void UTRAN__CellId__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* UTRAN__CellId__Type::clone() const { return new UTRAN__CellId__Type(*this); } +const TTCN_Typedescriptor_t* UTRAN__CellId__Type::get_descriptor() const { return &UTRAN__CellId__Type_descr_; } +void UTRAN__CellId__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void UTRAN__CellId__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.UTRAN_CellId_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.UTRAN_CellId_Type."); + } +} + +Module_Param* UTRAN__CellId__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void UTRAN__CellId__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +text_buf.push_int(enum_value); +} + +void UTRAN__CellId__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.UTRAN_CellId_Type.", enum_value); +} + +void UTRAN__CellId__Type_template::copy_template(const UTRAN__CellId__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new UTRAN__CellId__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new UTRAN__CellId__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new UTRAN__CellId__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.UTRAN_CellId_Type."); +} +} + +UTRAN__CellId__Type_template::UTRAN__CellId__Type_template() +{ +} + +UTRAN__CellId__Type_template::UTRAN__CellId__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +UTRAN__CellId__Type_template::UTRAN__CellId__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!UTRAN__CellId__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.UTRAN_CellId_Type with unknown numeric value %d.", other_value); +single_value = (UTRAN__CellId__Type::enum_type)other_value; +} + +UTRAN__CellId__Type_template::UTRAN__CellId__Type_template(UTRAN__CellId__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +UTRAN__CellId__Type_template::UTRAN__CellId__Type_template(const UTRAN__CellId__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == UTRAN__CellId__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type."); +single_value = other_value.enum_value; +} + +UTRAN__CellId__Type_template::UTRAN__CellId__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (UTRAN__CellId__Type::enum_type)(const UTRAN__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.UTRAN_CellId_Type from an unbound optional field."); +} +} + +UTRAN__CellId__Type_template::UTRAN__CellId__Type_template(UTRAN__CellId__Type_template* p_precondition, UTRAN__CellId__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +UTRAN__CellId__Type_template::UTRAN__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +UTRAN__CellId__Type_template::UTRAN__CellId__Type_template(const UTRAN__CellId__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +UTRAN__CellId__Type_template::~UTRAN__CellId__Type_template() +{ +clean_up(); +} + +boolean UTRAN__CellId__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean UTRAN__CellId__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != UTRAN__CellId__Type::UNBOUND_VALUE; +} + +void UTRAN__CellId__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +UTRAN__CellId__Type_template& UTRAN__CellId__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UTRAN__CellId__Type_template& UTRAN__CellId__Type_template::operator=(int other_value) +{ +if (!UTRAN__CellId__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.UTRAN_CellId_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (UTRAN__CellId__Type::enum_type)other_value; +return *this; +} + +UTRAN__CellId__Type_template& UTRAN__CellId__Type_template::operator=(UTRAN__CellId__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +UTRAN__CellId__Type_template& UTRAN__CellId__Type_template::operator=(const UTRAN__CellId__Type& other_value) +{ +if (other_value.enum_value == UTRAN__CellId__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.UTRAN_CellId_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +UTRAN__CellId__Type_template& UTRAN__CellId__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (UTRAN__CellId__Type::enum_type)(const UTRAN__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.UTRAN_CellId_Type."); +} +return *this; +} + +UTRAN__CellId__Type_template& UTRAN__CellId__Type_template::operator=(const UTRAN__CellId__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean UTRAN__CellId__Type_template::match(UTRAN__CellId__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.UTRAN_CellId_Type."); +} +return FALSE; +} + +boolean UTRAN__CellId__Type_template::match(const UTRAN__CellId__Type& other_value, boolean) const +{ +if (other_value.enum_value == UTRAN__CellId__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.UTRAN_CellId_Type with an unbound value."); +return match(other_value.enum_value); +} + +UTRAN__CellId__Type::enum_type UTRAN__CellId__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.UTRAN_CellId_Type."); +return single_value; +} + +void UTRAN__CellId__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.UTRAN_CellId_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new UTRAN__CellId__Type_template[list_length]; +} + +UTRAN__CellId__Type_template& UTRAN__CellId__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.UTRAN_CellId_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.UTRAN_CellId_Type."); +return value_list.list_value[list_index]; +} + +void UTRAN__CellId__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void UTRAN__CellId__Type_template::set_value(template_sel other_value) { *this = other_value; } +void UTRAN__CellId__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* UTRAN__CellId__Type_template::clone() const { return new UTRAN__CellId__Type_template(*this); } +const TTCN_Typedescriptor_t* UTRAN__CellId__Type_template::get_descriptor() const { return &UTRAN__CellId__Type_descr_; } +boolean UTRAN__CellId__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void UTRAN__CellId__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void UTRAN__CellId__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(UTRAN__CellId__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void UTRAN__CellId__Type_template::log_match(const UTRAN__CellId__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void UTRAN__CellId__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.UTRAN_CellId_Type."); +} +} + +void UTRAN__CellId__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (UTRAN__CellId__Type::enum_type)text_buf.pull_int().get_val(); +if (!UTRAN__CellId__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.UTRAN_CellId_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new UTRAN__CellId__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.UTRAN_CellId_Type."); +} +} + +boolean UTRAN__CellId__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean UTRAN__CellId__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + UTRAN__CellId__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + UTRAN__CellId__Type::enum_type enum_val = UTRAN__CellId__Type::str_to_enum(m_p->get_enumerated()); + if (!UTRAN__CellId__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.UTRAN_CellId_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + UTRAN__CellId__Type_template* precondition = new UTRAN__CellId__Type_template; + precondition->set_param(*m_p->get_elem(0)); + UTRAN__CellId__Type_template* implied_template = new UTRAN__CellId__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = UTRAN__CellId__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.UTRAN_CellId_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* UTRAN__CellId__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(UTRAN__CellId__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + + +const UTRAN__CellId__Type UTRAN__CellIdList__Type::UNBOUND_ELEM; +UTRAN__CellId__Type& UTRAN__CellIdList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +UTRAN__CellId__Type& UTRAN__CellIdList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const UTRAN__CellId__Type& UTRAN__CellIdList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const UTRAN__CellId__Type& UTRAN__CellIdList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::operator<<=(const INTEGER& rotate_count) const +{ +UTRAN__CellIdList__Type rec_of; +return *((UTRAN__CellIdList__Type*)rotl(rotate_count, &rec_of)); +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::operator>>=(const INTEGER& rotate_count) const +{ +UTRAN__CellIdList__Type rec_of; +return *((UTRAN__CellIdList__Type*)rotr(rotate_count, &rec_of)); +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::operator>>=(int rotate_count) const +{ +UTRAN__CellIdList__Type rec_of; +return *((UTRAN__CellIdList__Type*)rotr(rotate_count, &rec_of)); +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::operator+(const UTRAN__CellIdList__Type& other_value) const +{ +UTRAN__CellIdList__Type rec_of; +return *((UTRAN__CellIdList__Type*)concat(&other_value, &rec_of)); +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const UTRAN__CellIdList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @CommonDefs.UTRAN_CellIdList_Type concatenation."); +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::operator+(null_type) const +{ +return *this; +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::substr(int index, int returncount) const +{ +UTRAN__CellIdList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::replace(int index, int len, const UTRAN__CellIdList__Type& repl) const +{ +UTRAN__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type::replace(int index, int len, const UTRAN__CellIdList__Type_template& repl) const +{ +UTRAN__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* UTRAN__CellIdList__Type::create_elem() const { return new UTRAN__CellId__Type; } +const Base_Type* UTRAN__CellIdList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* UTRAN__CellIdList__Type::get_descriptor() const { return &UTRAN__CellIdList__Type_descr_; } +UTRAN__CellIdList__Type_template::UTRAN__CellIdList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +UTRAN__CellIdList__Type_template::UTRAN__CellIdList__Type_template(UTRAN__CellIdList__Type_template* p_precondition, UTRAN__CellIdList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UTRAN__CellIdList__Type_template::UTRAN__CellIdList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UTRAN__CellIdList__Type_template::~UTRAN__CellIdList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UTRAN__CellIdList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const UTRAN__CellIdList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +UTRAN__CellIdList__Type_template& UTRAN__CellIdList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UTRAN__CellIdList__Type_template& UTRAN__CellIdList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +UTRAN__CellIdList__Type_template& UTRAN__CellIdList__Type_template::operator=(const UTRAN__CellIdList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UTRAN__CellIdList__Type_template& UTRAN__CellIdList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UTRAN__CellIdList__Type_template& UTRAN__CellIdList__Type_template::operator=(const UTRAN__CellIdList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UTRAN__CellIdList__Type_template UTRAN__CellIdList__Type_template::operator+(const UTRAN__CellIdList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return UTRAN__CellIdList__Type_template(ANY_VALUE); +} +UTRAN__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +UTRAN__CellIdList__Type_template UTRAN__CellIdList__Type_template::operator+(const UTRAN__CellIdList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +UTRAN__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +UTRAN__CellIdList__Type_template UTRAN__CellIdList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return UTRAN__CellIdList__Type_template(ANY_VALUE); +} +UTRAN__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +UTRAN__CellIdList__Type_template UTRAN__CellIdList__Type_template::operator+(null_type) const +{ +return *this; +} + +UTRAN__CellId__Type_template& UTRAN__CellIdList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +UTRAN__CellId__Type_template& UTRAN__CellIdList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const UTRAN__CellId__Type_template& UTRAN__CellIdList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const UTRAN__CellId__Type_template& UTRAN__CellIdList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type_template::valueof() const +{ +UTRAN__CellIdList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type_template::substr(int index, int returncount) const +{ +UTRAN__CellIdList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type_template::replace(int index, int len, const UTRAN__CellIdList__Type_template& repl) const +{ +UTRAN__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +UTRAN__CellIdList__Type UTRAN__CellIdList__Type_template::replace(int index, int len, const UTRAN__CellIdList__Type& repl) const +{ +UTRAN__CellIdList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* UTRAN__CellIdList__Type_template::create_elem() const { return new UTRAN__CellId__Type_template; } +const TTCN_Typedescriptor_t* UTRAN__CellIdList__Type_template::get_descriptor() const { return &UTRAN__CellIdList__Type_descr_; } +WLAN__CellId__Type::WLAN__CellId__Type() +{ +enum_value = UNBOUND_VALUE; +} + +WLAN__CellId__Type::WLAN__CellId__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.WLAN_CellId_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +WLAN__CellId__Type::WLAN__CellId__Type(enum_type other_value) +{ +enum_value = other_value; +} + +WLAN__CellId__Type::WLAN__CellId__Type(const WLAN__CellId__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +enum_value = other_value.enum_value; +} + +WLAN__CellId__Type& WLAN__CellId__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.WLAN_CellId_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +WLAN__CellId__Type& WLAN__CellId__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +WLAN__CellId__Type& WLAN__CellId__Type::operator=(const WLAN__CellId__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean WLAN__CellId__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +return enum_value == other_value; +} + +boolean WLAN__CellId__Type::operator==(const WLAN__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +return enum_value == other_value.enum_value; +} + +boolean WLAN__CellId__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +return enum_value < other_value; +} + +boolean WLAN__CellId__Type::operator<(const WLAN__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +return enum_value < other_value.enum_value; +} + +boolean WLAN__CellId__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +return enum_value > other_value; +} + +boolean WLAN__CellId__Type::operator>(const WLAN__CellId__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +return enum_value > other_value.enum_value; +} + +const char *WLAN__CellId__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case wlan__Cell__NonSpecific: return "wlan_Cell_NonSpecific"; +case wlan__Cell27: return "wlan_Cell27"; +case wlan__Cell27b: return "wlan_Cell27b"; +case wlan__Cell39: return "wlan_Cell39"; +default: return ""; +} +} + +WLAN__CellId__Type::enum_type WLAN__CellId__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "wlan_Cell_NonSpecific")) return wlan__Cell__NonSpecific; +else if (!strcmp(str_par, "wlan_Cell27")) return wlan__Cell27; +else if (!strcmp(str_par, "wlan_Cell27b")) return wlan__Cell27b; +else if (!strcmp(str_par, "wlan_Cell39")) return wlan__Cell39; +else return UNKNOWN_VALUE; +} + +boolean WLAN__CellId__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case -1: +case 27: +case 272: +case 39: +return TRUE; +default: +return FALSE; +} +} + +int WLAN__CellId__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.WLAN_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int WLAN__CellId__Type::enum2int(const WLAN__CellId__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.WLAN_CellId_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void WLAN__CellId__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.WLAN_CellId_Type.", int_val); +enum_value = (enum_type)int_val; +} + +WLAN__CellId__Type::operator WLAN__CellId__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.WLAN_CellId_Type."); +return enum_value; +} + +boolean WLAN__CellId__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void WLAN__CellId__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* WLAN__CellId__Type::clone() const { return new WLAN__CellId__Type(*this); } +const TTCN_Typedescriptor_t* WLAN__CellId__Type::get_descriptor() const { return &WLAN__CellId__Type_descr_; } +void WLAN__CellId__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void WLAN__CellId__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.WLAN_CellId_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.WLAN_CellId_Type."); + } +} + +Module_Param* WLAN__CellId__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void WLAN__CellId__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +text_buf.push_int(enum_value); +} + +void WLAN__CellId__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.WLAN_CellId_Type.", enum_value); +} + +void WLAN__CellId__Type_template::copy_template(const WLAN__CellId__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new WLAN__CellId__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new WLAN__CellId__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new WLAN__CellId__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.WLAN_CellId_Type."); +} +} + +WLAN__CellId__Type_template::WLAN__CellId__Type_template() +{ +} + +WLAN__CellId__Type_template::WLAN__CellId__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +WLAN__CellId__Type_template::WLAN__CellId__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!WLAN__CellId__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.WLAN_CellId_Type with unknown numeric value %d.", other_value); +single_value = (WLAN__CellId__Type::enum_type)other_value; +} + +WLAN__CellId__Type_template::WLAN__CellId__Type_template(WLAN__CellId__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +WLAN__CellId__Type_template::WLAN__CellId__Type_template(const WLAN__CellId__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == WLAN__CellId__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type."); +single_value = other_value.enum_value; +} + +WLAN__CellId__Type_template::WLAN__CellId__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (WLAN__CellId__Type::enum_type)(const WLAN__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.WLAN_CellId_Type from an unbound optional field."); +} +} + +WLAN__CellId__Type_template::WLAN__CellId__Type_template(WLAN__CellId__Type_template* p_precondition, WLAN__CellId__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +WLAN__CellId__Type_template::WLAN__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +WLAN__CellId__Type_template::WLAN__CellId__Type_template(const WLAN__CellId__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +WLAN__CellId__Type_template::~WLAN__CellId__Type_template() +{ +clean_up(); +} + +boolean WLAN__CellId__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean WLAN__CellId__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != WLAN__CellId__Type::UNBOUND_VALUE; +} + +void WLAN__CellId__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +WLAN__CellId__Type_template& WLAN__CellId__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +WLAN__CellId__Type_template& WLAN__CellId__Type_template::operator=(int other_value) +{ +if (!WLAN__CellId__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.WLAN_CellId_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (WLAN__CellId__Type::enum_type)other_value; +return *this; +} + +WLAN__CellId__Type_template& WLAN__CellId__Type_template::operator=(WLAN__CellId__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +WLAN__CellId__Type_template& WLAN__CellId__Type_template::operator=(const WLAN__CellId__Type& other_value) +{ +if (other_value.enum_value == WLAN__CellId__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.WLAN_CellId_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +WLAN__CellId__Type_template& WLAN__CellId__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (WLAN__CellId__Type::enum_type)(const WLAN__CellId__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.WLAN_CellId_Type."); +} +return *this; +} + +WLAN__CellId__Type_template& WLAN__CellId__Type_template::operator=(const WLAN__CellId__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean WLAN__CellId__Type_template::match(WLAN__CellId__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.WLAN_CellId_Type."); +} +return FALSE; +} + +boolean WLAN__CellId__Type_template::match(const WLAN__CellId__Type& other_value, boolean) const +{ +if (other_value.enum_value == WLAN__CellId__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.WLAN_CellId_Type with an unbound value."); +return match(other_value.enum_value); +} + +WLAN__CellId__Type::enum_type WLAN__CellId__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.WLAN_CellId_Type."); +return single_value; +} + +void WLAN__CellId__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.WLAN_CellId_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new WLAN__CellId__Type_template[list_length]; +} + +WLAN__CellId__Type_template& WLAN__CellId__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.WLAN_CellId_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.WLAN_CellId_Type."); +return value_list.list_value[list_index]; +} + +void WLAN__CellId__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void WLAN__CellId__Type_template::set_value(template_sel other_value) { *this = other_value; } +void WLAN__CellId__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* WLAN__CellId__Type_template::clone() const { return new WLAN__CellId__Type_template(*this); } +const TTCN_Typedescriptor_t* WLAN__CellId__Type_template::get_descriptor() const { return &WLAN__CellId__Type_descr_; } +boolean WLAN__CellId__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void WLAN__CellId__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void WLAN__CellId__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(WLAN__CellId__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void WLAN__CellId__Type_template::log_match(const WLAN__CellId__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void WLAN__CellId__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.WLAN_CellId_Type."); +} +} + +void WLAN__CellId__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (WLAN__CellId__Type::enum_type)text_buf.pull_int().get_val(); +if (!WLAN__CellId__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.WLAN_CellId_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new WLAN__CellId__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.WLAN_CellId_Type."); +} +} + +boolean WLAN__CellId__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean WLAN__CellId__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + WLAN__CellId__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + WLAN__CellId__Type::enum_type enum_val = WLAN__CellId__Type::str_to_enum(m_p->get_enumerated()); + if (!WLAN__CellId__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.WLAN_CellId_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + WLAN__CellId__Type_template* precondition = new WLAN__CellId__Type_template; + precondition->set_param(*m_p->get_elem(0)); + WLAN__CellId__Type_template* implied_template = new WLAN__CellId__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = WLAN__CellId__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.WLAN_CellId_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* WLAN__CellId__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(WLAN__CellId__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void DeltaValues__Type::init_vec() { fld_vec[0]=&field_DeltaNRf1; fld_vec[1]=&field_DeltaNRf2; fld_vec[2]=&field_DeltaNRf3; fld_vec[3]=&field_DeltaNRf4; } + +DeltaValues__Type::DeltaValues__Type() : Record_Type() { init_vec(); } + +DeltaValues__Type::DeltaValues__Type(const DeltaValues__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_DeltaNRf1.is_bound() ) + field_DeltaNRf1 = other_value.field_DeltaNRf1; +if (other_value.field_DeltaNRf2.is_bound() ) + field_DeltaNRf2 = other_value.field_DeltaNRf2; +if (other_value.field_DeltaNRf3.is_bound() ) + field_DeltaNRf3 = other_value.field_DeltaNRf3; +if (other_value.field_DeltaNRf4.is_bound() ) + field_DeltaNRf4 = other_value.field_DeltaNRf4; +init_vec(); +} + +DeltaValues__Type::DeltaValues__Type(const INTEGER& par_DeltaNRf1, + const INTEGER& par_DeltaNRf2, + const INTEGER& par_DeltaNRf3, + const INTEGER& par_DeltaNRf4) : field_DeltaNRf1(par_DeltaNRf1), + field_DeltaNRf2(par_DeltaNRf2), + field_DeltaNRf3(par_DeltaNRf3), + field_DeltaNRf4(par_DeltaNRf4) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DeltaValues__Type::get_descriptor() const { return &DeltaValues__Type_descr_; } +const TTCN_Typedescriptor_t* DeltaValues__Type::fld_descriptors[] = { &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_ }; +const TTCN_Typedescriptor_t* DeltaValues__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DeltaValues__Type::fld_names[] = { "DeltaNRf1", "DeltaNRf2", "DeltaNRf3", "DeltaNRf4" }; +const char* DeltaValues__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void DeltaValues__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[1] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[2] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[3] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +} +} + +DeltaValues__Type_template::DeltaValues__Type_template(DeltaValues__Type_template* p_precondition, DeltaValues__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DeltaValues__Type_template::DeltaValues__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DeltaValues__Type_template::~DeltaValues__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DeltaValues__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const DeltaValues__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DeltaValues__Type_template& DeltaValues__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DeltaValues__Type_template& DeltaValues__Type_template::operator=(const DeltaValues__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DeltaValues__Type_template& DeltaValues__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DeltaValues__Type_template& DeltaValues__Type_template::operator=(const DeltaValues__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DeltaValues__Type DeltaValues__Type_template::valueof() const +{ +DeltaValues__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +INTEGER_template& DeltaValues__Type_template::DeltaNRf1() { return *(static_cast(get_at(0))); } +const INTEGER_template& DeltaValues__Type_template::DeltaNRf1() const { return *(static_cast(get_at(0))); } +INTEGER_template& DeltaValues__Type_template::DeltaNRf2() { return *(static_cast(get_at(1))); } +const INTEGER_template& DeltaValues__Type_template::DeltaNRf2() const { return *(static_cast(get_at(1))); } +INTEGER_template& DeltaValues__Type_template::DeltaNRf3() { return *(static_cast(get_at(2))); } +const INTEGER_template& DeltaValues__Type_template::DeltaNRf3() const { return *(static_cast(get_at(2))); } +INTEGER_template& DeltaValues__Type_template::DeltaNRf4() { return *(static_cast(get_at(3))); } +const INTEGER_template& DeltaValues__Type_template::DeltaNRf4() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* DeltaValues__Type_template::get_descriptor() const { return &DeltaValues__Type_descr_; } +const char* DeltaValues__Type_template::fld_name(int p_index) const { return DeltaValues__Type::fld_names[p_index]; } +void UE__NR__DeltaValues__Type::init_vec() { fld_vec[0]=&field_DeltaPrimaryBand; fld_vec[1]=&field_DeltaSecondaryBand; } + +UE__NR__DeltaValues__Type::UE__NR__DeltaValues__Type() : Record_Type() { init_vec(); } + +UE__NR__DeltaValues__Type::UE__NR__DeltaValues__Type(const UE__NR__DeltaValues__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_DeltaPrimaryBand.is_bound() ) + field_DeltaPrimaryBand = other_value.field_DeltaPrimaryBand; +if (other_value.field_DeltaSecondaryBand.is_bound() ) + field_DeltaSecondaryBand = other_value.field_DeltaSecondaryBand; +init_vec(); +} + +UE__NR__DeltaValues__Type::UE__NR__DeltaValues__Type(const DeltaValues__Type& par_DeltaPrimaryBand, + const DeltaValues__Type& par_DeltaSecondaryBand) : field_DeltaPrimaryBand(par_DeltaPrimaryBand), + field_DeltaSecondaryBand(par_DeltaSecondaryBand) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__NR__DeltaValues__Type::get_descriptor() const { return &UE__NR__DeltaValues__Type_descr_; } +const TTCN_Typedescriptor_t* UE__NR__DeltaValues__Type::fld_descriptors[] = { &DeltaValues__Type_descr_, &DeltaValues__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__NR__DeltaValues__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__NR__DeltaValues__Type::fld_names[] = { "DeltaPrimaryBand", "DeltaSecondaryBand" }; +const char* UE__NR__DeltaValues__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__NR__DeltaValues__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new DeltaValues__Type_template(ANY_VALUE) : new DeltaValues__Type_template; +single_value.value_elements[1] = was_any ? new DeltaValues__Type_template(ANY_VALUE) : new DeltaValues__Type_template; +} +} + +UE__NR__DeltaValues__Type_template::UE__NR__DeltaValues__Type_template(UE__NR__DeltaValues__Type_template* p_precondition, UE__NR__DeltaValues__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__NR__DeltaValues__Type_template::UE__NR__DeltaValues__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__NR__DeltaValues__Type_template::~UE__NR__DeltaValues__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__NR__DeltaValues__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__NR__DeltaValues__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__NR__DeltaValues__Type_template& UE__NR__DeltaValues__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__NR__DeltaValues__Type_template& UE__NR__DeltaValues__Type_template::operator=(const UE__NR__DeltaValues__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__NR__DeltaValues__Type_template& UE__NR__DeltaValues__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__NR__DeltaValues__Type_template& UE__NR__DeltaValues__Type_template::operator=(const UE__NR__DeltaValues__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__NR__DeltaValues__Type UE__NR__DeltaValues__Type_template::valueof() const +{ +UE__NR__DeltaValues__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +DeltaValues__Type_template& UE__NR__DeltaValues__Type_template::DeltaPrimaryBand() { return *(static_cast(get_at(0))); } +const DeltaValues__Type_template& UE__NR__DeltaValues__Type_template::DeltaPrimaryBand() const { return *(static_cast(get_at(0))); } +DeltaValues__Type_template& UE__NR__DeltaValues__Type_template::DeltaSecondaryBand() { return *(static_cast(get_at(1))); } +const DeltaValues__Type_template& UE__NR__DeltaValues__Type_template::DeltaSecondaryBand() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* UE__NR__DeltaValues__Type_template::get_descriptor() const { return &UE__NR__DeltaValues__Type_descr_; } +const char* UE__NR__DeltaValues__Type_template::fld_name(int p_index) const { return UE__NR__DeltaValues__Type::fld_names[p_index]; } +void AnyCellId__Type::copy_value(const AnyCellId__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_Eutra: +field_Eutra = new EUTRA__CellId__Type(*other_value.field_Eutra); +break; +case ALT_Nr: +field_Nr = new NR__CellId__Type(*other_value.field_Nr); +break; +default: +TTCN_error("Assignment of an unbound union value of type @CommonDefs.AnyCellId_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +AnyCellId__Type::AnyCellId__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +AnyCellId__Type::AnyCellId__Type(const AnyCellId__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +AnyCellId__Type::~AnyCellId__Type() +{ +clean_up(); +} + +AnyCellId__Type& AnyCellId__Type::operator=(const AnyCellId__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean AnyCellId__Type::operator==(const AnyCellId__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @CommonDefs.AnyCellId_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @CommonDefs.AnyCellId_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_Eutra: +return *field_Eutra == *other_value.field_Eutra; +case ALT_Nr: +return *field_Nr == *other_value.field_Nr; +default: +return FALSE; +} +} + +EUTRA__CellId__Type& AnyCellId__Type::Eutra() +{ +if (union_selection != ALT_Eutra) { +clean_up(); +field_Eutra = new EUTRA__CellId__Type; +union_selection = ALT_Eutra; +} +return *field_Eutra; +} + +const EUTRA__CellId__Type& AnyCellId__Type::Eutra() const +{ +if (union_selection != ALT_Eutra) TTCN_error("Using non-selected field Eutra in a value of union type @CommonDefs.AnyCellId_Type."); +return *field_Eutra; +} + +NR__CellId__Type& AnyCellId__Type::Nr() +{ +if (union_selection != ALT_Nr) { +clean_up(); +field_Nr = new NR__CellId__Type; +union_selection = ALT_Nr; +} +return *field_Nr; +} + +const NR__CellId__Type& AnyCellId__Type::Nr() const +{ +if (union_selection != ALT_Nr) TTCN_error("Using non-selected field Nr in a value of union type @CommonDefs.AnyCellId_Type."); +return *field_Nr; +} + +boolean AnyCellId__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @CommonDefs.AnyCellId_Type."); +return union_selection == checked_selection; +} + +boolean AnyCellId__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean AnyCellId__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_Eutra: return field_Eutra->is_value(); +case ALT_Nr: return field_Nr->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void AnyCellId__Type::clean_up() +{ +switch (union_selection) { +case ALT_Eutra: + delete field_Eutra; + break; +case ALT_Nr: + delete field_Nr; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean AnyCellId__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void AnyCellId__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* AnyCellId__Type::clone() const { return new AnyCellId__Type(*this); } +const TTCN_Typedescriptor_t* AnyCellId__Type::get_descriptor() const { return &AnyCellId__Type_descr_; } +void AnyCellId__Type::log() const +{ +switch (union_selection) { +case ALT_Eutra: +TTCN_Logger::log_event_str("{ Eutra := "); +field_Eutra->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_Nr: +TTCN_Logger::log_event_str("{ Nr := "); +field_Nr->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void AnyCellId__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@CommonDefs.AnyCellId_Type'"); + } + if (strcmp("Eutra", param_field) == 0) { + Eutra().set_param(param); + return; + } else if (strcmp("Nr", param_field) == 0) { + Nr().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@CommonDefs.AnyCellId_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Eutra")) { + Eutra().set_param(*mp_last); + if (!Eutra().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "Nr")) { + Nr().set_param(*mp_last); + if (!Nr().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @CommonDefs.AnyCellId_Type.", last_name); +} + +Module_Param* AnyCellId__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@CommonDefs.AnyCellId_Type'"); + } + if (strcmp("Eutra", param_field) == 0) { + return Eutra().get_param(param_name); + } else if (strcmp("Nr", param_field) == 0) { + return Nr().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `AnyCellId__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_Eutra: + mp_field = field_Eutra->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Eutra"))); + break; + case ALT_Nr: + mp_field = field_Nr->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Nr"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void AnyCellId__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_Eutra: +field_Eutra->set_implicit_omit(); break; +case ALT_Nr: +field_Nr->set_implicit_omit(); break; +default: break; +} +} + +void AnyCellId__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_Eutra: +field_Eutra->encode_text(text_buf); +break; +case ALT_Nr: +field_Nr->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @CommonDefs.AnyCellId_Type."); +} +} + +void AnyCellId__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_Eutra: +Eutra().decode_text(text_buf); +break; +case ALT_Nr: +Nr().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @CommonDefs.AnyCellId_Type."); +} +} + +void AnyCellId__Type_template::copy_value(const AnyCellId__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case AnyCellId__Type::ALT_Eutra: +single_value.field_Eutra = new EUTRA__CellId__Type_template(other_value.Eutra()); +break; +case AnyCellId__Type::ALT_Nr: +single_value.field_Nr = new NR__CellId__Type_template(other_value.Nr()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @CommonDefs.AnyCellId_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void AnyCellId__Type_template::copy_template(const AnyCellId__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case AnyCellId__Type::ALT_Eutra: +single_value.field_Eutra = new EUTRA__CellId__Type_template(*other_value.single_value.field_Eutra); +break; +case AnyCellId__Type::ALT_Nr: +single_value.field_Nr = new NR__CellId__Type_template(*other_value.single_value.field_Nr); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @CommonDefs.AnyCellId_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new AnyCellId__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new AnyCellId__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new AnyCellId__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @CommonDefs.AnyCellId_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +AnyCellId__Type_template::AnyCellId__Type_template(): err_descr(NULL) +{ +} + +AnyCellId__Type_template::AnyCellId__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +AnyCellId__Type_template::AnyCellId__Type_template(const AnyCellId__Type& other_value) +{ +copy_value(other_value); +} + +AnyCellId__Type_template::AnyCellId__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const AnyCellId__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @CommonDefs.AnyCellId_Type from an unbound optional field."); +} +} + +AnyCellId__Type_template::AnyCellId__Type_template(AnyCellId__Type_template* p_precondition, AnyCellId__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +AnyCellId__Type_template::AnyCellId__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +AnyCellId__Type_template::AnyCellId__Type_template(const AnyCellId__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +AnyCellId__Type_template::~AnyCellId__Type_template() +{ +clean_up(); +} + +void AnyCellId__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case AnyCellId__Type::ALT_Eutra: +delete single_value.field_Eutra; +break; +case AnyCellId__Type::ALT_Nr: +delete single_value.field_Nr; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +AnyCellId__Type_template& AnyCellId__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +AnyCellId__Type_template& AnyCellId__Type_template::operator=(const AnyCellId__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +AnyCellId__Type_template& AnyCellId__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const AnyCellId__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @CommonDefs.AnyCellId_Type."); +} +return *this; +} + +AnyCellId__Type_template& AnyCellId__Type_template::operator=(const AnyCellId__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean AnyCellId__Type_template::match(const AnyCellId__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +AnyCellId__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == AnyCellId__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case AnyCellId__Type::ALT_Eutra: +return single_value.field_Eutra->match(other_value.Eutra(), legacy); +case AnyCellId__Type::ALT_Nr: +return single_value.field_Nr->match(other_value.Nr(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @CommonDefs.AnyCellId_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @CommonDefs.AnyCellId_Type."); +} +return FALSE; +} + +boolean AnyCellId__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case AnyCellId__Type::ALT_Eutra: +return single_value.field_Eutra->is_value(); +case AnyCellId__Type::ALT_Nr: +return single_value.field_Nr->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @CommonDefs.AnyCellId_Type."); +} +} + +AnyCellId__Type AnyCellId__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @CommonDefs.AnyCellId_Type."); +AnyCellId__Type ret_val; +switch (single_value.union_selection) { +case AnyCellId__Type::ALT_Eutra: +ret_val.Eutra() = single_value.field_Eutra->valueof(); +break; +case AnyCellId__Type::ALT_Nr: +ret_val.Nr() = single_value.field_Nr->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @CommonDefs.AnyCellId_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +AnyCellId__Type_template& AnyCellId__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @CommonDefs.AnyCellId_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @CommonDefs.AnyCellId_Type."); +return value_list.list_value[list_index]; +} +void AnyCellId__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @CommonDefs.AnyCellId_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new AnyCellId__Type_template[list_length]; +} + +AnyCellId__Type::union_selection_type AnyCellId__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @CommonDefs.AnyCellId_Type"); +return single_value.union_selection; +} + +EUTRA__CellId__Type_template& AnyCellId__Type_template::Eutra() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != AnyCellId__Type::ALT_Eutra) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Eutra = new EUTRA__CellId__Type_template(ANY_VALUE); +else single_value.field_Eutra = new EUTRA__CellId__Type_template; +single_value.union_selection = AnyCellId__Type::ALT_Eutra; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Eutra; +} + +const EUTRA__CellId__Type_template& AnyCellId__Type_template::Eutra() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Eutra in a non-specific template of union type @CommonDefs.AnyCellId_Type."); +if (single_value.union_selection != AnyCellId__Type::ALT_Eutra) TTCN_error("Accessing non-selected field Eutra in a template of union type @CommonDefs.AnyCellId_Type."); +return *single_value.field_Eutra; +} + +NR__CellId__Type_template& AnyCellId__Type_template::Nr() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != AnyCellId__Type::ALT_Nr) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Nr = new NR__CellId__Type_template(ANY_VALUE); +else single_value.field_Nr = new NR__CellId__Type_template; +single_value.union_selection = AnyCellId__Type::ALT_Nr; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Nr; +} + +const NR__CellId__Type_template& AnyCellId__Type_template::Nr() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Nr in a non-specific template of union type @CommonDefs.AnyCellId_Type."); +if (single_value.union_selection != AnyCellId__Type::ALT_Nr) TTCN_error("Accessing non-selected field Nr in a template of union type @CommonDefs.AnyCellId_Type."); +return *single_value.field_Nr; +} + +boolean AnyCellId__Type_template::ischosen(AnyCellId__Type::union_selection_type checked_selection) const +{ +if (checked_selection == AnyCellId__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @CommonDefs.AnyCellId_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == AnyCellId__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @CommonDefs.AnyCellId_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @CommonDefs.AnyCellId_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void AnyCellId__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void AnyCellId__Type_template::set_value(template_sel other_value) { *this = other_value; } +void AnyCellId__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* AnyCellId__Type_template::clone() const { return new AnyCellId__Type_template(*this); } +const TTCN_Typedescriptor_t* AnyCellId__Type_template::get_descriptor() const { return &AnyCellId__Type_descr_; } +boolean AnyCellId__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void AnyCellId__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void AnyCellId__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case AnyCellId__Type::ALT_Eutra: +TTCN_Logger::log_event_str("{ Eutra := "); +single_value.field_Eutra->log(); +TTCN_Logger::log_event_str(" }"); +break; +case AnyCellId__Type::ALT_Nr: +TTCN_Logger::log_event_str("{ Nr := "); +single_value.field_Nr->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void AnyCellId__Type_template::log_match(const AnyCellId__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case AnyCellId__Type::ALT_Eutra: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Eutra"); +single_value.field_Eutra->log_match(match_value.Eutra(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Eutra := "); +single_value.field_Eutra->log_match(match_value.Eutra(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case AnyCellId__Type::ALT_Nr: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Nr"); +single_value.field_Nr->log_match(match_value.Nr(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Nr := "); +single_value.field_Nr->log_match(match_value.Nr(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void AnyCellId__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case AnyCellId__Type::ALT_Eutra: +single_value.field_Eutra->encode_text(text_buf); +break; +case AnyCellId__Type::ALT_Nr: +single_value.field_Nr->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @CommonDefs.AnyCellId_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @CommonDefs.AnyCellId_Type."); +} +} + +void AnyCellId__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = AnyCellId__Type::UNBOUND_VALUE; +AnyCellId__Type::union_selection_type new_selection = (AnyCellId__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case AnyCellId__Type::ALT_Eutra: +single_value.field_Eutra = new EUTRA__CellId__Type_template; +single_value.field_Eutra->decode_text(text_buf); +break; +case AnyCellId__Type::ALT_Nr: +single_value.field_Nr = new NR__CellId__Type_template; +single_value.field_Nr->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @CommonDefs.AnyCellId_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new AnyCellId__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @CommonDefs.AnyCellId_Type."); +} +} + +boolean AnyCellId__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean AnyCellId__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@CommonDefs.AnyCellId_Type'"); + } + if (strcmp("Eutra", param_field) == 0) { + Eutra().set_param(param); + return; + } else if (strcmp("Nr", param_field) == 0) { + Nr().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@CommonDefs.AnyCellId_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + AnyCellId__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@CommonDefs.AnyCellId_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Eutra")) { + Eutra().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "Nr")) { + Nr().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @CommonDefs.AnyCellId_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + AnyCellId__Type_template* precondition = new AnyCellId__Type_template; + precondition->set_param(*m_p->get_elem(0)); + AnyCellId__Type_template* implied_template = new AnyCellId__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = AnyCellId__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@CommonDefs.AnyCellId_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* AnyCellId__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@CommonDefs.AnyCellId_Type'"); + } + if (strcmp("Eutra", param_field) == 0) { + return Eutra().get_param(param_name); + } else if (strcmp("Nr", param_field) == 0) { + return Nr().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `AnyCellId__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case AnyCellId__Type::ALT_Eutra: + mp_field = single_value.field_Eutra->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Eutra"))); + break; + case AnyCellId__Type::ALT_Nr: + mp_field = single_value.field_Nr->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Nr"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void AnyCellId__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case AnyCellId__Type::ALT_Eutra: +single_value.field_Eutra->check_restriction(t_res, t_name ? t_name : "@CommonDefs.AnyCellId_Type"); +return; +case AnyCellId__Type::ALT_Nr: +single_value.field_Nr->check_restriction(t_res, t_name ? t_name : "@CommonDefs.AnyCellId_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @CommonDefs.AnyCellId_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@CommonDefs.AnyCellId_Type"); +} + +void IP__EUTRA__DrbInfo__Type::init_vec() { fld_vec[0]=&field_CellId; fld_vec[1]=&field_DrbId; } + +IP__EUTRA__DrbInfo__Type::IP__EUTRA__DrbInfo__Type() : Record_Type() { init_vec(); } + +IP__EUTRA__DrbInfo__Type::IP__EUTRA__DrbInfo__Type(const IP__EUTRA__DrbInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_CellId.is_bound() ) + field_CellId = other_value.field_CellId; +if (other_value.field_DrbId.is_bound() ) + field_DrbId = other_value.field_DrbId; +init_vec(); +} + +IP__EUTRA__DrbInfo__Type::IP__EUTRA__DrbInfo__Type(const EUTRA__CellId__Type& par_CellId, + const OPTIONAL& par_DrbId) : field_CellId(par_CellId), + field_DrbId(par_DrbId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IP__EUTRA__DrbInfo__Type::get_descriptor() const { return &IP__EUTRA__DrbInfo__Type_descr_; } +const TTCN_Typedescriptor_t* IP__EUTRA__DrbInfo__Type::fld_descriptors[] = { &EUTRA__CellId__Type_descr_, &IP__DrbId__Type_descr_ }; +const TTCN_Typedescriptor_t* IP__EUTRA__DrbInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IP__EUTRA__DrbInfo__Type::fld_names[] = { "CellId", "DrbId" }; +const char* IP__EUTRA__DrbInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IP__EUTRA__DrbInfo__Type::optional_indexes[] = { 1, -1 }; +const int* IP__EUTRA__DrbInfo__Type::get_optional_indexes() const { return optional_indexes; } + +const int IP__EUTRA__DrbInfo__Type::optional_indexes_asn[] = { 1, -1 }; +const int* IP__EUTRA__DrbInfo__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IP__EUTRA__DrbInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new EUTRA__CellId__Type_template(ANY_VALUE) : new EUTRA__CellId__Type_template; +single_value.value_elements[1] = was_any ? new INTEGER_template(ANY_OR_OMIT) : new INTEGER_template; +} +} + +IP__EUTRA__DrbInfo__Type_template::IP__EUTRA__DrbInfo__Type_template(IP__EUTRA__DrbInfo__Type_template* p_precondition, IP__EUTRA__DrbInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IP__EUTRA__DrbInfo__Type_template::IP__EUTRA__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IP__EUTRA__DrbInfo__Type_template::~IP__EUTRA__DrbInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IP__EUTRA__DrbInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const IP__EUTRA__DrbInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IP__EUTRA__DrbInfo__Type_template& IP__EUTRA__DrbInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IP__EUTRA__DrbInfo__Type_template& IP__EUTRA__DrbInfo__Type_template::operator=(const IP__EUTRA__DrbInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IP__EUTRA__DrbInfo__Type_template& IP__EUTRA__DrbInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IP__EUTRA__DrbInfo__Type_template& IP__EUTRA__DrbInfo__Type_template::operator=(const IP__EUTRA__DrbInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IP__EUTRA__DrbInfo__Type IP__EUTRA__DrbInfo__Type_template::valueof() const +{ +IP__EUTRA__DrbInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +EUTRA__CellId__Type_template& IP__EUTRA__DrbInfo__Type_template::CellId() { return *(static_cast(get_at(0))); } +const EUTRA__CellId__Type_template& IP__EUTRA__DrbInfo__Type_template::CellId() const { return *(static_cast(get_at(0))); } +INTEGER_template& IP__EUTRA__DrbInfo__Type_template::DrbId() { return *(static_cast(get_at(1))); } +const INTEGER_template& IP__EUTRA__DrbInfo__Type_template::DrbId() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* IP__EUTRA__DrbInfo__Type_template::get_descriptor() const { return &IP__EUTRA__DrbInfo__Type_descr_; } +const char* IP__EUTRA__DrbInfo__Type_template::fld_name(int p_index) const { return IP__EUTRA__DrbInfo__Type::fld_names[p_index]; } +void IP__UTRAN__GERAN__DrbInfo__Type::init_vec() { fld_vec[0]=&field_CellId; fld_vec[1]=&field_DrbId; } + +IP__UTRAN__GERAN__DrbInfo__Type::IP__UTRAN__GERAN__DrbInfo__Type() : Record_Type() { init_vec(); } + +IP__UTRAN__GERAN__DrbInfo__Type::IP__UTRAN__GERAN__DrbInfo__Type(const IP__UTRAN__GERAN__DrbInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_CellId.is_bound() ) + field_CellId = other_value.field_CellId; +if (other_value.field_DrbId.is_bound() ) + field_DrbId = other_value.field_DrbId; +init_vec(); +} + +IP__UTRAN__GERAN__DrbInfo__Type::IP__UTRAN__GERAN__DrbInfo__Type(const INTEGER& par_CellId, + const OPTIONAL& par_DrbId) : field_CellId(par_CellId), + field_DrbId(par_DrbId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IP__UTRAN__GERAN__DrbInfo__Type::get_descriptor() const { return &IP__UTRAN__GERAN__DrbInfo__Type_descr_; } +const TTCN_Typedescriptor_t* IP__UTRAN__GERAN__DrbInfo__Type::fld_descriptors[] = { &INTEGER_descr_, &IP__DrbId__Type_descr_ }; +const TTCN_Typedescriptor_t* IP__UTRAN__GERAN__DrbInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IP__UTRAN__GERAN__DrbInfo__Type::fld_names[] = { "CellId", "DrbId" }; +const char* IP__UTRAN__GERAN__DrbInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IP__UTRAN__GERAN__DrbInfo__Type::optional_indexes[] = { 1, -1 }; +const int* IP__UTRAN__GERAN__DrbInfo__Type::get_optional_indexes() const { return optional_indexes; } + +const int IP__UTRAN__GERAN__DrbInfo__Type::optional_indexes_asn[] = { 1, -1 }; +const int* IP__UTRAN__GERAN__DrbInfo__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IP__UTRAN__GERAN__DrbInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[1] = was_any ? new INTEGER_template(ANY_OR_OMIT) : new INTEGER_template; +} +} + +IP__UTRAN__GERAN__DrbInfo__Type_template::IP__UTRAN__GERAN__DrbInfo__Type_template(IP__UTRAN__GERAN__DrbInfo__Type_template* p_precondition, IP__UTRAN__GERAN__DrbInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IP__UTRAN__GERAN__DrbInfo__Type_template::IP__UTRAN__GERAN__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IP__UTRAN__GERAN__DrbInfo__Type_template::~IP__UTRAN__GERAN__DrbInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IP__UTRAN__GERAN__DrbInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const IP__UTRAN__GERAN__DrbInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IP__UTRAN__GERAN__DrbInfo__Type_template& IP__UTRAN__GERAN__DrbInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IP__UTRAN__GERAN__DrbInfo__Type_template& IP__UTRAN__GERAN__DrbInfo__Type_template::operator=(const IP__UTRAN__GERAN__DrbInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IP__UTRAN__GERAN__DrbInfo__Type_template& IP__UTRAN__GERAN__DrbInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IP__UTRAN__GERAN__DrbInfo__Type_template& IP__UTRAN__GERAN__DrbInfo__Type_template::operator=(const IP__UTRAN__GERAN__DrbInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IP__UTRAN__GERAN__DrbInfo__Type IP__UTRAN__GERAN__DrbInfo__Type_template::valueof() const +{ +IP__UTRAN__GERAN__DrbInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +INTEGER_template& IP__UTRAN__GERAN__DrbInfo__Type_template::CellId() { return *(static_cast(get_at(0))); } +const INTEGER_template& IP__UTRAN__GERAN__DrbInfo__Type_template::CellId() const { return *(static_cast(get_at(0))); } +INTEGER_template& IP__UTRAN__GERAN__DrbInfo__Type_template::DrbId() { return *(static_cast(get_at(1))); } +const INTEGER_template& IP__UTRAN__GERAN__DrbInfo__Type_template::DrbId() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* IP__UTRAN__GERAN__DrbInfo__Type_template::get_descriptor() const { return &IP__UTRAN__GERAN__DrbInfo__Type_descr_; } +const char* IP__UTRAN__GERAN__DrbInfo__Type_template::fld_name(int p_index) const { return IP__UTRAN__GERAN__DrbInfo__Type::fld_names[p_index]; } +void IP__WLAN__DrbInfo__Type::init_vec() { fld_vec[0]=&field_CellId; } + +IP__WLAN__DrbInfo__Type::IP__WLAN__DrbInfo__Type() : Record_Type() { init_vec(); } + +IP__WLAN__DrbInfo__Type::IP__WLAN__DrbInfo__Type(const IP__WLAN__DrbInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_CellId.is_bound() ) + field_CellId = other_value.field_CellId; +init_vec(); +} + +IP__WLAN__DrbInfo__Type::IP__WLAN__DrbInfo__Type(const INTEGER& par_CellId) : field_CellId(par_CellId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IP__WLAN__DrbInfo__Type::get_descriptor() const { return &IP__WLAN__DrbInfo__Type_descr_; } +const TTCN_Typedescriptor_t* IP__WLAN__DrbInfo__Type::fld_descriptors[] = { &INTEGER_descr_ }; +const TTCN_Typedescriptor_t* IP__WLAN__DrbInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IP__WLAN__DrbInfo__Type::fld_names[] = { "CellId" }; +const char* IP__WLAN__DrbInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void IP__WLAN__DrbInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +} +} + +IP__WLAN__DrbInfo__Type_template::IP__WLAN__DrbInfo__Type_template(IP__WLAN__DrbInfo__Type_template* p_precondition, IP__WLAN__DrbInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IP__WLAN__DrbInfo__Type_template::IP__WLAN__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IP__WLAN__DrbInfo__Type_template::~IP__WLAN__DrbInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IP__WLAN__DrbInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const IP__WLAN__DrbInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IP__WLAN__DrbInfo__Type_template& IP__WLAN__DrbInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IP__WLAN__DrbInfo__Type_template& IP__WLAN__DrbInfo__Type_template::operator=(const IP__WLAN__DrbInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IP__WLAN__DrbInfo__Type_template& IP__WLAN__DrbInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IP__WLAN__DrbInfo__Type_template& IP__WLAN__DrbInfo__Type_template::operator=(const IP__WLAN__DrbInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IP__WLAN__DrbInfo__Type IP__WLAN__DrbInfo__Type_template::valueof() const +{ +IP__WLAN__DrbInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +INTEGER_template& IP__WLAN__DrbInfo__Type_template::CellId() { return *(static_cast(get_at(0))); } +const INTEGER_template& IP__WLAN__DrbInfo__Type_template::CellId() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* IP__WLAN__DrbInfo__Type_template::get_descriptor() const { return &IP__WLAN__DrbInfo__Type_descr_; } +const char* IP__WLAN__DrbInfo__Type_template::fld_name(int p_index) const { return IP__WLAN__DrbInfo__Type::fld_names[p_index]; } +PDN__Index__Type::PDN__Index__Type() +{ +enum_value = UNBOUND_VALUE; +} + +PDN__Index__Type::PDN__Index__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.PDN_Index_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +PDN__Index__Type::PDN__Index__Type(enum_type other_value) +{ +enum_value = other_value; +} + +PDN__Index__Type::PDN__Index__Type(const PDN__Index__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +enum_value = other_value.enum_value; +} + +PDN__Index__Type& PDN__Index__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.PDN_Index_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +PDN__Index__Type& PDN__Index__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +PDN__Index__Type& PDN__Index__Type::operator=(const PDN__Index__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean PDN__Index__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +return enum_value == other_value; +} + +boolean PDN__Index__Type::operator==(const PDN__Index__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +return enum_value == other_value.enum_value; +} + +boolean PDN__Index__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +return enum_value < other_value; +} + +boolean PDN__Index__Type::operator<(const PDN__Index__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +return enum_value < other_value.enum_value; +} + +boolean PDN__Index__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +return enum_value > other_value; +} + +boolean PDN__Index__Type::operator>(const PDN__Index__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +return enum_value > other_value.enum_value; +} + +const char *PDN__Index__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case PDN__1: return "PDN_1"; +case PDN__2: return "PDN_2"; +case PDN__2a: return "PDN_2a"; +case PDN__Internet: return "PDN_Internet"; +case ePDG__IMS1: return "ePDG_IMS1"; +case ePDG__IMS2: return "ePDG_IMS2"; +case ePDG__XCAP: return "ePDG_XCAP"; +case ePDG__Internet: return "ePDG_Internet"; +case nrPDN__Internet: return "nrPDN_Internet"; +case PDN__3: return "PDN_3"; +case PDN__4: return "PDN_4"; +case PDN__5: return "PDN_5"; +case PDN__6: return "PDN_6"; +default: return ""; +} +} + +PDN__Index__Type::enum_type PDN__Index__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "PDN_1")) return PDN__1; +else if (!strcmp(str_par, "PDN_2")) return PDN__2; +else if (!strcmp(str_par, "PDN_2a")) return PDN__2a; +else if (!strcmp(str_par, "PDN_Internet")) return PDN__Internet; +else if (!strcmp(str_par, "ePDG_IMS1")) return ePDG__IMS1; +else if (!strcmp(str_par, "ePDG_IMS2")) return ePDG__IMS2; +else if (!strcmp(str_par, "ePDG_XCAP")) return ePDG__XCAP; +else if (!strcmp(str_par, "ePDG_Internet")) return ePDG__Internet; +else if (!strcmp(str_par, "nrPDN_Internet")) return nrPDN__Internet; +else if (!strcmp(str_par, "PDN_3")) return PDN__3; +else if (!strcmp(str_par, "PDN_4")) return PDN__4; +else if (!strcmp(str_par, "PDN_5")) return PDN__5; +else if (!strcmp(str_par, "PDN_6")) return PDN__6; +else return UNKNOWN_VALUE; +} + +boolean PDN__Index__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 6: +case 7: +case 8: +case 9: +case 10: +case 11: +case 12: +case 2: +case 3: +case 4: +case 5: +return TRUE; +default: +return FALSE; +} +} + +int PDN__Index__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.PDN_Index_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int PDN__Index__Type::enum2int(const PDN__Index__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.PDN_Index_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void PDN__Index__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.PDN_Index_Type.", int_val); +enum_value = (enum_type)int_val; +} + +PDN__Index__Type::operator PDN__Index__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.PDN_Index_Type."); +return enum_value; +} + +boolean PDN__Index__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void PDN__Index__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* PDN__Index__Type::clone() const { return new PDN__Index__Type(*this); } +const TTCN_Typedescriptor_t* PDN__Index__Type::get_descriptor() const { return &PDN__Index__Type_descr_; } +void PDN__Index__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void PDN__Index__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.PDN_Index_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.PDN_Index_Type."); + } +} + +Module_Param* PDN__Index__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void PDN__Index__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +text_buf.push_int(enum_value); +} + +void PDN__Index__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.PDN_Index_Type.", enum_value); +} + +void PDN__Index__Type_template::copy_template(const PDN__Index__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new PDN__Index__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new PDN__Index__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new PDN__Index__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.PDN_Index_Type."); +} +} + +PDN__Index__Type_template::PDN__Index__Type_template() +{ +} + +PDN__Index__Type_template::PDN__Index__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +PDN__Index__Type_template::PDN__Index__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!PDN__Index__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.PDN_Index_Type with unknown numeric value %d.", other_value); +single_value = (PDN__Index__Type::enum_type)other_value; +} + +PDN__Index__Type_template::PDN__Index__Type_template(PDN__Index__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +PDN__Index__Type_template::PDN__Index__Type_template(const PDN__Index__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == PDN__Index__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.PDN_Index_Type."); +single_value = other_value.enum_value; +} + +PDN__Index__Type_template::PDN__Index__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (PDN__Index__Type::enum_type)(const PDN__Index__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.PDN_Index_Type from an unbound optional field."); +} +} + +PDN__Index__Type_template::PDN__Index__Type_template(PDN__Index__Type_template* p_precondition, PDN__Index__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +PDN__Index__Type_template::PDN__Index__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +PDN__Index__Type_template::PDN__Index__Type_template(const PDN__Index__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +PDN__Index__Type_template::~PDN__Index__Type_template() +{ +clean_up(); +} + +boolean PDN__Index__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean PDN__Index__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != PDN__Index__Type::UNBOUND_VALUE; +} + +void PDN__Index__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +PDN__Index__Type_template& PDN__Index__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDN__Index__Type_template& PDN__Index__Type_template::operator=(int other_value) +{ +if (!PDN__Index__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.PDN_Index_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (PDN__Index__Type::enum_type)other_value; +return *this; +} + +PDN__Index__Type_template& PDN__Index__Type_template::operator=(PDN__Index__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +PDN__Index__Type_template& PDN__Index__Type_template::operator=(const PDN__Index__Type& other_value) +{ +if (other_value.enum_value == PDN__Index__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.PDN_Index_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +PDN__Index__Type_template& PDN__Index__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (PDN__Index__Type::enum_type)(const PDN__Index__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.PDN_Index_Type."); +} +return *this; +} + +PDN__Index__Type_template& PDN__Index__Type_template::operator=(const PDN__Index__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean PDN__Index__Type_template::match(PDN__Index__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.PDN_Index_Type."); +} +return FALSE; +} + +boolean PDN__Index__Type_template::match(const PDN__Index__Type& other_value, boolean) const +{ +if (other_value.enum_value == PDN__Index__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.PDN_Index_Type with an unbound value."); +return match(other_value.enum_value); +} + +PDN__Index__Type::enum_type PDN__Index__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.PDN_Index_Type."); +return single_value; +} + +void PDN__Index__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.PDN_Index_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new PDN__Index__Type_template[list_length]; +} + +PDN__Index__Type_template& PDN__Index__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.PDN_Index_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.PDN_Index_Type."); +return value_list.list_value[list_index]; +} + +void PDN__Index__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void PDN__Index__Type_template::set_value(template_sel other_value) { *this = other_value; } +void PDN__Index__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* PDN__Index__Type_template::clone() const { return new PDN__Index__Type_template(*this); } +const TTCN_Typedescriptor_t* PDN__Index__Type_template::get_descriptor() const { return &PDN__Index__Type_descr_; } +boolean PDN__Index__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void PDN__Index__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void PDN__Index__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(PDN__Index__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void PDN__Index__Type_template::log_match(const PDN__Index__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void PDN__Index__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.PDN_Index_Type."); +} +} + +void PDN__Index__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (PDN__Index__Type::enum_type)text_buf.pull_int().get_val(); +if (!PDN__Index__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.PDN_Index_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new PDN__Index__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.PDN_Index_Type."); +} +} + +boolean PDN__Index__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean PDN__Index__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + PDN__Index__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + PDN__Index__Type::enum_type enum_val = PDN__Index__Type::str_to_enum(m_p->get_enumerated()); + if (!PDN__Index__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.PDN_Index_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + PDN__Index__Type_template* precondition = new PDN__Index__Type_template; + precondition->set_param(*m_p->get_elem(0)); + PDN__Index__Type_template* implied_template = new PDN__Index__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = PDN__Index__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.PDN_Index_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* PDN__Index__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(PDN__Index__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void IP__ePDG__IPsecTunnelInfo__Type::init_vec() { fld_vec[0]=&field_PdnId; } + +IP__ePDG__IPsecTunnelInfo__Type::IP__ePDG__IPsecTunnelInfo__Type() : Record_Type() { init_vec(); } + +IP__ePDG__IPsecTunnelInfo__Type::IP__ePDG__IPsecTunnelInfo__Type(const IP__ePDG__IPsecTunnelInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_PdnId.is_bound() ) + field_PdnId = other_value.field_PdnId; +init_vec(); +} + +IP__ePDG__IPsecTunnelInfo__Type::IP__ePDG__IPsecTunnelInfo__Type(const PDN__Index__Type& par_PdnId) : field_PdnId(par_PdnId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IP__ePDG__IPsecTunnelInfo__Type::get_descriptor() const { return &IP__ePDG__IPsecTunnelInfo__Type_descr_; } +const TTCN_Typedescriptor_t* IP__ePDG__IPsecTunnelInfo__Type::fld_descriptors[] = { &PDN__Index__Type_descr_ }; +const TTCN_Typedescriptor_t* IP__ePDG__IPsecTunnelInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IP__ePDG__IPsecTunnelInfo__Type::fld_names[] = { "PdnId" }; +const char* IP__ePDG__IPsecTunnelInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void IP__ePDG__IPsecTunnelInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new PDN__Index__Type_template(ANY_VALUE) : new PDN__Index__Type_template; +} +} + +IP__ePDG__IPsecTunnelInfo__Type_template::IP__ePDG__IPsecTunnelInfo__Type_template(IP__ePDG__IPsecTunnelInfo__Type_template* p_precondition, IP__ePDG__IPsecTunnelInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IP__ePDG__IPsecTunnelInfo__Type_template::IP__ePDG__IPsecTunnelInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IP__ePDG__IPsecTunnelInfo__Type_template::~IP__ePDG__IPsecTunnelInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IP__ePDG__IPsecTunnelInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const IP__ePDG__IPsecTunnelInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IP__ePDG__IPsecTunnelInfo__Type_template& IP__ePDG__IPsecTunnelInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IP__ePDG__IPsecTunnelInfo__Type_template& IP__ePDG__IPsecTunnelInfo__Type_template::operator=(const IP__ePDG__IPsecTunnelInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IP__ePDG__IPsecTunnelInfo__Type_template& IP__ePDG__IPsecTunnelInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IP__ePDG__IPsecTunnelInfo__Type_template& IP__ePDG__IPsecTunnelInfo__Type_template::operator=(const IP__ePDG__IPsecTunnelInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IP__ePDG__IPsecTunnelInfo__Type IP__ePDG__IPsecTunnelInfo__Type_template::valueof() const +{ +IP__ePDG__IPsecTunnelInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +PDN__Index__Type_template& IP__ePDG__IPsecTunnelInfo__Type_template::PdnId() { return *(static_cast(get_at(0))); } +const PDN__Index__Type_template& IP__ePDG__IPsecTunnelInfo__Type_template::PdnId() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* IP__ePDG__IPsecTunnelInfo__Type_template::get_descriptor() const { return &IP__ePDG__IPsecTunnelInfo__Type_descr_; } +const char* IP__ePDG__IPsecTunnelInfo__Type_template::fld_name(int p_index) const { return IP__ePDG__IPsecTunnelInfo__Type::fld_names[p_index]; } +void QosFlow__Identification__Type::init_vec() { fld_vec[0]=&field_PDU__SessionId; fld_vec[1]=&field_QFI; } + +QosFlow__Identification__Type::QosFlow__Identification__Type() : Record_Type() { init_vec(); } + +QosFlow__Identification__Type::QosFlow__Identification__Type(const QosFlow__Identification__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_PDU__SessionId.is_bound() ) + field_PDU__SessionId = other_value.field_PDU__SessionId; +if (other_value.field_QFI.is_bound() ) + field_QFI = other_value.field_QFI; +init_vec(); +} + +QosFlow__Identification__Type::QosFlow__Identification__Type(const INTEGER& par_PDU__SessionId, + const INTEGER& par_QFI) : field_PDU__SessionId(par_PDU__SessionId), + field_QFI(par_QFI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* QosFlow__Identification__Type::get_descriptor() const { return &QosFlow__Identification__Type_descr_; } +const TTCN_Typedescriptor_t* QosFlow__Identification__Type::fld_descriptors[] = { &INTEGER_descr_, &INTEGER_descr_ }; +const TTCN_Typedescriptor_t* QosFlow__Identification__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* QosFlow__Identification__Type::fld_names[] = { "PDU_SessionId", "QFI" }; +const char* QosFlow__Identification__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void QosFlow__Identification__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[1] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +} +} + +QosFlow__Identification__Type_template::QosFlow__Identification__Type_template(QosFlow__Identification__Type_template* p_precondition, QosFlow__Identification__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QosFlow__Identification__Type_template::QosFlow__Identification__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QosFlow__Identification__Type_template::~QosFlow__Identification__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QosFlow__Identification__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const QosFlow__Identification__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +QosFlow__Identification__Type_template& QosFlow__Identification__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QosFlow__Identification__Type_template& QosFlow__Identification__Type_template::operator=(const QosFlow__Identification__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QosFlow__Identification__Type_template& QosFlow__Identification__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QosFlow__Identification__Type_template& QosFlow__Identification__Type_template::operator=(const QosFlow__Identification__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QosFlow__Identification__Type QosFlow__Identification__Type_template::valueof() const +{ +QosFlow__Identification__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +INTEGER_template& QosFlow__Identification__Type_template::PDU__SessionId() { return *(static_cast(get_at(0))); } +const INTEGER_template& QosFlow__Identification__Type_template::PDU__SessionId() const { return *(static_cast(get_at(0))); } +INTEGER_template& QosFlow__Identification__Type_template::QFI() { return *(static_cast(get_at(1))); } +const INTEGER_template& QosFlow__Identification__Type_template::QFI() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* QosFlow__Identification__Type_template::get_descriptor() const { return &QosFlow__Identification__Type_descr_; } +const char* QosFlow__Identification__Type_template::fld_name(int p_index) const { return QosFlow__Identification__Type::fld_names[p_index]; } +void IP__NR__QosFlowInfo__Type::init_vec() { fld_vec[0]=&field_CellId; fld_vec[1]=&field_QosFlow; } + +IP__NR__QosFlowInfo__Type::IP__NR__QosFlowInfo__Type() : Record_Type() { init_vec(); } + +IP__NR__QosFlowInfo__Type::IP__NR__QosFlowInfo__Type(const IP__NR__QosFlowInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_CellId.is_bound() ) + field_CellId = other_value.field_CellId; +if (other_value.field_QosFlow.is_bound() ) + field_QosFlow = other_value.field_QosFlow; +init_vec(); +} + +IP__NR__QosFlowInfo__Type::IP__NR__QosFlowInfo__Type(const NR__CellId__Type& par_CellId, + const OPTIONAL& par_QosFlow) : field_CellId(par_CellId), + field_QosFlow(par_QosFlow) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IP__NR__QosFlowInfo__Type::get_descriptor() const { return &IP__NR__QosFlowInfo__Type_descr_; } +const TTCN_Typedescriptor_t* IP__NR__QosFlowInfo__Type::fld_descriptors[] = { &NR__CellId__Type_descr_, &QosFlow__Identification__Type_descr_ }; +const TTCN_Typedescriptor_t* IP__NR__QosFlowInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IP__NR__QosFlowInfo__Type::fld_names[] = { "CellId", "QosFlow" }; +const char* IP__NR__QosFlowInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IP__NR__QosFlowInfo__Type::optional_indexes[] = { 1, -1 }; +const int* IP__NR__QosFlowInfo__Type::get_optional_indexes() const { return optional_indexes; } + +const int IP__NR__QosFlowInfo__Type::optional_indexes_asn[] = { 1, -1 }; +const int* IP__NR__QosFlowInfo__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IP__NR__QosFlowInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NR__CellId__Type_template(ANY_VALUE) : new NR__CellId__Type_template; +single_value.value_elements[1] = was_any ? new QosFlow__Identification__Type_template(ANY_OR_OMIT) : new QosFlow__Identification__Type_template; +} +} + +IP__NR__QosFlowInfo__Type_template::IP__NR__QosFlowInfo__Type_template(IP__NR__QosFlowInfo__Type_template* p_precondition, IP__NR__QosFlowInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IP__NR__QosFlowInfo__Type_template::IP__NR__QosFlowInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IP__NR__QosFlowInfo__Type_template::~IP__NR__QosFlowInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IP__NR__QosFlowInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const IP__NR__QosFlowInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IP__NR__QosFlowInfo__Type_template& IP__NR__QosFlowInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IP__NR__QosFlowInfo__Type_template& IP__NR__QosFlowInfo__Type_template::operator=(const IP__NR__QosFlowInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IP__NR__QosFlowInfo__Type_template& IP__NR__QosFlowInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IP__NR__QosFlowInfo__Type_template& IP__NR__QosFlowInfo__Type_template::operator=(const IP__NR__QosFlowInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IP__NR__QosFlowInfo__Type IP__NR__QosFlowInfo__Type_template::valueof() const +{ +IP__NR__QosFlowInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NR__CellId__Type_template& IP__NR__QosFlowInfo__Type_template::CellId() { return *(static_cast(get_at(0))); } +const NR__CellId__Type_template& IP__NR__QosFlowInfo__Type_template::CellId() const { return *(static_cast(get_at(0))); } +QosFlow__Identification__Type_template& IP__NR__QosFlowInfo__Type_template::QosFlow() { return *(static_cast(get_at(1))); } +const QosFlow__Identification__Type_template& IP__NR__QosFlowInfo__Type_template::QosFlow() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* IP__NR__QosFlowInfo__Type_template::get_descriptor() const { return &IP__NR__QosFlowInfo__Type_descr_; } +const char* IP__NR__QosFlowInfo__Type_template::fld_name(int p_index) const { return IP__NR__QosFlowInfo__Type::fld_names[p_index]; } +void IP__EUTRA__QosFlowInfo__Type::init_vec() { fld_vec[0]=&field_CellId; fld_vec[1]=&field_QosFlow; } + +IP__EUTRA__QosFlowInfo__Type::IP__EUTRA__QosFlowInfo__Type() : Record_Type() { init_vec(); } + +IP__EUTRA__QosFlowInfo__Type::IP__EUTRA__QosFlowInfo__Type(const IP__EUTRA__QosFlowInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_CellId.is_bound() ) + field_CellId = other_value.field_CellId; +if (other_value.field_QosFlow.is_bound() ) + field_QosFlow = other_value.field_QosFlow; +init_vec(); +} + +IP__EUTRA__QosFlowInfo__Type::IP__EUTRA__QosFlowInfo__Type(const EUTRA__CellId__Type& par_CellId, + const OPTIONAL& par_QosFlow) : field_CellId(par_CellId), + field_QosFlow(par_QosFlow) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IP__EUTRA__QosFlowInfo__Type::get_descriptor() const { return &IP__EUTRA__QosFlowInfo__Type_descr_; } +const TTCN_Typedescriptor_t* IP__EUTRA__QosFlowInfo__Type::fld_descriptors[] = { &EUTRA__CellId__Type_descr_, &QosFlow__Identification__Type_descr_ }; +const TTCN_Typedescriptor_t* IP__EUTRA__QosFlowInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IP__EUTRA__QosFlowInfo__Type::fld_names[] = { "CellId", "QosFlow" }; +const char* IP__EUTRA__QosFlowInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IP__EUTRA__QosFlowInfo__Type::optional_indexes[] = { 1, -1 }; +const int* IP__EUTRA__QosFlowInfo__Type::get_optional_indexes() const { return optional_indexes; } + +const int IP__EUTRA__QosFlowInfo__Type::optional_indexes_asn[] = { 1, -1 }; +const int* IP__EUTRA__QosFlowInfo__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IP__EUTRA__QosFlowInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new EUTRA__CellId__Type_template(ANY_VALUE) : new EUTRA__CellId__Type_template; +single_value.value_elements[1] = was_any ? new QosFlow__Identification__Type_template(ANY_OR_OMIT) : new QosFlow__Identification__Type_template; +} +} + +IP__EUTRA__QosFlowInfo__Type_template::IP__EUTRA__QosFlowInfo__Type_template(IP__EUTRA__QosFlowInfo__Type_template* p_precondition, IP__EUTRA__QosFlowInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IP__EUTRA__QosFlowInfo__Type_template::IP__EUTRA__QosFlowInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IP__EUTRA__QosFlowInfo__Type_template::~IP__EUTRA__QosFlowInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IP__EUTRA__QosFlowInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const IP__EUTRA__QosFlowInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IP__EUTRA__QosFlowInfo__Type_template& IP__EUTRA__QosFlowInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IP__EUTRA__QosFlowInfo__Type_template& IP__EUTRA__QosFlowInfo__Type_template::operator=(const IP__EUTRA__QosFlowInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IP__EUTRA__QosFlowInfo__Type_template& IP__EUTRA__QosFlowInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IP__EUTRA__QosFlowInfo__Type_template& IP__EUTRA__QosFlowInfo__Type_template::operator=(const IP__EUTRA__QosFlowInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IP__EUTRA__QosFlowInfo__Type IP__EUTRA__QosFlowInfo__Type_template::valueof() const +{ +IP__EUTRA__QosFlowInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +EUTRA__CellId__Type_template& IP__EUTRA__QosFlowInfo__Type_template::CellId() { return *(static_cast(get_at(0))); } +const EUTRA__CellId__Type_template& IP__EUTRA__QosFlowInfo__Type_template::CellId() const { return *(static_cast(get_at(0))); } +QosFlow__Identification__Type_template& IP__EUTRA__QosFlowInfo__Type_template::QosFlow() { return *(static_cast(get_at(1))); } +const QosFlow__Identification__Type_template& IP__EUTRA__QosFlowInfo__Type_template::QosFlow() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* IP__EUTRA__QosFlowInfo__Type_template::get_descriptor() const { return &IP__EUTRA__QosFlowInfo__Type_descr_; } +const char* IP__EUTRA__QosFlowInfo__Type_template::fld_name(int p_index) const { return IP__EUTRA__QosFlowInfo__Type::fld_names[p_index]; } +void IP__NR__DrbInfo__Type::init_vec() { fld_vec[0]=&field_CellId; fld_vec[1]=&field_DrbId; } + +IP__NR__DrbInfo__Type::IP__NR__DrbInfo__Type() : Record_Type() { init_vec(); } + +IP__NR__DrbInfo__Type::IP__NR__DrbInfo__Type(const IP__NR__DrbInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_CellId.is_bound() ) + field_CellId = other_value.field_CellId; +if (other_value.field_DrbId.is_bound() ) + field_DrbId = other_value.field_DrbId; +init_vec(); +} + +IP__NR__DrbInfo__Type::IP__NR__DrbInfo__Type(const NR__CellId__Type& par_CellId, + const OPTIONAL& par_DrbId) : field_CellId(par_CellId), + field_DrbId(par_DrbId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IP__NR__DrbInfo__Type::get_descriptor() const { return &IP__NR__DrbInfo__Type_descr_; } +const TTCN_Typedescriptor_t* IP__NR__DrbInfo__Type::fld_descriptors[] = { &NR__CellId__Type_descr_, &IP__DrbId__Type_descr_ }; +const TTCN_Typedescriptor_t* IP__NR__DrbInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IP__NR__DrbInfo__Type::fld_names[] = { "CellId", "DrbId" }; +const char* IP__NR__DrbInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IP__NR__DrbInfo__Type::optional_indexes[] = { 1, -1 }; +const int* IP__NR__DrbInfo__Type::get_optional_indexes() const { return optional_indexes; } + +const int IP__NR__DrbInfo__Type::optional_indexes_asn[] = { 1, -1 }; +const int* IP__NR__DrbInfo__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IP__NR__DrbInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NR__CellId__Type_template(ANY_VALUE) : new NR__CellId__Type_template; +single_value.value_elements[1] = was_any ? new INTEGER_template(ANY_OR_OMIT) : new INTEGER_template; +} +} + +IP__NR__DrbInfo__Type_template::IP__NR__DrbInfo__Type_template(IP__NR__DrbInfo__Type_template* p_precondition, IP__NR__DrbInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IP__NR__DrbInfo__Type_template::IP__NR__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IP__NR__DrbInfo__Type_template::~IP__NR__DrbInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IP__NR__DrbInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const IP__NR__DrbInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IP__NR__DrbInfo__Type_template& IP__NR__DrbInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IP__NR__DrbInfo__Type_template& IP__NR__DrbInfo__Type_template::operator=(const IP__NR__DrbInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IP__NR__DrbInfo__Type_template& IP__NR__DrbInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IP__NR__DrbInfo__Type_template& IP__NR__DrbInfo__Type_template::operator=(const IP__NR__DrbInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IP__NR__DrbInfo__Type IP__NR__DrbInfo__Type_template::valueof() const +{ +IP__NR__DrbInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NR__CellId__Type_template& IP__NR__DrbInfo__Type_template::CellId() { return *(static_cast(get_at(0))); } +const NR__CellId__Type_template& IP__NR__DrbInfo__Type_template::CellId() const { return *(static_cast(get_at(0))); } +INTEGER_template& IP__NR__DrbInfo__Type_template::DrbId() { return *(static_cast(get_at(1))); } +const INTEGER_template& IP__NR__DrbInfo__Type_template::DrbId() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* IP__NR__DrbInfo__Type_template::get_descriptor() const { return &IP__NR__DrbInfo__Type_descr_; } +const char* IP__NR__DrbInfo__Type_template::fld_name(int p_index) const { return IP__NR__DrbInfo__Type::fld_names[p_index]; } +void IP__DrbInfo__Type::copy_value(const IP__DrbInfo__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_Eutra: +field_Eutra = new IP__EUTRA__DrbInfo__Type(*other_value.field_Eutra); +break; +case ALT_Eutra5GC: +field_Eutra5GC = new IP__EUTRA__QosFlowInfo__Type(*other_value.field_Eutra5GC); +break; +case ALT_Utran: +field_Utran = new IP__UTRAN__GERAN__DrbInfo__Type(*other_value.field_Utran); +break; +case ALT_Geran: +field_Geran = new IP__UTRAN__GERAN__DrbInfo__Type(*other_value.field_Geran); +break; +case ALT_Nr5GC: +field_Nr5GC = new IP__NR__QosFlowInfo__Type(*other_value.field_Nr5GC); +break; +case ALT_NrEPC: +field_NrEPC = new IP__NR__DrbInfo__Type(*other_value.field_NrEPC); +break; +case ALT_Wlan: +field_Wlan = new IP__WLAN__DrbInfo__Type(*other_value.field_Wlan); +break; +case ALT_IPsecTunnel: +field_IPsecTunnel = new IP__ePDG__IPsecTunnelInfo__Type(*other_value.field_IPsecTunnel); +break; +default: +TTCN_error("Assignment of an unbound union value of type @CommonDefs.IP_DrbInfo_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +IP__DrbInfo__Type::IP__DrbInfo__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +IP__DrbInfo__Type::IP__DrbInfo__Type(const IP__DrbInfo__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +IP__DrbInfo__Type::~IP__DrbInfo__Type() +{ +clean_up(); +} + +IP__DrbInfo__Type& IP__DrbInfo__Type::operator=(const IP__DrbInfo__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean IP__DrbInfo__Type::operator==(const IP__DrbInfo__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @CommonDefs.IP_DrbInfo_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @CommonDefs.IP_DrbInfo_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_Eutra: +return *field_Eutra == *other_value.field_Eutra; +case ALT_Eutra5GC: +return *field_Eutra5GC == *other_value.field_Eutra5GC; +case ALT_Utran: +return *field_Utran == *other_value.field_Utran; +case ALT_Geran: +return *field_Geran == *other_value.field_Geran; +case ALT_Nr5GC: +return *field_Nr5GC == *other_value.field_Nr5GC; +case ALT_NrEPC: +return *field_NrEPC == *other_value.field_NrEPC; +case ALT_Wlan: +return *field_Wlan == *other_value.field_Wlan; +case ALT_IPsecTunnel: +return *field_IPsecTunnel == *other_value.field_IPsecTunnel; +default: +return FALSE; +} +} + +IP__EUTRA__DrbInfo__Type& IP__DrbInfo__Type::Eutra() +{ +if (union_selection != ALT_Eutra) { +clean_up(); +field_Eutra = new IP__EUTRA__DrbInfo__Type; +union_selection = ALT_Eutra; +} +return *field_Eutra; +} + +const IP__EUTRA__DrbInfo__Type& IP__DrbInfo__Type::Eutra() const +{ +if (union_selection != ALT_Eutra) TTCN_error("Using non-selected field Eutra in a value of union type @CommonDefs.IP_DrbInfo_Type."); +return *field_Eutra; +} + +IP__EUTRA__QosFlowInfo__Type& IP__DrbInfo__Type::Eutra5GC() +{ +if (union_selection != ALT_Eutra5GC) { +clean_up(); +field_Eutra5GC = new IP__EUTRA__QosFlowInfo__Type; +union_selection = ALT_Eutra5GC; +} +return *field_Eutra5GC; +} + +const IP__EUTRA__QosFlowInfo__Type& IP__DrbInfo__Type::Eutra5GC() const +{ +if (union_selection != ALT_Eutra5GC) TTCN_error("Using non-selected field Eutra5GC in a value of union type @CommonDefs.IP_DrbInfo_Type."); +return *field_Eutra5GC; +} + +IP__UTRAN__GERAN__DrbInfo__Type& IP__DrbInfo__Type::Utran() +{ +if (union_selection != ALT_Utran) { +clean_up(); +field_Utran = new IP__UTRAN__GERAN__DrbInfo__Type; +union_selection = ALT_Utran; +} +return *field_Utran; +} + +const IP__UTRAN__GERAN__DrbInfo__Type& IP__DrbInfo__Type::Utran() const +{ +if (union_selection != ALT_Utran) TTCN_error("Using non-selected field Utran in a value of union type @CommonDefs.IP_DrbInfo_Type."); +return *field_Utran; +} + +IP__UTRAN__GERAN__DrbInfo__Type& IP__DrbInfo__Type::Geran() +{ +if (union_selection != ALT_Geran) { +clean_up(); +field_Geran = new IP__UTRAN__GERAN__DrbInfo__Type; +union_selection = ALT_Geran; +} +return *field_Geran; +} + +const IP__UTRAN__GERAN__DrbInfo__Type& IP__DrbInfo__Type::Geran() const +{ +if (union_selection != ALT_Geran) TTCN_error("Using non-selected field Geran in a value of union type @CommonDefs.IP_DrbInfo_Type."); +return *field_Geran; +} + +IP__NR__QosFlowInfo__Type& IP__DrbInfo__Type::Nr5GC() +{ +if (union_selection != ALT_Nr5GC) { +clean_up(); +field_Nr5GC = new IP__NR__QosFlowInfo__Type; +union_selection = ALT_Nr5GC; +} +return *field_Nr5GC; +} + +const IP__NR__QosFlowInfo__Type& IP__DrbInfo__Type::Nr5GC() const +{ +if (union_selection != ALT_Nr5GC) TTCN_error("Using non-selected field Nr5GC in a value of union type @CommonDefs.IP_DrbInfo_Type."); +return *field_Nr5GC; +} + +IP__NR__DrbInfo__Type& IP__DrbInfo__Type::NrEPC() +{ +if (union_selection != ALT_NrEPC) { +clean_up(); +field_NrEPC = new IP__NR__DrbInfo__Type; +union_selection = ALT_NrEPC; +} +return *field_NrEPC; +} + +const IP__NR__DrbInfo__Type& IP__DrbInfo__Type::NrEPC() const +{ +if (union_selection != ALT_NrEPC) TTCN_error("Using non-selected field NrEPC in a value of union type @CommonDefs.IP_DrbInfo_Type."); +return *field_NrEPC; +} + +IP__WLAN__DrbInfo__Type& IP__DrbInfo__Type::Wlan() +{ +if (union_selection != ALT_Wlan) { +clean_up(); +field_Wlan = new IP__WLAN__DrbInfo__Type; +union_selection = ALT_Wlan; +} +return *field_Wlan; +} + +const IP__WLAN__DrbInfo__Type& IP__DrbInfo__Type::Wlan() const +{ +if (union_selection != ALT_Wlan) TTCN_error("Using non-selected field Wlan in a value of union type @CommonDefs.IP_DrbInfo_Type."); +return *field_Wlan; +} + +IP__ePDG__IPsecTunnelInfo__Type& IP__DrbInfo__Type::IPsecTunnel() +{ +if (union_selection != ALT_IPsecTunnel) { +clean_up(); +field_IPsecTunnel = new IP__ePDG__IPsecTunnelInfo__Type; +union_selection = ALT_IPsecTunnel; +} +return *field_IPsecTunnel; +} + +const IP__ePDG__IPsecTunnelInfo__Type& IP__DrbInfo__Type::IPsecTunnel() const +{ +if (union_selection != ALT_IPsecTunnel) TTCN_error("Using non-selected field IPsecTunnel in a value of union type @CommonDefs.IP_DrbInfo_Type."); +return *field_IPsecTunnel; +} + +boolean IP__DrbInfo__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @CommonDefs.IP_DrbInfo_Type."); +return union_selection == checked_selection; +} + +boolean IP__DrbInfo__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean IP__DrbInfo__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_Eutra: return field_Eutra->is_value(); +case ALT_Eutra5GC: return field_Eutra5GC->is_value(); +case ALT_Utran: return field_Utran->is_value(); +case ALT_Geran: return field_Geran->is_value(); +case ALT_Nr5GC: return field_Nr5GC->is_value(); +case ALT_NrEPC: return field_NrEPC->is_value(); +case ALT_Wlan: return field_Wlan->is_value(); +case ALT_IPsecTunnel: return field_IPsecTunnel->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void IP__DrbInfo__Type::clean_up() +{ +switch (union_selection) { +case ALT_Eutra: + delete field_Eutra; + break; +case ALT_Eutra5GC: + delete field_Eutra5GC; + break; +case ALT_Utran: + delete field_Utran; + break; +case ALT_Geran: + delete field_Geran; + break; +case ALT_Nr5GC: + delete field_Nr5GC; + break; +case ALT_NrEPC: + delete field_NrEPC; + break; +case ALT_Wlan: + delete field_Wlan; + break; +case ALT_IPsecTunnel: + delete field_IPsecTunnel; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean IP__DrbInfo__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void IP__DrbInfo__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* IP__DrbInfo__Type::clone() const { return new IP__DrbInfo__Type(*this); } +const TTCN_Typedescriptor_t* IP__DrbInfo__Type::get_descriptor() const { return &IP__DrbInfo__Type_descr_; } +void IP__DrbInfo__Type::log() const +{ +switch (union_selection) { +case ALT_Eutra: +TTCN_Logger::log_event_str("{ Eutra := "); +field_Eutra->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_Eutra5GC: +TTCN_Logger::log_event_str("{ Eutra5GC := "); +field_Eutra5GC->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_Utran: +TTCN_Logger::log_event_str("{ Utran := "); +field_Utran->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_Geran: +TTCN_Logger::log_event_str("{ Geran := "); +field_Geran->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_Nr5GC: +TTCN_Logger::log_event_str("{ Nr5GC := "); +field_Nr5GC->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_NrEPC: +TTCN_Logger::log_event_str("{ NrEPC := "); +field_NrEPC->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_Wlan: +TTCN_Logger::log_event_str("{ Wlan := "); +field_Wlan->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_IPsecTunnel: +TTCN_Logger::log_event_str("{ IPsecTunnel := "); +field_IPsecTunnel->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void IP__DrbInfo__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@CommonDefs.IP_DrbInfo_Type'"); + } + if (strcmp("Eutra", param_field) == 0) { + Eutra().set_param(param); + return; + } else if (strcmp("Eutra5GC", param_field) == 0) { + Eutra5GC().set_param(param); + return; + } else if (strcmp("Utran", param_field) == 0) { + Utran().set_param(param); + return; + } else if (strcmp("Geran", param_field) == 0) { + Geran().set_param(param); + return; + } else if (strcmp("Nr5GC", param_field) == 0) { + Nr5GC().set_param(param); + return; + } else if (strcmp("NrEPC", param_field) == 0) { + NrEPC().set_param(param); + return; + } else if (strcmp("Wlan", param_field) == 0) { + Wlan().set_param(param); + return; + } else if (strcmp("IPsecTunnel", param_field) == 0) { + IPsecTunnel().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@CommonDefs.IP_DrbInfo_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Eutra")) { + Eutra().set_param(*mp_last); + if (!Eutra().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "Eutra5GC")) { + Eutra5GC().set_param(*mp_last); + if (!Eutra5GC().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "Utran")) { + Utran().set_param(*mp_last); + if (!Utran().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "Geran")) { + Geran().set_param(*mp_last); + if (!Geran().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "Nr5GC")) { + Nr5GC().set_param(*mp_last); + if (!Nr5GC().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "NrEPC")) { + NrEPC().set_param(*mp_last); + if (!NrEPC().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "Wlan")) { + Wlan().set_param(*mp_last); + if (!Wlan().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "IPsecTunnel")) { + IPsecTunnel().set_param(*mp_last); + if (!IPsecTunnel().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @CommonDefs.IP_DrbInfo_Type.", last_name); +} + +Module_Param* IP__DrbInfo__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@CommonDefs.IP_DrbInfo_Type'"); + } + if (strcmp("Eutra", param_field) == 0) { + return Eutra().get_param(param_name); + } else if (strcmp("Eutra5GC", param_field) == 0) { + return Eutra5GC().get_param(param_name); + } else if (strcmp("Utran", param_field) == 0) { + return Utran().get_param(param_name); + } else if (strcmp("Geran", param_field) == 0) { + return Geran().get_param(param_name); + } else if (strcmp("Nr5GC", param_field) == 0) { + return Nr5GC().get_param(param_name); + } else if (strcmp("NrEPC", param_field) == 0) { + return NrEPC().get_param(param_name); + } else if (strcmp("Wlan", param_field) == 0) { + return Wlan().get_param(param_name); + } else if (strcmp("IPsecTunnel", param_field) == 0) { + return IPsecTunnel().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `IP__DrbInfo__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_Eutra: + mp_field = field_Eutra->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Eutra"))); + break; + case ALT_Eutra5GC: + mp_field = field_Eutra5GC->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Eutra5GC"))); + break; + case ALT_Utran: + mp_field = field_Utran->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Utran"))); + break; + case ALT_Geran: + mp_field = field_Geran->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Geran"))); + break; + case ALT_Nr5GC: + mp_field = field_Nr5GC->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Nr5GC"))); + break; + case ALT_NrEPC: + mp_field = field_NrEPC->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("NrEPC"))); + break; + case ALT_Wlan: + mp_field = field_Wlan->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Wlan"))); + break; + case ALT_IPsecTunnel: + mp_field = field_IPsecTunnel->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("IPsecTunnel"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void IP__DrbInfo__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_Eutra: +field_Eutra->set_implicit_omit(); break; +case ALT_Eutra5GC: +field_Eutra5GC->set_implicit_omit(); break; +case ALT_Utran: +field_Utran->set_implicit_omit(); break; +case ALT_Geran: +field_Geran->set_implicit_omit(); break; +case ALT_Nr5GC: +field_Nr5GC->set_implicit_omit(); break; +case ALT_NrEPC: +field_NrEPC->set_implicit_omit(); break; +case ALT_Wlan: +field_Wlan->set_implicit_omit(); break; +case ALT_IPsecTunnel: +field_IPsecTunnel->set_implicit_omit(); break; +default: break; +} +} + +void IP__DrbInfo__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_Eutra: +field_Eutra->encode_text(text_buf); +break; +case ALT_Eutra5GC: +field_Eutra5GC->encode_text(text_buf); +break; +case ALT_Utran: +field_Utran->encode_text(text_buf); +break; +case ALT_Geran: +field_Geran->encode_text(text_buf); +break; +case ALT_Nr5GC: +field_Nr5GC->encode_text(text_buf); +break; +case ALT_NrEPC: +field_NrEPC->encode_text(text_buf); +break; +case ALT_Wlan: +field_Wlan->encode_text(text_buf); +break; +case ALT_IPsecTunnel: +field_IPsecTunnel->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @CommonDefs.IP_DrbInfo_Type."); +} +} + +void IP__DrbInfo__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_Eutra: +Eutra().decode_text(text_buf); +break; +case ALT_Eutra5GC: +Eutra5GC().decode_text(text_buf); +break; +case ALT_Utran: +Utran().decode_text(text_buf); +break; +case ALT_Geran: +Geran().decode_text(text_buf); +break; +case ALT_Nr5GC: +Nr5GC().decode_text(text_buf); +break; +case ALT_NrEPC: +NrEPC().decode_text(text_buf); +break; +case ALT_Wlan: +Wlan().decode_text(text_buf); +break; +case ALT_IPsecTunnel: +IPsecTunnel().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @CommonDefs.IP_DrbInfo_Type."); +} +} + +void IP__DrbInfo__Type_template::copy_value(const IP__DrbInfo__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +single_value.field_Eutra = new IP__EUTRA__DrbInfo__Type_template(other_value.Eutra()); +break; +case IP__DrbInfo__Type::ALT_Eutra5GC: +single_value.field_Eutra5GC = new IP__EUTRA__QosFlowInfo__Type_template(other_value.Eutra5GC()); +break; +case IP__DrbInfo__Type::ALT_Utran: +single_value.field_Utran = new IP__UTRAN__GERAN__DrbInfo__Type_template(other_value.Utran()); +break; +case IP__DrbInfo__Type::ALT_Geran: +single_value.field_Geran = new IP__UTRAN__GERAN__DrbInfo__Type_template(other_value.Geran()); +break; +case IP__DrbInfo__Type::ALT_Nr5GC: +single_value.field_Nr5GC = new IP__NR__QosFlowInfo__Type_template(other_value.Nr5GC()); +break; +case IP__DrbInfo__Type::ALT_NrEPC: +single_value.field_NrEPC = new IP__NR__DrbInfo__Type_template(other_value.NrEPC()); +break; +case IP__DrbInfo__Type::ALT_Wlan: +single_value.field_Wlan = new IP__WLAN__DrbInfo__Type_template(other_value.Wlan()); +break; +case IP__DrbInfo__Type::ALT_IPsecTunnel: +single_value.field_IPsecTunnel = new IP__ePDG__IPsecTunnelInfo__Type_template(other_value.IPsecTunnel()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @CommonDefs.IP_DrbInfo_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void IP__DrbInfo__Type_template::copy_template(const IP__DrbInfo__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +single_value.field_Eutra = new IP__EUTRA__DrbInfo__Type_template(*other_value.single_value.field_Eutra); +break; +case IP__DrbInfo__Type::ALT_Eutra5GC: +single_value.field_Eutra5GC = new IP__EUTRA__QosFlowInfo__Type_template(*other_value.single_value.field_Eutra5GC); +break; +case IP__DrbInfo__Type::ALT_Utran: +single_value.field_Utran = new IP__UTRAN__GERAN__DrbInfo__Type_template(*other_value.single_value.field_Utran); +break; +case IP__DrbInfo__Type::ALT_Geran: +single_value.field_Geran = new IP__UTRAN__GERAN__DrbInfo__Type_template(*other_value.single_value.field_Geran); +break; +case IP__DrbInfo__Type::ALT_Nr5GC: +single_value.field_Nr5GC = new IP__NR__QosFlowInfo__Type_template(*other_value.single_value.field_Nr5GC); +break; +case IP__DrbInfo__Type::ALT_NrEPC: +single_value.field_NrEPC = new IP__NR__DrbInfo__Type_template(*other_value.single_value.field_NrEPC); +break; +case IP__DrbInfo__Type::ALT_Wlan: +single_value.field_Wlan = new IP__WLAN__DrbInfo__Type_template(*other_value.single_value.field_Wlan); +break; +case IP__DrbInfo__Type::ALT_IPsecTunnel: +single_value.field_IPsecTunnel = new IP__ePDG__IPsecTunnelInfo__Type_template(*other_value.single_value.field_IPsecTunnel); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @CommonDefs.IP_DrbInfo_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new IP__DrbInfo__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new IP__DrbInfo__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new IP__DrbInfo__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @CommonDefs.IP_DrbInfo_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +IP__DrbInfo__Type_template::IP__DrbInfo__Type_template(): err_descr(NULL) +{ +} + +IP__DrbInfo__Type_template::IP__DrbInfo__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +IP__DrbInfo__Type_template::IP__DrbInfo__Type_template(const IP__DrbInfo__Type& other_value) +{ +copy_value(other_value); +} + +IP__DrbInfo__Type_template::IP__DrbInfo__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const IP__DrbInfo__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @CommonDefs.IP_DrbInfo_Type from an unbound optional field."); +} +} + +IP__DrbInfo__Type_template::IP__DrbInfo__Type_template(IP__DrbInfo__Type_template* p_precondition, IP__DrbInfo__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +IP__DrbInfo__Type_template::IP__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +IP__DrbInfo__Type_template::IP__DrbInfo__Type_template(const IP__DrbInfo__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +IP__DrbInfo__Type_template::~IP__DrbInfo__Type_template() +{ +clean_up(); +} + +void IP__DrbInfo__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +delete single_value.field_Eutra; +break; +case IP__DrbInfo__Type::ALT_Eutra5GC: +delete single_value.field_Eutra5GC; +break; +case IP__DrbInfo__Type::ALT_Utran: +delete single_value.field_Utran; +break; +case IP__DrbInfo__Type::ALT_Geran: +delete single_value.field_Geran; +break; +case IP__DrbInfo__Type::ALT_Nr5GC: +delete single_value.field_Nr5GC; +break; +case IP__DrbInfo__Type::ALT_NrEPC: +delete single_value.field_NrEPC; +break; +case IP__DrbInfo__Type::ALT_Wlan: +delete single_value.field_Wlan; +break; +case IP__DrbInfo__Type::ALT_IPsecTunnel: +delete single_value.field_IPsecTunnel; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +IP__DrbInfo__Type_template& IP__DrbInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +IP__DrbInfo__Type_template& IP__DrbInfo__Type_template::operator=(const IP__DrbInfo__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +IP__DrbInfo__Type_template& IP__DrbInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const IP__DrbInfo__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @CommonDefs.IP_DrbInfo_Type."); +} +return *this; +} + +IP__DrbInfo__Type_template& IP__DrbInfo__Type_template::operator=(const IP__DrbInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean IP__DrbInfo__Type_template::match(const IP__DrbInfo__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +IP__DrbInfo__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == IP__DrbInfo__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +return single_value.field_Eutra->match(other_value.Eutra(), legacy); +case IP__DrbInfo__Type::ALT_Eutra5GC: +return single_value.field_Eutra5GC->match(other_value.Eutra5GC(), legacy); +case IP__DrbInfo__Type::ALT_Utran: +return single_value.field_Utran->match(other_value.Utran(), legacy); +case IP__DrbInfo__Type::ALT_Geran: +return single_value.field_Geran->match(other_value.Geran(), legacy); +case IP__DrbInfo__Type::ALT_Nr5GC: +return single_value.field_Nr5GC->match(other_value.Nr5GC(), legacy); +case IP__DrbInfo__Type::ALT_NrEPC: +return single_value.field_NrEPC->match(other_value.NrEPC(), legacy); +case IP__DrbInfo__Type::ALT_Wlan: +return single_value.field_Wlan->match(other_value.Wlan(), legacy); +case IP__DrbInfo__Type::ALT_IPsecTunnel: +return single_value.field_IPsecTunnel->match(other_value.IPsecTunnel(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @CommonDefs.IP_DrbInfo_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @CommonDefs.IP_DrbInfo_Type."); +} +return FALSE; +} + +boolean IP__DrbInfo__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +return single_value.field_Eutra->is_value(); +case IP__DrbInfo__Type::ALT_Eutra5GC: +return single_value.field_Eutra5GC->is_value(); +case IP__DrbInfo__Type::ALT_Utran: +return single_value.field_Utran->is_value(); +case IP__DrbInfo__Type::ALT_Geran: +return single_value.field_Geran->is_value(); +case IP__DrbInfo__Type::ALT_Nr5GC: +return single_value.field_Nr5GC->is_value(); +case IP__DrbInfo__Type::ALT_NrEPC: +return single_value.field_NrEPC->is_value(); +case IP__DrbInfo__Type::ALT_Wlan: +return single_value.field_Wlan->is_value(); +case IP__DrbInfo__Type::ALT_IPsecTunnel: +return single_value.field_IPsecTunnel->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @CommonDefs.IP_DrbInfo_Type."); +} +} + +IP__DrbInfo__Type IP__DrbInfo__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @CommonDefs.IP_DrbInfo_Type."); +IP__DrbInfo__Type ret_val; +switch (single_value.union_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +ret_val.Eutra() = single_value.field_Eutra->valueof(); +break; +case IP__DrbInfo__Type::ALT_Eutra5GC: +ret_val.Eutra5GC() = single_value.field_Eutra5GC->valueof(); +break; +case IP__DrbInfo__Type::ALT_Utran: +ret_val.Utran() = single_value.field_Utran->valueof(); +break; +case IP__DrbInfo__Type::ALT_Geran: +ret_val.Geran() = single_value.field_Geran->valueof(); +break; +case IP__DrbInfo__Type::ALT_Nr5GC: +ret_val.Nr5GC() = single_value.field_Nr5GC->valueof(); +break; +case IP__DrbInfo__Type::ALT_NrEPC: +ret_val.NrEPC() = single_value.field_NrEPC->valueof(); +break; +case IP__DrbInfo__Type::ALT_Wlan: +ret_val.Wlan() = single_value.field_Wlan->valueof(); +break; +case IP__DrbInfo__Type::ALT_IPsecTunnel: +ret_val.IPsecTunnel() = single_value.field_IPsecTunnel->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @CommonDefs.IP_DrbInfo_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +IP__DrbInfo__Type_template& IP__DrbInfo__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @CommonDefs.IP_DrbInfo_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @CommonDefs.IP_DrbInfo_Type."); +return value_list.list_value[list_index]; +} +void IP__DrbInfo__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @CommonDefs.IP_DrbInfo_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new IP__DrbInfo__Type_template[list_length]; +} + +IP__DrbInfo__Type::union_selection_type IP__DrbInfo__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @CommonDefs.IP_DrbInfo_Type"); +return single_value.union_selection; +} + +IP__EUTRA__DrbInfo__Type_template& IP__DrbInfo__Type_template::Eutra() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != IP__DrbInfo__Type::ALT_Eutra) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Eutra = new IP__EUTRA__DrbInfo__Type_template(ANY_VALUE); +else single_value.field_Eutra = new IP__EUTRA__DrbInfo__Type_template; +single_value.union_selection = IP__DrbInfo__Type::ALT_Eutra; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Eutra; +} + +const IP__EUTRA__DrbInfo__Type_template& IP__DrbInfo__Type_template::Eutra() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Eutra in a non-specific template of union type @CommonDefs.IP_DrbInfo_Type."); +if (single_value.union_selection != IP__DrbInfo__Type::ALT_Eutra) TTCN_error("Accessing non-selected field Eutra in a template of union type @CommonDefs.IP_DrbInfo_Type."); +return *single_value.field_Eutra; +} + +IP__EUTRA__QosFlowInfo__Type_template& IP__DrbInfo__Type_template::Eutra5GC() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != IP__DrbInfo__Type::ALT_Eutra5GC) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Eutra5GC = new IP__EUTRA__QosFlowInfo__Type_template(ANY_VALUE); +else single_value.field_Eutra5GC = new IP__EUTRA__QosFlowInfo__Type_template; +single_value.union_selection = IP__DrbInfo__Type::ALT_Eutra5GC; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Eutra5GC; +} + +const IP__EUTRA__QosFlowInfo__Type_template& IP__DrbInfo__Type_template::Eutra5GC() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Eutra5GC in a non-specific template of union type @CommonDefs.IP_DrbInfo_Type."); +if (single_value.union_selection != IP__DrbInfo__Type::ALT_Eutra5GC) TTCN_error("Accessing non-selected field Eutra5GC in a template of union type @CommonDefs.IP_DrbInfo_Type."); +return *single_value.field_Eutra5GC; +} + +IP__UTRAN__GERAN__DrbInfo__Type_template& IP__DrbInfo__Type_template::Utran() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != IP__DrbInfo__Type::ALT_Utran) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Utran = new IP__UTRAN__GERAN__DrbInfo__Type_template(ANY_VALUE); +else single_value.field_Utran = new IP__UTRAN__GERAN__DrbInfo__Type_template; +single_value.union_selection = IP__DrbInfo__Type::ALT_Utran; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Utran; +} + +const IP__UTRAN__GERAN__DrbInfo__Type_template& IP__DrbInfo__Type_template::Utran() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Utran in a non-specific template of union type @CommonDefs.IP_DrbInfo_Type."); +if (single_value.union_selection != IP__DrbInfo__Type::ALT_Utran) TTCN_error("Accessing non-selected field Utran in a template of union type @CommonDefs.IP_DrbInfo_Type."); +return *single_value.field_Utran; +} + +IP__UTRAN__GERAN__DrbInfo__Type_template& IP__DrbInfo__Type_template::Geran() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != IP__DrbInfo__Type::ALT_Geran) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Geran = new IP__UTRAN__GERAN__DrbInfo__Type_template(ANY_VALUE); +else single_value.field_Geran = new IP__UTRAN__GERAN__DrbInfo__Type_template; +single_value.union_selection = IP__DrbInfo__Type::ALT_Geran; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Geran; +} + +const IP__UTRAN__GERAN__DrbInfo__Type_template& IP__DrbInfo__Type_template::Geran() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Geran in a non-specific template of union type @CommonDefs.IP_DrbInfo_Type."); +if (single_value.union_selection != IP__DrbInfo__Type::ALT_Geran) TTCN_error("Accessing non-selected field Geran in a template of union type @CommonDefs.IP_DrbInfo_Type."); +return *single_value.field_Geran; +} + +IP__NR__QosFlowInfo__Type_template& IP__DrbInfo__Type_template::Nr5GC() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != IP__DrbInfo__Type::ALT_Nr5GC) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Nr5GC = new IP__NR__QosFlowInfo__Type_template(ANY_VALUE); +else single_value.field_Nr5GC = new IP__NR__QosFlowInfo__Type_template; +single_value.union_selection = IP__DrbInfo__Type::ALT_Nr5GC; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Nr5GC; +} + +const IP__NR__QosFlowInfo__Type_template& IP__DrbInfo__Type_template::Nr5GC() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Nr5GC in a non-specific template of union type @CommonDefs.IP_DrbInfo_Type."); +if (single_value.union_selection != IP__DrbInfo__Type::ALT_Nr5GC) TTCN_error("Accessing non-selected field Nr5GC in a template of union type @CommonDefs.IP_DrbInfo_Type."); +return *single_value.field_Nr5GC; +} + +IP__NR__DrbInfo__Type_template& IP__DrbInfo__Type_template::NrEPC() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != IP__DrbInfo__Type::ALT_NrEPC) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_NrEPC = new IP__NR__DrbInfo__Type_template(ANY_VALUE); +else single_value.field_NrEPC = new IP__NR__DrbInfo__Type_template; +single_value.union_selection = IP__DrbInfo__Type::ALT_NrEPC; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_NrEPC; +} + +const IP__NR__DrbInfo__Type_template& IP__DrbInfo__Type_template::NrEPC() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field NrEPC in a non-specific template of union type @CommonDefs.IP_DrbInfo_Type."); +if (single_value.union_selection != IP__DrbInfo__Type::ALT_NrEPC) TTCN_error("Accessing non-selected field NrEPC in a template of union type @CommonDefs.IP_DrbInfo_Type."); +return *single_value.field_NrEPC; +} + +IP__WLAN__DrbInfo__Type_template& IP__DrbInfo__Type_template::Wlan() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != IP__DrbInfo__Type::ALT_Wlan) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Wlan = new IP__WLAN__DrbInfo__Type_template(ANY_VALUE); +else single_value.field_Wlan = new IP__WLAN__DrbInfo__Type_template; +single_value.union_selection = IP__DrbInfo__Type::ALT_Wlan; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Wlan; +} + +const IP__WLAN__DrbInfo__Type_template& IP__DrbInfo__Type_template::Wlan() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Wlan in a non-specific template of union type @CommonDefs.IP_DrbInfo_Type."); +if (single_value.union_selection != IP__DrbInfo__Type::ALT_Wlan) TTCN_error("Accessing non-selected field Wlan in a template of union type @CommonDefs.IP_DrbInfo_Type."); +return *single_value.field_Wlan; +} + +IP__ePDG__IPsecTunnelInfo__Type_template& IP__DrbInfo__Type_template::IPsecTunnel() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != IP__DrbInfo__Type::ALT_IPsecTunnel) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_IPsecTunnel = new IP__ePDG__IPsecTunnelInfo__Type_template(ANY_VALUE); +else single_value.field_IPsecTunnel = new IP__ePDG__IPsecTunnelInfo__Type_template; +single_value.union_selection = IP__DrbInfo__Type::ALT_IPsecTunnel; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_IPsecTunnel; +} + +const IP__ePDG__IPsecTunnelInfo__Type_template& IP__DrbInfo__Type_template::IPsecTunnel() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field IPsecTunnel in a non-specific template of union type @CommonDefs.IP_DrbInfo_Type."); +if (single_value.union_selection != IP__DrbInfo__Type::ALT_IPsecTunnel) TTCN_error("Accessing non-selected field IPsecTunnel in a template of union type @CommonDefs.IP_DrbInfo_Type."); +return *single_value.field_IPsecTunnel; +} + +boolean IP__DrbInfo__Type_template::ischosen(IP__DrbInfo__Type::union_selection_type checked_selection) const +{ +if (checked_selection == IP__DrbInfo__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @CommonDefs.IP_DrbInfo_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == IP__DrbInfo__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @CommonDefs.IP_DrbInfo_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @CommonDefs.IP_DrbInfo_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void IP__DrbInfo__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void IP__DrbInfo__Type_template::set_value(template_sel other_value) { *this = other_value; } +void IP__DrbInfo__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* IP__DrbInfo__Type_template::clone() const { return new IP__DrbInfo__Type_template(*this); } +const TTCN_Typedescriptor_t* IP__DrbInfo__Type_template::get_descriptor() const { return &IP__DrbInfo__Type_descr_; } +boolean IP__DrbInfo__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void IP__DrbInfo__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void IP__DrbInfo__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +TTCN_Logger::log_event_str("{ Eutra := "); +single_value.field_Eutra->log(); +TTCN_Logger::log_event_str(" }"); +break; +case IP__DrbInfo__Type::ALT_Eutra5GC: +TTCN_Logger::log_event_str("{ Eutra5GC := "); +single_value.field_Eutra5GC->log(); +TTCN_Logger::log_event_str(" }"); +break; +case IP__DrbInfo__Type::ALT_Utran: +TTCN_Logger::log_event_str("{ Utran := "); +single_value.field_Utran->log(); +TTCN_Logger::log_event_str(" }"); +break; +case IP__DrbInfo__Type::ALT_Geran: +TTCN_Logger::log_event_str("{ Geran := "); +single_value.field_Geran->log(); +TTCN_Logger::log_event_str(" }"); +break; +case IP__DrbInfo__Type::ALT_Nr5GC: +TTCN_Logger::log_event_str("{ Nr5GC := "); +single_value.field_Nr5GC->log(); +TTCN_Logger::log_event_str(" }"); +break; +case IP__DrbInfo__Type::ALT_NrEPC: +TTCN_Logger::log_event_str("{ NrEPC := "); +single_value.field_NrEPC->log(); +TTCN_Logger::log_event_str(" }"); +break; +case IP__DrbInfo__Type::ALT_Wlan: +TTCN_Logger::log_event_str("{ Wlan := "); +single_value.field_Wlan->log(); +TTCN_Logger::log_event_str(" }"); +break; +case IP__DrbInfo__Type::ALT_IPsecTunnel: +TTCN_Logger::log_event_str("{ IPsecTunnel := "); +single_value.field_IPsecTunnel->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void IP__DrbInfo__Type_template::log_match(const IP__DrbInfo__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Eutra"); +single_value.field_Eutra->log_match(match_value.Eutra(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Eutra := "); +single_value.field_Eutra->log_match(match_value.Eutra(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case IP__DrbInfo__Type::ALT_Eutra5GC: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Eutra5GC"); +single_value.field_Eutra5GC->log_match(match_value.Eutra5GC(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Eutra5GC := "); +single_value.field_Eutra5GC->log_match(match_value.Eutra5GC(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case IP__DrbInfo__Type::ALT_Utran: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Utran"); +single_value.field_Utran->log_match(match_value.Utran(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Utran := "); +single_value.field_Utran->log_match(match_value.Utran(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case IP__DrbInfo__Type::ALT_Geran: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Geran"); +single_value.field_Geran->log_match(match_value.Geran(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Geran := "); +single_value.field_Geran->log_match(match_value.Geran(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case IP__DrbInfo__Type::ALT_Nr5GC: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Nr5GC"); +single_value.field_Nr5GC->log_match(match_value.Nr5GC(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Nr5GC := "); +single_value.field_Nr5GC->log_match(match_value.Nr5GC(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case IP__DrbInfo__Type::ALT_NrEPC: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".NrEPC"); +single_value.field_NrEPC->log_match(match_value.NrEPC(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ NrEPC := "); +single_value.field_NrEPC->log_match(match_value.NrEPC(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case IP__DrbInfo__Type::ALT_Wlan: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Wlan"); +single_value.field_Wlan->log_match(match_value.Wlan(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Wlan := "); +single_value.field_Wlan->log_match(match_value.Wlan(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case IP__DrbInfo__Type::ALT_IPsecTunnel: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".IPsecTunnel"); +single_value.field_IPsecTunnel->log_match(match_value.IPsecTunnel(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ IPsecTunnel := "); +single_value.field_IPsecTunnel->log_match(match_value.IPsecTunnel(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void IP__DrbInfo__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +single_value.field_Eutra->encode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Eutra5GC: +single_value.field_Eutra5GC->encode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Utran: +single_value.field_Utran->encode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Geran: +single_value.field_Geran->encode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Nr5GC: +single_value.field_Nr5GC->encode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_NrEPC: +single_value.field_NrEPC->encode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Wlan: +single_value.field_Wlan->encode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_IPsecTunnel: +single_value.field_IPsecTunnel->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @CommonDefs.IP_DrbInfo_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @CommonDefs.IP_DrbInfo_Type."); +} +} + +void IP__DrbInfo__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = IP__DrbInfo__Type::UNBOUND_VALUE; +IP__DrbInfo__Type::union_selection_type new_selection = (IP__DrbInfo__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +single_value.field_Eutra = new IP__EUTRA__DrbInfo__Type_template; +single_value.field_Eutra->decode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Eutra5GC: +single_value.field_Eutra5GC = new IP__EUTRA__QosFlowInfo__Type_template; +single_value.field_Eutra5GC->decode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Utran: +single_value.field_Utran = new IP__UTRAN__GERAN__DrbInfo__Type_template; +single_value.field_Utran->decode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Geran: +single_value.field_Geran = new IP__UTRAN__GERAN__DrbInfo__Type_template; +single_value.field_Geran->decode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Nr5GC: +single_value.field_Nr5GC = new IP__NR__QosFlowInfo__Type_template; +single_value.field_Nr5GC->decode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_NrEPC: +single_value.field_NrEPC = new IP__NR__DrbInfo__Type_template; +single_value.field_NrEPC->decode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_Wlan: +single_value.field_Wlan = new IP__WLAN__DrbInfo__Type_template; +single_value.field_Wlan->decode_text(text_buf); +break; +case IP__DrbInfo__Type::ALT_IPsecTunnel: +single_value.field_IPsecTunnel = new IP__ePDG__IPsecTunnelInfo__Type_template; +single_value.field_IPsecTunnel->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @CommonDefs.IP_DrbInfo_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new IP__DrbInfo__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @CommonDefs.IP_DrbInfo_Type."); +} +} + +boolean IP__DrbInfo__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean IP__DrbInfo__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@CommonDefs.IP_DrbInfo_Type'"); + } + if (strcmp("Eutra", param_field) == 0) { + Eutra().set_param(param); + return; + } else if (strcmp("Eutra5GC", param_field) == 0) { + Eutra5GC().set_param(param); + return; + } else if (strcmp("Utran", param_field) == 0) { + Utran().set_param(param); + return; + } else if (strcmp("Geran", param_field) == 0) { + Geran().set_param(param); + return; + } else if (strcmp("Nr5GC", param_field) == 0) { + Nr5GC().set_param(param); + return; + } else if (strcmp("NrEPC", param_field) == 0) { + NrEPC().set_param(param); + return; + } else if (strcmp("Wlan", param_field) == 0) { + Wlan().set_param(param); + return; + } else if (strcmp("IPsecTunnel", param_field) == 0) { + IPsecTunnel().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@CommonDefs.IP_DrbInfo_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + IP__DrbInfo__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@CommonDefs.IP_DrbInfo_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Eutra")) { + Eutra().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "Eutra5GC")) { + Eutra5GC().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "Utran")) { + Utran().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "Geran")) { + Geran().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "Nr5GC")) { + Nr5GC().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "NrEPC")) { + NrEPC().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "Wlan")) { + Wlan().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "IPsecTunnel")) { + IPsecTunnel().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @CommonDefs.IP_DrbInfo_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + IP__DrbInfo__Type_template* precondition = new IP__DrbInfo__Type_template; + precondition->set_param(*m_p->get_elem(0)); + IP__DrbInfo__Type_template* implied_template = new IP__DrbInfo__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = IP__DrbInfo__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@CommonDefs.IP_DrbInfo_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* IP__DrbInfo__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@CommonDefs.IP_DrbInfo_Type'"); + } + if (strcmp("Eutra", param_field) == 0) { + return Eutra().get_param(param_name); + } else if (strcmp("Eutra5GC", param_field) == 0) { + return Eutra5GC().get_param(param_name); + } else if (strcmp("Utran", param_field) == 0) { + return Utran().get_param(param_name); + } else if (strcmp("Geran", param_field) == 0) { + return Geran().get_param(param_name); + } else if (strcmp("Nr5GC", param_field) == 0) { + return Nr5GC().get_param(param_name); + } else if (strcmp("NrEPC", param_field) == 0) { + return NrEPC().get_param(param_name); + } else if (strcmp("Wlan", param_field) == 0) { + return Wlan().get_param(param_name); + } else if (strcmp("IPsecTunnel", param_field) == 0) { + return IPsecTunnel().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `IP__DrbInfo__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case IP__DrbInfo__Type::ALT_Eutra: + mp_field = single_value.field_Eutra->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Eutra"))); + break; + case IP__DrbInfo__Type::ALT_Eutra5GC: + mp_field = single_value.field_Eutra5GC->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Eutra5GC"))); + break; + case IP__DrbInfo__Type::ALT_Utran: + mp_field = single_value.field_Utran->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Utran"))); + break; + case IP__DrbInfo__Type::ALT_Geran: + mp_field = single_value.field_Geran->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Geran"))); + break; + case IP__DrbInfo__Type::ALT_Nr5GC: + mp_field = single_value.field_Nr5GC->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Nr5GC"))); + break; + case IP__DrbInfo__Type::ALT_NrEPC: + mp_field = single_value.field_NrEPC->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("NrEPC"))); + break; + case IP__DrbInfo__Type::ALT_Wlan: + mp_field = single_value.field_Wlan->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Wlan"))); + break; + case IP__DrbInfo__Type::ALT_IPsecTunnel: + mp_field = single_value.field_IPsecTunnel->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("IPsecTunnel"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void IP__DrbInfo__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case IP__DrbInfo__Type::ALT_Eutra: +single_value.field_Eutra->check_restriction(t_res, t_name ? t_name : "@CommonDefs.IP_DrbInfo_Type"); +return; +case IP__DrbInfo__Type::ALT_Eutra5GC: +single_value.field_Eutra5GC->check_restriction(t_res, t_name ? t_name : "@CommonDefs.IP_DrbInfo_Type"); +return; +case IP__DrbInfo__Type::ALT_Utran: +single_value.field_Utran->check_restriction(t_res, t_name ? t_name : "@CommonDefs.IP_DrbInfo_Type"); +return; +case IP__DrbInfo__Type::ALT_Geran: +single_value.field_Geran->check_restriction(t_res, t_name ? t_name : "@CommonDefs.IP_DrbInfo_Type"); +return; +case IP__DrbInfo__Type::ALT_Nr5GC: +single_value.field_Nr5GC->check_restriction(t_res, t_name ? t_name : "@CommonDefs.IP_DrbInfo_Type"); +return; +case IP__DrbInfo__Type::ALT_NrEPC: +single_value.field_NrEPC->check_restriction(t_res, t_name ? t_name : "@CommonDefs.IP_DrbInfo_Type"); +return; +case IP__DrbInfo__Type::ALT_Wlan: +single_value.field_Wlan->check_restriction(t_res, t_name ? t_name : "@CommonDefs.IP_DrbInfo_Type"); +return; +case IP__DrbInfo__Type::ALT_IPsecTunnel: +single_value.field_IPsecTunnel->check_restriction(t_res, t_name ? t_name : "@CommonDefs.IP_DrbInfo_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @CommonDefs.IP_DrbInfo_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@CommonDefs.IP_DrbInfo_Type"); +} + +GPRS__CipheringAlgorithm__Type::GPRS__CipheringAlgorithm__Type() +{ +enum_value = UNBOUND_VALUE; +} + +GPRS__CipheringAlgorithm__Type::GPRS__CipheringAlgorithm__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +GPRS__CipheringAlgorithm__Type::GPRS__CipheringAlgorithm__Type(enum_type other_value) +{ +enum_value = other_value; +} + +GPRS__CipheringAlgorithm__Type::GPRS__CipheringAlgorithm__Type(const GPRS__CipheringAlgorithm__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +enum_value = other_value.enum_value; +} + +GPRS__CipheringAlgorithm__Type& GPRS__CipheringAlgorithm__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +GPRS__CipheringAlgorithm__Type& GPRS__CipheringAlgorithm__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +GPRS__CipheringAlgorithm__Type& GPRS__CipheringAlgorithm__Type::operator=(const GPRS__CipheringAlgorithm__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean GPRS__CipheringAlgorithm__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +return enum_value == other_value; +} + +boolean GPRS__CipheringAlgorithm__Type::operator==(const GPRS__CipheringAlgorithm__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +return enum_value == other_value.enum_value; +} + +boolean GPRS__CipheringAlgorithm__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +return enum_value < other_value; +} + +boolean GPRS__CipheringAlgorithm__Type::operator<(const GPRS__CipheringAlgorithm__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +return enum_value < other_value.enum_value; +} + +boolean GPRS__CipheringAlgorithm__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +return enum_value > other_value; +} + +boolean GPRS__CipheringAlgorithm__Type::operator>(const GPRS__CipheringAlgorithm__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +return enum_value > other_value.enum_value; +} + +const char *GPRS__CipheringAlgorithm__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case gea0: return "gea0"; +case gea2: return "gea2"; +case gea3: return "gea3"; +case gea4: return "gea4"; +default: return ""; +} +} + +GPRS__CipheringAlgorithm__Type::enum_type GPRS__CipheringAlgorithm__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "gea0")) return gea0; +else if (!strcmp(str_par, "gea2")) return gea2; +else if (!strcmp(str_par, "gea3")) return gea3; +else if (!strcmp(str_par, "gea4")) return gea4; +else return UNKNOWN_VALUE; +} + +boolean GPRS__CipheringAlgorithm__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 2: +case 3: +case 4: +return TRUE; +default: +return FALSE; +} +} + +int GPRS__CipheringAlgorithm__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int GPRS__CipheringAlgorithm__Type::enum2int(const GPRS__CipheringAlgorithm__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void GPRS__CipheringAlgorithm__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type.", int_val); +enum_value = (enum_type)int_val; +} + +GPRS__CipheringAlgorithm__Type::operator GPRS__CipheringAlgorithm__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +return enum_value; +} + +boolean GPRS__CipheringAlgorithm__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void GPRS__CipheringAlgorithm__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* GPRS__CipheringAlgorithm__Type::clone() const { return new GPRS__CipheringAlgorithm__Type(*this); } +const TTCN_Typedescriptor_t* GPRS__CipheringAlgorithm__Type::get_descriptor() const { return &GPRS__CipheringAlgorithm__Type_descr_; } +void GPRS__CipheringAlgorithm__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void GPRS__CipheringAlgorithm__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.GPRS_CipheringAlgorithm_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.GPRS_CipheringAlgorithm_Type."); + } +} + +Module_Param* GPRS__CipheringAlgorithm__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void GPRS__CipheringAlgorithm__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +text_buf.push_int(enum_value); +} + +void GPRS__CipheringAlgorithm__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type.", enum_value); +} + +void GPRS__CipheringAlgorithm__Type_template::copy_template(const GPRS__CipheringAlgorithm__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new GPRS__CipheringAlgorithm__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new GPRS__CipheringAlgorithm__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new GPRS__CipheringAlgorithm__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +} +} + +GPRS__CipheringAlgorithm__Type_template::GPRS__CipheringAlgorithm__Type_template() +{ +} + +GPRS__CipheringAlgorithm__Type_template::GPRS__CipheringAlgorithm__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +GPRS__CipheringAlgorithm__Type_template::GPRS__CipheringAlgorithm__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!GPRS__CipheringAlgorithm__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type with unknown numeric value %d.", other_value); +single_value = (GPRS__CipheringAlgorithm__Type::enum_type)other_value; +} + +GPRS__CipheringAlgorithm__Type_template::GPRS__CipheringAlgorithm__Type_template(GPRS__CipheringAlgorithm__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +GPRS__CipheringAlgorithm__Type_template::GPRS__CipheringAlgorithm__Type_template(const GPRS__CipheringAlgorithm__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == GPRS__CipheringAlgorithm__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +single_value = other_value.enum_value; +} + +GPRS__CipheringAlgorithm__Type_template::GPRS__CipheringAlgorithm__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (GPRS__CipheringAlgorithm__Type::enum_type)(const GPRS__CipheringAlgorithm__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type from an unbound optional field."); +} +} + +GPRS__CipheringAlgorithm__Type_template::GPRS__CipheringAlgorithm__Type_template(GPRS__CipheringAlgorithm__Type_template* p_precondition, GPRS__CipheringAlgorithm__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +GPRS__CipheringAlgorithm__Type_template::GPRS__CipheringAlgorithm__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +GPRS__CipheringAlgorithm__Type_template::GPRS__CipheringAlgorithm__Type_template(const GPRS__CipheringAlgorithm__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +GPRS__CipheringAlgorithm__Type_template::~GPRS__CipheringAlgorithm__Type_template() +{ +clean_up(); +} + +boolean GPRS__CipheringAlgorithm__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean GPRS__CipheringAlgorithm__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != GPRS__CipheringAlgorithm__Type::UNBOUND_VALUE; +} + +void GPRS__CipheringAlgorithm__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +GPRS__CipheringAlgorithm__Type_template& GPRS__CipheringAlgorithm__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GPRS__CipheringAlgorithm__Type_template& GPRS__CipheringAlgorithm__Type_template::operator=(int other_value) +{ +if (!GPRS__CipheringAlgorithm__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (GPRS__CipheringAlgorithm__Type::enum_type)other_value; +return *this; +} + +GPRS__CipheringAlgorithm__Type_template& GPRS__CipheringAlgorithm__Type_template::operator=(GPRS__CipheringAlgorithm__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +GPRS__CipheringAlgorithm__Type_template& GPRS__CipheringAlgorithm__Type_template::operator=(const GPRS__CipheringAlgorithm__Type& other_value) +{ +if (other_value.enum_value == GPRS__CipheringAlgorithm__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +GPRS__CipheringAlgorithm__Type_template& GPRS__CipheringAlgorithm__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (GPRS__CipheringAlgorithm__Type::enum_type)(const GPRS__CipheringAlgorithm__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +} +return *this; +} + +GPRS__CipheringAlgorithm__Type_template& GPRS__CipheringAlgorithm__Type_template::operator=(const GPRS__CipheringAlgorithm__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean GPRS__CipheringAlgorithm__Type_template::match(GPRS__CipheringAlgorithm__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +} +return FALSE; +} + +boolean GPRS__CipheringAlgorithm__Type_template::match(const GPRS__CipheringAlgorithm__Type& other_value, boolean) const +{ +if (other_value.enum_value == GPRS__CipheringAlgorithm__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type with an unbound value."); +return match(other_value.enum_value); +} + +GPRS__CipheringAlgorithm__Type::enum_type GPRS__CipheringAlgorithm__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +return single_value; +} + +void GPRS__CipheringAlgorithm__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new GPRS__CipheringAlgorithm__Type_template[list_length]; +} + +GPRS__CipheringAlgorithm__Type_template& GPRS__CipheringAlgorithm__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +return value_list.list_value[list_index]; +} + +void GPRS__CipheringAlgorithm__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void GPRS__CipheringAlgorithm__Type_template::set_value(template_sel other_value) { *this = other_value; } +void GPRS__CipheringAlgorithm__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* GPRS__CipheringAlgorithm__Type_template::clone() const { return new GPRS__CipheringAlgorithm__Type_template(*this); } +const TTCN_Typedescriptor_t* GPRS__CipheringAlgorithm__Type_template::get_descriptor() const { return &GPRS__CipheringAlgorithm__Type_descr_; } +boolean GPRS__CipheringAlgorithm__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void GPRS__CipheringAlgorithm__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void GPRS__CipheringAlgorithm__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(GPRS__CipheringAlgorithm__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void GPRS__CipheringAlgorithm__Type_template::log_match(const GPRS__CipheringAlgorithm__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void GPRS__CipheringAlgorithm__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +} +} + +void GPRS__CipheringAlgorithm__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (GPRS__CipheringAlgorithm__Type::enum_type)text_buf.pull_int().get_val(); +if (!GPRS__CipheringAlgorithm__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new GPRS__CipheringAlgorithm__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.GPRS_CipheringAlgorithm_Type."); +} +} + +boolean GPRS__CipheringAlgorithm__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean GPRS__CipheringAlgorithm__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + GPRS__CipheringAlgorithm__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + GPRS__CipheringAlgorithm__Type::enum_type enum_val = GPRS__CipheringAlgorithm__Type::str_to_enum(m_p->get_enumerated()); + if (!GPRS__CipheringAlgorithm__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.GPRS_CipheringAlgorithm_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + GPRS__CipheringAlgorithm__Type_template* precondition = new GPRS__CipheringAlgorithm__Type_template; + precondition->set_param(*m_p->get_elem(0)); + GPRS__CipheringAlgorithm__Type_template* implied_template = new GPRS__CipheringAlgorithm__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = GPRS__CipheringAlgorithm__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.GPRS_CipheringAlgorithm_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* GPRS__CipheringAlgorithm__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(GPRS__CipheringAlgorithm__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +IPCAN__RAN__Type::IPCAN__RAN__Type() +{ +enum_value = UNBOUND_VALUE; +} + +IPCAN__RAN__Type::IPCAN__RAN__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.IPCAN_RAN_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +IPCAN__RAN__Type::IPCAN__RAN__Type(enum_type other_value) +{ +enum_value = other_value; +} + +IPCAN__RAN__Type::IPCAN__RAN__Type(const IPCAN__RAN__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +enum_value = other_value.enum_value; +} + +IPCAN__RAN__Type& IPCAN__RAN__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.IPCAN_RAN_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +IPCAN__RAN__Type& IPCAN__RAN__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +IPCAN__RAN__Type& IPCAN__RAN__Type::operator=(const IPCAN__RAN__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean IPCAN__RAN__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +return enum_value == other_value; +} + +boolean IPCAN__RAN__Type::operator==(const IPCAN__RAN__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +return enum_value == other_value.enum_value; +} + +boolean IPCAN__RAN__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +return enum_value < other_value; +} + +boolean IPCAN__RAN__Type::operator<(const IPCAN__RAN__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +return enum_value < other_value.enum_value; +} + +boolean IPCAN__RAN__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +return enum_value > other_value; +} + +boolean IPCAN__RAN__Type::operator>(const IPCAN__RAN__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +return enum_value > other_value.enum_value; +} + +const char *IPCAN__RAN__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case GERAN: return "GERAN"; +case UTRAN__FDD: return "UTRAN_FDD"; +case UTRAN__TDD: return "UTRAN_TDD"; +case EUTRA__FDD: return "EUTRA_FDD"; +case EUTRA__TDD: return "EUTRA_TDD"; +case WLAN: return "WLAN"; +case NR: return "NR"; +default: return ""; +} +} + +IPCAN__RAN__Type::enum_type IPCAN__RAN__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "GERAN")) return GERAN; +else if (!strcmp(str_par, "UTRAN_FDD")) return UTRAN__FDD; +else if (!strcmp(str_par, "UTRAN_TDD")) return UTRAN__TDD; +else if (!strcmp(str_par, "EUTRA_FDD")) return EUTRA__FDD; +else if (!strcmp(str_par, "EUTRA_TDD")) return EUTRA__TDD; +else if (!strcmp(str_par, "WLAN")) return WLAN; +else if (!strcmp(str_par, "NR")) return NR; +else return UNKNOWN_VALUE; +} + +boolean IPCAN__RAN__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +return TRUE; +default: +return FALSE; +} +} + +int IPCAN__RAN__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.IPCAN_RAN_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int IPCAN__RAN__Type::enum2int(const IPCAN__RAN__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.IPCAN_RAN_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void IPCAN__RAN__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.IPCAN_RAN_Type.", int_val); +enum_value = (enum_type)int_val; +} + +IPCAN__RAN__Type::operator IPCAN__RAN__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.IPCAN_RAN_Type."); +return enum_value; +} + +boolean IPCAN__RAN__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void IPCAN__RAN__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* IPCAN__RAN__Type::clone() const { return new IPCAN__RAN__Type(*this); } +const TTCN_Typedescriptor_t* IPCAN__RAN__Type::get_descriptor() const { return &IPCAN__RAN__Type_descr_; } +void IPCAN__RAN__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void IPCAN__RAN__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.IPCAN_RAN_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.IPCAN_RAN_Type."); + } +} + +Module_Param* IPCAN__RAN__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void IPCAN__RAN__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +text_buf.push_int(enum_value); +} + +void IPCAN__RAN__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.IPCAN_RAN_Type.", enum_value); +} + +void IPCAN__RAN__Type_template::copy_template(const IPCAN__RAN__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new IPCAN__RAN__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new IPCAN__RAN__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new IPCAN__RAN__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.IPCAN_RAN_Type."); +} +} + +IPCAN__RAN__Type_template::IPCAN__RAN__Type_template() +{ +} + +IPCAN__RAN__Type_template::IPCAN__RAN__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +IPCAN__RAN__Type_template::IPCAN__RAN__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!IPCAN__RAN__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.IPCAN_RAN_Type with unknown numeric value %d.", other_value); +single_value = (IPCAN__RAN__Type::enum_type)other_value; +} + +IPCAN__RAN__Type_template::IPCAN__RAN__Type_template(IPCAN__RAN__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +IPCAN__RAN__Type_template::IPCAN__RAN__Type_template(const IPCAN__RAN__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == IPCAN__RAN__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type."); +single_value = other_value.enum_value; +} + +IPCAN__RAN__Type_template::IPCAN__RAN__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (IPCAN__RAN__Type::enum_type)(const IPCAN__RAN__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.IPCAN_RAN_Type from an unbound optional field."); +} +} + +IPCAN__RAN__Type_template::IPCAN__RAN__Type_template(IPCAN__RAN__Type_template* p_precondition, IPCAN__RAN__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +IPCAN__RAN__Type_template::IPCAN__RAN__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +IPCAN__RAN__Type_template::IPCAN__RAN__Type_template(const IPCAN__RAN__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +IPCAN__RAN__Type_template::~IPCAN__RAN__Type_template() +{ +clean_up(); +} + +boolean IPCAN__RAN__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean IPCAN__RAN__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != IPCAN__RAN__Type::UNBOUND_VALUE; +} + +void IPCAN__RAN__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +IPCAN__RAN__Type_template& IPCAN__RAN__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IPCAN__RAN__Type_template& IPCAN__RAN__Type_template::operator=(int other_value) +{ +if (!IPCAN__RAN__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.IPCAN_RAN_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (IPCAN__RAN__Type::enum_type)other_value; +return *this; +} + +IPCAN__RAN__Type_template& IPCAN__RAN__Type_template::operator=(IPCAN__RAN__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +IPCAN__RAN__Type_template& IPCAN__RAN__Type_template::operator=(const IPCAN__RAN__Type& other_value) +{ +if (other_value.enum_value == IPCAN__RAN__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.IPCAN_RAN_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +IPCAN__RAN__Type_template& IPCAN__RAN__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (IPCAN__RAN__Type::enum_type)(const IPCAN__RAN__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.IPCAN_RAN_Type."); +} +return *this; +} + +IPCAN__RAN__Type_template& IPCAN__RAN__Type_template::operator=(const IPCAN__RAN__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean IPCAN__RAN__Type_template::match(IPCAN__RAN__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.IPCAN_RAN_Type."); +} +return FALSE; +} + +boolean IPCAN__RAN__Type_template::match(const IPCAN__RAN__Type& other_value, boolean) const +{ +if (other_value.enum_value == IPCAN__RAN__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.IPCAN_RAN_Type with an unbound value."); +return match(other_value.enum_value); +} + +IPCAN__RAN__Type::enum_type IPCAN__RAN__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.IPCAN_RAN_Type."); +return single_value; +} + +void IPCAN__RAN__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.IPCAN_RAN_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new IPCAN__RAN__Type_template[list_length]; +} + +IPCAN__RAN__Type_template& IPCAN__RAN__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.IPCAN_RAN_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.IPCAN_RAN_Type."); +return value_list.list_value[list_index]; +} + +void IPCAN__RAN__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void IPCAN__RAN__Type_template::set_value(template_sel other_value) { *this = other_value; } +void IPCAN__RAN__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* IPCAN__RAN__Type_template::clone() const { return new IPCAN__RAN__Type_template(*this); } +const TTCN_Typedescriptor_t* IPCAN__RAN__Type_template::get_descriptor() const { return &IPCAN__RAN__Type_descr_; } +boolean IPCAN__RAN__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void IPCAN__RAN__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void IPCAN__RAN__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(IPCAN__RAN__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void IPCAN__RAN__Type_template::log_match(const IPCAN__RAN__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void IPCAN__RAN__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.IPCAN_RAN_Type."); +} +} + +void IPCAN__RAN__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (IPCAN__RAN__Type::enum_type)text_buf.pull_int().get_val(); +if (!IPCAN__RAN__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.IPCAN_RAN_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new IPCAN__RAN__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.IPCAN_RAN_Type."); +} +} + +boolean IPCAN__RAN__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean IPCAN__RAN__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + IPCAN__RAN__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + IPCAN__RAN__Type::enum_type enum_val = IPCAN__RAN__Type::str_to_enum(m_p->get_enumerated()); + if (!IPCAN__RAN__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.IPCAN_RAN_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + IPCAN__RAN__Type_template* precondition = new IPCAN__RAN__Type_template; + precondition->set_param(*m_p->get_elem(0)); + IPCAN__RAN__Type_template* implied_template = new IPCAN__RAN__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = IPCAN__RAN__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.IPCAN_RAN_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* IPCAN__RAN__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(IPCAN__RAN__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +IRAT__ConfiguredPTCs__Type::IRAT__ConfiguredPTCs__Type() +{ +enum_value = UNBOUND_VALUE; +} + +IRAT__ConfiguredPTCs__Type::IRAT__ConfiguredPTCs__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +IRAT__ConfiguredPTCs__Type::IRAT__ConfiguredPTCs__Type(enum_type other_value) +{ +enum_value = other_value; +} + +IRAT__ConfiguredPTCs__Type::IRAT__ConfiguredPTCs__Type(const IRAT__ConfiguredPTCs__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +enum_value = other_value.enum_value; +} + +IRAT__ConfiguredPTCs__Type& IRAT__ConfiguredPTCs__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +IRAT__ConfiguredPTCs__Type& IRAT__ConfiguredPTCs__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +IRAT__ConfiguredPTCs__Type& IRAT__ConfiguredPTCs__Type::operator=(const IRAT__ConfiguredPTCs__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean IRAT__ConfiguredPTCs__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +return enum_value == other_value; +} + +boolean IRAT__ConfiguredPTCs__Type::operator==(const IRAT__ConfiguredPTCs__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +return enum_value == other_value.enum_value; +} + +boolean IRAT__ConfiguredPTCs__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +return enum_value < other_value; +} + +boolean IRAT__ConfiguredPTCs__Type::operator<(const IRAT__ConfiguredPTCs__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +return enum_value < other_value.enum_value; +} + +boolean IRAT__ConfiguredPTCs__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +return enum_value > other_value; +} + +boolean IRAT__ConfiguredPTCs__Type::operator>(const IRAT__ConfiguredPTCs__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +return enum_value > other_value.enum_value; +} + +const char *IRAT__ConfiguredPTCs__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case EUTRA__Only: return "EUTRA_Only"; +case EUTRA__UTRAN: return "EUTRA_UTRAN"; +case EUTRA__GERAN: return "EUTRA_GERAN"; +case EUTRA__UTRAN__GERAN: return "EUTRA_UTRAN_GERAN"; +case EUTRA__CDMA2000: return "EUTRA_CDMA2000"; +case UTRAN__Only: return "UTRAN_Only"; +case UTRAN__GERAN: return "UTRAN_GERAN"; +case EUTRA__WLAN: return "EUTRA_WLAN"; +case UTRAN__WLAN: return "UTRAN_WLAN"; +case WLAN__Only: return "WLAN_Only"; +case NR5GC__WLAN: return "NR5GC_WLAN"; +default: return ""; +} +} + +IRAT__ConfiguredPTCs__Type::enum_type IRAT__ConfiguredPTCs__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "EUTRA_Only")) return EUTRA__Only; +else if (!strcmp(str_par, "EUTRA_UTRAN")) return EUTRA__UTRAN; +else if (!strcmp(str_par, "EUTRA_GERAN")) return EUTRA__GERAN; +else if (!strcmp(str_par, "EUTRA_UTRAN_GERAN")) return EUTRA__UTRAN__GERAN; +else if (!strcmp(str_par, "EUTRA_CDMA2000")) return EUTRA__CDMA2000; +else if (!strcmp(str_par, "UTRAN_Only")) return UTRAN__Only; +else if (!strcmp(str_par, "UTRAN_GERAN")) return UTRAN__GERAN; +else if (!strcmp(str_par, "EUTRA_WLAN")) return EUTRA__WLAN; +else if (!strcmp(str_par, "UTRAN_WLAN")) return UTRAN__WLAN; +else if (!strcmp(str_par, "WLAN_Only")) return WLAN__Only; +else if (!strcmp(str_par, "NR5GC_WLAN")) return NR5GC__WLAN; +else return UNKNOWN_VALUE; +} + +boolean IRAT__ConfiguredPTCs__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +case 8: +case 9: +case 10: +return TRUE; +default: +return FALSE; +} +} + +int IRAT__ConfiguredPTCs__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int IRAT__ConfiguredPTCs__Type::enum2int(const IRAT__ConfiguredPTCs__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void IRAT__ConfiguredPTCs__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type.", int_val); +enum_value = (enum_type)int_val; +} + +IRAT__ConfiguredPTCs__Type::operator IRAT__ConfiguredPTCs__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +return enum_value; +} + +boolean IRAT__ConfiguredPTCs__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void IRAT__ConfiguredPTCs__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* IRAT__ConfiguredPTCs__Type::clone() const { return new IRAT__ConfiguredPTCs__Type(*this); } +const TTCN_Typedescriptor_t* IRAT__ConfiguredPTCs__Type::get_descriptor() const { return &IRAT__ConfiguredPTCs__Type_descr_; } +void IRAT__ConfiguredPTCs__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void IRAT__ConfiguredPTCs__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.IRAT_ConfiguredPTCs_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.IRAT_ConfiguredPTCs_Type."); + } +} + +Module_Param* IRAT__ConfiguredPTCs__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void IRAT__ConfiguredPTCs__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +text_buf.push_int(enum_value); +} + +void IRAT__ConfiguredPTCs__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type.", enum_value); +} + +void IRAT__ConfiguredPTCs__Type_template::copy_template(const IRAT__ConfiguredPTCs__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new IRAT__ConfiguredPTCs__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new IRAT__ConfiguredPTCs__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new IRAT__ConfiguredPTCs__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +} +} + +IRAT__ConfiguredPTCs__Type_template::IRAT__ConfiguredPTCs__Type_template() +{ +} + +IRAT__ConfiguredPTCs__Type_template::IRAT__ConfiguredPTCs__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +IRAT__ConfiguredPTCs__Type_template::IRAT__ConfiguredPTCs__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!IRAT__ConfiguredPTCs__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type with unknown numeric value %d.", other_value); +single_value = (IRAT__ConfiguredPTCs__Type::enum_type)other_value; +} + +IRAT__ConfiguredPTCs__Type_template::IRAT__ConfiguredPTCs__Type_template(IRAT__ConfiguredPTCs__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +IRAT__ConfiguredPTCs__Type_template::IRAT__ConfiguredPTCs__Type_template(const IRAT__ConfiguredPTCs__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == IRAT__ConfiguredPTCs__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +single_value = other_value.enum_value; +} + +IRAT__ConfiguredPTCs__Type_template::IRAT__ConfiguredPTCs__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (IRAT__ConfiguredPTCs__Type::enum_type)(const IRAT__ConfiguredPTCs__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type from an unbound optional field."); +} +} + +IRAT__ConfiguredPTCs__Type_template::IRAT__ConfiguredPTCs__Type_template(IRAT__ConfiguredPTCs__Type_template* p_precondition, IRAT__ConfiguredPTCs__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +IRAT__ConfiguredPTCs__Type_template::IRAT__ConfiguredPTCs__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +IRAT__ConfiguredPTCs__Type_template::IRAT__ConfiguredPTCs__Type_template(const IRAT__ConfiguredPTCs__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +IRAT__ConfiguredPTCs__Type_template::~IRAT__ConfiguredPTCs__Type_template() +{ +clean_up(); +} + +boolean IRAT__ConfiguredPTCs__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean IRAT__ConfiguredPTCs__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != IRAT__ConfiguredPTCs__Type::UNBOUND_VALUE; +} + +void IRAT__ConfiguredPTCs__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +IRAT__ConfiguredPTCs__Type_template& IRAT__ConfiguredPTCs__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IRAT__ConfiguredPTCs__Type_template& IRAT__ConfiguredPTCs__Type_template::operator=(int other_value) +{ +if (!IRAT__ConfiguredPTCs__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (IRAT__ConfiguredPTCs__Type::enum_type)other_value; +return *this; +} + +IRAT__ConfiguredPTCs__Type_template& IRAT__ConfiguredPTCs__Type_template::operator=(IRAT__ConfiguredPTCs__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +IRAT__ConfiguredPTCs__Type_template& IRAT__ConfiguredPTCs__Type_template::operator=(const IRAT__ConfiguredPTCs__Type& other_value) +{ +if (other_value.enum_value == IRAT__ConfiguredPTCs__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +IRAT__ConfiguredPTCs__Type_template& IRAT__ConfiguredPTCs__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (IRAT__ConfiguredPTCs__Type::enum_type)(const IRAT__ConfiguredPTCs__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +} +return *this; +} + +IRAT__ConfiguredPTCs__Type_template& IRAT__ConfiguredPTCs__Type_template::operator=(const IRAT__ConfiguredPTCs__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean IRAT__ConfiguredPTCs__Type_template::match(IRAT__ConfiguredPTCs__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +} +return FALSE; +} + +boolean IRAT__ConfiguredPTCs__Type_template::match(const IRAT__ConfiguredPTCs__Type& other_value, boolean) const +{ +if (other_value.enum_value == IRAT__ConfiguredPTCs__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type with an unbound value."); +return match(other_value.enum_value); +} + +IRAT__ConfiguredPTCs__Type::enum_type IRAT__ConfiguredPTCs__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +return single_value; +} + +void IRAT__ConfiguredPTCs__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new IRAT__ConfiguredPTCs__Type_template[list_length]; +} + +IRAT__ConfiguredPTCs__Type_template& IRAT__ConfiguredPTCs__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +return value_list.list_value[list_index]; +} + +void IRAT__ConfiguredPTCs__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void IRAT__ConfiguredPTCs__Type_template::set_value(template_sel other_value) { *this = other_value; } +void IRAT__ConfiguredPTCs__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* IRAT__ConfiguredPTCs__Type_template::clone() const { return new IRAT__ConfiguredPTCs__Type_template(*this); } +const TTCN_Typedescriptor_t* IRAT__ConfiguredPTCs__Type_template::get_descriptor() const { return &IRAT__ConfiguredPTCs__Type_descr_; } +boolean IRAT__ConfiguredPTCs__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void IRAT__ConfiguredPTCs__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void IRAT__ConfiguredPTCs__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(IRAT__ConfiguredPTCs__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void IRAT__ConfiguredPTCs__Type_template::log_match(const IRAT__ConfiguredPTCs__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void IRAT__ConfiguredPTCs__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +} +} + +void IRAT__ConfiguredPTCs__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (IRAT__ConfiguredPTCs__Type::enum_type)text_buf.pull_int().get_val(); +if (!IRAT__ConfiguredPTCs__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new IRAT__ConfiguredPTCs__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.IRAT_ConfiguredPTCs_Type."); +} +} + +boolean IRAT__ConfiguredPTCs__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean IRAT__ConfiguredPTCs__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + IRAT__ConfiguredPTCs__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + IRAT__ConfiguredPTCs__Type::enum_type enum_val = IRAT__ConfiguredPTCs__Type::str_to_enum(m_p->get_enumerated()); + if (!IRAT__ConfiguredPTCs__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.IRAT_ConfiguredPTCs_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + IRAT__ConfiguredPTCs__Type_template* precondition = new IRAT__ConfiguredPTCs__Type_template; + precondition->set_param(*m_p->get_elem(0)); + IRAT__ConfiguredPTCs__Type_template* implied_template = new IRAT__ConfiguredPTCs__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = IRAT__ConfiguredPTCs__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.IRAT_ConfiguredPTCs_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* IRAT__ConfiguredPTCs__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(IRAT__ConfiguredPTCs__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +VerdictCtrl__Type::VerdictCtrl__Type() +{ +enum_value = UNBOUND_VALUE; +} + +VerdictCtrl__Type::VerdictCtrl__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.VerdictCtrl_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +VerdictCtrl__Type::VerdictCtrl__Type(enum_type other_value) +{ +enum_value = other_value; +} + +VerdictCtrl__Type::VerdictCtrl__Type(const VerdictCtrl__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +enum_value = other_value.enum_value; +} + +VerdictCtrl__Type& VerdictCtrl__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.VerdictCtrl_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +VerdictCtrl__Type& VerdictCtrl__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +VerdictCtrl__Type& VerdictCtrl__Type::operator=(const VerdictCtrl__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean VerdictCtrl__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +return enum_value == other_value; +} + +boolean VerdictCtrl__Type::operator==(const VerdictCtrl__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +return enum_value == other_value.enum_value; +} + +boolean VerdictCtrl__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +return enum_value < other_value; +} + +boolean VerdictCtrl__Type::operator<(const VerdictCtrl__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +return enum_value < other_value.enum_value; +} + +boolean VerdictCtrl__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +return enum_value > other_value; +} + +boolean VerdictCtrl__Type::operator>(const VerdictCtrl__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +return enum_value > other_value.enum_value; +} + +const char *VerdictCtrl__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case normal: return "normal"; +case layer2: return "layer2"; +default: return ""; +} +} + +VerdictCtrl__Type::enum_type VerdictCtrl__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "normal")) return normal; +else if (!strcmp(str_par, "layer2")) return layer2; +else return UNKNOWN_VALUE; +} + +boolean VerdictCtrl__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int VerdictCtrl__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.VerdictCtrl_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int VerdictCtrl__Type::enum2int(const VerdictCtrl__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.VerdictCtrl_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void VerdictCtrl__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.VerdictCtrl_Type.", int_val); +enum_value = (enum_type)int_val; +} + +VerdictCtrl__Type::operator VerdictCtrl__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.VerdictCtrl_Type."); +return enum_value; +} + +boolean VerdictCtrl__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void VerdictCtrl__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* VerdictCtrl__Type::clone() const { return new VerdictCtrl__Type(*this); } +const TTCN_Typedescriptor_t* VerdictCtrl__Type::get_descriptor() const { return &VerdictCtrl__Type_descr_; } +void VerdictCtrl__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void VerdictCtrl__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.VerdictCtrl_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.VerdictCtrl_Type."); + } +} + +Module_Param* VerdictCtrl__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void VerdictCtrl__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +text_buf.push_int(enum_value); +} + +void VerdictCtrl__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.VerdictCtrl_Type.", enum_value); +} + +void VerdictCtrl__Type_template::copy_template(const VerdictCtrl__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new VerdictCtrl__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new VerdictCtrl__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new VerdictCtrl__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.VerdictCtrl_Type."); +} +} + +VerdictCtrl__Type_template::VerdictCtrl__Type_template() +{ +} + +VerdictCtrl__Type_template::VerdictCtrl__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +VerdictCtrl__Type_template::VerdictCtrl__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!VerdictCtrl__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.VerdictCtrl_Type with unknown numeric value %d.", other_value); +single_value = (VerdictCtrl__Type::enum_type)other_value; +} + +VerdictCtrl__Type_template::VerdictCtrl__Type_template(VerdictCtrl__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +VerdictCtrl__Type_template::VerdictCtrl__Type_template(const VerdictCtrl__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == VerdictCtrl__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type."); +single_value = other_value.enum_value; +} + +VerdictCtrl__Type_template::VerdictCtrl__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (VerdictCtrl__Type::enum_type)(const VerdictCtrl__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.VerdictCtrl_Type from an unbound optional field."); +} +} + +VerdictCtrl__Type_template::VerdictCtrl__Type_template(VerdictCtrl__Type_template* p_precondition, VerdictCtrl__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +VerdictCtrl__Type_template::VerdictCtrl__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +VerdictCtrl__Type_template::VerdictCtrl__Type_template(const VerdictCtrl__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +VerdictCtrl__Type_template::~VerdictCtrl__Type_template() +{ +clean_up(); +} + +boolean VerdictCtrl__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean VerdictCtrl__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != VerdictCtrl__Type::UNBOUND_VALUE; +} + +void VerdictCtrl__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +VerdictCtrl__Type_template& VerdictCtrl__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +VerdictCtrl__Type_template& VerdictCtrl__Type_template::operator=(int other_value) +{ +if (!VerdictCtrl__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.VerdictCtrl_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (VerdictCtrl__Type::enum_type)other_value; +return *this; +} + +VerdictCtrl__Type_template& VerdictCtrl__Type_template::operator=(VerdictCtrl__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +VerdictCtrl__Type_template& VerdictCtrl__Type_template::operator=(const VerdictCtrl__Type& other_value) +{ +if (other_value.enum_value == VerdictCtrl__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.VerdictCtrl_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +VerdictCtrl__Type_template& VerdictCtrl__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (VerdictCtrl__Type::enum_type)(const VerdictCtrl__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.VerdictCtrl_Type."); +} +return *this; +} + +VerdictCtrl__Type_template& VerdictCtrl__Type_template::operator=(const VerdictCtrl__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean VerdictCtrl__Type_template::match(VerdictCtrl__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.VerdictCtrl_Type."); +} +return FALSE; +} + +boolean VerdictCtrl__Type_template::match(const VerdictCtrl__Type& other_value, boolean) const +{ +if (other_value.enum_value == VerdictCtrl__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.VerdictCtrl_Type with an unbound value."); +return match(other_value.enum_value); +} + +VerdictCtrl__Type::enum_type VerdictCtrl__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.VerdictCtrl_Type."); +return single_value; +} + +void VerdictCtrl__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.VerdictCtrl_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new VerdictCtrl__Type_template[list_length]; +} + +VerdictCtrl__Type_template& VerdictCtrl__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.VerdictCtrl_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.VerdictCtrl_Type."); +return value_list.list_value[list_index]; +} + +void VerdictCtrl__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void VerdictCtrl__Type_template::set_value(template_sel other_value) { *this = other_value; } +void VerdictCtrl__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* VerdictCtrl__Type_template::clone() const { return new VerdictCtrl__Type_template(*this); } +const TTCN_Typedescriptor_t* VerdictCtrl__Type_template::get_descriptor() const { return &VerdictCtrl__Type_descr_; } +boolean VerdictCtrl__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void VerdictCtrl__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void VerdictCtrl__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(VerdictCtrl__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void VerdictCtrl__Type_template::log_match(const VerdictCtrl__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void VerdictCtrl__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.VerdictCtrl_Type."); +} +} + +void VerdictCtrl__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (VerdictCtrl__Type::enum_type)text_buf.pull_int().get_val(); +if (!VerdictCtrl__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.VerdictCtrl_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new VerdictCtrl__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.VerdictCtrl_Type."); +} +} + +boolean VerdictCtrl__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean VerdictCtrl__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + VerdictCtrl__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + VerdictCtrl__Type::enum_type enum_val = VerdictCtrl__Type::str_to_enum(m_p->get_enumerated()); + if (!VerdictCtrl__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.VerdictCtrl_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + VerdictCtrl__Type_template* precondition = new VerdictCtrl__Type_template; + precondition->set_param(*m_p->get_elem(0)); + VerdictCtrl__Type_template* implied_template = new VerdictCtrl__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = VerdictCtrl__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.VerdictCtrl_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* VerdictCtrl__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(VerdictCtrl__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +HarqErrorHandling__Type::HarqErrorHandling__Type() +{ +enum_value = UNBOUND_VALUE; +} + +HarqErrorHandling__Type::HarqErrorHandling__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.HarqErrorHandling_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +HarqErrorHandling__Type::HarqErrorHandling__Type(enum_type other_value) +{ +enum_value = other_value; +} + +HarqErrorHandling__Type::HarqErrorHandling__Type(const HarqErrorHandling__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +enum_value = other_value.enum_value; +} + +HarqErrorHandling__Type& HarqErrorHandling__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.HarqErrorHandling_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +HarqErrorHandling__Type& HarqErrorHandling__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +HarqErrorHandling__Type& HarqErrorHandling__Type::operator=(const HarqErrorHandling__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean HarqErrorHandling__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +return enum_value == other_value; +} + +boolean HarqErrorHandling__Type::operator==(const HarqErrorHandling__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +return enum_value == other_value.enum_value; +} + +boolean HarqErrorHandling__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +return enum_value < other_value; +} + +boolean HarqErrorHandling__Type::operator<(const HarqErrorHandling__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +return enum_value < other_value.enum_value; +} + +boolean HarqErrorHandling__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +return enum_value > other_value; +} + +boolean HarqErrorHandling__Type::operator>(const HarqErrorHandling__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +return enum_value > other_value.enum_value; +} + +const char *HarqErrorHandling__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case ignore: return "ignore"; +case raiseInconc: return "raiseInconc"; +case allowOneRetransmission: return "allowOneRetransmission"; +default: return ""; +} +} + +HarqErrorHandling__Type::enum_type HarqErrorHandling__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "ignore")) return ignore; +else if (!strcmp(str_par, "raiseInconc")) return raiseInconc; +else if (!strcmp(str_par, "allowOneRetransmission")) return allowOneRetransmission; +else return UNKNOWN_VALUE; +} + +boolean HarqErrorHandling__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +return TRUE; +default: +return FALSE; +} +} + +int HarqErrorHandling__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.HarqErrorHandling_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int HarqErrorHandling__Type::enum2int(const HarqErrorHandling__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.HarqErrorHandling_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void HarqErrorHandling__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.HarqErrorHandling_Type.", int_val); +enum_value = (enum_type)int_val; +} + +HarqErrorHandling__Type::operator HarqErrorHandling__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.HarqErrorHandling_Type."); +return enum_value; +} + +boolean HarqErrorHandling__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void HarqErrorHandling__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* HarqErrorHandling__Type::clone() const { return new HarqErrorHandling__Type(*this); } +const TTCN_Typedescriptor_t* HarqErrorHandling__Type::get_descriptor() const { return &HarqErrorHandling__Type_descr_; } +void HarqErrorHandling__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void HarqErrorHandling__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.HarqErrorHandling_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.HarqErrorHandling_Type."); + } +} + +Module_Param* HarqErrorHandling__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void HarqErrorHandling__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +text_buf.push_int(enum_value); +} + +void HarqErrorHandling__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.HarqErrorHandling_Type.", enum_value); +} + +void HarqErrorHandling__Type_template::copy_template(const HarqErrorHandling__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new HarqErrorHandling__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new HarqErrorHandling__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new HarqErrorHandling__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.HarqErrorHandling_Type."); +} +} + +HarqErrorHandling__Type_template::HarqErrorHandling__Type_template() +{ +} + +HarqErrorHandling__Type_template::HarqErrorHandling__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +HarqErrorHandling__Type_template::HarqErrorHandling__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!HarqErrorHandling__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.HarqErrorHandling_Type with unknown numeric value %d.", other_value); +single_value = (HarqErrorHandling__Type::enum_type)other_value; +} + +HarqErrorHandling__Type_template::HarqErrorHandling__Type_template(HarqErrorHandling__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +HarqErrorHandling__Type_template::HarqErrorHandling__Type_template(const HarqErrorHandling__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == HarqErrorHandling__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type."); +single_value = other_value.enum_value; +} + +HarqErrorHandling__Type_template::HarqErrorHandling__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (HarqErrorHandling__Type::enum_type)(const HarqErrorHandling__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.HarqErrorHandling_Type from an unbound optional field."); +} +} + +HarqErrorHandling__Type_template::HarqErrorHandling__Type_template(HarqErrorHandling__Type_template* p_precondition, HarqErrorHandling__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +HarqErrorHandling__Type_template::HarqErrorHandling__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +HarqErrorHandling__Type_template::HarqErrorHandling__Type_template(const HarqErrorHandling__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +HarqErrorHandling__Type_template::~HarqErrorHandling__Type_template() +{ +clean_up(); +} + +boolean HarqErrorHandling__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean HarqErrorHandling__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != HarqErrorHandling__Type::UNBOUND_VALUE; +} + +void HarqErrorHandling__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +HarqErrorHandling__Type_template& HarqErrorHandling__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +HarqErrorHandling__Type_template& HarqErrorHandling__Type_template::operator=(int other_value) +{ +if (!HarqErrorHandling__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.HarqErrorHandling_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (HarqErrorHandling__Type::enum_type)other_value; +return *this; +} + +HarqErrorHandling__Type_template& HarqErrorHandling__Type_template::operator=(HarqErrorHandling__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +HarqErrorHandling__Type_template& HarqErrorHandling__Type_template::operator=(const HarqErrorHandling__Type& other_value) +{ +if (other_value.enum_value == HarqErrorHandling__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.HarqErrorHandling_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +HarqErrorHandling__Type_template& HarqErrorHandling__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (HarqErrorHandling__Type::enum_type)(const HarqErrorHandling__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.HarqErrorHandling_Type."); +} +return *this; +} + +HarqErrorHandling__Type_template& HarqErrorHandling__Type_template::operator=(const HarqErrorHandling__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean HarqErrorHandling__Type_template::match(HarqErrorHandling__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.HarqErrorHandling_Type."); +} +return FALSE; +} + +boolean HarqErrorHandling__Type_template::match(const HarqErrorHandling__Type& other_value, boolean) const +{ +if (other_value.enum_value == HarqErrorHandling__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.HarqErrorHandling_Type with an unbound value."); +return match(other_value.enum_value); +} + +HarqErrorHandling__Type::enum_type HarqErrorHandling__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.HarqErrorHandling_Type."); +return single_value; +} + +void HarqErrorHandling__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.HarqErrorHandling_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new HarqErrorHandling__Type_template[list_length]; +} + +HarqErrorHandling__Type_template& HarqErrorHandling__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.HarqErrorHandling_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.HarqErrorHandling_Type."); +return value_list.list_value[list_index]; +} + +void HarqErrorHandling__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void HarqErrorHandling__Type_template::set_value(template_sel other_value) { *this = other_value; } +void HarqErrorHandling__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* HarqErrorHandling__Type_template::clone() const { return new HarqErrorHandling__Type_template(*this); } +const TTCN_Typedescriptor_t* HarqErrorHandling__Type_template::get_descriptor() const { return &HarqErrorHandling__Type_descr_; } +boolean HarqErrorHandling__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void HarqErrorHandling__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void HarqErrorHandling__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(HarqErrorHandling__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void HarqErrorHandling__Type_template::log_match(const HarqErrorHandling__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void HarqErrorHandling__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.HarqErrorHandling_Type."); +} +} + +void HarqErrorHandling__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (HarqErrorHandling__Type::enum_type)text_buf.pull_int().get_val(); +if (!HarqErrorHandling__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.HarqErrorHandling_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new HarqErrorHandling__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.HarqErrorHandling_Type."); +} +} + +boolean HarqErrorHandling__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean HarqErrorHandling__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + HarqErrorHandling__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + HarqErrorHandling__Type::enum_type enum_val = HarqErrorHandling__Type::str_to_enum(m_p->get_enumerated()); + if (!HarqErrorHandling__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.HarqErrorHandling_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + HarqErrorHandling__Type_template* precondition = new HarqErrorHandling__Type_template; + precondition->set_param(*m_p->get_elem(0)); + HarqErrorHandling__Type_template* implied_template = new HarqErrorHandling__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = HarqErrorHandling__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.HarqErrorHandling_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* HarqErrorHandling__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(HarqErrorHandling__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +Gsm7BitPacking__Type::Gsm7BitPacking__Type() +{ +enum_value = UNBOUND_VALUE; +} + +Gsm7BitPacking__Type::Gsm7BitPacking__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @CommonDefs.Gsm7BitPacking_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +Gsm7BitPacking__Type::Gsm7BitPacking__Type(enum_type other_value) +{ +enum_value = other_value; +} + +Gsm7BitPacking__Type::Gsm7BitPacking__Type(const Gsm7BitPacking__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +enum_value = other_value.enum_value; +} + +Gsm7BitPacking__Type& Gsm7BitPacking__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @CommonDefs.Gsm7BitPacking_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +Gsm7BitPacking__Type& Gsm7BitPacking__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +Gsm7BitPacking__Type& Gsm7BitPacking__Type::operator=(const Gsm7BitPacking__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean Gsm7BitPacking__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +return enum_value == other_value; +} + +boolean Gsm7BitPacking__Type::operator==(const Gsm7BitPacking__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +return enum_value == other_value.enum_value; +} + +boolean Gsm7BitPacking__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +return enum_value < other_value; +} + +boolean Gsm7BitPacking__Type::operator<(const Gsm7BitPacking__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +return enum_value < other_value.enum_value; +} + +boolean Gsm7BitPacking__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +return enum_value > other_value; +} + +boolean Gsm7BitPacking__Type::operator>(const Gsm7BitPacking__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +return enum_value > other_value.enum_value; +} + +const char *Gsm7BitPacking__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case SMS__Packing: return "SMS_Packing"; +case CBS__Packing: return "CBS_Packing"; +case USSD__Packing: return "USSD_Packing"; +default: return ""; +} +} + +Gsm7BitPacking__Type::enum_type Gsm7BitPacking__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "SMS_Packing")) return SMS__Packing; +else if (!strcmp(str_par, "CBS_Packing")) return CBS__Packing; +else if (!strcmp(str_par, "USSD_Packing")) return USSD__Packing; +else return UNKNOWN_VALUE; +} + +boolean Gsm7BitPacking__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +return TRUE; +default: +return FALSE; +} +} + +int Gsm7BitPacking__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.Gsm7BitPacking_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int Gsm7BitPacking__Type::enum2int(const Gsm7BitPacking__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @CommonDefs.Gsm7BitPacking_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void Gsm7BitPacking__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @CommonDefs.Gsm7BitPacking_Type.", int_val); +enum_value = (enum_type)int_val; +} + +Gsm7BitPacking__Type::operator Gsm7BitPacking__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +return enum_value; +} + +boolean Gsm7BitPacking__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void Gsm7BitPacking__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* Gsm7BitPacking__Type::clone() const { return new Gsm7BitPacking__Type(*this); } +const TTCN_Typedescriptor_t* Gsm7BitPacking__Type::get_descriptor() const { return &Gsm7BitPacking__Type_descr_; } +void Gsm7BitPacking__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void Gsm7BitPacking__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@CommonDefs.Gsm7BitPacking_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @CommonDefs.Gsm7BitPacking_Type."); + } +} + +Module_Param* Gsm7BitPacking__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void Gsm7BitPacking__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +text_buf.push_int(enum_value); +} + +void Gsm7BitPacking__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @CommonDefs.Gsm7BitPacking_Type.", enum_value); +} + +void Gsm7BitPacking__Type_template::copy_template(const Gsm7BitPacking__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new Gsm7BitPacking__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new Gsm7BitPacking__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new Gsm7BitPacking__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +} +} + +Gsm7BitPacking__Type_template::Gsm7BitPacking__Type_template() +{ +} + +Gsm7BitPacking__Type_template::Gsm7BitPacking__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +Gsm7BitPacking__Type_template::Gsm7BitPacking__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!Gsm7BitPacking__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @CommonDefs.Gsm7BitPacking_Type with unknown numeric value %d.", other_value); +single_value = (Gsm7BitPacking__Type::enum_type)other_value; +} + +Gsm7BitPacking__Type_template::Gsm7BitPacking__Type_template(Gsm7BitPacking__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +Gsm7BitPacking__Type_template::Gsm7BitPacking__Type_template(const Gsm7BitPacking__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == Gsm7BitPacking__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +single_value = other_value.enum_value; +} + +Gsm7BitPacking__Type_template::Gsm7BitPacking__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (Gsm7BitPacking__Type::enum_type)(const Gsm7BitPacking__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @CommonDefs.Gsm7BitPacking_Type from an unbound optional field."); +} +} + +Gsm7BitPacking__Type_template::Gsm7BitPacking__Type_template(Gsm7BitPacking__Type_template* p_precondition, Gsm7BitPacking__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +Gsm7BitPacking__Type_template::Gsm7BitPacking__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +Gsm7BitPacking__Type_template::Gsm7BitPacking__Type_template(const Gsm7BitPacking__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +Gsm7BitPacking__Type_template::~Gsm7BitPacking__Type_template() +{ +clean_up(); +} + +boolean Gsm7BitPacking__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean Gsm7BitPacking__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != Gsm7BitPacking__Type::UNBOUND_VALUE; +} + +void Gsm7BitPacking__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +Gsm7BitPacking__Type_template& Gsm7BitPacking__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Gsm7BitPacking__Type_template& Gsm7BitPacking__Type_template::operator=(int other_value) +{ +if (!Gsm7BitPacking__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @CommonDefs.Gsm7BitPacking_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (Gsm7BitPacking__Type::enum_type)other_value; +return *this; +} + +Gsm7BitPacking__Type_template& Gsm7BitPacking__Type_template::operator=(Gsm7BitPacking__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +Gsm7BitPacking__Type_template& Gsm7BitPacking__Type_template::operator=(const Gsm7BitPacking__Type& other_value) +{ +if (other_value.enum_value == Gsm7BitPacking__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @CommonDefs.Gsm7BitPacking_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +Gsm7BitPacking__Type_template& Gsm7BitPacking__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (Gsm7BitPacking__Type::enum_type)(const Gsm7BitPacking__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +} +return *this; +} + +Gsm7BitPacking__Type_template& Gsm7BitPacking__Type_template::operator=(const Gsm7BitPacking__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean Gsm7BitPacking__Type_template::match(Gsm7BitPacking__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +} +return FALSE; +} + +boolean Gsm7BitPacking__Type_template::match(const Gsm7BitPacking__Type& other_value, boolean) const +{ +if (other_value.enum_value == Gsm7BitPacking__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @CommonDefs.Gsm7BitPacking_Type with an unbound value."); +return match(other_value.enum_value); +} + +Gsm7BitPacking__Type::enum_type Gsm7BitPacking__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +return single_value; +} + +void Gsm7BitPacking__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new Gsm7BitPacking__Type_template[list_length]; +} + +Gsm7BitPacking__Type_template& Gsm7BitPacking__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +return value_list.list_value[list_index]; +} + +void Gsm7BitPacking__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void Gsm7BitPacking__Type_template::set_value(template_sel other_value) { *this = other_value; } +void Gsm7BitPacking__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* Gsm7BitPacking__Type_template::clone() const { return new Gsm7BitPacking__Type_template(*this); } +const TTCN_Typedescriptor_t* Gsm7BitPacking__Type_template::get_descriptor() const { return &Gsm7BitPacking__Type_descr_; } +boolean Gsm7BitPacking__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void Gsm7BitPacking__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void Gsm7BitPacking__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(Gsm7BitPacking__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void Gsm7BitPacking__Type_template::log_match(const Gsm7BitPacking__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void Gsm7BitPacking__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +} +} + +void Gsm7BitPacking__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (Gsm7BitPacking__Type::enum_type)text_buf.pull_int().get_val(); +if (!Gsm7BitPacking__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @CommonDefs.Gsm7BitPacking_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new Gsm7BitPacking__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @CommonDefs.Gsm7BitPacking_Type."); +} +} + +boolean Gsm7BitPacking__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean Gsm7BitPacking__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + Gsm7BitPacking__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + Gsm7BitPacking__Type::enum_type enum_val = Gsm7BitPacking__Type::str_to_enum(m_p->get_enumerated()); + if (!Gsm7BitPacking__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @CommonDefs.Gsm7BitPacking_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + Gsm7BitPacking__Type_template* precondition = new Gsm7BitPacking__Type_template; + precondition->set_param(*m_p->get_elem(0)); + Gsm7BitPacking__Type_template* implied_template = new Gsm7BitPacking__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = Gsm7BitPacking__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@CommonDefs.Gsm7BitPacking_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* Gsm7BitPacking__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(Gsm7BitPacking__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void Struct__tm__Type::init_vec() { fld_vec[0]=&field_tm__sec; fld_vec[1]=&field_tm__min; fld_vec[2]=&field_tm__hour; fld_vec[3]=&field_tm__mday; fld_vec[4]=&field_tm__mon; fld_vec[5]=&field_tm__year; fld_vec[6]=&field_tm__wday; fld_vec[7]=&field_tm__yday; fld_vec[8]=&field_tm__isdst; } + +Struct__tm__Type::Struct__tm__Type() : Record_Type() { init_vec(); } + +Struct__tm__Type::Struct__tm__Type(const Struct__tm__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_tm__sec.is_bound() ) + field_tm__sec = other_value.field_tm__sec; +if (other_value.field_tm__min.is_bound() ) + field_tm__min = other_value.field_tm__min; +if (other_value.field_tm__hour.is_bound() ) + field_tm__hour = other_value.field_tm__hour; +if (other_value.field_tm__mday.is_bound() ) + field_tm__mday = other_value.field_tm__mday; +if (other_value.field_tm__mon.is_bound() ) + field_tm__mon = other_value.field_tm__mon; +if (other_value.field_tm__year.is_bound() ) + field_tm__year = other_value.field_tm__year; +if (other_value.field_tm__wday.is_bound() ) + field_tm__wday = other_value.field_tm__wday; +if (other_value.field_tm__yday.is_bound() ) + field_tm__yday = other_value.field_tm__yday; +if (other_value.field_tm__isdst.is_bound() ) + field_tm__isdst = other_value.field_tm__isdst; +init_vec(); +} + +Struct__tm__Type::Struct__tm__Type(const INTEGER& par_tm__sec, + const INTEGER& par_tm__min, + const INTEGER& par_tm__hour, + const INTEGER& par_tm__mday, + const INTEGER& par_tm__mon, + const INTEGER& par_tm__year, + const INTEGER& par_tm__wday, + const INTEGER& par_tm__yday, + const INTEGER& par_tm__isdst) : field_tm__sec(par_tm__sec), + field_tm__min(par_tm__min), + field_tm__hour(par_tm__hour), + field_tm__mday(par_tm__mday), + field_tm__mon(par_tm__mon), + field_tm__year(par_tm__year), + field_tm__wday(par_tm__wday), + field_tm__yday(par_tm__yday), + field_tm__isdst(par_tm__isdst) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Struct__tm__Type::get_descriptor() const { return &Struct__tm__Type_descr_; } +const TTCN_Typedescriptor_t* Struct__tm__Type::fld_descriptors[] = { &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_, &INTEGER_descr_ }; +const TTCN_Typedescriptor_t* Struct__tm__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Struct__tm__Type::fld_names[] = { "tm_sec", "tm_min", "tm_hour", "tm_mday", "tm_mon", "tm_year", "tm_wday", "tm_yday", "tm_isdst" }; +const char* Struct__tm__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void Struct__tm__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 9; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[1] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[2] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[3] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[4] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[5] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[6] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[7] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[8] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +} +} + +Struct__tm__Type_template::Struct__tm__Type_template(Struct__tm__Type_template* p_precondition, Struct__tm__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Struct__tm__Type_template::Struct__tm__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Struct__tm__Type_template::~Struct__tm__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Struct__tm__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const Struct__tm__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Struct__tm__Type_template& Struct__tm__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Struct__tm__Type_template& Struct__tm__Type_template::operator=(const Struct__tm__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Struct__tm__Type_template& Struct__tm__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Struct__tm__Type_template& Struct__tm__Type_template::operator=(const Struct__tm__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Struct__tm__Type Struct__tm__Type_template::valueof() const +{ +Struct__tm__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +INTEGER_template& Struct__tm__Type_template::tm__sec() { return *(static_cast(get_at(0))); } +const INTEGER_template& Struct__tm__Type_template::tm__sec() const { return *(static_cast(get_at(0))); } +INTEGER_template& Struct__tm__Type_template::tm__min() { return *(static_cast(get_at(1))); } +const INTEGER_template& Struct__tm__Type_template::tm__min() const { return *(static_cast(get_at(1))); } +INTEGER_template& Struct__tm__Type_template::tm__hour() { return *(static_cast(get_at(2))); } +const INTEGER_template& Struct__tm__Type_template::tm__hour() const { return *(static_cast(get_at(2))); } +INTEGER_template& Struct__tm__Type_template::tm__mday() { return *(static_cast(get_at(3))); } +const INTEGER_template& Struct__tm__Type_template::tm__mday() const { return *(static_cast(get_at(3))); } +INTEGER_template& Struct__tm__Type_template::tm__mon() { return *(static_cast(get_at(4))); } +const INTEGER_template& Struct__tm__Type_template::tm__mon() const { return *(static_cast(get_at(4))); } +INTEGER_template& Struct__tm__Type_template::tm__year() { return *(static_cast(get_at(5))); } +const INTEGER_template& Struct__tm__Type_template::tm__year() const { return *(static_cast(get_at(5))); } +INTEGER_template& Struct__tm__Type_template::tm__wday() { return *(static_cast(get_at(6))); } +const INTEGER_template& Struct__tm__Type_template::tm__wday() const { return *(static_cast(get_at(6))); } +INTEGER_template& Struct__tm__Type_template::tm__yday() { return *(static_cast(get_at(7))); } +const INTEGER_template& Struct__tm__Type_template::tm__yday() const { return *(static_cast(get_at(7))); } +INTEGER_template& Struct__tm__Type_template::tm__isdst() { return *(static_cast(get_at(8))); } +const INTEGER_template& Struct__tm__Type_template::tm__isdst() const { return *(static_cast(get_at(8))); } +const TTCN_Typedescriptor_t* Struct__tm__Type_template::get_descriptor() const { return &Struct__tm__Type_descr_; } +const char* Struct__tm__Type_template::fld_name(int p_index) const { return Struct__tm__Type::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +NameValueList__Type_template operator+(template_sel left_template, const NameValueList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NameValueList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NameValueList__Type_template(ANY_VALUE); +} +NameValueList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NameValueList__Type_template operator+(const NameValueList__Type& left_value, const NameValueList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NameValueList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NameValueList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NameValueList__Type_template operator+(template_sel left_template, const NameValueList__Type& right_value) +{ +int res_length = NameValueList__Type_template::get_length_for_concat(left_template) + NameValueList__Type_template::get_length_for_concat(right_value); +NameValueList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NameValueList__Type_template operator+(const NameValueList__Type& left_value, template_sel right_template) +{ +int res_length = NameValueList__Type_template::get_length_for_concat(left_value) + NameValueList__Type_template::get_length_for_concat(right_template); +NameValueList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NR__CellIdList__Type_template operator+(template_sel left_template, const NR__CellIdList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NR__CellIdList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NR__CellIdList__Type_template(ANY_VALUE); +} +NR__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NR__CellIdList__Type_template operator+(const NR__CellIdList__Type& left_value, const NR__CellIdList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NR__CellIdList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NR__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NR__CellIdList__Type_template operator+(template_sel left_template, const NR__CellIdList__Type& right_value) +{ +int res_length = NR__CellIdList__Type_template::get_length_for_concat(left_template) + NR__CellIdList__Type_template::get_length_for_concat(right_value); +NR__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NR__CellIdList__Type_template operator+(const NR__CellIdList__Type& left_value, template_sel right_template) +{ +int res_length = NR__CellIdList__Type_template::get_length_for_concat(left_value) + NR__CellIdList__Type_template::get_length_for_concat(right_template); +NR__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +EUTRA__CellIdList__Type_template operator+(template_sel left_template, const EUTRA__CellIdList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = EUTRA__CellIdList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return EUTRA__CellIdList__Type_template(ANY_VALUE); +} +EUTRA__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +EUTRA__CellIdList__Type_template operator+(const EUTRA__CellIdList__Type& left_value, const EUTRA__CellIdList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = EUTRA__CellIdList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +EUTRA__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +EUTRA__CellIdList__Type_template operator+(template_sel left_template, const EUTRA__CellIdList__Type& right_value) +{ +int res_length = EUTRA__CellIdList__Type_template::get_length_for_concat(left_template) + EUTRA__CellIdList__Type_template::get_length_for_concat(right_value); +EUTRA__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +EUTRA__CellIdList__Type_template operator+(const EUTRA__CellIdList__Type& left_value, template_sel right_template) +{ +int res_length = EUTRA__CellIdList__Type_template::get_length_for_concat(left_value) + EUTRA__CellIdList__Type_template::get_length_for_concat(right_template); +EUTRA__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +UTRAN__CellIdList__Type_template operator+(template_sel left_template, const UTRAN__CellIdList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = UTRAN__CellIdList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return UTRAN__CellIdList__Type_template(ANY_VALUE); +} +UTRAN__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +UTRAN__CellIdList__Type_template operator+(const UTRAN__CellIdList__Type& left_value, const UTRAN__CellIdList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = UTRAN__CellIdList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +UTRAN__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +UTRAN__CellIdList__Type_template operator+(template_sel left_template, const UTRAN__CellIdList__Type& right_value) +{ +int res_length = UTRAN__CellIdList__Type_template::get_length_for_concat(left_template) + UTRAN__CellIdList__Type_template::get_length_for_concat(right_value); +UTRAN__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +UTRAN__CellIdList__Type_template operator+(const UTRAN__CellIdList__Type& left_value, template_sel right_template) +{ +int res_length = UTRAN__CellIdList__Type_template::get_length_for_concat(left_value) + UTRAN__CellIdList__Type_template::get_length_for_concat(right_template); +UTRAN__CellIdList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +CHARSTRING fl__FormatLog(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 531, TTCN_Location::LOCATION_FUNCTION, "fl_FormatLog"); +charstring_list param_names; +param_names[0] = "p_FileName"; +param_names[1] = "p_LineNo"; +param_names[2] = "p_Msg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("fl_FormatLog", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__FileName, "p_FileName", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LineNo, "p_LineNo", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Msg, "p_Msg", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(535); +ttcn3_debugger.breakpoint_entry(535); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 535 */ +CHARSTRING v__LineNoStr(int2str(p__LineNo)); +debug_scope.add_variable(&v__LineNoStr, "v_LineNoStr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(537); +ttcn3_debugger.breakpoint_entry(537); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 537 */ +{ +CHARSTRING tmp_0; +return DEBUGGER_STORE_RETURN_VALUE(tmp_0, ((((p__FileName + cs_5) + v__LineNoStr) + cs_6) + p__Msg)); +} +} + +void f__ErrorLog(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 548, TTCN_Location::LOCATION_FUNCTION, "f_ErrorLog"); +charstring_list param_names; +param_names[0] = "p_FileName"; +param_names[1] = "p_LineNo"; +param_names[2] = "p_Msg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_ErrorLog", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__FileName, "p_FileName", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LineNo, "p_LineNo", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Msg, "p_Msg", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(552); +ttcn3_debugger.breakpoint_entry(552); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 552 */ +try { +TTCN_Logger::begin_event(TTCN_USER); +fl__FormatLog(p__FileName, p__LineNo, p__Msg).log(); +TTCN_Logger::end_event(); +} catch (...) { +TTCN_Logger::finish_event(); +throw; +} +} + +void f__SetVerdict(const VERDICTTYPE& p__Verdict, const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 563, TTCN_Location::LOCATION_FUNCTION, "f_SetVerdict"); +charstring_list param_names; +param_names[0] = "p_Verdict"; +param_names[1] = "p_FileName"; +param_names[2] = "p_LineNo"; +param_names[3] = "p_Msg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_SetVerdict", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Verdict, "p_Verdict", "verdicttype", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__FileName, "p_FileName", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LineNo, "p_LineNo", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Msg, "p_Msg", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(568); +ttcn3_debugger.breakpoint_entry(568); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 568 */ +CHARSTRING v__OutputLine(fl__FormatLog(p__FileName, p__LineNo, p__Msg)); +debug_scope.add_variable(&v__OutputLine, "v_OutputLine", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(569); +ttcn3_debugger.breakpoint_entry(569); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 569 */ +TTCN_Runtime::setverdict(p__Verdict,(TTCN_Logger::begin_event_log2str(),v__OutputLine.log(),TTCN_Logger::end_event_log2str())); +} + +void FatalError(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 580, TTCN_Location::LOCATION_FUNCTION, "FatalError"); +charstring_list param_names; +param_names[0] = "p_FileName"; +param_names[1] = "p_LineNo"; +param_names[2] = "p_Msg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("FatalError", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__FileName, "p_FileName", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LineNo, "p_LineNo", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Msg, "p_Msg", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(585); +ttcn3_debugger.breakpoint_entry(585); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 585 */ +f__ErrorLog(p__FileName, p__LineNo, p__Msg); +current_location.update_lineno(586); +ttcn3_debugger.breakpoint_entry(586); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 586 */ +try { +TTCN_Logger::begin_event(TTCN_USER); +p__Msg.log(); +TTCN_Logger::end_event(); +} catch (...) { +TTCN_Logger::finish_event(); +throw; +} +TTCN_error("testcase.stop"); +} + +void f__SetVerdictInconc(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 597, TTCN_Location::LOCATION_FUNCTION, "f_SetVerdictInconc"); +charstring_list param_names; +param_names[0] = "p_FileName"; +param_names[1] = "p_LineNo"; +param_names[2] = "p_Msg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_SetVerdictInconc", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__FileName, "p_FileName", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LineNo, "p_LineNo", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Msg, "p_Msg", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(601); +ttcn3_debugger.breakpoint_entry(601); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 601 */ +f__SetVerdict(INCONC, p__FileName, p__LineNo, p__Msg); +current_location.update_lineno(602); +ttcn3_debugger.breakpoint_entry(602); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 602 */ +TTCN_Runtime::kill_execution(); +} + +void f__Delay(const FLOAT& p__DelayTime) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 612, TTCN_Location::LOCATION_FUNCTION, "f_Delay"); +charstring_list param_names; +param_names[0] = "p_DelayTime"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Delay", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__DelayTime, "p_DelayTime", "float", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(614); +ttcn3_debugger.breakpoint_entry(614); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 614 */ +TIMER t__Delay("t_Delay"); +debug_scope.add_variable(&t__Delay, "t_Delay", "timer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(616); +ttcn3_debugger.breakpoint_entry(616); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 616 */ +t__Delay.start(p__DelayTime); +current_location.update_lineno(617); +ttcn3_debugger.breakpoint_entry(617); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 617 */ +{ +tmp_1: +alt_status alt_flag = ALT_UNCHECKED, default_flag = ALT_UNCHECKED; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (alt_flag != ALT_NO) { +alt_flag = t__Delay.timeout(NULL); +if (alt_flag == ALT_YES) break; +} +if (default_flag != ALT_NO) { +default_flag = TTCN_Default::try_altsteps(); +if (default_flag == ALT_YES || default_flag == ALT_BREAK) break; +else if (default_flag == ALT_REPEAT) goto tmp_1; +} +current_location.update_lineno(617); +ttcn3_debugger.breakpoint_entry(617); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 617 */ +if (alt_flag == ALT_NO && default_flag == ALT_NO) TTCN_error("Stand-alone timeout statement failed in file ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 617."); +TTCN_Snapshot::take_new(TRUE); +} +} +} + +INTEGER f__IntegerList__Search(const IntegerList__Type& p__IntegerList, const INTEGER& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 627, TTCN_Location::LOCATION_FUNCTION, "f_IntegerList_Search"); +charstring_list param_names; +param_names[0] = "p_IntegerList"; +param_names[1] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_IntegerList_Search", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__IntegerList, "p_IntegerList", "IntegerList_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__Val, "p_Val", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(630); +ttcn3_debugger.breakpoint_entry(630); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 630 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(632); +ttcn3_debugger.breakpoint_entry(632); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 632 */ +i = 0; +current_location.update_lineno(632); +ttcn3_debugger.breakpoint_entry(632); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 632 */ +for ( ; ; ) { +current_location.update_lineno(632); +ttcn3_debugger.breakpoint_entry(632); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 632 */ +if (!(i < p__IntegerList.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(633); +ttcn3_debugger.breakpoint_entry(633); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 633 */ +if ((const_cast< const IntegerList__Type&>(p__IntegerList)[i] == p__Val)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(634); +ttcn3_debugger.breakpoint_entry(634); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 634 */ +{ +INTEGER tmp_3; +return DEBUGGER_STORE_RETURN_VALUE(tmp_3, i); +} +} +current_location.update_lineno(632); +ttcn3_debugger.breakpoint_entry(632); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 632 */ +{ +INTEGER tmp_4; +++i; +} +} +current_location.update_lineno(637); +ttcn3_debugger.breakpoint_entry(637); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 637 */ +{ +INTEGER tmp_5; +return DEBUGGER_STORE_RETURN_VALUE(tmp_5, -1); +} +} + +INTEGER f__CeilLog2(const INTEGER& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 646, TTCN_Location::LOCATION_FUNCTION, "f_CeilLog2"); +charstring_list param_names; +param_names[0] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_CeilLog2", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Val, "p_Val", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(648); +ttcn3_debugger.breakpoint_entry(648); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 648 */ +INTEGER N(1); +debug_scope.add_variable(&N, "N", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(649); +ttcn3_debugger.breakpoint_entry(649); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 649 */ +INTEGER i(0); +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(651); +ttcn3_debugger.breakpoint_entry(651); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 651 */ +if ((p__Val > 0)) { +TTCN3_Debug_Scope debug_scope; +for ( ; ; ) { +current_location.update_lineno(652); +ttcn3_debugger.breakpoint_entry(652); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 652 */ +if (!(N < p__Val)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(653); +ttcn3_debugger.breakpoint_entry(653); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 653 */ +{ +INTEGER tmp_6; +tmp_6 = (N * 2); +N = tmp_6; +} +current_location.update_lineno(654); +ttcn3_debugger.breakpoint_entry(654); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 654 */ +{ +INTEGER tmp_7; +++i; +} +} +} +current_location.update_lineno(657); +ttcn3_debugger.breakpoint_entry(657); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 657 */ +{ +INTEGER tmp_8; +return DEBUGGER_STORE_RETURN_VALUE(tmp_8, i); +} +} + +INTEGER f__FloorLog2(const INTEGER& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 665, TTCN_Location::LOCATION_FUNCTION, "f_FloorLog2"); +charstring_list param_names; +param_names[0] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_FloorLog2", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Val, "p_Val", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(667); +ttcn3_debugger.breakpoint_entry(667); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 667 */ +{ +INTEGER tmp_9; +return DEBUGGER_STORE_RETURN_VALUE(tmp_9, (f__CeilLog2((p__Val + 1)) - 1)); +} +} + +INTEGER f__Power(const INTEGER& p__Base, const INTEGER& p__Exponent) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 677, TTCN_Location::LOCATION_FUNCTION, "f_Power"); +charstring_list param_names; +param_names[0] = "p_Base"; +param_names[1] = "p_Exponent"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_Power", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Base, "p_Base", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Exponent, "p_Exponent", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(680); +ttcn3_debugger.breakpoint_entry(680); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 680 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(681); +ttcn3_debugger.breakpoint_entry(681); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 681 */ +INTEGER v__Result(1); +debug_scope.add_variable(&v__Result, "v_Result", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(682); +ttcn3_debugger.breakpoint_entry(682); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 682 */ +i = 0; +current_location.update_lineno(682); +ttcn3_debugger.breakpoint_entry(682); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 682 */ +for ( ; ; ) { +current_location.update_lineno(682); +ttcn3_debugger.breakpoint_entry(682); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 682 */ +if (!(i < p__Exponent)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(683); +ttcn3_debugger.breakpoint_entry(683); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 683 */ +{ +INTEGER tmp_11; +tmp_11 = (v__Result * p__Base); +v__Result = tmp_11; +} +current_location.update_lineno(682); +ttcn3_debugger.breakpoint_entry(682); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 682 */ +{ +INTEGER tmp_12; +++i; +} +} +current_location.update_lineno(685); +ttcn3_debugger.breakpoint_entry(685); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 685 */ +{ +INTEGER tmp_13; +return DEBUGGER_STORE_RETURN_VALUE(tmp_13, v__Result); +} +} + +INTEGER f__Round(const FLOAT& p__Float) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 694, TTCN_Location::LOCATION_FUNCTION, "f_Round"); +charstring_list param_names; +param_names[0] = "p_Float"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Round", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Float, "p_Float", "float", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(696); +ttcn3_debugger.breakpoint_entry(696); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 696 */ +INTEGER v__Result; +debug_scope.add_variable(&v__Result, "v_Result", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(698); +ttcn3_debugger.breakpoint_entry(698); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 698 */ +if ((p__Float >= 0.0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(699); +ttcn3_debugger.breakpoint_entry(699); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 699 */ +v__Result = float2int((p__Float + 5.0e-1)); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(701); +ttcn3_debugger.breakpoint_entry(701); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 701 */ +v__Result = float2int((p__Float - 5.0e-1)); +} +current_location.update_lineno(703); +ttcn3_debugger.breakpoint_entry(703); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 703 */ +{ +INTEGER tmp_16; +return DEBUGGER_STORE_RETURN_VALUE(tmp_16, v__Result); +} +} + +BITSTRING_template f__TemplateInt2Bit(const INTEGER_template& p__Val, const INTEGER& p__Length) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 708, TTCN_Location::LOCATION_FUNCTION, "f_TemplateInt2Bit"); +charstring_list param_names; +param_names[0] = "p_Val"; +param_names[1] = "p_Length"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_TemplateInt2Bit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Val, "p_Val", "integer template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Length, "p_Length", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(714); +ttcn3_debugger.breakpoint_entry(714); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 714 */ +if (p__Val.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(715); +ttcn3_debugger.breakpoint_entry(715); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 715 */ +{ +BITSTRING_template tmp_17; +return DEBUGGER_STORE_RETURN_VALUE(tmp_17, BITSTRING_template(int2bit(p__Val.valueof(), p__Length))); +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(717); +ttcn3_debugger.breakpoint_entry(717); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 717 */ +{ +BITSTRING_template tmp_18; +return DEBUGGER_STORE_RETURN_VALUE(tmp_18, BITSTRING_template(ANY_VALUE)); +} +} +} + +CHARSTRING_template f__TemplateInt2Str(const INTEGER_template& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 721, TTCN_Location::LOCATION_FUNCTION, "f_TemplateInt2Str"); +charstring_list param_names; +param_names[0] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_TemplateInt2Str", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Val, "p_Val", "integer template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(723); +ttcn3_debugger.breakpoint_entry(723); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 723 */ +if (p__Val.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(724); +ttcn3_debugger.breakpoint_entry(724); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 724 */ +{ +CHARSTRING_template tmp_19; +return DEBUGGER_STORE_RETURN_VALUE(tmp_19, CHARSTRING_template(int2str(p__Val.valueof()))); +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(726); +ttcn3_debugger.breakpoint_entry(726); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 726 */ +{ +CHARSTRING_template tmp_20; +return DEBUGGER_STORE_RETURN_VALUE(tmp_20, CHARSTRING_template(ANY_VALUE)); +} +} +} + +INTEGER f__StringFindChar(const CHARSTRING& p__String, const Char1List__Type& p__CharList, const INTEGER& p__StartIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 739, TTCN_Location::LOCATION_FUNCTION, "f_StringFindChar"); +charstring_list param_names; +param_names[0] = "p_String"; +param_names[1] = "p_CharList"; +param_names[2] = "p_StartIndex"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_StringFindChar", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__String, "p_String", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__CharList, "p_CharList", "Char1List_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__StartIndex, "p_StartIndex", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(743); +ttcn3_debugger.breakpoint_entry(743); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 743 */ +INTEGER v__NoOfChars(p__CharList.lengthof()); +debug_scope.add_variable(&v__NoOfChars, "v_NoOfChars", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(744); +ttcn3_debugger.breakpoint_entry(744); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 744 */ +INTEGER v__Index; +debug_scope.add_variable(&v__Index, "v_Index", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(745); +ttcn3_debugger.breakpoint_entry(745); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 745 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(746); +ttcn3_debugger.breakpoint_entry(746); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 746 */ +CHARSTRING v__Char; +debug_scope.add_variable(&v__Char, "v_Char", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(748); +ttcn3_debugger.breakpoint_entry(748); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 748 */ +if ((v__NoOfChars == 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(749); +ttcn3_debugger.breakpoint_entry(749); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 749 */ +{ +INTEGER tmp_21; +return DEBUGGER_STORE_RETURN_VALUE(tmp_21, -1); +} +} +current_location.update_lineno(752); +ttcn3_debugger.breakpoint_entry(752); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 752 */ +v__Index = p__StartIndex; +current_location.update_lineno(752); +ttcn3_debugger.breakpoint_entry(752); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 752 */ +for ( ; ; ) { +current_location.update_lineno(752); +ttcn3_debugger.breakpoint_entry(752); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 752 */ +if (!(v__Index < p__String.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(753); +ttcn3_debugger.breakpoint_entry(753); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 753 */ +v__Char = const_cast< const CHARSTRING&>(p__String)[v__Index]; +current_location.update_lineno(754); +ttcn3_debugger.breakpoint_entry(754); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 754 */ +i = 0; +current_location.update_lineno(754); +ttcn3_debugger.breakpoint_entry(754); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 754 */ +for ( ; ; ) { +current_location.update_lineno(754); +ttcn3_debugger.breakpoint_entry(754); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 754 */ +if (!(i < v__NoOfChars)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(755); +ttcn3_debugger.breakpoint_entry(755); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 755 */ +if ((v__Char == const_cast< const Char1List__Type&>(p__CharList)[i])) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(756); +ttcn3_debugger.breakpoint_entry(756); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 756 */ +{ +INTEGER tmp_25; +return DEBUGGER_STORE_RETURN_VALUE(tmp_25, v__Index); +} +} +current_location.update_lineno(754); +ttcn3_debugger.breakpoint_entry(754); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 754 */ +{ +INTEGER tmp_26; +++i; +} +} +current_location.update_lineno(752); +ttcn3_debugger.breakpoint_entry(752); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 752 */ +{ +INTEGER tmp_27; +++v__Index; +} +} +current_location.update_lineno(760); +ttcn3_debugger.breakpoint_entry(760); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 760 */ +{ +INTEGER tmp_28; +return DEBUGGER_STORE_RETURN_VALUE(tmp_28, -1); +} +} + +CHARSTRING fl__StringToUpperOrLower(const BOOLEAN& p__ToLower, const CHARSTRING& p__String) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 763, TTCN_Location::LOCATION_FUNCTION, "fl_StringToUpperOrLower"); +charstring_list param_names; +param_names[0] = "p_ToLower"; +param_names[1] = "p_String"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("fl_StringToUpperOrLower", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__ToLower, "p_ToLower", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__String, "p_String", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(766); +ttcn3_debugger.breakpoint_entry(766); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 766 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(767); +ttcn3_debugger.breakpoint_entry(767); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 767 */ +INTEGER v__StrLen(p__String.lengthof()); +debug_scope.add_variable(&v__StrLen, "v_StrLen", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(768); +ttcn3_debugger.breakpoint_entry(768); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 768 */ +INTEGER v__Value; +debug_scope.add_variable(&v__Value, "v_Value", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(769); +ttcn3_debugger.breakpoint_entry(769); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 769 */ +CHARSTRING v__String(cs_7); +debug_scope.add_variable(&v__String, "v_String", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(771); +ttcn3_debugger.breakpoint_entry(771); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 771 */ +i = 0; +current_location.update_lineno(771); +ttcn3_debugger.breakpoint_entry(771); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 771 */ +for ( ; ; ) { +current_location.update_lineno(771); +ttcn3_debugger.breakpoint_entry(771); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 771 */ +if (!(i < v__StrLen)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(772); +ttcn3_debugger.breakpoint_entry(772); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 772 */ +v__Value = char2int(const_cast< const CHARSTRING&>(p__String)[i]); +current_location.update_lineno(773); +ttcn3_debugger.breakpoint_entry(773); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 773 */ +if (p__ToLower) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(774); +ttcn3_debugger.breakpoint_entry(774); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 774 */ +{ +boolean tmp_31; +tmp_31 = (64 < v__Value); +if (tmp_31) tmp_31 = (v__Value < 91); +if (tmp_31) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(775); +ttcn3_debugger.breakpoint_entry(775); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 775 */ +{ +INTEGER tmp_32; +tmp_32 = (v__Value + 32); +v__Value = tmp_32; +} +} +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(778); +ttcn3_debugger.breakpoint_entry(778); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 778 */ +{ +boolean tmp_33; +tmp_33 = (96 < v__Value); +if (tmp_33) tmp_33 = (v__Value < 123); +if (tmp_33) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(779); +ttcn3_debugger.breakpoint_entry(779); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 779 */ +{ +INTEGER tmp_34; +tmp_34 = (v__Value - 32); +v__Value = tmp_34; +} +} +} +} +current_location.update_lineno(782); +ttcn3_debugger.breakpoint_entry(782); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 782 */ +v__String[i] = int2char(v__Value); +current_location.update_lineno(771); +ttcn3_debugger.breakpoint_entry(771); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 771 */ +{ +INTEGER tmp_36; +++i; +} +} +current_location.update_lineno(784); +ttcn3_debugger.breakpoint_entry(784); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 784 */ +{ +CHARSTRING tmp_37; +return DEBUGGER_STORE_RETURN_VALUE(tmp_37, v__String); +} +} + +CHARSTRING f__StringToLower(const CHARSTRING& p__String) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 787, TTCN_Location::LOCATION_FUNCTION, "f_StringToLower"); +charstring_list param_names; +param_names[0] = "p_String"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_StringToLower", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__String, "p_String", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(789); +ttcn3_debugger.breakpoint_entry(789); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 789 */ +{ +CHARSTRING tmp_38; +return DEBUGGER_STORE_RETURN_VALUE(tmp_38, fl__StringToUpperOrLower(TRUE, p__String)); +} +} + +CHARSTRING f__StringToUpper(const CHARSTRING& p__String) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 792, TTCN_Location::LOCATION_FUNCTION, "f_StringToUpper"); +charstring_list param_names; +param_names[0] = "p_String"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_StringToUpper", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__String, "p_String", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(794); +ttcn3_debugger.breakpoint_entry(794); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 794 */ +{ +CHARSTRING tmp_39; +return DEBUGGER_STORE_RETURN_VALUE(tmp_39, fl__StringToUpperOrLower(FALSE, p__String)); +} +} + +CharStringList__Type f__StringSplit(const CHARSTRING& p__String, const Char1List__Type& p__SplitCharList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 804, TTCN_Location::LOCATION_FUNCTION, "f_StringSplit"); +charstring_list param_names; +param_names[0] = "p_String"; +param_names[1] = "p_SplitCharList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_StringSplit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__String, "p_String", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SplitCharList, "p_SplitCharList", "Char1List_Type", NULL, print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(807); +ttcn3_debugger.breakpoint_entry(807); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 807 */ +CharStringList__Type v__StringList(NULL_VALUE); +debug_scope.add_variable(&v__StringList, "v_StringList", "CharStringList_Type", NULL, print_var_CommonDefs, set_var_CommonDefs); +current_location.update_lineno(808); +ttcn3_debugger.breakpoint_entry(808); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 808 */ +INTEGER v__Index; +debug_scope.add_variable(&v__Index, "v_Index", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(809); +ttcn3_debugger.breakpoint_entry(809); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 809 */ +INTEGER v__SubStrLen; +debug_scope.add_variable(&v__SubStrLen, "v_SubStrLen", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(810); +ttcn3_debugger.breakpoint_entry(810); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 810 */ +INTEGER v__StartIndex(0); +debug_scope.add_variable(&v__StartIndex, "v_StartIndex", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(811); +ttcn3_debugger.breakpoint_entry(811); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 811 */ +INTEGER v__StrLen(p__String.lengthof()); +debug_scope.add_variable(&v__StrLen, "v_StrLen", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(812); +ttcn3_debugger.breakpoint_entry(812); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 812 */ +INTEGER v__StrCnt(0); +debug_scope.add_variable(&v__StrCnt, "v_StrCnt", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(813); +ttcn3_debugger.breakpoint_entry(813); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 813 */ +BOOLEAN v__Break(FALSE); +debug_scope.add_variable(&v__Break, "v_Break", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(815); +ttcn3_debugger.breakpoint_entry(815); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 815 */ +if ((p__String != cs_7)) { +TTCN3_Debug_Scope debug_scope; +for ( ; ; ) { +current_location.update_lineno(816); +ttcn3_debugger.breakpoint_entry(816); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 816 */ +if (!(!(v__Break))) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(817); +ttcn3_debugger.breakpoint_entry(817); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 817 */ +v__Index = f__StringFindChar(p__String, p__SplitCharList, v__StartIndex); +current_location.update_lineno(818); +ttcn3_debugger.breakpoint_entry(818); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 818 */ +if ((v__Index < 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(819); +ttcn3_debugger.breakpoint_entry(819); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 819 */ +v__SubStrLen = (v__StrLen - v__StartIndex); +current_location.update_lineno(820); +ttcn3_debugger.breakpoint_entry(820); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 820 */ +v__Break = TRUE; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(822); +ttcn3_debugger.breakpoint_entry(822); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 822 */ +v__SubStrLen = (v__Index - v__StartIndex); +} +current_location.update_lineno(824); +ttcn3_debugger.breakpoint_entry(824); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 824 */ +v__StringList[v__StrCnt] = substr(p__String, v__StartIndex, v__SubStrLen); +current_location.update_lineno(825); +ttcn3_debugger.breakpoint_entry(825); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 825 */ +{ +INTEGER tmp_45; +++v__StrCnt; +} +current_location.update_lineno(826); +ttcn3_debugger.breakpoint_entry(826); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 826 */ +v__StartIndex = (v__Index + 1); +} +} +current_location.update_lineno(829); +ttcn3_debugger.breakpoint_entry(829); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 829 */ +{ +CharStringList__Type tmp_47; +return DEBUGGER_STORE_RETURN_VALUE(tmp_47, v__StringList); +} +} + +CharStringList__Type f__StringSplitLines(const CHARSTRING& p__Text, const CHARSTRING& p__Delimitor) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 838, TTCN_Location::LOCATION_FUNCTION, "f_StringSplitLines"); +charstring_list param_names; +param_names[0] = "p_Text"; +param_names[1] = "p_Delimitor"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_StringSplitLines", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Text, "p_Text", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Delimitor, "p_Delimitor", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(841); +ttcn3_debugger.breakpoint_entry(841); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 841 */ +CHARSTRING v__Text(p__Text); +debug_scope.add_variable(&v__Text, "v_Text", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(842); +ttcn3_debugger.breakpoint_entry(842); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 842 */ +CharStringList__Type v__CharStringList1; +debug_scope.add_variable(&v__CharStringList1, "v_CharStringList1", "CharStringList_Type", NULL, print_var_CommonDefs, set_var_CommonDefs); +current_location.update_lineno(843); +ttcn3_debugger.breakpoint_entry(843); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 843 */ +CharStringList__Type v__CharStringList2(NULL_VALUE); +debug_scope.add_variable(&v__CharStringList2, "v_CharStringList2", "CharStringList_Type", NULL, print_var_CommonDefs, set_var_CommonDefs); +current_location.update_lineno(844); +ttcn3_debugger.breakpoint_entry(844); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 844 */ +CHARSTRING v__Expression(((cs_8 + p__Delimitor) + cs_9)); +debug_scope.add_variable(&v__Expression, "v_Expression", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(845); +ttcn3_debugger.breakpoint_entry(845); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 845 */ +INTEGER i(0); +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(846); +ttcn3_debugger.breakpoint_entry(846); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 846 */ +INTEGER N; +debug_scope.add_variable(&N, "N", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +for ( ; ; ) { +current_location.update_lineno(848); +ttcn3_debugger.breakpoint_entry(848); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 848 */ +if (!(regexp(v__Text, v__Expression, 1, FALSE) != cs_7)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(849); +ttcn3_debugger.breakpoint_entry(849); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 849 */ +v__CharStringList1[i] = regexp(v__Text, v__Expression, 2, FALSE); +current_location.update_lineno(850); +ttcn3_debugger.breakpoint_entry(850); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 850 */ +{ +CHARSTRING tmp_49; +tmp_49 = regexp(v__Text, v__Expression, 0, FALSE); +v__Text = tmp_49; +} +current_location.update_lineno(851); +ttcn3_debugger.breakpoint_entry(851); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 851 */ +{ +INTEGER tmp_50; +++i; +} +} +current_location.update_lineno(853); +ttcn3_debugger.breakpoint_entry(853); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 853 */ +v__CharStringList1[i] = v__Text; +current_location.update_lineno(854); +ttcn3_debugger.breakpoint_entry(854); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 854 */ +N = (i + 1); +current_location.update_lineno(855); +ttcn3_debugger.breakpoint_entry(855); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 855 */ +i = 0; +current_location.update_lineno(855); +ttcn3_debugger.breakpoint_entry(855); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 855 */ +for ( ; ; ) { +current_location.update_lineno(855); +ttcn3_debugger.breakpoint_entry(855); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 855 */ +if (!(i < N)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(856); +ttcn3_debugger.breakpoint_entry(856); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 856 */ +v__CharStringList2[i] = const_cast< const CharStringList__Type&>(v__CharStringList1)[((N - i) - 1)]; +current_location.update_lineno(855); +ttcn3_debugger.breakpoint_entry(855); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 855 */ +{ +INTEGER tmp_55; +++i; +} +} +current_location.update_lineno(858); +ttcn3_debugger.breakpoint_entry(858); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 858 */ +{ +CharStringList__Type tmp_56; +return DEBUGGER_STORE_RETURN_VALUE(tmp_56, v__CharStringList2); +} +} + +CHARSTRING f__StringJoin(const CharStringList__Type& p__StringList, const CHARSTRING& p__JoinString) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 861, TTCN_Location::LOCATION_FUNCTION, "f_StringJoin"); +charstring_list param_names; +param_names[0] = "p_StringList"; +param_names[1] = "p_JoinString"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_StringJoin", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__StringList, "p_StringList", "CharStringList_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__JoinString, "p_JoinString", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(864); +ttcn3_debugger.breakpoint_entry(864); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 864 */ +CharStringList__Type v__StringList; +debug_scope.add_variable(&v__StringList, "v_StringList", "CharStringList_Type", NULL, print_var_CommonDefs, set_var_CommonDefs); +current_location.update_lineno(865); +ttcn3_debugger.breakpoint_entry(865); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 865 */ +CHARSTRING v__String(cs_7); +debug_scope.add_variable(&v__String, "v_String", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(866); +ttcn3_debugger.breakpoint_entry(866); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 866 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(867); +ttcn3_debugger.breakpoint_entry(867); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 867 */ +INTEGER k(0); +debug_scope.add_variable(&k, "k", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(869); +ttcn3_debugger.breakpoint_entry(869); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 869 */ +i = 0; +current_location.update_lineno(869); +ttcn3_debugger.breakpoint_entry(869); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 869 */ +for ( ; ; ) { +current_location.update_lineno(869); +ttcn3_debugger.breakpoint_entry(869); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 869 */ +if (!(i < p__StringList.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(870); +ttcn3_debugger.breakpoint_entry(870); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 870 */ +if ((const_cast< const CharStringList__Type&>(p__StringList)[i] != cs_7)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(871); +ttcn3_debugger.breakpoint_entry(871); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 871 */ +v__StringList[k] = const_cast< const CharStringList__Type&>(p__StringList)[i]; +current_location.update_lineno(872); +ttcn3_debugger.breakpoint_entry(872); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 872 */ +{ +INTEGER tmp_59; +++k; +} +} +current_location.update_lineno(869); +ttcn3_debugger.breakpoint_entry(869); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 869 */ +{ +INTEGER tmp_60; +++i; +} +} +current_location.update_lineno(875); +ttcn3_debugger.breakpoint_entry(875); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 875 */ +if ((k > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(876); +ttcn3_debugger.breakpoint_entry(876); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 876 */ +i = 0; +current_location.update_lineno(876); +ttcn3_debugger.breakpoint_entry(876); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 876 */ +for ( ; ; ) { +current_location.update_lineno(876); +ttcn3_debugger.breakpoint_entry(876); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 876 */ +if (!(i < (k - 1))) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(877); +ttcn3_debugger.breakpoint_entry(877); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 877 */ +{ +CHARSTRING tmp_62; +tmp_62 = ((v__String + const_cast< const CharStringList__Type&>(v__StringList)[i]) + p__JoinString); +v__String = tmp_62; +} +current_location.update_lineno(876); +ttcn3_debugger.breakpoint_entry(876); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 876 */ +{ +INTEGER tmp_63; +++i; +} +} +current_location.update_lineno(879); +ttcn3_debugger.breakpoint_entry(879); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 879 */ +{ +CHARSTRING tmp_64; +tmp_64 = (v__String + const_cast< const CharStringList__Type&>(v__StringList)[i]); +v__String = tmp_64; +} +} +current_location.update_lineno(881); +ttcn3_debugger.breakpoint_entry(881); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 881 */ +{ +CHARSTRING tmp_65; +return DEBUGGER_STORE_RETURN_VALUE(tmp_65, v__String); +} +} + +CharStringList__Type f__CharStringList__Add(const CharStringList__Type& p__StringList, const CHARSTRING& p__NewString) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 884, TTCN_Location::LOCATION_FUNCTION, "f_CharStringList_Add"); +charstring_list param_names; +param_names[0] = "p_StringList"; +param_names[1] = "p_NewString"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_CharStringList_Add", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__StringList, "p_StringList", "CharStringList_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__NewString, "p_NewString", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(887); +ttcn3_debugger.breakpoint_entry(887); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 887 */ +INTEGER v__Length(p__StringList.lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(888); +ttcn3_debugger.breakpoint_entry(888); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 888 */ +CharStringList__Type v__StringList(p__StringList); +debug_scope.add_variable(&v__StringList, "v_StringList", "CharStringList_Type", NULL, print_var_CommonDefs, set_var_CommonDefs); +current_location.update_lineno(890); +ttcn3_debugger.breakpoint_entry(890); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 890 */ +v__StringList[v__Length] = p__NewString; +current_location.update_lineno(891); +ttcn3_debugger.breakpoint_entry(891); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 891 */ +{ +CharStringList__Type tmp_67; +return DEBUGGER_STORE_RETURN_VALUE(tmp_67, v__StringList); +} +} + +CharStringList__Type f__CharStringList__Remove(const CharStringList__Type& p__StringList, const CHARSTRING_template& p__Pattern) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 894, TTCN_Location::LOCATION_FUNCTION, "f_CharStringList_Remove"); +charstring_list param_names; +param_names[0] = "p_StringList"; +param_names[1] = "p_Pattern"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_CharStringList_Remove", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__StringList, "p_StringList", "CharStringList_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__Pattern, "p_Pattern", "charstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(897); +ttcn3_debugger.breakpoint_entry(897); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 897 */ +CharStringList__Type v__NewList(NULL_VALUE); +debug_scope.add_variable(&v__NewList, "v_NewList", "CharStringList_Type", NULL, print_var_CommonDefs, set_var_CommonDefs); +current_location.update_lineno(898); +ttcn3_debugger.breakpoint_entry(898); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 898 */ +INTEGER k(0); +debug_scope.add_variable(&k, "k", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(899); +ttcn3_debugger.breakpoint_entry(899); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 899 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(901); +ttcn3_debugger.breakpoint_entry(901); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 901 */ +i = 0; +current_location.update_lineno(901); +ttcn3_debugger.breakpoint_entry(901); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 901 */ +for ( ; ; ) { +current_location.update_lineno(901); +ttcn3_debugger.breakpoint_entry(901); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 901 */ +if (!(i < p__StringList.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(902); +ttcn3_debugger.breakpoint_entry(902); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 902 */ +if ((!(p__Pattern.match(const_cast< const CharStringList__Type&>(p__StringList)[i])))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(903); +ttcn3_debugger.breakpoint_entry(903); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 903 */ +v__NewList[k] = const_cast< const CharStringList__Type&>(p__StringList)[i]; +current_location.update_lineno(904); +ttcn3_debugger.breakpoint_entry(904); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 904 */ +{ +INTEGER tmp_70; +++k; +} +} +current_location.update_lineno(901); +ttcn3_debugger.breakpoint_entry(901); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 901 */ +{ +INTEGER tmp_71; +++i; +} +} +current_location.update_lineno(907); +ttcn3_debugger.breakpoint_entry(907); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 907 */ +{ +CharStringList__Type tmp_72; +return DEBUGGER_STORE_RETURN_VALUE(tmp_72, v__NewList); +} +} + +BITSTRING f__ConvertBoolToBit(const BOOLEAN& p__Bool) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 912, TTCN_Location::LOCATION_FUNCTION, "f_ConvertBoolToBit"); +charstring_list param_names; +param_names[0] = "p_Bool"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ConvertBoolToBit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Bool, "p_Bool", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(914); +ttcn3_debugger.breakpoint_entry(914); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 914 */ +BITSTRING v__Bit(bs_10); +debug_scope.add_variable(&v__Bit, "v_Bit", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(915); +ttcn3_debugger.breakpoint_entry(915); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 915 */ +if (p__Bool) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(916); +ttcn3_debugger.breakpoint_entry(916); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 916 */ +v__Bit = bs_11; +} +current_location.update_lineno(918); +ttcn3_debugger.breakpoint_entry(918); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 918 */ +{ +BITSTRING tmp_74; +return DEBUGGER_STORE_RETURN_VALUE(tmp_74, v__Bit); +} +} + +BITSTRING f__ConvertStrToBit(const CHARSTRING& p__Charstring) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 923, TTCN_Location::LOCATION_FUNCTION, "f_ConvertStrToBit"); +charstring_list param_names; +param_names[0] = "p_Charstring"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ConvertStrToBit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Charstring, "p_Charstring", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(925); +ttcn3_debugger.breakpoint_entry(925); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 925 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(926); +ttcn3_debugger.breakpoint_entry(926); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 926 */ +BITSTRING v__ReturnBitString(bs_12); +debug_scope.add_variable(&v__ReturnBitString, "v_ReturnBitString", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(928); +ttcn3_debugger.breakpoint_entry(928); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 928 */ +i = 0; +current_location.update_lineno(928); +ttcn3_debugger.breakpoint_entry(928); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 928 */ +for ( ; ; ) { +current_location.update_lineno(928); +ttcn3_debugger.breakpoint_entry(928); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 928 */ +if (!(i < p__Charstring.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(929); +ttcn3_debugger.breakpoint_entry(929); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 929 */ +{ +BITSTRING tmp_76; +tmp_76 = (v__ReturnBitString + int2bit(str2int(const_cast< const CHARSTRING&>(p__Charstring)[i]), 1)); +v__ReturnBitString = tmp_76; +} +current_location.update_lineno(928); +ttcn3_debugger.breakpoint_entry(928); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 928 */ +{ +INTEGER tmp_77; +++i; +} +} +current_location.update_lineno(931); +ttcn3_debugger.breakpoint_entry(931); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 931 */ +{ +BITSTRING tmp_78; +return DEBUGGER_STORE_RETURN_VALUE(tmp_78, v__ReturnBitString); +} +} + +BITSTRING f__Char2Bit(const CHARSTRING& p__Char) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 936, TTCN_Location::LOCATION_FUNCTION, "f_Char2Bit"); +charstring_list param_names; +param_names[0] = "p_Char"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Char2Bit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Char, "p_Char", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(938); +ttcn3_debugger.breakpoint_entry(938); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 938 */ +{ +BITSTRING tmp_79; +return DEBUGGER_STORE_RETURN_VALUE(tmp_79, oct2bit(char2oct(p__Char))); +} +} + +BITSTRING f__Unichar2Bit(const UNIVERSAL_CHARSTRING& p__Unichar) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 941, TTCN_Location::LOCATION_FUNCTION, "f_Unichar2Bit"); +charstring_list param_names; +param_names[0] = "p_Unichar"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Unichar2Bit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Unichar, "p_Unichar", "universal charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(943); +ttcn3_debugger.breakpoint_entry(943); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 943 */ +{ +BITSTRING tmp_80; +return DEBUGGER_STORE_RETURN_VALUE(tmp_80, oct2bit(unichar2oct(p__Unichar))); +} +} + +BITSTRING f__XsdString2Bit(const UNIVERSAL_CHARSTRING& p__XsdString) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 946, TTCN_Location::LOCATION_FUNCTION, "f_XsdString2Bit"); +charstring_list param_names; +param_names[0] = "p_XsdString"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_XsdString2Bit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__XsdString, "p_XsdString", "universal charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(949); +ttcn3_debugger.breakpoint_entry(949); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 949 */ +{ +BITSTRING tmp_81; +return DEBUGGER_STORE_RETURN_VALUE(tmp_81, f__Unichar2Bit(p__XsdString)); +} +} + +CHARSTRING f__Bit2Char(const BITSTRING& p__BitString) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 952, TTCN_Location::LOCATION_FUNCTION, "f_Bit2Char"); +charstring_list param_names; +param_names[0] = "p_BitString"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Bit2Char", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__BitString, "p_BitString", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(954); +ttcn3_debugger.breakpoint_entry(954); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 954 */ +{ +CHARSTRING tmp_82; +return DEBUGGER_STORE_RETURN_VALUE(tmp_82, oct2char(bit2oct(p__BitString))); +} +} + +UNIVERSAL_CHARSTRING f__Bit2Unichar(const BITSTRING& p__BitString) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 957, TTCN_Location::LOCATION_FUNCTION, "f_Bit2Unichar"); +charstring_list param_names; +param_names[0] = "p_BitString"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Bit2Unichar", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__BitString, "p_BitString", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(959); +ttcn3_debugger.breakpoint_entry(959); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 959 */ +{ +UNIVERSAL_CHARSTRING tmp_83; +return DEBUGGER_STORE_RETURN_VALUE(tmp_83, oct2unichar(bit2oct(p__BitString))); +} +} + +UNIVERSAL_CHARSTRING f__Bit2XsdString(const BITSTRING& p__BitString) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 962, TTCN_Location::LOCATION_FUNCTION, "f_Bit2XsdString"); +charstring_list param_names; +param_names[0] = "p_BitString"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Bit2XsdString", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__BitString, "p_BitString", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(965); +ttcn3_debugger.breakpoint_entry(965); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 965 */ +{ +UNIVERSAL_CHARSTRING tmp_84; +return DEBUGGER_STORE_RETURN_VALUE(tmp_84, f__Bit2Unichar(p__BitString)); +} +} + +BITSTRING f__OctetAlignedBitString(const BITSTRING& p__Bitstring) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 974, TTCN_Location::LOCATION_FUNCTION, "f_OctetAlignedBitString"); +charstring_list param_names; +param_names[0] = "p_Bitstring"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_OctetAlignedBitString", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Bitstring, "p_Bitstring", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(976); +ttcn3_debugger.breakpoint_entry(976); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 976 */ +BITSTRING v__Bitstring(p__Bitstring); +debug_scope.add_variable(&v__Bitstring, "v_Bitstring", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(977); +ttcn3_debugger.breakpoint_entry(977); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 977 */ +INTEGER v__BitLength(p__Bitstring.lengthof()); +debug_scope.add_variable(&v__BitLength, "v_BitLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(978); +ttcn3_debugger.breakpoint_entry(978); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 978 */ +INTEGER v__PaddingLength; +debug_scope.add_variable(&v__PaddingLength, "v_PaddingLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(979); +ttcn3_debugger.breakpoint_entry(979); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 979 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(981); +ttcn3_debugger.breakpoint_entry(981); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 981 */ +if ((mod(v__BitLength, 8) > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(982); +ttcn3_debugger.breakpoint_entry(982); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 982 */ +v__PaddingLength = (8 - mod(v__BitLength, 8)); +current_location.update_lineno(983); +ttcn3_debugger.breakpoint_entry(983); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 983 */ +i = 0; +current_location.update_lineno(983); +ttcn3_debugger.breakpoint_entry(983); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 983 */ +for ( ; ; ) { +current_location.update_lineno(983); +ttcn3_debugger.breakpoint_entry(983); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 983 */ +if (!(i < v__PaddingLength)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(984); +ttcn3_debugger.breakpoint_entry(984); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 984 */ +{ +BITSTRING tmp_87; +tmp_87 = (v__Bitstring + bs_10); +v__Bitstring = tmp_87; +} +current_location.update_lineno(983); +ttcn3_debugger.breakpoint_entry(983); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 983 */ +{ +INTEGER tmp_88; +++i; +} +} +} +current_location.update_lineno(988); +ttcn3_debugger.breakpoint_entry(988); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 988 */ +{ +BITSTRING tmp_89; +return DEBUGGER_STORE_RETURN_VALUE(tmp_89, v__Bitstring); +} +} + +OCTETSTRING f__GetN__OctetsFromPRBS(const INTEGER& p__Start, const INTEGER& p__N) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 998, TTCN_Location::LOCATION_FUNCTION, "f_GetN_OctetsFromPRBS"); +charstring_list param_names; +param_names[0] = "p_Start"; +param_names[1] = "p_N"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_GetN_OctetsFromPRBS", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Start, "p_Start", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__N, "p_N", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1002); +ttcn3_debugger.breakpoint_entry(1002); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1002 */ +INTEGER v__LengthOfPRBS(2047); +debug_scope.add_variable(&v__LengthOfPRBS, "v_LengthOfPRBS", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1003); +ttcn3_debugger.breakpoint_entry(1003); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1003 */ +INTEGER v__Start(mod(p__Start, v__LengthOfPRBS)); +debug_scope.add_variable(&v__Start, "v_Start", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1004); +ttcn3_debugger.breakpoint_entry(1004); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1004 */ +OCTETSTRING v__Noctets(substr(os_1, v__Start, (v__LengthOfPRBS - v__Start))); +debug_scope.add_variable(&v__Noctets, "v_Noctets", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +for ( ; ; ) { +current_location.update_lineno(1006); +ttcn3_debugger.breakpoint_entry(1006); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1006 */ +if (!(v__Noctets.lengthof() < p__N)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1007); +ttcn3_debugger.breakpoint_entry(1007); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1007 */ +{ +OCTETSTRING tmp_90; +tmp_90 = (v__Noctets + os_1); +v__Noctets = tmp_90; +} +} +current_location.update_lineno(1009); +ttcn3_debugger.breakpoint_entry(1009); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1009 */ +{ +OCTETSTRING tmp_91; +tmp_91 = substr(v__Noctets, 0, p__N); +v__Noctets = tmp_91; +} +current_location.update_lineno(1010); +ttcn3_debugger.breakpoint_entry(1010); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1010 */ +{ +OCTETSTRING tmp_92; +return DEBUGGER_STORE_RETURN_VALUE(tmp_92, v__Noctets); +} +} + +OCTETSTRING fl__XlatAcsiiToGsm7Bit(const OCTETSTRING& p__AsciiOctetString) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1123, TTCN_Location::LOCATION_FUNCTION, "fl_XlatAcsiiToGsm7Bit"); +charstring_list param_names; +param_names[0] = "p_AsciiOctetString"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_XlatAcsiiToGsm7Bit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__AsciiOctetString, "p_AsciiOctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1125); +ttcn3_debugger.breakpoint_entry(1125); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1125 */ +OCTETSTRING v__GsmOctetString; +debug_scope.add_variable(&v__GsmOctetString, "v_GsmOctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1126); +ttcn3_debugger.breakpoint_entry(1126); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1126 */ +INTEGER v__XlatStatus; +debug_scope.add_variable(&v__XlatStatus, "v_XlatStatus", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1127); +ttcn3_debugger.breakpoint_entry(1127); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1127 */ +INTEGER v__AsciiIndex; +debug_scope.add_variable(&v__AsciiIndex, "v_AsciiIndex", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1128); +ttcn3_debugger.breakpoint_entry(1128); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1128 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1129); +ttcn3_debugger.breakpoint_entry(1129); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1129 */ +INTEGER j(0); +debug_scope.add_variable(&j, "j", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1131); +ttcn3_debugger.breakpoint_entry(1131); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1131 */ +i = 0; +current_location.update_lineno(1131); +ttcn3_debugger.breakpoint_entry(1131); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1131 */ +for ( ; ; ) { +current_location.update_lineno(1131); +ttcn3_debugger.breakpoint_entry(1131); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1131 */ +if (!(i < p__AsciiOctetString.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1133); +ttcn3_debugger.breakpoint_entry(1133); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1133 */ +v__AsciiIndex = oct2int(const_cast< const OCTETSTRING&>(p__AsciiOctetString)[i]); +current_location.update_lineno(1134); +ttcn3_debugger.breakpoint_entry(1134); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1134 */ +v__XlatStatus = tsc__Gsm7BitLookup[v__AsciiIndex][0]; +{ +const INTEGER &tmp_192 = v__XlatStatus; +switch(tmp_192.get_long_long_val()) { +case(0): +{ +current_location.update_lineno(1137); +ttcn3_debugger.breakpoint_entry(1137); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1137 */ +v__GsmOctetString[j] = int2oct(v__AsciiIndex, 1); +break; +} +case(1): +{ +current_location.update_lineno(1140); +ttcn3_debugger.breakpoint_entry(1140); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1140 */ +v__GsmOctetString[j] = int2oct(tsc__Gsm7BitLookup[v__AsciiIndex][1], 1); +break; +} +case(2): +{ +current_location.update_lineno(1143); +ttcn3_debugger.breakpoint_entry(1143); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1143 */ +v__GsmOctetString[j] = os_3; +current_location.update_lineno(1144); +ttcn3_debugger.breakpoint_entry(1144); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1144 */ +{ +INTEGER tmp_196; +++j; +} +current_location.update_lineno(1145); +ttcn3_debugger.breakpoint_entry(1145); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1145 */ +v__GsmOctetString[j] = int2oct(tsc__Gsm7BitLookup[v__AsciiIndex][1], 1); +break; +} +case(3): +{ +current_location.update_lineno(1148); +ttcn3_debugger.breakpoint_entry(1148); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1148 */ +FatalError(cs_11, 1148, cs_12); +break; +} +default: +{ +current_location.update_lineno(1151); +ttcn3_debugger.breakpoint_entry(1151); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1151 */ +FatalError(cs_11, 1151, cs_13); +break; +} +};} +current_location.update_lineno(1154); +ttcn3_debugger.breakpoint_entry(1154); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1154 */ +{ +INTEGER tmp_198; +++j; +} +current_location.update_lineno(1131); +ttcn3_debugger.breakpoint_entry(1131); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1131 */ +{ +INTEGER tmp_199; +++i; +} +} +current_location.update_lineno(1156); +ttcn3_debugger.breakpoint_entry(1156); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1156 */ +{ +OCTETSTRING tmp_200; +return DEBUGGER_STORE_RETURN_VALUE(tmp_200, v__GsmOctetString); +} +} + +OCTETSTRING f__CharPacking__IA5toGsm7Bit(const CHARSTRING& p__Text, const Gsm7BitPacking__Type& p__Packing, const INTEGER& p__NumFillbits) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1169, TTCN_Location::LOCATION_FUNCTION, "f_CharPacking_IA5toGsm7Bit"); +charstring_list param_names; +param_names[0] = "p_Text"; +param_names[1] = "p_Packing"; +param_names[2] = "p_NumFillbits"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_CharPacking_IA5toGsm7Bit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Text, "p_Text", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Packing, "p_Packing", "Gsm7BitPacking_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__NumFillbits, "p_NumFillbits", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1174); +ttcn3_debugger.breakpoint_entry(1174); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1174 */ +OCTETSTRING v__OctetString(char2oct(p__Text)); +debug_scope.add_variable(&v__OctetString, "v_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1175); +ttcn3_debugger.breakpoint_entry(1175); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1175 */ +BITSTRING v__BitString(int2bit(0, p__NumFillbits)); +debug_scope.add_variable(&v__BitString, "v_BitString", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1176); +ttcn3_debugger.breakpoint_entry(1176); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1176 */ +BITSTRING v__Padding(bs_12); +debug_scope.add_variable(&v__Padding, "v_Padding", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1177); +ttcn3_debugger.breakpoint_entry(1177); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1177 */ +INTEGER v__TextLength; +debug_scope.add_variable(&v__TextLength, "v_TextLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1178); +ttcn3_debugger.breakpoint_entry(1178); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1178 */ +INTEGER v__BitStringLength(p__NumFillbits); +debug_scope.add_variable(&v__BitStringLength, "v_BitStringLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1179); +ttcn3_debugger.breakpoint_entry(1179); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1179 */ +INTEGER v__IntValue; +debug_scope.add_variable(&v__IntValue, "v_IntValue", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1180); +ttcn3_debugger.breakpoint_entry(1180); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1180 */ +INTEGER v__NoOfOctets; +debug_scope.add_variable(&v__NoOfOctets, "v_NoOfOctets", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1181); +ttcn3_debugger.breakpoint_entry(1181); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1181 */ +INTEGER v__NoOfPaddingBits; +debug_scope.add_variable(&v__NoOfPaddingBits, "v_NoOfPaddingBits", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1182); +ttcn3_debugger.breakpoint_entry(1182); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1182 */ +INTEGER v__Index; +debug_scope.add_variable(&v__Index, "v_Index", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1183); +ttcn3_debugger.breakpoint_entry(1183); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1183 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1186); +ttcn3_debugger.breakpoint_entry(1186); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1186 */ +v__OctetString = fl__XlatAcsiiToGsm7Bit(v__OctetString); +current_location.update_lineno(1187); +ttcn3_debugger.breakpoint_entry(1187); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1187 */ +v__TextLength = v__OctetString.lengthof(); +current_location.update_lineno(1189); +ttcn3_debugger.breakpoint_entry(1189); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1189 */ +{ +boolean tmp_203; +{ +boolean tmp_204; +{ +boolean tmp_205; +tmp_205 = (p__Packing == Gsm7BitPacking__Type::SMS__Packing); +if (tmp_205) tmp_205 = (v__TextLength > 160); +tmp_204 = tmp_205; +} +if (!tmp_204) { +boolean tmp_206; +tmp_206 = (p__Packing == Gsm7BitPacking__Type::CBS__Packing); +if (tmp_206) tmp_206 = (v__TextLength > 93); +tmp_204 = tmp_206; +} +tmp_203 = tmp_204; +} +if (!tmp_203) { +boolean tmp_207; +tmp_207 = (p__Packing == Gsm7BitPacking__Type::USSD__Packing); +if (tmp_207) tmp_207 = (v__TextLength > 182); +tmp_203 = tmp_207; +} +if (tmp_203) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1192); +ttcn3_debugger.breakpoint_entry(1192); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1192 */ +FatalError(cs_11, 1192, cs_14); +} +} +current_location.update_lineno(1195); +ttcn3_debugger.breakpoint_entry(1195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1195 */ +i = 0; +current_location.update_lineno(1195); +ttcn3_debugger.breakpoint_entry(1195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1195 */ +for ( ; ; ) { +current_location.update_lineno(1195); +ttcn3_debugger.breakpoint_entry(1195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1195 */ +if (!(i < v__TextLength)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1196); +ttcn3_debugger.breakpoint_entry(1196); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1196 */ +v__IntValue = oct2int(const_cast< const OCTETSTRING&>(v__OctetString)[i]); +current_location.update_lineno(1197); +ttcn3_debugger.breakpoint_entry(1197); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1197 */ +{ +BITSTRING tmp_210; +tmp_210 = (int2bit(v__IntValue, 7) + v__BitString); +v__BitString = tmp_210; +} +current_location.update_lineno(1198); +ttcn3_debugger.breakpoint_entry(1198); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1198 */ +{ +INTEGER tmp_211; +tmp_211 = (v__BitStringLength + 7); +v__BitStringLength = tmp_211; +} +current_location.update_lineno(1195); +ttcn3_debugger.breakpoint_entry(1195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1195 */ +{ +INTEGER tmp_212; +++i; +} +} +current_location.update_lineno(1201); +ttcn3_debugger.breakpoint_entry(1201); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1201 */ +v__NoOfOctets = ((v__BitStringLength + 7) / 8); +current_location.update_lineno(1202); +ttcn3_debugger.breakpoint_entry(1202); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1202 */ +v__NoOfPaddingBits = ((v__NoOfOctets * 8) - v__BitStringLength); +current_location.update_lineno(1203); +ttcn3_debugger.breakpoint_entry(1203); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1203 */ +if ((v__NoOfPaddingBits > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1204); +ttcn3_debugger.breakpoint_entry(1204); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1204 */ +{ +boolean tmp_215; +tmp_215 = (p__Packing == Gsm7BitPacking__Type::USSD__Packing); +if (tmp_215) tmp_215 = (v__NoOfPaddingBits == 7); +if (tmp_215) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1205); +ttcn3_debugger.breakpoint_entry(1205); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1205 */ +v__Padding = bs_13; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1207); +ttcn3_debugger.breakpoint_entry(1207); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1207 */ +v__Padding = int2bit(0, v__NoOfPaddingBits); +} +} +} +current_location.update_lineno(1210); +ttcn3_debugger.breakpoint_entry(1210); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1210 */ +{ +BITSTRING tmp_218; +tmp_218 = (v__Padding + v__BitString); +v__BitString = tmp_218; +} +current_location.update_lineno(1214); +ttcn3_debugger.breakpoint_entry(1214); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1214 */ +v__OctetString = os_4; +current_location.update_lineno(1215); +ttcn3_debugger.breakpoint_entry(1215); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1215 */ +i = 0; +current_location.update_lineno(1215); +ttcn3_debugger.breakpoint_entry(1215); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1215 */ +for ( ; ; ) { +current_location.update_lineno(1215); +ttcn3_debugger.breakpoint_entry(1215); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1215 */ +if (!(i < v__NoOfOctets)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1216); +ttcn3_debugger.breakpoint_entry(1216); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1216 */ +v__Index = ((v__NoOfOctets - (i + 1)) * 8); +current_location.update_lineno(1217); +ttcn3_debugger.breakpoint_entry(1217); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1217 */ +v__OctetString[i] = bit2oct(substr(v__BitString, v__Index, 8)); +current_location.update_lineno(1215); +ttcn3_debugger.breakpoint_entry(1215); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1215 */ +{ +INTEGER tmp_223; +++i; +} +} +current_location.update_lineno(1219); +ttcn3_debugger.breakpoint_entry(1219); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1219 */ +{ +OCTETSTRING tmp_224; +return DEBUGGER_STORE_RETURN_VALUE(tmp_224, v__OctetString); +} +} + +OCTETSTRING f__CharPacking__IA5toBCD(const CHARSTRING& p__ASCII__String) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1222, TTCN_Location::LOCATION_FUNCTION, "f_CharPacking_IA5toBCD"); +charstring_list param_names; +param_names[0] = "p_ASCII_String"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_CharPacking_IA5toBCD", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__ASCII__String, "p_ASCII_String", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1228); +ttcn3_debugger.breakpoint_entry(1228); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1228 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1229); +ttcn3_debugger.breakpoint_entry(1229); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1229 */ +CHARSTRING v__BcdString; +debug_scope.add_variable(&v__BcdString, "v_BcdString", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1230); +ttcn3_debugger.breakpoint_entry(1230); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1230 */ +INTEGER v__Length(p__ASCII__String.lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1231); +ttcn3_debugger.breakpoint_entry(1231); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1231 */ +CHARSTRING v__ASCII__String(p__ASCII__String); +debug_scope.add_variable(&v__ASCII__String, "v_ASCII_String", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1234); +ttcn3_debugger.breakpoint_entry(1234); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1234 */ +i = 0; +current_location.update_lineno(1234); +ttcn3_debugger.breakpoint_entry(1234); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1234 */ +for ( ; ; ) { +current_location.update_lineno(1234); +ttcn3_debugger.breakpoint_entry(1234); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1234 */ +if (!(i < v__Length)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1235); +ttcn3_debugger.breakpoint_entry(1235); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1235 */ +{ +boolean tmp_227; +{ +CHARSTRING_template tmp_226; +tmp_226 = CHARSTRING_template(STRING_PATTERN, (CHARSTRING)cs_15, FALSE); +tmp_227 = (!(tmp_226.match(const_cast< const CHARSTRING&>(p__ASCII__String)[i]))); +} +if (tmp_227) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1236); +ttcn3_debugger.breakpoint_entry(1236); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1236 */ +FatalError(cs_11, 1236, cs_16); +} +} +current_location.update_lineno(1234); +ttcn3_debugger.breakpoint_entry(1234); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1234 */ +{ +INTEGER tmp_228; +++i; +} +} +current_location.update_lineno(1241); +ttcn3_debugger.breakpoint_entry(1241); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1241 */ +if ((mod(v__Length, 2) != 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1242); +ttcn3_debugger.breakpoint_entry(1242); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1242 */ +{ +CHARSTRING tmp_229; +tmp_229 = (v__ASCII__String + cs_17); +v__ASCII__String = tmp_229; +} +} +current_location.update_lineno(1246); +ttcn3_debugger.breakpoint_entry(1246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1246 */ +i = 0; +current_location.update_lineno(1246); +ttcn3_debugger.breakpoint_entry(1246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1246 */ +for ( ; ; ) { +current_location.update_lineno(1246); +ttcn3_debugger.breakpoint_entry(1246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1246 */ +if (!(i < v__Length)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1247); +ttcn3_debugger.breakpoint_entry(1247); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1247 */ +v__BcdString[i] = const_cast< const CHARSTRING&>(v__ASCII__String)[(i + 1)]; +current_location.update_lineno(1248); +ttcn3_debugger.breakpoint_entry(1248); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1248 */ +v__BcdString[(i + 1)] = const_cast< const CHARSTRING&>(v__ASCII__String)[i]; +current_location.update_lineno(1246); +ttcn3_debugger.breakpoint_entry(1246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1246 */ +{ +INTEGER tmp_233; +tmp_233 = (i + 2); +i = tmp_233; +} +} +current_location.update_lineno(1251); +ttcn3_debugger.breakpoint_entry(1251); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1251 */ +{ +OCTETSTRING tmp_234; +return DEBUGGER_STORE_RETURN_VALUE(tmp_234, str2oct(v__BcdString)); +} +} + +BITSTRING f__BitstringReplaceMSB(const BITSTRING& p__Bitstring, const BITSTRING& p__NewMSB) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1256, TTCN_Location::LOCATION_FUNCTION, "f_BitstringReplaceMSB"); +charstring_list param_names; +param_names[0] = "p_Bitstring"; +param_names[1] = "p_NewMSB"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_BitstringReplaceMSB", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Bitstring, "p_Bitstring", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NewMSB, "p_NewMSB", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1259); +ttcn3_debugger.breakpoint_entry(1259); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1259 */ +{ +BITSTRING tmp_235; +return DEBUGGER_STORE_RETURN_VALUE(tmp_235, replace(p__Bitstring, 0, 1, p__NewMSB)); +} +} + +BOOLEAN f__Bitstring__BitIsSet(const BITSTRING& p__Bitstring, const INTEGER& p__Index) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1264, TTCN_Location::LOCATION_FUNCTION, "f_Bitstring_BitIsSet"); +charstring_list param_names; +param_names[0] = "p_Bitstring"; +param_names[1] = "p_Index"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_Bitstring_BitIsSet", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Bitstring, "p_Bitstring", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Index, "p_Index", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1267); +ttcn3_debugger.breakpoint_entry(1267); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1267 */ +if ((p__Index >= p__Bitstring.lengthof())) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1268); +ttcn3_debugger.breakpoint_entry(1268); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1268 */ +FatalError(cs_11, 1268, cs_18); +} +current_location.update_lineno(1270); +ttcn3_debugger.breakpoint_entry(1270); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1270 */ +{ +BOOLEAN tmp_236; +return DEBUGGER_STORE_RETURN_VALUE(tmp_236, (substr(p__Bitstring, p__Index, 1) == bs_11)); +} +} + +BITSTRING f__Bitstring__LeastSignificantBits(const BITSTRING& p__Bitstring, const INTEGER& p__NoOfBis) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1273, TTCN_Location::LOCATION_FUNCTION, "f_Bitstring_LeastSignificantBits"); +charstring_list param_names; +param_names[0] = "p_Bitstring"; +param_names[1] = "p_NoOfBis"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_Bitstring_LeastSignificantBits", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Bitstring, "p_Bitstring", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NoOfBis, "p_NoOfBis", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1276); +ttcn3_debugger.breakpoint_entry(1276); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1276 */ +INTEGER v__Length(p__Bitstring.lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1277); +ttcn3_debugger.breakpoint_entry(1277); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1277 */ +if ((p__NoOfBis > v__Length)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1278); +ttcn3_debugger.breakpoint_entry(1278); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1278 */ +FatalError(cs_11, 1278, cs_19); +} +current_location.update_lineno(1280); +ttcn3_debugger.breakpoint_entry(1280); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1280 */ +{ +BITSTRING tmp_237; +return DEBUGGER_STORE_RETURN_VALUE(tmp_237, substr(p__Bitstring, (v__Length - p__NoOfBis), p__NoOfBis)); +} +} + +BITSTRING_template f__BitstringTemplate__SetBit(const BITSTRING_template& p__Bitstring, const INTEGER& p__Position, const BITSTRING_template& p__Bit) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1283, TTCN_Location::LOCATION_FUNCTION, "f_BitstringTemplate_SetBit"); +charstring_list param_names; +param_names[0] = "p_Bitstring"; +param_names[1] = "p_Position"; +param_names[2] = "p_Bit"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_BitstringTemplate_SetBit", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Bitstring, "p_Bitstring", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Position, "p_Position", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Bit, "p_Bit", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1288); +ttcn3_debugger.breakpoint_entry(1288); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1288 */ +BITSTRING_template v__Substring1; +debug_scope.add_variable(&v__Substring1, "v_Substring1", "bitstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1289); +ttcn3_debugger.breakpoint_entry(1289); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1289 */ +BITSTRING_template v__Substring2; +debug_scope.add_variable(&v__Substring2, "v_Substring2", "bitstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1290); +ttcn3_debugger.breakpoint_entry(1290); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1290 */ +INTEGER v__Length(p__Bitstring.lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1292); +ttcn3_debugger.breakpoint_entry(1292); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1292 */ +if ((p__Position >= v__Length)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1293); +ttcn3_debugger.breakpoint_entry(1293); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1293 */ +FatalError(cs_11, 1293, cs_20); +} +current_location.update_lineno(1295); +ttcn3_debugger.breakpoint_entry(1295); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1295 */ +v__Substring1 = substr(p__Bitstring, 0, p__Position); +current_location.update_lineno(1296); +ttcn3_debugger.breakpoint_entry(1296); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1296 */ +v__Substring2 = substr(p__Bitstring, (p__Position + 1), ((v__Length - p__Position) - 1)); +current_location.update_lineno(1298); +ttcn3_debugger.breakpoint_entry(1298); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1298 */ +{ +BITSTRING_template tmp_240; +return DEBUGGER_STORE_RETURN_VALUE(tmp_240, BITSTRING_template(v__Substring1 + p__Bit + v__Substring2)); +} +} + +CHARSTRING fl__FormatIntegerAsTwoDigits(const INTEGER& p__Value) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1353, TTCN_Location::LOCATION_FUNCTION, "fl_FormatIntegerAsTwoDigits"); +charstring_list param_names; +param_names[0] = "p_Value"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_FormatIntegerAsTwoDigits", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Value, "p_Value", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1355); +ttcn3_debugger.breakpoint_entry(1355); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1355 */ +INTEGER v__Value(mod(p__Value, 100)); +debug_scope.add_variable(&v__Value, "v_Value", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1356); +ttcn3_debugger.breakpoint_entry(1356); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1356 */ +CHARSTRING v__String(int2str(v__Value)); +debug_scope.add_variable(&v__String, "v_String", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1358); +ttcn3_debugger.breakpoint_entry(1358); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1358 */ +if ((v__Value < 10)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1359); +ttcn3_debugger.breakpoint_entry(1359); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1359 */ +{ +CHARSTRING tmp_241; +tmp_241 = (cs_21 + v__String); +v__String = tmp_241; +} +} +current_location.update_lineno(1361); +ttcn3_debugger.breakpoint_entry(1361); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1361 */ +{ +CHARSTRING tmp_242; +return DEBUGGER_STORE_RETURN_VALUE(tmp_242, v__String); +} +} + +CHARSTRING f__HTTP__FormatHttpDate(const Struct__tm__Type& p__LocalTime, const INTEGER& p__TimezoneSeconds) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1371, TTCN_Location::LOCATION_FUNCTION, "f_HTTP_FormatHttpDate"); +charstring_list param_names; +param_names[0] = "p_LocalTime"; +param_names[1] = "p_TimezoneSeconds"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_HTTP_FormatHttpDate", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__LocalTime, "p_LocalTime", "Struct_tm_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__TimezoneSeconds, "p_TimezoneSeconds", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1374); +ttcn3_debugger.breakpoint_entry(1374); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1374 */ +CharStringList__Type tsc__Month; +tsc__Month.set_size(12); +tsc__Month[0] = cs_22; +tsc__Month[1] = cs_23; +tsc__Month[2] = cs_24; +tsc__Month[3] = cs_25; +tsc__Month[4] = cs_26; +tsc__Month[5] = cs_27; +tsc__Month[6] = cs_28; +tsc__Month[7] = cs_29; +tsc__Month[8] = cs_30; +tsc__Month[9] = cs_31; +tsc__Month[10] = cs_32; +tsc__Month[11] = cs_33; +debug_scope.add_variable(&tsc__Month, "tsc_Month", "CharStringList_Type", NULL, print_var_CommonDefs); +current_location.update_lineno(1375); +ttcn3_debugger.breakpoint_entry(1375); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1375 */ +CharStringList__Type tsc__WDay; +tsc__WDay.set_size(7); +tsc__WDay[0] = cs_34; +tsc__WDay[1] = cs_35; +tsc__WDay[2] = cs_36; +tsc__WDay[3] = cs_37; +tsc__WDay[4] = cs_38; +tsc__WDay[5] = cs_39; +tsc__WDay[6] = cs_40; +debug_scope.add_variable(&tsc__WDay, "tsc_WDay", "CharStringList_Type", NULL, print_var_CommonDefs); +current_location.update_lineno(1376); +ttcn3_debugger.breakpoint_entry(1376); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1376 */ +CHARSTRING v__Year(int2str((const_cast< const Struct__tm__Type&>(p__LocalTime).tm__year() + 1900))); +debug_scope.add_variable(&v__Year, "v_Year", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1377); +ttcn3_debugger.breakpoint_entry(1377); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1377 */ +CHARSTRING v__Month(tsc__Month[const_cast< const Struct__tm__Type&>(p__LocalTime).tm__mon()]); +debug_scope.add_variable(&v__Month, "v_Month", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1378); +ttcn3_debugger.breakpoint_entry(1378); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1378 */ +CHARSTRING v__WDay(tsc__WDay[const_cast< const Struct__tm__Type&>(p__LocalTime).tm__wday()]); +debug_scope.add_variable(&v__WDay, "v_WDay", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1379); +ttcn3_debugger.breakpoint_entry(1379); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1379 */ +CHARSTRING v__MDay(fl__FormatIntegerAsTwoDigits(const_cast< const Struct__tm__Type&>(p__LocalTime).tm__mday())); +debug_scope.add_variable(&v__MDay, "v_MDay", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1380); +ttcn3_debugger.breakpoint_entry(1380); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1380 */ +CHARSTRING v__Hour(fl__FormatIntegerAsTwoDigits(const_cast< const Struct__tm__Type&>(p__LocalTime).tm__hour())); +debug_scope.add_variable(&v__Hour, "v_Hour", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1381); +ttcn3_debugger.breakpoint_entry(1381); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1381 */ +CHARSTRING v__Minute(fl__FormatIntegerAsTwoDigits(const_cast< const Struct__tm__Type&>(p__LocalTime).tm__min())); +debug_scope.add_variable(&v__Minute, "v_Minute", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1382); +ttcn3_debugger.breakpoint_entry(1382); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1382 */ +CHARSTRING v__Second(fl__FormatIntegerAsTwoDigits(const_cast< const Struct__tm__Type&>(p__LocalTime).tm__sec())); +debug_scope.add_variable(&v__Second, "v_Second", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1383); +ttcn3_debugger.breakpoint_entry(1383); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1383 */ +INTEGER v__TimezoneSeconds(p__TimezoneSeconds); +debug_scope.add_variable(&v__TimezoneSeconds, "v_TimezoneSeconds", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1384); +ttcn3_debugger.breakpoint_entry(1384); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1384 */ +CHARSTRING v__TimezoneSign; +debug_scope.add_variable(&v__TimezoneSign, "v_TimezoneSign", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1385); +ttcn3_debugger.breakpoint_entry(1385); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1385 */ +CHARSTRING v__TimezoneHours; +debug_scope.add_variable(&v__TimezoneHours, "v_TimezoneHours", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1386); +ttcn3_debugger.breakpoint_entry(1386); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1386 */ +CHARSTRING v__TimezoneMinutes; +debug_scope.add_variable(&v__TimezoneMinutes, "v_TimezoneMinutes", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1388); +ttcn3_debugger.breakpoint_entry(1388); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1388 */ +if ((const_cast< const Struct__tm__Type&>(p__LocalTime).tm__isdst() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1389); +ttcn3_debugger.breakpoint_entry(1389); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1389 */ +{ +INTEGER tmp_243; +tmp_243 = (v__TimezoneSeconds + 3600); +v__TimezoneSeconds = tmp_243; +} +} +current_location.update_lineno(1391); +ttcn3_debugger.breakpoint_entry(1391); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1391 */ +if ((v__TimezoneSeconds < 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1392); +ttcn3_debugger.breakpoint_entry(1392); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1392 */ +{ +INTEGER tmp_244; +tmp_244 = (-(v__TimezoneSeconds)); +v__TimezoneSeconds = tmp_244; +} +current_location.update_lineno(1393); +ttcn3_debugger.breakpoint_entry(1393); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1393 */ +v__TimezoneSign = cs_41; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1395); +ttcn3_debugger.breakpoint_entry(1395); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1395 */ +v__TimezoneSign = cs_42; +} +current_location.update_lineno(1397); +ttcn3_debugger.breakpoint_entry(1397); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1397 */ +v__TimezoneHours = fl__FormatIntegerAsTwoDigits((v__TimezoneSeconds / 3600)); +current_location.update_lineno(1398); +ttcn3_debugger.breakpoint_entry(1398); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1398 */ +v__TimezoneMinutes = fl__FormatIntegerAsTwoDigits((mod(v__TimezoneSeconds, 3600) / 60)); +current_location.update_lineno(1400); +ttcn3_debugger.breakpoint_entry(1400); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1400 */ +{ +CHARSTRING tmp_249; +return DEBUGGER_STORE_RETURN_VALUE(tmp_249, ((((((((((((((((v__WDay + cs_43) + v__MDay) + cs_10) + v__Month) + cs_10) + v__Year) + cs_10) + v__Hour) + cs_5) + v__Minute) + cs_5) + v__Second) + cs_10) + v__TimezoneSign) + v__TimezoneHours) + v__TimezoneMinutes)); +} +} + +CHARSTRING f__UTC__FormatDateTime(const Struct__tm__Type& p__LocalTime, const INTEGER_template& p__TimezoneSeconds) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1411, TTCN_Location::LOCATION_FUNCTION, "f_UTC_FormatDateTime"); +charstring_list param_names; +param_names[0] = "p_LocalTime"; +param_names[1] = "p_TimezoneSeconds"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_UTC_FormatDateTime", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__LocalTime, "p_LocalTime", "Struct_tm_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__TimezoneSeconds, "p_TimezoneSeconds", "integer template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1414); +ttcn3_debugger.breakpoint_entry(1414); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1414 */ +CHARSTRING v__Year(int2str((const_cast< const Struct__tm__Type&>(p__LocalTime).tm__year() + 1900))); +debug_scope.add_variable(&v__Year, "v_Year", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1415); +ttcn3_debugger.breakpoint_entry(1415); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1415 */ +CHARSTRING v__Month(fl__FormatIntegerAsTwoDigits((const_cast< const Struct__tm__Type&>(p__LocalTime).tm__mon() + 1))); +debug_scope.add_variable(&v__Month, "v_Month", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1416); +ttcn3_debugger.breakpoint_entry(1416); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1416 */ +CHARSTRING v__MDay(fl__FormatIntegerAsTwoDigits(const_cast< const Struct__tm__Type&>(p__LocalTime).tm__mday())); +debug_scope.add_variable(&v__MDay, "v_MDay", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1417); +ttcn3_debugger.breakpoint_entry(1417); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1417 */ +CHARSTRING v__Hour(fl__FormatIntegerAsTwoDigits(const_cast< const Struct__tm__Type&>(p__LocalTime).tm__hour())); +debug_scope.add_variable(&v__Hour, "v_Hour", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1418); +ttcn3_debugger.breakpoint_entry(1418); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1418 */ +CHARSTRING v__Minute(fl__FormatIntegerAsTwoDigits(const_cast< const Struct__tm__Type&>(p__LocalTime).tm__min())); +debug_scope.add_variable(&v__Minute, "v_Minute", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1419); +ttcn3_debugger.breakpoint_entry(1419); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1419 */ +CHARSTRING v__Second(fl__FormatIntegerAsTwoDigits(const_cast< const Struct__tm__Type&>(p__LocalTime).tm__sec())); +debug_scope.add_variable(&v__Second, "v_Second", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1420); +ttcn3_debugger.breakpoint_entry(1420); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1420 */ +CHARSTRING v__Timezone(cs_7); +debug_scope.add_variable(&v__Timezone, "v_Timezone", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1421); +ttcn3_debugger.breakpoint_entry(1421); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1421 */ +CHARSTRING v__Sign; +debug_scope.add_variable(&v__Sign, "v_Sign", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1422); +ttcn3_debugger.breakpoint_entry(1422); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1422 */ +INTEGER v__TimezoneSeconds; +debug_scope.add_variable(&v__TimezoneSeconds, "v_TimezoneSeconds", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1423); +ttcn3_debugger.breakpoint_entry(1423); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1423 */ +INTEGER v__TimezoneMinutes; +debug_scope.add_variable(&v__TimezoneMinutes, "v_TimezoneMinutes", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1425); +ttcn3_debugger.breakpoint_entry(1425); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1425 */ +if (p__TimezoneSeconds.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1426); +ttcn3_debugger.breakpoint_entry(1426); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1426 */ +v__TimezoneSeconds = p__TimezoneSeconds.valueof(); +current_location.update_lineno(1427); +ttcn3_debugger.breakpoint_entry(1427); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1427 */ +if ((v__TimezoneSeconds > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1428); +ttcn3_debugger.breakpoint_entry(1428); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1428 */ +v__Sign = cs_41; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1430); +ttcn3_debugger.breakpoint_entry(1430); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1430 */ +v__Sign = cs_42; +current_location.update_lineno(1431); +ttcn3_debugger.breakpoint_entry(1431); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1431 */ +{ +INTEGER tmp_253; +tmp_253 = (-(v__TimezoneSeconds)); +v__TimezoneSeconds = tmp_253; +} +} +current_location.update_lineno(1433); +ttcn3_debugger.breakpoint_entry(1433); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1433 */ +v__TimezoneMinutes = (v__TimezoneSeconds / 60); +current_location.update_lineno(1434); +ttcn3_debugger.breakpoint_entry(1434); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1434 */ +v__Timezone = (((v__Sign + fl__FormatIntegerAsTwoDigits((v__TimezoneMinutes / 60))) + cs_5) + fl__FormatIntegerAsTwoDigits(mod(v__TimezoneMinutes, 60))); +} +current_location.update_lineno(1436); +ttcn3_debugger.breakpoint_entry(1436); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1436 */ +{ +CHARSTRING tmp_256; +return DEBUGGER_STORE_RETURN_VALUE(tmp_256, (((((((((((v__Year + cs_41) + v__Month) + cs_41) + v__MDay) + cs_44) + v__Hour) + cs_5) + v__Minute) + cs_5) + v__Second) + v__Timezone)); +} +} + +CHARSTRING f__UTC__Timestamp() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1443, TTCN_Location::LOCATION_FUNCTION, "f_UTC_Timestamp"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_UTC_Timestamp", "function", "CommonDefs", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(1445); +ttcn3_debugger.breakpoint_entry(1445); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1445 */ +Struct__tm__Type v__LocalTime; +debug_scope.add_variable(&v__LocalTime, "v_LocalTime", "Struct_tm_Type", NULL, print_var_CommonDefs, set_var_CommonDefs); +current_location.update_lineno(1446); +ttcn3_debugger.breakpoint_entry(1446); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1446 */ +INTEGER v__TimezoneSeconds; +debug_scope.add_variable(&v__TimezoneSeconds, "v_TimezoneSeconds", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1448); +ttcn3_debugger.breakpoint_entry(1448); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1448 */ +fx__GetSystemTime(v__LocalTime, v__TimezoneSeconds); +current_location.update_lineno(1449); +ttcn3_debugger.breakpoint_entry(1449); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1449 */ +{ +CHARSTRING tmp_257; +return DEBUGGER_STORE_RETURN_VALUE(tmp_257, f__UTC__FormatDateTime(v__LocalTime, INTEGER_template(v__TimezoneSeconds))); +} +} + +HEXSTRING f__SwappedNibbles(const INTEGER& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1457, TTCN_Location::LOCATION_FUNCTION, "f_SwappedNibbles"); +charstring_list param_names; +param_names[0] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_SwappedNibbles", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Val, "p_Val", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1459); +ttcn3_debugger.breakpoint_entry(1459); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1459 */ +INTEGER v__LowNibble(mod(p__Val, 10)); +debug_scope.add_variable(&v__LowNibble, "v_LowNibble", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1460); +ttcn3_debugger.breakpoint_entry(1460); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1460 */ +INTEGER v__HighNibble(mod((p__Val / 10), 10)); +debug_scope.add_variable(&v__HighNibble, "v_HighNibble", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1462); +ttcn3_debugger.breakpoint_entry(1462); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1462 */ +{ +HEXSTRING tmp_258; +return DEBUGGER_STORE_RETURN_VALUE(tmp_258, (int2hex(v__LowNibble, 1) + int2hex(v__HighNibble, 1))); +} +} + +HEXSTRING f__BCD__TimestampWithTimezone() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1473, TTCN_Location::LOCATION_FUNCTION, "f_BCD_TimestampWithTimezone"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_BCD_TimestampWithTimezone", "function", "CommonDefs", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(1475); +ttcn3_debugger.breakpoint_entry(1475); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1475 */ +Struct__tm__Type v__LocalTime; +debug_scope.add_variable(&v__LocalTime, "v_LocalTime", "Struct_tm_Type", NULL, print_var_CommonDefs, set_var_CommonDefs); +current_location.update_lineno(1476); +ttcn3_debugger.breakpoint_entry(1476); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1476 */ +INTEGER v__TimezoneSeconds; +debug_scope.add_variable(&v__TimezoneSeconds, "v_TimezoneSeconds", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1477); +ttcn3_debugger.breakpoint_entry(1477); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1477 */ +INTEGER v__TimezoneVal; +debug_scope.add_variable(&v__TimezoneVal, "v_TimezoneVal", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1478); +ttcn3_debugger.breakpoint_entry(1478); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1478 */ +INTEGER v__SignVal(0); +debug_scope.add_variable(&v__SignVal, "v_SignVal", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1479); +ttcn3_debugger.breakpoint_entry(1479); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1479 */ +HEXSTRING v__Year; +debug_scope.add_variable(&v__Year, "v_Year", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1480); +ttcn3_debugger.breakpoint_entry(1480); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1480 */ +HEXSTRING v__Month; +debug_scope.add_variable(&v__Month, "v_Month", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1481); +ttcn3_debugger.breakpoint_entry(1481); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1481 */ +HEXSTRING v__Day; +debug_scope.add_variable(&v__Day, "v_Day", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1482); +ttcn3_debugger.breakpoint_entry(1482); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1482 */ +HEXSTRING v__Hour; +debug_scope.add_variable(&v__Hour, "v_Hour", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1483); +ttcn3_debugger.breakpoint_entry(1483); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1483 */ +HEXSTRING v__Minute; +debug_scope.add_variable(&v__Minute, "v_Minute", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1484); +ttcn3_debugger.breakpoint_entry(1484); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1484 */ +HEXSTRING v__Second; +debug_scope.add_variable(&v__Second, "v_Second", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1485); +ttcn3_debugger.breakpoint_entry(1485); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1485 */ +HEXSTRING v__Timezone; +debug_scope.add_variable(&v__Timezone, "v_Timezone", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1487); +ttcn3_debugger.breakpoint_entry(1487); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1487 */ +fx__GetSystemTime(v__LocalTime, v__TimezoneSeconds); +current_location.update_lineno(1489); +ttcn3_debugger.breakpoint_entry(1489); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1489 */ +v__Year = f__SwappedNibbles((const_cast< const Struct__tm__Type&>(v__LocalTime).tm__year() + 1900)); +current_location.update_lineno(1490); +ttcn3_debugger.breakpoint_entry(1490); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1490 */ +v__Month = f__SwappedNibbles((const_cast< const Struct__tm__Type&>(v__LocalTime).tm__mon() + 1)); +current_location.update_lineno(1491); +ttcn3_debugger.breakpoint_entry(1491); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1491 */ +v__Day = f__SwappedNibbles(const_cast< const Struct__tm__Type&>(v__LocalTime).tm__mday()); +current_location.update_lineno(1492); +ttcn3_debugger.breakpoint_entry(1492); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1492 */ +v__Hour = f__SwappedNibbles(const_cast< const Struct__tm__Type&>(v__LocalTime).tm__hour()); +current_location.update_lineno(1493); +ttcn3_debugger.breakpoint_entry(1493); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1493 */ +v__Minute = f__SwappedNibbles(mod(const_cast< const Struct__tm__Type&>(v__LocalTime).tm__min(), 60)); +current_location.update_lineno(1494); +ttcn3_debugger.breakpoint_entry(1494); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1494 */ +v__Second = f__SwappedNibbles(const_cast< const Struct__tm__Type&>(v__LocalTime).tm__sec()); +current_location.update_lineno(1497); +ttcn3_debugger.breakpoint_entry(1497); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1497 */ +if ((const_cast< const Struct__tm__Type&>(v__LocalTime).tm__isdst() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1500); +ttcn3_debugger.breakpoint_entry(1500); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1500 */ +{ +INTEGER tmp_265; +tmp_265 = (v__TimezoneSeconds + 3600); +v__TimezoneSeconds = tmp_265; +} +} +current_location.update_lineno(1503); +ttcn3_debugger.breakpoint_entry(1503); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1503 */ +if ((v__TimezoneSeconds < 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1504); +ttcn3_debugger.breakpoint_entry(1504); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1504 */ +{ +INTEGER tmp_266; +tmp_266 = (-(v__TimezoneSeconds)); +v__TimezoneSeconds = tmp_266; +} +current_location.update_lineno(1505); +ttcn3_debugger.breakpoint_entry(1505); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1505 */ +v__SignVal = 128; +} +current_location.update_lineno(1508); +ttcn3_debugger.breakpoint_entry(1508); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1508 */ +v__TimezoneVal = (v__TimezoneSeconds / 900); +current_location.update_lineno(1509); +ttcn3_debugger.breakpoint_entry(1509); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1509 */ +{ +INTEGER tmp_269; +tmp_269 = mod(v__TimezoneVal, 128); +v__TimezoneVal = tmp_269; +} +current_location.update_lineno(1510); +ttcn3_debugger.breakpoint_entry(1510); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1510 */ +{ +INTEGER tmp_270; +tmp_270 = (v__TimezoneVal + v__SignVal); +v__TimezoneVal = tmp_270; +} +current_location.update_lineno(1512); +ttcn3_debugger.breakpoint_entry(1512); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1512 */ +v__Timezone = f__SwappedNibbles(v__TimezoneVal); +current_location.update_lineno(1514); +ttcn3_debugger.breakpoint_entry(1514); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1514 */ +{ +HEXSTRING tmp_272; +return DEBUGGER_STORE_RETURN_VALUE(tmp_272, ((((((v__Year + v__Month) + v__Day) + v__Hour) + v__Minute) + v__Second) + v__Timezone)); +} +} + +HEXSTRING f__BCD__TimestampWithoutTimezone() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1522, TTCN_Location::LOCATION_FUNCTION, "f_BCD_TimestampWithoutTimezone"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_BCD_TimestampWithoutTimezone", "function", "CommonDefs", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(1524); +ttcn3_debugger.breakpoint_entry(1524); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1524 */ +HEXSTRING v__TimestampWithTimezone(f__BCD__TimestampWithTimezone()); +debug_scope.add_variable(&v__TimestampWithTimezone, "v_TimestampWithTimezone", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1525); +ttcn3_debugger.breakpoint_entry(1525); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1525 */ +{ +HEXSTRING tmp_273; +return DEBUGGER_STORE_RETURN_VALUE(tmp_273, substr(v__TimestampWithTimezone, 0, 12)); +} +} + +BITSTRING f__MDT__GetAbsolute__TimeStamp() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1534, TTCN_Location::LOCATION_FUNCTION, "f_MDT_GetAbsolute_TimeStamp"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_MDT_GetAbsolute_TimeStamp", "function", "CommonDefs", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(1536); +ttcn3_debugger.breakpoint_entry(1536); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1536 */ +{ +BITSTRING tmp_274; +return DEBUGGER_STORE_RETURN_VALUE(tmp_274, hex2bit(f__BCD__TimestampWithoutTimezone())); +} +} + +INTEGER f__UTC__MKTime(const Struct__tm__Type& p__TM, const INTEGER& p__TimezoneDelta) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1547, TTCN_Location::LOCATION_FUNCTION, "f_UTC_MKTime"); +charstring_list param_names; +param_names[0] = "p_TM"; +param_names[1] = "p_TimezoneDelta"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_UTC_MKTime", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__TM, "p_TM", "Struct_tm_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__TimezoneDelta, "p_TimezoneDelta", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1550); +ttcn3_debugger.breakpoint_entry(1550); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1550 */ +INTEGER v__Seconds; +debug_scope.add_variable(&v__Seconds, "v_Seconds", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1551); +ttcn3_debugger.breakpoint_entry(1551); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1551 */ +INTEGER v__MonthsSinceJanuary; +debug_scope.add_variable(&v__MonthsSinceJanuary, "v_MonthsSinceJanuary", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1552); +ttcn3_debugger.breakpoint_entry(1552); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1552 */ +INTEGER v__CurrentMonth; +debug_scope.add_variable(&v__CurrentMonth, "v_CurrentMonth", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1553); +ttcn3_debugger.breakpoint_entry(1553); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1553 */ +INTEGER v__Days(0); +debug_scope.add_variable(&v__Days, "v_Days", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1554); +ttcn3_debugger.breakpoint_entry(1554); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1554 */ +BOOLEAN v__CurrentYearIsLeapYear(FALSE); +debug_scope.add_variable(&v__CurrentYearIsLeapYear, "v_CurrentYearIsLeapYear", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1556); +ttcn3_debugger.breakpoint_entry(1556); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1556 */ +if ((const_cast< const Struct__tm__Type&>(p__TM).tm__year() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1557); +ttcn3_debugger.breakpoint_entry(1557); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1557 */ +v__CurrentYearIsLeapYear = (mod(const_cast< const Struct__tm__Type&>(p__TM).tm__year(), 4) == 0); +current_location.update_lineno(1558); +ttcn3_debugger.breakpoint_entry(1558); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1558 */ +v__Days = (const_cast< const Struct__tm__Type&>(p__TM).tm__year() * 365); +current_location.update_lineno(1559); +ttcn3_debugger.breakpoint_entry(1559); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1559 */ +{ +INTEGER tmp_277; +tmp_277 = (v__Days + ((const_cast< const Struct__tm__Type&>(p__TM).tm__year() - 1) / 4)); +v__Days = tmp_277; +} +} +current_location.update_lineno(1562); +ttcn3_debugger.breakpoint_entry(1562); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1562 */ +v__MonthsSinceJanuary = 0; +current_location.update_lineno(1562); +ttcn3_debugger.breakpoint_entry(1562); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1562 */ +for ( ; ; ) { +current_location.update_lineno(1562); +ttcn3_debugger.breakpoint_entry(1562); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1562 */ +if (!(v__MonthsSinceJanuary < const_cast< const Struct__tm__Type&>(p__TM).tm__mon())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1563); +ttcn3_debugger.breakpoint_entry(1563); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1563 */ +v__CurrentMonth = (v__MonthsSinceJanuary + 1); +{ +const INTEGER &tmp_281 = v__CurrentMonth; +switch(tmp_281.get_long_long_val()) { +case(2): +{ +current_location.update_lineno(1566); +ttcn3_debugger.breakpoint_entry(1566); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1566 */ +{ +INTEGER tmp_282; +tmp_282 = (v__Days + 28); +v__Days = tmp_282; +} +current_location.update_lineno(1567); +ttcn3_debugger.breakpoint_entry(1567); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1567 */ +if (v__CurrentYearIsLeapYear) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1568); +ttcn3_debugger.breakpoint_entry(1568); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1568 */ +{ +INTEGER tmp_283; +++v__Days; +} +} +break; +} +case(4): +case(6): +case(9): +case(11): +{ +current_location.update_lineno(1572); +ttcn3_debugger.breakpoint_entry(1572); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1572 */ +{ +INTEGER tmp_284; +tmp_284 = (v__Days + 30); +v__Days = tmp_284; +} +break; +} +default: +{ +current_location.update_lineno(1575); +ttcn3_debugger.breakpoint_entry(1575); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1575 */ +{ +INTEGER tmp_285; +tmp_285 = (v__Days + 31); +v__Days = tmp_285; +} +break; +} +};} +current_location.update_lineno(1562); +ttcn3_debugger.breakpoint_entry(1562); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1562 */ +{ +INTEGER tmp_286; +++v__MonthsSinceJanuary; +} +} +current_location.update_lineno(1579); +ttcn3_debugger.breakpoint_entry(1579); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1579 */ +{ +INTEGER tmp_287; +tmp_287 = (v__Days + (const_cast< const Struct__tm__Type&>(p__TM).tm__mday() - 1)); +v__Days = tmp_287; +} +current_location.update_lineno(1580); +ttcn3_debugger.breakpoint_entry(1580); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1580 */ +v__Seconds = (((((((v__Days * 24) + const_cast< const Struct__tm__Type&>(p__TM).tm__hour()) * 60) + const_cast< const Struct__tm__Type&>(p__TM).tm__min()) * 60) + const_cast< const Struct__tm__Type&>(p__TM).tm__sec()) + p__TimezoneDelta); +current_location.update_lineno(1581); +ttcn3_debugger.breakpoint_entry(1581); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1581 */ +if ((const_cast< const Struct__tm__Type&>(p__TM).tm__isdst() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1582); +ttcn3_debugger.breakpoint_entry(1582); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1582 */ +{ +INTEGER tmp_289; +tmp_289 = (v__Seconds - 3600); +v__Seconds = tmp_289; +} +} +current_location.update_lineno(1584); +ttcn3_debugger.breakpoint_entry(1584); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1584 */ +{ +INTEGER tmp_290; +return DEBUGGER_STORE_RETURN_VALUE(tmp_290, v__Seconds); +} +} + +INTEGER f__UTC__TimestampSeconds() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1592, TTCN_Location::LOCATION_FUNCTION, "f_UTC_TimestampSeconds"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_UTC_TimestampSeconds", "function", "CommonDefs", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(1594); +ttcn3_debugger.breakpoint_entry(1594); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1594 */ +Struct__tm__Type v__TM; +debug_scope.add_variable(&v__TM, "v_TM", "Struct_tm_Type", NULL, print_var_CommonDefs, set_var_CommonDefs); +current_location.update_lineno(1595); +ttcn3_debugger.breakpoint_entry(1595); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1595 */ +INTEGER v__TimezoneDelta; +debug_scope.add_variable(&v__TimezoneDelta, "v_TimezoneDelta", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1597); +ttcn3_debugger.breakpoint_entry(1597); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1597 */ +fx__GetSystemTime(v__TM, v__TimezoneDelta); +current_location.update_lineno(1599); +ttcn3_debugger.breakpoint_entry(1599); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1599 */ +{ +INTEGER tmp_291; +return DEBUGGER_STORE_RETURN_VALUE(tmp_291, f__UTC__MKTime(v__TM, v__TimezoneDelta)); +} +} + +INTEGER f__UnixEpoch__TimestampSeconds() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1607, TTCN_Location::LOCATION_FUNCTION, "f_UnixEpoch_TimestampSeconds"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_UnixEpoch_TimestampSeconds", "function", "CommonDefs", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(1609); +ttcn3_debugger.breakpoint_entry(1609); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1609 */ +{ +INTEGER tmp_292; +INTEGER tmp_293; +{ INTEGER INTEGER_tmp("2208988800"); +tmp_293 = INTEGER_tmp; } +return DEBUGGER_STORE_RETURN_VALUE(tmp_292, (f__UTC__TimestampSeconds() - tmp_293)); +} +} + +INTEGER f__UtranCellId2Int(const UTRAN__CellId__Type& p__CellId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1619, TTCN_Location::LOCATION_FUNCTION, "f_UtranCellId2Int"); +charstring_list param_names; +param_names[0] = "p_CellId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_UtranCellId2Int", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__CellId, "p_CellId", "UTRAN_CellId_Type", NULL, print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(1621); +ttcn3_debugger.breakpoint_entry(1621); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1621 */ +INTEGER v__CellId(UTRAN__CellId__Type::enum2int(p__CellId)); +debug_scope.add_variable(&v__CellId, "v_CellId", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1624); +ttcn3_debugger.breakpoint_entry(1624); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1624 */ +if ((v__CellId >= 2000)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1625); +ttcn3_debugger.breakpoint_entry(1625); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1625 */ +{ +INTEGER tmp_294; +tmp_294 = (v__CellId - 2000); +v__CellId = tmp_294; +} +} +else { +current_location.update_lineno(1626); +ttcn3_debugger.breakpoint_entry(1626); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1626 */ +if ((v__CellId >= 1000)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1627); +ttcn3_debugger.breakpoint_entry(1627); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1627 */ +{ +INTEGER tmp_295; +tmp_295 = (v__CellId - 1000); +v__CellId = tmp_295; +} +} +} +current_location.update_lineno(1629); +ttcn3_debugger.breakpoint_entry(1629); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1629 */ +{ +INTEGER tmp_296; +return DEBUGGER_STORE_RETURN_VALUE(tmp_296, v__CellId); +} +} + +BOOLEAN f__CheckStringStartWith(const CHARSTRING& p__SourceString, const CHARSTRING& p__StartString) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1639, TTCN_Location::LOCATION_FUNCTION, "f_CheckStringStartWith"); +charstring_list param_names; +param_names[0] = "p_SourceString"; +param_names[1] = "p_StartString"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_CheckStringStartWith", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__SourceString, "p_SourceString", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__StartString, "p_StartString", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1643); +ttcn3_debugger.breakpoint_entry(1643); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1643 */ +INTEGER v__Length(p__StartString.lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1644); +ttcn3_debugger.breakpoint_entry(1644); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1644 */ +CHARSTRING v__SubStr; +debug_scope.add_variable(&v__SubStr, "v_SubStr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1645); +ttcn3_debugger.breakpoint_entry(1645); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1645 */ +BOOLEAN v__Result(FALSE); +debug_scope.add_variable(&v__Result, "v_Result", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1647); +ttcn3_debugger.breakpoint_entry(1647); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1647 */ +if ((v__Length <= p__SourceString.lengthof())) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1648); +ttcn3_debugger.breakpoint_entry(1648); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1648 */ +v__SubStr = substr(p__SourceString, 0, v__Length); +current_location.update_lineno(1649); +ttcn3_debugger.breakpoint_entry(1649); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1649 */ +v__Result = (v__SubStr == p__StartString); +} +current_location.update_lineno(1651); +ttcn3_debugger.breakpoint_entry(1651); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1651 */ +{ +BOOLEAN tmp_299; +return DEBUGGER_STORE_RETURN_VALUE(tmp_299, v__Result); +} +} + +BOOLEAN f__EUTRA__FrequencyBandIsFDD(const INTEGER& p__FrequencyBand) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1662, TTCN_Location::LOCATION_FUNCTION, "f_EUTRA_FrequencyBandIsFDD"); +charstring_list param_names; +param_names[0] = "p_FrequencyBand"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_EUTRA_FrequencyBandIsFDD", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__FrequencyBand, "p_FrequencyBand", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1664); +ttcn3_debugger.breakpoint_entry(1664); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1664 */ +{ +BOOLEAN tmp_300; +boolean tmp_301; +tmp_301 = (p__FrequencyBand < 33); +if (!tmp_301) tmp_301 = (p__FrequencyBand >= 64); +return DEBUGGER_STORE_RETURN_VALUE(tmp_300, tmp_301); +} +} + +INTEGER f__EUTRA__NB__EpsBearerAssociatedDRB(const HEXSTRING& p__EpsBearerId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1674, TTCN_Location::LOCATION_FUNCTION, "f_EUTRA_NB_EpsBearerAssociatedDRB"); +charstring_list param_names; +param_names[0] = "p_EpsBearerId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_EUTRA_NB_EpsBearerAssociatedDRB", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__EpsBearerId, "p_EpsBearerId", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1676); +ttcn3_debugger.breakpoint_entry(1676); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1676 */ +{ +INTEGER tmp_302; +return DEBUGGER_STORE_RETURN_VALUE(tmp_302, (hex2int(p__EpsBearerId) - 4)); +} +} + +CHARSTRING_template f__NameValueList__Get(const NameValueList__Type& p__NameValueList, const CHARSTRING& p__Name) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 1686, TTCN_Location::LOCATION_FUNCTION, "f_NameValueList_Get"); +charstring_list param_names; +param_names[0] = "p_NameValueList"; +param_names[1] = "p_Name"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_NameValueList_Get", "function", "CommonDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__NameValueList, "p_NameValueList", "NameValueList_Type", NULL, print_var_CommonDefs); +debug_scope.add_variable(&p__Name, "p_Name", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1689); +ttcn3_debugger.breakpoint_entry(1689); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1689 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1691); +ttcn3_debugger.breakpoint_entry(1691); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1691 */ +i = 0; +current_location.update_lineno(1691); +ttcn3_debugger.breakpoint_entry(1691); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1691 */ +for ( ; ; ) { +current_location.update_lineno(1691); +ttcn3_debugger.breakpoint_entry(1691); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1691 */ +if (!(i < p__NameValueList.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1692); +ttcn3_debugger.breakpoint_entry(1692); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1692 */ +if ((const_cast< const NameValueList__Type&>(p__NameValueList)[i].Name() == p__Name)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1693); +ttcn3_debugger.breakpoint_entry(1693); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1693 */ +{ +CHARSTRING_template tmp_304; +return DEBUGGER_STORE_RETURN_VALUE(tmp_304, CHARSTRING_template(const_cast< const NameValueList__Type&>(p__NameValueList)[i].Value())); +} +} +current_location.update_lineno(1691); +ttcn3_debugger.breakpoint_entry(1691); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1691 */ +{ +INTEGER tmp_305; +++i; +} +} +current_location.update_lineno(1696); +ttcn3_debugger.breakpoint_entry(1696); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1696 */ +{ +CHARSTRING_template tmp_306; +return DEBUGGER_STORE_RETURN_VALUE(tmp_306, CHARSTRING_template(OMIT_VALUE)); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "CommonDefs"); +CommonDefs::init_ttcn3_debugger(); +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 94 */ +const_tsc__UInt7Max = 127; +current_location.update_lineno(95); +ttcn3_debugger.breakpoint_entry(95); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 95 */ +const_tsc__UInt8Max = 255; +current_location.update_lineno(96); +ttcn3_debugger.breakpoint_entry(96); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 96 */ +const_tsc__UInt16Max = 65535; +current_location.update_lineno(97); +ttcn3_debugger.breakpoint_entry(97); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 97 */ +const_tsc__UInt20Max = 1048575; +current_location.update_lineno(98); +ttcn3_debugger.breakpoint_entry(98); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 98 */ +const_tsc__UInt24Max = 16777215; +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 99 */ +{ INTEGER INTEGER_tmp("4294967295"); +const_tsc__UInt32Max = INTEGER_tmp; } +current_location.update_lineno(129); +ttcn3_debugger.breakpoint_entry(129); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 129 */ +const_tsc__DirectionUL = 0; +current_location.update_lineno(130); +ttcn3_debugger.breakpoint_entry(130); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 130 */ +const_tsc__DirectionDL = 1; +current_location.update_lineno(131); +ttcn3_debugger.breakpoint_entry(131); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 131 */ +const_tsc__WLAN__SSID__AP1 = os_0; +current_location.update_lineno(352); +ttcn3_debugger.breakpoint_entry(352); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 352 */ +const_tsc__GuardTimePreamble = 1.8e2; +current_location.update_lineno(353); +ttcn3_debugger.breakpoint_entry(353); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 353 */ +const_tsc__GuardTimePreamble__12min = 7.2e2; +current_location.update_lineno(356); +ttcn3_debugger.breakpoint_entry(356); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 356 */ +const_tsc__NoOfPDNs = 3; +current_location.update_lineno(357); +ttcn3_debugger.breakpoint_entry(357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 357 */ +const_tsc__NoOfIMSPDNs = 2; +current_location.update_lineno(359); +ttcn3_debugger.breakpoint_entry(359); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 359 */ +const_tsc__Index__IMS1 = 0; +current_location.update_lineno(360); +ttcn3_debugger.breakpoint_entry(360); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 360 */ +const_tsc__Index__IMS2 = 1; +current_location.update_lineno(385); +ttcn3_debugger.breakpoint_entry(385); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 385 */ +const_tsc__EUTRA__MaxEARFCN = 65535; +current_location.update_lineno(388); +ttcn3_debugger.breakpoint_entry(388); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 388 */ +const_tsc__Max__NR__PDCP__SDU__size = 9000; +current_location.update_lineno(389); +ttcn3_debugger.breakpoint_entry(389); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 389 */ +const_tsc__Max__LTE__PDCP__SDU__size = 8188; +current_location.update_lineno(397); +ttcn3_debugger.breakpoint_entry(397); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 397 */ +const_tsc__C__RNTI__Value1 = 4097; +current_location.update_lineno(398); +ttcn3_debugger.breakpoint_entry(398); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 398 */ +const_tsc__C__RNTI__Value2 = 4148; +current_location.update_lineno(399); +ttcn3_debugger.breakpoint_entry(399); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 399 */ +const_tsc__C__RNTI__Value3 = 4369; +current_location.update_lineno(400); +ttcn3_debugger.breakpoint_entry(400); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 400 */ +const_tsc__C__RNTI__Value4 = 8177; +current_location.update_lineno(401); +ttcn3_debugger.breakpoint_entry(401); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 401 */ +const_tsc__C__RNTI__Value5 = 1234; +current_location.update_lineno(402); +ttcn3_debugger.breakpoint_entry(402); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 402 */ +const_tsc__C__RNTI__Value6 = 2345; +current_location.update_lineno(403); +ttcn3_debugger.breakpoint_entry(403); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 403 */ +const_tsc__C__RNTI__Value7 = 3456; +current_location.update_lineno(404); +ttcn3_debugger.breakpoint_entry(404); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 404 */ +const_tsc__C__RNTI__Value8 = 4567; +current_location.update_lineno(405); +ttcn3_debugger.breakpoint_entry(405); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 405 */ +const_tsc__C__RNTI__Value9 = 5678; +current_location.update_lineno(406); +ttcn3_debugger.breakpoint_entry(406); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 406 */ +const_tsc__C__RNTI__Value10 = 6789; +current_location.update_lineno(409); +ttcn3_debugger.breakpoint_entry(409); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 409 */ +const_tsc__C__RNTI__Def = bs_0; +current_location.update_lineno(410); +ttcn3_debugger.breakpoint_entry(410); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 410 */ +const_tsc__C__RNTI__Def2 = bs_1; +current_location.update_lineno(411); +ttcn3_debugger.breakpoint_entry(411); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 411 */ +const_tsc__C__RNTI__Def3 = bs_2; +current_location.update_lineno(412); +ttcn3_debugger.breakpoint_entry(412); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 412 */ +const_tsc__C__RNTI__Def4 = bs_3; +current_location.update_lineno(413); +ttcn3_debugger.breakpoint_entry(413); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 413 */ +const_tsc__C__RNTI__Def5 = bs_4; +current_location.update_lineno(414); +ttcn3_debugger.breakpoint_entry(414); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 414 */ +const_tsc__C__RNTI__Def6 = bs_5; +current_location.update_lineno(415); +ttcn3_debugger.breakpoint_entry(415); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 415 */ +const_tsc__C__RNTI__Def7 = bs_6; +current_location.update_lineno(416); +ttcn3_debugger.breakpoint_entry(416); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 416 */ +const_tsc__C__RNTI__Def8 = bs_7; +current_location.update_lineno(417); +ttcn3_debugger.breakpoint_entry(417); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 417 */ +const_tsc__C__RNTI__Def9 = bs_8; +current_location.update_lineno(418); +ttcn3_debugger.breakpoint_entry(418); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 418 */ +const_tsc__C__RNTI__Def10 = bs_9; +current_location.update_lineno(424); +ttcn3_debugger.breakpoint_entry(424); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 424 */ +const_tsc__RandomPRBS = os_1; +current_location.update_lineno(490); +ttcn3_debugger.breakpoint_entry(490); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 490 */ +const_tsc__AT__ResultOK = cs_0; +current_location.update_lineno(491); +ttcn3_debugger.breakpoint_entry(491); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 491 */ +const_tsc__Fox = cs_1; +current_location.update_lineno(492); +ttcn3_debugger.breakpoint_entry(492); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 492 */ +const_tsc__Fox__PDU = cs_2; +current_location.update_lineno(497); +ttcn3_debugger.breakpoint_entry(497); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 497 */ +const_tsc__FoxShort = cs_3; +current_location.update_lineno(499); +ttcn3_debugger.breakpoint_entry(499); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 499 */ +const_tsc__CarriageReturnLineFeed = cs_4; +current_location.update_lineno(501); +ttcn3_debugger.breakpoint_entry(501); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 501 */ +const_tsc__Oct1000__0 = os_2; +module_object.add_function("fl_FormatLog", (genericfunc_t)&fl__FormatLog, NULL); +module_object.add_function("f_ErrorLog", (genericfunc_t)&f__ErrorLog, NULL); +module_object.add_function("f_SetVerdict", (genericfunc_t)&f__SetVerdict, NULL); +module_object.add_function("FatalError", (genericfunc_t)&FatalError, NULL); +module_object.add_function("f_SetVerdictInconc", (genericfunc_t)&f__SetVerdictInconc, NULL); +module_object.add_function("f_Delay", (genericfunc_t)&f__Delay, NULL); +module_object.add_function("f_IntegerList_Search", (genericfunc_t)&f__IntegerList__Search, NULL); +module_object.add_function("f_CeilLog2", (genericfunc_t)&f__CeilLog2, NULL); +module_object.add_function("f_FloorLog2", (genericfunc_t)&f__FloorLog2, NULL); +module_object.add_function("f_Power", (genericfunc_t)&f__Power, NULL); +module_object.add_function("f_Round", (genericfunc_t)&f__Round, NULL); +module_object.add_function("f_TemplateInt2Bit", (genericfunc_t)&f__TemplateInt2Bit, NULL); +module_object.add_function("f_TemplateInt2Str", (genericfunc_t)&f__TemplateInt2Str, NULL); +module_object.add_function("f_StringFindChar", (genericfunc_t)&f__StringFindChar, NULL); +module_object.add_function("fl_StringToUpperOrLower", (genericfunc_t)&fl__StringToUpperOrLower, NULL); +module_object.add_function("f_StringToLower", (genericfunc_t)&f__StringToLower, NULL); +module_object.add_function("f_StringToUpper", (genericfunc_t)&f__StringToUpper, NULL); +module_object.add_function("f_StringSplit", (genericfunc_t)&f__StringSplit, NULL); +module_object.add_function("f_StringSplitLines", (genericfunc_t)&f__StringSplitLines, NULL); +module_object.add_function("f_StringJoin", (genericfunc_t)&f__StringJoin, NULL); +module_object.add_function("f_CharStringList_Add", (genericfunc_t)&f__CharStringList__Add, NULL); +module_object.add_function("f_CharStringList_Remove", (genericfunc_t)&f__CharStringList__Remove, NULL); +module_object.add_function("f_ConvertBoolToBit", (genericfunc_t)&f__ConvertBoolToBit, NULL); +module_object.add_function("f_ConvertStrToBit", (genericfunc_t)&f__ConvertStrToBit, NULL); +module_object.add_function("f_Char2Bit", (genericfunc_t)&f__Char2Bit, NULL); +module_object.add_function("f_Unichar2Bit", (genericfunc_t)&f__Unichar2Bit, NULL); +module_object.add_function("f_XsdString2Bit", (genericfunc_t)&f__XsdString2Bit, NULL); +module_object.add_function("f_Bit2Char", (genericfunc_t)&f__Bit2Char, NULL); +module_object.add_function("f_Bit2Unichar", (genericfunc_t)&f__Bit2Unichar, NULL); +module_object.add_function("f_Bit2XsdString", (genericfunc_t)&f__Bit2XsdString, NULL); +module_object.add_function("f_OctetAlignedBitString", (genericfunc_t)&f__OctetAlignedBitString, NULL); +module_object.add_function("f_GetN_OctetsFromPRBS", (genericfunc_t)&f__GetN__OctetsFromPRBS, NULL); +current_location.update_lineno(1017); +ttcn3_debugger.breakpoint_entry(1017); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1017 */ +{ +VALUE_ARRAY& tmp_93 = const_tsc__Gsm7BitLookup[32]; +tmp_93[0] = 0; +tmp_93[1] = 256; +} +{ +VALUE_ARRAY& tmp_94 = const_tsc__Gsm7BitLookup[33]; +tmp_94[0] = 0; +tmp_94[1] = 256; +} +{ +VALUE_ARRAY& tmp_95 = const_tsc__Gsm7BitLookup[34]; +tmp_95[0] = 0; +tmp_95[1] = 256; +} +{ +VALUE_ARRAY& tmp_96 = const_tsc__Gsm7BitLookup[35]; +tmp_96[0] = 0; +tmp_96[1] = 256; +} +{ +VALUE_ARRAY& tmp_97 = const_tsc__Gsm7BitLookup[36]; +tmp_97[0] = 1; +tmp_97[1] = 2; +} +{ +VALUE_ARRAY& tmp_98 = const_tsc__Gsm7BitLookup[37]; +tmp_98[0] = 0; +tmp_98[1] = 256; +} +{ +VALUE_ARRAY& tmp_99 = const_tsc__Gsm7BitLookup[38]; +tmp_99[0] = 0; +tmp_99[1] = 256; +} +{ +VALUE_ARRAY& tmp_100 = const_tsc__Gsm7BitLookup[39]; +tmp_100[0] = 0; +tmp_100[1] = 256; +} +{ +VALUE_ARRAY& tmp_101 = const_tsc__Gsm7BitLookup[40]; +tmp_101[0] = 0; +tmp_101[1] = 256; +} +{ +VALUE_ARRAY& tmp_102 = const_tsc__Gsm7BitLookup[41]; +tmp_102[0] = 0; +tmp_102[1] = 256; +} +{ +VALUE_ARRAY& tmp_103 = const_tsc__Gsm7BitLookup[42]; +tmp_103[0] = 0; +tmp_103[1] = 256; +} +{ +VALUE_ARRAY& tmp_104 = const_tsc__Gsm7BitLookup[43]; +tmp_104[0] = 0; +tmp_104[1] = 256; +} +{ +VALUE_ARRAY& tmp_105 = const_tsc__Gsm7BitLookup[44]; +tmp_105[0] = 0; +tmp_105[1] = 256; +} +{ +VALUE_ARRAY& tmp_106 = const_tsc__Gsm7BitLookup[45]; +tmp_106[0] = 0; +tmp_106[1] = 256; +} +{ +VALUE_ARRAY& tmp_107 = const_tsc__Gsm7BitLookup[46]; +tmp_107[0] = 0; +tmp_107[1] = 256; +} +{ +VALUE_ARRAY& tmp_108 = const_tsc__Gsm7BitLookup[47]; +tmp_108[0] = 0; +tmp_108[1] = 256; +} +{ +VALUE_ARRAY& tmp_109 = const_tsc__Gsm7BitLookup[48]; +tmp_109[0] = 0; +tmp_109[1] = 256; +} +{ +VALUE_ARRAY& tmp_110 = const_tsc__Gsm7BitLookup[49]; +tmp_110[0] = 0; +tmp_110[1] = 256; +} +{ +VALUE_ARRAY& tmp_111 = const_tsc__Gsm7BitLookup[50]; +tmp_111[0] = 0; +tmp_111[1] = 256; +} +{ +VALUE_ARRAY& tmp_112 = const_tsc__Gsm7BitLookup[51]; +tmp_112[0] = 0; +tmp_112[1] = 256; +} +{ +VALUE_ARRAY& tmp_113 = const_tsc__Gsm7BitLookup[52]; +tmp_113[0] = 0; +tmp_113[1] = 256; +} +{ +VALUE_ARRAY& tmp_114 = const_tsc__Gsm7BitLookup[53]; +tmp_114[0] = 0; +tmp_114[1] = 256; +} +{ +VALUE_ARRAY& tmp_115 = const_tsc__Gsm7BitLookup[54]; +tmp_115[0] = 0; +tmp_115[1] = 256; +} +{ +VALUE_ARRAY& tmp_116 = const_tsc__Gsm7BitLookup[55]; +tmp_116[0] = 0; +tmp_116[1] = 256; +} +{ +VALUE_ARRAY& tmp_117 = const_tsc__Gsm7BitLookup[56]; +tmp_117[0] = 0; +tmp_117[1] = 256; +} +{ +VALUE_ARRAY& tmp_118 = const_tsc__Gsm7BitLookup[57]; +tmp_118[0] = 0; +tmp_118[1] = 256; +} +{ +VALUE_ARRAY& tmp_119 = const_tsc__Gsm7BitLookup[58]; +tmp_119[0] = 0; +tmp_119[1] = 256; +} +{ +VALUE_ARRAY& tmp_120 = const_tsc__Gsm7BitLookup[59]; +tmp_120[0] = 0; +tmp_120[1] = 256; +} +{ +VALUE_ARRAY& tmp_121 = const_tsc__Gsm7BitLookup[60]; +tmp_121[0] = 0; +tmp_121[1] = 256; +} +{ +VALUE_ARRAY& tmp_122 = const_tsc__Gsm7BitLookup[61]; +tmp_122[0] = 0; +tmp_122[1] = 256; +} +{ +VALUE_ARRAY& tmp_123 = const_tsc__Gsm7BitLookup[62]; +tmp_123[0] = 0; +tmp_123[1] = 256; +} +{ +VALUE_ARRAY& tmp_124 = const_tsc__Gsm7BitLookup[63]; +tmp_124[0] = 0; +tmp_124[1] = 256; +} +{ +VALUE_ARRAY& tmp_125 = const_tsc__Gsm7BitLookup[64]; +tmp_125[0] = 1; +tmp_125[1] = 0; +} +{ +VALUE_ARRAY& tmp_126 = const_tsc__Gsm7BitLookup[65]; +tmp_126[0] = 0; +tmp_126[1] = 256; +} +{ +VALUE_ARRAY& tmp_127 = const_tsc__Gsm7BitLookup[66]; +tmp_127[0] = 0; +tmp_127[1] = 256; +} +{ +VALUE_ARRAY& tmp_128 = const_tsc__Gsm7BitLookup[67]; +tmp_128[0] = 0; +tmp_128[1] = 256; +} +{ +VALUE_ARRAY& tmp_129 = const_tsc__Gsm7BitLookup[68]; +tmp_129[0] = 0; +tmp_129[1] = 256; +} +{ +VALUE_ARRAY& tmp_130 = const_tsc__Gsm7BitLookup[69]; +tmp_130[0] = 0; +tmp_130[1] = 256; +} +{ +VALUE_ARRAY& tmp_131 = const_tsc__Gsm7BitLookup[70]; +tmp_131[0] = 0; +tmp_131[1] = 256; +} +{ +VALUE_ARRAY& tmp_132 = const_tsc__Gsm7BitLookup[71]; +tmp_132[0] = 0; +tmp_132[1] = 256; +} +{ +VALUE_ARRAY& tmp_133 = const_tsc__Gsm7BitLookup[72]; +tmp_133[0] = 0; +tmp_133[1] = 256; +} +{ +VALUE_ARRAY& tmp_134 = const_tsc__Gsm7BitLookup[73]; +tmp_134[0] = 0; +tmp_134[1] = 256; +} +{ +VALUE_ARRAY& tmp_135 = const_tsc__Gsm7BitLookup[74]; +tmp_135[0] = 0; +tmp_135[1] = 256; +} +{ +VALUE_ARRAY& tmp_136 = const_tsc__Gsm7BitLookup[75]; +tmp_136[0] = 0; +tmp_136[1] = 256; +} +{ +VALUE_ARRAY& tmp_137 = const_tsc__Gsm7BitLookup[76]; +tmp_137[0] = 0; +tmp_137[1] = 256; +} +{ +VALUE_ARRAY& tmp_138 = const_tsc__Gsm7BitLookup[77]; +tmp_138[0] = 0; +tmp_138[1] = 256; +} +{ +VALUE_ARRAY& tmp_139 = const_tsc__Gsm7BitLookup[78]; +tmp_139[0] = 0; +tmp_139[1] = 256; +} +{ +VALUE_ARRAY& tmp_140 = const_tsc__Gsm7BitLookup[79]; +tmp_140[0] = 0; +tmp_140[1] = 256; +} +{ +VALUE_ARRAY& tmp_141 = const_tsc__Gsm7BitLookup[80]; +tmp_141[0] = 0; +tmp_141[1] = 256; +} +{ +VALUE_ARRAY& tmp_142 = const_tsc__Gsm7BitLookup[81]; +tmp_142[0] = 0; +tmp_142[1] = 256; +} +{ +VALUE_ARRAY& tmp_143 = const_tsc__Gsm7BitLookup[82]; +tmp_143[0] = 0; +tmp_143[1] = 256; +} +{ +VALUE_ARRAY& tmp_144 = const_tsc__Gsm7BitLookup[83]; +tmp_144[0] = 0; +tmp_144[1] = 256; +} +{ +VALUE_ARRAY& tmp_145 = const_tsc__Gsm7BitLookup[84]; +tmp_145[0] = 0; +tmp_145[1] = 256; +} +{ +VALUE_ARRAY& tmp_146 = const_tsc__Gsm7BitLookup[85]; +tmp_146[0] = 0; +tmp_146[1] = 256; +} +{ +VALUE_ARRAY& tmp_147 = const_tsc__Gsm7BitLookup[86]; +tmp_147[0] = 0; +tmp_147[1] = 256; +} +{ +VALUE_ARRAY& tmp_148 = const_tsc__Gsm7BitLookup[87]; +tmp_148[0] = 0; +tmp_148[1] = 256; +} +{ +VALUE_ARRAY& tmp_149 = const_tsc__Gsm7BitLookup[88]; +tmp_149[0] = 0; +tmp_149[1] = 256; +} +{ +VALUE_ARRAY& tmp_150 = const_tsc__Gsm7BitLookup[89]; +tmp_150[0] = 0; +tmp_150[1] = 256; +} +{ +VALUE_ARRAY& tmp_151 = const_tsc__Gsm7BitLookup[90]; +tmp_151[0] = 0; +tmp_151[1] = 256; +} +{ +VALUE_ARRAY& tmp_152 = const_tsc__Gsm7BitLookup[91]; +tmp_152[0] = 2; +tmp_152[1] = 60; +} +{ +VALUE_ARRAY& tmp_153 = const_tsc__Gsm7BitLookup[92]; +tmp_153[0] = 2; +tmp_153[1] = 47; +} +{ +VALUE_ARRAY& tmp_154 = const_tsc__Gsm7BitLookup[93]; +tmp_154[0] = 2; +tmp_154[1] = 62; +} +{ +VALUE_ARRAY& tmp_155 = const_tsc__Gsm7BitLookup[94]; +tmp_155[0] = 2; +tmp_155[1] = 20; +} +{ +VALUE_ARRAY& tmp_156 = const_tsc__Gsm7BitLookup[95]; +tmp_156[0] = 1; +tmp_156[1] = 17; +} +{ +VALUE_ARRAY& tmp_157 = const_tsc__Gsm7BitLookup[96]; +tmp_157[0] = 3; +tmp_157[1] = 256; +} +{ +VALUE_ARRAY& tmp_158 = const_tsc__Gsm7BitLookup[97]; +tmp_158[0] = 0; +tmp_158[1] = 256; +} +{ +VALUE_ARRAY& tmp_159 = const_tsc__Gsm7BitLookup[98]; +tmp_159[0] = 0; +tmp_159[1] = 256; +} +{ +VALUE_ARRAY& tmp_160 = const_tsc__Gsm7BitLookup[99]; +tmp_160[0] = 0; +tmp_160[1] = 256; +} +{ +VALUE_ARRAY& tmp_161 = const_tsc__Gsm7BitLookup[100]; +tmp_161[0] = 0; +tmp_161[1] = 256; +} +{ +VALUE_ARRAY& tmp_162 = const_tsc__Gsm7BitLookup[101]; +tmp_162[0] = 0; +tmp_162[1] = 256; +} +{ +VALUE_ARRAY& tmp_163 = const_tsc__Gsm7BitLookup[102]; +tmp_163[0] = 0; +tmp_163[1] = 256; +} +{ +VALUE_ARRAY& tmp_164 = const_tsc__Gsm7BitLookup[103]; +tmp_164[0] = 0; +tmp_164[1] = 256; +} +{ +VALUE_ARRAY& tmp_165 = const_tsc__Gsm7BitLookup[104]; +tmp_165[0] = 0; +tmp_165[1] = 256; +} +{ +VALUE_ARRAY& tmp_166 = const_tsc__Gsm7BitLookup[105]; +tmp_166[0] = 0; +tmp_166[1] = 256; +} +{ +VALUE_ARRAY& tmp_167 = const_tsc__Gsm7BitLookup[106]; +tmp_167[0] = 0; +tmp_167[1] = 256; +} +{ +VALUE_ARRAY& tmp_168 = const_tsc__Gsm7BitLookup[107]; +tmp_168[0] = 0; +tmp_168[1] = 256; +} +{ +VALUE_ARRAY& tmp_169 = const_tsc__Gsm7BitLookup[108]; +tmp_169[0] = 0; +tmp_169[1] = 256; +} +{ +VALUE_ARRAY& tmp_170 = const_tsc__Gsm7BitLookup[109]; +tmp_170[0] = 0; +tmp_170[1] = 256; +} +{ +VALUE_ARRAY& tmp_171 = const_tsc__Gsm7BitLookup[110]; +tmp_171[0] = 0; +tmp_171[1] = 256; +} +{ +VALUE_ARRAY& tmp_172 = const_tsc__Gsm7BitLookup[111]; +tmp_172[0] = 0; +tmp_172[1] = 256; +} +{ +VALUE_ARRAY& tmp_173 = const_tsc__Gsm7BitLookup[112]; +tmp_173[0] = 0; +tmp_173[1] = 256; +} +{ +VALUE_ARRAY& tmp_174 = const_tsc__Gsm7BitLookup[113]; +tmp_174[0] = 0; +tmp_174[1] = 256; +} +{ +VALUE_ARRAY& tmp_175 = const_tsc__Gsm7BitLookup[114]; +tmp_175[0] = 0; +tmp_175[1] = 256; +} +{ +VALUE_ARRAY& tmp_176 = const_tsc__Gsm7BitLookup[115]; +tmp_176[0] = 0; +tmp_176[1] = 256; +} +{ +VALUE_ARRAY& tmp_177 = const_tsc__Gsm7BitLookup[116]; +tmp_177[0] = 0; +tmp_177[1] = 256; +} +{ +VALUE_ARRAY& tmp_178 = const_tsc__Gsm7BitLookup[117]; +tmp_178[0] = 0; +tmp_178[1] = 256; +} +{ +VALUE_ARRAY& tmp_179 = const_tsc__Gsm7BitLookup[118]; +tmp_179[0] = 0; +tmp_179[1] = 256; +} +{ +VALUE_ARRAY& tmp_180 = const_tsc__Gsm7BitLookup[119]; +tmp_180[0] = 0; +tmp_180[1] = 256; +} +{ +VALUE_ARRAY& tmp_181 = const_tsc__Gsm7BitLookup[120]; +tmp_181[0] = 0; +tmp_181[1] = 256; +} +{ +VALUE_ARRAY& tmp_182 = const_tsc__Gsm7BitLookup[121]; +tmp_182[0] = 0; +tmp_182[1] = 256; +} +{ +VALUE_ARRAY& tmp_183 = const_tsc__Gsm7BitLookup[122]; +tmp_183[0] = 0; +tmp_183[1] = 256; +} +{ +VALUE_ARRAY& tmp_184 = const_tsc__Gsm7BitLookup[123]; +tmp_184[0] = 2; +tmp_184[1] = 40; +} +{ +VALUE_ARRAY& tmp_185 = const_tsc__Gsm7BitLookup[124]; +tmp_185[0] = 2; +tmp_185[1] = 64; +} +{ +VALUE_ARRAY& tmp_186 = const_tsc__Gsm7BitLookup[125]; +tmp_186[0] = 2; +tmp_186[1] = 41; +} +{ +VALUE_ARRAY& tmp_187 = const_tsc__Gsm7BitLookup[126]; +tmp_187[0] = 2; +tmp_187[1] = 61; +} +module_object.add_function("fl_XlatAcsiiToGsm7Bit", (genericfunc_t)&fl__XlatAcsiiToGsm7Bit, NULL); +module_object.add_function("f_CharPacking_IA5toGsm7Bit", (genericfunc_t)&f__CharPacking__IA5toGsm7Bit, NULL); +module_object.add_function("f_CharPacking_IA5toBCD", (genericfunc_t)&f__CharPacking__IA5toBCD, NULL); +module_object.add_function("f_BitstringReplaceMSB", (genericfunc_t)&f__BitstringReplaceMSB, NULL); +module_object.add_function("f_Bitstring_BitIsSet", (genericfunc_t)&f__Bitstring__BitIsSet, NULL); +module_object.add_function("f_Bitstring_LeastSignificantBits", (genericfunc_t)&f__Bitstring__LeastSignificantBits, NULL); +module_object.add_function("f_BitstringTemplate_SetBit", (genericfunc_t)&f__BitstringTemplate__SetBit, NULL); +current_location.update_lineno(1303); +ttcn3_debugger.breakpoint_entry(1303); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1303 */ +const_tsc__KDF__HMAC__SHA__256 = 1; +current_location.update_lineno(1304); +ttcn3_debugger.breakpoint_entry(1304); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1304 */ +const_tsc__KDF__Spare3 = 4; +module_object.add_function("fx_KeyDerivationFunction", (genericfunc_t)&fx__KeyDerivationFunction, NULL); +module_object.add_function("fx_CalculateFCS32", (genericfunc_t)&fx__CalculateFCS32, NULL); +module_object.add_function("fx_GetSystemTime", (genericfunc_t)&fx__GetSystemTime, NULL); +module_object.add_function("fl_FormatIntegerAsTwoDigits", (genericfunc_t)&fl__FormatIntegerAsTwoDigits, NULL); +module_object.add_function("f_HTTP_FormatHttpDate", (genericfunc_t)&f__HTTP__FormatHttpDate, NULL); +module_object.add_function("f_UTC_FormatDateTime", (genericfunc_t)&f__UTC__FormatDateTime, NULL); +module_object.add_function("f_UTC_Timestamp", (genericfunc_t)&f__UTC__Timestamp, NULL); +module_object.add_function("f_SwappedNibbles", (genericfunc_t)&f__SwappedNibbles, NULL); +module_object.add_function("f_BCD_TimestampWithTimezone", (genericfunc_t)&f__BCD__TimestampWithTimezone, NULL); +module_object.add_function("f_BCD_TimestampWithoutTimezone", (genericfunc_t)&f__BCD__TimestampWithoutTimezone, NULL); +module_object.add_function("f_MDT_GetAbsolute_TimeStamp", (genericfunc_t)&f__MDT__GetAbsolute__TimeStamp, NULL); +module_object.add_function("f_UTC_MKTime", (genericfunc_t)&f__UTC__MKTime, NULL); +module_object.add_function("f_UTC_TimestampSeconds", (genericfunc_t)&f__UTC__TimestampSeconds, NULL); +module_object.add_function("f_UnixEpoch_TimestampSeconds", (genericfunc_t)&f__UnixEpoch__TimestampSeconds, NULL); +module_object.add_function("f_UtranCellId2Int", (genericfunc_t)&f__UtranCellId2Int, NULL); +module_object.add_function("f_CheckStringStartWith", (genericfunc_t)&f__CheckStringStartWith, NULL); +module_object.add_function("f_EUTRA_FrequencyBandIsFDD", (genericfunc_t)&f__EUTRA__FrequencyBandIsFDD, NULL); +module_object.add_function("f_EUTRA_NB_EpsBearerAssociatedDRB", (genericfunc_t)&f__EUTRA__NB__EpsBearerAssociatedDRB, NULL); +module_object.add_function("f_NameValueList_Get", (genericfunc_t)&f__NameValueList__Get, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "CommonDefs"); +current_location.update_lineno(420); +ttcn3_debugger.breakpoint_entry(420); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 420 */ +template_cr__Octet10__Any = ANY_VALUE; +template_cr__Octet10__Any.set_single_length(10); +current_location.update_lineno(741); +ttcn3_debugger.breakpoint_entry(741); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 741 */ +const_f__StringFindChar_p__StartIndex_defval = 0; +current_location.update_lineno(839); +ttcn3_debugger.breakpoint_entry(839); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 839 */ +const_f__StringSplitLines_p__Delimitor_defval = cs_4; +current_location.update_lineno(862); +ttcn3_debugger.breakpoint_entry(862); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 862 */ +const_f__StringJoin_p__JoinString_defval = cs_10; +current_location.update_lineno(1171); +ttcn3_debugger.breakpoint_entry(1171); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common/CommonDefs.ttcn, line 1171 */ +const_f__CharPacking__IA5toGsm7Bit_p__NumFillbits_defval = 0; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/CommonDefs.hh b/build/Ats_NG_NAS/CommonDefs.hh new file mode 100644 index 0000000000000000000000000000000000000000..101e10cbd55480c63b0bc527145f61fc4055b74e --- /dev/null +++ b/build/Ats_NG_NAS/CommonDefs.hh @@ -0,0 +1,4787 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef CommonDefs_HH +#define CommonDefs_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include + +#if TTCN3_VERSION != 100000 +#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 CommonDefs_HH +#endif + +namespace CommonDefs { + +/* Forward declarations of classes */ + +typedef PreGenRecordOf::PREGEN__RECORD__OF__BITSTRING B8__List__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__BITSTRING_template B8__List__Type_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__CHARSTRING Char1List__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__CHARSTRING_template Char1List__Type_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__CHARSTRING CharStringList__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__CHARSTRING_template CharStringList__Type_template; +typedef PreGenRecordOf::PREGEN__SET__OF__CHARSTRING SetOfCharString__Type; +typedef PreGenRecordOf::PREGEN__SET__OF__CHARSTRING_template SetOfCharString__Type_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING OctetStringList__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template OctetStringList__Type_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__BITSTRING BitStringList__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__BITSTRING_template BitStringList__Type_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__INTEGER IntegerList__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__INTEGER_template IntegerList__Type_template; +class NameValue__Type; +class NameValue__Type_template; +class NameValueList__Type; +class NameValueList__Type_template; +class IndicationAndControlMode__Type; +class IndicationAndControlMode__Type_template; +class SinglePLMN__TestedType; +class SinglePLMN__TestedType_template; +class EUTRA__ATTACH__TESTED__Type; +class EUTRA__ATTACH__TESTED__Type_template; +class EUTRA__FDD__TDD__Mode__Type; +class EUTRA__FDD__TDD__Mode__Type_template; +class UTRAN__FDD__TDD__Type; +class UTRAN__FDD__TDD__Type_template; +class RATComb__Tested__Type; +class RATComb__Tested__Type_template; +class RRCConnectionReleaseRequired__Type; +class RRCConnectionReleaseRequired__Type_template; +class NTN__Satellite__Type; +class NTN__Satellite__Type_template; +class NGC__CellId__Type; +class NGC__CellId__Type_template; +class NR__CellId__Type; +class NR__CellId__Type_template; +class NR__CellIdList__Type; +class NR__CellIdList__Type_template; +class EUTRA__CellId__Type; +class EUTRA__CellId__Type_template; +class EUTRA__CellIdList__Type; +class EUTRA__CellIdList__Type_template; +class UTRAN__CellId__Type; +class UTRAN__CellId__Type_template; +class UTRAN__CellIdList__Type; +class UTRAN__CellIdList__Type_template; +class WLAN__CellId__Type; +class WLAN__CellId__Type_template; +class DeltaValues__Type; +class DeltaValues__Type_template; +class UE__NR__DeltaValues__Type; +class UE__NR__DeltaValues__Type_template; +class AnyCellId__Type; +class AnyCellId__Type_template; +class IP__EUTRA__DrbInfo__Type; +class IP__EUTRA__DrbInfo__Type_template; +class IP__UTRAN__GERAN__DrbInfo__Type; +class IP__UTRAN__GERAN__DrbInfo__Type_template; +class IP__WLAN__DrbInfo__Type; +class IP__WLAN__DrbInfo__Type_template; +class PDN__Index__Type; +class PDN__Index__Type_template; +class IP__ePDG__IPsecTunnelInfo__Type; +class IP__ePDG__IPsecTunnelInfo__Type_template; +class QosFlow__Identification__Type; +class QosFlow__Identification__Type_template; +class IP__NR__QosFlowInfo__Type; +class IP__NR__QosFlowInfo__Type_template; +class IP__EUTRA__QosFlowInfo__Type; +class IP__EUTRA__QosFlowInfo__Type_template; +class IP__NR__DrbInfo__Type; +class IP__NR__DrbInfo__Type_template; +class IP__DrbInfo__Type; +class IP__DrbInfo__Type_template; +class GPRS__CipheringAlgorithm__Type; +class GPRS__CipheringAlgorithm__Type_template; +class IPCAN__RAN__Type; +class IPCAN__RAN__Type_template; +class IRAT__ConfiguredPTCs__Type; +class IRAT__ConfiguredPTCs__Type_template; +class VerdictCtrl__Type; +class VerdictCtrl__Type_template; +class HarqErrorHandling__Type; +class HarqErrorHandling__Type_template; +class Gsm7BitPacking__Type; +class Gsm7BitPacking__Type_template; +class Struct__tm__Type; +class Struct__tm__Type_template; + +} /* end of namespace */ + +#ifndef CommonDefs_HH +#define CommonDefs_HH + +namespace CommonDefs { + +/* Type definitions */ + +typedef BITSTRING B1__Type; +typedef BITSTRING_template B1__Type_template; +typedef BITSTRING B2__Type; +typedef BITSTRING_template B2__Type_template; +typedef BITSTRING B3__Type; +typedef BITSTRING_template B3__Type_template; +typedef BITSTRING B4__Type; +typedef BITSTRING_template B4__Type_template; +typedef BITSTRING B5__Type; +typedef BITSTRING_template B5__Type_template; +typedef BITSTRING B6__Type; +typedef BITSTRING_template B6__Type_template; +typedef BITSTRING B7__Type; +typedef BITSTRING_template B7__Type_template; +typedef BITSTRING B7__15__Type; +typedef BITSTRING_template B7__15__Type_template; +typedef BITSTRING B8__Type; +typedef BITSTRING_template B8__Type_template; +typedef BITSTRING B9__Type; +typedef BITSTRING_template B9__Type_template; +typedef BITSTRING B10__Type; +typedef BITSTRING_template B10__Type_template; +typedef BITSTRING B11__Type; +typedef BITSTRING_template B11__Type_template; +typedef BITSTRING B12__Type; +typedef BITSTRING_template B12__Type_template; +typedef BITSTRING B13__Type; +typedef BITSTRING_template B13__Type_template; +typedef BITSTRING B14__Type; +typedef BITSTRING_template B14__Type_template; +typedef BITSTRING B15__Type; +typedef BITSTRING_template B15__Type_template; +typedef BITSTRING B16__Type; +typedef BITSTRING_template B16__Type_template; +typedef BITSTRING B18__Type; +typedef BITSTRING_template B18__Type_template; +typedef BITSTRING B20__Type; +typedef BITSTRING_template B20__Type_template; +typedef BITSTRING B22__Type; +typedef BITSTRING_template B22__Type_template; +typedef BITSTRING B24__Type; +typedef BITSTRING_template B24__Type_template; +typedef BITSTRING B27__Type; +typedef BITSTRING_template B27__Type_template; +typedef BITSTRING B28__Type; +typedef BITSTRING_template B28__Type_template; +typedef BITSTRING B32__Type; +typedef BITSTRING_template B32__Type_template; +typedef BITSTRING B36__Type; +typedef BITSTRING_template B36__Type_template; +typedef BITSTRING B40__Type; +typedef BITSTRING_template B40__Type_template; +typedef BITSTRING B41__Type; +typedef BITSTRING_template B41__Type_template; +typedef BITSTRING B42__Type; +typedef BITSTRING_template B42__Type_template; +typedef BITSTRING B43__Type; +typedef BITSTRING_template B43__Type_template; +typedef BITSTRING B45__Type; +typedef BITSTRING_template B45__Type_template; +typedef BITSTRING B47__Type; +typedef BITSTRING_template B47__Type_template; +typedef BITSTRING B48__Type; +typedef BITSTRING_template B48__Type_template; +typedef BITSTRING B56__Type; +typedef BITSTRING_template B56__Type_template; +typedef BITSTRING B64__Type; +typedef BITSTRING_template B64__Type_template; +typedef BITSTRING B80__Type; +typedef BITSTRING_template B80__Type_template; +typedef BITSTRING B112__Type; +typedef BITSTRING_template B112__Type_template; +typedef BITSTRING B128__Type; +typedef BITSTRING_template B128__Type_template; +typedef BITSTRING B160__Type; +typedef BITSTRING_template B160__Type_template; +typedef BITSTRING B184__Type; +typedef BITSTRING_template B184__Type_template; +typedef BITSTRING B192__Type; +typedef BITSTRING_template B192__Type_template; +typedef BITSTRING B256__Type; +typedef BITSTRING_template B256__Type_template; +typedef BITSTRING B32__128__Type; +typedef BITSTRING_template B32__128__Type_template; +typedef BITSTRING B128__Key__Type; +typedef BITSTRING_template B128__Key__Type_template; +typedef BITSTRING B256__Key__Type; +typedef BITSTRING_template B256__Key__Type_template; +typedef OCTETSTRING O1__Type; +typedef OCTETSTRING_template O1__Type_template; +typedef OCTETSTRING O2__Type; +typedef OCTETSTRING_template O2__Type_template; +typedef OCTETSTRING O3__Type; +typedef OCTETSTRING_template O3__Type_template; +typedef OCTETSTRING O4__Type; +typedef OCTETSTRING_template O4__Type_template; +typedef OCTETSTRING O5__Type; +typedef OCTETSTRING_template O5__Type_template; +typedef OCTETSTRING O6__Type; +typedef OCTETSTRING_template O6__Type_template; +typedef OCTETSTRING O8__Type; +typedef OCTETSTRING_template O8__Type_template; +typedef OCTETSTRING O9__Type; +typedef OCTETSTRING_template O9__Type_template; +typedef OCTETSTRING O10__Type; +typedef OCTETSTRING_template O10__Type_template; +typedef OCTETSTRING O13__Type; +typedef OCTETSTRING_template O13__Type_template; +typedef OCTETSTRING O14__Type; +typedef OCTETSTRING_template O14__Type_template; +typedef OCTETSTRING O15__Type; +typedef OCTETSTRING_template O15__Type_template; +typedef OCTETSTRING O16__Type; +typedef OCTETSTRING_template O16__Type_template; +typedef OCTETSTRING O28__Type; +typedef OCTETSTRING_template O28__Type_template; +typedef OCTETSTRING O32__Type; +typedef OCTETSTRING_template O32__Type_template; +typedef OCTETSTRING O43__Type; +typedef OCTETSTRING_template O43__Type_template; +typedef HEXSTRING H1__Type; +typedef HEXSTRING_template H1__Type_template; +typedef HEXSTRING H2__Type; +typedef HEXSTRING_template H2__Type_template; +typedef HEXSTRING H4__Type; +typedef HEXSTRING_template H4__Type_template; +typedef HEXSTRING H12__Type; +typedef HEXSTRING_template H12__Type_template; +typedef HEXSTRING H14__Type; +typedef HEXSTRING_template H14__Type_template; +typedef OCTETSTRING Octet__Type; +typedef OCTETSTRING_template Octet__Type_template; +typedef HEXSTRING HalfOctet__Type; +typedef HEXSTRING_template HalfOctet__Type_template; +typedef BOOLEAN Null__Type; +typedef BOOLEAN_template Null__Type_template; +typedef BOOLEAN Dummy__Type; +typedef BOOLEAN_template Dummy__Type_template; +typedef INTEGER UInt__Type; +typedef INTEGER_template UInt__Type_template; +typedef INTEGER UInt8__Type; +typedef INTEGER_template UInt8__Type_template; +typedef INTEGER UInt16__Type; +typedef INTEGER_template UInt16__Type_template; +typedef INTEGER UInt20__Type; +typedef INTEGER_template UInt20__Type_template; +typedef INTEGER UInt24__Type; +typedef INTEGER_template UInt24__Type_template; +typedef INTEGER UInt32__Type; +typedef INTEGER_template UInt32__Type_template; +typedef OCTETSTRING UE__TestLoopMode__Type; +typedef OCTETSTRING_template UE__TestLoopMode__Type_template; +typedef CHARSTRING Char1__Type; +typedef CHARSTRING_template Char1__Type_template; +typedef CHARSTRING Char3__Type; +typedef CHARSTRING_template Char3__Type_template; +typedef INTEGER MAC__Direction__Type; +typedef INTEGER_template MAC__Direction__Type_template; +typedef INTEGER IP__DrbId__Type; +typedef INTEGER_template IP__DrbId__Type_template; +typedef OCTETSTRING MessageAuthenticationCode; +typedef OCTETSTRING_template MessageAuthenticationCode_template; +typedef OCTETSTRING NasCount__Type; +typedef OCTETSTRING_template NasCount__Type_template; +typedef BITSTRING PdcpCountValue__Type; +typedef BITSTRING_template PdcpCountValue__Type_template; +typedef INTEGER RNTI__Value__Type; +typedef INTEGER_template RNTI__Value__Type_template; +typedef BITSTRING RNTI__B16__Type; +typedef BITSTRING_template RNTI__B16__Type_template; +typedef INTEGER LineNo__Type; +typedef INTEGER_template LineNo__Type_template; +typedef INTEGER KDF__Type; +typedef INTEGER_template KDF__Type_template; + +/* Class definitions */ + +class NameValue__Type : public Record_Type { + CHARSTRING field_Name; + CHARSTRING field_Value; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NameValue__Type(); + NameValue__Type(const NameValue__Type& other_value); + NameValue__Type(const CHARSTRING& par_Name, + const CHARSTRING& par_Value); +inline NameValue__Type& operator=(const NameValue__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NameValue__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NameValue__Type& other_value) const + { return !is_equal(&other_value); } + + inline CHARSTRING& Name() + {return field_Name;} + inline const CHARSTRING& Name() const + {return field_Name;} + inline CHARSTRING& Value() + {return field_Value;} + inline const CHARSTRING& Value() const + {return field_Value;} +Base_Type* clone() const { return new NameValue__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NameValue__Type_template : public Record_Template { +void set_specific(); +public: +NameValue__Type_template(): Record_Template() {} +NameValue__Type_template(template_sel other_value): Record_Template(other_value) {} +NameValue__Type_template(const NameValue__Type& other_value): Record_Template() { copy_value(&other_value); } +NameValue__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NameValue__Type_template(NameValue__Type_template* p_precondition, NameValue__Type_template* p_implied_template); +NameValue__Type_template(Dynamic_Match_Interface* p_dyn_match); +NameValue__Type_template(const NameValue__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NameValue__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NameValue__Type_template& operator=(template_sel other_value); +NameValue__Type_template& operator=(const NameValue__Type& other_value); +NameValue__Type_template& operator=(const OPTIONAL& other_value); +NameValue__Type_template& operator=(const NameValue__Type_template& other_value); +inline boolean match(const NameValue__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NameValue__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NameValue__Type valueof() const; +inline NameValue__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +CHARSTRING_template& Name(); +const CHARSTRING_template& Name() const; +CHARSTRING_template& Value(); +const CHARSTRING_template& Value() const; +Record_Template* create() const { return new NameValue__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NameValueList__Type : public Record_Of_Type { + +static const NameValue__Type UNBOUND_ELEM; + +public: +NameValueList__Type(): Record_Of_Type() {} +NameValueList__Type(null_type other_value): Record_Of_Type(other_value) {} +NameValueList__Type(const NameValueList__Type& other_value): Record_Of_Type(other_value) {} +~NameValueList__Type() { clean_up(); } + +inline NameValueList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NameValueList__Type& operator=(const NameValueList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NameValueList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NameValueList__Type& other_value) const { return !is_equal(&other_value); } +NameValue__Type& operator[](int index_value); +NameValue__Type& operator[](const INTEGER& index_value); +const NameValue__Type& operator[](int index_value) const; +const NameValue__Type& operator[](const INTEGER& index_value) const; +NameValueList__Type operator<<=(int rotate_count) const; +NameValueList__Type operator<<=(const INTEGER& rotate_count) const; +NameValueList__Type operator>>=(int rotate_count) const; +NameValueList__Type operator>>=(const INTEGER& rotate_count) const; + +NameValueList__Type operator+(const NameValueList__Type& other_value) const; + +NameValueList__Type operator+(const OPTIONAL& other_value) const; + +NameValueList__Type operator+(null_type) const; + +NameValueList__Type substr(int index, int returncount) const; + +NameValueList__Type replace(int index, int len, const NameValueList__Type& repl) const; + +NameValueList__Type replace(int index, int len, const NameValueList__Type_template& repl) const; + +Base_Type* clone() const { return new NameValueList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return TRUE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NameValueList__Type_template : public Set_Of_Template { +friend NameValueList__Type_template operator+(template_sel left_template, const NameValueList__Type_template& right_template); +friend NameValueList__Type_template operator+(const NameValueList__Type& left_value, const NameValueList__Type_template& right_template); +friend NameValueList__Type_template operator+(template_sel left_template, const NameValueList__Type& right_value); +friend NameValueList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NameValueList__Type_template operator+(const NameValueList__Type& left_value, template_sel right_template); + +public: +NameValueList__Type_template() {} +NameValueList__Type_template(template_sel other_value): Set_Of_Template(other_value) { check_single_selection(other_value); } +NameValueList__Type_template(null_type other_value); +NameValueList__Type_template(const NameValueList__Type& other_value) { copy_value(&other_value); } +NameValueList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NameValueList__Type_template(NameValueList__Type_template* p_precondition, NameValueList__Type_template* p_implied_template); +NameValueList__Type_template(Dynamic_Match_Interface* p_dyn_match); +NameValueList__Type_template(const NameValueList__Type_template& other_value): Set_Of_Template() { copy_template(other_value); } +~NameValueList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NameValueList__Type_template& operator=(template_sel other_value); +NameValueList__Type_template& operator=(null_type other_value); +NameValueList__Type_template& operator=(const NameValueList__Type& other_value); +NameValueList__Type_template& operator=(const OPTIONAL& other_value); +NameValueList__Type_template& operator=(const NameValueList__Type_template& other_value); + +NameValueList__Type_template operator+(const NameValueList__Type_template& other_value) const; +NameValueList__Type_template operator+(const NameValueList__Type& other_value) const; +NameValueList__Type_template operator+(template_sel other_value) const; +NameValueList__Type_template operator+(null_type) const; + +NameValue__Type_template& operator[](int index_value); +NameValue__Type_template& operator[](const INTEGER& index_value); +const NameValue__Type_template& operator[](int index_value) const; +const NameValue__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NameValueList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NameValueList__Type valueof() const; +NameValueList__Type substr(int index, int returncount) const; + +NameValueList__Type replace(int index, int len, const NameValueList__Type_template& repl) const; + +NameValueList__Type replace(int index, int len, const NameValueList__Type& repl) const; + +inline NameValueList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +NameValue__Type_template& set_item(int set_index); +inline void log_match(const NameValueList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Set_Of_Template* create() const { return new NameValueList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class IndicationAndControlMode__Type : public Enum_Type { // enum +friend class IndicationAndControlMode__Type_template; +public: +enum enum_type { enable = 0, disable = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +IndicationAndControlMode__Type(); +IndicationAndControlMode__Type(int other_value); +IndicationAndControlMode__Type(enum_type other_value); +IndicationAndControlMode__Type(const IndicationAndControlMode__Type& other_value); + +IndicationAndControlMode__Type& operator=(int other_value); +IndicationAndControlMode__Type& operator=(enum_type other_value); +IndicationAndControlMode__Type& operator=(const IndicationAndControlMode__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const IndicationAndControlMode__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const IndicationAndControlMode__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const IndicationAndControlMode__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const IndicationAndControlMode__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const IndicationAndControlMode__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const IndicationAndControlMode__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const IndicationAndControlMode__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class IndicationAndControlMode__Type_template : public Base_Template { +union { +IndicationAndControlMode__Type::enum_type single_value; +struct { +unsigned int n_values; +IndicationAndControlMode__Type_template *list_value; +} value_list; +struct { +IndicationAndControlMode__Type_template* precondition; +IndicationAndControlMode__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const IndicationAndControlMode__Type_template& other_value); + +public: +IndicationAndControlMode__Type_template(); +IndicationAndControlMode__Type_template(template_sel other_value); +IndicationAndControlMode__Type_template(int other_value); +IndicationAndControlMode__Type_template(IndicationAndControlMode__Type::enum_type other_value); +IndicationAndControlMode__Type_template(const IndicationAndControlMode__Type& other_value); +IndicationAndControlMode__Type_template(const OPTIONAL& other_value); +IndicationAndControlMode__Type_template(IndicationAndControlMode__Type_template* p_precondition, IndicationAndControlMode__Type_template* p_implied_template); +IndicationAndControlMode__Type_template(Dynamic_Match_Interface* p_dyn_match); +IndicationAndControlMode__Type_template(const IndicationAndControlMode__Type_template& other_value); +~IndicationAndControlMode__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +IndicationAndControlMode__Type_template& operator=(template_sel other_value); +IndicationAndControlMode__Type_template& operator=(int other_value); +IndicationAndControlMode__Type_template& operator=(IndicationAndControlMode__Type::enum_type other_value); +IndicationAndControlMode__Type_template& operator=(const IndicationAndControlMode__Type& other_value); +IndicationAndControlMode__Type_template& operator=(const OPTIONAL& other_value); +IndicationAndControlMode__Type_template& operator=(const IndicationAndControlMode__Type_template& other_value); + +boolean match(IndicationAndControlMode__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const IndicationAndControlMode__Type& other_value, boolean legacy = FALSE) const; +IndicationAndControlMode__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +IndicationAndControlMode__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const IndicationAndControlMode__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class SinglePLMN__TestedType : public Enum_Type { // enum +friend class SinglePLMN__TestedType_template; +public: +enum enum_type { SinglePLMN = 0, MultiPLMN = 1, MultiPLMNinPrimaryBand = 2, MultiPLMNinSecondaryBand = 3, UNKNOWN_VALUE = 4, UNBOUND_VALUE = 5 }; +private: +enum_type enum_value; + +public: +SinglePLMN__TestedType(); +SinglePLMN__TestedType(int other_value); +SinglePLMN__TestedType(enum_type other_value); +SinglePLMN__TestedType(const SinglePLMN__TestedType& other_value); + +SinglePLMN__TestedType& operator=(int other_value); +SinglePLMN__TestedType& operator=(enum_type other_value); +SinglePLMN__TestedType& operator=(const SinglePLMN__TestedType& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const SinglePLMN__TestedType& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const SinglePLMN__TestedType& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const SinglePLMN__TestedType& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const SinglePLMN__TestedType& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const SinglePLMN__TestedType& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const SinglePLMN__TestedType& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const SinglePLMN__TestedType& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class SinglePLMN__TestedType_template : public Base_Template { +union { +SinglePLMN__TestedType::enum_type single_value; +struct { +unsigned int n_values; +SinglePLMN__TestedType_template *list_value; +} value_list; +struct { +SinglePLMN__TestedType_template* precondition; +SinglePLMN__TestedType_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const SinglePLMN__TestedType_template& other_value); + +public: +SinglePLMN__TestedType_template(); +SinglePLMN__TestedType_template(template_sel other_value); +SinglePLMN__TestedType_template(int other_value); +SinglePLMN__TestedType_template(SinglePLMN__TestedType::enum_type other_value); +SinglePLMN__TestedType_template(const SinglePLMN__TestedType& other_value); +SinglePLMN__TestedType_template(const OPTIONAL& other_value); +SinglePLMN__TestedType_template(SinglePLMN__TestedType_template* p_precondition, SinglePLMN__TestedType_template* p_implied_template); +SinglePLMN__TestedType_template(Dynamic_Match_Interface* p_dyn_match); +SinglePLMN__TestedType_template(const SinglePLMN__TestedType_template& other_value); +~SinglePLMN__TestedType_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +SinglePLMN__TestedType_template& operator=(template_sel other_value); +SinglePLMN__TestedType_template& operator=(int other_value); +SinglePLMN__TestedType_template& operator=(SinglePLMN__TestedType::enum_type other_value); +SinglePLMN__TestedType_template& operator=(const SinglePLMN__TestedType& other_value); +SinglePLMN__TestedType_template& operator=(const OPTIONAL& other_value); +SinglePLMN__TestedType_template& operator=(const SinglePLMN__TestedType_template& other_value); + +boolean match(SinglePLMN__TestedType::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const SinglePLMN__TestedType& other_value, boolean legacy = FALSE) const; +SinglePLMN__TestedType::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +SinglePLMN__TestedType_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const SinglePLMN__TestedType& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class EUTRA__ATTACH__TESTED__Type : public Enum_Type { // enum +friend class EUTRA__ATTACH__TESTED__Type_template; +public: +enum enum_type { EPS__ATTACH__ONLY = 0, COMBINED__ATTACH = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +EUTRA__ATTACH__TESTED__Type(); +EUTRA__ATTACH__TESTED__Type(int other_value); +EUTRA__ATTACH__TESTED__Type(enum_type other_value); +EUTRA__ATTACH__TESTED__Type(const EUTRA__ATTACH__TESTED__Type& other_value); + +EUTRA__ATTACH__TESTED__Type& operator=(int other_value); +EUTRA__ATTACH__TESTED__Type& operator=(enum_type other_value); +EUTRA__ATTACH__TESTED__Type& operator=(const EUTRA__ATTACH__TESTED__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const EUTRA__ATTACH__TESTED__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const EUTRA__ATTACH__TESTED__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const EUTRA__ATTACH__TESTED__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const EUTRA__ATTACH__TESTED__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const EUTRA__ATTACH__TESTED__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const EUTRA__ATTACH__TESTED__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const EUTRA__ATTACH__TESTED__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class EUTRA__ATTACH__TESTED__Type_template : public Base_Template { +union { +EUTRA__ATTACH__TESTED__Type::enum_type single_value; +struct { +unsigned int n_values; +EUTRA__ATTACH__TESTED__Type_template *list_value; +} value_list; +struct { +EUTRA__ATTACH__TESTED__Type_template* precondition; +EUTRA__ATTACH__TESTED__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const EUTRA__ATTACH__TESTED__Type_template& other_value); + +public: +EUTRA__ATTACH__TESTED__Type_template(); +EUTRA__ATTACH__TESTED__Type_template(template_sel other_value); +EUTRA__ATTACH__TESTED__Type_template(int other_value); +EUTRA__ATTACH__TESTED__Type_template(EUTRA__ATTACH__TESTED__Type::enum_type other_value); +EUTRA__ATTACH__TESTED__Type_template(const EUTRA__ATTACH__TESTED__Type& other_value); +EUTRA__ATTACH__TESTED__Type_template(const OPTIONAL& other_value); +EUTRA__ATTACH__TESTED__Type_template(EUTRA__ATTACH__TESTED__Type_template* p_precondition, EUTRA__ATTACH__TESTED__Type_template* p_implied_template); +EUTRA__ATTACH__TESTED__Type_template(Dynamic_Match_Interface* p_dyn_match); +EUTRA__ATTACH__TESTED__Type_template(const EUTRA__ATTACH__TESTED__Type_template& other_value); +~EUTRA__ATTACH__TESTED__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +EUTRA__ATTACH__TESTED__Type_template& operator=(template_sel other_value); +EUTRA__ATTACH__TESTED__Type_template& operator=(int other_value); +EUTRA__ATTACH__TESTED__Type_template& operator=(EUTRA__ATTACH__TESTED__Type::enum_type other_value); +EUTRA__ATTACH__TESTED__Type_template& operator=(const EUTRA__ATTACH__TESTED__Type& other_value); +EUTRA__ATTACH__TESTED__Type_template& operator=(const OPTIONAL& other_value); +EUTRA__ATTACH__TESTED__Type_template& operator=(const EUTRA__ATTACH__TESTED__Type_template& other_value); + +boolean match(EUTRA__ATTACH__TESTED__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const EUTRA__ATTACH__TESTED__Type& other_value, boolean legacy = FALSE) const; +EUTRA__ATTACH__TESTED__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +EUTRA__ATTACH__TESTED__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const EUTRA__ATTACH__TESTED__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class EUTRA__FDD__TDD__Mode__Type : public Enum_Type { // enum +friend class EUTRA__FDD__TDD__Mode__Type_template; +public: +enum enum_type { FDD = 0, TDD = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +EUTRA__FDD__TDD__Mode__Type(); +EUTRA__FDD__TDD__Mode__Type(int other_value); +EUTRA__FDD__TDD__Mode__Type(enum_type other_value); +EUTRA__FDD__TDD__Mode__Type(const EUTRA__FDD__TDD__Mode__Type& other_value); + +EUTRA__FDD__TDD__Mode__Type& operator=(int other_value); +EUTRA__FDD__TDD__Mode__Type& operator=(enum_type other_value); +EUTRA__FDD__TDD__Mode__Type& operator=(const EUTRA__FDD__TDD__Mode__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const EUTRA__FDD__TDD__Mode__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const EUTRA__FDD__TDD__Mode__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const EUTRA__FDD__TDD__Mode__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const EUTRA__FDD__TDD__Mode__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const EUTRA__FDD__TDD__Mode__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const EUTRA__FDD__TDD__Mode__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const EUTRA__FDD__TDD__Mode__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class EUTRA__FDD__TDD__Mode__Type_template : public Base_Template { +union { +EUTRA__FDD__TDD__Mode__Type::enum_type single_value; +struct { +unsigned int n_values; +EUTRA__FDD__TDD__Mode__Type_template *list_value; +} value_list; +struct { +EUTRA__FDD__TDD__Mode__Type_template* precondition; +EUTRA__FDD__TDD__Mode__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const EUTRA__FDD__TDD__Mode__Type_template& other_value); + +public: +EUTRA__FDD__TDD__Mode__Type_template(); +EUTRA__FDD__TDD__Mode__Type_template(template_sel other_value); +EUTRA__FDD__TDD__Mode__Type_template(int other_value); +EUTRA__FDD__TDD__Mode__Type_template(EUTRA__FDD__TDD__Mode__Type::enum_type other_value); +EUTRA__FDD__TDD__Mode__Type_template(const EUTRA__FDD__TDD__Mode__Type& other_value); +EUTRA__FDD__TDD__Mode__Type_template(const OPTIONAL& other_value); +EUTRA__FDD__TDD__Mode__Type_template(EUTRA__FDD__TDD__Mode__Type_template* p_precondition, EUTRA__FDD__TDD__Mode__Type_template* p_implied_template); +EUTRA__FDD__TDD__Mode__Type_template(Dynamic_Match_Interface* p_dyn_match); +EUTRA__FDD__TDD__Mode__Type_template(const EUTRA__FDD__TDD__Mode__Type_template& other_value); +~EUTRA__FDD__TDD__Mode__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +EUTRA__FDD__TDD__Mode__Type_template& operator=(template_sel other_value); +EUTRA__FDD__TDD__Mode__Type_template& operator=(int other_value); +EUTRA__FDD__TDD__Mode__Type_template& operator=(EUTRA__FDD__TDD__Mode__Type::enum_type other_value); +EUTRA__FDD__TDD__Mode__Type_template& operator=(const EUTRA__FDD__TDD__Mode__Type& other_value); +EUTRA__FDD__TDD__Mode__Type_template& operator=(const OPTIONAL& other_value); +EUTRA__FDD__TDD__Mode__Type_template& operator=(const EUTRA__FDD__TDD__Mode__Type_template& other_value); + +boolean match(EUTRA__FDD__TDD__Mode__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const EUTRA__FDD__TDD__Mode__Type& other_value, boolean legacy = FALSE) const; +EUTRA__FDD__TDD__Mode__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +EUTRA__FDD__TDD__Mode__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const EUTRA__FDD__TDD__Mode__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class UTRAN__FDD__TDD__Type : public Enum_Type { // enum +friend class UTRAN__FDD__TDD__Type_template; +public: +enum enum_type { UTRAN__FDD = 0, UTRAN__TDD = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +UTRAN__FDD__TDD__Type(); +UTRAN__FDD__TDD__Type(int other_value); +UTRAN__FDD__TDD__Type(enum_type other_value); +UTRAN__FDD__TDD__Type(const UTRAN__FDD__TDD__Type& other_value); + +UTRAN__FDD__TDD__Type& operator=(int other_value); +UTRAN__FDD__TDD__Type& operator=(enum_type other_value); +UTRAN__FDD__TDD__Type& operator=(const UTRAN__FDD__TDD__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const UTRAN__FDD__TDD__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const UTRAN__FDD__TDD__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const UTRAN__FDD__TDD__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const UTRAN__FDD__TDD__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const UTRAN__FDD__TDD__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const UTRAN__FDD__TDD__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const UTRAN__FDD__TDD__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class UTRAN__FDD__TDD__Type_template : public Base_Template { +union { +UTRAN__FDD__TDD__Type::enum_type single_value; +struct { +unsigned int n_values; +UTRAN__FDD__TDD__Type_template *list_value; +} value_list; +struct { +UTRAN__FDD__TDD__Type_template* precondition; +UTRAN__FDD__TDD__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const UTRAN__FDD__TDD__Type_template& other_value); + +public: +UTRAN__FDD__TDD__Type_template(); +UTRAN__FDD__TDD__Type_template(template_sel other_value); +UTRAN__FDD__TDD__Type_template(int other_value); +UTRAN__FDD__TDD__Type_template(UTRAN__FDD__TDD__Type::enum_type other_value); +UTRAN__FDD__TDD__Type_template(const UTRAN__FDD__TDD__Type& other_value); +UTRAN__FDD__TDD__Type_template(const OPTIONAL& other_value); +UTRAN__FDD__TDD__Type_template(UTRAN__FDD__TDD__Type_template* p_precondition, UTRAN__FDD__TDD__Type_template* p_implied_template); +UTRAN__FDD__TDD__Type_template(Dynamic_Match_Interface* p_dyn_match); +UTRAN__FDD__TDD__Type_template(const UTRAN__FDD__TDD__Type_template& other_value); +~UTRAN__FDD__TDD__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +UTRAN__FDD__TDD__Type_template& operator=(template_sel other_value); +UTRAN__FDD__TDD__Type_template& operator=(int other_value); +UTRAN__FDD__TDD__Type_template& operator=(UTRAN__FDD__TDD__Type::enum_type other_value); +UTRAN__FDD__TDD__Type_template& operator=(const UTRAN__FDD__TDD__Type& other_value); +UTRAN__FDD__TDD__Type_template& operator=(const OPTIONAL& other_value); +UTRAN__FDD__TDD__Type_template& operator=(const UTRAN__FDD__TDD__Type_template& other_value); + +boolean match(UTRAN__FDD__TDD__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const UTRAN__FDD__TDD__Type& other_value, boolean legacy = FALSE) const; +UTRAN__FDD__TDD__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +UTRAN__FDD__TDD__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const UTRAN__FDD__TDD__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class RATComb__Tested__Type : public Enum_Type { // enum +friend class RATComb__Tested__Type_template; +public: +enum enum_type { EUTRA__UTRA = 0, EUTRA__GERAN = 1, EUTRA__Only = 2, UNKNOWN_VALUE = 3, UNBOUND_VALUE = 4 }; +private: +enum_type enum_value; + +public: +RATComb__Tested__Type(); +RATComb__Tested__Type(int other_value); +RATComb__Tested__Type(enum_type other_value); +RATComb__Tested__Type(const RATComb__Tested__Type& other_value); + +RATComb__Tested__Type& operator=(int other_value); +RATComb__Tested__Type& operator=(enum_type other_value); +RATComb__Tested__Type& operator=(const RATComb__Tested__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const RATComb__Tested__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const RATComb__Tested__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const RATComb__Tested__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const RATComb__Tested__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const RATComb__Tested__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const RATComb__Tested__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const RATComb__Tested__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class RATComb__Tested__Type_template : public Base_Template { +union { +RATComb__Tested__Type::enum_type single_value; +struct { +unsigned int n_values; +RATComb__Tested__Type_template *list_value; +} value_list; +struct { +RATComb__Tested__Type_template* precondition; +RATComb__Tested__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const RATComb__Tested__Type_template& other_value); + +public: +RATComb__Tested__Type_template(); +RATComb__Tested__Type_template(template_sel other_value); +RATComb__Tested__Type_template(int other_value); +RATComb__Tested__Type_template(RATComb__Tested__Type::enum_type other_value); +RATComb__Tested__Type_template(const RATComb__Tested__Type& other_value); +RATComb__Tested__Type_template(const OPTIONAL& other_value); +RATComb__Tested__Type_template(RATComb__Tested__Type_template* p_precondition, RATComb__Tested__Type_template* p_implied_template); +RATComb__Tested__Type_template(Dynamic_Match_Interface* p_dyn_match); +RATComb__Tested__Type_template(const RATComb__Tested__Type_template& other_value); +~RATComb__Tested__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +RATComb__Tested__Type_template& operator=(template_sel other_value); +RATComb__Tested__Type_template& operator=(int other_value); +RATComb__Tested__Type_template& operator=(RATComb__Tested__Type::enum_type other_value); +RATComb__Tested__Type_template& operator=(const RATComb__Tested__Type& other_value); +RATComb__Tested__Type_template& operator=(const OPTIONAL& other_value); +RATComb__Tested__Type_template& operator=(const RATComb__Tested__Type_template& other_value); + +boolean match(RATComb__Tested__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const RATComb__Tested__Type& other_value, boolean legacy = FALSE) const; +RATComb__Tested__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +RATComb__Tested__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const RATComb__Tested__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class RRCConnectionReleaseRequired__Type : public Enum_Type { // enum +friend class RRCConnectionReleaseRequired__Type_template; +public: +enum enum_type { rrcConnectionRelease = 0, noRrcConnectionRelease = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +RRCConnectionReleaseRequired__Type(); +RRCConnectionReleaseRequired__Type(int other_value); +RRCConnectionReleaseRequired__Type(enum_type other_value); +RRCConnectionReleaseRequired__Type(const RRCConnectionReleaseRequired__Type& other_value); + +RRCConnectionReleaseRequired__Type& operator=(int other_value); +RRCConnectionReleaseRequired__Type& operator=(enum_type other_value); +RRCConnectionReleaseRequired__Type& operator=(const RRCConnectionReleaseRequired__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const RRCConnectionReleaseRequired__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const RRCConnectionReleaseRequired__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const RRCConnectionReleaseRequired__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const RRCConnectionReleaseRequired__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const RRCConnectionReleaseRequired__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const RRCConnectionReleaseRequired__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const RRCConnectionReleaseRequired__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class RRCConnectionReleaseRequired__Type_template : public Base_Template { +union { +RRCConnectionReleaseRequired__Type::enum_type single_value; +struct { +unsigned int n_values; +RRCConnectionReleaseRequired__Type_template *list_value; +} value_list; +struct { +RRCConnectionReleaseRequired__Type_template* precondition; +RRCConnectionReleaseRequired__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const RRCConnectionReleaseRequired__Type_template& other_value); + +public: +RRCConnectionReleaseRequired__Type_template(); +RRCConnectionReleaseRequired__Type_template(template_sel other_value); +RRCConnectionReleaseRequired__Type_template(int other_value); +RRCConnectionReleaseRequired__Type_template(RRCConnectionReleaseRequired__Type::enum_type other_value); +RRCConnectionReleaseRequired__Type_template(const RRCConnectionReleaseRequired__Type& other_value); +RRCConnectionReleaseRequired__Type_template(const OPTIONAL& other_value); +RRCConnectionReleaseRequired__Type_template(RRCConnectionReleaseRequired__Type_template* p_precondition, RRCConnectionReleaseRequired__Type_template* p_implied_template); +RRCConnectionReleaseRequired__Type_template(Dynamic_Match_Interface* p_dyn_match); +RRCConnectionReleaseRequired__Type_template(const RRCConnectionReleaseRequired__Type_template& other_value); +~RRCConnectionReleaseRequired__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +RRCConnectionReleaseRequired__Type_template& operator=(template_sel other_value); +RRCConnectionReleaseRequired__Type_template& operator=(int other_value); +RRCConnectionReleaseRequired__Type_template& operator=(RRCConnectionReleaseRequired__Type::enum_type other_value); +RRCConnectionReleaseRequired__Type_template& operator=(const RRCConnectionReleaseRequired__Type& other_value); +RRCConnectionReleaseRequired__Type_template& operator=(const OPTIONAL& other_value); +RRCConnectionReleaseRequired__Type_template& operator=(const RRCConnectionReleaseRequired__Type_template& other_value); + +boolean match(RRCConnectionReleaseRequired__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const RRCConnectionReleaseRequired__Type& other_value, boolean legacy = FALSE) const; +RRCConnectionReleaseRequired__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +RRCConnectionReleaseRequired__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const RRCConnectionReleaseRequired__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NTN__Satellite__Type : public Enum_Type { // enum +friend class NTN__Satellite__Type_template; +public: +enum enum_type { ntn__None = 0, ntn__GSO = 1, ntn__NGSO = 2, UNKNOWN_VALUE = 3, UNBOUND_VALUE = 4 }; +private: +enum_type enum_value; + +public: +NTN__Satellite__Type(); +NTN__Satellite__Type(int other_value); +NTN__Satellite__Type(enum_type other_value); +NTN__Satellite__Type(const NTN__Satellite__Type& other_value); + +NTN__Satellite__Type& operator=(int other_value); +NTN__Satellite__Type& operator=(enum_type other_value); +NTN__Satellite__Type& operator=(const NTN__Satellite__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NTN__Satellite__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NTN__Satellite__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NTN__Satellite__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NTN__Satellite__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NTN__Satellite__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NTN__Satellite__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NTN__Satellite__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NTN__Satellite__Type_template : public Base_Template { +union { +NTN__Satellite__Type::enum_type single_value; +struct { +unsigned int n_values; +NTN__Satellite__Type_template *list_value; +} value_list; +struct { +NTN__Satellite__Type_template* precondition; +NTN__Satellite__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NTN__Satellite__Type_template& other_value); + +public: +NTN__Satellite__Type_template(); +NTN__Satellite__Type_template(template_sel other_value); +NTN__Satellite__Type_template(int other_value); +NTN__Satellite__Type_template(NTN__Satellite__Type::enum_type other_value); +NTN__Satellite__Type_template(const NTN__Satellite__Type& other_value); +NTN__Satellite__Type_template(const OPTIONAL& other_value); +NTN__Satellite__Type_template(NTN__Satellite__Type_template* p_precondition, NTN__Satellite__Type_template* p_implied_template); +NTN__Satellite__Type_template(Dynamic_Match_Interface* p_dyn_match); +NTN__Satellite__Type_template(const NTN__Satellite__Type_template& other_value); +~NTN__Satellite__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NTN__Satellite__Type_template& operator=(template_sel other_value); +NTN__Satellite__Type_template& operator=(int other_value); +NTN__Satellite__Type_template& operator=(NTN__Satellite__Type::enum_type other_value); +NTN__Satellite__Type_template& operator=(const NTN__Satellite__Type& other_value); +NTN__Satellite__Type_template& operator=(const OPTIONAL& other_value); +NTN__Satellite__Type_template& operator=(const NTN__Satellite__Type_template& other_value); + +boolean match(NTN__Satellite__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NTN__Satellite__Type& other_value, boolean legacy = FALSE) const; +NTN__Satellite__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NTN__Satellite__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NTN__Satellite__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NGC__CellId__Type : public Enum_Type { // enum +friend class NGC__CellId__Type_template; +public: +enum enum_type { ngc__Cell__NonSpecific = 0, ngc__CellA = 1, ngc__CellB = 2, ngc__CellC = 3, ngc__CellD = 4, ngc__CellE = 5, ngc__CellF = 6, ngc__CellG = 7, ngc__CellH = 8, ngc__CellI = 9, ngc__CellJ = 10, UNKNOWN_VALUE = 11, UNBOUND_VALUE = 12 }; +private: +enum_type enum_value; + +public: +NGC__CellId__Type(); +NGC__CellId__Type(int other_value); +NGC__CellId__Type(enum_type other_value); +NGC__CellId__Type(const NGC__CellId__Type& other_value); + +NGC__CellId__Type& operator=(int other_value); +NGC__CellId__Type& operator=(enum_type other_value); +NGC__CellId__Type& operator=(const NGC__CellId__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NGC__CellId__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NGC__CellId__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NGC__CellId__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NGC__CellId__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NGC__CellId__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NGC__CellId__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NGC__CellId__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NGC__CellId__Type_template : public Base_Template { +union { +NGC__CellId__Type::enum_type single_value; +struct { +unsigned int n_values; +NGC__CellId__Type_template *list_value; +} value_list; +struct { +NGC__CellId__Type_template* precondition; +NGC__CellId__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NGC__CellId__Type_template& other_value); + +public: +NGC__CellId__Type_template(); +NGC__CellId__Type_template(template_sel other_value); +NGC__CellId__Type_template(int other_value); +NGC__CellId__Type_template(NGC__CellId__Type::enum_type other_value); +NGC__CellId__Type_template(const NGC__CellId__Type& other_value); +NGC__CellId__Type_template(const OPTIONAL& other_value); +NGC__CellId__Type_template(NGC__CellId__Type_template* p_precondition, NGC__CellId__Type_template* p_implied_template); +NGC__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match); +NGC__CellId__Type_template(const NGC__CellId__Type_template& other_value); +~NGC__CellId__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NGC__CellId__Type_template& operator=(template_sel other_value); +NGC__CellId__Type_template& operator=(int other_value); +NGC__CellId__Type_template& operator=(NGC__CellId__Type::enum_type other_value); +NGC__CellId__Type_template& operator=(const NGC__CellId__Type& other_value); +NGC__CellId__Type_template& operator=(const OPTIONAL& other_value); +NGC__CellId__Type_template& operator=(const NGC__CellId__Type_template& other_value); + +boolean match(NGC__CellId__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NGC__CellId__Type& other_value, boolean legacy = FALSE) const; +NGC__CellId__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NGC__CellId__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NGC__CellId__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NR__CellId__Type : public Enum_Type { // enum +friend class NR__CellId__Type_template; +public: +enum enum_type { nr__Cell__NonSpecific = 0, nr__Cell1 = 1, nr__Cell2 = 2, nr__Cell3 = 3, nr__Cell4 = 4, nr__Cell6 = 5, nr__Cell10 = 6, nr__Cell11 = 7, nr__Cell12 = 8, nr__Cell13 = 9, nr__Cell14 = 10, nr__Cell23 = 11, nr__Cell28 = 12, nr__Cell29 = 13, nr__Cell30 = 14, nr__Cell31 = 15, UNKNOWN_VALUE = 16, UNBOUND_VALUE = 17 }; +private: +enum_type enum_value; + +public: +NR__CellId__Type(); +NR__CellId__Type(int other_value); +NR__CellId__Type(enum_type other_value); +NR__CellId__Type(const NR__CellId__Type& other_value); + +NR__CellId__Type& operator=(int other_value); +NR__CellId__Type& operator=(enum_type other_value); +NR__CellId__Type& operator=(const NR__CellId__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NR__CellId__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NR__CellId__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NR__CellId__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NR__CellId__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NR__CellId__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NR__CellId__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NR__CellId__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NR__CellId__Type_template : public Base_Template { +union { +NR__CellId__Type::enum_type single_value; +struct { +unsigned int n_values; +NR__CellId__Type_template *list_value; +} value_list; +struct { +NR__CellId__Type_template* precondition; +NR__CellId__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NR__CellId__Type_template& other_value); + +public: +NR__CellId__Type_template(); +NR__CellId__Type_template(template_sel other_value); +NR__CellId__Type_template(int other_value); +NR__CellId__Type_template(NR__CellId__Type::enum_type other_value); +NR__CellId__Type_template(const NR__CellId__Type& other_value); +NR__CellId__Type_template(const OPTIONAL& other_value); +NR__CellId__Type_template(NR__CellId__Type_template* p_precondition, NR__CellId__Type_template* p_implied_template); +NR__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__CellId__Type_template(const NR__CellId__Type_template& other_value); +~NR__CellId__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NR__CellId__Type_template& operator=(template_sel other_value); +NR__CellId__Type_template& operator=(int other_value); +NR__CellId__Type_template& operator=(NR__CellId__Type::enum_type other_value); +NR__CellId__Type_template& operator=(const NR__CellId__Type& other_value); +NR__CellId__Type_template& operator=(const OPTIONAL& other_value); +NR__CellId__Type_template& operator=(const NR__CellId__Type_template& other_value); + +boolean match(NR__CellId__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NR__CellId__Type& other_value, boolean legacy = FALSE) const; +NR__CellId__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NR__CellId__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NR__CellId__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NR__CellIdList__Type : public Record_Of_Type { + +static const NR__CellId__Type UNBOUND_ELEM; + +public: +NR__CellIdList__Type(): Record_Of_Type() {} +NR__CellIdList__Type(null_type other_value): Record_Of_Type(other_value) {} +NR__CellIdList__Type(const NR__CellIdList__Type& other_value): Record_Of_Type(other_value) {} +~NR__CellIdList__Type() { clean_up(); } + +inline NR__CellIdList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NR__CellIdList__Type& operator=(const NR__CellIdList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NR__CellIdList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NR__CellIdList__Type& other_value) const { return !is_equal(&other_value); } +NR__CellId__Type& operator[](int index_value); +NR__CellId__Type& operator[](const INTEGER& index_value); +const NR__CellId__Type& operator[](int index_value) const; +const NR__CellId__Type& operator[](const INTEGER& index_value) const; +NR__CellIdList__Type operator<<=(int rotate_count) const; +NR__CellIdList__Type operator<<=(const INTEGER& rotate_count) const; +NR__CellIdList__Type operator>>=(int rotate_count) const; +NR__CellIdList__Type operator>>=(const INTEGER& rotate_count) const; + +NR__CellIdList__Type operator+(const NR__CellIdList__Type& other_value) const; + +NR__CellIdList__Type operator+(const OPTIONAL& other_value) const; + +NR__CellIdList__Type operator+(null_type) const; + +NR__CellIdList__Type substr(int index, int returncount) const; + +NR__CellIdList__Type replace(int index, int len, const NR__CellIdList__Type& repl) const; + +NR__CellIdList__Type replace(int index, int len, const NR__CellIdList__Type_template& repl) const; + +Base_Type* clone() const { return new NR__CellIdList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NR__CellIdList__Type_template : public Record_Of_Template { +friend NR__CellIdList__Type_template operator+(template_sel left_template, const NR__CellIdList__Type_template& right_template); +friend NR__CellIdList__Type_template operator+(const NR__CellIdList__Type& left_value, const NR__CellIdList__Type_template& right_template); +friend NR__CellIdList__Type_template operator+(template_sel left_template, const NR__CellIdList__Type& right_value); +friend NR__CellIdList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NR__CellIdList__Type_template operator+(const NR__CellIdList__Type& left_value, template_sel right_template); + +public: +NR__CellIdList__Type_template() {} +NR__CellIdList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NR__CellIdList__Type_template(null_type other_value); +NR__CellIdList__Type_template(const NR__CellIdList__Type& other_value) { copy_value(&other_value); } +NR__CellIdList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NR__CellIdList__Type_template(NR__CellIdList__Type_template* p_precondition, NR__CellIdList__Type_template* p_implied_template); +NR__CellIdList__Type_template(Dynamic_Match_Interface* p_dyn_match); +NR__CellIdList__Type_template(const NR__CellIdList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NR__CellIdList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NR__CellIdList__Type_template& operator=(template_sel other_value); +NR__CellIdList__Type_template& operator=(null_type other_value); +NR__CellIdList__Type_template& operator=(const NR__CellIdList__Type& other_value); +NR__CellIdList__Type_template& operator=(const OPTIONAL& other_value); +NR__CellIdList__Type_template& operator=(const NR__CellIdList__Type_template& other_value); + +NR__CellIdList__Type_template operator+(const NR__CellIdList__Type_template& other_value) const; +NR__CellIdList__Type_template operator+(const NR__CellIdList__Type& other_value) const; +NR__CellIdList__Type_template operator+(template_sel other_value) const; +NR__CellIdList__Type_template operator+(null_type) const; + +NR__CellId__Type_template& operator[](int index_value); +NR__CellId__Type_template& operator[](const INTEGER& index_value); +const NR__CellId__Type_template& operator[](int index_value) const; +const NR__CellId__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NR__CellIdList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NR__CellIdList__Type valueof() const; +NR__CellIdList__Type substr(int index, int returncount) const; + +NR__CellIdList__Type replace(int index, int len, const NR__CellIdList__Type_template& repl) const; + +NR__CellIdList__Type replace(int index, int len, const NR__CellIdList__Type& repl) const; + +inline NR__CellIdList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NR__CellIdList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NR__CellIdList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class EUTRA__CellId__Type : public Enum_Type { // enum +friend class EUTRA__CellId__Type_template; +public: +enum enum_type { eutra__Cell__NonSpecific = 0, eutra__Cell1 = 1, eutra__Cell2 = 2, eutra__Cell3 = 3, eutra__Cell4 = 4, eutra__Cell6 = 5, eutra__Cell10 = 6, eutra__Cell11 = 7, eutra__Cell12 = 8, eutra__Cell13 = 9, eutra__Cell14 = 10, eutra__Cell23 = 11, eutra__Cell28 = 12, eutra__Cell29 = 13, eutra__Cell30 = 14, eutra__Cell31 = 15, eutra__CellA = 16, eutra__CellB = 17, eutra__CellC = 18, eutra__CellD = 19, eutra__CellE = 20, eutra__CellG = 21, eutra__CellH = 22, eutra__CellI = 23, eutra__CellJ = 24, eutra__CellK = 25, eutra__CellL = 26, eutra__CellM = 27, UNKNOWN_VALUE = 28, UNBOUND_VALUE = 29 }; +private: +enum_type enum_value; + +public: +EUTRA__CellId__Type(); +EUTRA__CellId__Type(int other_value); +EUTRA__CellId__Type(enum_type other_value); +EUTRA__CellId__Type(const EUTRA__CellId__Type& other_value); + +EUTRA__CellId__Type& operator=(int other_value); +EUTRA__CellId__Type& operator=(enum_type other_value); +EUTRA__CellId__Type& operator=(const EUTRA__CellId__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const EUTRA__CellId__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const EUTRA__CellId__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const EUTRA__CellId__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const EUTRA__CellId__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const EUTRA__CellId__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const EUTRA__CellId__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const EUTRA__CellId__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class EUTRA__CellId__Type_template : public Base_Template { +union { +EUTRA__CellId__Type::enum_type single_value; +struct { +unsigned int n_values; +EUTRA__CellId__Type_template *list_value; +} value_list; +struct { +EUTRA__CellId__Type_template* precondition; +EUTRA__CellId__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const EUTRA__CellId__Type_template& other_value); + +public: +EUTRA__CellId__Type_template(); +EUTRA__CellId__Type_template(template_sel other_value); +EUTRA__CellId__Type_template(int other_value); +EUTRA__CellId__Type_template(EUTRA__CellId__Type::enum_type other_value); +EUTRA__CellId__Type_template(const EUTRA__CellId__Type& other_value); +EUTRA__CellId__Type_template(const OPTIONAL& other_value); +EUTRA__CellId__Type_template(EUTRA__CellId__Type_template* p_precondition, EUTRA__CellId__Type_template* p_implied_template); +EUTRA__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match); +EUTRA__CellId__Type_template(const EUTRA__CellId__Type_template& other_value); +~EUTRA__CellId__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +EUTRA__CellId__Type_template& operator=(template_sel other_value); +EUTRA__CellId__Type_template& operator=(int other_value); +EUTRA__CellId__Type_template& operator=(EUTRA__CellId__Type::enum_type other_value); +EUTRA__CellId__Type_template& operator=(const EUTRA__CellId__Type& other_value); +EUTRA__CellId__Type_template& operator=(const OPTIONAL& other_value); +EUTRA__CellId__Type_template& operator=(const EUTRA__CellId__Type_template& other_value); + +boolean match(EUTRA__CellId__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const EUTRA__CellId__Type& other_value, boolean legacy = FALSE) const; +EUTRA__CellId__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +EUTRA__CellId__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const EUTRA__CellId__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class EUTRA__CellIdList__Type : public Record_Of_Type { + +static const EUTRA__CellId__Type UNBOUND_ELEM; + +public: +EUTRA__CellIdList__Type(): Record_Of_Type() {} +EUTRA__CellIdList__Type(null_type other_value): Record_Of_Type(other_value) {} +EUTRA__CellIdList__Type(const EUTRA__CellIdList__Type& other_value): Record_Of_Type(other_value) {} +~EUTRA__CellIdList__Type() { clean_up(); } + +inline EUTRA__CellIdList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline EUTRA__CellIdList__Type& operator=(const EUTRA__CellIdList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EUTRA__CellIdList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const EUTRA__CellIdList__Type& other_value) const { return !is_equal(&other_value); } +EUTRA__CellId__Type& operator[](int index_value); +EUTRA__CellId__Type& operator[](const INTEGER& index_value); +const EUTRA__CellId__Type& operator[](int index_value) const; +const EUTRA__CellId__Type& operator[](const INTEGER& index_value) const; +EUTRA__CellIdList__Type operator<<=(int rotate_count) const; +EUTRA__CellIdList__Type operator<<=(const INTEGER& rotate_count) const; +EUTRA__CellIdList__Type operator>>=(int rotate_count) const; +EUTRA__CellIdList__Type operator>>=(const INTEGER& rotate_count) const; + +EUTRA__CellIdList__Type operator+(const EUTRA__CellIdList__Type& other_value) const; + +EUTRA__CellIdList__Type operator+(const OPTIONAL& other_value) const; + +EUTRA__CellIdList__Type operator+(null_type) const; + +EUTRA__CellIdList__Type substr(int index, int returncount) const; + +EUTRA__CellIdList__Type replace(int index, int len, const EUTRA__CellIdList__Type& repl) const; + +EUTRA__CellIdList__Type replace(int index, int len, const EUTRA__CellIdList__Type_template& repl) const; + +Base_Type* clone() const { return new EUTRA__CellIdList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class EUTRA__CellIdList__Type_template : public Record_Of_Template { +friend EUTRA__CellIdList__Type_template operator+(template_sel left_template, const EUTRA__CellIdList__Type_template& right_template); +friend EUTRA__CellIdList__Type_template operator+(const EUTRA__CellIdList__Type& left_value, const EUTRA__CellIdList__Type_template& right_template); +friend EUTRA__CellIdList__Type_template operator+(template_sel left_template, const EUTRA__CellIdList__Type& right_value); +friend EUTRA__CellIdList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend EUTRA__CellIdList__Type_template operator+(const EUTRA__CellIdList__Type& left_value, template_sel right_template); + +public: +EUTRA__CellIdList__Type_template() {} +EUTRA__CellIdList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +EUTRA__CellIdList__Type_template(null_type other_value); +EUTRA__CellIdList__Type_template(const EUTRA__CellIdList__Type& other_value) { copy_value(&other_value); } +EUTRA__CellIdList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +EUTRA__CellIdList__Type_template(EUTRA__CellIdList__Type_template* p_precondition, EUTRA__CellIdList__Type_template* p_implied_template); +EUTRA__CellIdList__Type_template(Dynamic_Match_Interface* p_dyn_match); +EUTRA__CellIdList__Type_template(const EUTRA__CellIdList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~EUTRA__CellIdList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EUTRA__CellIdList__Type_template& operator=(template_sel other_value); +EUTRA__CellIdList__Type_template& operator=(null_type other_value); +EUTRA__CellIdList__Type_template& operator=(const EUTRA__CellIdList__Type& other_value); +EUTRA__CellIdList__Type_template& operator=(const OPTIONAL& other_value); +EUTRA__CellIdList__Type_template& operator=(const EUTRA__CellIdList__Type_template& other_value); + +EUTRA__CellIdList__Type_template operator+(const EUTRA__CellIdList__Type_template& other_value) const; +EUTRA__CellIdList__Type_template operator+(const EUTRA__CellIdList__Type& other_value) const; +EUTRA__CellIdList__Type_template operator+(template_sel other_value) const; +EUTRA__CellIdList__Type_template operator+(null_type) const; + +EUTRA__CellId__Type_template& operator[](int index_value); +EUTRA__CellId__Type_template& operator[](const INTEGER& index_value); +const EUTRA__CellId__Type_template& operator[](int index_value) const; +const EUTRA__CellId__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const EUTRA__CellIdList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +EUTRA__CellIdList__Type valueof() const; +EUTRA__CellIdList__Type substr(int index, int returncount) const; + +EUTRA__CellIdList__Type replace(int index, int len, const EUTRA__CellIdList__Type_template& repl) const; + +EUTRA__CellIdList__Type replace(int index, int len, const EUTRA__CellIdList__Type& repl) const; + +inline EUTRA__CellIdList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const EUTRA__CellIdList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new EUTRA__CellIdList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class UTRAN__CellId__Type : public Enum_Type { // enum +friend class UTRAN__CellId__Type_template; +public: +enum enum_type { utran__CellDedicated = -1, utran__Cell5 = 5, utran__Cell7 = 7, utran__Cell8 = 8, utran__Cell9 = 9, utran34__Cell1 = 1000, utran34__Cell2 = 1001, utran34__Cell3 = 1002, utran34__Cell4 = 1003, utran34__Cell5 = 1004, utran34__Cell6 = 1005, utran34__Cell7 = 1006, utran34__Cell8 = 1007, utran34__CellA = 2000, utran34__CellB = 2001, utran34__CellC = 2002, utran34__CellD = 2003, utran34__CellE = 2004, utran34__CellF = 2005, utran34__CellG = 2006, utran34__CellH = 2007, UNKNOWN_VALUE = 0, UNBOUND_VALUE = 1 }; +private: +enum_type enum_value; + +public: +UTRAN__CellId__Type(); +UTRAN__CellId__Type(int other_value); +UTRAN__CellId__Type(enum_type other_value); +UTRAN__CellId__Type(const UTRAN__CellId__Type& other_value); + +UTRAN__CellId__Type& operator=(int other_value); +UTRAN__CellId__Type& operator=(enum_type other_value); +UTRAN__CellId__Type& operator=(const UTRAN__CellId__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const UTRAN__CellId__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const UTRAN__CellId__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const UTRAN__CellId__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const UTRAN__CellId__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const UTRAN__CellId__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const UTRAN__CellId__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const UTRAN__CellId__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class UTRAN__CellId__Type_template : public Base_Template { +union { +UTRAN__CellId__Type::enum_type single_value; +struct { +unsigned int n_values; +UTRAN__CellId__Type_template *list_value; +} value_list; +struct { +UTRAN__CellId__Type_template* precondition; +UTRAN__CellId__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const UTRAN__CellId__Type_template& other_value); + +public: +UTRAN__CellId__Type_template(); +UTRAN__CellId__Type_template(template_sel other_value); +UTRAN__CellId__Type_template(int other_value); +UTRAN__CellId__Type_template(UTRAN__CellId__Type::enum_type other_value); +UTRAN__CellId__Type_template(const UTRAN__CellId__Type& other_value); +UTRAN__CellId__Type_template(const OPTIONAL& other_value); +UTRAN__CellId__Type_template(UTRAN__CellId__Type_template* p_precondition, UTRAN__CellId__Type_template* p_implied_template); +UTRAN__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match); +UTRAN__CellId__Type_template(const UTRAN__CellId__Type_template& other_value); +~UTRAN__CellId__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +UTRAN__CellId__Type_template& operator=(template_sel other_value); +UTRAN__CellId__Type_template& operator=(int other_value); +UTRAN__CellId__Type_template& operator=(UTRAN__CellId__Type::enum_type other_value); +UTRAN__CellId__Type_template& operator=(const UTRAN__CellId__Type& other_value); +UTRAN__CellId__Type_template& operator=(const OPTIONAL& other_value); +UTRAN__CellId__Type_template& operator=(const UTRAN__CellId__Type_template& other_value); + +boolean match(UTRAN__CellId__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const UTRAN__CellId__Type& other_value, boolean legacy = FALSE) const; +UTRAN__CellId__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +UTRAN__CellId__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const UTRAN__CellId__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class UTRAN__CellIdList__Type : public Record_Of_Type { + +static const UTRAN__CellId__Type UNBOUND_ELEM; + +public: +UTRAN__CellIdList__Type(): Record_Of_Type() {} +UTRAN__CellIdList__Type(null_type other_value): Record_Of_Type(other_value) {} +UTRAN__CellIdList__Type(const UTRAN__CellIdList__Type& other_value): Record_Of_Type(other_value) {} +~UTRAN__CellIdList__Type() { clean_up(); } + +inline UTRAN__CellIdList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline UTRAN__CellIdList__Type& operator=(const UTRAN__CellIdList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UTRAN__CellIdList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const UTRAN__CellIdList__Type& other_value) const { return !is_equal(&other_value); } +UTRAN__CellId__Type& operator[](int index_value); +UTRAN__CellId__Type& operator[](const INTEGER& index_value); +const UTRAN__CellId__Type& operator[](int index_value) const; +const UTRAN__CellId__Type& operator[](const INTEGER& index_value) const; +UTRAN__CellIdList__Type operator<<=(int rotate_count) const; +UTRAN__CellIdList__Type operator<<=(const INTEGER& rotate_count) const; +UTRAN__CellIdList__Type operator>>=(int rotate_count) const; +UTRAN__CellIdList__Type operator>>=(const INTEGER& rotate_count) const; + +UTRAN__CellIdList__Type operator+(const UTRAN__CellIdList__Type& other_value) const; + +UTRAN__CellIdList__Type operator+(const OPTIONAL& other_value) const; + +UTRAN__CellIdList__Type operator+(null_type) const; + +UTRAN__CellIdList__Type substr(int index, int returncount) const; + +UTRAN__CellIdList__Type replace(int index, int len, const UTRAN__CellIdList__Type& repl) const; + +UTRAN__CellIdList__Type replace(int index, int len, const UTRAN__CellIdList__Type_template& repl) const; + +Base_Type* clone() const { return new UTRAN__CellIdList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class UTRAN__CellIdList__Type_template : public Record_Of_Template { +friend UTRAN__CellIdList__Type_template operator+(template_sel left_template, const UTRAN__CellIdList__Type_template& right_template); +friend UTRAN__CellIdList__Type_template operator+(const UTRAN__CellIdList__Type& left_value, const UTRAN__CellIdList__Type_template& right_template); +friend UTRAN__CellIdList__Type_template operator+(template_sel left_template, const UTRAN__CellIdList__Type& right_value); +friend UTRAN__CellIdList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend UTRAN__CellIdList__Type_template operator+(const UTRAN__CellIdList__Type& left_value, template_sel right_template); + +public: +UTRAN__CellIdList__Type_template() {} +UTRAN__CellIdList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +UTRAN__CellIdList__Type_template(null_type other_value); +UTRAN__CellIdList__Type_template(const UTRAN__CellIdList__Type& other_value) { copy_value(&other_value); } +UTRAN__CellIdList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +UTRAN__CellIdList__Type_template(UTRAN__CellIdList__Type_template* p_precondition, UTRAN__CellIdList__Type_template* p_implied_template); +UTRAN__CellIdList__Type_template(Dynamic_Match_Interface* p_dyn_match); +UTRAN__CellIdList__Type_template(const UTRAN__CellIdList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~UTRAN__CellIdList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UTRAN__CellIdList__Type_template& operator=(template_sel other_value); +UTRAN__CellIdList__Type_template& operator=(null_type other_value); +UTRAN__CellIdList__Type_template& operator=(const UTRAN__CellIdList__Type& other_value); +UTRAN__CellIdList__Type_template& operator=(const OPTIONAL& other_value); +UTRAN__CellIdList__Type_template& operator=(const UTRAN__CellIdList__Type_template& other_value); + +UTRAN__CellIdList__Type_template operator+(const UTRAN__CellIdList__Type_template& other_value) const; +UTRAN__CellIdList__Type_template operator+(const UTRAN__CellIdList__Type& other_value) const; +UTRAN__CellIdList__Type_template operator+(template_sel other_value) const; +UTRAN__CellIdList__Type_template operator+(null_type) const; + +UTRAN__CellId__Type_template& operator[](int index_value); +UTRAN__CellId__Type_template& operator[](const INTEGER& index_value); +const UTRAN__CellId__Type_template& operator[](int index_value) const; +const UTRAN__CellId__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const UTRAN__CellIdList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +UTRAN__CellIdList__Type valueof() const; +UTRAN__CellIdList__Type substr(int index, int returncount) const; + +UTRAN__CellIdList__Type replace(int index, int len, const UTRAN__CellIdList__Type_template& repl) const; + +UTRAN__CellIdList__Type replace(int index, int len, const UTRAN__CellIdList__Type& repl) const; + +inline UTRAN__CellIdList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const UTRAN__CellIdList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new UTRAN__CellIdList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class WLAN__CellId__Type : public Enum_Type { // enum +friend class WLAN__CellId__Type_template; +public: +enum enum_type { wlan__Cell__NonSpecific = -1, wlan__Cell27 = 27, wlan__Cell27b = 272, wlan__Cell39 = 39, UNKNOWN_VALUE = 0, UNBOUND_VALUE = 1 }; +private: +enum_type enum_value; + +public: +WLAN__CellId__Type(); +WLAN__CellId__Type(int other_value); +WLAN__CellId__Type(enum_type other_value); +WLAN__CellId__Type(const WLAN__CellId__Type& other_value); + +WLAN__CellId__Type& operator=(int other_value); +WLAN__CellId__Type& operator=(enum_type other_value); +WLAN__CellId__Type& operator=(const WLAN__CellId__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const WLAN__CellId__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const WLAN__CellId__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const WLAN__CellId__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const WLAN__CellId__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const WLAN__CellId__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const WLAN__CellId__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const WLAN__CellId__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class WLAN__CellId__Type_template : public Base_Template { +union { +WLAN__CellId__Type::enum_type single_value; +struct { +unsigned int n_values; +WLAN__CellId__Type_template *list_value; +} value_list; +struct { +WLAN__CellId__Type_template* precondition; +WLAN__CellId__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const WLAN__CellId__Type_template& other_value); + +public: +WLAN__CellId__Type_template(); +WLAN__CellId__Type_template(template_sel other_value); +WLAN__CellId__Type_template(int other_value); +WLAN__CellId__Type_template(WLAN__CellId__Type::enum_type other_value); +WLAN__CellId__Type_template(const WLAN__CellId__Type& other_value); +WLAN__CellId__Type_template(const OPTIONAL& other_value); +WLAN__CellId__Type_template(WLAN__CellId__Type_template* p_precondition, WLAN__CellId__Type_template* p_implied_template); +WLAN__CellId__Type_template(Dynamic_Match_Interface* p_dyn_match); +WLAN__CellId__Type_template(const WLAN__CellId__Type_template& other_value); +~WLAN__CellId__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +WLAN__CellId__Type_template& operator=(template_sel other_value); +WLAN__CellId__Type_template& operator=(int other_value); +WLAN__CellId__Type_template& operator=(WLAN__CellId__Type::enum_type other_value); +WLAN__CellId__Type_template& operator=(const WLAN__CellId__Type& other_value); +WLAN__CellId__Type_template& operator=(const OPTIONAL& other_value); +WLAN__CellId__Type_template& operator=(const WLAN__CellId__Type_template& other_value); + +boolean match(WLAN__CellId__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const WLAN__CellId__Type& other_value, boolean legacy = FALSE) const; +WLAN__CellId__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +WLAN__CellId__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const WLAN__CellId__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class DeltaValues__Type : public Record_Type { + INTEGER field_DeltaNRf1; + INTEGER field_DeltaNRf2; + INTEGER field_DeltaNRf3; + INTEGER field_DeltaNRf4; + Base_Type* fld_vec[4]; + void init_vec(); +public: + DeltaValues__Type(); + DeltaValues__Type(const DeltaValues__Type& other_value); + DeltaValues__Type(const INTEGER& par_DeltaNRf1, + const INTEGER& par_DeltaNRf2, + const INTEGER& par_DeltaNRf3, + const INTEGER& par_DeltaNRf4); +inline DeltaValues__Type& operator=(const DeltaValues__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DeltaValues__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DeltaValues__Type& other_value) const + { return !is_equal(&other_value); } + + inline INTEGER& DeltaNRf1() + {return field_DeltaNRf1;} + inline const INTEGER& DeltaNRf1() const + {return field_DeltaNRf1;} + inline INTEGER& DeltaNRf2() + {return field_DeltaNRf2;} + inline const INTEGER& DeltaNRf2() const + {return field_DeltaNRf2;} + inline INTEGER& DeltaNRf3() + {return field_DeltaNRf3;} + inline const INTEGER& DeltaNRf3() const + {return field_DeltaNRf3;} + inline INTEGER& DeltaNRf4() + {return field_DeltaNRf4;} + inline const INTEGER& DeltaNRf4() const + {return field_DeltaNRf4;} +Base_Type* clone() const { return new DeltaValues__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DeltaValues__Type_template : public Record_Template { +void set_specific(); +public: +DeltaValues__Type_template(): Record_Template() {} +DeltaValues__Type_template(template_sel other_value): Record_Template(other_value) {} +DeltaValues__Type_template(const DeltaValues__Type& other_value): Record_Template() { copy_value(&other_value); } +DeltaValues__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DeltaValues__Type_template(DeltaValues__Type_template* p_precondition, DeltaValues__Type_template* p_implied_template); +DeltaValues__Type_template(Dynamic_Match_Interface* p_dyn_match); +DeltaValues__Type_template(const DeltaValues__Type_template& other_value): Record_Template() { copy_template(other_value); } +~DeltaValues__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DeltaValues__Type_template& operator=(template_sel other_value); +DeltaValues__Type_template& operator=(const DeltaValues__Type& other_value); +DeltaValues__Type_template& operator=(const OPTIONAL& other_value); +DeltaValues__Type_template& operator=(const DeltaValues__Type_template& other_value); +inline boolean match(const DeltaValues__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DeltaValues__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DeltaValues__Type valueof() const; +inline DeltaValues__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +INTEGER_template& DeltaNRf1(); +const INTEGER_template& DeltaNRf1() const; +INTEGER_template& DeltaNRf2(); +const INTEGER_template& DeltaNRf2() const; +INTEGER_template& DeltaNRf3(); +const INTEGER_template& DeltaNRf3() const; +INTEGER_template& DeltaNRf4(); +const INTEGER_template& DeltaNRf4() const; +Record_Template* create() const { return new DeltaValues__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__NR__DeltaValues__Type : public Record_Type { + DeltaValues__Type field_DeltaPrimaryBand; + DeltaValues__Type field_DeltaSecondaryBand; + Base_Type* fld_vec[2]; + void init_vec(); +public: + UE__NR__DeltaValues__Type(); + UE__NR__DeltaValues__Type(const UE__NR__DeltaValues__Type& other_value); + UE__NR__DeltaValues__Type(const DeltaValues__Type& par_DeltaPrimaryBand, + const DeltaValues__Type& par_DeltaSecondaryBand); +inline UE__NR__DeltaValues__Type& operator=(const UE__NR__DeltaValues__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__NR__DeltaValues__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__NR__DeltaValues__Type& other_value) const + { return !is_equal(&other_value); } + + inline DeltaValues__Type& DeltaPrimaryBand() + {return field_DeltaPrimaryBand;} + inline const DeltaValues__Type& DeltaPrimaryBand() const + {return field_DeltaPrimaryBand;} + inline DeltaValues__Type& DeltaSecondaryBand() + {return field_DeltaSecondaryBand;} + inline const DeltaValues__Type& DeltaSecondaryBand() const + {return field_DeltaSecondaryBand;} +Base_Type* clone() const { return new UE__NR__DeltaValues__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__NR__DeltaValues__Type_template : public Record_Template { +void set_specific(); +public: +UE__NR__DeltaValues__Type_template(): Record_Template() {} +UE__NR__DeltaValues__Type_template(template_sel other_value): Record_Template(other_value) {} +UE__NR__DeltaValues__Type_template(const UE__NR__DeltaValues__Type& other_value): Record_Template() { copy_value(&other_value); } +UE__NR__DeltaValues__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__NR__DeltaValues__Type_template(UE__NR__DeltaValues__Type_template* p_precondition, UE__NR__DeltaValues__Type_template* p_implied_template); +UE__NR__DeltaValues__Type_template(Dynamic_Match_Interface* p_dyn_match); +UE__NR__DeltaValues__Type_template(const UE__NR__DeltaValues__Type_template& other_value): Record_Template() { copy_template(other_value); } +~UE__NR__DeltaValues__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__NR__DeltaValues__Type_template& operator=(template_sel other_value); +UE__NR__DeltaValues__Type_template& operator=(const UE__NR__DeltaValues__Type& other_value); +UE__NR__DeltaValues__Type_template& operator=(const OPTIONAL& other_value); +UE__NR__DeltaValues__Type_template& operator=(const UE__NR__DeltaValues__Type_template& other_value); +inline boolean match(const UE__NR__DeltaValues__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__NR__DeltaValues__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__NR__DeltaValues__Type valueof() const; +inline UE__NR__DeltaValues__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +DeltaValues__Type_template& DeltaPrimaryBand(); +const DeltaValues__Type_template& DeltaPrimaryBand() const; +DeltaValues__Type_template& DeltaSecondaryBand(); +const DeltaValues__Type_template& DeltaSecondaryBand() const; +Record_Template* create() const { return new UE__NR__DeltaValues__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AnyCellId__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_Eutra = 1, ALT_Nr = 2 }; +private: +union_selection_type union_selection; +union { +EUTRA__CellId__Type *field_Eutra; +NR__CellId__Type *field_Nr; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const AnyCellId__Type& other_value); + +public: +AnyCellId__Type(); +AnyCellId__Type(const AnyCellId__Type& other_value); +~AnyCellId__Type(); +AnyCellId__Type& operator=(const AnyCellId__Type& other_value); +boolean operator==(const AnyCellId__Type& other_value) const; +inline boolean operator!=(const AnyCellId__Type& other_value) const { return !(*this == other_value); } +EUTRA__CellId__Type& Eutra(); +const EUTRA__CellId__Type& Eutra() const; +NR__CellId__Type& Nr(); +const NR__CellId__Type& Nr() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class AnyCellId__Type_template : public Base_Template { +union { +struct { +AnyCellId__Type::union_selection_type union_selection; +union { +EUTRA__CellId__Type_template *field_Eutra; +NR__CellId__Type_template *field_Nr; +}; +} single_value; +struct { +unsigned int n_values; +AnyCellId__Type_template *list_value; +} value_list; +struct { +AnyCellId__Type_template* precondition; +AnyCellId__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const AnyCellId__Type& other_value); + +void copy_template(const AnyCellId__Type_template& other_value); + +public: +AnyCellId__Type_template(); +AnyCellId__Type_template(template_sel other_value); +AnyCellId__Type_template(const AnyCellId__Type& other_value); +AnyCellId__Type_template(const OPTIONAL& other_value); +AnyCellId__Type_template(AnyCellId__Type_template* p_precondition, AnyCellId__Type_template* p_implied_template); +AnyCellId__Type_template(Dynamic_Match_Interface* p_dyn_match); +AnyCellId__Type_template(const AnyCellId__Type_template& other_value); +~AnyCellId__Type_template(); +void clean_up(); +AnyCellId__Type_template& operator=(template_sel other_value); +AnyCellId__Type_template& operator=(const AnyCellId__Type& other_value); +AnyCellId__Type_template& operator=(const OPTIONAL& other_value); +AnyCellId__Type_template& operator=(const AnyCellId__Type_template& other_value); +boolean match(const AnyCellId__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;AnyCellId__Type valueof() const; +AnyCellId__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +AnyCellId__Type::union_selection_type get_union_selection() const; +EUTRA__CellId__Type_template& Eutra(); +const EUTRA__CellId__Type_template& Eutra() const; +NR__CellId__Type_template& Nr(); +const NR__CellId__Type_template& Nr() const; +boolean ischosen(AnyCellId__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const AnyCellId__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class IP__EUTRA__DrbInfo__Type : public Record_Type { + EUTRA__CellId__Type field_CellId; + OPTIONAL field_DrbId; + Base_Type* fld_vec[2]; + void init_vec(); +public: + IP__EUTRA__DrbInfo__Type(); + IP__EUTRA__DrbInfo__Type(const IP__EUTRA__DrbInfo__Type& other_value); + IP__EUTRA__DrbInfo__Type(const EUTRA__CellId__Type& par_CellId, + const OPTIONAL& par_DrbId); +inline IP__EUTRA__DrbInfo__Type& operator=(const IP__EUTRA__DrbInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IP__EUTRA__DrbInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IP__EUTRA__DrbInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline EUTRA__CellId__Type& CellId() + {return field_CellId;} + inline const EUTRA__CellId__Type& CellId() const + {return field_CellId;} + inline OPTIONAL& DrbId() + {return field_DrbId;} + inline const OPTIONAL& DrbId() const + {return field_DrbId;} +Base_Type* clone() const { return new IP__EUTRA__DrbInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IP__EUTRA__DrbInfo__Type_template : public Record_Template { +void set_specific(); +public: +IP__EUTRA__DrbInfo__Type_template(): Record_Template() {} +IP__EUTRA__DrbInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +IP__EUTRA__DrbInfo__Type_template(const IP__EUTRA__DrbInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +IP__EUTRA__DrbInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IP__EUTRA__DrbInfo__Type_template(IP__EUTRA__DrbInfo__Type_template* p_precondition, IP__EUTRA__DrbInfo__Type_template* p_implied_template); +IP__EUTRA__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +IP__EUTRA__DrbInfo__Type_template(const IP__EUTRA__DrbInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~IP__EUTRA__DrbInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IP__EUTRA__DrbInfo__Type_template& operator=(template_sel other_value); +IP__EUTRA__DrbInfo__Type_template& operator=(const IP__EUTRA__DrbInfo__Type& other_value); +IP__EUTRA__DrbInfo__Type_template& operator=(const OPTIONAL& other_value); +IP__EUTRA__DrbInfo__Type_template& operator=(const IP__EUTRA__DrbInfo__Type_template& other_value); +inline boolean match(const IP__EUTRA__DrbInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IP__EUTRA__DrbInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IP__EUTRA__DrbInfo__Type valueof() const; +inline IP__EUTRA__DrbInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +EUTRA__CellId__Type_template& CellId(); +const EUTRA__CellId__Type_template& CellId() const; +INTEGER_template& DrbId(); +const INTEGER_template& DrbId() const; +Record_Template* create() const { return new IP__EUTRA__DrbInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IP__UTRAN__GERAN__DrbInfo__Type : public Record_Type { + INTEGER field_CellId; + OPTIONAL field_DrbId; + Base_Type* fld_vec[2]; + void init_vec(); +public: + IP__UTRAN__GERAN__DrbInfo__Type(); + IP__UTRAN__GERAN__DrbInfo__Type(const IP__UTRAN__GERAN__DrbInfo__Type& other_value); + IP__UTRAN__GERAN__DrbInfo__Type(const INTEGER& par_CellId, + const OPTIONAL& par_DrbId); +inline IP__UTRAN__GERAN__DrbInfo__Type& operator=(const IP__UTRAN__GERAN__DrbInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IP__UTRAN__GERAN__DrbInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IP__UTRAN__GERAN__DrbInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline INTEGER& CellId() + {return field_CellId;} + inline const INTEGER& CellId() const + {return field_CellId;} + inline OPTIONAL& DrbId() + {return field_DrbId;} + inline const OPTIONAL& DrbId() const + {return field_DrbId;} +Base_Type* clone() const { return new IP__UTRAN__GERAN__DrbInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IP__UTRAN__GERAN__DrbInfo__Type_template : public Record_Template { +void set_specific(); +public: +IP__UTRAN__GERAN__DrbInfo__Type_template(): Record_Template() {} +IP__UTRAN__GERAN__DrbInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +IP__UTRAN__GERAN__DrbInfo__Type_template(const IP__UTRAN__GERAN__DrbInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +IP__UTRAN__GERAN__DrbInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IP__UTRAN__GERAN__DrbInfo__Type_template(IP__UTRAN__GERAN__DrbInfo__Type_template* p_precondition, IP__UTRAN__GERAN__DrbInfo__Type_template* p_implied_template); +IP__UTRAN__GERAN__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +IP__UTRAN__GERAN__DrbInfo__Type_template(const IP__UTRAN__GERAN__DrbInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~IP__UTRAN__GERAN__DrbInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IP__UTRAN__GERAN__DrbInfo__Type_template& operator=(template_sel other_value); +IP__UTRAN__GERAN__DrbInfo__Type_template& operator=(const IP__UTRAN__GERAN__DrbInfo__Type& other_value); +IP__UTRAN__GERAN__DrbInfo__Type_template& operator=(const OPTIONAL& other_value); +IP__UTRAN__GERAN__DrbInfo__Type_template& operator=(const IP__UTRAN__GERAN__DrbInfo__Type_template& other_value); +inline boolean match(const IP__UTRAN__GERAN__DrbInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IP__UTRAN__GERAN__DrbInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IP__UTRAN__GERAN__DrbInfo__Type valueof() const; +inline IP__UTRAN__GERAN__DrbInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +INTEGER_template& CellId(); +const INTEGER_template& CellId() const; +INTEGER_template& DrbId(); +const INTEGER_template& DrbId() const; +Record_Template* create() const { return new IP__UTRAN__GERAN__DrbInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IP__WLAN__DrbInfo__Type : public Record_Type { + INTEGER field_CellId; + Base_Type* fld_vec[1]; + void init_vec(); +public: + IP__WLAN__DrbInfo__Type(); + IP__WLAN__DrbInfo__Type(const IP__WLAN__DrbInfo__Type& other_value); + IP__WLAN__DrbInfo__Type(const INTEGER& par_CellId); +inline IP__WLAN__DrbInfo__Type& operator=(const IP__WLAN__DrbInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IP__WLAN__DrbInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IP__WLAN__DrbInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline INTEGER& CellId() + {return field_CellId;} + inline const INTEGER& CellId() const + {return field_CellId;} +Base_Type* clone() const { return new IP__WLAN__DrbInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IP__WLAN__DrbInfo__Type_template : public Record_Template { +void set_specific(); +public: +IP__WLAN__DrbInfo__Type_template(): Record_Template() {} +IP__WLAN__DrbInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +IP__WLAN__DrbInfo__Type_template(const IP__WLAN__DrbInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +IP__WLAN__DrbInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IP__WLAN__DrbInfo__Type_template(IP__WLAN__DrbInfo__Type_template* p_precondition, IP__WLAN__DrbInfo__Type_template* p_implied_template); +IP__WLAN__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +IP__WLAN__DrbInfo__Type_template(const IP__WLAN__DrbInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~IP__WLAN__DrbInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IP__WLAN__DrbInfo__Type_template& operator=(template_sel other_value); +IP__WLAN__DrbInfo__Type_template& operator=(const IP__WLAN__DrbInfo__Type& other_value); +IP__WLAN__DrbInfo__Type_template& operator=(const OPTIONAL& other_value); +IP__WLAN__DrbInfo__Type_template& operator=(const IP__WLAN__DrbInfo__Type_template& other_value); +inline boolean match(const IP__WLAN__DrbInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IP__WLAN__DrbInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IP__WLAN__DrbInfo__Type valueof() const; +inline IP__WLAN__DrbInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +INTEGER_template& CellId(); +const INTEGER_template& CellId() const; +Record_Template* create() const { return new IP__WLAN__DrbInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDN__Index__Type : public Enum_Type { // enum +friend class PDN__Index__Type_template; +public: +enum enum_type { PDN__1 = 0, PDN__2 = 1, PDN__2a = 6, PDN__Internet = 7, ePDG__IMS1 = 8, ePDG__IMS2 = 9, ePDG__XCAP = 10, ePDG__Internet = 11, nrPDN__Internet = 12, PDN__3 = 2, PDN__4 = 3, PDN__5 = 4, PDN__6 = 5, UNKNOWN_VALUE = 13, UNBOUND_VALUE = 14 }; +private: +enum_type enum_value; + +public: +PDN__Index__Type(); +PDN__Index__Type(int other_value); +PDN__Index__Type(enum_type other_value); +PDN__Index__Type(const PDN__Index__Type& other_value); + +PDN__Index__Type& operator=(int other_value); +PDN__Index__Type& operator=(enum_type other_value); +PDN__Index__Type& operator=(const PDN__Index__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const PDN__Index__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const PDN__Index__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const PDN__Index__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const PDN__Index__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const PDN__Index__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const PDN__Index__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const PDN__Index__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class PDN__Index__Type_template : public Base_Template { +union { +PDN__Index__Type::enum_type single_value; +struct { +unsigned int n_values; +PDN__Index__Type_template *list_value; +} value_list; +struct { +PDN__Index__Type_template* precondition; +PDN__Index__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const PDN__Index__Type_template& other_value); + +public: +PDN__Index__Type_template(); +PDN__Index__Type_template(template_sel other_value); +PDN__Index__Type_template(int other_value); +PDN__Index__Type_template(PDN__Index__Type::enum_type other_value); +PDN__Index__Type_template(const PDN__Index__Type& other_value); +PDN__Index__Type_template(const OPTIONAL& other_value); +PDN__Index__Type_template(PDN__Index__Type_template* p_precondition, PDN__Index__Type_template* p_implied_template); +PDN__Index__Type_template(Dynamic_Match_Interface* p_dyn_match); +PDN__Index__Type_template(const PDN__Index__Type_template& other_value); +~PDN__Index__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +PDN__Index__Type_template& operator=(template_sel other_value); +PDN__Index__Type_template& operator=(int other_value); +PDN__Index__Type_template& operator=(PDN__Index__Type::enum_type other_value); +PDN__Index__Type_template& operator=(const PDN__Index__Type& other_value); +PDN__Index__Type_template& operator=(const OPTIONAL& other_value); +PDN__Index__Type_template& operator=(const PDN__Index__Type_template& other_value); + +boolean match(PDN__Index__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const PDN__Index__Type& other_value, boolean legacy = FALSE) const; +PDN__Index__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +PDN__Index__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const PDN__Index__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class IP__ePDG__IPsecTunnelInfo__Type : public Record_Type { + PDN__Index__Type field_PdnId; + Base_Type* fld_vec[1]; + void init_vec(); +public: + IP__ePDG__IPsecTunnelInfo__Type(); + IP__ePDG__IPsecTunnelInfo__Type(const IP__ePDG__IPsecTunnelInfo__Type& other_value); + IP__ePDG__IPsecTunnelInfo__Type(const PDN__Index__Type& par_PdnId); +inline IP__ePDG__IPsecTunnelInfo__Type& operator=(const IP__ePDG__IPsecTunnelInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IP__ePDG__IPsecTunnelInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IP__ePDG__IPsecTunnelInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline PDN__Index__Type& PdnId() + {return field_PdnId;} + inline const PDN__Index__Type& PdnId() const + {return field_PdnId;} +Base_Type* clone() const { return new IP__ePDG__IPsecTunnelInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IP__ePDG__IPsecTunnelInfo__Type_template : public Record_Template { +void set_specific(); +public: +IP__ePDG__IPsecTunnelInfo__Type_template(): Record_Template() {} +IP__ePDG__IPsecTunnelInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +IP__ePDG__IPsecTunnelInfo__Type_template(const IP__ePDG__IPsecTunnelInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +IP__ePDG__IPsecTunnelInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IP__ePDG__IPsecTunnelInfo__Type_template(IP__ePDG__IPsecTunnelInfo__Type_template* p_precondition, IP__ePDG__IPsecTunnelInfo__Type_template* p_implied_template); +IP__ePDG__IPsecTunnelInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +IP__ePDG__IPsecTunnelInfo__Type_template(const IP__ePDG__IPsecTunnelInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~IP__ePDG__IPsecTunnelInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IP__ePDG__IPsecTunnelInfo__Type_template& operator=(template_sel other_value); +IP__ePDG__IPsecTunnelInfo__Type_template& operator=(const IP__ePDG__IPsecTunnelInfo__Type& other_value); +IP__ePDG__IPsecTunnelInfo__Type_template& operator=(const OPTIONAL& other_value); +IP__ePDG__IPsecTunnelInfo__Type_template& operator=(const IP__ePDG__IPsecTunnelInfo__Type_template& other_value); +inline boolean match(const IP__ePDG__IPsecTunnelInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IP__ePDG__IPsecTunnelInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IP__ePDG__IPsecTunnelInfo__Type valueof() const; +inline IP__ePDG__IPsecTunnelInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +PDN__Index__Type_template& PdnId(); +const PDN__Index__Type_template& PdnId() const; +Record_Template* create() const { return new IP__ePDG__IPsecTunnelInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class QosFlow__Identification__Type : public Record_Type { + INTEGER field_PDU__SessionId; + INTEGER field_QFI; + Base_Type* fld_vec[2]; + void init_vec(); +public: + QosFlow__Identification__Type(); + QosFlow__Identification__Type(const QosFlow__Identification__Type& other_value); + QosFlow__Identification__Type(const INTEGER& par_PDU__SessionId, + const INTEGER& par_QFI); +inline QosFlow__Identification__Type& operator=(const QosFlow__Identification__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QosFlow__Identification__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const QosFlow__Identification__Type& other_value) const + { return !is_equal(&other_value); } + + inline INTEGER& PDU__SessionId() + {return field_PDU__SessionId;} + inline const INTEGER& PDU__SessionId() const + {return field_PDU__SessionId;} + inline INTEGER& QFI() + {return field_QFI;} + inline const INTEGER& QFI() const + {return field_QFI;} +Base_Type* clone() const { return new QosFlow__Identification__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class QosFlow__Identification__Type_template : public Record_Template { +void set_specific(); +public: +QosFlow__Identification__Type_template(): Record_Template() {} +QosFlow__Identification__Type_template(template_sel other_value): Record_Template(other_value) {} +QosFlow__Identification__Type_template(const QosFlow__Identification__Type& other_value): Record_Template() { copy_value(&other_value); } +QosFlow__Identification__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +QosFlow__Identification__Type_template(QosFlow__Identification__Type_template* p_precondition, QosFlow__Identification__Type_template* p_implied_template); +QosFlow__Identification__Type_template(Dynamic_Match_Interface* p_dyn_match); +QosFlow__Identification__Type_template(const QosFlow__Identification__Type_template& other_value): Record_Template() { copy_template(other_value); } +~QosFlow__Identification__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QosFlow__Identification__Type_template& operator=(template_sel other_value); +QosFlow__Identification__Type_template& operator=(const QosFlow__Identification__Type& other_value); +QosFlow__Identification__Type_template& operator=(const OPTIONAL& other_value); +QosFlow__Identification__Type_template& operator=(const QosFlow__Identification__Type_template& other_value); +inline boolean match(const QosFlow__Identification__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const QosFlow__Identification__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +QosFlow__Identification__Type valueof() const; +inline QosFlow__Identification__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +INTEGER_template& PDU__SessionId(); +const INTEGER_template& PDU__SessionId() const; +INTEGER_template& QFI(); +const INTEGER_template& QFI() const; +Record_Template* create() const { return new QosFlow__Identification__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IP__NR__QosFlowInfo__Type : public Record_Type { + NR__CellId__Type field_CellId; + OPTIONAL field_QosFlow; + Base_Type* fld_vec[2]; + void init_vec(); +public: + IP__NR__QosFlowInfo__Type(); + IP__NR__QosFlowInfo__Type(const IP__NR__QosFlowInfo__Type& other_value); + IP__NR__QosFlowInfo__Type(const NR__CellId__Type& par_CellId, + const OPTIONAL& par_QosFlow); +inline IP__NR__QosFlowInfo__Type& operator=(const IP__NR__QosFlowInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IP__NR__QosFlowInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IP__NR__QosFlowInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline NR__CellId__Type& CellId() + {return field_CellId;} + inline const NR__CellId__Type& CellId() const + {return field_CellId;} + inline OPTIONAL& QosFlow() + {return field_QosFlow;} + inline const OPTIONAL& QosFlow() const + {return field_QosFlow;} +Base_Type* clone() const { return new IP__NR__QosFlowInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IP__NR__QosFlowInfo__Type_template : public Record_Template { +void set_specific(); +public: +IP__NR__QosFlowInfo__Type_template(): Record_Template() {} +IP__NR__QosFlowInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +IP__NR__QosFlowInfo__Type_template(const IP__NR__QosFlowInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +IP__NR__QosFlowInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IP__NR__QosFlowInfo__Type_template(IP__NR__QosFlowInfo__Type_template* p_precondition, IP__NR__QosFlowInfo__Type_template* p_implied_template); +IP__NR__QosFlowInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +IP__NR__QosFlowInfo__Type_template(const IP__NR__QosFlowInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~IP__NR__QosFlowInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IP__NR__QosFlowInfo__Type_template& operator=(template_sel other_value); +IP__NR__QosFlowInfo__Type_template& operator=(const IP__NR__QosFlowInfo__Type& other_value); +IP__NR__QosFlowInfo__Type_template& operator=(const OPTIONAL& other_value); +IP__NR__QosFlowInfo__Type_template& operator=(const IP__NR__QosFlowInfo__Type_template& other_value); +inline boolean match(const IP__NR__QosFlowInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IP__NR__QosFlowInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IP__NR__QosFlowInfo__Type valueof() const; +inline IP__NR__QosFlowInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NR__CellId__Type_template& CellId(); +const NR__CellId__Type_template& CellId() const; +QosFlow__Identification__Type_template& QosFlow(); +const QosFlow__Identification__Type_template& QosFlow() const; +Record_Template* create() const { return new IP__NR__QosFlowInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IP__EUTRA__QosFlowInfo__Type : public Record_Type { + EUTRA__CellId__Type field_CellId; + OPTIONAL field_QosFlow; + Base_Type* fld_vec[2]; + void init_vec(); +public: + IP__EUTRA__QosFlowInfo__Type(); + IP__EUTRA__QosFlowInfo__Type(const IP__EUTRA__QosFlowInfo__Type& other_value); + IP__EUTRA__QosFlowInfo__Type(const EUTRA__CellId__Type& par_CellId, + const OPTIONAL& par_QosFlow); +inline IP__EUTRA__QosFlowInfo__Type& operator=(const IP__EUTRA__QosFlowInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IP__EUTRA__QosFlowInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IP__EUTRA__QosFlowInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline EUTRA__CellId__Type& CellId() + {return field_CellId;} + inline const EUTRA__CellId__Type& CellId() const + {return field_CellId;} + inline OPTIONAL& QosFlow() + {return field_QosFlow;} + inline const OPTIONAL& QosFlow() const + {return field_QosFlow;} +Base_Type* clone() const { return new IP__EUTRA__QosFlowInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IP__EUTRA__QosFlowInfo__Type_template : public Record_Template { +void set_specific(); +public: +IP__EUTRA__QosFlowInfo__Type_template(): Record_Template() {} +IP__EUTRA__QosFlowInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +IP__EUTRA__QosFlowInfo__Type_template(const IP__EUTRA__QosFlowInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +IP__EUTRA__QosFlowInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IP__EUTRA__QosFlowInfo__Type_template(IP__EUTRA__QosFlowInfo__Type_template* p_precondition, IP__EUTRA__QosFlowInfo__Type_template* p_implied_template); +IP__EUTRA__QosFlowInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +IP__EUTRA__QosFlowInfo__Type_template(const IP__EUTRA__QosFlowInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~IP__EUTRA__QosFlowInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IP__EUTRA__QosFlowInfo__Type_template& operator=(template_sel other_value); +IP__EUTRA__QosFlowInfo__Type_template& operator=(const IP__EUTRA__QosFlowInfo__Type& other_value); +IP__EUTRA__QosFlowInfo__Type_template& operator=(const OPTIONAL& other_value); +IP__EUTRA__QosFlowInfo__Type_template& operator=(const IP__EUTRA__QosFlowInfo__Type_template& other_value); +inline boolean match(const IP__EUTRA__QosFlowInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IP__EUTRA__QosFlowInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IP__EUTRA__QosFlowInfo__Type valueof() const; +inline IP__EUTRA__QosFlowInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +EUTRA__CellId__Type_template& CellId(); +const EUTRA__CellId__Type_template& CellId() const; +QosFlow__Identification__Type_template& QosFlow(); +const QosFlow__Identification__Type_template& QosFlow() const; +Record_Template* create() const { return new IP__EUTRA__QosFlowInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IP__NR__DrbInfo__Type : public Record_Type { + NR__CellId__Type field_CellId; + OPTIONAL field_DrbId; + Base_Type* fld_vec[2]; + void init_vec(); +public: + IP__NR__DrbInfo__Type(); + IP__NR__DrbInfo__Type(const IP__NR__DrbInfo__Type& other_value); + IP__NR__DrbInfo__Type(const NR__CellId__Type& par_CellId, + const OPTIONAL& par_DrbId); +inline IP__NR__DrbInfo__Type& operator=(const IP__NR__DrbInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IP__NR__DrbInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IP__NR__DrbInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline NR__CellId__Type& CellId() + {return field_CellId;} + inline const NR__CellId__Type& CellId() const + {return field_CellId;} + inline OPTIONAL& DrbId() + {return field_DrbId;} + inline const OPTIONAL& DrbId() const + {return field_DrbId;} +Base_Type* clone() const { return new IP__NR__DrbInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IP__NR__DrbInfo__Type_template : public Record_Template { +void set_specific(); +public: +IP__NR__DrbInfo__Type_template(): Record_Template() {} +IP__NR__DrbInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +IP__NR__DrbInfo__Type_template(const IP__NR__DrbInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +IP__NR__DrbInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IP__NR__DrbInfo__Type_template(IP__NR__DrbInfo__Type_template* p_precondition, IP__NR__DrbInfo__Type_template* p_implied_template); +IP__NR__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +IP__NR__DrbInfo__Type_template(const IP__NR__DrbInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~IP__NR__DrbInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IP__NR__DrbInfo__Type_template& operator=(template_sel other_value); +IP__NR__DrbInfo__Type_template& operator=(const IP__NR__DrbInfo__Type& other_value); +IP__NR__DrbInfo__Type_template& operator=(const OPTIONAL& other_value); +IP__NR__DrbInfo__Type_template& operator=(const IP__NR__DrbInfo__Type_template& other_value); +inline boolean match(const IP__NR__DrbInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IP__NR__DrbInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IP__NR__DrbInfo__Type valueof() const; +inline IP__NR__DrbInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NR__CellId__Type_template& CellId(); +const NR__CellId__Type_template& CellId() const; +INTEGER_template& DrbId(); +const INTEGER_template& DrbId() const; +Record_Template* create() const { return new IP__NR__DrbInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IP__DrbInfo__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_Eutra = 1, ALT_Eutra5GC = 2, ALT_Utran = 3, ALT_Geran = 4, ALT_Nr5GC = 5, ALT_NrEPC = 6, ALT_Wlan = 7, ALT_IPsecTunnel = 8 }; +private: +union_selection_type union_selection; +union { +IP__EUTRA__DrbInfo__Type *field_Eutra; +IP__EUTRA__QosFlowInfo__Type *field_Eutra5GC; +IP__UTRAN__GERAN__DrbInfo__Type *field_Utran; +IP__UTRAN__GERAN__DrbInfo__Type *field_Geran; +IP__NR__QosFlowInfo__Type *field_Nr5GC; +IP__NR__DrbInfo__Type *field_NrEPC; +IP__WLAN__DrbInfo__Type *field_Wlan; +IP__ePDG__IPsecTunnelInfo__Type *field_IPsecTunnel; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const IP__DrbInfo__Type& other_value); + +public: +IP__DrbInfo__Type(); +IP__DrbInfo__Type(const IP__DrbInfo__Type& other_value); +~IP__DrbInfo__Type(); +IP__DrbInfo__Type& operator=(const IP__DrbInfo__Type& other_value); +boolean operator==(const IP__DrbInfo__Type& other_value) const; +inline boolean operator!=(const IP__DrbInfo__Type& other_value) const { return !(*this == other_value); } +IP__EUTRA__DrbInfo__Type& Eutra(); +const IP__EUTRA__DrbInfo__Type& Eutra() const; +IP__EUTRA__QosFlowInfo__Type& Eutra5GC(); +const IP__EUTRA__QosFlowInfo__Type& Eutra5GC() const; +IP__UTRAN__GERAN__DrbInfo__Type& Utran(); +const IP__UTRAN__GERAN__DrbInfo__Type& Utran() const; +IP__UTRAN__GERAN__DrbInfo__Type& Geran(); +const IP__UTRAN__GERAN__DrbInfo__Type& Geran() const; +IP__NR__QosFlowInfo__Type& Nr5GC(); +const IP__NR__QosFlowInfo__Type& Nr5GC() const; +IP__NR__DrbInfo__Type& NrEPC(); +const IP__NR__DrbInfo__Type& NrEPC() const; +IP__WLAN__DrbInfo__Type& Wlan(); +const IP__WLAN__DrbInfo__Type& Wlan() const; +IP__ePDG__IPsecTunnelInfo__Type& IPsecTunnel(); +const IP__ePDG__IPsecTunnelInfo__Type& IPsecTunnel() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class IP__DrbInfo__Type_template : public Base_Template { +union { +struct { +IP__DrbInfo__Type::union_selection_type union_selection; +union { +IP__EUTRA__DrbInfo__Type_template *field_Eutra; +IP__EUTRA__QosFlowInfo__Type_template *field_Eutra5GC; +IP__UTRAN__GERAN__DrbInfo__Type_template *field_Utran; +IP__UTRAN__GERAN__DrbInfo__Type_template *field_Geran; +IP__NR__QosFlowInfo__Type_template *field_Nr5GC; +IP__NR__DrbInfo__Type_template *field_NrEPC; +IP__WLAN__DrbInfo__Type_template *field_Wlan; +IP__ePDG__IPsecTunnelInfo__Type_template *field_IPsecTunnel; +}; +} single_value; +struct { +unsigned int n_values; +IP__DrbInfo__Type_template *list_value; +} value_list; +struct { +IP__DrbInfo__Type_template* precondition; +IP__DrbInfo__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const IP__DrbInfo__Type& other_value); + +void copy_template(const IP__DrbInfo__Type_template& other_value); + +public: +IP__DrbInfo__Type_template(); +IP__DrbInfo__Type_template(template_sel other_value); +IP__DrbInfo__Type_template(const IP__DrbInfo__Type& other_value); +IP__DrbInfo__Type_template(const OPTIONAL& other_value); +IP__DrbInfo__Type_template(IP__DrbInfo__Type_template* p_precondition, IP__DrbInfo__Type_template* p_implied_template); +IP__DrbInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +IP__DrbInfo__Type_template(const IP__DrbInfo__Type_template& other_value); +~IP__DrbInfo__Type_template(); +void clean_up(); +IP__DrbInfo__Type_template& operator=(template_sel other_value); +IP__DrbInfo__Type_template& operator=(const IP__DrbInfo__Type& other_value); +IP__DrbInfo__Type_template& operator=(const OPTIONAL& other_value); +IP__DrbInfo__Type_template& operator=(const IP__DrbInfo__Type_template& other_value); +boolean match(const IP__DrbInfo__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;IP__DrbInfo__Type valueof() const; +IP__DrbInfo__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +IP__DrbInfo__Type::union_selection_type get_union_selection() const; +IP__EUTRA__DrbInfo__Type_template& Eutra(); +const IP__EUTRA__DrbInfo__Type_template& Eutra() const; +IP__EUTRA__QosFlowInfo__Type_template& Eutra5GC(); +const IP__EUTRA__QosFlowInfo__Type_template& Eutra5GC() const; +IP__UTRAN__GERAN__DrbInfo__Type_template& Utran(); +const IP__UTRAN__GERAN__DrbInfo__Type_template& Utran() const; +IP__UTRAN__GERAN__DrbInfo__Type_template& Geran(); +const IP__UTRAN__GERAN__DrbInfo__Type_template& Geran() const; +IP__NR__QosFlowInfo__Type_template& Nr5GC(); +const IP__NR__QosFlowInfo__Type_template& Nr5GC() const; +IP__NR__DrbInfo__Type_template& NrEPC(); +const IP__NR__DrbInfo__Type_template& NrEPC() const; +IP__WLAN__DrbInfo__Type_template& Wlan(); +const IP__WLAN__DrbInfo__Type_template& Wlan() const; +IP__ePDG__IPsecTunnelInfo__Type_template& IPsecTunnel(); +const IP__ePDG__IPsecTunnelInfo__Type_template& IPsecTunnel() const; +boolean ischosen(IP__DrbInfo__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const IP__DrbInfo__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class GPRS__CipheringAlgorithm__Type : public Enum_Type { // enum +friend class GPRS__CipheringAlgorithm__Type_template; +public: +enum enum_type { gea0 = 0, gea2 = 2, gea3 = 3, gea4 = 4, UNKNOWN_VALUE = 1, UNBOUND_VALUE = 5 }; +private: +enum_type enum_value; + +public: +GPRS__CipheringAlgorithm__Type(); +GPRS__CipheringAlgorithm__Type(int other_value); +GPRS__CipheringAlgorithm__Type(enum_type other_value); +GPRS__CipheringAlgorithm__Type(const GPRS__CipheringAlgorithm__Type& other_value); + +GPRS__CipheringAlgorithm__Type& operator=(int other_value); +GPRS__CipheringAlgorithm__Type& operator=(enum_type other_value); +GPRS__CipheringAlgorithm__Type& operator=(const GPRS__CipheringAlgorithm__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const GPRS__CipheringAlgorithm__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const GPRS__CipheringAlgorithm__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const GPRS__CipheringAlgorithm__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const GPRS__CipheringAlgorithm__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const GPRS__CipheringAlgorithm__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const GPRS__CipheringAlgorithm__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const GPRS__CipheringAlgorithm__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class GPRS__CipheringAlgorithm__Type_template : public Base_Template { +union { +GPRS__CipheringAlgorithm__Type::enum_type single_value; +struct { +unsigned int n_values; +GPRS__CipheringAlgorithm__Type_template *list_value; +} value_list; +struct { +GPRS__CipheringAlgorithm__Type_template* precondition; +GPRS__CipheringAlgorithm__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const GPRS__CipheringAlgorithm__Type_template& other_value); + +public: +GPRS__CipheringAlgorithm__Type_template(); +GPRS__CipheringAlgorithm__Type_template(template_sel other_value); +GPRS__CipheringAlgorithm__Type_template(int other_value); +GPRS__CipheringAlgorithm__Type_template(GPRS__CipheringAlgorithm__Type::enum_type other_value); +GPRS__CipheringAlgorithm__Type_template(const GPRS__CipheringAlgorithm__Type& other_value); +GPRS__CipheringAlgorithm__Type_template(const OPTIONAL& other_value); +GPRS__CipheringAlgorithm__Type_template(GPRS__CipheringAlgorithm__Type_template* p_precondition, GPRS__CipheringAlgorithm__Type_template* p_implied_template); +GPRS__CipheringAlgorithm__Type_template(Dynamic_Match_Interface* p_dyn_match); +GPRS__CipheringAlgorithm__Type_template(const GPRS__CipheringAlgorithm__Type_template& other_value); +~GPRS__CipheringAlgorithm__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +GPRS__CipheringAlgorithm__Type_template& operator=(template_sel other_value); +GPRS__CipheringAlgorithm__Type_template& operator=(int other_value); +GPRS__CipheringAlgorithm__Type_template& operator=(GPRS__CipheringAlgorithm__Type::enum_type other_value); +GPRS__CipheringAlgorithm__Type_template& operator=(const GPRS__CipheringAlgorithm__Type& other_value); +GPRS__CipheringAlgorithm__Type_template& operator=(const OPTIONAL& other_value); +GPRS__CipheringAlgorithm__Type_template& operator=(const GPRS__CipheringAlgorithm__Type_template& other_value); + +boolean match(GPRS__CipheringAlgorithm__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const GPRS__CipheringAlgorithm__Type& other_value, boolean legacy = FALSE) const; +GPRS__CipheringAlgorithm__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +GPRS__CipheringAlgorithm__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const GPRS__CipheringAlgorithm__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class IPCAN__RAN__Type : public Enum_Type { // enum +friend class IPCAN__RAN__Type_template; +public: +enum enum_type { GERAN = 0, UTRAN__FDD = 1, UTRAN__TDD = 2, EUTRA__FDD = 3, EUTRA__TDD = 4, WLAN = 5, NR = 6, UNKNOWN_VALUE = 7, UNBOUND_VALUE = 8 }; +private: +enum_type enum_value; + +public: +IPCAN__RAN__Type(); +IPCAN__RAN__Type(int other_value); +IPCAN__RAN__Type(enum_type other_value); +IPCAN__RAN__Type(const IPCAN__RAN__Type& other_value); + +IPCAN__RAN__Type& operator=(int other_value); +IPCAN__RAN__Type& operator=(enum_type other_value); +IPCAN__RAN__Type& operator=(const IPCAN__RAN__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const IPCAN__RAN__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const IPCAN__RAN__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const IPCAN__RAN__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const IPCAN__RAN__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const IPCAN__RAN__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const IPCAN__RAN__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const IPCAN__RAN__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class IPCAN__RAN__Type_template : public Base_Template { +union { +IPCAN__RAN__Type::enum_type single_value; +struct { +unsigned int n_values; +IPCAN__RAN__Type_template *list_value; +} value_list; +struct { +IPCAN__RAN__Type_template* precondition; +IPCAN__RAN__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const IPCAN__RAN__Type_template& other_value); + +public: +IPCAN__RAN__Type_template(); +IPCAN__RAN__Type_template(template_sel other_value); +IPCAN__RAN__Type_template(int other_value); +IPCAN__RAN__Type_template(IPCAN__RAN__Type::enum_type other_value); +IPCAN__RAN__Type_template(const IPCAN__RAN__Type& other_value); +IPCAN__RAN__Type_template(const OPTIONAL& other_value); +IPCAN__RAN__Type_template(IPCAN__RAN__Type_template* p_precondition, IPCAN__RAN__Type_template* p_implied_template); +IPCAN__RAN__Type_template(Dynamic_Match_Interface* p_dyn_match); +IPCAN__RAN__Type_template(const IPCAN__RAN__Type_template& other_value); +~IPCAN__RAN__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +IPCAN__RAN__Type_template& operator=(template_sel other_value); +IPCAN__RAN__Type_template& operator=(int other_value); +IPCAN__RAN__Type_template& operator=(IPCAN__RAN__Type::enum_type other_value); +IPCAN__RAN__Type_template& operator=(const IPCAN__RAN__Type& other_value); +IPCAN__RAN__Type_template& operator=(const OPTIONAL& other_value); +IPCAN__RAN__Type_template& operator=(const IPCAN__RAN__Type_template& other_value); + +boolean match(IPCAN__RAN__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const IPCAN__RAN__Type& other_value, boolean legacy = FALSE) const; +IPCAN__RAN__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +IPCAN__RAN__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const IPCAN__RAN__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class IRAT__ConfiguredPTCs__Type : public Enum_Type { // enum +friend class IRAT__ConfiguredPTCs__Type_template; +public: +enum enum_type { EUTRA__Only = 0, EUTRA__UTRAN = 1, EUTRA__GERAN = 2, EUTRA__UTRAN__GERAN = 3, EUTRA__CDMA2000 = 4, UTRAN__Only = 5, UTRAN__GERAN = 6, EUTRA__WLAN = 7, UTRAN__WLAN = 8, WLAN__Only = 9, NR5GC__WLAN = 10, UNKNOWN_VALUE = 11, UNBOUND_VALUE = 12 }; +private: +enum_type enum_value; + +public: +IRAT__ConfiguredPTCs__Type(); +IRAT__ConfiguredPTCs__Type(int other_value); +IRAT__ConfiguredPTCs__Type(enum_type other_value); +IRAT__ConfiguredPTCs__Type(const IRAT__ConfiguredPTCs__Type& other_value); + +IRAT__ConfiguredPTCs__Type& operator=(int other_value); +IRAT__ConfiguredPTCs__Type& operator=(enum_type other_value); +IRAT__ConfiguredPTCs__Type& operator=(const IRAT__ConfiguredPTCs__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const IRAT__ConfiguredPTCs__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const IRAT__ConfiguredPTCs__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const IRAT__ConfiguredPTCs__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const IRAT__ConfiguredPTCs__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const IRAT__ConfiguredPTCs__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const IRAT__ConfiguredPTCs__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const IRAT__ConfiguredPTCs__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class IRAT__ConfiguredPTCs__Type_template : public Base_Template { +union { +IRAT__ConfiguredPTCs__Type::enum_type single_value; +struct { +unsigned int n_values; +IRAT__ConfiguredPTCs__Type_template *list_value; +} value_list; +struct { +IRAT__ConfiguredPTCs__Type_template* precondition; +IRAT__ConfiguredPTCs__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const IRAT__ConfiguredPTCs__Type_template& other_value); + +public: +IRAT__ConfiguredPTCs__Type_template(); +IRAT__ConfiguredPTCs__Type_template(template_sel other_value); +IRAT__ConfiguredPTCs__Type_template(int other_value); +IRAT__ConfiguredPTCs__Type_template(IRAT__ConfiguredPTCs__Type::enum_type other_value); +IRAT__ConfiguredPTCs__Type_template(const IRAT__ConfiguredPTCs__Type& other_value); +IRAT__ConfiguredPTCs__Type_template(const OPTIONAL& other_value); +IRAT__ConfiguredPTCs__Type_template(IRAT__ConfiguredPTCs__Type_template* p_precondition, IRAT__ConfiguredPTCs__Type_template* p_implied_template); +IRAT__ConfiguredPTCs__Type_template(Dynamic_Match_Interface* p_dyn_match); +IRAT__ConfiguredPTCs__Type_template(const IRAT__ConfiguredPTCs__Type_template& other_value); +~IRAT__ConfiguredPTCs__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +IRAT__ConfiguredPTCs__Type_template& operator=(template_sel other_value); +IRAT__ConfiguredPTCs__Type_template& operator=(int other_value); +IRAT__ConfiguredPTCs__Type_template& operator=(IRAT__ConfiguredPTCs__Type::enum_type other_value); +IRAT__ConfiguredPTCs__Type_template& operator=(const IRAT__ConfiguredPTCs__Type& other_value); +IRAT__ConfiguredPTCs__Type_template& operator=(const OPTIONAL& other_value); +IRAT__ConfiguredPTCs__Type_template& operator=(const IRAT__ConfiguredPTCs__Type_template& other_value); + +boolean match(IRAT__ConfiguredPTCs__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const IRAT__ConfiguredPTCs__Type& other_value, boolean legacy = FALSE) const; +IRAT__ConfiguredPTCs__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +IRAT__ConfiguredPTCs__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const IRAT__ConfiguredPTCs__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class VerdictCtrl__Type : public Enum_Type { // enum +friend class VerdictCtrl__Type_template; +public: +enum enum_type { normal = 0, layer2 = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +VerdictCtrl__Type(); +VerdictCtrl__Type(int other_value); +VerdictCtrl__Type(enum_type other_value); +VerdictCtrl__Type(const VerdictCtrl__Type& other_value); + +VerdictCtrl__Type& operator=(int other_value); +VerdictCtrl__Type& operator=(enum_type other_value); +VerdictCtrl__Type& operator=(const VerdictCtrl__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const VerdictCtrl__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const VerdictCtrl__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const VerdictCtrl__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const VerdictCtrl__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const VerdictCtrl__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const VerdictCtrl__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const VerdictCtrl__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class VerdictCtrl__Type_template : public Base_Template { +union { +VerdictCtrl__Type::enum_type single_value; +struct { +unsigned int n_values; +VerdictCtrl__Type_template *list_value; +} value_list; +struct { +VerdictCtrl__Type_template* precondition; +VerdictCtrl__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const VerdictCtrl__Type_template& other_value); + +public: +VerdictCtrl__Type_template(); +VerdictCtrl__Type_template(template_sel other_value); +VerdictCtrl__Type_template(int other_value); +VerdictCtrl__Type_template(VerdictCtrl__Type::enum_type other_value); +VerdictCtrl__Type_template(const VerdictCtrl__Type& other_value); +VerdictCtrl__Type_template(const OPTIONAL& other_value); +VerdictCtrl__Type_template(VerdictCtrl__Type_template* p_precondition, VerdictCtrl__Type_template* p_implied_template); +VerdictCtrl__Type_template(Dynamic_Match_Interface* p_dyn_match); +VerdictCtrl__Type_template(const VerdictCtrl__Type_template& other_value); +~VerdictCtrl__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +VerdictCtrl__Type_template& operator=(template_sel other_value); +VerdictCtrl__Type_template& operator=(int other_value); +VerdictCtrl__Type_template& operator=(VerdictCtrl__Type::enum_type other_value); +VerdictCtrl__Type_template& operator=(const VerdictCtrl__Type& other_value); +VerdictCtrl__Type_template& operator=(const OPTIONAL& other_value); +VerdictCtrl__Type_template& operator=(const VerdictCtrl__Type_template& other_value); + +boolean match(VerdictCtrl__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const VerdictCtrl__Type& other_value, boolean legacy = FALSE) const; +VerdictCtrl__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +VerdictCtrl__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const VerdictCtrl__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class HarqErrorHandling__Type : public Enum_Type { // enum +friend class HarqErrorHandling__Type_template; +public: +enum enum_type { ignore = 0, raiseInconc = 1, allowOneRetransmission = 2, UNKNOWN_VALUE = 3, UNBOUND_VALUE = 4 }; +private: +enum_type enum_value; + +public: +HarqErrorHandling__Type(); +HarqErrorHandling__Type(int other_value); +HarqErrorHandling__Type(enum_type other_value); +HarqErrorHandling__Type(const HarqErrorHandling__Type& other_value); + +HarqErrorHandling__Type& operator=(int other_value); +HarqErrorHandling__Type& operator=(enum_type other_value); +HarqErrorHandling__Type& operator=(const HarqErrorHandling__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const HarqErrorHandling__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const HarqErrorHandling__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const HarqErrorHandling__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const HarqErrorHandling__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const HarqErrorHandling__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const HarqErrorHandling__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const HarqErrorHandling__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class HarqErrorHandling__Type_template : public Base_Template { +union { +HarqErrorHandling__Type::enum_type single_value; +struct { +unsigned int n_values; +HarqErrorHandling__Type_template *list_value; +} value_list; +struct { +HarqErrorHandling__Type_template* precondition; +HarqErrorHandling__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const HarqErrorHandling__Type_template& other_value); + +public: +HarqErrorHandling__Type_template(); +HarqErrorHandling__Type_template(template_sel other_value); +HarqErrorHandling__Type_template(int other_value); +HarqErrorHandling__Type_template(HarqErrorHandling__Type::enum_type other_value); +HarqErrorHandling__Type_template(const HarqErrorHandling__Type& other_value); +HarqErrorHandling__Type_template(const OPTIONAL& other_value); +HarqErrorHandling__Type_template(HarqErrorHandling__Type_template* p_precondition, HarqErrorHandling__Type_template* p_implied_template); +HarqErrorHandling__Type_template(Dynamic_Match_Interface* p_dyn_match); +HarqErrorHandling__Type_template(const HarqErrorHandling__Type_template& other_value); +~HarqErrorHandling__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +HarqErrorHandling__Type_template& operator=(template_sel other_value); +HarqErrorHandling__Type_template& operator=(int other_value); +HarqErrorHandling__Type_template& operator=(HarqErrorHandling__Type::enum_type other_value); +HarqErrorHandling__Type_template& operator=(const HarqErrorHandling__Type& other_value); +HarqErrorHandling__Type_template& operator=(const OPTIONAL& other_value); +HarqErrorHandling__Type_template& operator=(const HarqErrorHandling__Type_template& other_value); + +boolean match(HarqErrorHandling__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const HarqErrorHandling__Type& other_value, boolean legacy = FALSE) const; +HarqErrorHandling__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +HarqErrorHandling__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const HarqErrorHandling__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class Gsm7BitPacking__Type : public Enum_Type { // enum +friend class Gsm7BitPacking__Type_template; +public: +enum enum_type { SMS__Packing = 0, CBS__Packing = 1, USSD__Packing = 2, UNKNOWN_VALUE = 3, UNBOUND_VALUE = 4 }; +private: +enum_type enum_value; + +public: +Gsm7BitPacking__Type(); +Gsm7BitPacking__Type(int other_value); +Gsm7BitPacking__Type(enum_type other_value); +Gsm7BitPacking__Type(const Gsm7BitPacking__Type& other_value); + +Gsm7BitPacking__Type& operator=(int other_value); +Gsm7BitPacking__Type& operator=(enum_type other_value); +Gsm7BitPacking__Type& operator=(const Gsm7BitPacking__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const Gsm7BitPacking__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const Gsm7BitPacking__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const Gsm7BitPacking__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const Gsm7BitPacking__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const Gsm7BitPacking__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const Gsm7BitPacking__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const Gsm7BitPacking__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class Gsm7BitPacking__Type_template : public Base_Template { +union { +Gsm7BitPacking__Type::enum_type single_value; +struct { +unsigned int n_values; +Gsm7BitPacking__Type_template *list_value; +} value_list; +struct { +Gsm7BitPacking__Type_template* precondition; +Gsm7BitPacking__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const Gsm7BitPacking__Type_template& other_value); + +public: +Gsm7BitPacking__Type_template(); +Gsm7BitPacking__Type_template(template_sel other_value); +Gsm7BitPacking__Type_template(int other_value); +Gsm7BitPacking__Type_template(Gsm7BitPacking__Type::enum_type other_value); +Gsm7BitPacking__Type_template(const Gsm7BitPacking__Type& other_value); +Gsm7BitPacking__Type_template(const OPTIONAL& other_value); +Gsm7BitPacking__Type_template(Gsm7BitPacking__Type_template* p_precondition, Gsm7BitPacking__Type_template* p_implied_template); +Gsm7BitPacking__Type_template(Dynamic_Match_Interface* p_dyn_match); +Gsm7BitPacking__Type_template(const Gsm7BitPacking__Type_template& other_value); +~Gsm7BitPacking__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +Gsm7BitPacking__Type_template& operator=(template_sel other_value); +Gsm7BitPacking__Type_template& operator=(int other_value); +Gsm7BitPacking__Type_template& operator=(Gsm7BitPacking__Type::enum_type other_value); +Gsm7BitPacking__Type_template& operator=(const Gsm7BitPacking__Type& other_value); +Gsm7BitPacking__Type_template& operator=(const OPTIONAL& other_value); +Gsm7BitPacking__Type_template& operator=(const Gsm7BitPacking__Type_template& other_value); + +boolean match(Gsm7BitPacking__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const Gsm7BitPacking__Type& other_value, boolean legacy = FALSE) const; +Gsm7BitPacking__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +Gsm7BitPacking__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const Gsm7BitPacking__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class Struct__tm__Type : public Record_Type { + INTEGER field_tm__sec; + INTEGER field_tm__min; + INTEGER field_tm__hour; + INTEGER field_tm__mday; + INTEGER field_tm__mon; + INTEGER field_tm__year; + INTEGER field_tm__wday; + INTEGER field_tm__yday; + INTEGER field_tm__isdst; + Base_Type* fld_vec[9]; + void init_vec(); +public: + Struct__tm__Type(); + Struct__tm__Type(const Struct__tm__Type& other_value); + Struct__tm__Type(const INTEGER& par_tm__sec, + const INTEGER& par_tm__min, + const INTEGER& par_tm__hour, + const INTEGER& par_tm__mday, + const INTEGER& par_tm__mon, + const INTEGER& par_tm__year, + const INTEGER& par_tm__wday, + const INTEGER& par_tm__yday, + const INTEGER& par_tm__isdst); +inline Struct__tm__Type& operator=(const Struct__tm__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Struct__tm__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Struct__tm__Type& other_value) const + { return !is_equal(&other_value); } + + inline INTEGER& tm__sec() + {return field_tm__sec;} + inline const INTEGER& tm__sec() const + {return field_tm__sec;} + inline INTEGER& tm__min() + {return field_tm__min;} + inline const INTEGER& tm__min() const + {return field_tm__min;} + inline INTEGER& tm__hour() + {return field_tm__hour;} + inline const INTEGER& tm__hour() const + {return field_tm__hour;} + inline INTEGER& tm__mday() + {return field_tm__mday;} + inline const INTEGER& tm__mday() const + {return field_tm__mday;} + inline INTEGER& tm__mon() + {return field_tm__mon;} + inline const INTEGER& tm__mon() const + {return field_tm__mon;} + inline INTEGER& tm__year() + {return field_tm__year;} + inline const INTEGER& tm__year() const + {return field_tm__year;} + inline INTEGER& tm__wday() + {return field_tm__wday;} + inline const INTEGER& tm__wday() const + {return field_tm__wday;} + inline INTEGER& tm__yday() + {return field_tm__yday;} + inline const INTEGER& tm__yday() const + {return field_tm__yday;} + inline INTEGER& tm__isdst() + {return field_tm__isdst;} + inline const INTEGER& tm__isdst() const + {return field_tm__isdst;} +Base_Type* clone() const { return new Struct__tm__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 9; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Struct__tm__Type_template : public Record_Template { +void set_specific(); +public: +Struct__tm__Type_template(): Record_Template() {} +Struct__tm__Type_template(template_sel other_value): Record_Template(other_value) {} +Struct__tm__Type_template(const Struct__tm__Type& other_value): Record_Template() { copy_value(&other_value); } +Struct__tm__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Struct__tm__Type_template(Struct__tm__Type_template* p_precondition, Struct__tm__Type_template* p_implied_template); +Struct__tm__Type_template(Dynamic_Match_Interface* p_dyn_match); +Struct__tm__Type_template(const Struct__tm__Type_template& other_value): Record_Template() { copy_template(other_value); } +~Struct__tm__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Struct__tm__Type_template& operator=(template_sel other_value); +Struct__tm__Type_template& operator=(const Struct__tm__Type& other_value); +Struct__tm__Type_template& operator=(const OPTIONAL& other_value); +Struct__tm__Type_template& operator=(const Struct__tm__Type_template& other_value); +inline boolean match(const Struct__tm__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Struct__tm__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Struct__tm__Type valueof() const; +inline Struct__tm__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +INTEGER_template& tm__sec(); +const INTEGER_template& tm__sec() const; +INTEGER_template& tm__min(); +const INTEGER_template& tm__min() const; +INTEGER_template& tm__hour(); +const INTEGER_template& tm__hour() const; +INTEGER_template& tm__mday(); +const INTEGER_template& tm__mday() const; +INTEGER_template& tm__mon(); +const INTEGER_template& tm__mon() const; +INTEGER_template& tm__year(); +const INTEGER_template& tm__year() const; +INTEGER_template& tm__wday(); +const INTEGER_template& tm__wday() const; +INTEGER_template& tm__yday(); +const INTEGER_template& tm__yday() const; +INTEGER_template& tm__isdst(); +const INTEGER_template& tm__isdst() const; +Record_Template* create() const { return new Struct__tm__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_CommonDefs(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_CommonDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern NameValueList__Type_template operator+(template_sel left_template, const NameValueList__Type_template& right_template); +extern NameValueList__Type_template operator+(template_sel left_template, const NameValueList__Type& right_value); +extern NameValueList__Type_template operator+(const NameValueList__Type& left_value, template_sel right_template); +extern NR__CellIdList__Type_template operator+(template_sel left_template, const NR__CellIdList__Type_template& right_template); +extern NR__CellIdList__Type_template operator+(template_sel left_template, const NR__CellIdList__Type& right_value); +extern NR__CellIdList__Type_template operator+(const NR__CellIdList__Type& left_value, template_sel right_template); +extern EUTRA__CellIdList__Type_template operator+(template_sel left_template, const EUTRA__CellIdList__Type_template& right_template); +extern EUTRA__CellIdList__Type_template operator+(template_sel left_template, const EUTRA__CellIdList__Type& right_value); +extern EUTRA__CellIdList__Type_template operator+(const EUTRA__CellIdList__Type& left_value, template_sel right_template); +extern UTRAN__CellIdList__Type_template operator+(template_sel left_template, const UTRAN__CellIdList__Type_template& right_template); +extern UTRAN__CellIdList__Type_template operator+(template_sel left_template, const UTRAN__CellIdList__Type& right_value); +extern UTRAN__CellIdList__Type_template operator+(const UTRAN__CellIdList__Type& left_value, template_sel right_template); +extern CHARSTRING fl__FormatLog(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg); +extern void f__ErrorLog(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg); +extern void f__SetVerdict(const VERDICTTYPE& p__Verdict, const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg); +extern void FatalError(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg); +extern void f__SetVerdictInconc(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg); +extern void f__Delay(const FLOAT& p__DelayTime); +extern INTEGER f__IntegerList__Search(const IntegerList__Type& p__IntegerList, const INTEGER& p__Val); +extern INTEGER f__CeilLog2(const INTEGER& p__Val); +extern INTEGER f__FloorLog2(const INTEGER& p__Val); +extern INTEGER f__Power(const INTEGER& p__Base, const INTEGER& p__Exponent); +extern INTEGER f__Round(const FLOAT& p__Float); +extern BITSTRING_template f__TemplateInt2Bit(const INTEGER_template& p__Val, const INTEGER& p__Length); +extern CHARSTRING_template f__TemplateInt2Str(const INTEGER_template& p__Val); +extern INTEGER f__StringFindChar(const CHARSTRING& p__String, const Char1List__Type& p__CharList, const INTEGER& p__StartIndex); +extern CHARSTRING fl__StringToUpperOrLower(const BOOLEAN& p__ToLower, const CHARSTRING& p__String); +extern CHARSTRING f__StringToLower(const CHARSTRING& p__String); +extern CHARSTRING f__StringToUpper(const CHARSTRING& p__String); +extern CharStringList__Type f__StringSplit(const CHARSTRING& p__String, const Char1List__Type& p__SplitCharList); +extern CharStringList__Type f__StringSplitLines(const CHARSTRING& p__Text, const CHARSTRING& p__Delimitor); +extern CHARSTRING f__StringJoin(const CharStringList__Type& p__StringList, const CHARSTRING& p__JoinString); +extern CharStringList__Type f__CharStringList__Add(const CharStringList__Type& p__StringList, const CHARSTRING& p__NewString); +extern CharStringList__Type f__CharStringList__Remove(const CharStringList__Type& p__StringList, const CHARSTRING_template& p__Pattern); +extern BITSTRING f__ConvertBoolToBit(const BOOLEAN& p__Bool); +extern BITSTRING f__ConvertStrToBit(const CHARSTRING& p__Charstring); +extern BITSTRING f__Char2Bit(const CHARSTRING& p__Char); +extern BITSTRING f__Unichar2Bit(const UNIVERSAL_CHARSTRING& p__Unichar); +extern BITSTRING f__XsdString2Bit(const UNIVERSAL_CHARSTRING& p__XsdString); +extern CHARSTRING f__Bit2Char(const BITSTRING& p__BitString); +extern UNIVERSAL_CHARSTRING f__Bit2Unichar(const BITSTRING& p__BitString); +extern UNIVERSAL_CHARSTRING f__Bit2XsdString(const BITSTRING& p__BitString); +extern BITSTRING f__OctetAlignedBitString(const BITSTRING& p__Bitstring); +extern OCTETSTRING f__GetN__OctetsFromPRBS(const INTEGER& p__Start, const INTEGER& p__N); +extern OCTETSTRING fl__XlatAcsiiToGsm7Bit(const OCTETSTRING& p__AsciiOctetString); +extern OCTETSTRING f__CharPacking__IA5toGsm7Bit(const CHARSTRING& p__Text, const Gsm7BitPacking__Type& p__Packing, const INTEGER& p__NumFillbits); +extern OCTETSTRING f__CharPacking__IA5toBCD(const CHARSTRING& p__ASCII__String); +extern BITSTRING f__BitstringReplaceMSB(const BITSTRING& p__Bitstring, const BITSTRING& p__NewMSB); +extern BOOLEAN f__Bitstring__BitIsSet(const BITSTRING& p__Bitstring, const INTEGER& p__Index); +extern BITSTRING f__Bitstring__LeastSignificantBits(const BITSTRING& p__Bitstring, const INTEGER& p__NoOfBis); +extern BITSTRING_template f__BitstringTemplate__SetBit(const BITSTRING_template& p__Bitstring, const INTEGER& p__Position, const BITSTRING_template& p__Bit); +extern BITSTRING fx__KeyDerivationFunction(const INTEGER& p__KDF, const BITSTRING& p__Key, const OCTETSTRING& p__String); +extern BITSTRING fx__CalculateFCS32(const BITSTRING& p__TMSI); +extern void fx__GetSystemTime(Struct__tm__Type& p__Struct__tm, INTEGER& p__TimezoneInfo); +extern CHARSTRING fl__FormatIntegerAsTwoDigits(const INTEGER& p__Value); +extern CHARSTRING f__HTTP__FormatHttpDate(const Struct__tm__Type& p__LocalTime, const INTEGER& p__TimezoneSeconds); +extern CHARSTRING f__UTC__FormatDateTime(const Struct__tm__Type& p__LocalTime, const INTEGER_template& p__TimezoneSeconds); +extern CHARSTRING f__UTC__Timestamp(); +extern HEXSTRING f__SwappedNibbles(const INTEGER& p__Val); +extern HEXSTRING f__BCD__TimestampWithTimezone(); +extern HEXSTRING f__BCD__TimestampWithoutTimezone(); +extern BITSTRING f__MDT__GetAbsolute__TimeStamp(); +extern INTEGER f__UTC__MKTime(const Struct__tm__Type& p__TM, const INTEGER& p__TimezoneDelta); +extern INTEGER f__UTC__TimestampSeconds(); +extern INTEGER f__UnixEpoch__TimestampSeconds(); +extern INTEGER f__UtranCellId2Int(const UTRAN__CellId__Type& p__CellId); +extern BOOLEAN f__CheckStringStartWith(const CHARSTRING& p__SourceString, const CHARSTRING& p__StartString); +extern BOOLEAN f__EUTRA__FrequencyBandIsFDD(const INTEGER& p__FrequencyBand); +extern INTEGER f__EUTRA__NB__EpsBearerAssociatedDRB(const HEXSTRING& p__EpsBearerId); +extern CHARSTRING_template f__NameValueList__Get(const NameValueList__Type& p__NameValueList, const CHARSTRING& p__Name); + +/* Global variable declarations */ + +extern const TTCN_RAWdescriptor_t B1__Type_raw_; +extern const XERdescriptor_t B1__Type_xer_; +extern const TTCN_OERdescriptor_t B1__Type_oer_; +extern const TTCN_Typedescriptor_t B1__Type_descr_; +extern const TTCN_RAWdescriptor_t B2__Type_raw_; +extern const XERdescriptor_t B2__Type_xer_; +extern const TTCN_OERdescriptor_t B2__Type_oer_; +extern const TTCN_Typedescriptor_t B2__Type_descr_; +extern const TTCN_RAWdescriptor_t B3__Type_raw_; +extern const XERdescriptor_t B3__Type_xer_; +extern const TTCN_OERdescriptor_t B3__Type_oer_; +extern const TTCN_Typedescriptor_t B3__Type_descr_; +extern const TTCN_RAWdescriptor_t B4__Type_raw_; +extern const XERdescriptor_t B4__Type_xer_; +extern const TTCN_OERdescriptor_t B4__Type_oer_; +extern const TTCN_Typedescriptor_t B4__Type_descr_; +extern const TTCN_RAWdescriptor_t B5__Type_raw_; +extern const XERdescriptor_t B5__Type_xer_; +extern const TTCN_OERdescriptor_t B5__Type_oer_; +extern const TTCN_Typedescriptor_t B5__Type_descr_; +extern const TTCN_RAWdescriptor_t B6__Type_raw_; +extern const XERdescriptor_t B6__Type_xer_; +extern const TTCN_OERdescriptor_t B6__Type_oer_; +extern const TTCN_Typedescriptor_t B6__Type_descr_; +extern const TTCN_RAWdescriptor_t B7__Type_raw_; +extern const XERdescriptor_t B7__Type_xer_; +extern const TTCN_OERdescriptor_t B7__Type_oer_; +extern const TTCN_Typedescriptor_t B7__Type_descr_; +extern const XERdescriptor_t B7__15__Type_xer_; +extern const TTCN_OERdescriptor_t B7__15__Type_oer_; +extern const TTCN_Typedescriptor_t B7__15__Type_descr_; +extern const TTCN_RAWdescriptor_t B8__Type_raw_; +extern const XERdescriptor_t B8__Type_xer_; +extern const TTCN_OERdescriptor_t B8__Type_oer_; +extern const TTCN_Typedescriptor_t B8__Type_descr_; +extern const TTCN_RAWdescriptor_t B9__Type_raw_; +extern const XERdescriptor_t B9__Type_xer_; +extern const TTCN_OERdescriptor_t B9__Type_oer_; +extern const TTCN_Typedescriptor_t B9__Type_descr_; +extern const TTCN_RAWdescriptor_t B10__Type_raw_; +extern const XERdescriptor_t B10__Type_xer_; +extern const TTCN_OERdescriptor_t B10__Type_oer_; +extern const TTCN_Typedescriptor_t B10__Type_descr_; +extern const TTCN_RAWdescriptor_t B11__Type_raw_; +extern const XERdescriptor_t B11__Type_xer_; +extern const TTCN_OERdescriptor_t B11__Type_oer_; +extern const TTCN_Typedescriptor_t B11__Type_descr_; +extern const TTCN_RAWdescriptor_t B12__Type_raw_; +extern const XERdescriptor_t B12__Type_xer_; +extern const TTCN_OERdescriptor_t B12__Type_oer_; +extern const TTCN_Typedescriptor_t B12__Type_descr_; +extern const TTCN_RAWdescriptor_t B13__Type_raw_; +extern const XERdescriptor_t B13__Type_xer_; +extern const TTCN_OERdescriptor_t B13__Type_oer_; +extern const TTCN_Typedescriptor_t B13__Type_descr_; +extern const TTCN_RAWdescriptor_t B14__Type_raw_; +extern const XERdescriptor_t B14__Type_xer_; +extern const TTCN_OERdescriptor_t B14__Type_oer_; +extern const TTCN_Typedescriptor_t B14__Type_descr_; +extern const TTCN_RAWdescriptor_t B15__Type_raw_; +extern const XERdescriptor_t B15__Type_xer_; +extern const TTCN_OERdescriptor_t B15__Type_oer_; +extern const TTCN_Typedescriptor_t B15__Type_descr_; +extern const TTCN_RAWdescriptor_t B16__Type_raw_; +extern const XERdescriptor_t B16__Type_xer_; +extern const TTCN_OERdescriptor_t B16__Type_oer_; +extern const TTCN_Typedescriptor_t B16__Type_descr_; +extern const TTCN_RAWdescriptor_t B18__Type_raw_; +extern const XERdescriptor_t B18__Type_xer_; +extern const TTCN_OERdescriptor_t B18__Type_oer_; +extern const TTCN_Typedescriptor_t B18__Type_descr_; +extern const TTCN_RAWdescriptor_t B20__Type_raw_; +extern const XERdescriptor_t B20__Type_xer_; +extern const TTCN_OERdescriptor_t B20__Type_oer_; +extern const TTCN_Typedescriptor_t B20__Type_descr_; +extern const TTCN_RAWdescriptor_t B22__Type_raw_; +extern const XERdescriptor_t B22__Type_xer_; +extern const TTCN_OERdescriptor_t B22__Type_oer_; +extern const TTCN_Typedescriptor_t B22__Type_descr_; +extern const TTCN_RAWdescriptor_t B24__Type_raw_; +extern const XERdescriptor_t B24__Type_xer_; +extern const TTCN_OERdescriptor_t B24__Type_oer_; +extern const TTCN_Typedescriptor_t B24__Type_descr_; +extern const TTCN_RAWdescriptor_t B27__Type_raw_; +extern const XERdescriptor_t B27__Type_xer_; +extern const TTCN_OERdescriptor_t B27__Type_oer_; +extern const TTCN_Typedescriptor_t B27__Type_descr_; +extern const TTCN_RAWdescriptor_t B28__Type_raw_; +extern const XERdescriptor_t B28__Type_xer_; +extern const TTCN_OERdescriptor_t B28__Type_oer_; +extern const TTCN_Typedescriptor_t B28__Type_descr_; +extern const TTCN_RAWdescriptor_t B32__Type_raw_; +extern const XERdescriptor_t B32__Type_xer_; +extern const TTCN_OERdescriptor_t B32__Type_oer_; +extern const TTCN_Typedescriptor_t B32__Type_descr_; +extern const TTCN_RAWdescriptor_t B36__Type_raw_; +extern const XERdescriptor_t B36__Type_xer_; +extern const TTCN_OERdescriptor_t B36__Type_oer_; +extern const TTCN_Typedescriptor_t B36__Type_descr_; +extern const TTCN_RAWdescriptor_t B40__Type_raw_; +extern const XERdescriptor_t B40__Type_xer_; +extern const TTCN_OERdescriptor_t B40__Type_oer_; +extern const TTCN_Typedescriptor_t B40__Type_descr_; +extern const TTCN_RAWdescriptor_t B41__Type_raw_; +extern const XERdescriptor_t B41__Type_xer_; +extern const TTCN_OERdescriptor_t B41__Type_oer_; +extern const TTCN_Typedescriptor_t B41__Type_descr_; +extern const TTCN_RAWdescriptor_t B42__Type_raw_; +extern const XERdescriptor_t B42__Type_xer_; +extern const TTCN_OERdescriptor_t B42__Type_oer_; +extern const TTCN_Typedescriptor_t B42__Type_descr_; +extern const TTCN_RAWdescriptor_t B43__Type_raw_; +extern const XERdescriptor_t B43__Type_xer_; +extern const TTCN_OERdescriptor_t B43__Type_oer_; +extern const TTCN_Typedescriptor_t B43__Type_descr_; +extern const TTCN_RAWdescriptor_t B45__Type_raw_; +extern const XERdescriptor_t B45__Type_xer_; +extern const TTCN_OERdescriptor_t B45__Type_oer_; +extern const TTCN_Typedescriptor_t B45__Type_descr_; +extern const TTCN_RAWdescriptor_t B47__Type_raw_; +extern const XERdescriptor_t B47__Type_xer_; +extern const TTCN_OERdescriptor_t B47__Type_oer_; +extern const TTCN_Typedescriptor_t B47__Type_descr_; +extern const TTCN_RAWdescriptor_t B48__Type_raw_; +extern const XERdescriptor_t B48__Type_xer_; +extern const TTCN_OERdescriptor_t B48__Type_oer_; +extern const TTCN_Typedescriptor_t B48__Type_descr_; +extern const TTCN_RAWdescriptor_t B56__Type_raw_; +extern const XERdescriptor_t B56__Type_xer_; +extern const TTCN_OERdescriptor_t B56__Type_oer_; +extern const TTCN_Typedescriptor_t B56__Type_descr_; +extern const TTCN_RAWdescriptor_t B64__Type_raw_; +extern const XERdescriptor_t B64__Type_xer_; +extern const TTCN_OERdescriptor_t B64__Type_oer_; +extern const TTCN_Typedescriptor_t B64__Type_descr_; +extern const TTCN_RAWdescriptor_t B80__Type_raw_; +extern const XERdescriptor_t B80__Type_xer_; +extern const TTCN_OERdescriptor_t B80__Type_oer_; +extern const TTCN_Typedescriptor_t B80__Type_descr_; +extern const TTCN_RAWdescriptor_t B112__Type_raw_; +extern const XERdescriptor_t B112__Type_xer_; +extern const TTCN_OERdescriptor_t B112__Type_oer_; +extern const TTCN_Typedescriptor_t B112__Type_descr_; +extern const TTCN_RAWdescriptor_t B128__Type_raw_; +extern const XERdescriptor_t B128__Type_xer_; +extern const TTCN_OERdescriptor_t B128__Type_oer_; +extern const TTCN_Typedescriptor_t B128__Type_descr_; +extern const TTCN_RAWdescriptor_t B160__Type_raw_; +extern const XERdescriptor_t B160__Type_xer_; +extern const TTCN_OERdescriptor_t B160__Type_oer_; +extern const TTCN_Typedescriptor_t B160__Type_descr_; +extern const TTCN_RAWdescriptor_t B184__Type_raw_; +extern const XERdescriptor_t B184__Type_xer_; +extern const TTCN_OERdescriptor_t B184__Type_oer_; +extern const TTCN_Typedescriptor_t B184__Type_descr_; +extern const TTCN_RAWdescriptor_t B192__Type_raw_; +extern const XERdescriptor_t B192__Type_xer_; +extern const TTCN_OERdescriptor_t B192__Type_oer_; +extern const TTCN_Typedescriptor_t B192__Type_descr_; +extern const TTCN_RAWdescriptor_t B256__Type_raw_; +extern const XERdescriptor_t B256__Type_xer_; +extern const TTCN_OERdescriptor_t B256__Type_oer_; +extern const TTCN_Typedescriptor_t B256__Type_descr_; +extern const XERdescriptor_t B32__128__Type_xer_; +extern const TTCN_OERdescriptor_t B32__128__Type_oer_; +extern const TTCN_Typedescriptor_t B32__128__Type_descr_; +extern const XERdescriptor_t B128__Key__Type_xer_; +extern const TTCN_OERdescriptor_t B128__Key__Type_oer_; +extern const TTCN_Typedescriptor_t B128__Key__Type_descr_; +extern const XERdescriptor_t B256__Key__Type_xer_; +extern const TTCN_OERdescriptor_t B256__Key__Type_oer_; +extern const TTCN_Typedescriptor_t B256__Key__Type_descr_; +extern const TTCN_RAWdescriptor_t O1__Type_raw_; +extern const XERdescriptor_t O1__Type_xer_; +extern const TTCN_OERdescriptor_t O1__Type_oer_; +extern const TTCN_Typedescriptor_t O1__Type_descr_; +extern const TTCN_RAWdescriptor_t O2__Type_raw_; +extern const XERdescriptor_t O2__Type_xer_; +extern const TTCN_OERdescriptor_t O2__Type_oer_; +extern const TTCN_Typedescriptor_t O2__Type_descr_; +extern const TTCN_RAWdescriptor_t O3__Type_raw_; +extern const XERdescriptor_t O3__Type_xer_; +extern const TTCN_OERdescriptor_t O3__Type_oer_; +extern const TTCN_Typedescriptor_t O3__Type_descr_; +extern const TTCN_RAWdescriptor_t O4__Type_raw_; +extern const XERdescriptor_t O4__Type_xer_; +extern const TTCN_OERdescriptor_t O4__Type_oer_; +extern const TTCN_Typedescriptor_t O4__Type_descr_; +extern const TTCN_RAWdescriptor_t O5__Type_raw_; +extern const XERdescriptor_t O5__Type_xer_; +extern const TTCN_OERdescriptor_t O5__Type_oer_; +extern const TTCN_Typedescriptor_t O5__Type_descr_; +extern const TTCN_RAWdescriptor_t O6__Type_raw_; +extern const XERdescriptor_t O6__Type_xer_; +extern const TTCN_OERdescriptor_t O6__Type_oer_; +extern const TTCN_Typedescriptor_t O6__Type_descr_; +extern const TTCN_RAWdescriptor_t O8__Type_raw_; +extern const XERdescriptor_t O8__Type_xer_; +extern const TTCN_OERdescriptor_t O8__Type_oer_; +extern const TTCN_Typedescriptor_t O8__Type_descr_; +extern const TTCN_RAWdescriptor_t O9__Type_raw_; +extern const XERdescriptor_t O9__Type_xer_; +extern const TTCN_OERdescriptor_t O9__Type_oer_; +extern const TTCN_Typedescriptor_t O9__Type_descr_; +extern const TTCN_RAWdescriptor_t O10__Type_raw_; +extern const XERdescriptor_t O10__Type_xer_; +extern const TTCN_OERdescriptor_t O10__Type_oer_; +extern const TTCN_Typedescriptor_t O10__Type_descr_; +extern const TTCN_RAWdescriptor_t O13__Type_raw_; +extern const XERdescriptor_t O13__Type_xer_; +extern const TTCN_OERdescriptor_t O13__Type_oer_; +extern const TTCN_Typedescriptor_t O13__Type_descr_; +extern const TTCN_RAWdescriptor_t O14__Type_raw_; +extern const XERdescriptor_t O14__Type_xer_; +extern const TTCN_OERdescriptor_t O14__Type_oer_; +extern const TTCN_Typedescriptor_t O14__Type_descr_; +extern const TTCN_RAWdescriptor_t O15__Type_raw_; +extern const XERdescriptor_t O15__Type_xer_; +extern const TTCN_OERdescriptor_t O15__Type_oer_; +extern const TTCN_Typedescriptor_t O15__Type_descr_; +extern const TTCN_RAWdescriptor_t O16__Type_raw_; +extern const XERdescriptor_t O16__Type_xer_; +extern const TTCN_OERdescriptor_t O16__Type_oer_; +extern const TTCN_Typedescriptor_t O16__Type_descr_; +extern const TTCN_RAWdescriptor_t O28__Type_raw_; +extern const XERdescriptor_t O28__Type_xer_; +extern const TTCN_OERdescriptor_t O28__Type_oer_; +extern const TTCN_Typedescriptor_t O28__Type_descr_; +extern const TTCN_RAWdescriptor_t O32__Type_raw_; +extern const XERdescriptor_t O32__Type_xer_; +extern const TTCN_OERdescriptor_t O32__Type_oer_; +extern const TTCN_Typedescriptor_t O32__Type_descr_; +extern const TTCN_RAWdescriptor_t O43__Type_raw_; +extern const XERdescriptor_t O43__Type_xer_; +extern const TTCN_OERdescriptor_t O43__Type_oer_; +extern const TTCN_Typedescriptor_t O43__Type_descr_; +extern const TTCN_RAWdescriptor_t H1__Type_raw_; +extern const XERdescriptor_t H1__Type_xer_; +extern const TTCN_Typedescriptor_t H1__Type_descr_; +extern const TTCN_RAWdescriptor_t H2__Type_raw_; +extern const XERdescriptor_t H2__Type_xer_; +extern const TTCN_Typedescriptor_t H2__Type_descr_; +extern const TTCN_RAWdescriptor_t H4__Type_raw_; +extern const XERdescriptor_t H4__Type_xer_; +extern const TTCN_Typedescriptor_t H4__Type_descr_; +extern const TTCN_RAWdescriptor_t H12__Type_raw_; +extern const XERdescriptor_t H12__Type_xer_; +extern const TTCN_Typedescriptor_t H12__Type_descr_; +extern const TTCN_RAWdescriptor_t H14__Type_raw_; +extern const XERdescriptor_t H14__Type_xer_; +extern const TTCN_Typedescriptor_t H14__Type_descr_; +extern const XERdescriptor_t Octet__Type_xer_; +extern const TTCN_OERdescriptor_t Octet__Type_oer_; +extern const TTCN_Typedescriptor_t Octet__Type_descr_; +extern const TTCN_RAWdescriptor_t HalfOctet__Type_raw_; +extern const XERdescriptor_t HalfOctet__Type_xer_; +extern const TTCN_Typedescriptor_t HalfOctet__Type_descr_; +extern const TTCN_Typedescriptor_t B8__List__Type_descr_; +extern const XERdescriptor_t B8__List__Type_0_xer_; +extern const TTCN_OERdescriptor_t B8__List__Type_0_oer_; +extern const TTCN_Typedescriptor_t B8__List__Type_0_descr_; +extern const XERdescriptor_t Null__Type_xer_; +extern const TTCN_OERdescriptor_t Null__Type_oer_; +extern const TTCN_Typedescriptor_t Null__Type_descr_; +extern const XERdescriptor_t Dummy__Type_xer_; +extern const TTCN_OERdescriptor_t Dummy__Type_oer_; +extern const TTCN_Typedescriptor_t Dummy__Type_descr_; +extern const INTEGER& tsc__UInt7Max; +extern INTEGER const_tsc__UInt7Max; +extern const INTEGER& tsc__UInt8Max; +extern INTEGER const_tsc__UInt8Max; +extern const INTEGER& tsc__UInt16Max; +extern INTEGER const_tsc__UInt16Max; +extern const INTEGER& tsc__UInt20Max; +extern INTEGER const_tsc__UInt20Max; +extern const INTEGER& tsc__UInt24Max; +extern INTEGER const_tsc__UInt24Max; +extern const INTEGER& tsc__UInt32Max; +extern INTEGER const_tsc__UInt32Max; +extern const XERdescriptor_t UInt__Type_xer_; +extern const TTCN_OERdescriptor_t UInt__Type_oer_; +extern const TTCN_Typedescriptor_t UInt__Type_descr_; +extern const XERdescriptor_t UInt8__Type_xer_; +extern const TTCN_OERdescriptor_t UInt8__Type_oer_; +extern const TTCN_Typedescriptor_t UInt8__Type_descr_; +extern const XERdescriptor_t UInt16__Type_xer_; +extern const TTCN_OERdescriptor_t UInt16__Type_oer_; +extern const TTCN_Typedescriptor_t UInt16__Type_descr_; +extern const XERdescriptor_t UInt20__Type_xer_; +extern const TTCN_OERdescriptor_t UInt20__Type_oer_; +extern const TTCN_Typedescriptor_t UInt20__Type_descr_; +extern const XERdescriptor_t UInt24__Type_xer_; +extern const TTCN_OERdescriptor_t UInt24__Type_oer_; +extern const TTCN_Typedescriptor_t UInt24__Type_descr_; +extern const XERdescriptor_t UInt32__Type_xer_; +extern const TTCN_OERdescriptor_t UInt32__Type_oer_; +extern const TTCN_Typedescriptor_t UInt32__Type_descr_; +extern const XERdescriptor_t UE__TestLoopMode__Type_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopMode__Type_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopMode__Type_descr_; +extern const TTCN_RAWdescriptor_t Char1__Type_raw_; +extern const XERdescriptor_t Char1__Type_xer_; +extern const TTCN_Typedescriptor_t Char1__Type_descr_; +extern const TTCN_RAWdescriptor_t Char3__Type_raw_; +extern const XERdescriptor_t Char3__Type_xer_; +extern const TTCN_Typedescriptor_t Char3__Type_descr_; +extern const TTCN_Typedescriptor_t Char1List__Type_descr_; +extern const XERdescriptor_t Char1List__Type_0_xer_; +extern const TTCN_Typedescriptor_t Char1List__Type_0_descr_; +extern const TTCN_Typedescriptor_t CharStringList__Type_descr_; +extern const XERdescriptor_t CharStringList__Type_0_xer_; +extern const TTCN_Typedescriptor_t CharStringList__Type_0_descr_; +extern const TTCN_Typedescriptor_t SetOfCharString__Type_descr_; +extern const XERdescriptor_t SetOfCharString__Type_0_xer_; +extern const TTCN_Typedescriptor_t SetOfCharString__Type_0_descr_; +extern const TTCN_Typedescriptor_t OctetStringList__Type_descr_; +extern const XERdescriptor_t OctetStringList__Type_0_xer_; +extern const TTCN_OERdescriptor_t OctetStringList__Type_0_oer_; +extern const TTCN_Typedescriptor_t OctetStringList__Type_0_descr_; +extern const TTCN_Typedescriptor_t BitStringList__Type_descr_; +extern const XERdescriptor_t BitStringList__Type_0_xer_; +extern const TTCN_OERdescriptor_t BitStringList__Type_0_oer_; +extern const TTCN_Typedescriptor_t BitStringList__Type_0_descr_; +extern const TTCN_Typedescriptor_t IntegerList__Type_descr_; +extern const XERdescriptor_t IntegerList__Type_0_xer_; +extern const TTCN_OERdescriptor_t IntegerList__Type_0_oer_; +extern const TTCN_Typedescriptor_t IntegerList__Type_0_descr_; +extern const XERdescriptor_t NameValue__Type_Name_xer_; +extern const TTCN_Typedescriptor_t NameValue__Type_Name_descr_; +extern const XERdescriptor_t NameValue__Type_Value_xer_; +extern const TTCN_Typedescriptor_t NameValue__Type_Value_descr_; +extern const TTCN_Typedescriptor_t NameValue__Type_descr_; +extern const TTCN_Typedescriptor_t NameValueList__Type_descr_; +extern const INTEGER& tsc__DirectionUL; +extern INTEGER const_tsc__DirectionUL; +extern const INTEGER& tsc__DirectionDL; +extern INTEGER const_tsc__DirectionDL; +extern const OCTETSTRING& tsc__WLAN__SSID__AP1; +extern OCTETSTRING const_tsc__WLAN__SSID__AP1; +extern const XERdescriptor_t MAC__Direction__Type_xer_; +extern const TTCN_OERdescriptor_t MAC__Direction__Type_oer_; +extern const TTCN_Typedescriptor_t MAC__Direction__Type_descr_; +extern const TTCN_Typedescriptor_t IndicationAndControlMode__Type_descr_; +extern const TTCN_Typedescriptor_t SinglePLMN__TestedType_descr_; +extern const TTCN_Typedescriptor_t EUTRA__ATTACH__TESTED__Type_descr_; +extern const TTCN_Typedescriptor_t EUTRA__FDD__TDD__Mode__Type_descr_; +extern const TTCN_Typedescriptor_t UTRAN__FDD__TDD__Type_descr_; +extern const TTCN_Typedescriptor_t RATComb__Tested__Type_descr_; +extern const TTCN_Typedescriptor_t RRCConnectionReleaseRequired__Type_descr_; +extern const TTCN_Typedescriptor_t NTN__Satellite__Type_descr_; +extern const TTCN_Typedescriptor_t NGC__CellId__Type_descr_; +extern const TTCN_Typedescriptor_t NR__CellId__Type_descr_; +extern const TTCN_Typedescriptor_t NR__CellIdList__Type_descr_; +extern const TTCN_Typedescriptor_t EUTRA__CellId__Type_descr_; +extern const TTCN_Typedescriptor_t EUTRA__CellIdList__Type_descr_; +extern const TTCN_Typedescriptor_t UTRAN__CellId__Type_descr_; +extern const TTCN_Typedescriptor_t UTRAN__CellIdList__Type_descr_; +extern const TTCN_Typedescriptor_t WLAN__CellId__Type_descr_; +extern const XERdescriptor_t DeltaValues__Type_DeltaNRf1_xer_; +extern const TTCN_OERdescriptor_t DeltaValues__Type_DeltaNRf1_oer_; +extern const TTCN_Typedescriptor_t DeltaValues__Type_DeltaNRf1_descr_; +extern const XERdescriptor_t DeltaValues__Type_DeltaNRf2_xer_; +extern const TTCN_OERdescriptor_t DeltaValues__Type_DeltaNRf2_oer_; +extern const TTCN_Typedescriptor_t DeltaValues__Type_DeltaNRf2_descr_; +extern const XERdescriptor_t DeltaValues__Type_DeltaNRf3_xer_; +extern const TTCN_OERdescriptor_t DeltaValues__Type_DeltaNRf3_oer_; +extern const TTCN_Typedescriptor_t DeltaValues__Type_DeltaNRf3_descr_; +extern const XERdescriptor_t DeltaValues__Type_DeltaNRf4_xer_; +extern const TTCN_OERdescriptor_t DeltaValues__Type_DeltaNRf4_oer_; +extern const TTCN_Typedescriptor_t DeltaValues__Type_DeltaNRf4_descr_; +extern const TTCN_Typedescriptor_t DeltaValues__Type_descr_; +extern const TTCN_Typedescriptor_t UE__NR__DeltaValues__Type_descr_; +extern const TTCN_Typedescriptor_t AnyCellId__Type_descr_; +extern const XERdescriptor_t IP__DrbId__Type_xer_; +extern const TTCN_OERdescriptor_t IP__DrbId__Type_oer_; +extern const TTCN_Typedescriptor_t IP__DrbId__Type_descr_; +extern const TTCN_Typedescriptor_t IP__EUTRA__DrbInfo__Type_descr_; +extern const XERdescriptor_t IP__EUTRA__DrbInfo__Type_DrbId_xer_; +extern const TTCN_OERdescriptor_t IP__EUTRA__DrbInfo__Type_DrbId_oer_; +extern const TTCN_Typedescriptor_t IP__EUTRA__DrbInfo__Type_DrbId_descr_; +extern const XERdescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_CellId_xer_; +extern const TTCN_OERdescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_CellId_oer_; +extern const TTCN_Typedescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_CellId_descr_; +extern const TTCN_Typedescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_descr_; +extern const XERdescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_DrbId_xer_; +extern const TTCN_OERdescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_DrbId_oer_; +extern const TTCN_Typedescriptor_t IP__UTRAN__GERAN__DrbInfo__Type_DrbId_descr_; +extern const XERdescriptor_t IP__WLAN__DrbInfo__Type_CellId_xer_; +extern const TTCN_OERdescriptor_t IP__WLAN__DrbInfo__Type_CellId_oer_; +extern const TTCN_Typedescriptor_t IP__WLAN__DrbInfo__Type_CellId_descr_; +extern const TTCN_Typedescriptor_t IP__WLAN__DrbInfo__Type_descr_; +extern const TTCN_Typedescriptor_t PDN__Index__Type_descr_; +extern const TTCN_Typedescriptor_t IP__ePDG__IPsecTunnelInfo__Type_descr_; +extern const XERdescriptor_t QosFlow__Identification__Type_PDU__SessionId_xer_; +extern const TTCN_OERdescriptor_t QosFlow__Identification__Type_PDU__SessionId_oer_; +extern const TTCN_Typedescriptor_t QosFlow__Identification__Type_PDU__SessionId_descr_; +extern const XERdescriptor_t QosFlow__Identification__Type_QFI_xer_; +extern const TTCN_OERdescriptor_t QosFlow__Identification__Type_QFI_oer_; +extern const TTCN_Typedescriptor_t QosFlow__Identification__Type_QFI_descr_; +extern const TTCN_Typedescriptor_t QosFlow__Identification__Type_descr_; +extern const TTCN_Typedescriptor_t IP__NR__QosFlowInfo__Type_descr_; +extern const TTCN_Typedescriptor_t IP__EUTRA__QosFlowInfo__Type_descr_; +extern const TTCN_Typedescriptor_t IP__NR__DrbInfo__Type_descr_; +extern const XERdescriptor_t IP__NR__DrbInfo__Type_DrbId_xer_; +extern const TTCN_OERdescriptor_t IP__NR__DrbInfo__Type_DrbId_oer_; +extern const TTCN_Typedescriptor_t IP__NR__DrbInfo__Type_DrbId_descr_; +extern const TTCN_Typedescriptor_t IP__DrbInfo__Type_descr_; +extern const TTCN_Typedescriptor_t GPRS__CipheringAlgorithm__Type_descr_; +extern const XERdescriptor_t MessageAuthenticationCode_xer_; +extern const TTCN_OERdescriptor_t MessageAuthenticationCode_oer_; +extern const TTCN_Typedescriptor_t MessageAuthenticationCode_descr_; +extern const XERdescriptor_t NasCount__Type_xer_; +extern const TTCN_OERdescriptor_t NasCount__Type_oer_; +extern const TTCN_Typedescriptor_t NasCount__Type_descr_; +extern const XERdescriptor_t PdcpCountValue__Type_xer_; +extern const TTCN_OERdescriptor_t PdcpCountValue__Type_oer_; +extern const TTCN_Typedescriptor_t PdcpCountValue__Type_descr_; +extern const TTCN_Typedescriptor_t IPCAN__RAN__Type_descr_; +extern const TTCN_Typedescriptor_t IRAT__ConfiguredPTCs__Type_descr_; +extern const FLOAT& tsc__GuardTimePreamble; +extern FLOAT const_tsc__GuardTimePreamble; +extern const FLOAT& tsc__GuardTimePreamble__12min; +extern FLOAT const_tsc__GuardTimePreamble__12min; +extern const INTEGER& tsc__NoOfPDNs; +extern INTEGER const_tsc__NoOfPDNs; +extern const INTEGER& tsc__NoOfIMSPDNs; +extern INTEGER const_tsc__NoOfIMSPDNs; +extern const INTEGER& tsc__Index__IMS1; +extern INTEGER const_tsc__Index__IMS1; +extern const INTEGER& tsc__Index__IMS2; +extern INTEGER const_tsc__Index__IMS2; +extern const INTEGER& tsc__EUTRA__MaxEARFCN; +extern INTEGER const_tsc__EUTRA__MaxEARFCN; +extern const INTEGER& tsc__Max__NR__PDCP__SDU__size; +extern INTEGER const_tsc__Max__NR__PDCP__SDU__size; +extern const INTEGER& tsc__Max__LTE__PDCP__SDU__size; +extern INTEGER const_tsc__Max__LTE__PDCP__SDU__size; +extern const XERdescriptor_t RNTI__Value__Type_xer_; +extern const TTCN_OERdescriptor_t RNTI__Value__Type_oer_; +extern const TTCN_Typedescriptor_t RNTI__Value__Type_descr_; +extern const XERdescriptor_t RNTI__B16__Type_xer_; +extern const TTCN_OERdescriptor_t RNTI__B16__Type_oer_; +extern const TTCN_Typedescriptor_t RNTI__B16__Type_descr_; +extern const INTEGER& tsc__C__RNTI__Value1; +extern INTEGER const_tsc__C__RNTI__Value1; +extern const INTEGER& tsc__C__RNTI__Value2; +extern INTEGER const_tsc__C__RNTI__Value2; +extern const INTEGER& tsc__C__RNTI__Value3; +extern INTEGER const_tsc__C__RNTI__Value3; +extern const INTEGER& tsc__C__RNTI__Value4; +extern INTEGER const_tsc__C__RNTI__Value4; +extern const INTEGER& tsc__C__RNTI__Value5; +extern INTEGER const_tsc__C__RNTI__Value5; +extern const INTEGER& tsc__C__RNTI__Value6; +extern INTEGER const_tsc__C__RNTI__Value6; +extern const INTEGER& tsc__C__RNTI__Value7; +extern INTEGER const_tsc__C__RNTI__Value7; +extern const INTEGER& tsc__C__RNTI__Value8; +extern INTEGER const_tsc__C__RNTI__Value8; +extern const INTEGER& tsc__C__RNTI__Value9; +extern INTEGER const_tsc__C__RNTI__Value9; +extern const INTEGER& tsc__C__RNTI__Value10; +extern INTEGER const_tsc__C__RNTI__Value10; +extern const BITSTRING& tsc__C__RNTI__Def; +extern BITSTRING const_tsc__C__RNTI__Def; +extern const BITSTRING& tsc__C__RNTI__Def2; +extern BITSTRING const_tsc__C__RNTI__Def2; +extern const BITSTRING& tsc__C__RNTI__Def3; +extern BITSTRING const_tsc__C__RNTI__Def3; +extern const BITSTRING& tsc__C__RNTI__Def4; +extern BITSTRING const_tsc__C__RNTI__Def4; +extern const BITSTRING& tsc__C__RNTI__Def5; +extern BITSTRING const_tsc__C__RNTI__Def5; +extern const BITSTRING& tsc__C__RNTI__Def6; +extern BITSTRING const_tsc__C__RNTI__Def6; +extern const BITSTRING& tsc__C__RNTI__Def7; +extern BITSTRING const_tsc__C__RNTI__Def7; +extern const BITSTRING& tsc__C__RNTI__Def8; +extern BITSTRING const_tsc__C__RNTI__Def8; +extern const BITSTRING& tsc__C__RNTI__Def9; +extern BITSTRING const_tsc__C__RNTI__Def9; +extern const BITSTRING& tsc__C__RNTI__Def10; +extern BITSTRING const_tsc__C__RNTI__Def10; +extern const OCTETSTRING_template& cr__Octet10__Any; +extern OCTETSTRING_template template_cr__Octet10__Any; +extern const OCTETSTRING& tsc__RandomPRBS; +extern OCTETSTRING const_tsc__RandomPRBS; +extern const CHARSTRING& tsc__AT__ResultOK; +extern CHARSTRING const_tsc__AT__ResultOK; +extern const CHARSTRING& tsc__Fox; +extern CHARSTRING const_tsc__Fox; +extern const CHARSTRING& tsc__Fox__PDU; +extern CHARSTRING const_tsc__Fox__PDU; +extern const CHARSTRING& tsc__FoxShort; +extern CHARSTRING const_tsc__FoxShort; +extern const CHARSTRING& tsc__CarriageReturnLineFeed; +extern CHARSTRING const_tsc__CarriageReturnLineFeed; +extern const OCTETSTRING& tsc__Oct1000__0; +extern OCTETSTRING const_tsc__Oct1000__0; +extern const TTCN_Typedescriptor_t VerdictCtrl__Type_descr_; +extern const TTCN_Typedescriptor_t HarqErrorHandling__Type_descr_; +extern const XERdescriptor_t LineNo__Type_xer_; +extern const TTCN_OERdescriptor_t LineNo__Type_oer_; +extern const TTCN_Typedescriptor_t LineNo__Type_descr_; +extern const INTEGER& f__StringFindChar_p__StartIndex_defval; +extern INTEGER const_f__StringFindChar_p__StartIndex_defval; +extern const CHARSTRING& f__StringSplitLines_p__Delimitor_defval; +extern CHARSTRING const_f__StringSplitLines_p__Delimitor_defval; +extern const CHARSTRING& f__StringJoin_p__JoinString_defval; +extern CHARSTRING const_f__StringJoin_p__JoinString_defval; +extern const TTCN_Typedescriptor_t Gsm7BitPacking__Type_descr_; +extern const VALUE_ARRAY, 95, 32>& tsc__Gsm7BitLookup; +extern VALUE_ARRAY, 95, 32> const_tsc__Gsm7BitLookup; +extern const INTEGER& f__CharPacking__IA5toGsm7Bit_p__NumFillbits_defval; +extern INTEGER const_f__CharPacking__IA5toGsm7Bit_p__NumFillbits_defval; +extern const INTEGER& tsc__KDF__HMAC__SHA__256; +extern INTEGER const_tsc__KDF__HMAC__SHA__256; +extern const INTEGER& tsc__KDF__Spare3; +extern INTEGER const_tsc__KDF__Spare3; +extern const XERdescriptor_t KDF__Type_xer_; +extern const TTCN_OERdescriptor_t KDF__Type_oer_; +extern const TTCN_Typedescriptor_t KDF__Type_descr_; +extern const XERdescriptor_t Struct__tm__Type_tm__sec_xer_; +extern const TTCN_OERdescriptor_t Struct__tm__Type_tm__sec_oer_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_tm__sec_descr_; +extern const XERdescriptor_t Struct__tm__Type_tm__min_xer_; +extern const TTCN_OERdescriptor_t Struct__tm__Type_tm__min_oer_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_tm__min_descr_; +extern const XERdescriptor_t Struct__tm__Type_tm__hour_xer_; +extern const TTCN_OERdescriptor_t Struct__tm__Type_tm__hour_oer_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_tm__hour_descr_; +extern const XERdescriptor_t Struct__tm__Type_tm__mday_xer_; +extern const TTCN_OERdescriptor_t Struct__tm__Type_tm__mday_oer_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_tm__mday_descr_; +extern const XERdescriptor_t Struct__tm__Type_tm__mon_xer_; +extern const TTCN_OERdescriptor_t Struct__tm__Type_tm__mon_oer_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_tm__mon_descr_; +extern const XERdescriptor_t Struct__tm__Type_tm__year_xer_; +extern const TTCN_OERdescriptor_t Struct__tm__Type_tm__year_oer_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_tm__year_descr_; +extern const XERdescriptor_t Struct__tm__Type_tm__wday_xer_; +extern const TTCN_OERdescriptor_t Struct__tm__Type_tm__wday_oer_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_tm__wday_descr_; +extern const XERdescriptor_t Struct__tm__Type_tm__yday_xer_; +extern const TTCN_OERdescriptor_t Struct__tm__Type_tm__yday_oer_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_tm__yday_descr_; +extern const XERdescriptor_t Struct__tm__Type_tm__isdst_xer_; +extern const TTCN_OERdescriptor_t Struct__tm__Type_tm__isdst_oer_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_tm__isdst_descr_; +extern const TTCN_Typedescriptor_t Struct__tm__Type_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/CommonDefs.o b/build/Ats_NG_NAS/CommonDefs.o new file mode 100644 index 0000000000000000000000000000000000000000..e0389ae9e8b929238fc8e6a42e0d29e713e997dc Binary files /dev/null and b/build/Ats_NG_NAS/CommonDefs.o differ diff --git a/build/Ats_NG_NAS/CommonIP.cc b/build/Ats_NG_NAS/CommonIP.cc new file mode 100644 index 0000000000000000000000000000000000000000..81c22e2eee2906d2eb9805877cd71c6db1960634 --- /dev/null +++ b/build/Ats_NG_NAS/CommonIP.cc @@ -0,0 +1,2816 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "CommonIP.hh" + +namespace CommonIP { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char hs_0_nibbles[] = { 6 }; +static const HEXSTRING hs_0(1, hs_0_nibbles); +static const unsigned char os_4_octets[] = { 0 }, +os_3_octets[] = { 0, 0 }, +os_6_octets[] = { 0, 0, 0, 58 }, +os_1_octets[] = { 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204, 221, 238, 255 }, +os_5_octets[] = { 254, 128, 0, 0, 0, 0, 0, 0 }, +os_0_octets[] = { 255, 2 }; +static const OCTETSTRING os_2(0, NULL), +os_4(1, os_4_octets), +os_3(2, os_3_octets), +os_6(4, os_6_octets), +os_1(16, os_1_octets), +os_5(8, os_5_octets), +os_0(2, os_0_octets); +static const CHARSTRING cs_13(0, NULL), +cs_5(')'), +cs_8('.'), +cs_0(55, "/home/yanng/dev/nas/ttcn/Lib3GPP/CommonIP/CommonIP.ttcn"), +cs_12('0'), +cs_11(2, "00"), +cs_10(3, "000"), +cs_16(15, "3gppnetwork.org"), +cs_3(':'), +cs_18('@'), +cs_1(17, "Invalid PDN index"), +cs_6('['), +cs_2(33, "[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+"), +cs_4(13, "[0-9a-fA-F]#("), +cs_7(']'), +cs_17(3, "ims"), +cs_9(18, "invalid IP Address"), +cs_15(3, "mcc"), +cs_14(3, "mnc"), +cs_19(4, "sip:"); +static const unsigned char module_checksum[] = { 0xc2, 0x40, 0x6c, 0x7e, 0x80, 0xd6, 0x4d, 0x71, 0x47, 0x10, 0x79, 0xb9, 0xbf, 0x31, 0x75, 0xe3 }; + +/* Global variable definitions */ + +INTEGER const_tsc__IMS__MediaPort__M1; +const INTEGER& tsc__IMS__MediaPort__M1 = const_tsc__IMS__MediaPort__M1; +INTEGER const_tsc__IMS__MediaPort__M2; +const INTEGER& tsc__IMS__MediaPort__M2 = const_tsc__IMS__MediaPort__M2; +INTEGER const_tsc__IMS__MediaPort__M3; +const INTEGER& tsc__IMS__MediaPort__M3 = const_tsc__IMS__MediaPort__M3; +INTEGER const_tsc__PortNumberHTTP; +const INTEGER& tsc__PortNumberHTTP = const_tsc__PortNumberHTTP; +INTEGER const_tsc__PortNumberHTTPS; +const INTEGER& tsc__PortNumberHTTPS = const_tsc__PortNumberHTTPS; +INTEGER const_tsc__IP__Protocol__ICMP; +const INTEGER& tsc__IP__Protocol__ICMP = const_tsc__IP__Protocol__ICMP; +INTEGER const_tsc__IP__Protocol__UDP; +const INTEGER& tsc__IP__Protocol__UDP = const_tsc__IP__Protocol__UDP; +INTEGER const_tsc__ICMP__Type__EchoReply; +const INTEGER& tsc__ICMP__Type__EchoReply = const_tsc__ICMP__Type__EchoReply; +INTEGER const_tsc__ICMPv6__Type__EchoReply; +const INTEGER& tsc__ICMPv6__Type__EchoReply = const_tsc__ICMPv6__Type__EchoReply; +INTEGER const_tsc__ICMP__Type__EchoRequest; +const INTEGER& tsc__ICMP__Type__EchoRequest = const_tsc__ICMP__Type__EchoRequest; +INTEGER const_tsc__ICMPv6__Type__EchoRequest; +const INTEGER& tsc__ICMPv6__Type__EchoRequest = const_tsc__ICMPv6__Type__EchoRequest; +INTEGER const_tsc__IP__Protocol__TCP; +const INTEGER& tsc__IP__Protocol__TCP = const_tsc__IP__Protocol__TCP; +INTEGER const_tsc__IP__Protocol__IPSec; +const INTEGER& tsc__IP__Protocol__IPSec = const_tsc__IP__Protocol__IPSec; +INTEGER const_tsc__IP__Protocol__ICMPv6; +const INTEGER& tsc__IP__Protocol__ICMPv6 = const_tsc__IP__Protocol__ICMPv6; +INTEGER const_tsc__IMS__PortNumber__5060; +const INTEGER& tsc__IMS__PortNumber__5060 = const_tsc__IMS__PortNumber__5060; +OCTETSTRING const_tsc__MulticastPrefix__FF02; +const OCTETSTRING& tsc__MulticastPrefix__FF02 = const_tsc__MulticastPrefix__FF02; +OCTETSTRING const_tsc__IP__AnyData; +const OCTETSTRING& tsc__IP__AnyData = const_tsc__IP__AnyData; +const XERdescriptor_t PDN__AddressInfo__Type_UE__IPAddressIPv4_xer_ = { {"UE_IPAddressIPv4>\n", "UE_IPAddressIPv4>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_UE__IPAddressIPv4_descr_ = { "@CommonIP.PDN_AddressInfo_Type.UE_IPAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_UE__IPAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_UE__IPAddressIPv6_xer_ = { {"UE_IPAddressIPv6>\n", "UE_IPAddressIPv6>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_UE__IPAddressIPv6_descr_ = { "@CommonIP.PDN_AddressInfo_Type.UE_IPAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_UE__IPAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_Remote__IPAddressIPv4_xer_ = { {"Remote_IPAddressIPv4>\n", "Remote_IPAddressIPv4>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_Remote__IPAddressIPv4_descr_ = { "@CommonIP.PDN_AddressInfo_Type.Remote_IPAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_Remote__IPAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_Remote__IPAddressIPv6_xer_ = { {"Remote_IPAddressIPv6>\n", "Remote_IPAddressIPv6>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_Remote__IPAddressIPv6_descr_ = { "@CommonIP.PDN_AddressInfo_Type.Remote_IPAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_Remote__IPAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_DHCP__ServerAddress_xer_ = { {"DHCP_ServerAddress>\n", "DHCP_ServerAddress>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_DHCP__ServerAddress_descr_ = { "@CommonIP.PDN_AddressInfo_Type.DHCP_ServerAddress", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_DHCP__ServerAddress_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_ICMPv6__ServerAddress_xer_ = { {"ICMPv6_ServerAddress>\n", "ICMPv6_ServerAddress>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_ICMPv6__ServerAddress_descr_ = { "@CommonIP.PDN_AddressInfo_Type.ICMPv6_ServerAddress", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_ICMPv6__ServerAddress_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_PCSCF__IPAddressIPv4_xer_ = { {"PCSCF_IPAddressIPv4>\n", "PCSCF_IPAddressIPv4>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_PCSCF__IPAddressIPv4_descr_ = { "@CommonIP.PDN_AddressInfo_Type.PCSCF_IPAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_PCSCF__IPAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_PCSCF__IPAddressIPv6_xer_ = { {"PCSCF_IPAddressIPv6>\n", "PCSCF_IPAddressIPv6>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_PCSCF__IPAddressIPv6_descr_ = { "@CommonIP.PDN_AddressInfo_Type.PCSCF_IPAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_PCSCF__IPAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_DNS__ServerAddressIPv4_xer_ = { {"DNS_ServerAddressIPv4>\n", "DNS_ServerAddressIPv4>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_DNS__ServerAddressIPv4_descr_ = { "@CommonIP.PDN_AddressInfo_Type.DNS_ServerAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_DNS__ServerAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_DNS__ServerAddressIPv6_xer_ = { {"DNS_ServerAddressIPv6>\n", "DNS_ServerAddressIPv6>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_DNS__ServerAddressIPv6_descr_ = { "@CommonIP.PDN_AddressInfo_Type.DNS_ServerAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_DNS__ServerAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_XCAP__ServerAddressIPv4_xer_ = { {"XCAP_ServerAddressIPv4>\n", "XCAP_ServerAddressIPv4>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_XCAP__ServerAddressIPv4_descr_ = { "@CommonIP.PDN_AddressInfo_Type.XCAP_ServerAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_XCAP__ServerAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_XCAP__ServerAddressIPv6_xer_ = { {"XCAP_ServerAddressIPv6>\n", "XCAP_ServerAddressIPv6>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_XCAP__ServerAddressIPv6_descr_ = { "@CommonIP.PDN_AddressInfo_Type.XCAP_ServerAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_XCAP__ServerAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_ProSe__ServerAddressIPv4_xer_ = { {"ProSe_ServerAddressIPv4>\n", "ProSe_ServerAddressIPv4>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_ProSe__ServerAddressIPv4_descr_ = { "@CommonIP.PDN_AddressInfo_Type.ProSe_ServerAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_ProSe__ServerAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__AddressInfo__Type_ProSe__ServerAddressIPv6_xer_ = { {"ProSe_ServerAddressIPv6>\n", "ProSe_ServerAddressIPv6>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_ProSe__ServerAddressIPv6_descr_ = { "@CommonIP.PDN_AddressInfo_Type.ProSe_ServerAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &PDN__AddressInfo__Type_ProSe__ServerAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDN__AddressInfo__Type +const TTCN_Typedescriptor_t PDN__AddressInfo__Type_descr_ = { "@CommonIP.PDN_AddressInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +PDN__AddressInfo__Type const_tsc__PDN1__AddressInfo; +const PDN__AddressInfo__Type& tsc__PDN1__AddressInfo = const_tsc__PDN1__AddressInfo; +PDN__AddressInfo__Type const_tsc__PDN2__AddressInfo; +const PDN__AddressInfo__Type& tsc__PDN2__AddressInfo = const_tsc__PDN2__AddressInfo; +PDN__AddressInfo__Type const_tsc__PDN3__AddressInfo; +const PDN__AddressInfo__Type& tsc__PDN3__AddressInfo = const_tsc__PDN3__AddressInfo; +PDN__AddressInfo__Type const_tsc__PDN4__AddressInfo; +const PDN__AddressInfo__Type& tsc__PDN4__AddressInfo = const_tsc__PDN4__AddressInfo; +PDN__AddressInfo__Type const_tsc__PDN5__AddressInfo; +const PDN__AddressInfo__Type& tsc__PDN5__AddressInfo = const_tsc__PDN5__AddressInfo; +PDN__AddressInfo__Type const_tsc__PDN6__AddressInfo; +const PDN__AddressInfo__Type& tsc__PDN6__AddressInfo = const_tsc__PDN6__AddressInfo; +VALUE_ARRAY const_tsc__PDN__AddressInfo; +const VALUE_ARRAY& tsc__PDN__AddressInfo = const_tsc__PDN__AddressInfo; +const XERdescriptor_t WLAN__AddressInfo__Type_UE__IPAddressIPv4_xer_ = { {"UE_IPAddressIPv4>\n", "UE_IPAddressIPv4>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_UE__IPAddressIPv4_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.UE_IPAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_UE__IPAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLAN__AddressInfo__Type_UE__IPAddressIPv6_xer_ = { {"UE_IPAddressIPv6>\n", "UE_IPAddressIPv6>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_UE__IPAddressIPv6_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.UE_IPAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_UE__IPAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLAN__AddressInfo__Type_DNS__ServerAddressIPv4_xer_ = { {"DNS_ServerAddressIPv4>\n", "DNS_ServerAddressIPv4>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_DNS__ServerAddressIPv4_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.DNS_ServerAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_DNS__ServerAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLAN__AddressInfo__Type_DNS__ServerAddressIPv6_xer_ = { {"DNS_ServerAddressIPv6>\n", "DNS_ServerAddressIPv6>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_DNS__ServerAddressIPv6_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.DNS_ServerAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_DNS__ServerAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLAN__AddressInfo__Type_EPDG__ServerAddressIPv4_xer_ = { {"EPDG_ServerAddressIPv4>\n", "EPDG_ServerAddressIPv4>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_EPDG__ServerAddressIPv4_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.EPDG_ServerAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_EPDG__ServerAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLAN__AddressInfo__Type_EPDG__ServerAddressIPv6_xer_ = { {"EPDG_ServerAddressIPv6>\n", "EPDG_ServerAddressIPv6>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_EPDG__ServerAddressIPv6_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.EPDG_ServerAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_EPDG__ServerAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv4_xer_ = { {"EmergencyEPDG_ServerAddressIPv4>\n", "EmergencyEPDG_ServerAddressIPv4>\n"}, {33, 33}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv4_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.EmergencyEPDG_ServerAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv6_xer_ = { {"EmergencyEPDG_ServerAddressIPv6>\n", "EmergencyEPDG_ServerAddressIPv6>\n"}, {33, 33}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv6_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.EmergencyEPDG_ServerAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv4_xer_ = { {"Non3GPP_XCAP_ServerAddressIPv4>\n", "Non3GPP_XCAP_ServerAddressIPv4>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv4_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.Non3GPP_XCAP_ServerAddressIPv4", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv6_xer_ = { {"Non3GPP_XCAP_ServerAddressIPv6>\n", "Non3GPP_XCAP_ServerAddressIPv6>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv6_descr_ = { "@CommonIP.WLAN_AddressInfo_Type.Non3GPP_XCAP_ServerAddressIPv6", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for WLAN__AddressInfo__Type +const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_descr_ = { "@CommonIP.WLAN_AddressInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +OCTETSTRING const_f__IPv6Packet__Create_p__TrafficClass_defval; +const OCTETSTRING& f__IPv6Packet__Create_p__TrafficClass_defval = const_f__IPv6Packet__Create_p__TrafficClass_defval; +INTEGER const_f__IPv6Packet__Create_p__FlowLabel_defval; +const INTEGER& f__IPv6Packet__Create_p__FlowLabel_defval = const_f__IPv6Packet__Create_p__FlowLabel_defval; +INTEGER const_f__IPv6Packet__Create_p__HopCount_defval; +const INTEGER& f__IPv6Packet__Create_p__HopCount_defval = const_f__IPv6Packet__Create_p__HopCount_defval; +INTEGER const_f__DomainName__MNC__MCC__DerivedFromIMSI_p__LengthOfMNC_defval; +const INTEGER& f__DomainName__MNC__MCC__DerivedFromIMSI_p__LengthOfMNC_defval = const_f__DomainName__MNC__MCC__DerivedFromIMSI_p__LengthOfMNC_defval; +INTEGER const_f__DomainName__3gppnetwork__DerivedFromIMSI_p__LengthOfMNC_defval; +const INTEGER& f__DomainName__3gppnetwork__DerivedFromIMSI_p__LengthOfMNC_defval = const_f__DomainName__3gppnetwork__DerivedFromIMSI_p__LengthOfMNC_defval; +INTEGER const_f__DomainName__IMS__DerivedFromIMSI_p__LengthOfMNC_defval; +const INTEGER& f__DomainName__IMS__DerivedFromIMSI_p__LengthOfMNC_defval = const_f__DomainName__IMS__DerivedFromIMSI_p__LengthOfMNC_defval; +INTEGER const_f__IMS__PrivateUserIdentityDerivedFromIMSI_p__LengthOfMNC_defval; +const INTEGER& f__IMS__PrivateUserIdentityDerivedFromIMSI_p__LengthOfMNC_defval = const_f__IMS__PrivateUserIdentityDerivedFromIMSI_p__LengthOfMNC_defval; +INTEGER const_f__IMS__TemporaryPublicUserIdentity_p__LengthOfMNC_defval; +const INTEGER& f__IMS__TemporaryPublicUserIdentity_p__LengthOfMNC_defval = const_f__IMS__TemporaryPublicUserIdentity_p__LengthOfMNC_defval; +TTCN_Module module_object("CommonIP", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_CommonIP(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "PDN_AddressInfo_Type")) { + ((const PDN__AddressInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_AddressInfo_Type template")) { + ((const PDN__AddressInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WLAN_AddressInfo_Type")) { + ((const WLAN__AddressInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WLAN_AddressInfo_Type template")) { + ((const WLAN__AddressInfo__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_CommonIP(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "PDN_AddressInfo_Type")) { + ((PDN__AddressInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_AddressInfo_Type template")) { + ((PDN__AddressInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WLAN_AddressInfo_Type")) { + ((WLAN__AddressInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WLAN_AddressInfo_Type template")) { + ((WLAN__AddressInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("CommonIP"); + global_scope->add_variable(&tsc__ICMP__Type__EchoReply, "tsc_ICMP_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__ICMP__Type__EchoRequest, "tsc_ICMP_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__ICMPv6__Type__EchoReply, "tsc_ICMPv6_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__ICMPv6__Type__EchoRequest, "tsc_ICMPv6_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IMS__MediaPort__M1, "tsc_IMS_MediaPort_M1", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IMS__MediaPort__M2, "tsc_IMS_MediaPort_M2", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IMS__MediaPort__M3, "tsc_IMS_MediaPort_M3", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IMS__PortNumber__5060, "tsc_IMS_PortNumber_5060", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IP__AnyData, "tsc_IP_AnyData", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IP__Protocol__ICMP, "tsc_IP_Protocol_ICMP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IP__Protocol__ICMPv6, "tsc_IP_Protocol_ICMPv6", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IP__Protocol__IPSec, "tsc_IP_Protocol_IPSec", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IP__Protocol__TCP, "tsc_IP_Protocol_TCP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IP__Protocol__UDP, "tsc_IP_Protocol_UDP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MulticastPrefix__FF02, "tsc_MulticastPrefix_FF02", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PDN1__AddressInfo, "tsc_PDN1_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", print_var_CommonIP); + global_scope->add_variable(&tsc__PDN2__AddressInfo, "tsc_PDN2_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", print_var_CommonIP); + global_scope->add_variable(&tsc__PDN3__AddressInfo, "tsc_PDN3_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", print_var_CommonIP); + global_scope->add_variable(&tsc__PDN4__AddressInfo, "tsc_PDN4_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", print_var_CommonIP); + global_scope->add_variable(&tsc__PDN5__AddressInfo, "tsc_PDN5_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", print_var_CommonIP); + global_scope->add_variable(&tsc__PDN6__AddressInfo, "tsc_PDN6_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", print_var_CommonIP); + global_scope->add_variable(&tsc__PDN__AddressInfo, "tsc_PDN_AddressInfo", "PDN_AddressInfo_Type[6]", "CommonIP", TTCN3_Debugger::print_value_array); + global_scope->add_variable(&tsc__PortNumberHTTP, "tsc_PortNumberHTTP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PortNumberHTTPS, "tsc_PortNumberHTTPS", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xCSfallback, "pc_1xCSfallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xRTT, "pc_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__A5__4__CS, "pc_A5_4_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__Default__Configuration, "pc_APN_Default_Configuration", "APN_DefaultConfiguration_Type", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::pc__APN__ID__Ethernet, "pc_APN_ID_Ethernet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__IMS, "pc_APN_ID_IMS", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__Internet, "pc_APN_ID_Internet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__MIOT, "pc_APN_ID_MIOT", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__URLLC, "pc_APN_ID_URLLC", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__V2X, "pc_APN_ID_V2X", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Allowed__CSG__list, "pc_Allowed_CSG_list", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Attach, "pc_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Auto__PDN__Connectivity, "pc_Auto_PDN_Connectivity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__EPS__Re__Attach, "pc_Automatic_EPS_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__Re__Attach, "pc_Automatic_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Available__PLMNs__AcT__Ind, "pc_Available_PLMNs_AcT_Ind", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__BSRVCC, "pc_BSRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CMAS__Message, "pc_CMAS_Message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS, "pc_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__1xRTT, "pc_CS_Em_Call_in_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__GERAN, "pc_CS_Em_Call_in_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__UTRA, "pc_CS_Em_Call_in_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Fallback, "pc_CS_Fallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__data__centric, "pc_CS_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__voice__centric, "pc_CS_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Combined__Attach, "pc_Combined_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DSMIPv6, "pc_DSMIPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DaylightSavingTime, "pc_DaylightSavingTime", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DualRM__Coding, "pc_DualRM_Coding", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB, "pc_EAB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB__override, "pc_EAB_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EDTM, "pc_EDTM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EMM__Information, "pc_EMM_Information", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPC__RACS, "pc_EPC_RACS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__IMS__EmergencyCall, "pc_EPS_IMS_EmergencyCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__Services__Disable, "pc_EPS_Services_Disable", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Allocation, "pc_ESM_MO_Bearer_Allocation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Modification, "pc_ESM_MO_Bearer_Modification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__Notification, "pc_ESM_Notification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__UE__Modification__NW__TFT, "pc_ESM_UE_Modification_NW_TFT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ETWS__message, "pc_ETWS_message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRAN__2__GERAN__PSHO, "pc_E_UTRAN_2_GERAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRA__WLAN__offload, "pc_E_UTRA_WLAN_offload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EmergSpeech, "pc_EmergSpeech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FDD, "pc_FDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__F, "pc_FeatrGrp_101_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__T, "pc_FeatrGrp_101_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__F, "pc_FeatrGrp_102_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__T, "pc_FeatrGrp_102_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__F, "pc_FeatrGrp_103_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__T, "pc_FeatrGrp_103_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__F, "pc_FeatrGrp_104_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__T, "pc_FeatrGrp_104_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__F, "pc_FeatrGrp_105_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__T, "pc_FeatrGrp_105_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__F, "pc_FeatrGrp_106_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__T, "pc_FeatrGrp_106_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__F, "pc_FeatrGrp_107_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__T, "pc_FeatrGrp_107_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__F, "pc_FeatrGrp_108_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__T, "pc_FeatrGrp_108_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__F, "pc_FeatrGrp_109_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__T, "pc_FeatrGrp_109_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__F, "pc_FeatrGrp_10_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__T, "pc_FeatrGrp_10_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__F, "pc_FeatrGrp_110_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__T, "pc_FeatrGrp_110_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__F, "pc_FeatrGrp_111_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__T, "pc_FeatrGrp_111_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__F, "pc_FeatrGrp_112_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__T, "pc_FeatrGrp_112_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__F, "pc_FeatrGrp_113_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__T, "pc_FeatrGrp_113_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__F, "pc_FeatrGrp_114_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__T, "pc_FeatrGrp_114_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__F, "pc_FeatrGrp_115_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__T, "pc_FeatrGrp_115_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__F, "pc_FeatrGrp_116_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__T, "pc_FeatrGrp_116_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__F, "pc_FeatrGrp_11_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__T, "pc_FeatrGrp_11_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__F, "pc_FeatrGrp_12_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__T, "pc_FeatrGrp_12_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__F, "pc_FeatrGrp_13_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__T, "pc_FeatrGrp_13_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__F, "pc_FeatrGrp_14_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__T, "pc_FeatrGrp_14_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__F, "pc_FeatrGrp_15_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__T, "pc_FeatrGrp_15_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__F, "pc_FeatrGrp_16_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__T, "pc_FeatrGrp_16_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__F, "pc_FeatrGrp_17_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__T, "pc_FeatrGrp_17_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__F, "pc_FeatrGrp_18_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__T, "pc_FeatrGrp_18_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__F, "pc_FeatrGrp_19_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__T, "pc_FeatrGrp_19_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__F, "pc_FeatrGrp_1_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__T, "pc_FeatrGrp_1_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__F, "pc_FeatrGrp_20_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__T, "pc_FeatrGrp_20_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__F, "pc_FeatrGrp_21_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__T, "pc_FeatrGrp_21_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__F, "pc_FeatrGrp_22_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__T, "pc_FeatrGrp_22_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__F, "pc_FeatrGrp_23_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__T, "pc_FeatrGrp_23_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__F, "pc_FeatrGrp_24_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__T, "pc_FeatrGrp_24_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__F, "pc_FeatrGrp_25_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__T, "pc_FeatrGrp_25_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__F, "pc_FeatrGrp_26_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__T, "pc_FeatrGrp_26_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__F, "pc_FeatrGrp_27_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__T, "pc_FeatrGrp_27_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__F, "pc_FeatrGrp_28_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__T, "pc_FeatrGrp_28_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__F, "pc_FeatrGrp_29_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__T, "pc_FeatrGrp_29_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__F, "pc_FeatrGrp_2_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__T, "pc_FeatrGrp_2_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__F, "pc_FeatrGrp_30_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__T, "pc_FeatrGrp_30_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__F, "pc_FeatrGrp_31_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__T, "pc_FeatrGrp_31_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__F, "pc_FeatrGrp_33_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__T, "pc_FeatrGrp_33_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__F, "pc_FeatrGrp_34_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__T, "pc_FeatrGrp_34_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__F, "pc_FeatrGrp_35_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__T, "pc_FeatrGrp_35_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__F, "pc_FeatrGrp_36_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__T, "pc_FeatrGrp_36_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__F, "pc_FeatrGrp_37_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__T, "pc_FeatrGrp_37_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__F, "pc_FeatrGrp_38_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__T, "pc_FeatrGrp_38_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__F, "pc_FeatrGrp_39_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__T, "pc_FeatrGrp_39_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__F, "pc_FeatrGrp_3_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__T, "pc_FeatrGrp_3_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__F, "pc_FeatrGrp_40_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__T, "pc_FeatrGrp_40_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__F, "pc_FeatrGrp_41_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__T, "pc_FeatrGrp_41_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__F, "pc_FeatrGrp_42_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__T, "pc_FeatrGrp_42_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__F, "pc_FeatrGrp_4_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__T, "pc_FeatrGrp_4_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__F, "pc_FeatrGrp_5_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__T, "pc_FeatrGrp_5_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__F, "pc_FeatrGrp_6_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__T, "pc_FeatrGrp_6_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__F, "pc_FeatrGrp_7_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__T, "pc_FeatrGrp_7_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__F, "pc_FeatrGrp_8_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__T, "pc_FeatrGrp_8_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__F, "pc_FeatrGrp_9_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__T, "pc_FeatrGrp_9_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FullNameNetwork, "pc_FullNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN, "pc_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__PSHO, "pc_GERAN_2_E_UTRAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__meas, "pc_GERAN_2_E_UTRAN_meas", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__measreporting__CCN, "pc_GERAN_2_E_UTRAN_measreporting_CCN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eFDD, "pc_HO_from_UTRA_to_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eTDD, "pc_HO_from_UTRA_to_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HRPD, "pc_HRPD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS, "pc_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMSI__Detach, "pc_IMSI_Detach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__APN__default, "pc_IMS_APN_default", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCC, "pc_IMS_CS_PS_SRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCAlert, "pc_IMS_CS_PS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCMidCall, "pc_IMS_CS_PS_SRVCCMidCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__SRVCCAlert, "pc_IMS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__emergency__call, "pc_IMS_emergency_call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv4, "pc_IPv4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv6, "pc_IPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ISR, "pc_ISR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ImmConnect, "pc_ImmConnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__InterFreq__ProximityIndication, "pc_InterFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IntraFreq__ProximityIndication, "pc_IntraFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__KeepEpsBearerParametersAfterNormalDetach, "pc_KeepEpsBearerParametersAfterNormalDetach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP, "pc_LAP", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP__override, "pc_LAP_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LocalTimeZone, "pc_LocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LoggedMeasurementsIdle, "pc_LoggedMeasurementsIdle", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Manual__CSG__Selection, "pc_Manual_CSG_Selection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Multiple__PDN, "pc_Multiple_PDN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v1__0, "pc_NG114_v1_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v2__0, "pc_NG114_v2_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG__RAN__NR, "pc_NG_RAN_NR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NR__5GC__EmergencyServices, "pc_NR_5GC_EmergencyServices", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__No__USIM__TestExecution, "pc_No_USIM_TestExecution", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__Manual__Mode__Exception, "pc_PLMN_Manual_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS, "pc_PS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__data__centric, "pc_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__voice__centric, "pc_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PWS__UpperLayer, "pc_PWS_UpperLayer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ProvideDST__inUse, "pc_ProvideDST_inUse", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__APN, "pc_Provide_IMS_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__as__second__APN, "pc_Provide_IMS_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__Internet__as__second__APN, "pc_Provide_Internet_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RLF__ReportForInterRAT__MRO, "pc_RLF_ReportForInterRAT_MRO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0001, "pc_ROHC_profile0x0001", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0002, "pc_ROHC_profile0x0002", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0003, "pc_ROHC_profile0x0003", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0004, "pc_ROHC_profile0x0004", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0006, "pc_ROHC_profile0x0006", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0101, "pc_ROHC_profile0x0101", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0102, "pc_ROHC_profile0x0102", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0103, "pc_ROHC_profile0x0103", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0104, "pc_ROHC_profile0x0104", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Rach__Report, "pc_Rach_Report", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Re__Attach__AfterDetachColl, "pc_Re_Attach_AfterDetachColl", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv4HAAddress__DuringAttach, "pc_RequestIPv4HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv6HAAddress__DuringAttach, "pc_RequestIPv6HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__UMTS__Autonomous__Gaps, "pc_SI_Neighbour_UMTS_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__interFreq__Autonomous__Gaps, "pc_SI_Neighbour_interFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__intraFreq__Autonomous__Gaps, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs, "pc_SMS_SGs", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MO, "pc_SMS_SGs_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MT, "pc_SMS_SGs_MT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__Multi__MO, "pc_SMS_SGs_Multi_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SRVCC__GERAN__UTRAN, "pc_SRVCC_GERAN_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Semi__Persistence__Scheduling, "pc_Semi_Persistence_Scheduling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ShortNameNetwork, "pc_ShortNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Speech, "pc_Speech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__StandaloneGNSS__Location, "pc_StandaloneGNSS_Location", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SupportOpModeA, "pc_SupportOpModeA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SwitchOnOff, "pc_SwitchOnOff", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__connected__in__IMS, "pc_TAU_connected_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__idle__in__IMS, "pc_TAU_idle_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__HCR, "pc_TDD_HCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__LCR, "pc_TDD_LCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__VHCR, "pc_TDD_VHCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TTI__Bundling, "pc_TTI_Bundling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TestModeforCSGproximity, "pc_TestModeforCSGproximity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UE__supports__user__initiated__PDN__disconnect, "pc_UE_supports_user_initiated_PDN_disconnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UL__MIMO, "pc_UL_MIMO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMI__ProcNeeded__DuringCSFB, "pc_UMI_ProcNeeded_DuringCSFB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMTS__GSM, "pc_UMTS_GSM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__USIM__Removal, "pc_USIM_Removal", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA, "pc_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ANR, "pc_UTRAN_ANR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ProximityIndication, "pc_UTRAN_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__1, "pc_UTRA_FeatrGrp_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__2, "pc_UTRA_FeatrGrp_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__3, "pc_UTRA_FeatrGrp_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__4, "pc_UTRA_FeatrGrp_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeAssistedAgps, "pc_UeAssistedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeBasedAgps, "pc_UeBasedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UniversalAndLocalTimeZone, "pc_UniversalAndLocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UpdateUE__LocationInformation, "pc_UpdateUE_LocationInformation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UserInitiatedPLMN__Reselection, "pc_UserInitiatedPLMN_Reselection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__VoLTE, "pc_VoLTE", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__Imm__MDT, "pc_WLAN_Meas_Imm_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__logged__MDT, "pc_WLAN_Meas_logged_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__voice, "pc_WLAN_voice", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__only__APN, "pc_XCAP_only_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__over__Internet__APN, "pc_XCAP_over_Internet_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ZUC, "pc_ZUC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eCall__Test__Call, "pc_eCall_Test_Call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD, "pc_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD__MultiBand, "pc_eFDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS, "pc_eMBMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS__SC, "pc_eMBMS_SC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMinimumPeriodicSearchTimer, "pc_eMinimumPeriodicSearchTimer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eRedirectionUTRA, "pc_eRedirectionUTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD, "pc_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD__MultiBand, "pc_eTDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eWLAN, "pc_eWLAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__multipleTimingAdvance, "pc_multipleTimingAdvance", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__0, "pc_ue_CategoryDL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__10, "pc_ue_CategoryDL_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__11, "pc_ue_CategoryDL_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__12, "pc_ue_CategoryDL_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__13, "pc_ue_CategoryDL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__14, "pc_ue_CategoryDL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__15, "pc_ue_CategoryDL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__16, "pc_ue_CategoryDL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__17, "pc_ue_CategoryDL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__18, "pc_ue_CategoryDL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__19, "pc_ue_CategoryDL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__1bis, "pc_ue_CategoryDL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__20, "pc_ue_CategoryDL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__21, "pc_ue_CategoryDL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__22, "pc_ue_CategoryDL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__23, "pc_ue_CategoryDL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__24, "pc_ue_CategoryDL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__25, "pc_ue_CategoryDL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__26, "pc_ue_CategoryDL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__4, "pc_ue_CategoryDL_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__6, "pc_ue_CategoryDL_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__7, "pc_ue_CategoryDL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__9, "pc_ue_CategoryDL_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M1, "pc_ue_CategoryDL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M2, "pc_ue_CategoryDL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__0, "pc_ue_CategoryUL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__13, "pc_ue_CategoryUL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__14, "pc_ue_CategoryUL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__15, "pc_ue_CategoryUL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__16, "pc_ue_CategoryUL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__17, "pc_ue_CategoryUL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__18, "pc_ue_CategoryUL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__19, "pc_ue_CategoryUL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__1bis, "pc_ue_CategoryUL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__20, "pc_ue_CategoryUL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__21, "pc_ue_CategoryUL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__22, "pc_ue_CategoryUL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__23, "pc_ue_CategoryUL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__24, "pc_ue_CategoryUL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__25, "pc_ue_CategoryUL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__26, "pc_ue_CategoryUL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__3, "pc_ue_CategoryUL_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__5, "pc_ue_CategoryUL_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__7, "pc_ue_CategoryUL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__8, "pc_ue_CategoryUL_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M1, "pc_ue_CategoryUL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M2, "pc_ue_CategoryUL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__1, "pc_ue_Category_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__10, "pc_ue_Category_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__11, "pc_ue_Category_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__12, "pc_ue_Category_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__2, "pc_ue_Category_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__3, "pc_ue_Category_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__4, "pc_ue_Category_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__5, "pc_ue_Category_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__6, "pc_ue_Category_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__7, "pc_ue_Category_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__8, "pc_ue_Category_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__9, "pc_ue_Category_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voiceOverNR, "pc_voiceOverNR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voice__PS__1__CS__2, "pc_voice_PS_1_CS_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AccessPointName, "px_AccessPointName", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AquireGNSS__MaxTime, "px_AquireGNSS_MaxTime", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AttachTypeTested, "px_AttachTypeTested", "EUTRA_ATTACH_TESTED_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__AuthAMF, "px_AuthAMF", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AuthK, "px_AuthK", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EllipsoidPointWithAltitude, "px_EllipsoidPointWithAltitude", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EmergencyCallNumber, "px_EmergencyCallNumber", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__FDD__OperationBand, "px_FDD_OperationBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__HorizontalVelocity, "px_HorizontalVelocity", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEISV__Def, "px_IMEISV_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEI__Def, "px_IMEI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Def, "px_IMSI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Diff, "px_IMSI_Diff", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IP__MTU__Size, "px_IP_MTU_Size", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__NW, "px_IPv4_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__RemoteUE, "px_IPv4_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__UE, "px_IPv4_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__NW, "px_IPv4_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__RemoteUE, "px_IPv4_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__UE, "px_IPv4_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2a__UE, "px_IPv4_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__NW, "px_IPv4_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__RemoteUE, "px_IPv4_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__UE, "px_IPv4_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__NW, "px_IPv4_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__UE, "px_IPv4_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__NW, "px_IPv4_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__UE, "px_IPv4_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__NW, "px_IPv4_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__UE, "px_IPv4_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address__HomeAgent, "px_IPv4_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__NW, "px_IPv6_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__RemoteUE, "px_IPv6_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__UE, "px_IPv6_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__NW, "px_IPv6_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__RemoteUE, "px_IPv6_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__UE, "px_IPv6_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2a__UE, "px_IPv6_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__NW, "px_IPv6_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__RemoteUE, "px_IPv6_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__UE, "px_IPv6_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__NW, "px_IPv6_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__UE, "px_IPv6_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__NW, "px_IPv6_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__UE, "px_IPv6_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__NW, "px_IPv6_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__UE, "px_IPv6_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address__HomeAgent, "px_IPv6_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__MFBI__UTRAN__FrequencyBand, "px_MFBI_UTRAN_FrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__CipheringAlgorithm, "px_NAS_CipheringAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__IntegrityProtAlgorithm, "px_NAS_IntegrityProtAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__Def, "px_PTMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__SigDef, "px_PTMSI_SigDef", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataCodingScheme, "px_PWS_CB_DataCodingScheme", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage1, "px_PWS_CB_DataPage1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage2, "px_PWS_CB_DataPage2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage3, "px_PWS_CB_DataPage3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage4, "px_PWS_CB_DataPage4", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__RATComb__Tested, "px_RATComb_Tested", "RATComb_Tested_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__SMS__ChkMsgReceived, "px_SMS_ChkMsgReceived", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__IndexOffset, "px_SMS_IndexOffset", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__MsgFrmt, "px_SMS_MsgFrmt", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem1, "px_SMS_PrefMem1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem2, "px_SMS_PrefMem2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem3, "px_SMS_PrefMem3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__Service, "px_SMS_Service", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SinglePLMN__Tested, "px_SinglePLMN_Tested", "SinglePLMN_TestedType", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__TMSI__Def, "px_TMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__TestLoopModeB__Delay, "px_TestLoopModeB_Delay", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__UE__CS__PS__UsageSetting__Tested, "px_UE_CS_PS_UsageSetting_Tested", "CS_PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UE__PS__UsageSetting__Tested, "px_UE_PS_UsageSetting_Tested", "PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UTRAN__ModeUnderTest, "px_UTRAN_ModeUnderTest", "UTRAN_FDD_TDD_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__WLAN__PDN1__ToOffload, "px_WLAN_PDN1_ToOffload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eAuthRAND, "px_eAuthRAND", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eJapanMCC__Band6, "px_eJapanMCC_Band6", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__ePrimaryFrequencyBand, "px_ePrimaryFrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void PDN__AddressInfo__Type::init_vec() { fld_vec[0]=&field_UE__IPAddressIPv4; fld_vec[1]=&field_UE__IPAddressIPv6; fld_vec[2]=&field_Remote__IPAddressIPv4; fld_vec[3]=&field_Remote__IPAddressIPv6; fld_vec[4]=&field_DHCP__ServerAddress; fld_vec[5]=&field_ICMPv6__ServerAddress; fld_vec[6]=&field_PCSCF__IPAddressIPv4; fld_vec[7]=&field_PCSCF__IPAddressIPv6; fld_vec[8]=&field_DNS__ServerAddressIPv4; fld_vec[9]=&field_DNS__ServerAddressIPv6; fld_vec[10]=&field_XCAP__ServerAddressIPv4; fld_vec[11]=&field_XCAP__ServerAddressIPv6; fld_vec[12]=&field_ProSe__ServerAddressIPv4; fld_vec[13]=&field_ProSe__ServerAddressIPv6; } + +PDN__AddressInfo__Type::PDN__AddressInfo__Type() : Record_Type() { init_vec(); } + +PDN__AddressInfo__Type::PDN__AddressInfo__Type(const PDN__AddressInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_UE__IPAddressIPv4.is_bound() ) + field_UE__IPAddressIPv4 = other_value.field_UE__IPAddressIPv4; +if (other_value.field_UE__IPAddressIPv6.is_bound() ) + field_UE__IPAddressIPv6 = other_value.field_UE__IPAddressIPv6; +if (other_value.field_Remote__IPAddressIPv4.is_bound() ) + field_Remote__IPAddressIPv4 = other_value.field_Remote__IPAddressIPv4; +if (other_value.field_Remote__IPAddressIPv6.is_bound() ) + field_Remote__IPAddressIPv6 = other_value.field_Remote__IPAddressIPv6; +if (other_value.field_DHCP__ServerAddress.is_bound() ) + field_DHCP__ServerAddress = other_value.field_DHCP__ServerAddress; +if (other_value.field_ICMPv6__ServerAddress.is_bound() ) + field_ICMPv6__ServerAddress = other_value.field_ICMPv6__ServerAddress; +if (other_value.field_PCSCF__IPAddressIPv4.is_bound() ) + field_PCSCF__IPAddressIPv4 = other_value.field_PCSCF__IPAddressIPv4; +if (other_value.field_PCSCF__IPAddressIPv6.is_bound() ) + field_PCSCF__IPAddressIPv6 = other_value.field_PCSCF__IPAddressIPv6; +if (other_value.field_DNS__ServerAddressIPv4.is_bound() ) + field_DNS__ServerAddressIPv4 = other_value.field_DNS__ServerAddressIPv4; +if (other_value.field_DNS__ServerAddressIPv6.is_bound() ) + field_DNS__ServerAddressIPv6 = other_value.field_DNS__ServerAddressIPv6; +if (other_value.field_XCAP__ServerAddressIPv4.is_bound() ) + field_XCAP__ServerAddressIPv4 = other_value.field_XCAP__ServerAddressIPv4; +if (other_value.field_XCAP__ServerAddressIPv6.is_bound() ) + field_XCAP__ServerAddressIPv6 = other_value.field_XCAP__ServerAddressIPv6; +if (other_value.field_ProSe__ServerAddressIPv4.is_bound() ) + field_ProSe__ServerAddressIPv4 = other_value.field_ProSe__ServerAddressIPv4; +if (other_value.field_ProSe__ServerAddressIPv6.is_bound() ) + field_ProSe__ServerAddressIPv6 = other_value.field_ProSe__ServerAddressIPv6; +init_vec(); +} + +PDN__AddressInfo__Type::PDN__AddressInfo__Type(const CHARSTRING& par_UE__IPAddressIPv4, + const CHARSTRING& par_UE__IPAddressIPv6, + const CHARSTRING& par_Remote__IPAddressIPv4, + const CHARSTRING& par_Remote__IPAddressIPv6, + const CHARSTRING& par_DHCP__ServerAddress, + const CHARSTRING& par_ICMPv6__ServerAddress, + const CHARSTRING& par_PCSCF__IPAddressIPv4, + const CHARSTRING& par_PCSCF__IPAddressIPv6, + const CHARSTRING& par_DNS__ServerAddressIPv4, + const CHARSTRING& par_DNS__ServerAddressIPv6, + const CHARSTRING& par_XCAP__ServerAddressIPv4, + const CHARSTRING& par_XCAP__ServerAddressIPv6, + const CHARSTRING& par_ProSe__ServerAddressIPv4, + const CHARSTRING& par_ProSe__ServerAddressIPv6) : field_UE__IPAddressIPv4(par_UE__IPAddressIPv4), + field_UE__IPAddressIPv6(par_UE__IPAddressIPv6), + field_Remote__IPAddressIPv4(par_Remote__IPAddressIPv4), + field_Remote__IPAddressIPv6(par_Remote__IPAddressIPv6), + field_DHCP__ServerAddress(par_DHCP__ServerAddress), + field_ICMPv6__ServerAddress(par_ICMPv6__ServerAddress), + field_PCSCF__IPAddressIPv4(par_PCSCF__IPAddressIPv4), + field_PCSCF__IPAddressIPv6(par_PCSCF__IPAddressIPv6), + field_DNS__ServerAddressIPv4(par_DNS__ServerAddressIPv4), + field_DNS__ServerAddressIPv6(par_DNS__ServerAddressIPv6), + field_XCAP__ServerAddressIPv4(par_XCAP__ServerAddressIPv4), + field_XCAP__ServerAddressIPv6(par_XCAP__ServerAddressIPv6), + field_ProSe__ServerAddressIPv4(par_ProSe__ServerAddressIPv4), + field_ProSe__ServerAddressIPv6(par_ProSe__ServerAddressIPv6) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDN__AddressInfo__Type::get_descriptor() const { return &PDN__AddressInfo__Type_descr_; } +const TTCN_Typedescriptor_t* PDN__AddressInfo__Type::fld_descriptors[] = { &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_ }; +const TTCN_Typedescriptor_t* PDN__AddressInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDN__AddressInfo__Type::fld_names[] = { "UE_IPAddressIPv4", "UE_IPAddressIPv6", "Remote_IPAddressIPv4", "Remote_IPAddressIPv6", "DHCP_ServerAddress", "ICMPv6_ServerAddress", "PCSCF_IPAddressIPv4", "PCSCF_IPAddressIPv6", "DNS_ServerAddressIPv4", "DNS_ServerAddressIPv6", "XCAP_ServerAddressIPv4", "XCAP_ServerAddressIPv6", "ProSe_ServerAddressIPv4", "ProSe_ServerAddressIPv6" }; +const char* PDN__AddressInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void PDN__AddressInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 14; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[1] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[2] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[3] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[4] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[5] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[6] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[7] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[8] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[9] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[10] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[11] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[12] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[13] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +} +} + +PDN__AddressInfo__Type_template::PDN__AddressInfo__Type_template(PDN__AddressInfo__Type_template* p_precondition, PDN__AddressInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDN__AddressInfo__Type_template::PDN__AddressInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDN__AddressInfo__Type_template::~PDN__AddressInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDN__AddressInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const PDN__AddressInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDN__AddressInfo__Type_template& PDN__AddressInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDN__AddressInfo__Type_template& PDN__AddressInfo__Type_template::operator=(const PDN__AddressInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDN__AddressInfo__Type_template& PDN__AddressInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDN__AddressInfo__Type_template& PDN__AddressInfo__Type_template::operator=(const PDN__AddressInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDN__AddressInfo__Type PDN__AddressInfo__Type_template::valueof() const +{ +PDN__AddressInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +CHARSTRING_template& PDN__AddressInfo__Type_template::UE__IPAddressIPv4() { return *(static_cast(get_at(0))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::UE__IPAddressIPv4() const { return *(static_cast(get_at(0))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::UE__IPAddressIPv6() { return *(static_cast(get_at(1))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::UE__IPAddressIPv6() const { return *(static_cast(get_at(1))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::Remote__IPAddressIPv4() { return *(static_cast(get_at(2))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::Remote__IPAddressIPv4() const { return *(static_cast(get_at(2))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::Remote__IPAddressIPv6() { return *(static_cast(get_at(3))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::Remote__IPAddressIPv6() const { return *(static_cast(get_at(3))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::DHCP__ServerAddress() { return *(static_cast(get_at(4))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::DHCP__ServerAddress() const { return *(static_cast(get_at(4))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::ICMPv6__ServerAddress() { return *(static_cast(get_at(5))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::ICMPv6__ServerAddress() const { return *(static_cast(get_at(5))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::PCSCF__IPAddressIPv4() { return *(static_cast(get_at(6))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::PCSCF__IPAddressIPv4() const { return *(static_cast(get_at(6))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::PCSCF__IPAddressIPv6() { return *(static_cast(get_at(7))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::PCSCF__IPAddressIPv6() const { return *(static_cast(get_at(7))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::DNS__ServerAddressIPv4() { return *(static_cast(get_at(8))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::DNS__ServerAddressIPv4() const { return *(static_cast(get_at(8))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::DNS__ServerAddressIPv6() { return *(static_cast(get_at(9))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::DNS__ServerAddressIPv6() const { return *(static_cast(get_at(9))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::XCAP__ServerAddressIPv4() { return *(static_cast(get_at(10))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::XCAP__ServerAddressIPv4() const { return *(static_cast(get_at(10))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::XCAP__ServerAddressIPv6() { return *(static_cast(get_at(11))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::XCAP__ServerAddressIPv6() const { return *(static_cast(get_at(11))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::ProSe__ServerAddressIPv4() { return *(static_cast(get_at(12))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::ProSe__ServerAddressIPv4() const { return *(static_cast(get_at(12))); } +CHARSTRING_template& PDN__AddressInfo__Type_template::ProSe__ServerAddressIPv6() { return *(static_cast(get_at(13))); } +const CHARSTRING_template& PDN__AddressInfo__Type_template::ProSe__ServerAddressIPv6() const { return *(static_cast(get_at(13))); } +const TTCN_Typedescriptor_t* PDN__AddressInfo__Type_template::get_descriptor() const { return &PDN__AddressInfo__Type_descr_; } +const char* PDN__AddressInfo__Type_template::fld_name(int p_index) const { return PDN__AddressInfo__Type::fld_names[p_index]; } +void WLAN__AddressInfo__Type::init_vec() { fld_vec[0]=&field_UE__IPAddressIPv4; fld_vec[1]=&field_UE__IPAddressIPv6; fld_vec[2]=&field_DNS__ServerAddressIPv4; fld_vec[3]=&field_DNS__ServerAddressIPv6; fld_vec[4]=&field_EPDG__ServerAddressIPv4; fld_vec[5]=&field_EPDG__ServerAddressIPv6; fld_vec[6]=&field_EmergencyEPDG__ServerAddressIPv4; fld_vec[7]=&field_EmergencyEPDG__ServerAddressIPv6; fld_vec[8]=&field_Non3GPP__XCAP__ServerAddressIPv4; fld_vec[9]=&field_Non3GPP__XCAP__ServerAddressIPv6; } + +WLAN__AddressInfo__Type::WLAN__AddressInfo__Type() : Record_Type() { init_vec(); } + +WLAN__AddressInfo__Type::WLAN__AddressInfo__Type(const WLAN__AddressInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_UE__IPAddressIPv4.is_bound() ) + field_UE__IPAddressIPv4 = other_value.field_UE__IPAddressIPv4; +if (other_value.field_UE__IPAddressIPv6.is_bound() ) + field_UE__IPAddressIPv6 = other_value.field_UE__IPAddressIPv6; +if (other_value.field_DNS__ServerAddressIPv4.is_bound() ) + field_DNS__ServerAddressIPv4 = other_value.field_DNS__ServerAddressIPv4; +if (other_value.field_DNS__ServerAddressIPv6.is_bound() ) + field_DNS__ServerAddressIPv6 = other_value.field_DNS__ServerAddressIPv6; +if (other_value.field_EPDG__ServerAddressIPv4.is_bound() ) + field_EPDG__ServerAddressIPv4 = other_value.field_EPDG__ServerAddressIPv4; +if (other_value.field_EPDG__ServerAddressIPv6.is_bound() ) + field_EPDG__ServerAddressIPv6 = other_value.field_EPDG__ServerAddressIPv6; +if (other_value.field_EmergencyEPDG__ServerAddressIPv4.is_bound() ) + field_EmergencyEPDG__ServerAddressIPv4 = other_value.field_EmergencyEPDG__ServerAddressIPv4; +if (other_value.field_EmergencyEPDG__ServerAddressIPv6.is_bound() ) + field_EmergencyEPDG__ServerAddressIPv6 = other_value.field_EmergencyEPDG__ServerAddressIPv6; +if (other_value.field_Non3GPP__XCAP__ServerAddressIPv4.is_bound() ) + field_Non3GPP__XCAP__ServerAddressIPv4 = other_value.field_Non3GPP__XCAP__ServerAddressIPv4; +if (other_value.field_Non3GPP__XCAP__ServerAddressIPv6.is_bound() ) + field_Non3GPP__XCAP__ServerAddressIPv6 = other_value.field_Non3GPP__XCAP__ServerAddressIPv6; +init_vec(); +} + +WLAN__AddressInfo__Type::WLAN__AddressInfo__Type(const CHARSTRING& par_UE__IPAddressIPv4, + const CHARSTRING& par_UE__IPAddressIPv6, + const CHARSTRING& par_DNS__ServerAddressIPv4, + const CHARSTRING& par_DNS__ServerAddressIPv6, + const CHARSTRING& par_EPDG__ServerAddressIPv4, + const CHARSTRING& par_EPDG__ServerAddressIPv6, + const CHARSTRING& par_EmergencyEPDG__ServerAddressIPv4, + const CHARSTRING& par_EmergencyEPDG__ServerAddressIPv6, + const CHARSTRING& par_Non3GPP__XCAP__ServerAddressIPv4, + const CHARSTRING& par_Non3GPP__XCAP__ServerAddressIPv6) : field_UE__IPAddressIPv4(par_UE__IPAddressIPv4), + field_UE__IPAddressIPv6(par_UE__IPAddressIPv6), + field_DNS__ServerAddressIPv4(par_DNS__ServerAddressIPv4), + field_DNS__ServerAddressIPv6(par_DNS__ServerAddressIPv6), + field_EPDG__ServerAddressIPv4(par_EPDG__ServerAddressIPv4), + field_EPDG__ServerAddressIPv6(par_EPDG__ServerAddressIPv6), + field_EmergencyEPDG__ServerAddressIPv4(par_EmergencyEPDG__ServerAddressIPv4), + field_EmergencyEPDG__ServerAddressIPv6(par_EmergencyEPDG__ServerAddressIPv6), + field_Non3GPP__XCAP__ServerAddressIPv4(par_Non3GPP__XCAP__ServerAddressIPv4), + field_Non3GPP__XCAP__ServerAddressIPv6(par_Non3GPP__XCAP__ServerAddressIPv6) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* WLAN__AddressInfo__Type::get_descriptor() const { return &WLAN__AddressInfo__Type_descr_; } +const TTCN_Typedescriptor_t* WLAN__AddressInfo__Type::fld_descriptors[] = { &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_ }; +const TTCN_Typedescriptor_t* WLAN__AddressInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* WLAN__AddressInfo__Type::fld_names[] = { "UE_IPAddressIPv4", "UE_IPAddressIPv6", "DNS_ServerAddressIPv4", "DNS_ServerAddressIPv6", "EPDG_ServerAddressIPv4", "EPDG_ServerAddressIPv6", "EmergencyEPDG_ServerAddressIPv4", "EmergencyEPDG_ServerAddressIPv6", "Non3GPP_XCAP_ServerAddressIPv4", "Non3GPP_XCAP_ServerAddressIPv6" }; +const char* WLAN__AddressInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void WLAN__AddressInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[1] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[2] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[3] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[4] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[5] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[6] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[7] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[8] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[9] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +} +} + +WLAN__AddressInfo__Type_template::WLAN__AddressInfo__Type_template(WLAN__AddressInfo__Type_template* p_precondition, WLAN__AddressInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +WLAN__AddressInfo__Type_template::WLAN__AddressInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +WLAN__AddressInfo__Type_template::~WLAN__AddressInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean WLAN__AddressInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const WLAN__AddressInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +WLAN__AddressInfo__Type_template& WLAN__AddressInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +WLAN__AddressInfo__Type_template& WLAN__AddressInfo__Type_template::operator=(const WLAN__AddressInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +WLAN__AddressInfo__Type_template& WLAN__AddressInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +WLAN__AddressInfo__Type_template& WLAN__AddressInfo__Type_template::operator=(const WLAN__AddressInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +WLAN__AddressInfo__Type WLAN__AddressInfo__Type_template::valueof() const +{ +WLAN__AddressInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +CHARSTRING_template& WLAN__AddressInfo__Type_template::UE__IPAddressIPv4() { return *(static_cast(get_at(0))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::UE__IPAddressIPv4() const { return *(static_cast(get_at(0))); } +CHARSTRING_template& WLAN__AddressInfo__Type_template::UE__IPAddressIPv6() { return *(static_cast(get_at(1))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::UE__IPAddressIPv6() const { return *(static_cast(get_at(1))); } +CHARSTRING_template& WLAN__AddressInfo__Type_template::DNS__ServerAddressIPv4() { return *(static_cast(get_at(2))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::DNS__ServerAddressIPv4() const { return *(static_cast(get_at(2))); } +CHARSTRING_template& WLAN__AddressInfo__Type_template::DNS__ServerAddressIPv6() { return *(static_cast(get_at(3))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::DNS__ServerAddressIPv6() const { return *(static_cast(get_at(3))); } +CHARSTRING_template& WLAN__AddressInfo__Type_template::EPDG__ServerAddressIPv4() { return *(static_cast(get_at(4))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::EPDG__ServerAddressIPv4() const { return *(static_cast(get_at(4))); } +CHARSTRING_template& WLAN__AddressInfo__Type_template::EPDG__ServerAddressIPv6() { return *(static_cast(get_at(5))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::EPDG__ServerAddressIPv6() const { return *(static_cast(get_at(5))); } +CHARSTRING_template& WLAN__AddressInfo__Type_template::EmergencyEPDG__ServerAddressIPv4() { return *(static_cast(get_at(6))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::EmergencyEPDG__ServerAddressIPv4() const { return *(static_cast(get_at(6))); } +CHARSTRING_template& WLAN__AddressInfo__Type_template::EmergencyEPDG__ServerAddressIPv6() { return *(static_cast(get_at(7))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::EmergencyEPDG__ServerAddressIPv6() const { return *(static_cast(get_at(7))); } +CHARSTRING_template& WLAN__AddressInfo__Type_template::Non3GPP__XCAP__ServerAddressIPv4() { return *(static_cast(get_at(8))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::Non3GPP__XCAP__ServerAddressIPv4() const { return *(static_cast(get_at(8))); } +CHARSTRING_template& WLAN__AddressInfo__Type_template::Non3GPP__XCAP__ServerAddressIPv6() { return *(static_cast(get_at(9))); } +const CHARSTRING_template& WLAN__AddressInfo__Type_template::Non3GPP__XCAP__ServerAddressIPv6() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* WLAN__AddressInfo__Type_template::get_descriptor() const { return &WLAN__AddressInfo__Type_descr_; } +const char* WLAN__AddressInfo__Type_template::fld_name(int p_index) const { return WLAN__AddressInfo__Type::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +INTEGER f__PDN__PdnIndex2Integer(const CommonDefs::PDN__Index__Type& p__PdnIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 187, TTCN_Location::LOCATION_FUNCTION, "f_PDN_PdnIndex2Integer"); +charstring_list param_names; +param_names[0] = "p_PdnIndex"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_PDN_PdnIndex2Integer", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(190); +ttcn3_debugger.breakpoint_entry(190); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 190 */ +INTEGER v__Index; +debug_scope.add_variable(&v__Index, "v_Index", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const CommonDefs::PDN__Index__Type &tmp_1 = p__PdnIndex; +current_location.update_lineno(192); +ttcn3_debugger.breakpoint_entry(192); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 192 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::PDN__1) goto tmp_0_0; +current_location.update_lineno(192); +ttcn3_debugger.breakpoint_entry(192); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 192 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::ePDG__IMS1) goto tmp_0_0; +current_location.update_lineno(195); +ttcn3_debugger.breakpoint_entry(195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 195 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::PDN__2) goto tmp_0_1; +current_location.update_lineno(195); +ttcn3_debugger.breakpoint_entry(195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 195 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::PDN__2a) goto tmp_0_1; +current_location.update_lineno(195); +ttcn3_debugger.breakpoint_entry(195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 195 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::PDN__Internet) goto tmp_0_1; +current_location.update_lineno(195); +ttcn3_debugger.breakpoint_entry(195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 195 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::nrPDN__Internet) goto tmp_0_1; +current_location.update_lineno(195); +ttcn3_debugger.breakpoint_entry(195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 195 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::ePDG__IMS2) goto tmp_0_1; +current_location.update_lineno(195); +ttcn3_debugger.breakpoint_entry(195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 195 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::ePDG__XCAP) goto tmp_0_1; +current_location.update_lineno(195); +ttcn3_debugger.breakpoint_entry(195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 195 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::ePDG__Internet) goto tmp_0_1; +current_location.update_lineno(198); +ttcn3_debugger.breakpoint_entry(198); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 198 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::PDN__3) goto tmp_0_2; +current_location.update_lineno(201); +ttcn3_debugger.breakpoint_entry(201); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 201 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::PDN__4) goto tmp_0_3; +current_location.update_lineno(204); +ttcn3_debugger.breakpoint_entry(204); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 204 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::PDN__5) goto tmp_0_4; +current_location.update_lineno(207); +ttcn3_debugger.breakpoint_entry(207); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 207 */ +if(tmp_1 == CommonDefs::PDN__Index__Type::PDN__6) goto tmp_0_5; +goto tmp_0_6; +tmp_0_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(193); +ttcn3_debugger.breakpoint_entry(193); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 193 */ +v__Index = 0; +goto tmp_0_end; +} +tmp_0_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(196); +ttcn3_debugger.breakpoint_entry(196); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 196 */ +v__Index = 1; +goto tmp_0_end; +} +tmp_0_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(199); +ttcn3_debugger.breakpoint_entry(199); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 199 */ +v__Index = 2; +goto tmp_0_end; +} +tmp_0_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(202); +ttcn3_debugger.breakpoint_entry(202); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 202 */ +v__Index = 3; +goto tmp_0_end; +} +tmp_0_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(205); +ttcn3_debugger.breakpoint_entry(205); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 205 */ +v__Index = 4; +goto tmp_0_end; +} +tmp_0_5: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(208); +ttcn3_debugger.breakpoint_entry(208); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 208 */ +v__Index = 5; +goto tmp_0_end; +} +tmp_0_6: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(211); +ttcn3_debugger.breakpoint_entry(211); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 211 */ +CommonDefs::FatalError(cs_0, 211, cs_1); +goto tmp_0_end; +} +tmp_0_end: /* empty */; +} +current_location.update_lineno(214); +ttcn3_debugger.breakpoint_entry(214); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 214 */ +{ +INTEGER tmp_8; +return DEBUGGER_STORE_RETURN_VALUE(tmp_8, v__Index); +} +} + +INTEGER f__PDN__PdnIndex2ImsIndex(const CommonDefs::PDN__Index__Type& p__PdnIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 223, TTCN_Location::LOCATION_FUNCTION, "f_PDN_PdnIndex2ImsIndex"); +charstring_list param_names; +param_names[0] = "p_PdnIndex"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_PDN_PdnIndex2ImsIndex", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(225); +ttcn3_debugger.breakpoint_entry(225); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 225 */ +INTEGER v__Index(f__PDN__PdnIndex2Integer(p__PdnIndex)); +debug_scope.add_variable(&v__Index, "v_Index", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(227); +ttcn3_debugger.breakpoint_entry(227); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 227 */ +if ((v__Index >= CommonDefs::tsc__NoOfIMSPDNs)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(228); +ttcn3_debugger.breakpoint_entry(228); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 228 */ +CommonDefs::FatalError(cs_0, 228, cs_1); +} +current_location.update_lineno(230); +ttcn3_debugger.breakpoint_entry(230); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 230 */ +{ +INTEGER tmp_9; +return DEBUGGER_STORE_RETURN_VALUE(tmp_9, v__Index); +} +} + +PDN__AddressInfo__Type f__PDN__AddressInfo__Get(const CommonDefs::PDN__Index__Type& p__PdnIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 239, TTCN_Location::LOCATION_FUNCTION, "f_PDN_AddressInfo_Get"); +charstring_list param_names; +param_names[0] = "p_PdnIndex"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_PDN_AddressInfo_Get", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(241); +ttcn3_debugger.breakpoint_entry(241); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 241 */ +PDN__AddressInfo__Type v__PDN__AddressInfo; +debug_scope.add_variable(&v__PDN__AddressInfo, "v_PDN_AddressInfo", "PDN_AddressInfo_Type", NULL, print_var_CommonIP, set_var_CommonIP); +current_location.update_lineno(242); +ttcn3_debugger.breakpoint_entry(242); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 242 */ +INTEGER v__Index(f__PDN__PdnIndex2Integer(p__PdnIndex)); +debug_scope.add_variable(&v__Index, "v_Index", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(244); +ttcn3_debugger.breakpoint_entry(244); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 244 */ +v__PDN__AddressInfo = tsc__PDN__AddressInfo[v__Index]; +current_location.update_lineno(245); +ttcn3_debugger.breakpoint_entry(245); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 245 */ +if ((p__PdnIndex == CommonDefs::PDN__Index__Type::PDN__2a)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(246); +ttcn3_debugger.breakpoint_entry(246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 246 */ +v__PDN__AddressInfo.UE__IPAddressIPv4() = Parameters::px__IPv4__Address2a__UE; +current_location.update_lineno(247); +ttcn3_debugger.breakpoint_entry(247); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 247 */ +v__PDN__AddressInfo.UE__IPAddressIPv6() = Parameters::px__IPv6__Address2a__UE; +} +current_location.update_lineno(249); +ttcn3_debugger.breakpoint_entry(249); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 249 */ +{ +PDN__AddressInfo__Type tmp_13; +return DEBUGGER_STORE_RETURN_VALUE(tmp_13, v__PDN__AddressInfo); +} +} + +BOOLEAN f__IpAddressIsIPv4(const CHARSTRING& p__IpAddress) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 259, TTCN_Location::LOCATION_FUNCTION, "f_IpAddressIsIPv4"); +charstring_list param_names; +param_names[0] = "p_IpAddress"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_IpAddressIsIPv4", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IpAddress, "p_IpAddress", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(261); +ttcn3_debugger.breakpoint_entry(261); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 261 */ +CHARSTRING_template v__Pattern; +v__Pattern = CHARSTRING_template(STRING_PATTERN, (CHARSTRING)cs_2, FALSE); +debug_scope.add_variable(&v__Pattern, "v_Pattern", "charstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(262); +ttcn3_debugger.breakpoint_entry(262); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 262 */ +{ +BOOLEAN tmp_14; +return DEBUGGER_STORE_RETURN_VALUE(tmp_14, v__Pattern.match(p__IpAddress)); +} +} + +BOOLEAN f__IpAddressIsIPv6(const CHARSTRING& p__IpAddress) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 272, TTCN_Location::LOCATION_FUNCTION, "f_IpAddressIsIPv6"); +charstring_list param_names; +param_names[0] = "p_IpAddress"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_IpAddressIsIPv6", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IpAddress, "p_IpAddress", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(274); +ttcn3_debugger.breakpoint_entry(274); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 274 */ +CommonDefs::Char1List__Type v__SplitCharList; +v__SplitCharList.set_size(1); +v__SplitCharList[0] = cs_3; +debug_scope.add_variable(&v__SplitCharList, "v_SplitCharList", "Char1List_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(275); +ttcn3_debugger.breakpoint_entry(275); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 275 */ +CommonDefs::CharStringList__Type v__FieldList(CommonDefs::f__StringSplit(p__IpAddress, v__SplitCharList)); +debug_scope.add_variable(&v__FieldList, "v_FieldList", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(276); +ttcn3_debugger.breakpoint_entry(276); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 276 */ +INTEGER v__FieldCnt(v__FieldList.lengthof()); +debug_scope.add_variable(&v__FieldCnt, "v_FieldCnt", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(277); +ttcn3_debugger.breakpoint_entry(277); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 277 */ +CHARSTRING v__Field; +debug_scope.add_variable(&v__Field, "v_Field", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(278); +ttcn3_debugger.breakpoint_entry(278); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 278 */ +CHARSTRING v__Pattern; +debug_scope.add_variable(&v__Pattern, "v_Pattern", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(279); +ttcn3_debugger.breakpoint_entry(279); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 279 */ +INTEGER v__FieldLength; +debug_scope.add_variable(&v__FieldLength, "v_FieldLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(280); +ttcn3_debugger.breakpoint_entry(280); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 280 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(282); +ttcn3_debugger.breakpoint_entry(282); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 282 */ +{ +boolean tmp_15; +tmp_15 = (v__FieldCnt == 1); +if (!tmp_15) tmp_15 = (v__FieldCnt > 8); +if (tmp_15) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(282); +ttcn3_debugger.breakpoint_entry(282); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 282 */ +{ +BOOLEAN tmp_16; +return DEBUGGER_STORE_RETURN_VALUE(tmp_16, FALSE); +} +} +} +current_location.update_lineno(284); +ttcn3_debugger.breakpoint_entry(284); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 284 */ +i = 0; +current_location.update_lineno(284); +ttcn3_debugger.breakpoint_entry(284); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 284 */ +for ( ; ; ) { +current_location.update_lineno(284); +ttcn3_debugger.breakpoint_entry(284); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 284 */ +if (!(i < v__FieldCnt)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(285); +ttcn3_debugger.breakpoint_entry(285); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 285 */ +v__Field = const_cast< const CommonDefs::CharStringList__Type&>(v__FieldList)[i]; +current_location.update_lineno(286); +ttcn3_debugger.breakpoint_entry(286); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 286 */ +v__FieldLength = v__Field.lengthof(); +current_location.update_lineno(287); +ttcn3_debugger.breakpoint_entry(287); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 287 */ +v__Pattern = ((cs_4 + int2str(v__FieldLength)) + cs_5); +current_location.update_lineno(289); +ttcn3_debugger.breakpoint_entry(289); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 289 */ +if ((v__FieldLength > 4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(289); +ttcn3_debugger.breakpoint_entry(289); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 289 */ +{ +BOOLEAN tmp_21; +return DEBUGGER_STORE_RETURN_VALUE(tmp_21, FALSE); +} +} +current_location.update_lineno(290); +ttcn3_debugger.breakpoint_entry(290); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 290 */ +{ +boolean tmp_23; +{ +CHARSTRING_template tmp_22; +tmp_22 = CHARSTRING_template(STRING_PATTERN, (CHARSTRING)v__Pattern, FALSE); +tmp_23 = (!(tmp_22.match(v__Field))); +} +if (tmp_23) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(290); +ttcn3_debugger.breakpoint_entry(290); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 290 */ +{ +BOOLEAN tmp_24; +return DEBUGGER_STORE_RETURN_VALUE(tmp_24, FALSE); +} +} +} +current_location.update_lineno(284); +ttcn3_debugger.breakpoint_entry(284); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 284 */ +{ +INTEGER tmp_25; +++i; +} +} +current_location.update_lineno(292); +ttcn3_debugger.breakpoint_entry(292); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 292 */ +{ +BOOLEAN tmp_26; +return DEBUGGER_STORE_RETURN_VALUE(tmp_26, TRUE); +} +} + +CHARSTRING f__IpAddressAsHostname(const CHARSTRING& p__IpAddress) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 302, TTCN_Location::LOCATION_FUNCTION, "f_IpAddressAsHostname"); +charstring_list param_names; +param_names[0] = "p_IpAddress"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_IpAddressAsHostname", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IpAddress, "p_IpAddress", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(304); +ttcn3_debugger.breakpoint_entry(304); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 304 */ +CHARSTRING v__Hostname; +debug_scope.add_variable(&v__Hostname, "v_Hostname", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(306); +ttcn3_debugger.breakpoint_entry(306); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 306 */ +if (f__IpAddressIsIPv6(p__IpAddress)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(307); +ttcn3_debugger.breakpoint_entry(307); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 307 */ +v__Hostname = ((cs_6 + p__IpAddress) + cs_7); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(309); +ttcn3_debugger.breakpoint_entry(309); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 309 */ +v__Hostname = p__IpAddress; +} +current_location.update_lineno(311); +ttcn3_debugger.breakpoint_entry(311); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 311 */ +{ +CHARSTRING tmp_29; +return DEBUGGER_STORE_RETURN_VALUE(tmp_29, v__Hostname); +} +} + +OCTETSTRING f__Convert__IPv4Addr2OctString(const CHARSTRING& p__IPv4AddrChar) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 322, TTCN_Location::LOCATION_FUNCTION, "f_Convert_IPv4Addr2OctString"); +charstring_list param_names; +param_names[0] = "p_IPv4AddrChar"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Convert_IPv4Addr2OctString", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IPv4AddrChar, "p_IPv4AddrChar", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(324); +ttcn3_debugger.breakpoint_entry(324); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 324 */ +CommonDefs::Char1List__Type v__SplitCharList; +v__SplitCharList.set_size(1); +v__SplitCharList[0] = cs_8; +debug_scope.add_variable(&v__SplitCharList, "v_SplitCharList", "Char1List_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(325); +ttcn3_debugger.breakpoint_entry(325); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 325 */ +CommonDefs::CharStringList__Type v__FieldList(CommonDefs::f__StringSplit(p__IPv4AddrChar, v__SplitCharList)); +debug_scope.add_variable(&v__FieldList, "v_FieldList", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(326); +ttcn3_debugger.breakpoint_entry(326); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 326 */ +OCTETSTRING v__IPv4AddrOct(os_2); +debug_scope.add_variable(&v__IPv4AddrOct, "v_IPv4AddrOct", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(327); +ttcn3_debugger.breakpoint_entry(327); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 327 */ +INTEGER v__FieldCnt(v__FieldList.lengthof()); +debug_scope.add_variable(&v__FieldCnt, "v_FieldCnt", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(328); +ttcn3_debugger.breakpoint_entry(328); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 328 */ +INTEGER v__IntVal; +debug_scope.add_variable(&v__IntVal, "v_IntVal", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(329); +ttcn3_debugger.breakpoint_entry(329); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 329 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(331); +ttcn3_debugger.breakpoint_entry(331); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 331 */ +if ((v__FieldCnt != 4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(332); +ttcn3_debugger.breakpoint_entry(332); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 332 */ +CommonDefs::FatalError(cs_0, 332, cs_9); +} +current_location.update_lineno(334); +ttcn3_debugger.breakpoint_entry(334); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 334 */ +i = 0; +current_location.update_lineno(334); +ttcn3_debugger.breakpoint_entry(334); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 334 */ +for ( ; ; ) { +current_location.update_lineno(334); +ttcn3_debugger.breakpoint_entry(334); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 334 */ +if (!(i < v__FieldCnt)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(335); +ttcn3_debugger.breakpoint_entry(335); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 335 */ +v__IntVal = str2int(const_cast< const CommonDefs::CharStringList__Type&>(v__FieldList)[i]); +current_location.update_lineno(336); +ttcn3_debugger.breakpoint_entry(336); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 336 */ +{ +OCTETSTRING tmp_32; +tmp_32 = (v__IPv4AddrOct + int2oct(v__IntVal, 1)); +v__IPv4AddrOct = tmp_32; +} +current_location.update_lineno(334); +ttcn3_debugger.breakpoint_entry(334); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 334 */ +{ +INTEGER tmp_33; +++i; +} +} +current_location.update_lineno(338); +ttcn3_debugger.breakpoint_entry(338); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 338 */ +{ +OCTETSTRING tmp_34; +return DEBUGGER_STORE_RETURN_VALUE(tmp_34, v__IPv4AddrOct); +} +} + +OCTETSTRING f__Convert__IPv6Addr2OctString(const CHARSTRING& p__IPv6AddrChar) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 350, TTCN_Location::LOCATION_FUNCTION, "f_Convert_IPv6Addr2OctString"); +charstring_list param_names; +param_names[0] = "p_IPv6AddrChar"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Convert_IPv6Addr2OctString", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IPv6AddrChar, "p_IPv6AddrChar", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(352); +ttcn3_debugger.breakpoint_entry(352); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 352 */ +CommonDefs::Char1List__Type v__SplitCharList; +v__SplitCharList.set_size(1); +v__SplitCharList[0] = cs_3; +debug_scope.add_variable(&v__SplitCharList, "v_SplitCharList", "Char1List_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(353); +ttcn3_debugger.breakpoint_entry(353); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 353 */ +CommonDefs::CharStringList__Type v__FieldList(CommonDefs::f__StringSplit(p__IPv6AddrChar, v__SplitCharList)); +debug_scope.add_variable(&v__FieldList, "v_FieldList", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(354); +ttcn3_debugger.breakpoint_entry(354); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 354 */ +OCTETSTRING v__IPv6AddrOct(os_2); +debug_scope.add_variable(&v__IPv6AddrOct, "v_IPv6AddrOct", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(355); +ttcn3_debugger.breakpoint_entry(355); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 355 */ +INTEGER v__FieldCnt(v__FieldList.lengthof()); +debug_scope.add_variable(&v__FieldCnt, "v_FieldCnt", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(356); +ttcn3_debugger.breakpoint_entry(356); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 356 */ +BOOLEAN v__EmptyBlocksExpanded(FALSE); +debug_scope.add_variable(&v__EmptyBlocksExpanded, "v_EmptyBlocksExpanded", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(357); +ttcn3_debugger.breakpoint_entry(357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 357 */ +CHARSTRING v__Field; +debug_scope.add_variable(&v__Field, "v_Field", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(358); +ttcn3_debugger.breakpoint_entry(358); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 358 */ +INTEGER v__NoOfEmptyBlocks; +debug_scope.add_variable(&v__NoOfEmptyBlocks, "v_NoOfEmptyBlocks", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(359); +ttcn3_debugger.breakpoint_entry(359); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 359 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(360); +ttcn3_debugger.breakpoint_entry(360); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 360 */ +INTEGER k; +debug_scope.add_variable(&k, "k", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(362); +ttcn3_debugger.breakpoint_entry(362); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 362 */ +if ((v__FieldCnt > 8)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(363); +ttcn3_debugger.breakpoint_entry(363); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 363 */ +CommonDefs::FatalError(cs_0, 363, cs_9); +} +current_location.update_lineno(365); +ttcn3_debugger.breakpoint_entry(365); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 365 */ +i = 0; +current_location.update_lineno(365); +ttcn3_debugger.breakpoint_entry(365); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 365 */ +for ( ; ; ) { +current_location.update_lineno(365); +ttcn3_debugger.breakpoint_entry(365); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 365 */ +if (!(i < v__FieldCnt)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(366); +ttcn3_debugger.breakpoint_entry(366); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 366 */ +v__Field = const_cast< const CommonDefs::CharStringList__Type&>(v__FieldList)[i]; +{ +const INTEGER &tmp_38 = v__Field.lengthof(); +switch(tmp_38.get_long_long_val()) { +case(0): +{ +current_location.update_lineno(369); +ttcn3_debugger.breakpoint_entry(369); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 369 */ +if ((!(v__EmptyBlocksExpanded))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(370); +ttcn3_debugger.breakpoint_entry(370); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 370 */ +v__EmptyBlocksExpanded = TRUE; +current_location.update_lineno(371); +ttcn3_debugger.breakpoint_entry(371); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 371 */ +v__NoOfEmptyBlocks = (8 - (v__FieldCnt - 1)); +current_location.update_lineno(372); +ttcn3_debugger.breakpoint_entry(372); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 372 */ +k = 0; +current_location.update_lineno(372); +ttcn3_debugger.breakpoint_entry(372); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 372 */ +for ( ; ; ) { +current_location.update_lineno(372); +ttcn3_debugger.breakpoint_entry(372); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 372 */ +if (!(k < v__NoOfEmptyBlocks)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(373); +ttcn3_debugger.breakpoint_entry(373); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 373 */ +{ +OCTETSTRING tmp_42; +tmp_42 = (v__IPv6AddrOct + os_3); +v__IPv6AddrOct = tmp_42; +} +current_location.update_lineno(372); +ttcn3_debugger.breakpoint_entry(372); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 372 */ +{ +INTEGER tmp_43; +++k; +} +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(376); +ttcn3_debugger.breakpoint_entry(376); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 376 */ +{ +OCTETSTRING tmp_44; +tmp_44 = (v__IPv6AddrOct + os_3); +v__IPv6AddrOct = tmp_44; +} +} +break; +} +case(1): +{ +current_location.update_lineno(380); +ttcn3_debugger.breakpoint_entry(380); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 380 */ +{ +OCTETSTRING tmp_45; +tmp_45 = (v__IPv6AddrOct + str2oct((cs_10 + v__Field))); +v__IPv6AddrOct = tmp_45; +} +break; +} +case(2): +{ +current_location.update_lineno(383); +ttcn3_debugger.breakpoint_entry(383); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 383 */ +{ +OCTETSTRING tmp_46; +tmp_46 = (v__IPv6AddrOct + str2oct((cs_11 + v__Field))); +v__IPv6AddrOct = tmp_46; +} +break; +} +case(3): +{ +current_location.update_lineno(386); +ttcn3_debugger.breakpoint_entry(386); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 386 */ +{ +OCTETSTRING tmp_47; +tmp_47 = (v__IPv6AddrOct + str2oct((cs_12 + v__Field))); +v__IPv6AddrOct = tmp_47; +} +break; +} +case(4): +{ +current_location.update_lineno(389); +ttcn3_debugger.breakpoint_entry(389); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 389 */ +{ +OCTETSTRING tmp_48; +tmp_48 = (v__IPv6AddrOct + str2oct(v__Field)); +v__IPv6AddrOct = tmp_48; +} +break; +} +default: +{ +current_location.update_lineno(393); +ttcn3_debugger.breakpoint_entry(393); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 393 */ +CommonDefs::FatalError(cs_0, 393, cs_9); +break; +} +};} +current_location.update_lineno(365); +ttcn3_debugger.breakpoint_entry(365); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 365 */ +{ +INTEGER tmp_49; +++i; +} +} +current_location.update_lineno(397); +ttcn3_debugger.breakpoint_entry(397); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 397 */ +{ +OCTETSTRING tmp_50; +return DEBUGGER_STORE_RETURN_VALUE(tmp_50, v__IPv6AddrOct); +} +} + +BOOLEAN f__IPAddresses__Compare(const CHARSTRING& p__Addr1, const CHARSTRING& p__Addr2) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 408, TTCN_Location::LOCATION_FUNCTION, "f_IPAddresses_Compare"); +charstring_list param_names; +param_names[0] = "p_Addr1"; +param_names[1] = "p_Addr2"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_IPAddresses_Compare", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__Addr1, "p_Addr1", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Addr2, "p_Addr2", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(411); +ttcn3_debugger.breakpoint_entry(411); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 411 */ +BOOLEAN v__Addr1IsV6(f__IpAddressIsIPv6(p__Addr1)); +debug_scope.add_variable(&v__Addr1IsV6, "v_Addr1IsV6", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(412); +ttcn3_debugger.breakpoint_entry(412); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 412 */ +BOOLEAN v__Addr2IsV6(f__IpAddressIsIPv6(p__Addr2)); +debug_scope.add_variable(&v__Addr2IsV6, "v_Addr2IsV6", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(414); +ttcn3_debugger.breakpoint_entry(414); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 414 */ +if ((v__Addr1IsV6 && v__Addr2IsV6)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(415); +ttcn3_debugger.breakpoint_entry(415); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 415 */ +{ +BOOLEAN tmp_51; +return DEBUGGER_STORE_RETURN_VALUE(tmp_51, (f__Convert__IPv6Addr2OctString(p__Addr1) == f__Convert__IPv6Addr2OctString(p__Addr2))); +} +} +else { +current_location.update_lineno(416); +ttcn3_debugger.breakpoint_entry(416); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 416 */ +boolean tmp_52; +tmp_52 = (!(v__Addr1IsV6)); +if (tmp_52) tmp_52 = (!(v__Addr2IsV6)); +if (tmp_52) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(417); +ttcn3_debugger.breakpoint_entry(417); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 417 */ +{ +BOOLEAN tmp_53; +return DEBUGGER_STORE_RETURN_VALUE(tmp_53, (p__Addr1 == p__Addr2)); +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(419); +ttcn3_debugger.breakpoint_entry(419); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 419 */ +{ +BOOLEAN tmp_54; +return DEBUGGER_STORE_RETURN_VALUE(tmp_54, FALSE); +} +} +} +} + +CHARSTRING f__Convert__OctString2IPv6Addr(const OCTETSTRING& p__IPv6AddrOct) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 430, TTCN_Location::LOCATION_FUNCTION, "f_Convert_OctString2IPv6Addr"); +charstring_list param_names; +param_names[0] = "p_IPv6AddrOct"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Convert_OctString2IPv6Addr", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IPv6AddrOct, "p_IPv6AddrOct", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(432); +ttcn3_debugger.breakpoint_entry(432); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 432 */ +CHARSTRING v__IPv6Addr(cs_13); +debug_scope.add_variable(&v__IPv6Addr, "v_IPv6Addr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(433); +ttcn3_debugger.breakpoint_entry(433); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 433 */ +INTEGER v__AddrLength(p__IPv6AddrOct.lengthof()); +debug_scope.add_variable(&v__AddrLength, "v_AddrLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(434); +ttcn3_debugger.breakpoint_entry(434); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 434 */ +INTEGER i(0); +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +for ( ; ; ) { +current_location.update_lineno(436); +ttcn3_debugger.breakpoint_entry(436); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 436 */ +if (!(i < v__AddrLength)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(437); +ttcn3_debugger.breakpoint_entry(437); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 437 */ +{ +CHARSTRING tmp_55; +tmp_55 = (v__IPv6Addr + oct2str(substr(p__IPv6AddrOct, i, 2))); +v__IPv6Addr = tmp_55; +} +current_location.update_lineno(438); +ttcn3_debugger.breakpoint_entry(438); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 438 */ +{ +INTEGER tmp_56; +tmp_56 = (i + 2); +i = tmp_56; +} +current_location.update_lineno(439); +ttcn3_debugger.breakpoint_entry(439); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 439 */ +if ((i < v__AddrLength)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(440); +ttcn3_debugger.breakpoint_entry(440); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 440 */ +{ +CHARSTRING tmp_57; +tmp_57 = (v__IPv6Addr + cs_3); +v__IPv6Addr = tmp_57; +} +} +} +current_location.update_lineno(443); +ttcn3_debugger.breakpoint_entry(443); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 443 */ +{ +CHARSTRING tmp_58; +return DEBUGGER_STORE_RETURN_VALUE(tmp_58, v__IPv6Addr); +} +} + +CHARSTRING f__Convert__OctString2IPv4Addr(const OCTETSTRING& p__IPv4AddrOct) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 452, TTCN_Location::LOCATION_FUNCTION, "f_Convert_OctString2IPv4Addr"); +charstring_list param_names; +param_names[0] = "p_IPv4AddrOct"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Convert_OctString2IPv4Addr", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IPv4AddrOct, "p_IPv4AddrOct", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(454); +ttcn3_debugger.breakpoint_entry(454); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 454 */ +CHARSTRING v__IPv6Addr(cs_13); +debug_scope.add_variable(&v__IPv6Addr, "v_IPv6Addr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(455); +ttcn3_debugger.breakpoint_entry(455); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 455 */ +INTEGER v__AddrLength(p__IPv4AddrOct.lengthof()); +debug_scope.add_variable(&v__AddrLength, "v_AddrLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(456); +ttcn3_debugger.breakpoint_entry(456); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 456 */ +INTEGER i(0); +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +for ( ; ; ) { +current_location.update_lineno(458); +ttcn3_debugger.breakpoint_entry(458); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 458 */ +if (!(i < v__AddrLength)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(459); +ttcn3_debugger.breakpoint_entry(459); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 459 */ +{ +CHARSTRING tmp_59; +tmp_59 = (v__IPv6Addr + int2str(oct2int(substr(p__IPv4AddrOct, i, 1)))); +v__IPv6Addr = tmp_59; +} +current_location.update_lineno(460); +ttcn3_debugger.breakpoint_entry(460); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 460 */ +{ +INTEGER tmp_60; +++i; +} +current_location.update_lineno(461); +ttcn3_debugger.breakpoint_entry(461); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 461 */ +if ((i < v__AddrLength)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(462); +ttcn3_debugger.breakpoint_entry(462); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 462 */ +{ +CHARSTRING tmp_61; +tmp_61 = (v__IPv6Addr + cs_8); +v__IPv6Addr = tmp_61; +} +} +} +current_location.update_lineno(465); +ttcn3_debugger.breakpoint_entry(465); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 465 */ +{ +CHARSTRING tmp_62; +return DEBUGGER_STORE_RETURN_VALUE(tmp_62, v__IPv6Addr); +} +} + +OCTETSTRING f__IpChecksum(const OCTETSTRING& p__OctetString) +{ +OCTETSTRING p__OctetString_shadow(p__OctetString); +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 475, TTCN_Location::LOCATION_FUNCTION, "f_IpChecksum"); +charstring_list param_names; +param_names[0] = "p_OctetString"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_IpChecksum", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__OctetString_shadow, "p_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(477); +ttcn3_debugger.breakpoint_entry(477); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 477 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(478); +ttcn3_debugger.breakpoint_entry(478); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 478 */ +OCTETSTRING v__Word; +debug_scope.add_variable(&v__Word, "v_Word", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(479); +ttcn3_debugger.breakpoint_entry(479); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 479 */ +INTEGER v__DataLength(p__OctetString_shadow.lengthof()); +debug_scope.add_variable(&v__DataLength, "v_DataLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(480); +ttcn3_debugger.breakpoint_entry(480); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 480 */ +INTEGER v__Sum(0); +debug_scope.add_variable(&v__Sum, "v_Sum", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(482); +ttcn3_debugger.breakpoint_entry(482); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 482 */ +if ((mod(v__DataLength, 2) != 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(483); +ttcn3_debugger.breakpoint_entry(483); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 483 */ +{ +OCTETSTRING tmp_63; +tmp_63 = (p__OctetString_shadow + os_4); +p__OctetString_shadow = tmp_63; +} +} +current_location.update_lineno(486); +ttcn3_debugger.breakpoint_entry(486); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 486 */ +i = 0; +current_location.update_lineno(486); +ttcn3_debugger.breakpoint_entry(486); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 486 */ +for ( ; ; ) { +current_location.update_lineno(486); +ttcn3_debugger.breakpoint_entry(486); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 486 */ +if (!(i < v__DataLength)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(487); +ttcn3_debugger.breakpoint_entry(487); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 487 */ +v__Word = (const_cast< const OCTETSTRING&>(p__OctetString_shadow)[i] + const_cast< const OCTETSTRING&>(p__OctetString_shadow)[(i + 1)]); +current_location.update_lineno(488); +ttcn3_debugger.breakpoint_entry(488); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 488 */ +{ +INTEGER tmp_66; +tmp_66 = (v__Sum + oct2int(v__Word)); +v__Sum = tmp_66; +} +current_location.update_lineno(486); +ttcn3_debugger.breakpoint_entry(486); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 486 */ +{ +INTEGER tmp_67; +tmp_67 = (i + 2); +i = tmp_67; +} +} +for ( ; ; ) { +current_location.update_lineno(491); +ttcn3_debugger.breakpoint_entry(491); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 491 */ +if (!(v__Sum > CommonDefs::tsc__UInt16Max)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(492); +ttcn3_debugger.breakpoint_entry(492); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 492 */ +{ +INTEGER tmp_68; +tmp_68 = (mod(v__Sum, 65536) + (v__Sum / 65536)); +v__Sum = tmp_68; +} +} +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 495 */ +{ +INTEGER tmp_69; +tmp_69 = (CommonDefs::tsc__UInt16Max - v__Sum); +v__Sum = tmp_69; +} +current_location.update_lineno(496); +ttcn3_debugger.breakpoint_entry(496); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 496 */ +{ +OCTETSTRING tmp_70; +return DEBUGGER_STORE_RETURN_VALUE(tmp_70, int2oct(v__Sum, 2)); +} +} + +BOOLEAN f__IPv6AddrIsMulticast(const CHARSTRING& p__IPv6Addr) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 506, TTCN_Location::LOCATION_FUNCTION, "f_IPv6AddrIsMulticast"); +charstring_list param_names; +param_names[0] = "p_IPv6Addr"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv6AddrIsMulticast", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IPv6Addr, "p_IPv6Addr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(508); +ttcn3_debugger.breakpoint_entry(508); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 508 */ +OCTETSTRING v__Prefix; +debug_scope.add_variable(&v__Prefix, "v_Prefix", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(509); +ttcn3_debugger.breakpoint_entry(509); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 509 */ +v__Prefix = str2oct(substr(p__IPv6Addr, 0, 4)); +current_location.update_lineno(510); +ttcn3_debugger.breakpoint_entry(510); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 510 */ +if ((v__Prefix == os_0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(511); +ttcn3_debugger.breakpoint_entry(511); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 511 */ +{ +BOOLEAN tmp_72; +return DEBUGGER_STORE_RETURN_VALUE(tmp_72, TRUE); +} +} +current_location.update_lineno(513); +ttcn3_debugger.breakpoint_entry(513); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 513 */ +{ +BOOLEAN tmp_73; +return DEBUGGER_STORE_RETURN_VALUE(tmp_73, FALSE); +} +} + +CHARSTRING f__IPv6AddrGetLinkLocalAddr(const CHARSTRING& p__IPv6Addr) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 523, TTCN_Location::LOCATION_FUNCTION, "f_IPv6AddrGetLinkLocalAddr"); +charstring_list param_names; +param_names[0] = "p_IPv6Addr"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv6AddrGetLinkLocalAddr", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IPv6Addr, "p_IPv6Addr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(525); +ttcn3_debugger.breakpoint_entry(525); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 525 */ +OCTETSTRING v__IPv6AddrOctets(f__Convert__IPv6Addr2OctString(p__IPv6Addr)); +debug_scope.add_variable(&v__IPv6AddrOctets, "v_IPv6AddrOctets", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(526); +ttcn3_debugger.breakpoint_entry(526); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 526 */ +OCTETSTRING v__InterfaceId(substr(v__IPv6AddrOctets, 8, 8)); +debug_scope.add_variable(&v__InterfaceId, "v_InterfaceId", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(528); +ttcn3_debugger.breakpoint_entry(528); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 528 */ +{ +CHARSTRING tmp_74; +return DEBUGGER_STORE_RETURN_VALUE(tmp_74, f__Convert__OctString2IPv6Addr((os_5 + v__InterfaceId))); +} +} + +OCTETSTRING f__ICMPv6__UpdateCRCChecksum(const CHARSTRING& p__SrcAddress, const CHARSTRING& p__DstAddress, const OCTETSTRING& p__IcmpPDU) +{ +OCTETSTRING p__IcmpPDU_shadow(p__IcmpPDU); +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 540, TTCN_Location::LOCATION_FUNCTION, "f_ICMPv6_UpdateCRCChecksum"); +charstring_list param_names; +param_names[0] = "p_SrcAddress"; +param_names[1] = "p_DstAddress"; +param_names[2] = "p_IcmpPDU"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_ICMPv6_UpdateCRCChecksum", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__SrcAddress, "p_SrcAddress", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DstAddress, "p_DstAddress", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IcmpPDU_shadow, "p_IcmpPDU", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(544); +ttcn3_debugger.breakpoint_entry(544); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 544 */ +OCTETSTRING v__PseudoHeader; +debug_scope.add_variable(&v__PseudoHeader, "v_PseudoHeader", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(545); +ttcn3_debugger.breakpoint_entry(545); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 545 */ +OCTETSTRING v__IcmpPDU(p__IcmpPDU_shadow); +debug_scope.add_variable(&v__IcmpPDU, "v_IcmpPDU", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(546); +ttcn3_debugger.breakpoint_entry(546); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 546 */ +OCTETSTRING v__Checksum; +debug_scope.add_variable(&v__Checksum, "v_Checksum", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(549); +ttcn3_debugger.breakpoint_entry(549); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 549 */ +v__PseudoHeader = (((f__Convert__IPv6Addr2OctString(p__SrcAddress) + f__Convert__IPv6Addr2OctString(p__DstAddress)) + int2oct(p__IcmpPDU_shadow.lengthof(), 4)) + os_6); +current_location.update_lineno(556); +ttcn3_debugger.breakpoint_entry(556); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 556 */ +p__IcmpPDU_shadow[2] = os_4; +current_location.update_lineno(557); +ttcn3_debugger.breakpoint_entry(557); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 557 */ +p__IcmpPDU_shadow[3] = os_4; +current_location.update_lineno(560); +ttcn3_debugger.breakpoint_entry(560); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 560 */ +v__Checksum = f__IpChecksum((v__PseudoHeader + p__IcmpPDU_shadow)); +current_location.update_lineno(563); +ttcn3_debugger.breakpoint_entry(563); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 563 */ +v__IcmpPDU[2] = const_cast< const OCTETSTRING&>(v__Checksum)[0]; +current_location.update_lineno(564); +ttcn3_debugger.breakpoint_entry(564); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 564 */ +v__IcmpPDU[3] = const_cast< const OCTETSTRING&>(v__Checksum)[1]; +current_location.update_lineno(565); +ttcn3_debugger.breakpoint_entry(565); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 565 */ +{ +OCTETSTRING tmp_81; +return DEBUGGER_STORE_RETURN_VALUE(tmp_81, v__IcmpPDU); +} +} + +OCTETSTRING f__IPv6Packet__Create(const OCTETSTRING& p__TrafficClass, const INTEGER& p__FlowLabel, const INTEGER& p__Protocol, const INTEGER& p__HopCount, const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const OCTETSTRING& p__IPPayload) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 582, TTCN_Location::LOCATION_FUNCTION, "f_IPv6Packet_Create"); +charstring_list param_names; +param_names[0] = "p_TrafficClass"; +param_names[1] = "p_FlowLabel"; +param_names[2] = "p_Protocol"; +param_names[3] = "p_HopCount"; +param_names[4] = "p_SourceAddr"; +param_names[5] = "p_DestAddr"; +param_names[6] = "p_IPPayload"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv6Packet_Create", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__TrafficClass, "p_TrafficClass", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__FlowLabel, "p_FlowLabel", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Protocol, "p_Protocol", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__HopCount, "p_HopCount", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPPayload, "p_IPPayload", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(591); +ttcn3_debugger.breakpoint_entry(591); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 591 */ +HEXSTRING v__Version(hs_0); +debug_scope.add_variable(&v__Version, "v_Version", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(592); +ttcn3_debugger.breakpoint_entry(592); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 592 */ +HEXSTRING v__TrafficClass(oct2hex(p__TrafficClass)); +debug_scope.add_variable(&v__TrafficClass, "v_TrafficClass", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(593); +ttcn3_debugger.breakpoint_entry(593); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 593 */ +HEXSTRING v__FlowLabel(int2hex(p__FlowLabel, 5)); +debug_scope.add_variable(&v__FlowLabel, "v_FlowLabel", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(594); +ttcn3_debugger.breakpoint_entry(594); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 594 */ +OCTETSTRING v__SourceAddrStr(f__Convert__IPv6Addr2OctString(p__SourceAddr)); +debug_scope.add_variable(&v__SourceAddrStr, "v_SourceAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(595); +ttcn3_debugger.breakpoint_entry(595); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 595 */ +OCTETSTRING v__DestAddrStr(f__Convert__IPv6Addr2OctString(p__DestAddr)); +debug_scope.add_variable(&v__DestAddrStr, "v_DestAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(596); +ttcn3_debugger.breakpoint_entry(596); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 596 */ +OCTETSTRING v__OctetString; +debug_scope.add_variable(&v__OctetString, "v_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(599); +ttcn3_debugger.breakpoint_entry(599); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 599 */ +v__OctetString = hex2oct(((v__Version + v__TrafficClass) + v__FlowLabel)); +current_location.update_lineno(600); +ttcn3_debugger.breakpoint_entry(600); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 600 */ +{ +OCTETSTRING tmp_83; +tmp_83 = (v__OctetString + int2oct(p__IPPayload.lengthof(), 2)); +v__OctetString = tmp_83; +} +current_location.update_lineno(601); +ttcn3_debugger.breakpoint_entry(601); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 601 */ +{ +OCTETSTRING tmp_84; +tmp_84 = (v__OctetString + int2oct(p__Protocol, 1)); +v__OctetString = tmp_84; +} +current_location.update_lineno(602); +ttcn3_debugger.breakpoint_entry(602); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 602 */ +{ +OCTETSTRING tmp_85; +tmp_85 = (v__OctetString + int2oct(p__HopCount, 1)); +v__OctetString = tmp_85; +} +current_location.update_lineno(603); +ttcn3_debugger.breakpoint_entry(603); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 603 */ +{ +OCTETSTRING tmp_86; +tmp_86 = (v__OctetString + v__SourceAddrStr); +v__OctetString = tmp_86; +} +current_location.update_lineno(604); +ttcn3_debugger.breakpoint_entry(604); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 604 */ +{ +OCTETSTRING tmp_87; +tmp_87 = (v__OctetString + v__DestAddrStr); +v__OctetString = tmp_87; +} +current_location.update_lineno(605); +ttcn3_debugger.breakpoint_entry(605); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 605 */ +{ +OCTETSTRING tmp_88; +tmp_88 = (v__OctetString + p__IPPayload); +v__OctetString = tmp_88; +} +current_location.update_lineno(606); +ttcn3_debugger.breakpoint_entry(606); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 606 */ +{ +OCTETSTRING tmp_89; +return DEBUGGER_STORE_RETURN_VALUE(tmp_89, v__OctetString); +} +} + +CHARSTRING f__DomainName__MNC__MCC__DerivedFromIMSI(const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 617, TTCN_Location::LOCATION_FUNCTION, "f_DomainName_MNC_MCC_DerivedFromIMSI"); +charstring_list param_names; +param_names[0] = "p_IMSI"; +param_names[1] = "p_LengthOfMNC"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_DomainName_MNC_MCC_DerivedFromIMSI", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IMSI, "p_IMSI", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LengthOfMNC, "p_LengthOfMNC", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(620); +ttcn3_debugger.breakpoint_entry(620); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 620 */ +CHARSTRING v__IMSI(hex2str(p__IMSI)); +debug_scope.add_variable(&v__IMSI, "v_IMSI", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(621); +ttcn3_debugger.breakpoint_entry(621); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 621 */ +CHARSTRING v__MCC(substr(v__IMSI, 0, 3)); +debug_scope.add_variable(&v__MCC, "v_MCC", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(622); +ttcn3_debugger.breakpoint_entry(622); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 622 */ +CHARSTRING v__MNC(substr(v__IMSI, 3, p__LengthOfMNC)); +debug_scope.add_variable(&v__MNC, "v_MNC", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(624); +ttcn3_debugger.breakpoint_entry(624); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 624 */ +if ((p__LengthOfMNC == 2)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(625); +ttcn3_debugger.breakpoint_entry(625); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 625 */ +{ +CHARSTRING tmp_90; +tmp_90 = (cs_12 + v__MNC); +v__MNC = tmp_90; +} +} +current_location.update_lineno(628); +ttcn3_debugger.breakpoint_entry(628); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 628 */ +{ +CHARSTRING tmp_91; +return DEBUGGER_STORE_RETURN_VALUE(tmp_91, ((((cs_14 + v__MNC) + cs_8) + cs_15) + v__MCC)); +} +} + +CHARSTRING f__DomainName__3gppnetwork__DerivedFromIMSI(const CHARSTRING& p__FirstLabel, const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 640, TTCN_Location::LOCATION_FUNCTION, "f_DomainName_3gppnetwork_DerivedFromIMSI"); +charstring_list param_names; +param_names[0] = "p_FirstLabel"; +param_names[1] = "p_IMSI"; +param_names[2] = "p_LengthOfMNC"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_DomainName_3gppnetwork_DerivedFromIMSI", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__FirstLabel, "p_FirstLabel", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IMSI, "p_IMSI", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LengthOfMNC, "p_LengthOfMNC", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(646); +ttcn3_debugger.breakpoint_entry(646); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 646 */ +CHARSTRING v__MncMcc(f__DomainName__MNC__MCC__DerivedFromIMSI(p__IMSI, p__LengthOfMNC)); +debug_scope.add_variable(&v__MncMcc, "v_MncMcc", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(647); +ttcn3_debugger.breakpoint_entry(647); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 647 */ +CommonDefs::CharStringList__Type v__LableList; +v__LableList.set_size(3); +v__LableList[0] = p__FirstLabel; +v__LableList[1] = v__MncMcc; +v__LableList[2] = cs_16; +debug_scope.add_variable(&v__LableList, "v_LableList", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(649); +ttcn3_debugger.breakpoint_entry(649); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 649 */ +{ +CHARSTRING tmp_92; +return DEBUGGER_STORE_RETURN_VALUE(tmp_92, CommonDefs::f__StringJoin(v__LableList, cs_8)); +} +} + +CHARSTRING f__DomainName__IMS__DerivedFromIMSI(const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 659, TTCN_Location::LOCATION_FUNCTION, "f_DomainName_IMS_DerivedFromIMSI"); +charstring_list param_names; +param_names[0] = "p_IMSI"; +param_names[1] = "p_LengthOfMNC"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_DomainName_IMS_DerivedFromIMSI", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IMSI, "p_IMSI", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LengthOfMNC, "p_LengthOfMNC", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(662); +ttcn3_debugger.breakpoint_entry(662); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 662 */ +{ +CHARSTRING tmp_93; +return DEBUGGER_STORE_RETURN_VALUE(tmp_93, f__DomainName__3gppnetwork__DerivedFromIMSI(cs_17, p__IMSI, p__LengthOfMNC)); +} +} + +CHARSTRING f__IMS__PrivateUserIdentityDerivedFromIMSI(const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 672, TTCN_Location::LOCATION_FUNCTION, "f_IMS_PrivateUserIdentityDerivedFromIMSI"); +charstring_list param_names; +param_names[0] = "p_IMSI"; +param_names[1] = "p_LengthOfMNC"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_IMS_PrivateUserIdentityDerivedFromIMSI", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IMSI, "p_IMSI", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LengthOfMNC, "p_LengthOfMNC", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(675); +ttcn3_debugger.breakpoint_entry(675); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 675 */ +CHARSTRING v__IMSI(hex2str(p__IMSI)); +debug_scope.add_variable(&v__IMSI, "v_IMSI", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(676); +ttcn3_debugger.breakpoint_entry(676); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 676 */ +{ +CHARSTRING tmp_94; +return DEBUGGER_STORE_RETURN_VALUE(tmp_94, ((v__IMSI + cs_18) + f__DomainName__IMS__DerivedFromIMSI(p__IMSI, p__LengthOfMNC))); +} +} + +CHARSTRING f__IMS__TemporaryPublicUserIdentity(const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 686, TTCN_Location::LOCATION_FUNCTION, "f_IMS_TemporaryPublicUserIdentity"); +charstring_list param_names; +param_names[0] = "p_IMSI"; +param_names[1] = "p_LengthOfMNC"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_IMS_TemporaryPublicUserIdentity", "function", "CommonIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IMSI, "p_IMSI", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LengthOfMNC, "p_LengthOfMNC", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(689); +ttcn3_debugger.breakpoint_entry(689); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 689 */ +{ +CHARSTRING tmp_95; +return DEBUGGER_STORE_RETURN_VALUE(tmp_95, (cs_19 + f__IMS__PrivateUserIdentityDerivedFromIMSI(p__IMSI, p__LengthOfMNC))); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "CommonIP"); +CommonIP::init_ttcn3_debugger(); +Parameters::module_object.pre_init_module(); +current_location.update_lineno(17); +ttcn3_debugger.breakpoint_entry(17); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 17 */ +const_tsc__IMS__MediaPort__M1 = 60350; +current_location.update_lineno(19); +ttcn3_debugger.breakpoint_entry(19); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 19 */ +const_tsc__IMS__MediaPort__M2 = 60352; +current_location.update_lineno(21); +ttcn3_debugger.breakpoint_entry(21); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 21 */ +const_tsc__IMS__MediaPort__M3 = 60354; +current_location.update_lineno(25); +ttcn3_debugger.breakpoint_entry(25); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 25 */ +const_tsc__PortNumberHTTP = 80; +current_location.update_lineno(26); +ttcn3_debugger.breakpoint_entry(26); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 26 */ +const_tsc__PortNumberHTTPS = 443; +current_location.update_lineno(28); +ttcn3_debugger.breakpoint_entry(28); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 28 */ +const_tsc__IP__Protocol__ICMP = 1; +current_location.update_lineno(29); +ttcn3_debugger.breakpoint_entry(29); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 29 */ +const_tsc__IP__Protocol__UDP = 17; +current_location.update_lineno(30); +ttcn3_debugger.breakpoint_entry(30); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 30 */ +const_tsc__ICMP__Type__EchoReply = 0; +current_location.update_lineno(31); +ttcn3_debugger.breakpoint_entry(31); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 31 */ +const_tsc__ICMPv6__Type__EchoReply = 129; +current_location.update_lineno(32); +ttcn3_debugger.breakpoint_entry(32); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 32 */ +const_tsc__ICMP__Type__EchoRequest = 8; +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 33 */ +const_tsc__ICMPv6__Type__EchoRequest = 128; +current_location.update_lineno(34); +ttcn3_debugger.breakpoint_entry(34); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 34 */ +const_tsc__IP__Protocol__TCP = 6; +current_location.update_lineno(35); +ttcn3_debugger.breakpoint_entry(35); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 35 */ +const_tsc__IP__Protocol__IPSec = 50; +current_location.update_lineno(36); +ttcn3_debugger.breakpoint_entry(36); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 36 */ +const_tsc__IP__Protocol__ICMPv6 = 58; +current_location.update_lineno(37); +ttcn3_debugger.breakpoint_entry(37); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 37 */ +const_tsc__IMS__PortNumber__5060 = 5060; +current_location.update_lineno(39); +ttcn3_debugger.breakpoint_entry(39); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 39 */ +const_tsc__MulticastPrefix__FF02 = os_0; +current_location.update_lineno(41); +ttcn3_debugger.breakpoint_entry(41); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 41 */ +const_tsc__IP__AnyData = os_1; +module_object.add_function("f_PDN_PdnIndex2Integer", (genericfunc_t)&f__PDN__PdnIndex2Integer, NULL); +module_object.add_function("f_PDN_PdnIndex2ImsIndex", (genericfunc_t)&f__PDN__PdnIndex2ImsIndex, NULL); +module_object.add_function("f_PDN_AddressInfo_Get", (genericfunc_t)&f__PDN__AddressInfo__Get, NULL); +module_object.add_function("f_IpAddressIsIPv4", (genericfunc_t)&f__IpAddressIsIPv4, NULL); +module_object.add_function("f_IpAddressIsIPv6", (genericfunc_t)&f__IpAddressIsIPv6, NULL); +module_object.add_function("f_IpAddressAsHostname", (genericfunc_t)&f__IpAddressAsHostname, NULL); +module_object.add_function("f_Convert_IPv4Addr2OctString", (genericfunc_t)&f__Convert__IPv4Addr2OctString, NULL); +module_object.add_function("f_Convert_IPv6Addr2OctString", (genericfunc_t)&f__Convert__IPv6Addr2OctString, NULL); +module_object.add_function("f_IPAddresses_Compare", (genericfunc_t)&f__IPAddresses__Compare, NULL); +module_object.add_function("f_Convert_OctString2IPv6Addr", (genericfunc_t)&f__Convert__OctString2IPv6Addr, NULL); +module_object.add_function("f_Convert_OctString2IPv4Addr", (genericfunc_t)&f__Convert__OctString2IPv4Addr, NULL); +module_object.add_function("f_IpChecksum", (genericfunc_t)&f__IpChecksum, NULL); +module_object.add_function("f_IPv6AddrIsMulticast", (genericfunc_t)&f__IPv6AddrIsMulticast, NULL); +module_object.add_function("f_IPv6AddrGetLinkLocalAddr", (genericfunc_t)&f__IPv6AddrGetLinkLocalAddr, NULL); +module_object.add_function("f_ICMPv6_UpdateCRCChecksum", (genericfunc_t)&f__ICMPv6__UpdateCRCChecksum, NULL); +module_object.add_function("f_IPv6Packet_Create", (genericfunc_t)&f__IPv6Packet__Create, NULL); +module_object.add_function("f_DomainName_MNC_MCC_DerivedFromIMSI", (genericfunc_t)&f__DomainName__MNC__MCC__DerivedFromIMSI, NULL); +module_object.add_function("f_DomainName_3gppnetwork_DerivedFromIMSI", (genericfunc_t)&f__DomainName__3gppnetwork__DerivedFromIMSI, NULL); +module_object.add_function("f_DomainName_IMS_DerivedFromIMSI", (genericfunc_t)&f__DomainName__IMS__DerivedFromIMSI, NULL); +module_object.add_function("f_IMS_PrivateUserIdentityDerivedFromIMSI", (genericfunc_t)&f__IMS__PrivateUserIdentityDerivedFromIMSI, NULL); +module_object.add_function("f_IMS_TemporaryPublicUserIdentity", (genericfunc_t)&f__IMS__TemporaryPublicUserIdentity, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "CommonIP"); +Parameters::module_object.post_init_module(); +current_location.update_lineno(60); +ttcn3_debugger.breakpoint_entry(60); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 60 */ +const_tsc__PDN1__AddressInfo.UE__IPAddressIPv4() = Parameters::px__IPv4__Address1__UE; +const_tsc__PDN1__AddressInfo.UE__IPAddressIPv6() = Parameters::px__IPv6__Address1__UE; +const_tsc__PDN1__AddressInfo.Remote__IPAddressIPv4() = Parameters::px__IPv4__Address1__RemoteUE; +const_tsc__PDN1__AddressInfo.Remote__IPAddressIPv6() = Parameters::px__IPv6__Address1__RemoteUE; +const_tsc__PDN1__AddressInfo.DHCP__ServerAddress() = Parameters::px__IPv4__Address1__NW; +const_tsc__PDN1__AddressInfo.ICMPv6__ServerAddress() = Parameters::px__IPv6__Address1__NW; +const_tsc__PDN1__AddressInfo.PCSCF__IPAddressIPv4() = Parameters::px__IPv4__Address1__NW; +const_tsc__PDN1__AddressInfo.PCSCF__IPAddressIPv6() = Parameters::px__IPv6__Address1__NW; +const_tsc__PDN1__AddressInfo.DNS__ServerAddressIPv4() = Parameters::px__IPv4__Address1__NW; +const_tsc__PDN1__AddressInfo.DNS__ServerAddressIPv6() = Parameters::px__IPv6__Address1__NW; +const_tsc__PDN1__AddressInfo.XCAP__ServerAddressIPv4() = Parameters::px__IPv4__Address1__NW; +const_tsc__PDN1__AddressInfo.XCAP__ServerAddressIPv6() = Parameters::px__IPv6__Address1__NW; +const_tsc__PDN1__AddressInfo.ProSe__ServerAddressIPv4() = Parameters::px__IPv4__Address1__NW; +const_tsc__PDN1__AddressInfo.ProSe__ServerAddressIPv6() = Parameters::px__IPv6__Address1__NW; +current_location.update_lineno(76); +ttcn3_debugger.breakpoint_entry(76); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 76 */ +const_tsc__PDN2__AddressInfo.UE__IPAddressIPv4() = Parameters::px__IPv4__Address2__UE; +const_tsc__PDN2__AddressInfo.UE__IPAddressIPv6() = Parameters::px__IPv6__Address2__UE; +const_tsc__PDN2__AddressInfo.Remote__IPAddressIPv4() = Parameters::px__IPv4__Address2__RemoteUE; +const_tsc__PDN2__AddressInfo.Remote__IPAddressIPv6() = Parameters::px__IPv6__Address2__RemoteUE; +const_tsc__PDN2__AddressInfo.DHCP__ServerAddress() = Parameters::px__IPv4__Address2__NW; +const_tsc__PDN2__AddressInfo.ICMPv6__ServerAddress() = Parameters::px__IPv6__Address2__NW; +const_tsc__PDN2__AddressInfo.PCSCF__IPAddressIPv4() = Parameters::px__IPv4__Address2__NW; +const_tsc__PDN2__AddressInfo.PCSCF__IPAddressIPv6() = Parameters::px__IPv6__Address2__NW; +const_tsc__PDN2__AddressInfo.DNS__ServerAddressIPv4() = Parameters::px__IPv4__Address2__NW; +const_tsc__PDN2__AddressInfo.DNS__ServerAddressIPv6() = Parameters::px__IPv6__Address2__NW; +const_tsc__PDN2__AddressInfo.XCAP__ServerAddressIPv4() = Parameters::px__IPv4__Address2__NW; +const_tsc__PDN2__AddressInfo.XCAP__ServerAddressIPv6() = Parameters::px__IPv6__Address2__NW; +const_tsc__PDN2__AddressInfo.ProSe__ServerAddressIPv4() = Parameters::px__IPv4__Address2__NW; +const_tsc__PDN2__AddressInfo.ProSe__ServerAddressIPv6() = Parameters::px__IPv6__Address2__NW; +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 94 */ +const_tsc__PDN3__AddressInfo.UE__IPAddressIPv4() = Parameters::px__IPv4__Address3__UE; +const_tsc__PDN3__AddressInfo.UE__IPAddressIPv6() = Parameters::px__IPv6__Address3__UE; +const_tsc__PDN3__AddressInfo.Remote__IPAddressIPv4() = Parameters::px__IPv4__Address3__RemoteUE; +const_tsc__PDN3__AddressInfo.Remote__IPAddressIPv6() = Parameters::px__IPv6__Address3__RemoteUE; +const_tsc__PDN3__AddressInfo.DHCP__ServerAddress() = Parameters::px__IPv4__Address3__NW; +const_tsc__PDN3__AddressInfo.ICMPv6__ServerAddress() = Parameters::px__IPv6__Address3__NW; +const_tsc__PDN3__AddressInfo.PCSCF__IPAddressIPv4() = Parameters::px__IPv4__Address3__NW; +const_tsc__PDN3__AddressInfo.PCSCF__IPAddressIPv6() = Parameters::px__IPv6__Address3__NW; +const_tsc__PDN3__AddressInfo.DNS__ServerAddressIPv4() = Parameters::px__IPv4__Address3__NW; +const_tsc__PDN3__AddressInfo.DNS__ServerAddressIPv6() = Parameters::px__IPv6__Address3__NW; +const_tsc__PDN3__AddressInfo.XCAP__ServerAddressIPv4() = Parameters::px__IPv4__Address3__NW; +const_tsc__PDN3__AddressInfo.XCAP__ServerAddressIPv6() = Parameters::px__IPv6__Address3__NW; +const_tsc__PDN3__AddressInfo.ProSe__ServerAddressIPv4() = Parameters::px__IPv4__Address3__NW; +const_tsc__PDN3__AddressInfo.ProSe__ServerAddressIPv6() = Parameters::px__IPv6__Address3__NW; +current_location.update_lineno(112); +ttcn3_debugger.breakpoint_entry(112); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 112 */ +const_tsc__PDN4__AddressInfo.UE__IPAddressIPv4() = Parameters::px__IPv4__Address4__UE; +const_tsc__PDN4__AddressInfo.UE__IPAddressIPv6() = Parameters::px__IPv6__Address4__UE; +const_tsc__PDN4__AddressInfo.Remote__IPAddressIPv4() = Parameters::px__IPv4__Address3__RemoteUE; +const_tsc__PDN4__AddressInfo.Remote__IPAddressIPv6() = Parameters::px__IPv6__Address3__RemoteUE; +const_tsc__PDN4__AddressInfo.DHCP__ServerAddress() = Parameters::px__IPv4__Address4__NW; +const_tsc__PDN4__AddressInfo.ICMPv6__ServerAddress() = Parameters::px__IPv6__Address4__NW; +const_tsc__PDN4__AddressInfo.PCSCF__IPAddressIPv4() = Parameters::px__IPv4__Address4__NW; +const_tsc__PDN4__AddressInfo.PCSCF__IPAddressIPv6() = Parameters::px__IPv6__Address4__NW; +const_tsc__PDN4__AddressInfo.DNS__ServerAddressIPv4() = Parameters::px__IPv4__Address4__NW; +const_tsc__PDN4__AddressInfo.DNS__ServerAddressIPv6() = Parameters::px__IPv6__Address4__NW; +const_tsc__PDN4__AddressInfo.XCAP__ServerAddressIPv4() = Parameters::px__IPv4__Address4__NW; +const_tsc__PDN4__AddressInfo.XCAP__ServerAddressIPv6() = Parameters::px__IPv6__Address4__NW; +const_tsc__PDN4__AddressInfo.ProSe__ServerAddressIPv4() = Parameters::px__IPv4__Address4__NW; +const_tsc__PDN4__AddressInfo.ProSe__ServerAddressIPv6() = Parameters::px__IPv6__Address4__NW; +current_location.update_lineno(130); +ttcn3_debugger.breakpoint_entry(130); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 130 */ +const_tsc__PDN5__AddressInfo.UE__IPAddressIPv4() = Parameters::px__IPv4__Address5__UE; +const_tsc__PDN5__AddressInfo.UE__IPAddressIPv6() = Parameters::px__IPv6__Address5__UE; +const_tsc__PDN5__AddressInfo.Remote__IPAddressIPv4() = Parameters::px__IPv4__Address3__RemoteUE; +const_tsc__PDN5__AddressInfo.Remote__IPAddressIPv6() = Parameters::px__IPv6__Address3__RemoteUE; +const_tsc__PDN5__AddressInfo.DHCP__ServerAddress() = Parameters::px__IPv4__Address5__NW; +const_tsc__PDN5__AddressInfo.ICMPv6__ServerAddress() = Parameters::px__IPv6__Address5__NW; +const_tsc__PDN5__AddressInfo.PCSCF__IPAddressIPv4() = Parameters::px__IPv4__Address5__NW; +const_tsc__PDN5__AddressInfo.PCSCF__IPAddressIPv6() = Parameters::px__IPv6__Address5__NW; +const_tsc__PDN5__AddressInfo.DNS__ServerAddressIPv4() = Parameters::px__IPv4__Address5__NW; +const_tsc__PDN5__AddressInfo.DNS__ServerAddressIPv6() = Parameters::px__IPv6__Address5__NW; +const_tsc__PDN5__AddressInfo.XCAP__ServerAddressIPv4() = Parameters::px__IPv4__Address5__NW; +const_tsc__PDN5__AddressInfo.XCAP__ServerAddressIPv6() = Parameters::px__IPv6__Address5__NW; +const_tsc__PDN5__AddressInfo.ProSe__ServerAddressIPv4() = Parameters::px__IPv4__Address5__NW; +const_tsc__PDN5__AddressInfo.ProSe__ServerAddressIPv6() = Parameters::px__IPv6__Address5__NW; +current_location.update_lineno(148); +ttcn3_debugger.breakpoint_entry(148); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 148 */ +const_tsc__PDN6__AddressInfo.UE__IPAddressIPv4() = Parameters::px__IPv4__Address6__UE; +const_tsc__PDN6__AddressInfo.UE__IPAddressIPv6() = Parameters::px__IPv6__Address6__UE; +const_tsc__PDN6__AddressInfo.Remote__IPAddressIPv4() = Parameters::px__IPv4__Address3__RemoteUE; +const_tsc__PDN6__AddressInfo.Remote__IPAddressIPv6() = Parameters::px__IPv6__Address3__RemoteUE; +const_tsc__PDN6__AddressInfo.DHCP__ServerAddress() = Parameters::px__IPv4__Address6__NW; +const_tsc__PDN6__AddressInfo.ICMPv6__ServerAddress() = Parameters::px__IPv6__Address6__NW; +const_tsc__PDN6__AddressInfo.PCSCF__IPAddressIPv4() = Parameters::px__IPv4__Address6__NW; +const_tsc__PDN6__AddressInfo.PCSCF__IPAddressIPv6() = Parameters::px__IPv6__Address6__NW; +const_tsc__PDN6__AddressInfo.DNS__ServerAddressIPv4() = Parameters::px__IPv4__Address6__NW; +const_tsc__PDN6__AddressInfo.DNS__ServerAddressIPv6() = Parameters::px__IPv6__Address6__NW; +const_tsc__PDN6__AddressInfo.XCAP__ServerAddressIPv4() = Parameters::px__IPv4__Address6__NW; +const_tsc__PDN6__AddressInfo.XCAP__ServerAddressIPv6() = Parameters::px__IPv6__Address6__NW; +const_tsc__PDN6__AddressInfo.ProSe__ServerAddressIPv4() = Parameters::px__IPv4__Address6__NW; +const_tsc__PDN6__AddressInfo.ProSe__ServerAddressIPv6() = Parameters::px__IPv6__Address6__NW; +current_location.update_lineno(166); +ttcn3_debugger.breakpoint_entry(166); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 166 */ +const_tsc__PDN__AddressInfo[0] = tsc__PDN1__AddressInfo; +const_tsc__PDN__AddressInfo[1] = tsc__PDN2__AddressInfo; +const_tsc__PDN__AddressInfo[2] = tsc__PDN3__AddressInfo; +const_tsc__PDN__AddressInfo[3] = tsc__PDN4__AddressInfo; +const_tsc__PDN__AddressInfo[4] = tsc__PDN5__AddressInfo; +const_tsc__PDN__AddressInfo[5] = tsc__PDN6__AddressInfo; +current_location.update_lineno(582); +ttcn3_debugger.breakpoint_entry(582); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 582 */ +const_f__IPv6Packet__Create_p__TrafficClass_defval = os_4; +current_location.update_lineno(583); +ttcn3_debugger.breakpoint_entry(583); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 583 */ +const_f__IPv6Packet__Create_p__FlowLabel_defval = 0; +current_location.update_lineno(585); +ttcn3_debugger.breakpoint_entry(585); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 585 */ +const_f__IPv6Packet__Create_p__HopCount_defval = 64; +current_location.update_lineno(618); +ttcn3_debugger.breakpoint_entry(618); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 618 */ +const_f__DomainName__MNC__MCC__DerivedFromIMSI_p__LengthOfMNC_defval = 2; +current_location.update_lineno(642); +ttcn3_debugger.breakpoint_entry(642); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 642 */ +const_f__DomainName__3gppnetwork__DerivedFromIMSI_p__LengthOfMNC_defval = 2; +current_location.update_lineno(660); +ttcn3_debugger.breakpoint_entry(660); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 660 */ +const_f__DomainName__IMS__DerivedFromIMSI_p__LengthOfMNC_defval = 2; +current_location.update_lineno(673); +ttcn3_debugger.breakpoint_entry(673); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 673 */ +const_f__IMS__PrivateUserIdentityDerivedFromIMSI_p__LengthOfMNC_defval = 2; +current_location.update_lineno(687); +ttcn3_debugger.breakpoint_entry(687); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/CommonIP.ttcn, line 687 */ +const_f__IMS__TemporaryPublicUserIdentity_p__LengthOfMNC_defval = 2; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/CommonIP.hh b/build/Ats_NG_NAS/CommonIP.hh new file mode 100644 index 0000000000000000000000000000000000000000..1dc39aecd1a112ed84b308fa806e185751757cdb --- /dev/null +++ b/build/Ats_NG_NAS/CommonIP.hh @@ -0,0 +1,502 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef CommonIP_HH +#define CommonIP_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "Parameters.hh" + +#if TTCN3_VERSION != 100000 +#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 CommonIP_HH +#endif + +namespace CommonIP { + +/* Forward declarations of classes */ + +class PDN__AddressInfo__Type; +class PDN__AddressInfo__Type_template; +class WLAN__AddressInfo__Type; +class WLAN__AddressInfo__Type_template; + +} /* end of namespace */ + +#ifndef CommonIP_HH +#define CommonIP_HH + +namespace CommonIP { + +/* Class definitions */ + +class PDN__AddressInfo__Type : public Record_Type { + CHARSTRING field_UE__IPAddressIPv4; + CHARSTRING field_UE__IPAddressIPv6; + CHARSTRING field_Remote__IPAddressIPv4; + CHARSTRING field_Remote__IPAddressIPv6; + CHARSTRING field_DHCP__ServerAddress; + CHARSTRING field_ICMPv6__ServerAddress; + CHARSTRING field_PCSCF__IPAddressIPv4; + CHARSTRING field_PCSCF__IPAddressIPv6; + CHARSTRING field_DNS__ServerAddressIPv4; + CHARSTRING field_DNS__ServerAddressIPv6; + CHARSTRING field_XCAP__ServerAddressIPv4; + CHARSTRING field_XCAP__ServerAddressIPv6; + CHARSTRING field_ProSe__ServerAddressIPv4; + CHARSTRING field_ProSe__ServerAddressIPv6; + Base_Type* fld_vec[14]; + void init_vec(); +public: + PDN__AddressInfo__Type(); + PDN__AddressInfo__Type(const PDN__AddressInfo__Type& other_value); + PDN__AddressInfo__Type(const CHARSTRING& par_UE__IPAddressIPv4, + const CHARSTRING& par_UE__IPAddressIPv6, + const CHARSTRING& par_Remote__IPAddressIPv4, + const CHARSTRING& par_Remote__IPAddressIPv6, + const CHARSTRING& par_DHCP__ServerAddress, + const CHARSTRING& par_ICMPv6__ServerAddress, + const CHARSTRING& par_PCSCF__IPAddressIPv4, + const CHARSTRING& par_PCSCF__IPAddressIPv6, + const CHARSTRING& par_DNS__ServerAddressIPv4, + const CHARSTRING& par_DNS__ServerAddressIPv6, + const CHARSTRING& par_XCAP__ServerAddressIPv4, + const CHARSTRING& par_XCAP__ServerAddressIPv6, + const CHARSTRING& par_ProSe__ServerAddressIPv4, + const CHARSTRING& par_ProSe__ServerAddressIPv6); +inline PDN__AddressInfo__Type& operator=(const PDN__AddressInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDN__AddressInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDN__AddressInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline CHARSTRING& UE__IPAddressIPv4() + {return field_UE__IPAddressIPv4;} + inline const CHARSTRING& UE__IPAddressIPv4() const + {return field_UE__IPAddressIPv4;} + inline CHARSTRING& UE__IPAddressIPv6() + {return field_UE__IPAddressIPv6;} + inline const CHARSTRING& UE__IPAddressIPv6() const + {return field_UE__IPAddressIPv6;} + inline CHARSTRING& Remote__IPAddressIPv4() + {return field_Remote__IPAddressIPv4;} + inline const CHARSTRING& Remote__IPAddressIPv4() const + {return field_Remote__IPAddressIPv4;} + inline CHARSTRING& Remote__IPAddressIPv6() + {return field_Remote__IPAddressIPv6;} + inline const CHARSTRING& Remote__IPAddressIPv6() const + {return field_Remote__IPAddressIPv6;} + inline CHARSTRING& DHCP__ServerAddress() + {return field_DHCP__ServerAddress;} + inline const CHARSTRING& DHCP__ServerAddress() const + {return field_DHCP__ServerAddress;} + inline CHARSTRING& ICMPv6__ServerAddress() + {return field_ICMPv6__ServerAddress;} + inline const CHARSTRING& ICMPv6__ServerAddress() const + {return field_ICMPv6__ServerAddress;} + inline CHARSTRING& PCSCF__IPAddressIPv4() + {return field_PCSCF__IPAddressIPv4;} + inline const CHARSTRING& PCSCF__IPAddressIPv4() const + {return field_PCSCF__IPAddressIPv4;} + inline CHARSTRING& PCSCF__IPAddressIPv6() + {return field_PCSCF__IPAddressIPv6;} + inline const CHARSTRING& PCSCF__IPAddressIPv6() const + {return field_PCSCF__IPAddressIPv6;} + inline CHARSTRING& DNS__ServerAddressIPv4() + {return field_DNS__ServerAddressIPv4;} + inline const CHARSTRING& DNS__ServerAddressIPv4() const + {return field_DNS__ServerAddressIPv4;} + inline CHARSTRING& DNS__ServerAddressIPv6() + {return field_DNS__ServerAddressIPv6;} + inline const CHARSTRING& DNS__ServerAddressIPv6() const + {return field_DNS__ServerAddressIPv6;} + inline CHARSTRING& XCAP__ServerAddressIPv4() + {return field_XCAP__ServerAddressIPv4;} + inline const CHARSTRING& XCAP__ServerAddressIPv4() const + {return field_XCAP__ServerAddressIPv4;} + inline CHARSTRING& XCAP__ServerAddressIPv6() + {return field_XCAP__ServerAddressIPv6;} + inline const CHARSTRING& XCAP__ServerAddressIPv6() const + {return field_XCAP__ServerAddressIPv6;} + inline CHARSTRING& ProSe__ServerAddressIPv4() + {return field_ProSe__ServerAddressIPv4;} + inline const CHARSTRING& ProSe__ServerAddressIPv4() const + {return field_ProSe__ServerAddressIPv4;} + inline CHARSTRING& ProSe__ServerAddressIPv6() + {return field_ProSe__ServerAddressIPv6;} + inline const CHARSTRING& ProSe__ServerAddressIPv6() const + {return field_ProSe__ServerAddressIPv6;} +Base_Type* clone() const { return new PDN__AddressInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 14; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDN__AddressInfo__Type_template : public Record_Template { +void set_specific(); +public: +PDN__AddressInfo__Type_template(): Record_Template() {} +PDN__AddressInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +PDN__AddressInfo__Type_template(const PDN__AddressInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +PDN__AddressInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDN__AddressInfo__Type_template(PDN__AddressInfo__Type_template* p_precondition, PDN__AddressInfo__Type_template* p_implied_template); +PDN__AddressInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +PDN__AddressInfo__Type_template(const PDN__AddressInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~PDN__AddressInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDN__AddressInfo__Type_template& operator=(template_sel other_value); +PDN__AddressInfo__Type_template& operator=(const PDN__AddressInfo__Type& other_value); +PDN__AddressInfo__Type_template& operator=(const OPTIONAL& other_value); +PDN__AddressInfo__Type_template& operator=(const PDN__AddressInfo__Type_template& other_value); +inline boolean match(const PDN__AddressInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDN__AddressInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDN__AddressInfo__Type valueof() const; +inline PDN__AddressInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +CHARSTRING_template& UE__IPAddressIPv4(); +const CHARSTRING_template& UE__IPAddressIPv4() const; +CHARSTRING_template& UE__IPAddressIPv6(); +const CHARSTRING_template& UE__IPAddressIPv6() const; +CHARSTRING_template& Remote__IPAddressIPv4(); +const CHARSTRING_template& Remote__IPAddressIPv4() const; +CHARSTRING_template& Remote__IPAddressIPv6(); +const CHARSTRING_template& Remote__IPAddressIPv6() const; +CHARSTRING_template& DHCP__ServerAddress(); +const CHARSTRING_template& DHCP__ServerAddress() const; +CHARSTRING_template& ICMPv6__ServerAddress(); +const CHARSTRING_template& ICMPv6__ServerAddress() const; +CHARSTRING_template& PCSCF__IPAddressIPv4(); +const CHARSTRING_template& PCSCF__IPAddressIPv4() const; +CHARSTRING_template& PCSCF__IPAddressIPv6(); +const CHARSTRING_template& PCSCF__IPAddressIPv6() const; +CHARSTRING_template& DNS__ServerAddressIPv4(); +const CHARSTRING_template& DNS__ServerAddressIPv4() const; +CHARSTRING_template& DNS__ServerAddressIPv6(); +const CHARSTRING_template& DNS__ServerAddressIPv6() const; +CHARSTRING_template& XCAP__ServerAddressIPv4(); +const CHARSTRING_template& XCAP__ServerAddressIPv4() const; +CHARSTRING_template& XCAP__ServerAddressIPv6(); +const CHARSTRING_template& XCAP__ServerAddressIPv6() const; +CHARSTRING_template& ProSe__ServerAddressIPv4(); +const CHARSTRING_template& ProSe__ServerAddressIPv4() const; +CHARSTRING_template& ProSe__ServerAddressIPv6(); +const CHARSTRING_template& ProSe__ServerAddressIPv6() const; +Record_Template* create() const { return new PDN__AddressInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class WLAN__AddressInfo__Type : public Record_Type { + CHARSTRING field_UE__IPAddressIPv4; + CHARSTRING field_UE__IPAddressIPv6; + CHARSTRING field_DNS__ServerAddressIPv4; + CHARSTRING field_DNS__ServerAddressIPv6; + CHARSTRING field_EPDG__ServerAddressIPv4; + CHARSTRING field_EPDG__ServerAddressIPv6; + CHARSTRING field_EmergencyEPDG__ServerAddressIPv4; + CHARSTRING field_EmergencyEPDG__ServerAddressIPv6; + CHARSTRING field_Non3GPP__XCAP__ServerAddressIPv4; + CHARSTRING field_Non3GPP__XCAP__ServerAddressIPv6; + Base_Type* fld_vec[10]; + void init_vec(); +public: + WLAN__AddressInfo__Type(); + WLAN__AddressInfo__Type(const WLAN__AddressInfo__Type& other_value); + WLAN__AddressInfo__Type(const CHARSTRING& par_UE__IPAddressIPv4, + const CHARSTRING& par_UE__IPAddressIPv6, + const CHARSTRING& par_DNS__ServerAddressIPv4, + const CHARSTRING& par_DNS__ServerAddressIPv6, + const CHARSTRING& par_EPDG__ServerAddressIPv4, + const CHARSTRING& par_EPDG__ServerAddressIPv6, + const CHARSTRING& par_EmergencyEPDG__ServerAddressIPv4, + const CHARSTRING& par_EmergencyEPDG__ServerAddressIPv6, + const CHARSTRING& par_Non3GPP__XCAP__ServerAddressIPv4, + const CHARSTRING& par_Non3GPP__XCAP__ServerAddressIPv6); +inline WLAN__AddressInfo__Type& operator=(const WLAN__AddressInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const WLAN__AddressInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const WLAN__AddressInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline CHARSTRING& UE__IPAddressIPv4() + {return field_UE__IPAddressIPv4;} + inline const CHARSTRING& UE__IPAddressIPv4() const + {return field_UE__IPAddressIPv4;} + inline CHARSTRING& UE__IPAddressIPv6() + {return field_UE__IPAddressIPv6;} + inline const CHARSTRING& UE__IPAddressIPv6() const + {return field_UE__IPAddressIPv6;} + inline CHARSTRING& DNS__ServerAddressIPv4() + {return field_DNS__ServerAddressIPv4;} + inline const CHARSTRING& DNS__ServerAddressIPv4() const + {return field_DNS__ServerAddressIPv4;} + inline CHARSTRING& DNS__ServerAddressIPv6() + {return field_DNS__ServerAddressIPv6;} + inline const CHARSTRING& DNS__ServerAddressIPv6() const + {return field_DNS__ServerAddressIPv6;} + inline CHARSTRING& EPDG__ServerAddressIPv4() + {return field_EPDG__ServerAddressIPv4;} + inline const CHARSTRING& EPDG__ServerAddressIPv4() const + {return field_EPDG__ServerAddressIPv4;} + inline CHARSTRING& EPDG__ServerAddressIPv6() + {return field_EPDG__ServerAddressIPv6;} + inline const CHARSTRING& EPDG__ServerAddressIPv6() const + {return field_EPDG__ServerAddressIPv6;} + inline CHARSTRING& EmergencyEPDG__ServerAddressIPv4() + {return field_EmergencyEPDG__ServerAddressIPv4;} + inline const CHARSTRING& EmergencyEPDG__ServerAddressIPv4() const + {return field_EmergencyEPDG__ServerAddressIPv4;} + inline CHARSTRING& EmergencyEPDG__ServerAddressIPv6() + {return field_EmergencyEPDG__ServerAddressIPv6;} + inline const CHARSTRING& EmergencyEPDG__ServerAddressIPv6() const + {return field_EmergencyEPDG__ServerAddressIPv6;} + inline CHARSTRING& Non3GPP__XCAP__ServerAddressIPv4() + {return field_Non3GPP__XCAP__ServerAddressIPv4;} + inline const CHARSTRING& Non3GPP__XCAP__ServerAddressIPv4() const + {return field_Non3GPP__XCAP__ServerAddressIPv4;} + inline CHARSTRING& Non3GPP__XCAP__ServerAddressIPv6() + {return field_Non3GPP__XCAP__ServerAddressIPv6;} + inline const CHARSTRING& Non3GPP__XCAP__ServerAddressIPv6() const + {return field_Non3GPP__XCAP__ServerAddressIPv6;} +Base_Type* clone() const { return new WLAN__AddressInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class WLAN__AddressInfo__Type_template : public Record_Template { +void set_specific(); +public: +WLAN__AddressInfo__Type_template(): Record_Template() {} +WLAN__AddressInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +WLAN__AddressInfo__Type_template(const WLAN__AddressInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +WLAN__AddressInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +WLAN__AddressInfo__Type_template(WLAN__AddressInfo__Type_template* p_precondition, WLAN__AddressInfo__Type_template* p_implied_template); +WLAN__AddressInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +WLAN__AddressInfo__Type_template(const WLAN__AddressInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~WLAN__AddressInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +WLAN__AddressInfo__Type_template& operator=(template_sel other_value); +WLAN__AddressInfo__Type_template& operator=(const WLAN__AddressInfo__Type& other_value); +WLAN__AddressInfo__Type_template& operator=(const OPTIONAL& other_value); +WLAN__AddressInfo__Type_template& operator=(const WLAN__AddressInfo__Type_template& other_value); +inline boolean match(const WLAN__AddressInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const WLAN__AddressInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +WLAN__AddressInfo__Type valueof() const; +inline WLAN__AddressInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +CHARSTRING_template& UE__IPAddressIPv4(); +const CHARSTRING_template& UE__IPAddressIPv4() const; +CHARSTRING_template& UE__IPAddressIPv6(); +const CHARSTRING_template& UE__IPAddressIPv6() const; +CHARSTRING_template& DNS__ServerAddressIPv4(); +const CHARSTRING_template& DNS__ServerAddressIPv4() const; +CHARSTRING_template& DNS__ServerAddressIPv6(); +const CHARSTRING_template& DNS__ServerAddressIPv6() const; +CHARSTRING_template& EPDG__ServerAddressIPv4(); +const CHARSTRING_template& EPDG__ServerAddressIPv4() const; +CHARSTRING_template& EPDG__ServerAddressIPv6(); +const CHARSTRING_template& EPDG__ServerAddressIPv6() const; +CHARSTRING_template& EmergencyEPDG__ServerAddressIPv4(); +const CHARSTRING_template& EmergencyEPDG__ServerAddressIPv4() const; +CHARSTRING_template& EmergencyEPDG__ServerAddressIPv6(); +const CHARSTRING_template& EmergencyEPDG__ServerAddressIPv6() const; +CHARSTRING_template& Non3GPP__XCAP__ServerAddressIPv4(); +const CHARSTRING_template& Non3GPP__XCAP__ServerAddressIPv4() const; +CHARSTRING_template& Non3GPP__XCAP__ServerAddressIPv6(); +const CHARSTRING_template& Non3GPP__XCAP__ServerAddressIPv6() const; +Record_Template* create() const { return new WLAN__AddressInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_CommonIP(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_CommonIP(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern INTEGER f__PDN__PdnIndex2Integer(const CommonDefs::PDN__Index__Type& p__PdnIndex); +extern INTEGER f__PDN__PdnIndex2ImsIndex(const CommonDefs::PDN__Index__Type& p__PdnIndex); +extern PDN__AddressInfo__Type f__PDN__AddressInfo__Get(const CommonDefs::PDN__Index__Type& p__PdnIndex); +extern BOOLEAN f__IpAddressIsIPv4(const CHARSTRING& p__IpAddress); +extern BOOLEAN f__IpAddressIsIPv6(const CHARSTRING& p__IpAddress); +extern CHARSTRING f__IpAddressAsHostname(const CHARSTRING& p__IpAddress); +extern OCTETSTRING f__Convert__IPv4Addr2OctString(const CHARSTRING& p__IPv4AddrChar); +extern OCTETSTRING f__Convert__IPv6Addr2OctString(const CHARSTRING& p__IPv6AddrChar); +extern BOOLEAN f__IPAddresses__Compare(const CHARSTRING& p__Addr1, const CHARSTRING& p__Addr2); +extern CHARSTRING f__Convert__OctString2IPv6Addr(const OCTETSTRING& p__IPv6AddrOct); +extern CHARSTRING f__Convert__OctString2IPv4Addr(const OCTETSTRING& p__IPv4AddrOct); +extern OCTETSTRING f__IpChecksum(const OCTETSTRING& p__OctetString); +extern BOOLEAN f__IPv6AddrIsMulticast(const CHARSTRING& p__IPv6Addr); +extern CHARSTRING f__IPv6AddrGetLinkLocalAddr(const CHARSTRING& p__IPv6Addr); +extern OCTETSTRING f__ICMPv6__UpdateCRCChecksum(const CHARSTRING& p__SrcAddress, const CHARSTRING& p__DstAddress, const OCTETSTRING& p__IcmpPDU); +extern OCTETSTRING f__IPv6Packet__Create(const OCTETSTRING& p__TrafficClass, const INTEGER& p__FlowLabel, const INTEGER& p__Protocol, const INTEGER& p__HopCount, const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const OCTETSTRING& p__IPPayload); +extern CHARSTRING f__DomainName__MNC__MCC__DerivedFromIMSI(const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC); +extern CHARSTRING f__DomainName__3gppnetwork__DerivedFromIMSI(const CHARSTRING& p__FirstLabel, const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC); +extern CHARSTRING f__DomainName__IMS__DerivedFromIMSI(const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC); +extern CHARSTRING f__IMS__PrivateUserIdentityDerivedFromIMSI(const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC); +extern CHARSTRING f__IMS__TemporaryPublicUserIdentity(const HEXSTRING& p__IMSI, const INTEGER& p__LengthOfMNC); + +/* Global variable declarations */ + +extern const INTEGER& tsc__IMS__MediaPort__M1; +extern INTEGER const_tsc__IMS__MediaPort__M1; +extern const INTEGER& tsc__IMS__MediaPort__M2; +extern INTEGER const_tsc__IMS__MediaPort__M2; +extern const INTEGER& tsc__IMS__MediaPort__M3; +extern INTEGER const_tsc__IMS__MediaPort__M3; +extern const INTEGER& tsc__PortNumberHTTP; +extern INTEGER const_tsc__PortNumberHTTP; +extern const INTEGER& tsc__PortNumberHTTPS; +extern INTEGER const_tsc__PortNumberHTTPS; +extern const INTEGER& tsc__IP__Protocol__ICMP; +extern INTEGER const_tsc__IP__Protocol__ICMP; +extern const INTEGER& tsc__IP__Protocol__UDP; +extern INTEGER const_tsc__IP__Protocol__UDP; +extern const INTEGER& tsc__ICMP__Type__EchoReply; +extern INTEGER const_tsc__ICMP__Type__EchoReply; +extern const INTEGER& tsc__ICMPv6__Type__EchoReply; +extern INTEGER const_tsc__ICMPv6__Type__EchoReply; +extern const INTEGER& tsc__ICMP__Type__EchoRequest; +extern INTEGER const_tsc__ICMP__Type__EchoRequest; +extern const INTEGER& tsc__ICMPv6__Type__EchoRequest; +extern INTEGER const_tsc__ICMPv6__Type__EchoRequest; +extern const INTEGER& tsc__IP__Protocol__TCP; +extern INTEGER const_tsc__IP__Protocol__TCP; +extern const INTEGER& tsc__IP__Protocol__IPSec; +extern INTEGER const_tsc__IP__Protocol__IPSec; +extern const INTEGER& tsc__IP__Protocol__ICMPv6; +extern INTEGER const_tsc__IP__Protocol__ICMPv6; +extern const INTEGER& tsc__IMS__PortNumber__5060; +extern INTEGER const_tsc__IMS__PortNumber__5060; +extern const OCTETSTRING& tsc__MulticastPrefix__FF02; +extern OCTETSTRING const_tsc__MulticastPrefix__FF02; +extern const OCTETSTRING& tsc__IP__AnyData; +extern OCTETSTRING const_tsc__IP__AnyData; +extern const XERdescriptor_t PDN__AddressInfo__Type_UE__IPAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_UE__IPAddressIPv4_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_UE__IPAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_UE__IPAddressIPv6_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_Remote__IPAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_Remote__IPAddressIPv4_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_Remote__IPAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_Remote__IPAddressIPv6_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_DHCP__ServerAddress_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_DHCP__ServerAddress_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_ICMPv6__ServerAddress_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_ICMPv6__ServerAddress_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_PCSCF__IPAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_PCSCF__IPAddressIPv4_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_PCSCF__IPAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_PCSCF__IPAddressIPv6_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_DNS__ServerAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_DNS__ServerAddressIPv4_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_DNS__ServerAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_DNS__ServerAddressIPv6_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_XCAP__ServerAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_XCAP__ServerAddressIPv4_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_XCAP__ServerAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_XCAP__ServerAddressIPv6_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_ProSe__ServerAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_ProSe__ServerAddressIPv4_descr_; +extern const XERdescriptor_t PDN__AddressInfo__Type_ProSe__ServerAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_ProSe__ServerAddressIPv6_descr_; +extern const TTCN_Typedescriptor_t PDN__AddressInfo__Type_descr_; +extern const PDN__AddressInfo__Type& tsc__PDN1__AddressInfo; +extern PDN__AddressInfo__Type const_tsc__PDN1__AddressInfo; +extern const PDN__AddressInfo__Type& tsc__PDN2__AddressInfo; +extern PDN__AddressInfo__Type const_tsc__PDN2__AddressInfo; +extern const PDN__AddressInfo__Type& tsc__PDN3__AddressInfo; +extern PDN__AddressInfo__Type const_tsc__PDN3__AddressInfo; +extern const PDN__AddressInfo__Type& tsc__PDN4__AddressInfo; +extern PDN__AddressInfo__Type const_tsc__PDN4__AddressInfo; +extern const PDN__AddressInfo__Type& tsc__PDN5__AddressInfo; +extern PDN__AddressInfo__Type const_tsc__PDN5__AddressInfo; +extern const PDN__AddressInfo__Type& tsc__PDN6__AddressInfo; +extern PDN__AddressInfo__Type const_tsc__PDN6__AddressInfo; +extern const VALUE_ARRAY& tsc__PDN__AddressInfo; +extern VALUE_ARRAY const_tsc__PDN__AddressInfo; +extern const XERdescriptor_t WLAN__AddressInfo__Type_UE__IPAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_UE__IPAddressIPv4_descr_; +extern const XERdescriptor_t WLAN__AddressInfo__Type_UE__IPAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_UE__IPAddressIPv6_descr_; +extern const XERdescriptor_t WLAN__AddressInfo__Type_DNS__ServerAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_DNS__ServerAddressIPv4_descr_; +extern const XERdescriptor_t WLAN__AddressInfo__Type_DNS__ServerAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_DNS__ServerAddressIPv6_descr_; +extern const XERdescriptor_t WLAN__AddressInfo__Type_EPDG__ServerAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_EPDG__ServerAddressIPv4_descr_; +extern const XERdescriptor_t WLAN__AddressInfo__Type_EPDG__ServerAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_EPDG__ServerAddressIPv6_descr_; +extern const XERdescriptor_t WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv4_descr_; +extern const XERdescriptor_t WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_EmergencyEPDG__ServerAddressIPv6_descr_; +extern const XERdescriptor_t WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv4_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv4_descr_; +extern const XERdescriptor_t WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv6_xer_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_Non3GPP__XCAP__ServerAddressIPv6_descr_; +extern const TTCN_Typedescriptor_t WLAN__AddressInfo__Type_descr_; +extern const OCTETSTRING& f__IPv6Packet__Create_p__TrafficClass_defval; +extern OCTETSTRING const_f__IPv6Packet__Create_p__TrafficClass_defval; +extern const INTEGER& f__IPv6Packet__Create_p__FlowLabel_defval; +extern INTEGER const_f__IPv6Packet__Create_p__FlowLabel_defval; +extern const INTEGER& f__IPv6Packet__Create_p__HopCount_defval; +extern INTEGER const_f__IPv6Packet__Create_p__HopCount_defval; +extern const INTEGER& f__DomainName__MNC__MCC__DerivedFromIMSI_p__LengthOfMNC_defval; +extern INTEGER const_f__DomainName__MNC__MCC__DerivedFromIMSI_p__LengthOfMNC_defval; +extern const INTEGER& f__DomainName__3gppnetwork__DerivedFromIMSI_p__LengthOfMNC_defval; +extern INTEGER const_f__DomainName__3gppnetwork__DerivedFromIMSI_p__LengthOfMNC_defval; +extern const INTEGER& f__DomainName__IMS__DerivedFromIMSI_p__LengthOfMNC_defval; +extern INTEGER const_f__DomainName__IMS__DerivedFromIMSI_p__LengthOfMNC_defval; +extern const INTEGER& f__IMS__PrivateUserIdentityDerivedFromIMSI_p__LengthOfMNC_defval; +extern INTEGER const_f__IMS__PrivateUserIdentityDerivedFromIMSI_p__LengthOfMNC_defval; +extern const INTEGER& f__IMS__TemporaryPublicUserIdentity_p__LengthOfMNC_defval; +extern INTEGER const_f__IMS__TemporaryPublicUserIdentity_p__LengthOfMNC_defval; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/CommonIP.o b/build/Ats_NG_NAS/CommonIP.o new file mode 100644 index 0000000000000000000000000000000000000000..747e56a5418b25659def0b46dccb331cb88f5548 Binary files /dev/null and b/build/Ats_NG_NAS/CommonIP.o differ diff --git a/build/Ats_NG_NAS/EAP_TypeDefs.cc b/build/Ats_NG_NAS/EAP_TypeDefs.cc new file mode 100644 index 0000000000000000000000000000000000000000..487841bedc0d73a2b3ee13eb6ce5a6d9ddd87c53 --- /dev/null +++ b/build/Ats_NG_NAS/EAP_TypeDefs.cc @@ -0,0 +1,7500 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "EAP_TypeDefs.hh" + +namespace EAP__TypeDefs { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const BITSTRING bs_0(0, NULL); +static const unsigned char module_checksum[] = { 0x79, 0x61, 0x97, 0xd2, 0xb5, 0xea, 0x96, 0x0d, 0xe4, 0xdc, 0xff, 0x24, 0x9c, 0x6a, 0x3e, 0x60 }; + +/* Global variable definitions */ + +INTEGER const_f__ExtendedEAPAKA__PRF_p__NumberOfOutputBits_defval; +const INTEGER& f__ExtendedEAPAKA__PRF_p__NumberOfOutputBits_defval = const_f__ExtendedEAPAKA__PRF_p__NumberOfOutputBits_defval; +// No XER for EAP__Message__Type +const TTCN_Typedescriptor_t EAP__Message__Type_descr_ = { "@EAP_TypeDefs.EAP_Message_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__Request__Type_code_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__Request__Type_code_xer_ = { {"code>\n", "code>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Request__Type_code_oer_ext_arr_[0] = {}; +const int EAP__Request__Type_code_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Request__Type_code_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Request__Type_code_oer_ext_arr_, 0, EAP__Request__Type_code_oer_p_}; +const TTCN_Typedescriptor_t EAP__Request__Type_code_descr_ = { "@EAP_TypeDefs.EAP_Request_Type.code", &OCTETSTRING_ber_, &EAP__Request__Type_code_raw_, &OCTETSTRING_text_, &EAP__Request__Type_code_xer_, &OCTETSTRING_json_, &EAP__Request__Type_code_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Request__Type_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Request__Type_id_oer_ext_arr_[0] = {}; +const int EAP__Request__Type_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Request__Type_id_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Request__Type_id_oer_ext_arr_, 0, EAP__Request__Type_id_oer_p_}; +const TTCN_Typedescriptor_t EAP__Request__Type_id_descr_ = { "@EAP_TypeDefs.EAP_Request_Type.id", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__Request__Type_id_xer_, &OCTETSTRING_json_, &EAP__Request__Type_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Request__Type_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Request__Type_len_oer_ext_arr_[0] = {}; +const int EAP__Request__Type_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Request__Type_len_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__Request__Type_len_oer_ext_arr_, 0, EAP__Request__Type_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__Request__Type_len_descr_ = { "@EAP_TypeDefs.EAP_Request_Type.len", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__Request__Type_len_xer_, &OCTETSTRING_json_, &EAP__Request__Type_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__Request__Type_type___raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__Request__Type_type___xer_ = { {"type_>\n", "type_>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Request__Type_type___oer_ext_arr_[0] = {}; +const int EAP__Request__Type_type___oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Request__Type_type___oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Request__Type_type___oer_ext_arr_, 0, EAP__Request__Type_type___oer_p_}; +const TTCN_Typedescriptor_t EAP__Request__Type_type___descr_ = { "@EAP_TypeDefs.EAP_Request_Type.type_", &OCTETSTRING_ber_, &EAP__Request__Type_type___raw_, &OCTETSTRING_text_, &EAP__Request__Type_type___xer_, &OCTETSTRING_json_, &EAP__Request__Type_type___oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Request__Type_subtype_xer_ = { {"subtype>\n", "subtype>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Request__Type_subtype_oer_ext_arr_[0] = {}; +const int EAP__Request__Type_subtype_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Request__Type_subtype_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Request__Type_subtype_oer_ext_arr_, 0, EAP__Request__Type_subtype_oer_p_}; +const TTCN_Typedescriptor_t EAP__Request__Type_subtype_descr_ = { "@EAP_TypeDefs.EAP_Request_Type.subtype", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__Request__Type_subtype_xer_, &OCTETSTRING_json_, &EAP__Request__Type_subtype_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Request__Type_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Request__Type_reserved_oer_ext_arr_[0] = {}; +const int EAP__Request__Type_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Request__Type_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__Request__Type_reserved_oer_ext_arr_, 0, EAP__Request__Type_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__Request__Type_reserved_descr_ = { "@EAP_TypeDefs.EAP_Request_Type.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__Request__Type_reserved_xer_, &OCTETSTRING_json_, &EAP__Request__Type_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__Attributes +const TTCN_Typedescriptor_t EAP__Attributes_descr_ = { "@EAP_TypeDefs.EAP_Attributes", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__RAND_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__RAND_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RAND_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__RAND_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RAND_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__RAND_attributeType_oer_ext_arr_, 0, EAP__AT__RAND_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RAND_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_RAND.attributeType", &OCTETSTRING_ber_, &EAP__AT__RAND_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__RAND_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__RAND_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__RAND_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__RAND_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RAND_len_oer_ext_arr_[0] = {}; +const int EAP__AT__RAND_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RAND_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__RAND_len_oer_ext_arr_, 0, EAP__AT__RAND_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RAND_len_descr_ = { "@EAP_TypeDefs.EAP_AT_RAND.len", &OCTETSTRING_ber_, &EAP__AT__RAND_len_raw_, &OCTETSTRING_text_, &EAP__AT__RAND_len_xer_, &OCTETSTRING_json_, &EAP__AT__RAND_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__RAND_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RAND_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__RAND_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RAND_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__RAND_reserved_oer_ext_arr_, 0, EAP__AT__RAND_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RAND_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_RAND.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__RAND_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__RAND_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__RAND_rand_xer_ = { {"rand>\n", "rand>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RAND_rand_oer_ext_arr_[0] = {}; +const int EAP__AT__RAND_rand_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RAND_rand_oer_ = { -1, TRUE, 16, FALSE, 0, 0, EAP__AT__RAND_rand_oer_ext_arr_, 0, EAP__AT__RAND_rand_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RAND_rand_descr_ = { "@EAP_TypeDefs.EAP_AT_RAND.rand", &OCTETSTRING_ber_, &CommonDefs::O16__Type_raw_, &OCTETSTRING_text_, &EAP__AT__RAND_rand_xer_, &OCTETSTRING_json_, &EAP__AT__RAND_rand_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__RAND +const TTCN_Typedescriptor_t EAP__AT__RAND_descr_ = { "@EAP_TypeDefs.EAP_AT_RAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__AUTN_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__AUTN_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__AUTN_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__AUTN_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__AUTN_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__AUTN_attributeType_oer_ext_arr_, 0, EAP__AT__AUTN_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__AUTN_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_AUTN.attributeType", &OCTETSTRING_ber_, &EAP__AT__AUTN_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__AUTN_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__AUTN_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__AUTN_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__AUTN_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__AUTN_len_oer_ext_arr_[0] = {}; +const int EAP__AT__AUTN_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__AUTN_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__AUTN_len_oer_ext_arr_, 0, EAP__AT__AUTN_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__AUTN_len_descr_ = { "@EAP_TypeDefs.EAP_AT_AUTN.len", &OCTETSTRING_ber_, &EAP__AT__AUTN_len_raw_, &OCTETSTRING_text_, &EAP__AT__AUTN_len_xer_, &OCTETSTRING_json_, &EAP__AT__AUTN_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__AUTN_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__AUTN_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__AUTN_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__AUTN_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__AUTN_reserved_oer_ext_arr_, 0, EAP__AT__AUTN_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__AUTN_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_AUTN.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__AUTN_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__AUTN_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__AUTN_autn_xer_ = { {"autn>\n", "autn>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__AUTN_autn_oer_ext_arr_[0] = {}; +const int EAP__AT__AUTN_autn_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__AUTN_autn_oer_ = { -1, TRUE, 16, FALSE, 0, 0, EAP__AT__AUTN_autn_oer_ext_arr_, 0, EAP__AT__AUTN_autn_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__AUTN_autn_descr_ = { "@EAP_TypeDefs.EAP_AT_AUTN.autn", &OCTETSTRING_ber_, &CommonDefs::O16__Type_raw_, &OCTETSTRING_text_, &EAP__AT__AUTN_autn_xer_, &OCTETSTRING_json_, &EAP__AT__AUTN_autn_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__AUTN +const TTCN_Typedescriptor_t EAP__AT__AUTN_descr_ = { "@EAP_TypeDefs.EAP_AT_AUTN", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__RES_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__RES_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RES_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__RES_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RES_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__RES_attributeType_oer_ext_arr_, 0, EAP__AT__RES_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RES_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_RES.attributeType", &OCTETSTRING_ber_, &EAP__AT__RES_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__RES_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__RES_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__RES_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RES_len_oer_ext_arr_[0] = {}; +const int EAP__AT__RES_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RES_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__RES_len_oer_ext_arr_, 0, EAP__AT__RES_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RES_len_descr_ = { "@EAP_TypeDefs.EAP_AT_RES.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__RES_len_xer_, &OCTETSTRING_json_, &EAP__AT__RES_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__RES_reslen_xer_ = { {"reslen>\n", "reslen>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RES_reslen_oer_ext_arr_[0] = {}; +const int EAP__AT__RES_reslen_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RES_reslen_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__RES_reslen_oer_ext_arr_, 0, EAP__AT__RES_reslen_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RES_reslen_descr_ = { "@EAP_TypeDefs.EAP_AT_RES.reslen", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__RES_reslen_xer_, &OCTETSTRING_json_, &EAP__AT__RES_reslen_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__RES_res_xer_ = { {"res>\n", "res>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RES_res_oer_ext_arr_[0] = {}; +const int EAP__AT__RES_res_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RES_res_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__RES_res_oer_ext_arr_, 0, EAP__AT__RES_res_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RES_res_descr_ = { "@EAP_TypeDefs.EAP_AT_RES.res", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__RES_res_xer_, &OCTETSTRING_json_, &EAP__AT__RES_res_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__RES +const TTCN_Typedescriptor_t EAP__AT__RES_descr_ = { "@EAP_TypeDefs.EAP_AT_RES", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__AUTS_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__AUTS_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__AUTS_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__AUTS_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__AUTS_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__AUTS_attributeType_oer_ext_arr_, 0, EAP__AT__AUTS_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__AUTS_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_AUTS.attributeType", &OCTETSTRING_ber_, &EAP__AT__AUTS_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__AUTS_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__AUTS_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__AUTS_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__AUTS_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__AUTS_len_oer_ext_arr_[0] = {}; +const int EAP__AT__AUTS_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__AUTS_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__AUTS_len_oer_ext_arr_, 0, EAP__AT__AUTS_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__AUTS_len_descr_ = { "@EAP_TypeDefs.EAP_AT_AUTS.len", &OCTETSTRING_ber_, &EAP__AT__AUTS_len_raw_, &OCTETSTRING_text_, &EAP__AT__AUTS_len_xer_, &OCTETSTRING_json_, &EAP__AT__AUTS_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__AUTS_auts_xer_ = { {"auts>\n", "auts>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__AUTS_auts_oer_ext_arr_[0] = {}; +const int EAP__AT__AUTS_auts_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__AUTS_auts_oer_ = { -1, TRUE, 14, FALSE, 0, 0, EAP__AT__AUTS_auts_oer_ext_arr_, 0, EAP__AT__AUTS_auts_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__AUTS_auts_descr_ = { "@EAP_TypeDefs.EAP_AT_AUTS.auts", &OCTETSTRING_ber_, &CommonDefs::O14__Type_raw_, &OCTETSTRING_text_, &EAP__AT__AUTS_auts_xer_, &OCTETSTRING_json_, &EAP__AT__AUTS_auts_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__AUTS +const TTCN_Typedescriptor_t EAP__AT__AUTS_descr_ = { "@EAP_TypeDefs.EAP_AT_AUTS", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__PADDING_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__PADDING_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__PADDING_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__PADDING_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__PADDING_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__PADDING_attributeType_oer_ext_arr_, 0, EAP__AT__PADDING_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__PADDING_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_PADDING.attributeType", &OCTETSTRING_ber_, &EAP__AT__PADDING_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__PADDING_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__PADDING_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__PADDING_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__PADDING_len_oer_ext_arr_[0] = {}; +const int EAP__AT__PADDING_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__PADDING_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__PADDING_len_oer_ext_arr_, 0, EAP__AT__PADDING_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__PADDING_len_descr_ = { "@EAP_TypeDefs.EAP_AT_PADDING.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__PADDING_len_xer_, &OCTETSTRING_json_, &EAP__AT__PADDING_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__PADDING_padding_xer_ = { {"padding>\n", "padding>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__PADDING_padding_oer_ext_arr_[0] = {}; +const int EAP__AT__PADDING_padding_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__PADDING_padding_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__PADDING_padding_oer_ext_arr_, 0, EAP__AT__PADDING_padding_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__PADDING_padding_descr_ = { "@EAP_TypeDefs.EAP_AT_PADDING.padding", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__PADDING_padding_xer_, &OCTETSTRING_json_, &EAP__AT__PADDING_padding_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__PADDING +const TTCN_Typedescriptor_t EAP__AT__PADDING_descr_ = { "@EAP_TypeDefs.EAP_AT_PADDING", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__PERMANENT__ID__REQ_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__PERMANENT__ID__REQ_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__PERMANENT__ID__REQ_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__PERMANENT__ID__REQ_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__PERMANENT__ID__REQ_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__PERMANENT__ID__REQ_attributeType_oer_ext_arr_, 0, EAP__AT__PERMANENT__ID__REQ_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__PERMANENT__ID__REQ_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_PERMANENT_ID_REQ.attributeType", &OCTETSTRING_ber_, &EAP__AT__PERMANENT__ID__REQ_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__PERMANENT__ID__REQ_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__PERMANENT__ID__REQ_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__PERMANENT__ID__REQ_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__PERMANENT__ID__REQ_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__PERMANENT__ID__REQ_len_oer_ext_arr_[0] = {}; +const int EAP__AT__PERMANENT__ID__REQ_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__PERMANENT__ID__REQ_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__PERMANENT__ID__REQ_len_oer_ext_arr_, 0, EAP__AT__PERMANENT__ID__REQ_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__PERMANENT__ID__REQ_len_descr_ = { "@EAP_TypeDefs.EAP_AT_PERMANENT_ID_REQ.len", &OCTETSTRING_ber_, &EAP__AT__PERMANENT__ID__REQ_len_raw_, &OCTETSTRING_text_, &EAP__AT__PERMANENT__ID__REQ_len_xer_, &OCTETSTRING_json_, &EAP__AT__PERMANENT__ID__REQ_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__PERMANENT__ID__REQ_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__PERMANENT__ID__REQ_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__PERMANENT__ID__REQ_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__PERMANENT__ID__REQ_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__PERMANENT__ID__REQ_reserved_oer_ext_arr_, 0, EAP__AT__PERMANENT__ID__REQ_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__PERMANENT__ID__REQ_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_PERMANENT_ID_REQ.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__PERMANENT__ID__REQ_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__PERMANENT__ID__REQ_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__PERMANENT__ID__REQ +const TTCN_Typedescriptor_t EAP__AT__PERMANENT__ID__REQ_descr_ = { "@EAP_TypeDefs.EAP_AT_PERMANENT_ID_REQ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__MAC_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__MAC_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__MAC_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__MAC_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__MAC_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__MAC_attributeType_oer_ext_arr_, 0, EAP__AT__MAC_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__MAC_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_MAC.attributeType", &OCTETSTRING_ber_, &EAP__AT__MAC_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__MAC_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__MAC_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__MAC_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__MAC_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__MAC_len_oer_ext_arr_[0] = {}; +const int EAP__AT__MAC_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__MAC_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__MAC_len_oer_ext_arr_, 0, EAP__AT__MAC_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__MAC_len_descr_ = { "@EAP_TypeDefs.EAP_AT_MAC.len", &OCTETSTRING_ber_, &EAP__AT__MAC_len_raw_, &OCTETSTRING_text_, &EAP__AT__MAC_len_xer_, &OCTETSTRING_json_, &EAP__AT__MAC_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__MAC_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__MAC_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__MAC_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__MAC_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__MAC_reserved_oer_ext_arr_, 0, EAP__AT__MAC_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__MAC_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_MAC.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__MAC_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__MAC_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__MAC_mac_xer_ = { {"mac>\n", "mac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__MAC_mac_oer_ext_arr_[0] = {}; +const int EAP__AT__MAC_mac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__MAC_mac_oer_ = { -1, TRUE, 16, FALSE, 0, 0, EAP__AT__MAC_mac_oer_ext_arr_, 0, EAP__AT__MAC_mac_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__MAC_mac_descr_ = { "@EAP_TypeDefs.EAP_AT_MAC.mac", &OCTETSTRING_ber_, &CommonDefs::O16__Type_raw_, &OCTETSTRING_text_, &EAP__AT__MAC_mac_xer_, &OCTETSTRING_json_, &EAP__AT__MAC_mac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__MAC +const TTCN_Typedescriptor_t EAP__AT__MAC_descr_ = { "@EAP_TypeDefs.EAP_AT_MAC", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__NOTIFICATION_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__NOTIFICATION_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NOTIFICATION_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__NOTIFICATION_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__NOTIFICATION_attributeType_oer_ext_arr_, 0, EAP__AT__NOTIFICATION_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_NOTIFICATION.attributeType", &OCTETSTRING_ber_, &EAP__AT__NOTIFICATION_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__NOTIFICATION_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__NOTIFICATION_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__NOTIFICATION_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__NOTIFICATION_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NOTIFICATION_len_oer_ext_arr_[0] = {}; +const int EAP__AT__NOTIFICATION_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__NOTIFICATION_len_oer_ext_arr_, 0, EAP__AT__NOTIFICATION_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_len_descr_ = { "@EAP_TypeDefs.EAP_AT_NOTIFICATION.len", &OCTETSTRING_ber_, &EAP__AT__NOTIFICATION_len_raw_, &OCTETSTRING_text_, &EAP__AT__NOTIFICATION_len_xer_, &OCTETSTRING_json_, &EAP__AT__NOTIFICATION_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NOTIFICATION_s_xer_ = { {"s>\n", "s>\n"}, {3, 3}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_s_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_s_descr_ = { "@EAP_TypeDefs.EAP_AT_NOTIFICATION.s", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EAP__AT__NOTIFICATION_s_xer_, &BITSTRING_json_, &EAP__AT__NOTIFICATION_s_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NOTIFICATION_p_xer_ = { {"p>\n", "p>\n"}, {3, 3}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_p_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_p_descr_ = { "@EAP_TypeDefs.EAP_AT_NOTIFICATION.p", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EAP__AT__NOTIFICATION_p_xer_, &BITSTRING_json_, &EAP__AT__NOTIFICATION_p_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NOTIFICATION_notificationCode_xer_ = { {"notificationCode>\n", "notificationCode>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_notificationCode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_notificationCode_descr_ = { "@EAP_TypeDefs.EAP_AT_NOTIFICATION.notificationCode", &BITSTRING_ber_, &CommonDefs::B14__Type_raw_, NULL, &EAP__AT__NOTIFICATION_notificationCode_xer_, &BITSTRING_json_, &EAP__AT__NOTIFICATION_notificationCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__NOTIFICATION +const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_descr_ = { "@EAP_TypeDefs.EAP_AT_NOTIFICATION", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__ANY__ID__REQ_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__ANY__ID__REQ_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__ANY__ID__REQ_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__ANY__ID__REQ_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__ANY__ID__REQ_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__ANY__ID__REQ_attributeType_oer_ext_arr_, 0, EAP__AT__ANY__ID__REQ_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__ANY__ID__REQ_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_ANY_ID_REQ.attributeType", &OCTETSTRING_ber_, &EAP__AT__ANY__ID__REQ_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__ANY__ID__REQ_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__ANY__ID__REQ_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__ANY__ID__REQ_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__ANY__ID__REQ_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__ANY__ID__REQ_len_oer_ext_arr_[0] = {}; +const int EAP__AT__ANY__ID__REQ_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__ANY__ID__REQ_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__ANY__ID__REQ_len_oer_ext_arr_, 0, EAP__AT__ANY__ID__REQ_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__ANY__ID__REQ_len_descr_ = { "@EAP_TypeDefs.EAP_AT_ANY_ID_REQ.len", &OCTETSTRING_ber_, &EAP__AT__ANY__ID__REQ_len_raw_, &OCTETSTRING_text_, &EAP__AT__ANY__ID__REQ_len_xer_, &OCTETSTRING_json_, &EAP__AT__ANY__ID__REQ_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__ANY__ID__REQ_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__ANY__ID__REQ_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__ANY__ID__REQ_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__ANY__ID__REQ_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__ANY__ID__REQ_reserved_oer_ext_arr_, 0, EAP__AT__ANY__ID__REQ_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__ANY__ID__REQ_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_ANY_ID_REQ.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__ANY__ID__REQ_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__ANY__ID__REQ_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__ANY__ID__REQ +const TTCN_Typedescriptor_t EAP__AT__ANY__ID__REQ_descr_ = { "@EAP_TypeDefs.EAP_AT_ANY_ID_REQ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__IDENTITY_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__IDENTITY_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__IDENTITY_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__IDENTITY_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__IDENTITY_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__IDENTITY_attributeType_oer_ext_arr_, 0, EAP__AT__IDENTITY_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__IDENTITY_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_IDENTITY.attributeType", &OCTETSTRING_ber_, &EAP__AT__IDENTITY_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__IDENTITY_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__IDENTITY_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__IDENTITY_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__IDENTITY_len_oer_ext_arr_[0] = {}; +const int EAP__AT__IDENTITY_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__IDENTITY_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__IDENTITY_len_oer_ext_arr_, 0, EAP__AT__IDENTITY_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__IDENTITY_len_descr_ = { "@EAP_TypeDefs.EAP_AT_IDENTITY.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__IDENTITY_len_xer_, &OCTETSTRING_json_, &EAP__AT__IDENTITY_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__IDENTITY_actualIdlen_xer_ = { {"actualIdlen>\n", "actualIdlen>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__IDENTITY_actualIdlen_oer_ext_arr_[0] = {}; +const int EAP__AT__IDENTITY_actualIdlen_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__IDENTITY_actualIdlen_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__IDENTITY_actualIdlen_oer_ext_arr_, 0, EAP__AT__IDENTITY_actualIdlen_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__IDENTITY_actualIdlen_descr_ = { "@EAP_TypeDefs.EAP_AT_IDENTITY.actualIdlen", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__IDENTITY_actualIdlen_xer_, &OCTETSTRING_json_, &EAP__AT__IDENTITY_actualIdlen_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__IDENTITY_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__IDENTITY_id_oer_ext_arr_[0] = {}; +const int EAP__AT__IDENTITY_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__IDENTITY_id_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__IDENTITY_id_oer_ext_arr_, 0, EAP__AT__IDENTITY_id_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__IDENTITY_id_descr_ = { "@EAP_TypeDefs.EAP_AT_IDENTITY.id", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__IDENTITY_id_xer_, &OCTETSTRING_json_, &EAP__AT__IDENTITY_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__IDENTITY +const TTCN_Typedescriptor_t EAP__AT__IDENTITY_descr_ = { "@EAP_TypeDefs.EAP_AT_IDENTITY", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__VERSION__LIST_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__VERSION__LIST_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__VERSION__LIST_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__VERSION__LIST_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__VERSION__LIST_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__VERSION__LIST_attributeType_oer_ext_arr_, 0, EAP__AT__VERSION__LIST_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__VERSION__LIST_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_VERSION_LIST.attributeType", &OCTETSTRING_ber_, &EAP__AT__VERSION__LIST_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__VERSION__LIST_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__VERSION__LIST_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__VERSION__LIST_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__VERSION__LIST_len_oer_ext_arr_[0] = {}; +const int EAP__AT__VERSION__LIST_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__VERSION__LIST_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__VERSION__LIST_len_oer_ext_arr_, 0, EAP__AT__VERSION__LIST_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__VERSION__LIST_len_descr_ = { "@EAP_TypeDefs.EAP_AT_VERSION_LIST.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__VERSION__LIST_len_xer_, &OCTETSTRING_json_, &EAP__AT__VERSION__LIST_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__VERSION__LIST_versionList_xer_ = { {"versionList>\n", "versionList>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__VERSION__LIST_versionList_oer_ext_arr_[0] = {}; +const int EAP__AT__VERSION__LIST_versionList_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__VERSION__LIST_versionList_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__VERSION__LIST_versionList_oer_ext_arr_, 0, EAP__AT__VERSION__LIST_versionList_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__VERSION__LIST_versionList_descr_ = { "@EAP_TypeDefs.EAP_AT_VERSION_LIST.versionList", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__VERSION__LIST_versionList_xer_, &OCTETSTRING_json_, &EAP__AT__VERSION__LIST_versionList_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__VERSION__LIST +const TTCN_Typedescriptor_t EAP__AT__VERSION__LIST_descr_ = { "@EAP_TypeDefs.EAP_AT_VERSION_LIST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__SELECTED__VERSION_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__SELECTED__VERSION_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__SELECTED__VERSION_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__SELECTED__VERSION_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__SELECTED__VERSION_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__SELECTED__VERSION_attributeType_oer_ext_arr_, 0, EAP__AT__SELECTED__VERSION_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__SELECTED__VERSION_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_SELECTED_VERSION.attributeType", &OCTETSTRING_ber_, &EAP__AT__SELECTED__VERSION_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__SELECTED__VERSION_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__SELECTED__VERSION_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__SELECTED__VERSION_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__SELECTED__VERSION_len_oer_ext_arr_[0] = {}; +const int EAP__AT__SELECTED__VERSION_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__SELECTED__VERSION_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__SELECTED__VERSION_len_oer_ext_arr_, 0, EAP__AT__SELECTED__VERSION_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__SELECTED__VERSION_len_descr_ = { "@EAP_TypeDefs.EAP_AT_SELECTED_VERSION.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__SELECTED__VERSION_len_xer_, &OCTETSTRING_json_, &EAP__AT__SELECTED__VERSION_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__SELECTED__VERSION_selectedVersion_xer_ = { {"selectedVersion>\n", "selectedVersion>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__SELECTED__VERSION_selectedVersion_oer_ext_arr_[0] = {}; +const int EAP__AT__SELECTED__VERSION_selectedVersion_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__SELECTED__VERSION_selectedVersion_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__SELECTED__VERSION_selectedVersion_oer_ext_arr_, 0, EAP__AT__SELECTED__VERSION_selectedVersion_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__SELECTED__VERSION_selectedVersion_descr_ = { "@EAP_TypeDefs.EAP_AT_SELECTED_VERSION.selectedVersion", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__SELECTED__VERSION_selectedVersion_xer_, &OCTETSTRING_json_, &EAP__AT__SELECTED__VERSION_selectedVersion_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__SELECTED__VERSION +const TTCN_Typedescriptor_t EAP__AT__SELECTED__VERSION_descr_ = { "@EAP_TypeDefs.EAP_AT_SELECTED_VERSION", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__FULLAUTH__ID__REQ_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__FULLAUTH__ID__REQ_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__FULLAUTH__ID__REQ_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__FULLAUTH__ID__REQ_attributeType_oer_ext_arr_, 0, EAP__AT__FULLAUTH__ID__REQ_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__FULLAUTH__ID__REQ_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_FULLAUTH_ID_REQ.attributeType", &OCTETSTRING_ber_, &EAP__AT__FULLAUTH__ID__REQ_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__FULLAUTH__ID__REQ_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__FULLAUTH__ID__REQ_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__FULLAUTH__ID__REQ_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__FULLAUTH__ID__REQ_len_oer_ext_arr_[0] = {}; +const int EAP__AT__FULLAUTH__ID__REQ_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__FULLAUTH__ID__REQ_len_oer_ext_arr_, 0, EAP__AT__FULLAUTH__ID__REQ_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__FULLAUTH__ID__REQ_len_descr_ = { "@EAP_TypeDefs.EAP_AT_FULLAUTH_ID_REQ.len", &OCTETSTRING_ber_, &EAP__AT__FULLAUTH__ID__REQ_len_raw_, &OCTETSTRING_text_, &EAP__AT__FULLAUTH__ID__REQ_len_xer_, &OCTETSTRING_json_, &EAP__AT__FULLAUTH__ID__REQ_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__FULLAUTH__ID__REQ_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__FULLAUTH__ID__REQ_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__FULLAUTH__ID__REQ_reserved_oer_ext_arr_, 0, EAP__AT__FULLAUTH__ID__REQ_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__FULLAUTH__ID__REQ_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_FULLAUTH_ID_REQ.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__FULLAUTH__ID__REQ_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__FULLAUTH__ID__REQ_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__FULLAUTH__ID__REQ +const TTCN_Typedescriptor_t EAP__AT__FULLAUTH__ID__REQ_descr_ = { "@EAP_TypeDefs.EAP_AT_FULLAUTH_ID_REQ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__COUNTER_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__COUNTER_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__COUNTER_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__COUNTER_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__COUNTER_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__COUNTER_attributeType_oer_ext_arr_, 0, EAP__AT__COUNTER_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__COUNTER_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_COUNTER.attributeType", &OCTETSTRING_ber_, &EAP__AT__COUNTER_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__COUNTER_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__COUNTER_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__COUNTER_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__COUNTER_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__COUNTER_len_oer_ext_arr_[0] = {}; +const int EAP__AT__COUNTER_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__COUNTER_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__COUNTER_len_oer_ext_arr_, 0, EAP__AT__COUNTER_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__COUNTER_len_descr_ = { "@EAP_TypeDefs.EAP_AT_COUNTER.len", &OCTETSTRING_ber_, &EAP__AT__COUNTER_len_raw_, &OCTETSTRING_text_, &EAP__AT__COUNTER_len_xer_, &OCTETSTRING_json_, &EAP__AT__COUNTER_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__COUNTER_counter_xer_ = { {"counter>\n", "counter>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__COUNTER_counter_oer_ext_arr_[0] = {}; +const int EAP__AT__COUNTER_counter_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__COUNTER_counter_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__COUNTER_counter_oer_ext_arr_, 0, EAP__AT__COUNTER_counter_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__COUNTER_counter_descr_ = { "@EAP_TypeDefs.EAP_AT_COUNTER.counter", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__COUNTER_counter_xer_, &OCTETSTRING_json_, &EAP__AT__COUNTER_counter_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__COUNTER +const TTCN_Typedescriptor_t EAP__AT__COUNTER_descr_ = { "@EAP_TypeDefs.EAP_AT_COUNTER", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__COUNTER__TOO__SMALL_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__COUNTER__TOO__SMALL_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__COUNTER__TOO__SMALL_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__COUNTER__TOO__SMALL_attributeType_oer_ext_arr_, 0, EAP__AT__COUNTER__TOO__SMALL_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__COUNTER__TOO__SMALL_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_COUNTER_TOO_SMALL.attributeType", &OCTETSTRING_ber_, &EAP__AT__COUNTER__TOO__SMALL_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__COUNTER__TOO__SMALL_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__COUNTER__TOO__SMALL_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__COUNTER__TOO__SMALL_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__COUNTER__TOO__SMALL_len_oer_ext_arr_[0] = {}; +const int EAP__AT__COUNTER__TOO__SMALL_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__COUNTER__TOO__SMALL_len_oer_ext_arr_, 0, EAP__AT__COUNTER__TOO__SMALL_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__COUNTER__TOO__SMALL_len_descr_ = { "@EAP_TypeDefs.EAP_AT_COUNTER_TOO_SMALL.len", &OCTETSTRING_ber_, &EAP__AT__COUNTER__TOO__SMALL_len_raw_, &OCTETSTRING_text_, &EAP__AT__COUNTER__TOO__SMALL_len_xer_, &OCTETSTRING_json_, &EAP__AT__COUNTER__TOO__SMALL_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__COUNTER__TOO__SMALL_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__COUNTER__TOO__SMALL_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__COUNTER__TOO__SMALL_reserved_oer_ext_arr_, 0, EAP__AT__COUNTER__TOO__SMALL_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__COUNTER__TOO__SMALL_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_COUNTER_TOO_SMALL.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__COUNTER__TOO__SMALL_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__COUNTER__TOO__SMALL_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__COUNTER__TOO__SMALL +const TTCN_Typedescriptor_t EAP__AT__COUNTER__TOO__SMALL_descr_ = { "@EAP_TypeDefs.EAP_AT_COUNTER_TOO_SMALL", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__NONCE__S_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__NONCE__S_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NONCE__S_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__NONCE__S_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NONCE__S_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__NONCE__S_attributeType_oer_ext_arr_, 0, EAP__AT__NONCE__S_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NONCE__S_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_NONCE_S.attributeType", &OCTETSTRING_ber_, &EAP__AT__NONCE__S_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__NONCE__S_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__NONCE__S_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__NONCE__S_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__NONCE__S_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NONCE__S_len_oer_ext_arr_[0] = {}; +const int EAP__AT__NONCE__S_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NONCE__S_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__NONCE__S_len_oer_ext_arr_, 0, EAP__AT__NONCE__S_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NONCE__S_len_descr_ = { "@EAP_TypeDefs.EAP_AT_NONCE_S.len", &OCTETSTRING_ber_, &EAP__AT__NONCE__S_len_raw_, &OCTETSTRING_text_, &EAP__AT__NONCE__S_len_xer_, &OCTETSTRING_json_, &EAP__AT__NONCE__S_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NONCE__S_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NONCE__S_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__NONCE__S_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NONCE__S_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__NONCE__S_reserved_oer_ext_arr_, 0, EAP__AT__NONCE__S_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NONCE__S_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_NONCE_S.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__NONCE__S_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__NONCE__S_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NONCE__S_nonceS_xer_ = { {"nonceS>\n", "nonceS>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NONCE__S_nonceS_oer_ext_arr_[0] = {}; +const int EAP__AT__NONCE__S_nonceS_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NONCE__S_nonceS_oer_ = { -1, TRUE, 16, FALSE, 0, 0, EAP__AT__NONCE__S_nonceS_oer_ext_arr_, 0, EAP__AT__NONCE__S_nonceS_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NONCE__S_nonceS_descr_ = { "@EAP_TypeDefs.EAP_AT_NONCE_S.nonceS", &OCTETSTRING_ber_, &CommonDefs::O16__Type_raw_, &OCTETSTRING_text_, &EAP__AT__NONCE__S_nonceS_xer_, &OCTETSTRING_json_, &EAP__AT__NONCE__S_nonceS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__NONCE__S +const TTCN_Typedescriptor_t EAP__AT__NONCE__S_descr_ = { "@EAP_TypeDefs.EAP_AT_NONCE_S", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__CLIENT__ERROR__CODE_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__CLIENT__ERROR__CODE_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__CLIENT__ERROR__CODE_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__CLIENT__ERROR__CODE_attributeType_oer_ext_arr_, 0, EAP__AT__CLIENT__ERROR__CODE_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__CLIENT__ERROR__CODE_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_CLIENT_ERROR_CODE.attributeType", &OCTETSTRING_ber_, &EAP__AT__CLIENT__ERROR__CODE_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__CLIENT__ERROR__CODE_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__CLIENT__ERROR__CODE_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__CLIENT__ERROR__CODE_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__CLIENT__ERROR__CODE_len_oer_ext_arr_[0] = {}; +const int EAP__AT__CLIENT__ERROR__CODE_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__CLIENT__ERROR__CODE_len_oer_ext_arr_, 0, EAP__AT__CLIENT__ERROR__CODE_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__CLIENT__ERROR__CODE_len_descr_ = { "@EAP_TypeDefs.EAP_AT_CLIENT_ERROR_CODE.len", &OCTETSTRING_ber_, &EAP__AT__CLIENT__ERROR__CODE_len_raw_, &OCTETSTRING_text_, &EAP__AT__CLIENT__ERROR__CODE_len_xer_, &OCTETSTRING_json_, &EAP__AT__CLIENT__ERROR__CODE_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_xer_ = { {"clientErrorCode>\n", "clientErrorCode>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_oer_ext_arr_[0] = {}; +const int EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_oer_ext_arr_, 0, EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_descr_ = { "@EAP_TypeDefs.EAP_AT_CLIENT_ERROR_CODE.clientErrorCode", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_xer_, &OCTETSTRING_json_, &EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__CLIENT__ERROR__CODE +const TTCN_Typedescriptor_t EAP__AT__CLIENT__ERROR__CODE_descr_ = { "@EAP_TypeDefs.EAP_AT_CLIENT_ERROR_CODE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__IV_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__IV_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__IV_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__IV_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__IV_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__IV_attributeType_oer_ext_arr_, 0, EAP__AT__IV_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__IV_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_IV.attributeType", &OCTETSTRING_ber_, &EAP__AT__IV_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__IV_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__IV_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__IV_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__IV_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__IV_len_oer_ext_arr_[0] = {}; +const int EAP__AT__IV_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__IV_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__IV_len_oer_ext_arr_, 0, EAP__AT__IV_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__IV_len_descr_ = { "@EAP_TypeDefs.EAP_AT_IV.len", &OCTETSTRING_ber_, &EAP__AT__IV_len_raw_, &OCTETSTRING_text_, &EAP__AT__IV_len_xer_, &OCTETSTRING_json_, &EAP__AT__IV_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__IV_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__IV_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__IV_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__IV_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__IV_reserved_oer_ext_arr_, 0, EAP__AT__IV_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__IV_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_IV.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__IV_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__IV_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__IV_autn_xer_ = { {"autn>\n", "autn>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__IV_autn_oer_ext_arr_[0] = {}; +const int EAP__AT__IV_autn_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__IV_autn_oer_ = { -1, TRUE, 16, FALSE, 0, 0, EAP__AT__IV_autn_oer_ext_arr_, 0, EAP__AT__IV_autn_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__IV_autn_descr_ = { "@EAP_TypeDefs.EAP_AT_IV.autn", &OCTETSTRING_ber_, &CommonDefs::O16__Type_raw_, &OCTETSTRING_text_, &EAP__AT__IV_autn_xer_, &OCTETSTRING_json_, &EAP__AT__IV_autn_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__IV +const TTCN_Typedescriptor_t EAP__AT__IV_descr_ = { "@EAP_TypeDefs.EAP_AT_IV", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__NEXT__PSEUDONYM_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__NEXT__PSEUDONYM_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NEXT__PSEUDONYM_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__NEXT__PSEUDONYM_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NEXT__PSEUDONYM_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__NEXT__PSEUDONYM_attributeType_oer_ext_arr_, 0, EAP__AT__NEXT__PSEUDONYM_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_PSEUDONYM.attributeType", &OCTETSTRING_ber_, &EAP__AT__NEXT__PSEUDONYM_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__NEXT__PSEUDONYM_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__NEXT__PSEUDONYM_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NEXT__PSEUDONYM_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NEXT__PSEUDONYM_len_oer_ext_arr_[0] = {}; +const int EAP__AT__NEXT__PSEUDONYM_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NEXT__PSEUDONYM_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__NEXT__PSEUDONYM_len_oer_ext_arr_, 0, EAP__AT__NEXT__PSEUDONYM_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_len_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_PSEUDONYM.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__NEXT__PSEUDONYM_len_xer_, &OCTETSTRING_json_, &EAP__AT__NEXT__PSEUDONYM_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_xer_ = { {"actualPseudonymlen>\n", "actualPseudonymlen>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_oer_ext_arr_[0] = {}; +const int EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_oer_ext_arr_, 0, EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_PSEUDONYM.actualPseudonymlen", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_xer_, &OCTETSTRING_json_, &EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NEXT__PSEUDONYM_nextPseudonym_xer_ = { {"nextPseudonym>\n", "nextPseudonym>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NEXT__PSEUDONYM_nextPseudonym_oer_ext_arr_[0] = {}; +const int EAP__AT__NEXT__PSEUDONYM_nextPseudonym_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NEXT__PSEUDONYM_nextPseudonym_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__NEXT__PSEUDONYM_nextPseudonym_oer_ext_arr_, 0, EAP__AT__NEXT__PSEUDONYM_nextPseudonym_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_nextPseudonym_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_PSEUDONYM.nextPseudonym", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__NEXT__PSEUDONYM_nextPseudonym_xer_, &OCTETSTRING_json_, &EAP__AT__NEXT__PSEUDONYM_nextPseudonym_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__NEXT__PSEUDONYM +const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_PSEUDONYM", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__NEXT__REAUTH__ID_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__NEXT__REAUTH__ID_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NEXT__REAUTH__ID_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__NEXT__REAUTH__ID_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NEXT__REAUTH__ID_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__NEXT__REAUTH__ID_attributeType_oer_ext_arr_, 0, EAP__AT__NEXT__REAUTH__ID_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_REAUTH_ID.attributeType", &OCTETSTRING_ber_, &EAP__AT__NEXT__REAUTH__ID_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__NEXT__REAUTH__ID_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__NEXT__REAUTH__ID_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NEXT__REAUTH__ID_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NEXT__REAUTH__ID_len_oer_ext_arr_[0] = {}; +const int EAP__AT__NEXT__REAUTH__ID_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NEXT__REAUTH__ID_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__NEXT__REAUTH__ID_len_oer_ext_arr_, 0, EAP__AT__NEXT__REAUTH__ID_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_len_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_REAUTH_ID.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__NEXT__REAUTH__ID_len_xer_, &OCTETSTRING_json_, &EAP__AT__NEXT__REAUTH__ID_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_xer_ = { {"actualReAuthIdlen>\n", "actualReAuthIdlen>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_oer_ext_arr_[0] = {}; +const int EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_oer_ext_arr_, 0, EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_REAUTH_ID.actualReAuthIdlen", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_xer_, &OCTETSTRING_json_, &EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthId_xer_ = { {"actualReAuthId>\n", "actualReAuthId>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__NEXT__REAUTH__ID_actualReAuthId_oer_ext_arr_[0] = {}; +const int EAP__AT__NEXT__REAUTH__ID_actualReAuthId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthId_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__NEXT__REAUTH__ID_actualReAuthId_oer_ext_arr_, 0, EAP__AT__NEXT__REAUTH__ID_actualReAuthId_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthId_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_REAUTH_ID.actualReAuthId", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__NEXT__REAUTH__ID_actualReAuthId_xer_, &OCTETSTRING_json_, &EAP__AT__NEXT__REAUTH__ID_actualReAuthId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__NEXT__REAUTH__ID +const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_descr_ = { "@EAP_TypeDefs.EAP_AT_NEXT_REAUTH_ID", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__CHECKCODE_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__CHECKCODE_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__CHECKCODE_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__CHECKCODE_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__CHECKCODE_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__CHECKCODE_attributeType_oer_ext_arr_, 0, EAP__AT__CHECKCODE_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_CHECKCODE.attributeType", &OCTETSTRING_ber_, &EAP__AT__CHECKCODE_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__CHECKCODE_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__CHECKCODE_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__CHECKCODE_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__CHECKCODE_len_oer_ext_arr_[0] = {}; +const int EAP__AT__CHECKCODE_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__CHECKCODE_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__CHECKCODE_len_oer_ext_arr_, 0, EAP__AT__CHECKCODE_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_len_descr_ = { "@EAP_TypeDefs.EAP_AT_CHECKCODE.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__CHECKCODE_len_xer_, &OCTETSTRING_json_, &EAP__AT__CHECKCODE_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__CHECKCODE_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__CHECKCODE_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__CHECKCODE_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__CHECKCODE_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__CHECKCODE_reserved_oer_ext_arr_, 0, EAP__AT__CHECKCODE_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_CHECKCODE.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__CHECKCODE_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__CHECKCODE_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__CHECKCODE +const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_descr_ = { "@EAP_TypeDefs.EAP_AT_CHECKCODE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__CHECKCODE_checkCode_xer_ = { {"checkCode>\n", "checkCode>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__CHECKCODE_checkCode_oer_ext_arr_[0] = {}; +const int EAP__AT__CHECKCODE_checkCode_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__CHECKCODE_checkCode_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__CHECKCODE_checkCode_oer_ext_arr_, 0, EAP__AT__CHECKCODE_checkCode_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_checkCode_descr_ = { "@EAP_TypeDefs.EAP_AT_CHECKCODE.checkCode", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__CHECKCODE_checkCode_xer_, &OCTETSTRING_json_, &EAP__AT__CHECKCODE_checkCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__RESULT__IND_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__RESULT__IND_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RESULT__IND_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__RESULT__IND_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RESULT__IND_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__RESULT__IND_attributeType_oer_ext_arr_, 0, EAP__AT__RESULT__IND_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RESULT__IND_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_RESULT_IND.attributeType", &OCTETSTRING_ber_, &EAP__AT__RESULT__IND_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__RESULT__IND_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__RESULT__IND_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__RESULT__IND_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__RESULT__IND_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RESULT__IND_len_oer_ext_arr_[0] = {}; +const int EAP__AT__RESULT__IND_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RESULT__IND_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__RESULT__IND_len_oer_ext_arr_, 0, EAP__AT__RESULT__IND_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RESULT__IND_len_descr_ = { "@EAP_TypeDefs.EAP_AT_RESULT_IND.len", &OCTETSTRING_ber_, &EAP__AT__RESULT__IND_len_raw_, &OCTETSTRING_text_, &EAP__AT__RESULT__IND_len_xer_, &OCTETSTRING_json_, &EAP__AT__RESULT__IND_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__RESULT__IND_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__RESULT__IND_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__RESULT__IND_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__RESULT__IND_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__RESULT__IND_reserved_oer_ext_arr_, 0, EAP__AT__RESULT__IND_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__RESULT__IND_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_RESULT_IND.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__RESULT__IND_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__RESULT__IND_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__RESULT__IND +const TTCN_Typedescriptor_t EAP__AT__RESULT__IND_descr_ = { "@EAP_TypeDefs.EAP_AT_RESULT_IND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__KDF__INPUT_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__KDF__INPUT_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__KDF__INPUT_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__KDF__INPUT_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__KDF__INPUT_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__KDF__INPUT_attributeType_oer_ext_arr_, 0, EAP__AT__KDF__INPUT_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_KDF_INPUT.attributeType", &OCTETSTRING_ber_, &EAP__AT__KDF__INPUT_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__KDF__INPUT_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__KDF__INPUT_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__KDF__INPUT_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__KDF__INPUT_len_oer_ext_arr_[0] = {}; +const int EAP__AT__KDF__INPUT_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__KDF__INPUT_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__KDF__INPUT_len_oer_ext_arr_, 0, EAP__AT__KDF__INPUT_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_len_descr_ = { "@EAP_TypeDefs.EAP_AT_KDF_INPUT.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__KDF__INPUT_len_xer_, &OCTETSTRING_json_, &EAP__AT__KDF__INPUT_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__KDF__INPUT_actualNetworkNamelen_xer_ = { {"actualNetworkNamelen>\n", "actualNetworkNamelen>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__KDF__INPUT_actualNetworkNamelen_oer_ext_arr_[0] = {}; +const int EAP__AT__KDF__INPUT_actualNetworkNamelen_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__KDF__INPUT_actualNetworkNamelen_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__KDF__INPUT_actualNetworkNamelen_oer_ext_arr_, 0, EAP__AT__KDF__INPUT_actualNetworkNamelen_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_actualNetworkNamelen_descr_ = { "@EAP_TypeDefs.EAP_AT_KDF_INPUT.actualNetworkNamelen", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__KDF__INPUT_actualNetworkNamelen_xer_, &OCTETSTRING_json_, &EAP__AT__KDF__INPUT_actualNetworkNamelen_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__KDF__INPUT_networkName_xer_ = { {"networkName>\n", "networkName>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__KDF__INPUT_networkName_oer_ext_arr_[0] = {}; +const int EAP__AT__KDF__INPUT_networkName_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__KDF__INPUT_networkName_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__KDF__INPUT_networkName_oer_ext_arr_, 0, EAP__AT__KDF__INPUT_networkName_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_networkName_descr_ = { "@EAP_TypeDefs.EAP_AT_KDF_INPUT.networkName", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__KDF__INPUT_networkName_xer_, &OCTETSTRING_json_, &EAP__AT__KDF__INPUT_networkName_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__KDF__INPUT +const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_descr_ = { "@EAP_TypeDefs.EAP_AT_KDF_INPUT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__KDF_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__KDF_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__KDF_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__KDF_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__KDF_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__KDF_attributeType_oer_ext_arr_, 0, EAP__AT__KDF_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__KDF_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_KDF.attributeType", &OCTETSTRING_ber_, &EAP__AT__KDF_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__KDF_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__KDF_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__KDF_len_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__KDF_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__KDF_len_oer_ext_arr_[0] = {}; +const int EAP__AT__KDF_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__KDF_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__KDF_len_oer_ext_arr_, 0, EAP__AT__KDF_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__KDF_len_descr_ = { "@EAP_TypeDefs.EAP_AT_KDF.len", &OCTETSTRING_ber_, &EAP__AT__KDF_len_raw_, &OCTETSTRING_text_, &EAP__AT__KDF_len_xer_, &OCTETSTRING_json_, &EAP__AT__KDF_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__KDF_keyDerivationFunction_xer_ = { {"keyDerivationFunction>\n", "keyDerivationFunction>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__KDF_keyDerivationFunction_oer_ext_arr_[0] = {}; +const int EAP__AT__KDF_keyDerivationFunction_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__KDF_keyDerivationFunction_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__KDF_keyDerivationFunction_oer_ext_arr_, 0, EAP__AT__KDF_keyDerivationFunction_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__KDF_keyDerivationFunction_descr_ = { "@EAP_TypeDefs.EAP_AT_KDF.keyDerivationFunction", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__KDF_keyDerivationFunction_xer_, &OCTETSTRING_json_, &EAP__AT__KDF_keyDerivationFunction_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__KDF +const TTCN_Typedescriptor_t EAP__AT__KDF_descr_ = { "@EAP_TypeDefs.EAP_AT_KDF", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__Request__Type +const TTCN_Typedescriptor_t EAP__Request__Type_descr_ = { "@EAP_TypeDefs.EAP_Request_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__Response__Type_code_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__Response__Type_code_xer_ = { {"code>\n", "code>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Response__Type_code_oer_ext_arr_[0] = {}; +const int EAP__Response__Type_code_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Response__Type_code_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Response__Type_code_oer_ext_arr_, 0, EAP__Response__Type_code_oer_p_}; +const TTCN_Typedescriptor_t EAP__Response__Type_code_descr_ = { "@EAP_TypeDefs.EAP_Response_Type.code", &OCTETSTRING_ber_, &EAP__Response__Type_code_raw_, &OCTETSTRING_text_, &EAP__Response__Type_code_xer_, &OCTETSTRING_json_, &EAP__Response__Type_code_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Response__Type_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Response__Type_id_oer_ext_arr_[0] = {}; +const int EAP__Response__Type_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Response__Type_id_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Response__Type_id_oer_ext_arr_, 0, EAP__Response__Type_id_oer_p_}; +const TTCN_Typedescriptor_t EAP__Response__Type_id_descr_ = { "@EAP_TypeDefs.EAP_Response_Type.id", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__Response__Type_id_xer_, &OCTETSTRING_json_, &EAP__Response__Type_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Response__Type_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Response__Type_len_oer_ext_arr_[0] = {}; +const int EAP__Response__Type_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Response__Type_len_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__Response__Type_len_oer_ext_arr_, 0, EAP__Response__Type_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__Response__Type_len_descr_ = { "@EAP_TypeDefs.EAP_Response_Type.len", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__Response__Type_len_xer_, &OCTETSTRING_json_, &EAP__Response__Type_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__Response__Type_type___raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__Response__Type_type___xer_ = { {"type_>\n", "type_>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Response__Type_type___oer_ext_arr_[0] = {}; +const int EAP__Response__Type_type___oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Response__Type_type___oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Response__Type_type___oer_ext_arr_, 0, EAP__Response__Type_type___oer_p_}; +const TTCN_Typedescriptor_t EAP__Response__Type_type___descr_ = { "@EAP_TypeDefs.EAP_Response_Type.type_", &OCTETSTRING_ber_, &EAP__Response__Type_type___raw_, &OCTETSTRING_text_, &EAP__Response__Type_type___xer_, &OCTETSTRING_json_, &EAP__Response__Type_type___oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Response__Type_subtype_xer_ = { {"subtype>\n", "subtype>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Response__Type_subtype_oer_ext_arr_[0] = {}; +const int EAP__Response__Type_subtype_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Response__Type_subtype_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Response__Type_subtype_oer_ext_arr_, 0, EAP__Response__Type_subtype_oer_p_}; +const TTCN_Typedescriptor_t EAP__Response__Type_subtype_descr_ = { "@EAP_TypeDefs.EAP_Response_Type.subtype", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__Response__Type_subtype_xer_, &OCTETSTRING_json_, &EAP__Response__Type_subtype_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Response__Type_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Response__Type_reserved_oer_ext_arr_[0] = {}; +const int EAP__Response__Type_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Response__Type_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__Response__Type_reserved_oer_ext_arr_, 0, EAP__Response__Type_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__Response__Type_reserved_descr_ = { "@EAP_TypeDefs.EAP_Response_Type.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__Response__Type_reserved_xer_, &OCTETSTRING_json_, &EAP__Response__Type_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__Response__Type +const TTCN_Typedescriptor_t EAP__Response__Type_descr_ = { "@EAP_TypeDefs.EAP_Response_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__Success__Type_code_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__Success__Type_code_xer_ = { {"code>\n", "code>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Success__Type_code_oer_ext_arr_[0] = {}; +const int EAP__Success__Type_code_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Success__Type_code_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Success__Type_code_oer_ext_arr_, 0, EAP__Success__Type_code_oer_p_}; +const TTCN_Typedescriptor_t EAP__Success__Type_code_descr_ = { "@EAP_TypeDefs.EAP_Success_Type.code", &OCTETSTRING_ber_, &EAP__Success__Type_code_raw_, &OCTETSTRING_text_, &EAP__Success__Type_code_xer_, &OCTETSTRING_json_, &EAP__Success__Type_code_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Success__Type_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Success__Type_id_oer_ext_arr_[0] = {}; +const int EAP__Success__Type_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Success__Type_id_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Success__Type_id_oer_ext_arr_, 0, EAP__Success__Type_id_oer_p_}; +const TTCN_Typedescriptor_t EAP__Success__Type_id_descr_ = { "@EAP_TypeDefs.EAP_Success_Type.id", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__Success__Type_id_xer_, &OCTETSTRING_json_, &EAP__Success__Type_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__Success__Type_len_raw_ = {16,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__Success__Type_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Success__Type_len_oer_ext_arr_[0] = {}; +const int EAP__Success__Type_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Success__Type_len_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__Success__Type_len_oer_ext_arr_, 0, EAP__Success__Type_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__Success__Type_len_descr_ = { "@EAP_TypeDefs.EAP_Success_Type.len", &OCTETSTRING_ber_, &EAP__Success__Type_len_raw_, &OCTETSTRING_text_, &EAP__Success__Type_len_xer_, &OCTETSTRING_json_, &EAP__Success__Type_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__Success__Type +const TTCN_Typedescriptor_t EAP__Success__Type_descr_ = { "@EAP_TypeDefs.EAP_Success_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__Failure__Type_code_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__Failure__Type_code_xer_ = { {"code>\n", "code>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Failure__Type_code_oer_ext_arr_[0] = {}; +const int EAP__Failure__Type_code_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Failure__Type_code_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Failure__Type_code_oer_ext_arr_, 0, EAP__Failure__Type_code_oer_p_}; +const TTCN_Typedescriptor_t EAP__Failure__Type_code_descr_ = { "@EAP_TypeDefs.EAP_Failure_Type.code", &OCTETSTRING_ber_, &EAP__Failure__Type_code_raw_, &OCTETSTRING_text_, &EAP__Failure__Type_code_xer_, &OCTETSTRING_json_, &EAP__Failure__Type_code_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Failure__Type_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Failure__Type_id_oer_ext_arr_[0] = {}; +const int EAP__Failure__Type_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Failure__Type_id_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Failure__Type_id_oer_ext_arr_, 0, EAP__Failure__Type_id_oer_p_}; +const TTCN_Typedescriptor_t EAP__Failure__Type_id_descr_ = { "@EAP_TypeDefs.EAP_Failure_Type.id", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__Failure__Type_id_xer_, &OCTETSTRING_json_, &EAP__Failure__Type_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__Failure__Type_len_raw_ = {16,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__Failure__Type_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Failure__Type_len_oer_ext_arr_[0] = {}; +const int EAP__Failure__Type_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Failure__Type_len_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__Failure__Type_len_oer_ext_arr_, 0, EAP__Failure__Type_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__Failure__Type_len_descr_ = { "@EAP_TypeDefs.EAP_Failure_Type.len", &OCTETSTRING_ber_, &EAP__Failure__Type_len_raw_, &OCTETSTRING_text_, &EAP__Failure__Type_len_xer_, &OCTETSTRING_json_, &EAP__Failure__Type_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__Failure__Type +const TTCN_Typedescriptor_t EAP__Failure__Type_descr_ = { "@EAP_TypeDefs.EAP_Failure_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t EAP__AT__ENCR__DATA_attributeType_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t EAP__AT__ENCR__DATA_attributeType_xer_ = { {"attributeType>\n", "attributeType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__ENCR__DATA_attributeType_oer_ext_arr_[0] = {}; +const int EAP__AT__ENCR__DATA_attributeType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__ENCR__DATA_attributeType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__ENCR__DATA_attributeType_oer_ext_arr_, 0, EAP__AT__ENCR__DATA_attributeType_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_attributeType_descr_ = { "@EAP_TypeDefs.EAP_AT_ENCR_DATA.attributeType", &OCTETSTRING_ber_, &EAP__AT__ENCR__DATA_attributeType_raw_, &OCTETSTRING_text_, &EAP__AT__ENCR__DATA_attributeType_xer_, &OCTETSTRING_json_, &EAP__AT__ENCR__DATA_attributeType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__ENCR__DATA_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__ENCR__DATA_len_oer_ext_arr_[0] = {}; +const int EAP__AT__ENCR__DATA_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__ENCR__DATA_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__AT__ENCR__DATA_len_oer_ext_arr_, 0, EAP__AT__ENCR__DATA_len_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_len_descr_ = { "@EAP_TypeDefs.EAP_AT_ENCR_DATA.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__AT__ENCR__DATA_len_xer_, &OCTETSTRING_json_, &EAP__AT__ENCR__DATA_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__ENCR__DATA_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__ENCR__DATA_reserved_oer_ext_arr_[0] = {}; +const int EAP__AT__ENCR__DATA_reserved_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__ENCR__DATA_reserved_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__AT__ENCR__DATA_reserved_oer_ext_arr_, 0, EAP__AT__ENCR__DATA_reserved_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_reserved_descr_ = { "@EAP_TypeDefs.EAP_AT_ENCR_DATA.reserved", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__AT__ENCR__DATA_reserved_xer_, &OCTETSTRING_json_, &EAP__AT__ENCR__DATA_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__AT__ENCR__DATA_encrData_xer_ = { {"encrData>\n", "encrData>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__AT__ENCR__DATA_encrData_oer_ext_arr_[0] = {}; +const int EAP__AT__ENCR__DATA_encrData_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__AT__ENCR__DATA_encrData_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__AT__ENCR__DATA_encrData_oer_ext_arr_, 0, EAP__AT__ENCR__DATA_encrData_oer_p_}; +const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_encrData_descr_ = { "@EAP_TypeDefs.EAP_AT_ENCR_DATA.encrData", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__AT__ENCR__DATA_encrData_xer_, &OCTETSTRING_json_, &EAP__AT__ENCR__DATA_encrData_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__AT__ENCR__DATA +const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_descr_ = { "@EAP_TypeDefs.EAP_AT_ENCR_DATA", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("EAP_TypeDefs", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_EAP_TypeDefs(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "EAP_AT_ANY_ID_REQ")) { + ((const EAP__AT__ANY__ID__REQ*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_ANY_ID_REQ template")) { + ((const EAP__AT__ANY__ID__REQ_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_AUTN")) { + ((const EAP__AT__AUTN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_AUTN template")) { + ((const EAP__AT__AUTN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_AUTS")) { + ((const EAP__AT__AUTS*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_AUTS template")) { + ((const EAP__AT__AUTS_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_CHECKCODE")) { + ((const EAP__AT__CHECKCODE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_CHECKCODE template")) { + ((const EAP__AT__CHECKCODE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_CLIENT_ERROR_CODE")) { + ((const EAP__AT__CLIENT__ERROR__CODE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_CLIENT_ERROR_CODE template")) { + ((const EAP__AT__CLIENT__ERROR__CODE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_COUNTER")) { + ((const EAP__AT__COUNTER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_COUNTER template")) { + ((const EAP__AT__COUNTER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_COUNTER_TOO_SMALL")) { + ((const EAP__AT__COUNTER__TOO__SMALL*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_COUNTER_TOO_SMALL template")) { + ((const EAP__AT__COUNTER__TOO__SMALL_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_ENCR_DATA")) { + ((const EAP__AT__ENCR__DATA*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_ENCR_DATA template")) { + ((const EAP__AT__ENCR__DATA_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_FULLAUTH_ID_REQ")) { + ((const EAP__AT__FULLAUTH__ID__REQ*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_FULLAUTH_ID_REQ template")) { + ((const EAP__AT__FULLAUTH__ID__REQ_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_IDENTITY")) { + ((const EAP__AT__IDENTITY*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_IDENTITY template")) { + ((const EAP__AT__IDENTITY_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_IV")) { + ((const EAP__AT__IV*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_IV template")) { + ((const EAP__AT__IV_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_KDF")) { + ((const EAP__AT__KDF*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_KDF template")) { + ((const EAP__AT__KDF_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_KDF_INPUT")) { + ((const EAP__AT__KDF__INPUT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_KDF_INPUT template")) { + ((const EAP__AT__KDF__INPUT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_MAC")) { + ((const EAP__AT__MAC*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_MAC template")) { + ((const EAP__AT__MAC_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NEXT_PSEUDONYM")) { + ((const EAP__AT__NEXT__PSEUDONYM*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NEXT_PSEUDONYM template")) { + ((const EAP__AT__NEXT__PSEUDONYM_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NEXT_REAUTH_ID")) { + ((const EAP__AT__NEXT__REAUTH__ID*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NEXT_REAUTH_ID template")) { + ((const EAP__AT__NEXT__REAUTH__ID_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NONCE_S")) { + ((const EAP__AT__NONCE__S*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NONCE_S template")) { + ((const EAP__AT__NONCE__S_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NOTIFICATION")) { + ((const EAP__AT__NOTIFICATION*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NOTIFICATION template")) { + ((const EAP__AT__NOTIFICATION_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_PADDING")) { + ((const EAP__AT__PADDING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_PADDING template")) { + ((const EAP__AT__PADDING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_PERMANENT_ID_REQ")) { + ((const EAP__AT__PERMANENT__ID__REQ*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_PERMANENT_ID_REQ template")) { + ((const EAP__AT__PERMANENT__ID__REQ_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RAND")) { + ((const EAP__AT__RAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RAND template")) { + ((const EAP__AT__RAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RES")) { + ((const EAP__AT__RES*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RES template")) { + ((const EAP__AT__RES_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RESULT_IND")) { + ((const EAP__AT__RESULT__IND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RESULT_IND template")) { + ((const EAP__AT__RESULT__IND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_SELECTED_VERSION")) { + ((const EAP__AT__SELECTED__VERSION*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_SELECTED_VERSION template")) { + ((const EAP__AT__SELECTED__VERSION_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_VERSION_LIST")) { + ((const EAP__AT__VERSION__LIST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_AT_VERSION_LIST template")) { + ((const EAP__AT__VERSION__LIST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Attributes")) { + ((const EAP__Attributes*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Attributes template")) { + ((const EAP__Attributes_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Failure_Type")) { + ((const EAP__Failure__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Failure_Type template")) { + ((const EAP__Failure__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Message_Type")) { + ((const EAP__Message__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Message_Type template")) { + ((const EAP__Message__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Request_Type")) { + ((const EAP__Request__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Request_Type template")) { + ((const EAP__Request__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Response_Type")) { + ((const EAP__Response__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Response_Type template")) { + ((const EAP__Response__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Success_Type")) { + ((const EAP__Success__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Success_Type template")) { + ((const EAP__Success__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_EAP_TypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "EAP_AT_ANY_ID_REQ")) { + ((EAP__AT__ANY__ID__REQ*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_ANY_ID_REQ template")) { + ((EAP__AT__ANY__ID__REQ_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_AUTN")) { + ((EAP__AT__AUTN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_AUTN template")) { + ((EAP__AT__AUTN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_AUTS")) { + ((EAP__AT__AUTS*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_AUTS template")) { + ((EAP__AT__AUTS_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_CHECKCODE")) { + ((EAP__AT__CHECKCODE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_CHECKCODE template")) { + ((EAP__AT__CHECKCODE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_CLIENT_ERROR_CODE")) { + ((EAP__AT__CLIENT__ERROR__CODE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_CLIENT_ERROR_CODE template")) { + ((EAP__AT__CLIENT__ERROR__CODE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_COUNTER")) { + ((EAP__AT__COUNTER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_COUNTER template")) { + ((EAP__AT__COUNTER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_COUNTER_TOO_SMALL")) { + ((EAP__AT__COUNTER__TOO__SMALL*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_COUNTER_TOO_SMALL template")) { + ((EAP__AT__COUNTER__TOO__SMALL_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_ENCR_DATA")) { + ((EAP__AT__ENCR__DATA*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_ENCR_DATA template")) { + ((EAP__AT__ENCR__DATA_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_FULLAUTH_ID_REQ")) { + ((EAP__AT__FULLAUTH__ID__REQ*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_FULLAUTH_ID_REQ template")) { + ((EAP__AT__FULLAUTH__ID__REQ_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_IDENTITY")) { + ((EAP__AT__IDENTITY*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_IDENTITY template")) { + ((EAP__AT__IDENTITY_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_IV")) { + ((EAP__AT__IV*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_IV template")) { + ((EAP__AT__IV_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_KDF")) { + ((EAP__AT__KDF*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_KDF template")) { + ((EAP__AT__KDF_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_KDF_INPUT")) { + ((EAP__AT__KDF__INPUT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_KDF_INPUT template")) { + ((EAP__AT__KDF__INPUT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_MAC")) { + ((EAP__AT__MAC*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_MAC template")) { + ((EAP__AT__MAC_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NEXT_PSEUDONYM")) { + ((EAP__AT__NEXT__PSEUDONYM*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NEXT_PSEUDONYM template")) { + ((EAP__AT__NEXT__PSEUDONYM_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NEXT_REAUTH_ID")) { + ((EAP__AT__NEXT__REAUTH__ID*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NEXT_REAUTH_ID template")) { + ((EAP__AT__NEXT__REAUTH__ID_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NONCE_S")) { + ((EAP__AT__NONCE__S*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NONCE_S template")) { + ((EAP__AT__NONCE__S_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NOTIFICATION")) { + ((EAP__AT__NOTIFICATION*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_NOTIFICATION template")) { + ((EAP__AT__NOTIFICATION_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_PADDING")) { + ((EAP__AT__PADDING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_PADDING template")) { + ((EAP__AT__PADDING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_PERMANENT_ID_REQ")) { + ((EAP__AT__PERMANENT__ID__REQ*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_PERMANENT_ID_REQ template")) { + ((EAP__AT__PERMANENT__ID__REQ_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RAND")) { + ((EAP__AT__RAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RAND template")) { + ((EAP__AT__RAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RES")) { + ((EAP__AT__RES*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RES template")) { + ((EAP__AT__RES_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RESULT_IND")) { + ((EAP__AT__RESULT__IND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_RESULT_IND template")) { + ((EAP__AT__RESULT__IND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_SELECTED_VERSION")) { + ((EAP__AT__SELECTED__VERSION*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_SELECTED_VERSION template")) { + ((EAP__AT__SELECTED__VERSION_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_VERSION_LIST")) { + ((EAP__AT__VERSION__LIST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_AT_VERSION_LIST template")) { + ((EAP__AT__VERSION__LIST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Attributes")) { + ((EAP__Attributes*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Attributes template")) { + ((EAP__Attributes_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Failure_Type")) { + ((EAP__Failure__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Failure_Type template")) { + ((EAP__Failure__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Message_Type")) { + ((EAP__Message__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Message_Type template")) { + ((EAP__Message__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Request_Type")) { + ((EAP__Request__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Request_Type template")) { + ((EAP__Request__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Response_Type")) { + ((EAP__Response__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Response_Type template")) { + ((EAP__Response__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Success_Type")) { + ((EAP__Success__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Success_Type template")) { + ((EAP__Success__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("EAP_TypeDefs"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void EAP__Message__Type::copy_value(const EAP__Message__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_akaId__Req: +field_akaId__Req = new EAP__Request__Type(*other_value.field_akaId__Req); +break; +case ALT_akaId__Rsp: +field_akaId__Rsp = new EAP__Response__Type(*other_value.field_akaId__Rsp); +break; +case ALT_akaChallenge__Req: +field_akaChallenge__Req = new EAP__Request__Type(*other_value.field_akaChallenge__Req); +break; +case ALT_akaChallenge__Rsp: +field_akaChallenge__Rsp = new EAP__Response__Type(*other_value.field_akaChallenge__Rsp); +break; +case ALT_akaAuthReject: +field_akaAuthReject = new EAP__Response__Type(*other_value.field_akaAuthReject); +break; +case ALT_akaSynchronizationFailure: +field_akaSynchronizationFailure = new EAP__Response__Type(*other_value.field_akaSynchronizationFailure); +break; +case ALT_akaReauthentication__Req: +field_akaReauthentication__Req = new EAP__Request__Type(*other_value.field_akaReauthentication__Req); +break; +case ALT_akaReauthentication__Rsp: +field_akaReauthentication__Rsp = new EAP__Response__Type(*other_value.field_akaReauthentication__Rsp); +break; +case ALT_akaClientError: +field_akaClientError = new EAP__Response__Type(*other_value.field_akaClientError); +break; +case ALT_akaNotification__Req: +field_akaNotification__Req = new EAP__Request__Type(*other_value.field_akaNotification__Req); +break; +case ALT_akaNotification__Rsp: +field_akaNotification__Rsp = new EAP__Response__Type(*other_value.field_akaNotification__Rsp); +break; +case ALT_success: +field_success = new EAP__Success__Type(*other_value.field_success); +break; +case ALT_failure: +field_failure = new EAP__Failure__Type(*other_value.field_failure); +break; +default: +TTCN_error("Assignment of an unbound union value of type @EAP_TypeDefs.EAP_Message_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +EAP__Message__Type::EAP__Message__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +EAP__Message__Type::EAP__Message__Type(const EAP__Message__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +EAP__Message__Type::~EAP__Message__Type() +{ +clean_up(); +} + +EAP__Message__Type& EAP__Message__Type::operator=(const EAP__Message__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean EAP__Message__Type::operator==(const EAP__Message__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @EAP_TypeDefs.EAP_Message_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @EAP_TypeDefs.EAP_Message_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_akaId__Req: +return *field_akaId__Req == *other_value.field_akaId__Req; +case ALT_akaId__Rsp: +return *field_akaId__Rsp == *other_value.field_akaId__Rsp; +case ALT_akaChallenge__Req: +return *field_akaChallenge__Req == *other_value.field_akaChallenge__Req; +case ALT_akaChallenge__Rsp: +return *field_akaChallenge__Rsp == *other_value.field_akaChallenge__Rsp; +case ALT_akaAuthReject: +return *field_akaAuthReject == *other_value.field_akaAuthReject; +case ALT_akaSynchronizationFailure: +return *field_akaSynchronizationFailure == *other_value.field_akaSynchronizationFailure; +case ALT_akaReauthentication__Req: +return *field_akaReauthentication__Req == *other_value.field_akaReauthentication__Req; +case ALT_akaReauthentication__Rsp: +return *field_akaReauthentication__Rsp == *other_value.field_akaReauthentication__Rsp; +case ALT_akaClientError: +return *field_akaClientError == *other_value.field_akaClientError; +case ALT_akaNotification__Req: +return *field_akaNotification__Req == *other_value.field_akaNotification__Req; +case ALT_akaNotification__Rsp: +return *field_akaNotification__Rsp == *other_value.field_akaNotification__Rsp; +case ALT_success: +return *field_success == *other_value.field_success; +case ALT_failure: +return *field_failure == *other_value.field_failure; +default: +return FALSE; +} +} + +EAP__Request__Type& EAP__Message__Type::akaId__Req() +{ +if (union_selection != ALT_akaId__Req) { +clean_up(); +field_akaId__Req = new EAP__Request__Type; +union_selection = ALT_akaId__Req; +} +return *field_akaId__Req; +} + +const EAP__Request__Type& EAP__Message__Type::akaId__Req() const +{ +if (union_selection != ALT_akaId__Req) TTCN_error("Using non-selected field akaId_Req in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaId__Req; +} + +EAP__Response__Type& EAP__Message__Type::akaId__Rsp() +{ +if (union_selection != ALT_akaId__Rsp) { +clean_up(); +field_akaId__Rsp = new EAP__Response__Type; +union_selection = ALT_akaId__Rsp; +} +return *field_akaId__Rsp; +} + +const EAP__Response__Type& EAP__Message__Type::akaId__Rsp() const +{ +if (union_selection != ALT_akaId__Rsp) TTCN_error("Using non-selected field akaId_Rsp in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaId__Rsp; +} + +EAP__Request__Type& EAP__Message__Type::akaChallenge__Req() +{ +if (union_selection != ALT_akaChallenge__Req) { +clean_up(); +field_akaChallenge__Req = new EAP__Request__Type; +union_selection = ALT_akaChallenge__Req; +} +return *field_akaChallenge__Req; +} + +const EAP__Request__Type& EAP__Message__Type::akaChallenge__Req() const +{ +if (union_selection != ALT_akaChallenge__Req) TTCN_error("Using non-selected field akaChallenge_Req in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaChallenge__Req; +} + +EAP__Response__Type& EAP__Message__Type::akaChallenge__Rsp() +{ +if (union_selection != ALT_akaChallenge__Rsp) { +clean_up(); +field_akaChallenge__Rsp = new EAP__Response__Type; +union_selection = ALT_akaChallenge__Rsp; +} +return *field_akaChallenge__Rsp; +} + +const EAP__Response__Type& EAP__Message__Type::akaChallenge__Rsp() const +{ +if (union_selection != ALT_akaChallenge__Rsp) TTCN_error("Using non-selected field akaChallenge_Rsp in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaChallenge__Rsp; +} + +EAP__Response__Type& EAP__Message__Type::akaAuthReject() +{ +if (union_selection != ALT_akaAuthReject) { +clean_up(); +field_akaAuthReject = new EAP__Response__Type; +union_selection = ALT_akaAuthReject; +} +return *field_akaAuthReject; +} + +const EAP__Response__Type& EAP__Message__Type::akaAuthReject() const +{ +if (union_selection != ALT_akaAuthReject) TTCN_error("Using non-selected field akaAuthReject in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaAuthReject; +} + +EAP__Response__Type& EAP__Message__Type::akaSynchronizationFailure() +{ +if (union_selection != ALT_akaSynchronizationFailure) { +clean_up(); +field_akaSynchronizationFailure = new EAP__Response__Type; +union_selection = ALT_akaSynchronizationFailure; +} +return *field_akaSynchronizationFailure; +} + +const EAP__Response__Type& EAP__Message__Type::akaSynchronizationFailure() const +{ +if (union_selection != ALT_akaSynchronizationFailure) TTCN_error("Using non-selected field akaSynchronizationFailure in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaSynchronizationFailure; +} + +EAP__Request__Type& EAP__Message__Type::akaReauthentication__Req() +{ +if (union_selection != ALT_akaReauthentication__Req) { +clean_up(); +field_akaReauthentication__Req = new EAP__Request__Type; +union_selection = ALT_akaReauthentication__Req; +} +return *field_akaReauthentication__Req; +} + +const EAP__Request__Type& EAP__Message__Type::akaReauthentication__Req() const +{ +if (union_selection != ALT_akaReauthentication__Req) TTCN_error("Using non-selected field akaReauthentication_Req in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaReauthentication__Req; +} + +EAP__Response__Type& EAP__Message__Type::akaReauthentication__Rsp() +{ +if (union_selection != ALT_akaReauthentication__Rsp) { +clean_up(); +field_akaReauthentication__Rsp = new EAP__Response__Type; +union_selection = ALT_akaReauthentication__Rsp; +} +return *field_akaReauthentication__Rsp; +} + +const EAP__Response__Type& EAP__Message__Type::akaReauthentication__Rsp() const +{ +if (union_selection != ALT_akaReauthentication__Rsp) TTCN_error("Using non-selected field akaReauthentication_Rsp in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaReauthentication__Rsp; +} + +EAP__Response__Type& EAP__Message__Type::akaClientError() +{ +if (union_selection != ALT_akaClientError) { +clean_up(); +field_akaClientError = new EAP__Response__Type; +union_selection = ALT_akaClientError; +} +return *field_akaClientError; +} + +const EAP__Response__Type& EAP__Message__Type::akaClientError() const +{ +if (union_selection != ALT_akaClientError) TTCN_error("Using non-selected field akaClientError in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaClientError; +} + +EAP__Request__Type& EAP__Message__Type::akaNotification__Req() +{ +if (union_selection != ALT_akaNotification__Req) { +clean_up(); +field_akaNotification__Req = new EAP__Request__Type; +union_selection = ALT_akaNotification__Req; +} +return *field_akaNotification__Req; +} + +const EAP__Request__Type& EAP__Message__Type::akaNotification__Req() const +{ +if (union_selection != ALT_akaNotification__Req) TTCN_error("Using non-selected field akaNotification_Req in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaNotification__Req; +} + +EAP__Response__Type& EAP__Message__Type::akaNotification__Rsp() +{ +if (union_selection != ALT_akaNotification__Rsp) { +clean_up(); +field_akaNotification__Rsp = new EAP__Response__Type; +union_selection = ALT_akaNotification__Rsp; +} +return *field_akaNotification__Rsp; +} + +const EAP__Response__Type& EAP__Message__Type::akaNotification__Rsp() const +{ +if (union_selection != ALT_akaNotification__Rsp) TTCN_error("Using non-selected field akaNotification_Rsp in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_akaNotification__Rsp; +} + +EAP__Success__Type& EAP__Message__Type::success() +{ +if (union_selection != ALT_success) { +clean_up(); +field_success = new EAP__Success__Type; +union_selection = ALT_success; +} +return *field_success; +} + +const EAP__Success__Type& EAP__Message__Type::success() const +{ +if (union_selection != ALT_success) TTCN_error("Using non-selected field success in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_success; +} + +EAP__Failure__Type& EAP__Message__Type::failure() +{ +if (union_selection != ALT_failure) { +clean_up(); +field_failure = new EAP__Failure__Type; +union_selection = ALT_failure; +} +return *field_failure; +} + +const EAP__Failure__Type& EAP__Message__Type::failure() const +{ +if (union_selection != ALT_failure) TTCN_error("Using non-selected field failure in a value of union type @EAP_TypeDefs.EAP_Message_Type."); +return *field_failure; +} + +boolean EAP__Message__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @EAP_TypeDefs.EAP_Message_Type."); +return union_selection == checked_selection; +} + +boolean EAP__Message__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean EAP__Message__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_akaId__Req: return field_akaId__Req->is_value(); +case ALT_akaId__Rsp: return field_akaId__Rsp->is_value(); +case ALT_akaChallenge__Req: return field_akaChallenge__Req->is_value(); +case ALT_akaChallenge__Rsp: return field_akaChallenge__Rsp->is_value(); +case ALT_akaAuthReject: return field_akaAuthReject->is_value(); +case ALT_akaSynchronizationFailure: return field_akaSynchronizationFailure->is_value(); +case ALT_akaReauthentication__Req: return field_akaReauthentication__Req->is_value(); +case ALT_akaReauthentication__Rsp: return field_akaReauthentication__Rsp->is_value(); +case ALT_akaClientError: return field_akaClientError->is_value(); +case ALT_akaNotification__Req: return field_akaNotification__Req->is_value(); +case ALT_akaNotification__Rsp: return field_akaNotification__Rsp->is_value(); +case ALT_success: return field_success->is_value(); +case ALT_failure: return field_failure->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void EAP__Message__Type::clean_up() +{ +switch (union_selection) { +case ALT_akaId__Req: + delete field_akaId__Req; + break; +case ALT_akaId__Rsp: + delete field_akaId__Rsp; + break; +case ALT_akaChallenge__Req: + delete field_akaChallenge__Req; + break; +case ALT_akaChallenge__Rsp: + delete field_akaChallenge__Rsp; + break; +case ALT_akaAuthReject: + delete field_akaAuthReject; + break; +case ALT_akaSynchronizationFailure: + delete field_akaSynchronizationFailure; + break; +case ALT_akaReauthentication__Req: + delete field_akaReauthentication__Req; + break; +case ALT_akaReauthentication__Rsp: + delete field_akaReauthentication__Rsp; + break; +case ALT_akaClientError: + delete field_akaClientError; + break; +case ALT_akaNotification__Req: + delete field_akaNotification__Req; + break; +case ALT_akaNotification__Rsp: + delete field_akaNotification__Rsp; + break; +case ALT_success: + delete field_success; + break; +case ALT_failure: + delete field_failure; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean EAP__Message__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void EAP__Message__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* EAP__Message__Type::clone() const { return new EAP__Message__Type(*this); } +const TTCN_Typedescriptor_t* EAP__Message__Type::get_descriptor() const { return &EAP__Message__Type_descr_; } +void EAP__Message__Type::log() const +{ +switch (union_selection) { +case ALT_akaId__Req: +TTCN_Logger::log_event_str("{ akaId_Req := "); +field_akaId__Req->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaId__Rsp: +TTCN_Logger::log_event_str("{ akaId_Rsp := "); +field_akaId__Rsp->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaChallenge__Req: +TTCN_Logger::log_event_str("{ akaChallenge_Req := "); +field_akaChallenge__Req->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaChallenge__Rsp: +TTCN_Logger::log_event_str("{ akaChallenge_Rsp := "); +field_akaChallenge__Rsp->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaAuthReject: +TTCN_Logger::log_event_str("{ akaAuthReject := "); +field_akaAuthReject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaSynchronizationFailure: +TTCN_Logger::log_event_str("{ akaSynchronizationFailure := "); +field_akaSynchronizationFailure->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaReauthentication__Req: +TTCN_Logger::log_event_str("{ akaReauthentication_Req := "); +field_akaReauthentication__Req->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaReauthentication__Rsp: +TTCN_Logger::log_event_str("{ akaReauthentication_Rsp := "); +field_akaReauthentication__Rsp->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaClientError: +TTCN_Logger::log_event_str("{ akaClientError := "); +field_akaClientError->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaNotification__Req: +TTCN_Logger::log_event_str("{ akaNotification_Req := "); +field_akaNotification__Req->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_akaNotification__Rsp: +TTCN_Logger::log_event_str("{ akaNotification_Rsp := "); +field_akaNotification__Rsp->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_success: +TTCN_Logger::log_event_str("{ success := "); +field_success->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_failure: +TTCN_Logger::log_event_str("{ failure := "); +field_failure->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void EAP__Message__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@EAP_TypeDefs.EAP_Message_Type'"); + } + if (strcmp("akaId_Req", param_field) == 0) { + akaId__Req().set_param(param); + return; + } else if (strcmp("akaId_Rsp", param_field) == 0) { + akaId__Rsp().set_param(param); + return; + } else if (strcmp("akaChallenge_Req", param_field) == 0) { + akaChallenge__Req().set_param(param); + return; + } else if (strcmp("akaChallenge_Rsp", param_field) == 0) { + akaChallenge__Rsp().set_param(param); + return; + } else if (strcmp("akaAuthReject", param_field) == 0) { + akaAuthReject().set_param(param); + return; + } else if (strcmp("akaSynchronizationFailure", param_field) == 0) { + akaSynchronizationFailure().set_param(param); + return; + } else if (strcmp("akaReauthentication_Req", param_field) == 0) { + akaReauthentication__Req().set_param(param); + return; + } else if (strcmp("akaReauthentication_Rsp", param_field) == 0) { + akaReauthentication__Rsp().set_param(param); + return; + } else if (strcmp("akaClientError", param_field) == 0) { + akaClientError().set_param(param); + return; + } else if (strcmp("akaNotification_Req", param_field) == 0) { + akaNotification__Req().set_param(param); + return; + } else if (strcmp("akaNotification_Rsp", param_field) == 0) { + akaNotification__Rsp().set_param(param); + return; + } else if (strcmp("success", param_field) == 0) { + success().set_param(param); + return; + } else if (strcmp("failure", param_field) == 0) { + failure().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@EAP_TypeDefs.EAP_Message_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "akaId_Req")) { + akaId__Req().set_param(*mp_last); + if (!akaId__Req().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaId_Rsp")) { + akaId__Rsp().set_param(*mp_last); + if (!akaId__Rsp().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaChallenge_Req")) { + akaChallenge__Req().set_param(*mp_last); + if (!akaChallenge__Req().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaChallenge_Rsp")) { + akaChallenge__Rsp().set_param(*mp_last); + if (!akaChallenge__Rsp().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaAuthReject")) { + akaAuthReject().set_param(*mp_last); + if (!akaAuthReject().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaSynchronizationFailure")) { + akaSynchronizationFailure().set_param(*mp_last); + if (!akaSynchronizationFailure().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaReauthentication_Req")) { + akaReauthentication__Req().set_param(*mp_last); + if (!akaReauthentication__Req().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaReauthentication_Rsp")) { + akaReauthentication__Rsp().set_param(*mp_last); + if (!akaReauthentication__Rsp().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaClientError")) { + akaClientError().set_param(*mp_last); + if (!akaClientError().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaNotification_Req")) { + akaNotification__Req().set_param(*mp_last); + if (!akaNotification__Req().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "akaNotification_Rsp")) { + akaNotification__Rsp().set_param(*mp_last); + if (!akaNotification__Rsp().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "success")) { + success().set_param(*mp_last); + if (!success().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "failure")) { + failure().set_param(*mp_last); + if (!failure().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @EAP_TypeDefs.EAP_Message_Type.", last_name); +} + +Module_Param* EAP__Message__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@EAP_TypeDefs.EAP_Message_Type'"); + } + if (strcmp("akaId_Req", param_field) == 0) { + return akaId__Req().get_param(param_name); + } else if (strcmp("akaId_Rsp", param_field) == 0) { + return akaId__Rsp().get_param(param_name); + } else if (strcmp("akaChallenge_Req", param_field) == 0) { + return akaChallenge__Req().get_param(param_name); + } else if (strcmp("akaChallenge_Rsp", param_field) == 0) { + return akaChallenge__Rsp().get_param(param_name); + } else if (strcmp("akaAuthReject", param_field) == 0) { + return akaAuthReject().get_param(param_name); + } else if (strcmp("akaSynchronizationFailure", param_field) == 0) { + return akaSynchronizationFailure().get_param(param_name); + } else if (strcmp("akaReauthentication_Req", param_field) == 0) { + return akaReauthentication__Req().get_param(param_name); + } else if (strcmp("akaReauthentication_Rsp", param_field) == 0) { + return akaReauthentication__Rsp().get_param(param_name); + } else if (strcmp("akaClientError", param_field) == 0) { + return akaClientError().get_param(param_name); + } else if (strcmp("akaNotification_Req", param_field) == 0) { + return akaNotification__Req().get_param(param_name); + } else if (strcmp("akaNotification_Rsp", param_field) == 0) { + return akaNotification__Rsp().get_param(param_name); + } else if (strcmp("success", param_field) == 0) { + return success().get_param(param_name); + } else if (strcmp("failure", param_field) == 0) { + return failure().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `EAP__Message__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_akaId__Req: + mp_field = field_akaId__Req->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaId_Req"))); + break; + case ALT_akaId__Rsp: + mp_field = field_akaId__Rsp->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaId_Rsp"))); + break; + case ALT_akaChallenge__Req: + mp_field = field_akaChallenge__Req->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaChallenge_Req"))); + break; + case ALT_akaChallenge__Rsp: + mp_field = field_akaChallenge__Rsp->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaChallenge_Rsp"))); + break; + case ALT_akaAuthReject: + mp_field = field_akaAuthReject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaAuthReject"))); + break; + case ALT_akaSynchronizationFailure: + mp_field = field_akaSynchronizationFailure->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaSynchronizationFailure"))); + break; + case ALT_akaReauthentication__Req: + mp_field = field_akaReauthentication__Req->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaReauthentication_Req"))); + break; + case ALT_akaReauthentication__Rsp: + mp_field = field_akaReauthentication__Rsp->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaReauthentication_Rsp"))); + break; + case ALT_akaClientError: + mp_field = field_akaClientError->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaClientError"))); + break; + case ALT_akaNotification__Req: + mp_field = field_akaNotification__Req->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaNotification_Req"))); + break; + case ALT_akaNotification__Rsp: + mp_field = field_akaNotification__Rsp->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaNotification_Rsp"))); + break; + case ALT_success: + mp_field = field_success->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("success"))); + break; + case ALT_failure: + mp_field = field_failure->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("failure"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void EAP__Message__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_akaId__Req: +field_akaId__Req->set_implicit_omit(); break; +case ALT_akaId__Rsp: +field_akaId__Rsp->set_implicit_omit(); break; +case ALT_akaChallenge__Req: +field_akaChallenge__Req->set_implicit_omit(); break; +case ALT_akaChallenge__Rsp: +field_akaChallenge__Rsp->set_implicit_omit(); break; +case ALT_akaAuthReject: +field_akaAuthReject->set_implicit_omit(); break; +case ALT_akaSynchronizationFailure: +field_akaSynchronizationFailure->set_implicit_omit(); break; +case ALT_akaReauthentication__Req: +field_akaReauthentication__Req->set_implicit_omit(); break; +case ALT_akaReauthentication__Rsp: +field_akaReauthentication__Rsp->set_implicit_omit(); break; +case ALT_akaClientError: +field_akaClientError->set_implicit_omit(); break; +case ALT_akaNotification__Req: +field_akaNotification__Req->set_implicit_omit(); break; +case ALT_akaNotification__Rsp: +field_akaNotification__Rsp->set_implicit_omit(); break; +case ALT_success: +field_success->set_implicit_omit(); break; +case ALT_failure: +field_failure->set_implicit_omit(); break; +default: break; +} +} + +void EAP__Message__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_akaId__Req: +field_akaId__Req->encode_text(text_buf); +break; +case ALT_akaId__Rsp: +field_akaId__Rsp->encode_text(text_buf); +break; +case ALT_akaChallenge__Req: +field_akaChallenge__Req->encode_text(text_buf); +break; +case ALT_akaChallenge__Rsp: +field_akaChallenge__Rsp->encode_text(text_buf); +break; +case ALT_akaAuthReject: +field_akaAuthReject->encode_text(text_buf); +break; +case ALT_akaSynchronizationFailure: +field_akaSynchronizationFailure->encode_text(text_buf); +break; +case ALT_akaReauthentication__Req: +field_akaReauthentication__Req->encode_text(text_buf); +break; +case ALT_akaReauthentication__Rsp: +field_akaReauthentication__Rsp->encode_text(text_buf); +break; +case ALT_akaClientError: +field_akaClientError->encode_text(text_buf); +break; +case ALT_akaNotification__Req: +field_akaNotification__Req->encode_text(text_buf); +break; +case ALT_akaNotification__Rsp: +field_akaNotification__Rsp->encode_text(text_buf); +break; +case ALT_success: +field_success->encode_text(text_buf); +break; +case ALT_failure: +field_failure->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @EAP_TypeDefs.EAP_Message_Type."); +} +} + +void EAP__Message__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_akaId__Req: +akaId__Req().decode_text(text_buf); +break; +case ALT_akaId__Rsp: +akaId__Rsp().decode_text(text_buf); +break; +case ALT_akaChallenge__Req: +akaChallenge__Req().decode_text(text_buf); +break; +case ALT_akaChallenge__Rsp: +akaChallenge__Rsp().decode_text(text_buf); +break; +case ALT_akaAuthReject: +akaAuthReject().decode_text(text_buf); +break; +case ALT_akaSynchronizationFailure: +akaSynchronizationFailure().decode_text(text_buf); +break; +case ALT_akaReauthentication__Req: +akaReauthentication__Req().decode_text(text_buf); +break; +case ALT_akaReauthentication__Rsp: +akaReauthentication__Rsp().decode_text(text_buf); +break; +case ALT_akaClientError: +akaClientError().decode_text(text_buf); +break; +case ALT_akaNotification__Req: +akaNotification__Req().decode_text(text_buf); +break; +case ALT_akaNotification__Rsp: +akaNotification__Rsp().decode_text(text_buf); +break; +case ALT_success: +success().decode_text(text_buf); +break; +case ALT_failure: +failure().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @EAP_TypeDefs.EAP_Message_Type."); +} +} + +void EAP__Message__Type_template::copy_value(const EAP__Message__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case EAP__Message__Type::ALT_akaId__Req: +single_value.field_akaId__Req = new EAP__Request__Type_template(other_value.akaId__Req()); +break; +case EAP__Message__Type::ALT_akaId__Rsp: +single_value.field_akaId__Rsp = new EAP__Response__Type_template(other_value.akaId__Rsp()); +break; +case EAP__Message__Type::ALT_akaChallenge__Req: +single_value.field_akaChallenge__Req = new EAP__Request__Type_template(other_value.akaChallenge__Req()); +break; +case EAP__Message__Type::ALT_akaChallenge__Rsp: +single_value.field_akaChallenge__Rsp = new EAP__Response__Type_template(other_value.akaChallenge__Rsp()); +break; +case EAP__Message__Type::ALT_akaAuthReject: +single_value.field_akaAuthReject = new EAP__Response__Type_template(other_value.akaAuthReject()); +break; +case EAP__Message__Type::ALT_akaSynchronizationFailure: +single_value.field_akaSynchronizationFailure = new EAP__Response__Type_template(other_value.akaSynchronizationFailure()); +break; +case EAP__Message__Type::ALT_akaReauthentication__Req: +single_value.field_akaReauthentication__Req = new EAP__Request__Type_template(other_value.akaReauthentication__Req()); +break; +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +single_value.field_akaReauthentication__Rsp = new EAP__Response__Type_template(other_value.akaReauthentication__Rsp()); +break; +case EAP__Message__Type::ALT_akaClientError: +single_value.field_akaClientError = new EAP__Response__Type_template(other_value.akaClientError()); +break; +case EAP__Message__Type::ALT_akaNotification__Req: +single_value.field_akaNotification__Req = new EAP__Request__Type_template(other_value.akaNotification__Req()); +break; +case EAP__Message__Type::ALT_akaNotification__Rsp: +single_value.field_akaNotification__Rsp = new EAP__Response__Type_template(other_value.akaNotification__Rsp()); +break; +case EAP__Message__Type::ALT_success: +single_value.field_success = new EAP__Success__Type_template(other_value.success()); +break; +case EAP__Message__Type::ALT_failure: +single_value.field_failure = new EAP__Failure__Type_template(other_value.failure()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @EAP_TypeDefs.EAP_Message_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void EAP__Message__Type_template::copy_template(const EAP__Message__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case EAP__Message__Type::ALT_akaId__Req: +single_value.field_akaId__Req = new EAP__Request__Type_template(*other_value.single_value.field_akaId__Req); +break; +case EAP__Message__Type::ALT_akaId__Rsp: +single_value.field_akaId__Rsp = new EAP__Response__Type_template(*other_value.single_value.field_akaId__Rsp); +break; +case EAP__Message__Type::ALT_akaChallenge__Req: +single_value.field_akaChallenge__Req = new EAP__Request__Type_template(*other_value.single_value.field_akaChallenge__Req); +break; +case EAP__Message__Type::ALT_akaChallenge__Rsp: +single_value.field_akaChallenge__Rsp = new EAP__Response__Type_template(*other_value.single_value.field_akaChallenge__Rsp); +break; +case EAP__Message__Type::ALT_akaAuthReject: +single_value.field_akaAuthReject = new EAP__Response__Type_template(*other_value.single_value.field_akaAuthReject); +break; +case EAP__Message__Type::ALT_akaSynchronizationFailure: +single_value.field_akaSynchronizationFailure = new EAP__Response__Type_template(*other_value.single_value.field_akaSynchronizationFailure); +break; +case EAP__Message__Type::ALT_akaReauthentication__Req: +single_value.field_akaReauthentication__Req = new EAP__Request__Type_template(*other_value.single_value.field_akaReauthentication__Req); +break; +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +single_value.field_akaReauthentication__Rsp = new EAP__Response__Type_template(*other_value.single_value.field_akaReauthentication__Rsp); +break; +case EAP__Message__Type::ALT_akaClientError: +single_value.field_akaClientError = new EAP__Response__Type_template(*other_value.single_value.field_akaClientError); +break; +case EAP__Message__Type::ALT_akaNotification__Req: +single_value.field_akaNotification__Req = new EAP__Request__Type_template(*other_value.single_value.field_akaNotification__Req); +break; +case EAP__Message__Type::ALT_akaNotification__Rsp: +single_value.field_akaNotification__Rsp = new EAP__Response__Type_template(*other_value.single_value.field_akaNotification__Rsp); +break; +case EAP__Message__Type::ALT_success: +single_value.field_success = new EAP__Success__Type_template(*other_value.single_value.field_success); +break; +case EAP__Message__Type::ALT_failure: +single_value.field_failure = new EAP__Failure__Type_template(*other_value.single_value.field_failure); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @EAP_TypeDefs.EAP_Message_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new EAP__Message__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new EAP__Message__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new EAP__Message__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @EAP_TypeDefs.EAP_Message_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +EAP__Message__Type_template::EAP__Message__Type_template(): err_descr(NULL) +{ +} + +EAP__Message__Type_template::EAP__Message__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +EAP__Message__Type_template::EAP__Message__Type_template(const EAP__Message__Type& other_value) +{ +copy_value(other_value); +} + +EAP__Message__Type_template::EAP__Message__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const EAP__Message__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @EAP_TypeDefs.EAP_Message_Type from an unbound optional field."); +} +} + +EAP__Message__Type_template::EAP__Message__Type_template(EAP__Message__Type_template* p_precondition, EAP__Message__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +EAP__Message__Type_template::EAP__Message__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +EAP__Message__Type_template::EAP__Message__Type_template(const EAP__Message__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +EAP__Message__Type_template::~EAP__Message__Type_template() +{ +clean_up(); +} + +void EAP__Message__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case EAP__Message__Type::ALT_akaId__Req: +delete single_value.field_akaId__Req; +break; +case EAP__Message__Type::ALT_akaId__Rsp: +delete single_value.field_akaId__Rsp; +break; +case EAP__Message__Type::ALT_akaChallenge__Req: +delete single_value.field_akaChallenge__Req; +break; +case EAP__Message__Type::ALT_akaChallenge__Rsp: +delete single_value.field_akaChallenge__Rsp; +break; +case EAP__Message__Type::ALT_akaAuthReject: +delete single_value.field_akaAuthReject; +break; +case EAP__Message__Type::ALT_akaSynchronizationFailure: +delete single_value.field_akaSynchronizationFailure; +break; +case EAP__Message__Type::ALT_akaReauthentication__Req: +delete single_value.field_akaReauthentication__Req; +break; +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +delete single_value.field_akaReauthentication__Rsp; +break; +case EAP__Message__Type::ALT_akaClientError: +delete single_value.field_akaClientError; +break; +case EAP__Message__Type::ALT_akaNotification__Req: +delete single_value.field_akaNotification__Req; +break; +case EAP__Message__Type::ALT_akaNotification__Rsp: +delete single_value.field_akaNotification__Rsp; +break; +case EAP__Message__Type::ALT_success: +delete single_value.field_success; +break; +case EAP__Message__Type::ALT_failure: +delete single_value.field_failure; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +EAP__Message__Type_template& EAP__Message__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +EAP__Message__Type_template& EAP__Message__Type_template::operator=(const EAP__Message__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +EAP__Message__Type_template& EAP__Message__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const EAP__Message__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @EAP_TypeDefs.EAP_Message_Type."); +} +return *this; +} + +EAP__Message__Type_template& EAP__Message__Type_template::operator=(const EAP__Message__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean EAP__Message__Type_template::match(const EAP__Message__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +EAP__Message__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == EAP__Message__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case EAP__Message__Type::ALT_akaId__Req: +return single_value.field_akaId__Req->match(other_value.akaId__Req(), legacy); +case EAP__Message__Type::ALT_akaId__Rsp: +return single_value.field_akaId__Rsp->match(other_value.akaId__Rsp(), legacy); +case EAP__Message__Type::ALT_akaChallenge__Req: +return single_value.field_akaChallenge__Req->match(other_value.akaChallenge__Req(), legacy); +case EAP__Message__Type::ALT_akaChallenge__Rsp: +return single_value.field_akaChallenge__Rsp->match(other_value.akaChallenge__Rsp(), legacy); +case EAP__Message__Type::ALT_akaAuthReject: +return single_value.field_akaAuthReject->match(other_value.akaAuthReject(), legacy); +case EAP__Message__Type::ALT_akaSynchronizationFailure: +return single_value.field_akaSynchronizationFailure->match(other_value.akaSynchronizationFailure(), legacy); +case EAP__Message__Type::ALT_akaReauthentication__Req: +return single_value.field_akaReauthentication__Req->match(other_value.akaReauthentication__Req(), legacy); +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +return single_value.field_akaReauthentication__Rsp->match(other_value.akaReauthentication__Rsp(), legacy); +case EAP__Message__Type::ALT_akaClientError: +return single_value.field_akaClientError->match(other_value.akaClientError(), legacy); +case EAP__Message__Type::ALT_akaNotification__Req: +return single_value.field_akaNotification__Req->match(other_value.akaNotification__Req(), legacy); +case EAP__Message__Type::ALT_akaNotification__Rsp: +return single_value.field_akaNotification__Rsp->match(other_value.akaNotification__Rsp(), legacy); +case EAP__Message__Type::ALT_success: +return single_value.field_success->match(other_value.success(), legacy); +case EAP__Message__Type::ALT_failure: +return single_value.field_failure->match(other_value.failure(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @EAP_TypeDefs.EAP_Message_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @EAP_TypeDefs.EAP_Message_Type."); +} +return FALSE; +} + +boolean EAP__Message__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case EAP__Message__Type::ALT_akaId__Req: +return single_value.field_akaId__Req->is_value(); +case EAP__Message__Type::ALT_akaId__Rsp: +return single_value.field_akaId__Rsp->is_value(); +case EAP__Message__Type::ALT_akaChallenge__Req: +return single_value.field_akaChallenge__Req->is_value(); +case EAP__Message__Type::ALT_akaChallenge__Rsp: +return single_value.field_akaChallenge__Rsp->is_value(); +case EAP__Message__Type::ALT_akaAuthReject: +return single_value.field_akaAuthReject->is_value(); +case EAP__Message__Type::ALT_akaSynchronizationFailure: +return single_value.field_akaSynchronizationFailure->is_value(); +case EAP__Message__Type::ALT_akaReauthentication__Req: +return single_value.field_akaReauthentication__Req->is_value(); +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +return single_value.field_akaReauthentication__Rsp->is_value(); +case EAP__Message__Type::ALT_akaClientError: +return single_value.field_akaClientError->is_value(); +case EAP__Message__Type::ALT_akaNotification__Req: +return single_value.field_akaNotification__Req->is_value(); +case EAP__Message__Type::ALT_akaNotification__Rsp: +return single_value.field_akaNotification__Rsp->is_value(); +case EAP__Message__Type::ALT_success: +return single_value.field_success->is_value(); +case EAP__Message__Type::ALT_failure: +return single_value.field_failure->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @EAP_TypeDefs.EAP_Message_Type."); +} +} + +EAP__Message__Type EAP__Message__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +EAP__Message__Type ret_val; +switch (single_value.union_selection) { +case EAP__Message__Type::ALT_akaId__Req: +ret_val.akaId__Req() = single_value.field_akaId__Req->valueof(); +break; +case EAP__Message__Type::ALT_akaId__Rsp: +ret_val.akaId__Rsp() = single_value.field_akaId__Rsp->valueof(); +break; +case EAP__Message__Type::ALT_akaChallenge__Req: +ret_val.akaChallenge__Req() = single_value.field_akaChallenge__Req->valueof(); +break; +case EAP__Message__Type::ALT_akaChallenge__Rsp: +ret_val.akaChallenge__Rsp() = single_value.field_akaChallenge__Rsp->valueof(); +break; +case EAP__Message__Type::ALT_akaAuthReject: +ret_val.akaAuthReject() = single_value.field_akaAuthReject->valueof(); +break; +case EAP__Message__Type::ALT_akaSynchronizationFailure: +ret_val.akaSynchronizationFailure() = single_value.field_akaSynchronizationFailure->valueof(); +break; +case EAP__Message__Type::ALT_akaReauthentication__Req: +ret_val.akaReauthentication__Req() = single_value.field_akaReauthentication__Req->valueof(); +break; +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +ret_val.akaReauthentication__Rsp() = single_value.field_akaReauthentication__Rsp->valueof(); +break; +case EAP__Message__Type::ALT_akaClientError: +ret_val.akaClientError() = single_value.field_akaClientError->valueof(); +break; +case EAP__Message__Type::ALT_akaNotification__Req: +ret_val.akaNotification__Req() = single_value.field_akaNotification__Req->valueof(); +break; +case EAP__Message__Type::ALT_akaNotification__Rsp: +ret_val.akaNotification__Rsp() = single_value.field_akaNotification__Rsp->valueof(); +break; +case EAP__Message__Type::ALT_success: +ret_val.success() = single_value.field_success->valueof(); +break; +case EAP__Message__Type::ALT_failure: +ret_val.failure() = single_value.field_failure->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @EAP_TypeDefs.EAP_Message_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +EAP__Message__Type_template& EAP__Message__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @EAP_TypeDefs.EAP_Message_Type."); +return value_list.list_value[list_index]; +} +void EAP__Message__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @EAP_TypeDefs.EAP_Message_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new EAP__Message__Type_template[list_length]; +} + +EAP__Message__Type::union_selection_type EAP__Message__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type"); +return single_value.union_selection; +} + +EAP__Request__Type_template& EAP__Message__Type_template::akaId__Req() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaId__Req) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaId__Req = new EAP__Request__Type_template(ANY_VALUE); +else single_value.field_akaId__Req = new EAP__Request__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaId__Req; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaId__Req; +} + +const EAP__Request__Type_template& EAP__Message__Type_template::akaId__Req() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaId_Req in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaId__Req) TTCN_error("Accessing non-selected field akaId_Req in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaId__Req; +} + +EAP__Response__Type_template& EAP__Message__Type_template::akaId__Rsp() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaId__Rsp) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaId__Rsp = new EAP__Response__Type_template(ANY_VALUE); +else single_value.field_akaId__Rsp = new EAP__Response__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaId__Rsp; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaId__Rsp; +} + +const EAP__Response__Type_template& EAP__Message__Type_template::akaId__Rsp() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaId_Rsp in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaId__Rsp) TTCN_error("Accessing non-selected field akaId_Rsp in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaId__Rsp; +} + +EAP__Request__Type_template& EAP__Message__Type_template::akaChallenge__Req() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaChallenge__Req) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaChallenge__Req = new EAP__Request__Type_template(ANY_VALUE); +else single_value.field_akaChallenge__Req = new EAP__Request__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaChallenge__Req; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaChallenge__Req; +} + +const EAP__Request__Type_template& EAP__Message__Type_template::akaChallenge__Req() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaChallenge_Req in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaChallenge__Req) TTCN_error("Accessing non-selected field akaChallenge_Req in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaChallenge__Req; +} + +EAP__Response__Type_template& EAP__Message__Type_template::akaChallenge__Rsp() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaChallenge__Rsp) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaChallenge__Rsp = new EAP__Response__Type_template(ANY_VALUE); +else single_value.field_akaChallenge__Rsp = new EAP__Response__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaChallenge__Rsp; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaChallenge__Rsp; +} + +const EAP__Response__Type_template& EAP__Message__Type_template::akaChallenge__Rsp() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaChallenge_Rsp in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaChallenge__Rsp) TTCN_error("Accessing non-selected field akaChallenge_Rsp in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaChallenge__Rsp; +} + +EAP__Response__Type_template& EAP__Message__Type_template::akaAuthReject() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaAuthReject) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaAuthReject = new EAP__Response__Type_template(ANY_VALUE); +else single_value.field_akaAuthReject = new EAP__Response__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaAuthReject; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaAuthReject; +} + +const EAP__Response__Type_template& EAP__Message__Type_template::akaAuthReject() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaAuthReject in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaAuthReject) TTCN_error("Accessing non-selected field akaAuthReject in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaAuthReject; +} + +EAP__Response__Type_template& EAP__Message__Type_template::akaSynchronizationFailure() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaSynchronizationFailure) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaSynchronizationFailure = new EAP__Response__Type_template(ANY_VALUE); +else single_value.field_akaSynchronizationFailure = new EAP__Response__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaSynchronizationFailure; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaSynchronizationFailure; +} + +const EAP__Response__Type_template& EAP__Message__Type_template::akaSynchronizationFailure() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaSynchronizationFailure in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaSynchronizationFailure) TTCN_error("Accessing non-selected field akaSynchronizationFailure in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaSynchronizationFailure; +} + +EAP__Request__Type_template& EAP__Message__Type_template::akaReauthentication__Req() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaReauthentication__Req) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaReauthentication__Req = new EAP__Request__Type_template(ANY_VALUE); +else single_value.field_akaReauthentication__Req = new EAP__Request__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaReauthentication__Req; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaReauthentication__Req; +} + +const EAP__Request__Type_template& EAP__Message__Type_template::akaReauthentication__Req() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaReauthentication_Req in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaReauthentication__Req) TTCN_error("Accessing non-selected field akaReauthentication_Req in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaReauthentication__Req; +} + +EAP__Response__Type_template& EAP__Message__Type_template::akaReauthentication__Rsp() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaReauthentication__Rsp) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaReauthentication__Rsp = new EAP__Response__Type_template(ANY_VALUE); +else single_value.field_akaReauthentication__Rsp = new EAP__Response__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaReauthentication__Rsp; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaReauthentication__Rsp; +} + +const EAP__Response__Type_template& EAP__Message__Type_template::akaReauthentication__Rsp() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaReauthentication_Rsp in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaReauthentication__Rsp) TTCN_error("Accessing non-selected field akaReauthentication_Rsp in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaReauthentication__Rsp; +} + +EAP__Response__Type_template& EAP__Message__Type_template::akaClientError() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaClientError) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaClientError = new EAP__Response__Type_template(ANY_VALUE); +else single_value.field_akaClientError = new EAP__Response__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaClientError; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaClientError; +} + +const EAP__Response__Type_template& EAP__Message__Type_template::akaClientError() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaClientError in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaClientError) TTCN_error("Accessing non-selected field akaClientError in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaClientError; +} + +EAP__Request__Type_template& EAP__Message__Type_template::akaNotification__Req() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaNotification__Req) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaNotification__Req = new EAP__Request__Type_template(ANY_VALUE); +else single_value.field_akaNotification__Req = new EAP__Request__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaNotification__Req; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaNotification__Req; +} + +const EAP__Request__Type_template& EAP__Message__Type_template::akaNotification__Req() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaNotification_Req in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaNotification__Req) TTCN_error("Accessing non-selected field akaNotification_Req in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaNotification__Req; +} + +EAP__Response__Type_template& EAP__Message__Type_template::akaNotification__Rsp() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_akaNotification__Rsp) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_akaNotification__Rsp = new EAP__Response__Type_template(ANY_VALUE); +else single_value.field_akaNotification__Rsp = new EAP__Response__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_akaNotification__Rsp; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_akaNotification__Rsp; +} + +const EAP__Response__Type_template& EAP__Message__Type_template::akaNotification__Rsp() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field akaNotification_Rsp in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_akaNotification__Rsp) TTCN_error("Accessing non-selected field akaNotification_Rsp in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_akaNotification__Rsp; +} + +EAP__Success__Type_template& EAP__Message__Type_template::success() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_success) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_success = new EAP__Success__Type_template(ANY_VALUE); +else single_value.field_success = new EAP__Success__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_success; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_success; +} + +const EAP__Success__Type_template& EAP__Message__Type_template::success() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field success in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_success) TTCN_error("Accessing non-selected field success in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_success; +} + +EAP__Failure__Type_template& EAP__Message__Type_template::failure() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != EAP__Message__Type::ALT_failure) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_failure = new EAP__Failure__Type_template(ANY_VALUE); +else single_value.field_failure = new EAP__Failure__Type_template; +single_value.union_selection = EAP__Message__Type::ALT_failure; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_failure; +} + +const EAP__Failure__Type_template& EAP__Message__Type_template::failure() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field failure in a non-specific template of union type @EAP_TypeDefs.EAP_Message_Type."); +if (single_value.union_selection != EAP__Message__Type::ALT_failure) TTCN_error("Accessing non-selected field failure in a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return *single_value.field_failure; +} + +boolean EAP__Message__Type_template::ischosen(EAP__Message__Type::union_selection_type checked_selection) const +{ +if (checked_selection == EAP__Message__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @EAP_TypeDefs.EAP_Message_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == EAP__Message__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @EAP_TypeDefs.EAP_Message_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @EAP_TypeDefs.EAP_Message_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void EAP__Message__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void EAP__Message__Type_template::set_value(template_sel other_value) { *this = other_value; } +void EAP__Message__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* EAP__Message__Type_template::clone() const { return new EAP__Message__Type_template(*this); } +const TTCN_Typedescriptor_t* EAP__Message__Type_template::get_descriptor() const { return &EAP__Message__Type_descr_; } +boolean EAP__Message__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void EAP__Message__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void EAP__Message__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case EAP__Message__Type::ALT_akaId__Req: +TTCN_Logger::log_event_str("{ akaId_Req := "); +single_value.field_akaId__Req->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaId__Rsp: +TTCN_Logger::log_event_str("{ akaId_Rsp := "); +single_value.field_akaId__Rsp->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaChallenge__Req: +TTCN_Logger::log_event_str("{ akaChallenge_Req := "); +single_value.field_akaChallenge__Req->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaChallenge__Rsp: +TTCN_Logger::log_event_str("{ akaChallenge_Rsp := "); +single_value.field_akaChallenge__Rsp->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaAuthReject: +TTCN_Logger::log_event_str("{ akaAuthReject := "); +single_value.field_akaAuthReject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaSynchronizationFailure: +TTCN_Logger::log_event_str("{ akaSynchronizationFailure := "); +single_value.field_akaSynchronizationFailure->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaReauthentication__Req: +TTCN_Logger::log_event_str("{ akaReauthentication_Req := "); +single_value.field_akaReauthentication__Req->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +TTCN_Logger::log_event_str("{ akaReauthentication_Rsp := "); +single_value.field_akaReauthentication__Rsp->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaClientError: +TTCN_Logger::log_event_str("{ akaClientError := "); +single_value.field_akaClientError->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaNotification__Req: +TTCN_Logger::log_event_str("{ akaNotification_Req := "); +single_value.field_akaNotification__Req->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_akaNotification__Rsp: +TTCN_Logger::log_event_str("{ akaNotification_Rsp := "); +single_value.field_akaNotification__Rsp->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_success: +TTCN_Logger::log_event_str("{ success := "); +single_value.field_success->log(); +TTCN_Logger::log_event_str(" }"); +break; +case EAP__Message__Type::ALT_failure: +TTCN_Logger::log_event_str("{ failure := "); +single_value.field_failure->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void EAP__Message__Type_template::log_match(const EAP__Message__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case EAP__Message__Type::ALT_akaId__Req: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaId_Req"); +single_value.field_akaId__Req->log_match(match_value.akaId__Req(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaId_Req := "); +single_value.field_akaId__Req->log_match(match_value.akaId__Req(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaId__Rsp: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaId_Rsp"); +single_value.field_akaId__Rsp->log_match(match_value.akaId__Rsp(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaId_Rsp := "); +single_value.field_akaId__Rsp->log_match(match_value.akaId__Rsp(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaChallenge__Req: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaChallenge_Req"); +single_value.field_akaChallenge__Req->log_match(match_value.akaChallenge__Req(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaChallenge_Req := "); +single_value.field_akaChallenge__Req->log_match(match_value.akaChallenge__Req(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaChallenge__Rsp: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaChallenge_Rsp"); +single_value.field_akaChallenge__Rsp->log_match(match_value.akaChallenge__Rsp(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaChallenge_Rsp := "); +single_value.field_akaChallenge__Rsp->log_match(match_value.akaChallenge__Rsp(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaAuthReject: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaAuthReject"); +single_value.field_akaAuthReject->log_match(match_value.akaAuthReject(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaAuthReject := "); +single_value.field_akaAuthReject->log_match(match_value.akaAuthReject(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaSynchronizationFailure: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaSynchronizationFailure"); +single_value.field_akaSynchronizationFailure->log_match(match_value.akaSynchronizationFailure(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaSynchronizationFailure := "); +single_value.field_akaSynchronizationFailure->log_match(match_value.akaSynchronizationFailure(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaReauthentication__Req: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaReauthentication_Req"); +single_value.field_akaReauthentication__Req->log_match(match_value.akaReauthentication__Req(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaReauthentication_Req := "); +single_value.field_akaReauthentication__Req->log_match(match_value.akaReauthentication__Req(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaReauthentication_Rsp"); +single_value.field_akaReauthentication__Rsp->log_match(match_value.akaReauthentication__Rsp(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaReauthentication_Rsp := "); +single_value.field_akaReauthentication__Rsp->log_match(match_value.akaReauthentication__Rsp(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaClientError: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaClientError"); +single_value.field_akaClientError->log_match(match_value.akaClientError(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaClientError := "); +single_value.field_akaClientError->log_match(match_value.akaClientError(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaNotification__Req: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaNotification_Req"); +single_value.field_akaNotification__Req->log_match(match_value.akaNotification__Req(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaNotification_Req := "); +single_value.field_akaNotification__Req->log_match(match_value.akaNotification__Req(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_akaNotification__Rsp: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".akaNotification_Rsp"); +single_value.field_akaNotification__Rsp->log_match(match_value.akaNotification__Rsp(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ akaNotification_Rsp := "); +single_value.field_akaNotification__Rsp->log_match(match_value.akaNotification__Rsp(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_success: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".success"); +single_value.field_success->log_match(match_value.success(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ success := "); +single_value.field_success->log_match(match_value.success(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case EAP__Message__Type::ALT_failure: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".failure"); +single_value.field_failure->log_match(match_value.failure(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ failure := "); +single_value.field_failure->log_match(match_value.failure(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void EAP__Message__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case EAP__Message__Type::ALT_akaId__Req: +single_value.field_akaId__Req->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaId__Rsp: +single_value.field_akaId__Rsp->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaChallenge__Req: +single_value.field_akaChallenge__Req->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaChallenge__Rsp: +single_value.field_akaChallenge__Rsp->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaAuthReject: +single_value.field_akaAuthReject->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaSynchronizationFailure: +single_value.field_akaSynchronizationFailure->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaReauthentication__Req: +single_value.field_akaReauthentication__Req->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +single_value.field_akaReauthentication__Rsp->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaClientError: +single_value.field_akaClientError->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaNotification__Req: +single_value.field_akaNotification__Req->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaNotification__Rsp: +single_value.field_akaNotification__Rsp->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_success: +single_value.field_success->encode_text(text_buf); +break; +case EAP__Message__Type::ALT_failure: +single_value.field_failure->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @EAP_TypeDefs.EAP_Message_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @EAP_TypeDefs.EAP_Message_Type."); +} +} + +void EAP__Message__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = EAP__Message__Type::UNBOUND_VALUE; +EAP__Message__Type::union_selection_type new_selection = (EAP__Message__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case EAP__Message__Type::ALT_akaId__Req: +single_value.field_akaId__Req = new EAP__Request__Type_template; +single_value.field_akaId__Req->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaId__Rsp: +single_value.field_akaId__Rsp = new EAP__Response__Type_template; +single_value.field_akaId__Rsp->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaChallenge__Req: +single_value.field_akaChallenge__Req = new EAP__Request__Type_template; +single_value.field_akaChallenge__Req->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaChallenge__Rsp: +single_value.field_akaChallenge__Rsp = new EAP__Response__Type_template; +single_value.field_akaChallenge__Rsp->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaAuthReject: +single_value.field_akaAuthReject = new EAP__Response__Type_template; +single_value.field_akaAuthReject->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaSynchronizationFailure: +single_value.field_akaSynchronizationFailure = new EAP__Response__Type_template; +single_value.field_akaSynchronizationFailure->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaReauthentication__Req: +single_value.field_akaReauthentication__Req = new EAP__Request__Type_template; +single_value.field_akaReauthentication__Req->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +single_value.field_akaReauthentication__Rsp = new EAP__Response__Type_template; +single_value.field_akaReauthentication__Rsp->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaClientError: +single_value.field_akaClientError = new EAP__Response__Type_template; +single_value.field_akaClientError->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaNotification__Req: +single_value.field_akaNotification__Req = new EAP__Request__Type_template; +single_value.field_akaNotification__Req->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_akaNotification__Rsp: +single_value.field_akaNotification__Rsp = new EAP__Response__Type_template; +single_value.field_akaNotification__Rsp->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_success: +single_value.field_success = new EAP__Success__Type_template; +single_value.field_success->decode_text(text_buf); +break; +case EAP__Message__Type::ALT_failure: +single_value.field_failure = new EAP__Failure__Type_template; +single_value.field_failure->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @EAP_TypeDefs.EAP_Message_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new EAP__Message__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @EAP_TypeDefs.EAP_Message_Type."); +} +} + +boolean EAP__Message__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean EAP__Message__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@EAP_TypeDefs.EAP_Message_Type'"); + } + if (strcmp("akaId_Req", param_field) == 0) { + akaId__Req().set_param(param); + return; + } else if (strcmp("akaId_Rsp", param_field) == 0) { + akaId__Rsp().set_param(param); + return; + } else if (strcmp("akaChallenge_Req", param_field) == 0) { + akaChallenge__Req().set_param(param); + return; + } else if (strcmp("akaChallenge_Rsp", param_field) == 0) { + akaChallenge__Rsp().set_param(param); + return; + } else if (strcmp("akaAuthReject", param_field) == 0) { + akaAuthReject().set_param(param); + return; + } else if (strcmp("akaSynchronizationFailure", param_field) == 0) { + akaSynchronizationFailure().set_param(param); + return; + } else if (strcmp("akaReauthentication_Req", param_field) == 0) { + akaReauthentication__Req().set_param(param); + return; + } else if (strcmp("akaReauthentication_Rsp", param_field) == 0) { + akaReauthentication__Rsp().set_param(param); + return; + } else if (strcmp("akaClientError", param_field) == 0) { + akaClientError().set_param(param); + return; + } else if (strcmp("akaNotification_Req", param_field) == 0) { + akaNotification__Req().set_param(param); + return; + } else if (strcmp("akaNotification_Rsp", param_field) == 0) { + akaNotification__Rsp().set_param(param); + return; + } else if (strcmp("success", param_field) == 0) { + success().set_param(param); + return; + } else if (strcmp("failure", param_field) == 0) { + failure().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@EAP_TypeDefs.EAP_Message_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + EAP__Message__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@EAP_TypeDefs.EAP_Message_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "akaId_Req")) { + akaId__Req().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaId_Rsp")) { + akaId__Rsp().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaChallenge_Req")) { + akaChallenge__Req().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaChallenge_Rsp")) { + akaChallenge__Rsp().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaAuthReject")) { + akaAuthReject().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaSynchronizationFailure")) { + akaSynchronizationFailure().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaReauthentication_Req")) { + akaReauthentication__Req().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaReauthentication_Rsp")) { + akaReauthentication__Rsp().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaClientError")) { + akaClientError().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaNotification_Req")) { + akaNotification__Req().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "akaNotification_Rsp")) { + akaNotification__Rsp().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "success")) { + success().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "failure")) { + failure().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @EAP_TypeDefs.EAP_Message_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + EAP__Message__Type_template* precondition = new EAP__Message__Type_template; + precondition->set_param(*m_p->get_elem(0)); + EAP__Message__Type_template* implied_template = new EAP__Message__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = EAP__Message__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@EAP_TypeDefs.EAP_Message_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* EAP__Message__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@EAP_TypeDefs.EAP_Message_Type'"); + } + if (strcmp("akaId_Req", param_field) == 0) { + return akaId__Req().get_param(param_name); + } else if (strcmp("akaId_Rsp", param_field) == 0) { + return akaId__Rsp().get_param(param_name); + } else if (strcmp("akaChallenge_Req", param_field) == 0) { + return akaChallenge__Req().get_param(param_name); + } else if (strcmp("akaChallenge_Rsp", param_field) == 0) { + return akaChallenge__Rsp().get_param(param_name); + } else if (strcmp("akaAuthReject", param_field) == 0) { + return akaAuthReject().get_param(param_name); + } else if (strcmp("akaSynchronizationFailure", param_field) == 0) { + return akaSynchronizationFailure().get_param(param_name); + } else if (strcmp("akaReauthentication_Req", param_field) == 0) { + return akaReauthentication__Req().get_param(param_name); + } else if (strcmp("akaReauthentication_Rsp", param_field) == 0) { + return akaReauthentication__Rsp().get_param(param_name); + } else if (strcmp("akaClientError", param_field) == 0) { + return akaClientError().get_param(param_name); + } else if (strcmp("akaNotification_Req", param_field) == 0) { + return akaNotification__Req().get_param(param_name); + } else if (strcmp("akaNotification_Rsp", param_field) == 0) { + return akaNotification__Rsp().get_param(param_name); + } else if (strcmp("success", param_field) == 0) { + return success().get_param(param_name); + } else if (strcmp("failure", param_field) == 0) { + return failure().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `EAP__Message__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case EAP__Message__Type::ALT_akaId__Req: + mp_field = single_value.field_akaId__Req->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaId_Req"))); + break; + case EAP__Message__Type::ALT_akaId__Rsp: + mp_field = single_value.field_akaId__Rsp->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaId_Rsp"))); + break; + case EAP__Message__Type::ALT_akaChallenge__Req: + mp_field = single_value.field_akaChallenge__Req->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaChallenge_Req"))); + break; + case EAP__Message__Type::ALT_akaChallenge__Rsp: + mp_field = single_value.field_akaChallenge__Rsp->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaChallenge_Rsp"))); + break; + case EAP__Message__Type::ALT_akaAuthReject: + mp_field = single_value.field_akaAuthReject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaAuthReject"))); + break; + case EAP__Message__Type::ALT_akaSynchronizationFailure: + mp_field = single_value.field_akaSynchronizationFailure->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaSynchronizationFailure"))); + break; + case EAP__Message__Type::ALT_akaReauthentication__Req: + mp_field = single_value.field_akaReauthentication__Req->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaReauthentication_Req"))); + break; + case EAP__Message__Type::ALT_akaReauthentication__Rsp: + mp_field = single_value.field_akaReauthentication__Rsp->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaReauthentication_Rsp"))); + break; + case EAP__Message__Type::ALT_akaClientError: + mp_field = single_value.field_akaClientError->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaClientError"))); + break; + case EAP__Message__Type::ALT_akaNotification__Req: + mp_field = single_value.field_akaNotification__Req->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaNotification_Req"))); + break; + case EAP__Message__Type::ALT_akaNotification__Rsp: + mp_field = single_value.field_akaNotification__Rsp->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("akaNotification_Rsp"))); + break; + case EAP__Message__Type::ALT_success: + mp_field = single_value.field_success->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("success"))); + break; + case EAP__Message__Type::ALT_failure: + mp_field = single_value.field_failure->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("failure"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void EAP__Message__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case EAP__Message__Type::ALT_akaId__Req: +single_value.field_akaId__Req->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaId__Rsp: +single_value.field_akaId__Rsp->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaChallenge__Req: +single_value.field_akaChallenge__Req->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaChallenge__Rsp: +single_value.field_akaChallenge__Rsp->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaAuthReject: +single_value.field_akaAuthReject->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaSynchronizationFailure: +single_value.field_akaSynchronizationFailure->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaReauthentication__Req: +single_value.field_akaReauthentication__Req->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaReauthentication__Rsp: +single_value.field_akaReauthentication__Rsp->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaClientError: +single_value.field_akaClientError->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaNotification__Req: +single_value.field_akaNotification__Req->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_akaNotification__Rsp: +single_value.field_akaNotification__Rsp->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_success: +single_value.field_success->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +case EAP__Message__Type::ALT_failure: +single_value.field_failure->check_restriction(t_res, t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @EAP_TypeDefs.EAP_Message_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@EAP_TypeDefs.EAP_Message_Type"); +} + +void EAP__Attributes::init_vec() { fld_vec[0]=&field_rand; fld_vec[1]=&field_autn; fld_vec[2]=&field_res; fld_vec[3]=&field_auts; fld_vec[4]=&field_padd; fld_vec[5]=&field_permIdReq; fld_vec[6]=&field_mac; fld_vec[7]=&field_notification; fld_vec[8]=&field_anyIdReq; fld_vec[9]=&field_id; fld_vec[10]=&field_versionList; fld_vec[11]=&field_selectedVersion; fld_vec[12]=&field_fullauthIdReq; fld_vec[13]=&field_counter; fld_vec[14]=&field_counterTooSmall; fld_vec[15]=&field_nonceS; fld_vec[16]=&field_clientErrorCode; fld_vec[17]=&field_iv; fld_vec[18]=&field_nextPseudonym; fld_vec[19]=&field_nextReauthId; fld_vec[20]=&field_checkCode; fld_vec[21]=&field_resultInd; fld_vec[22]=&field_kdfInput; fld_vec[23]=&field_kdf; } + +EAP__Attributes::EAP__Attributes() : Record_Type() { init_vec(); } + +EAP__Attributes::EAP__Attributes(const EAP__Attributes& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_rand.is_bound() ) + field_rand = other_value.field_rand; +if (other_value.field_autn.is_bound() ) + field_autn = other_value.field_autn; +if (other_value.field_res.is_bound() ) + field_res = other_value.field_res; +if (other_value.field_auts.is_bound() ) + field_auts = other_value.field_auts; +if (other_value.field_padd.is_bound() ) + field_padd = other_value.field_padd; +if (other_value.field_permIdReq.is_bound() ) + field_permIdReq = other_value.field_permIdReq; +if (other_value.field_mac.is_bound() ) + field_mac = other_value.field_mac; +if (other_value.field_notification.is_bound() ) + field_notification = other_value.field_notification; +if (other_value.field_anyIdReq.is_bound() ) + field_anyIdReq = other_value.field_anyIdReq; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_versionList.is_bound() ) + field_versionList = other_value.field_versionList; +if (other_value.field_selectedVersion.is_bound() ) + field_selectedVersion = other_value.field_selectedVersion; +if (other_value.field_fullauthIdReq.is_bound() ) + field_fullauthIdReq = other_value.field_fullauthIdReq; +if (other_value.field_counter.is_bound() ) + field_counter = other_value.field_counter; +if (other_value.field_counterTooSmall.is_bound() ) + field_counterTooSmall = other_value.field_counterTooSmall; +if (other_value.field_nonceS.is_bound() ) + field_nonceS = other_value.field_nonceS; +if (other_value.field_clientErrorCode.is_bound() ) + field_clientErrorCode = other_value.field_clientErrorCode; +if (other_value.field_iv.is_bound() ) + field_iv = other_value.field_iv; +if (other_value.field_nextPseudonym.is_bound() ) + field_nextPseudonym = other_value.field_nextPseudonym; +if (other_value.field_nextReauthId.is_bound() ) + field_nextReauthId = other_value.field_nextReauthId; +if (other_value.field_checkCode.is_bound() ) + field_checkCode = other_value.field_checkCode; +if (other_value.field_resultInd.is_bound() ) + field_resultInd = other_value.field_resultInd; +if (other_value.field_kdfInput.is_bound() ) + field_kdfInput = other_value.field_kdfInput; +if (other_value.field_kdf.is_bound() ) + field_kdf = other_value.field_kdf; +init_vec(); +} + +EAP__Attributes::EAP__Attributes(const OPTIONAL& par_rand, + const OPTIONAL& par_autn, + const OPTIONAL& par_res, + const OPTIONAL& par_auts, + const OPTIONAL& par_padd, + const OPTIONAL& par_permIdReq, + const OPTIONAL& par_mac, + const OPTIONAL& par_notification, + const OPTIONAL& par_anyIdReq, + const OPTIONAL& par_id, + const OPTIONAL& par_versionList, + const OPTIONAL& par_selectedVersion, + const OPTIONAL& par_fullauthIdReq, + const OPTIONAL& par_counter, + const OPTIONAL& par_counterTooSmall, + const OPTIONAL& par_nonceS, + const OPTIONAL& par_clientErrorCode, + const OPTIONAL& par_iv, + const OPTIONAL& par_nextPseudonym, + const OPTIONAL& par_nextReauthId, + const OPTIONAL& par_checkCode, + const OPTIONAL& par_resultInd, + const OPTIONAL& par_kdfInput, + const OPTIONAL& par_kdf) : field_rand(par_rand), + field_autn(par_autn), + field_res(par_res), + field_auts(par_auts), + field_padd(par_padd), + field_permIdReq(par_permIdReq), + field_mac(par_mac), + field_notification(par_notification), + field_anyIdReq(par_anyIdReq), + field_id(par_id), + field_versionList(par_versionList), + field_selectedVersion(par_selectedVersion), + field_fullauthIdReq(par_fullauthIdReq), + field_counter(par_counter), + field_counterTooSmall(par_counterTooSmall), + field_nonceS(par_nonceS), + field_clientErrorCode(par_clientErrorCode), + field_iv(par_iv), + field_nextPseudonym(par_nextPseudonym), + field_nextReauthId(par_nextReauthId), + field_checkCode(par_checkCode), + field_resultInd(par_resultInd), + field_kdfInput(par_kdfInput), + field_kdf(par_kdf) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__Attributes::get_descriptor() const { return &EAP__Attributes_descr_; } +const TTCN_Typedescriptor_t* EAP__Attributes::fld_descriptors[] = { &EAP__AT__RAND_descr_, &EAP__AT__AUTN_descr_, &EAP__AT__RES_descr_, &EAP__AT__AUTS_descr_, &EAP__AT__PADDING_descr_, &EAP__AT__PERMANENT__ID__REQ_descr_, &EAP__AT__MAC_descr_, &EAP__AT__NOTIFICATION_descr_, &EAP__AT__ANY__ID__REQ_descr_, &EAP__AT__IDENTITY_descr_, &EAP__AT__VERSION__LIST_descr_, &EAP__AT__SELECTED__VERSION_descr_, &EAP__AT__FULLAUTH__ID__REQ_descr_, &EAP__AT__COUNTER_descr_, &EAP__AT__COUNTER__TOO__SMALL_descr_, &EAP__AT__NONCE__S_descr_, &EAP__AT__CLIENT__ERROR__CODE_descr_, &EAP__AT__IV_descr_, &EAP__AT__NEXT__PSEUDONYM_descr_, &EAP__AT__NEXT__REAUTH__ID_descr_, &EAP__AT__CHECKCODE_descr_, &EAP__AT__RESULT__IND_descr_, &EAP__AT__KDF__INPUT_descr_, &EAP__AT__KDF_descr_ }; +const TTCN_Typedescriptor_t* EAP__Attributes::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__Attributes::fld_names[] = { "rand", "autn", "res", "auts", "padd", "permIdReq", "mac", "notification", "anyIdReq", "id", "versionList", "selectedVersion", "fullauthIdReq", "counter", "counterTooSmall", "nonceS", "clientErrorCode", "iv", "nextPseudonym", "nextReauthId", "checkCode", "resultInd", "kdfInput", "kdf" }; +const char* EAP__Attributes::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EAP__Attributes::optional_indexes[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, -1 }; +const int* EAP__Attributes::get_optional_indexes() const { return optional_indexes; } + +const int EAP__Attributes::optional_indexes_asn[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, -1 }; +const int* EAP__Attributes::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EAP__Attributes_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 24; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new EAP__AT__RAND_template(ANY_OR_OMIT) : new EAP__AT__RAND_template; +single_value.value_elements[1] = was_any ? new EAP__AT__AUTN_template(ANY_OR_OMIT) : new EAP__AT__AUTN_template; +single_value.value_elements[2] = was_any ? new EAP__AT__RES_template(ANY_OR_OMIT) : new EAP__AT__RES_template; +single_value.value_elements[3] = was_any ? new EAP__AT__AUTS_template(ANY_OR_OMIT) : new EAP__AT__AUTS_template; +single_value.value_elements[4] = was_any ? new EAP__AT__PADDING_template(ANY_OR_OMIT) : new EAP__AT__PADDING_template; +single_value.value_elements[5] = was_any ? new EAP__AT__PERMANENT__ID__REQ_template(ANY_OR_OMIT) : new EAP__AT__PERMANENT__ID__REQ_template; +single_value.value_elements[6] = was_any ? new EAP__AT__MAC_template(ANY_OR_OMIT) : new EAP__AT__MAC_template; +single_value.value_elements[7] = was_any ? new EAP__AT__NOTIFICATION_template(ANY_OR_OMIT) : new EAP__AT__NOTIFICATION_template; +single_value.value_elements[8] = was_any ? new EAP__AT__ANY__ID__REQ_template(ANY_OR_OMIT) : new EAP__AT__ANY__ID__REQ_template; +single_value.value_elements[9] = was_any ? new EAP__AT__IDENTITY_template(ANY_OR_OMIT) : new EAP__AT__IDENTITY_template; +single_value.value_elements[10] = was_any ? new EAP__AT__VERSION__LIST_template(ANY_OR_OMIT) : new EAP__AT__VERSION__LIST_template; +single_value.value_elements[11] = was_any ? new EAP__AT__SELECTED__VERSION_template(ANY_OR_OMIT) : new EAP__AT__SELECTED__VERSION_template; +single_value.value_elements[12] = was_any ? new EAP__AT__FULLAUTH__ID__REQ_template(ANY_OR_OMIT) : new EAP__AT__FULLAUTH__ID__REQ_template; +single_value.value_elements[13] = was_any ? new EAP__AT__COUNTER_template(ANY_OR_OMIT) : new EAP__AT__COUNTER_template; +single_value.value_elements[14] = was_any ? new EAP__AT__COUNTER__TOO__SMALL_template(ANY_OR_OMIT) : new EAP__AT__COUNTER__TOO__SMALL_template; +single_value.value_elements[15] = was_any ? new EAP__AT__NONCE__S_template(ANY_OR_OMIT) : new EAP__AT__NONCE__S_template; +single_value.value_elements[16] = was_any ? new EAP__AT__CLIENT__ERROR__CODE_template(ANY_OR_OMIT) : new EAP__AT__CLIENT__ERROR__CODE_template; +single_value.value_elements[17] = was_any ? new EAP__AT__IV_template(ANY_OR_OMIT) : new EAP__AT__IV_template; +single_value.value_elements[18] = was_any ? new EAP__AT__NEXT__PSEUDONYM_template(ANY_OR_OMIT) : new EAP__AT__NEXT__PSEUDONYM_template; +single_value.value_elements[19] = was_any ? new EAP__AT__NEXT__REAUTH__ID_template(ANY_OR_OMIT) : new EAP__AT__NEXT__REAUTH__ID_template; +single_value.value_elements[20] = was_any ? new EAP__AT__CHECKCODE_template(ANY_OR_OMIT) : new EAP__AT__CHECKCODE_template; +single_value.value_elements[21] = was_any ? new EAP__AT__RESULT__IND_template(ANY_OR_OMIT) : new EAP__AT__RESULT__IND_template; +single_value.value_elements[22] = was_any ? new EAP__AT__KDF__INPUT_template(ANY_OR_OMIT) : new EAP__AT__KDF__INPUT_template; +single_value.value_elements[23] = was_any ? new EAP__AT__KDF_template(ANY_OR_OMIT) : new EAP__AT__KDF_template; +} +} + +EAP__Attributes_template::EAP__Attributes_template(EAP__Attributes_template* p_precondition, EAP__Attributes_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__Attributes_template::EAP__Attributes_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__Attributes_template::~EAP__Attributes_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__Attributes_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__Attributes* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__Attributes_template& EAP__Attributes_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__Attributes_template& EAP__Attributes_template::operator=(const EAP__Attributes& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__Attributes_template& EAP__Attributes_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__Attributes_template& EAP__Attributes_template::operator=(const EAP__Attributes_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__Attributes EAP__Attributes_template::valueof() const +{ +EAP__Attributes ret_val; +valueofv(&ret_val); +return ret_val; +} + +EAP__AT__RAND_template& EAP__Attributes_template::rand() { return *(static_cast(get_at(0))); } +const EAP__AT__RAND_template& EAP__Attributes_template::rand() const { return *(static_cast(get_at(0))); } +EAP__AT__AUTN_template& EAP__Attributes_template::autn() { return *(static_cast(get_at(1))); } +const EAP__AT__AUTN_template& EAP__Attributes_template::autn() const { return *(static_cast(get_at(1))); } +EAP__AT__RES_template& EAP__Attributes_template::res() { return *(static_cast(get_at(2))); } +const EAP__AT__RES_template& EAP__Attributes_template::res() const { return *(static_cast(get_at(2))); } +EAP__AT__AUTS_template& EAP__Attributes_template::auts() { return *(static_cast(get_at(3))); } +const EAP__AT__AUTS_template& EAP__Attributes_template::auts() const { return *(static_cast(get_at(3))); } +EAP__AT__PADDING_template& EAP__Attributes_template::padd() { return *(static_cast(get_at(4))); } +const EAP__AT__PADDING_template& EAP__Attributes_template::padd() const { return *(static_cast(get_at(4))); } +EAP__AT__PERMANENT__ID__REQ_template& EAP__Attributes_template::permIdReq() { return *(static_cast(get_at(5))); } +const EAP__AT__PERMANENT__ID__REQ_template& EAP__Attributes_template::permIdReq() const { return *(static_cast(get_at(5))); } +EAP__AT__MAC_template& EAP__Attributes_template::mac() { return *(static_cast(get_at(6))); } +const EAP__AT__MAC_template& EAP__Attributes_template::mac() const { return *(static_cast(get_at(6))); } +EAP__AT__NOTIFICATION_template& EAP__Attributes_template::notification() { return *(static_cast(get_at(7))); } +const EAP__AT__NOTIFICATION_template& EAP__Attributes_template::notification() const { return *(static_cast(get_at(7))); } +EAP__AT__ANY__ID__REQ_template& EAP__Attributes_template::anyIdReq() { return *(static_cast(get_at(8))); } +const EAP__AT__ANY__ID__REQ_template& EAP__Attributes_template::anyIdReq() const { return *(static_cast(get_at(8))); } +EAP__AT__IDENTITY_template& EAP__Attributes_template::id() { return *(static_cast(get_at(9))); } +const EAP__AT__IDENTITY_template& EAP__Attributes_template::id() const { return *(static_cast(get_at(9))); } +EAP__AT__VERSION__LIST_template& EAP__Attributes_template::versionList() { return *(static_cast(get_at(10))); } +const EAP__AT__VERSION__LIST_template& EAP__Attributes_template::versionList() const { return *(static_cast(get_at(10))); } +EAP__AT__SELECTED__VERSION_template& EAP__Attributes_template::selectedVersion() { return *(static_cast(get_at(11))); } +const EAP__AT__SELECTED__VERSION_template& EAP__Attributes_template::selectedVersion() const { return *(static_cast(get_at(11))); } +EAP__AT__FULLAUTH__ID__REQ_template& EAP__Attributes_template::fullauthIdReq() { return *(static_cast(get_at(12))); } +const EAP__AT__FULLAUTH__ID__REQ_template& EAP__Attributes_template::fullauthIdReq() const { return *(static_cast(get_at(12))); } +EAP__AT__COUNTER_template& EAP__Attributes_template::counter() { return *(static_cast(get_at(13))); } +const EAP__AT__COUNTER_template& EAP__Attributes_template::counter() const { return *(static_cast(get_at(13))); } +EAP__AT__COUNTER__TOO__SMALL_template& EAP__Attributes_template::counterTooSmall() { return *(static_cast(get_at(14))); } +const EAP__AT__COUNTER__TOO__SMALL_template& EAP__Attributes_template::counterTooSmall() const { return *(static_cast(get_at(14))); } +EAP__AT__NONCE__S_template& EAP__Attributes_template::nonceS() { return *(static_cast(get_at(15))); } +const EAP__AT__NONCE__S_template& EAP__Attributes_template::nonceS() const { return *(static_cast(get_at(15))); } +EAP__AT__CLIENT__ERROR__CODE_template& EAP__Attributes_template::clientErrorCode() { return *(static_cast(get_at(16))); } +const EAP__AT__CLIENT__ERROR__CODE_template& EAP__Attributes_template::clientErrorCode() const { return *(static_cast(get_at(16))); } +EAP__AT__IV_template& EAP__Attributes_template::iv() { return *(static_cast(get_at(17))); } +const EAP__AT__IV_template& EAP__Attributes_template::iv() const { return *(static_cast(get_at(17))); } +EAP__AT__NEXT__PSEUDONYM_template& EAP__Attributes_template::nextPseudonym() { return *(static_cast(get_at(18))); } +const EAP__AT__NEXT__PSEUDONYM_template& EAP__Attributes_template::nextPseudonym() const { return *(static_cast(get_at(18))); } +EAP__AT__NEXT__REAUTH__ID_template& EAP__Attributes_template::nextReauthId() { return *(static_cast(get_at(19))); } +const EAP__AT__NEXT__REAUTH__ID_template& EAP__Attributes_template::nextReauthId() const { return *(static_cast(get_at(19))); } +EAP__AT__CHECKCODE_template& EAP__Attributes_template::checkCode() { return *(static_cast(get_at(20))); } +const EAP__AT__CHECKCODE_template& EAP__Attributes_template::checkCode() const { return *(static_cast(get_at(20))); } +EAP__AT__RESULT__IND_template& EAP__Attributes_template::resultInd() { return *(static_cast(get_at(21))); } +const EAP__AT__RESULT__IND_template& EAP__Attributes_template::resultInd() const { return *(static_cast(get_at(21))); } +EAP__AT__KDF__INPUT_template& EAP__Attributes_template::kdfInput() { return *(static_cast(get_at(22))); } +const EAP__AT__KDF__INPUT_template& EAP__Attributes_template::kdfInput() const { return *(static_cast(get_at(22))); } +EAP__AT__KDF_template& EAP__Attributes_template::kdf() { return *(static_cast(get_at(23))); } +const EAP__AT__KDF_template& EAP__Attributes_template::kdf() const { return *(static_cast(get_at(23))); } +const TTCN_Typedescriptor_t* EAP__Attributes_template::get_descriptor() const { return &EAP__Attributes_descr_; } +const char* EAP__Attributes_template::fld_name(int p_index) const { return EAP__Attributes::fld_names[p_index]; } +void EAP__AT__RAND::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; fld_vec[3]=&field_rand; } + +EAP__AT__RAND::EAP__AT__RAND() : Record_Type() { init_vec(); } + +EAP__AT__RAND::EAP__AT__RAND(const EAP__AT__RAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_rand.is_bound() ) + field_rand = other_value.field_rand; +init_vec(); +} + +EAP__AT__RAND::EAP__AT__RAND(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_rand) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved), + field_rand(par_rand) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__RAND::get_descriptor() const { return &EAP__AT__RAND_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__RAND::fld_descriptors[] = { &EAP__AT__RAND_attributeType_descr_, &EAP__AT__RAND_len_descr_, &CommonDefs::O2__Type_descr_, &CommonDefs::O16__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__RAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__RAND::fld_names[] = { "attributeType", "len", "reserved", "rand" }; +const char* EAP__AT__RAND::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__RAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__RAND_template::EAP__AT__RAND_template(EAP__AT__RAND_template* p_precondition, EAP__AT__RAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__RAND_template::EAP__AT__RAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__RAND_template::~EAP__AT__RAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__RAND_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__RAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__RAND_template& EAP__AT__RAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__RAND_template& EAP__AT__RAND_template::operator=(const EAP__AT__RAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__RAND_template& EAP__AT__RAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__RAND_template& EAP__AT__RAND_template::operator=(const EAP__AT__RAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__RAND EAP__AT__RAND_template::valueof() const +{ +EAP__AT__RAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__RAND_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__RAND_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__RAND_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__RAND_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__RAND_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__RAND_template::reserved() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__RAND_template::rand() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__RAND_template::rand() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__RAND_template::get_descriptor() const { return &EAP__AT__RAND_descr_; } +const char* EAP__AT__RAND_template::fld_name(int p_index) const { return EAP__AT__RAND::fld_names[p_index]; } +void EAP__AT__AUTN::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; fld_vec[3]=&field_autn; } + +EAP__AT__AUTN::EAP__AT__AUTN() : Record_Type() { init_vec(); } + +EAP__AT__AUTN::EAP__AT__AUTN(const EAP__AT__AUTN& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_autn.is_bound() ) + field_autn = other_value.field_autn; +init_vec(); +} + +EAP__AT__AUTN::EAP__AT__AUTN(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_autn) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved), + field_autn(par_autn) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__AUTN::get_descriptor() const { return &EAP__AT__AUTN_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__AUTN::fld_descriptors[] = { &EAP__AT__AUTN_attributeType_descr_, &EAP__AT__AUTN_len_descr_, &CommonDefs::O2__Type_descr_, &CommonDefs::O16__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__AUTN::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__AUTN::fld_names[] = { "attributeType", "len", "reserved", "autn" }; +const char* EAP__AT__AUTN::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__AUTN_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__AUTN_template::EAP__AT__AUTN_template(EAP__AT__AUTN_template* p_precondition, EAP__AT__AUTN_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__AUTN_template::EAP__AT__AUTN_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__AUTN_template::~EAP__AT__AUTN_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__AUTN_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__AUTN* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__AUTN_template& EAP__AT__AUTN_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__AUTN_template& EAP__AT__AUTN_template::operator=(const EAP__AT__AUTN& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__AUTN_template& EAP__AT__AUTN_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__AUTN_template& EAP__AT__AUTN_template::operator=(const EAP__AT__AUTN_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__AUTN EAP__AT__AUTN_template::valueof() const +{ +EAP__AT__AUTN ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__AUTN_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__AUTN_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__AUTN_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__AUTN_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__AUTN_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__AUTN_template::reserved() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__AUTN_template::autn() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__AUTN_template::autn() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__AUTN_template::get_descriptor() const { return &EAP__AT__AUTN_descr_; } +const char* EAP__AT__AUTN_template::fld_name(int p_index) const { return EAP__AT__AUTN::fld_names[p_index]; } +void EAP__AT__RES::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reslen; fld_vec[3]=&field_res; } + +EAP__AT__RES::EAP__AT__RES() : Record_Type() { init_vec(); } + +EAP__AT__RES::EAP__AT__RES(const EAP__AT__RES& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reslen.is_bound() ) + field_reslen = other_value.field_reslen; +if (other_value.field_res.is_bound() ) + field_res = other_value.field_res; +init_vec(); +} + +EAP__AT__RES::EAP__AT__RES(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reslen, + const OCTETSTRING& par_res) : field_attributeType(par_attributeType), + field_len(par_len), + field_reslen(par_reslen), + field_res(par_res) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__RES::get_descriptor() const { return &EAP__AT__RES_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__RES::fld_descriptors[] = { &EAP__AT__RES_attributeType_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__RES::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__RES::fld_names[] = { "attributeType", "len", "reslen", "res" }; +const char* EAP__AT__RES::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__RES_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__RES_template::EAP__AT__RES_template(EAP__AT__RES_template* p_precondition, EAP__AT__RES_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__RES_template::EAP__AT__RES_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__RES_template::~EAP__AT__RES_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__RES_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__RES* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__RES_template& EAP__AT__RES_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__RES_template& EAP__AT__RES_template::operator=(const EAP__AT__RES& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__RES_template& EAP__AT__RES_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__RES_template& EAP__AT__RES_template::operator=(const EAP__AT__RES_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__RES EAP__AT__RES_template::valueof() const +{ +EAP__AT__RES ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__RES_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__RES_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__RES_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__RES_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__RES_template::reslen() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__RES_template::reslen() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__RES_template::res() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__RES_template::res() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__RES_template::get_descriptor() const { return &EAP__AT__RES_descr_; } +const char* EAP__AT__RES_template::fld_name(int p_index) const { return EAP__AT__RES::fld_names[p_index]; } +void EAP__AT__AUTS::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_auts; } + +EAP__AT__AUTS::EAP__AT__AUTS() : Record_Type() { init_vec(); } + +EAP__AT__AUTS::EAP__AT__AUTS(const EAP__AT__AUTS& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_auts.is_bound() ) + field_auts = other_value.field_auts; +init_vec(); +} + +EAP__AT__AUTS::EAP__AT__AUTS(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_auts) : field_attributeType(par_attributeType), + field_len(par_len), + field_auts(par_auts) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__AUTS::get_descriptor() const { return &EAP__AT__AUTS_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__AUTS::fld_descriptors[] = { &EAP__AT__AUTS_attributeType_descr_, &EAP__AT__AUTS_len_descr_, &CommonDefs::O14__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__AUTS::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__AUTS::fld_names[] = { "attributeType", "len", "auts" }; +const char* EAP__AT__AUTS::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__AUTS_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__AUTS_template::EAP__AT__AUTS_template(EAP__AT__AUTS_template* p_precondition, EAP__AT__AUTS_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__AUTS_template::EAP__AT__AUTS_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__AUTS_template::~EAP__AT__AUTS_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__AUTS_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__AUTS* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__AUTS_template& EAP__AT__AUTS_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__AUTS_template& EAP__AT__AUTS_template::operator=(const EAP__AT__AUTS& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__AUTS_template& EAP__AT__AUTS_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__AUTS_template& EAP__AT__AUTS_template::operator=(const EAP__AT__AUTS_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__AUTS EAP__AT__AUTS_template::valueof() const +{ +EAP__AT__AUTS ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__AUTS_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__AUTS_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__AUTS_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__AUTS_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__AUTS_template::auts() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__AUTS_template::auts() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__AUTS_template::get_descriptor() const { return &EAP__AT__AUTS_descr_; } +const char* EAP__AT__AUTS_template::fld_name(int p_index) const { return EAP__AT__AUTS::fld_names[p_index]; } +void EAP__AT__PADDING::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_padding; } + +EAP__AT__PADDING::EAP__AT__PADDING() : Record_Type() { init_vec(); } + +EAP__AT__PADDING::EAP__AT__PADDING(const EAP__AT__PADDING& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_padding.is_bound() ) + field_padding = other_value.field_padding; +init_vec(); +} + +EAP__AT__PADDING::EAP__AT__PADDING(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_padding) : field_attributeType(par_attributeType), + field_len(par_len), + field_padding(par_padding) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__PADDING::get_descriptor() const { return &EAP__AT__PADDING_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__PADDING::fld_descriptors[] = { &EAP__AT__PADDING_attributeType_descr_, &CommonDefs::O1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__PADDING::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__PADDING::fld_names[] = { "attributeType", "len", "padding" }; +const char* EAP__AT__PADDING::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__PADDING_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__PADDING_template::EAP__AT__PADDING_template(EAP__AT__PADDING_template* p_precondition, EAP__AT__PADDING_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__PADDING_template::EAP__AT__PADDING_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__PADDING_template::~EAP__AT__PADDING_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__PADDING_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__PADDING* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__PADDING_template& EAP__AT__PADDING_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__PADDING_template& EAP__AT__PADDING_template::operator=(const EAP__AT__PADDING& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__PADDING_template& EAP__AT__PADDING_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__PADDING_template& EAP__AT__PADDING_template::operator=(const EAP__AT__PADDING_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__PADDING EAP__AT__PADDING_template::valueof() const +{ +EAP__AT__PADDING ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__PADDING_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__PADDING_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__PADDING_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__PADDING_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__PADDING_template::padding() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__PADDING_template::padding() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__PADDING_template::get_descriptor() const { return &EAP__AT__PADDING_descr_; } +const char* EAP__AT__PADDING_template::fld_name(int p_index) const { return EAP__AT__PADDING::fld_names[p_index]; } +void EAP__AT__PERMANENT__ID__REQ::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; } + +EAP__AT__PERMANENT__ID__REQ::EAP__AT__PERMANENT__ID__REQ() : Record_Type() { init_vec(); } + +EAP__AT__PERMANENT__ID__REQ::EAP__AT__PERMANENT__ID__REQ(const EAP__AT__PERMANENT__ID__REQ& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +init_vec(); +} + +EAP__AT__PERMANENT__ID__REQ::EAP__AT__PERMANENT__ID__REQ(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__PERMANENT__ID__REQ::get_descriptor() const { return &EAP__AT__PERMANENT__ID__REQ_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__PERMANENT__ID__REQ::fld_descriptors[] = { &EAP__AT__PERMANENT__ID__REQ_attributeType_descr_, &EAP__AT__PERMANENT__ID__REQ_len_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__PERMANENT__ID__REQ::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__PERMANENT__ID__REQ::fld_names[] = { "attributeType", "len", "reserved" }; +const char* EAP__AT__PERMANENT__ID__REQ::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__PERMANENT__ID__REQ_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__PERMANENT__ID__REQ_template::EAP__AT__PERMANENT__ID__REQ_template(EAP__AT__PERMANENT__ID__REQ_template* p_precondition, EAP__AT__PERMANENT__ID__REQ_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__PERMANENT__ID__REQ_template::EAP__AT__PERMANENT__ID__REQ_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__PERMANENT__ID__REQ_template::~EAP__AT__PERMANENT__ID__REQ_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__PERMANENT__ID__REQ_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__PERMANENT__ID__REQ* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__PERMANENT__ID__REQ_template& EAP__AT__PERMANENT__ID__REQ_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__PERMANENT__ID__REQ_template& EAP__AT__PERMANENT__ID__REQ_template::operator=(const EAP__AT__PERMANENT__ID__REQ& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__PERMANENT__ID__REQ_template& EAP__AT__PERMANENT__ID__REQ_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__PERMANENT__ID__REQ_template& EAP__AT__PERMANENT__ID__REQ_template::operator=(const EAP__AT__PERMANENT__ID__REQ_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__PERMANENT__ID__REQ EAP__AT__PERMANENT__ID__REQ_template::valueof() const +{ +EAP__AT__PERMANENT__ID__REQ ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__PERMANENT__ID__REQ_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__PERMANENT__ID__REQ_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__PERMANENT__ID__REQ_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__PERMANENT__ID__REQ_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__PERMANENT__ID__REQ_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__PERMANENT__ID__REQ_template::reserved() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__PERMANENT__ID__REQ_template::get_descriptor() const { return &EAP__AT__PERMANENT__ID__REQ_descr_; } +const char* EAP__AT__PERMANENT__ID__REQ_template::fld_name(int p_index) const { return EAP__AT__PERMANENT__ID__REQ::fld_names[p_index]; } +void EAP__AT__MAC::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; fld_vec[3]=&field_mac; } + +EAP__AT__MAC::EAP__AT__MAC() : Record_Type() { init_vec(); } + +EAP__AT__MAC::EAP__AT__MAC(const EAP__AT__MAC& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_mac.is_bound() ) + field_mac = other_value.field_mac; +init_vec(); +} + +EAP__AT__MAC::EAP__AT__MAC(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_mac) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved), + field_mac(par_mac) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__MAC::get_descriptor() const { return &EAP__AT__MAC_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__MAC::fld_descriptors[] = { &EAP__AT__MAC_attributeType_descr_, &EAP__AT__MAC_len_descr_, &CommonDefs::O2__Type_descr_, &CommonDefs::O16__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__MAC::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__MAC::fld_names[] = { "attributeType", "len", "reserved", "mac" }; +const char* EAP__AT__MAC::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__MAC_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__MAC_template::EAP__AT__MAC_template(EAP__AT__MAC_template* p_precondition, EAP__AT__MAC_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__MAC_template::EAP__AT__MAC_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__MAC_template::~EAP__AT__MAC_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__MAC_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__MAC* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__MAC_template& EAP__AT__MAC_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__MAC_template& EAP__AT__MAC_template::operator=(const EAP__AT__MAC& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__MAC_template& EAP__AT__MAC_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__MAC_template& EAP__AT__MAC_template::operator=(const EAP__AT__MAC_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__MAC EAP__AT__MAC_template::valueof() const +{ +EAP__AT__MAC ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__MAC_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__MAC_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__MAC_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__MAC_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__MAC_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__MAC_template::reserved() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__MAC_template::mac() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__MAC_template::mac() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__MAC_template::get_descriptor() const { return &EAP__AT__MAC_descr_; } +const char* EAP__AT__MAC_template::fld_name(int p_index) const { return EAP__AT__MAC::fld_names[p_index]; } +void EAP__AT__NOTIFICATION::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_s; fld_vec[3]=&field_p; fld_vec[4]=&field_notificationCode; } + +EAP__AT__NOTIFICATION::EAP__AT__NOTIFICATION() : Record_Type() { init_vec(); } + +EAP__AT__NOTIFICATION::EAP__AT__NOTIFICATION(const EAP__AT__NOTIFICATION& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_s.is_bound() ) + field_s = other_value.field_s; +if (other_value.field_p.is_bound() ) + field_p = other_value.field_p; +if (other_value.field_notificationCode.is_bound() ) + field_notificationCode = other_value.field_notificationCode; +init_vec(); +} + +EAP__AT__NOTIFICATION::EAP__AT__NOTIFICATION(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const BITSTRING& par_s, + const BITSTRING& par_p, + const BITSTRING& par_notificationCode) : field_attributeType(par_attributeType), + field_len(par_len), + field_s(par_s), + field_p(par_p), + field_notificationCode(par_notificationCode) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__NOTIFICATION::get_descriptor() const { return &EAP__AT__NOTIFICATION_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__NOTIFICATION::fld_descriptors[] = { &EAP__AT__NOTIFICATION_attributeType_descr_, &EAP__AT__NOTIFICATION_len_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B14__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__NOTIFICATION::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__NOTIFICATION::fld_names[] = { "attributeType", "len", "s", "p", "notificationCode" }; +const char* EAP__AT__NOTIFICATION::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__NOTIFICATION_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EAP__AT__NOTIFICATION_template::EAP__AT__NOTIFICATION_template(EAP__AT__NOTIFICATION_template* p_precondition, EAP__AT__NOTIFICATION_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__NOTIFICATION_template::EAP__AT__NOTIFICATION_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__NOTIFICATION_template::~EAP__AT__NOTIFICATION_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__NOTIFICATION_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__NOTIFICATION* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__NOTIFICATION_template& EAP__AT__NOTIFICATION_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__NOTIFICATION_template& EAP__AT__NOTIFICATION_template::operator=(const EAP__AT__NOTIFICATION& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__NOTIFICATION_template& EAP__AT__NOTIFICATION_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__NOTIFICATION_template& EAP__AT__NOTIFICATION_template::operator=(const EAP__AT__NOTIFICATION_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__NOTIFICATION EAP__AT__NOTIFICATION_template::valueof() const +{ +EAP__AT__NOTIFICATION ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__NOTIFICATION_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__NOTIFICATION_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__NOTIFICATION_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__NOTIFICATION_template::len() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EAP__AT__NOTIFICATION_template::s() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EAP__AT__NOTIFICATION_template::s() const { return *(static_cast(get_at(2))); } +BITSTRING_template& EAP__AT__NOTIFICATION_template::p() { return *(static_cast(get_at(3))); } +const BITSTRING_template& EAP__AT__NOTIFICATION_template::p() const { return *(static_cast(get_at(3))); } +BITSTRING_template& EAP__AT__NOTIFICATION_template::notificationCode() { return *(static_cast(get_at(4))); } +const BITSTRING_template& EAP__AT__NOTIFICATION_template::notificationCode() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* EAP__AT__NOTIFICATION_template::get_descriptor() const { return &EAP__AT__NOTIFICATION_descr_; } +const char* EAP__AT__NOTIFICATION_template::fld_name(int p_index) const { return EAP__AT__NOTIFICATION::fld_names[p_index]; } +void EAP__AT__ANY__ID__REQ::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; } + +EAP__AT__ANY__ID__REQ::EAP__AT__ANY__ID__REQ() : Record_Type() { init_vec(); } + +EAP__AT__ANY__ID__REQ::EAP__AT__ANY__ID__REQ(const EAP__AT__ANY__ID__REQ& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +init_vec(); +} + +EAP__AT__ANY__ID__REQ::EAP__AT__ANY__ID__REQ(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__ANY__ID__REQ::get_descriptor() const { return &EAP__AT__ANY__ID__REQ_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__ANY__ID__REQ::fld_descriptors[] = { &EAP__AT__ANY__ID__REQ_attributeType_descr_, &EAP__AT__ANY__ID__REQ_len_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__ANY__ID__REQ::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__ANY__ID__REQ::fld_names[] = { "attributeType", "len", "reserved" }; +const char* EAP__AT__ANY__ID__REQ::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__ANY__ID__REQ_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__ANY__ID__REQ_template::EAP__AT__ANY__ID__REQ_template(EAP__AT__ANY__ID__REQ_template* p_precondition, EAP__AT__ANY__ID__REQ_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__ANY__ID__REQ_template::EAP__AT__ANY__ID__REQ_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__ANY__ID__REQ_template::~EAP__AT__ANY__ID__REQ_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__ANY__ID__REQ_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__ANY__ID__REQ* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__ANY__ID__REQ_template& EAP__AT__ANY__ID__REQ_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__ANY__ID__REQ_template& EAP__AT__ANY__ID__REQ_template::operator=(const EAP__AT__ANY__ID__REQ& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__ANY__ID__REQ_template& EAP__AT__ANY__ID__REQ_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__ANY__ID__REQ_template& EAP__AT__ANY__ID__REQ_template::operator=(const EAP__AT__ANY__ID__REQ_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__ANY__ID__REQ EAP__AT__ANY__ID__REQ_template::valueof() const +{ +EAP__AT__ANY__ID__REQ ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__ANY__ID__REQ_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__ANY__ID__REQ_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__ANY__ID__REQ_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__ANY__ID__REQ_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__ANY__ID__REQ_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__ANY__ID__REQ_template::reserved() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__ANY__ID__REQ_template::get_descriptor() const { return &EAP__AT__ANY__ID__REQ_descr_; } +const char* EAP__AT__ANY__ID__REQ_template::fld_name(int p_index) const { return EAP__AT__ANY__ID__REQ::fld_names[p_index]; } +void EAP__AT__IDENTITY::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_actualIdlen; fld_vec[3]=&field_id; } + +EAP__AT__IDENTITY::EAP__AT__IDENTITY() : Record_Type() { init_vec(); } + +EAP__AT__IDENTITY::EAP__AT__IDENTITY(const EAP__AT__IDENTITY& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_actualIdlen.is_bound() ) + field_actualIdlen = other_value.field_actualIdlen; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +init_vec(); +} + +EAP__AT__IDENTITY::EAP__AT__IDENTITY(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_actualIdlen, + const OCTETSTRING& par_id) : field_attributeType(par_attributeType), + field_len(par_len), + field_actualIdlen(par_actualIdlen), + field_id(par_id) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__IDENTITY::get_descriptor() const { return &EAP__AT__IDENTITY_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__IDENTITY::fld_descriptors[] = { &EAP__AT__IDENTITY_attributeType_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__IDENTITY::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__IDENTITY::fld_names[] = { "attributeType", "len", "actualIdlen", "id" }; +const char* EAP__AT__IDENTITY::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__IDENTITY_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__IDENTITY_template::EAP__AT__IDENTITY_template(EAP__AT__IDENTITY_template* p_precondition, EAP__AT__IDENTITY_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__IDENTITY_template::EAP__AT__IDENTITY_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__IDENTITY_template::~EAP__AT__IDENTITY_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__IDENTITY_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__IDENTITY* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__IDENTITY_template& EAP__AT__IDENTITY_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__IDENTITY_template& EAP__AT__IDENTITY_template::operator=(const EAP__AT__IDENTITY& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__IDENTITY_template& EAP__AT__IDENTITY_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__IDENTITY_template& EAP__AT__IDENTITY_template::operator=(const EAP__AT__IDENTITY_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__IDENTITY EAP__AT__IDENTITY_template::valueof() const +{ +EAP__AT__IDENTITY ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__IDENTITY_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__IDENTITY_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__IDENTITY_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__IDENTITY_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__IDENTITY_template::actualIdlen() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__IDENTITY_template::actualIdlen() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__IDENTITY_template::id() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__IDENTITY_template::id() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__IDENTITY_template::get_descriptor() const { return &EAP__AT__IDENTITY_descr_; } +const char* EAP__AT__IDENTITY_template::fld_name(int p_index) const { return EAP__AT__IDENTITY::fld_names[p_index]; } +void EAP__AT__VERSION__LIST::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_versionList; } + +EAP__AT__VERSION__LIST::EAP__AT__VERSION__LIST() : Record_Type() { init_vec(); } + +EAP__AT__VERSION__LIST::EAP__AT__VERSION__LIST(const EAP__AT__VERSION__LIST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_versionList.is_bound() ) + field_versionList = other_value.field_versionList; +init_vec(); +} + +EAP__AT__VERSION__LIST::EAP__AT__VERSION__LIST(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_versionList) : field_attributeType(par_attributeType), + field_len(par_len), + field_versionList(par_versionList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__VERSION__LIST::get_descriptor() const { return &EAP__AT__VERSION__LIST_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__VERSION__LIST::fld_descriptors[] = { &EAP__AT__VERSION__LIST_attributeType_descr_, &CommonDefs::O1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__VERSION__LIST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__VERSION__LIST::fld_names[] = { "attributeType", "len", "versionList" }; +const char* EAP__AT__VERSION__LIST::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__VERSION__LIST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__VERSION__LIST_template::EAP__AT__VERSION__LIST_template(EAP__AT__VERSION__LIST_template* p_precondition, EAP__AT__VERSION__LIST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__VERSION__LIST_template::EAP__AT__VERSION__LIST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__VERSION__LIST_template::~EAP__AT__VERSION__LIST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__VERSION__LIST_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__VERSION__LIST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__VERSION__LIST_template& EAP__AT__VERSION__LIST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__VERSION__LIST_template& EAP__AT__VERSION__LIST_template::operator=(const EAP__AT__VERSION__LIST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__VERSION__LIST_template& EAP__AT__VERSION__LIST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__VERSION__LIST_template& EAP__AT__VERSION__LIST_template::operator=(const EAP__AT__VERSION__LIST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__VERSION__LIST EAP__AT__VERSION__LIST_template::valueof() const +{ +EAP__AT__VERSION__LIST ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__VERSION__LIST_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__VERSION__LIST_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__VERSION__LIST_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__VERSION__LIST_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__VERSION__LIST_template::versionList() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__VERSION__LIST_template::versionList() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__VERSION__LIST_template::get_descriptor() const { return &EAP__AT__VERSION__LIST_descr_; } +const char* EAP__AT__VERSION__LIST_template::fld_name(int p_index) const { return EAP__AT__VERSION__LIST::fld_names[p_index]; } +void EAP__AT__SELECTED__VERSION::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_selectedVersion; } + +EAP__AT__SELECTED__VERSION::EAP__AT__SELECTED__VERSION() : Record_Type() { init_vec(); } + +EAP__AT__SELECTED__VERSION::EAP__AT__SELECTED__VERSION(const EAP__AT__SELECTED__VERSION& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_selectedVersion.is_bound() ) + field_selectedVersion = other_value.field_selectedVersion; +init_vec(); +} + +EAP__AT__SELECTED__VERSION::EAP__AT__SELECTED__VERSION(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_selectedVersion) : field_attributeType(par_attributeType), + field_len(par_len), + field_selectedVersion(par_selectedVersion) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__SELECTED__VERSION::get_descriptor() const { return &EAP__AT__SELECTED__VERSION_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__SELECTED__VERSION::fld_descriptors[] = { &EAP__AT__SELECTED__VERSION_attributeType_descr_, &CommonDefs::O1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__SELECTED__VERSION::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__SELECTED__VERSION::fld_names[] = { "attributeType", "len", "selectedVersion" }; +const char* EAP__AT__SELECTED__VERSION::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__SELECTED__VERSION_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__SELECTED__VERSION_template::EAP__AT__SELECTED__VERSION_template(EAP__AT__SELECTED__VERSION_template* p_precondition, EAP__AT__SELECTED__VERSION_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__SELECTED__VERSION_template::EAP__AT__SELECTED__VERSION_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__SELECTED__VERSION_template::~EAP__AT__SELECTED__VERSION_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__SELECTED__VERSION_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__SELECTED__VERSION* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__SELECTED__VERSION_template& EAP__AT__SELECTED__VERSION_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__SELECTED__VERSION_template& EAP__AT__SELECTED__VERSION_template::operator=(const EAP__AT__SELECTED__VERSION& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__SELECTED__VERSION_template& EAP__AT__SELECTED__VERSION_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__SELECTED__VERSION_template& EAP__AT__SELECTED__VERSION_template::operator=(const EAP__AT__SELECTED__VERSION_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__SELECTED__VERSION EAP__AT__SELECTED__VERSION_template::valueof() const +{ +EAP__AT__SELECTED__VERSION ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__SELECTED__VERSION_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__SELECTED__VERSION_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__SELECTED__VERSION_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__SELECTED__VERSION_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__SELECTED__VERSION_template::selectedVersion() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__SELECTED__VERSION_template::selectedVersion() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__SELECTED__VERSION_template::get_descriptor() const { return &EAP__AT__SELECTED__VERSION_descr_; } +const char* EAP__AT__SELECTED__VERSION_template::fld_name(int p_index) const { return EAP__AT__SELECTED__VERSION::fld_names[p_index]; } +void EAP__AT__FULLAUTH__ID__REQ::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; } + +EAP__AT__FULLAUTH__ID__REQ::EAP__AT__FULLAUTH__ID__REQ() : Record_Type() { init_vec(); } + +EAP__AT__FULLAUTH__ID__REQ::EAP__AT__FULLAUTH__ID__REQ(const EAP__AT__FULLAUTH__ID__REQ& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +init_vec(); +} + +EAP__AT__FULLAUTH__ID__REQ::EAP__AT__FULLAUTH__ID__REQ(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__FULLAUTH__ID__REQ::get_descriptor() const { return &EAP__AT__FULLAUTH__ID__REQ_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__FULLAUTH__ID__REQ::fld_descriptors[] = { &EAP__AT__FULLAUTH__ID__REQ_attributeType_descr_, &EAP__AT__FULLAUTH__ID__REQ_len_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__FULLAUTH__ID__REQ::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__FULLAUTH__ID__REQ::fld_names[] = { "attributeType", "len", "reserved" }; +const char* EAP__AT__FULLAUTH__ID__REQ::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__FULLAUTH__ID__REQ_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__FULLAUTH__ID__REQ_template::EAP__AT__FULLAUTH__ID__REQ_template(EAP__AT__FULLAUTH__ID__REQ_template* p_precondition, EAP__AT__FULLAUTH__ID__REQ_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__FULLAUTH__ID__REQ_template::EAP__AT__FULLAUTH__ID__REQ_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__FULLAUTH__ID__REQ_template::~EAP__AT__FULLAUTH__ID__REQ_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__FULLAUTH__ID__REQ_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__FULLAUTH__ID__REQ* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__FULLAUTH__ID__REQ_template& EAP__AT__FULLAUTH__ID__REQ_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__FULLAUTH__ID__REQ_template& EAP__AT__FULLAUTH__ID__REQ_template::operator=(const EAP__AT__FULLAUTH__ID__REQ& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__FULLAUTH__ID__REQ_template& EAP__AT__FULLAUTH__ID__REQ_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__FULLAUTH__ID__REQ_template& EAP__AT__FULLAUTH__ID__REQ_template::operator=(const EAP__AT__FULLAUTH__ID__REQ_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__FULLAUTH__ID__REQ EAP__AT__FULLAUTH__ID__REQ_template::valueof() const +{ +EAP__AT__FULLAUTH__ID__REQ ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__FULLAUTH__ID__REQ_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__FULLAUTH__ID__REQ_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__FULLAUTH__ID__REQ_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__FULLAUTH__ID__REQ_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__FULLAUTH__ID__REQ_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__FULLAUTH__ID__REQ_template::reserved() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__FULLAUTH__ID__REQ_template::get_descriptor() const { return &EAP__AT__FULLAUTH__ID__REQ_descr_; } +const char* EAP__AT__FULLAUTH__ID__REQ_template::fld_name(int p_index) const { return EAP__AT__FULLAUTH__ID__REQ::fld_names[p_index]; } +void EAP__AT__COUNTER::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_counter; } + +EAP__AT__COUNTER::EAP__AT__COUNTER() : Record_Type() { init_vec(); } + +EAP__AT__COUNTER::EAP__AT__COUNTER(const EAP__AT__COUNTER& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_counter.is_bound() ) + field_counter = other_value.field_counter; +init_vec(); +} + +EAP__AT__COUNTER::EAP__AT__COUNTER(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_counter) : field_attributeType(par_attributeType), + field_len(par_len), + field_counter(par_counter) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__COUNTER::get_descriptor() const { return &EAP__AT__COUNTER_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__COUNTER::fld_descriptors[] = { &EAP__AT__COUNTER_attributeType_descr_, &EAP__AT__COUNTER_len_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__COUNTER::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__COUNTER::fld_names[] = { "attributeType", "len", "counter" }; +const char* EAP__AT__COUNTER::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__COUNTER_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__COUNTER_template::EAP__AT__COUNTER_template(EAP__AT__COUNTER_template* p_precondition, EAP__AT__COUNTER_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__COUNTER_template::EAP__AT__COUNTER_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__COUNTER_template::~EAP__AT__COUNTER_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__COUNTER_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__COUNTER* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__COUNTER_template& EAP__AT__COUNTER_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__COUNTER_template& EAP__AT__COUNTER_template::operator=(const EAP__AT__COUNTER& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__COUNTER_template& EAP__AT__COUNTER_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__COUNTER_template& EAP__AT__COUNTER_template::operator=(const EAP__AT__COUNTER_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__COUNTER EAP__AT__COUNTER_template::valueof() const +{ +EAP__AT__COUNTER ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__COUNTER_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__COUNTER_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__COUNTER_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__COUNTER_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__COUNTER_template::counter() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__COUNTER_template::counter() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__COUNTER_template::get_descriptor() const { return &EAP__AT__COUNTER_descr_; } +const char* EAP__AT__COUNTER_template::fld_name(int p_index) const { return EAP__AT__COUNTER::fld_names[p_index]; } +void EAP__AT__COUNTER__TOO__SMALL::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; } + +EAP__AT__COUNTER__TOO__SMALL::EAP__AT__COUNTER__TOO__SMALL() : Record_Type() { init_vec(); } + +EAP__AT__COUNTER__TOO__SMALL::EAP__AT__COUNTER__TOO__SMALL(const EAP__AT__COUNTER__TOO__SMALL& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +init_vec(); +} + +EAP__AT__COUNTER__TOO__SMALL::EAP__AT__COUNTER__TOO__SMALL(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__COUNTER__TOO__SMALL::get_descriptor() const { return &EAP__AT__COUNTER__TOO__SMALL_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__COUNTER__TOO__SMALL::fld_descriptors[] = { &EAP__AT__COUNTER__TOO__SMALL_attributeType_descr_, &EAP__AT__COUNTER__TOO__SMALL_len_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__COUNTER__TOO__SMALL::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__COUNTER__TOO__SMALL::fld_names[] = { "attributeType", "len", "reserved" }; +const char* EAP__AT__COUNTER__TOO__SMALL::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__COUNTER__TOO__SMALL_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__COUNTER__TOO__SMALL_template::EAP__AT__COUNTER__TOO__SMALL_template(EAP__AT__COUNTER__TOO__SMALL_template* p_precondition, EAP__AT__COUNTER__TOO__SMALL_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__COUNTER__TOO__SMALL_template::EAP__AT__COUNTER__TOO__SMALL_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__COUNTER__TOO__SMALL_template::~EAP__AT__COUNTER__TOO__SMALL_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__COUNTER__TOO__SMALL_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__COUNTER__TOO__SMALL* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__COUNTER__TOO__SMALL_template& EAP__AT__COUNTER__TOO__SMALL_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__COUNTER__TOO__SMALL_template& EAP__AT__COUNTER__TOO__SMALL_template::operator=(const EAP__AT__COUNTER__TOO__SMALL& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__COUNTER__TOO__SMALL_template& EAP__AT__COUNTER__TOO__SMALL_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__COUNTER__TOO__SMALL_template& EAP__AT__COUNTER__TOO__SMALL_template::operator=(const EAP__AT__COUNTER__TOO__SMALL_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__COUNTER__TOO__SMALL EAP__AT__COUNTER__TOO__SMALL_template::valueof() const +{ +EAP__AT__COUNTER__TOO__SMALL ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__COUNTER__TOO__SMALL_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__COUNTER__TOO__SMALL_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__COUNTER__TOO__SMALL_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__COUNTER__TOO__SMALL_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__COUNTER__TOO__SMALL_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__COUNTER__TOO__SMALL_template::reserved() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__COUNTER__TOO__SMALL_template::get_descriptor() const { return &EAP__AT__COUNTER__TOO__SMALL_descr_; } +const char* EAP__AT__COUNTER__TOO__SMALL_template::fld_name(int p_index) const { return EAP__AT__COUNTER__TOO__SMALL::fld_names[p_index]; } +void EAP__AT__NONCE__S::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; fld_vec[3]=&field_nonceS; } + +EAP__AT__NONCE__S::EAP__AT__NONCE__S() : Record_Type() { init_vec(); } + +EAP__AT__NONCE__S::EAP__AT__NONCE__S(const EAP__AT__NONCE__S& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_nonceS.is_bound() ) + field_nonceS = other_value.field_nonceS; +init_vec(); +} + +EAP__AT__NONCE__S::EAP__AT__NONCE__S(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_nonceS) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved), + field_nonceS(par_nonceS) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__NONCE__S::get_descriptor() const { return &EAP__AT__NONCE__S_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__NONCE__S::fld_descriptors[] = { &EAP__AT__NONCE__S_attributeType_descr_, &EAP__AT__NONCE__S_len_descr_, &CommonDefs::O2__Type_descr_, &CommonDefs::O16__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__NONCE__S::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__NONCE__S::fld_names[] = { "attributeType", "len", "reserved", "nonceS" }; +const char* EAP__AT__NONCE__S::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__NONCE__S_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__NONCE__S_template::EAP__AT__NONCE__S_template(EAP__AT__NONCE__S_template* p_precondition, EAP__AT__NONCE__S_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__NONCE__S_template::EAP__AT__NONCE__S_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__NONCE__S_template::~EAP__AT__NONCE__S_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__NONCE__S_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__NONCE__S* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__NONCE__S_template& EAP__AT__NONCE__S_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__NONCE__S_template& EAP__AT__NONCE__S_template::operator=(const EAP__AT__NONCE__S& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__NONCE__S_template& EAP__AT__NONCE__S_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__NONCE__S_template& EAP__AT__NONCE__S_template::operator=(const EAP__AT__NONCE__S_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__NONCE__S EAP__AT__NONCE__S_template::valueof() const +{ +EAP__AT__NONCE__S ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__NONCE__S_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__NONCE__S_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__NONCE__S_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__NONCE__S_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__NONCE__S_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__NONCE__S_template::reserved() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__NONCE__S_template::nonceS() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__NONCE__S_template::nonceS() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__NONCE__S_template::get_descriptor() const { return &EAP__AT__NONCE__S_descr_; } +const char* EAP__AT__NONCE__S_template::fld_name(int p_index) const { return EAP__AT__NONCE__S::fld_names[p_index]; } +void EAP__AT__CLIENT__ERROR__CODE::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_clientErrorCode; } + +EAP__AT__CLIENT__ERROR__CODE::EAP__AT__CLIENT__ERROR__CODE() : Record_Type() { init_vec(); } + +EAP__AT__CLIENT__ERROR__CODE::EAP__AT__CLIENT__ERROR__CODE(const EAP__AT__CLIENT__ERROR__CODE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_clientErrorCode.is_bound() ) + field_clientErrorCode = other_value.field_clientErrorCode; +init_vec(); +} + +EAP__AT__CLIENT__ERROR__CODE::EAP__AT__CLIENT__ERROR__CODE(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_clientErrorCode) : field_attributeType(par_attributeType), + field_len(par_len), + field_clientErrorCode(par_clientErrorCode) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__CLIENT__ERROR__CODE::get_descriptor() const { return &EAP__AT__CLIENT__ERROR__CODE_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__CLIENT__ERROR__CODE::fld_descriptors[] = { &EAP__AT__CLIENT__ERROR__CODE_attributeType_descr_, &EAP__AT__CLIENT__ERROR__CODE_len_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__CLIENT__ERROR__CODE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__CLIENT__ERROR__CODE::fld_names[] = { "attributeType", "len", "clientErrorCode" }; +const char* EAP__AT__CLIENT__ERROR__CODE::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__CLIENT__ERROR__CODE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__CLIENT__ERROR__CODE_template::EAP__AT__CLIENT__ERROR__CODE_template(EAP__AT__CLIENT__ERROR__CODE_template* p_precondition, EAP__AT__CLIENT__ERROR__CODE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__CLIENT__ERROR__CODE_template::EAP__AT__CLIENT__ERROR__CODE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__CLIENT__ERROR__CODE_template::~EAP__AT__CLIENT__ERROR__CODE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__CLIENT__ERROR__CODE_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__CLIENT__ERROR__CODE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__CLIENT__ERROR__CODE_template& EAP__AT__CLIENT__ERROR__CODE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__CLIENT__ERROR__CODE_template& EAP__AT__CLIENT__ERROR__CODE_template::operator=(const EAP__AT__CLIENT__ERROR__CODE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__CLIENT__ERROR__CODE_template& EAP__AT__CLIENT__ERROR__CODE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__CLIENT__ERROR__CODE_template& EAP__AT__CLIENT__ERROR__CODE_template::operator=(const EAP__AT__CLIENT__ERROR__CODE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__CLIENT__ERROR__CODE EAP__AT__CLIENT__ERROR__CODE_template::valueof() const +{ +EAP__AT__CLIENT__ERROR__CODE ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__CLIENT__ERROR__CODE_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__CLIENT__ERROR__CODE_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__CLIENT__ERROR__CODE_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__CLIENT__ERROR__CODE_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__CLIENT__ERROR__CODE_template::clientErrorCode() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__CLIENT__ERROR__CODE_template::clientErrorCode() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__CLIENT__ERROR__CODE_template::get_descriptor() const { return &EAP__AT__CLIENT__ERROR__CODE_descr_; } +const char* EAP__AT__CLIENT__ERROR__CODE_template::fld_name(int p_index) const { return EAP__AT__CLIENT__ERROR__CODE::fld_names[p_index]; } +void EAP__AT__IV::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; fld_vec[3]=&field_autn; } + +EAP__AT__IV::EAP__AT__IV() : Record_Type() { init_vec(); } + +EAP__AT__IV::EAP__AT__IV(const EAP__AT__IV& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_autn.is_bound() ) + field_autn = other_value.field_autn; +init_vec(); +} + +EAP__AT__IV::EAP__AT__IV(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_autn) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved), + field_autn(par_autn) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__IV::get_descriptor() const { return &EAP__AT__IV_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__IV::fld_descriptors[] = { &EAP__AT__IV_attributeType_descr_, &EAP__AT__IV_len_descr_, &CommonDefs::O2__Type_descr_, &CommonDefs::O16__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__IV::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__IV::fld_names[] = { "attributeType", "len", "reserved", "autn" }; +const char* EAP__AT__IV::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__IV_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__IV_template::EAP__AT__IV_template(EAP__AT__IV_template* p_precondition, EAP__AT__IV_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__IV_template::EAP__AT__IV_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__IV_template::~EAP__AT__IV_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__IV_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__IV* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__IV_template& EAP__AT__IV_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__IV_template& EAP__AT__IV_template::operator=(const EAP__AT__IV& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__IV_template& EAP__AT__IV_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__IV_template& EAP__AT__IV_template::operator=(const EAP__AT__IV_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__IV EAP__AT__IV_template::valueof() const +{ +EAP__AT__IV ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__IV_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__IV_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__IV_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__IV_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__IV_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__IV_template::reserved() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__IV_template::autn() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__IV_template::autn() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__IV_template::get_descriptor() const { return &EAP__AT__IV_descr_; } +const char* EAP__AT__IV_template::fld_name(int p_index) const { return EAP__AT__IV::fld_names[p_index]; } +void EAP__AT__NEXT__PSEUDONYM::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_actualPseudonymlen; fld_vec[3]=&field_nextPseudonym; } + +EAP__AT__NEXT__PSEUDONYM::EAP__AT__NEXT__PSEUDONYM() : Record_Type() { init_vec(); } + +EAP__AT__NEXT__PSEUDONYM::EAP__AT__NEXT__PSEUDONYM(const EAP__AT__NEXT__PSEUDONYM& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_actualPseudonymlen.is_bound() ) + field_actualPseudonymlen = other_value.field_actualPseudonymlen; +if (other_value.field_nextPseudonym.is_bound() ) + field_nextPseudonym = other_value.field_nextPseudonym; +init_vec(); +} + +EAP__AT__NEXT__PSEUDONYM::EAP__AT__NEXT__PSEUDONYM(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_actualPseudonymlen, + const OCTETSTRING& par_nextPseudonym) : field_attributeType(par_attributeType), + field_len(par_len), + field_actualPseudonymlen(par_actualPseudonymlen), + field_nextPseudonym(par_nextPseudonym) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__NEXT__PSEUDONYM::get_descriptor() const { return &EAP__AT__NEXT__PSEUDONYM_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__NEXT__PSEUDONYM::fld_descriptors[] = { &EAP__AT__NEXT__PSEUDONYM_attributeType_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__NEXT__PSEUDONYM::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__NEXT__PSEUDONYM::fld_names[] = { "attributeType", "len", "actualPseudonymlen", "nextPseudonym" }; +const char* EAP__AT__NEXT__PSEUDONYM::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__NEXT__PSEUDONYM_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__NEXT__PSEUDONYM_template::EAP__AT__NEXT__PSEUDONYM_template(EAP__AT__NEXT__PSEUDONYM_template* p_precondition, EAP__AT__NEXT__PSEUDONYM_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__NEXT__PSEUDONYM_template::EAP__AT__NEXT__PSEUDONYM_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__NEXT__PSEUDONYM_template::~EAP__AT__NEXT__PSEUDONYM_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__NEXT__PSEUDONYM_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__NEXT__PSEUDONYM* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__NEXT__PSEUDONYM_template& EAP__AT__NEXT__PSEUDONYM_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__NEXT__PSEUDONYM_template& EAP__AT__NEXT__PSEUDONYM_template::operator=(const EAP__AT__NEXT__PSEUDONYM& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__NEXT__PSEUDONYM_template& EAP__AT__NEXT__PSEUDONYM_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__NEXT__PSEUDONYM_template& EAP__AT__NEXT__PSEUDONYM_template::operator=(const EAP__AT__NEXT__PSEUDONYM_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__NEXT__PSEUDONYM EAP__AT__NEXT__PSEUDONYM_template::valueof() const +{ +EAP__AT__NEXT__PSEUDONYM ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__NEXT__PSEUDONYM_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__NEXT__PSEUDONYM_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__NEXT__PSEUDONYM_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__NEXT__PSEUDONYM_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__NEXT__PSEUDONYM_template::actualPseudonymlen() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__NEXT__PSEUDONYM_template::actualPseudonymlen() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__NEXT__PSEUDONYM_template::nextPseudonym() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__NEXT__PSEUDONYM_template::nextPseudonym() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__NEXT__PSEUDONYM_template::get_descriptor() const { return &EAP__AT__NEXT__PSEUDONYM_descr_; } +const char* EAP__AT__NEXT__PSEUDONYM_template::fld_name(int p_index) const { return EAP__AT__NEXT__PSEUDONYM::fld_names[p_index]; } +void EAP__AT__NEXT__REAUTH__ID::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_actualReAuthIdlen; fld_vec[3]=&field_actualReAuthId; } + +EAP__AT__NEXT__REAUTH__ID::EAP__AT__NEXT__REAUTH__ID() : Record_Type() { init_vec(); } + +EAP__AT__NEXT__REAUTH__ID::EAP__AT__NEXT__REAUTH__ID(const EAP__AT__NEXT__REAUTH__ID& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_actualReAuthIdlen.is_bound() ) + field_actualReAuthIdlen = other_value.field_actualReAuthIdlen; +if (other_value.field_actualReAuthId.is_bound() ) + field_actualReAuthId = other_value.field_actualReAuthId; +init_vec(); +} + +EAP__AT__NEXT__REAUTH__ID::EAP__AT__NEXT__REAUTH__ID(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_actualReAuthIdlen, + const OCTETSTRING& par_actualReAuthId) : field_attributeType(par_attributeType), + field_len(par_len), + field_actualReAuthIdlen(par_actualReAuthIdlen), + field_actualReAuthId(par_actualReAuthId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__NEXT__REAUTH__ID::get_descriptor() const { return &EAP__AT__NEXT__REAUTH__ID_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__NEXT__REAUTH__ID::fld_descriptors[] = { &EAP__AT__NEXT__REAUTH__ID_attributeType_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__NEXT__REAUTH__ID::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__NEXT__REAUTH__ID::fld_names[] = { "attributeType", "len", "actualReAuthIdlen", "actualReAuthId" }; +const char* EAP__AT__NEXT__REAUTH__ID::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__NEXT__REAUTH__ID_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__NEXT__REAUTH__ID_template::EAP__AT__NEXT__REAUTH__ID_template(EAP__AT__NEXT__REAUTH__ID_template* p_precondition, EAP__AT__NEXT__REAUTH__ID_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__NEXT__REAUTH__ID_template::EAP__AT__NEXT__REAUTH__ID_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__NEXT__REAUTH__ID_template::~EAP__AT__NEXT__REAUTH__ID_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__NEXT__REAUTH__ID_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__NEXT__REAUTH__ID* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__NEXT__REAUTH__ID_template& EAP__AT__NEXT__REAUTH__ID_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__NEXT__REAUTH__ID_template& EAP__AT__NEXT__REAUTH__ID_template::operator=(const EAP__AT__NEXT__REAUTH__ID& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__NEXT__REAUTH__ID_template& EAP__AT__NEXT__REAUTH__ID_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__NEXT__REAUTH__ID_template& EAP__AT__NEXT__REAUTH__ID_template::operator=(const EAP__AT__NEXT__REAUTH__ID_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__NEXT__REAUTH__ID EAP__AT__NEXT__REAUTH__ID_template::valueof() const +{ +EAP__AT__NEXT__REAUTH__ID ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__NEXT__REAUTH__ID_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__NEXT__REAUTH__ID_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__NEXT__REAUTH__ID_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__NEXT__REAUTH__ID_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__NEXT__REAUTH__ID_template::actualReAuthIdlen() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__NEXT__REAUTH__ID_template::actualReAuthIdlen() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__NEXT__REAUTH__ID_template::actualReAuthId() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__NEXT__REAUTH__ID_template::actualReAuthId() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__NEXT__REAUTH__ID_template::get_descriptor() const { return &EAP__AT__NEXT__REAUTH__ID_descr_; } +const char* EAP__AT__NEXT__REAUTH__ID_template::fld_name(int p_index) const { return EAP__AT__NEXT__REAUTH__ID::fld_names[p_index]; } +void EAP__AT__CHECKCODE::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; fld_vec[3]=&field_checkCode; } + +EAP__AT__CHECKCODE::EAP__AT__CHECKCODE() : Record_Type() { init_vec(); } + +EAP__AT__CHECKCODE::EAP__AT__CHECKCODE(const EAP__AT__CHECKCODE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_checkCode.is_bound() ) + field_checkCode = other_value.field_checkCode; +init_vec(); +} + +EAP__AT__CHECKCODE::EAP__AT__CHECKCODE(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OPTIONAL& par_checkCode) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved), + field_checkCode(par_checkCode) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__CHECKCODE::get_descriptor() const { return &EAP__AT__CHECKCODE_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__CHECKCODE::fld_descriptors[] = { &EAP__AT__CHECKCODE_attributeType_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__CHECKCODE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__CHECKCODE::fld_names[] = { "attributeType", "len", "reserved", "checkCode" }; +const char* EAP__AT__CHECKCODE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EAP__AT__CHECKCODE::optional_indexes[] = { 3, -1 }; +const int* EAP__AT__CHECKCODE::get_optional_indexes() const { return optional_indexes; } + +const int EAP__AT__CHECKCODE::optional_indexes_asn[] = { 3, -1 }; +const int* EAP__AT__CHECKCODE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EAP__AT__CHECKCODE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +EAP__AT__CHECKCODE_template::EAP__AT__CHECKCODE_template(EAP__AT__CHECKCODE_template* p_precondition, EAP__AT__CHECKCODE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__CHECKCODE_template::EAP__AT__CHECKCODE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__CHECKCODE_template::~EAP__AT__CHECKCODE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__CHECKCODE_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__CHECKCODE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__CHECKCODE_template& EAP__AT__CHECKCODE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__CHECKCODE_template& EAP__AT__CHECKCODE_template::operator=(const EAP__AT__CHECKCODE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__CHECKCODE_template& EAP__AT__CHECKCODE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__CHECKCODE_template& EAP__AT__CHECKCODE_template::operator=(const EAP__AT__CHECKCODE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__CHECKCODE EAP__AT__CHECKCODE_template::valueof() const +{ +EAP__AT__CHECKCODE ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__CHECKCODE_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__CHECKCODE_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__CHECKCODE_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__CHECKCODE_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__CHECKCODE_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__CHECKCODE_template::reserved() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__CHECKCODE_template::checkCode() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__CHECKCODE_template::checkCode() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__CHECKCODE_template::get_descriptor() const { return &EAP__AT__CHECKCODE_descr_; } +const char* EAP__AT__CHECKCODE_template::fld_name(int p_index) const { return EAP__AT__CHECKCODE::fld_names[p_index]; } +void EAP__AT__RESULT__IND::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; } + +EAP__AT__RESULT__IND::EAP__AT__RESULT__IND() : Record_Type() { init_vec(); } + +EAP__AT__RESULT__IND::EAP__AT__RESULT__IND(const EAP__AT__RESULT__IND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +init_vec(); +} + +EAP__AT__RESULT__IND::EAP__AT__RESULT__IND(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__RESULT__IND::get_descriptor() const { return &EAP__AT__RESULT__IND_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__RESULT__IND::fld_descriptors[] = { &EAP__AT__RESULT__IND_attributeType_descr_, &EAP__AT__RESULT__IND_len_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__RESULT__IND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__RESULT__IND::fld_names[] = { "attributeType", "len", "reserved" }; +const char* EAP__AT__RESULT__IND::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__RESULT__IND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__RESULT__IND_template::EAP__AT__RESULT__IND_template(EAP__AT__RESULT__IND_template* p_precondition, EAP__AT__RESULT__IND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__RESULT__IND_template::EAP__AT__RESULT__IND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__RESULT__IND_template::~EAP__AT__RESULT__IND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__RESULT__IND_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__RESULT__IND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__RESULT__IND_template& EAP__AT__RESULT__IND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__RESULT__IND_template& EAP__AT__RESULT__IND_template::operator=(const EAP__AT__RESULT__IND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__RESULT__IND_template& EAP__AT__RESULT__IND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__RESULT__IND_template& EAP__AT__RESULT__IND_template::operator=(const EAP__AT__RESULT__IND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__RESULT__IND EAP__AT__RESULT__IND_template::valueof() const +{ +EAP__AT__RESULT__IND ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__RESULT__IND_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__RESULT__IND_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__RESULT__IND_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__RESULT__IND_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__RESULT__IND_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__RESULT__IND_template::reserved() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__RESULT__IND_template::get_descriptor() const { return &EAP__AT__RESULT__IND_descr_; } +const char* EAP__AT__RESULT__IND_template::fld_name(int p_index) const { return EAP__AT__RESULT__IND::fld_names[p_index]; } +void EAP__AT__KDF__INPUT::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_actualNetworkNamelen; fld_vec[3]=&field_networkName; } + +EAP__AT__KDF__INPUT::EAP__AT__KDF__INPUT() : Record_Type() { init_vec(); } + +EAP__AT__KDF__INPUT::EAP__AT__KDF__INPUT(const EAP__AT__KDF__INPUT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_actualNetworkNamelen.is_bound() ) + field_actualNetworkNamelen = other_value.field_actualNetworkNamelen; +if (other_value.field_networkName.is_bound() ) + field_networkName = other_value.field_networkName; +init_vec(); +} + +EAP__AT__KDF__INPUT::EAP__AT__KDF__INPUT(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_actualNetworkNamelen, + const OCTETSTRING& par_networkName) : field_attributeType(par_attributeType), + field_len(par_len), + field_actualNetworkNamelen(par_actualNetworkNamelen), + field_networkName(par_networkName) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__KDF__INPUT::get_descriptor() const { return &EAP__AT__KDF__INPUT_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__KDF__INPUT::fld_descriptors[] = { &EAP__AT__KDF__INPUT_attributeType_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__KDF__INPUT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__KDF__INPUT::fld_names[] = { "attributeType", "len", "actualNetworkNamelen", "networkName" }; +const char* EAP__AT__KDF__INPUT::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__KDF__INPUT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__KDF__INPUT_template::EAP__AT__KDF__INPUT_template(EAP__AT__KDF__INPUT_template* p_precondition, EAP__AT__KDF__INPUT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__KDF__INPUT_template::EAP__AT__KDF__INPUT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__KDF__INPUT_template::~EAP__AT__KDF__INPUT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__KDF__INPUT_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__KDF__INPUT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__KDF__INPUT_template& EAP__AT__KDF__INPUT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__KDF__INPUT_template& EAP__AT__KDF__INPUT_template::operator=(const EAP__AT__KDF__INPUT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__KDF__INPUT_template& EAP__AT__KDF__INPUT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__KDF__INPUT_template& EAP__AT__KDF__INPUT_template::operator=(const EAP__AT__KDF__INPUT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__KDF__INPUT EAP__AT__KDF__INPUT_template::valueof() const +{ +EAP__AT__KDF__INPUT ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__KDF__INPUT_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__KDF__INPUT_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__KDF__INPUT_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__KDF__INPUT_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__KDF__INPUT_template::actualNetworkNamelen() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__KDF__INPUT_template::actualNetworkNamelen() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__KDF__INPUT_template::networkName() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__KDF__INPUT_template::networkName() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__KDF__INPUT_template::get_descriptor() const { return &EAP__AT__KDF__INPUT_descr_; } +const char* EAP__AT__KDF__INPUT_template::fld_name(int p_index) const { return EAP__AT__KDF__INPUT::fld_names[p_index]; } +void EAP__AT__KDF::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_keyDerivationFunction; } + +EAP__AT__KDF::EAP__AT__KDF() : Record_Type() { init_vec(); } + +EAP__AT__KDF::EAP__AT__KDF(const EAP__AT__KDF& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_keyDerivationFunction.is_bound() ) + field_keyDerivationFunction = other_value.field_keyDerivationFunction; +init_vec(); +} + +EAP__AT__KDF::EAP__AT__KDF(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_keyDerivationFunction) : field_attributeType(par_attributeType), + field_len(par_len), + field_keyDerivationFunction(par_keyDerivationFunction) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__KDF::get_descriptor() const { return &EAP__AT__KDF_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__KDF::fld_descriptors[] = { &EAP__AT__KDF_attributeType_descr_, &EAP__AT__KDF_len_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__KDF::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__KDF::fld_names[] = { "attributeType", "len", "keyDerivationFunction" }; +const char* EAP__AT__KDF::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__KDF_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__KDF_template::EAP__AT__KDF_template(EAP__AT__KDF_template* p_precondition, EAP__AT__KDF_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__KDF_template::EAP__AT__KDF_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__KDF_template::~EAP__AT__KDF_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__KDF_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__KDF* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__KDF_template& EAP__AT__KDF_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__KDF_template& EAP__AT__KDF_template::operator=(const EAP__AT__KDF& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__KDF_template& EAP__AT__KDF_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__KDF_template& EAP__AT__KDF_template::operator=(const EAP__AT__KDF_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__KDF EAP__AT__KDF_template::valueof() const +{ +EAP__AT__KDF ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__KDF_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__KDF_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__KDF_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__KDF_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__KDF_template::keyDerivationFunction() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__KDF_template::keyDerivationFunction() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__AT__KDF_template::get_descriptor() const { return &EAP__AT__KDF_descr_; } +const char* EAP__AT__KDF_template::fld_name(int p_index) const { return EAP__AT__KDF::fld_names[p_index]; } +void EAP__Request__Type::init_vec() { fld_vec[0]=&field_code; fld_vec[1]=&field_id; fld_vec[2]=&field_len; fld_vec[3]=&field_type__; fld_vec[4]=&field_subtype; fld_vec[5]=&field_reserved; fld_vec[6]=&field_attributes; } + +EAP__Request__Type::EAP__Request__Type() : Record_Type() { init_vec(); } + +EAP__Request__Type::EAP__Request__Type(const EAP__Request__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_code.is_bound() ) + field_code = other_value.field_code; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_type__.is_bound() ) + field_type__ = other_value.field_type__; +if (other_value.field_subtype.is_bound() ) + field_subtype = other_value.field_subtype; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_attributes.is_bound() ) + field_attributes = other_value.field_attributes; +init_vec(); +} + +EAP__Request__Type::EAP__Request__Type(const OCTETSTRING& par_code, + const OCTETSTRING& par_id, + const OCTETSTRING& par_len, + const OCTETSTRING& par_type__, + const OCTETSTRING& par_subtype, + const OCTETSTRING& par_reserved, + const EAP__Attributes& par_attributes) : field_code(par_code), + field_id(par_id), + field_len(par_len), + field_type__(par_type__), + field_subtype(par_subtype), + field_reserved(par_reserved), + field_attributes(par_attributes) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__Request__Type::get_descriptor() const { return &EAP__Request__Type_descr_; } +const TTCN_Typedescriptor_t* EAP__Request__Type::fld_descriptors[] = { &EAP__Request__Type_code_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &EAP__Request__Type_type___descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &EAP__Attributes_descr_ }; +const TTCN_Typedescriptor_t* EAP__Request__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__Request__Type::fld_names[] = { "code", "id", "len", "type_", "subtype", "reserved", "attributes" }; +const char* EAP__Request__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__Request__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[6] = was_any ? new EAP__Attributes_template(ANY_VALUE) : new EAP__Attributes_template; +} +} + +EAP__Request__Type_template::EAP__Request__Type_template(EAP__Request__Type_template* p_precondition, EAP__Request__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__Request__Type_template::EAP__Request__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__Request__Type_template::~EAP__Request__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__Request__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__Request__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__Request__Type_template& EAP__Request__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__Request__Type_template& EAP__Request__Type_template::operator=(const EAP__Request__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__Request__Type_template& EAP__Request__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__Request__Type_template& EAP__Request__Type_template::operator=(const EAP__Request__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__Request__Type EAP__Request__Type_template::valueof() const +{ +EAP__Request__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__Request__Type_template::code() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__Request__Type_template::code() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__Request__Type_template::id() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__Request__Type_template::id() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__Request__Type_template::len() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__Request__Type_template::len() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__Request__Type_template::type__() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__Request__Type_template::type__() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& EAP__Request__Type_template::subtype() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& EAP__Request__Type_template::subtype() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& EAP__Request__Type_template::reserved() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& EAP__Request__Type_template::reserved() const { return *(static_cast(get_at(5))); } +EAP__Attributes_template& EAP__Request__Type_template::attributes() { return *(static_cast(get_at(6))); } +const EAP__Attributes_template& EAP__Request__Type_template::attributes() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* EAP__Request__Type_template::get_descriptor() const { return &EAP__Request__Type_descr_; } +const char* EAP__Request__Type_template::fld_name(int p_index) const { return EAP__Request__Type::fld_names[p_index]; } +void EAP__Response__Type::init_vec() { fld_vec[0]=&field_code; fld_vec[1]=&field_id; fld_vec[2]=&field_len; fld_vec[3]=&field_type__; fld_vec[4]=&field_subtype; fld_vec[5]=&field_reserved; fld_vec[6]=&field_attributes; } + +EAP__Response__Type::EAP__Response__Type() : Record_Type() { init_vec(); } + +EAP__Response__Type::EAP__Response__Type(const EAP__Response__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_code.is_bound() ) + field_code = other_value.field_code; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_type__.is_bound() ) + field_type__ = other_value.field_type__; +if (other_value.field_subtype.is_bound() ) + field_subtype = other_value.field_subtype; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_attributes.is_bound() ) + field_attributes = other_value.field_attributes; +init_vec(); +} + +EAP__Response__Type::EAP__Response__Type(const OCTETSTRING& par_code, + const OCTETSTRING& par_id, + const OCTETSTRING& par_len, + const OCTETSTRING& par_type__, + const OCTETSTRING& par_subtype, + const OCTETSTRING& par_reserved, + const OPTIONAL& par_attributes) : field_code(par_code), + field_id(par_id), + field_len(par_len), + field_type__(par_type__), + field_subtype(par_subtype), + field_reserved(par_reserved), + field_attributes(par_attributes) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__Response__Type::get_descriptor() const { return &EAP__Response__Type_descr_; } +const TTCN_Typedescriptor_t* EAP__Response__Type::fld_descriptors[] = { &EAP__Response__Type_code_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &EAP__Response__Type_type___descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &EAP__Attributes_descr_ }; +const TTCN_Typedescriptor_t* EAP__Response__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__Response__Type::fld_names[] = { "code", "id", "len", "type_", "subtype", "reserved", "attributes" }; +const char* EAP__Response__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EAP__Response__Type::optional_indexes[] = { 6, -1 }; +const int* EAP__Response__Type::get_optional_indexes() const { return optional_indexes; } + +const int EAP__Response__Type::optional_indexes_asn[] = { 6, -1 }; +const int* EAP__Response__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EAP__Response__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[6] = was_any ? new EAP__Attributes_template(ANY_OR_OMIT) : new EAP__Attributes_template; +} +} + +EAP__Response__Type_template::EAP__Response__Type_template(EAP__Response__Type_template* p_precondition, EAP__Response__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__Response__Type_template::EAP__Response__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__Response__Type_template::~EAP__Response__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__Response__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__Response__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__Response__Type_template& EAP__Response__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__Response__Type_template& EAP__Response__Type_template::operator=(const EAP__Response__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__Response__Type_template& EAP__Response__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__Response__Type_template& EAP__Response__Type_template::operator=(const EAP__Response__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__Response__Type EAP__Response__Type_template::valueof() const +{ +EAP__Response__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__Response__Type_template::code() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__Response__Type_template::code() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__Response__Type_template::id() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__Response__Type_template::id() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__Response__Type_template::len() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__Response__Type_template::len() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__Response__Type_template::type__() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__Response__Type_template::type__() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& EAP__Response__Type_template::subtype() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& EAP__Response__Type_template::subtype() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& EAP__Response__Type_template::reserved() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& EAP__Response__Type_template::reserved() const { return *(static_cast(get_at(5))); } +EAP__Attributes_template& EAP__Response__Type_template::attributes() { return *(static_cast(get_at(6))); } +const EAP__Attributes_template& EAP__Response__Type_template::attributes() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* EAP__Response__Type_template::get_descriptor() const { return &EAP__Response__Type_descr_; } +const char* EAP__Response__Type_template::fld_name(int p_index) const { return EAP__Response__Type::fld_names[p_index]; } +void EAP__Success__Type::init_vec() { fld_vec[0]=&field_code; fld_vec[1]=&field_id; fld_vec[2]=&field_len; } + +EAP__Success__Type::EAP__Success__Type() : Record_Type() { init_vec(); } + +EAP__Success__Type::EAP__Success__Type(const EAP__Success__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_code.is_bound() ) + field_code = other_value.field_code; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +init_vec(); +} + +EAP__Success__Type::EAP__Success__Type(const OCTETSTRING& par_code, + const OCTETSTRING& par_id, + const OCTETSTRING& par_len) : field_code(par_code), + field_id(par_id), + field_len(par_len) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__Success__Type::get_descriptor() const { return &EAP__Success__Type_descr_; } +const TTCN_Typedescriptor_t* EAP__Success__Type::fld_descriptors[] = { &EAP__Success__Type_code_descr_, &CommonDefs::O1__Type_descr_, &EAP__Success__Type_len_descr_ }; +const TTCN_Typedescriptor_t* EAP__Success__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__Success__Type::fld_names[] = { "code", "id", "len" }; +const char* EAP__Success__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__Success__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__Success__Type_template::EAP__Success__Type_template(EAP__Success__Type_template* p_precondition, EAP__Success__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__Success__Type_template::EAP__Success__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__Success__Type_template::~EAP__Success__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__Success__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__Success__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__Success__Type_template& EAP__Success__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__Success__Type_template& EAP__Success__Type_template::operator=(const EAP__Success__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__Success__Type_template& EAP__Success__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__Success__Type_template& EAP__Success__Type_template::operator=(const EAP__Success__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__Success__Type EAP__Success__Type_template::valueof() const +{ +EAP__Success__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__Success__Type_template::code() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__Success__Type_template::code() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__Success__Type_template::id() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__Success__Type_template::id() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__Success__Type_template::len() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__Success__Type_template::len() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__Success__Type_template::get_descriptor() const { return &EAP__Success__Type_descr_; } +const char* EAP__Success__Type_template::fld_name(int p_index) const { return EAP__Success__Type::fld_names[p_index]; } +void EAP__Failure__Type::init_vec() { fld_vec[0]=&field_code; fld_vec[1]=&field_id; fld_vec[2]=&field_len; } + +EAP__Failure__Type::EAP__Failure__Type() : Record_Type() { init_vec(); } + +EAP__Failure__Type::EAP__Failure__Type(const EAP__Failure__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_code.is_bound() ) + field_code = other_value.field_code; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +init_vec(); +} + +EAP__Failure__Type::EAP__Failure__Type(const OCTETSTRING& par_code, + const OCTETSTRING& par_id, + const OCTETSTRING& par_len) : field_code(par_code), + field_id(par_id), + field_len(par_len) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__Failure__Type::get_descriptor() const { return &EAP__Failure__Type_descr_; } +const TTCN_Typedescriptor_t* EAP__Failure__Type::fld_descriptors[] = { &EAP__Failure__Type_code_descr_, &CommonDefs::O1__Type_descr_, &EAP__Failure__Type_len_descr_ }; +const TTCN_Typedescriptor_t* EAP__Failure__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__Failure__Type::fld_names[] = { "code", "id", "len" }; +const char* EAP__Failure__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__Failure__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__Failure__Type_template::EAP__Failure__Type_template(EAP__Failure__Type_template* p_precondition, EAP__Failure__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__Failure__Type_template::EAP__Failure__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__Failure__Type_template::~EAP__Failure__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__Failure__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__Failure__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__Failure__Type_template& EAP__Failure__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__Failure__Type_template& EAP__Failure__Type_template::operator=(const EAP__Failure__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__Failure__Type_template& EAP__Failure__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__Failure__Type_template& EAP__Failure__Type_template::operator=(const EAP__Failure__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__Failure__Type EAP__Failure__Type_template::valueof() const +{ +EAP__Failure__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__Failure__Type_template::code() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__Failure__Type_template::code() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__Failure__Type_template::id() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__Failure__Type_template::id() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__Failure__Type_template::len() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__Failure__Type_template::len() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__Failure__Type_template::get_descriptor() const { return &EAP__Failure__Type_descr_; } +const char* EAP__Failure__Type_template::fld_name(int p_index) const { return EAP__Failure__Type::fld_names[p_index]; } +void EAP__AT__ENCR__DATA::init_vec() { fld_vec[0]=&field_attributeType; fld_vec[1]=&field_len; fld_vec[2]=&field_reserved; fld_vec[3]=&field_encrData; } + +EAP__AT__ENCR__DATA::EAP__AT__ENCR__DATA() : Record_Type() { init_vec(); } + +EAP__AT__ENCR__DATA::EAP__AT__ENCR__DATA(const EAP__AT__ENCR__DATA& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_attributeType.is_bound() ) + field_attributeType = other_value.field_attributeType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_encrData.is_bound() ) + field_encrData = other_value.field_encrData; +init_vec(); +} + +EAP__AT__ENCR__DATA::EAP__AT__ENCR__DATA(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_encrData) : field_attributeType(par_attributeType), + field_len(par_len), + field_reserved(par_reserved), + field_encrData(par_encrData) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__AT__ENCR__DATA::get_descriptor() const { return &EAP__AT__ENCR__DATA_descr_; } +const TTCN_Typedescriptor_t* EAP__AT__ENCR__DATA::fld_descriptors[] = { &EAP__AT__ENCR__DATA_attributeType_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__AT__ENCR__DATA::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__AT__ENCR__DATA::fld_names[] = { "attributeType", "len", "reserved", "encrData" }; +const char* EAP__AT__ENCR__DATA::fld_name(int p_index) const { return fld_names[p_index]; } + +void EAP__AT__ENCR__DATA_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__AT__ENCR__DATA_template::EAP__AT__ENCR__DATA_template(EAP__AT__ENCR__DATA_template* p_precondition, EAP__AT__ENCR__DATA_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__AT__ENCR__DATA_template::EAP__AT__ENCR__DATA_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__AT__ENCR__DATA_template::~EAP__AT__ENCR__DATA_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__AT__ENCR__DATA_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__AT__ENCR__DATA* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__AT__ENCR__DATA_template& EAP__AT__ENCR__DATA_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__AT__ENCR__DATA_template& EAP__AT__ENCR__DATA_template::operator=(const EAP__AT__ENCR__DATA& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__AT__ENCR__DATA_template& EAP__AT__ENCR__DATA_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__AT__ENCR__DATA_template& EAP__AT__ENCR__DATA_template::operator=(const EAP__AT__ENCR__DATA_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__AT__ENCR__DATA EAP__AT__ENCR__DATA_template::valueof() const +{ +EAP__AT__ENCR__DATA ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__AT__ENCR__DATA_template::attributeType() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__AT__ENCR__DATA_template::attributeType() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__AT__ENCR__DATA_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__AT__ENCR__DATA_template::len() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__AT__ENCR__DATA_template::reserved() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__AT__ENCR__DATA_template::reserved() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& EAP__AT__ENCR__DATA_template::encrData() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& EAP__AT__ENCR__DATA_template::encrData() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EAP__AT__ENCR__DATA_template::get_descriptor() const { return &EAP__AT__ENCR__DATA_descr_; } +const char* EAP__AT__ENCR__DATA_template::fld_name(int p_index) const { return EAP__AT__ENCR__DATA::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +BITSTRING f__HMAC__SHA__256(const BITSTRING& p__Key, const OCTETSTRING& p__String) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn", 16, TTCN_Location::LOCATION_FUNCTION, "f_HMAC_SHA_256"); +charstring_list param_names; +param_names[0] = "p_Key"; +param_names[1] = "p_String"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_HMAC_SHA_256", "function", "EAP_TypeDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Key, "p_Key", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__String, "p_String", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(19); +ttcn3_debugger.breakpoint_entry(19); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 19 */ +{ +BITSTRING tmp_0; +return DEBUGGER_STORE_RETURN_VALUE(tmp_0, CommonDefs::fx__KeyDerivationFunction(CommonDefs::tsc__KDF__HMAC__SHA__256, p__Key, p__String)); +} +} + +BITSTRING f__ExtendedEAPAKA__PRF(const BITSTRING& p__Key, const OCTETSTRING& p__String, const INTEGER& p__NumberOfOutputBits) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn", 22, TTCN_Location::LOCATION_FUNCTION, "f_ExtendedEAPAKA_PRF"); +charstring_list param_names; +param_names[0] = "p_Key"; +param_names[1] = "p_String"; +param_names[2] = "p_NumberOfOutputBits"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_ExtendedEAPAKA_PRF", "function", "EAP_TypeDefs", param_names, param_types, NULL); +debug_scope.add_variable(&p__Key, "p_Key", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__String, "p_String", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NumberOfOutputBits, "p_NumberOfOutputBits", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(26); +ttcn3_debugger.breakpoint_entry(26); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 26 */ +INTEGER v__BlockSize(256); +debug_scope.add_variable(&v__BlockSize, "v_BlockSize", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(27); +ttcn3_debugger.breakpoint_entry(27); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 27 */ +INTEGER N((((p__NumberOfOutputBits + v__BlockSize) - 1) / v__BlockSize)); +debug_scope.add_variable(&N, "N", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(28); +ttcn3_debugger.breakpoint_entry(28); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 28 */ +OCTETSTRING v__String; +debug_scope.add_variable(&v__String, "v_String", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(29); +ttcn3_debugger.breakpoint_entry(29); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 29 */ +BITSTRING v__T__i(bs_0); +debug_scope.add_variable(&v__T__i, "v_T_i", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(30); +ttcn3_debugger.breakpoint_entry(30); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 30 */ +BITSTRING v__MK(bs_0); +debug_scope.add_variable(&v__MK, "v_MK", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(31); +ttcn3_debugger.breakpoint_entry(31); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 31 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 33 */ +i = 0; +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 33 */ +for ( ; ; ) { +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 33 */ +if (!(i < N)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(34); +ttcn3_debugger.breakpoint_entry(34); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 34 */ +v__String = ((bit2oct(v__T__i) + p__String) + int2oct((i + 1), 1)); +current_location.update_lineno(35); +ttcn3_debugger.breakpoint_entry(35); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 35 */ +v__T__i = f__HMAC__SHA__256(p__Key, v__String); +current_location.update_lineno(36); +ttcn3_debugger.breakpoint_entry(36); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 36 */ +{ +BITSTRING tmp_4; +tmp_4 = (v__MK + v__T__i); +v__MK = tmp_4; +} +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 33 */ +{ +INTEGER tmp_5; +++i; +} +} +current_location.update_lineno(38); +ttcn3_debugger.breakpoint_entry(38); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 38 */ +{ +BITSTRING tmp_6; +return DEBUGGER_STORE_RETURN_VALUE(tmp_6, substr(v__MK, 0, p__NumberOfOutputBits)); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EAP_TypeDefs"); +EAP__TypeDefs::init_ttcn3_debugger(); +CommonDefs::module_object.pre_init_module(); +module_object.add_function("f_HMAC_SHA_256", (genericfunc_t)&f__HMAC__SHA__256, NULL); +module_object.add_function("f_ExtendedEAPAKA_PRF", (genericfunc_t)&f__ExtendedEAPAKA__PRF, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EAP_TypeDefs"); +CommonDefs::module_object.post_init_module(); +current_location.update_lineno(24); +ttcn3_debugger.breakpoint_entry(24); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/EAP_TypeDefs.ttcn, line 24 */ +const_f__ExtendedEAPAKA__PRF_p__NumberOfOutputBits_defval = 1664; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/EAP_TypeDefs.hh b/build/Ats_NG_NAS/EAP_TypeDefs.hh new file mode 100644 index 0000000000000000000000000000000000000000..03661fd0476924320cd450056e4b81854112e328 --- /dev/null +++ b/build/Ats_NG_NAS/EAP_TypeDefs.hh @@ -0,0 +1,3409 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef EAP__TypeDefs_HH +#define EAP__TypeDefs_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "CommonDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 EAP__TypeDefs_HH +#endif + +namespace EAP__TypeDefs { + +/* Forward declarations of classes */ + +class EAP__Message__Type; +class EAP__Message__Type_template; +class EAP__Attributes; +class EAP__Attributes_template; +class EAP__AT__RAND; +class EAP__AT__RAND_template; +class EAP__AT__AUTN; +class EAP__AT__AUTN_template; +class EAP__AT__RES; +class EAP__AT__RES_template; +class EAP__AT__AUTS; +class EAP__AT__AUTS_template; +class EAP__AT__PADDING; +class EAP__AT__PADDING_template; +class EAP__AT__PERMANENT__ID__REQ; +class EAP__AT__PERMANENT__ID__REQ_template; +class EAP__AT__MAC; +class EAP__AT__MAC_template; +class EAP__AT__NOTIFICATION; +class EAP__AT__NOTIFICATION_template; +class EAP__AT__ANY__ID__REQ; +class EAP__AT__ANY__ID__REQ_template; +class EAP__AT__IDENTITY; +class EAP__AT__IDENTITY_template; +class EAP__AT__VERSION__LIST; +class EAP__AT__VERSION__LIST_template; +class EAP__AT__SELECTED__VERSION; +class EAP__AT__SELECTED__VERSION_template; +class EAP__AT__FULLAUTH__ID__REQ; +class EAP__AT__FULLAUTH__ID__REQ_template; +class EAP__AT__COUNTER; +class EAP__AT__COUNTER_template; +class EAP__AT__COUNTER__TOO__SMALL; +class EAP__AT__COUNTER__TOO__SMALL_template; +class EAP__AT__NONCE__S; +class EAP__AT__NONCE__S_template; +class EAP__AT__CLIENT__ERROR__CODE; +class EAP__AT__CLIENT__ERROR__CODE_template; +class EAP__AT__IV; +class EAP__AT__IV_template; +class EAP__AT__NEXT__PSEUDONYM; +class EAP__AT__NEXT__PSEUDONYM_template; +class EAP__AT__NEXT__REAUTH__ID; +class EAP__AT__NEXT__REAUTH__ID_template; +class EAP__AT__CHECKCODE; +class EAP__AT__CHECKCODE_template; +class EAP__AT__RESULT__IND; +class EAP__AT__RESULT__IND_template; +class EAP__AT__KDF__INPUT; +class EAP__AT__KDF__INPUT_template; +class EAP__AT__KDF; +class EAP__AT__KDF_template; +class EAP__Request__Type; +class EAP__Request__Type_template; +class EAP__Response__Type; +class EAP__Response__Type_template; +class EAP__Success__Type; +class EAP__Success__Type_template; +class EAP__Failure__Type; +class EAP__Failure__Type_template; +class EAP__AT__ENCR__DATA; +class EAP__AT__ENCR__DATA_template; + +} /* end of namespace */ + +#ifndef EAP__TypeDefs_HH +#define EAP__TypeDefs_HH + +namespace EAP__TypeDefs { + +/* Class definitions */ + +class EAP__Message__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_akaId__Req = 1, ALT_akaId__Rsp = 2, ALT_akaChallenge__Req = 3, ALT_akaChallenge__Rsp = 4, ALT_akaAuthReject = 5, ALT_akaSynchronizationFailure = 6, ALT_akaReauthentication__Req = 7, ALT_akaReauthentication__Rsp = 8, ALT_akaClientError = 9, ALT_akaNotification__Req = 10, ALT_akaNotification__Rsp = 11, ALT_success = 12, ALT_failure = 13 }; +private: +union_selection_type union_selection; +union { +EAP__Request__Type *field_akaId__Req; +EAP__Response__Type *field_akaId__Rsp; +EAP__Request__Type *field_akaChallenge__Req; +EAP__Response__Type *field_akaChallenge__Rsp; +EAP__Response__Type *field_akaAuthReject; +EAP__Response__Type *field_akaSynchronizationFailure; +EAP__Request__Type *field_akaReauthentication__Req; +EAP__Response__Type *field_akaReauthentication__Rsp; +EAP__Response__Type *field_akaClientError; +EAP__Request__Type *field_akaNotification__Req; +EAP__Response__Type *field_akaNotification__Rsp; +EAP__Success__Type *field_success; +EAP__Failure__Type *field_failure; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const EAP__Message__Type& other_value); + +public: +EAP__Message__Type(); +EAP__Message__Type(const EAP__Message__Type& other_value); +~EAP__Message__Type(); +EAP__Message__Type& operator=(const EAP__Message__Type& other_value); +boolean operator==(const EAP__Message__Type& other_value) const; +inline boolean operator!=(const EAP__Message__Type& other_value) const { return !(*this == other_value); } +EAP__Request__Type& akaId__Req(); +const EAP__Request__Type& akaId__Req() const; +EAP__Response__Type& akaId__Rsp(); +const EAP__Response__Type& akaId__Rsp() const; +EAP__Request__Type& akaChallenge__Req(); +const EAP__Request__Type& akaChallenge__Req() const; +EAP__Response__Type& akaChallenge__Rsp(); +const EAP__Response__Type& akaChallenge__Rsp() const; +EAP__Response__Type& akaAuthReject(); +const EAP__Response__Type& akaAuthReject() const; +EAP__Response__Type& akaSynchronizationFailure(); +const EAP__Response__Type& akaSynchronizationFailure() const; +EAP__Request__Type& akaReauthentication__Req(); +const EAP__Request__Type& akaReauthentication__Req() const; +EAP__Response__Type& akaReauthentication__Rsp(); +const EAP__Response__Type& akaReauthentication__Rsp() const; +EAP__Response__Type& akaClientError(); +const EAP__Response__Type& akaClientError() const; +EAP__Request__Type& akaNotification__Req(); +const EAP__Request__Type& akaNotification__Req() const; +EAP__Response__Type& akaNotification__Rsp(); +const EAP__Response__Type& akaNotification__Rsp() const; +EAP__Success__Type& success(); +const EAP__Success__Type& success() const; +EAP__Failure__Type& failure(); +const EAP__Failure__Type& failure() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class EAP__Message__Type_template : public Base_Template { +union { +struct { +EAP__Message__Type::union_selection_type union_selection; +union { +EAP__Request__Type_template *field_akaId__Req; +EAP__Response__Type_template *field_akaId__Rsp; +EAP__Request__Type_template *field_akaChallenge__Req; +EAP__Response__Type_template *field_akaChallenge__Rsp; +EAP__Response__Type_template *field_akaAuthReject; +EAP__Response__Type_template *field_akaSynchronizationFailure; +EAP__Request__Type_template *field_akaReauthentication__Req; +EAP__Response__Type_template *field_akaReauthentication__Rsp; +EAP__Response__Type_template *field_akaClientError; +EAP__Request__Type_template *field_akaNotification__Req; +EAP__Response__Type_template *field_akaNotification__Rsp; +EAP__Success__Type_template *field_success; +EAP__Failure__Type_template *field_failure; +}; +} single_value; +struct { +unsigned int n_values; +EAP__Message__Type_template *list_value; +} value_list; +struct { +EAP__Message__Type_template* precondition; +EAP__Message__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const EAP__Message__Type& other_value); + +void copy_template(const EAP__Message__Type_template& other_value); + +public: +EAP__Message__Type_template(); +EAP__Message__Type_template(template_sel other_value); +EAP__Message__Type_template(const EAP__Message__Type& other_value); +EAP__Message__Type_template(const OPTIONAL& other_value); +EAP__Message__Type_template(EAP__Message__Type_template* p_precondition, EAP__Message__Type_template* p_implied_template); +EAP__Message__Type_template(Dynamic_Match_Interface* p_dyn_match); +EAP__Message__Type_template(const EAP__Message__Type_template& other_value); +~EAP__Message__Type_template(); +void clean_up(); +EAP__Message__Type_template& operator=(template_sel other_value); +EAP__Message__Type_template& operator=(const EAP__Message__Type& other_value); +EAP__Message__Type_template& operator=(const OPTIONAL& other_value); +EAP__Message__Type_template& operator=(const EAP__Message__Type_template& other_value); +boolean match(const EAP__Message__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;EAP__Message__Type valueof() const; +EAP__Message__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +EAP__Message__Type::union_selection_type get_union_selection() const; +EAP__Request__Type_template& akaId__Req(); +const EAP__Request__Type_template& akaId__Req() const; +EAP__Response__Type_template& akaId__Rsp(); +const EAP__Response__Type_template& akaId__Rsp() const; +EAP__Request__Type_template& akaChallenge__Req(); +const EAP__Request__Type_template& akaChallenge__Req() const; +EAP__Response__Type_template& akaChallenge__Rsp(); +const EAP__Response__Type_template& akaChallenge__Rsp() const; +EAP__Response__Type_template& akaAuthReject(); +const EAP__Response__Type_template& akaAuthReject() const; +EAP__Response__Type_template& akaSynchronizationFailure(); +const EAP__Response__Type_template& akaSynchronizationFailure() const; +EAP__Request__Type_template& akaReauthentication__Req(); +const EAP__Request__Type_template& akaReauthentication__Req() const; +EAP__Response__Type_template& akaReauthentication__Rsp(); +const EAP__Response__Type_template& akaReauthentication__Rsp() const; +EAP__Response__Type_template& akaClientError(); +const EAP__Response__Type_template& akaClientError() const; +EAP__Request__Type_template& akaNotification__Req(); +const EAP__Request__Type_template& akaNotification__Req() const; +EAP__Response__Type_template& akaNotification__Rsp(); +const EAP__Response__Type_template& akaNotification__Rsp() const; +EAP__Success__Type_template& success(); +const EAP__Success__Type_template& success() const; +EAP__Failure__Type_template& failure(); +const EAP__Failure__Type_template& failure() const; +boolean ischosen(EAP__Message__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const EAP__Message__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class EAP__Attributes : public Record_Type { + OPTIONAL field_rand; + OPTIONAL field_autn; + OPTIONAL field_res; + OPTIONAL field_auts; + OPTIONAL field_padd; + OPTIONAL field_permIdReq; + OPTIONAL field_mac; + OPTIONAL field_notification; + OPTIONAL field_anyIdReq; + OPTIONAL field_id; + OPTIONAL field_versionList; + OPTIONAL field_selectedVersion; + OPTIONAL field_fullauthIdReq; + OPTIONAL field_counter; + OPTIONAL field_counterTooSmall; + OPTIONAL field_nonceS; + OPTIONAL field_clientErrorCode; + OPTIONAL field_iv; + OPTIONAL field_nextPseudonym; + OPTIONAL field_nextReauthId; + OPTIONAL field_checkCode; + OPTIONAL field_resultInd; + OPTIONAL field_kdfInput; + OPTIONAL field_kdf; + Base_Type* fld_vec[24]; + void init_vec(); +public: + EAP__Attributes(); + EAP__Attributes(const EAP__Attributes& other_value); + EAP__Attributes(const OPTIONAL& par_rand, + const OPTIONAL& par_autn, + const OPTIONAL& par_res, + const OPTIONAL& par_auts, + const OPTIONAL& par_padd, + const OPTIONAL& par_permIdReq, + const OPTIONAL& par_mac, + const OPTIONAL& par_notification, + const OPTIONAL& par_anyIdReq, + const OPTIONAL& par_id, + const OPTIONAL& par_versionList, + const OPTIONAL& par_selectedVersion, + const OPTIONAL& par_fullauthIdReq, + const OPTIONAL& par_counter, + const OPTIONAL& par_counterTooSmall, + const OPTIONAL& par_nonceS, + const OPTIONAL& par_clientErrorCode, + const OPTIONAL& par_iv, + const OPTIONAL& par_nextPseudonym, + const OPTIONAL& par_nextReauthId, + const OPTIONAL& par_checkCode, + const OPTIONAL& par_resultInd, + const OPTIONAL& par_kdfInput, + const OPTIONAL& par_kdf); +inline EAP__Attributes& operator=(const EAP__Attributes& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__Attributes& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__Attributes& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& rand() + {return field_rand;} + inline const OPTIONAL& rand() const + {return field_rand;} + inline OPTIONAL& autn() + {return field_autn;} + inline const OPTIONAL& autn() const + {return field_autn;} + inline OPTIONAL& res() + {return field_res;} + inline const OPTIONAL& res() const + {return field_res;} + inline OPTIONAL& auts() + {return field_auts;} + inline const OPTIONAL& auts() const + {return field_auts;} + inline OPTIONAL& padd() + {return field_padd;} + inline const OPTIONAL& padd() const + {return field_padd;} + inline OPTIONAL& permIdReq() + {return field_permIdReq;} + inline const OPTIONAL& permIdReq() const + {return field_permIdReq;} + inline OPTIONAL& mac() + {return field_mac;} + inline const OPTIONAL& mac() const + {return field_mac;} + inline OPTIONAL& notification() + {return field_notification;} + inline const OPTIONAL& notification() const + {return field_notification;} + inline OPTIONAL& anyIdReq() + {return field_anyIdReq;} + inline const OPTIONAL& anyIdReq() const + {return field_anyIdReq;} + inline OPTIONAL& id() + {return field_id;} + inline const OPTIONAL& id() const + {return field_id;} + inline OPTIONAL& versionList() + {return field_versionList;} + inline const OPTIONAL& versionList() const + {return field_versionList;} + inline OPTIONAL& selectedVersion() + {return field_selectedVersion;} + inline const OPTIONAL& selectedVersion() const + {return field_selectedVersion;} + inline OPTIONAL& fullauthIdReq() + {return field_fullauthIdReq;} + inline const OPTIONAL& fullauthIdReq() const + {return field_fullauthIdReq;} + inline OPTIONAL& counter() + {return field_counter;} + inline const OPTIONAL& counter() const + {return field_counter;} + inline OPTIONAL& counterTooSmall() + {return field_counterTooSmall;} + inline const OPTIONAL& counterTooSmall() const + {return field_counterTooSmall;} + inline OPTIONAL& nonceS() + {return field_nonceS;} + inline const OPTIONAL& nonceS() const + {return field_nonceS;} + inline OPTIONAL& clientErrorCode() + {return field_clientErrorCode;} + inline const OPTIONAL& clientErrorCode() const + {return field_clientErrorCode;} + inline OPTIONAL& iv() + {return field_iv;} + inline const OPTIONAL& iv() const + {return field_iv;} + inline OPTIONAL& nextPseudonym() + {return field_nextPseudonym;} + inline const OPTIONAL& nextPseudonym() const + {return field_nextPseudonym;} + inline OPTIONAL& nextReauthId() + {return field_nextReauthId;} + inline const OPTIONAL& nextReauthId() const + {return field_nextReauthId;} + inline OPTIONAL& checkCode() + {return field_checkCode;} + inline const OPTIONAL& checkCode() const + {return field_checkCode;} + inline OPTIONAL& resultInd() + {return field_resultInd;} + inline const OPTIONAL& resultInd() const + {return field_resultInd;} + inline OPTIONAL& kdfInput() + {return field_kdfInput;} + inline const OPTIONAL& kdfInput() const + {return field_kdfInput;} + inline OPTIONAL& kdf() + {return field_kdf;} + inline const OPTIONAL& kdf() const + {return field_kdf;} +Base_Type* clone() const { return new EAP__Attributes(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return TRUE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 24; } +int optional_count() const { return 24; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__Attributes_template : public Record_Template { +void set_specific(); +public: +EAP__Attributes_template(): Record_Template() {} +EAP__Attributes_template(template_sel other_value): Record_Template(other_value) {} +EAP__Attributes_template(const EAP__Attributes& other_value): Record_Template() { copy_value(&other_value); } +EAP__Attributes_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__Attributes_template(EAP__Attributes_template* p_precondition, EAP__Attributes_template* p_implied_template); +EAP__Attributes_template(Dynamic_Match_Interface* p_dyn_match); +EAP__Attributes_template(const EAP__Attributes_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__Attributes_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__Attributes_template& operator=(template_sel other_value); +EAP__Attributes_template& operator=(const EAP__Attributes& other_value); +EAP__Attributes_template& operator=(const OPTIONAL& other_value); +EAP__Attributes_template& operator=(const EAP__Attributes_template& other_value); +inline boolean match(const EAP__Attributes& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__Attributes& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__Attributes valueof() const; +inline EAP__Attributes_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +EAP__AT__RAND_template& rand(); +const EAP__AT__RAND_template& rand() const; +EAP__AT__AUTN_template& autn(); +const EAP__AT__AUTN_template& autn() const; +EAP__AT__RES_template& res(); +const EAP__AT__RES_template& res() const; +EAP__AT__AUTS_template& auts(); +const EAP__AT__AUTS_template& auts() const; +EAP__AT__PADDING_template& padd(); +const EAP__AT__PADDING_template& padd() const; +EAP__AT__PERMANENT__ID__REQ_template& permIdReq(); +const EAP__AT__PERMANENT__ID__REQ_template& permIdReq() const; +EAP__AT__MAC_template& mac(); +const EAP__AT__MAC_template& mac() const; +EAP__AT__NOTIFICATION_template& notification(); +const EAP__AT__NOTIFICATION_template& notification() const; +EAP__AT__ANY__ID__REQ_template& anyIdReq(); +const EAP__AT__ANY__ID__REQ_template& anyIdReq() const; +EAP__AT__IDENTITY_template& id(); +const EAP__AT__IDENTITY_template& id() const; +EAP__AT__VERSION__LIST_template& versionList(); +const EAP__AT__VERSION__LIST_template& versionList() const; +EAP__AT__SELECTED__VERSION_template& selectedVersion(); +const EAP__AT__SELECTED__VERSION_template& selectedVersion() const; +EAP__AT__FULLAUTH__ID__REQ_template& fullauthIdReq(); +const EAP__AT__FULLAUTH__ID__REQ_template& fullauthIdReq() const; +EAP__AT__COUNTER_template& counter(); +const EAP__AT__COUNTER_template& counter() const; +EAP__AT__COUNTER__TOO__SMALL_template& counterTooSmall(); +const EAP__AT__COUNTER__TOO__SMALL_template& counterTooSmall() const; +EAP__AT__NONCE__S_template& nonceS(); +const EAP__AT__NONCE__S_template& nonceS() const; +EAP__AT__CLIENT__ERROR__CODE_template& clientErrorCode(); +const EAP__AT__CLIENT__ERROR__CODE_template& clientErrorCode() const; +EAP__AT__IV_template& iv(); +const EAP__AT__IV_template& iv() const; +EAP__AT__NEXT__PSEUDONYM_template& nextPseudonym(); +const EAP__AT__NEXT__PSEUDONYM_template& nextPseudonym() const; +EAP__AT__NEXT__REAUTH__ID_template& nextReauthId(); +const EAP__AT__NEXT__REAUTH__ID_template& nextReauthId() const; +EAP__AT__CHECKCODE_template& checkCode(); +const EAP__AT__CHECKCODE_template& checkCode() const; +EAP__AT__RESULT__IND_template& resultInd(); +const EAP__AT__RESULT__IND_template& resultInd() const; +EAP__AT__KDF__INPUT_template& kdfInput(); +const EAP__AT__KDF__INPUT_template& kdfInput() const; +EAP__AT__KDF_template& kdf(); +const EAP__AT__KDF_template& kdf() const; +Record_Template* create() const { return new EAP__Attributes_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__RAND : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + OCTETSTRING field_rand; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__RAND(); + EAP__AT__RAND(const EAP__AT__RAND& other_value); + EAP__AT__RAND(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_rand); +inline EAP__AT__RAND& operator=(const EAP__AT__RAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__RAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__RAND& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} + inline OCTETSTRING& rand() + {return field_rand;} + inline const OCTETSTRING& rand() const + {return field_rand;} +Base_Type* clone() const { return new EAP__AT__RAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__RAND_template : public Record_Template { +void set_specific(); +public: +EAP__AT__RAND_template(): Record_Template() {} +EAP__AT__RAND_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__RAND_template(const EAP__AT__RAND& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__RAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__RAND_template(EAP__AT__RAND_template* p_precondition, EAP__AT__RAND_template* p_implied_template); +EAP__AT__RAND_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__RAND_template(const EAP__AT__RAND_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__RAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__RAND_template& operator=(template_sel other_value); +EAP__AT__RAND_template& operator=(const EAP__AT__RAND& other_value); +EAP__AT__RAND_template& operator=(const OPTIONAL& other_value); +EAP__AT__RAND_template& operator=(const EAP__AT__RAND_template& other_value); +inline boolean match(const EAP__AT__RAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__RAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__RAND valueof() const; +inline EAP__AT__RAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +OCTETSTRING_template& rand(); +const OCTETSTRING_template& rand() const; +Record_Template* create() const { return new EAP__AT__RAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__AUTN : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + OCTETSTRING field_autn; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__AUTN(); + EAP__AT__AUTN(const EAP__AT__AUTN& other_value); + EAP__AT__AUTN(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_autn); +inline EAP__AT__AUTN& operator=(const EAP__AT__AUTN& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__AUTN& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__AUTN& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} + inline OCTETSTRING& autn() + {return field_autn;} + inline const OCTETSTRING& autn() const + {return field_autn;} +Base_Type* clone() const { return new EAP__AT__AUTN(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__AUTN_template : public Record_Template { +void set_specific(); +public: +EAP__AT__AUTN_template(): Record_Template() {} +EAP__AT__AUTN_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__AUTN_template(const EAP__AT__AUTN& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__AUTN_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__AUTN_template(EAP__AT__AUTN_template* p_precondition, EAP__AT__AUTN_template* p_implied_template); +EAP__AT__AUTN_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__AUTN_template(const EAP__AT__AUTN_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__AUTN_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__AUTN_template& operator=(template_sel other_value); +EAP__AT__AUTN_template& operator=(const EAP__AT__AUTN& other_value); +EAP__AT__AUTN_template& operator=(const OPTIONAL& other_value); +EAP__AT__AUTN_template& operator=(const EAP__AT__AUTN_template& other_value); +inline boolean match(const EAP__AT__AUTN& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__AUTN& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__AUTN valueof() const; +inline EAP__AT__AUTN_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +OCTETSTRING_template& autn(); +const OCTETSTRING_template& autn() const; +Record_Template* create() const { return new EAP__AT__AUTN_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__RES : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reslen; + OCTETSTRING field_res; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__RES(); + EAP__AT__RES(const EAP__AT__RES& other_value); + EAP__AT__RES(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reslen, + const OCTETSTRING& par_res); +inline EAP__AT__RES& operator=(const EAP__AT__RES& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__RES& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__RES& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reslen() + {return field_reslen;} + inline const OCTETSTRING& reslen() const + {return field_reslen;} + inline OCTETSTRING& res() + {return field_res;} + inline const OCTETSTRING& res() const + {return field_res;} +Base_Type* clone() const { return new EAP__AT__RES(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__RES_template : public Record_Template { +void set_specific(); +public: +EAP__AT__RES_template(): Record_Template() {} +EAP__AT__RES_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__RES_template(const EAP__AT__RES& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__RES_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__RES_template(EAP__AT__RES_template* p_precondition, EAP__AT__RES_template* p_implied_template); +EAP__AT__RES_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__RES_template(const EAP__AT__RES_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__RES_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__RES_template& operator=(template_sel other_value); +EAP__AT__RES_template& operator=(const EAP__AT__RES& other_value); +EAP__AT__RES_template& operator=(const OPTIONAL& other_value); +EAP__AT__RES_template& operator=(const EAP__AT__RES_template& other_value); +inline boolean match(const EAP__AT__RES& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__RES& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__RES valueof() const; +inline EAP__AT__RES_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reslen(); +const OCTETSTRING_template& reslen() const; +OCTETSTRING_template& res(); +const OCTETSTRING_template& res() const; +Record_Template* create() const { return new EAP__AT__RES_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__AUTS : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_auts; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__AUTS(); + EAP__AT__AUTS(const EAP__AT__AUTS& other_value); + EAP__AT__AUTS(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_auts); +inline EAP__AT__AUTS& operator=(const EAP__AT__AUTS& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__AUTS& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__AUTS& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& auts() + {return field_auts;} + inline const OCTETSTRING& auts() const + {return field_auts;} +Base_Type* clone() const { return new EAP__AT__AUTS(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__AUTS_template : public Record_Template { +void set_specific(); +public: +EAP__AT__AUTS_template(): Record_Template() {} +EAP__AT__AUTS_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__AUTS_template(const EAP__AT__AUTS& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__AUTS_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__AUTS_template(EAP__AT__AUTS_template* p_precondition, EAP__AT__AUTS_template* p_implied_template); +EAP__AT__AUTS_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__AUTS_template(const EAP__AT__AUTS_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__AUTS_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__AUTS_template& operator=(template_sel other_value); +EAP__AT__AUTS_template& operator=(const EAP__AT__AUTS& other_value); +EAP__AT__AUTS_template& operator=(const OPTIONAL& other_value); +EAP__AT__AUTS_template& operator=(const EAP__AT__AUTS_template& other_value); +inline boolean match(const EAP__AT__AUTS& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__AUTS& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__AUTS valueof() const; +inline EAP__AT__AUTS_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& auts(); +const OCTETSTRING_template& auts() const; +Record_Template* create() const { return new EAP__AT__AUTS_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__PADDING : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_padding; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__PADDING(); + EAP__AT__PADDING(const EAP__AT__PADDING& other_value); + EAP__AT__PADDING(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_padding); +inline EAP__AT__PADDING& operator=(const EAP__AT__PADDING& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__PADDING& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__PADDING& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& padding() + {return field_padding;} + inline const OCTETSTRING& padding() const + {return field_padding;} +Base_Type* clone() const { return new EAP__AT__PADDING(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__PADDING_template : public Record_Template { +void set_specific(); +public: +EAP__AT__PADDING_template(): Record_Template() {} +EAP__AT__PADDING_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__PADDING_template(const EAP__AT__PADDING& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__PADDING_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__PADDING_template(EAP__AT__PADDING_template* p_precondition, EAP__AT__PADDING_template* p_implied_template); +EAP__AT__PADDING_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__PADDING_template(const EAP__AT__PADDING_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__PADDING_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__PADDING_template& operator=(template_sel other_value); +EAP__AT__PADDING_template& operator=(const EAP__AT__PADDING& other_value); +EAP__AT__PADDING_template& operator=(const OPTIONAL& other_value); +EAP__AT__PADDING_template& operator=(const EAP__AT__PADDING_template& other_value); +inline boolean match(const EAP__AT__PADDING& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__PADDING& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__PADDING valueof() const; +inline EAP__AT__PADDING_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& padding(); +const OCTETSTRING_template& padding() const; +Record_Template* create() const { return new EAP__AT__PADDING_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__PERMANENT__ID__REQ : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__PERMANENT__ID__REQ(); + EAP__AT__PERMANENT__ID__REQ(const EAP__AT__PERMANENT__ID__REQ& other_value); + EAP__AT__PERMANENT__ID__REQ(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved); +inline EAP__AT__PERMANENT__ID__REQ& operator=(const EAP__AT__PERMANENT__ID__REQ& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__PERMANENT__ID__REQ& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__PERMANENT__ID__REQ& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} +Base_Type* clone() const { return new EAP__AT__PERMANENT__ID__REQ(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__PERMANENT__ID__REQ_template : public Record_Template { +void set_specific(); +public: +EAP__AT__PERMANENT__ID__REQ_template(): Record_Template() {} +EAP__AT__PERMANENT__ID__REQ_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__PERMANENT__ID__REQ_template(const EAP__AT__PERMANENT__ID__REQ& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__PERMANENT__ID__REQ_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__PERMANENT__ID__REQ_template(EAP__AT__PERMANENT__ID__REQ_template* p_precondition, EAP__AT__PERMANENT__ID__REQ_template* p_implied_template); +EAP__AT__PERMANENT__ID__REQ_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__PERMANENT__ID__REQ_template(const EAP__AT__PERMANENT__ID__REQ_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__PERMANENT__ID__REQ_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__PERMANENT__ID__REQ_template& operator=(template_sel other_value); +EAP__AT__PERMANENT__ID__REQ_template& operator=(const EAP__AT__PERMANENT__ID__REQ& other_value); +EAP__AT__PERMANENT__ID__REQ_template& operator=(const OPTIONAL& other_value); +EAP__AT__PERMANENT__ID__REQ_template& operator=(const EAP__AT__PERMANENT__ID__REQ_template& other_value); +inline boolean match(const EAP__AT__PERMANENT__ID__REQ& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__PERMANENT__ID__REQ& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__PERMANENT__ID__REQ valueof() const; +inline EAP__AT__PERMANENT__ID__REQ_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +Record_Template* create() const { return new EAP__AT__PERMANENT__ID__REQ_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__MAC : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + OCTETSTRING field_mac; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__MAC(); + EAP__AT__MAC(const EAP__AT__MAC& other_value); + EAP__AT__MAC(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_mac); +inline EAP__AT__MAC& operator=(const EAP__AT__MAC& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__MAC& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__MAC& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} + inline OCTETSTRING& mac() + {return field_mac;} + inline const OCTETSTRING& mac() const + {return field_mac;} +Base_Type* clone() const { return new EAP__AT__MAC(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__MAC_template : public Record_Template { +void set_specific(); +public: +EAP__AT__MAC_template(): Record_Template() {} +EAP__AT__MAC_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__MAC_template(const EAP__AT__MAC& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__MAC_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__MAC_template(EAP__AT__MAC_template* p_precondition, EAP__AT__MAC_template* p_implied_template); +EAP__AT__MAC_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__MAC_template(const EAP__AT__MAC_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__MAC_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__MAC_template& operator=(template_sel other_value); +EAP__AT__MAC_template& operator=(const EAP__AT__MAC& other_value); +EAP__AT__MAC_template& operator=(const OPTIONAL& other_value); +EAP__AT__MAC_template& operator=(const EAP__AT__MAC_template& other_value); +inline boolean match(const EAP__AT__MAC& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__MAC& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__MAC valueof() const; +inline EAP__AT__MAC_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +OCTETSTRING_template& mac(); +const OCTETSTRING_template& mac() const; +Record_Template* create() const { return new EAP__AT__MAC_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__NOTIFICATION : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + BITSTRING field_s; + BITSTRING field_p; + BITSTRING field_notificationCode; + Base_Type* fld_vec[5]; + void init_vec(); +public: + EAP__AT__NOTIFICATION(); + EAP__AT__NOTIFICATION(const EAP__AT__NOTIFICATION& other_value); + EAP__AT__NOTIFICATION(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const BITSTRING& par_s, + const BITSTRING& par_p, + const BITSTRING& par_notificationCode); +inline EAP__AT__NOTIFICATION& operator=(const EAP__AT__NOTIFICATION& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__NOTIFICATION& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__NOTIFICATION& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline BITSTRING& s() + {return field_s;} + inline const BITSTRING& s() const + {return field_s;} + inline BITSTRING& p() + {return field_p;} + inline const BITSTRING& p() const + {return field_p;} + inline BITSTRING& notificationCode() + {return field_notificationCode;} + inline const BITSTRING& notificationCode() const + {return field_notificationCode;} +Base_Type* clone() const { return new EAP__AT__NOTIFICATION(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__NOTIFICATION_template : public Record_Template { +void set_specific(); +public: +EAP__AT__NOTIFICATION_template(): Record_Template() {} +EAP__AT__NOTIFICATION_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__NOTIFICATION_template(const EAP__AT__NOTIFICATION& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__NOTIFICATION_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__NOTIFICATION_template(EAP__AT__NOTIFICATION_template* p_precondition, EAP__AT__NOTIFICATION_template* p_implied_template); +EAP__AT__NOTIFICATION_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__NOTIFICATION_template(const EAP__AT__NOTIFICATION_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__NOTIFICATION_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__NOTIFICATION_template& operator=(template_sel other_value); +EAP__AT__NOTIFICATION_template& operator=(const EAP__AT__NOTIFICATION& other_value); +EAP__AT__NOTIFICATION_template& operator=(const OPTIONAL& other_value); +EAP__AT__NOTIFICATION_template& operator=(const EAP__AT__NOTIFICATION_template& other_value); +inline boolean match(const EAP__AT__NOTIFICATION& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__NOTIFICATION& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__NOTIFICATION valueof() const; +inline EAP__AT__NOTIFICATION_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +BITSTRING_template& s(); +const BITSTRING_template& s() const; +BITSTRING_template& p(); +const BITSTRING_template& p() const; +BITSTRING_template& notificationCode(); +const BITSTRING_template& notificationCode() const; +Record_Template* create() const { return new EAP__AT__NOTIFICATION_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__ANY__ID__REQ : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__ANY__ID__REQ(); + EAP__AT__ANY__ID__REQ(const EAP__AT__ANY__ID__REQ& other_value); + EAP__AT__ANY__ID__REQ(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved); +inline EAP__AT__ANY__ID__REQ& operator=(const EAP__AT__ANY__ID__REQ& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__ANY__ID__REQ& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__ANY__ID__REQ& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} +Base_Type* clone() const { return new EAP__AT__ANY__ID__REQ(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__ANY__ID__REQ_template : public Record_Template { +void set_specific(); +public: +EAP__AT__ANY__ID__REQ_template(): Record_Template() {} +EAP__AT__ANY__ID__REQ_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__ANY__ID__REQ_template(const EAP__AT__ANY__ID__REQ& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__ANY__ID__REQ_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__ANY__ID__REQ_template(EAP__AT__ANY__ID__REQ_template* p_precondition, EAP__AT__ANY__ID__REQ_template* p_implied_template); +EAP__AT__ANY__ID__REQ_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__ANY__ID__REQ_template(const EAP__AT__ANY__ID__REQ_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__ANY__ID__REQ_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__ANY__ID__REQ_template& operator=(template_sel other_value); +EAP__AT__ANY__ID__REQ_template& operator=(const EAP__AT__ANY__ID__REQ& other_value); +EAP__AT__ANY__ID__REQ_template& operator=(const OPTIONAL& other_value); +EAP__AT__ANY__ID__REQ_template& operator=(const EAP__AT__ANY__ID__REQ_template& other_value); +inline boolean match(const EAP__AT__ANY__ID__REQ& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__ANY__ID__REQ& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__ANY__ID__REQ valueof() const; +inline EAP__AT__ANY__ID__REQ_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +Record_Template* create() const { return new EAP__AT__ANY__ID__REQ_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__IDENTITY : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_actualIdlen; + OCTETSTRING field_id; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__IDENTITY(); + EAP__AT__IDENTITY(const EAP__AT__IDENTITY& other_value); + EAP__AT__IDENTITY(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_actualIdlen, + const OCTETSTRING& par_id); +inline EAP__AT__IDENTITY& operator=(const EAP__AT__IDENTITY& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__IDENTITY& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__IDENTITY& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& actualIdlen() + {return field_actualIdlen;} + inline const OCTETSTRING& actualIdlen() const + {return field_actualIdlen;} + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} +Base_Type* clone() const { return new EAP__AT__IDENTITY(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__IDENTITY_template : public Record_Template { +void set_specific(); +public: +EAP__AT__IDENTITY_template(): Record_Template() {} +EAP__AT__IDENTITY_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__IDENTITY_template(const EAP__AT__IDENTITY& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__IDENTITY_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__IDENTITY_template(EAP__AT__IDENTITY_template* p_precondition, EAP__AT__IDENTITY_template* p_implied_template); +EAP__AT__IDENTITY_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__IDENTITY_template(const EAP__AT__IDENTITY_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__IDENTITY_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__IDENTITY_template& operator=(template_sel other_value); +EAP__AT__IDENTITY_template& operator=(const EAP__AT__IDENTITY& other_value); +EAP__AT__IDENTITY_template& operator=(const OPTIONAL& other_value); +EAP__AT__IDENTITY_template& operator=(const EAP__AT__IDENTITY_template& other_value); +inline boolean match(const EAP__AT__IDENTITY& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__IDENTITY& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__IDENTITY valueof() const; +inline EAP__AT__IDENTITY_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& actualIdlen(); +const OCTETSTRING_template& actualIdlen() const; +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +Record_Template* create() const { return new EAP__AT__IDENTITY_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__VERSION__LIST : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_versionList; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__VERSION__LIST(); + EAP__AT__VERSION__LIST(const EAP__AT__VERSION__LIST& other_value); + EAP__AT__VERSION__LIST(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_versionList); +inline EAP__AT__VERSION__LIST& operator=(const EAP__AT__VERSION__LIST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__VERSION__LIST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__VERSION__LIST& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& versionList() + {return field_versionList;} + inline const OCTETSTRING& versionList() const + {return field_versionList;} +Base_Type* clone() const { return new EAP__AT__VERSION__LIST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__VERSION__LIST_template : public Record_Template { +void set_specific(); +public: +EAP__AT__VERSION__LIST_template(): Record_Template() {} +EAP__AT__VERSION__LIST_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__VERSION__LIST_template(const EAP__AT__VERSION__LIST& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__VERSION__LIST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__VERSION__LIST_template(EAP__AT__VERSION__LIST_template* p_precondition, EAP__AT__VERSION__LIST_template* p_implied_template); +EAP__AT__VERSION__LIST_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__VERSION__LIST_template(const EAP__AT__VERSION__LIST_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__VERSION__LIST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__VERSION__LIST_template& operator=(template_sel other_value); +EAP__AT__VERSION__LIST_template& operator=(const EAP__AT__VERSION__LIST& other_value); +EAP__AT__VERSION__LIST_template& operator=(const OPTIONAL& other_value); +EAP__AT__VERSION__LIST_template& operator=(const EAP__AT__VERSION__LIST_template& other_value); +inline boolean match(const EAP__AT__VERSION__LIST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__VERSION__LIST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__VERSION__LIST valueof() const; +inline EAP__AT__VERSION__LIST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& versionList(); +const OCTETSTRING_template& versionList() const; +Record_Template* create() const { return new EAP__AT__VERSION__LIST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__SELECTED__VERSION : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_selectedVersion; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__SELECTED__VERSION(); + EAP__AT__SELECTED__VERSION(const EAP__AT__SELECTED__VERSION& other_value); + EAP__AT__SELECTED__VERSION(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_selectedVersion); +inline EAP__AT__SELECTED__VERSION& operator=(const EAP__AT__SELECTED__VERSION& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__SELECTED__VERSION& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__SELECTED__VERSION& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& selectedVersion() + {return field_selectedVersion;} + inline const OCTETSTRING& selectedVersion() const + {return field_selectedVersion;} +Base_Type* clone() const { return new EAP__AT__SELECTED__VERSION(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__SELECTED__VERSION_template : public Record_Template { +void set_specific(); +public: +EAP__AT__SELECTED__VERSION_template(): Record_Template() {} +EAP__AT__SELECTED__VERSION_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__SELECTED__VERSION_template(const EAP__AT__SELECTED__VERSION& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__SELECTED__VERSION_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__SELECTED__VERSION_template(EAP__AT__SELECTED__VERSION_template* p_precondition, EAP__AT__SELECTED__VERSION_template* p_implied_template); +EAP__AT__SELECTED__VERSION_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__SELECTED__VERSION_template(const EAP__AT__SELECTED__VERSION_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__SELECTED__VERSION_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__SELECTED__VERSION_template& operator=(template_sel other_value); +EAP__AT__SELECTED__VERSION_template& operator=(const EAP__AT__SELECTED__VERSION& other_value); +EAP__AT__SELECTED__VERSION_template& operator=(const OPTIONAL& other_value); +EAP__AT__SELECTED__VERSION_template& operator=(const EAP__AT__SELECTED__VERSION_template& other_value); +inline boolean match(const EAP__AT__SELECTED__VERSION& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__SELECTED__VERSION& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__SELECTED__VERSION valueof() const; +inline EAP__AT__SELECTED__VERSION_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& selectedVersion(); +const OCTETSTRING_template& selectedVersion() const; +Record_Template* create() const { return new EAP__AT__SELECTED__VERSION_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__FULLAUTH__ID__REQ : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__FULLAUTH__ID__REQ(); + EAP__AT__FULLAUTH__ID__REQ(const EAP__AT__FULLAUTH__ID__REQ& other_value); + EAP__AT__FULLAUTH__ID__REQ(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved); +inline EAP__AT__FULLAUTH__ID__REQ& operator=(const EAP__AT__FULLAUTH__ID__REQ& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__FULLAUTH__ID__REQ& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__FULLAUTH__ID__REQ& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} +Base_Type* clone() const { return new EAP__AT__FULLAUTH__ID__REQ(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__FULLAUTH__ID__REQ_template : public Record_Template { +void set_specific(); +public: +EAP__AT__FULLAUTH__ID__REQ_template(): Record_Template() {} +EAP__AT__FULLAUTH__ID__REQ_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__FULLAUTH__ID__REQ_template(const EAP__AT__FULLAUTH__ID__REQ& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__FULLAUTH__ID__REQ_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__FULLAUTH__ID__REQ_template(EAP__AT__FULLAUTH__ID__REQ_template* p_precondition, EAP__AT__FULLAUTH__ID__REQ_template* p_implied_template); +EAP__AT__FULLAUTH__ID__REQ_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__FULLAUTH__ID__REQ_template(const EAP__AT__FULLAUTH__ID__REQ_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__FULLAUTH__ID__REQ_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__FULLAUTH__ID__REQ_template& operator=(template_sel other_value); +EAP__AT__FULLAUTH__ID__REQ_template& operator=(const EAP__AT__FULLAUTH__ID__REQ& other_value); +EAP__AT__FULLAUTH__ID__REQ_template& operator=(const OPTIONAL& other_value); +EAP__AT__FULLAUTH__ID__REQ_template& operator=(const EAP__AT__FULLAUTH__ID__REQ_template& other_value); +inline boolean match(const EAP__AT__FULLAUTH__ID__REQ& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__FULLAUTH__ID__REQ& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__FULLAUTH__ID__REQ valueof() const; +inline EAP__AT__FULLAUTH__ID__REQ_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +Record_Template* create() const { return new EAP__AT__FULLAUTH__ID__REQ_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__COUNTER : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_counter; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__COUNTER(); + EAP__AT__COUNTER(const EAP__AT__COUNTER& other_value); + EAP__AT__COUNTER(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_counter); +inline EAP__AT__COUNTER& operator=(const EAP__AT__COUNTER& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__COUNTER& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__COUNTER& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& counter() + {return field_counter;} + inline const OCTETSTRING& counter() const + {return field_counter;} +Base_Type* clone() const { return new EAP__AT__COUNTER(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__COUNTER_template : public Record_Template { +void set_specific(); +public: +EAP__AT__COUNTER_template(): Record_Template() {} +EAP__AT__COUNTER_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__COUNTER_template(const EAP__AT__COUNTER& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__COUNTER_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__COUNTER_template(EAP__AT__COUNTER_template* p_precondition, EAP__AT__COUNTER_template* p_implied_template); +EAP__AT__COUNTER_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__COUNTER_template(const EAP__AT__COUNTER_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__COUNTER_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__COUNTER_template& operator=(template_sel other_value); +EAP__AT__COUNTER_template& operator=(const EAP__AT__COUNTER& other_value); +EAP__AT__COUNTER_template& operator=(const OPTIONAL& other_value); +EAP__AT__COUNTER_template& operator=(const EAP__AT__COUNTER_template& other_value); +inline boolean match(const EAP__AT__COUNTER& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__COUNTER& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__COUNTER valueof() const; +inline EAP__AT__COUNTER_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& counter(); +const OCTETSTRING_template& counter() const; +Record_Template* create() const { return new EAP__AT__COUNTER_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__COUNTER__TOO__SMALL : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__COUNTER__TOO__SMALL(); + EAP__AT__COUNTER__TOO__SMALL(const EAP__AT__COUNTER__TOO__SMALL& other_value); + EAP__AT__COUNTER__TOO__SMALL(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved); +inline EAP__AT__COUNTER__TOO__SMALL& operator=(const EAP__AT__COUNTER__TOO__SMALL& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__COUNTER__TOO__SMALL& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__COUNTER__TOO__SMALL& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} +Base_Type* clone() const { return new EAP__AT__COUNTER__TOO__SMALL(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__COUNTER__TOO__SMALL_template : public Record_Template { +void set_specific(); +public: +EAP__AT__COUNTER__TOO__SMALL_template(): Record_Template() {} +EAP__AT__COUNTER__TOO__SMALL_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__COUNTER__TOO__SMALL_template(const EAP__AT__COUNTER__TOO__SMALL& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__COUNTER__TOO__SMALL_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__COUNTER__TOO__SMALL_template(EAP__AT__COUNTER__TOO__SMALL_template* p_precondition, EAP__AT__COUNTER__TOO__SMALL_template* p_implied_template); +EAP__AT__COUNTER__TOO__SMALL_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__COUNTER__TOO__SMALL_template(const EAP__AT__COUNTER__TOO__SMALL_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__COUNTER__TOO__SMALL_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__COUNTER__TOO__SMALL_template& operator=(template_sel other_value); +EAP__AT__COUNTER__TOO__SMALL_template& operator=(const EAP__AT__COUNTER__TOO__SMALL& other_value); +EAP__AT__COUNTER__TOO__SMALL_template& operator=(const OPTIONAL& other_value); +EAP__AT__COUNTER__TOO__SMALL_template& operator=(const EAP__AT__COUNTER__TOO__SMALL_template& other_value); +inline boolean match(const EAP__AT__COUNTER__TOO__SMALL& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__COUNTER__TOO__SMALL& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__COUNTER__TOO__SMALL valueof() const; +inline EAP__AT__COUNTER__TOO__SMALL_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +Record_Template* create() const { return new EAP__AT__COUNTER__TOO__SMALL_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__NONCE__S : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + OCTETSTRING field_nonceS; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__NONCE__S(); + EAP__AT__NONCE__S(const EAP__AT__NONCE__S& other_value); + EAP__AT__NONCE__S(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_nonceS); +inline EAP__AT__NONCE__S& operator=(const EAP__AT__NONCE__S& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__NONCE__S& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__NONCE__S& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} + inline OCTETSTRING& nonceS() + {return field_nonceS;} + inline const OCTETSTRING& nonceS() const + {return field_nonceS;} +Base_Type* clone() const { return new EAP__AT__NONCE__S(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__NONCE__S_template : public Record_Template { +void set_specific(); +public: +EAP__AT__NONCE__S_template(): Record_Template() {} +EAP__AT__NONCE__S_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__NONCE__S_template(const EAP__AT__NONCE__S& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__NONCE__S_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__NONCE__S_template(EAP__AT__NONCE__S_template* p_precondition, EAP__AT__NONCE__S_template* p_implied_template); +EAP__AT__NONCE__S_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__NONCE__S_template(const EAP__AT__NONCE__S_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__NONCE__S_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__NONCE__S_template& operator=(template_sel other_value); +EAP__AT__NONCE__S_template& operator=(const EAP__AT__NONCE__S& other_value); +EAP__AT__NONCE__S_template& operator=(const OPTIONAL& other_value); +EAP__AT__NONCE__S_template& operator=(const EAP__AT__NONCE__S_template& other_value); +inline boolean match(const EAP__AT__NONCE__S& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__NONCE__S& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__NONCE__S valueof() const; +inline EAP__AT__NONCE__S_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +OCTETSTRING_template& nonceS(); +const OCTETSTRING_template& nonceS() const; +Record_Template* create() const { return new EAP__AT__NONCE__S_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__CLIENT__ERROR__CODE : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_clientErrorCode; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__CLIENT__ERROR__CODE(); + EAP__AT__CLIENT__ERROR__CODE(const EAP__AT__CLIENT__ERROR__CODE& other_value); + EAP__AT__CLIENT__ERROR__CODE(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_clientErrorCode); +inline EAP__AT__CLIENT__ERROR__CODE& operator=(const EAP__AT__CLIENT__ERROR__CODE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__CLIENT__ERROR__CODE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__CLIENT__ERROR__CODE& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& clientErrorCode() + {return field_clientErrorCode;} + inline const OCTETSTRING& clientErrorCode() const + {return field_clientErrorCode;} +Base_Type* clone() const { return new EAP__AT__CLIENT__ERROR__CODE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__CLIENT__ERROR__CODE_template : public Record_Template { +void set_specific(); +public: +EAP__AT__CLIENT__ERROR__CODE_template(): Record_Template() {} +EAP__AT__CLIENT__ERROR__CODE_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__CLIENT__ERROR__CODE_template(const EAP__AT__CLIENT__ERROR__CODE& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__CLIENT__ERROR__CODE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__CLIENT__ERROR__CODE_template(EAP__AT__CLIENT__ERROR__CODE_template* p_precondition, EAP__AT__CLIENT__ERROR__CODE_template* p_implied_template); +EAP__AT__CLIENT__ERROR__CODE_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__CLIENT__ERROR__CODE_template(const EAP__AT__CLIENT__ERROR__CODE_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__CLIENT__ERROR__CODE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__CLIENT__ERROR__CODE_template& operator=(template_sel other_value); +EAP__AT__CLIENT__ERROR__CODE_template& operator=(const EAP__AT__CLIENT__ERROR__CODE& other_value); +EAP__AT__CLIENT__ERROR__CODE_template& operator=(const OPTIONAL& other_value); +EAP__AT__CLIENT__ERROR__CODE_template& operator=(const EAP__AT__CLIENT__ERROR__CODE_template& other_value); +inline boolean match(const EAP__AT__CLIENT__ERROR__CODE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__CLIENT__ERROR__CODE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__CLIENT__ERROR__CODE valueof() const; +inline EAP__AT__CLIENT__ERROR__CODE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& clientErrorCode(); +const OCTETSTRING_template& clientErrorCode() const; +Record_Template* create() const { return new EAP__AT__CLIENT__ERROR__CODE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__IV : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + OCTETSTRING field_autn; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__IV(); + EAP__AT__IV(const EAP__AT__IV& other_value); + EAP__AT__IV(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_autn); +inline EAP__AT__IV& operator=(const EAP__AT__IV& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__IV& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__IV& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} + inline OCTETSTRING& autn() + {return field_autn;} + inline const OCTETSTRING& autn() const + {return field_autn;} +Base_Type* clone() const { return new EAP__AT__IV(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__IV_template : public Record_Template { +void set_specific(); +public: +EAP__AT__IV_template(): Record_Template() {} +EAP__AT__IV_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__IV_template(const EAP__AT__IV& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__IV_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__IV_template(EAP__AT__IV_template* p_precondition, EAP__AT__IV_template* p_implied_template); +EAP__AT__IV_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__IV_template(const EAP__AT__IV_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__IV_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__IV_template& operator=(template_sel other_value); +EAP__AT__IV_template& operator=(const EAP__AT__IV& other_value); +EAP__AT__IV_template& operator=(const OPTIONAL& other_value); +EAP__AT__IV_template& operator=(const EAP__AT__IV_template& other_value); +inline boolean match(const EAP__AT__IV& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__IV& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__IV valueof() const; +inline EAP__AT__IV_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +OCTETSTRING_template& autn(); +const OCTETSTRING_template& autn() const; +Record_Template* create() const { return new EAP__AT__IV_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__NEXT__PSEUDONYM : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_actualPseudonymlen; + OCTETSTRING field_nextPseudonym; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__NEXT__PSEUDONYM(); + EAP__AT__NEXT__PSEUDONYM(const EAP__AT__NEXT__PSEUDONYM& other_value); + EAP__AT__NEXT__PSEUDONYM(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_actualPseudonymlen, + const OCTETSTRING& par_nextPseudonym); +inline EAP__AT__NEXT__PSEUDONYM& operator=(const EAP__AT__NEXT__PSEUDONYM& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__NEXT__PSEUDONYM& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__NEXT__PSEUDONYM& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& actualPseudonymlen() + {return field_actualPseudonymlen;} + inline const OCTETSTRING& actualPseudonymlen() const + {return field_actualPseudonymlen;} + inline OCTETSTRING& nextPseudonym() + {return field_nextPseudonym;} + inline const OCTETSTRING& nextPseudonym() const + {return field_nextPseudonym;} +Base_Type* clone() const { return new EAP__AT__NEXT__PSEUDONYM(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__NEXT__PSEUDONYM_template : public Record_Template { +void set_specific(); +public: +EAP__AT__NEXT__PSEUDONYM_template(): Record_Template() {} +EAP__AT__NEXT__PSEUDONYM_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__NEXT__PSEUDONYM_template(const EAP__AT__NEXT__PSEUDONYM& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__NEXT__PSEUDONYM_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__NEXT__PSEUDONYM_template(EAP__AT__NEXT__PSEUDONYM_template* p_precondition, EAP__AT__NEXT__PSEUDONYM_template* p_implied_template); +EAP__AT__NEXT__PSEUDONYM_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__NEXT__PSEUDONYM_template(const EAP__AT__NEXT__PSEUDONYM_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__NEXT__PSEUDONYM_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__NEXT__PSEUDONYM_template& operator=(template_sel other_value); +EAP__AT__NEXT__PSEUDONYM_template& operator=(const EAP__AT__NEXT__PSEUDONYM& other_value); +EAP__AT__NEXT__PSEUDONYM_template& operator=(const OPTIONAL& other_value); +EAP__AT__NEXT__PSEUDONYM_template& operator=(const EAP__AT__NEXT__PSEUDONYM_template& other_value); +inline boolean match(const EAP__AT__NEXT__PSEUDONYM& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__NEXT__PSEUDONYM& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__NEXT__PSEUDONYM valueof() const; +inline EAP__AT__NEXT__PSEUDONYM_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& actualPseudonymlen(); +const OCTETSTRING_template& actualPseudonymlen() const; +OCTETSTRING_template& nextPseudonym(); +const OCTETSTRING_template& nextPseudonym() const; +Record_Template* create() const { return new EAP__AT__NEXT__PSEUDONYM_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__NEXT__REAUTH__ID : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_actualReAuthIdlen; + OCTETSTRING field_actualReAuthId; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__NEXT__REAUTH__ID(); + EAP__AT__NEXT__REAUTH__ID(const EAP__AT__NEXT__REAUTH__ID& other_value); + EAP__AT__NEXT__REAUTH__ID(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_actualReAuthIdlen, + const OCTETSTRING& par_actualReAuthId); +inline EAP__AT__NEXT__REAUTH__ID& operator=(const EAP__AT__NEXT__REAUTH__ID& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__NEXT__REAUTH__ID& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__NEXT__REAUTH__ID& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& actualReAuthIdlen() + {return field_actualReAuthIdlen;} + inline const OCTETSTRING& actualReAuthIdlen() const + {return field_actualReAuthIdlen;} + inline OCTETSTRING& actualReAuthId() + {return field_actualReAuthId;} + inline const OCTETSTRING& actualReAuthId() const + {return field_actualReAuthId;} +Base_Type* clone() const { return new EAP__AT__NEXT__REAUTH__ID(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__NEXT__REAUTH__ID_template : public Record_Template { +void set_specific(); +public: +EAP__AT__NEXT__REAUTH__ID_template(): Record_Template() {} +EAP__AT__NEXT__REAUTH__ID_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__NEXT__REAUTH__ID_template(const EAP__AT__NEXT__REAUTH__ID& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__NEXT__REAUTH__ID_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__NEXT__REAUTH__ID_template(EAP__AT__NEXT__REAUTH__ID_template* p_precondition, EAP__AT__NEXT__REAUTH__ID_template* p_implied_template); +EAP__AT__NEXT__REAUTH__ID_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__NEXT__REAUTH__ID_template(const EAP__AT__NEXT__REAUTH__ID_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__NEXT__REAUTH__ID_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__NEXT__REAUTH__ID_template& operator=(template_sel other_value); +EAP__AT__NEXT__REAUTH__ID_template& operator=(const EAP__AT__NEXT__REAUTH__ID& other_value); +EAP__AT__NEXT__REAUTH__ID_template& operator=(const OPTIONAL& other_value); +EAP__AT__NEXT__REAUTH__ID_template& operator=(const EAP__AT__NEXT__REAUTH__ID_template& other_value); +inline boolean match(const EAP__AT__NEXT__REAUTH__ID& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__NEXT__REAUTH__ID& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__NEXT__REAUTH__ID valueof() const; +inline EAP__AT__NEXT__REAUTH__ID_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& actualReAuthIdlen(); +const OCTETSTRING_template& actualReAuthIdlen() const; +OCTETSTRING_template& actualReAuthId(); +const OCTETSTRING_template& actualReAuthId() const; +Record_Template* create() const { return new EAP__AT__NEXT__REAUTH__ID_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__CHECKCODE : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + OPTIONAL field_checkCode; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__CHECKCODE(); + EAP__AT__CHECKCODE(const EAP__AT__CHECKCODE& other_value); + EAP__AT__CHECKCODE(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OPTIONAL& par_checkCode); +inline EAP__AT__CHECKCODE& operator=(const EAP__AT__CHECKCODE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__CHECKCODE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__CHECKCODE& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} + inline OPTIONAL& checkCode() + {return field_checkCode;} + inline const OPTIONAL& checkCode() const + {return field_checkCode;} +Base_Type* clone() const { return new EAP__AT__CHECKCODE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__CHECKCODE_template : public Record_Template { +void set_specific(); +public: +EAP__AT__CHECKCODE_template(): Record_Template() {} +EAP__AT__CHECKCODE_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__CHECKCODE_template(const EAP__AT__CHECKCODE& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__CHECKCODE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__CHECKCODE_template(EAP__AT__CHECKCODE_template* p_precondition, EAP__AT__CHECKCODE_template* p_implied_template); +EAP__AT__CHECKCODE_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__CHECKCODE_template(const EAP__AT__CHECKCODE_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__CHECKCODE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__CHECKCODE_template& operator=(template_sel other_value); +EAP__AT__CHECKCODE_template& operator=(const EAP__AT__CHECKCODE& other_value); +EAP__AT__CHECKCODE_template& operator=(const OPTIONAL& other_value); +EAP__AT__CHECKCODE_template& operator=(const EAP__AT__CHECKCODE_template& other_value); +inline boolean match(const EAP__AT__CHECKCODE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__CHECKCODE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__CHECKCODE valueof() const; +inline EAP__AT__CHECKCODE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +OCTETSTRING_template& checkCode(); +const OCTETSTRING_template& checkCode() const; +Record_Template* create() const { return new EAP__AT__CHECKCODE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__RESULT__IND : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__RESULT__IND(); + EAP__AT__RESULT__IND(const EAP__AT__RESULT__IND& other_value); + EAP__AT__RESULT__IND(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved); +inline EAP__AT__RESULT__IND& operator=(const EAP__AT__RESULT__IND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__RESULT__IND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__RESULT__IND& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} +Base_Type* clone() const { return new EAP__AT__RESULT__IND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__RESULT__IND_template : public Record_Template { +void set_specific(); +public: +EAP__AT__RESULT__IND_template(): Record_Template() {} +EAP__AT__RESULT__IND_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__RESULT__IND_template(const EAP__AT__RESULT__IND& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__RESULT__IND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__RESULT__IND_template(EAP__AT__RESULT__IND_template* p_precondition, EAP__AT__RESULT__IND_template* p_implied_template); +EAP__AT__RESULT__IND_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__RESULT__IND_template(const EAP__AT__RESULT__IND_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__RESULT__IND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__RESULT__IND_template& operator=(template_sel other_value); +EAP__AT__RESULT__IND_template& operator=(const EAP__AT__RESULT__IND& other_value); +EAP__AT__RESULT__IND_template& operator=(const OPTIONAL& other_value); +EAP__AT__RESULT__IND_template& operator=(const EAP__AT__RESULT__IND_template& other_value); +inline boolean match(const EAP__AT__RESULT__IND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__RESULT__IND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__RESULT__IND valueof() const; +inline EAP__AT__RESULT__IND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +Record_Template* create() const { return new EAP__AT__RESULT__IND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__KDF__INPUT : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_actualNetworkNamelen; + OCTETSTRING field_networkName; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__KDF__INPUT(); + EAP__AT__KDF__INPUT(const EAP__AT__KDF__INPUT& other_value); + EAP__AT__KDF__INPUT(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_actualNetworkNamelen, + const OCTETSTRING& par_networkName); +inline EAP__AT__KDF__INPUT& operator=(const EAP__AT__KDF__INPUT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__KDF__INPUT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__KDF__INPUT& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& actualNetworkNamelen() + {return field_actualNetworkNamelen;} + inline const OCTETSTRING& actualNetworkNamelen() const + {return field_actualNetworkNamelen;} + inline OCTETSTRING& networkName() + {return field_networkName;} + inline const OCTETSTRING& networkName() const + {return field_networkName;} +Base_Type* clone() const { return new EAP__AT__KDF__INPUT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__KDF__INPUT_template : public Record_Template { +void set_specific(); +public: +EAP__AT__KDF__INPUT_template(): Record_Template() {} +EAP__AT__KDF__INPUT_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__KDF__INPUT_template(const EAP__AT__KDF__INPUT& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__KDF__INPUT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__KDF__INPUT_template(EAP__AT__KDF__INPUT_template* p_precondition, EAP__AT__KDF__INPUT_template* p_implied_template); +EAP__AT__KDF__INPUT_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__KDF__INPUT_template(const EAP__AT__KDF__INPUT_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__KDF__INPUT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__KDF__INPUT_template& operator=(template_sel other_value); +EAP__AT__KDF__INPUT_template& operator=(const EAP__AT__KDF__INPUT& other_value); +EAP__AT__KDF__INPUT_template& operator=(const OPTIONAL& other_value); +EAP__AT__KDF__INPUT_template& operator=(const EAP__AT__KDF__INPUT_template& other_value); +inline boolean match(const EAP__AT__KDF__INPUT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__KDF__INPUT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__KDF__INPUT valueof() const; +inline EAP__AT__KDF__INPUT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& actualNetworkNamelen(); +const OCTETSTRING_template& actualNetworkNamelen() const; +OCTETSTRING_template& networkName(); +const OCTETSTRING_template& networkName() const; +Record_Template* create() const { return new EAP__AT__KDF__INPUT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__KDF : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_keyDerivationFunction; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__AT__KDF(); + EAP__AT__KDF(const EAP__AT__KDF& other_value); + EAP__AT__KDF(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_keyDerivationFunction); +inline EAP__AT__KDF& operator=(const EAP__AT__KDF& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__KDF& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__KDF& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& keyDerivationFunction() + {return field_keyDerivationFunction;} + inline const OCTETSTRING& keyDerivationFunction() const + {return field_keyDerivationFunction;} +Base_Type* clone() const { return new EAP__AT__KDF(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__KDF_template : public Record_Template { +void set_specific(); +public: +EAP__AT__KDF_template(): Record_Template() {} +EAP__AT__KDF_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__KDF_template(const EAP__AT__KDF& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__KDF_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__KDF_template(EAP__AT__KDF_template* p_precondition, EAP__AT__KDF_template* p_implied_template); +EAP__AT__KDF_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__KDF_template(const EAP__AT__KDF_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__KDF_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__KDF_template& operator=(template_sel other_value); +EAP__AT__KDF_template& operator=(const EAP__AT__KDF& other_value); +EAP__AT__KDF_template& operator=(const OPTIONAL& other_value); +EAP__AT__KDF_template& operator=(const EAP__AT__KDF_template& other_value); +inline boolean match(const EAP__AT__KDF& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__KDF& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__KDF valueof() const; +inline EAP__AT__KDF_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& keyDerivationFunction(); +const OCTETSTRING_template& keyDerivationFunction() const; +Record_Template* create() const { return new EAP__AT__KDF_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__Request__Type : public Record_Type { + OCTETSTRING field_code; + OCTETSTRING field_id; + OCTETSTRING field_len; + OCTETSTRING field_type__; + OCTETSTRING field_subtype; + OCTETSTRING field_reserved; + EAP__Attributes field_attributes; + Base_Type* fld_vec[7]; + void init_vec(); +public: + EAP__Request__Type(); + EAP__Request__Type(const EAP__Request__Type& other_value); + EAP__Request__Type(const OCTETSTRING& par_code, + const OCTETSTRING& par_id, + const OCTETSTRING& par_len, + const OCTETSTRING& par_type__, + const OCTETSTRING& par_subtype, + const OCTETSTRING& par_reserved, + const EAP__Attributes& par_attributes); +inline EAP__Request__Type& operator=(const EAP__Request__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__Request__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__Request__Type& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& code() + {return field_code;} + inline const OCTETSTRING& code() const + {return field_code;} + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& type__() + {return field_type__;} + inline const OCTETSTRING& type__() const + {return field_type__;} + inline OCTETSTRING& subtype() + {return field_subtype;} + inline const OCTETSTRING& subtype() const + {return field_subtype;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} + inline EAP__Attributes& attributes() + {return field_attributes;} + inline const EAP__Attributes& attributes() const + {return field_attributes;} +Base_Type* clone() const { return new EAP__Request__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__Request__Type_template : public Record_Template { +void set_specific(); +public: +EAP__Request__Type_template(): Record_Template() {} +EAP__Request__Type_template(template_sel other_value): Record_Template(other_value) {} +EAP__Request__Type_template(const EAP__Request__Type& other_value): Record_Template() { copy_value(&other_value); } +EAP__Request__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__Request__Type_template(EAP__Request__Type_template* p_precondition, EAP__Request__Type_template* p_implied_template); +EAP__Request__Type_template(Dynamic_Match_Interface* p_dyn_match); +EAP__Request__Type_template(const EAP__Request__Type_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__Request__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__Request__Type_template& operator=(template_sel other_value); +EAP__Request__Type_template& operator=(const EAP__Request__Type& other_value); +EAP__Request__Type_template& operator=(const OPTIONAL& other_value); +EAP__Request__Type_template& operator=(const EAP__Request__Type_template& other_value); +inline boolean match(const EAP__Request__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__Request__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__Request__Type valueof() const; +inline EAP__Request__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& code(); +const OCTETSTRING_template& code() const; +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& type__(); +const OCTETSTRING_template& type__() const; +OCTETSTRING_template& subtype(); +const OCTETSTRING_template& subtype() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +EAP__Attributes_template& attributes(); +const EAP__Attributes_template& attributes() const; +Record_Template* create() const { return new EAP__Request__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__Response__Type : public Record_Type { + OCTETSTRING field_code; + OCTETSTRING field_id; + OCTETSTRING field_len; + OCTETSTRING field_type__; + OCTETSTRING field_subtype; + OCTETSTRING field_reserved; + OPTIONAL field_attributes; + Base_Type* fld_vec[7]; + void init_vec(); +public: + EAP__Response__Type(); + EAP__Response__Type(const EAP__Response__Type& other_value); + EAP__Response__Type(const OCTETSTRING& par_code, + const OCTETSTRING& par_id, + const OCTETSTRING& par_len, + const OCTETSTRING& par_type__, + const OCTETSTRING& par_subtype, + const OCTETSTRING& par_reserved, + const OPTIONAL& par_attributes); +inline EAP__Response__Type& operator=(const EAP__Response__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__Response__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__Response__Type& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& code() + {return field_code;} + inline const OCTETSTRING& code() const + {return field_code;} + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& type__() + {return field_type__;} + inline const OCTETSTRING& type__() const + {return field_type__;} + inline OCTETSTRING& subtype() + {return field_subtype;} + inline const OCTETSTRING& subtype() const + {return field_subtype;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} + inline OPTIONAL& attributes() + {return field_attributes;} + inline const OPTIONAL& attributes() const + {return field_attributes;} +Base_Type* clone() const { return new EAP__Response__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__Response__Type_template : public Record_Template { +void set_specific(); +public: +EAP__Response__Type_template(): Record_Template() {} +EAP__Response__Type_template(template_sel other_value): Record_Template(other_value) {} +EAP__Response__Type_template(const EAP__Response__Type& other_value): Record_Template() { copy_value(&other_value); } +EAP__Response__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__Response__Type_template(EAP__Response__Type_template* p_precondition, EAP__Response__Type_template* p_implied_template); +EAP__Response__Type_template(Dynamic_Match_Interface* p_dyn_match); +EAP__Response__Type_template(const EAP__Response__Type_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__Response__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__Response__Type_template& operator=(template_sel other_value); +EAP__Response__Type_template& operator=(const EAP__Response__Type& other_value); +EAP__Response__Type_template& operator=(const OPTIONAL& other_value); +EAP__Response__Type_template& operator=(const EAP__Response__Type_template& other_value); +inline boolean match(const EAP__Response__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__Response__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__Response__Type valueof() const; +inline EAP__Response__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& code(); +const OCTETSTRING_template& code() const; +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& type__(); +const OCTETSTRING_template& type__() const; +OCTETSTRING_template& subtype(); +const OCTETSTRING_template& subtype() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +EAP__Attributes_template& attributes(); +const EAP__Attributes_template& attributes() const; +Record_Template* create() const { return new EAP__Response__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__Success__Type : public Record_Type { + OCTETSTRING field_code; + OCTETSTRING field_id; + OCTETSTRING field_len; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__Success__Type(); + EAP__Success__Type(const EAP__Success__Type& other_value); + EAP__Success__Type(const OCTETSTRING& par_code, + const OCTETSTRING& par_id, + const OCTETSTRING& par_len); +inline EAP__Success__Type& operator=(const EAP__Success__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__Success__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__Success__Type& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& code() + {return field_code;} + inline const OCTETSTRING& code() const + {return field_code;} + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} +Base_Type* clone() const { return new EAP__Success__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__Success__Type_template : public Record_Template { +void set_specific(); +public: +EAP__Success__Type_template(): Record_Template() {} +EAP__Success__Type_template(template_sel other_value): Record_Template(other_value) {} +EAP__Success__Type_template(const EAP__Success__Type& other_value): Record_Template() { copy_value(&other_value); } +EAP__Success__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__Success__Type_template(EAP__Success__Type_template* p_precondition, EAP__Success__Type_template* p_implied_template); +EAP__Success__Type_template(Dynamic_Match_Interface* p_dyn_match); +EAP__Success__Type_template(const EAP__Success__Type_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__Success__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__Success__Type_template& operator=(template_sel other_value); +EAP__Success__Type_template& operator=(const EAP__Success__Type& other_value); +EAP__Success__Type_template& operator=(const OPTIONAL& other_value); +EAP__Success__Type_template& operator=(const EAP__Success__Type_template& other_value); +inline boolean match(const EAP__Success__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__Success__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__Success__Type valueof() const; +inline EAP__Success__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& code(); +const OCTETSTRING_template& code() const; +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +Record_Template* create() const { return new EAP__Success__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__Failure__Type : public Record_Type { + OCTETSTRING field_code; + OCTETSTRING field_id; + OCTETSTRING field_len; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__Failure__Type(); + EAP__Failure__Type(const EAP__Failure__Type& other_value); + EAP__Failure__Type(const OCTETSTRING& par_code, + const OCTETSTRING& par_id, + const OCTETSTRING& par_len); +inline EAP__Failure__Type& operator=(const EAP__Failure__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__Failure__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__Failure__Type& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& code() + {return field_code;} + inline const OCTETSTRING& code() const + {return field_code;} + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} +Base_Type* clone() const { return new EAP__Failure__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__Failure__Type_template : public Record_Template { +void set_specific(); +public: +EAP__Failure__Type_template(): Record_Template() {} +EAP__Failure__Type_template(template_sel other_value): Record_Template(other_value) {} +EAP__Failure__Type_template(const EAP__Failure__Type& other_value): Record_Template() { copy_value(&other_value); } +EAP__Failure__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__Failure__Type_template(EAP__Failure__Type_template* p_precondition, EAP__Failure__Type_template* p_implied_template); +EAP__Failure__Type_template(Dynamic_Match_Interface* p_dyn_match); +EAP__Failure__Type_template(const EAP__Failure__Type_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__Failure__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__Failure__Type_template& operator=(template_sel other_value); +EAP__Failure__Type_template& operator=(const EAP__Failure__Type& other_value); +EAP__Failure__Type_template& operator=(const OPTIONAL& other_value); +EAP__Failure__Type_template& operator=(const EAP__Failure__Type_template& other_value); +inline boolean match(const EAP__Failure__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__Failure__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__Failure__Type valueof() const; +inline EAP__Failure__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& code(); +const OCTETSTRING_template& code() const; +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +Record_Template* create() const { return new EAP__Failure__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__AT__ENCR__DATA : public Record_Type { + OCTETSTRING field_attributeType; + OCTETSTRING field_len; + OCTETSTRING field_reserved; + OCTETSTRING field_encrData; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EAP__AT__ENCR__DATA(); + EAP__AT__ENCR__DATA(const EAP__AT__ENCR__DATA& other_value); + EAP__AT__ENCR__DATA(const OCTETSTRING& par_attributeType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_reserved, + const OCTETSTRING& par_encrData); +inline EAP__AT__ENCR__DATA& operator=(const EAP__AT__ENCR__DATA& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__AT__ENCR__DATA& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__AT__ENCR__DATA& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& attributeType() + {return field_attributeType;} + inline const OCTETSTRING& attributeType() const + {return field_attributeType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& reserved() + {return field_reserved;} + inline const OCTETSTRING& reserved() const + {return field_reserved;} + inline OCTETSTRING& encrData() + {return field_encrData;} + inline const OCTETSTRING& encrData() const + {return field_encrData;} +Base_Type* clone() const { return new EAP__AT__ENCR__DATA(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__AT__ENCR__DATA_template : public Record_Template { +void set_specific(); +public: +EAP__AT__ENCR__DATA_template(): Record_Template() {} +EAP__AT__ENCR__DATA_template(template_sel other_value): Record_Template(other_value) {} +EAP__AT__ENCR__DATA_template(const EAP__AT__ENCR__DATA& other_value): Record_Template() { copy_value(&other_value); } +EAP__AT__ENCR__DATA_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__AT__ENCR__DATA_template(EAP__AT__ENCR__DATA_template* p_precondition, EAP__AT__ENCR__DATA_template* p_implied_template); +EAP__AT__ENCR__DATA_template(Dynamic_Match_Interface* p_dyn_match); +EAP__AT__ENCR__DATA_template(const EAP__AT__ENCR__DATA_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__AT__ENCR__DATA_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__AT__ENCR__DATA_template& operator=(template_sel other_value); +EAP__AT__ENCR__DATA_template& operator=(const EAP__AT__ENCR__DATA& other_value); +EAP__AT__ENCR__DATA_template& operator=(const OPTIONAL& other_value); +EAP__AT__ENCR__DATA_template& operator=(const EAP__AT__ENCR__DATA_template& other_value); +inline boolean match(const EAP__AT__ENCR__DATA& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__AT__ENCR__DATA& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__AT__ENCR__DATA valueof() const; +inline EAP__AT__ENCR__DATA_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& attributeType(); +const OCTETSTRING_template& attributeType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& reserved(); +const OCTETSTRING_template& reserved() const; +OCTETSTRING_template& encrData(); +const OCTETSTRING_template& encrData() const; +Record_Template* create() const { return new EAP__AT__ENCR__DATA_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_EAP_TypeDefs(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_EAP_TypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern BITSTRING f__HMAC__SHA__256(const BITSTRING& p__Key, const OCTETSTRING& p__String); +extern BITSTRING f__ExtendedEAPAKA__PRF(const BITSTRING& p__Key, const OCTETSTRING& p__String, const INTEGER& p__NumberOfOutputBits); + +/* Global variable declarations */ + +extern const INTEGER& f__ExtendedEAPAKA__PRF_p__NumberOfOutputBits_defval; +extern INTEGER const_f__ExtendedEAPAKA__PRF_p__NumberOfOutputBits_defval; +extern const TTCN_Typedescriptor_t EAP__Message__Type_descr_; +extern const TTCN_RAWdescriptor_t EAP__Request__Type_code_raw_; +extern const XERdescriptor_t EAP__Request__Type_code_xer_; +extern const TTCN_OERdescriptor_t EAP__Request__Type_code_oer_; +extern const TTCN_Typedescriptor_t EAP__Request__Type_code_descr_; +extern const XERdescriptor_t EAP__Request__Type_id_xer_; +extern const TTCN_OERdescriptor_t EAP__Request__Type_id_oer_; +extern const TTCN_Typedescriptor_t EAP__Request__Type_id_descr_; +extern const XERdescriptor_t EAP__Request__Type_len_xer_; +extern const TTCN_OERdescriptor_t EAP__Request__Type_len_oer_; +extern const TTCN_Typedescriptor_t EAP__Request__Type_len_descr_; +extern const TTCN_RAWdescriptor_t EAP__Request__Type_type___raw_; +extern const XERdescriptor_t EAP__Request__Type_type___xer_; +extern const TTCN_OERdescriptor_t EAP__Request__Type_type___oer_; +extern const TTCN_Typedescriptor_t EAP__Request__Type_type___descr_; +extern const XERdescriptor_t EAP__Request__Type_subtype_xer_; +extern const TTCN_OERdescriptor_t EAP__Request__Type_subtype_oer_; +extern const TTCN_Typedescriptor_t EAP__Request__Type_subtype_descr_; +extern const XERdescriptor_t EAP__Request__Type_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__Request__Type_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__Request__Type_reserved_descr_; +extern const TTCN_Typedescriptor_t EAP__Attributes_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__RAND_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__RAND_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RAND_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RAND_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__RAND_len_raw_; +extern const XERdescriptor_t EAP__AT__RAND_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RAND_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RAND_len_descr_; +extern const XERdescriptor_t EAP__AT__RAND_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RAND_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RAND_reserved_descr_; +extern const XERdescriptor_t EAP__AT__RAND_rand_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RAND_rand_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RAND_rand_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__RAND_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__AUTN_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__AUTN_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__AUTN_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__AUTN_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__AUTN_len_raw_; +extern const XERdescriptor_t EAP__AT__AUTN_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__AUTN_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__AUTN_len_descr_; +extern const XERdescriptor_t EAP__AT__AUTN_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__AUTN_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__AUTN_reserved_descr_; +extern const XERdescriptor_t EAP__AT__AUTN_autn_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__AUTN_autn_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__AUTN_autn_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__AUTN_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__RES_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__RES_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RES_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RES_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__RES_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RES_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RES_len_descr_; +extern const XERdescriptor_t EAP__AT__RES_reslen_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RES_reslen_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RES_reslen_descr_; +extern const XERdescriptor_t EAP__AT__RES_res_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RES_res_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RES_res_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__RES_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__AUTS_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__AUTS_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__AUTS_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__AUTS_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__AUTS_len_raw_; +extern const XERdescriptor_t EAP__AT__AUTS_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__AUTS_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__AUTS_len_descr_; +extern const XERdescriptor_t EAP__AT__AUTS_auts_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__AUTS_auts_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__AUTS_auts_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__AUTS_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__PADDING_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__PADDING_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__PADDING_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__PADDING_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__PADDING_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__PADDING_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__PADDING_len_descr_; +extern const XERdescriptor_t EAP__AT__PADDING_padding_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__PADDING_padding_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__PADDING_padding_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__PADDING_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__PERMANENT__ID__REQ_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__PERMANENT__ID__REQ_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__PERMANENT__ID__REQ_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__PERMANENT__ID__REQ_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__PERMANENT__ID__REQ_len_raw_; +extern const XERdescriptor_t EAP__AT__PERMANENT__ID__REQ_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__PERMANENT__ID__REQ_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__PERMANENT__ID__REQ_len_descr_; +extern const XERdescriptor_t EAP__AT__PERMANENT__ID__REQ_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__PERMANENT__ID__REQ_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__PERMANENT__ID__REQ_reserved_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__PERMANENT__ID__REQ_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__MAC_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__MAC_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__MAC_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__MAC_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__MAC_len_raw_; +extern const XERdescriptor_t EAP__AT__MAC_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__MAC_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__MAC_len_descr_; +extern const XERdescriptor_t EAP__AT__MAC_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__MAC_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__MAC_reserved_descr_; +extern const XERdescriptor_t EAP__AT__MAC_mac_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__MAC_mac_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__MAC_mac_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__MAC_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__NOTIFICATION_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__NOTIFICATION_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__NOTIFICATION_len_raw_; +extern const XERdescriptor_t EAP__AT__NOTIFICATION_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_len_descr_; +extern const XERdescriptor_t EAP__AT__NOTIFICATION_s_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_s_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_s_descr_; +extern const XERdescriptor_t EAP__AT__NOTIFICATION_p_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_p_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_p_descr_; +extern const XERdescriptor_t EAP__AT__NOTIFICATION_notificationCode_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NOTIFICATION_notificationCode_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_notificationCode_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__NOTIFICATION_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__ANY__ID__REQ_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__ANY__ID__REQ_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__ANY__ID__REQ_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__ANY__ID__REQ_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__ANY__ID__REQ_len_raw_; +extern const XERdescriptor_t EAP__AT__ANY__ID__REQ_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__ANY__ID__REQ_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__ANY__ID__REQ_len_descr_; +extern const XERdescriptor_t EAP__AT__ANY__ID__REQ_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__ANY__ID__REQ_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__ANY__ID__REQ_reserved_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__ANY__ID__REQ_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__IDENTITY_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__IDENTITY_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__IDENTITY_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__IDENTITY_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__IDENTITY_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__IDENTITY_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__IDENTITY_len_descr_; +extern const XERdescriptor_t EAP__AT__IDENTITY_actualIdlen_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__IDENTITY_actualIdlen_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__IDENTITY_actualIdlen_descr_; +extern const XERdescriptor_t EAP__AT__IDENTITY_id_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__IDENTITY_id_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__IDENTITY_id_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__IDENTITY_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__VERSION__LIST_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__VERSION__LIST_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__VERSION__LIST_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__VERSION__LIST_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__VERSION__LIST_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__VERSION__LIST_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__VERSION__LIST_len_descr_; +extern const XERdescriptor_t EAP__AT__VERSION__LIST_versionList_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__VERSION__LIST_versionList_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__VERSION__LIST_versionList_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__VERSION__LIST_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__SELECTED__VERSION_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__SELECTED__VERSION_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__SELECTED__VERSION_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__SELECTED__VERSION_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__SELECTED__VERSION_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__SELECTED__VERSION_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__SELECTED__VERSION_len_descr_; +extern const XERdescriptor_t EAP__AT__SELECTED__VERSION_selectedVersion_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__SELECTED__VERSION_selectedVersion_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__SELECTED__VERSION_selectedVersion_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__SELECTED__VERSION_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__FULLAUTH__ID__REQ_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__FULLAUTH__ID__REQ_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__FULLAUTH__ID__REQ_len_raw_; +extern const XERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__FULLAUTH__ID__REQ_len_descr_; +extern const XERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__FULLAUTH__ID__REQ_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__FULLAUTH__ID__REQ_reserved_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__FULLAUTH__ID__REQ_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__COUNTER_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__COUNTER_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__COUNTER_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__COUNTER_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__COUNTER_len_raw_; +extern const XERdescriptor_t EAP__AT__COUNTER_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__COUNTER_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__COUNTER_len_descr_; +extern const XERdescriptor_t EAP__AT__COUNTER_counter_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__COUNTER_counter_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__COUNTER_counter_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__COUNTER_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__COUNTER__TOO__SMALL_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__COUNTER__TOO__SMALL_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__COUNTER__TOO__SMALL_len_raw_; +extern const XERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__COUNTER__TOO__SMALL_len_descr_; +extern const XERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__COUNTER__TOO__SMALL_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__COUNTER__TOO__SMALL_reserved_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__COUNTER__TOO__SMALL_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__NONCE__S_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__NONCE__S_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NONCE__S_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NONCE__S_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__NONCE__S_len_raw_; +extern const XERdescriptor_t EAP__AT__NONCE__S_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NONCE__S_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NONCE__S_len_descr_; +extern const XERdescriptor_t EAP__AT__NONCE__S_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NONCE__S_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NONCE__S_reserved_descr_; +extern const XERdescriptor_t EAP__AT__NONCE__S_nonceS_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NONCE__S_nonceS_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NONCE__S_nonceS_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__NONCE__S_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__CLIENT__ERROR__CODE_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__CLIENT__ERROR__CODE_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__CLIENT__ERROR__CODE_len_raw_; +extern const XERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__CLIENT__ERROR__CODE_len_descr_; +extern const XERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__CLIENT__ERROR__CODE_clientErrorCode_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__CLIENT__ERROR__CODE_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__IV_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__IV_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__IV_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__IV_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__IV_len_raw_; +extern const XERdescriptor_t EAP__AT__IV_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__IV_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__IV_len_descr_; +extern const XERdescriptor_t EAP__AT__IV_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__IV_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__IV_reserved_descr_; +extern const XERdescriptor_t EAP__AT__IV_autn_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__IV_autn_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__IV_autn_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__IV_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__NEXT__PSEUDONYM_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__NEXT__PSEUDONYM_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NEXT__PSEUDONYM_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__NEXT__PSEUDONYM_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NEXT__PSEUDONYM_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_len_descr_; +extern const XERdescriptor_t EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_actualPseudonymlen_descr_; +extern const XERdescriptor_t EAP__AT__NEXT__PSEUDONYM_nextPseudonym_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NEXT__PSEUDONYM_nextPseudonym_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_nextPseudonym_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__PSEUDONYM_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__NEXT__REAUTH__ID_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__NEXT__REAUTH__ID_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NEXT__REAUTH__ID_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__NEXT__REAUTH__ID_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NEXT__REAUTH__ID_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_len_descr_; +extern const XERdescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthIdlen_descr_; +extern const XERdescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthId_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthId_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_actualReAuthId_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__NEXT__REAUTH__ID_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__CHECKCODE_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__CHECKCODE_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__CHECKCODE_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__CHECKCODE_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__CHECKCODE_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_len_descr_; +extern const XERdescriptor_t EAP__AT__CHECKCODE_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__CHECKCODE_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_reserved_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_descr_; +extern const XERdescriptor_t EAP__AT__CHECKCODE_checkCode_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__CHECKCODE_checkCode_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__CHECKCODE_checkCode_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__RESULT__IND_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__RESULT__IND_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RESULT__IND_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RESULT__IND_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__RESULT__IND_len_raw_; +extern const XERdescriptor_t EAP__AT__RESULT__IND_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RESULT__IND_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RESULT__IND_len_descr_; +extern const XERdescriptor_t EAP__AT__RESULT__IND_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__RESULT__IND_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__RESULT__IND_reserved_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__RESULT__IND_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__KDF__INPUT_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__KDF__INPUT_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__KDF__INPUT_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__KDF__INPUT_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__KDF__INPUT_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_len_descr_; +extern const XERdescriptor_t EAP__AT__KDF__INPUT_actualNetworkNamelen_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__KDF__INPUT_actualNetworkNamelen_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_actualNetworkNamelen_descr_; +extern const XERdescriptor_t EAP__AT__KDF__INPUT_networkName_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__KDF__INPUT_networkName_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_networkName_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__KDF__INPUT_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__KDF_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__KDF_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__KDF_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__KDF_attributeType_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__KDF_len_raw_; +extern const XERdescriptor_t EAP__AT__KDF_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__KDF_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__KDF_len_descr_; +extern const XERdescriptor_t EAP__AT__KDF_keyDerivationFunction_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__KDF_keyDerivationFunction_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__KDF_keyDerivationFunction_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__KDF_descr_; +extern const TTCN_Typedescriptor_t EAP__Request__Type_descr_; +extern const TTCN_RAWdescriptor_t EAP__Response__Type_code_raw_; +extern const XERdescriptor_t EAP__Response__Type_code_xer_; +extern const TTCN_OERdescriptor_t EAP__Response__Type_code_oer_; +extern const TTCN_Typedescriptor_t EAP__Response__Type_code_descr_; +extern const XERdescriptor_t EAP__Response__Type_id_xer_; +extern const TTCN_OERdescriptor_t EAP__Response__Type_id_oer_; +extern const TTCN_Typedescriptor_t EAP__Response__Type_id_descr_; +extern const XERdescriptor_t EAP__Response__Type_len_xer_; +extern const TTCN_OERdescriptor_t EAP__Response__Type_len_oer_; +extern const TTCN_Typedescriptor_t EAP__Response__Type_len_descr_; +extern const TTCN_RAWdescriptor_t EAP__Response__Type_type___raw_; +extern const XERdescriptor_t EAP__Response__Type_type___xer_; +extern const TTCN_OERdescriptor_t EAP__Response__Type_type___oer_; +extern const TTCN_Typedescriptor_t EAP__Response__Type_type___descr_; +extern const XERdescriptor_t EAP__Response__Type_subtype_xer_; +extern const TTCN_OERdescriptor_t EAP__Response__Type_subtype_oer_; +extern const TTCN_Typedescriptor_t EAP__Response__Type_subtype_descr_; +extern const XERdescriptor_t EAP__Response__Type_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__Response__Type_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__Response__Type_reserved_descr_; +extern const TTCN_Typedescriptor_t EAP__Response__Type_descr_; +extern const TTCN_RAWdescriptor_t EAP__Success__Type_code_raw_; +extern const XERdescriptor_t EAP__Success__Type_code_xer_; +extern const TTCN_OERdescriptor_t EAP__Success__Type_code_oer_; +extern const TTCN_Typedescriptor_t EAP__Success__Type_code_descr_; +extern const XERdescriptor_t EAP__Success__Type_id_xer_; +extern const TTCN_OERdescriptor_t EAP__Success__Type_id_oer_; +extern const TTCN_Typedescriptor_t EAP__Success__Type_id_descr_; +extern const TTCN_RAWdescriptor_t EAP__Success__Type_len_raw_; +extern const XERdescriptor_t EAP__Success__Type_len_xer_; +extern const TTCN_OERdescriptor_t EAP__Success__Type_len_oer_; +extern const TTCN_Typedescriptor_t EAP__Success__Type_len_descr_; +extern const TTCN_Typedescriptor_t EAP__Success__Type_descr_; +extern const TTCN_RAWdescriptor_t EAP__Failure__Type_code_raw_; +extern const XERdescriptor_t EAP__Failure__Type_code_xer_; +extern const TTCN_OERdescriptor_t EAP__Failure__Type_code_oer_; +extern const TTCN_Typedescriptor_t EAP__Failure__Type_code_descr_; +extern const XERdescriptor_t EAP__Failure__Type_id_xer_; +extern const TTCN_OERdescriptor_t EAP__Failure__Type_id_oer_; +extern const TTCN_Typedescriptor_t EAP__Failure__Type_id_descr_; +extern const TTCN_RAWdescriptor_t EAP__Failure__Type_len_raw_; +extern const XERdescriptor_t EAP__Failure__Type_len_xer_; +extern const TTCN_OERdescriptor_t EAP__Failure__Type_len_oer_; +extern const TTCN_Typedescriptor_t EAP__Failure__Type_len_descr_; +extern const TTCN_Typedescriptor_t EAP__Failure__Type_descr_; +extern const TTCN_RAWdescriptor_t EAP__AT__ENCR__DATA_attributeType_raw_; +extern const XERdescriptor_t EAP__AT__ENCR__DATA_attributeType_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__ENCR__DATA_attributeType_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_attributeType_descr_; +extern const XERdescriptor_t EAP__AT__ENCR__DATA_len_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__ENCR__DATA_len_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_len_descr_; +extern const XERdescriptor_t EAP__AT__ENCR__DATA_reserved_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__ENCR__DATA_reserved_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_reserved_descr_; +extern const XERdescriptor_t EAP__AT__ENCR__DATA_encrData_xer_; +extern const TTCN_OERdescriptor_t EAP__AT__ENCR__DATA_encrData_oer_; +extern const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_encrData_descr_; +extern const TTCN_Typedescriptor_t EAP__AT__ENCR__DATA_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/EAP_TypeDefs.o b/build/Ats_NG_NAS/EAP_TypeDefs.o new file mode 100644 index 0000000000000000000000000000000000000000..f8f0dd495655c4e62dde90fdc0fc4056a8a3d082 Binary files /dev/null and b/build/Ats_NG_NAS/EAP_TypeDefs.o differ diff --git a/build/Ats_NG_NAS/EPS_NAS_LoopBack_TypeDefs.cc b/build/Ats_NG_NAS/EPS_NAS_LoopBack_TypeDefs.cc new file mode 100644 index 0000000000000000000000000000000000000000..db9ff6f632e1ed936487f83fece0c01551a5edf9 --- /dev/null +++ b/build/Ats_NG_NAS/EPS_NAS_LoopBack_TypeDefs.cc @@ -0,0 +1,4772 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "EPS_NAS_LoopBack_TypeDefs.hh" + +namespace EPS__NAS__LoopBack__TypeDefs { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0x8e, 0x13, 0xda, 0xb4, 0x49, 0xc6, 0xb1, 0xdb, 0x52, 0x1c, 0xbe, 0xce, 0xa2, 0xe0, 0xfd, 0xc1 }; + +/* Global variable definitions */ + +const XERdescriptor_t UE__TestLoopModeB__LB__Setup__Type_xer_ = { {"UE_TestLoopModeB_LB_Setup_Type>\n", "UE_TestLoopModeB_LB_Setup_Type>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__TestLoopModeB__LB__Setup__Type_oer_ext_arr_[0] = {}; +const int UE__TestLoopModeB__LB__Setup__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__TestLoopModeB__LB__Setup__Type_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__TestLoopModeB__LB__Setup__Type_oer_ext_arr_, 0, UE__TestLoopModeB__LB__Setup__Type_oer_p_}; +const TTCN_Typedescriptor_t UE__TestLoopModeB__LB__Setup__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeB_LB_Setup_Type", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__TestLoopModeB__LB__Setup__Type_xer_, &OCTETSTRING_json_, &UE__TestLoopModeB__LB__Setup__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MBMS__PacketCounterValue__Type_xer_ = { {"MBMS_PacketCounterValue_Type>\n", "MBMS_PacketCounterValue_Type>\n"}, {30, 30}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MBMS__PacketCounterValue__Type_oer_ext_arr_[0] = {}; +const int MBMS__PacketCounterValue__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MBMS__PacketCounterValue__Type_oer_ = { -1, TRUE, 4, FALSE, 0, 0, MBMS__PacketCounterValue__Type_oer_ext_arr_, 0, MBMS__PacketCounterValue__Type_oer_p_}; +const TTCN_Typedescriptor_t MBMS__PacketCounterValue__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.MBMS_PacketCounterValue_Type", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &MBMS__PacketCounterValue__Type_xer_, &OCTETSTRING_json_, &MBMS__PacketCounterValue__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SCPTM__PacketCounterValue__Type_xer_ = { {"SCPTM_PacketCounterValue_Type>\n", "SCPTM_PacketCounterValue_Type>\n"}, {31, 31}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SCPTM__PacketCounterValue__Type_oer_ext_arr_[0] = {}; +const int SCPTM__PacketCounterValue__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SCPTM__PacketCounterValue__Type_oer_ = { -1, TRUE, 4, FALSE, 0, 0, SCPTM__PacketCounterValue__Type_oer_ext_arr_, 0, SCPTM__PacketCounterValue__Type_oer_p_}; +const TTCN_Typedescriptor_t SCPTM__PacketCounterValue__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.SCPTM_PacketCounterValue_Type", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &SCPTM__PacketCounterValue__Type_xer_, &OCTETSTRING_json_, &SCPTM__PacketCounterValue__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +INTEGER const_tsc__MAX__ModeA__LB__Entities; +const INTEGER& tsc__MAX__ModeA__LB__Entities = const_tsc__MAX__ModeA__LB__Entities; +INTEGER const_tsc__MAX__ModeD__Monitor__Entities; +const INTEGER& tsc__MAX__ModeD__Monitor__Entities = const_tsc__MAX__ModeD__Monitor__Entities; +INTEGER const_tsc__MAX__ModeE__Monitor__Entities; +const INTEGER& tsc__MAX__ModeE__Monitor__Entities = const_tsc__MAX__ModeE__Monitor__Entities; +const XERdescriptor_t CLOSE__UE__TEST__LOOP_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &CLOSE__UE__TEST__LOOP_skipIndicator_xer_, &BITSTRING_json_, &CLOSE__UE__TEST__LOOP_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLOSE__UE__TEST__LOOP_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &CLOSE__UE__TEST__LOOP_protocolDiscriminator_xer_, &BITSTRING_json_, &CLOSE__UE__TEST__LOOP_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLOSE__UE__TEST__LOOP_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CLOSE__UE__TEST__LOOP_messageType_xer_, &BITSTRING_json_, &CLOSE__UE__TEST__LOOP_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopMode_xer_ = { {"ueTestLoopMode>\n", "ueTestLoopMode>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_ext_arr_[0] = {}; +const int CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_ext_arr_, 0, CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_p_}; +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopMode_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP.ueTestLoopMode", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CLOSE__UE__TEST__LOOP_ueTestLoopMode_xer_, &OCTETSTRING_json_, &CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CLOSE__UE__TEST__LOOP +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeA__LB__Setup__Type_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__TestLoopModeA__LB__Setup__Type_iel_oer_ext_arr_[0] = {}; +const int UE__TestLoopModeA__LB__Setup__Type_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__TestLoopModeA__LB__Setup__Type_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__TestLoopModeA__LB__Setup__Type_iel_oer_ext_arr_, 0, UE__TestLoopModeA__LB__Setup__Type_iel_oer_p_}; +const TTCN_Typedescriptor_t UE__TestLoopModeA__LB__Setup__Type_iel_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeA_LB_Setup_Type.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__TestLoopModeA__LB__Setup__Type_iel_xer_, &OCTETSTRING_json_, &UE__TestLoopModeA__LB__Setup__Type_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TestLoopModeA__LB__Setup__Type +const TTCN_Typedescriptor_t UE__TestLoopModeA__LB__Setup__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeA_LB_Setup_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LB__SetupDRB__IE__List__Type +const TTCN_Typedescriptor_t LB__SetupDRB__IE__List__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.LB_SetupDRB_IE_List_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &LB__SetupDRB__IE__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LB__SetupDRB__IE__Type_uplinkPdcpSduSize_xer_ = { {"uplinkPdcpSduSize>\n", "uplinkPdcpSduSize>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t LB__SetupDRB__IE__Type_uplinkPdcpSduSize_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t LB__SetupDRB__IE__Type_uplinkPdcpSduSize_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.LB_SetupDRB_IE_Type.uplinkPdcpSduSize", &BITSTRING_ber_, &CommonDefs::B16__Type_raw_, NULL, &LB__SetupDRB__IE__Type_uplinkPdcpSduSize_xer_, &BITSTRING_json_, &LB__SetupDRB__IE__Type_uplinkPdcpSduSize_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LB__SetupDRB__IE__Type_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t LB__SetupDRB__IE__Type_reserved_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t LB__SetupDRB__IE__Type_reserved_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.LB_SetupDRB_IE_Type.reserved", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &LB__SetupDRB__IE__Type_reserved_xer_, &BITSTRING_json_, &LB__SetupDRB__IE__Type_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LB__SetupDRB__IE__Type_drbIdentity_xer_ = { {"drbIdentity>\n", "drbIdentity>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t LB__SetupDRB__IE__Type_drbIdentity_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t LB__SetupDRB__IE__Type_drbIdentity_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.LB_SetupDRB_IE_Type.drbIdentity", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &LB__SetupDRB__IE__Type_drbIdentity_xer_, &BITSTRING_json_, &LB__SetupDRB__IE__Type_drbIdentity_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LB__SetupDRB__IE__Type +const TTCN_Typedescriptor_t LB__SetupDRB__IE__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.LB_SetupDRB_IE_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_xer_ = { {"ueTestLoopModeB_LB_Setup>\n", "ueTestLoopModeB_LB_Setup>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_ext_arr_[0] = {}; +const int CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_ext_arr_, 0, CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_p_}; +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP.ueTestLoopModeB_LB_Setup", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_xer_, &OCTETSTRING_json_, &CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_mBSFN__AreaId_xer_ = { {"mBSFN_AreaId>\n", "mBSFN_AreaId>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_mBSFN__AreaId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_mBSFN__AreaId_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeC_LB_Setup_Type.mBSFN_AreaId", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TestLoopModeC__LB__Setup__Type_mBSFN__AreaId_xer_, &BITSTRING_json_, &UE__TestLoopModeC__LB__Setup__Type_mBSFN__AreaId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB1_xer_ = { {"reservedB1>\n", "reservedB1>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB1_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeC_LB_Setup_Type.reservedB1", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TestLoopModeC__LB__Setup__Type_reservedB1_xer_, &BITSTRING_json_, &UE__TestLoopModeC__LB__Setup__Type_reservedB1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_pMCHIdentity_xer_ = { {"pMCHIdentity>\n", "pMCHIdentity>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_pMCHIdentity_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_pMCHIdentity_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeC_LB_Setup_Type.pMCHIdentity", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TestLoopModeC__LB__Setup__Type_pMCHIdentity_xer_, &BITSTRING_json_, &UE__TestLoopModeC__LB__Setup__Type_pMCHIdentity_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB2_xer_ = { {"reservedB2>\n", "reservedB2>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB2_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeC_LB_Setup_Type.reservedB2", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &UE__TestLoopModeC__LB__Setup__Type_reservedB2_xer_, &BITSTRING_json_, &UE__TestLoopModeC__LB__Setup__Type_reservedB2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_logChId_xer_ = { {"logChId>\n", "logChId>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_logChId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_logChId_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeC_LB_Setup_Type.logChId", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &UE__TestLoopModeC__LB__Setup__Type_logChId_xer_, &BITSTRING_json_, &UE__TestLoopModeC__LB__Setup__Type_logChId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TestLoopModeC__LB__Setup__Type +const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeC_LB_Setup_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_discMonitorListLength_xer_ = { {"discMonitorListLength>\n", "discMonitorListLength>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_discMonitorListLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeD__LB__Setup__Type_discMonitorListLength_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeD_LB_Setup_Type.discMonitorListLength", &BITSTRING_ber_, &CommonDefs::B16__Type_raw_, NULL, &UE__TestLoopModeD__LB__Setup__Type_discMonitorListLength_xer_, &BITSTRING_json_, &UE__TestLoopModeD__LB__Setup__Type_discMonitorListLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_reserved_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeD__LB__Setup__Type_reserved_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeD_LB_Setup_Type.reserved", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &UE__TestLoopModeD__LB__Setup__Type_reserved_xer_, &BITSTRING_json_, &UE__TestLoopModeD__LB__Setup__Type_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_discAnnounceOrMonitor_xer_ = { {"discAnnounceOrMonitor>\n", "discAnnounceOrMonitor>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_discAnnounceOrMonitor_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeD__LB__Setup__Type_discAnnounceOrMonitor_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeD_LB_Setup_Type.discAnnounceOrMonitor", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UE__TestLoopModeD__LB__Setup__Type_discAnnounceOrMonitor_xer_, &BITSTRING_json_, &UE__TestLoopModeD__LB__Setup__Type_discAnnounceOrMonitor_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TestLoopModeD__LB__Setup__Type +const TTCN_Typedescriptor_t UE__TestLoopModeD__LB__Setup__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeD_LB_Setup_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DiscMonitorList__Type +const TTCN_Typedescriptor_t DiscMonitorList__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitorList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &DiscMonitor__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A7_xer_ = { {"proSeAppCodeLSB_A7>\n", "proSeAppCodeLSB_A7>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A7_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.proSeAppCodeLSB_A7", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DiscMonitor__Type_proSeAppCodeLSB__A7_xer_, &BITSTRING_json_, &DiscMonitor__Type_proSeAppCodeLSB__A7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A6_xer_ = { {"proSeAppCodeLSB_A6>\n", "proSeAppCodeLSB_A6>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A6_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.proSeAppCodeLSB_A6", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DiscMonitor__Type_proSeAppCodeLSB__A6_xer_, &BITSTRING_json_, &DiscMonitor__Type_proSeAppCodeLSB__A6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A5_xer_ = { {"proSeAppCodeLSB_A5>\n", "proSeAppCodeLSB_A5>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A5_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.proSeAppCodeLSB_A5", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DiscMonitor__Type_proSeAppCodeLSB__A5_xer_, &BITSTRING_json_, &DiscMonitor__Type_proSeAppCodeLSB__A5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A4_xer_ = { {"proSeAppCodeLSB_A4>\n", "proSeAppCodeLSB_A4>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A4_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.proSeAppCodeLSB_A4", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DiscMonitor__Type_proSeAppCodeLSB__A4_xer_, &BITSTRING_json_, &DiscMonitor__Type_proSeAppCodeLSB__A4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A3_xer_ = { {"proSeAppCodeLSB_A3>\n", "proSeAppCodeLSB_A3>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A3_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.proSeAppCodeLSB_A3", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DiscMonitor__Type_proSeAppCodeLSB__A3_xer_, &BITSTRING_json_, &DiscMonitor__Type_proSeAppCodeLSB__A3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A2_xer_ = { {"proSeAppCodeLSB_A2>\n", "proSeAppCodeLSB_A2>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A2_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.proSeAppCodeLSB_A2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DiscMonitor__Type_proSeAppCodeLSB__A2_xer_, &BITSTRING_json_, &DiscMonitor__Type_proSeAppCodeLSB__A2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A1_xer_ = { {"proSeAppCodeLSB_A1>\n", "proSeAppCodeLSB_A1>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A1_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.proSeAppCodeLSB_A1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DiscMonitor__Type_proSeAppCodeLSB__A1_xer_, &BITSTRING_json_, &DiscMonitor__Type_proSeAppCodeLSB__A1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A0_xer_ = { {"proSeAppCodeLSB_A0>\n", "proSeAppCodeLSB_A0>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A0_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.proSeAppCodeLSB_A0", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DiscMonitor__Type_proSeAppCodeLSB__A0_xer_, &BITSTRING_json_, &DiscMonitor__Type_proSeAppCodeLSB__A0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_reserved_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_reserved_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.reserved", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &DiscMonitor__Type_reserved_xer_, &BITSTRING_json_, &DiscMonitor__Type_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A8_xer_ = { {"proSeAppCodeLSB_A8>\n", "proSeAppCodeLSB_A8>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A8_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type.proSeAppCodeLSB_A8", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DiscMonitor__Type_proSeAppCodeLSB__A8_xer_, &BITSTRING_json_, &DiscMonitor__Type_proSeAppCodeLSB__A8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DiscMonitor__Type +const TTCN_Typedescriptor_t DiscMonitor__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DiscMonitor_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_commMonitorListLength_xer_ = { {"commMonitorListLength>\n", "commMonitorListLength>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_commMonitorListLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_commMonitorListLength_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeE_LB_Setup_Type.commMonitorListLength", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TestLoopModeE__LB__Setup__Type_commMonitorListLength_xer_, &BITSTRING_json_, &UE__TestLoopModeE__LB__Setup__Type_commMonitorListLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_reserved_xer_ = { {"reserved>\n", "reserved>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_reserved_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_reserved_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeE_LB_Setup_Type.reserved", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &UE__TestLoopModeE__LB__Setup__Type_reserved_xer_, &BITSTRING_json_, &UE__TestLoopModeE__LB__Setup__Type_reserved_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_commTransmitOrReceive_xer_ = { {"commTransmitOrReceive>\n", "commTransmitOrReceive>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_commTransmitOrReceive_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_commTransmitOrReceive_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeE_LB_Setup_Type.commTransmitOrReceive", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UE__TestLoopModeE__LB__Setup__Type_commTransmitOrReceive_xer_, &BITSTRING_json_, &UE__TestLoopModeE__LB__Setup__Type_commTransmitOrReceive_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_d2dOrV2x_xer_ = { {"d2dOrV2x>\n", "d2dOrV2x>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_d2dOrV2x_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_d2dOrV2x_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeE_LB_Setup_Type.d2dOrV2x", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UE__TestLoopModeE__LB__Setup__Type_d2dOrV2x_xer_, &BITSTRING_json_, &UE__TestLoopModeE__LB__Setup__Type_d2dOrV2x_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TestLoopModeE__LB__Setup__Type +const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeE_LB_Setup_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CommMonitorList__Type +const TTCN_Typedescriptor_t CommMonitorList__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CommMonitorList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommMonitor__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CommMonitor__Type_xer_ = { {"CommMonitor_Type>\n", "CommMonitor_Type>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CommMonitor__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CommMonitor__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CommMonitor_Type", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CommMonitor__Type_xer_, &BITSTRING_json_, &CommMonitor__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CommMonitorList__Type_0_xer_ = { {"CommMonitor_Type>\n", "CommMonitor_Type>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CommMonitorList__Type_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CommMonitorList__Type_0_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CommMonitorList_Type.", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CommMonitorList__Type_0_xer_, &BITSTRING_json_, &CommMonitorList__Type_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeF__LB__Setup__Type_sC__MTCH__ID_xer_ = { {"sC_MTCH_ID>\n", "sC_MTCH_ID>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeF__LB__Setup__Type_sC__MTCH__ID_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeF__LB__Setup__Type_sC__MTCH__ID_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeF_LB_Setup_Type.sC_MTCH_ID", &BITSTRING_ber_, &CommonDefs::B16__Type_raw_, NULL, &UE__TestLoopModeF__LB__Setup__Type_sC__MTCH__ID_xer_, &BITSTRING_json_, &UE__TestLoopModeF__LB__Setup__Type_sC__MTCH__ID_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TestLoopModeF__LB__Setup__Type +const TTCN_Typedescriptor_t UE__TestLoopModeF__LB__Setup__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeF_LB_Setup_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkLoopbackMode_xer_ = { {"uplinkLoopbackMode>\n", "uplinkLoopbackMode>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkLoopbackMode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkLoopbackMode_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeGH_LB_Setup_Type.uplinkLoopbackMode", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UE__TestLoopModeGH__LB__Setup__Type_uplinkLoopbackMode_xer_, &BITSTRING_json_, &UE__TestLoopModeGH__LB__Setup__Type_uplinkLoopbackMode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_repetitions_xer_ = { {"repetitions>\n", "repetitions>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_repetitions_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeGH__LB__Setup__Type_repetitions_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeGH_LB_Setup_Type.repetitions", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &UE__TestLoopModeGH__LB__Setup__Type_repetitions_xer_, &BITSTRING_json_, &UE__TestLoopModeGH__LB__Setup__Type_repetitions_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkDataDelay_xer_ = { {"uplinkDataDelay>\n", "uplinkDataDelay>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkDataDelay_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkDataDelay_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeGH_LB_Setup_Type.uplinkDataDelay", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TestLoopModeGH__LB__Setup__Type_uplinkDataDelay_xer_, &BITSTRING_json_, &UE__TestLoopModeGH__LB__Setup__Type_uplinkDataDelay_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TestLoopModeGH__LB__Setup__Type +const TTCN_Typedescriptor_t UE__TestLoopModeGH__LB__Setup__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TestLoopModeGH_LB_Setup_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP_COMPLETE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &CLOSE__UE__TEST__LOOP__COMPLETE_skipIndicator_xer_, &BITSTRING_json_, &CLOSE__UE__TEST__LOOP__COMPLETE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &CLOSE__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &CLOSE__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CLOSE__UE__TEST__LOOP__COMPLETE_messageType_xer_, &BITSTRING_json_, &CLOSE__UE__TEST__LOOP__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CLOSE__UE__TEST__LOOP__COMPLETE +const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.CLOSE_UE_TEST_LOOP_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t OPEN__UE__TEST__LOOP_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.OPEN_UE_TEST_LOOP.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &OPEN__UE__TEST__LOOP_skipIndicator_xer_, &BITSTRING_json_, &OPEN__UE__TEST__LOOP_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t OPEN__UE__TEST__LOOP_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.OPEN_UE_TEST_LOOP.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &OPEN__UE__TEST__LOOP_protocolDiscriminator_xer_, &BITSTRING_json_, &OPEN__UE__TEST__LOOP_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t OPEN__UE__TEST__LOOP_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.OPEN_UE_TEST_LOOP.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &OPEN__UE__TEST__LOOP_messageType_xer_, &BITSTRING_json_, &OPEN__UE__TEST__LOOP_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for OPEN__UE__TEST__LOOP +const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.OPEN_UE_TEST_LOOP", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.OPEN_UE_TEST_LOOP_COMPLETE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &OPEN__UE__TEST__LOOP__COMPLETE_skipIndicator_xer_, &BITSTRING_json_, &OPEN__UE__TEST__LOOP__COMPLETE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.OPEN_UE_TEST_LOOP_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &OPEN__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &OPEN__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.OPEN_UE_TEST_LOOP_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &OPEN__UE__TEST__LOOP__COMPLETE_messageType_xer_, &BITSTRING_json_, &OPEN__UE__TEST__LOOP__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for OPEN__UE__TEST__LOOP__COMPLETE +const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.OPEN_UE_TEST_LOOP_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__TEST__MODE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ACTIVATE_TEST_MODE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__TEST__MODE_skipIndicator_xer_, &BITSTRING_json_, &ACTIVATE__TEST__MODE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__TEST__MODE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ACTIVATE_TEST_MODE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__TEST__MODE_protocolDiscriminator_xer_, &BITSTRING_json_, &ACTIVATE__TEST__MODE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__TEST__MODE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ACTIVATE_TEST_MODE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ACTIVATE__TEST__MODE_messageType_xer_, &BITSTRING_json_, &ACTIVATE__TEST__MODE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__TEST__MODE_ueTestLoopMode_xer_ = { {"ueTestLoopMode>\n", "ueTestLoopMode>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ACTIVATE__TEST__MODE_ueTestLoopMode_oer_ext_arr_[0] = {}; +const int ACTIVATE__TEST__MODE_ueTestLoopMode_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE_ueTestLoopMode_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ACTIVATE__TEST__MODE_ueTestLoopMode_oer_ext_arr_, 0, ACTIVATE__TEST__MODE_ueTestLoopMode_oer_p_}; +const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_ueTestLoopMode_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ACTIVATE_TEST_MODE.ueTestLoopMode", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ACTIVATE__TEST__MODE_ueTestLoopMode_xer_, &OCTETSTRING_json_, &ACTIVATE__TEST__MODE_ueTestLoopMode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ACTIVATE__TEST__MODE +const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ACTIVATE_TEST_MODE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE__COMPLETE_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ACTIVATE_TEST_MODE_COMPLETE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__TEST__MODE__COMPLETE_skipIndicator_xer_, &BITSTRING_json_, &ACTIVATE__TEST__MODE__COMPLETE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ACTIVATE_TEST_MODE_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &ACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE__COMPLETE_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ACTIVATE_TEST_MODE_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ACTIVATE__TEST__MODE__COMPLETE_messageType_xer_, &BITSTRING_json_, &ACTIVATE__TEST__MODE__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ACTIVATE__TEST__MODE__COMPLETE +const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE__COMPLETE_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ACTIVATE_TEST_MODE_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__TEST__MODE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DEACTIVATE_TEST_MODE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DEACTIVATE__TEST__MODE_skipIndicator_xer_, &BITSTRING_json_, &DEACTIVATE__TEST__MODE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__TEST__MODE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DEACTIVATE_TEST_MODE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DEACTIVATE__TEST__MODE_protocolDiscriminator_xer_, &BITSTRING_json_, &DEACTIVATE__TEST__MODE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__TEST__MODE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DEACTIVATE_TEST_MODE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DEACTIVATE__TEST__MODE_messageType_xer_, &BITSTRING_json_, &DEACTIVATE__TEST__MODE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DEACTIVATE__TEST__MODE +const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DEACTIVATE_TEST_MODE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DEACTIVATE_TEST_MODE_COMPLETE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DEACTIVATE__TEST__MODE__COMPLETE_skipIndicator_xer_, &BITSTRING_json_, &DEACTIVATE__TEST__MODE__COMPLETE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DEACTIVATE_TEST_MODE_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DEACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &DEACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DEACTIVATE_TEST_MODE_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DEACTIVATE__TEST__MODE__COMPLETE_messageType_xer_, &BITSTRING_json_, &DEACTIVATE__TEST__MODE__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DEACTIVATE__TEST__MODE__COMPLETE +const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.DEACTIVATE_TEST_MODE_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERREQUEST.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_skipIndicator_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERREQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERREQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_messageType_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST +const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERREQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERRESPONSE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_skipIndicator_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERRESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERRESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_messageType_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_xer_ = { {"MBMS_PacketCounterValue>\n", "MBMS_PacketCounterValue>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_oer_ext_arr_[0] = {}; +const int UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_oer_ = { -1, TRUE, 4, FALSE, 0, 0, UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_oer_ext_arr_, 0, UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_oer_p_}; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERRESPONSE.MBMS_PacketCounterValue", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_xer_, &OCTETSTRING_json_, &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE +const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERRESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOP_PROSE_PACKETCOUNTERREQUEST.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_skipIndicator_xer_, &BITSTRING_json_, &UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOP_PROSE_PACKETCOUNTERREQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOP_PROSE_PACKETCOUNTERREQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_messageType_xer_, &BITSTRING_json_, &UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST +const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOP_PROSE_PACKETCOUNTERREQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOP_PROSE_PACKETCOUNTERRESPONSE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_skipIndicator_xer_, &BITSTRING_json_, &UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOP_PROSE_PACKETCOUNTERRESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOP_PROSE_PACKETCOUNTERRESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_messageType_xer_, &BITSTRING_json_, &UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE +const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOP_PROSE_PACKETCOUNTERRESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterValueType_xer_ = { {"proSeDirectDiscPacketCounterValueType>\n", "proSeDirectDiscPacketCounterValueType>\n"}, {39, 39}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterValueType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterValueType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectDiscPacketCounterValue_Type.proSeDirectDiscPacketCounterValueType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterValueType_xer_, &BITSTRING_json_, &ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterValueType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterListLength_xer_ = { {"proSeDirectDiscPacketCounterListLength>\n", "proSeDirectDiscPacketCounterListLength>\n"}, {40, 40}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterListLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterListLength_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectDiscPacketCounterValue_Type.proSeDirectDiscPacketCounterListLength", &BITSTRING_ber_, &CommonDefs::B16__Type_raw_, NULL, &ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterListLength_xer_, &BITSTRING_json_, &ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterListLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProSeDirectDiscPacketCounterList__Type +const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterList__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectDiscPacketCounterList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommonDefs::O4__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectDiscPacketCounterList__Type_0_xer_ = { {"O4_Type>\n", "O4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProSeDirectDiscPacketCounterList__Type_0_oer_ext_arr_[0] = {}; +const int ProSeDirectDiscPacketCounterList__Type_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProSeDirectDiscPacketCounterList__Type_0_oer_ = { -1, TRUE, 4, FALSE, 0, 0, ProSeDirectDiscPacketCounterList__Type_0_oer_ext_arr_, 0, ProSeDirectDiscPacketCounterList__Type_0_oer_p_}; +const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterList__Type_0_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectDiscPacketCounterList_Type.", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &ProSeDirectDiscPacketCounterList__Type_0_xer_, &OCTETSTRING_json_, &ProSeDirectDiscPacketCounterList__Type_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProSeDirectDiscPacketCounterValue__Type +const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterValue__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectDiscPacketCounterValue_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterValueType_xer_ = { {"proSeDirectCommPSCCH_PacketCounterValueType>\n", "proSeDirectCommPSCCH_PacketCounterValueType>\n"}, {45, 45}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterValueType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterValueType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSCCH_PacketCounterValue_Type.proSeDirectCommPSCCH_PacketCounterValueType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterValueType_xer_, &BITSTRING_json_, &ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterValueType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterListLength_xer_ = { {"proSeDirectCommPSCCH_PacketCounterListLength>\n", "proSeDirectCommPSCCH_PacketCounterListLength>\n"}, {46, 46}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterListLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterListLength_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSCCH_PacketCounterValue_Type.proSeDirectCommPSCCH_PacketCounterListLength", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterListLength_xer_, &BITSTRING_json_, &ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterListLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProSeDirectCommPSCCH__PacketCounterList__Type +const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterList__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSCCH_PacketCounterList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommonDefs::O4__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectCommPSCCH__PacketCounterList__Type_0_xer_ = { {"O4_Type>\n", "O4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProSeDirectCommPSCCH__PacketCounterList__Type_0_oer_ext_arr_[0] = {}; +const int ProSeDirectCommPSCCH__PacketCounterList__Type_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProSeDirectCommPSCCH__PacketCounterList__Type_0_oer_ = { -1, TRUE, 4, FALSE, 0, 0, ProSeDirectCommPSCCH__PacketCounterList__Type_0_oer_ext_arr_, 0, ProSeDirectCommPSCCH__PacketCounterList__Type_0_oer_p_}; +const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterList__Type_0_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSCCH_PacketCounterList_Type.", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &ProSeDirectCommPSCCH__PacketCounterList__Type_0_xer_, &OCTETSTRING_json_, &ProSeDirectCommPSCCH__PacketCounterList__Type_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProSeDirectCommPSCCH__PacketCounterValue__Type +const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSCCH_PacketCounterValue_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueType_xer_ = { {"proSeDirectCommSTCH_PacketCounterValueType>\n", "proSeDirectCommSTCH_PacketCounterValueType>\n"}, {44, 44}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommSTCH_PacketCounterValue_Type.proSeDirectCommSTCH_PacketCounterValueType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueType_xer_, &BITSTRING_json_, &ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueLength_xer_ = { {"proSeDirectCommSTCH_PacketCounterValueLength>\n", "proSeDirectCommSTCH_PacketCounterValueLength>\n"}, {46, 46}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueLength_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommSTCH_PacketCounterValue_Type.proSeDirectCommSTCH_PacketCounterValueLength", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueLength_xer_, &BITSTRING_json_, &ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProSeDirectCommSTCH__PacketCounterList__Type +const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterList__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommSTCH_PacketCounterList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommonDefs::O4__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectCommSTCH__PacketCounterList__Type_0_xer_ = { {"O4_Type>\n", "O4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProSeDirectCommSTCH__PacketCounterList__Type_0_oer_ext_arr_[0] = {}; +const int ProSeDirectCommSTCH__PacketCounterList__Type_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProSeDirectCommSTCH__PacketCounterList__Type_0_oer_ = { -1, TRUE, 4, FALSE, 0, 0, ProSeDirectCommSTCH__PacketCounterList__Type_0_oer_ext_arr_, 0, ProSeDirectCommSTCH__PacketCounterList__Type_0_oer_p_}; +const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterList__Type_0_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommSTCH_PacketCounterList_Type.", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &ProSeDirectCommSTCH__PacketCounterList__Type_0_xer_, &OCTETSTRING_json_, &ProSeDirectCommSTCH__PacketCounterList__Type_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProSeDirectCommSTCH__PacketCounterValue__Type +const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommSTCH_PacketCounterValue_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterValueType_xer_ = { {"proSeDirectCommPSSCH_PacketCounterValueType>\n", "proSeDirectCommPSSCH_PacketCounterValueType>\n"}, {45, 45}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterValueType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterValueType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSSCH_PacketCounterValue_Type.proSeDirectCommPSSCH_PacketCounterValueType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterValueType_xer_, &BITSTRING_json_, &ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterValueType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterListLength_xer_ = { {"proSeDirectCommPSSCH_PacketCounterListLength>\n", "proSeDirectCommPSSCH_PacketCounterListLength>\n"}, {46, 46}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterListLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterListLength_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSSCH_PacketCounterValue_Type.proSeDirectCommPSSCH_PacketCounterListLength", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterListLength_xer_, &BITSTRING_json_, &ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterListLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProSeDirectCommPSSCH__PacketCounterList__Type +const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterList__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSSCH_PacketCounterList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommonDefs::O4__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProSeDirectCommPSSCH__PacketCounterList__Type_0_xer_ = { {"O4_Type>\n", "O4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProSeDirectCommPSSCH__PacketCounterList__Type_0_oer_ext_arr_[0] = {}; +const int ProSeDirectCommPSSCH__PacketCounterList__Type_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProSeDirectCommPSSCH__PacketCounterList__Type_0_oer_ = { -1, TRUE, 4, FALSE, 0, 0, ProSeDirectCommPSSCH__PacketCounterList__Type_0_oer_ext_arr_, 0, ProSeDirectCommPSSCH__PacketCounterList__Type_0_oer_p_}; +const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterList__Type_0_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSSCH_PacketCounterList_Type.", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &ProSeDirectCommPSSCH__PacketCounterList__Type_0_xer_, &OCTETSTRING_json_, &ProSeDirectCommPSSCH__PacketCounterList__Type_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProSeDirectCommPSSCH__PacketCounterValue__Type +const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.ProSeDirectCommPSSCH_PacketCounterValue_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERREQUEST.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_skipIndicator_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERREQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERREQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_messageType_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST +const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERREQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_skipIndicator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERRESPONSE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_skipIndicator_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_protocolDiscriminator_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERRESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_messageType_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERRESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_messageType_xer_, &BITSTRING_json_, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_xer_ = { {"sCPTM_PacketCounterValue>\n", "sCPTM_PacketCounterValue>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_oer_ext_arr_[0] = {}; +const int UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_oer_ = { -1, TRUE, 4, FALSE, 0, 0, UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_oer_ext_arr_, 0, UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_oer_p_}; +const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERRESPONSE.sCPTM_PacketCounterValue", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_xer_, &OCTETSTRING_json_, &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE +const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_descr_ = { "@EPS_NAS_LoopBack_TypeDefs.UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERRESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("EPS_NAS_LoopBack_TypeDefs", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_EPS_NAS_LoopBack_TypeDefs(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "ACTIVATE_TEST_MODE")) { + ((const ACTIVATE__TEST__MODE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_TEST_MODE template")) { + ((const ACTIVATE__TEST__MODE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_TEST_MODE_COMPLETE")) { + ((const ACTIVATE__TEST__MODE__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_TEST_MODE_COMPLETE template")) { + ((const ACTIVATE__TEST__MODE__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CLOSE_UE_TEST_LOOP")) { + ((const CLOSE__UE__TEST__LOOP*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CLOSE_UE_TEST_LOOP template")) { + ((const CLOSE__UE__TEST__LOOP_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CLOSE_UE_TEST_LOOP_COMPLETE")) { + ((const CLOSE__UE__TEST__LOOP__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CLOSE_UE_TEST_LOOP_COMPLETE template")) { + ((const CLOSE__UE__TEST__LOOP__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CommMonitorList_Type")) { + ((const CommMonitorList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CommMonitorList_Type template")) { + ((const CommMonitorList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_TEST_MODE")) { + ((const DEACTIVATE__TEST__MODE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_TEST_MODE template")) { + ((const DEACTIVATE__TEST__MODE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_TEST_MODE_COMPLETE")) { + ((const DEACTIVATE__TEST__MODE__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_TEST_MODE_COMPLETE template")) { + ((const DEACTIVATE__TEST__MODE__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DiscMonitorList_Type")) { + ((const DiscMonitorList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DiscMonitorList_Type template")) { + ((const DiscMonitorList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DiscMonitor_Type")) { + ((const DiscMonitor__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DiscMonitor_Type template")) { + ((const DiscMonitor__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LB_SetupDRB_IE_List_Type")) { + ((const LB__SetupDRB__IE__List__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LB_SetupDRB_IE_List_Type template")) { + ((const LB__SetupDRB__IE__List__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LB_SetupDRB_IE_Type")) { + ((const LB__SetupDRB__IE__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LB_SetupDRB_IE_Type template")) { + ((const LB__SetupDRB__IE__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "OPEN_UE_TEST_LOOP")) { + ((const OPEN__UE__TEST__LOOP*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "OPEN_UE_TEST_LOOP template")) { + ((const OPEN__UE__TEST__LOOP_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "OPEN_UE_TEST_LOOP_COMPLETE")) { + ((const OPEN__UE__TEST__LOOP__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "OPEN_UE_TEST_LOOP_COMPLETE template")) { + ((const OPEN__UE__TEST__LOOP__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSCCH_PacketCounterList_Type")) { + ((const ProSeDirectCommPSCCH__PacketCounterList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSCCH_PacketCounterList_Type template")) { + ((const ProSeDirectCommPSCCH__PacketCounterList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSCCH_PacketCounterValue_Type")) { + ((const ProSeDirectCommPSCCH__PacketCounterValue__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSCCH_PacketCounterValue_Type template")) { + ((const ProSeDirectCommPSCCH__PacketCounterValue__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSSCH_PacketCounterList_Type")) { + ((const ProSeDirectCommPSSCH__PacketCounterList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSSCH_PacketCounterList_Type template")) { + ((const ProSeDirectCommPSSCH__PacketCounterList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSSCH_PacketCounterValue_Type")) { + ((const ProSeDirectCommPSSCH__PacketCounterValue__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSSCH_PacketCounterValue_Type template")) { + ((const ProSeDirectCommPSSCH__PacketCounterValue__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommSTCH_PacketCounterList_Type")) { + ((const ProSeDirectCommSTCH__PacketCounterList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommSTCH_PacketCounterList_Type template")) { + ((const ProSeDirectCommSTCH__PacketCounterList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommSTCH_PacketCounterValue_Type")) { + ((const ProSeDirectCommSTCH__PacketCounterValue__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommSTCH_PacketCounterValue_Type template")) { + ((const ProSeDirectCommSTCH__PacketCounterValue__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectDiscPacketCounterList_Type")) { + ((const ProSeDirectDiscPacketCounterList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectDiscPacketCounterList_Type template")) { + ((const ProSeDirectDiscPacketCounterList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectDiscPacketCounterValue_Type")) { + ((const ProSeDirectDiscPacketCounterValue__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProSeDirectDiscPacketCounterValue_Type template")) { + ((const ProSeDirectDiscPacketCounterValue__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERREQUEST")) { + ((const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERREQUEST template")) { + ((const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERRESPONSE")) { + ((const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERRESPONSE template")) { + ((const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERREQUEST")) { + ((const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERREQUEST template")) { + ((const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERRESPONSE")) { + ((const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERRESPONSE template")) { + ((const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOP_PROSE_PACKETCOUNTERREQUEST")) { + ((const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOP_PROSE_PACKETCOUNTERREQUEST template")) { + ((const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOP_PROSE_PACKETCOUNTERRESPONSE")) { + ((const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOP_PROSE_PACKETCOUNTERRESPONSE template")) { + ((const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeA_LB_Setup_Type")) { + ((const UE__TestLoopModeA__LB__Setup__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeA_LB_Setup_Type template")) { + ((const UE__TestLoopModeA__LB__Setup__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeC_LB_Setup_Type")) { + ((const UE__TestLoopModeC__LB__Setup__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeC_LB_Setup_Type template")) { + ((const UE__TestLoopModeC__LB__Setup__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeD_LB_Setup_Type")) { + ((const UE__TestLoopModeD__LB__Setup__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeD_LB_Setup_Type template")) { + ((const UE__TestLoopModeD__LB__Setup__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeE_LB_Setup_Type")) { + ((const UE__TestLoopModeE__LB__Setup__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeE_LB_Setup_Type template")) { + ((const UE__TestLoopModeE__LB__Setup__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeF_LB_Setup_Type")) { + ((const UE__TestLoopModeF__LB__Setup__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeF_LB_Setup_Type template")) { + ((const UE__TestLoopModeF__LB__Setup__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeGH_LB_Setup_Type")) { + ((const UE__TestLoopModeGH__LB__Setup__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeGH_LB_Setup_Type template")) { + ((const UE__TestLoopModeGH__LB__Setup__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_EPS_NAS_LoopBack_TypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "ACTIVATE_TEST_MODE")) { + ((ACTIVATE__TEST__MODE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_TEST_MODE template")) { + ((ACTIVATE__TEST__MODE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_TEST_MODE_COMPLETE")) { + ((ACTIVATE__TEST__MODE__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_TEST_MODE_COMPLETE template")) { + ((ACTIVATE__TEST__MODE__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CLOSE_UE_TEST_LOOP")) { + ((CLOSE__UE__TEST__LOOP*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CLOSE_UE_TEST_LOOP template")) { + ((CLOSE__UE__TEST__LOOP_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CLOSE_UE_TEST_LOOP_COMPLETE")) { + ((CLOSE__UE__TEST__LOOP__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CLOSE_UE_TEST_LOOP_COMPLETE template")) { + ((CLOSE__UE__TEST__LOOP__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CommMonitorList_Type")) { + ((CommMonitorList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CommMonitorList_Type template")) { + ((CommMonitorList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_TEST_MODE")) { + ((DEACTIVATE__TEST__MODE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_TEST_MODE template")) { + ((DEACTIVATE__TEST__MODE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_TEST_MODE_COMPLETE")) { + ((DEACTIVATE__TEST__MODE__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_TEST_MODE_COMPLETE template")) { + ((DEACTIVATE__TEST__MODE__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DiscMonitorList_Type")) { + ((DiscMonitorList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DiscMonitorList_Type template")) { + ((DiscMonitorList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DiscMonitor_Type")) { + ((DiscMonitor__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DiscMonitor_Type template")) { + ((DiscMonitor__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LB_SetupDRB_IE_List_Type")) { + ((LB__SetupDRB__IE__List__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LB_SetupDRB_IE_List_Type template")) { + ((LB__SetupDRB__IE__List__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LB_SetupDRB_IE_Type")) { + ((LB__SetupDRB__IE__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LB_SetupDRB_IE_Type template")) { + ((LB__SetupDRB__IE__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "OPEN_UE_TEST_LOOP")) { + ((OPEN__UE__TEST__LOOP*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "OPEN_UE_TEST_LOOP template")) { + ((OPEN__UE__TEST__LOOP_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "OPEN_UE_TEST_LOOP_COMPLETE")) { + ((OPEN__UE__TEST__LOOP__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "OPEN_UE_TEST_LOOP_COMPLETE template")) { + ((OPEN__UE__TEST__LOOP__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSCCH_PacketCounterList_Type")) { + ((ProSeDirectCommPSCCH__PacketCounterList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSCCH_PacketCounterList_Type template")) { + ((ProSeDirectCommPSCCH__PacketCounterList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSCCH_PacketCounterValue_Type")) { + ((ProSeDirectCommPSCCH__PacketCounterValue__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSCCH_PacketCounterValue_Type template")) { + ((ProSeDirectCommPSCCH__PacketCounterValue__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSSCH_PacketCounterList_Type")) { + ((ProSeDirectCommPSSCH__PacketCounterList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSSCH_PacketCounterList_Type template")) { + ((ProSeDirectCommPSSCH__PacketCounterList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSSCH_PacketCounterValue_Type")) { + ((ProSeDirectCommPSSCH__PacketCounterValue__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommPSSCH_PacketCounterValue_Type template")) { + ((ProSeDirectCommPSSCH__PacketCounterValue__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommSTCH_PacketCounterList_Type")) { + ((ProSeDirectCommSTCH__PacketCounterList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommSTCH_PacketCounterList_Type template")) { + ((ProSeDirectCommSTCH__PacketCounterList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommSTCH_PacketCounterValue_Type")) { + ((ProSeDirectCommSTCH__PacketCounterValue__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectCommSTCH_PacketCounterValue_Type template")) { + ((ProSeDirectCommSTCH__PacketCounterValue__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectDiscPacketCounterList_Type")) { + ((ProSeDirectDiscPacketCounterList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectDiscPacketCounterList_Type template")) { + ((ProSeDirectDiscPacketCounterList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectDiscPacketCounterValue_Type")) { + ((ProSeDirectDiscPacketCounterValue__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProSeDirectDiscPacketCounterValue_Type template")) { + ((ProSeDirectDiscPacketCounterValue__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERREQUEST")) { + ((UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERREQUEST template")) { + ((UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERRESPONSE")) { + ((UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEC_MBMS_PACKETCOUNTERRESPONSE template")) { + ((UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERREQUEST")) { + ((UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERREQUEST template")) { + ((UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERRESPONSE")) { + ((UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOPMODEF_SCPTM_PACKETCOUNTERRESPONSE template")) { + ((UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOP_PROSE_PACKETCOUNTERREQUEST")) { + ((UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOP_PROSE_PACKETCOUNTERREQUEST template")) { + ((UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOP_PROSE_PACKETCOUNTERRESPONSE")) { + ((UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TESTLOOP_PROSE_PACKETCOUNTERRESPONSE template")) { + ((UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeA_LB_Setup_Type")) { + ((UE__TestLoopModeA__LB__Setup__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeA_LB_Setup_Type template")) { + ((UE__TestLoopModeA__LB__Setup__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeC_LB_Setup_Type")) { + ((UE__TestLoopModeC__LB__Setup__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeC_LB_Setup_Type template")) { + ((UE__TestLoopModeC__LB__Setup__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeD_LB_Setup_Type")) { + ((UE__TestLoopModeD__LB__Setup__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeD_LB_Setup_Type template")) { + ((UE__TestLoopModeD__LB__Setup__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeE_LB_Setup_Type")) { + ((UE__TestLoopModeE__LB__Setup__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeE_LB_Setup_Type template")) { + ((UE__TestLoopModeE__LB__Setup__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeF_LB_Setup_Type")) { + ((UE__TestLoopModeF__LB__Setup__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeF_LB_Setup_Type template")) { + ((UE__TestLoopModeF__LB__Setup__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeGH_LB_Setup_Type")) { + ((UE__TestLoopModeGH__LB__Setup__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TestLoopModeGH_LB_Setup_Type template")) { + ((UE__TestLoopModeGH__LB__Setup__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("EPS_NAS_LoopBack_TypeDefs"); + global_scope->add_variable(&tsc__MAX__ModeA__LB__Entities, "tsc_MAX_ModeA_LB_Entities", "integer", "EPS_NAS_LoopBack_TypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MAX__ModeD__Monitor__Entities, "tsc_MAX_ModeD_Monitor_Entities", "integer", "EPS_NAS_LoopBack_TypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MAX__ModeE__Monitor__Entities, "tsc_MAX_ModeE_Monitor_Entities", "integer", "EPS_NAS_LoopBack_TypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void CLOSE__UE__TEST__LOOP::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_ueTestLoopMode; fld_vec[4]=&field_ueTestLoopModeA__LB__Setup; fld_vec[5]=&field_ueTestLoopModeB__LB__Setup; fld_vec[6]=&field_ueTestLoopModeC__LB__Setup; fld_vec[7]=&field_ueTestLoopModeD__LB__Setup; fld_vec[8]=&field_ueTestLoopModeE__LB__Setup; fld_vec[9]=&field_ueTestLoopModeF__LB__Setup; fld_vec[10]=&field_ueTestLoopModeGH__LB__Setup; } + +CLOSE__UE__TEST__LOOP::CLOSE__UE__TEST__LOOP() : Record_Type() { init_vec(); } + +CLOSE__UE__TEST__LOOP::CLOSE__UE__TEST__LOOP(const CLOSE__UE__TEST__LOOP& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_ueTestLoopMode.is_bound() ) + field_ueTestLoopMode = other_value.field_ueTestLoopMode; +if (other_value.field_ueTestLoopModeA__LB__Setup.is_bound() ) + field_ueTestLoopModeA__LB__Setup = other_value.field_ueTestLoopModeA__LB__Setup; +if (other_value.field_ueTestLoopModeB__LB__Setup.is_bound() ) + field_ueTestLoopModeB__LB__Setup = other_value.field_ueTestLoopModeB__LB__Setup; +if (other_value.field_ueTestLoopModeC__LB__Setup.is_bound() ) + field_ueTestLoopModeC__LB__Setup = other_value.field_ueTestLoopModeC__LB__Setup; +if (other_value.field_ueTestLoopModeD__LB__Setup.is_bound() ) + field_ueTestLoopModeD__LB__Setup = other_value.field_ueTestLoopModeD__LB__Setup; +if (other_value.field_ueTestLoopModeE__LB__Setup.is_bound() ) + field_ueTestLoopModeE__LB__Setup = other_value.field_ueTestLoopModeE__LB__Setup; +if (other_value.field_ueTestLoopModeF__LB__Setup.is_bound() ) + field_ueTestLoopModeF__LB__Setup = other_value.field_ueTestLoopModeF__LB__Setup; +if (other_value.field_ueTestLoopModeGH__LB__Setup.is_bound() ) + field_ueTestLoopModeGH__LB__Setup = other_value.field_ueTestLoopModeGH__LB__Setup; +init_vec(); +} + +CLOSE__UE__TEST__LOOP::CLOSE__UE__TEST__LOOP(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_ueTestLoopMode, + const OPTIONAL& par_ueTestLoopModeA__LB__Setup, + const OPTIONAL& par_ueTestLoopModeB__LB__Setup, + const OPTIONAL& par_ueTestLoopModeC__LB__Setup, + const OPTIONAL& par_ueTestLoopModeD__LB__Setup, + const OPTIONAL& par_ueTestLoopModeE__LB__Setup, + const OPTIONAL& par_ueTestLoopModeF__LB__Setup, + const OPTIONAL& par_ueTestLoopModeGH__LB__Setup) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_ueTestLoopMode(par_ueTestLoopMode), + field_ueTestLoopModeA__LB__Setup(par_ueTestLoopModeA__LB__Setup), + field_ueTestLoopModeB__LB__Setup(par_ueTestLoopModeB__LB__Setup), + field_ueTestLoopModeC__LB__Setup(par_ueTestLoopModeC__LB__Setup), + field_ueTestLoopModeD__LB__Setup(par_ueTestLoopModeD__LB__Setup), + field_ueTestLoopModeE__LB__Setup(par_ueTestLoopModeE__LB__Setup), + field_ueTestLoopModeF__LB__Setup(par_ueTestLoopModeF__LB__Setup), + field_ueTestLoopModeGH__LB__Setup(par_ueTestLoopModeGH__LB__Setup) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CLOSE__UE__TEST__LOOP::get_descriptor() const { return &CLOSE__UE__TEST__LOOP_descr_; } +const TTCN_Typedescriptor_t* CLOSE__UE__TEST__LOOP::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::UE__TestLoopMode__Type_descr_, &UE__TestLoopModeA__LB__Setup__Type_descr_, &UE__TestLoopModeB__LB__Setup__Type_descr_, &UE__TestLoopModeC__LB__Setup__Type_descr_, &UE__TestLoopModeD__LB__Setup__Type_descr_, &UE__TestLoopModeE__LB__Setup__Type_descr_, &UE__TestLoopModeF__LB__Setup__Type_descr_, &UE__TestLoopModeGH__LB__Setup__Type_descr_ }; +const TTCN_Typedescriptor_t* CLOSE__UE__TEST__LOOP::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CLOSE__UE__TEST__LOOP::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "ueTestLoopMode", "ueTestLoopModeA_LB_Setup", "ueTestLoopModeB_LB_Setup", "ueTestLoopModeC_LB_Setup", "ueTestLoopModeD_LB_Setup", "ueTestLoopModeE_LB_Setup", "ueTestLoopModeF_LB_Setup", "ueTestLoopModeGH_LB_Setup" }; +const char* CLOSE__UE__TEST__LOOP::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CLOSE__UE__TEST__LOOP::optional_indexes[] = { 4, 5, 6, 7, 8, 9, 10, -1 }; +const int* CLOSE__UE__TEST__LOOP::get_optional_indexes() const { return optional_indexes; } + +const int CLOSE__UE__TEST__LOOP::optional_indexes_asn[] = { 4, 5, 6, 7, 8, 9, 10, -1 }; +const int* CLOSE__UE__TEST__LOOP::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CLOSE__UE__TEST__LOOP_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 11; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new UE__TestLoopModeA__LB__Setup__Type_template(ANY_OR_OMIT) : new UE__TestLoopModeA__LB__Setup__Type_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[6] = was_any ? new UE__TestLoopModeC__LB__Setup__Type_template(ANY_OR_OMIT) : new UE__TestLoopModeC__LB__Setup__Type_template; +single_value.value_elements[7] = was_any ? new UE__TestLoopModeD__LB__Setup__Type_template(ANY_OR_OMIT) : new UE__TestLoopModeD__LB__Setup__Type_template; +single_value.value_elements[8] = was_any ? new UE__TestLoopModeE__LB__Setup__Type_template(ANY_OR_OMIT) : new UE__TestLoopModeE__LB__Setup__Type_template; +single_value.value_elements[9] = was_any ? new UE__TestLoopModeF__LB__Setup__Type_template(ANY_OR_OMIT) : new UE__TestLoopModeF__LB__Setup__Type_template; +single_value.value_elements[10] = was_any ? new UE__TestLoopModeGH__LB__Setup__Type_template(ANY_OR_OMIT) : new UE__TestLoopModeGH__LB__Setup__Type_template; +} +} + +CLOSE__UE__TEST__LOOP_template::CLOSE__UE__TEST__LOOP_template(CLOSE__UE__TEST__LOOP_template* p_precondition, CLOSE__UE__TEST__LOOP_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CLOSE__UE__TEST__LOOP_template::CLOSE__UE__TEST__LOOP_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CLOSE__UE__TEST__LOOP_template::~CLOSE__UE__TEST__LOOP_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CLOSE__UE__TEST__LOOP_template::match_dynamic(const Base_Type* match_value) const +{ +const CLOSE__UE__TEST__LOOP* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CLOSE__UE__TEST__LOOP_template& CLOSE__UE__TEST__LOOP_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CLOSE__UE__TEST__LOOP_template& CLOSE__UE__TEST__LOOP_template::operator=(const CLOSE__UE__TEST__LOOP& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CLOSE__UE__TEST__LOOP_template& CLOSE__UE__TEST__LOOP_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CLOSE__UE__TEST__LOOP_template& CLOSE__UE__TEST__LOOP_template::operator=(const CLOSE__UE__TEST__LOOP_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CLOSE__UE__TEST__LOOP CLOSE__UE__TEST__LOOP_template::valueof() const +{ +CLOSE__UE__TEST__LOOP ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& CLOSE__UE__TEST__LOOP_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& CLOSE__UE__TEST__LOOP_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& CLOSE__UE__TEST__LOOP_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& CLOSE__UE__TEST__LOOP_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CLOSE__UE__TEST__LOOP_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CLOSE__UE__TEST__LOOP_template::messageType() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopMode() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopMode() const { return *(static_cast(get_at(3))); } +UE__TestLoopModeA__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeA__LB__Setup() { return *(static_cast(get_at(4))); } +const UE__TestLoopModeA__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeA__LB__Setup() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeB__LB__Setup() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeB__LB__Setup() const { return *(static_cast(get_at(5))); } +UE__TestLoopModeC__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeC__LB__Setup() { return *(static_cast(get_at(6))); } +const UE__TestLoopModeC__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeC__LB__Setup() const { return *(static_cast(get_at(6))); } +UE__TestLoopModeD__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeD__LB__Setup() { return *(static_cast(get_at(7))); } +const UE__TestLoopModeD__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeD__LB__Setup() const { return *(static_cast(get_at(7))); } +UE__TestLoopModeE__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeE__LB__Setup() { return *(static_cast(get_at(8))); } +const UE__TestLoopModeE__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeE__LB__Setup() const { return *(static_cast(get_at(8))); } +UE__TestLoopModeF__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeF__LB__Setup() { return *(static_cast(get_at(9))); } +const UE__TestLoopModeF__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeF__LB__Setup() const { return *(static_cast(get_at(9))); } +UE__TestLoopModeGH__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeGH__LB__Setup() { return *(static_cast(get_at(10))); } +const UE__TestLoopModeGH__LB__Setup__Type_template& CLOSE__UE__TEST__LOOP_template::ueTestLoopModeGH__LB__Setup() const { return *(static_cast(get_at(10))); } +const TTCN_Typedescriptor_t* CLOSE__UE__TEST__LOOP_template::get_descriptor() const { return &CLOSE__UE__TEST__LOOP_descr_; } +const char* CLOSE__UE__TEST__LOOP_template::fld_name(int p_index) const { return CLOSE__UE__TEST__LOOP::fld_names[p_index]; } +void UE__TestLoopModeA__LB__Setup__Type::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_lbSetupDrbList; } + +UE__TestLoopModeA__LB__Setup__Type::UE__TestLoopModeA__LB__Setup__Type() : Record_Type() { init_vec(); } + +UE__TestLoopModeA__LB__Setup__Type::UE__TestLoopModeA__LB__Setup__Type(const UE__TestLoopModeA__LB__Setup__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_lbSetupDrbList.is_bound() ) + field_lbSetupDrbList = other_value.field_lbSetupDrbList; +init_vec(); +} + +UE__TestLoopModeA__LB__Setup__Type::UE__TestLoopModeA__LB__Setup__Type(const OCTETSTRING& par_iel, + const OPTIONAL& par_lbSetupDrbList) : field_iel(par_iel), + field_lbSetupDrbList(par_lbSetupDrbList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TestLoopModeA__LB__Setup__Type::get_descriptor() const { return &UE__TestLoopModeA__LB__Setup__Type_descr_; } +const TTCN_Typedescriptor_t* UE__TestLoopModeA__LB__Setup__Type::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &LB__SetupDRB__IE__List__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TestLoopModeA__LB__Setup__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TestLoopModeA__LB__Setup__Type::fld_names[] = { "iel", "lbSetupDrbList" }; +const char* UE__TestLoopModeA__LB__Setup__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__TestLoopModeA__LB__Setup__Type::optional_indexes[] = { 1, -1 }; +const int* UE__TestLoopModeA__LB__Setup__Type::get_optional_indexes() const { return optional_indexes; } + +const int UE__TestLoopModeA__LB__Setup__Type::optional_indexes_asn[] = { 1, -1 }; +const int* UE__TestLoopModeA__LB__Setup__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__TestLoopModeA__LB__Setup__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new LB__SetupDRB__IE__List__Type_template(ANY_OR_OMIT) : new LB__SetupDRB__IE__List__Type_template; +} +} + +UE__TestLoopModeA__LB__Setup__Type_template::UE__TestLoopModeA__LB__Setup__Type_template(UE__TestLoopModeA__LB__Setup__Type_template* p_precondition, UE__TestLoopModeA__LB__Setup__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TestLoopModeA__LB__Setup__Type_template::UE__TestLoopModeA__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TestLoopModeA__LB__Setup__Type_template::~UE__TestLoopModeA__LB__Setup__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TestLoopModeA__LB__Setup__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TestLoopModeA__LB__Setup__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TestLoopModeA__LB__Setup__Type_template& UE__TestLoopModeA__LB__Setup__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TestLoopModeA__LB__Setup__Type_template& UE__TestLoopModeA__LB__Setup__Type_template::operator=(const UE__TestLoopModeA__LB__Setup__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TestLoopModeA__LB__Setup__Type_template& UE__TestLoopModeA__LB__Setup__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TestLoopModeA__LB__Setup__Type_template& UE__TestLoopModeA__LB__Setup__Type_template::operator=(const UE__TestLoopModeA__LB__Setup__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TestLoopModeA__LB__Setup__Type UE__TestLoopModeA__LB__Setup__Type_template::valueof() const +{ +UE__TestLoopModeA__LB__Setup__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UE__TestLoopModeA__LB__Setup__Type_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UE__TestLoopModeA__LB__Setup__Type_template::iel() const { return *(static_cast(get_at(0))); } +LB__SetupDRB__IE__List__Type_template& UE__TestLoopModeA__LB__Setup__Type_template::lbSetupDrbList() { return *(static_cast(get_at(1))); } +const LB__SetupDRB__IE__List__Type_template& UE__TestLoopModeA__LB__Setup__Type_template::lbSetupDrbList() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* UE__TestLoopModeA__LB__Setup__Type_template::get_descriptor() const { return &UE__TestLoopModeA__LB__Setup__Type_descr_; } +const char* UE__TestLoopModeA__LB__Setup__Type_template::fld_name(int p_index) const { return UE__TestLoopModeA__LB__Setup__Type::fld_names[p_index]; } + +const LB__SetupDRB__IE__Type LB__SetupDRB__IE__List__Type::UNBOUND_ELEM; +LB__SetupDRB__IE__Type& LB__SetupDRB__IE__List__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +LB__SetupDRB__IE__Type& LB__SetupDRB__IE__List__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const LB__SetupDRB__IE__Type& LB__SetupDRB__IE__List__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const LB__SetupDRB__IE__Type& LB__SetupDRB__IE__List__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::operator<<=(const INTEGER& rotate_count) const +{ +LB__SetupDRB__IE__List__Type rec_of; +return *((LB__SetupDRB__IE__List__Type*)rotl(rotate_count, &rec_of)); +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::operator>>=(const INTEGER& rotate_count) const +{ +LB__SetupDRB__IE__List__Type rec_of; +return *((LB__SetupDRB__IE__List__Type*)rotr(rotate_count, &rec_of)); +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::operator>>=(int rotate_count) const +{ +LB__SetupDRB__IE__List__Type rec_of; +return *((LB__SetupDRB__IE__List__Type*)rotr(rotate_count, &rec_of)); +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::operator+(const LB__SetupDRB__IE__List__Type& other_value) const +{ +LB__SetupDRB__IE__List__Type rec_of; +return *((LB__SetupDRB__IE__List__Type*)concat(&other_value, &rec_of)); +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const LB__SetupDRB__IE__List__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_LoopBack_TypeDefs.LB_SetupDRB_IE_List_Type concatenation."); +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::operator+(null_type) const +{ +return *this; +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::substr(int index, int returncount) const +{ +LB__SetupDRB__IE__List__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::replace(int index, int len, const LB__SetupDRB__IE__List__Type& repl) const +{ +LB__SetupDRB__IE__List__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type::replace(int index, int len, const LB__SetupDRB__IE__List__Type_template& repl) const +{ +LB__SetupDRB__IE__List__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* LB__SetupDRB__IE__List__Type::create_elem() const { return new LB__SetupDRB__IE__Type; } +const Base_Type* LB__SetupDRB__IE__List__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* LB__SetupDRB__IE__List__Type::get_descriptor() const { return &LB__SetupDRB__IE__List__Type_descr_; } +LB__SetupDRB__IE__List__Type_template::LB__SetupDRB__IE__List__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +LB__SetupDRB__IE__List__Type_template::LB__SetupDRB__IE__List__Type_template(LB__SetupDRB__IE__List__Type_template* p_precondition, LB__SetupDRB__IE__List__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LB__SetupDRB__IE__List__Type_template::LB__SetupDRB__IE__List__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LB__SetupDRB__IE__List__Type_template::~LB__SetupDRB__IE__List__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LB__SetupDRB__IE__List__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const LB__SetupDRB__IE__List__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +LB__SetupDRB__IE__List__Type_template& LB__SetupDRB__IE__List__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LB__SetupDRB__IE__List__Type_template& LB__SetupDRB__IE__List__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +LB__SetupDRB__IE__List__Type_template& LB__SetupDRB__IE__List__Type_template::operator=(const LB__SetupDRB__IE__List__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LB__SetupDRB__IE__List__Type_template& LB__SetupDRB__IE__List__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LB__SetupDRB__IE__List__Type_template& LB__SetupDRB__IE__List__Type_template::operator=(const LB__SetupDRB__IE__List__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LB__SetupDRB__IE__List__Type_template LB__SetupDRB__IE__List__Type_template::operator+(const LB__SetupDRB__IE__List__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return LB__SetupDRB__IE__List__Type_template(ANY_VALUE); +} +LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +LB__SetupDRB__IE__List__Type_template LB__SetupDRB__IE__List__Type_template::operator+(const LB__SetupDRB__IE__List__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +LB__SetupDRB__IE__List__Type_template LB__SetupDRB__IE__List__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return LB__SetupDRB__IE__List__Type_template(ANY_VALUE); +} +LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +LB__SetupDRB__IE__List__Type_template LB__SetupDRB__IE__List__Type_template::operator+(null_type) const +{ +return *this; +} + +LB__SetupDRB__IE__Type_template& LB__SetupDRB__IE__List__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +LB__SetupDRB__IE__Type_template& LB__SetupDRB__IE__List__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const LB__SetupDRB__IE__Type_template& LB__SetupDRB__IE__List__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const LB__SetupDRB__IE__Type_template& LB__SetupDRB__IE__List__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type_template::valueof() const +{ +LB__SetupDRB__IE__List__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type_template::substr(int index, int returncount) const +{ +LB__SetupDRB__IE__List__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type_template::replace(int index, int len, const LB__SetupDRB__IE__List__Type_template& repl) const +{ +LB__SetupDRB__IE__List__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +LB__SetupDRB__IE__List__Type LB__SetupDRB__IE__List__Type_template::replace(int index, int len, const LB__SetupDRB__IE__List__Type& repl) const +{ +LB__SetupDRB__IE__List__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* LB__SetupDRB__IE__List__Type_template::create_elem() const { return new LB__SetupDRB__IE__Type_template; } +const TTCN_Typedescriptor_t* LB__SetupDRB__IE__List__Type_template::get_descriptor() const { return &LB__SetupDRB__IE__List__Type_descr_; } +void LB__SetupDRB__IE__Type::init_vec() { fld_vec[0]=&field_uplinkPdcpSduSize; fld_vec[1]=&field_reserved; fld_vec[2]=&field_drbIdentity; } + +LB__SetupDRB__IE__Type::LB__SetupDRB__IE__Type() : Record_Type() { init_vec(); } + +LB__SetupDRB__IE__Type::LB__SetupDRB__IE__Type(const LB__SetupDRB__IE__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_uplinkPdcpSduSize.is_bound() ) + field_uplinkPdcpSduSize = other_value.field_uplinkPdcpSduSize; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_drbIdentity.is_bound() ) + field_drbIdentity = other_value.field_drbIdentity; +init_vec(); +} + +LB__SetupDRB__IE__Type::LB__SetupDRB__IE__Type(const BITSTRING& par_uplinkPdcpSduSize, + const BITSTRING& par_reserved, + const BITSTRING& par_drbIdentity) : field_uplinkPdcpSduSize(par_uplinkPdcpSduSize), + field_reserved(par_reserved), + field_drbIdentity(par_drbIdentity) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* LB__SetupDRB__IE__Type::get_descriptor() const { return &LB__SetupDRB__IE__Type_descr_; } +const TTCN_Typedescriptor_t* LB__SetupDRB__IE__Type::fld_descriptors[] = { &CommonDefs::B16__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B5__Type_descr_ }; +const TTCN_Typedescriptor_t* LB__SetupDRB__IE__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* LB__SetupDRB__IE__Type::fld_names[] = { "uplinkPdcpSduSize", "reserved", "drbIdentity" }; +const char* LB__SetupDRB__IE__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void LB__SetupDRB__IE__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +LB__SetupDRB__IE__Type_template::LB__SetupDRB__IE__Type_template(LB__SetupDRB__IE__Type_template* p_precondition, LB__SetupDRB__IE__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LB__SetupDRB__IE__Type_template::LB__SetupDRB__IE__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LB__SetupDRB__IE__Type_template::~LB__SetupDRB__IE__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LB__SetupDRB__IE__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const LB__SetupDRB__IE__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +LB__SetupDRB__IE__Type_template& LB__SetupDRB__IE__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LB__SetupDRB__IE__Type_template& LB__SetupDRB__IE__Type_template::operator=(const LB__SetupDRB__IE__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LB__SetupDRB__IE__Type_template& LB__SetupDRB__IE__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LB__SetupDRB__IE__Type_template& LB__SetupDRB__IE__Type_template::operator=(const LB__SetupDRB__IE__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LB__SetupDRB__IE__Type LB__SetupDRB__IE__Type_template::valueof() const +{ +LB__SetupDRB__IE__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& LB__SetupDRB__IE__Type_template::uplinkPdcpSduSize() { return *(static_cast(get_at(0))); } +const BITSTRING_template& LB__SetupDRB__IE__Type_template::uplinkPdcpSduSize() const { return *(static_cast(get_at(0))); } +BITSTRING_template& LB__SetupDRB__IE__Type_template::reserved() { return *(static_cast(get_at(1))); } +const BITSTRING_template& LB__SetupDRB__IE__Type_template::reserved() const { return *(static_cast(get_at(1))); } +BITSTRING_template& LB__SetupDRB__IE__Type_template::drbIdentity() { return *(static_cast(get_at(2))); } +const BITSTRING_template& LB__SetupDRB__IE__Type_template::drbIdentity() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* LB__SetupDRB__IE__Type_template::get_descriptor() const { return &LB__SetupDRB__IE__Type_descr_; } +const char* LB__SetupDRB__IE__Type_template::fld_name(int p_index) const { return LB__SetupDRB__IE__Type::fld_names[p_index]; } +void UE__TestLoopModeC__LB__Setup__Type::init_vec() { fld_vec[0]=&field_mBSFN__AreaId; fld_vec[1]=&field_reservedB1; fld_vec[2]=&field_pMCHIdentity; fld_vec[3]=&field_reservedB2; fld_vec[4]=&field_logChId; } + +UE__TestLoopModeC__LB__Setup__Type::UE__TestLoopModeC__LB__Setup__Type() : Record_Type() { init_vec(); } + +UE__TestLoopModeC__LB__Setup__Type::UE__TestLoopModeC__LB__Setup__Type(const UE__TestLoopModeC__LB__Setup__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_mBSFN__AreaId.is_bound() ) + field_mBSFN__AreaId = other_value.field_mBSFN__AreaId; +if (other_value.field_reservedB1.is_bound() ) + field_reservedB1 = other_value.field_reservedB1; +if (other_value.field_pMCHIdentity.is_bound() ) + field_pMCHIdentity = other_value.field_pMCHIdentity; +if (other_value.field_reservedB2.is_bound() ) + field_reservedB2 = other_value.field_reservedB2; +if (other_value.field_logChId.is_bound() ) + field_logChId = other_value.field_logChId; +init_vec(); +} + +UE__TestLoopModeC__LB__Setup__Type::UE__TestLoopModeC__LB__Setup__Type(const BITSTRING& par_mBSFN__AreaId, + const BITSTRING& par_reservedB1, + const BITSTRING& par_pMCHIdentity, + const BITSTRING& par_reservedB2, + const BITSTRING& par_logChId) : field_mBSFN__AreaId(par_mBSFN__AreaId), + field_reservedB1(par_reservedB1), + field_pMCHIdentity(par_pMCHIdentity), + field_reservedB2(par_reservedB2), + field_logChId(par_logChId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TestLoopModeC__LB__Setup__Type::get_descriptor() const { return &UE__TestLoopModeC__LB__Setup__Type_descr_; } +const TTCN_Typedescriptor_t* UE__TestLoopModeC__LB__Setup__Type::fld_descriptors[] = { &CommonDefs::B8__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B5__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TestLoopModeC__LB__Setup__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TestLoopModeC__LB__Setup__Type::fld_names[] = { "mBSFN_AreaId", "reservedB1", "pMCHIdentity", "reservedB2", "logChId" }; +const char* UE__TestLoopModeC__LB__Setup__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__TestLoopModeC__LB__Setup__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__TestLoopModeC__LB__Setup__Type_template::UE__TestLoopModeC__LB__Setup__Type_template(UE__TestLoopModeC__LB__Setup__Type_template* p_precondition, UE__TestLoopModeC__LB__Setup__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TestLoopModeC__LB__Setup__Type_template::UE__TestLoopModeC__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TestLoopModeC__LB__Setup__Type_template::~UE__TestLoopModeC__LB__Setup__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TestLoopModeC__LB__Setup__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TestLoopModeC__LB__Setup__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TestLoopModeC__LB__Setup__Type_template& UE__TestLoopModeC__LB__Setup__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TestLoopModeC__LB__Setup__Type_template& UE__TestLoopModeC__LB__Setup__Type_template::operator=(const UE__TestLoopModeC__LB__Setup__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TestLoopModeC__LB__Setup__Type_template& UE__TestLoopModeC__LB__Setup__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TestLoopModeC__LB__Setup__Type_template& UE__TestLoopModeC__LB__Setup__Type_template::operator=(const UE__TestLoopModeC__LB__Setup__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TestLoopModeC__LB__Setup__Type UE__TestLoopModeC__LB__Setup__Type_template::valueof() const +{ +UE__TestLoopModeC__LB__Setup__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::mBSFN__AreaId() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::mBSFN__AreaId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::reservedB1() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::reservedB1() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::pMCHIdentity() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::pMCHIdentity() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::reservedB2() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::reservedB2() const { return *(static_cast(get_at(3))); } +BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::logChId() { return *(static_cast(get_at(4))); } +const BITSTRING_template& UE__TestLoopModeC__LB__Setup__Type_template::logChId() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* UE__TestLoopModeC__LB__Setup__Type_template::get_descriptor() const { return &UE__TestLoopModeC__LB__Setup__Type_descr_; } +const char* UE__TestLoopModeC__LB__Setup__Type_template::fld_name(int p_index) const { return UE__TestLoopModeC__LB__Setup__Type::fld_names[p_index]; } +void UE__TestLoopModeD__LB__Setup__Type::init_vec() { fld_vec[0]=&field_discMonitorListLength; fld_vec[1]=&field_reserved; fld_vec[2]=&field_discAnnounceOrMonitor; fld_vec[3]=&field_discMonitorList; } + +UE__TestLoopModeD__LB__Setup__Type::UE__TestLoopModeD__LB__Setup__Type() : Record_Type() { init_vec(); } + +UE__TestLoopModeD__LB__Setup__Type::UE__TestLoopModeD__LB__Setup__Type(const UE__TestLoopModeD__LB__Setup__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_discMonitorListLength.is_bound() ) + field_discMonitorListLength = other_value.field_discMonitorListLength; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_discAnnounceOrMonitor.is_bound() ) + field_discAnnounceOrMonitor = other_value.field_discAnnounceOrMonitor; +if (other_value.field_discMonitorList.is_bound() ) + field_discMonitorList = other_value.field_discMonitorList; +init_vec(); +} + +UE__TestLoopModeD__LB__Setup__Type::UE__TestLoopModeD__LB__Setup__Type(const BITSTRING& par_discMonitorListLength, + const BITSTRING& par_reserved, + const BITSTRING& par_discAnnounceOrMonitor, + const OPTIONAL& par_discMonitorList) : field_discMonitorListLength(par_discMonitorListLength), + field_reserved(par_reserved), + field_discAnnounceOrMonitor(par_discAnnounceOrMonitor), + field_discMonitorList(par_discMonitorList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TestLoopModeD__LB__Setup__Type::get_descriptor() const { return &UE__TestLoopModeD__LB__Setup__Type_descr_; } +const TTCN_Typedescriptor_t* UE__TestLoopModeD__LB__Setup__Type::fld_descriptors[] = { &CommonDefs::B16__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_, &DiscMonitorList__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TestLoopModeD__LB__Setup__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TestLoopModeD__LB__Setup__Type::fld_names[] = { "discMonitorListLength", "reserved", "discAnnounceOrMonitor", "discMonitorList" }; +const char* UE__TestLoopModeD__LB__Setup__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__TestLoopModeD__LB__Setup__Type::optional_indexes[] = { 3, -1 }; +const int* UE__TestLoopModeD__LB__Setup__Type::get_optional_indexes() const { return optional_indexes; } + +const int UE__TestLoopModeD__LB__Setup__Type::optional_indexes_asn[] = { 3, -1 }; +const int* UE__TestLoopModeD__LB__Setup__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__TestLoopModeD__LB__Setup__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new DiscMonitorList__Type_template(ANY_OR_OMIT) : new DiscMonitorList__Type_template; +} +} + +UE__TestLoopModeD__LB__Setup__Type_template::UE__TestLoopModeD__LB__Setup__Type_template(UE__TestLoopModeD__LB__Setup__Type_template* p_precondition, UE__TestLoopModeD__LB__Setup__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TestLoopModeD__LB__Setup__Type_template::UE__TestLoopModeD__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TestLoopModeD__LB__Setup__Type_template::~UE__TestLoopModeD__LB__Setup__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TestLoopModeD__LB__Setup__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TestLoopModeD__LB__Setup__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TestLoopModeD__LB__Setup__Type_template& UE__TestLoopModeD__LB__Setup__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TestLoopModeD__LB__Setup__Type_template& UE__TestLoopModeD__LB__Setup__Type_template::operator=(const UE__TestLoopModeD__LB__Setup__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TestLoopModeD__LB__Setup__Type_template& UE__TestLoopModeD__LB__Setup__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TestLoopModeD__LB__Setup__Type_template& UE__TestLoopModeD__LB__Setup__Type_template::operator=(const UE__TestLoopModeD__LB__Setup__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TestLoopModeD__LB__Setup__Type UE__TestLoopModeD__LB__Setup__Type_template::valueof() const +{ +UE__TestLoopModeD__LB__Setup__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TestLoopModeD__LB__Setup__Type_template::discMonitorListLength() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TestLoopModeD__LB__Setup__Type_template::discMonitorListLength() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TestLoopModeD__LB__Setup__Type_template::reserved() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TestLoopModeD__LB__Setup__Type_template::reserved() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TestLoopModeD__LB__Setup__Type_template::discAnnounceOrMonitor() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TestLoopModeD__LB__Setup__Type_template::discAnnounceOrMonitor() const { return *(static_cast(get_at(2))); } +DiscMonitorList__Type_template& UE__TestLoopModeD__LB__Setup__Type_template::discMonitorList() { return *(static_cast(get_at(3))); } +const DiscMonitorList__Type_template& UE__TestLoopModeD__LB__Setup__Type_template::discMonitorList() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UE__TestLoopModeD__LB__Setup__Type_template::get_descriptor() const { return &UE__TestLoopModeD__LB__Setup__Type_descr_; } +const char* UE__TestLoopModeD__LB__Setup__Type_template::fld_name(int p_index) const { return UE__TestLoopModeD__LB__Setup__Type::fld_names[p_index]; } + +const DiscMonitor__Type DiscMonitorList__Type::UNBOUND_ELEM; +DiscMonitor__Type& DiscMonitorList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +DiscMonitor__Type& DiscMonitorList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const DiscMonitor__Type& DiscMonitorList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const DiscMonitor__Type& DiscMonitorList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +DiscMonitorList__Type DiscMonitorList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +DiscMonitorList__Type DiscMonitorList__Type::operator<<=(const INTEGER& rotate_count) const +{ +DiscMonitorList__Type rec_of; +return *((DiscMonitorList__Type*)rotl(rotate_count, &rec_of)); +} + +DiscMonitorList__Type DiscMonitorList__Type::operator>>=(const INTEGER& rotate_count) const +{ +DiscMonitorList__Type rec_of; +return *((DiscMonitorList__Type*)rotr(rotate_count, &rec_of)); +} + +DiscMonitorList__Type DiscMonitorList__Type::operator>>=(int rotate_count) const +{ +DiscMonitorList__Type rec_of; +return *((DiscMonitorList__Type*)rotr(rotate_count, &rec_of)); +} + +DiscMonitorList__Type DiscMonitorList__Type::operator+(const DiscMonitorList__Type& other_value) const +{ +DiscMonitorList__Type rec_of; +return *((DiscMonitorList__Type*)concat(&other_value, &rec_of)); +} + +DiscMonitorList__Type DiscMonitorList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const DiscMonitorList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_LoopBack_TypeDefs.DiscMonitorList_Type concatenation."); +} + +DiscMonitorList__Type DiscMonitorList__Type::operator+(null_type) const +{ +return *this; +} + +DiscMonitorList__Type DiscMonitorList__Type::substr(int index, int returncount) const +{ +DiscMonitorList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +DiscMonitorList__Type DiscMonitorList__Type::replace(int index, int len, const DiscMonitorList__Type& repl) const +{ +DiscMonitorList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +DiscMonitorList__Type DiscMonitorList__Type::replace(int index, int len, const DiscMonitorList__Type_template& repl) const +{ +DiscMonitorList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* DiscMonitorList__Type::create_elem() const { return new DiscMonitor__Type; } +const Base_Type* DiscMonitorList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* DiscMonitorList__Type::get_descriptor() const { return &DiscMonitorList__Type_descr_; } +DiscMonitorList__Type_template::DiscMonitorList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +DiscMonitorList__Type_template::DiscMonitorList__Type_template(DiscMonitorList__Type_template* p_precondition, DiscMonitorList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DiscMonitorList__Type_template::DiscMonitorList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DiscMonitorList__Type_template::~DiscMonitorList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DiscMonitorList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const DiscMonitorList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +DiscMonitorList__Type_template& DiscMonitorList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DiscMonitorList__Type_template& DiscMonitorList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +DiscMonitorList__Type_template& DiscMonitorList__Type_template::operator=(const DiscMonitorList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DiscMonitorList__Type_template& DiscMonitorList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DiscMonitorList__Type_template& DiscMonitorList__Type_template::operator=(const DiscMonitorList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DiscMonitorList__Type_template DiscMonitorList__Type_template::operator+(const DiscMonitorList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return DiscMonitorList__Type_template(ANY_VALUE); +} +DiscMonitorList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +DiscMonitorList__Type_template DiscMonitorList__Type_template::operator+(const DiscMonitorList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +DiscMonitorList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +DiscMonitorList__Type_template DiscMonitorList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return DiscMonitorList__Type_template(ANY_VALUE); +} +DiscMonitorList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +DiscMonitorList__Type_template DiscMonitorList__Type_template::operator+(null_type) const +{ +return *this; +} + +DiscMonitor__Type_template& DiscMonitorList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +DiscMonitor__Type_template& DiscMonitorList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const DiscMonitor__Type_template& DiscMonitorList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const DiscMonitor__Type_template& DiscMonitorList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +DiscMonitorList__Type DiscMonitorList__Type_template::valueof() const +{ +DiscMonitorList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +DiscMonitorList__Type DiscMonitorList__Type_template::substr(int index, int returncount) const +{ +DiscMonitorList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +DiscMonitorList__Type DiscMonitorList__Type_template::replace(int index, int len, const DiscMonitorList__Type_template& repl) const +{ +DiscMonitorList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +DiscMonitorList__Type DiscMonitorList__Type_template::replace(int index, int len, const DiscMonitorList__Type& repl) const +{ +DiscMonitorList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* DiscMonitorList__Type_template::create_elem() const { return new DiscMonitor__Type_template; } +const TTCN_Typedescriptor_t* DiscMonitorList__Type_template::get_descriptor() const { return &DiscMonitorList__Type_descr_; } +void DiscMonitor__Type::init_vec() { fld_vec[0]=&field_proSeAppCodeLSB__A7; fld_vec[1]=&field_proSeAppCodeLSB__A6; fld_vec[2]=&field_proSeAppCodeLSB__A5; fld_vec[3]=&field_proSeAppCodeLSB__A4; fld_vec[4]=&field_proSeAppCodeLSB__A3; fld_vec[5]=&field_proSeAppCodeLSB__A2; fld_vec[6]=&field_proSeAppCodeLSB__A1; fld_vec[7]=&field_proSeAppCodeLSB__A0; fld_vec[8]=&field_reserved; fld_vec[9]=&field_proSeAppCodeLSB__A8; } + +DiscMonitor__Type::DiscMonitor__Type() : Record_Type() { init_vec(); } + +DiscMonitor__Type::DiscMonitor__Type(const DiscMonitor__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_proSeAppCodeLSB__A7.is_bound() ) + field_proSeAppCodeLSB__A7 = other_value.field_proSeAppCodeLSB__A7; +if (other_value.field_proSeAppCodeLSB__A6.is_bound() ) + field_proSeAppCodeLSB__A6 = other_value.field_proSeAppCodeLSB__A6; +if (other_value.field_proSeAppCodeLSB__A5.is_bound() ) + field_proSeAppCodeLSB__A5 = other_value.field_proSeAppCodeLSB__A5; +if (other_value.field_proSeAppCodeLSB__A4.is_bound() ) + field_proSeAppCodeLSB__A4 = other_value.field_proSeAppCodeLSB__A4; +if (other_value.field_proSeAppCodeLSB__A3.is_bound() ) + field_proSeAppCodeLSB__A3 = other_value.field_proSeAppCodeLSB__A3; +if (other_value.field_proSeAppCodeLSB__A2.is_bound() ) + field_proSeAppCodeLSB__A2 = other_value.field_proSeAppCodeLSB__A2; +if (other_value.field_proSeAppCodeLSB__A1.is_bound() ) + field_proSeAppCodeLSB__A1 = other_value.field_proSeAppCodeLSB__A1; +if (other_value.field_proSeAppCodeLSB__A0.is_bound() ) + field_proSeAppCodeLSB__A0 = other_value.field_proSeAppCodeLSB__A0; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_proSeAppCodeLSB__A8.is_bound() ) + field_proSeAppCodeLSB__A8 = other_value.field_proSeAppCodeLSB__A8; +init_vec(); +} + +DiscMonitor__Type::DiscMonitor__Type(const BITSTRING& par_proSeAppCodeLSB__A7, + const BITSTRING& par_proSeAppCodeLSB__A6, + const BITSTRING& par_proSeAppCodeLSB__A5, + const BITSTRING& par_proSeAppCodeLSB__A4, + const BITSTRING& par_proSeAppCodeLSB__A3, + const BITSTRING& par_proSeAppCodeLSB__A2, + const BITSTRING& par_proSeAppCodeLSB__A1, + const BITSTRING& par_proSeAppCodeLSB__A0, + const BITSTRING& par_reserved, + const BITSTRING& par_proSeAppCodeLSB__A8) : field_proSeAppCodeLSB__A7(par_proSeAppCodeLSB__A7), + field_proSeAppCodeLSB__A6(par_proSeAppCodeLSB__A6), + field_proSeAppCodeLSB__A5(par_proSeAppCodeLSB__A5), + field_proSeAppCodeLSB__A4(par_proSeAppCodeLSB__A4), + field_proSeAppCodeLSB__A3(par_proSeAppCodeLSB__A3), + field_proSeAppCodeLSB__A2(par_proSeAppCodeLSB__A2), + field_proSeAppCodeLSB__A1(par_proSeAppCodeLSB__A1), + field_proSeAppCodeLSB__A0(par_proSeAppCodeLSB__A0), + field_reserved(par_reserved), + field_proSeAppCodeLSB__A8(par_proSeAppCodeLSB__A8) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DiscMonitor__Type::get_descriptor() const { return &DiscMonitor__Type_descr_; } +const TTCN_Typedescriptor_t* DiscMonitor__Type::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* DiscMonitor__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DiscMonitor__Type::fld_names[] = { "proSeAppCodeLSB_A7", "proSeAppCodeLSB_A6", "proSeAppCodeLSB_A5", "proSeAppCodeLSB_A4", "proSeAppCodeLSB_A3", "proSeAppCodeLSB_A2", "proSeAppCodeLSB_A1", "proSeAppCodeLSB_A0", "reserved", "proSeAppCodeLSB_A8" }; +const char* DiscMonitor__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void DiscMonitor__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DiscMonitor__Type_template::DiscMonitor__Type_template(DiscMonitor__Type_template* p_precondition, DiscMonitor__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DiscMonitor__Type_template::DiscMonitor__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DiscMonitor__Type_template::~DiscMonitor__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DiscMonitor__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const DiscMonitor__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DiscMonitor__Type_template& DiscMonitor__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DiscMonitor__Type_template& DiscMonitor__Type_template::operator=(const DiscMonitor__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DiscMonitor__Type_template& DiscMonitor__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DiscMonitor__Type_template& DiscMonitor__Type_template::operator=(const DiscMonitor__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DiscMonitor__Type DiscMonitor__Type_template::valueof() const +{ +DiscMonitor__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A7() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A7() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A6() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A6() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A5() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A5() const { return *(static_cast(get_at(2))); } +BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A4() { return *(static_cast(get_at(3))); } +const BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A4() const { return *(static_cast(get_at(3))); } +BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A3() { return *(static_cast(get_at(4))); } +const BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A3() const { return *(static_cast(get_at(4))); } +BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A2() { return *(static_cast(get_at(5))); } +const BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A2() const { return *(static_cast(get_at(5))); } +BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A1() { return *(static_cast(get_at(6))); } +const BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A1() const { return *(static_cast(get_at(6))); } +BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A0() { return *(static_cast(get_at(7))); } +const BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A0() const { return *(static_cast(get_at(7))); } +BITSTRING_template& DiscMonitor__Type_template::reserved() { return *(static_cast(get_at(8))); } +const BITSTRING_template& DiscMonitor__Type_template::reserved() const { return *(static_cast(get_at(8))); } +BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A8() { return *(static_cast(get_at(9))); } +const BITSTRING_template& DiscMonitor__Type_template::proSeAppCodeLSB__A8() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* DiscMonitor__Type_template::get_descriptor() const { return &DiscMonitor__Type_descr_; } +const char* DiscMonitor__Type_template::fld_name(int p_index) const { return DiscMonitor__Type::fld_names[p_index]; } +void UE__TestLoopModeE__LB__Setup__Type::init_vec() { fld_vec[0]=&field_commMonitorListLength; fld_vec[1]=&field_reserved; fld_vec[2]=&field_commTransmitOrReceive; fld_vec[3]=&field_commMonitorList; fld_vec[4]=&field_d2dOrV2x; } + +UE__TestLoopModeE__LB__Setup__Type::UE__TestLoopModeE__LB__Setup__Type() : Record_Type() { init_vec(); } + +UE__TestLoopModeE__LB__Setup__Type::UE__TestLoopModeE__LB__Setup__Type(const UE__TestLoopModeE__LB__Setup__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_commMonitorListLength.is_bound() ) + field_commMonitorListLength = other_value.field_commMonitorListLength; +if (other_value.field_reserved.is_bound() ) + field_reserved = other_value.field_reserved; +if (other_value.field_commTransmitOrReceive.is_bound() ) + field_commTransmitOrReceive = other_value.field_commTransmitOrReceive; +if (other_value.field_commMonitorList.is_bound() ) + field_commMonitorList = other_value.field_commMonitorList; +if (other_value.field_d2dOrV2x.is_bound() ) + field_d2dOrV2x = other_value.field_d2dOrV2x; +init_vec(); +} + +UE__TestLoopModeE__LB__Setup__Type::UE__TestLoopModeE__LB__Setup__Type(const BITSTRING& par_commMonitorListLength, + const BITSTRING& par_reserved, + const BITSTRING& par_commTransmitOrReceive, + const OPTIONAL& par_commMonitorList, + const BITSTRING& par_d2dOrV2x) : field_commMonitorListLength(par_commMonitorListLength), + field_reserved(par_reserved), + field_commTransmitOrReceive(par_commTransmitOrReceive), + field_commMonitorList(par_commMonitorList), + field_d2dOrV2x(par_d2dOrV2x) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TestLoopModeE__LB__Setup__Type::get_descriptor() const { return &UE__TestLoopModeE__LB__Setup__Type_descr_; } +const TTCN_Typedescriptor_t* UE__TestLoopModeE__LB__Setup__Type::fld_descriptors[] = { &CommonDefs::B8__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B1__Type_descr_, &CommMonitorList__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TestLoopModeE__LB__Setup__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TestLoopModeE__LB__Setup__Type::fld_names[] = { "commMonitorListLength", "reserved", "commTransmitOrReceive", "commMonitorList", "d2dOrV2x" }; +const char* UE__TestLoopModeE__LB__Setup__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__TestLoopModeE__LB__Setup__Type::optional_indexes[] = { 3, -1 }; +const int* UE__TestLoopModeE__LB__Setup__Type::get_optional_indexes() const { return optional_indexes; } + +const int UE__TestLoopModeE__LB__Setup__Type::optional_indexes_asn[] = { 3, -1 }; +const int* UE__TestLoopModeE__LB__Setup__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__TestLoopModeE__LB__Setup__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new CommMonitorList__Type_template(ANY_OR_OMIT) : new CommMonitorList__Type_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__TestLoopModeE__LB__Setup__Type_template::UE__TestLoopModeE__LB__Setup__Type_template(UE__TestLoopModeE__LB__Setup__Type_template* p_precondition, UE__TestLoopModeE__LB__Setup__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TestLoopModeE__LB__Setup__Type_template::UE__TestLoopModeE__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TestLoopModeE__LB__Setup__Type_template::~UE__TestLoopModeE__LB__Setup__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TestLoopModeE__LB__Setup__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TestLoopModeE__LB__Setup__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TestLoopModeE__LB__Setup__Type_template& UE__TestLoopModeE__LB__Setup__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TestLoopModeE__LB__Setup__Type_template& UE__TestLoopModeE__LB__Setup__Type_template::operator=(const UE__TestLoopModeE__LB__Setup__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TestLoopModeE__LB__Setup__Type_template& UE__TestLoopModeE__LB__Setup__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TestLoopModeE__LB__Setup__Type_template& UE__TestLoopModeE__LB__Setup__Type_template::operator=(const UE__TestLoopModeE__LB__Setup__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TestLoopModeE__LB__Setup__Type UE__TestLoopModeE__LB__Setup__Type_template::valueof() const +{ +UE__TestLoopModeE__LB__Setup__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TestLoopModeE__LB__Setup__Type_template::commMonitorListLength() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TestLoopModeE__LB__Setup__Type_template::commMonitorListLength() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TestLoopModeE__LB__Setup__Type_template::reserved() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TestLoopModeE__LB__Setup__Type_template::reserved() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TestLoopModeE__LB__Setup__Type_template::commTransmitOrReceive() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TestLoopModeE__LB__Setup__Type_template::commTransmitOrReceive() const { return *(static_cast(get_at(2))); } +CommMonitorList__Type_template& UE__TestLoopModeE__LB__Setup__Type_template::commMonitorList() { return *(static_cast(get_at(3))); } +const CommMonitorList__Type_template& UE__TestLoopModeE__LB__Setup__Type_template::commMonitorList() const { return *(static_cast(get_at(3))); } +BITSTRING_template& UE__TestLoopModeE__LB__Setup__Type_template::d2dOrV2x() { return *(static_cast(get_at(4))); } +const BITSTRING_template& UE__TestLoopModeE__LB__Setup__Type_template::d2dOrV2x() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* UE__TestLoopModeE__LB__Setup__Type_template::get_descriptor() const { return &UE__TestLoopModeE__LB__Setup__Type_descr_; } +const char* UE__TestLoopModeE__LB__Setup__Type_template::fld_name(int p_index) const { return UE__TestLoopModeE__LB__Setup__Type::fld_names[p_index]; } +void UE__TestLoopModeF__LB__Setup__Type::init_vec() { fld_vec[0]=&field_sC__MTCH__ID; } + +UE__TestLoopModeF__LB__Setup__Type::UE__TestLoopModeF__LB__Setup__Type() : Record_Type() { init_vec(); } + +UE__TestLoopModeF__LB__Setup__Type::UE__TestLoopModeF__LB__Setup__Type(const UE__TestLoopModeF__LB__Setup__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_sC__MTCH__ID.is_bound() ) + field_sC__MTCH__ID = other_value.field_sC__MTCH__ID; +init_vec(); +} + +UE__TestLoopModeF__LB__Setup__Type::UE__TestLoopModeF__LB__Setup__Type(const BITSTRING& par_sC__MTCH__ID) : field_sC__MTCH__ID(par_sC__MTCH__ID) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TestLoopModeF__LB__Setup__Type::get_descriptor() const { return &UE__TestLoopModeF__LB__Setup__Type_descr_; } +const TTCN_Typedescriptor_t* UE__TestLoopModeF__LB__Setup__Type::fld_descriptors[] = { &CommonDefs::B16__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TestLoopModeF__LB__Setup__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TestLoopModeF__LB__Setup__Type::fld_names[] = { "sC_MTCH_ID" }; +const char* UE__TestLoopModeF__LB__Setup__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__TestLoopModeF__LB__Setup__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__TestLoopModeF__LB__Setup__Type_template::UE__TestLoopModeF__LB__Setup__Type_template(UE__TestLoopModeF__LB__Setup__Type_template* p_precondition, UE__TestLoopModeF__LB__Setup__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TestLoopModeF__LB__Setup__Type_template::UE__TestLoopModeF__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TestLoopModeF__LB__Setup__Type_template::~UE__TestLoopModeF__LB__Setup__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TestLoopModeF__LB__Setup__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TestLoopModeF__LB__Setup__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TestLoopModeF__LB__Setup__Type_template& UE__TestLoopModeF__LB__Setup__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TestLoopModeF__LB__Setup__Type_template& UE__TestLoopModeF__LB__Setup__Type_template::operator=(const UE__TestLoopModeF__LB__Setup__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TestLoopModeF__LB__Setup__Type_template& UE__TestLoopModeF__LB__Setup__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TestLoopModeF__LB__Setup__Type_template& UE__TestLoopModeF__LB__Setup__Type_template::operator=(const UE__TestLoopModeF__LB__Setup__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TestLoopModeF__LB__Setup__Type UE__TestLoopModeF__LB__Setup__Type_template::valueof() const +{ +UE__TestLoopModeF__LB__Setup__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TestLoopModeF__LB__Setup__Type_template::sC__MTCH__ID() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TestLoopModeF__LB__Setup__Type_template::sC__MTCH__ID() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* UE__TestLoopModeF__LB__Setup__Type_template::get_descriptor() const { return &UE__TestLoopModeF__LB__Setup__Type_descr_; } +const char* UE__TestLoopModeF__LB__Setup__Type_template::fld_name(int p_index) const { return UE__TestLoopModeF__LB__Setup__Type::fld_names[p_index]; } +void UE__TestLoopModeGH__LB__Setup__Type::init_vec() { fld_vec[0]=&field_uplinkLoopbackMode; fld_vec[1]=&field_repetitions; fld_vec[2]=&field_uplinkDataDelay; } + +UE__TestLoopModeGH__LB__Setup__Type::UE__TestLoopModeGH__LB__Setup__Type() : Record_Type() { init_vec(); } + +UE__TestLoopModeGH__LB__Setup__Type::UE__TestLoopModeGH__LB__Setup__Type(const UE__TestLoopModeGH__LB__Setup__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_uplinkLoopbackMode.is_bound() ) + field_uplinkLoopbackMode = other_value.field_uplinkLoopbackMode; +if (other_value.field_repetitions.is_bound() ) + field_repetitions = other_value.field_repetitions; +if (other_value.field_uplinkDataDelay.is_bound() ) + field_uplinkDataDelay = other_value.field_uplinkDataDelay; +init_vec(); +} + +UE__TestLoopModeGH__LB__Setup__Type::UE__TestLoopModeGH__LB__Setup__Type(const BITSTRING& par_uplinkLoopbackMode, + const BITSTRING& par_repetitions, + const BITSTRING& par_uplinkDataDelay) : field_uplinkLoopbackMode(par_uplinkLoopbackMode), + field_repetitions(par_repetitions), + field_uplinkDataDelay(par_uplinkDataDelay) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TestLoopModeGH__LB__Setup__Type::get_descriptor() const { return &UE__TestLoopModeGH__LB__Setup__Type_descr_; } +const TTCN_Typedescriptor_t* UE__TestLoopModeGH__LB__Setup__Type::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TestLoopModeGH__LB__Setup__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TestLoopModeGH__LB__Setup__Type::fld_names[] = { "uplinkLoopbackMode", "repetitions", "uplinkDataDelay" }; +const char* UE__TestLoopModeGH__LB__Setup__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__TestLoopModeGH__LB__Setup__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__TestLoopModeGH__LB__Setup__Type_template::UE__TestLoopModeGH__LB__Setup__Type_template(UE__TestLoopModeGH__LB__Setup__Type_template* p_precondition, UE__TestLoopModeGH__LB__Setup__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TestLoopModeGH__LB__Setup__Type_template::UE__TestLoopModeGH__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TestLoopModeGH__LB__Setup__Type_template::~UE__TestLoopModeGH__LB__Setup__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TestLoopModeGH__LB__Setup__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TestLoopModeGH__LB__Setup__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TestLoopModeGH__LB__Setup__Type_template& UE__TestLoopModeGH__LB__Setup__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TestLoopModeGH__LB__Setup__Type_template& UE__TestLoopModeGH__LB__Setup__Type_template::operator=(const UE__TestLoopModeGH__LB__Setup__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TestLoopModeGH__LB__Setup__Type_template& UE__TestLoopModeGH__LB__Setup__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TestLoopModeGH__LB__Setup__Type_template& UE__TestLoopModeGH__LB__Setup__Type_template::operator=(const UE__TestLoopModeGH__LB__Setup__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TestLoopModeGH__LB__Setup__Type UE__TestLoopModeGH__LB__Setup__Type_template::valueof() const +{ +UE__TestLoopModeGH__LB__Setup__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TestLoopModeGH__LB__Setup__Type_template::uplinkLoopbackMode() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TestLoopModeGH__LB__Setup__Type_template::uplinkLoopbackMode() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TestLoopModeGH__LB__Setup__Type_template::repetitions() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TestLoopModeGH__LB__Setup__Type_template::repetitions() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TestLoopModeGH__LB__Setup__Type_template::uplinkDataDelay() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TestLoopModeGH__LB__Setup__Type_template::uplinkDataDelay() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UE__TestLoopModeGH__LB__Setup__Type_template::get_descriptor() const { return &UE__TestLoopModeGH__LB__Setup__Type_descr_; } +const char* UE__TestLoopModeGH__LB__Setup__Type_template::fld_name(int p_index) const { return UE__TestLoopModeGH__LB__Setup__Type::fld_names[p_index]; } +void CLOSE__UE__TEST__LOOP__COMPLETE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +CLOSE__UE__TEST__LOOP__COMPLETE::CLOSE__UE__TEST__LOOP__COMPLETE() : Record_Type() { init_vec(); } + +CLOSE__UE__TEST__LOOP__COMPLETE::CLOSE__UE__TEST__LOOP__COMPLETE(const CLOSE__UE__TEST__LOOP__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +CLOSE__UE__TEST__LOOP__COMPLETE::CLOSE__UE__TEST__LOOP__COMPLETE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CLOSE__UE__TEST__LOOP__COMPLETE::get_descriptor() const { return &CLOSE__UE__TEST__LOOP__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* CLOSE__UE__TEST__LOOP__COMPLETE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* CLOSE__UE__TEST__LOOP__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CLOSE__UE__TEST__LOOP__COMPLETE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* CLOSE__UE__TEST__LOOP__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +void CLOSE__UE__TEST__LOOP__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +CLOSE__UE__TEST__LOOP__COMPLETE_template::CLOSE__UE__TEST__LOOP__COMPLETE_template(CLOSE__UE__TEST__LOOP__COMPLETE_template* p_precondition, CLOSE__UE__TEST__LOOP__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CLOSE__UE__TEST__LOOP__COMPLETE_template::CLOSE__UE__TEST__LOOP__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CLOSE__UE__TEST__LOOP__COMPLETE_template::~CLOSE__UE__TEST__LOOP__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CLOSE__UE__TEST__LOOP__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const CLOSE__UE__TEST__LOOP__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CLOSE__UE__TEST__LOOP__COMPLETE_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CLOSE__UE__TEST__LOOP__COMPLETE_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::operator=(const CLOSE__UE__TEST__LOOP__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CLOSE__UE__TEST__LOOP__COMPLETE_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CLOSE__UE__TEST__LOOP__COMPLETE_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::operator=(const CLOSE__UE__TEST__LOOP__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CLOSE__UE__TEST__LOOP__COMPLETE CLOSE__UE__TEST__LOOP__COMPLETE_template::valueof() const +{ +CLOSE__UE__TEST__LOOP__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CLOSE__UE__TEST__LOOP__COMPLETE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* CLOSE__UE__TEST__LOOP__COMPLETE_template::get_descriptor() const { return &CLOSE__UE__TEST__LOOP__COMPLETE_descr_; } +const char* CLOSE__UE__TEST__LOOP__COMPLETE_template::fld_name(int p_index) const { return CLOSE__UE__TEST__LOOP__COMPLETE::fld_names[p_index]; } +void OPEN__UE__TEST__LOOP::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +OPEN__UE__TEST__LOOP::OPEN__UE__TEST__LOOP() : Record_Type() { init_vec(); } + +OPEN__UE__TEST__LOOP::OPEN__UE__TEST__LOOP(const OPEN__UE__TEST__LOOP& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +OPEN__UE__TEST__LOOP::OPEN__UE__TEST__LOOP(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* OPEN__UE__TEST__LOOP::get_descriptor() const { return &OPEN__UE__TEST__LOOP_descr_; } +const TTCN_Typedescriptor_t* OPEN__UE__TEST__LOOP::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* OPEN__UE__TEST__LOOP::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* OPEN__UE__TEST__LOOP::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* OPEN__UE__TEST__LOOP::fld_name(int p_index) const { return fld_names[p_index]; } + +void OPEN__UE__TEST__LOOP_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +OPEN__UE__TEST__LOOP_template::OPEN__UE__TEST__LOOP_template(OPEN__UE__TEST__LOOP_template* p_precondition, OPEN__UE__TEST__LOOP_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +OPEN__UE__TEST__LOOP_template::OPEN__UE__TEST__LOOP_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +OPEN__UE__TEST__LOOP_template::~OPEN__UE__TEST__LOOP_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean OPEN__UE__TEST__LOOP_template::match_dynamic(const Base_Type* match_value) const +{ +const OPEN__UE__TEST__LOOP* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +OPEN__UE__TEST__LOOP_template& OPEN__UE__TEST__LOOP_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +OPEN__UE__TEST__LOOP_template& OPEN__UE__TEST__LOOP_template::operator=(const OPEN__UE__TEST__LOOP& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +OPEN__UE__TEST__LOOP_template& OPEN__UE__TEST__LOOP_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +OPEN__UE__TEST__LOOP_template& OPEN__UE__TEST__LOOP_template::operator=(const OPEN__UE__TEST__LOOP_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +OPEN__UE__TEST__LOOP OPEN__UE__TEST__LOOP_template::valueof() const +{ +OPEN__UE__TEST__LOOP ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& OPEN__UE__TEST__LOOP_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& OPEN__UE__TEST__LOOP_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& OPEN__UE__TEST__LOOP_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& OPEN__UE__TEST__LOOP_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& OPEN__UE__TEST__LOOP_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& OPEN__UE__TEST__LOOP_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* OPEN__UE__TEST__LOOP_template::get_descriptor() const { return &OPEN__UE__TEST__LOOP_descr_; } +const char* OPEN__UE__TEST__LOOP_template::fld_name(int p_index) const { return OPEN__UE__TEST__LOOP::fld_names[p_index]; } +void OPEN__UE__TEST__LOOP__COMPLETE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +OPEN__UE__TEST__LOOP__COMPLETE::OPEN__UE__TEST__LOOP__COMPLETE() : Record_Type() { init_vec(); } + +OPEN__UE__TEST__LOOP__COMPLETE::OPEN__UE__TEST__LOOP__COMPLETE(const OPEN__UE__TEST__LOOP__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +OPEN__UE__TEST__LOOP__COMPLETE::OPEN__UE__TEST__LOOP__COMPLETE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* OPEN__UE__TEST__LOOP__COMPLETE::get_descriptor() const { return &OPEN__UE__TEST__LOOP__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* OPEN__UE__TEST__LOOP__COMPLETE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* OPEN__UE__TEST__LOOP__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* OPEN__UE__TEST__LOOP__COMPLETE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* OPEN__UE__TEST__LOOP__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +void OPEN__UE__TEST__LOOP__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +OPEN__UE__TEST__LOOP__COMPLETE_template::OPEN__UE__TEST__LOOP__COMPLETE_template(OPEN__UE__TEST__LOOP__COMPLETE_template* p_precondition, OPEN__UE__TEST__LOOP__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +OPEN__UE__TEST__LOOP__COMPLETE_template::OPEN__UE__TEST__LOOP__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +OPEN__UE__TEST__LOOP__COMPLETE_template::~OPEN__UE__TEST__LOOP__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean OPEN__UE__TEST__LOOP__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const OPEN__UE__TEST__LOOP__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +OPEN__UE__TEST__LOOP__COMPLETE_template& OPEN__UE__TEST__LOOP__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +OPEN__UE__TEST__LOOP__COMPLETE_template& OPEN__UE__TEST__LOOP__COMPLETE_template::operator=(const OPEN__UE__TEST__LOOP__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +OPEN__UE__TEST__LOOP__COMPLETE_template& OPEN__UE__TEST__LOOP__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +OPEN__UE__TEST__LOOP__COMPLETE_template& OPEN__UE__TEST__LOOP__COMPLETE_template::operator=(const OPEN__UE__TEST__LOOP__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +OPEN__UE__TEST__LOOP__COMPLETE OPEN__UE__TEST__LOOP__COMPLETE_template::valueof() const +{ +OPEN__UE__TEST__LOOP__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& OPEN__UE__TEST__LOOP__COMPLETE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& OPEN__UE__TEST__LOOP__COMPLETE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& OPEN__UE__TEST__LOOP__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& OPEN__UE__TEST__LOOP__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& OPEN__UE__TEST__LOOP__COMPLETE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& OPEN__UE__TEST__LOOP__COMPLETE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* OPEN__UE__TEST__LOOP__COMPLETE_template::get_descriptor() const { return &OPEN__UE__TEST__LOOP__COMPLETE_descr_; } +const char* OPEN__UE__TEST__LOOP__COMPLETE_template::fld_name(int p_index) const { return OPEN__UE__TEST__LOOP__COMPLETE::fld_names[p_index]; } +void ACTIVATE__TEST__MODE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_ueTestLoopMode; } + +ACTIVATE__TEST__MODE::ACTIVATE__TEST__MODE() : Record_Type() { init_vec(); } + +ACTIVATE__TEST__MODE::ACTIVATE__TEST__MODE(const ACTIVATE__TEST__MODE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_ueTestLoopMode.is_bound() ) + field_ueTestLoopMode = other_value.field_ueTestLoopMode; +init_vec(); +} + +ACTIVATE__TEST__MODE::ACTIVATE__TEST__MODE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_ueTestLoopMode) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_ueTestLoopMode(par_ueTestLoopMode) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ACTIVATE__TEST__MODE::get_descriptor() const { return &ACTIVATE__TEST__MODE_descr_; } +const TTCN_Typedescriptor_t* ACTIVATE__TEST__MODE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::UE__TestLoopMode__Type_descr_ }; +const TTCN_Typedescriptor_t* ACTIVATE__TEST__MODE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ACTIVATE__TEST__MODE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "ueTestLoopMode" }; +const char* ACTIVATE__TEST__MODE::fld_name(int p_index) const { return fld_names[p_index]; } + +void ACTIVATE__TEST__MODE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +ACTIVATE__TEST__MODE_template::ACTIVATE__TEST__MODE_template(ACTIVATE__TEST__MODE_template* p_precondition, ACTIVATE__TEST__MODE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ACTIVATE__TEST__MODE_template::ACTIVATE__TEST__MODE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ACTIVATE__TEST__MODE_template::~ACTIVATE__TEST__MODE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ACTIVATE__TEST__MODE_template::match_dynamic(const Base_Type* match_value) const +{ +const ACTIVATE__TEST__MODE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ACTIVATE__TEST__MODE_template& ACTIVATE__TEST__MODE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ACTIVATE__TEST__MODE_template& ACTIVATE__TEST__MODE_template::operator=(const ACTIVATE__TEST__MODE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ACTIVATE__TEST__MODE_template& ACTIVATE__TEST__MODE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ACTIVATE__TEST__MODE_template& ACTIVATE__TEST__MODE_template::operator=(const ACTIVATE__TEST__MODE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ACTIVATE__TEST__MODE ACTIVATE__TEST__MODE_template::valueof() const +{ +ACTIVATE__TEST__MODE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ACTIVATE__TEST__MODE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ACTIVATE__TEST__MODE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ACTIVATE__TEST__MODE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ACTIVATE__TEST__MODE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ACTIVATE__TEST__MODE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ACTIVATE__TEST__MODE_template::messageType() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& ACTIVATE__TEST__MODE_template::ueTestLoopMode() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& ACTIVATE__TEST__MODE_template::ueTestLoopMode() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* ACTIVATE__TEST__MODE_template::get_descriptor() const { return &ACTIVATE__TEST__MODE_descr_; } +const char* ACTIVATE__TEST__MODE_template::fld_name(int p_index) const { return ACTIVATE__TEST__MODE::fld_names[p_index]; } +void ACTIVATE__TEST__MODE__COMPLETE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +ACTIVATE__TEST__MODE__COMPLETE::ACTIVATE__TEST__MODE__COMPLETE() : Record_Type() { init_vec(); } + +ACTIVATE__TEST__MODE__COMPLETE::ACTIVATE__TEST__MODE__COMPLETE(const ACTIVATE__TEST__MODE__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +ACTIVATE__TEST__MODE__COMPLETE::ACTIVATE__TEST__MODE__COMPLETE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ACTIVATE__TEST__MODE__COMPLETE::get_descriptor() const { return &ACTIVATE__TEST__MODE__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* ACTIVATE__TEST__MODE__COMPLETE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* ACTIVATE__TEST__MODE__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ACTIVATE__TEST__MODE__COMPLETE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* ACTIVATE__TEST__MODE__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +void ACTIVATE__TEST__MODE__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ACTIVATE__TEST__MODE__COMPLETE_template::ACTIVATE__TEST__MODE__COMPLETE_template(ACTIVATE__TEST__MODE__COMPLETE_template* p_precondition, ACTIVATE__TEST__MODE__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ACTIVATE__TEST__MODE__COMPLETE_template::ACTIVATE__TEST__MODE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ACTIVATE__TEST__MODE__COMPLETE_template::~ACTIVATE__TEST__MODE__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ACTIVATE__TEST__MODE__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const ACTIVATE__TEST__MODE__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ACTIVATE__TEST__MODE__COMPLETE_template& ACTIVATE__TEST__MODE__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ACTIVATE__TEST__MODE__COMPLETE_template& ACTIVATE__TEST__MODE__COMPLETE_template::operator=(const ACTIVATE__TEST__MODE__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ACTIVATE__TEST__MODE__COMPLETE_template& ACTIVATE__TEST__MODE__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ACTIVATE__TEST__MODE__COMPLETE_template& ACTIVATE__TEST__MODE__COMPLETE_template::operator=(const ACTIVATE__TEST__MODE__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ACTIVATE__TEST__MODE__COMPLETE ACTIVATE__TEST__MODE__COMPLETE_template::valueof() const +{ +ACTIVATE__TEST__MODE__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ACTIVATE__TEST__MODE__COMPLETE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ACTIVATE__TEST__MODE__COMPLETE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ACTIVATE__TEST__MODE__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ACTIVATE__TEST__MODE__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ACTIVATE__TEST__MODE__COMPLETE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ACTIVATE__TEST__MODE__COMPLETE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ACTIVATE__TEST__MODE__COMPLETE_template::get_descriptor() const { return &ACTIVATE__TEST__MODE__COMPLETE_descr_; } +const char* ACTIVATE__TEST__MODE__COMPLETE_template::fld_name(int p_index) const { return ACTIVATE__TEST__MODE__COMPLETE::fld_names[p_index]; } +void DEACTIVATE__TEST__MODE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +DEACTIVATE__TEST__MODE::DEACTIVATE__TEST__MODE() : Record_Type() { init_vec(); } + +DEACTIVATE__TEST__MODE::DEACTIVATE__TEST__MODE(const DEACTIVATE__TEST__MODE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +DEACTIVATE__TEST__MODE::DEACTIVATE__TEST__MODE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DEACTIVATE__TEST__MODE::get_descriptor() const { return &DEACTIVATE__TEST__MODE_descr_; } +const TTCN_Typedescriptor_t* DEACTIVATE__TEST__MODE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* DEACTIVATE__TEST__MODE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DEACTIVATE__TEST__MODE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* DEACTIVATE__TEST__MODE::fld_name(int p_index) const { return fld_names[p_index]; } + +void DEACTIVATE__TEST__MODE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DEACTIVATE__TEST__MODE_template::DEACTIVATE__TEST__MODE_template(DEACTIVATE__TEST__MODE_template* p_precondition, DEACTIVATE__TEST__MODE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DEACTIVATE__TEST__MODE_template::DEACTIVATE__TEST__MODE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DEACTIVATE__TEST__MODE_template::~DEACTIVATE__TEST__MODE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DEACTIVATE__TEST__MODE_template::match_dynamic(const Base_Type* match_value) const +{ +const DEACTIVATE__TEST__MODE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DEACTIVATE__TEST__MODE_template& DEACTIVATE__TEST__MODE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DEACTIVATE__TEST__MODE_template& DEACTIVATE__TEST__MODE_template::operator=(const DEACTIVATE__TEST__MODE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DEACTIVATE__TEST__MODE_template& DEACTIVATE__TEST__MODE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DEACTIVATE__TEST__MODE_template& DEACTIVATE__TEST__MODE_template::operator=(const DEACTIVATE__TEST__MODE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DEACTIVATE__TEST__MODE DEACTIVATE__TEST__MODE_template::valueof() const +{ +DEACTIVATE__TEST__MODE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DEACTIVATE__TEST__MODE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DEACTIVATE__TEST__MODE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DEACTIVATE__TEST__MODE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DEACTIVATE__TEST__MODE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DEACTIVATE__TEST__MODE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DEACTIVATE__TEST__MODE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* DEACTIVATE__TEST__MODE_template::get_descriptor() const { return &DEACTIVATE__TEST__MODE_descr_; } +const char* DEACTIVATE__TEST__MODE_template::fld_name(int p_index) const { return DEACTIVATE__TEST__MODE::fld_names[p_index]; } +void DEACTIVATE__TEST__MODE__COMPLETE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +DEACTIVATE__TEST__MODE__COMPLETE::DEACTIVATE__TEST__MODE__COMPLETE() : Record_Type() { init_vec(); } + +DEACTIVATE__TEST__MODE__COMPLETE::DEACTIVATE__TEST__MODE__COMPLETE(const DEACTIVATE__TEST__MODE__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +DEACTIVATE__TEST__MODE__COMPLETE::DEACTIVATE__TEST__MODE__COMPLETE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DEACTIVATE__TEST__MODE__COMPLETE::get_descriptor() const { return &DEACTIVATE__TEST__MODE__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* DEACTIVATE__TEST__MODE__COMPLETE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* DEACTIVATE__TEST__MODE__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DEACTIVATE__TEST__MODE__COMPLETE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* DEACTIVATE__TEST__MODE__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +void DEACTIVATE__TEST__MODE__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DEACTIVATE__TEST__MODE__COMPLETE_template::DEACTIVATE__TEST__MODE__COMPLETE_template(DEACTIVATE__TEST__MODE__COMPLETE_template* p_precondition, DEACTIVATE__TEST__MODE__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DEACTIVATE__TEST__MODE__COMPLETE_template::DEACTIVATE__TEST__MODE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DEACTIVATE__TEST__MODE__COMPLETE_template::~DEACTIVATE__TEST__MODE__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DEACTIVATE__TEST__MODE__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const DEACTIVATE__TEST__MODE__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DEACTIVATE__TEST__MODE__COMPLETE_template& DEACTIVATE__TEST__MODE__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DEACTIVATE__TEST__MODE__COMPLETE_template& DEACTIVATE__TEST__MODE__COMPLETE_template::operator=(const DEACTIVATE__TEST__MODE__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DEACTIVATE__TEST__MODE__COMPLETE_template& DEACTIVATE__TEST__MODE__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DEACTIVATE__TEST__MODE__COMPLETE_template& DEACTIVATE__TEST__MODE__COMPLETE_template::operator=(const DEACTIVATE__TEST__MODE__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DEACTIVATE__TEST__MODE__COMPLETE DEACTIVATE__TEST__MODE__COMPLETE_template::valueof() const +{ +DEACTIVATE__TEST__MODE__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DEACTIVATE__TEST__MODE__COMPLETE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DEACTIVATE__TEST__MODE__COMPLETE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DEACTIVATE__TEST__MODE__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DEACTIVATE__TEST__MODE__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DEACTIVATE__TEST__MODE__COMPLETE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DEACTIVATE__TEST__MODE__COMPLETE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* DEACTIVATE__TEST__MODE__COMPLETE_template::get_descriptor() const { return &DEACTIVATE__TEST__MODE__COMPLETE_descr_; } +const char* DEACTIVATE__TEST__MODE__COMPLETE_template::fld_name(int p_index) const { return DEACTIVATE__TEST__MODE__COMPLETE::fld_names[p_index]; } +void UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST() : Record_Type() { init_vec(); } + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::get_descriptor() const { return &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_descr_; } +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template* p_precondition, UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::~UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::valueof() const +{ +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::get_descriptor() const { return &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_descr_; } +const char* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template::fld_name(int p_index) const { return UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST::fld_names[p_index]; } +void UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_MBMS__PacketCounterValue; } + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE() : Record_Type() { init_vec(); } + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_MBMS__PacketCounterValue.is_bound() ) + field_MBMS__PacketCounterValue = other_value.field_MBMS__PacketCounterValue; +init_vec(); +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_MBMS__PacketCounterValue) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_MBMS__PacketCounterValue(par_MBMS__PacketCounterValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::get_descriptor() const { return &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_descr_; } +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &MBMS__PacketCounterValue__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "MBMS_PacketCounterValue" }; +const char* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template* p_precondition, UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::~UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::valueof() const +{ +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::messageType() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::MBMS__PacketCounterValue() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::MBMS__PacketCounterValue() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::get_descriptor() const { return &UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_descr_; } +const char* UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template::fld_name(int p_index) const { return UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE::fld_names[p_index]; } +void UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST() : Record_Type() { init_vec(); } + +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::get_descriptor() const { return &UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_descr_; } +const TTCN_Typedescriptor_t* UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template* p_precondition, UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::~UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::valueof() const +{ +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::get_descriptor() const { return &UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_descr_; } +const char* UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template::fld_name(int p_index) const { return UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST::fld_names[p_index]; } +void UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_proSeDirectDiscPacketCounterValue; fld_vec[4]=&field_proSeDirectCommPSCCH__PacketCounterValue; fld_vec[5]=&field_proSeDirectCommSTCH__PacketCounterValue; fld_vec[6]=&field_proSeDirectCommPSSCH__PacketCounterValue; } + +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE() : Record_Type() { init_vec(); } + +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_proSeDirectDiscPacketCounterValue.is_bound() ) + field_proSeDirectDiscPacketCounterValue = other_value.field_proSeDirectDiscPacketCounterValue; +if (other_value.field_proSeDirectCommPSCCH__PacketCounterValue.is_bound() ) + field_proSeDirectCommPSCCH__PacketCounterValue = other_value.field_proSeDirectCommPSCCH__PacketCounterValue; +if (other_value.field_proSeDirectCommSTCH__PacketCounterValue.is_bound() ) + field_proSeDirectCommSTCH__PacketCounterValue = other_value.field_proSeDirectCommSTCH__PacketCounterValue; +if (other_value.field_proSeDirectCommPSSCH__PacketCounterValue.is_bound() ) + field_proSeDirectCommPSSCH__PacketCounterValue = other_value.field_proSeDirectCommPSSCH__PacketCounterValue; +init_vec(); +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_proSeDirectDiscPacketCounterValue, + const OPTIONAL& par_proSeDirectCommPSCCH__PacketCounterValue, + const OPTIONAL& par_proSeDirectCommSTCH__PacketCounterValue, + const OPTIONAL& par_proSeDirectCommPSSCH__PacketCounterValue) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_proSeDirectDiscPacketCounterValue(par_proSeDirectDiscPacketCounterValue), + field_proSeDirectCommPSCCH__PacketCounterValue(par_proSeDirectCommPSCCH__PacketCounterValue), + field_proSeDirectCommSTCH__PacketCounterValue(par_proSeDirectCommSTCH__PacketCounterValue), + field_proSeDirectCommPSSCH__PacketCounterValue(par_proSeDirectCommPSSCH__PacketCounterValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::get_descriptor() const { return &UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_descr_; } +const TTCN_Typedescriptor_t* UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ProSeDirectDiscPacketCounterValue__Type_descr_, &ProSeDirectCommPSCCH__PacketCounterValue__Type_descr_, &ProSeDirectCommSTCH__PacketCounterValue__Type_descr_, &ProSeDirectCommPSSCH__PacketCounterValue__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "proSeDirectDiscPacketCounterValue", "proSeDirectCommPSCCH_PacketCounterValue", "proSeDirectCommSTCH_PacketCounterValue", "proSeDirectCommPSSCH_PacketCounterValue" }; +const char* UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::optional_indexes[] = { 3, 4, 5, 6, -1 }; +const int* UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::get_optional_indexes() const { return optional_indexes; } + +const int UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::optional_indexes_asn[] = { 3, 4, 5, 6, -1 }; +const int* UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new ProSeDirectDiscPacketCounterValue__Type_template(ANY_OR_OMIT) : new ProSeDirectDiscPacketCounterValue__Type_template; +single_value.value_elements[4] = was_any ? new ProSeDirectCommPSCCH__PacketCounterValue__Type_template(ANY_OR_OMIT) : new ProSeDirectCommPSCCH__PacketCounterValue__Type_template; +single_value.value_elements[5] = was_any ? new ProSeDirectCommSTCH__PacketCounterValue__Type_template(ANY_OR_OMIT) : new ProSeDirectCommSTCH__PacketCounterValue__Type_template; +single_value.value_elements[6] = was_any ? new ProSeDirectCommPSSCH__PacketCounterValue__Type_template(ANY_OR_OMIT) : new ProSeDirectCommPSSCH__PacketCounterValue__Type_template; +} +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template* p_precondition, UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::~UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::valueof() const +{ +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::messageType() const { return *(static_cast(get_at(2))); } +ProSeDirectDiscPacketCounterValue__Type_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::proSeDirectDiscPacketCounterValue() { return *(static_cast(get_at(3))); } +const ProSeDirectDiscPacketCounterValue__Type_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::proSeDirectDiscPacketCounterValue() const { return *(static_cast(get_at(3))); } +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::proSeDirectCommPSCCH__PacketCounterValue() { return *(static_cast(get_at(4))); } +const ProSeDirectCommPSCCH__PacketCounterValue__Type_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::proSeDirectCommPSCCH__PacketCounterValue() const { return *(static_cast(get_at(4))); } +ProSeDirectCommSTCH__PacketCounterValue__Type_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::proSeDirectCommSTCH__PacketCounterValue() { return *(static_cast(get_at(5))); } +const ProSeDirectCommSTCH__PacketCounterValue__Type_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::proSeDirectCommSTCH__PacketCounterValue() const { return *(static_cast(get_at(5))); } +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::proSeDirectCommPSSCH__PacketCounterValue() { return *(static_cast(get_at(6))); } +const ProSeDirectCommPSSCH__PacketCounterValue__Type_template& UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::proSeDirectCommPSSCH__PacketCounterValue() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::get_descriptor() const { return &UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_descr_; } +const char* UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template::fld_name(int p_index) const { return UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE::fld_names[p_index]; } +void ProSeDirectDiscPacketCounterValue__Type::init_vec() { fld_vec[0]=&field_proSeDirectDiscPacketCounterValueType; fld_vec[1]=&field_proSeDirectDiscPacketCounterListLength; fld_vec[2]=&field_proSeDirectDiscPacketCounterList; } + +ProSeDirectDiscPacketCounterValue__Type::ProSeDirectDiscPacketCounterValue__Type() : Record_Type() { init_vec(); } + +ProSeDirectDiscPacketCounterValue__Type::ProSeDirectDiscPacketCounterValue__Type(const ProSeDirectDiscPacketCounterValue__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_proSeDirectDiscPacketCounterValueType.is_bound() ) + field_proSeDirectDiscPacketCounterValueType = other_value.field_proSeDirectDiscPacketCounterValueType; +if (other_value.field_proSeDirectDiscPacketCounterListLength.is_bound() ) + field_proSeDirectDiscPacketCounterListLength = other_value.field_proSeDirectDiscPacketCounterListLength; +if (other_value.field_proSeDirectDiscPacketCounterList.is_bound() ) + field_proSeDirectDiscPacketCounterList = other_value.field_proSeDirectDiscPacketCounterList; +init_vec(); +} + +ProSeDirectDiscPacketCounterValue__Type::ProSeDirectDiscPacketCounterValue__Type(const BITSTRING& par_proSeDirectDiscPacketCounterValueType, + const BITSTRING& par_proSeDirectDiscPacketCounterListLength, + const ProSeDirectDiscPacketCounterList__Type& par_proSeDirectDiscPacketCounterList) : field_proSeDirectDiscPacketCounterValueType(par_proSeDirectDiscPacketCounterValueType), + field_proSeDirectDiscPacketCounterListLength(par_proSeDirectDiscPacketCounterListLength), + field_proSeDirectDiscPacketCounterList(par_proSeDirectDiscPacketCounterList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ProSeDirectDiscPacketCounterValue__Type::get_descriptor() const { return &ProSeDirectDiscPacketCounterValue__Type_descr_; } +const TTCN_Typedescriptor_t* ProSeDirectDiscPacketCounterValue__Type::fld_descriptors[] = { &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::B16__Type_descr_, &ProSeDirectDiscPacketCounterList__Type_descr_ }; +const TTCN_Typedescriptor_t* ProSeDirectDiscPacketCounterValue__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ProSeDirectDiscPacketCounterValue__Type::fld_names[] = { "proSeDirectDiscPacketCounterValueType", "proSeDirectDiscPacketCounterListLength", "proSeDirectDiscPacketCounterList" }; +const char* ProSeDirectDiscPacketCounterValue__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void ProSeDirectDiscPacketCounterValue__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new ProSeDirectDiscPacketCounterList__Type_template(ANY_VALUE) : new ProSeDirectDiscPacketCounterList__Type_template; +} +} + +ProSeDirectDiscPacketCounterValue__Type_template::ProSeDirectDiscPacketCounterValue__Type_template(ProSeDirectDiscPacketCounterValue__Type_template* p_precondition, ProSeDirectDiscPacketCounterValue__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ProSeDirectDiscPacketCounterValue__Type_template::ProSeDirectDiscPacketCounterValue__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ProSeDirectDiscPacketCounterValue__Type_template::~ProSeDirectDiscPacketCounterValue__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ProSeDirectDiscPacketCounterValue__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const ProSeDirectDiscPacketCounterValue__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ProSeDirectDiscPacketCounterValue__Type_template& ProSeDirectDiscPacketCounterValue__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ProSeDirectDiscPacketCounterValue__Type_template& ProSeDirectDiscPacketCounterValue__Type_template::operator=(const ProSeDirectDiscPacketCounterValue__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ProSeDirectDiscPacketCounterValue__Type_template& ProSeDirectDiscPacketCounterValue__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ProSeDirectDiscPacketCounterValue__Type_template& ProSeDirectDiscPacketCounterValue__Type_template::operator=(const ProSeDirectDiscPacketCounterValue__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ProSeDirectDiscPacketCounterValue__Type ProSeDirectDiscPacketCounterValue__Type_template::valueof() const +{ +ProSeDirectDiscPacketCounterValue__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ProSeDirectDiscPacketCounterValue__Type_template::proSeDirectDiscPacketCounterValueType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ProSeDirectDiscPacketCounterValue__Type_template::proSeDirectDiscPacketCounterValueType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ProSeDirectDiscPacketCounterValue__Type_template::proSeDirectDiscPacketCounterListLength() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ProSeDirectDiscPacketCounterValue__Type_template::proSeDirectDiscPacketCounterListLength() const { return *(static_cast(get_at(1))); } +ProSeDirectDiscPacketCounterList__Type_template& ProSeDirectDiscPacketCounterValue__Type_template::proSeDirectDiscPacketCounterList() { return *(static_cast(get_at(2))); } +const ProSeDirectDiscPacketCounterList__Type_template& ProSeDirectDiscPacketCounterValue__Type_template::proSeDirectDiscPacketCounterList() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ProSeDirectDiscPacketCounterValue__Type_template::get_descriptor() const { return &ProSeDirectDiscPacketCounterValue__Type_descr_; } +const char* ProSeDirectDiscPacketCounterValue__Type_template::fld_name(int p_index) const { return ProSeDirectDiscPacketCounterValue__Type::fld_names[p_index]; } +void ProSeDirectCommPSCCH__PacketCounterValue__Type::init_vec() { fld_vec[0]=&field_proSeDirectCommPSCCH__PacketCounterValueType; fld_vec[1]=&field_proSeDirectCommPSCCH__PacketCounterListLength; fld_vec[2]=&field_proSeDirectCommPSCCH__PacketCounterList; } + +ProSeDirectCommPSCCH__PacketCounterValue__Type::ProSeDirectCommPSCCH__PacketCounterValue__Type() : Record_Type() { init_vec(); } + +ProSeDirectCommPSCCH__PacketCounterValue__Type::ProSeDirectCommPSCCH__PacketCounterValue__Type(const ProSeDirectCommPSCCH__PacketCounterValue__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_proSeDirectCommPSCCH__PacketCounterValueType.is_bound() ) + field_proSeDirectCommPSCCH__PacketCounterValueType = other_value.field_proSeDirectCommPSCCH__PacketCounterValueType; +if (other_value.field_proSeDirectCommPSCCH__PacketCounterListLength.is_bound() ) + field_proSeDirectCommPSCCH__PacketCounterListLength = other_value.field_proSeDirectCommPSCCH__PacketCounterListLength; +if (other_value.field_proSeDirectCommPSCCH__PacketCounterList.is_bound() ) + field_proSeDirectCommPSCCH__PacketCounterList = other_value.field_proSeDirectCommPSCCH__PacketCounterList; +init_vec(); +} + +ProSeDirectCommPSCCH__PacketCounterValue__Type::ProSeDirectCommPSCCH__PacketCounterValue__Type(const BITSTRING& par_proSeDirectCommPSCCH__PacketCounterValueType, + const BITSTRING& par_proSeDirectCommPSCCH__PacketCounterListLength, + const ProSeDirectCommPSCCH__PacketCounterList__Type& par_proSeDirectCommPSCCH__PacketCounterList) : field_proSeDirectCommPSCCH__PacketCounterValueType(par_proSeDirectCommPSCCH__PacketCounterValueType), + field_proSeDirectCommPSCCH__PacketCounterListLength(par_proSeDirectCommPSCCH__PacketCounterListLength), + field_proSeDirectCommPSCCH__PacketCounterList(par_proSeDirectCommPSCCH__PacketCounterList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ProSeDirectCommPSCCH__PacketCounterValue__Type::get_descriptor() const { return &ProSeDirectCommPSCCH__PacketCounterValue__Type_descr_; } +const TTCN_Typedescriptor_t* ProSeDirectCommPSCCH__PacketCounterValue__Type::fld_descriptors[] = { &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::B8__Type_descr_, &ProSeDirectCommPSCCH__PacketCounterList__Type_descr_ }; +const TTCN_Typedescriptor_t* ProSeDirectCommPSCCH__PacketCounterValue__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ProSeDirectCommPSCCH__PacketCounterValue__Type::fld_names[] = { "proSeDirectCommPSCCH_PacketCounterValueType", "proSeDirectCommPSCCH_PacketCounterListLength", "proSeDirectCommPSCCH_PacketCounterList" }; +const char* ProSeDirectCommPSCCH__PacketCounterValue__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void ProSeDirectCommPSCCH__PacketCounterValue__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new ProSeDirectCommPSCCH__PacketCounterList__Type_template(ANY_VALUE) : new ProSeDirectCommPSCCH__PacketCounterList__Type_template; +} +} + +ProSeDirectCommPSCCH__PacketCounterValue__Type_template::ProSeDirectCommPSCCH__PacketCounterValue__Type_template(ProSeDirectCommPSCCH__PacketCounterValue__Type_template* p_precondition, ProSeDirectCommPSCCH__PacketCounterValue__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ProSeDirectCommPSCCH__PacketCounterValue__Type_template::ProSeDirectCommPSCCH__PacketCounterValue__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ProSeDirectCommPSCCH__PacketCounterValue__Type_template::~ProSeDirectCommPSCCH__PacketCounterValue__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ProSeDirectCommPSCCH__PacketCounterValue__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const ProSeDirectCommPSCCH__PacketCounterValue__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::operator=(const ProSeDirectCommPSCCH__PacketCounterValue__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::operator=(const ProSeDirectCommPSCCH__PacketCounterValue__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ProSeDirectCommPSCCH__PacketCounterValue__Type ProSeDirectCommPSCCH__PacketCounterValue__Type_template::valueof() const +{ +ProSeDirectCommPSCCH__PacketCounterValue__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::proSeDirectCommPSCCH__PacketCounterValueType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::proSeDirectCommPSCCH__PacketCounterValueType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::proSeDirectCommPSCCH__PacketCounterListLength() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::proSeDirectCommPSCCH__PacketCounterListLength() const { return *(static_cast(get_at(1))); } +ProSeDirectCommPSCCH__PacketCounterList__Type_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::proSeDirectCommPSCCH__PacketCounterList() { return *(static_cast(get_at(2))); } +const ProSeDirectCommPSCCH__PacketCounterList__Type_template& ProSeDirectCommPSCCH__PacketCounterValue__Type_template::proSeDirectCommPSCCH__PacketCounterList() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ProSeDirectCommPSCCH__PacketCounterValue__Type_template::get_descriptor() const { return &ProSeDirectCommPSCCH__PacketCounterValue__Type_descr_; } +const char* ProSeDirectCommPSCCH__PacketCounterValue__Type_template::fld_name(int p_index) const { return ProSeDirectCommPSCCH__PacketCounterValue__Type::fld_names[p_index]; } +void ProSeDirectCommSTCH__PacketCounterValue__Type::init_vec() { fld_vec[0]=&field_proSeDirectCommSTCH__PacketCounterValueType; fld_vec[1]=&field_proSeDirectCommSTCH__PacketCounterValueLength; fld_vec[2]=&field_proSeDirectCommSTCH__PacketCounterList; } + +ProSeDirectCommSTCH__PacketCounterValue__Type::ProSeDirectCommSTCH__PacketCounterValue__Type() : Record_Type() { init_vec(); } + +ProSeDirectCommSTCH__PacketCounterValue__Type::ProSeDirectCommSTCH__PacketCounterValue__Type(const ProSeDirectCommSTCH__PacketCounterValue__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_proSeDirectCommSTCH__PacketCounterValueType.is_bound() ) + field_proSeDirectCommSTCH__PacketCounterValueType = other_value.field_proSeDirectCommSTCH__PacketCounterValueType; +if (other_value.field_proSeDirectCommSTCH__PacketCounterValueLength.is_bound() ) + field_proSeDirectCommSTCH__PacketCounterValueLength = other_value.field_proSeDirectCommSTCH__PacketCounterValueLength; +if (other_value.field_proSeDirectCommSTCH__PacketCounterList.is_bound() ) + field_proSeDirectCommSTCH__PacketCounterList = other_value.field_proSeDirectCommSTCH__PacketCounterList; +init_vec(); +} + +ProSeDirectCommSTCH__PacketCounterValue__Type::ProSeDirectCommSTCH__PacketCounterValue__Type(const BITSTRING& par_proSeDirectCommSTCH__PacketCounterValueType, + const BITSTRING& par_proSeDirectCommSTCH__PacketCounterValueLength, + const ProSeDirectCommSTCH__PacketCounterList__Type& par_proSeDirectCommSTCH__PacketCounterList) : field_proSeDirectCommSTCH__PacketCounterValueType(par_proSeDirectCommSTCH__PacketCounterValueType), + field_proSeDirectCommSTCH__PacketCounterValueLength(par_proSeDirectCommSTCH__PacketCounterValueLength), + field_proSeDirectCommSTCH__PacketCounterList(par_proSeDirectCommSTCH__PacketCounterList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ProSeDirectCommSTCH__PacketCounterValue__Type::get_descriptor() const { return &ProSeDirectCommSTCH__PacketCounterValue__Type_descr_; } +const TTCN_Typedescriptor_t* ProSeDirectCommSTCH__PacketCounterValue__Type::fld_descriptors[] = { &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::B8__Type_descr_, &ProSeDirectCommSTCH__PacketCounterList__Type_descr_ }; +const TTCN_Typedescriptor_t* ProSeDirectCommSTCH__PacketCounterValue__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ProSeDirectCommSTCH__PacketCounterValue__Type::fld_names[] = { "proSeDirectCommSTCH_PacketCounterValueType", "proSeDirectCommSTCH_PacketCounterValueLength", "proSeDirectCommSTCH_PacketCounterList" }; +const char* ProSeDirectCommSTCH__PacketCounterValue__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void ProSeDirectCommSTCH__PacketCounterValue__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new ProSeDirectCommSTCH__PacketCounterList__Type_template(ANY_VALUE) : new ProSeDirectCommSTCH__PacketCounterList__Type_template; +} +} + +ProSeDirectCommSTCH__PacketCounterValue__Type_template::ProSeDirectCommSTCH__PacketCounterValue__Type_template(ProSeDirectCommSTCH__PacketCounterValue__Type_template* p_precondition, ProSeDirectCommSTCH__PacketCounterValue__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ProSeDirectCommSTCH__PacketCounterValue__Type_template::ProSeDirectCommSTCH__PacketCounterValue__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ProSeDirectCommSTCH__PacketCounterValue__Type_template::~ProSeDirectCommSTCH__PacketCounterValue__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ProSeDirectCommSTCH__PacketCounterValue__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const ProSeDirectCommSTCH__PacketCounterValue__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ProSeDirectCommSTCH__PacketCounterValue__Type_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ProSeDirectCommSTCH__PacketCounterValue__Type_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::operator=(const ProSeDirectCommSTCH__PacketCounterValue__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ProSeDirectCommSTCH__PacketCounterValue__Type_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ProSeDirectCommSTCH__PacketCounterValue__Type_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::operator=(const ProSeDirectCommSTCH__PacketCounterValue__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ProSeDirectCommSTCH__PacketCounterValue__Type ProSeDirectCommSTCH__PacketCounterValue__Type_template::valueof() const +{ +ProSeDirectCommSTCH__PacketCounterValue__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::proSeDirectCommSTCH__PacketCounterValueType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::proSeDirectCommSTCH__PacketCounterValueType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::proSeDirectCommSTCH__PacketCounterValueLength() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::proSeDirectCommSTCH__PacketCounterValueLength() const { return *(static_cast(get_at(1))); } +ProSeDirectCommSTCH__PacketCounterList__Type_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::proSeDirectCommSTCH__PacketCounterList() { return *(static_cast(get_at(2))); } +const ProSeDirectCommSTCH__PacketCounterList__Type_template& ProSeDirectCommSTCH__PacketCounterValue__Type_template::proSeDirectCommSTCH__PacketCounterList() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ProSeDirectCommSTCH__PacketCounterValue__Type_template::get_descriptor() const { return &ProSeDirectCommSTCH__PacketCounterValue__Type_descr_; } +const char* ProSeDirectCommSTCH__PacketCounterValue__Type_template::fld_name(int p_index) const { return ProSeDirectCommSTCH__PacketCounterValue__Type::fld_names[p_index]; } +void ProSeDirectCommPSSCH__PacketCounterValue__Type::init_vec() { fld_vec[0]=&field_proSeDirectCommPSSCH__PacketCounterValueType; fld_vec[1]=&field_proSeDirectCommPSSCH__PacketCounterListLength; fld_vec[2]=&field_proSeDirectCommPSSCH__PacketCounterList; } + +ProSeDirectCommPSSCH__PacketCounterValue__Type::ProSeDirectCommPSSCH__PacketCounterValue__Type() : Record_Type() { init_vec(); } + +ProSeDirectCommPSSCH__PacketCounterValue__Type::ProSeDirectCommPSSCH__PacketCounterValue__Type(const ProSeDirectCommPSSCH__PacketCounterValue__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_proSeDirectCommPSSCH__PacketCounterValueType.is_bound() ) + field_proSeDirectCommPSSCH__PacketCounterValueType = other_value.field_proSeDirectCommPSSCH__PacketCounterValueType; +if (other_value.field_proSeDirectCommPSSCH__PacketCounterListLength.is_bound() ) + field_proSeDirectCommPSSCH__PacketCounterListLength = other_value.field_proSeDirectCommPSSCH__PacketCounterListLength; +if (other_value.field_proSeDirectCommPSSCH__PacketCounterList.is_bound() ) + field_proSeDirectCommPSSCH__PacketCounterList = other_value.field_proSeDirectCommPSSCH__PacketCounterList; +init_vec(); +} + +ProSeDirectCommPSSCH__PacketCounterValue__Type::ProSeDirectCommPSSCH__PacketCounterValue__Type(const BITSTRING& par_proSeDirectCommPSSCH__PacketCounterValueType, + const BITSTRING& par_proSeDirectCommPSSCH__PacketCounterListLength, + const ProSeDirectCommPSSCH__PacketCounterList__Type& par_proSeDirectCommPSSCH__PacketCounterList) : field_proSeDirectCommPSSCH__PacketCounterValueType(par_proSeDirectCommPSSCH__PacketCounterValueType), + field_proSeDirectCommPSSCH__PacketCounterListLength(par_proSeDirectCommPSSCH__PacketCounterListLength), + field_proSeDirectCommPSSCH__PacketCounterList(par_proSeDirectCommPSSCH__PacketCounterList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ProSeDirectCommPSSCH__PacketCounterValue__Type::get_descriptor() const { return &ProSeDirectCommPSSCH__PacketCounterValue__Type_descr_; } +const TTCN_Typedescriptor_t* ProSeDirectCommPSSCH__PacketCounterValue__Type::fld_descriptors[] = { &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::B8__Type_descr_, &ProSeDirectCommPSSCH__PacketCounterList__Type_descr_ }; +const TTCN_Typedescriptor_t* ProSeDirectCommPSSCH__PacketCounterValue__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ProSeDirectCommPSSCH__PacketCounterValue__Type::fld_names[] = { "proSeDirectCommPSSCH_PacketCounterValueType", "proSeDirectCommPSSCH_PacketCounterListLength", "proSeDirectCommPSSCH_PacketCounterList" }; +const char* ProSeDirectCommPSSCH__PacketCounterValue__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void ProSeDirectCommPSSCH__PacketCounterValue__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new ProSeDirectCommPSSCH__PacketCounterList__Type_template(ANY_VALUE) : new ProSeDirectCommPSSCH__PacketCounterList__Type_template; +} +} + +ProSeDirectCommPSSCH__PacketCounterValue__Type_template::ProSeDirectCommPSSCH__PacketCounterValue__Type_template(ProSeDirectCommPSSCH__PacketCounterValue__Type_template* p_precondition, ProSeDirectCommPSSCH__PacketCounterValue__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ProSeDirectCommPSSCH__PacketCounterValue__Type_template::ProSeDirectCommPSSCH__PacketCounterValue__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ProSeDirectCommPSSCH__PacketCounterValue__Type_template::~ProSeDirectCommPSSCH__PacketCounterValue__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ProSeDirectCommPSSCH__PacketCounterValue__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const ProSeDirectCommPSSCH__PacketCounterValue__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::operator=(const ProSeDirectCommPSSCH__PacketCounterValue__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::operator=(const ProSeDirectCommPSSCH__PacketCounterValue__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ProSeDirectCommPSSCH__PacketCounterValue__Type ProSeDirectCommPSSCH__PacketCounterValue__Type_template::valueof() const +{ +ProSeDirectCommPSSCH__PacketCounterValue__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::proSeDirectCommPSSCH__PacketCounterValueType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::proSeDirectCommPSSCH__PacketCounterValueType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::proSeDirectCommPSSCH__PacketCounterListLength() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::proSeDirectCommPSSCH__PacketCounterListLength() const { return *(static_cast(get_at(1))); } +ProSeDirectCommPSSCH__PacketCounterList__Type_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::proSeDirectCommPSSCH__PacketCounterList() { return *(static_cast(get_at(2))); } +const ProSeDirectCommPSSCH__PacketCounterList__Type_template& ProSeDirectCommPSSCH__PacketCounterValue__Type_template::proSeDirectCommPSSCH__PacketCounterList() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ProSeDirectCommPSSCH__PacketCounterValue__Type_template::get_descriptor() const { return &ProSeDirectCommPSSCH__PacketCounterValue__Type_descr_; } +const char* ProSeDirectCommPSSCH__PacketCounterValue__Type_template::fld_name(int p_index) const { return ProSeDirectCommPSSCH__PacketCounterValue__Type::fld_names[p_index]; } +void UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST() : Record_Type() { init_vec(); } + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::get_descriptor() const { return &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_descr_; } +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template* p_precondition, UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::~UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::valueof() const +{ +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::get_descriptor() const { return &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_descr_; } +const char* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template::fld_name(int p_index) const { return UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST::fld_names[p_index]; } +void UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_sCPTM__PacketCounterValue; } + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE() : Record_Type() { init_vec(); } + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_sCPTM__PacketCounterValue.is_bound() ) + field_sCPTM__PacketCounterValue = other_value.field_sCPTM__PacketCounterValue; +init_vec(); +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_sCPTM__PacketCounterValue) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_sCPTM__PacketCounterValue(par_sCPTM__PacketCounterValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::get_descriptor() const { return &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_descr_; } +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &SCPTM__PacketCounterValue__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "sCPTM_PacketCounterValue" }; +const char* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template* p_precondition, UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::~UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::valueof() const +{ +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::messageType() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::sCPTM__PacketCounterValue() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::sCPTM__PacketCounterValue() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::get_descriptor() const { return &UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_descr_; } +const char* UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template::fld_name(int p_index) const { return UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const LB__SetupDRB__IE__List__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = LB__SetupDRB__IE__List__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return LB__SetupDRB__IE__List__Type_template(ANY_VALUE); +} +LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +LB__SetupDRB__IE__List__Type_template operator+(const LB__SetupDRB__IE__List__Type& left_value, const LB__SetupDRB__IE__List__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = LB__SetupDRB__IE__List__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const LB__SetupDRB__IE__List__Type& right_value) +{ +int res_length = LB__SetupDRB__IE__List__Type_template::get_length_for_concat(left_template) + LB__SetupDRB__IE__List__Type_template::get_length_for_concat(right_value); +LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +LB__SetupDRB__IE__List__Type_template operator+(const LB__SetupDRB__IE__List__Type& left_value, template_sel right_template) +{ +int res_length = LB__SetupDRB__IE__List__Type_template::get_length_for_concat(left_value) + LB__SetupDRB__IE__List__Type_template::get_length_for_concat(right_template); +LB__SetupDRB__IE__List__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +DiscMonitorList__Type_template operator+(template_sel left_template, const DiscMonitorList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = DiscMonitorList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return DiscMonitorList__Type_template(ANY_VALUE); +} +DiscMonitorList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +DiscMonitorList__Type_template operator+(const DiscMonitorList__Type& left_value, const DiscMonitorList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = DiscMonitorList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +DiscMonitorList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +DiscMonitorList__Type_template operator+(template_sel left_template, const DiscMonitorList__Type& right_value) +{ +int res_length = DiscMonitorList__Type_template::get_length_for_concat(left_template) + DiscMonitorList__Type_template::get_length_for_concat(right_value); +DiscMonitorList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +DiscMonitorList__Type_template operator+(const DiscMonitorList__Type& left_value, template_sel right_template) +{ +int res_length = DiscMonitorList__Type_template::get_length_for_concat(left_value) + DiscMonitorList__Type_template::get_length_for_concat(right_template); +DiscMonitorList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/EPS_NAS/EPS_NAS_LoopBack_TypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EPS_NAS_LoopBack_TypeDefs"); +EPS__NAS__LoopBack__TypeDefs::init_ttcn3_debugger(); +NAS__CommonTypeDefs::module_object.pre_init_module(); +current_location.update_lineno(24); +ttcn3_debugger.breakpoint_entry(24); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/EPS_NAS/EPS_NAS_LoopBack_TypeDefs.ttcn, line 24 */ +const_tsc__MAX__ModeA__LB__Entities = 8; +current_location.update_lineno(25); +ttcn3_debugger.breakpoint_entry(25); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/EPS_NAS/EPS_NAS_LoopBack_TypeDefs.ttcn, line 25 */ +const_tsc__MAX__ModeD__Monitor__Entities = 400; +current_location.update_lineno(26); +ttcn3_debugger.breakpoint_entry(26); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/EPS_NAS/EPS_NAS_LoopBack_TypeDefs.ttcn, line 26 */ +const_tsc__MAX__ModeE__Monitor__Entities = 16; +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/EPS_NAS/EPS_NAS_LoopBack_TypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EPS_NAS_LoopBack_TypeDefs"); +NAS__CommonTypeDefs::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/EPS_NAS_LoopBack_TypeDefs.hh b/build/Ats_NG_NAS/EPS_NAS_LoopBack_TypeDefs.hh new file mode 100644 index 0000000000000000000000000000000000000000..4ecf860442c5909e95aaf5274a0f946a944f9e22 --- /dev/null +++ b/build/Ats_NG_NAS/EPS_NAS_LoopBack_TypeDefs.hh @@ -0,0 +1,2908 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef EPS__NAS__LoopBack__TypeDefs_HH +#define EPS__NAS__LoopBack__TypeDefs_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NAS_CommonTypeDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 EPS__NAS__LoopBack__TypeDefs_HH +#endif + +namespace EPS__NAS__LoopBack__TypeDefs { + +/* Forward declarations of classes */ + +class CLOSE__UE__TEST__LOOP; +class CLOSE__UE__TEST__LOOP_template; +class UE__TestLoopModeA__LB__Setup__Type; +class UE__TestLoopModeA__LB__Setup__Type_template; +class LB__SetupDRB__IE__List__Type; +class LB__SetupDRB__IE__List__Type_template; +class LB__SetupDRB__IE__Type; +class LB__SetupDRB__IE__Type_template; +class UE__TestLoopModeC__LB__Setup__Type; +class UE__TestLoopModeC__LB__Setup__Type_template; +class UE__TestLoopModeD__LB__Setup__Type; +class UE__TestLoopModeD__LB__Setup__Type_template; +class DiscMonitorList__Type; +class DiscMonitorList__Type_template; +class DiscMonitor__Type; +class DiscMonitor__Type_template; +class UE__TestLoopModeE__LB__Setup__Type; +class UE__TestLoopModeE__LB__Setup__Type_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__BITSTRING CommMonitorList__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__BITSTRING_template CommMonitorList__Type_template; +class UE__TestLoopModeF__LB__Setup__Type; +class UE__TestLoopModeF__LB__Setup__Type_template; +class UE__TestLoopModeGH__LB__Setup__Type; +class UE__TestLoopModeGH__LB__Setup__Type_template; +class CLOSE__UE__TEST__LOOP__COMPLETE; +class CLOSE__UE__TEST__LOOP__COMPLETE_template; +class OPEN__UE__TEST__LOOP; +class OPEN__UE__TEST__LOOP_template; +class OPEN__UE__TEST__LOOP__COMPLETE; +class OPEN__UE__TEST__LOOP__COMPLETE_template; +class ACTIVATE__TEST__MODE; +class ACTIVATE__TEST__MODE_template; +class ACTIVATE__TEST__MODE__COMPLETE; +class ACTIVATE__TEST__MODE__COMPLETE_template; +class DEACTIVATE__TEST__MODE; +class DEACTIVATE__TEST__MODE_template; +class DEACTIVATE__TEST__MODE__COMPLETE; +class DEACTIVATE__TEST__MODE__COMPLETE_template; +class UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST; +class UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template; +class UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE; +class UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template; +class UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST; +class UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template; +class UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE; +class UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING ProSeDirectDiscPacketCounterList__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template ProSeDirectDiscPacketCounterList__Type_template; +class ProSeDirectDiscPacketCounterValue__Type; +class ProSeDirectDiscPacketCounterValue__Type_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING ProSeDirectCommPSCCH__PacketCounterList__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template ProSeDirectCommPSCCH__PacketCounterList__Type_template; +class ProSeDirectCommPSCCH__PacketCounterValue__Type; +class ProSeDirectCommPSCCH__PacketCounterValue__Type_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING ProSeDirectCommSTCH__PacketCounterList__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template ProSeDirectCommSTCH__PacketCounterList__Type_template; +class ProSeDirectCommSTCH__PacketCounterValue__Type; +class ProSeDirectCommSTCH__PacketCounterValue__Type_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING ProSeDirectCommPSSCH__PacketCounterList__Type; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template ProSeDirectCommPSSCH__PacketCounterList__Type_template; +class ProSeDirectCommPSSCH__PacketCounterValue__Type; +class ProSeDirectCommPSSCH__PacketCounterValue__Type_template; +class UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST; +class UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template; +class UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE; +class UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template; + +} /* end of namespace */ + +#ifndef EPS__NAS__LoopBack__TypeDefs_HH +#define EPS__NAS__LoopBack__TypeDefs_HH + +namespace EPS__NAS__LoopBack__TypeDefs { + +/* Type definitions */ + +typedef OCTETSTRING UE__TestLoopModeB__LB__Setup__Type; +typedef OCTETSTRING_template UE__TestLoopModeB__LB__Setup__Type_template; +typedef OCTETSTRING MBMS__PacketCounterValue__Type; +typedef OCTETSTRING_template MBMS__PacketCounterValue__Type_template; +typedef OCTETSTRING SCPTM__PacketCounterValue__Type; +typedef OCTETSTRING_template SCPTM__PacketCounterValue__Type_template; +typedef BITSTRING CommMonitor__Type; +typedef BITSTRING_template CommMonitor__Type_template; + +/* Class definitions */ + +class CLOSE__UE__TEST__LOOP : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OCTETSTRING field_ueTestLoopMode; + OPTIONAL field_ueTestLoopModeA__LB__Setup; + OPTIONAL field_ueTestLoopModeB__LB__Setup; + OPTIONAL field_ueTestLoopModeC__LB__Setup; + OPTIONAL field_ueTestLoopModeD__LB__Setup; + OPTIONAL field_ueTestLoopModeE__LB__Setup; + OPTIONAL field_ueTestLoopModeF__LB__Setup; + OPTIONAL field_ueTestLoopModeGH__LB__Setup; + Base_Type* fld_vec[11]; + void init_vec(); +public: + CLOSE__UE__TEST__LOOP(); + CLOSE__UE__TEST__LOOP(const CLOSE__UE__TEST__LOOP& other_value); + CLOSE__UE__TEST__LOOP(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_ueTestLoopMode, + const OPTIONAL& par_ueTestLoopModeA__LB__Setup, + const OPTIONAL& par_ueTestLoopModeB__LB__Setup, + const OPTIONAL& par_ueTestLoopModeC__LB__Setup, + const OPTIONAL& par_ueTestLoopModeD__LB__Setup, + const OPTIONAL& par_ueTestLoopModeE__LB__Setup, + const OPTIONAL& par_ueTestLoopModeF__LB__Setup, + const OPTIONAL& par_ueTestLoopModeGH__LB__Setup); +inline CLOSE__UE__TEST__LOOP& operator=(const CLOSE__UE__TEST__LOOP& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CLOSE__UE__TEST__LOOP& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CLOSE__UE__TEST__LOOP& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OCTETSTRING& ueTestLoopMode() + {return field_ueTestLoopMode;} + inline const OCTETSTRING& ueTestLoopMode() const + {return field_ueTestLoopMode;} + inline OPTIONAL& ueTestLoopModeA__LB__Setup() + {return field_ueTestLoopModeA__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeA__LB__Setup() const + {return field_ueTestLoopModeA__LB__Setup;} + inline OPTIONAL& ueTestLoopModeB__LB__Setup() + {return field_ueTestLoopModeB__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeB__LB__Setup() const + {return field_ueTestLoopModeB__LB__Setup;} + inline OPTIONAL& ueTestLoopModeC__LB__Setup() + {return field_ueTestLoopModeC__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeC__LB__Setup() const + {return field_ueTestLoopModeC__LB__Setup;} + inline OPTIONAL& ueTestLoopModeD__LB__Setup() + {return field_ueTestLoopModeD__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeD__LB__Setup() const + {return field_ueTestLoopModeD__LB__Setup;} + inline OPTIONAL& ueTestLoopModeE__LB__Setup() + {return field_ueTestLoopModeE__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeE__LB__Setup() const + {return field_ueTestLoopModeE__LB__Setup;} + inline OPTIONAL& ueTestLoopModeF__LB__Setup() + {return field_ueTestLoopModeF__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeF__LB__Setup() const + {return field_ueTestLoopModeF__LB__Setup;} + inline OPTIONAL& ueTestLoopModeGH__LB__Setup() + {return field_ueTestLoopModeGH__LB__Setup;} + inline const OPTIONAL& ueTestLoopModeGH__LB__Setup() const + {return field_ueTestLoopModeGH__LB__Setup;} +Base_Type* clone() const { return new CLOSE__UE__TEST__LOOP(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 11; } +int optional_count() const { return 7; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CLOSE__UE__TEST__LOOP_template : public Record_Template { +void set_specific(); +public: +CLOSE__UE__TEST__LOOP_template(): Record_Template() {} +CLOSE__UE__TEST__LOOP_template(template_sel other_value): Record_Template(other_value) {} +CLOSE__UE__TEST__LOOP_template(const CLOSE__UE__TEST__LOOP& other_value): Record_Template() { copy_value(&other_value); } +CLOSE__UE__TEST__LOOP_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CLOSE__UE__TEST__LOOP_template(CLOSE__UE__TEST__LOOP_template* p_precondition, CLOSE__UE__TEST__LOOP_template* p_implied_template); +CLOSE__UE__TEST__LOOP_template(Dynamic_Match_Interface* p_dyn_match); +CLOSE__UE__TEST__LOOP_template(const CLOSE__UE__TEST__LOOP_template& other_value): Record_Template() { copy_template(other_value); } +~CLOSE__UE__TEST__LOOP_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CLOSE__UE__TEST__LOOP_template& operator=(template_sel other_value); +CLOSE__UE__TEST__LOOP_template& operator=(const CLOSE__UE__TEST__LOOP& other_value); +CLOSE__UE__TEST__LOOP_template& operator=(const OPTIONAL& other_value); +CLOSE__UE__TEST__LOOP_template& operator=(const CLOSE__UE__TEST__LOOP_template& other_value); +inline boolean match(const CLOSE__UE__TEST__LOOP& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CLOSE__UE__TEST__LOOP& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CLOSE__UE__TEST__LOOP valueof() const; +inline CLOSE__UE__TEST__LOOP_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +OCTETSTRING_template& ueTestLoopMode(); +const OCTETSTRING_template& ueTestLoopMode() const; +UE__TestLoopModeA__LB__Setup__Type_template& ueTestLoopModeA__LB__Setup(); +const UE__TestLoopModeA__LB__Setup__Type_template& ueTestLoopModeA__LB__Setup() const; +OCTETSTRING_template& ueTestLoopModeB__LB__Setup(); +const OCTETSTRING_template& ueTestLoopModeB__LB__Setup() const; +UE__TestLoopModeC__LB__Setup__Type_template& ueTestLoopModeC__LB__Setup(); +const UE__TestLoopModeC__LB__Setup__Type_template& ueTestLoopModeC__LB__Setup() const; +UE__TestLoopModeD__LB__Setup__Type_template& ueTestLoopModeD__LB__Setup(); +const UE__TestLoopModeD__LB__Setup__Type_template& ueTestLoopModeD__LB__Setup() const; +UE__TestLoopModeE__LB__Setup__Type_template& ueTestLoopModeE__LB__Setup(); +const UE__TestLoopModeE__LB__Setup__Type_template& ueTestLoopModeE__LB__Setup() const; +UE__TestLoopModeF__LB__Setup__Type_template& ueTestLoopModeF__LB__Setup(); +const UE__TestLoopModeF__LB__Setup__Type_template& ueTestLoopModeF__LB__Setup() const; +UE__TestLoopModeGH__LB__Setup__Type_template& ueTestLoopModeGH__LB__Setup(); +const UE__TestLoopModeGH__LB__Setup__Type_template& ueTestLoopModeGH__LB__Setup() const; +Record_Template* create() const { return new CLOSE__UE__TEST__LOOP_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TestLoopModeA__LB__Setup__Type : public Record_Type { + OCTETSTRING field_iel; + OPTIONAL field_lbSetupDrbList; + Base_Type* fld_vec[2]; + void init_vec(); +public: + UE__TestLoopModeA__LB__Setup__Type(); + UE__TestLoopModeA__LB__Setup__Type(const UE__TestLoopModeA__LB__Setup__Type& other_value); + UE__TestLoopModeA__LB__Setup__Type(const OCTETSTRING& par_iel, + const OPTIONAL& par_lbSetupDrbList); +inline UE__TestLoopModeA__LB__Setup__Type& operator=(const UE__TestLoopModeA__LB__Setup__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TestLoopModeA__LB__Setup__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TestLoopModeA__LB__Setup__Type& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OPTIONAL& lbSetupDrbList() + {return field_lbSetupDrbList;} + inline const OPTIONAL& lbSetupDrbList() const + {return field_lbSetupDrbList;} +Base_Type* clone() const { return new UE__TestLoopModeA__LB__Setup__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TestLoopModeA__LB__Setup__Type_template : public Record_Template { +void set_specific(); +public: +UE__TestLoopModeA__LB__Setup__Type_template(): Record_Template() {} +UE__TestLoopModeA__LB__Setup__Type_template(template_sel other_value): Record_Template(other_value) {} +UE__TestLoopModeA__LB__Setup__Type_template(const UE__TestLoopModeA__LB__Setup__Type& other_value): Record_Template() { copy_value(&other_value); } +UE__TestLoopModeA__LB__Setup__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TestLoopModeA__LB__Setup__Type_template(UE__TestLoopModeA__LB__Setup__Type_template* p_precondition, UE__TestLoopModeA__LB__Setup__Type_template* p_implied_template); +UE__TestLoopModeA__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match); +UE__TestLoopModeA__LB__Setup__Type_template(const UE__TestLoopModeA__LB__Setup__Type_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TestLoopModeA__LB__Setup__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TestLoopModeA__LB__Setup__Type_template& operator=(template_sel other_value); +UE__TestLoopModeA__LB__Setup__Type_template& operator=(const UE__TestLoopModeA__LB__Setup__Type& other_value); +UE__TestLoopModeA__LB__Setup__Type_template& operator=(const OPTIONAL& other_value); +UE__TestLoopModeA__LB__Setup__Type_template& operator=(const UE__TestLoopModeA__LB__Setup__Type_template& other_value); +inline boolean match(const UE__TestLoopModeA__LB__Setup__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TestLoopModeA__LB__Setup__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TestLoopModeA__LB__Setup__Type valueof() const; +inline UE__TestLoopModeA__LB__Setup__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +LB__SetupDRB__IE__List__Type_template& lbSetupDrbList(); +const LB__SetupDRB__IE__List__Type_template& lbSetupDrbList() const; +Record_Template* create() const { return new UE__TestLoopModeA__LB__Setup__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class LB__SetupDRB__IE__List__Type : public Record_Of_Type { + +static const LB__SetupDRB__IE__Type UNBOUND_ELEM; + +public: +LB__SetupDRB__IE__List__Type(): Record_Of_Type() {} +LB__SetupDRB__IE__List__Type(null_type other_value): Record_Of_Type(other_value) {} +LB__SetupDRB__IE__List__Type(const LB__SetupDRB__IE__List__Type& other_value): Record_Of_Type(other_value) {} +~LB__SetupDRB__IE__List__Type() { clean_up(); } + +inline LB__SetupDRB__IE__List__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline LB__SetupDRB__IE__List__Type& operator=(const LB__SetupDRB__IE__List__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LB__SetupDRB__IE__List__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const LB__SetupDRB__IE__List__Type& other_value) const { return !is_equal(&other_value); } +LB__SetupDRB__IE__Type& operator[](int index_value); +LB__SetupDRB__IE__Type& operator[](const INTEGER& index_value); +const LB__SetupDRB__IE__Type& operator[](int index_value) const; +const LB__SetupDRB__IE__Type& operator[](const INTEGER& index_value) const; +LB__SetupDRB__IE__List__Type operator<<=(int rotate_count) const; +LB__SetupDRB__IE__List__Type operator<<=(const INTEGER& rotate_count) const; +LB__SetupDRB__IE__List__Type operator>>=(int rotate_count) const; +LB__SetupDRB__IE__List__Type operator>>=(const INTEGER& rotate_count) const; + +LB__SetupDRB__IE__List__Type operator+(const LB__SetupDRB__IE__List__Type& other_value) const; + +LB__SetupDRB__IE__List__Type operator+(const OPTIONAL& other_value) const; + +LB__SetupDRB__IE__List__Type operator+(null_type) const; + +LB__SetupDRB__IE__List__Type substr(int index, int returncount) const; + +LB__SetupDRB__IE__List__Type replace(int index, int len, const LB__SetupDRB__IE__List__Type& repl) const; + +LB__SetupDRB__IE__List__Type replace(int index, int len, const LB__SetupDRB__IE__List__Type_template& repl) const; + +Base_Type* clone() const { return new LB__SetupDRB__IE__List__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class LB__SetupDRB__IE__List__Type_template : public Record_Of_Template { +friend LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const LB__SetupDRB__IE__List__Type_template& right_template); +friend LB__SetupDRB__IE__List__Type_template operator+(const LB__SetupDRB__IE__List__Type& left_value, const LB__SetupDRB__IE__List__Type_template& right_template); +friend LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const LB__SetupDRB__IE__List__Type& right_value); +friend LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend LB__SetupDRB__IE__List__Type_template operator+(const LB__SetupDRB__IE__List__Type& left_value, template_sel right_template); + +public: +LB__SetupDRB__IE__List__Type_template() {} +LB__SetupDRB__IE__List__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +LB__SetupDRB__IE__List__Type_template(null_type other_value); +LB__SetupDRB__IE__List__Type_template(const LB__SetupDRB__IE__List__Type& other_value) { copy_value(&other_value); } +LB__SetupDRB__IE__List__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +LB__SetupDRB__IE__List__Type_template(LB__SetupDRB__IE__List__Type_template* p_precondition, LB__SetupDRB__IE__List__Type_template* p_implied_template); +LB__SetupDRB__IE__List__Type_template(Dynamic_Match_Interface* p_dyn_match); +LB__SetupDRB__IE__List__Type_template(const LB__SetupDRB__IE__List__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~LB__SetupDRB__IE__List__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LB__SetupDRB__IE__List__Type_template& operator=(template_sel other_value); +LB__SetupDRB__IE__List__Type_template& operator=(null_type other_value); +LB__SetupDRB__IE__List__Type_template& operator=(const LB__SetupDRB__IE__List__Type& other_value); +LB__SetupDRB__IE__List__Type_template& operator=(const OPTIONAL& other_value); +LB__SetupDRB__IE__List__Type_template& operator=(const LB__SetupDRB__IE__List__Type_template& other_value); + +LB__SetupDRB__IE__List__Type_template operator+(const LB__SetupDRB__IE__List__Type_template& other_value) const; +LB__SetupDRB__IE__List__Type_template operator+(const LB__SetupDRB__IE__List__Type& other_value) const; +LB__SetupDRB__IE__List__Type_template operator+(template_sel other_value) const; +LB__SetupDRB__IE__List__Type_template operator+(null_type) const; + +LB__SetupDRB__IE__Type_template& operator[](int index_value); +LB__SetupDRB__IE__Type_template& operator[](const INTEGER& index_value); +const LB__SetupDRB__IE__Type_template& operator[](int index_value) const; +const LB__SetupDRB__IE__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const LB__SetupDRB__IE__List__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +LB__SetupDRB__IE__List__Type valueof() const; +LB__SetupDRB__IE__List__Type substr(int index, int returncount) const; + +LB__SetupDRB__IE__List__Type replace(int index, int len, const LB__SetupDRB__IE__List__Type_template& repl) const; + +LB__SetupDRB__IE__List__Type replace(int index, int len, const LB__SetupDRB__IE__List__Type& repl) const; + +inline LB__SetupDRB__IE__List__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const LB__SetupDRB__IE__List__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new LB__SetupDRB__IE__List__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class LB__SetupDRB__IE__Type : public Record_Type { + BITSTRING field_uplinkPdcpSduSize; + BITSTRING field_reserved; + BITSTRING field_drbIdentity; + Base_Type* fld_vec[3]; + void init_vec(); +public: + LB__SetupDRB__IE__Type(); + LB__SetupDRB__IE__Type(const LB__SetupDRB__IE__Type& other_value); + LB__SetupDRB__IE__Type(const BITSTRING& par_uplinkPdcpSduSize, + const BITSTRING& par_reserved, + const BITSTRING& par_drbIdentity); +inline LB__SetupDRB__IE__Type& operator=(const LB__SetupDRB__IE__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LB__SetupDRB__IE__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const LB__SetupDRB__IE__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& uplinkPdcpSduSize() + {return field_uplinkPdcpSduSize;} + inline const BITSTRING& uplinkPdcpSduSize() const + {return field_uplinkPdcpSduSize;} + inline BITSTRING& reserved() + {return field_reserved;} + inline const BITSTRING& reserved() const + {return field_reserved;} + inline BITSTRING& drbIdentity() + {return field_drbIdentity;} + inline const BITSTRING& drbIdentity() const + {return field_drbIdentity;} +Base_Type* clone() const { return new LB__SetupDRB__IE__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class LB__SetupDRB__IE__Type_template : public Record_Template { +void set_specific(); +public: +LB__SetupDRB__IE__Type_template(): Record_Template() {} +LB__SetupDRB__IE__Type_template(template_sel other_value): Record_Template(other_value) {} +LB__SetupDRB__IE__Type_template(const LB__SetupDRB__IE__Type& other_value): Record_Template() { copy_value(&other_value); } +LB__SetupDRB__IE__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +LB__SetupDRB__IE__Type_template(LB__SetupDRB__IE__Type_template* p_precondition, LB__SetupDRB__IE__Type_template* p_implied_template); +LB__SetupDRB__IE__Type_template(Dynamic_Match_Interface* p_dyn_match); +LB__SetupDRB__IE__Type_template(const LB__SetupDRB__IE__Type_template& other_value): Record_Template() { copy_template(other_value); } +~LB__SetupDRB__IE__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LB__SetupDRB__IE__Type_template& operator=(template_sel other_value); +LB__SetupDRB__IE__Type_template& operator=(const LB__SetupDRB__IE__Type& other_value); +LB__SetupDRB__IE__Type_template& operator=(const OPTIONAL& other_value); +LB__SetupDRB__IE__Type_template& operator=(const LB__SetupDRB__IE__Type_template& other_value); +inline boolean match(const LB__SetupDRB__IE__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const LB__SetupDRB__IE__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +LB__SetupDRB__IE__Type valueof() const; +inline LB__SetupDRB__IE__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& uplinkPdcpSduSize(); +const BITSTRING_template& uplinkPdcpSduSize() const; +BITSTRING_template& reserved(); +const BITSTRING_template& reserved() const; +BITSTRING_template& drbIdentity(); +const BITSTRING_template& drbIdentity() const; +Record_Template* create() const { return new LB__SetupDRB__IE__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TestLoopModeC__LB__Setup__Type : public Record_Type { + BITSTRING field_mBSFN__AreaId; + BITSTRING field_reservedB1; + BITSTRING field_pMCHIdentity; + BITSTRING field_reservedB2; + BITSTRING field_logChId; + Base_Type* fld_vec[5]; + void init_vec(); +public: + UE__TestLoopModeC__LB__Setup__Type(); + UE__TestLoopModeC__LB__Setup__Type(const UE__TestLoopModeC__LB__Setup__Type& other_value); + UE__TestLoopModeC__LB__Setup__Type(const BITSTRING& par_mBSFN__AreaId, + const BITSTRING& par_reservedB1, + const BITSTRING& par_pMCHIdentity, + const BITSTRING& par_reservedB2, + const BITSTRING& par_logChId); +inline UE__TestLoopModeC__LB__Setup__Type& operator=(const UE__TestLoopModeC__LB__Setup__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TestLoopModeC__LB__Setup__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TestLoopModeC__LB__Setup__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& mBSFN__AreaId() + {return field_mBSFN__AreaId;} + inline const BITSTRING& mBSFN__AreaId() const + {return field_mBSFN__AreaId;} + inline BITSTRING& reservedB1() + {return field_reservedB1;} + inline const BITSTRING& reservedB1() const + {return field_reservedB1;} + inline BITSTRING& pMCHIdentity() + {return field_pMCHIdentity;} + inline const BITSTRING& pMCHIdentity() const + {return field_pMCHIdentity;} + inline BITSTRING& reservedB2() + {return field_reservedB2;} + inline const BITSTRING& reservedB2() const + {return field_reservedB2;} + inline BITSTRING& logChId() + {return field_logChId;} + inline const BITSTRING& logChId() const + {return field_logChId;} +Base_Type* clone() const { return new UE__TestLoopModeC__LB__Setup__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TestLoopModeC__LB__Setup__Type_template : public Record_Template { +void set_specific(); +public: +UE__TestLoopModeC__LB__Setup__Type_template(): Record_Template() {} +UE__TestLoopModeC__LB__Setup__Type_template(template_sel other_value): Record_Template(other_value) {} +UE__TestLoopModeC__LB__Setup__Type_template(const UE__TestLoopModeC__LB__Setup__Type& other_value): Record_Template() { copy_value(&other_value); } +UE__TestLoopModeC__LB__Setup__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TestLoopModeC__LB__Setup__Type_template(UE__TestLoopModeC__LB__Setup__Type_template* p_precondition, UE__TestLoopModeC__LB__Setup__Type_template* p_implied_template); +UE__TestLoopModeC__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match); +UE__TestLoopModeC__LB__Setup__Type_template(const UE__TestLoopModeC__LB__Setup__Type_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TestLoopModeC__LB__Setup__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TestLoopModeC__LB__Setup__Type_template& operator=(template_sel other_value); +UE__TestLoopModeC__LB__Setup__Type_template& operator=(const UE__TestLoopModeC__LB__Setup__Type& other_value); +UE__TestLoopModeC__LB__Setup__Type_template& operator=(const OPTIONAL& other_value); +UE__TestLoopModeC__LB__Setup__Type_template& operator=(const UE__TestLoopModeC__LB__Setup__Type_template& other_value); +inline boolean match(const UE__TestLoopModeC__LB__Setup__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TestLoopModeC__LB__Setup__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TestLoopModeC__LB__Setup__Type valueof() const; +inline UE__TestLoopModeC__LB__Setup__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& mBSFN__AreaId(); +const BITSTRING_template& mBSFN__AreaId() const; +BITSTRING_template& reservedB1(); +const BITSTRING_template& reservedB1() const; +BITSTRING_template& pMCHIdentity(); +const BITSTRING_template& pMCHIdentity() const; +BITSTRING_template& reservedB2(); +const BITSTRING_template& reservedB2() const; +BITSTRING_template& logChId(); +const BITSTRING_template& logChId() const; +Record_Template* create() const { return new UE__TestLoopModeC__LB__Setup__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TestLoopModeD__LB__Setup__Type : public Record_Type { + BITSTRING field_discMonitorListLength; + BITSTRING field_reserved; + BITSTRING field_discAnnounceOrMonitor; + OPTIONAL field_discMonitorList; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UE__TestLoopModeD__LB__Setup__Type(); + UE__TestLoopModeD__LB__Setup__Type(const UE__TestLoopModeD__LB__Setup__Type& other_value); + UE__TestLoopModeD__LB__Setup__Type(const BITSTRING& par_discMonitorListLength, + const BITSTRING& par_reserved, + const BITSTRING& par_discAnnounceOrMonitor, + const OPTIONAL& par_discMonitorList); +inline UE__TestLoopModeD__LB__Setup__Type& operator=(const UE__TestLoopModeD__LB__Setup__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TestLoopModeD__LB__Setup__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TestLoopModeD__LB__Setup__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& discMonitorListLength() + {return field_discMonitorListLength;} + inline const BITSTRING& discMonitorListLength() const + {return field_discMonitorListLength;} + inline BITSTRING& reserved() + {return field_reserved;} + inline const BITSTRING& reserved() const + {return field_reserved;} + inline BITSTRING& discAnnounceOrMonitor() + {return field_discAnnounceOrMonitor;} + inline const BITSTRING& discAnnounceOrMonitor() const + {return field_discAnnounceOrMonitor;} + inline OPTIONAL& discMonitorList() + {return field_discMonitorList;} + inline const OPTIONAL& discMonitorList() const + {return field_discMonitorList;} +Base_Type* clone() const { return new UE__TestLoopModeD__LB__Setup__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TestLoopModeD__LB__Setup__Type_template : public Record_Template { +void set_specific(); +public: +UE__TestLoopModeD__LB__Setup__Type_template(): Record_Template() {} +UE__TestLoopModeD__LB__Setup__Type_template(template_sel other_value): Record_Template(other_value) {} +UE__TestLoopModeD__LB__Setup__Type_template(const UE__TestLoopModeD__LB__Setup__Type& other_value): Record_Template() { copy_value(&other_value); } +UE__TestLoopModeD__LB__Setup__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TestLoopModeD__LB__Setup__Type_template(UE__TestLoopModeD__LB__Setup__Type_template* p_precondition, UE__TestLoopModeD__LB__Setup__Type_template* p_implied_template); +UE__TestLoopModeD__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match); +UE__TestLoopModeD__LB__Setup__Type_template(const UE__TestLoopModeD__LB__Setup__Type_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TestLoopModeD__LB__Setup__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TestLoopModeD__LB__Setup__Type_template& operator=(template_sel other_value); +UE__TestLoopModeD__LB__Setup__Type_template& operator=(const UE__TestLoopModeD__LB__Setup__Type& other_value); +UE__TestLoopModeD__LB__Setup__Type_template& operator=(const OPTIONAL& other_value); +UE__TestLoopModeD__LB__Setup__Type_template& operator=(const UE__TestLoopModeD__LB__Setup__Type_template& other_value); +inline boolean match(const UE__TestLoopModeD__LB__Setup__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TestLoopModeD__LB__Setup__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TestLoopModeD__LB__Setup__Type valueof() const; +inline UE__TestLoopModeD__LB__Setup__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& discMonitorListLength(); +const BITSTRING_template& discMonitorListLength() const; +BITSTRING_template& reserved(); +const BITSTRING_template& reserved() const; +BITSTRING_template& discAnnounceOrMonitor(); +const BITSTRING_template& discAnnounceOrMonitor() const; +DiscMonitorList__Type_template& discMonitorList(); +const DiscMonitorList__Type_template& discMonitorList() const; +Record_Template* create() const { return new UE__TestLoopModeD__LB__Setup__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DiscMonitorList__Type : public Record_Of_Type { + +static const DiscMonitor__Type UNBOUND_ELEM; + +public: +DiscMonitorList__Type(): Record_Of_Type() {} +DiscMonitorList__Type(null_type other_value): Record_Of_Type(other_value) {} +DiscMonitorList__Type(const DiscMonitorList__Type& other_value): Record_Of_Type(other_value) {} +~DiscMonitorList__Type() { clean_up(); } + +inline DiscMonitorList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline DiscMonitorList__Type& operator=(const DiscMonitorList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DiscMonitorList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const DiscMonitorList__Type& other_value) const { return !is_equal(&other_value); } +DiscMonitor__Type& operator[](int index_value); +DiscMonitor__Type& operator[](const INTEGER& index_value); +const DiscMonitor__Type& operator[](int index_value) const; +const DiscMonitor__Type& operator[](const INTEGER& index_value) const; +DiscMonitorList__Type operator<<=(int rotate_count) const; +DiscMonitorList__Type operator<<=(const INTEGER& rotate_count) const; +DiscMonitorList__Type operator>>=(int rotate_count) const; +DiscMonitorList__Type operator>>=(const INTEGER& rotate_count) const; + +DiscMonitorList__Type operator+(const DiscMonitorList__Type& other_value) const; + +DiscMonitorList__Type operator+(const OPTIONAL& other_value) const; + +DiscMonitorList__Type operator+(null_type) const; + +DiscMonitorList__Type substr(int index, int returncount) const; + +DiscMonitorList__Type replace(int index, int len, const DiscMonitorList__Type& repl) const; + +DiscMonitorList__Type replace(int index, int len, const DiscMonitorList__Type_template& repl) const; + +Base_Type* clone() const { return new DiscMonitorList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class DiscMonitorList__Type_template : public Record_Of_Template { +friend DiscMonitorList__Type_template operator+(template_sel left_template, const DiscMonitorList__Type_template& right_template); +friend DiscMonitorList__Type_template operator+(const DiscMonitorList__Type& left_value, const DiscMonitorList__Type_template& right_template); +friend DiscMonitorList__Type_template operator+(template_sel left_template, const DiscMonitorList__Type& right_value); +friend DiscMonitorList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend DiscMonitorList__Type_template operator+(const DiscMonitorList__Type& left_value, template_sel right_template); + +public: +DiscMonitorList__Type_template() {} +DiscMonitorList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +DiscMonitorList__Type_template(null_type other_value); +DiscMonitorList__Type_template(const DiscMonitorList__Type& other_value) { copy_value(&other_value); } +DiscMonitorList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +DiscMonitorList__Type_template(DiscMonitorList__Type_template* p_precondition, DiscMonitorList__Type_template* p_implied_template); +DiscMonitorList__Type_template(Dynamic_Match_Interface* p_dyn_match); +DiscMonitorList__Type_template(const DiscMonitorList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~DiscMonitorList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DiscMonitorList__Type_template& operator=(template_sel other_value); +DiscMonitorList__Type_template& operator=(null_type other_value); +DiscMonitorList__Type_template& operator=(const DiscMonitorList__Type& other_value); +DiscMonitorList__Type_template& operator=(const OPTIONAL& other_value); +DiscMonitorList__Type_template& operator=(const DiscMonitorList__Type_template& other_value); + +DiscMonitorList__Type_template operator+(const DiscMonitorList__Type_template& other_value) const; +DiscMonitorList__Type_template operator+(const DiscMonitorList__Type& other_value) const; +DiscMonitorList__Type_template operator+(template_sel other_value) const; +DiscMonitorList__Type_template operator+(null_type) const; + +DiscMonitor__Type_template& operator[](int index_value); +DiscMonitor__Type_template& operator[](const INTEGER& index_value); +const DiscMonitor__Type_template& operator[](int index_value) const; +const DiscMonitor__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const DiscMonitorList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +DiscMonitorList__Type valueof() const; +DiscMonitorList__Type substr(int index, int returncount) const; + +DiscMonitorList__Type replace(int index, int len, const DiscMonitorList__Type_template& repl) const; + +DiscMonitorList__Type replace(int index, int len, const DiscMonitorList__Type& repl) const; + +inline DiscMonitorList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const DiscMonitorList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new DiscMonitorList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class DiscMonitor__Type : public Record_Type { + BITSTRING field_proSeAppCodeLSB__A7; + BITSTRING field_proSeAppCodeLSB__A6; + BITSTRING field_proSeAppCodeLSB__A5; + BITSTRING field_proSeAppCodeLSB__A4; + BITSTRING field_proSeAppCodeLSB__A3; + BITSTRING field_proSeAppCodeLSB__A2; + BITSTRING field_proSeAppCodeLSB__A1; + BITSTRING field_proSeAppCodeLSB__A0; + BITSTRING field_reserved; + BITSTRING field_proSeAppCodeLSB__A8; + Base_Type* fld_vec[10]; + void init_vec(); +public: + DiscMonitor__Type(); + DiscMonitor__Type(const DiscMonitor__Type& other_value); + DiscMonitor__Type(const BITSTRING& par_proSeAppCodeLSB__A7, + const BITSTRING& par_proSeAppCodeLSB__A6, + const BITSTRING& par_proSeAppCodeLSB__A5, + const BITSTRING& par_proSeAppCodeLSB__A4, + const BITSTRING& par_proSeAppCodeLSB__A3, + const BITSTRING& par_proSeAppCodeLSB__A2, + const BITSTRING& par_proSeAppCodeLSB__A1, + const BITSTRING& par_proSeAppCodeLSB__A0, + const BITSTRING& par_reserved, + const BITSTRING& par_proSeAppCodeLSB__A8); +inline DiscMonitor__Type& operator=(const DiscMonitor__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DiscMonitor__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DiscMonitor__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& proSeAppCodeLSB__A7() + {return field_proSeAppCodeLSB__A7;} + inline const BITSTRING& proSeAppCodeLSB__A7() const + {return field_proSeAppCodeLSB__A7;} + inline BITSTRING& proSeAppCodeLSB__A6() + {return field_proSeAppCodeLSB__A6;} + inline const BITSTRING& proSeAppCodeLSB__A6() const + {return field_proSeAppCodeLSB__A6;} + inline BITSTRING& proSeAppCodeLSB__A5() + {return field_proSeAppCodeLSB__A5;} + inline const BITSTRING& proSeAppCodeLSB__A5() const + {return field_proSeAppCodeLSB__A5;} + inline BITSTRING& proSeAppCodeLSB__A4() + {return field_proSeAppCodeLSB__A4;} + inline const BITSTRING& proSeAppCodeLSB__A4() const + {return field_proSeAppCodeLSB__A4;} + inline BITSTRING& proSeAppCodeLSB__A3() + {return field_proSeAppCodeLSB__A3;} + inline const BITSTRING& proSeAppCodeLSB__A3() const + {return field_proSeAppCodeLSB__A3;} + inline BITSTRING& proSeAppCodeLSB__A2() + {return field_proSeAppCodeLSB__A2;} + inline const BITSTRING& proSeAppCodeLSB__A2() const + {return field_proSeAppCodeLSB__A2;} + inline BITSTRING& proSeAppCodeLSB__A1() + {return field_proSeAppCodeLSB__A1;} + inline const BITSTRING& proSeAppCodeLSB__A1() const + {return field_proSeAppCodeLSB__A1;} + inline BITSTRING& proSeAppCodeLSB__A0() + {return field_proSeAppCodeLSB__A0;} + inline const BITSTRING& proSeAppCodeLSB__A0() const + {return field_proSeAppCodeLSB__A0;} + inline BITSTRING& reserved() + {return field_reserved;} + inline const BITSTRING& reserved() const + {return field_reserved;} + inline BITSTRING& proSeAppCodeLSB__A8() + {return field_proSeAppCodeLSB__A8;} + inline const BITSTRING& proSeAppCodeLSB__A8() const + {return field_proSeAppCodeLSB__A8;} +Base_Type* clone() const { return new DiscMonitor__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DiscMonitor__Type_template : public Record_Template { +void set_specific(); +public: +DiscMonitor__Type_template(): Record_Template() {} +DiscMonitor__Type_template(template_sel other_value): Record_Template(other_value) {} +DiscMonitor__Type_template(const DiscMonitor__Type& other_value): Record_Template() { copy_value(&other_value); } +DiscMonitor__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DiscMonitor__Type_template(DiscMonitor__Type_template* p_precondition, DiscMonitor__Type_template* p_implied_template); +DiscMonitor__Type_template(Dynamic_Match_Interface* p_dyn_match); +DiscMonitor__Type_template(const DiscMonitor__Type_template& other_value): Record_Template() { copy_template(other_value); } +~DiscMonitor__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DiscMonitor__Type_template& operator=(template_sel other_value); +DiscMonitor__Type_template& operator=(const DiscMonitor__Type& other_value); +DiscMonitor__Type_template& operator=(const OPTIONAL& other_value); +DiscMonitor__Type_template& operator=(const DiscMonitor__Type_template& other_value); +inline boolean match(const DiscMonitor__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DiscMonitor__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DiscMonitor__Type valueof() const; +inline DiscMonitor__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& proSeAppCodeLSB__A7(); +const BITSTRING_template& proSeAppCodeLSB__A7() const; +BITSTRING_template& proSeAppCodeLSB__A6(); +const BITSTRING_template& proSeAppCodeLSB__A6() const; +BITSTRING_template& proSeAppCodeLSB__A5(); +const BITSTRING_template& proSeAppCodeLSB__A5() const; +BITSTRING_template& proSeAppCodeLSB__A4(); +const BITSTRING_template& proSeAppCodeLSB__A4() const; +BITSTRING_template& proSeAppCodeLSB__A3(); +const BITSTRING_template& proSeAppCodeLSB__A3() const; +BITSTRING_template& proSeAppCodeLSB__A2(); +const BITSTRING_template& proSeAppCodeLSB__A2() const; +BITSTRING_template& proSeAppCodeLSB__A1(); +const BITSTRING_template& proSeAppCodeLSB__A1() const; +BITSTRING_template& proSeAppCodeLSB__A0(); +const BITSTRING_template& proSeAppCodeLSB__A0() const; +BITSTRING_template& reserved(); +const BITSTRING_template& reserved() const; +BITSTRING_template& proSeAppCodeLSB__A8(); +const BITSTRING_template& proSeAppCodeLSB__A8() const; +Record_Template* create() const { return new DiscMonitor__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TestLoopModeE__LB__Setup__Type : public Record_Type { + BITSTRING field_commMonitorListLength; + BITSTRING field_reserved; + BITSTRING field_commTransmitOrReceive; + OPTIONAL field_commMonitorList; + BITSTRING field_d2dOrV2x; + Base_Type* fld_vec[5]; + void init_vec(); +public: + UE__TestLoopModeE__LB__Setup__Type(); + UE__TestLoopModeE__LB__Setup__Type(const UE__TestLoopModeE__LB__Setup__Type& other_value); + UE__TestLoopModeE__LB__Setup__Type(const BITSTRING& par_commMonitorListLength, + const BITSTRING& par_reserved, + const BITSTRING& par_commTransmitOrReceive, + const OPTIONAL& par_commMonitorList, + const BITSTRING& par_d2dOrV2x); +inline UE__TestLoopModeE__LB__Setup__Type& operator=(const UE__TestLoopModeE__LB__Setup__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TestLoopModeE__LB__Setup__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TestLoopModeE__LB__Setup__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& commMonitorListLength() + {return field_commMonitorListLength;} + inline const BITSTRING& commMonitorListLength() const + {return field_commMonitorListLength;} + inline BITSTRING& reserved() + {return field_reserved;} + inline const BITSTRING& reserved() const + {return field_reserved;} + inline BITSTRING& commTransmitOrReceive() + {return field_commTransmitOrReceive;} + inline const BITSTRING& commTransmitOrReceive() const + {return field_commTransmitOrReceive;} + inline OPTIONAL& commMonitorList() + {return field_commMonitorList;} + inline const OPTIONAL& commMonitorList() const + {return field_commMonitorList;} + inline BITSTRING& d2dOrV2x() + {return field_d2dOrV2x;} + inline const BITSTRING& d2dOrV2x() const + {return field_d2dOrV2x;} +Base_Type* clone() const { return new UE__TestLoopModeE__LB__Setup__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TestLoopModeE__LB__Setup__Type_template : public Record_Template { +void set_specific(); +public: +UE__TestLoopModeE__LB__Setup__Type_template(): Record_Template() {} +UE__TestLoopModeE__LB__Setup__Type_template(template_sel other_value): Record_Template(other_value) {} +UE__TestLoopModeE__LB__Setup__Type_template(const UE__TestLoopModeE__LB__Setup__Type& other_value): Record_Template() { copy_value(&other_value); } +UE__TestLoopModeE__LB__Setup__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TestLoopModeE__LB__Setup__Type_template(UE__TestLoopModeE__LB__Setup__Type_template* p_precondition, UE__TestLoopModeE__LB__Setup__Type_template* p_implied_template); +UE__TestLoopModeE__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match); +UE__TestLoopModeE__LB__Setup__Type_template(const UE__TestLoopModeE__LB__Setup__Type_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TestLoopModeE__LB__Setup__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TestLoopModeE__LB__Setup__Type_template& operator=(template_sel other_value); +UE__TestLoopModeE__LB__Setup__Type_template& operator=(const UE__TestLoopModeE__LB__Setup__Type& other_value); +UE__TestLoopModeE__LB__Setup__Type_template& operator=(const OPTIONAL& other_value); +UE__TestLoopModeE__LB__Setup__Type_template& operator=(const UE__TestLoopModeE__LB__Setup__Type_template& other_value); +inline boolean match(const UE__TestLoopModeE__LB__Setup__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TestLoopModeE__LB__Setup__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TestLoopModeE__LB__Setup__Type valueof() const; +inline UE__TestLoopModeE__LB__Setup__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& commMonitorListLength(); +const BITSTRING_template& commMonitorListLength() const; +BITSTRING_template& reserved(); +const BITSTRING_template& reserved() const; +BITSTRING_template& commTransmitOrReceive(); +const BITSTRING_template& commTransmitOrReceive() const; +CommMonitorList__Type_template& commMonitorList(); +const CommMonitorList__Type_template& commMonitorList() const; +BITSTRING_template& d2dOrV2x(); +const BITSTRING_template& d2dOrV2x() const; +Record_Template* create() const { return new UE__TestLoopModeE__LB__Setup__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TestLoopModeF__LB__Setup__Type : public Record_Type { + BITSTRING field_sC__MTCH__ID; + Base_Type* fld_vec[1]; + void init_vec(); +public: + UE__TestLoopModeF__LB__Setup__Type(); + UE__TestLoopModeF__LB__Setup__Type(const UE__TestLoopModeF__LB__Setup__Type& other_value); + UE__TestLoopModeF__LB__Setup__Type(const BITSTRING& par_sC__MTCH__ID); +inline UE__TestLoopModeF__LB__Setup__Type& operator=(const UE__TestLoopModeF__LB__Setup__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TestLoopModeF__LB__Setup__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TestLoopModeF__LB__Setup__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& sC__MTCH__ID() + {return field_sC__MTCH__ID;} + inline const BITSTRING& sC__MTCH__ID() const + {return field_sC__MTCH__ID;} +Base_Type* clone() const { return new UE__TestLoopModeF__LB__Setup__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TestLoopModeF__LB__Setup__Type_template : public Record_Template { +void set_specific(); +public: +UE__TestLoopModeF__LB__Setup__Type_template(): Record_Template() {} +UE__TestLoopModeF__LB__Setup__Type_template(template_sel other_value): Record_Template(other_value) {} +UE__TestLoopModeF__LB__Setup__Type_template(const UE__TestLoopModeF__LB__Setup__Type& other_value): Record_Template() { copy_value(&other_value); } +UE__TestLoopModeF__LB__Setup__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TestLoopModeF__LB__Setup__Type_template(UE__TestLoopModeF__LB__Setup__Type_template* p_precondition, UE__TestLoopModeF__LB__Setup__Type_template* p_implied_template); +UE__TestLoopModeF__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match); +UE__TestLoopModeF__LB__Setup__Type_template(const UE__TestLoopModeF__LB__Setup__Type_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TestLoopModeF__LB__Setup__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TestLoopModeF__LB__Setup__Type_template& operator=(template_sel other_value); +UE__TestLoopModeF__LB__Setup__Type_template& operator=(const UE__TestLoopModeF__LB__Setup__Type& other_value); +UE__TestLoopModeF__LB__Setup__Type_template& operator=(const OPTIONAL& other_value); +UE__TestLoopModeF__LB__Setup__Type_template& operator=(const UE__TestLoopModeF__LB__Setup__Type_template& other_value); +inline boolean match(const UE__TestLoopModeF__LB__Setup__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TestLoopModeF__LB__Setup__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TestLoopModeF__LB__Setup__Type valueof() const; +inline UE__TestLoopModeF__LB__Setup__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& sC__MTCH__ID(); +const BITSTRING_template& sC__MTCH__ID() const; +Record_Template* create() const { return new UE__TestLoopModeF__LB__Setup__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TestLoopModeGH__LB__Setup__Type : public Record_Type { + BITSTRING field_uplinkLoopbackMode; + BITSTRING field_repetitions; + BITSTRING field_uplinkDataDelay; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UE__TestLoopModeGH__LB__Setup__Type(); + UE__TestLoopModeGH__LB__Setup__Type(const UE__TestLoopModeGH__LB__Setup__Type& other_value); + UE__TestLoopModeGH__LB__Setup__Type(const BITSTRING& par_uplinkLoopbackMode, + const BITSTRING& par_repetitions, + const BITSTRING& par_uplinkDataDelay); +inline UE__TestLoopModeGH__LB__Setup__Type& operator=(const UE__TestLoopModeGH__LB__Setup__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TestLoopModeGH__LB__Setup__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TestLoopModeGH__LB__Setup__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& uplinkLoopbackMode() + {return field_uplinkLoopbackMode;} + inline const BITSTRING& uplinkLoopbackMode() const + {return field_uplinkLoopbackMode;} + inline BITSTRING& repetitions() + {return field_repetitions;} + inline const BITSTRING& repetitions() const + {return field_repetitions;} + inline BITSTRING& uplinkDataDelay() + {return field_uplinkDataDelay;} + inline const BITSTRING& uplinkDataDelay() const + {return field_uplinkDataDelay;} +Base_Type* clone() const { return new UE__TestLoopModeGH__LB__Setup__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TestLoopModeGH__LB__Setup__Type_template : public Record_Template { +void set_specific(); +public: +UE__TestLoopModeGH__LB__Setup__Type_template(): Record_Template() {} +UE__TestLoopModeGH__LB__Setup__Type_template(template_sel other_value): Record_Template(other_value) {} +UE__TestLoopModeGH__LB__Setup__Type_template(const UE__TestLoopModeGH__LB__Setup__Type& other_value): Record_Template() { copy_value(&other_value); } +UE__TestLoopModeGH__LB__Setup__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TestLoopModeGH__LB__Setup__Type_template(UE__TestLoopModeGH__LB__Setup__Type_template* p_precondition, UE__TestLoopModeGH__LB__Setup__Type_template* p_implied_template); +UE__TestLoopModeGH__LB__Setup__Type_template(Dynamic_Match_Interface* p_dyn_match); +UE__TestLoopModeGH__LB__Setup__Type_template(const UE__TestLoopModeGH__LB__Setup__Type_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TestLoopModeGH__LB__Setup__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TestLoopModeGH__LB__Setup__Type_template& operator=(template_sel other_value); +UE__TestLoopModeGH__LB__Setup__Type_template& operator=(const UE__TestLoopModeGH__LB__Setup__Type& other_value); +UE__TestLoopModeGH__LB__Setup__Type_template& operator=(const OPTIONAL& other_value); +UE__TestLoopModeGH__LB__Setup__Type_template& operator=(const UE__TestLoopModeGH__LB__Setup__Type_template& other_value); +inline boolean match(const UE__TestLoopModeGH__LB__Setup__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TestLoopModeGH__LB__Setup__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TestLoopModeGH__LB__Setup__Type valueof() const; +inline UE__TestLoopModeGH__LB__Setup__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& uplinkLoopbackMode(); +const BITSTRING_template& uplinkLoopbackMode() const; +BITSTRING_template& repetitions(); +const BITSTRING_template& repetitions() const; +BITSTRING_template& uplinkDataDelay(); +const BITSTRING_template& uplinkDataDelay() const; +Record_Template* create() const { return new UE__TestLoopModeGH__LB__Setup__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CLOSE__UE__TEST__LOOP__COMPLETE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + CLOSE__UE__TEST__LOOP__COMPLETE(); + CLOSE__UE__TEST__LOOP__COMPLETE(const CLOSE__UE__TEST__LOOP__COMPLETE& other_value); + CLOSE__UE__TEST__LOOP__COMPLETE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline CLOSE__UE__TEST__LOOP__COMPLETE& operator=(const CLOSE__UE__TEST__LOOP__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CLOSE__UE__TEST__LOOP__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CLOSE__UE__TEST__LOOP__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new CLOSE__UE__TEST__LOOP__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CLOSE__UE__TEST__LOOP__COMPLETE_template : public Record_Template { +void set_specific(); +public: +CLOSE__UE__TEST__LOOP__COMPLETE_template(): Record_Template() {} +CLOSE__UE__TEST__LOOP__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +CLOSE__UE__TEST__LOOP__COMPLETE_template(const CLOSE__UE__TEST__LOOP__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +CLOSE__UE__TEST__LOOP__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CLOSE__UE__TEST__LOOP__COMPLETE_template(CLOSE__UE__TEST__LOOP__COMPLETE_template* p_precondition, CLOSE__UE__TEST__LOOP__COMPLETE_template* p_implied_template); +CLOSE__UE__TEST__LOOP__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +CLOSE__UE__TEST__LOOP__COMPLETE_template(const CLOSE__UE__TEST__LOOP__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~CLOSE__UE__TEST__LOOP__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CLOSE__UE__TEST__LOOP__COMPLETE_template& operator=(template_sel other_value); +CLOSE__UE__TEST__LOOP__COMPLETE_template& operator=(const CLOSE__UE__TEST__LOOP__COMPLETE& other_value); +CLOSE__UE__TEST__LOOP__COMPLETE_template& operator=(const OPTIONAL& other_value); +CLOSE__UE__TEST__LOOP__COMPLETE_template& operator=(const CLOSE__UE__TEST__LOOP__COMPLETE_template& other_value); +inline boolean match(const CLOSE__UE__TEST__LOOP__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CLOSE__UE__TEST__LOOP__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CLOSE__UE__TEST__LOOP__COMPLETE valueof() const; +inline CLOSE__UE__TEST__LOOP__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new CLOSE__UE__TEST__LOOP__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class OPEN__UE__TEST__LOOP : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + OPEN__UE__TEST__LOOP(); + OPEN__UE__TEST__LOOP(const OPEN__UE__TEST__LOOP& other_value); + OPEN__UE__TEST__LOOP(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline OPEN__UE__TEST__LOOP& operator=(const OPEN__UE__TEST__LOOP& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const OPEN__UE__TEST__LOOP& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const OPEN__UE__TEST__LOOP& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new OPEN__UE__TEST__LOOP(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class OPEN__UE__TEST__LOOP_template : public Record_Template { +void set_specific(); +public: +OPEN__UE__TEST__LOOP_template(): Record_Template() {} +OPEN__UE__TEST__LOOP_template(template_sel other_value): Record_Template(other_value) {} +OPEN__UE__TEST__LOOP_template(const OPEN__UE__TEST__LOOP& other_value): Record_Template() { copy_value(&other_value); } +OPEN__UE__TEST__LOOP_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +OPEN__UE__TEST__LOOP_template(OPEN__UE__TEST__LOOP_template* p_precondition, OPEN__UE__TEST__LOOP_template* p_implied_template); +OPEN__UE__TEST__LOOP_template(Dynamic_Match_Interface* p_dyn_match); +OPEN__UE__TEST__LOOP_template(const OPEN__UE__TEST__LOOP_template& other_value): Record_Template() { copy_template(other_value); } +~OPEN__UE__TEST__LOOP_template(); +boolean match_dynamic(const Base_Type* match_value) const; +OPEN__UE__TEST__LOOP_template& operator=(template_sel other_value); +OPEN__UE__TEST__LOOP_template& operator=(const OPEN__UE__TEST__LOOP& other_value); +OPEN__UE__TEST__LOOP_template& operator=(const OPTIONAL& other_value); +OPEN__UE__TEST__LOOP_template& operator=(const OPEN__UE__TEST__LOOP_template& other_value); +inline boolean match(const OPEN__UE__TEST__LOOP& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const OPEN__UE__TEST__LOOP& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +OPEN__UE__TEST__LOOP valueof() const; +inline OPEN__UE__TEST__LOOP_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new OPEN__UE__TEST__LOOP_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class OPEN__UE__TEST__LOOP__COMPLETE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + OPEN__UE__TEST__LOOP__COMPLETE(); + OPEN__UE__TEST__LOOP__COMPLETE(const OPEN__UE__TEST__LOOP__COMPLETE& other_value); + OPEN__UE__TEST__LOOP__COMPLETE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline OPEN__UE__TEST__LOOP__COMPLETE& operator=(const OPEN__UE__TEST__LOOP__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const OPEN__UE__TEST__LOOP__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const OPEN__UE__TEST__LOOP__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new OPEN__UE__TEST__LOOP__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class OPEN__UE__TEST__LOOP__COMPLETE_template : public Record_Template { +void set_specific(); +public: +OPEN__UE__TEST__LOOP__COMPLETE_template(): Record_Template() {} +OPEN__UE__TEST__LOOP__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +OPEN__UE__TEST__LOOP__COMPLETE_template(const OPEN__UE__TEST__LOOP__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +OPEN__UE__TEST__LOOP__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +OPEN__UE__TEST__LOOP__COMPLETE_template(OPEN__UE__TEST__LOOP__COMPLETE_template* p_precondition, OPEN__UE__TEST__LOOP__COMPLETE_template* p_implied_template); +OPEN__UE__TEST__LOOP__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +OPEN__UE__TEST__LOOP__COMPLETE_template(const OPEN__UE__TEST__LOOP__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~OPEN__UE__TEST__LOOP__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +OPEN__UE__TEST__LOOP__COMPLETE_template& operator=(template_sel other_value); +OPEN__UE__TEST__LOOP__COMPLETE_template& operator=(const OPEN__UE__TEST__LOOP__COMPLETE& other_value); +OPEN__UE__TEST__LOOP__COMPLETE_template& operator=(const OPTIONAL& other_value); +OPEN__UE__TEST__LOOP__COMPLETE_template& operator=(const OPEN__UE__TEST__LOOP__COMPLETE_template& other_value); +inline boolean match(const OPEN__UE__TEST__LOOP__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const OPEN__UE__TEST__LOOP__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +OPEN__UE__TEST__LOOP__COMPLETE valueof() const; +inline OPEN__UE__TEST__LOOP__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new OPEN__UE__TEST__LOOP__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ACTIVATE__TEST__MODE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OCTETSTRING field_ueTestLoopMode; + Base_Type* fld_vec[4]; + void init_vec(); +public: + ACTIVATE__TEST__MODE(); + ACTIVATE__TEST__MODE(const ACTIVATE__TEST__MODE& other_value); + ACTIVATE__TEST__MODE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_ueTestLoopMode); +inline ACTIVATE__TEST__MODE& operator=(const ACTIVATE__TEST__MODE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ACTIVATE__TEST__MODE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ACTIVATE__TEST__MODE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OCTETSTRING& ueTestLoopMode() + {return field_ueTestLoopMode;} + inline const OCTETSTRING& ueTestLoopMode() const + {return field_ueTestLoopMode;} +Base_Type* clone() const { return new ACTIVATE__TEST__MODE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ACTIVATE__TEST__MODE_template : public Record_Template { +void set_specific(); +public: +ACTIVATE__TEST__MODE_template(): Record_Template() {} +ACTIVATE__TEST__MODE_template(template_sel other_value): Record_Template(other_value) {} +ACTIVATE__TEST__MODE_template(const ACTIVATE__TEST__MODE& other_value): Record_Template() { copy_value(&other_value); } +ACTIVATE__TEST__MODE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ACTIVATE__TEST__MODE_template(ACTIVATE__TEST__MODE_template* p_precondition, ACTIVATE__TEST__MODE_template* p_implied_template); +ACTIVATE__TEST__MODE_template(Dynamic_Match_Interface* p_dyn_match); +ACTIVATE__TEST__MODE_template(const ACTIVATE__TEST__MODE_template& other_value): Record_Template() { copy_template(other_value); } +~ACTIVATE__TEST__MODE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ACTIVATE__TEST__MODE_template& operator=(template_sel other_value); +ACTIVATE__TEST__MODE_template& operator=(const ACTIVATE__TEST__MODE& other_value); +ACTIVATE__TEST__MODE_template& operator=(const OPTIONAL& other_value); +ACTIVATE__TEST__MODE_template& operator=(const ACTIVATE__TEST__MODE_template& other_value); +inline boolean match(const ACTIVATE__TEST__MODE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ACTIVATE__TEST__MODE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ACTIVATE__TEST__MODE valueof() const; +inline ACTIVATE__TEST__MODE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +OCTETSTRING_template& ueTestLoopMode(); +const OCTETSTRING_template& ueTestLoopMode() const; +Record_Template* create() const { return new ACTIVATE__TEST__MODE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ACTIVATE__TEST__MODE__COMPLETE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ACTIVATE__TEST__MODE__COMPLETE(); + ACTIVATE__TEST__MODE__COMPLETE(const ACTIVATE__TEST__MODE__COMPLETE& other_value); + ACTIVATE__TEST__MODE__COMPLETE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline ACTIVATE__TEST__MODE__COMPLETE& operator=(const ACTIVATE__TEST__MODE__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ACTIVATE__TEST__MODE__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ACTIVATE__TEST__MODE__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new ACTIVATE__TEST__MODE__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ACTIVATE__TEST__MODE__COMPLETE_template : public Record_Template { +void set_specific(); +public: +ACTIVATE__TEST__MODE__COMPLETE_template(): Record_Template() {} +ACTIVATE__TEST__MODE__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +ACTIVATE__TEST__MODE__COMPLETE_template(const ACTIVATE__TEST__MODE__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +ACTIVATE__TEST__MODE__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ACTIVATE__TEST__MODE__COMPLETE_template(ACTIVATE__TEST__MODE__COMPLETE_template* p_precondition, ACTIVATE__TEST__MODE__COMPLETE_template* p_implied_template); +ACTIVATE__TEST__MODE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +ACTIVATE__TEST__MODE__COMPLETE_template(const ACTIVATE__TEST__MODE__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~ACTIVATE__TEST__MODE__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ACTIVATE__TEST__MODE__COMPLETE_template& operator=(template_sel other_value); +ACTIVATE__TEST__MODE__COMPLETE_template& operator=(const ACTIVATE__TEST__MODE__COMPLETE& other_value); +ACTIVATE__TEST__MODE__COMPLETE_template& operator=(const OPTIONAL& other_value); +ACTIVATE__TEST__MODE__COMPLETE_template& operator=(const ACTIVATE__TEST__MODE__COMPLETE_template& other_value); +inline boolean match(const ACTIVATE__TEST__MODE__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ACTIVATE__TEST__MODE__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ACTIVATE__TEST__MODE__COMPLETE valueof() const; +inline ACTIVATE__TEST__MODE__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new ACTIVATE__TEST__MODE__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DEACTIVATE__TEST__MODE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + DEACTIVATE__TEST__MODE(); + DEACTIVATE__TEST__MODE(const DEACTIVATE__TEST__MODE& other_value); + DEACTIVATE__TEST__MODE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline DEACTIVATE__TEST__MODE& operator=(const DEACTIVATE__TEST__MODE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DEACTIVATE__TEST__MODE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DEACTIVATE__TEST__MODE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new DEACTIVATE__TEST__MODE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DEACTIVATE__TEST__MODE_template : public Record_Template { +void set_specific(); +public: +DEACTIVATE__TEST__MODE_template(): Record_Template() {} +DEACTIVATE__TEST__MODE_template(template_sel other_value): Record_Template(other_value) {} +DEACTIVATE__TEST__MODE_template(const DEACTIVATE__TEST__MODE& other_value): Record_Template() { copy_value(&other_value); } +DEACTIVATE__TEST__MODE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DEACTIVATE__TEST__MODE_template(DEACTIVATE__TEST__MODE_template* p_precondition, DEACTIVATE__TEST__MODE_template* p_implied_template); +DEACTIVATE__TEST__MODE_template(Dynamic_Match_Interface* p_dyn_match); +DEACTIVATE__TEST__MODE_template(const DEACTIVATE__TEST__MODE_template& other_value): Record_Template() { copy_template(other_value); } +~DEACTIVATE__TEST__MODE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DEACTIVATE__TEST__MODE_template& operator=(template_sel other_value); +DEACTIVATE__TEST__MODE_template& operator=(const DEACTIVATE__TEST__MODE& other_value); +DEACTIVATE__TEST__MODE_template& operator=(const OPTIONAL& other_value); +DEACTIVATE__TEST__MODE_template& operator=(const DEACTIVATE__TEST__MODE_template& other_value); +inline boolean match(const DEACTIVATE__TEST__MODE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DEACTIVATE__TEST__MODE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DEACTIVATE__TEST__MODE valueof() const; +inline DEACTIVATE__TEST__MODE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new DEACTIVATE__TEST__MODE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DEACTIVATE__TEST__MODE__COMPLETE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + DEACTIVATE__TEST__MODE__COMPLETE(); + DEACTIVATE__TEST__MODE__COMPLETE(const DEACTIVATE__TEST__MODE__COMPLETE& other_value); + DEACTIVATE__TEST__MODE__COMPLETE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline DEACTIVATE__TEST__MODE__COMPLETE& operator=(const DEACTIVATE__TEST__MODE__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DEACTIVATE__TEST__MODE__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DEACTIVATE__TEST__MODE__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new DEACTIVATE__TEST__MODE__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DEACTIVATE__TEST__MODE__COMPLETE_template : public Record_Template { +void set_specific(); +public: +DEACTIVATE__TEST__MODE__COMPLETE_template(): Record_Template() {} +DEACTIVATE__TEST__MODE__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +DEACTIVATE__TEST__MODE__COMPLETE_template(const DEACTIVATE__TEST__MODE__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +DEACTIVATE__TEST__MODE__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DEACTIVATE__TEST__MODE__COMPLETE_template(DEACTIVATE__TEST__MODE__COMPLETE_template* p_precondition, DEACTIVATE__TEST__MODE__COMPLETE_template* p_implied_template); +DEACTIVATE__TEST__MODE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +DEACTIVATE__TEST__MODE__COMPLETE_template(const DEACTIVATE__TEST__MODE__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~DEACTIVATE__TEST__MODE__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DEACTIVATE__TEST__MODE__COMPLETE_template& operator=(template_sel other_value); +DEACTIVATE__TEST__MODE__COMPLETE_template& operator=(const DEACTIVATE__TEST__MODE__COMPLETE& other_value); +DEACTIVATE__TEST__MODE__COMPLETE_template& operator=(const OPTIONAL& other_value); +DEACTIVATE__TEST__MODE__COMPLETE_template& operator=(const DEACTIVATE__TEST__MODE__COMPLETE_template& other_value); +inline boolean match(const DEACTIVATE__TEST__MODE__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DEACTIVATE__TEST__MODE__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DEACTIVATE__TEST__MODE__COMPLETE valueof() const; +inline DEACTIVATE__TEST__MODE__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new DEACTIVATE__TEST__MODE__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST(); + UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& other_value); + UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template : public Record_Template { +void set_specific(); +public: +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(): Record_Template() {} +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(template_sel other_value): Record_Template(other_value) {} +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& other_value): Record_Template() { copy_value(&other_value); } +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template* p_precondition, UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template* p_implied_template); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(Dynamic_Match_Interface* p_dyn_match); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& operator=(template_sel other_value); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& other_value); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& operator=(const OPTIONAL& other_value); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& other_value); +inline boolean match(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST valueof() const; +inline UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OCTETSTRING field_MBMS__PacketCounterValue; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE(); + UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& other_value); + UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_MBMS__PacketCounterValue); +inline UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OCTETSTRING& MBMS__PacketCounterValue() + {return field_MBMS__PacketCounterValue;} + inline const OCTETSTRING& MBMS__PacketCounterValue() const + {return field_MBMS__PacketCounterValue;} +Base_Type* clone() const { return new UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template : public Record_Template { +void set_specific(); +public: +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(): Record_Template() {} +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(template_sel other_value): Record_Template(other_value) {} +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& other_value): Record_Template() { copy_value(&other_value); } +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template* p_precondition, UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template* p_implied_template); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& operator=(template_sel other_value); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& other_value); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& operator=(const OPTIONAL& other_value); +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& operator=(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& other_value); +inline boolean match(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE valueof() const; +inline UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +OCTETSTRING_template& MBMS__PacketCounterValue(); +const OCTETSTRING_template& MBMS__PacketCounterValue() const; +Record_Template* create() const { return new UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST(); + UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& other_value); + UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template : public Record_Template { +void set_specific(); +public: +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(): Record_Template() {} +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(template_sel other_value): Record_Template(other_value) {} +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& other_value): Record_Template() { copy_value(&other_value); } +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template* p_precondition, UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template* p_implied_template); +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(Dynamic_Match_Interface* p_dyn_match); +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& operator=(template_sel other_value); +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& other_value); +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& operator=(const OPTIONAL& other_value); +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& other_value); +inline boolean match(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST valueof() const; +inline UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OPTIONAL field_proSeDirectDiscPacketCounterValue; + OPTIONAL field_proSeDirectCommPSCCH__PacketCounterValue; + OPTIONAL field_proSeDirectCommSTCH__PacketCounterValue; + OPTIONAL field_proSeDirectCommPSSCH__PacketCounterValue; + Base_Type* fld_vec[7]; + void init_vec(); +public: + UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE(); + UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& other_value); + UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_proSeDirectDiscPacketCounterValue, + const OPTIONAL& par_proSeDirectCommPSCCH__PacketCounterValue, + const OPTIONAL& par_proSeDirectCommSTCH__PacketCounterValue, + const OPTIONAL& par_proSeDirectCommPSSCH__PacketCounterValue); +inline UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& proSeDirectDiscPacketCounterValue() + {return field_proSeDirectDiscPacketCounterValue;} + inline const OPTIONAL& proSeDirectDiscPacketCounterValue() const + {return field_proSeDirectDiscPacketCounterValue;} + inline OPTIONAL& proSeDirectCommPSCCH__PacketCounterValue() + {return field_proSeDirectCommPSCCH__PacketCounterValue;} + inline const OPTIONAL& proSeDirectCommPSCCH__PacketCounterValue() const + {return field_proSeDirectCommPSCCH__PacketCounterValue;} + inline OPTIONAL& proSeDirectCommSTCH__PacketCounterValue() + {return field_proSeDirectCommSTCH__PacketCounterValue;} + inline const OPTIONAL& proSeDirectCommSTCH__PacketCounterValue() const + {return field_proSeDirectCommSTCH__PacketCounterValue;} + inline OPTIONAL& proSeDirectCommPSSCH__PacketCounterValue() + {return field_proSeDirectCommPSSCH__PacketCounterValue;} + inline const OPTIONAL& proSeDirectCommPSSCH__PacketCounterValue() const + {return field_proSeDirectCommPSSCH__PacketCounterValue;} +Base_Type* clone() const { return new UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template : public Record_Template { +void set_specific(); +public: +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(): Record_Template() {} +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(template_sel other_value): Record_Template(other_value) {} +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& other_value): Record_Template() { copy_value(&other_value); } +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template* p_precondition, UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template* p_implied_template); +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& operator=(template_sel other_value); +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& other_value); +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& operator=(const OPTIONAL& other_value); +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& operator=(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& other_value); +inline boolean match(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE valueof() const; +inline UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ProSeDirectDiscPacketCounterValue__Type_template& proSeDirectDiscPacketCounterValue(); +const ProSeDirectDiscPacketCounterValue__Type_template& proSeDirectDiscPacketCounterValue() const; +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& proSeDirectCommPSCCH__PacketCounterValue(); +const ProSeDirectCommPSCCH__PacketCounterValue__Type_template& proSeDirectCommPSCCH__PacketCounterValue() const; +ProSeDirectCommSTCH__PacketCounterValue__Type_template& proSeDirectCommSTCH__PacketCounterValue(); +const ProSeDirectCommSTCH__PacketCounterValue__Type_template& proSeDirectCommSTCH__PacketCounterValue() const; +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& proSeDirectCommPSSCH__PacketCounterValue(); +const ProSeDirectCommPSSCH__PacketCounterValue__Type_template& proSeDirectCommPSSCH__PacketCounterValue() const; +Record_Template* create() const { return new UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ProSeDirectDiscPacketCounterValue__Type : public Record_Type { + BITSTRING field_proSeDirectDiscPacketCounterValueType; + BITSTRING field_proSeDirectDiscPacketCounterListLength; + ProSeDirectDiscPacketCounterList__Type field_proSeDirectDiscPacketCounterList; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ProSeDirectDiscPacketCounterValue__Type(); + ProSeDirectDiscPacketCounterValue__Type(const ProSeDirectDiscPacketCounterValue__Type& other_value); + ProSeDirectDiscPacketCounterValue__Type(const BITSTRING& par_proSeDirectDiscPacketCounterValueType, + const BITSTRING& par_proSeDirectDiscPacketCounterListLength, + const ProSeDirectDiscPacketCounterList__Type& par_proSeDirectDiscPacketCounterList); +inline ProSeDirectDiscPacketCounterValue__Type& operator=(const ProSeDirectDiscPacketCounterValue__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ProSeDirectDiscPacketCounterValue__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ProSeDirectDiscPacketCounterValue__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& proSeDirectDiscPacketCounterValueType() + {return field_proSeDirectDiscPacketCounterValueType;} + inline const BITSTRING& proSeDirectDiscPacketCounterValueType() const + {return field_proSeDirectDiscPacketCounterValueType;} + inline BITSTRING& proSeDirectDiscPacketCounterListLength() + {return field_proSeDirectDiscPacketCounterListLength;} + inline const BITSTRING& proSeDirectDiscPacketCounterListLength() const + {return field_proSeDirectDiscPacketCounterListLength;} + inline ProSeDirectDiscPacketCounterList__Type& proSeDirectDiscPacketCounterList() + {return field_proSeDirectDiscPacketCounterList;} + inline const ProSeDirectDiscPacketCounterList__Type& proSeDirectDiscPacketCounterList() const + {return field_proSeDirectDiscPacketCounterList;} +Base_Type* clone() const { return new ProSeDirectDiscPacketCounterValue__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ProSeDirectDiscPacketCounterValue__Type_template : public Record_Template { +void set_specific(); +public: +ProSeDirectDiscPacketCounterValue__Type_template(): Record_Template() {} +ProSeDirectDiscPacketCounterValue__Type_template(template_sel other_value): Record_Template(other_value) {} +ProSeDirectDiscPacketCounterValue__Type_template(const ProSeDirectDiscPacketCounterValue__Type& other_value): Record_Template() { copy_value(&other_value); } +ProSeDirectDiscPacketCounterValue__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ProSeDirectDiscPacketCounterValue__Type_template(ProSeDirectDiscPacketCounterValue__Type_template* p_precondition, ProSeDirectDiscPacketCounterValue__Type_template* p_implied_template); +ProSeDirectDiscPacketCounterValue__Type_template(Dynamic_Match_Interface* p_dyn_match); +ProSeDirectDiscPacketCounterValue__Type_template(const ProSeDirectDiscPacketCounterValue__Type_template& other_value): Record_Template() { copy_template(other_value); } +~ProSeDirectDiscPacketCounterValue__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ProSeDirectDiscPacketCounterValue__Type_template& operator=(template_sel other_value); +ProSeDirectDiscPacketCounterValue__Type_template& operator=(const ProSeDirectDiscPacketCounterValue__Type& other_value); +ProSeDirectDiscPacketCounterValue__Type_template& operator=(const OPTIONAL& other_value); +ProSeDirectDiscPacketCounterValue__Type_template& operator=(const ProSeDirectDiscPacketCounterValue__Type_template& other_value); +inline boolean match(const ProSeDirectDiscPacketCounterValue__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ProSeDirectDiscPacketCounterValue__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ProSeDirectDiscPacketCounterValue__Type valueof() const; +inline ProSeDirectDiscPacketCounterValue__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& proSeDirectDiscPacketCounterValueType(); +const BITSTRING_template& proSeDirectDiscPacketCounterValueType() const; +BITSTRING_template& proSeDirectDiscPacketCounterListLength(); +const BITSTRING_template& proSeDirectDiscPacketCounterListLength() const; +ProSeDirectDiscPacketCounterList__Type_template& proSeDirectDiscPacketCounterList(); +const ProSeDirectDiscPacketCounterList__Type_template& proSeDirectDiscPacketCounterList() const; +Record_Template* create() const { return new ProSeDirectDiscPacketCounterValue__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ProSeDirectCommPSCCH__PacketCounterValue__Type : public Record_Type { + BITSTRING field_proSeDirectCommPSCCH__PacketCounterValueType; + BITSTRING field_proSeDirectCommPSCCH__PacketCounterListLength; + ProSeDirectCommPSCCH__PacketCounterList__Type field_proSeDirectCommPSCCH__PacketCounterList; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ProSeDirectCommPSCCH__PacketCounterValue__Type(); + ProSeDirectCommPSCCH__PacketCounterValue__Type(const ProSeDirectCommPSCCH__PacketCounterValue__Type& other_value); + ProSeDirectCommPSCCH__PacketCounterValue__Type(const BITSTRING& par_proSeDirectCommPSCCH__PacketCounterValueType, + const BITSTRING& par_proSeDirectCommPSCCH__PacketCounterListLength, + const ProSeDirectCommPSCCH__PacketCounterList__Type& par_proSeDirectCommPSCCH__PacketCounterList); +inline ProSeDirectCommPSCCH__PacketCounterValue__Type& operator=(const ProSeDirectCommPSCCH__PacketCounterValue__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ProSeDirectCommPSCCH__PacketCounterValue__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ProSeDirectCommPSCCH__PacketCounterValue__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& proSeDirectCommPSCCH__PacketCounterValueType() + {return field_proSeDirectCommPSCCH__PacketCounterValueType;} + inline const BITSTRING& proSeDirectCommPSCCH__PacketCounterValueType() const + {return field_proSeDirectCommPSCCH__PacketCounterValueType;} + inline BITSTRING& proSeDirectCommPSCCH__PacketCounterListLength() + {return field_proSeDirectCommPSCCH__PacketCounterListLength;} + inline const BITSTRING& proSeDirectCommPSCCH__PacketCounterListLength() const + {return field_proSeDirectCommPSCCH__PacketCounterListLength;} + inline ProSeDirectCommPSCCH__PacketCounterList__Type& proSeDirectCommPSCCH__PacketCounterList() + {return field_proSeDirectCommPSCCH__PacketCounterList;} + inline const ProSeDirectCommPSCCH__PacketCounterList__Type& proSeDirectCommPSCCH__PacketCounterList() const + {return field_proSeDirectCommPSCCH__PacketCounterList;} +Base_Type* clone() const { return new ProSeDirectCommPSCCH__PacketCounterValue__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ProSeDirectCommPSCCH__PacketCounterValue__Type_template : public Record_Template { +void set_specific(); +public: +ProSeDirectCommPSCCH__PacketCounterValue__Type_template(): Record_Template() {} +ProSeDirectCommPSCCH__PacketCounterValue__Type_template(template_sel other_value): Record_Template(other_value) {} +ProSeDirectCommPSCCH__PacketCounterValue__Type_template(const ProSeDirectCommPSCCH__PacketCounterValue__Type& other_value): Record_Template() { copy_value(&other_value); } +ProSeDirectCommPSCCH__PacketCounterValue__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ProSeDirectCommPSCCH__PacketCounterValue__Type_template(ProSeDirectCommPSCCH__PacketCounterValue__Type_template* p_precondition, ProSeDirectCommPSCCH__PacketCounterValue__Type_template* p_implied_template); +ProSeDirectCommPSCCH__PacketCounterValue__Type_template(Dynamic_Match_Interface* p_dyn_match); +ProSeDirectCommPSCCH__PacketCounterValue__Type_template(const ProSeDirectCommPSCCH__PacketCounterValue__Type_template& other_value): Record_Template() { copy_template(other_value); } +~ProSeDirectCommPSCCH__PacketCounterValue__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& operator=(template_sel other_value); +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& operator=(const ProSeDirectCommPSCCH__PacketCounterValue__Type& other_value); +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& operator=(const OPTIONAL& other_value); +ProSeDirectCommPSCCH__PacketCounterValue__Type_template& operator=(const ProSeDirectCommPSCCH__PacketCounterValue__Type_template& other_value); +inline boolean match(const ProSeDirectCommPSCCH__PacketCounterValue__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ProSeDirectCommPSCCH__PacketCounterValue__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ProSeDirectCommPSCCH__PacketCounterValue__Type valueof() const; +inline ProSeDirectCommPSCCH__PacketCounterValue__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& proSeDirectCommPSCCH__PacketCounterValueType(); +const BITSTRING_template& proSeDirectCommPSCCH__PacketCounterValueType() const; +BITSTRING_template& proSeDirectCommPSCCH__PacketCounterListLength(); +const BITSTRING_template& proSeDirectCommPSCCH__PacketCounterListLength() const; +ProSeDirectCommPSCCH__PacketCounterList__Type_template& proSeDirectCommPSCCH__PacketCounterList(); +const ProSeDirectCommPSCCH__PacketCounterList__Type_template& proSeDirectCommPSCCH__PacketCounterList() const; +Record_Template* create() const { return new ProSeDirectCommPSCCH__PacketCounterValue__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ProSeDirectCommSTCH__PacketCounterValue__Type : public Record_Type { + BITSTRING field_proSeDirectCommSTCH__PacketCounterValueType; + BITSTRING field_proSeDirectCommSTCH__PacketCounterValueLength; + ProSeDirectCommSTCH__PacketCounterList__Type field_proSeDirectCommSTCH__PacketCounterList; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ProSeDirectCommSTCH__PacketCounterValue__Type(); + ProSeDirectCommSTCH__PacketCounterValue__Type(const ProSeDirectCommSTCH__PacketCounterValue__Type& other_value); + ProSeDirectCommSTCH__PacketCounterValue__Type(const BITSTRING& par_proSeDirectCommSTCH__PacketCounterValueType, + const BITSTRING& par_proSeDirectCommSTCH__PacketCounterValueLength, + const ProSeDirectCommSTCH__PacketCounterList__Type& par_proSeDirectCommSTCH__PacketCounterList); +inline ProSeDirectCommSTCH__PacketCounterValue__Type& operator=(const ProSeDirectCommSTCH__PacketCounterValue__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ProSeDirectCommSTCH__PacketCounterValue__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ProSeDirectCommSTCH__PacketCounterValue__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& proSeDirectCommSTCH__PacketCounterValueType() + {return field_proSeDirectCommSTCH__PacketCounterValueType;} + inline const BITSTRING& proSeDirectCommSTCH__PacketCounterValueType() const + {return field_proSeDirectCommSTCH__PacketCounterValueType;} + inline BITSTRING& proSeDirectCommSTCH__PacketCounterValueLength() + {return field_proSeDirectCommSTCH__PacketCounterValueLength;} + inline const BITSTRING& proSeDirectCommSTCH__PacketCounterValueLength() const + {return field_proSeDirectCommSTCH__PacketCounterValueLength;} + inline ProSeDirectCommSTCH__PacketCounterList__Type& proSeDirectCommSTCH__PacketCounterList() + {return field_proSeDirectCommSTCH__PacketCounterList;} + inline const ProSeDirectCommSTCH__PacketCounterList__Type& proSeDirectCommSTCH__PacketCounterList() const + {return field_proSeDirectCommSTCH__PacketCounterList;} +Base_Type* clone() const { return new ProSeDirectCommSTCH__PacketCounterValue__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ProSeDirectCommSTCH__PacketCounterValue__Type_template : public Record_Template { +void set_specific(); +public: +ProSeDirectCommSTCH__PacketCounterValue__Type_template(): Record_Template() {} +ProSeDirectCommSTCH__PacketCounterValue__Type_template(template_sel other_value): Record_Template(other_value) {} +ProSeDirectCommSTCH__PacketCounterValue__Type_template(const ProSeDirectCommSTCH__PacketCounterValue__Type& other_value): Record_Template() { copy_value(&other_value); } +ProSeDirectCommSTCH__PacketCounterValue__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ProSeDirectCommSTCH__PacketCounterValue__Type_template(ProSeDirectCommSTCH__PacketCounterValue__Type_template* p_precondition, ProSeDirectCommSTCH__PacketCounterValue__Type_template* p_implied_template); +ProSeDirectCommSTCH__PacketCounterValue__Type_template(Dynamic_Match_Interface* p_dyn_match); +ProSeDirectCommSTCH__PacketCounterValue__Type_template(const ProSeDirectCommSTCH__PacketCounterValue__Type_template& other_value): Record_Template() { copy_template(other_value); } +~ProSeDirectCommSTCH__PacketCounterValue__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ProSeDirectCommSTCH__PacketCounterValue__Type_template& operator=(template_sel other_value); +ProSeDirectCommSTCH__PacketCounterValue__Type_template& operator=(const ProSeDirectCommSTCH__PacketCounterValue__Type& other_value); +ProSeDirectCommSTCH__PacketCounterValue__Type_template& operator=(const OPTIONAL& other_value); +ProSeDirectCommSTCH__PacketCounterValue__Type_template& operator=(const ProSeDirectCommSTCH__PacketCounterValue__Type_template& other_value); +inline boolean match(const ProSeDirectCommSTCH__PacketCounterValue__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ProSeDirectCommSTCH__PacketCounterValue__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ProSeDirectCommSTCH__PacketCounterValue__Type valueof() const; +inline ProSeDirectCommSTCH__PacketCounterValue__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& proSeDirectCommSTCH__PacketCounterValueType(); +const BITSTRING_template& proSeDirectCommSTCH__PacketCounterValueType() const; +BITSTRING_template& proSeDirectCommSTCH__PacketCounterValueLength(); +const BITSTRING_template& proSeDirectCommSTCH__PacketCounterValueLength() const; +ProSeDirectCommSTCH__PacketCounterList__Type_template& proSeDirectCommSTCH__PacketCounterList(); +const ProSeDirectCommSTCH__PacketCounterList__Type_template& proSeDirectCommSTCH__PacketCounterList() const; +Record_Template* create() const { return new ProSeDirectCommSTCH__PacketCounterValue__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ProSeDirectCommPSSCH__PacketCounterValue__Type : public Record_Type { + BITSTRING field_proSeDirectCommPSSCH__PacketCounterValueType; + BITSTRING field_proSeDirectCommPSSCH__PacketCounterListLength; + ProSeDirectCommPSSCH__PacketCounterList__Type field_proSeDirectCommPSSCH__PacketCounterList; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ProSeDirectCommPSSCH__PacketCounterValue__Type(); + ProSeDirectCommPSSCH__PacketCounterValue__Type(const ProSeDirectCommPSSCH__PacketCounterValue__Type& other_value); + ProSeDirectCommPSSCH__PacketCounterValue__Type(const BITSTRING& par_proSeDirectCommPSSCH__PacketCounterValueType, + const BITSTRING& par_proSeDirectCommPSSCH__PacketCounterListLength, + const ProSeDirectCommPSSCH__PacketCounterList__Type& par_proSeDirectCommPSSCH__PacketCounterList); +inline ProSeDirectCommPSSCH__PacketCounterValue__Type& operator=(const ProSeDirectCommPSSCH__PacketCounterValue__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ProSeDirectCommPSSCH__PacketCounterValue__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ProSeDirectCommPSSCH__PacketCounterValue__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& proSeDirectCommPSSCH__PacketCounterValueType() + {return field_proSeDirectCommPSSCH__PacketCounterValueType;} + inline const BITSTRING& proSeDirectCommPSSCH__PacketCounterValueType() const + {return field_proSeDirectCommPSSCH__PacketCounterValueType;} + inline BITSTRING& proSeDirectCommPSSCH__PacketCounterListLength() + {return field_proSeDirectCommPSSCH__PacketCounterListLength;} + inline const BITSTRING& proSeDirectCommPSSCH__PacketCounterListLength() const + {return field_proSeDirectCommPSSCH__PacketCounterListLength;} + inline ProSeDirectCommPSSCH__PacketCounterList__Type& proSeDirectCommPSSCH__PacketCounterList() + {return field_proSeDirectCommPSSCH__PacketCounterList;} + inline const ProSeDirectCommPSSCH__PacketCounterList__Type& proSeDirectCommPSSCH__PacketCounterList() const + {return field_proSeDirectCommPSSCH__PacketCounterList;} +Base_Type* clone() const { return new ProSeDirectCommPSSCH__PacketCounterValue__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ProSeDirectCommPSSCH__PacketCounterValue__Type_template : public Record_Template { +void set_specific(); +public: +ProSeDirectCommPSSCH__PacketCounterValue__Type_template(): Record_Template() {} +ProSeDirectCommPSSCH__PacketCounterValue__Type_template(template_sel other_value): Record_Template(other_value) {} +ProSeDirectCommPSSCH__PacketCounterValue__Type_template(const ProSeDirectCommPSSCH__PacketCounterValue__Type& other_value): Record_Template() { copy_value(&other_value); } +ProSeDirectCommPSSCH__PacketCounterValue__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ProSeDirectCommPSSCH__PacketCounterValue__Type_template(ProSeDirectCommPSSCH__PacketCounterValue__Type_template* p_precondition, ProSeDirectCommPSSCH__PacketCounterValue__Type_template* p_implied_template); +ProSeDirectCommPSSCH__PacketCounterValue__Type_template(Dynamic_Match_Interface* p_dyn_match); +ProSeDirectCommPSSCH__PacketCounterValue__Type_template(const ProSeDirectCommPSSCH__PacketCounterValue__Type_template& other_value): Record_Template() { copy_template(other_value); } +~ProSeDirectCommPSSCH__PacketCounterValue__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& operator=(template_sel other_value); +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& operator=(const ProSeDirectCommPSSCH__PacketCounterValue__Type& other_value); +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& operator=(const OPTIONAL& other_value); +ProSeDirectCommPSSCH__PacketCounterValue__Type_template& operator=(const ProSeDirectCommPSSCH__PacketCounterValue__Type_template& other_value); +inline boolean match(const ProSeDirectCommPSSCH__PacketCounterValue__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ProSeDirectCommPSSCH__PacketCounterValue__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ProSeDirectCommPSSCH__PacketCounterValue__Type valueof() const; +inline ProSeDirectCommPSSCH__PacketCounterValue__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& proSeDirectCommPSSCH__PacketCounterValueType(); +const BITSTRING_template& proSeDirectCommPSSCH__PacketCounterValueType() const; +BITSTRING_template& proSeDirectCommPSSCH__PacketCounterListLength(); +const BITSTRING_template& proSeDirectCommPSSCH__PacketCounterListLength() const; +ProSeDirectCommPSSCH__PacketCounterList__Type_template& proSeDirectCommPSSCH__PacketCounterList(); +const ProSeDirectCommPSSCH__PacketCounterList__Type_template& proSeDirectCommPSSCH__PacketCounterList() const; +Record_Template* create() const { return new ProSeDirectCommPSSCH__PacketCounterValue__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST(); + UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& other_value); + UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template : public Record_Template { +void set_specific(); +public: +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(): Record_Template() {} +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(template_sel other_value): Record_Template(other_value) {} +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& other_value): Record_Template() { copy_value(&other_value); } +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template* p_precondition, UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template* p_implied_template); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(Dynamic_Match_Interface* p_dyn_match); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& operator=(template_sel other_value); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& other_value); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& operator=(const OPTIONAL& other_value); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& other_value); +inline boolean match(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST valueof() const; +inline UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OCTETSTRING field_sCPTM__PacketCounterValue; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE(); + UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& other_value); + UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_sCPTM__PacketCounterValue); +inline UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OCTETSTRING& sCPTM__PacketCounterValue() + {return field_sCPTM__PacketCounterValue;} + inline const OCTETSTRING& sCPTM__PacketCounterValue() const + {return field_sCPTM__PacketCounterValue;} +Base_Type* clone() const { return new UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template : public Record_Template { +void set_specific(); +public: +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(): Record_Template() {} +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(template_sel other_value): Record_Template(other_value) {} +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& other_value): Record_Template() { copy_value(&other_value); } +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template* p_precondition, UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template* p_implied_template); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& operator=(template_sel other_value); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& other_value); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& operator=(const OPTIONAL& other_value); +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& operator=(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& other_value); +inline boolean match(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE valueof() const; +inline UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +OCTETSTRING_template& sCPTM__PacketCounterValue(); +const OCTETSTRING_template& sCPTM__PacketCounterValue() const; +Record_Template* create() const { return new UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_EPS_NAS_LoopBack_TypeDefs(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_EPS_NAS_LoopBack_TypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const LB__SetupDRB__IE__List__Type_template& right_template); +extern LB__SetupDRB__IE__List__Type_template operator+(template_sel left_template, const LB__SetupDRB__IE__List__Type& right_value); +extern LB__SetupDRB__IE__List__Type_template operator+(const LB__SetupDRB__IE__List__Type& left_value, template_sel right_template); +extern DiscMonitorList__Type_template operator+(template_sel left_template, const DiscMonitorList__Type_template& right_template); +extern DiscMonitorList__Type_template operator+(template_sel left_template, const DiscMonitorList__Type& right_value); +extern DiscMonitorList__Type_template operator+(const DiscMonitorList__Type& left_value, template_sel right_template); + +/* Global variable declarations */ + +extern const XERdescriptor_t UE__TestLoopModeB__LB__Setup__Type_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeB__LB__Setup__Type_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeB__LB__Setup__Type_descr_; +extern const XERdescriptor_t MBMS__PacketCounterValue__Type_xer_; +extern const TTCN_OERdescriptor_t MBMS__PacketCounterValue__Type_oer_; +extern const TTCN_Typedescriptor_t MBMS__PacketCounterValue__Type_descr_; +extern const XERdescriptor_t SCPTM__PacketCounterValue__Type_xer_; +extern const TTCN_OERdescriptor_t SCPTM__PacketCounterValue__Type_oer_; +extern const TTCN_Typedescriptor_t SCPTM__PacketCounterValue__Type_descr_; +extern const INTEGER& tsc__MAX__ModeA__LB__Entities; +extern INTEGER const_tsc__MAX__ModeA__LB__Entities; +extern const INTEGER& tsc__MAX__ModeD__Monitor__Entities; +extern INTEGER const_tsc__MAX__ModeD__Monitor__Entities; +extern const INTEGER& tsc__MAX__ModeE__Monitor__Entities; +extern INTEGER const_tsc__MAX__ModeE__Monitor__Entities; +extern const XERdescriptor_t CLOSE__UE__TEST__LOOP_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_skipIndicator_descr_; +extern const XERdescriptor_t CLOSE__UE__TEST__LOOP_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_protocolDiscriminator_descr_; +extern const XERdescriptor_t CLOSE__UE__TEST__LOOP_messageType_xer_; +extern const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_messageType_oer_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_messageType_descr_; +extern const XERdescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopMode_xer_; +extern const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopMode_oer_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopMode_descr_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_descr_; +extern const XERdescriptor_t UE__TestLoopModeA__LB__Setup__Type_iel_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeA__LB__Setup__Type_iel_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeA__LB__Setup__Type_iel_descr_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeA__LB__Setup__Type_descr_; +extern const TTCN_Typedescriptor_t LB__SetupDRB__IE__List__Type_descr_; +extern const XERdescriptor_t LB__SetupDRB__IE__Type_uplinkPdcpSduSize_xer_; +extern const TTCN_OERdescriptor_t LB__SetupDRB__IE__Type_uplinkPdcpSduSize_oer_; +extern const TTCN_Typedescriptor_t LB__SetupDRB__IE__Type_uplinkPdcpSduSize_descr_; +extern const XERdescriptor_t LB__SetupDRB__IE__Type_reserved_xer_; +extern const TTCN_OERdescriptor_t LB__SetupDRB__IE__Type_reserved_oer_; +extern const TTCN_Typedescriptor_t LB__SetupDRB__IE__Type_reserved_descr_; +extern const XERdescriptor_t LB__SetupDRB__IE__Type_drbIdentity_xer_; +extern const TTCN_OERdescriptor_t LB__SetupDRB__IE__Type_drbIdentity_oer_; +extern const TTCN_Typedescriptor_t LB__SetupDRB__IE__Type_drbIdentity_descr_; +extern const TTCN_Typedescriptor_t LB__SetupDRB__IE__Type_descr_; +extern const XERdescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_xer_; +extern const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_oer_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP_ueTestLoopModeB__LB__Setup_descr_; +extern const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_mBSFN__AreaId_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_mBSFN__AreaId_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_mBSFN__AreaId_descr_; +extern const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB1_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB1_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB1_descr_; +extern const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_pMCHIdentity_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_pMCHIdentity_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_pMCHIdentity_descr_; +extern const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB2_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB2_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_reservedB2_descr_; +extern const XERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_logChId_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeC__LB__Setup__Type_logChId_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_logChId_descr_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeC__LB__Setup__Type_descr_; +extern const XERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_discMonitorListLength_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_discMonitorListLength_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeD__LB__Setup__Type_discMonitorListLength_descr_; +extern const XERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_reserved_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_reserved_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeD__LB__Setup__Type_reserved_descr_; +extern const XERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_discAnnounceOrMonitor_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeD__LB__Setup__Type_discAnnounceOrMonitor_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeD__LB__Setup__Type_discAnnounceOrMonitor_descr_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeD__LB__Setup__Type_descr_; +extern const TTCN_Typedescriptor_t DiscMonitorList__Type_descr_; +extern const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A7_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A7_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A7_descr_; +extern const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A6_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A6_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A6_descr_; +extern const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A5_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A5_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A5_descr_; +extern const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A4_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A4_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A4_descr_; +extern const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A3_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A3_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A3_descr_; +extern const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A2_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A2_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A2_descr_; +extern const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A1_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A1_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A1_descr_; +extern const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A0_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A0_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A0_descr_; +extern const XERdescriptor_t DiscMonitor__Type_reserved_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_reserved_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_reserved_descr_; +extern const XERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A8_xer_; +extern const TTCN_OERdescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A8_oer_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_proSeAppCodeLSB__A8_descr_; +extern const TTCN_Typedescriptor_t DiscMonitor__Type_descr_; +extern const XERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_commMonitorListLength_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_commMonitorListLength_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_commMonitorListLength_descr_; +extern const XERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_reserved_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_reserved_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_reserved_descr_; +extern const XERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_commTransmitOrReceive_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_commTransmitOrReceive_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_commTransmitOrReceive_descr_; +extern const XERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_d2dOrV2x_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeE__LB__Setup__Type_d2dOrV2x_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_d2dOrV2x_descr_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeE__LB__Setup__Type_descr_; +extern const TTCN_Typedescriptor_t CommMonitorList__Type_descr_; +extern const XERdescriptor_t CommMonitor__Type_xer_; +extern const TTCN_OERdescriptor_t CommMonitor__Type_oer_; +extern const TTCN_Typedescriptor_t CommMonitor__Type_descr_; +extern const XERdescriptor_t CommMonitorList__Type_0_xer_; +extern const TTCN_OERdescriptor_t CommMonitorList__Type_0_oer_; +extern const TTCN_Typedescriptor_t CommMonitorList__Type_0_descr_; +extern const XERdescriptor_t UE__TestLoopModeF__LB__Setup__Type_sC__MTCH__ID_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeF__LB__Setup__Type_sC__MTCH__ID_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeF__LB__Setup__Type_sC__MTCH__ID_descr_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeF__LB__Setup__Type_descr_; +extern const XERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkLoopbackMode_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkLoopbackMode_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkLoopbackMode_descr_; +extern const XERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_repetitions_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_repetitions_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeGH__LB__Setup__Type_repetitions_descr_; +extern const XERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkDataDelay_xer_; +extern const TTCN_OERdescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkDataDelay_oer_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeGH__LB__Setup__Type_uplinkDataDelay_descr_; +extern const TTCN_Typedescriptor_t UE__TestLoopModeGH__LB__Setup__Type_descr_; +extern const XERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_skipIndicator_descr_; +extern const XERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t CLOSE__UE__TEST__LOOP__COMPLETE_descr_; +extern const XERdescriptor_t OPEN__UE__TEST__LOOP_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP_skipIndicator_descr_; +extern const XERdescriptor_t OPEN__UE__TEST__LOOP_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP_protocolDiscriminator_descr_; +extern const XERdescriptor_t OPEN__UE__TEST__LOOP_messageType_xer_; +extern const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP_messageType_oer_; +extern const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP_messageType_descr_; +extern const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP_descr_; +extern const XERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_skipIndicator_descr_; +extern const XERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t OPEN__UE__TEST__LOOP__COMPLETE_descr_; +extern const XERdescriptor_t ACTIVATE__TEST__MODE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_skipIndicator_descr_; +extern const XERdescriptor_t ACTIVATE__TEST__MODE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_protocolDiscriminator_descr_; +extern const XERdescriptor_t ACTIVATE__TEST__MODE_messageType_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE_messageType_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_messageType_descr_; +extern const XERdescriptor_t ACTIVATE__TEST__MODE_ueTestLoopMode_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE_ueTestLoopMode_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_ueTestLoopMode_descr_; +extern const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE_descr_; +extern const XERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE__COMPLETE_skipIndicator_descr_; +extern const XERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__TEST__MODE__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t ACTIVATE__TEST__MODE__COMPLETE_descr_; +extern const XERdescriptor_t DEACTIVATE__TEST__MODE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE_skipIndicator_descr_; +extern const XERdescriptor_t DEACTIVATE__TEST__MODE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE_protocolDiscriminator_descr_; +extern const XERdescriptor_t DEACTIVATE__TEST__MODE_messageType_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE_messageType_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE_messageType_descr_; +extern const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE_descr_; +extern const XERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_skipIndicator_descr_; +extern const XERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t DEACTIVATE__TEST__MODE__COMPLETE_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_skipIndicator_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERREQUEST_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_skipIndicator_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_messageType_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_MBMS__PacketCounterValue_descr_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEC__MBMS__PACKETCOUNTERRESPONSE_descr_; +extern const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_skipIndicator_descr_; +extern const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERREQUEST_descr_; +extern const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_skipIndicator_descr_; +extern const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t UE__TESTLOOP__PROSE__PACKETCOUNTERRESPONSE_descr_; +extern const XERdescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterValueType_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterValueType_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterValueType_descr_; +extern const XERdescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterListLength_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterListLength_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterValue__Type_proSeDirectDiscPacketCounterListLength_descr_; +extern const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterList__Type_descr_; +extern const XERdescriptor_t ProSeDirectDiscPacketCounterList__Type_0_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectDiscPacketCounterList__Type_0_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterList__Type_0_descr_; +extern const TTCN_Typedescriptor_t ProSeDirectDiscPacketCounterValue__Type_descr_; +extern const XERdescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterValueType_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterValueType_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterValueType_descr_; +extern const XERdescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterListLength_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterListLength_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_proSeDirectCommPSCCH__PacketCounterListLength_descr_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterList__Type_descr_; +extern const XERdescriptor_t ProSeDirectCommPSCCH__PacketCounterList__Type_0_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectCommPSCCH__PacketCounterList__Type_0_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterList__Type_0_descr_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSCCH__PacketCounterValue__Type_descr_; +extern const XERdescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueType_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueType_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueType_descr_; +extern const XERdescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueLength_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueLength_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_proSeDirectCommSTCH__PacketCounterValueLength_descr_; +extern const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterList__Type_descr_; +extern const XERdescriptor_t ProSeDirectCommSTCH__PacketCounterList__Type_0_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectCommSTCH__PacketCounterList__Type_0_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterList__Type_0_descr_; +extern const TTCN_Typedescriptor_t ProSeDirectCommSTCH__PacketCounterValue__Type_descr_; +extern const XERdescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterValueType_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterValueType_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterValueType_descr_; +extern const XERdescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterListLength_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterListLength_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_proSeDirectCommPSSCH__PacketCounterListLength_descr_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterList__Type_descr_; +extern const XERdescriptor_t ProSeDirectCommPSSCH__PacketCounterList__Type_0_xer_; +extern const TTCN_OERdescriptor_t ProSeDirectCommPSSCH__PacketCounterList__Type_0_oer_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterList__Type_0_descr_; +extern const TTCN_Typedescriptor_t ProSeDirectCommPSSCH__PacketCounterValue__Type_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_skipIndicator_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERREQUEST_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_skipIndicator_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_messageType_descr_; +extern const XERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_xer_; +extern const TTCN_OERdescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_oer_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_sCPTM__PacketCounterValue_descr_; +extern const TTCN_Typedescriptor_t UE__TESTLOOPMODEF__SCPTM__PACKETCOUNTERRESPONSE_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/EPS_NAS_LoopBack_TypeDefs.o b/build/Ats_NG_NAS/EPS_NAS_LoopBack_TypeDefs.o new file mode 100644 index 0000000000000000000000000000000000000000..1b5cf05bff6853cf6e2711be47be259b9e10cd99 Binary files /dev/null and b/build/Ats_NG_NAS/EPS_NAS_LoopBack_TypeDefs.o differ diff --git a/build/Ats_NG_NAS/EPS_NAS_TypeDefs.cc b/build/Ats_NG_NAS/EPS_NAS_TypeDefs.cc new file mode 100644 index 0000000000000000000000000000000000000000..71035c88fef17adafba02a2447a53336edde32ae --- /dev/null +++ b/build/Ats_NG_NAS/EPS_NAS_TypeDefs.cc @@ -0,0 +1,25442 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "EPS_NAS_TypeDefs.hh" + +namespace EPS__NAS__TypeDefs { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0x0c, 0x8a, 0x4e, 0x9d, 0xc8, 0xe3, 0x94, 0x56, 0x7f, 0x0c, 0xa3, 0x0a, 0x86, 0x8e, 0x17, 0x70 }; + +/* Global variable definitions */ + +const XERdescriptor_t EPS__BearerIdentity_xer_ = { {"EPS_BearerIdentity>\n", "EPS_BearerIdentity>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t EPS__BearerIdentity_descr_ = { "@EPS_NAS_TypeDefs.EPS_BearerIdentity", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &EPS__BearerIdentity_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__Message_xer_ = { {"NAS_Message>\n", "NAS_Message>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__Message_oer_ext_arr_[0] = {}; +const int NAS__Message_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__Message_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NAS__Message_oer_ext_arr_, 0, NAS__Message_oer_p_}; +const TTCN_Typedescriptor_t NAS__Message_descr_ = { "@EPS_NAS_TypeDefs.NAS_Message", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NAS__Message_xer_, &OCTETSTRING_json_, &NAS__Message_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__MmeGi_xer_ = { {"EPS_MmeGi>\n", "EPS_MmeGi>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__MmeGi_oer_ext_arr_[0] = {}; +const int EPS__MmeGi_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__MmeGi_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EPS__MmeGi_oer_ext_arr_, 0, EPS__MmeGi_oer_p_}; +const TTCN_Typedescriptor_t EPS__MmeGi_descr_ = { "@EPS_NAS_TypeDefs.EPS_MmeGi", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EPS__MmeGi_xer_, &OCTETSTRING_json_, &EPS__MmeGi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__Mmec_xer_ = { {"EPS_Mmec>\n", "EPS_Mmec>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__Mmec_oer_ext_arr_[0] = {}; +const int EPS__Mmec_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__Mmec_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__Mmec_oer_ext_arr_, 0, EPS__Mmec_oer_p_}; +const TTCN_Typedescriptor_t EPS__Mmec_descr_ = { "@EPS_NAS_TypeDefs.EPS_Mmec", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__Mmec_xer_, &OCTETSTRING_json_, &EPS__Mmec_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__M__Tmsi_xer_ = { {"EPS_M_Tmsi>\n", "EPS_M_Tmsi>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__M__Tmsi_oer_ext_arr_[0] = {}; +const int EPS__M__Tmsi_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__M__Tmsi_oer_ = { -1, TRUE, 4, FALSE, 0, 0, EPS__M__Tmsi_oer_ext_arr_, 0, EPS__M__Tmsi_oer_p_}; +const TTCN_Typedescriptor_t EPS__M__Tmsi_descr_ = { "@EPS_NAS_TypeDefs.EPS_M_Tmsi", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &EPS__M__Tmsi_xer_, &OCTETSTRING_json_, &EPS__M__Tmsi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__S__Tmsi_xer_ = { {"EPS_S_Tmsi>\n", "EPS_S_Tmsi>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__S__Tmsi_oer_ext_arr_[0] = {}; +const int EPS__S__Tmsi_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__S__Tmsi_oer_ = { -1, TRUE, 5, FALSE, 0, 0, EPS__S__Tmsi_oer_ext_arr_, 0, EPS__S__Tmsi_oer_p_}; +const TTCN_Typedescriptor_t EPS__S__Tmsi_descr_ = { "@EPS_NAS_TypeDefs.EPS_S_Tmsi", &OCTETSTRING_ber_, &CommonDefs::O5__Type_raw_, &OCTETSTRING_text_, &EPS__S__Tmsi_xer_, &OCTETSTRING_json_, &EPS__S__Tmsi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__PartialTaiListType_xer_ = { {"EPS_PartialTaiListType>\n", "EPS_PartialTaiListType>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__PartialTaiListType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__PartialTaiListType_descr_ = { "@EPS_NAS_TypeDefs.EPS_PartialTaiListType", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &EPS__PartialTaiListType_xer_, &BITSTRING_json_, &EPS__PartialTaiListType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__ServiceTypeValue_xer_ = { {"EPS_ServiceTypeValue>\n", "EPS_ServiceTypeValue>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__ServiceTypeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__ServiceTypeValue_descr_ = { "@EPS_NAS_TypeDefs.EPS_ServiceTypeValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &EPS__ServiceTypeValue_xer_, &BITSTRING_json_, &EPS__ServiceTypeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__UpdateTypeValue_xer_ = { {"EPS_UpdateTypeValue>\n", "EPS_UpdateTypeValue>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__UpdateTypeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__UpdateTypeValue_descr_ = { "@EPS_NAS_TypeDefs.EPS_UpdateTypeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &EPS__UpdateTypeValue_xer_, &BITSTRING_json_, &EPS__UpdateTypeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__Tac_xer_ = { {"NAS_Tac>\n", "NAS_Tac>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__Tac_oer_ext_arr_[0] = {}; +const int NAS__Tac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__Tac_oer_ = { -1, TRUE, 2, FALSE, 0, 0, NAS__Tac_oer_ext_arr_, 0, NAS__Tac_oer_p_}; +const TTCN_Typedescriptor_t NAS__Tac_descr_ = { "@EPS_NAS_TypeDefs.NAS_Tac", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &NAS__Tac_xer_, &OCTETSTRING_json_, &NAS__Tac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrackingAreaId_plmnId_xer_ = { {"plmnId>\n", "plmnId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TrackingAreaId_plmnId_oer_ext_arr_[0] = {}; +const int TrackingAreaId_plmnId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TrackingAreaId_plmnId_oer_ = { -1, TRUE, 3, FALSE, 0, 0, TrackingAreaId_plmnId_oer_ext_arr_, 0, TrackingAreaId_plmnId_oer_p_}; +const TTCN_Typedescriptor_t TrackingAreaId_plmnId_descr_ = { "@EPS_NAS_TypeDefs.TrackingAreaId.plmnId", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &TrackingAreaId_plmnId_xer_, &OCTETSTRING_json_, &TrackingAreaId_plmnId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrackingAreaId_tac_xer_ = { {"tac>\n", "tac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TrackingAreaId_tac_oer_ext_arr_[0] = {}; +const int TrackingAreaId_tac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TrackingAreaId_tac_oer_ = { -1, TRUE, 2, FALSE, 0, 0, TrackingAreaId_tac_oer_ext_arr_, 0, TrackingAreaId_tac_oer_p_}; +const TTCN_Typedescriptor_t TrackingAreaId_tac_descr_ = { "@EPS_NAS_TypeDefs.TrackingAreaId.tac", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &TrackingAreaId_tac_xer_, &OCTETSTRING_json_, &TrackingAreaId_tac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TrackingAreaId +const TTCN_Typedescriptor_t TrackingAreaId_descr_ = { "@EPS_NAS_TypeDefs.TrackingAreaId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrackingAreaId_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TrackingAreaId_iei_oer_ext_arr_[0] = {}; +const int TrackingAreaId_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TrackingAreaId_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TrackingAreaId_iei_oer_ext_arr_, 0, TrackingAreaId_iei_oer_p_}; +const TTCN_Typedescriptor_t TrackingAreaId_iei_descr_ = { "@EPS_NAS_TypeDefs.TrackingAreaId.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TrackingAreaId_iei_xer_, &OCTETSTRING_json_, &TrackingAreaId_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NAS__TacList +const TTCN_Typedescriptor_t NAS__TacList_descr_ = { "@EPS_NAS_TypeDefs.NAS_TacList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NAS__Tac_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__TacList_0_xer_ = { {"NAS_Tac>\n", "NAS_Tac>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__TacList_0_oer_ext_arr_[0] = {}; +const int NAS__TacList_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__TacList_0_oer_ = { -1, TRUE, 2, FALSE, 0, 0, NAS__TacList_0_oer_ext_arr_, 0, NAS__TacList_0_oer_p_}; +const TTCN_Typedescriptor_t NAS__TacList_0_descr_ = { "@EPS_NAS_TypeDefs.NAS_TacList.", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &NAS__TacList_0_xer_, &OCTETSTRING_json_, &NAS__TacList_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PartialTai_plmnId_xer_ = { {"plmnId>\n", "plmnId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PartialTai_plmnId_oer_ext_arr_[0] = {}; +const int PartialTai_plmnId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PartialTai_plmnId_oer_ = { -1, TRUE, 3, FALSE, 0, 0, PartialTai_plmnId_oer_ext_arr_, 0, PartialTai_plmnId_oer_p_}; +const TTCN_Typedescriptor_t PartialTai_plmnId_descr_ = { "@EPS_NAS_TypeDefs.PartialTai.plmnId", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &PartialTai_plmnId_xer_, &OCTETSTRING_json_, &PartialTai_plmnId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PartialTai_tac_xer_ = { {"tac>\n", "tac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PartialTai_tac_oer_ext_arr_[0] = {}; +const int PartialTai_tac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PartialTai_tac_oer_ = { -1, TRUE, 2, FALSE, 0, 0, PartialTai_tac_oer_ext_arr_, 0, PartialTai_tac_oer_p_}; +const TTCN_Typedescriptor_t PartialTai_tac_descr_ = { "@EPS_NAS_TypeDefs.PartialTai.tac", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &PartialTai_tac_xer_, &OCTETSTRING_json_, &PartialTai_tac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PartialTai +const TTCN_Typedescriptor_t PartialTai_descr_ = { "@EPS_NAS_TypeDefs.PartialTai", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Type0Element_plmnId_xer_ = { {"plmnId>\n", "plmnId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Type0Element_plmnId_oer_ext_arr_[0] = {}; +const int Type0Element_plmnId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Type0Element_plmnId_oer_ = { -1, TRUE, 3, FALSE, 0, 0, Type0Element_plmnId_oer_ext_arr_, 0, Type0Element_plmnId_oer_p_}; +const TTCN_Typedescriptor_t Type0Element_plmnId_descr_ = { "@EPS_NAS_TypeDefs.Type0Element.plmnId", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &Type0Element_plmnId_xer_, &OCTETSTRING_json_, &Type0Element_plmnId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Type0Element +const TTCN_Typedescriptor_t Type0Element_descr_ = { "@EPS_NAS_TypeDefs.Type0Element", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Type1Element +const TTCN_Typedescriptor_t Type1Element_descr_ = { "@EPS_NAS_TypeDefs.Type1Element", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PlmnAndTacs +const TTCN_Typedescriptor_t PlmnAndTacs_descr_ = { "@EPS_NAS_TypeDefs.PlmnAndTacs", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &PartialTai_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Type2Element +const TTCN_Typedescriptor_t Type2Element_descr_ = { "@EPS_NAS_TypeDefs.Type2Element", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Type0List +const TTCN_Typedescriptor_t Type0List_descr_ = { "@EPS_NAS_TypeDefs.Type0List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &Type0Element_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Type1List +const TTCN_Typedescriptor_t Type1List_descr_ = { "@EPS_NAS_TypeDefs.Type1List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &Type1Element_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Type2List +const TTCN_Typedescriptor_t Type2List_descr_ = { "@EPS_NAS_TypeDefs.Type2List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &Type2Element_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PartialTaiType +const TTCN_Typedescriptor_t PartialTaiType_descr_ = { "@EPS_NAS_TypeDefs.PartialTaiType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ListOfPartialTaiList_spareBit_xer_ = { {"spareBit>\n", "spareBit>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ListOfPartialTaiList_spareBit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ListOfPartialTaiList_spareBit_descr_ = { "@EPS_NAS_TypeDefs.ListOfPartialTaiList.spareBit", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ListOfPartialTaiList_spareBit_xer_, &BITSTRING_json_, &ListOfPartialTaiList_spareBit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ListOfPartialTaiList_typeOfList_xer_ = { {"typeOfList>\n", "typeOfList>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ListOfPartialTaiList_typeOfList_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ListOfPartialTaiList_typeOfList_descr_ = { "@EPS_NAS_TypeDefs.ListOfPartialTaiList.typeOfList", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &ListOfPartialTaiList_typeOfList_xer_, &BITSTRING_json_, &ListOfPartialTaiList_typeOfList_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ListOfPartialTaiList_numberOfElements_xer_ = { {"numberOfElements>\n", "numberOfElements>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ListOfPartialTaiList_numberOfElements_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ListOfPartialTaiList_numberOfElements_descr_ = { "@EPS_NAS_TypeDefs.ListOfPartialTaiList.numberOfElements", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &ListOfPartialTaiList_numberOfElements_xer_, &BITSTRING_json_, &ListOfPartialTaiList_numberOfElements_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ListOfPartialTaiList +const TTCN_Typedescriptor_t ListOfPartialTaiList_descr_ = { "@EPS_NAS_TypeDefs.ListOfPartialTaiList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrackingAreaIdList_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TrackingAreaIdList_iel_oer_ext_arr_[0] = {}; +const int TrackingAreaIdList_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TrackingAreaIdList_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TrackingAreaIdList_iel_oer_ext_arr_, 0, TrackingAreaIdList_iel_oer_p_}; +const TTCN_Typedescriptor_t TrackingAreaIdList_iel_descr_ = { "@EPS_NAS_TypeDefs.TrackingAreaIdList.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TrackingAreaIdList_iel_xer_, &OCTETSTRING_json_, &TrackingAreaIdList_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TrackingAreaIdList_listOfPartialTais +const TTCN_Typedescriptor_t TrackingAreaIdList_listOfPartialTais_descr_ = { "@EPS_NAS_TypeDefs.TrackingAreaIdList.listOfPartialTais", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &ListOfPartialTaiList_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TrackingAreaIdList +const TTCN_Typedescriptor_t TrackingAreaIdList_descr_ = { "@EPS_NAS_TypeDefs.TrackingAreaIdList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrackingAreaIdList_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TrackingAreaIdList_iei_oer_ext_arr_[0] = {}; +const int TrackingAreaIdList_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TrackingAreaIdList_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TrackingAreaIdList_iei_oer_ext_arr_, 0, TrackingAreaIdList_iei_oer_p_}; +const TTCN_Typedescriptor_t TrackingAreaIdList_iei_descr_ = { "@EPS_NAS_TypeDefs.TrackingAreaIdList.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TrackingAreaIdList_iei_xer_, &OCTETSTRING_json_, &TrackingAreaIdList_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__ACCEPT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__ACCEPT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__ACCEPT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_ACCEPT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ATTACH__ACCEPT_securityHeaderType_xer_, &BITSTRING_json_, &ATTACH__ACCEPT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__ACCEPT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ATTACH__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &ATTACH__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__ACCEPT_messageType_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ATTACH__ACCEPT_messageType_xer_, &BITSTRING_json_, &ATTACH__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__ACCEPT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ATTACH__ACCEPT_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_ACCEPT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ATTACH__ACCEPT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__AttachResult_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__AttachResult_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__AttachResult_spare_descr_ = { "@EPS_NAS_TypeDefs.EPS_AttachResult.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__AttachResult_spare_xer_, &BITSTRING_json_, &EPS__AttachResult_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__AttachResult_resultValue_xer_ = { {"resultValue>\n", "resultValue>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__AttachResult_resultValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__AttachResult_resultValue_descr_ = { "@EPS_NAS_TypeDefs.EPS_AttachResult.resultValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &EPS__AttachResult_resultValue_xer_, &BITSTRING_json_, &EPS__AttachResult_resultValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__AttachResult +const TTCN_Typedescriptor_t EPS__AttachResult_descr_ = { "@EPS_NAS_TypeDefs.EPS_AttachResult", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__MessageContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ESM__MessageContainer_iel_oer_ext_arr_[0] = {}; +const int ESM__MessageContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ESM__MessageContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ESM__MessageContainer_iel_oer_ext_arr_, 0, ESM__MessageContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t ESM__MessageContainer_iel_descr_ = { "@EPS_NAS_TypeDefs.ESM_MessageContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ESM__MessageContainer_iel_xer_, &OCTETSTRING_json_, &ESM__MessageContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__MessageContainer_esmPdu_xer_ = { {"esmPdu>\n", "esmPdu>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ESM__MessageContainer_esmPdu_oer_ext_arr_[0] = {}; +const int ESM__MessageContainer_esmPdu_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ESM__MessageContainer_esmPdu_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ESM__MessageContainer_esmPdu_oer_ext_arr_, 0, ESM__MessageContainer_esmPdu_oer_p_}; +const TTCN_Typedescriptor_t ESM__MessageContainer_esmPdu_descr_ = { "@EPS_NAS_TypeDefs.ESM_MessageContainer.esmPdu", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ESM__MessageContainer_esmPdu_xer_, &OCTETSTRING_json_, &ESM__MessageContainer_esmPdu_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ESM__MessageContainer +const TTCN_Typedescriptor_t ESM__MessageContainer_descr_ = { "@EPS_NAS_TypeDefs.ESM_MessageContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__MessageContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ESM__MessageContainer_iei_oer_ext_arr_[0] = {}; +const int ESM__MessageContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ESM__MessageContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ESM__MessageContainer_iei_oer_ext_arr_, 0, ESM__MessageContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t ESM__MessageContainer_iei_descr_ = { "@EPS_NAS_TypeDefs.ESM_MessageContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ESM__MessageContainer_iei_xer_, &OCTETSTRING_json_, &ESM__MessageContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ATTACH__ACCEPT +const TTCN_Typedescriptor_t ATTACH__ACCEPT_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EMM__Cause_causeValue_xer_ = { {"causeValue>\n", "causeValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EMM__Cause_causeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EMM__Cause_causeValue_descr_ = { "@EPS_NAS_TypeDefs.EMM_Cause.causeValue", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EMM__Cause_causeValue_xer_, &BITSTRING_json_, &EMM__Cause_causeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EMM__Cause +const TTCN_Typedescriptor_t EMM__Cause_descr_ = { "@EPS_NAS_TypeDefs.EMM_Cause", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EMM__Cause_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EMM__Cause_iei_oer_ext_arr_[0] = {}; +const int EMM__Cause_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EMM__Cause_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EMM__Cause_iei_oer_ext_arr_, 0, EMM__Cause_iei_oer_p_}; +const TTCN_Typedescriptor_t EMM__Cause_iei_descr_ = { "@EPS_NAS_TypeDefs.EMM_Cause.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EMM__Cause_iei_xer_, &OCTETSTRING_json_, &EMM__Cause_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_cp__CIOT_xer_ = { {"cp_CIOT>\n", "cp_CIOT>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_cp__CIOT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_cp__CIOT_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.cp_CIOT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_cp__CIOT_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_cp__CIOT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_emmRegistered__withoutPDN_xer_ = { {"emmRegistered_withoutPDN>\n", "emmRegistered_withoutPDN>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_emmRegistered__withoutPDN_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_emmRegistered__withoutPDN_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.emmRegistered_withoutPDN", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_emmRegistered__withoutPDN_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_emmRegistered__withoutPDN_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_esrps_xer_ = { {"esrps>\n", "esrps>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_esrps_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_esrps_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.esrps", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_esrps_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_esrps_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_csLCS_xer_ = { {"csLCS>\n", "csLCS>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_csLCS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_csLCS_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.csLCS", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &EPS__NetworkFeatureSupport_csLCS_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_csLCS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_epcLCS_xer_ = { {"epcLCS>\n", "epcLCS>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_epcLCS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_epcLCS_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.epcLCS", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_epcLCS_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_epcLCS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_emcBS_xer_ = { {"emcBS>\n", "emcBS>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_emcBS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_emcBS_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.emcBS", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_emcBS_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_emcBS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_imsVoPS_xer_ = { {"imsVoPS>\n", "imsVoPS>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_imsVoPS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_imsVoPS_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.imsVoPS", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_imsVoPS_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_imsVoPS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__NetworkFeatureSupport +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__NetworkFeatureSupport_iei_oer_ext_arr_[0] = {}; +const int EPS__NetworkFeatureSupport_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__NetworkFeatureSupport_iei_oer_ext_arr_, 0, EPS__NetworkFeatureSupport_iei_oer_p_}; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_iei_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__NetworkFeatureSupport_iei_xer_, &OCTETSTRING_json_, &EPS__NetworkFeatureSupport_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__NetworkFeatureSupport_iel_oer_ext_arr_[0] = {}; +const int EPS__NetworkFeatureSupport_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__NetworkFeatureSupport_iel_oer_ext_arr_, 0, EPS__NetworkFeatureSupport_iel_oer_p_}; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_iel_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__NetworkFeatureSupport_iel_xer_, &OCTETSTRING_json_, &EPS__NetworkFeatureSupport_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_bearers15_xer_ = { {"bearers15>\n", "bearers15>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_bearers15_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_bearers15_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.bearers15", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_bearers15_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_bearers15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_iwkN26_xer_ = { {"iwkN26>\n", "iwkN26>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_iwkN26_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_iwkN26_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.iwkN26", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_iwkN26_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_iwkN26_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_restrictDCNR_xer_ = { {"restrictDCNR>\n", "restrictDCNR>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_restrictDCNR_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_restrictDCNR_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.restrictDCNR", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_restrictDCNR_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_restrictDCNR_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_restrictEC_xer_ = { {"restrictEC>\n", "restrictEC>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_restrictEC_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_restrictEC_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.restrictEC", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_restrictEC_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_restrictEC_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_extdPCO_xer_ = { {"extdPCO>\n", "extdPCO>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_extdPCO_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_extdPCO_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.extdPCO", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_extdPCO_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_extdPCO_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_headerComp__CP__CIOT_xer_ = { {"headerComp_CP_CIOT>\n", "headerComp_CP_CIOT>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_headerComp__CP__CIOT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_headerComp__CP__CIOT_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.headerComp_CP_CIOT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_headerComp__CP__CIOT_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_headerComp__CP__CIOT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_s1__U__data_xer_ = { {"s1_U_data>\n", "s1_U_data>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_s1__U__data_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_s1__U__data_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.s1_U_data", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_s1__U__data_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_s1__U__data_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_up__CIOT_xer_ = { {"up_CIOT>\n", "up_CIOT>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_up__CIOT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_up__CIOT_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.up_CIOT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_up__CIOT_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_up__CIOT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_spare_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &EPS__NetworkFeatureSupport_spare_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_ptcc_xer_ = { {"ptcc>\n", "ptcc>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_ptcc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_ptcc_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.ptcc", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_ptcc_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_ptcc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_pr_xer_ = { {"pr>\n", "pr>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_pr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_pr_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.pr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_pr_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_pr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_rpr_xer_ = { {"rpr>\n", "rpr>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_rpr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_rpr_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.rpr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_rpr_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_rpr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_piv_xer_ = { {"piv>\n", "piv>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_piv_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_piv_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.piv", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_piv_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_piv_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__NetworkFeatureSupport_ncr_xer_ = { {"ncr>\n", "ncr>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_ncr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_ncr_descr_ = { "@EPS_NAS_TypeDefs.EPS_NetworkFeatureSupport.ncr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__NetworkFeatureSupport_ncr_xer_, &BITSTRING_json_, &EPS__NetworkFeatureSupport_ncr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalUpdateResult_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AdditionalUpdateResult_iei_descr_ = { "@EPS_NAS_TypeDefs.AdditionalUpdateResult.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &AdditionalUpdateResult_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalUpdateResult_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalUpdateResult_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalUpdateResult_spareBits_descr_ = { "@EPS_NAS_TypeDefs.AdditionalUpdateResult.spareBits", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &AdditionalUpdateResult_spareBits_xer_, &BITSTRING_json_, &AdditionalUpdateResult_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalUpdateResult_addUpdateResultValue_xer_ = { {"addUpdateResultValue>\n", "addUpdateResultValue>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalUpdateResult_addUpdateResultValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalUpdateResult_addUpdateResultValue_descr_ = { "@EPS_NAS_TypeDefs.AdditionalUpdateResult.addUpdateResultValue", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &AdditionalUpdateResult_addUpdateResultValue_xer_, &BITSTRING_json_, &AdditionalUpdateResult_addUpdateResultValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AdditionalUpdateResult +const TTCN_Typedescriptor_t AdditionalUpdateResult_descr_ = { "@EPS_NAS_TypeDefs.AdditionalUpdateResult", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SMSServicesStatus_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t SMSServicesStatus_iei_descr_ = { "@EPS_NAS_TypeDefs.SMSServicesStatus.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &SMSServicesStatus_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SMSServicesStatus_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SMSServicesStatus_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SMSServicesStatus_spare_descr_ = { "@EPS_NAS_TypeDefs.SMSServicesStatus.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SMSServicesStatus_spare_xer_, &BITSTRING_json_, &SMSServicesStatus_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SMSServicesStatus_smsServicesStatusValue_xer_ = { {"smsServicesStatusValue>\n", "smsServicesStatusValue>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SMSServicesStatus_smsServicesStatusValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SMSServicesStatus_smsServicesStatusValue_descr_ = { "@EPS_NAS_TypeDefs.SMSServicesStatus.smsServicesStatusValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &SMSServicesStatus_smsServicesStatusValue_xer_, &BITSTRING_json_, &SMSServicesStatus_smsServicesStatusValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SMSServicesStatus +const TTCN_Typedescriptor_t SMSServicesStatus_descr_ = { "@EPS_NAS_TypeDefs.SMSServicesStatus", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkPolicy_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NetworkPolicy_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NetworkPolicy_spare_descr_ = { "@EPS_NAS_TypeDefs.NetworkPolicy.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NetworkPolicy_spare_xer_, &BITSTRING_json_, &NetworkPolicy_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkPolicy_redirPolicy_xer_ = { {"redirPolicy>\n", "redirPolicy>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NetworkPolicy_redirPolicy_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NetworkPolicy_redirPolicy_descr_ = { "@EPS_NAS_TypeDefs.NetworkPolicy.redirPolicy", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NetworkPolicy_redirPolicy_xer_, &BITSTRING_json_, &NetworkPolicy_redirPolicy_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NetworkPolicy +const TTCN_Typedescriptor_t NetworkPolicy_descr_ = { "@EPS_NAS_TypeDefs.NetworkPolicy", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkPolicy_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NetworkPolicy_iei_descr_ = { "@EPS_NAS_TypeDefs.NetworkPolicy.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NetworkPolicy_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKeyData_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CipheringKeyData_iel_oer_ext_arr_[0] = {}; +const int CipheringKeyData_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CipheringKeyData_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, CipheringKeyData_iel_oer_ext_arr_, 0, CipheringKeyData_iel_oer_p_}; +const TTCN_Typedescriptor_t CipheringKeyData_iel_descr_ = { "@EPS_NAS_TypeDefs.CipheringKeyData.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &CipheringKeyData_iel_xer_, &OCTETSTRING_json_, &CipheringKeyData_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CipheringKeyData_cipherKey +const TTCN_Typedescriptor_t CipheringKeyData_cipherKey_descr_ = { "@EPS_NAS_TypeDefs.CipheringKeyData.cipherKey", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CipheringKey_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CipheringKey_id_oer_ext_arr_[0] = {}; +const int CipheringKey_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CipheringKey_id_oer_ = { -1, TRUE, 2, FALSE, 0, 0, CipheringKey_id_oer_ext_arr_, 0, CipheringKey_id_oer_p_}; +const TTCN_Typedescriptor_t CipheringKey_id_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.id", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &CipheringKey_id_xer_, &OCTETSTRING_json_, &CipheringKey_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_key_xer_ = { {"key>\n", "key>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CipheringKey_key_oer_ext_arr_[0] = {}; +const int CipheringKey_key_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CipheringKey_key_oer_ = { -1, TRUE, 16, FALSE, 0, 0, CipheringKey_key_oer_ext_arr_, 0, CipheringKey_key_oer_p_}; +const TTCN_Typedescriptor_t CipheringKey_key_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.key", &OCTETSTRING_ber_, &CommonDefs::O16__Type_raw_, &OCTETSTRING_text_, &CipheringKey_key_xer_, &OCTETSTRING_json_, &CipheringKey_key_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CipheringKey_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CipheringKey_spare_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &CipheringKey_spare_xer_, &BITSTRING_json_, &CipheringKey_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_c0Length_xer_ = { {"c0Length>\n", "c0Length>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CipheringKey_c0Length_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CipheringKey_c0Length_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.c0Length", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &CipheringKey_c0Length_xer_, &BITSTRING_json_, &CipheringKey_c0Length_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_c0_xer_ = { {"c0>\n", "c0>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CipheringKey_c0_oer_ext_arr_[0] = {}; +const int CipheringKey_c0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CipheringKey_c0_oer_ = { -1, TRUE, -1, FALSE, 0, 0, CipheringKey_c0_oer_ext_arr_, 0, CipheringKey_c0_oer_p_}; +const TTCN_Typedescriptor_t CipheringKey_c0_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.c0", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &CipheringKey_c0_xer_, &OCTETSTRING_json_, &CipheringKey_c0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_posSIBType1__1to2__1_xer_ = { {"posSIBType1_1to2_1>\n", "posSIBType1_1to2_1>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CipheringKey_posSIBType1__1to2__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CipheringKey_posSIBType1__1to2__1_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.posSIBType1_1to2_1", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CipheringKey_posSIBType1__1to2__1_xer_, &BITSTRING_json_, &CipheringKey_posSIBType1__1to2__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_posSIBType2__2to9_xer_ = { {"posSIBType2_2to9>\n", "posSIBType2_2to9>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CipheringKey_posSIBType2__2to9_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CipheringKey_posSIBType2__2to9_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.posSIBType2_2to9", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CipheringKey_posSIBType2__2to9_xer_, &BITSTRING_json_, &CipheringKey_posSIBType2__2to9_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_posSIBType2__10to17_xer_ = { {"posSIBType2_10to17>\n", "posSIBType2_10to17>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CipheringKey_posSIBType2__10to17_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CipheringKey_posSIBType2__10to17_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.posSIBType2_10to17", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CipheringKey_posSIBType2__10to17_xer_, &BITSTRING_json_, &CipheringKey_posSIBType2__10to17_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_posSIBType2__18to3__1_xer_ = { {"posSIBType2_18to3_1>\n", "posSIBType2_18to3_1>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CipheringKey_posSIBType2__18to3__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CipheringKey_posSIBType2__18to3__1_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.posSIBType2_18to3_1", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CipheringKey_posSIBType2__18to3__1_xer_, &BITSTRING_json_, &CipheringKey_posSIBType2__18to3__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_validityStartTime_xer_ = { {"validityStartTime>\n", "validityStartTime>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CipheringKey_validityStartTime_oer_ext_arr_[0] = {}; +const int CipheringKey_validityStartTime_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CipheringKey_validityStartTime_oer_ = { -1, TRUE, 5, FALSE, 0, 0, CipheringKey_validityStartTime_oer_ext_arr_, 0, CipheringKey_validityStartTime_oer_p_}; +const TTCN_Typedescriptor_t CipheringKey_validityStartTime_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.validityStartTime", &OCTETSTRING_ber_, &CommonDefs::O5__Type_raw_, &OCTETSTRING_text_, &CipheringKey_validityStartTime_xer_, &OCTETSTRING_json_, &CipheringKey_validityStartTime_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKey_validityDuration_xer_ = { {"validityDuration>\n", "validityDuration>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CipheringKey_validityDuration_oer_ext_arr_[0] = {}; +const int CipheringKey_validityDuration_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CipheringKey_validityDuration_oer_ = { -1, TRUE, 2, FALSE, 0, 0, CipheringKey_validityDuration_oer_ext_arr_, 0, CipheringKey_validityDuration_oer_p_}; +const TTCN_Typedescriptor_t CipheringKey_validityDuration_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey.validityDuration", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &CipheringKey_validityDuration_xer_, &OCTETSTRING_json_, &CipheringKey_validityDuration_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CipheringKey +const TTCN_Typedescriptor_t CipheringKey_descr_ = { "@EPS_NAS_TypeDefs.CipheringKey", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CipheringKeyData +const TTCN_Typedescriptor_t CipheringKeyData_descr_ = { "@EPS_NAS_TypeDefs.CipheringKeyData", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CipheringKeyData_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CipheringKeyData_iei_oer_ext_arr_[0] = {}; +const int CipheringKeyData_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CipheringKeyData_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CipheringKeyData_iei_oer_ext_arr_, 0, CipheringKeyData_iei_oer_p_}; +const TTCN_Typedescriptor_t CipheringKeyData_iei_descr_ = { "@EPS_NAS_TypeDefs.CipheringKeyData.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CipheringKeyData_iei_xer_, &OCTETSTRING_json_, &CipheringKeyData_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& NB__S1__DRXParam_descr_ = NAS__CommonTypeDefs::DRXParamCommon_descr_; +const XERdescriptor_t IMSI__Offset_offsetValue_xer_ = { {"offsetValue>\n", "offsetValue>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IMSI__Offset_offsetValue_oer_ext_arr_[0] = {}; +const int IMSI__Offset_offsetValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IMSI__Offset_offsetValue_oer_ = { -1, TRUE, 2, FALSE, 0, 0, IMSI__Offset_offsetValue_oer_ext_arr_, 0, IMSI__Offset_offsetValue_oer_p_}; +const TTCN_Typedescriptor_t IMSI__Offset_offsetValue_descr_ = { "@EPS_NAS_TypeDefs.IMSI_Offset.offsetValue", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &IMSI__Offset_offsetValue_xer_, &OCTETSTRING_json_, &IMSI__Offset_offsetValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IMSI__Offset +const TTCN_Typedescriptor_t IMSI__Offset_descr_ = { "@EPS_NAS_TypeDefs.IMSI_Offset", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IMSI__Offset_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IMSI__Offset_iei_oer_ext_arr_[0] = {}; +const int IMSI__Offset_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IMSI__Offset_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IMSI__Offset_iei_oer_ext_arr_, 0, IMSI__Offset_iei_oer_p_}; +const TTCN_Typedescriptor_t IMSI__Offset_iei_descr_ = { "@EPS_NAS_TypeDefs.IMSI_Offset.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IMSI__Offset_iei_xer_, &OCTETSTRING_json_, &IMSI__Offset_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IMSI__Offset_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IMSI__Offset_iel_oer_ext_arr_[0] = {}; +const int IMSI__Offset_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IMSI__Offset_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IMSI__Offset_iel_oer_ext_arr_, 0, IMSI__Offset_iel_oer_p_}; +const TTCN_Typedescriptor_t IMSI__Offset_iel_descr_ = { "@EPS_NAS_TypeDefs.IMSI_Offset.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IMSI__Offset_iel_xer_, &OCTETSTRING_json_, &IMSI__Offset_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__COMPLETE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__COMPLETE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__COMPLETE_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_COMPLETE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ATTACH__COMPLETE_securityHeaderType_xer_, &BITSTRING_json_, &ATTACH__COMPLETE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__COMPLETE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ATTACH__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &ATTACH__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__COMPLETE_messageType_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ATTACH__COMPLETE_messageType_xer_, &BITSTRING_json_, &ATTACH__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ATTACH__COMPLETE +const TTCN_Typedescriptor_t ATTACH__COMPLETE_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__REJECT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__REJECT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__REJECT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_REJECT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ATTACH__REJECT_securityHeaderType_xer_, &BITSTRING_json_, &ATTACH__REJECT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ATTACH__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &ATTACH__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ATTACH__REJECT_messageType_xer_, &BITSTRING_json_, &ATTACH__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ATTACH__REJECT +const TTCN_Typedescriptor_t ATTACH__REJECT_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EMM__Cause_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EMM__Cause_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EMM__Cause_spare_descr_ = { "@EPS_NAS_TypeDefs.Extd_EMM_Cause.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &Extd__EMM__Cause_spare_xer_, &BITSTRING_json_, &Extd__EMM__Cause_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EMM__Cause_nbIoTAllowed_xer_ = { {"nbIoTAllowed>\n", "nbIoTAllowed>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EMM__Cause_nbIoTAllowed_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EMM__Cause_nbIoTAllowed_descr_ = { "@EPS_NAS_TypeDefs.Extd_EMM_Cause.nbIoTAllowed", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &Extd__EMM__Cause_nbIoTAllowed_xer_, &BITSTRING_json_, &Extd__EMM__Cause_nbIoTAllowed_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EMM__Cause_epsOptimizationInfo_xer_ = { {"epsOptimizationInfo>\n", "epsOptimizationInfo>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EMM__Cause_epsOptimizationInfo_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EMM__Cause_epsOptimizationInfo_descr_ = { "@EPS_NAS_TypeDefs.Extd_EMM_Cause.epsOptimizationInfo", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &Extd__EMM__Cause_epsOptimizationInfo_xer_, &BITSTRING_json_, &Extd__EMM__Cause_epsOptimizationInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EMM__Cause_eutranAllowed_xer_ = { {"eutranAllowed>\n", "eutranAllowed>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EMM__Cause_eutranAllowed_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EMM__Cause_eutranAllowed_descr_ = { "@EPS_NAS_TypeDefs.Extd_EMM_Cause.eutranAllowed", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &Extd__EMM__Cause_eutranAllowed_xer_, &BITSTRING_json_, &Extd__EMM__Cause_eutranAllowed_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Extd__EMM__Cause +const TTCN_Typedescriptor_t Extd__EMM__Cause_descr_ = { "@EPS_NAS_TypeDefs.Extd_EMM_Cause", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EMM__Cause_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t Extd__EMM__Cause_iei_descr_ = { "@EPS_NAS_TypeDefs.Extd_EMM_Cause.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &Extd__EMM__Cause_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__REQUEST_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ATTACH__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &ATTACH__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ATTACH__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &ATTACH__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATTACH__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ATTACH__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ATTACH__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ATTACH__REQUEST_messageType_xer_, &BITSTRING_json_, &ATTACH__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__AttachType_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__AttachType_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__AttachType_spare_descr_ = { "@EPS_NAS_TypeDefs.EPS_AttachType.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__AttachType_spare_xer_, &BITSTRING_json_, &EPS__AttachType_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__AttachType_typeValue_xer_ = { {"typeValue>\n", "typeValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__AttachType_typeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__AttachType_typeValue_descr_ = { "@EPS_NAS_TypeDefs.EPS_AttachType.typeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &EPS__AttachType_typeValue_xer_, &BITSTRING_json_, &EPS__AttachType_typeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__AttachType +const TTCN_Typedescriptor_t EPS__AttachType_descr_ = { "@EPS_NAS_TypeDefs.EPS_AttachType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ATTACH__REQUEST +const TTCN_Typedescriptor_t ATTACH__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.ATTACH_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GUTI__Type_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t GUTI__Type_iei_descr_ = { "@EPS_NAS_TypeDefs.GUTI_Type.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &GUTI__Type_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GUTI__Type_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GUTI__Type_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GUTI__Type_spare_descr_ = { "@EPS_NAS_TypeDefs.GUTI_Type.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &GUTI__Type_spare_xer_, &BITSTRING_json_, &GUTI__Type_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GUTI__Type_gutiType_xer_ = { {"gutiType>\n", "gutiType>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GUTI__Type_gutiType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GUTI__Type_gutiType_descr_ = { "@EPS_NAS_TypeDefs.GUTI_Type.gutiType", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &GUTI__Type_gutiType_xer_, &BITSTRING_json_, &GUTI__Type_gutiType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for GUTI__Type +const TTCN_Typedescriptor_t GUTI__Type_descr_ = { "@EPS_NAS_TypeDefs.GUTI_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__AdditionalSecurityCapability_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__AdditionalSecurityCapability_iel_oer_ext_arr_[0] = {}; +const int UE__AdditionalSecurityCapability_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__AdditionalSecurityCapability_iel_oer_ext_arr_, 0, UE__AdditionalSecurityCapability_iel_oer_p_}; +const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_iel_descr_ = { "@EPS_NAS_TypeDefs.UE_AdditionalSecurityCapability.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__AdditionalSecurityCapability_iel_xer_, &OCTETSTRING_json_, &UE__AdditionalSecurityCapability_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__AdditionalSecurityCapability_eaCap5G__0__7_xer_ = { {"eaCap5G_0_7>\n", "eaCap5G_0_7>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__AdditionalSecurityCapability_eaCap5G__0__7_oer_ext_arr_[0] = {}; +const int UE__AdditionalSecurityCapability_eaCap5G__0__7_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_eaCap5G__0__7_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__AdditionalSecurityCapability_eaCap5G__0__7_oer_ext_arr_, 0, UE__AdditionalSecurityCapability_eaCap5G__0__7_oer_p_}; +const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_eaCap5G__0__7_descr_ = { "@EPS_NAS_TypeDefs.UE_AdditionalSecurityCapability.eaCap5G_0_7", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__AdditionalSecurityCapability_eaCap5G__0__7_xer_, &OCTETSTRING_json_, &UE__AdditionalSecurityCapability_eaCap5G__0__7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__AdditionalSecurityCapability_eaCap5G__8__15_xer_ = { {"eaCap5G_8_15>\n", "eaCap5G_8_15>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__AdditionalSecurityCapability_eaCap5G__8__15_oer_ext_arr_[0] = {}; +const int UE__AdditionalSecurityCapability_eaCap5G__8__15_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_eaCap5G__8__15_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__AdditionalSecurityCapability_eaCap5G__8__15_oer_ext_arr_, 0, UE__AdditionalSecurityCapability_eaCap5G__8__15_oer_p_}; +const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_eaCap5G__8__15_descr_ = { "@EPS_NAS_TypeDefs.UE_AdditionalSecurityCapability.eaCap5G_8_15", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__AdditionalSecurityCapability_eaCap5G__8__15_xer_, &OCTETSTRING_json_, &UE__AdditionalSecurityCapability_eaCap5G__8__15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__AdditionalSecurityCapability_iaCap5G__0__7_xer_ = { {"iaCap5G_0_7>\n", "iaCap5G_0_7>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__AdditionalSecurityCapability_iaCap5G__0__7_oer_ext_arr_[0] = {}; +const int UE__AdditionalSecurityCapability_iaCap5G__0__7_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_iaCap5G__0__7_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__AdditionalSecurityCapability_iaCap5G__0__7_oer_ext_arr_, 0, UE__AdditionalSecurityCapability_iaCap5G__0__7_oer_p_}; +const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_iaCap5G__0__7_descr_ = { "@EPS_NAS_TypeDefs.UE_AdditionalSecurityCapability.iaCap5G_0_7", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__AdditionalSecurityCapability_iaCap5G__0__7_xer_, &OCTETSTRING_json_, &UE__AdditionalSecurityCapability_iaCap5G__0__7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__AdditionalSecurityCapability_iaCap5G__8__15_xer_ = { {"iaCap5G_8_15>\n", "iaCap5G_8_15>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__AdditionalSecurityCapability_iaCap5G__8__15_oer_ext_arr_[0] = {}; +const int UE__AdditionalSecurityCapability_iaCap5G__8__15_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_iaCap5G__8__15_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__AdditionalSecurityCapability_iaCap5G__8__15_oer_ext_arr_, 0, UE__AdditionalSecurityCapability_iaCap5G__8__15_oer_p_}; +const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_iaCap5G__8__15_descr_ = { "@EPS_NAS_TypeDefs.UE_AdditionalSecurityCapability.iaCap5G_8_15", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__AdditionalSecurityCapability_iaCap5G__8__15_xer_, &OCTETSTRING_json_, &UE__AdditionalSecurityCapability_iaCap5G__8__15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__AdditionalSecurityCapability +const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_descr_ = { "@EPS_NAS_TypeDefs.UE_AdditionalSecurityCapability", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__AdditionalSecurityCapability_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__AdditionalSecurityCapability_iei_oer_ext_arr_[0] = {}; +const int UE__AdditionalSecurityCapability_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__AdditionalSecurityCapability_iei_oer_ext_arr_, 0, UE__AdditionalSecurityCapability_iei_oer_p_}; +const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_iei_descr_ = { "@EPS_NAS_TypeDefs.UE_AdditionalSecurityCapability.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__AdditionalSecurityCapability_iei_xer_, &OCTETSTRING_json_, &UE__AdditionalSecurityCapability_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalInfoReq_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalInfoReq_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalInfoReq_spare_descr_ = { "@EPS_NAS_TypeDefs.AdditionalInfoReq.spare", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &AdditionalInfoReq_spare_xer_, &BITSTRING_json_, &AdditionalInfoReq_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalInfoReq_cipherKey_xer_ = { {"cipherKey>\n", "cipherKey>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalInfoReq_cipherKey_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalInfoReq_cipherKey_descr_ = { "@EPS_NAS_TypeDefs.AdditionalInfoReq.cipherKey", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AdditionalInfoReq_cipherKey_xer_, &BITSTRING_json_, &AdditionalInfoReq_cipherKey_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AdditionalInfoReq +const TTCN_Typedescriptor_t AdditionalInfoReq_descr_ = { "@EPS_NAS_TypeDefs.AdditionalInfoReq", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalInfoReq_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AdditionalInfoReq_iei_oer_ext_arr_[0] = {}; +const int AdditionalInfoReq_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AdditionalInfoReq_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AdditionalInfoReq_iei_oer_ext_arr_, 0, AdditionalInfoReq_iei_oer_p_}; +const TTCN_Typedescriptor_t AdditionalInfoReq_iei_descr_ = { "@EPS_NAS_TypeDefs.AdditionalInfoReq.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AdditionalInfoReq_iei_xer_, &OCTETSTRING_json_, &AdditionalInfoReq_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N1__UENetworkCap_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int N1__UENetworkCap_iel_oer_ext_arr_[0] = {}; +const int N1__UENetworkCap_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t N1__UENetworkCap_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, N1__UENetworkCap_iel_oer_ext_arr_, 0, N1__UENetworkCap_iel_oer_p_}; +const TTCN_Typedescriptor_t N1__UENetworkCap_iel_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &N1__UENetworkCap_iel_xer_, &OCTETSTRING_json_, &N1__UENetworkCap_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N1__UENetworkCap_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t N1__UENetworkCap_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t N1__UENetworkCap_spare_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &N1__UENetworkCap_spare_xer_, &BITSTRING_json_, &N1__UENetworkCap_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N1__UENetworkCap_ehc__CP__CIoT_xer_ = { {"ehc_CP_CIoT>\n", "ehc_CP_CIoT>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t N1__UENetworkCap_ehc__CP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t N1__UENetworkCap_ehc__CP__CIoT_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap.ehc_CP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &N1__UENetworkCap_ehc__CP__CIoT_xer_, &BITSTRING_json_, &N1__UENetworkCap_ehc__CP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N1__UENetworkCap_ngPNB__CIoT_xer_ = { {"ngPNB_CIoT>\n", "ngPNB_CIoT>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t N1__UENetworkCap_ngPNB__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t N1__UENetworkCap_ngPNB__CIoT_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap.ngPNB_CIoT", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &N1__UENetworkCap_ngPNB__CIoT_xer_, &BITSTRING_json_, &N1__UENetworkCap_ngPNB__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N1__UENetworkCap_ngUP__CIoT_xer_ = { {"ngUP_CIoT>\n", "ngUP_CIoT>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t N1__UENetworkCap_ngUP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t N1__UENetworkCap_ngUP__CIoT_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap.ngUP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &N1__UENetworkCap_ngUP__CIoT_xer_, &BITSTRING_json_, &N1__UENetworkCap_ngUP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N1__UENetworkCap_ngHC__CP__CIoT_xer_ = { {"ngHC_CP_CIoT>\n", "ngHC_CP_CIoT>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t N1__UENetworkCap_ngHC__CP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t N1__UENetworkCap_ngHC__CP__CIoT_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap.ngHC_CP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &N1__UENetworkCap_ngHC__CP__CIoT_xer_, &BITSTRING_json_, &N1__UENetworkCap_ngHC__CP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N1__UENetworkCap_n3Data_xer_ = { {"n3Data>\n", "n3Data>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t N1__UENetworkCap_n3Data_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t N1__UENetworkCap_n3Data_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap.n3Data", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &N1__UENetworkCap_n3Data_xer_, &BITSTRING_json_, &N1__UENetworkCap_n3Data_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N1__UENetworkCap_ngCP__CIoT_xer_ = { {"ngCP_CIoT>\n", "ngCP_CIoT>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t N1__UENetworkCap_ngCP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t N1__UENetworkCap_ngCP__CIoT_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap.ngCP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &N1__UENetworkCap_ngCP__CIoT_xer_, &BITSTRING_json_, &N1__UENetworkCap_ngCP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for N1__UENetworkCap +const TTCN_Typedescriptor_t N1__UENetworkCap_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N1__UENetworkCap_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int N1__UENetworkCap_iei_oer_ext_arr_[0] = {}; +const int N1__UENetworkCap_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t N1__UENetworkCap_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, N1__UENetworkCap_iei_oer_ext_arr_, 0, N1__UENetworkCap_iei_oer_p_}; +const TTCN_Typedescriptor_t N1__UENetworkCap_iei_descr_ = { "@EPS_NAS_TypeDefs.N1_UENetworkCap.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &N1__UENetworkCap_iei_xer_, &OCTETSTRING_json_, &N1__UENetworkCap_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdAvailability_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UERadioCapIdAvailability_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UERadioCapIdAvailability_spare_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdAvailability.spare", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &UERadioCapIdAvailability_spare_xer_, &BITSTRING_json_, &UERadioCapIdAvailability_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdAvailability_availability_xer_ = { {"availability>\n", "availability>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UERadioCapIdAvailability_availability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UERadioCapIdAvailability_availability_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdAvailability.availability", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &UERadioCapIdAvailability_availability_xer_, &BITSTRING_json_, &UERadioCapIdAvailability_availability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UERadioCapIdAvailability +const TTCN_Typedescriptor_t UERadioCapIdAvailability_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdAvailability", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdAvailability_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UERadioCapIdAvailability_iei_oer_ext_arr_[0] = {}; +const int UERadioCapIdAvailability_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UERadioCapIdAvailability_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UERadioCapIdAvailability_iei_oer_ext_arr_, 0, UERadioCapIdAvailability_iei_oer_p_}; +const TTCN_Typedescriptor_t UERadioCapIdAvailability_iei_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdAvailability.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UERadioCapIdAvailability_iei_xer_, &OCTETSTRING_json_, &UERadioCapIdAvailability_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdAvailability_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UERadioCapIdAvailability_iel_oer_ext_arr_[0] = {}; +const int UERadioCapIdAvailability_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UERadioCapIdAvailability_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UERadioCapIdAvailability_iel_oer_ext_arr_, 0, UERadioCapIdAvailability_iel_oer_p_}; +const TTCN_Typedescriptor_t UERadioCapIdAvailability_iel_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdAvailability.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UERadioCapIdAvailability_iel_xer_, &OCTETSTRING_json_, &UERadioCapIdAvailability_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__FAILURE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__FAILURE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__FAILURE_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_FAILURE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &AUTHENTICATION__FAILURE_securityHeaderType_xer_, &BITSTRING_json_, &AUTHENTICATION__FAILURE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__FAILURE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__FAILURE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__FAILURE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_FAILURE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &AUTHENTICATION__FAILURE_protocolDiscriminator_xer_, &BITSTRING_json_, &AUTHENTICATION__FAILURE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__FAILURE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__FAILURE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__FAILURE_messageType_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_FAILURE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &AUTHENTICATION__FAILURE_messageType_xer_, &BITSTRING_json_, &AUTHENTICATION__FAILURE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AUTHENTICATION__FAILURE +const TTCN_Typedescriptor_t AUTHENTICATION__FAILURE_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_FAILURE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__REJECT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__REJECT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__REJECT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_REJECT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &AUTHENTICATION__REJECT_securityHeaderType_xer_, &BITSTRING_json_, &AUTHENTICATION__REJECT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &AUTHENTICATION__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &AUTHENTICATION__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &AUTHENTICATION__REJECT_messageType_xer_, &BITSTRING_json_, &AUTHENTICATION__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AUTHENTICATION__REJECT +const TTCN_Typedescriptor_t AUTHENTICATION__REJECT_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &AUTHENTICATION__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &AUTHENTICATION__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &AUTHENTICATION__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &AUTHENTICATION__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &AUTHENTICATION__REQUEST_messageType_xer_, &BITSTRING_json_, &AUTHENTICATION__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &AUTHENTICATION__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AUTHENTICATION__REQUEST +const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__RESPONSE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__RESPONSE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__RESPONSE_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_RESPONSE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &AUTHENTICATION__RESPONSE_securityHeaderType_xer_, &BITSTRING_json_, &AUTHENTICATION__RESPONSE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__RESPONSE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &AUTHENTICATION__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &AUTHENTICATION__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTHENTICATION__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTHENTICATION__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTHENTICATION__RESPONSE_messageType_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &AUTHENTICATION__RESPONSE_messageType_xer_, &BITSTRING_json_, &AUTHENTICATION__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AUTHENTICATION__RESPONSE +const TTCN_Typedescriptor_t AUTHENTICATION__RESPONSE_descr_ = { "@EPS_NAS_TypeDefs.AUTHENTICATION_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CS__SERVICE__NOTIFICATION_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CS__SERVICE__NOTIFICATION_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CS__SERVICE__NOTIFICATION_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.CS_SERVICE_NOTIFICATION.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &CS__SERVICE__NOTIFICATION_securityHeaderType_xer_, &BITSTRING_json_, &CS__SERVICE__NOTIFICATION_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CS__SERVICE__NOTIFICATION_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CS__SERVICE__NOTIFICATION_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CS__SERVICE__NOTIFICATION_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.CS_SERVICE_NOTIFICATION.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &CS__SERVICE__NOTIFICATION_protocolDiscriminator_xer_, &BITSTRING_json_, &CS__SERVICE__NOTIFICATION_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CS__SERVICE__NOTIFICATION_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CS__SERVICE__NOTIFICATION_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CS__SERVICE__NOTIFICATION_messageType_descr_ = { "@EPS_NAS_TypeDefs.CS_SERVICE_NOTIFICATION.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CS__SERVICE__NOTIFICATION_messageType_xer_, &BITSTRING_json_, &CS__SERVICE__NOTIFICATION_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PagingIdentity_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PagingIdentity_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PagingIdentity_spareBits_descr_ = { "@EPS_NAS_TypeDefs.PagingIdentity.spareBits", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &PagingIdentity_spareBits_xer_, &BITSTRING_json_, &PagingIdentity_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PagingIdentity_pagingId_xer_ = { {"pagingId>\n", "pagingId>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PagingIdentity_pagingId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PagingIdentity_pagingId_descr_ = { "@EPS_NAS_TypeDefs.PagingIdentity.pagingId", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &PagingIdentity_pagingId_xer_, &BITSTRING_json_, &PagingIdentity_pagingId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PagingIdentity +const TTCN_Typedescriptor_t PagingIdentity_descr_ = { "@EPS_NAS_TypeDefs.PagingIdentity", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PagingIdentity_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PagingIdentity_iei_oer_ext_arr_[0] = {}; +const int PagingIdentity_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PagingIdentity_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PagingIdentity_iei_oer_ext_arr_, 0, PagingIdentity_iei_oer_p_}; +const TTCN_Typedescriptor_t PagingIdentity_iei_descr_ = { "@EPS_NAS_TypeDefs.PagingIdentity.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PagingIdentity_iei_xer_, &OCTETSTRING_json_, &PagingIdentity_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CS__SERVICE__NOTIFICATION +const TTCN_Typedescriptor_t CS__SERVICE__NOTIFICATION_descr_ = { "@EPS_NAS_TypeDefs.CS_SERVICE_NOTIFICATION", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLI_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CLI_iel_oer_ext_arr_[0] = {}; +const int CLI_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CLI_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CLI_iel_oer_ext_arr_, 0, CLI_iel_oer_p_}; +const TTCN_Typedescriptor_t CLI_iel_descr_ = { "@EPS_NAS_TypeDefs.CLI.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CLI_iel_xer_, &OCTETSTRING_json_, &CLI_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLI_cliValue_xer_ = { {"cliValue>\n", "cliValue>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CLI_cliValue_oer_ext_arr_[0] = {}; +const int CLI_cliValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CLI_cliValue_oer_ = { -1, TRUE, -1, FALSE, 0, 0, CLI_cliValue_oer_ext_arr_, 0, CLI_cliValue_oer_p_}; +const TTCN_Typedescriptor_t CLI_cliValue_descr_ = { "@EPS_NAS_TypeDefs.CLI.cliValue", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &CLI_cliValue_xer_, &OCTETSTRING_json_, &CLI_cliValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CLI +const TTCN_Typedescriptor_t CLI_descr_ = { "@EPS_NAS_TypeDefs.CLI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CLI_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CLI_iei_oer_ext_arr_[0] = {}; +const int CLI_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CLI_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CLI_iei_oer_ext_arr_, 0, CLI_iei_oer_p_}; +const TTCN_Typedescriptor_t CLI_iei_descr_ = { "@EPS_NAS_TypeDefs.CLI.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CLI_iei_xer_, &OCTETSTRING_json_, &CLI_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SsCode_ssCodeValue_xer_ = { {"ssCodeValue>\n", "ssCodeValue>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SsCode_ssCodeValue_oer_ext_arr_[0] = {}; +const int SsCode_ssCodeValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SsCode_ssCodeValue_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SsCode_ssCodeValue_oer_ext_arr_, 0, SsCode_ssCodeValue_oer_p_}; +const TTCN_Typedescriptor_t SsCode_ssCodeValue_descr_ = { "@EPS_NAS_TypeDefs.SsCode.ssCodeValue", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SsCode_ssCodeValue_xer_, &OCTETSTRING_json_, &SsCode_ssCodeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SsCode +const TTCN_Typedescriptor_t SsCode_descr_ = { "@EPS_NAS_TypeDefs.SsCode", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SsCode_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SsCode_iei_oer_ext_arr_[0] = {}; +const int SsCode_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SsCode_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SsCode_iei_oer_ext_arr_, 0, SsCode_iei_oer_p_}; +const TTCN_Typedescriptor_t SsCode_iei_descr_ = { "@EPS_NAS_TypeDefs.SsCode.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SsCode_iei_xer_, &OCTETSTRING_json_, &SsCode_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LcsIndicator_lcsIndicator_xer_ = { {"lcsIndicator>\n", "lcsIndicator>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LcsIndicator_lcsIndicator_oer_ext_arr_[0] = {}; +const int LcsIndicator_lcsIndicator_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LcsIndicator_lcsIndicator_oer_ = { -1, TRUE, 1, FALSE, 0, 0, LcsIndicator_lcsIndicator_oer_ext_arr_, 0, LcsIndicator_lcsIndicator_oer_p_}; +const TTCN_Typedescriptor_t LcsIndicator_lcsIndicator_descr_ = { "@EPS_NAS_TypeDefs.LcsIndicator.lcsIndicator", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &LcsIndicator_lcsIndicator_xer_, &OCTETSTRING_json_, &LcsIndicator_lcsIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LcsIndicator +const TTCN_Typedescriptor_t LcsIndicator_descr_ = { "@EPS_NAS_TypeDefs.LcsIndicator", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LcsIndicator_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LcsIndicator_iei_oer_ext_arr_[0] = {}; +const int LcsIndicator_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LcsIndicator_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, LcsIndicator_iei_oer_ext_arr_, 0, LcsIndicator_iei_oer_p_}; +const TTCN_Typedescriptor_t LcsIndicator_iei_descr_ = { "@EPS_NAS_TypeDefs.LcsIndicator.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &LcsIndicator_iei_xer_, &OCTETSTRING_json_, &LcsIndicator_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LcsClientIdentity_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LcsClientIdentity_iel_oer_ext_arr_[0] = {}; +const int LcsClientIdentity_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LcsClientIdentity_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, LcsClientIdentity_iel_oer_ext_arr_, 0, LcsClientIdentity_iel_oer_p_}; +const TTCN_Typedescriptor_t LcsClientIdentity_iel_descr_ = { "@EPS_NAS_TypeDefs.LcsClientIdentity.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &LcsClientIdentity_iel_xer_, &OCTETSTRING_json_, &LcsClientIdentity_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LcsClientIdentity_lcsClientIdentityValue_xer_ = { {"lcsClientIdentityValue>\n", "lcsClientIdentityValue>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LcsClientIdentity_lcsClientIdentityValue_oer_ext_arr_[0] = {}; +const int LcsClientIdentity_lcsClientIdentityValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LcsClientIdentity_lcsClientIdentityValue_oer_ = { -1, TRUE, -1, FALSE, 0, 0, LcsClientIdentity_lcsClientIdentityValue_oer_ext_arr_, 0, LcsClientIdentity_lcsClientIdentityValue_oer_p_}; +const TTCN_Typedescriptor_t LcsClientIdentity_lcsClientIdentityValue_descr_ = { "@EPS_NAS_TypeDefs.LcsClientIdentity.lcsClientIdentityValue", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &LcsClientIdentity_lcsClientIdentityValue_xer_, &OCTETSTRING_json_, &LcsClientIdentity_lcsClientIdentityValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LcsClientIdentity +const TTCN_Typedescriptor_t LcsClientIdentity_descr_ = { "@EPS_NAS_TypeDefs.LcsClientIdentity", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LcsClientIdentity_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LcsClientIdentity_iei_oer_ext_arr_[0] = {}; +const int LcsClientIdentity_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LcsClientIdentity_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, LcsClientIdentity_iei_oer_ext_arr_, 0, LcsClientIdentity_iei_oer_p_}; +const TTCN_Typedescriptor_t LcsClientIdentity_iei_descr_ = { "@EPS_NAS_TypeDefs.LcsClientIdentity.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &LcsClientIdentity_iei_xer_, &OCTETSTRING_json_, &LcsClientIdentity_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__ACCEPT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DETACH__ACCEPT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DETACH__ACCEPT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.DETACH_ACCEPT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DETACH__ACCEPT_securityHeaderType_xer_, &BITSTRING_json_, &DETACH__ACCEPT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DETACH__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DETACH__ACCEPT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.DETACH_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DETACH__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &DETACH__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DETACH__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DETACH__ACCEPT_messageType_descr_ = { "@EPS_NAS_TypeDefs.DETACH_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DETACH__ACCEPT_messageType_xer_, &BITSTRING_json_, &DETACH__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DETACH__ACCEPT +const TTCN_Typedescriptor_t DETACH__ACCEPT_descr_ = { "@EPS_NAS_TypeDefs.DETACH_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__REQUEST__MO_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DETACH__REQUEST__MO_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DETACH__REQUEST__MO_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.DETACH_REQUEST_MO.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DETACH__REQUEST__MO_securityHeaderType_xer_, &BITSTRING_json_, &DETACH__REQUEST__MO_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__REQUEST__MO_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DETACH__REQUEST__MO_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DETACH__REQUEST__MO_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.DETACH_REQUEST_MO.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DETACH__REQUEST__MO_protocolDiscriminator_xer_, &BITSTRING_json_, &DETACH__REQUEST__MO_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__REQUEST__MO_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DETACH__REQUEST__MO_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DETACH__REQUEST__MO_messageType_descr_ = { "@EPS_NAS_TypeDefs.DETACH_REQUEST_MO.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DETACH__REQUEST__MO_messageType_xer_, &BITSTRING_json_, &DETACH__REQUEST__MO_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DETACH__REQUEST__MO +const TTCN_Typedescriptor_t DETACH__REQUEST__MO_descr_ = { "@EPS_NAS_TypeDefs.DETACH_REQUEST_MO", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__REQUEST__MT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DETACH__REQUEST__MT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DETACH__REQUEST__MT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.DETACH_REQUEST_MT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DETACH__REQUEST__MT_securityHeaderType_xer_, &BITSTRING_json_, &DETACH__REQUEST__MT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__REQUEST__MT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DETACH__REQUEST__MT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DETACH__REQUEST__MT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.DETACH_REQUEST_MT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DETACH__REQUEST__MT_protocolDiscriminator_xer_, &BITSTRING_json_, &DETACH__REQUEST__MT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__REQUEST__MT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DETACH__REQUEST__MT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DETACH__REQUEST__MT_messageType_descr_ = { "@EPS_NAS_TypeDefs.DETACH_REQUEST_MT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DETACH__REQUEST__MT_messageType_xer_, &BITSTRING_json_, &DETACH__REQUEST__MT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DETACH__REQUEST__MT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t DETACH__REQUEST__MT_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.DETACH_REQUEST_MT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &DETACH__REQUEST__MT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DETACH__REQUEST__MT +const TTCN_Typedescriptor_t DETACH__REQUEST__MT_descr_ = { "@EPS_NAS_TypeDefs.DETACH_REQUEST_MT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DL__NAS__TRANSPORT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DL__NAS__TRANSPORT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DL__NAS__TRANSPORT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.DL_NAS_TRANSPORT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DL__NAS__TRANSPORT_securityHeaderType_xer_, &BITSTRING_json_, &DL__NAS__TRANSPORT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DL__NAS__TRANSPORT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DL__NAS__TRANSPORT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DL__NAS__TRANSPORT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.DL_NAS_TRANSPORT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DL__NAS__TRANSPORT_protocolDiscriminator_xer_, &BITSTRING_json_, &DL__NAS__TRANSPORT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DL__NAS__TRANSPORT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DL__NAS__TRANSPORT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DL__NAS__TRANSPORT_messageType_descr_ = { "@EPS_NAS_TypeDefs.DL_NAS_TRANSPORT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DL__NAS__TRANSPORT_messageType_xer_, &BITSTRING_json_, &DL__NAS__TRANSPORT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__MessageContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__MessageContainer_iel_oer_ext_arr_[0] = {}; +const int NAS__MessageContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__MessageContainer_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NAS__MessageContainer_iel_oer_ext_arr_, 0, NAS__MessageContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t NAS__MessageContainer_iel_descr_ = { "@EPS_NAS_TypeDefs.NAS_MessageContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NAS__MessageContainer_iel_xer_, &OCTETSTRING_json_, &NAS__MessageContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__MessageContainer_smsmessage_xer_ = { {"smsmessage>\n", "smsmessage>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__MessageContainer_smsmessage_oer_ext_arr_[0] = {}; +const int NAS__MessageContainer_smsmessage_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__MessageContainer_smsmessage_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NAS__MessageContainer_smsmessage_oer_ext_arr_, 0, NAS__MessageContainer_smsmessage_oer_p_}; +const TTCN_Typedescriptor_t NAS__MessageContainer_smsmessage_descr_ = { "@EPS_NAS_TypeDefs.NAS_MessageContainer.smsmessage", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NAS__MessageContainer_smsmessage_xer_, &OCTETSTRING_json_, &NAS__MessageContainer_smsmessage_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NAS__MessageContainer +const TTCN_Typedescriptor_t NAS__MessageContainer_descr_ = { "@EPS_NAS_TypeDefs.NAS_MessageContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__MessageContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__MessageContainer_iei_oer_ext_arr_[0] = {}; +const int NAS__MessageContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__MessageContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NAS__MessageContainer_iei_oer_ext_arr_, 0, NAS__MessageContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t NAS__MessageContainer_iei_descr_ = { "@EPS_NAS_TypeDefs.NAS_MessageContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NAS__MessageContainer_iei_xer_, &OCTETSTRING_json_, &NAS__MessageContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DL__NAS__TRANSPORT +const TTCN_Typedescriptor_t DL__NAS__TRANSPORT_descr_ = { "@EPS_NAS_TypeDefs.DL_NAS_TRANSPORT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EMM__INFORMATION_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EMM__INFORMATION_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EMM__INFORMATION_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.EMM_INFORMATION.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &EMM__INFORMATION_securityHeaderType_xer_, &BITSTRING_json_, &EMM__INFORMATION_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EMM__INFORMATION_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EMM__INFORMATION_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EMM__INFORMATION_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.EMM_INFORMATION.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &EMM__INFORMATION_protocolDiscriminator_xer_, &BITSTRING_json_, &EMM__INFORMATION_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EMM__INFORMATION_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EMM__INFORMATION_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EMM__INFORMATION_messageType_descr_ = { "@EPS_NAS_TypeDefs.EMM_INFORMATION.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EMM__INFORMATION_messageType_xer_, &BITSTRING_json_, &EMM__INFORMATION_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EMM__INFORMATION +const TTCN_Typedescriptor_t EMM__INFORMATION_descr_ = { "@EPS_NAS_TypeDefs.EMM_INFORMATION", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EMM__STATUS_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EMM__STATUS_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EMM__STATUS_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.EMM_STATUS.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &EMM__STATUS_securityHeaderType_xer_, &BITSTRING_json_, &EMM__STATUS_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EMM__STATUS_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EMM__STATUS_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EMM__STATUS_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.EMM_STATUS.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &EMM__STATUS_protocolDiscriminator_xer_, &BITSTRING_json_, &EMM__STATUS_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EMM__STATUS_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EMM__STATUS_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EMM__STATUS_messageType_descr_ = { "@EPS_NAS_TypeDefs.EMM_STATUS.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EMM__STATUS_messageType_xer_, &BITSTRING_json_, &EMM__STATUS_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EMM__STATUS +const TTCN_Typedescriptor_t EMM__STATUS_descr_ = { "@EPS_NAS_TypeDefs.EMM_STATUS", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EXT__SERVICE__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EXT__SERVICE__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EXT__SERVICE__REQUEST_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.EXT_SERVICE_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &EXT__SERVICE__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &EXT__SERVICE__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EXT__SERVICE__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EXT__SERVICE__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EXT__SERVICE__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.EXT_SERVICE_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &EXT__SERVICE__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &EXT__SERVICE__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EXT__SERVICE__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EXT__SERVICE__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EXT__SERVICE__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.EXT_SERVICE_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EXT__SERVICE__REQUEST_messageType_xer_, &BITSTRING_json_, &EXT__SERVICE__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__ServiceType_serviceValue_xer_ = { {"serviceValue>\n", "serviceValue>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__ServiceType_serviceValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__ServiceType_serviceValue_descr_ = { "@EPS_NAS_TypeDefs.EPS_ServiceType.serviceValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &EPS__ServiceType_serviceValue_xer_, &BITSTRING_json_, &EPS__ServiceType_serviceValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__ServiceType +const TTCN_Typedescriptor_t EPS__ServiceType_descr_ = { "@EPS_NAS_TypeDefs.EPS_ServiceType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__ServiceType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t EPS__ServiceType_iei_descr_ = { "@EPS_NAS_TypeDefs.EPS_ServiceType.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &EPS__ServiceType_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EXT__SERVICE__REQUEST +const TTCN_Typedescriptor_t EXT__SERVICE__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.EXT_SERVICE_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CSFBResponse_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t CSFBResponse_iei_descr_ = { "@EPS_NAS_TypeDefs.CSFBResponse.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &CSFBResponse_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CSFBResponse_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CSFBResponse_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CSFBResponse_spare_descr_ = { "@EPS_NAS_TypeDefs.CSFBResponse.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &CSFBResponse_spare_xer_, &BITSTRING_json_, &CSFBResponse_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CSFBResponse_csfbValue_xer_ = { {"csfbValue>\n", "csfbValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CSFBResponse_csfbValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CSFBResponse_csfbValue_descr_ = { "@EPS_NAS_TypeDefs.CSFBResponse.csfbValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &CSFBResponse_csfbValue_xer_, &BITSTRING_json_, &CSFBResponse_csfbValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CSFBResponse +const TTCN_Typedescriptor_t CSFBResponse_descr_ = { "@EPS_NAS_TypeDefs.CSFBResponse", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PagingRestriction_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PagingRestriction_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PagingRestriction_spare_descr_ = { "@EPS_NAS_TypeDefs.PagingRestriction.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PagingRestriction_spare_xer_, &BITSTRING_json_, &PagingRestriction_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PagingRestriction_prType_xer_ = { {"prType>\n", "prType>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PagingRestriction_prType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PagingRestriction_prType_descr_ = { "@EPS_NAS_TypeDefs.PagingRestriction.prType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PagingRestriction_prType_xer_, &BITSTRING_json_, &PagingRestriction_prType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PagingRestriction +const TTCN_Typedescriptor_t PagingRestriction_descr_ = { "@EPS_NAS_TypeDefs.PagingRestriction", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PagingRestriction_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PagingRestriction_iei_oer_ext_arr_[0] = {}; +const int PagingRestriction_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PagingRestriction_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PagingRestriction_iei_oer_ext_arr_, 0, PagingRestriction_iei_oer_p_}; +const TTCN_Typedescriptor_t PagingRestriction_iei_descr_ = { "@EPS_NAS_TypeDefs.PagingRestriction.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PagingRestriction_iei_xer_, &OCTETSTRING_json_, &PagingRestriction_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PagingRestriction_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PagingRestriction_iel_oer_ext_arr_[0] = {}; +const int PagingRestriction_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PagingRestriction_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PagingRestriction_iel_oer_ext_arr_, 0, PagingRestriction_iel_oer_p_}; +const TTCN_Typedescriptor_t PagingRestriction_iel_descr_ = { "@EPS_NAS_TypeDefs.PagingRestriction.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PagingRestriction_iel_xer_, &OCTETSTRING_json_, &PagingRestriction_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PagingRestriction_ebi7__0_xer_ = { {"ebi7_0>\n", "ebi7_0>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PagingRestriction_ebi7__0_oer_ext_arr_[0] = {}; +const int PagingRestriction_ebi7__0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PagingRestriction_ebi7__0_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PagingRestriction_ebi7__0_oer_ext_arr_, 0, PagingRestriction_ebi7__0_oer_p_}; +const TTCN_Typedescriptor_t PagingRestriction_ebi7__0_descr_ = { "@EPS_NAS_TypeDefs.PagingRestriction.ebi7_0", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PagingRestriction_ebi7__0_xer_, &OCTETSTRING_json_, &PagingRestriction_ebi7__0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PagingRestriction_ebi15__8_xer_ = { {"ebi15_8>\n", "ebi15_8>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PagingRestriction_ebi15__8_oer_ext_arr_[0] = {}; +const int PagingRestriction_ebi15__8_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PagingRestriction_ebi15__8_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PagingRestriction_ebi15__8_oer_ext_arr_, 0, PagingRestriction_ebi15__8_oer_p_}; +const TTCN_Typedescriptor_t PagingRestriction_ebi15__8_descr_ = { "@EPS_NAS_TypeDefs.PagingRestriction.ebi15_8", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PagingRestriction_ebi15__8_xer_, &OCTETSTRING_json_, &PagingRestriction_ebi15__8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GUTI__REALLOCATION__COMMAND_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMMAND_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMMAND_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.GUTI_REALLOCATION_COMMAND.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &GUTI__REALLOCATION__COMMAND_securityHeaderType_xer_, &BITSTRING_json_, &GUTI__REALLOCATION__COMMAND_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GUTI__REALLOCATION__COMMAND_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMMAND_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMMAND_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.GUTI_REALLOCATION_COMMAND.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &GUTI__REALLOCATION__COMMAND_protocolDiscriminator_xer_, &BITSTRING_json_, &GUTI__REALLOCATION__COMMAND_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GUTI__REALLOCATION__COMMAND_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMMAND_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMMAND_messageType_descr_ = { "@EPS_NAS_TypeDefs.GUTI_REALLOCATION_COMMAND.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &GUTI__REALLOCATION__COMMAND_messageType_xer_, &BITSTRING_json_, &GUTI__REALLOCATION__COMMAND_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for GUTI__REALLOCATION__COMMAND +const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMMAND_descr_ = { "@EPS_NAS_TypeDefs.GUTI_REALLOCATION_COMMAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GUTI__REALLOCATION__COMPLETE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMPLETE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMPLETE_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.GUTI_REALLOCATION_COMPLETE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &GUTI__REALLOCATION__COMPLETE_securityHeaderType_xer_, &BITSTRING_json_, &GUTI__REALLOCATION__COMPLETE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GUTI__REALLOCATION__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMPLETE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.GUTI_REALLOCATION_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &GUTI__REALLOCATION__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &GUTI__REALLOCATION__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GUTI__REALLOCATION__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMPLETE_messageType_descr_ = { "@EPS_NAS_TypeDefs.GUTI_REALLOCATION_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &GUTI__REALLOCATION__COMPLETE_messageType_xer_, &BITSTRING_json_, &GUTI__REALLOCATION__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for GUTI__REALLOCATION__COMPLETE +const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMPLETE_descr_ = { "@EPS_NAS_TypeDefs.GUTI_REALLOCATION_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IDENTITY__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IDENTITY__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IDENTITY__REQUEST_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.IDENTITY_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &IDENTITY__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &IDENTITY__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IDENTITY__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IDENTITY__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IDENTITY__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.IDENTITY_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &IDENTITY__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &IDENTITY__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IDENTITY__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IDENTITY__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IDENTITY__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.IDENTITY_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &IDENTITY__REQUEST_messageType_xer_, &BITSTRING_json_, &IDENTITY__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IDENTITY__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t IDENTITY__REQUEST_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.IDENTITY_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &IDENTITY__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IDENTITY__REQUEST +const TTCN_Typedescriptor_t IDENTITY__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.IDENTITY_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IDENTITY__RESPONSE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IDENTITY__RESPONSE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IDENTITY__RESPONSE_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.IDENTITY_RESPONSE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &IDENTITY__RESPONSE_securityHeaderType_xer_, &BITSTRING_json_, &IDENTITY__RESPONSE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IDENTITY__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IDENTITY__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IDENTITY__RESPONSE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.IDENTITY_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &IDENTITY__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &IDENTITY__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IDENTITY__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IDENTITY__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IDENTITY__RESPONSE_messageType_descr_ = { "@EPS_NAS_TypeDefs.IDENTITY_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &IDENTITY__RESPONSE_messageType_xer_, &BITSTRING_json_, &IDENTITY__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IDENTITY__RESPONSE +const TTCN_Typedescriptor_t IDENTITY__RESPONSE_descr_ = { "@EPS_NAS_TypeDefs.IDENTITY_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__COMMAND_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__MODE__COMMAND_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_COMMAND.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SECURITY__MODE__COMMAND_securityHeaderType_xer_, &BITSTRING_json_, &SECURITY__MODE__COMMAND_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__COMMAND_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__MODE__COMMAND_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_COMMAND.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SECURITY__MODE__COMMAND_protocolDiscriminator_xer_, &BITSTRING_json_, &SECURITY__MODE__COMMAND_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__COMMAND_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__MODE__COMMAND_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_messageType_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_COMMAND.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &SECURITY__MODE__COMMAND_messageType_xer_, &BITSTRING_json_, &SECURITY__MODE__COMMAND_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__COMMAND_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_COMMAND.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &SECURITY__MODE__COMMAND_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SECURITY__MODE__COMMAND +const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_COMMAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Nonce_nonceValue_xer_ = { {"nonceValue>\n", "nonceValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Nonce_nonceValue_oer_ext_arr_[0] = {}; +const int Nonce_nonceValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Nonce_nonceValue_oer_ = { -1, TRUE, 4, FALSE, 0, 0, Nonce_nonceValue_oer_ext_arr_, 0, Nonce_nonceValue_oer_p_}; +const TTCN_Typedescriptor_t Nonce_nonceValue_descr_ = { "@EPS_NAS_TypeDefs.Nonce.nonceValue", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &Nonce_nonceValue_xer_, &OCTETSTRING_json_, &Nonce_nonceValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Nonce +const TTCN_Typedescriptor_t Nonce_descr_ = { "@EPS_NAS_TypeDefs.Nonce", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Nonce_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Nonce_iei_oer_ext_arr_[0] = {}; +const int Nonce_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Nonce_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Nonce_iei_oer_ext_arr_, 0, Nonce_iei_oer_p_}; +const TTCN_Typedescriptor_t Nonce_iei_descr_ = { "@EPS_NAS_TypeDefs.Nonce.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Nonce_iei_xer_, &OCTETSTRING_json_, &Nonce_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdRequest_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UERadioCapIdRequest_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UERadioCapIdRequest_spare_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdRequest.spare", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &UERadioCapIdRequest_spare_xer_, &BITSTRING_json_, &UERadioCapIdRequest_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdRequest_radioCapIdReq_xer_ = { {"radioCapIdReq>\n", "radioCapIdReq>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UERadioCapIdRequest_radioCapIdReq_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UERadioCapIdRequest_radioCapIdReq_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdRequest.radioCapIdReq", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UERadioCapIdRequest_radioCapIdReq_xer_, &BITSTRING_json_, &UERadioCapIdRequest_radioCapIdReq_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UERadioCapIdRequest +const TTCN_Typedescriptor_t UERadioCapIdRequest_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdRequest", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdRequest_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UERadioCapIdRequest_iei_oer_ext_arr_[0] = {}; +const int UERadioCapIdRequest_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UERadioCapIdRequest_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UERadioCapIdRequest_iei_oer_ext_arr_, 0, UERadioCapIdRequest_iei_oer_p_}; +const TTCN_Typedescriptor_t UERadioCapIdRequest_iei_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdRequest.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UERadioCapIdRequest_iei_xer_, &OCTETSTRING_json_, &UERadioCapIdRequest_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdRequest_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UERadioCapIdRequest_iel_oer_ext_arr_[0] = {}; +const int UERadioCapIdRequest_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UERadioCapIdRequest_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UERadioCapIdRequest_iel_oer_ext_arr_, 0, UERadioCapIdRequest_iel_oer_p_}; +const TTCN_Typedescriptor_t UERadioCapIdRequest_iel_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapIdRequest.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UERadioCapIdRequest_iel_xer_, &OCTETSTRING_json_, &UERadioCapIdRequest_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__COMPLETE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__MODE__COMPLETE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__MODE__COMPLETE_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_COMPLETE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SECURITY__MODE__COMPLETE_securityHeaderType_xer_, &BITSTRING_json_, &SECURITY__MODE__COMPLETE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__MODE__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__MODE__COMPLETE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SECURITY__MODE__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &SECURITY__MODE__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__MODE__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__MODE__COMPLETE_messageType_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &SECURITY__MODE__COMPLETE_messageType_xer_, &BITSTRING_json_, &SECURITY__MODE__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SECURITY__MODE__COMPLETE +const TTCN_Typedescriptor_t SECURITY__MODE__COMPLETE_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__REJECT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__MODE__REJECT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__MODE__REJECT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_REJECT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SECURITY__MODE__REJECT_securityHeaderType_xer_, &BITSTRING_json_, &SECURITY__MODE__REJECT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__MODE__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__MODE__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SECURITY__MODE__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &SECURITY__MODE__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__MODE__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__MODE__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__MODE__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &SECURITY__MODE__REJECT_messageType_xer_, &BITSTRING_json_, &SECURITY__MODE__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SECURITY__MODE__REJECT +const TTCN_Typedescriptor_t SECURITY__MODE__REJECT_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_MODE_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_PROTECTED_NAS_MESSAGE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_xer_, &BITSTRING_json_, &SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_PROTECTED_NAS_MESSAGE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_xer_, &BITSTRING_json_, &SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_xer_ = { {"messageAuthenticationCode>\n", "messageAuthenticationCode>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_ext_arr_[0] = {}; +const int SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_ = { -1, TRUE, 4, FALSE, 0, 0, SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_ext_arr_, 0, SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_p_}; +const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_PROTECTED_NAS_MESSAGE.messageAuthenticationCode", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_xer_, &OCTETSTRING_json_, &SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_xer_ = { {"sequenceNumber>\n", "sequenceNumber>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_ext_arr_[0] = {}; +const int SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_ext_arr_, 0, SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_p_}; +const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_PROTECTED_NAS_MESSAGE.sequenceNumber", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_xer_, &OCTETSTRING_json_, &SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_xer_ = { {"nasMessage>\n", "nasMessage>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_oer_ext_arr_[0] = {}; +const int SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_oer_ = { -1, TRUE, -1, FALSE, 0, 0, SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_oer_ext_arr_, 0, SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_oer_p_}; +const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_PROTECTED_NAS_MESSAGE.nasMessage", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_xer_, &OCTETSTRING_json_, &SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SECURITY__PROTECTED__NAS__MESSAGE +const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_descr_ = { "@EPS_NAS_TypeDefs.SECURITY_PROTECTED_NAS_MESSAGE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SERVICE__REJECT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SERVICE__REJECT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SERVICE__REJECT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_REJECT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SERVICE__REJECT_securityHeaderType_xer_, &BITSTRING_json_, &SERVICE__REJECT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SERVICE__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SERVICE__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SERVICE__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SERVICE__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &SERVICE__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SERVICE__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SERVICE__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SERVICE__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &SERVICE__REJECT_messageType_xer_, &BITSTRING_json_, &SERVICE__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SERVICE__REJECT +const TTCN_Typedescriptor_t SERVICE__REJECT_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SERVICE__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SERVICE__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SERVICE__REQUEST_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SERVICE__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &SERVICE__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SERVICE__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SERVICE__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SERVICE__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SERVICE__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &SERVICE__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t KSIandSN_ksi_xer_ = { {"ksi>\n", "ksi>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t KSIandSN_ksi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t KSIandSN_ksi_descr_ = { "@EPS_NAS_TypeDefs.KSIandSN.ksi", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &KSIandSN_ksi_xer_, &BITSTRING_json_, &KSIandSN_ksi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t KSIandSN_sn_xer_ = { {"sn>\n", "sn>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t KSIandSN_sn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t KSIandSN_sn_descr_ = { "@EPS_NAS_TypeDefs.KSIandSN.sn", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &KSIandSN_sn_xer_, &BITSTRING_json_, &KSIandSN_sn_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for KSIandSN +const TTCN_Typedescriptor_t KSIandSN_descr_ = { "@EPS_NAS_TypeDefs.KSIandSN", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t KSIandSN_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int KSIandSN_iei_oer_ext_arr_[0] = {}; +const int KSIandSN_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t KSIandSN_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, KSIandSN_iei_oer_ext_arr_, 0, KSIandSN_iei_oer_p_}; +const TTCN_Typedescriptor_t KSIandSN_iei_descr_ = { "@EPS_NAS_TypeDefs.KSIandSN.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &KSIandSN_iei_xer_, &OCTETSTRING_json_, &KSIandSN_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ShortMAC_macValue_xer_ = { {"macValue>\n", "macValue>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ShortMAC_macValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ShortMAC_macValue_descr_ = { "@EPS_NAS_TypeDefs.ShortMAC.macValue", &BITSTRING_ber_, &CommonDefs::B16__Type_raw_, NULL, &ShortMAC_macValue_xer_, &BITSTRING_json_, &ShortMAC_macValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ShortMAC +const TTCN_Typedescriptor_t ShortMAC_descr_ = { "@EPS_NAS_TypeDefs.ShortMAC", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ShortMAC_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ShortMAC_iei_oer_ext_arr_[0] = {}; +const int ShortMAC_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ShortMAC_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ShortMAC_iei_oer_ext_arr_, 0, ShortMAC_iei_oer_p_}; +const TTCN_Typedescriptor_t ShortMAC_iei_descr_ = { "@EPS_NAS_TypeDefs.ShortMAC.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ShortMAC_iei_xer_, &OCTETSTRING_json_, &ShortMAC_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SERVICE__REQUEST +const TTCN_Typedescriptor_t SERVICE__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_ACCEPT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TRACKING__AREA__UPDATE__ACCEPT_securityHeaderType_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__ACCEPT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TRACKING__AREA__UPDATE__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_messageType_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &TRACKING__AREA__UPDATE__ACCEPT_messageType_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_ACCEPT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &TRACKING__AREA__UPDATE__ACCEPT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__UpdateResult_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__UpdateResult_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__UpdateResult_spare_descr_ = { "@EPS_NAS_TypeDefs.EPS_UpdateResult.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__UpdateResult_spare_xer_, &BITSTRING_json_, &EPS__UpdateResult_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__UpdateResult_resultValue_xer_ = { {"resultValue>\n", "resultValue>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__UpdateResult_resultValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__UpdateResult_resultValue_descr_ = { "@EPS_NAS_TypeDefs.EPS_UpdateResult.resultValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &EPS__UpdateResult_resultValue_xer_, &BITSTRING_json_, &EPS__UpdateResult_resultValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__UpdateResult +const TTCN_Typedescriptor_t EPS__UpdateResult_descr_ = { "@EPS_NAS_TypeDefs.EPS_UpdateResult", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TRACKING__AREA__UPDATE__ACCEPT +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfigStatus_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HeaderCompressConfigStatus_iel_oer_ext_arr_[0] = {}; +const int HeaderCompressConfigStatus_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HeaderCompressConfigStatus_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, HeaderCompressConfigStatus_iel_oer_ext_arr_, 0, HeaderCompressConfigStatus_iel_oer_p_}; +const TTCN_Typedescriptor_t HeaderCompressConfigStatus_iel_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfigStatus.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &HeaderCompressConfigStatus_iel_xer_, &OCTETSTRING_json_, &HeaderCompressConfigStatus_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfigStatus_epsBearerInd__0__7_xer_ = { {"epsBearerInd_0_7>\n", "epsBearerInd_0_7>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HeaderCompressConfigStatus_epsBearerInd__0__7_oer_ext_arr_[0] = {}; +const int HeaderCompressConfigStatus_epsBearerInd__0__7_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HeaderCompressConfigStatus_epsBearerInd__0__7_oer_ = { -1, TRUE, 1, FALSE, 0, 0, HeaderCompressConfigStatus_epsBearerInd__0__7_oer_ext_arr_, 0, HeaderCompressConfigStatus_epsBearerInd__0__7_oer_p_}; +const TTCN_Typedescriptor_t HeaderCompressConfigStatus_epsBearerInd__0__7_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfigStatus.epsBearerInd_0_7", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &HeaderCompressConfigStatus_epsBearerInd__0__7_xer_, &OCTETSTRING_json_, &HeaderCompressConfigStatus_epsBearerInd__0__7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfigStatus_epsBearerInd__8__15_xer_ = { {"epsBearerInd_8_15>\n", "epsBearerInd_8_15>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HeaderCompressConfigStatus_epsBearerInd__8__15_oer_ext_arr_[0] = {}; +const int HeaderCompressConfigStatus_epsBearerInd__8__15_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HeaderCompressConfigStatus_epsBearerInd__8__15_oer_ = { -1, TRUE, 1, FALSE, 0, 0, HeaderCompressConfigStatus_epsBearerInd__8__15_oer_ext_arr_, 0, HeaderCompressConfigStatus_epsBearerInd__8__15_oer_p_}; +const TTCN_Typedescriptor_t HeaderCompressConfigStatus_epsBearerInd__8__15_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfigStatus.epsBearerInd_8_15", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &HeaderCompressConfigStatus_epsBearerInd__8__15_xer_, &OCTETSTRING_json_, &HeaderCompressConfigStatus_epsBearerInd__8__15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for HeaderCompressConfigStatus +const TTCN_Typedescriptor_t HeaderCompressConfigStatus_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfigStatus", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfigStatus_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HeaderCompressConfigStatus_iei_oer_ext_arr_[0] = {}; +const int HeaderCompressConfigStatus_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HeaderCompressConfigStatus_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, HeaderCompressConfigStatus_iei_oer_ext_arr_, 0, HeaderCompressConfigStatus_iei_oer_p_}; +const TTCN_Typedescriptor_t HeaderCompressConfigStatus_iei_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfigStatus.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &HeaderCompressConfigStatus_iei_xer_, &OCTETSTRING_json_, &HeaderCompressConfigStatus_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__AddReqResult_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__AddReqResult_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__AddReqResult_spare_descr_ = { "@EPS_NAS_TypeDefs.EPS_AddReqResult.spare", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &EPS__AddReqResult_spare_xer_, &BITSTRING_json_, &EPS__AddReqResult_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__AddReqResult_prd_xer_ = { {"prd>\n", "prd>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__AddReqResult_prd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__AddReqResult_prd_descr_ = { "@EPS_NAS_TypeDefs.EPS_AddReqResult.prd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__AddReqResult_prd_xer_, &BITSTRING_json_, &EPS__AddReqResult_prd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__AddReqResult +const TTCN_Typedescriptor_t EPS__AddReqResult_descr_ = { "@EPS_NAS_TypeDefs.EPS_AddReqResult", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__AddReqResult_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__AddReqResult_iei_oer_ext_arr_[0] = {}; +const int EPS__AddReqResult_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__AddReqResult_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__AddReqResult_iei_oer_ext_arr_, 0, EPS__AddReqResult_iei_oer_p_}; +const TTCN_Typedescriptor_t EPS__AddReqResult_iei_descr_ = { "@EPS_NAS_TypeDefs.EPS_AddReqResult.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__AddReqResult_iei_xer_, &OCTETSTRING_json_, &EPS__AddReqResult_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__AddReqResult_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__AddReqResult_iel_oer_ext_arr_[0] = {}; +const int EPS__AddReqResult_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__AddReqResult_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__AddReqResult_iel_oer_ext_arr_, 0, EPS__AddReqResult_iel_oer_p_}; +const TTCN_Typedescriptor_t EPS__AddReqResult_iel_descr_ = { "@EPS_NAS_TypeDefs.EPS_AddReqResult.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__AddReqResult_iel_xer_, &OCTETSTRING_json_, &EPS__AddReqResult_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__COMPLETE_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_COMPLETE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TRACKING__AREA__UPDATE__COMPLETE_securityHeaderType_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__COMPLETE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__COMPLETE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TRACKING__AREA__UPDATE__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__COMPLETE_messageType_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &TRACKING__AREA__UPDATE__COMPLETE_messageType_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TRACKING__AREA__UPDATE__COMPLETE +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__COMPLETE_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__REJECT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REJECT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REJECT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_REJECT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TRACKING__AREA__UPDATE__REJECT_securityHeaderType_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__REJECT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TRACKING__AREA__UPDATE__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &TRACKING__AREA__UPDATE__REJECT_messageType_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TRACKING__AREA__UPDATE__REJECT +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REJECT_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REQUEST_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TRACKING__AREA__UPDATE__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TRACKING__AREA__UPDATE__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &TRACKING__AREA__UPDATE__REQUEST_messageType_xer_, &BITSTRING_json_, &TRACKING__AREA__UPDATE__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__UpdateType_activeFlag_xer_ = { {"activeFlag>\n", "activeFlag>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__UpdateType_activeFlag_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__UpdateType_activeFlag_descr_ = { "@EPS_NAS_TypeDefs.EPS_UpdateType.activeFlag", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__UpdateType_activeFlag_xer_, &BITSTRING_json_, &EPS__UpdateType_activeFlag_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__UpdateType_typeValue_xer_ = { {"typeValue>\n", "typeValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__UpdateType_typeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__UpdateType_typeValue_descr_ = { "@EPS_NAS_TypeDefs.EPS_UpdateType.typeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &EPS__UpdateType_typeValue_xer_, &BITSTRING_json_, &EPS__UpdateType_typeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__UpdateType +const TTCN_Typedescriptor_t EPS__UpdateType_descr_ = { "@EPS_NAS_TypeDefs.EPS_UpdateType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TRACKING__AREA__UPDATE__REQUEST +const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.TRACKING_AREA_UPDATE_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapInfoUpdateNeeded_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UERadioCapInfoUpdateNeeded_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UERadioCapInfoUpdateNeeded_spare_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapInfoUpdateNeeded.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &UERadioCapInfoUpdateNeeded_spare_xer_, &BITSTRING_json_, &UERadioCapInfoUpdateNeeded_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapInfoUpdateNeeded_urcUpdate_xer_ = { {"urcUpdate>\n", "urcUpdate>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UERadioCapInfoUpdateNeeded_urcUpdate_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UERadioCapInfoUpdateNeeded_urcUpdate_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapInfoUpdateNeeded.urcUpdate", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UERadioCapInfoUpdateNeeded_urcUpdate_xer_, &BITSTRING_json_, &UERadioCapInfoUpdateNeeded_urcUpdate_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UERadioCapInfoUpdateNeeded +const TTCN_Typedescriptor_t UERadioCapInfoUpdateNeeded_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapInfoUpdateNeeded", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapInfoUpdateNeeded_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t UERadioCapInfoUpdateNeeded_iei_descr_ = { "@EPS_NAS_TypeDefs.UERadioCapInfoUpdateNeeded.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &UERadioCapInfoUpdateNeeded_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UL__NAS__TRANSPORT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UL__NAS__TRANSPORT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UL__NAS__TRANSPORT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.UL_NAS_TRANSPORT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UL__NAS__TRANSPORT_securityHeaderType_xer_, &BITSTRING_json_, &UL__NAS__TRANSPORT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UL__NAS__TRANSPORT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UL__NAS__TRANSPORT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UL__NAS__TRANSPORT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.UL_NAS_TRANSPORT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UL__NAS__TRANSPORT_protocolDiscriminator_xer_, &BITSTRING_json_, &UL__NAS__TRANSPORT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UL__NAS__TRANSPORT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UL__NAS__TRANSPORT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UL__NAS__TRANSPORT_messageType_descr_ = { "@EPS_NAS_TypeDefs.UL_NAS_TRANSPORT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UL__NAS__TRANSPORT_messageType_xer_, &BITSTRING_json_, &UL__NAS__TRANSPORT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UL__NAS__TRANSPORT +const TTCN_Typedescriptor_t UL__NAS__TRANSPORT_descr_ = { "@EPS_NAS_TypeDefs.UL_NAS_TRANSPORT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DL__GENERIC__NAS__TRANSPORT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DL__GENERIC__NAS__TRANSPORT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.DL_GENERIC_NAS_TRANSPORT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DL__GENERIC__NAS__TRANSPORT_securityHeaderType_xer_, &BITSTRING_json_, &DL__GENERIC__NAS__TRANSPORT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.DL_GENERIC_NAS_TRANSPORT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_xer_, &BITSTRING_json_, &DL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DL__GENERIC__NAS__TRANSPORT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DL__GENERIC__NAS__TRANSPORT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_messageType_descr_ = { "@EPS_NAS_TypeDefs.DL_GENERIC_NAS_TRANSPORT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DL__GENERIC__NAS__TRANSPORT_messageType_xer_, &BITSTRING_json_, &DL__GENERIC__NAS__TRANSPORT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GenericMessageContainerType_xer_ = { {"GenericMessageContainerType>\n", "GenericMessageContainerType>\n"}, {29, 29}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GenericMessageContainerType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GenericMessageContainerType_descr_ = { "@EPS_NAS_TypeDefs.GenericMessageContainerType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &GenericMessageContainerType_xer_, &BITSTRING_json_, &GenericMessageContainerType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_xer_ = { {"genericMessageContainerType>\n", "genericMessageContainerType>\n"}, {29, 29}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_descr_ = { "@EPS_NAS_TypeDefs.DL_GENERIC_NAS_TRANSPORT.genericMessageContainerType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_xer_, &BITSTRING_json_, &DL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GenericMessageContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int GenericMessageContainer_iel_oer_ext_arr_[0] = {}; +const int GenericMessageContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t GenericMessageContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, GenericMessageContainer_iel_oer_ext_arr_, 0, GenericMessageContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t GenericMessageContainer_iel_descr_ = { "@EPS_NAS_TypeDefs.GenericMessageContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &GenericMessageContainer_iel_xer_, &OCTETSTRING_json_, &GenericMessageContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GenericMessageContainer_genericMsgContainerValue_xer_ = { {"genericMsgContainerValue>\n", "genericMsgContainerValue>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int GenericMessageContainer_genericMsgContainerValue_oer_ext_arr_[0] = {}; +const int GenericMessageContainer_genericMsgContainerValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t GenericMessageContainer_genericMsgContainerValue_oer_ = { -1, TRUE, -1, FALSE, 0, 0, GenericMessageContainer_genericMsgContainerValue_oer_ext_arr_, 0, GenericMessageContainer_genericMsgContainerValue_oer_p_}; +const TTCN_Typedescriptor_t GenericMessageContainer_genericMsgContainerValue_descr_ = { "@EPS_NAS_TypeDefs.GenericMessageContainer.genericMsgContainerValue", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &GenericMessageContainer_genericMsgContainerValue_xer_, &OCTETSTRING_json_, &GenericMessageContainer_genericMsgContainerValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for GenericMessageContainer +const TTCN_Typedescriptor_t GenericMessageContainer_descr_ = { "@EPS_NAS_TypeDefs.GenericMessageContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GenericMessageContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int GenericMessageContainer_iei_oer_ext_arr_[0] = {}; +const int GenericMessageContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t GenericMessageContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, GenericMessageContainer_iei_oer_ext_arr_, 0, GenericMessageContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t GenericMessageContainer_iei_descr_ = { "@EPS_NAS_TypeDefs.GenericMessageContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &GenericMessageContainer_iei_xer_, &OCTETSTRING_json_, &GenericMessageContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DL__GENERIC__NAS__TRANSPORT +const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_descr_ = { "@EPS_NAS_TypeDefs.DL_GENERIC_NAS_TRANSPORT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UL__GENERIC__NAS__TRANSPORT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UL__GENERIC__NAS__TRANSPORT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.UL_GENERIC_NAS_TRANSPORT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UL__GENERIC__NAS__TRANSPORT_securityHeaderType_xer_, &BITSTRING_json_, &UL__GENERIC__NAS__TRANSPORT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.UL_GENERIC_NAS_TRANSPORT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_xer_, &BITSTRING_json_, &UL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UL__GENERIC__NAS__TRANSPORT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UL__GENERIC__NAS__TRANSPORT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_messageType_descr_ = { "@EPS_NAS_TypeDefs.UL_GENERIC_NAS_TRANSPORT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UL__GENERIC__NAS__TRANSPORT_messageType_xer_, &BITSTRING_json_, &UL__GENERIC__NAS__TRANSPORT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_xer_ = { {"genericMessageContainerType>\n", "genericMessageContainerType>\n"}, {29, 29}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_descr_ = { "@EPS_NAS_TypeDefs.UL_GENERIC_NAS_TRANSPORT.genericMessageContainerType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_xer_, &BITSTRING_json_, &UL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UL__GENERIC__NAS__TRANSPORT +const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_descr_ = { "@EPS_NAS_TypeDefs.UL_GENERIC_NAS_TRANSPORT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CONTROL__PLANE__SERVICE__REQUEST_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.CONTROL_PLANE_SERVICE_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &CONTROL__PLANE__SERVICE__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &CONTROL__PLANE__SERVICE__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CONTROL__PLANE__SERVICE__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.CONTROL_PLANE_SERVICE_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &CONTROL__PLANE__SERVICE__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &CONTROL__PLANE__SERVICE__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CONTROL__PLANE__SERVICE__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.CONTROL_PLANE_SERVICE_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &CONTROL__PLANE__SERVICE__REQUEST_messageType_xer_, &BITSTRING_json_, &CONTROL__PLANE__SERVICE__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ControlPlaneServiceType_activeFlag_xer_ = { {"activeFlag>\n", "activeFlag>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ControlPlaneServiceType_activeFlag_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ControlPlaneServiceType_activeFlag_descr_ = { "@EPS_NAS_TypeDefs.ControlPlaneServiceType.activeFlag", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ControlPlaneServiceType_activeFlag_xer_, &BITSTRING_json_, &ControlPlaneServiceType_activeFlag_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ControlPlaneServiceType_controlPlaneServiceType_xer_ = { {"controlPlaneServiceType>\n", "controlPlaneServiceType>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ControlPlaneServiceType_controlPlaneServiceType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ControlPlaneServiceType_controlPlaneServiceType_descr_ = { "@EPS_NAS_TypeDefs.ControlPlaneServiceType.controlPlaneServiceType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &ControlPlaneServiceType_controlPlaneServiceType_xer_, &BITSTRING_json_, &ControlPlaneServiceType_controlPlaneServiceType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ControlPlaneServiceType +const TTCN_Typedescriptor_t ControlPlaneServiceType_descr_ = { "@EPS_NAS_TypeDefs.ControlPlaneServiceType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ControlPlaneServiceType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ControlPlaneServiceType_iei_descr_ = { "@EPS_NAS_TypeDefs.ControlPlaneServiceType.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ControlPlaneServiceType_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CONTROL__PLANE__SERVICE__REQUEST +const TTCN_Typedescriptor_t CONTROL__PLANE__SERVICE__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.CONTROL_PLANE_SERVICE_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SERVICE__ACCEPT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SERVICE__ACCEPT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SERVICE__ACCEPT_securityHeaderType_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_ACCEPT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SERVICE__ACCEPT_securityHeaderType_xer_, &BITSTRING_json_, &SERVICE__ACCEPT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SERVICE__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SERVICE__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SERVICE__ACCEPT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SERVICE__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &SERVICE__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SERVICE__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SERVICE__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SERVICE__ACCEPT_messageType_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &SERVICE__ACCEPT_messageType_xer_, &BITSTRING_json_, &SERVICE__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SERVICE__ACCEPT +const TTCN_Typedescriptor_t SERVICE__ACCEPT_descr_ = { "@EPS_NAS_TypeDefs.SERVICE_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_, 0, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_messageType_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_, &BITSTRING_json_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_messageType_xer_, &BITSTRING_json_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__Cause_causeValue_xer_ = { {"causeValue>\n", "causeValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__Cause_causeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__Cause_causeValue_descr_ = { "@EPS_NAS_TypeDefs.ESM_Cause.causeValue", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ESM__Cause_causeValue_xer_, &BITSTRING_json_, &ESM__Cause_causeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ESM__Cause +const TTCN_Typedescriptor_t ESM__Cause_descr_ = { "@EPS_NAS_TypeDefs.ESM_Cause", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__Cause_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ESM__Cause_iei_oer_ext_arr_[0] = {}; +const int ESM__Cause_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ESM__Cause_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ESM__Cause_iei_oer_ext_arr_, 0, ESM__Cause_iei_oer_p_}; +const TTCN_Typedescriptor_t ESM__Cause_iei_descr_ = { "@EPS_NAS_TypeDefs.ESM_Cause.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ESM__Cause_iei_xer_, &OCTETSTRING_json_, &ESM__Cause_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_, &BITSTRING_json_, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LinkedEpsBearerIdentity_idValue_xer_ = { {"idValue>\n", "idValue>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t LinkedEpsBearerIdentity_idValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t LinkedEpsBearerIdentity_idValue_descr_ = { "@EPS_NAS_TypeDefs.LinkedEpsBearerIdentity.idValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &LinkedEpsBearerIdentity_idValue_xer_, &BITSTRING_json_, &LinkedEpsBearerIdentity_idValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LinkedEpsBearerIdentity +const TTCN_Typedescriptor_t LinkedEpsBearerIdentity_descr_ = { "@EPS_NAS_TypeDefs.LinkedEpsBearerIdentity", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST +const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TransactionIdentifier_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TransactionIdentifier_iel_oer_ext_arr_[0] = {}; +const int TransactionIdentifier_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TransactionIdentifier_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TransactionIdentifier_iel_oer_ext_arr_, 0, TransactionIdentifier_iel_oer_p_}; +const TTCN_Typedescriptor_t TransactionIdentifier_iel_descr_ = { "@EPS_NAS_TypeDefs.TransactionIdentifier.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TransactionIdentifier_iel_xer_, &OCTETSTRING_json_, &TransactionIdentifier_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TransactionIdentifier_tiFlag_xer_ = { {"tiFlag>\n", "tiFlag>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TransactionIdentifier_tiFlag_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TransactionIdentifier_tiFlag_descr_ = { "@EPS_NAS_TypeDefs.TransactionIdentifier.tiFlag", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &TransactionIdentifier_tiFlag_xer_, &BITSTRING_json_, &TransactionIdentifier_tiFlag_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TransactionIdentifier_tiValue_xer_ = { {"tiValue>\n", "tiValue>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TransactionIdentifier_tiValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TransactionIdentifier_tiValue_descr_ = { "@EPS_NAS_TypeDefs.TransactionIdentifier.tiValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &TransactionIdentifier_tiValue_xer_, &BITSTRING_json_, &TransactionIdentifier_tiValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TransactionIdentifier_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TransactionIdentifier_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TransactionIdentifier_spare_descr_ = { "@EPS_NAS_TypeDefs.TransactionIdentifier.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TransactionIdentifier_spare_xer_, &BITSTRING_json_, &TransactionIdentifier_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TransactionIdentifier +const TTCN_Typedescriptor_t TransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.TransactionIdentifier", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TransactionIdentifier_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TransactionIdentifier_iei_oer_ext_arr_[0] = {}; +const int TransactionIdentifier_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TransactionIdentifier_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TransactionIdentifier_iei_oer_ext_arr_, 0, TransactionIdentifier_iei_oer_p_}; +const TTCN_Typedescriptor_t TransactionIdentifier_iei_descr_ = { "@EPS_NAS_TypeDefs.TransactionIdentifier.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TransactionIdentifier_iei_xer_, &OCTETSTRING_json_, &TransactionIdentifier_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TransactionIdentifier_ext_xer_ = { {"ext>\n", "ext>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TransactionIdentifier_ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TransactionIdentifier_ext_descr_ = { "@EPS_NAS_TypeDefs.TransactionIdentifier.ext", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &TransactionIdentifier_ext_xer_, &BITSTRING_json_, &TransactionIdentifier_ext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TransactionIdentifier_tiValue__2_xer_ = { {"tiValue_2>\n", "tiValue_2>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TransactionIdentifier_tiValue__2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TransactionIdentifier_tiValue__2_descr_ = { "@EPS_NAS_TypeDefs.TransactionIdentifier.tiValue_2", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &TransactionIdentifier_tiValue__2_xer_, &BITSTRING_json_, &TransactionIdentifier_tiValue__2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_, 0, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_messageType_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_, &BITSTRING_json_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_messageType_xer_, &BITSTRING_json_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_, &BITSTRING_json_, &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST +const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APN__AMBR_downlink_xer_ = { {"downlink>\n", "downlink>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t APN__AMBR_downlink_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t APN__AMBR_downlink_descr_ = { "@EPS_NAS_TypeDefs.APN_AMBR.downlink", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &APN__AMBR_downlink_xer_, &BITSTRING_json_, &APN__AMBR_downlink_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APN__AMBR_uplink_xer_ = { {"uplink>\n", "uplink>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t APN__AMBR_uplink_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t APN__AMBR_uplink_descr_ = { "@EPS_NAS_TypeDefs.APN_AMBR.uplink", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &APN__AMBR_uplink_xer_, &BITSTRING_json_, &APN__AMBR_uplink_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for APN__AMBR +const TTCN_Typedescriptor_t APN__AMBR_descr_ = { "@EPS_NAS_TypeDefs.APN_AMBR", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APN__AMBR_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int APN__AMBR_iei_oer_ext_arr_[0] = {}; +const int APN__AMBR_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t APN__AMBR_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, APN__AMBR_iei_oer_ext_arr_, 0, APN__AMBR_iei_oer_p_}; +const TTCN_Typedescriptor_t APN__AMBR_iei_descr_ = { "@EPS_NAS_TypeDefs.APN_AMBR.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &APN__AMBR_iei_xer_, &OCTETSTRING_json_, &APN__AMBR_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APN__AMBR_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int APN__AMBR_iel_oer_ext_arr_[0] = {}; +const int APN__AMBR_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t APN__AMBR_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, APN__AMBR_iel_oer_ext_arr_, 0, APN__AMBR_iel_oer_p_}; +const TTCN_Typedescriptor_t APN__AMBR_iel_descr_ = { "@EPS_NAS_TypeDefs.APN_AMBR.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &APN__AMBR_iel_xer_, &OCTETSTRING_json_, &APN__AMBR_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APN__AMBR_downlinkExt_xer_ = { {"downlinkExt>\n", "downlinkExt>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t APN__AMBR_downlinkExt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t APN__AMBR_downlinkExt_descr_ = { "@EPS_NAS_TypeDefs.APN_AMBR.downlinkExt", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &APN__AMBR_downlinkExt_xer_, &BITSTRING_json_, &APN__AMBR_downlinkExt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APN__AMBR_uplinkExt_xer_ = { {"uplinkExt>\n", "uplinkExt>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t APN__AMBR_uplinkExt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t APN__AMBR_uplinkExt_descr_ = { "@EPS_NAS_TypeDefs.APN_AMBR.uplinkExt", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &APN__AMBR_uplinkExt_xer_, &BITSTRING_json_, &APN__AMBR_uplinkExt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APN__AMBR_downlinkExt2_xer_ = { {"downlinkExt2>\n", "downlinkExt2>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t APN__AMBR_downlinkExt2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t APN__AMBR_downlinkExt2_descr_ = { "@EPS_NAS_TypeDefs.APN_AMBR.downlinkExt2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &APN__AMBR_downlinkExt2_xer_, &BITSTRING_json_, &APN__AMBR_downlinkExt2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APN__AMBR_uplinkExt2_xer_ = { {"uplinkExt2>\n", "uplinkExt2>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t APN__AMBR_uplinkExt2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t APN__AMBR_uplinkExt2_descr_ = { "@EPS_NAS_TypeDefs.APN_AMBR.uplinkExt2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &APN__AMBR_uplinkExt2_xer_, &BITSTRING_json_, &APN__AMBR_uplinkExt2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HeaderCompressConfig_iel_oer_ext_arr_[0] = {}; +const int HeaderCompressConfig_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HeaderCompressConfig_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, HeaderCompressConfig_iel_oer_ext_arr_, 0, HeaderCompressConfig_iel_oer_p_}; +const TTCN_Typedescriptor_t HeaderCompressConfig_iel_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &HeaderCompressConfig_iel_xer_, &OCTETSTRING_json_, &HeaderCompressConfig_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t HeaderCompressConfig_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t HeaderCompressConfig_spare_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &HeaderCompressConfig_spare_xer_, &BITSTRING_json_, &HeaderCompressConfig_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_profileP0x0104_xer_ = { {"profileP0x0104>\n", "profileP0x0104>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0104_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0104_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.profileP0x0104", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &HeaderCompressConfig_profileP0x0104_xer_, &BITSTRING_json_, &HeaderCompressConfig_profileP0x0104_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_profileP0x0103_xer_ = { {"profileP0x0103>\n", "profileP0x0103>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0103_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0103_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.profileP0x0103", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &HeaderCompressConfig_profileP0x0103_xer_, &BITSTRING_json_, &HeaderCompressConfig_profileP0x0103_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_profileP0x0102_xer_ = { {"profileP0x0102>\n", "profileP0x0102>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0102_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0102_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.profileP0x0102", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &HeaderCompressConfig_profileP0x0102_xer_, &BITSTRING_json_, &HeaderCompressConfig_profileP0x0102_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_profileP0x0006_xer_ = { {"profileP0x0006>\n", "profileP0x0006>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0006_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0006_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.profileP0x0006", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &HeaderCompressConfig_profileP0x0006_xer_, &BITSTRING_json_, &HeaderCompressConfig_profileP0x0006_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_profileP0x0004_xer_ = { {"profileP0x0004>\n", "profileP0x0004>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0004_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0004_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.profileP0x0004", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &HeaderCompressConfig_profileP0x0004_xer_, &BITSTRING_json_, &HeaderCompressConfig_profileP0x0004_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_profileP0x0003_xer_ = { {"profileP0x0003>\n", "profileP0x0003>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0003_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0003_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.profileP0x0003", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &HeaderCompressConfig_profileP0x0003_xer_, &BITSTRING_json_, &HeaderCompressConfig_profileP0x0003_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_profileP0x0002_xer_ = { {"profileP0x0002>\n", "profileP0x0002>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0002_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0002_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.profileP0x0002", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &HeaderCompressConfig_profileP0x0002_xer_, &BITSTRING_json_, &HeaderCompressConfig_profileP0x0002_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_maxCID_xer_ = { {"maxCID>\n", "maxCID>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HeaderCompressConfig_maxCID_oer_ext_arr_[0] = {}; +const int HeaderCompressConfig_maxCID_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HeaderCompressConfig_maxCID_oer_ = { -1, TRUE, 2, FALSE, 0, 0, HeaderCompressConfig_maxCID_oer_ext_arr_, 0, HeaderCompressConfig_maxCID_oer_p_}; +const TTCN_Typedescriptor_t HeaderCompressConfig_maxCID_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.maxCID", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &HeaderCompressConfig_maxCID_xer_, &OCTETSTRING_json_, &HeaderCompressConfig_maxCID_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for HeaderCompressConfig +const TTCN_Typedescriptor_t HeaderCompressConfig_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HeaderCompressConfig_iei_oer_ext_arr_[0] = {}; +const int HeaderCompressConfig_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HeaderCompressConfig_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, HeaderCompressConfig_iei_oer_ext_arr_, 0, HeaderCompressConfig_iei_oer_p_}; +const TTCN_Typedescriptor_t HeaderCompressConfig_iei_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &HeaderCompressConfig_iei_xer_, &OCTETSTRING_json_, &HeaderCompressConfig_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParamsType_xer_ = { {"addHeaderCompressContextSetupParamsType>\n", "addHeaderCompressContextSetupParamsType>\n"}, {41, 41}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HeaderCompressConfig_addHeaderCompressContextSetupParamsType_oer_ext_arr_[0] = {}; +const int HeaderCompressConfig_addHeaderCompressContextSetupParamsType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParamsType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, HeaderCompressConfig_addHeaderCompressContextSetupParamsType_oer_ext_arr_, 0, HeaderCompressConfig_addHeaderCompressContextSetupParamsType_oer_p_}; +const TTCN_Typedescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParamsType_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.addHeaderCompressContextSetupParamsType", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &HeaderCompressConfig_addHeaderCompressContextSetupParamsType_xer_, &OCTETSTRING_json_, &HeaderCompressConfig_addHeaderCompressContextSetupParamsType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParams_xer_ = { {"addHeaderCompressContextSetupParams>\n", "addHeaderCompressContextSetupParams>\n"}, {37, 37}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HeaderCompressConfig_addHeaderCompressContextSetupParams_oer_ext_arr_[0] = {}; +const int HeaderCompressConfig_addHeaderCompressContextSetupParams_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParams_oer_ = { -1, TRUE, -1, FALSE, 0, 0, HeaderCompressConfig_addHeaderCompressContextSetupParams_oer_ext_arr_, 0, HeaderCompressConfig_addHeaderCompressContextSetupParams_oer_p_}; +const TTCN_Typedescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParams_descr_ = { "@EPS_NAS_TypeDefs.HeaderCompressConfig.addHeaderCompressContextSetupParams", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &HeaderCompressConfig_addHeaderCompressContextSetupParams_xer_, &OCTETSTRING_json_, &HeaderCompressConfig_addHeaderCompressContextSetupParams_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__APN__AMBR_unitDL_xer_ = { {"unitDL>\n", "unitDL>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__APN__AMBR_unitDL_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__APN__AMBR_unitDL_descr_ = { "@EPS_NAS_TypeDefs.Extd_APN_AMBR.unitDL", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__APN__AMBR_unitDL_xer_, &BITSTRING_json_, &Extd__APN__AMBR_unitDL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__APN__AMBR_downlink__1_xer_ = { {"downlink_1>\n", "downlink_1>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__APN__AMBR_downlink__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__APN__AMBR_downlink__1_descr_ = { "@EPS_NAS_TypeDefs.Extd_APN_AMBR.downlink_1", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__APN__AMBR_downlink__1_xer_, &BITSTRING_json_, &Extd__APN__AMBR_downlink__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__APN__AMBR_downlink__2_xer_ = { {"downlink_2>\n", "downlink_2>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__APN__AMBR_downlink__2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__APN__AMBR_downlink__2_descr_ = { "@EPS_NAS_TypeDefs.Extd_APN_AMBR.downlink_2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__APN__AMBR_downlink__2_xer_, &BITSTRING_json_, &Extd__APN__AMBR_downlink__2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__APN__AMBR_unitUL_xer_ = { {"unitUL>\n", "unitUL>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__APN__AMBR_unitUL_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__APN__AMBR_unitUL_descr_ = { "@EPS_NAS_TypeDefs.Extd_APN_AMBR.unitUL", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__APN__AMBR_unitUL_xer_, &BITSTRING_json_, &Extd__APN__AMBR_unitUL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__APN__AMBR_uplink__1_xer_ = { {"uplink_1>\n", "uplink_1>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__APN__AMBR_uplink__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__APN__AMBR_uplink__1_descr_ = { "@EPS_NAS_TypeDefs.Extd_APN_AMBR.uplink_1", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__APN__AMBR_uplink__1_xer_, &BITSTRING_json_, &Extd__APN__AMBR_uplink__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__APN__AMBR_uplink__2_xer_ = { {"uplink_2>\n", "uplink_2>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__APN__AMBR_uplink__2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__APN__AMBR_uplink__2_descr_ = { "@EPS_NAS_TypeDefs.Extd_APN_AMBR.uplink_2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__APN__AMBR_uplink__2_xer_, &BITSTRING_json_, &Extd__APN__AMBR_uplink__2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Extd__APN__AMBR +const TTCN_Typedescriptor_t Extd__APN__AMBR_descr_ = { "@EPS_NAS_TypeDefs.Extd_APN_AMBR", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__APN__AMBR_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Extd__APN__AMBR_iei_oer_ext_arr_[0] = {}; +const int Extd__APN__AMBR_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Extd__APN__AMBR_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Extd__APN__AMBR_iei_oer_ext_arr_, 0, Extd__APN__AMBR_iei_oer_p_}; +const TTCN_Typedescriptor_t Extd__APN__AMBR_iei_descr_ = { "@EPS_NAS_TypeDefs.Extd_APN_AMBR.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Extd__APN__AMBR_iei_xer_, &OCTETSTRING_json_, &Extd__APN__AMBR_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__APN__AMBR_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Extd__APN__AMBR_iel_oer_ext_arr_[0] = {}; +const int Extd__APN__AMBR_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Extd__APN__AMBR_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Extd__APN__AMBR_iel_oer_ext_arr_, 0, Extd__APN__AMBR_iel_oer_p_}; +const TTCN_Typedescriptor_t Extd__APN__AMBR_iel_descr_ = { "@EPS_NAS_TypeDefs.Extd_APN_AMBR.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Extd__APN__AMBR_iel_xer_, &OCTETSTRING_json_, &Extd__APN__AMBR_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REJECT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &BEARER__RESOURCE__ALLOCATION__REJECT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &BEARER__RESOURCE__ALLOCATION__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &BEARER__RESOURCE__ALLOCATION__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &BEARER__RESOURCE__ALLOCATION__REJECT_messageType_xer_, &BITSTRING_json_, &BEARER__RESOURCE__ALLOCATION__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for BEARER__RESOURCE__ALLOCATION__REJECT +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REQUEST.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &BEARER__RESOURCE__ALLOCATION__REQUEST_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &BEARER__RESOURCE__ALLOCATION__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &BEARER__RESOURCE__ALLOCATION__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &BEARER__RESOURCE__ALLOCATION__REQUEST_messageType_xer_, &BITSTRING_json_, &BEARER__RESOURCE__ALLOCATION__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &BEARER__RESOURCE__ALLOCATION__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for BEARER__RESOURCE__ALLOCATION__REQUEST +const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_ALLOCATION_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REJECT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &BEARER__RESOURCE__MODIFICATION__REJECT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &BEARER__RESOURCE__MODIFICATION__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &BEARER__RESOURCE__MODIFICATION__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &BEARER__RESOURCE__MODIFICATION__REJECT_messageType_xer_, &BITSTRING_json_, &BEARER__RESOURCE__MODIFICATION__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for BEARER__RESOURCE__MODIFICATION__REJECT +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REQUEST.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &BEARER__RESOURCE__MODIFICATION__REQUEST_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &BEARER__RESOURCE__MODIFICATION__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &BEARER__RESOURCE__MODIFICATION__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &BEARER__RESOURCE__MODIFICATION__REQUEST_messageType_xer_, &BITSTRING_json_, &BEARER__RESOURCE__MODIFICATION__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &BEARER__RESOURCE__MODIFICATION__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for BEARER__RESOURCE__MODIFICATION__REQUEST +const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.BEARER_RESOURCE_MODIFICATION_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_, 0, DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_messageType_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_, &BITSTRING_json_, &DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_, &BITSTRING_json_, &DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST +const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__DUMMY__MESSAGE_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ESM_DUMMY_MESSAGE.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ESM__DUMMY__MESSAGE_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__DUMMY__MESSAGE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__DUMMY__MESSAGE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ESM_DUMMY_MESSAGE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ESM__DUMMY__MESSAGE_protocolDiscriminator_xer_, &BITSTRING_json_, &ESM__DUMMY__MESSAGE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_oer_ext_arr_, 0, ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ESM_DUMMY_MESSAGE.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__DUMMY__MESSAGE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__DUMMY__MESSAGE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_messageType_descr_ = { "@EPS_NAS_TypeDefs.ESM_DUMMY_MESSAGE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ESM__DUMMY__MESSAGE_messageType_xer_, &BITSTRING_json_, &ESM__DUMMY__MESSAGE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ESM__DUMMY__MESSAGE +const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_descr_ = { "@EPS_NAS_TypeDefs.ESM_DUMMY_MESSAGE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__INFORMATION__REQUEST_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_REQUEST.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ESM__INFORMATION__REQUEST_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__INFORMATION__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__INFORMATION__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ESM__INFORMATION__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &ESM__INFORMATION__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__INFORMATION__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__INFORMATION__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ESM__INFORMATION__REQUEST_messageType_xer_, &BITSTRING_json_, &ESM__INFORMATION__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ESM__INFORMATION__REQUEST +const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__INFORMATION__RESPONSE_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_RESPONSE.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ESM__INFORMATION__RESPONSE_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__INFORMATION__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__INFORMATION__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ESM__INFORMATION__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &ESM__INFORMATION__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_oer_ext_arr_, 0, ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_RESPONSE.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__INFORMATION__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__INFORMATION__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_messageType_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ESM__INFORMATION__RESPONSE_messageType_xer_, &BITSTRING_json_, &ESM__INFORMATION__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ESM__INFORMATION__RESPONSE +const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_descr_ = { "@EPS_NAS_TypeDefs.ESM_INFORMATION_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__STATUS_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ESM__STATUS_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ESM_STATUS.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ESM__STATUS_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__STATUS_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__STATUS_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__STATUS_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ESM_STATUS.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ESM__STATUS_protocolDiscriminator_xer_, &BITSTRING_json_, &ESM__STATUS_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__STATUS_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ESM__STATUS_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ESM__STATUS_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ESM__STATUS_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ESM__STATUS_procedureTransactionIdentifier_oer_ext_arr_, 0, ESM__STATUS_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ESM__STATUS_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ESM_STATUS.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ESM__STATUS_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ESM__STATUS_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__STATUS_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__STATUS_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__STATUS_messageType_descr_ = { "@EPS_NAS_TypeDefs.ESM_STATUS.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ESM__STATUS_messageType_xer_, &BITSTRING_json_, &ESM__STATUS_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ESM__STATUS +const TTCN_Typedescriptor_t ESM__STATUS_descr_ = { "@EPS_NAS_TypeDefs.ESM_STATUS", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_ACCEPT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &MODIFY__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MODIFY__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &MODIFY__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_, 0, MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_ACCEPT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_messageType_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &MODIFY__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_, &BITSTRING_json_, &MODIFY__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MODIFY__EPS__BEARER__CONTEXT__ACCEPT +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REJECT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &MODIFY__EPS__BEARER__CONTEXT__REJECT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MODIFY__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &MODIFY__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &MODIFY__EPS__BEARER__CONTEXT__REJECT_messageType_xer_, &BITSTRING_json_, &MODIFY__EPS__BEARER__CONTEXT__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MODIFY__EPS__BEARER__CONTEXT__REJECT +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REQUEST.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &MODIFY__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MODIFY__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &MODIFY__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &MODIFY__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_, &BITSTRING_json_, &MODIFY__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MODIFY__EPS__BEARER__CONTEXT__REQUEST +const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.MODIFY_EPS_BEARER_CONTEXT_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NOTIFICATION_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NOTIFICATION_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.NOTIFICATION.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NOTIFICATION_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NOTIFICATION_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NOTIFICATION_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NOTIFICATION_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.NOTIFICATION.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NOTIFICATION_protocolDiscriminator_xer_, &BITSTRING_json_, &NOTIFICATION_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NOTIFICATION_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NOTIFICATION_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NOTIFICATION_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NOTIFICATION_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NOTIFICATION_procedureTransactionIdentifier_oer_ext_arr_, 0, NOTIFICATION_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NOTIFICATION_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.NOTIFICATION.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NOTIFICATION_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NOTIFICATION_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NOTIFICATION_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NOTIFICATION_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NOTIFICATION_messageType_descr_ = { "@EPS_NAS_TypeDefs.NOTIFICATION.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NOTIFICATION_messageType_xer_, &BITSTRING_json_, &NOTIFICATION_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NotificationIndicator_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NotificationIndicator_iel_oer_ext_arr_[0] = {}; +const int NotificationIndicator_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NotificationIndicator_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NotificationIndicator_iel_oer_ext_arr_, 0, NotificationIndicator_iel_oer_p_}; +const TTCN_Typedescriptor_t NotificationIndicator_iel_descr_ = { "@EPS_NAS_TypeDefs.NotificationIndicator.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NotificationIndicator_iel_xer_, &OCTETSTRING_json_, &NotificationIndicator_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NotificationIndicator_notificationInd_xer_ = { {"notificationInd>\n", "notificationInd>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NotificationIndicator_notificationInd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NotificationIndicator_notificationInd_descr_ = { "@EPS_NAS_TypeDefs.NotificationIndicator.notificationInd", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NotificationIndicator_notificationInd_xer_, &BITSTRING_json_, &NotificationIndicator_notificationInd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NotificationIndicator +const TTCN_Typedescriptor_t NotificationIndicator_descr_ = { "@EPS_NAS_TypeDefs.NotificationIndicator", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NotificationIndicator_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NotificationIndicator_iei_oer_ext_arr_[0] = {}; +const int NotificationIndicator_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NotificationIndicator_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NotificationIndicator_iei_oer_ext_arr_, 0, NotificationIndicator_iei_oer_p_}; +const TTCN_Typedescriptor_t NotificationIndicator_iei_descr_ = { "@EPS_NAS_TypeDefs.NotificationIndicator.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NotificationIndicator_iei_xer_, &OCTETSTRING_json_, &NotificationIndicator_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NOTIFICATION +const TTCN_Typedescriptor_t NOTIFICATION_descr_ = { "@EPS_NAS_TypeDefs.NOTIFICATION", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__CONNECTIVITY__REJECT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REJECT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &PDN__CONNECTIVITY__REJECT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__CONNECTIVITY__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PDN__CONNECTIVITY__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &PDN__CONNECTIVITY__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__CONNECTIVITY__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &PDN__CONNECTIVITY__REJECT_messageType_xer_, &BITSTRING_json_, &PDN__CONNECTIVITY__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDN__CONNECTIVITY__REJECT +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__CONNECTIVITY__REQUEST_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REQUEST.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &PDN__CONNECTIVITY__REQUEST_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__CONNECTIVITY__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PDN__CONNECTIVITY__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &PDN__CONNECTIVITY__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__CONNECTIVITY__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &PDN__CONNECTIVITY__REQUEST_messageType_xer_, &BITSTRING_json_, &PDN__CONNECTIVITY__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__Type_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__Type_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__Type_spare_descr_ = { "@EPS_NAS_TypeDefs.PDN_Type.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &PDN__Type_spare_xer_, &BITSTRING_json_, &PDN__Type_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__Type_typeValue_xer_ = { {"typeValue>\n", "typeValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__Type_typeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__Type_typeValue_descr_ = { "@EPS_NAS_TypeDefs.PDN_Type.typeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &PDN__Type_typeValue_xer_, &BITSTRING_json_, &PDN__Type_typeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDN__Type +const TTCN_Typedescriptor_t PDN__Type_descr_ = { "@EPS_NAS_TypeDefs.PDN_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDN__CONNECTIVITY__REQUEST +const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.PDN_CONNECTIVITY_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__InfoTransferFlag_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__InfoTransferFlag_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__InfoTransferFlag_spare_descr_ = { "@EPS_NAS_TypeDefs.ESM_InfoTransferFlag.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &ESM__InfoTransferFlag_spare_xer_, &BITSTRING_json_, &ESM__InfoTransferFlag_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__InfoTransferFlag_eitValue_xer_ = { {"eitValue>\n", "eitValue>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__InfoTransferFlag_eitValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__InfoTransferFlag_eitValue_descr_ = { "@EPS_NAS_TypeDefs.ESM_InfoTransferFlag.eitValue", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ESM__InfoTransferFlag_eitValue_xer_, &BITSTRING_json_, &ESM__InfoTransferFlag_eitValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ESM__InfoTransferFlag +const TTCN_Typedescriptor_t ESM__InfoTransferFlag_descr_ = { "@EPS_NAS_TypeDefs.ESM_InfoTransferFlag", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__InfoTransferFlag_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ESM__InfoTransferFlag_iei_descr_ = { "@EPS_NAS_TypeDefs.ESM_InfoTransferFlag.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ESM__InfoTransferFlag_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__DISCONNECT__REJECT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REJECT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &PDN__DISCONNECT__REJECT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__DISCONNECT__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__DISCONNECT__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PDN__DISCONNECT__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &PDN__DISCONNECT__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__DISCONNECT__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__DISCONNECT__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_messageType_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &PDN__DISCONNECT__REJECT_messageType_xer_, &BITSTRING_json_, &PDN__DISCONNECT__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDN__DISCONNECT__REJECT +const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__DISCONNECT__REQUEST_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REQUEST.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &PDN__DISCONNECT__REQUEST_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__DISCONNECT__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__DISCONNECT__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PDN__DISCONNECT__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &PDN__DISCONNECT__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__DISCONNECT__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__DISCONNECT__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_messageType_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &PDN__DISCONNECT__REQUEST_messageType_xer_, &BITSTRING_json_, &PDN__DISCONNECT__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__DISCONNECT__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_spareHalfOctet_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &PDN__DISCONNECT__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDN__DISCONNECT__REQUEST +const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_descr_ = { "@EPS_NAS_TypeDefs.PDN_DISCONNECT_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REMOTE__UE__REPORT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t REMOTE__UE__REPORT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &REMOTE__UE__REPORT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REMOTE__UE__REPORT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t REMOTE__UE__REPORT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t REMOTE__UE__REPORT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &REMOTE__UE__REPORT_protocolDiscriminator_xer_, &BITSTRING_json_, &REMOTE__UE__REPORT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REMOTE__UE__REPORT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int REMOTE__UE__REPORT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int REMOTE__UE__REPORT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t REMOTE__UE__REPORT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, REMOTE__UE__REPORT_procedureTransactionIdentifier_oer_ext_arr_, 0, REMOTE__UE__REPORT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t REMOTE__UE__REPORT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &REMOTE__UE__REPORT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &REMOTE__UE__REPORT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REMOTE__UE__REPORT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t REMOTE__UE__REPORT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t REMOTE__UE__REPORT_messageType_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &REMOTE__UE__REPORT_messageType_xer_, &BITSTRING_json_, &REMOTE__UE__REPORT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for REMOTE__UE__REPORT +const TTCN_Typedescriptor_t REMOTE__UE__REPORT_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RemoteUEContextList_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RemoteUEContextList_iel_oer_ext_arr_[0] = {}; +const int RemoteUEContextList_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RemoteUEContextList_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, RemoteUEContextList_iel_oer_ext_arr_, 0, RemoteUEContextList_iel_oer_p_}; +const TTCN_Typedescriptor_t RemoteUEContextList_iel_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContextList.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &RemoteUEContextList_iel_xer_, &OCTETSTRING_json_, &RemoteUEContextList_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RemoteUEContextList_numberOfContexts_xer_ = { {"numberOfContexts>\n", "numberOfContexts>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RemoteUEContextList_numberOfContexts_oer_ext_arr_[0] = {}; +const int RemoteUEContextList_numberOfContexts_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RemoteUEContextList_numberOfContexts_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RemoteUEContextList_numberOfContexts_oer_ext_arr_, 0, RemoteUEContextList_numberOfContexts_oer_p_}; +const TTCN_Typedescriptor_t RemoteUEContextList_numberOfContexts_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContextList.numberOfContexts", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RemoteUEContextList_numberOfContexts_xer_, &OCTETSTRING_json_, &RemoteUEContextList_numberOfContexts_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ListOfRemoteUEContext +const TTCN_Typedescriptor_t ListOfRemoteUEContext_descr_ = { "@EPS_NAS_TypeDefs.ListOfRemoteUEContext", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &RemoteUEContext_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RemoteUEContext_lengthOfContext_xer_ = { {"lengthOfContext>\n", "lengthOfContext>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RemoteUEContext_lengthOfContext_oer_ext_arr_[0] = {}; +const int RemoteUEContext_lengthOfContext_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RemoteUEContext_lengthOfContext_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RemoteUEContext_lengthOfContext_oer_ext_arr_, 0, RemoteUEContext_lengthOfContext_oer_p_}; +const TTCN_Typedescriptor_t RemoteUEContext_lengthOfContext_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContext.lengthOfContext", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RemoteUEContext_lengthOfContext_xer_, &OCTETSTRING_json_, &RemoteUEContext_lengthOfContext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RemoteUEContext_numberOfUserIds_xer_ = { {"numberOfUserIds>\n", "numberOfUserIds>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RemoteUEContext_numberOfUserIds_oer_ext_arr_[0] = {}; +const int RemoteUEContext_numberOfUserIds_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RemoteUEContext_numberOfUserIds_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RemoteUEContext_numberOfUserIds_oer_ext_arr_, 0, RemoteUEContext_numberOfUserIds_oer_p_}; +const TTCN_Typedescriptor_t RemoteUEContext_numberOfUserIds_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContext.numberOfUserIds", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RemoteUEContext_numberOfUserIds_xer_, &OCTETSTRING_json_, &RemoteUEContext_numberOfUserIds_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UserIdentityList +const TTCN_Typedescriptor_t UserIdentityList_descr_ = { "@EPS_NAS_TypeDefs.UserIdentityList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &UserIdentity_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UserIdentity_lengthOfUserId_xer_ = { {"lengthOfUserId>\n", "lengthOfUserId>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UserIdentity_lengthOfUserId_oer_ext_arr_[0] = {}; +const int UserIdentity_lengthOfUserId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UserIdentity_lengthOfUserId_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UserIdentity_lengthOfUserId_oer_ext_arr_, 0, UserIdentity_lengthOfUserId_oer_p_}; +const TTCN_Typedescriptor_t UserIdentity_lengthOfUserId_descr_ = { "@EPS_NAS_TypeDefs.UserIdentity.lengthOfUserId", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UserIdentity_lengthOfUserId_xer_, &OCTETSTRING_json_, &UserIdentity_lengthOfUserId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UserIdentity_firstDigit_xer_ = { {"firstDigit>\n", "firstDigit>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UserIdentity_firstDigit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UserIdentity_firstDigit_descr_ = { "@EPS_NAS_TypeDefs.UserIdentity.firstDigit", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UserIdentity_firstDigit_xer_, &BITSTRING_json_, &UserIdentity_firstDigit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UserIdentity_odd__even_xer_ = { {"odd_even>\n", "odd_even>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UserIdentity_odd__even_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UserIdentity_odd__even_descr_ = { "@EPS_NAS_TypeDefs.UserIdentity.odd_even", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UserIdentity_odd__even_xer_, &BITSTRING_json_, &UserIdentity_odd__even_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UserIdentity_typeOfUserId_xer_ = { {"typeOfUserId>\n", "typeOfUserId>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UserIdentity_typeOfUserId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UserIdentity_typeOfUserId_descr_ = { "@EPS_NAS_TypeDefs.UserIdentity.typeOfUserId", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &UserIdentity_typeOfUserId_xer_, &BITSTRING_json_, &UserIdentity_typeOfUserId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UserIdentity_digits +const TTCN_Typedescriptor_t UserIdentity_digits_descr_ = { "@EPS_NAS_TypeDefs.UserIdentity.digits", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommonDefs::B4__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UserIdentity_digits_0_xer_ = { {"B4_Type>\n", "B4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UserIdentity_digits_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UserIdentity_digits_0_descr_ = { "@EPS_NAS_TypeDefs.UserIdentity.digits.", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UserIdentity_digits_0_xer_, &BITSTRING_json_, &UserIdentity_digits_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UserIdentity +const TTCN_Typedescriptor_t UserIdentity_descr_ = { "@EPS_NAS_TypeDefs.UserIdentity", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RemoteUEContext_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RemoteUEContext_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RemoteUEContext_spare_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContext.spare", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &RemoteUEContext_spare_xer_, &BITSTRING_json_, &RemoteUEContext_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RemoteUEContext_addressType_xer_ = { {"addressType>\n", "addressType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RemoteUEContext_addressType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RemoteUEContext_addressType_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContext.addressType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &RemoteUEContext_addressType_xer_, &BITSTRING_json_, &RemoteUEContext_addressType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RemoteUEContext +const TTCN_Typedescriptor_t RemoteUEContext_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContext", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RemoteUEContext_addressInfo_xer_ = { {"addressInfo>\n", "addressInfo>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RemoteUEContext_addressInfo_oer_ext_arr_[0] = {}; +const int RemoteUEContext_addressInfo_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RemoteUEContext_addressInfo_oer_ = { -1, TRUE, -1, FALSE, 0, 0, RemoteUEContext_addressInfo_oer_ext_arr_, 0, RemoteUEContext_addressInfo_oer_p_}; +const TTCN_Typedescriptor_t RemoteUEContext_addressInfo_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContext.addressInfo", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &RemoteUEContext_addressInfo_xer_, &OCTETSTRING_json_, &RemoteUEContext_addressInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RemoteUEContextList +const TTCN_Typedescriptor_t RemoteUEContextList_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContextList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RemoteUEContextList_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RemoteUEContextList_iei_oer_ext_arr_[0] = {}; +const int RemoteUEContextList_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RemoteUEContextList_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RemoteUEContextList_iei_oer_ext_arr_, 0, RemoteUEContextList_iei_oer_p_}; +const TTCN_Typedescriptor_t RemoteUEContextList_iei_descr_ = { "@EPS_NAS_TypeDefs.RemoteUEContextList.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RemoteUEContextList_iei_xer_, &OCTETSTRING_json_, &RemoteUEContextList_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PKMF__Address_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PKMF__Address_iel_oer_ext_arr_[0] = {}; +const int PKMF__Address_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PKMF__Address_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PKMF__Address_iel_oer_ext_arr_, 0, PKMF__Address_iel_oer_p_}; +const TTCN_Typedescriptor_t PKMF__Address_iel_descr_ = { "@EPS_NAS_TypeDefs.PKMF_Address.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PKMF__Address_iel_xer_, &OCTETSTRING_json_, &PKMF__Address_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PKMF__Address_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PKMF__Address_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PKMF__Address_spare_descr_ = { "@EPS_NAS_TypeDefs.PKMF_Address.spare", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &PKMF__Address_spare_xer_, &BITSTRING_json_, &PKMF__Address_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PKMF__Address_addressType_xer_ = { {"addressType>\n", "addressType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PKMF__Address_addressType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PKMF__Address_addressType_descr_ = { "@EPS_NAS_TypeDefs.PKMF_Address.addressType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &PKMF__Address_addressType_xer_, &BITSTRING_json_, &PKMF__Address_addressType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PKMF__Address_addressInfo_xer_ = { {"addressInfo>\n", "addressInfo>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PKMF__Address_addressInfo_oer_ext_arr_[0] = {}; +const int PKMF__Address_addressInfo_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PKMF__Address_addressInfo_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PKMF__Address_addressInfo_oer_ext_arr_, 0, PKMF__Address_addressInfo_oer_p_}; +const TTCN_Typedescriptor_t PKMF__Address_addressInfo_descr_ = { "@EPS_NAS_TypeDefs.PKMF_Address.addressInfo", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &PKMF__Address_addressInfo_xer_, &OCTETSTRING_json_, &PKMF__Address_addressInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PKMF__Address +const TTCN_Typedescriptor_t PKMF__Address_descr_ = { "@EPS_NAS_TypeDefs.PKMF_Address", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PKMF__Address_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PKMF__Address_iei_oer_ext_arr_[0] = {}; +const int PKMF__Address_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PKMF__Address_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PKMF__Address_iei_oer_ext_arr_, 0, PKMF__Address_iei_oer_p_}; +const TTCN_Typedescriptor_t PKMF__Address_iei_descr_ = { "@EPS_NAS_TypeDefs.PKMF_Address.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PKMF__Address_iei_xer_, &OCTETSTRING_json_, &PKMF__Address_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REMOTE__UE__REPORT__RESPONSE_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT_RESPONSE.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &REMOTE__UE__REPORT__RESPONSE_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REMOTE__UE__REPORT__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t REMOTE__UE__REPORT__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &REMOTE__UE__REPORT__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &REMOTE__UE__REPORT__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_oer_ext_arr_, 0, REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT_RESPONSE.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REMOTE__UE__REPORT__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t REMOTE__UE__REPORT__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_messageType_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &REMOTE__UE__REPORT__RESPONSE_messageType_xer_, &BITSTRING_json_, &REMOTE__UE__REPORT__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for REMOTE__UE__REPORT__RESPONSE +const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_descr_ = { "@EPS_NAS_TypeDefs.REMOTE_UE_REPORT_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__DATA__TRANSPORT_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_epsBearerId_descr_ = { "@EPS_NAS_TypeDefs.ESM_DATA_TRANSPORT.epsBearerId", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ESM__DATA__TRANSPORT_epsBearerId_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__DATA__TRANSPORT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__DATA__TRANSPORT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.ESM_DATA_TRANSPORT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ESM__DATA__TRANSPORT_protocolDiscriminator_xer_, &BITSTRING_json_, &ESM__DATA__TRANSPORT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__DATA__TRANSPORT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ESM__DATA__TRANSPORT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ESM__DATA__TRANSPORT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ESM__DATA__TRANSPORT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ESM__DATA__TRANSPORT_procedureTransactionIdentifier_oer_ext_arr_, 0, ESM__DATA__TRANSPORT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_procedureTransactionIdentifier_descr_ = { "@EPS_NAS_TypeDefs.ESM_DATA_TRANSPORT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ESM__DATA__TRANSPORT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ESM__DATA__TRANSPORT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ESM__DATA__TRANSPORT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ESM__DATA__TRANSPORT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_messageType_descr_ = { "@EPS_NAS_TypeDefs.ESM_DATA_TRANSPORT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ESM__DATA__TRANSPORT_messageType_xer_, &BITSTRING_json_, &ESM__DATA__TRANSPORT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UserDataContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UserDataContainer_iel_oer_ext_arr_[0] = {}; +const int UserDataContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UserDataContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, UserDataContainer_iel_oer_ext_arr_, 0, UserDataContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t UserDataContainer_iel_descr_ = { "@EPS_NAS_TypeDefs.UserDataContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &UserDataContainer_iel_xer_, &OCTETSTRING_json_, &UserDataContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UserDataContainer_dataContainer_xer_ = { {"dataContainer>\n", "dataContainer>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UserDataContainer_dataContainer_oer_ext_arr_[0] = {}; +const int UserDataContainer_dataContainer_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UserDataContainer_dataContainer_oer_ = { -1, TRUE, -1, FALSE, 0, 0, UserDataContainer_dataContainer_oer_ext_arr_, 0, UserDataContainer_dataContainer_oer_p_}; +const TTCN_Typedescriptor_t UserDataContainer_dataContainer_descr_ = { "@EPS_NAS_TypeDefs.UserDataContainer.dataContainer", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &UserDataContainer_dataContainer_xer_, &OCTETSTRING_json_, &UserDataContainer_dataContainer_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UserDataContainer +const TTCN_Typedescriptor_t UserDataContainer_descr_ = { "@EPS_NAS_TypeDefs.UserDataContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UserDataContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UserDataContainer_iei_oer_ext_arr_[0] = {}; +const int UserDataContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UserDataContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UserDataContainer_iei_oer_ext_arr_, 0, UserDataContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t UserDataContainer_iei_descr_ = { "@EPS_NAS_TypeDefs.UserDataContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UserDataContainer_iei_xer_, &OCTETSTRING_json_, &UserDataContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ESM__DATA__TRANSPORT +const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_descr_ = { "@EPS_NAS_TypeDefs.ESM_DATA_TRANSPORT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParametersfromEUTRA_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityParametersfromEUTRA_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityParametersfromEUTRA_spare_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParametersfromEUTRA.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NAS__SecurityParametersfromEUTRA_spare_xer_, &BITSTRING_json_, &NAS__SecurityParametersfromEUTRA_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParametersfromEUTRA_dl__nasCountValue_xer_ = { {"dl_nasCountValue>\n", "dl_nasCountValue>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityParametersfromEUTRA_dl__nasCountValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityParametersfromEUTRA_dl__nasCountValue_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParametersfromEUTRA.dl_nasCountValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NAS__SecurityParametersfromEUTRA_dl__nasCountValue_xer_, &BITSTRING_json_, &NAS__SecurityParametersfromEUTRA_dl__nasCountValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NAS__SecurityParametersfromEUTRA +const TTCN_Typedescriptor_t NAS__SecurityParametersfromEUTRA_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParametersfromEUTRA", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParametersfromEUTRA_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__SecurityParametersfromEUTRA_iei_oer_ext_arr_[0] = {}; +const int NAS__SecurityParametersfromEUTRA_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__SecurityParametersfromEUTRA_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NAS__SecurityParametersfromEUTRA_iei_oer_ext_arr_, 0, NAS__SecurityParametersfromEUTRA_iei_oer_p_}; +const TTCN_Typedescriptor_t NAS__SecurityParametersfromEUTRA_iei_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParametersfromEUTRA.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NAS__SecurityParametersfromEUTRA_iei_xer_, &OCTETSTRING_json_, &NAS__SecurityParametersfromEUTRA_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParameterstoEUTRA_noncevalue_xer_ = { {"noncevalue>\n", "noncevalue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__SecurityParameterstoEUTRA_noncevalue_oer_ext_arr_[0] = {}; +const int NAS__SecurityParameterstoEUTRA_noncevalue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_noncevalue_oer_ = { -1, TRUE, 4, FALSE, 0, 0, NAS__SecurityParameterstoEUTRA_noncevalue_oer_ext_arr_, 0, NAS__SecurityParameterstoEUTRA_noncevalue_oer_p_}; +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_noncevalue_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA.noncevalue", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &NAS__SecurityParameterstoEUTRA_noncevalue_xer_, &OCTETSTRING_json_, &NAS__SecurityParameterstoEUTRA_noncevalue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParameterstoEUTRA_spare1_xer_ = { {"spare1>\n", "spare1>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_spare1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_spare1_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA.spare1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NAS__SecurityParameterstoEUTRA_spare1_xer_, &BITSTRING_json_, &NAS__SecurityParameterstoEUTRA_spare1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParameterstoEUTRA_cipherAlgorithmType_xer_ = { {"cipherAlgorithmType>\n", "cipherAlgorithmType>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_cipherAlgorithmType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_cipherAlgorithmType_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA.cipherAlgorithmType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NAS__SecurityParameterstoEUTRA_cipherAlgorithmType_xer_, &BITSTRING_json_, &NAS__SecurityParameterstoEUTRA_cipherAlgorithmType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParameterstoEUTRA_spare2_xer_ = { {"spare2>\n", "spare2>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_spare2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_spare2_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA.spare2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NAS__SecurityParameterstoEUTRA_spare2_xer_, &BITSTRING_json_, &NAS__SecurityParameterstoEUTRA_spare2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParameterstoEUTRA_integrityAlgorithmType_xer_ = { {"integrityAlgorithmType>\n", "integrityAlgorithmType>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_integrityAlgorithmType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_integrityAlgorithmType_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA.integrityAlgorithmType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NAS__SecurityParameterstoEUTRA_integrityAlgorithmType_xer_, &BITSTRING_json_, &NAS__SecurityParameterstoEUTRA_integrityAlgorithmType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParameterstoEUTRA_spare3_xer_ = { {"spare3>\n", "spare3>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_spare3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_spare3_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA.spare3", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NAS__SecurityParameterstoEUTRA_spare3_xer_, &BITSTRING_json_, &NAS__SecurityParameterstoEUTRA_spare3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParameterstoEUTRA_tsc_xer_ = { {"tsc>\n", "tsc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_tsc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_tsc_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA.tsc", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NAS__SecurityParameterstoEUTRA_tsc_xer_, &BITSTRING_json_, &NAS__SecurityParameterstoEUTRA_tsc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParameterstoEUTRA_naskeysetid_xer_ = { {"naskeysetid>\n", "naskeysetid>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_naskeysetid_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_naskeysetid_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA.naskeysetid", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NAS__SecurityParameterstoEUTRA_naskeysetid_xer_, &BITSTRING_json_, &NAS__SecurityParameterstoEUTRA_naskeysetid_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NAS__SecurityParameterstoEUTRA +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityParameterstoEUTRA_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__SecurityParameterstoEUTRA_iei_oer_ext_arr_[0] = {}; +const int NAS__SecurityParameterstoEUTRA_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NAS__SecurityParameterstoEUTRA_iei_oer_ext_arr_, 0, NAS__SecurityParameterstoEUTRA_iei_oer_p_}; +const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_iei_descr_ = { "@EPS_NAS_TypeDefs.NAS_SecurityParameterstoEUTRA.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NAS__SecurityParameterstoEUTRA_iei_xer_, &OCTETSTRING_json_, &NAS__SecurityParameterstoEUTRA_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EllipsoidPointWithAltitude__Type_xer_ = { {"EllipsoidPointWithAltitude_Type>\n", "EllipsoidPointWithAltitude_Type>\n"}, {33, 33}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EllipsoidPointWithAltitude__Type_oer_ext_arr_[0] = {}; +const int EllipsoidPointWithAltitude__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EllipsoidPointWithAltitude__Type_oer_ = { -1, TRUE, 8, FALSE, 0, 0, EllipsoidPointWithAltitude__Type_oer_ext_arr_, 0, EllipsoidPointWithAltitude__Type_oer_p_}; +const TTCN_Typedescriptor_t EllipsoidPointWithAltitude__Type_descr_ = { "@EPS_NAS_TypeDefs.EllipsoidPointWithAltitude_Type", &OCTETSTRING_ber_, &CommonDefs::O8__Type_raw_, &OCTETSTRING_text_, &EllipsoidPointWithAltitude__Type_xer_, &OCTETSTRING_json_, &EllipsoidPointWithAltitude__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HorizontalVelocity__Type_xer_ = { {"HorizontalVelocity_Type>\n", "HorizontalVelocity_Type>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HorizontalVelocity__Type_oer_ext_arr_[0] = {}; +const int HorizontalVelocity__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HorizontalVelocity__Type_oer_ = { -1, TRUE, 3, FALSE, 0, 0, HorizontalVelocity__Type_oer_ext_arr_, 0, HorizontalVelocity__Type_oer_p_}; +const TTCN_Typedescriptor_t HorizontalVelocity__Type_descr_ = { "@EPS_NAS_TypeDefs.HorizontalVelocity_Type", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &HorizontalVelocity__Type_xer_, &OCTETSTRING_json_, &HorizontalVelocity__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Gnss__TOD__msec__Type_xer_ = { {"Gnss_TOD_msec_Type>\n", "Gnss_TOD_msec_Type>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Gnss__TOD__msec__Type_oer_ext_arr_[0] = {}; +const int Gnss__TOD__msec__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Gnss__TOD__msec__Type_oer_ = { -1, TRUE, 3, FALSE, 0, 0, Gnss__TOD__msec__Type_oer_ext_arr_, 0, Gnss__TOD__msec__Type_oer_p_}; +const TTCN_Typedescriptor_t Gnss__TOD__msec__Type_descr_ = { "@EPS_NAS_TypeDefs.Gnss_TOD_msec_Type", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &Gnss__TOD__msec__Type_xer_, &OCTETSTRING_json_, &Gnss__TOD__msec__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_skipIndicator_descr_ = { "@EPS_NAS_TypeDefs.UPDATE_UE_LOCATION_INFORMATION.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UPDATE__UE__LOCATION__INFORMATION_skipIndicator_xer_, &BITSTRING_json_, &UPDATE__UE__LOCATION__INFORMATION_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_protocolDiscriminator_descr_ = { "@EPS_NAS_TypeDefs.UPDATE_UE_LOCATION_INFORMATION.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UPDATE__UE__LOCATION__INFORMATION_protocolDiscriminator_xer_, &BITSTRING_json_, &UPDATE__UE__LOCATION__INFORMATION_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_messageType_descr_ = { "@EPS_NAS_TypeDefs.UPDATE_UE_LOCATION_INFORMATION.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UPDATE__UE__LOCATION__INFORMATION_messageType_xer_, &BITSTRING_json_, &UPDATE__UE__LOCATION__INFORMATION_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_xer_ = { {"ellipsoidPointWithAltitude>\n", "ellipsoidPointWithAltitude>\n"}, {28, 28}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_oer_ext_arr_[0] = {}; +const int UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_oer_ = { -1, TRUE, 8, FALSE, 0, 0, UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_oer_ext_arr_, 0, UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_oer_p_}; +const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_descr_ = { "@EPS_NAS_TypeDefs.UPDATE_UE_LOCATION_INFORMATION.ellipsoidPointWithAltitude", &OCTETSTRING_ber_, &CommonDefs::O8__Type_raw_, &OCTETSTRING_text_, &UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_xer_, &OCTETSTRING_json_, &UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_xer_ = { {"horizontalVelocity>\n", "horizontalVelocity>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_oer_ext_arr_[0] = {}; +const int UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_oer_ = { -1, TRUE, 3, FALSE, 0, 0, UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_oer_ext_arr_, 0, UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_oer_p_}; +const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_descr_ = { "@EPS_NAS_TypeDefs.UPDATE_UE_LOCATION_INFORMATION.horizontalVelocity", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_xer_, &OCTETSTRING_json_, &UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_xer_ = { {"gnss_TOD_msec>\n", "gnss_TOD_msec>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_oer_ext_arr_[0] = {}; +const int UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_oer_ = { -1, TRUE, 3, FALSE, 0, 0, UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_oer_ext_arr_, 0, UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_oer_p_}; +const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_descr_ = { "@EPS_NAS_TypeDefs.UPDATE_UE_LOCATION_INFORMATION.gnss_TOD_msec", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_xer_, &OCTETSTRING_json_, &UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UPDATE__UE__LOCATION__INFORMATION +const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_descr_ = { "@EPS_NAS_TypeDefs.UPDATE_UE_LOCATION_INFORMATION", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("EPS_NAS_TypeDefs", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_EPS_NAS_TypeDefs(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT")) { + ((const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT template")) { + ((const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT")) { + ((const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT template")) { + ((const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST")) { + ((const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST template")) { + ((const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT")) { + ((const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT template")) { + ((const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT")) { + ((const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT template")) { + ((const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST")) { + ((const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST template")) { + ((const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "APN_AMBR")) { + ((const APN__AMBR*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "APN_AMBR template")) { + ((const APN__AMBR_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATTACH_ACCEPT")) { + ((const ATTACH__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATTACH_ACCEPT template")) { + ((const ATTACH__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATTACH_COMPLETE")) { + ((const ATTACH__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATTACH_COMPLETE template")) { + ((const ATTACH__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATTACH_REJECT")) { + ((const ATTACH__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATTACH_REJECT template")) { + ((const ATTACH__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATTACH_REQUEST")) { + ((const ATTACH__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATTACH_REQUEST template")) { + ((const ATTACH__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_FAILURE")) { + ((const AUTHENTICATION__FAILURE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_FAILURE template")) { + ((const AUTHENTICATION__FAILURE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_REJECT")) { + ((const AUTHENTICATION__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_REJECT template")) { + ((const AUTHENTICATION__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_REQUEST")) { + ((const AUTHENTICATION__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_REQUEST template")) { + ((const AUTHENTICATION__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_RESPONSE")) { + ((const AUTHENTICATION__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_RESPONSE template")) { + ((const AUTHENTICATION__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalInfoReq")) { + ((const AdditionalInfoReq*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalInfoReq template")) { + ((const AdditionalInfoReq_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalUpdateResult")) { + ((const AdditionalUpdateResult*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalUpdateResult template")) { + ((const AdditionalUpdateResult_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_ALLOCATION_REJECT")) { + ((const BEARER__RESOURCE__ALLOCATION__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_ALLOCATION_REJECT template")) { + ((const BEARER__RESOURCE__ALLOCATION__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_ALLOCATION_REQUEST")) { + ((const BEARER__RESOURCE__ALLOCATION__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_ALLOCATION_REQUEST template")) { + ((const BEARER__RESOURCE__ALLOCATION__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_MODIFICATION_REJECT")) { + ((const BEARER__RESOURCE__MODIFICATION__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_MODIFICATION_REJECT template")) { + ((const BEARER__RESOURCE__MODIFICATION__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_MODIFICATION_REQUEST")) { + ((const BEARER__RESOURCE__MODIFICATION__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_MODIFICATION_REQUEST template")) { + ((const BEARER__RESOURCE__MODIFICATION__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CLI")) { + ((const CLI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CLI template")) { + ((const CLI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CONTROL_PLANE_SERVICE_REQUEST")) { + ((const CONTROL__PLANE__SERVICE__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CONTROL_PLANE_SERVICE_REQUEST template")) { + ((const CONTROL__PLANE__SERVICE__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CSFBResponse")) { + ((const CSFBResponse*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CSFBResponse template")) { + ((const CSFBResponse_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CS_SERVICE_NOTIFICATION")) { + ((const CS__SERVICE__NOTIFICATION*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CS_SERVICE_NOTIFICATION template")) { + ((const CS__SERVICE__NOTIFICATION_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CipheringKey")) { + ((const CipheringKey*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CipheringKey template")) { + ((const CipheringKey_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CipheringKeyData")) { + ((const CipheringKeyData*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CipheringKeyData template")) { + ((const CipheringKeyData_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ControlPlaneServiceType")) { + ((const ControlPlaneServiceType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ControlPlaneServiceType template")) { + ((const ControlPlaneServiceType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT")) { + ((const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT template")) { + ((const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST")) { + ((const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST template")) { + ((const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DETACH_ACCEPT")) { + ((const DETACH__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DETACH_ACCEPT template")) { + ((const DETACH__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DETACH_REQUEST_MO")) { + ((const DETACH__REQUEST__MO*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DETACH_REQUEST_MO template")) { + ((const DETACH__REQUEST__MO_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DETACH_REQUEST_MT")) { + ((const DETACH__REQUEST__MT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DETACH_REQUEST_MT template")) { + ((const DETACH__REQUEST__MT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DL_GENERIC_NAS_TRANSPORT")) { + ((const DL__GENERIC__NAS__TRANSPORT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DL_GENERIC_NAS_TRANSPORT template")) { + ((const DL__GENERIC__NAS__TRANSPORT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DL_NAS_TRANSPORT")) { + ((const DL__NAS__TRANSPORT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DL_NAS_TRANSPORT template")) { + ((const DL__NAS__TRANSPORT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EMM_Cause")) { + ((const EMM__Cause*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EMM_Cause template")) { + ((const EMM__Cause_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EMM_INFORMATION")) { + ((const EMM__INFORMATION*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EMM_INFORMATION template")) { + ((const EMM__INFORMATION_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EMM_STATUS")) { + ((const EMM__STATUS*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EMM_STATUS template")) { + ((const EMM__STATUS_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_AddReqResult")) { + ((const EPS__AddReqResult*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_AddReqResult template")) { + ((const EPS__AddReqResult_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_AttachResult")) { + ((const EPS__AttachResult*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_AttachResult template")) { + ((const EPS__AttachResult_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_AttachType")) { + ((const EPS__AttachType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_AttachType template")) { + ((const EPS__AttachType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_NetworkFeatureSupport")) { + ((const EPS__NetworkFeatureSupport*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_NetworkFeatureSupport template")) { + ((const EPS__NetworkFeatureSupport_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_ServiceType")) { + ((const EPS__ServiceType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_ServiceType template")) { + ((const EPS__ServiceType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_UpdateResult")) { + ((const EPS__UpdateResult*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_UpdateResult template")) { + ((const EPS__UpdateResult_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_UpdateType")) { + ((const EPS__UpdateType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_UpdateType template")) { + ((const EPS__UpdateType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_Cause")) { + ((const ESM__Cause*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_Cause template")) { + ((const ESM__Cause_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_DATA_TRANSPORT")) { + ((const ESM__DATA__TRANSPORT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_DATA_TRANSPORT template")) { + ((const ESM__DATA__TRANSPORT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_DUMMY_MESSAGE")) { + ((const ESM__DUMMY__MESSAGE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_DUMMY_MESSAGE template")) { + ((const ESM__DUMMY__MESSAGE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_INFORMATION_REQUEST")) { + ((const ESM__INFORMATION__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_INFORMATION_REQUEST template")) { + ((const ESM__INFORMATION__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_INFORMATION_RESPONSE")) { + ((const ESM__INFORMATION__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_INFORMATION_RESPONSE template")) { + ((const ESM__INFORMATION__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_InfoTransferFlag")) { + ((const ESM__InfoTransferFlag*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_InfoTransferFlag template")) { + ((const ESM__InfoTransferFlag_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_MessageContainer")) { + ((const ESM__MessageContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_MessageContainer template")) { + ((const ESM__MessageContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_STATUS")) { + ((const ESM__STATUS*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ESM_STATUS template")) { + ((const ESM__STATUS_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EXT_SERVICE_REQUEST")) { + ((const EXT__SERVICE__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EXT_SERVICE_REQUEST template")) { + ((const EXT__SERVICE__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Extd_APN_AMBR")) { + ((const Extd__APN__AMBR*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Extd_APN_AMBR template")) { + ((const Extd__APN__AMBR_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Extd_EMM_Cause")) { + ((const Extd__EMM__Cause*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Extd_EMM_Cause template")) { + ((const Extd__EMM__Cause_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GUTI_REALLOCATION_COMMAND")) { + ((const GUTI__REALLOCATION__COMMAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GUTI_REALLOCATION_COMMAND template")) { + ((const GUTI__REALLOCATION__COMMAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GUTI_REALLOCATION_COMPLETE")) { + ((const GUTI__REALLOCATION__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GUTI_REALLOCATION_COMPLETE template")) { + ((const GUTI__REALLOCATION__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GUTI_Type")) { + ((const GUTI__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GUTI_Type template")) { + ((const GUTI__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GenericMessageContainer")) { + ((const GenericMessageContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GenericMessageContainer template")) { + ((const GenericMessageContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HeaderCompressConfig")) { + ((const HeaderCompressConfig*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HeaderCompressConfig template")) { + ((const HeaderCompressConfig_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HeaderCompressConfigStatus")) { + ((const HeaderCompressConfigStatus*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HeaderCompressConfigStatus template")) { + ((const HeaderCompressConfigStatus_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IDENTITY_REQUEST")) { + ((const IDENTITY__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IDENTITY_REQUEST template")) { + ((const IDENTITY__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IDENTITY_RESPONSE")) { + ((const IDENTITY__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IDENTITY_RESPONSE template")) { + ((const IDENTITY__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IMSI_Offset")) { + ((const IMSI__Offset*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IMSI_Offset template")) { + ((const IMSI__Offset_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "KSIandSN")) { + ((const KSIandSN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "KSIandSN template")) { + ((const KSIandSN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LcsClientIdentity")) { + ((const LcsClientIdentity*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LcsClientIdentity template")) { + ((const LcsClientIdentity_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LcsIndicator")) { + ((const LcsIndicator*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LcsIndicator template")) { + ((const LcsIndicator_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LinkedEpsBearerIdentity")) { + ((const LinkedEpsBearerIdentity*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LinkedEpsBearerIdentity template")) { + ((const LinkedEpsBearerIdentity_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ListOfPartialTaiList")) { + ((const ListOfPartialTaiList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ListOfPartialTaiList template")) { + ((const ListOfPartialTaiList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ListOfRemoteUEContext")) { + ((const ListOfRemoteUEContext*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ListOfRemoteUEContext template")) { + ((const ListOfRemoteUEContext_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_ACCEPT")) { + ((const MODIFY__EPS__BEARER__CONTEXT__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_ACCEPT template")) { + ((const MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_REJECT")) { + ((const MODIFY__EPS__BEARER__CONTEXT__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_REJECT template")) { + ((const MODIFY__EPS__BEARER__CONTEXT__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_REQUEST")) { + ((const MODIFY__EPS__BEARER__CONTEXT__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_REQUEST template")) { + ((const MODIFY__EPS__BEARER__CONTEXT__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "N1_UENetworkCap")) { + ((const N1__UENetworkCap*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "N1_UENetworkCap template")) { + ((const N1__UENetworkCap_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_Message")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_Message template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_MessageContainer")) { + ((const NAS__MessageContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_MessageContainer template")) { + ((const NAS__MessageContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityParametersfromEUTRA")) { + ((const NAS__SecurityParametersfromEUTRA*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityParametersfromEUTRA template")) { + ((const NAS__SecurityParametersfromEUTRA_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityParameterstoEUTRA")) { + ((const NAS__SecurityParameterstoEUTRA*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityParameterstoEUTRA template")) { + ((const NAS__SecurityParameterstoEUTRA_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_TacList")) { + ((const NAS__TacList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_TacList template")) { + ((const NAS__TacList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NOTIFICATION")) { + ((const NOTIFICATION*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NOTIFICATION template")) { + ((const NOTIFICATION_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NetworkPolicy")) { + ((const NetworkPolicy*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NetworkPolicy template")) { + ((const NetworkPolicy_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Nonce")) { + ((const Nonce*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Nonce template")) { + ((const Nonce_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NotificationIndicator")) { + ((const NotificationIndicator*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NotificationIndicator template")) { + ((const NotificationIndicator_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_CONNECTIVITY_REJECT")) { + ((const PDN__CONNECTIVITY__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_CONNECTIVITY_REJECT template")) { + ((const PDN__CONNECTIVITY__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_CONNECTIVITY_REQUEST")) { + ((const PDN__CONNECTIVITY__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_CONNECTIVITY_REQUEST template")) { + ((const PDN__CONNECTIVITY__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_DISCONNECT_REJECT")) { + ((const PDN__DISCONNECT__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_DISCONNECT_REJECT template")) { + ((const PDN__DISCONNECT__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_DISCONNECT_REQUEST")) { + ((const PDN__DISCONNECT__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_DISCONNECT_REQUEST template")) { + ((const PDN__DISCONNECT__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_Type")) { + ((const PDN__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_Type template")) { + ((const PDN__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PKMF_Address")) { + ((const PKMF__Address*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PKMF_Address template")) { + ((const PKMF__Address_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PagingIdentity")) { + ((const PagingIdentity*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PagingIdentity template")) { + ((const PagingIdentity_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PagingRestriction")) { + ((const PagingRestriction*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PagingRestriction template")) { + ((const PagingRestriction_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialTai")) { + ((const PartialTai*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialTai template")) { + ((const PartialTai_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialTaiType")) { + ((const PartialTaiType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialTaiType template")) { + ((const PartialTaiType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PlmnAndTacs")) { + ((const PlmnAndTacs*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PlmnAndTacs template")) { + ((const PlmnAndTacs_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "REMOTE_UE_REPORT")) { + ((const REMOTE__UE__REPORT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "REMOTE_UE_REPORT template")) { + ((const REMOTE__UE__REPORT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "REMOTE_UE_REPORT_RESPONSE")) { + ((const REMOTE__UE__REPORT__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "REMOTE_UE_REPORT_RESPONSE template")) { + ((const REMOTE__UE__REPORT__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RemoteUEContext")) { + ((const RemoteUEContext*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RemoteUEContext template")) { + ((const RemoteUEContext_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RemoteUEContextList")) { + ((const RemoteUEContextList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RemoteUEContextList template")) { + ((const RemoteUEContextList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_COMMAND")) { + ((const SECURITY__MODE__COMMAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_COMMAND template")) { + ((const SECURITY__MODE__COMMAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_COMPLETE")) { + ((const SECURITY__MODE__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_COMPLETE template")) { + ((const SECURITY__MODE__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_REJECT")) { + ((const SECURITY__MODE__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_REJECT template")) { + ((const SECURITY__MODE__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SECURITY_PROTECTED_NAS_MESSAGE")) { + ((const SECURITY__PROTECTED__NAS__MESSAGE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SECURITY_PROTECTED_NAS_MESSAGE template")) { + ((const SECURITY__PROTECTED__NAS__MESSAGE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SERVICE_ACCEPT")) { + ((const SERVICE__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SERVICE_ACCEPT template")) { + ((const SERVICE__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SERVICE_REJECT")) { + ((const SERVICE__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SERVICE_REJECT template")) { + ((const SERVICE__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SERVICE_REQUEST")) { + ((const SERVICE__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SERVICE_REQUEST template")) { + ((const SERVICE__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SMSServicesStatus")) { + ((const SMSServicesStatus*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SMSServicesStatus template")) { + ((const SMSServicesStatus_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ShortMAC")) { + ((const ShortMAC*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ShortMAC template")) { + ((const ShortMAC_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SsCode")) { + ((const SsCode*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SsCode template")) { + ((const SsCode_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_ACCEPT")) { + ((const TRACKING__AREA__UPDATE__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_ACCEPT template")) { + ((const TRACKING__AREA__UPDATE__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_COMPLETE")) { + ((const TRACKING__AREA__UPDATE__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_COMPLETE template")) { + ((const TRACKING__AREA__UPDATE__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_REJECT")) { + ((const TRACKING__AREA__UPDATE__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_REJECT template")) { + ((const TRACKING__AREA__UPDATE__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_REQUEST")) { + ((const TRACKING__AREA__UPDATE__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_REQUEST template")) { + ((const TRACKING__AREA__UPDATE__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TrackingAreaId")) { + ((const TrackingAreaId*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TrackingAreaId template")) { + ((const TrackingAreaId_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TrackingAreaIdList")) { + ((const TrackingAreaIdList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TrackingAreaIdList template")) { + ((const TrackingAreaIdList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TransactionIdentifier")) { + ((const TransactionIdentifier*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TransactionIdentifier template")) { + ((const TransactionIdentifier_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type0Element")) { + ((const Type0Element*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type0Element template")) { + ((const Type0Element_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type0List")) { + ((const Type0List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type0List template")) { + ((const Type0List_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type1Element")) { + ((const Type1Element*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type1Element template")) { + ((const Type1Element_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type1List")) { + ((const Type1List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type1List template")) { + ((const Type1List_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type2Element")) { + ((const Type2Element*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type2Element template")) { + ((const Type2Element_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type2List")) { + ((const Type2List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Type2List template")) { + ((const Type2List_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdAvailability")) { + ((const UERadioCapIdAvailability*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdAvailability template")) { + ((const UERadioCapIdAvailability_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdRequest")) { + ((const UERadioCapIdRequest*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdRequest template")) { + ((const UERadioCapIdRequest_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapInfoUpdateNeeded")) { + ((const UERadioCapInfoUpdateNeeded*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapInfoUpdateNeeded template")) { + ((const UERadioCapInfoUpdateNeeded_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_AdditionalSecurityCapability")) { + ((const UE__AdditionalSecurityCapability*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_AdditionalSecurityCapability template")) { + ((const UE__AdditionalSecurityCapability_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UL_GENERIC_NAS_TRANSPORT")) { + ((const UL__GENERIC__NAS__TRANSPORT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UL_GENERIC_NAS_TRANSPORT template")) { + ((const UL__GENERIC__NAS__TRANSPORT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UL_NAS_TRANSPORT")) { + ((const UL__NAS__TRANSPORT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UL_NAS_TRANSPORT template")) { + ((const UL__NAS__TRANSPORT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPDATE_UE_LOCATION_INFORMATION")) { + ((const UPDATE__UE__LOCATION__INFORMATION*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPDATE_UE_LOCATION_INFORMATION template")) { + ((const UPDATE__UE__LOCATION__INFORMATION_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UserDataContainer")) { + ((const UserDataContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UserDataContainer template")) { + ((const UserDataContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UserIdentity")) { + ((const UserIdentity*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UserIdentity template")) { + ((const UserIdentity_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UserIdentityList")) { + ((const UserIdentityList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UserIdentityList template")) { + ((const UserIdentityList_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_EPS_NAS_TypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT")) { + ((ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT template")) { + ((ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT")) { + ((ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT template")) { + ((ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST")) { + ((ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST template")) { + ((ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT")) { + ((ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT template")) { + ((ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT")) { + ((ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT template")) { + ((ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST")) { + ((ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST template")) { + ((ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "APN_AMBR")) { + ((APN__AMBR*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "APN_AMBR template")) { + ((APN__AMBR_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATTACH_ACCEPT")) { + ((ATTACH__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATTACH_ACCEPT template")) { + ((ATTACH__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATTACH_COMPLETE")) { + ((ATTACH__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATTACH_COMPLETE template")) { + ((ATTACH__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATTACH_REJECT")) { + ((ATTACH__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATTACH_REJECT template")) { + ((ATTACH__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATTACH_REQUEST")) { + ((ATTACH__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATTACH_REQUEST template")) { + ((ATTACH__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_FAILURE")) { + ((AUTHENTICATION__FAILURE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_FAILURE template")) { + ((AUTHENTICATION__FAILURE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_REJECT")) { + ((AUTHENTICATION__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_REJECT template")) { + ((AUTHENTICATION__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_REQUEST")) { + ((AUTHENTICATION__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_REQUEST template")) { + ((AUTHENTICATION__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_RESPONSE")) { + ((AUTHENTICATION__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTHENTICATION_RESPONSE template")) { + ((AUTHENTICATION__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalInfoReq")) { + ((AdditionalInfoReq*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalInfoReq template")) { + ((AdditionalInfoReq_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalUpdateResult")) { + ((AdditionalUpdateResult*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalUpdateResult template")) { + ((AdditionalUpdateResult_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_ALLOCATION_REJECT")) { + ((BEARER__RESOURCE__ALLOCATION__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_ALLOCATION_REJECT template")) { + ((BEARER__RESOURCE__ALLOCATION__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_ALLOCATION_REQUEST")) { + ((BEARER__RESOURCE__ALLOCATION__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_ALLOCATION_REQUEST template")) { + ((BEARER__RESOURCE__ALLOCATION__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_MODIFICATION_REJECT")) { + ((BEARER__RESOURCE__MODIFICATION__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_MODIFICATION_REJECT template")) { + ((BEARER__RESOURCE__MODIFICATION__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_MODIFICATION_REQUEST")) { + ((BEARER__RESOURCE__MODIFICATION__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BEARER_RESOURCE_MODIFICATION_REQUEST template")) { + ((BEARER__RESOURCE__MODIFICATION__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CLI")) { + ((CLI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CLI template")) { + ((CLI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CONTROL_PLANE_SERVICE_REQUEST")) { + ((CONTROL__PLANE__SERVICE__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CONTROL_PLANE_SERVICE_REQUEST template")) { + ((CONTROL__PLANE__SERVICE__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CSFBResponse")) { + ((CSFBResponse*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CSFBResponse template")) { + ((CSFBResponse_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CS_SERVICE_NOTIFICATION")) { + ((CS__SERVICE__NOTIFICATION*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CS_SERVICE_NOTIFICATION template")) { + ((CS__SERVICE__NOTIFICATION_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CipheringKey")) { + ((CipheringKey*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CipheringKey template")) { + ((CipheringKey_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CipheringKeyData")) { + ((CipheringKeyData*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CipheringKeyData template")) { + ((CipheringKeyData_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ControlPlaneServiceType")) { + ((ControlPlaneServiceType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ControlPlaneServiceType template")) { + ((ControlPlaneServiceType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT")) { + ((DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT template")) { + ((DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST")) { + ((DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST template")) { + ((DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DETACH_ACCEPT")) { + ((DETACH__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DETACH_ACCEPT template")) { + ((DETACH__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DETACH_REQUEST_MO")) { + ((DETACH__REQUEST__MO*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DETACH_REQUEST_MO template")) { + ((DETACH__REQUEST__MO_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DETACH_REQUEST_MT")) { + ((DETACH__REQUEST__MT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DETACH_REQUEST_MT template")) { + ((DETACH__REQUEST__MT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DL_GENERIC_NAS_TRANSPORT")) { + ((DL__GENERIC__NAS__TRANSPORT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DL_GENERIC_NAS_TRANSPORT template")) { + ((DL__GENERIC__NAS__TRANSPORT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DL_NAS_TRANSPORT")) { + ((DL__NAS__TRANSPORT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DL_NAS_TRANSPORT template")) { + ((DL__NAS__TRANSPORT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EMM_Cause")) { + ((EMM__Cause*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EMM_Cause template")) { + ((EMM__Cause_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EMM_INFORMATION")) { + ((EMM__INFORMATION*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EMM_INFORMATION template")) { + ((EMM__INFORMATION_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EMM_STATUS")) { + ((EMM__STATUS*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EMM_STATUS template")) { + ((EMM__STATUS_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_AddReqResult")) { + ((EPS__AddReqResult*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_AddReqResult template")) { + ((EPS__AddReqResult_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_AttachResult")) { + ((EPS__AttachResult*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_AttachResult template")) { + ((EPS__AttachResult_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_AttachType")) { + ((EPS__AttachType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_AttachType template")) { + ((EPS__AttachType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_NetworkFeatureSupport")) { + ((EPS__NetworkFeatureSupport*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_NetworkFeatureSupport template")) { + ((EPS__NetworkFeatureSupport_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_ServiceType")) { + ((EPS__ServiceType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_ServiceType template")) { + ((EPS__ServiceType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_UpdateResult")) { + ((EPS__UpdateResult*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_UpdateResult template")) { + ((EPS__UpdateResult_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_UpdateType")) { + ((EPS__UpdateType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_UpdateType template")) { + ((EPS__UpdateType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_Cause")) { + ((ESM__Cause*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_Cause template")) { + ((ESM__Cause_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_DATA_TRANSPORT")) { + ((ESM__DATA__TRANSPORT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_DATA_TRANSPORT template")) { + ((ESM__DATA__TRANSPORT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_DUMMY_MESSAGE")) { + ((ESM__DUMMY__MESSAGE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_DUMMY_MESSAGE template")) { + ((ESM__DUMMY__MESSAGE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_INFORMATION_REQUEST")) { + ((ESM__INFORMATION__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_INFORMATION_REQUEST template")) { + ((ESM__INFORMATION__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_INFORMATION_RESPONSE")) { + ((ESM__INFORMATION__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_INFORMATION_RESPONSE template")) { + ((ESM__INFORMATION__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_InfoTransferFlag")) { + ((ESM__InfoTransferFlag*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_InfoTransferFlag template")) { + ((ESM__InfoTransferFlag_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_MessageContainer")) { + ((ESM__MessageContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_MessageContainer template")) { + ((ESM__MessageContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_STATUS")) { + ((ESM__STATUS*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ESM_STATUS template")) { + ((ESM__STATUS_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EXT_SERVICE_REQUEST")) { + ((EXT__SERVICE__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EXT_SERVICE_REQUEST template")) { + ((EXT__SERVICE__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Extd_APN_AMBR")) { + ((Extd__APN__AMBR*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Extd_APN_AMBR template")) { + ((Extd__APN__AMBR_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Extd_EMM_Cause")) { + ((Extd__EMM__Cause*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Extd_EMM_Cause template")) { + ((Extd__EMM__Cause_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GUTI_REALLOCATION_COMMAND")) { + ((GUTI__REALLOCATION__COMMAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GUTI_REALLOCATION_COMMAND template")) { + ((GUTI__REALLOCATION__COMMAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GUTI_REALLOCATION_COMPLETE")) { + ((GUTI__REALLOCATION__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GUTI_REALLOCATION_COMPLETE template")) { + ((GUTI__REALLOCATION__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GUTI_Type")) { + ((GUTI__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GUTI_Type template")) { + ((GUTI__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GenericMessageContainer")) { + ((GenericMessageContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GenericMessageContainer template")) { + ((GenericMessageContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HeaderCompressConfig")) { + ((HeaderCompressConfig*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HeaderCompressConfig template")) { + ((HeaderCompressConfig_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HeaderCompressConfigStatus")) { + ((HeaderCompressConfigStatus*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HeaderCompressConfigStatus template")) { + ((HeaderCompressConfigStatus_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IDENTITY_REQUEST")) { + ((IDENTITY__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IDENTITY_REQUEST template")) { + ((IDENTITY__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IDENTITY_RESPONSE")) { + ((IDENTITY__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IDENTITY_RESPONSE template")) { + ((IDENTITY__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IMSI_Offset")) { + ((IMSI__Offset*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IMSI_Offset template")) { + ((IMSI__Offset_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "KSIandSN")) { + ((KSIandSN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "KSIandSN template")) { + ((KSIandSN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LcsClientIdentity")) { + ((LcsClientIdentity*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LcsClientIdentity template")) { + ((LcsClientIdentity_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LcsIndicator")) { + ((LcsIndicator*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LcsIndicator template")) { + ((LcsIndicator_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LinkedEpsBearerIdentity")) { + ((LinkedEpsBearerIdentity*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LinkedEpsBearerIdentity template")) { + ((LinkedEpsBearerIdentity_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ListOfPartialTaiList")) { + ((ListOfPartialTaiList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ListOfPartialTaiList template")) { + ((ListOfPartialTaiList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ListOfRemoteUEContext")) { + ((ListOfRemoteUEContext*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ListOfRemoteUEContext template")) { + ((ListOfRemoteUEContext_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_ACCEPT")) { + ((MODIFY__EPS__BEARER__CONTEXT__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_ACCEPT template")) { + ((MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_REJECT")) { + ((MODIFY__EPS__BEARER__CONTEXT__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_REJECT template")) { + ((MODIFY__EPS__BEARER__CONTEXT__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_REQUEST")) { + ((MODIFY__EPS__BEARER__CONTEXT__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MODIFY_EPS_BEARER_CONTEXT_REQUEST template")) { + ((MODIFY__EPS__BEARER__CONTEXT__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "N1_UENetworkCap")) { + ((N1__UENetworkCap*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "N1_UENetworkCap template")) { + ((N1__UENetworkCap_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_Message")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_Message template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_MessageContainer")) { + ((NAS__MessageContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_MessageContainer template")) { + ((NAS__MessageContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityParametersfromEUTRA")) { + ((NAS__SecurityParametersfromEUTRA*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityParametersfromEUTRA template")) { + ((NAS__SecurityParametersfromEUTRA_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityParameterstoEUTRA")) { + ((NAS__SecurityParameterstoEUTRA*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityParameterstoEUTRA template")) { + ((NAS__SecurityParameterstoEUTRA_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_TacList")) { + ((NAS__TacList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_TacList template")) { + ((NAS__TacList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NOTIFICATION")) { + ((NOTIFICATION*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NOTIFICATION template")) { + ((NOTIFICATION_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NetworkPolicy")) { + ((NetworkPolicy*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NetworkPolicy template")) { + ((NetworkPolicy_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Nonce")) { + ((Nonce*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Nonce template")) { + ((Nonce_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NotificationIndicator")) { + ((NotificationIndicator*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NotificationIndicator template")) { + ((NotificationIndicator_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_CONNECTIVITY_REJECT")) { + ((PDN__CONNECTIVITY__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_CONNECTIVITY_REJECT template")) { + ((PDN__CONNECTIVITY__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_CONNECTIVITY_REQUEST")) { + ((PDN__CONNECTIVITY__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_CONNECTIVITY_REQUEST template")) { + ((PDN__CONNECTIVITY__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_DISCONNECT_REJECT")) { + ((PDN__DISCONNECT__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_DISCONNECT_REJECT template")) { + ((PDN__DISCONNECT__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_DISCONNECT_REQUEST")) { + ((PDN__DISCONNECT__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_DISCONNECT_REQUEST template")) { + ((PDN__DISCONNECT__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_Type")) { + ((PDN__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_Type template")) { + ((PDN__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PKMF_Address")) { + ((PKMF__Address*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PKMF_Address template")) { + ((PKMF__Address_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PagingIdentity")) { + ((PagingIdentity*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PagingIdentity template")) { + ((PagingIdentity_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PagingRestriction")) { + ((PagingRestriction*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PagingRestriction template")) { + ((PagingRestriction_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialTai")) { + ((PartialTai*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialTai template")) { + ((PartialTai_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialTaiType")) { + ((PartialTaiType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialTaiType template")) { + ((PartialTaiType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PlmnAndTacs")) { + ((PlmnAndTacs*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PlmnAndTacs template")) { + ((PlmnAndTacs_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "REMOTE_UE_REPORT")) { + ((REMOTE__UE__REPORT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "REMOTE_UE_REPORT template")) { + ((REMOTE__UE__REPORT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "REMOTE_UE_REPORT_RESPONSE")) { + ((REMOTE__UE__REPORT__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "REMOTE_UE_REPORT_RESPONSE template")) { + ((REMOTE__UE__REPORT__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RemoteUEContext")) { + ((RemoteUEContext*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RemoteUEContext template")) { + ((RemoteUEContext_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RemoteUEContextList")) { + ((RemoteUEContextList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RemoteUEContextList template")) { + ((RemoteUEContextList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_COMMAND")) { + ((SECURITY__MODE__COMMAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_COMMAND template")) { + ((SECURITY__MODE__COMMAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_COMPLETE")) { + ((SECURITY__MODE__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_COMPLETE template")) { + ((SECURITY__MODE__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_REJECT")) { + ((SECURITY__MODE__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SECURITY_MODE_REJECT template")) { + ((SECURITY__MODE__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SECURITY_PROTECTED_NAS_MESSAGE")) { + ((SECURITY__PROTECTED__NAS__MESSAGE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SECURITY_PROTECTED_NAS_MESSAGE template")) { + ((SECURITY__PROTECTED__NAS__MESSAGE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SERVICE_ACCEPT")) { + ((SERVICE__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SERVICE_ACCEPT template")) { + ((SERVICE__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SERVICE_REJECT")) { + ((SERVICE__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SERVICE_REJECT template")) { + ((SERVICE__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SERVICE_REQUEST")) { + ((SERVICE__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SERVICE_REQUEST template")) { + ((SERVICE__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SMSServicesStatus")) { + ((SMSServicesStatus*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SMSServicesStatus template")) { + ((SMSServicesStatus_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ShortMAC")) { + ((ShortMAC*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ShortMAC template")) { + ((ShortMAC_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SsCode")) { + ((SsCode*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SsCode template")) { + ((SsCode_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_ACCEPT")) { + ((TRACKING__AREA__UPDATE__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_ACCEPT template")) { + ((TRACKING__AREA__UPDATE__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_COMPLETE")) { + ((TRACKING__AREA__UPDATE__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_COMPLETE template")) { + ((TRACKING__AREA__UPDATE__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_REJECT")) { + ((TRACKING__AREA__UPDATE__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_REJECT template")) { + ((TRACKING__AREA__UPDATE__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_REQUEST")) { + ((TRACKING__AREA__UPDATE__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TRACKING_AREA_UPDATE_REQUEST template")) { + ((TRACKING__AREA__UPDATE__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TrackingAreaId")) { + ((TrackingAreaId*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TrackingAreaId template")) { + ((TrackingAreaId_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TrackingAreaIdList")) { + ((TrackingAreaIdList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TrackingAreaIdList template")) { + ((TrackingAreaIdList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TransactionIdentifier")) { + ((TransactionIdentifier*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TransactionIdentifier template")) { + ((TransactionIdentifier_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type0Element")) { + ((Type0Element*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type0Element template")) { + ((Type0Element_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type0List")) { + ((Type0List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type0List template")) { + ((Type0List_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type1Element")) { + ((Type1Element*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type1Element template")) { + ((Type1Element_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type1List")) { + ((Type1List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type1List template")) { + ((Type1List_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type2Element")) { + ((Type2Element*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type2Element template")) { + ((Type2Element_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type2List")) { + ((Type2List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Type2List template")) { + ((Type2List_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdAvailability")) { + ((UERadioCapIdAvailability*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdAvailability template")) { + ((UERadioCapIdAvailability_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdRequest")) { + ((UERadioCapIdRequest*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdRequest template")) { + ((UERadioCapIdRequest_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapInfoUpdateNeeded")) { + ((UERadioCapInfoUpdateNeeded*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapInfoUpdateNeeded template")) { + ((UERadioCapInfoUpdateNeeded_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_AdditionalSecurityCapability")) { + ((UE__AdditionalSecurityCapability*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_AdditionalSecurityCapability template")) { + ((UE__AdditionalSecurityCapability_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UL_GENERIC_NAS_TRANSPORT")) { + ((UL__GENERIC__NAS__TRANSPORT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UL_GENERIC_NAS_TRANSPORT template")) { + ((UL__GENERIC__NAS__TRANSPORT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UL_NAS_TRANSPORT")) { + ((UL__NAS__TRANSPORT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UL_NAS_TRANSPORT template")) { + ((UL__NAS__TRANSPORT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPDATE_UE_LOCATION_INFORMATION")) { + ((UPDATE__UE__LOCATION__INFORMATION*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPDATE_UE_LOCATION_INFORMATION template")) { + ((UPDATE__UE__LOCATION__INFORMATION_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UserDataContainer")) { + ((UserDataContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UserDataContainer template")) { + ((UserDataContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UserIdentity")) { + ((UserIdentity*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UserIdentity template")) { + ((UserIdentity_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UserIdentityList")) { + ((UserIdentityList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UserIdentityList template")) { + ((UserIdentityList_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("EPS_NAS_TypeDefs"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void TrackingAreaId::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_plmnId; fld_vec[2]=&field_tac; } + +TrackingAreaId::TrackingAreaId() : Record_Type() { init_vec(); } + +TrackingAreaId::TrackingAreaId(const TrackingAreaId& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_plmnId.is_bound() ) + field_plmnId = other_value.field_plmnId; +if (other_value.field_tac.is_bound() ) + field_tac = other_value.field_tac; +init_vec(); +} + +TrackingAreaId::TrackingAreaId(const OPTIONAL& par_iei, + const OCTETSTRING& par_plmnId, + const OCTETSTRING& par_tac) : field_iei(par_iei), + field_plmnId(par_plmnId), + field_tac(par_tac) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TrackingAreaId::get_descriptor() const { return &TrackingAreaId_descr_; } +const TTCN_Typedescriptor_t* TrackingAreaId::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::NAS__PlmnId_descr_, &NAS__Tac_descr_ }; +const TTCN_Typedescriptor_t* TrackingAreaId::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TrackingAreaId::fld_names[] = { "iei", "plmnId", "tac" }; +const char* TrackingAreaId::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TrackingAreaId::optional_indexes[] = { 0, -1 }; +const int* TrackingAreaId::get_optional_indexes() const { return optional_indexes; } + +const int TrackingAreaId::optional_indexes_asn[] = { 0, -1 }; +const int* TrackingAreaId::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TrackingAreaId_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +TrackingAreaId_template::TrackingAreaId_template(TrackingAreaId_template* p_precondition, TrackingAreaId_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TrackingAreaId_template::TrackingAreaId_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TrackingAreaId_template::~TrackingAreaId_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TrackingAreaId_template::match_dynamic(const Base_Type* match_value) const +{ +const TrackingAreaId* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TrackingAreaId_template& TrackingAreaId_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TrackingAreaId_template& TrackingAreaId_template::operator=(const TrackingAreaId& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TrackingAreaId_template& TrackingAreaId_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TrackingAreaId_template& TrackingAreaId_template::operator=(const TrackingAreaId_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TrackingAreaId TrackingAreaId_template::valueof() const +{ +TrackingAreaId ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& TrackingAreaId_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& TrackingAreaId_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& TrackingAreaId_template::plmnId() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& TrackingAreaId_template::plmnId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& TrackingAreaId_template::tac() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& TrackingAreaId_template::tac() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* TrackingAreaId_template::get_descriptor() const { return &TrackingAreaId_descr_; } +const char* TrackingAreaId_template::fld_name(int p_index) const { return TrackingAreaId::fld_names[p_index]; } +void PartialTai::init_vec() { fld_vec[0]=&field_plmnId; fld_vec[1]=&field_tac; } + +PartialTai::PartialTai() : Record_Type() { init_vec(); } + +PartialTai::PartialTai(const PartialTai& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_plmnId.is_bound() ) + field_plmnId = other_value.field_plmnId; +if (other_value.field_tac.is_bound() ) + field_tac = other_value.field_tac; +init_vec(); +} + +PartialTai::PartialTai(const OCTETSTRING& par_plmnId, + const OCTETSTRING& par_tac) : field_plmnId(par_plmnId), + field_tac(par_tac) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PartialTai::get_descriptor() const { return &PartialTai_descr_; } +const TTCN_Typedescriptor_t* PartialTai::fld_descriptors[] = { &NAS__CommonTypeDefs::NAS__PlmnId_descr_, &NAS__Tac_descr_ }; +const TTCN_Typedescriptor_t* PartialTai::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PartialTai::fld_names[] = { "plmnId", "tac" }; +const char* PartialTai::fld_name(int p_index) const { return fld_names[p_index]; } + +void PartialTai_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +PartialTai_template::PartialTai_template(PartialTai_template* p_precondition, PartialTai_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PartialTai_template::PartialTai_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PartialTai_template::~PartialTai_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PartialTai_template::match_dynamic(const Base_Type* match_value) const +{ +const PartialTai* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PartialTai_template& PartialTai_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PartialTai_template& PartialTai_template::operator=(const PartialTai& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PartialTai_template& PartialTai_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PartialTai_template& PartialTai_template::operator=(const PartialTai_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PartialTai PartialTai_template::valueof() const +{ +PartialTai ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PartialTai_template::plmnId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PartialTai_template::plmnId() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PartialTai_template::tac() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PartialTai_template::tac() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* PartialTai_template::get_descriptor() const { return &PartialTai_descr_; } +const char* PartialTai_template::fld_name(int p_index) const { return PartialTai::fld_names[p_index]; } +void Type0Element::init_vec() { fld_vec[0]=&field_plmnId; fld_vec[1]=&field_tacList; } + +Type0Element::Type0Element() : Record_Type() { init_vec(); } + +Type0Element::Type0Element(const Type0Element& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_plmnId.is_bound() ) + field_plmnId = other_value.field_plmnId; +if (other_value.field_tacList.is_bound() ) + field_tacList = other_value.field_tacList; +init_vec(); +} + +Type0Element::Type0Element(const OCTETSTRING& par_plmnId, + const NAS__TacList& par_tacList) : field_plmnId(par_plmnId), + field_tacList(par_tacList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Type0Element::get_descriptor() const { return &Type0Element_descr_; } +const TTCN_Typedescriptor_t* Type0Element::fld_descriptors[] = { &NAS__CommonTypeDefs::NAS__PlmnId_descr_, &NAS__TacList_descr_ }; +const TTCN_Typedescriptor_t* Type0Element::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Type0Element::fld_names[] = { "plmnId", "tacList" }; +const char* Type0Element::fld_name(int p_index) const { return fld_names[p_index]; } + +void Type0Element_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new NAS__TacList_template(ANY_VALUE) : new NAS__TacList_template; +} +} + +Type0Element_template::Type0Element_template(Type0Element_template* p_precondition, Type0Element_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Type0Element_template::Type0Element_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Type0Element_template::~Type0Element_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Type0Element_template::match_dynamic(const Base_Type* match_value) const +{ +const Type0Element* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Type0Element_template& Type0Element_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Type0Element_template& Type0Element_template::operator=(const Type0Element& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Type0Element_template& Type0Element_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Type0Element_template& Type0Element_template::operator=(const Type0Element_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Type0Element Type0Element_template::valueof() const +{ +Type0Element ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& Type0Element_template::plmnId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& Type0Element_template::plmnId() const { return *(static_cast(get_at(0))); } +NAS__TacList_template& Type0Element_template::tacList() { return *(static_cast(get_at(1))); } +const NAS__TacList_template& Type0Element_template::tacList() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* Type0Element_template::get_descriptor() const { return &Type0Element_descr_; } +const char* Type0Element_template::fld_name(int p_index) const { return Type0Element::fld_names[p_index]; } +void Type1Element::init_vec() { fld_vec[0]=&field_partialTac; } + +Type1Element::Type1Element() : Record_Type() { init_vec(); } + +Type1Element::Type1Element(const Type1Element& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_partialTac.is_bound() ) + field_partialTac = other_value.field_partialTac; +init_vec(); +} + +Type1Element::Type1Element(const PartialTai& par_partialTac) : field_partialTac(par_partialTac) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Type1Element::get_descriptor() const { return &Type1Element_descr_; } +const TTCN_Typedescriptor_t* Type1Element::fld_descriptors[] = { &PartialTai_descr_ }; +const TTCN_Typedescriptor_t* Type1Element::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Type1Element::fld_names[] = { "partialTac" }; +const char* Type1Element::fld_name(int p_index) const { return fld_names[p_index]; } + +void Type1Element_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new PartialTai_template(ANY_VALUE) : new PartialTai_template; +} +} + +Type1Element_template::Type1Element_template(Type1Element_template* p_precondition, Type1Element_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Type1Element_template::Type1Element_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Type1Element_template::~Type1Element_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Type1Element_template::match_dynamic(const Base_Type* match_value) const +{ +const Type1Element* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Type1Element_template& Type1Element_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Type1Element_template& Type1Element_template::operator=(const Type1Element& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Type1Element_template& Type1Element_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Type1Element_template& Type1Element_template::operator=(const Type1Element_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Type1Element Type1Element_template::valueof() const +{ +Type1Element ret_val; +valueofv(&ret_val); +return ret_val; +} + +PartialTai_template& Type1Element_template::partialTac() { return *(static_cast(get_at(0))); } +const PartialTai_template& Type1Element_template::partialTac() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* Type1Element_template::get_descriptor() const { return &Type1Element_descr_; } +const char* Type1Element_template::fld_name(int p_index) const { return Type1Element::fld_names[p_index]; } + +const PartialTai PlmnAndTacs::UNBOUND_ELEM; +PartialTai& PlmnAndTacs::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PartialTai& PlmnAndTacs::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PartialTai& PlmnAndTacs::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PartialTai& PlmnAndTacs::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PlmnAndTacs PlmnAndTacs::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +PlmnAndTacs PlmnAndTacs::operator<<=(const INTEGER& rotate_count) const +{ +PlmnAndTacs rec_of; +return *((PlmnAndTacs*)rotl(rotate_count, &rec_of)); +} + +PlmnAndTacs PlmnAndTacs::operator>>=(const INTEGER& rotate_count) const +{ +PlmnAndTacs rec_of; +return *((PlmnAndTacs*)rotr(rotate_count, &rec_of)); +} + +PlmnAndTacs PlmnAndTacs::operator>>=(int rotate_count) const +{ +PlmnAndTacs rec_of; +return *((PlmnAndTacs*)rotr(rotate_count, &rec_of)); +} + +PlmnAndTacs PlmnAndTacs::operator+(const PlmnAndTacs& other_value) const +{ +PlmnAndTacs rec_of; +return *((PlmnAndTacs*)concat(&other_value, &rec_of)); +} + +PlmnAndTacs PlmnAndTacs::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const PlmnAndTacs&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_TypeDefs.PlmnAndTacs concatenation."); +} + +PlmnAndTacs PlmnAndTacs::operator+(null_type) const +{ +return *this; +} + +PlmnAndTacs PlmnAndTacs::substr(int index, int returncount) const +{ +PlmnAndTacs rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PlmnAndTacs PlmnAndTacs::replace(int index, int len, const PlmnAndTacs& repl) const +{ +PlmnAndTacs rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PlmnAndTacs PlmnAndTacs::replace(int index, int len, const PlmnAndTacs_template& repl) const +{ +PlmnAndTacs rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* PlmnAndTacs::create_elem() const { return new PartialTai; } +const Base_Type* PlmnAndTacs::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* PlmnAndTacs::get_descriptor() const { return &PlmnAndTacs_descr_; } +PlmnAndTacs_template::PlmnAndTacs_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +PlmnAndTacs_template::PlmnAndTacs_template(PlmnAndTacs_template* p_precondition, PlmnAndTacs_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PlmnAndTacs_template::PlmnAndTacs_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PlmnAndTacs_template::~PlmnAndTacs_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PlmnAndTacs_template::match_dynamic(const Base_Type* match_value) const +{ +const PlmnAndTacs* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +PlmnAndTacs_template& PlmnAndTacs_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PlmnAndTacs_template& PlmnAndTacs_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +PlmnAndTacs_template& PlmnAndTacs_template::operator=(const PlmnAndTacs& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PlmnAndTacs_template& PlmnAndTacs_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PlmnAndTacs_template& PlmnAndTacs_template::operator=(const PlmnAndTacs_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PlmnAndTacs_template PlmnAndTacs_template::operator+(const PlmnAndTacs_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return PlmnAndTacs_template(ANY_VALUE); +} +PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PlmnAndTacs_template PlmnAndTacs_template::operator+(const PlmnAndTacs& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PlmnAndTacs_template PlmnAndTacs_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return PlmnAndTacs_template(ANY_VALUE); +} +PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +PlmnAndTacs_template PlmnAndTacs_template::operator+(null_type) const +{ +return *this; +} + +PartialTai_template& PlmnAndTacs_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PartialTai_template& PlmnAndTacs_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PartialTai_template& PlmnAndTacs_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PartialTai_template& PlmnAndTacs_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PlmnAndTacs PlmnAndTacs_template::valueof() const +{ +PlmnAndTacs ret_val; +valueofv(&ret_val); +return ret_val; +} + +PlmnAndTacs PlmnAndTacs_template::substr(int index, int returncount) const +{ +PlmnAndTacs rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PlmnAndTacs PlmnAndTacs_template::replace(int index, int len, const PlmnAndTacs_template& repl) const +{ +PlmnAndTacs rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PlmnAndTacs PlmnAndTacs_template::replace(int index, int len, const PlmnAndTacs& repl) const +{ +PlmnAndTacs rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* PlmnAndTacs_template::create_elem() const { return new PartialTai_template; } +const TTCN_Typedescriptor_t* PlmnAndTacs_template::get_descriptor() const { return &PlmnAndTacs_descr_; } +void Type2Element::init_vec() { fld_vec[0]=&field_plmnAndTacs; } + +Type2Element::Type2Element() : Record_Type() { init_vec(); } + +Type2Element::Type2Element(const Type2Element& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_plmnAndTacs.is_bound() ) + field_plmnAndTacs = other_value.field_plmnAndTacs; +init_vec(); +} + +Type2Element::Type2Element(const PlmnAndTacs& par_plmnAndTacs) : field_plmnAndTacs(par_plmnAndTacs) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Type2Element::get_descriptor() const { return &Type2Element_descr_; } +const TTCN_Typedescriptor_t* Type2Element::fld_descriptors[] = { &PlmnAndTacs_descr_ }; +const TTCN_Typedescriptor_t* Type2Element::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Type2Element::fld_names[] = { "plmnAndTacs" }; +const char* Type2Element::fld_name(int p_index) const { return fld_names[p_index]; } + +void Type2Element_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new PlmnAndTacs_template(ANY_VALUE) : new PlmnAndTacs_template; +} +} + +Type2Element_template::Type2Element_template(Type2Element_template* p_precondition, Type2Element_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Type2Element_template::Type2Element_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Type2Element_template::~Type2Element_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Type2Element_template::match_dynamic(const Base_Type* match_value) const +{ +const Type2Element* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Type2Element_template& Type2Element_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Type2Element_template& Type2Element_template::operator=(const Type2Element& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Type2Element_template& Type2Element_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Type2Element_template& Type2Element_template::operator=(const Type2Element_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Type2Element Type2Element_template::valueof() const +{ +Type2Element ret_val; +valueofv(&ret_val); +return ret_val; +} + +PlmnAndTacs_template& Type2Element_template::plmnAndTacs() { return *(static_cast(get_at(0))); } +const PlmnAndTacs_template& Type2Element_template::plmnAndTacs() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* Type2Element_template::get_descriptor() const { return &Type2Element_descr_; } +const char* Type2Element_template::fld_name(int p_index) const { return Type2Element::fld_names[p_index]; } + +const Type0Element Type0List::UNBOUND_ELEM; +Type0Element& Type0List::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Type0Element& Type0List::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Type0Element& Type0List::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Type0Element& Type0List::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +Type0List Type0List::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +Type0List Type0List::operator<<=(const INTEGER& rotate_count) const +{ +Type0List rec_of; +return *((Type0List*)rotl(rotate_count, &rec_of)); +} + +Type0List Type0List::operator>>=(const INTEGER& rotate_count) const +{ +Type0List rec_of; +return *((Type0List*)rotr(rotate_count, &rec_of)); +} + +Type0List Type0List::operator>>=(int rotate_count) const +{ +Type0List rec_of; +return *((Type0List*)rotr(rotate_count, &rec_of)); +} + +Type0List Type0List::operator+(const Type0List& other_value) const +{ +Type0List rec_of; +return *((Type0List*)concat(&other_value, &rec_of)); +} + +Type0List Type0List::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const Type0List&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_TypeDefs.Type0List concatenation."); +} + +Type0List Type0List::operator+(null_type) const +{ +return *this; +} + +Type0List Type0List::substr(int index, int returncount) const +{ +Type0List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +Type0List Type0List::replace(int index, int len, const Type0List& repl) const +{ +Type0List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Type0List Type0List::replace(int index, int len, const Type0List_template& repl) const +{ +Type0List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* Type0List::create_elem() const { return new Type0Element; } +const Base_Type* Type0List::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* Type0List::get_descriptor() const { return &Type0List_descr_; } +Type0List_template::Type0List_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +Type0List_template::Type0List_template(Type0List_template* p_precondition, Type0List_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Type0List_template::Type0List_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Type0List_template::~Type0List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Type0List_template::match_dynamic(const Base_Type* match_value) const +{ +const Type0List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +Type0List_template& Type0List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Type0List_template& Type0List_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +Type0List_template& Type0List_template::operator=(const Type0List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Type0List_template& Type0List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Type0List_template& Type0List_template::operator=(const Type0List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Type0List_template Type0List_template::operator+(const Type0List_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return Type0List_template(ANY_VALUE); +} +Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +Type0List_template Type0List_template::operator+(const Type0List& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +Type0List_template Type0List_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return Type0List_template(ANY_VALUE); +} +Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +Type0List_template Type0List_template::operator+(null_type) const +{ +return *this; +} + +Type0Element_template& Type0List_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Type0Element_template& Type0List_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Type0Element_template& Type0List_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Type0Element_template& Type0List_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +Type0List Type0List_template::valueof() const +{ +Type0List ret_val; +valueofv(&ret_val); +return ret_val; +} + +Type0List Type0List_template::substr(int index, int returncount) const +{ +Type0List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +Type0List Type0List_template::replace(int index, int len, const Type0List_template& repl) const +{ +Type0List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Type0List Type0List_template::replace(int index, int len, const Type0List& repl) const +{ +Type0List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* Type0List_template::create_elem() const { return new Type0Element_template; } +const TTCN_Typedescriptor_t* Type0List_template::get_descriptor() const { return &Type0List_descr_; } + +const Type1Element Type1List::UNBOUND_ELEM; +Type1Element& Type1List::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Type1Element& Type1List::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Type1Element& Type1List::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Type1Element& Type1List::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +Type1List Type1List::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +Type1List Type1List::operator<<=(const INTEGER& rotate_count) const +{ +Type1List rec_of; +return *((Type1List*)rotl(rotate_count, &rec_of)); +} + +Type1List Type1List::operator>>=(const INTEGER& rotate_count) const +{ +Type1List rec_of; +return *((Type1List*)rotr(rotate_count, &rec_of)); +} + +Type1List Type1List::operator>>=(int rotate_count) const +{ +Type1List rec_of; +return *((Type1List*)rotr(rotate_count, &rec_of)); +} + +Type1List Type1List::operator+(const Type1List& other_value) const +{ +Type1List rec_of; +return *((Type1List*)concat(&other_value, &rec_of)); +} + +Type1List Type1List::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const Type1List&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_TypeDefs.Type1List concatenation."); +} + +Type1List Type1List::operator+(null_type) const +{ +return *this; +} + +Type1List Type1List::substr(int index, int returncount) const +{ +Type1List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +Type1List Type1List::replace(int index, int len, const Type1List& repl) const +{ +Type1List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Type1List Type1List::replace(int index, int len, const Type1List_template& repl) const +{ +Type1List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* Type1List::create_elem() const { return new Type1Element; } +const Base_Type* Type1List::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* Type1List::get_descriptor() const { return &Type1List_descr_; } +Type1List_template::Type1List_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +Type1List_template::Type1List_template(Type1List_template* p_precondition, Type1List_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Type1List_template::Type1List_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Type1List_template::~Type1List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Type1List_template::match_dynamic(const Base_Type* match_value) const +{ +const Type1List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +Type1List_template& Type1List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Type1List_template& Type1List_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +Type1List_template& Type1List_template::operator=(const Type1List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Type1List_template& Type1List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Type1List_template& Type1List_template::operator=(const Type1List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Type1List_template Type1List_template::operator+(const Type1List_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return Type1List_template(ANY_VALUE); +} +Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +Type1List_template Type1List_template::operator+(const Type1List& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +Type1List_template Type1List_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return Type1List_template(ANY_VALUE); +} +Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +Type1List_template Type1List_template::operator+(null_type) const +{ +return *this; +} + +Type1Element_template& Type1List_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Type1Element_template& Type1List_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Type1Element_template& Type1List_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Type1Element_template& Type1List_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +Type1List Type1List_template::valueof() const +{ +Type1List ret_val; +valueofv(&ret_val); +return ret_val; +} + +Type1List Type1List_template::substr(int index, int returncount) const +{ +Type1List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +Type1List Type1List_template::replace(int index, int len, const Type1List_template& repl) const +{ +Type1List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Type1List Type1List_template::replace(int index, int len, const Type1List& repl) const +{ +Type1List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* Type1List_template::create_elem() const { return new Type1Element_template; } +const TTCN_Typedescriptor_t* Type1List_template::get_descriptor() const { return &Type1List_descr_; } + +const Type2Element Type2List::UNBOUND_ELEM; +Type2Element& Type2List::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Type2Element& Type2List::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Type2Element& Type2List::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Type2Element& Type2List::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +Type2List Type2List::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +Type2List Type2List::operator<<=(const INTEGER& rotate_count) const +{ +Type2List rec_of; +return *((Type2List*)rotl(rotate_count, &rec_of)); +} + +Type2List Type2List::operator>>=(const INTEGER& rotate_count) const +{ +Type2List rec_of; +return *((Type2List*)rotr(rotate_count, &rec_of)); +} + +Type2List Type2List::operator>>=(int rotate_count) const +{ +Type2List rec_of; +return *((Type2List*)rotr(rotate_count, &rec_of)); +} + +Type2List Type2List::operator+(const Type2List& other_value) const +{ +Type2List rec_of; +return *((Type2List*)concat(&other_value, &rec_of)); +} + +Type2List Type2List::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const Type2List&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_TypeDefs.Type2List concatenation."); +} + +Type2List Type2List::operator+(null_type) const +{ +return *this; +} + +Type2List Type2List::substr(int index, int returncount) const +{ +Type2List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +Type2List Type2List::replace(int index, int len, const Type2List& repl) const +{ +Type2List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Type2List Type2List::replace(int index, int len, const Type2List_template& repl) const +{ +Type2List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* Type2List::create_elem() const { return new Type2Element; } +const Base_Type* Type2List::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* Type2List::get_descriptor() const { return &Type2List_descr_; } +Type2List_template::Type2List_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +Type2List_template::Type2List_template(Type2List_template* p_precondition, Type2List_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Type2List_template::Type2List_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Type2List_template::~Type2List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Type2List_template::match_dynamic(const Base_Type* match_value) const +{ +const Type2List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +Type2List_template& Type2List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Type2List_template& Type2List_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +Type2List_template& Type2List_template::operator=(const Type2List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Type2List_template& Type2List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Type2List_template& Type2List_template::operator=(const Type2List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Type2List_template Type2List_template::operator+(const Type2List_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return Type2List_template(ANY_VALUE); +} +Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +Type2List_template Type2List_template::operator+(const Type2List& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +Type2List_template Type2List_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return Type2List_template(ANY_VALUE); +} +Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +Type2List_template Type2List_template::operator+(null_type) const +{ +return *this; +} + +Type2Element_template& Type2List_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Type2Element_template& Type2List_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Type2Element_template& Type2List_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Type2Element_template& Type2List_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +Type2List Type2List_template::valueof() const +{ +Type2List ret_val; +valueofv(&ret_val); +return ret_val; +} + +Type2List Type2List_template::substr(int index, int returncount) const +{ +Type2List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +Type2List Type2List_template::replace(int index, int len, const Type2List_template& repl) const +{ +Type2List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Type2List Type2List_template::replace(int index, int len, const Type2List& repl) const +{ +Type2List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* Type2List_template::create_elem() const { return new Type2Element_template; } +const TTCN_Typedescriptor_t* Type2List_template::get_descriptor() const { return &Type2List_descr_; } +void PartialTaiType::copy_value(const PartialTaiType& other_value) +{ +switch (other_value.union_selection) { +case ALT_type0List: +field_type0List = new Type0List(*other_value.field_type0List); +break; +case ALT_type1List: +field_type1List = new Type1List(*other_value.field_type1List); +break; +case ALT_type2List: +field_type2List = new Type2List(*other_value.field_type2List); +break; +default: +TTCN_error("Assignment of an unbound union value of type @EPS_NAS_TypeDefs.PartialTaiType."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +PartialTaiType::PartialTaiType(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +PartialTaiType::PartialTaiType(const PartialTaiType& other_value) +: Base_Type(){ +copy_value(other_value); +} + +PartialTaiType::~PartialTaiType() +{ +clean_up(); +} + +PartialTaiType& PartialTaiType::operator=(const PartialTaiType& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean PartialTaiType::operator==(const PartialTaiType& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @EPS_NAS_TypeDefs.PartialTaiType."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @EPS_NAS_TypeDefs.PartialTaiType."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_type0List: +return *field_type0List == *other_value.field_type0List; +case ALT_type1List: +return *field_type1List == *other_value.field_type1List; +case ALT_type2List: +return *field_type2List == *other_value.field_type2List; +default: +return FALSE; +} +} + +Type0List& PartialTaiType::type0List() +{ +if (union_selection != ALT_type0List) { +clean_up(); +field_type0List = new Type0List; +union_selection = ALT_type0List; +} +return *field_type0List; +} + +const Type0List& PartialTaiType::type0List() const +{ +if (union_selection != ALT_type0List) TTCN_error("Using non-selected field type0List in a value of union type @EPS_NAS_TypeDefs.PartialTaiType."); +return *field_type0List; +} + +Type1List& PartialTaiType::type1List() +{ +if (union_selection != ALT_type1List) { +clean_up(); +field_type1List = new Type1List; +union_selection = ALT_type1List; +} +return *field_type1List; +} + +const Type1List& PartialTaiType::type1List() const +{ +if (union_selection != ALT_type1List) TTCN_error("Using non-selected field type1List in a value of union type @EPS_NAS_TypeDefs.PartialTaiType."); +return *field_type1List; +} + +Type2List& PartialTaiType::type2List() +{ +if (union_selection != ALT_type2List) { +clean_up(); +field_type2List = new Type2List; +union_selection = ALT_type2List; +} +return *field_type2List; +} + +const Type2List& PartialTaiType::type2List() const +{ +if (union_selection != ALT_type2List) TTCN_error("Using non-selected field type2List in a value of union type @EPS_NAS_TypeDefs.PartialTaiType."); +return *field_type2List; +} + +boolean PartialTaiType::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @EPS_NAS_TypeDefs.PartialTaiType."); +return union_selection == checked_selection; +} + +boolean PartialTaiType::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean PartialTaiType::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_type0List: return field_type0List->is_value(); +case ALT_type1List: return field_type1List->is_value(); +case ALT_type2List: return field_type2List->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void PartialTaiType::clean_up() +{ +switch (union_selection) { +case ALT_type0List: + delete field_type0List; + break; +case ALT_type1List: + delete field_type1List; + break; +case ALT_type2List: + delete field_type2List; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean PartialTaiType::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void PartialTaiType::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* PartialTaiType::clone() const { return new PartialTaiType(*this); } +const TTCN_Typedescriptor_t* PartialTaiType::get_descriptor() const { return &PartialTaiType_descr_; } +void PartialTaiType::log() const +{ +switch (union_selection) { +case ALT_type0List: +TTCN_Logger::log_event_str("{ type0List := "); +field_type0List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_type1List: +TTCN_Logger::log_event_str("{ type1List := "); +field_type1List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_type2List: +TTCN_Logger::log_event_str("{ type2List := "); +field_type2List->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void PartialTaiType::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@EPS_NAS_TypeDefs.PartialTaiType'"); + } + if (strcmp("type0List", param_field) == 0) { + type0List().set_param(param); + return; + } else if (strcmp("type1List", param_field) == 0) { + type1List().set_param(param); + return; + } else if (strcmp("type2List", param_field) == 0) { + type2List().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@EPS_NAS_TypeDefs.PartialTaiType'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "type0List")) { + type0List().set_param(*mp_last); + if (!type0List().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "type1List")) { + type1List().set_param(*mp_last); + if (!type1List().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "type2List")) { + type2List().set_param(*mp_last); + if (!type2List().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @EPS_NAS_TypeDefs.PartialTaiType.", last_name); +} + +Module_Param* PartialTaiType::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@EPS_NAS_TypeDefs.PartialTaiType'"); + } + if (strcmp("type0List", param_field) == 0) { + return type0List().get_param(param_name); + } else if (strcmp("type1List", param_field) == 0) { + return type1List().get_param(param_name); + } else if (strcmp("type2List", param_field) == 0) { + return type2List().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `PartialTaiType'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_type0List: + mp_field = field_type0List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type0List"))); + break; + case ALT_type1List: + mp_field = field_type1List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type1List"))); + break; + case ALT_type2List: + mp_field = field_type2List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type2List"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void PartialTaiType::set_implicit_omit() +{ +switch (union_selection) { +case ALT_type0List: +field_type0List->set_implicit_omit(); break; +case ALT_type1List: +field_type1List->set_implicit_omit(); break; +case ALT_type2List: +field_type2List->set_implicit_omit(); break; +default: break; +} +} + +void PartialTaiType::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_type0List: +field_type0List->encode_text(text_buf); +break; +case ALT_type1List: +field_type1List->encode_text(text_buf); +break; +case ALT_type2List: +field_type2List->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @EPS_NAS_TypeDefs.PartialTaiType."); +} +} + +void PartialTaiType::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_type0List: +type0List().decode_text(text_buf); +break; +case ALT_type1List: +type1List().decode_text(text_buf); +break; +case ALT_type2List: +type2List().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @EPS_NAS_TypeDefs.PartialTaiType."); +} +} + +void PartialTaiType_template::copy_value(const PartialTaiType& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case PartialTaiType::ALT_type0List: +single_value.field_type0List = new Type0List_template(other_value.type0List()); +break; +case PartialTaiType::ALT_type1List: +single_value.field_type1List = new Type1List_template(other_value.type1List()); +break; +case PartialTaiType::ALT_type2List: +single_value.field_type2List = new Type2List_template(other_value.type2List()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @EPS_NAS_TypeDefs.PartialTaiType."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void PartialTaiType_template::copy_template(const PartialTaiType_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case PartialTaiType::ALT_type0List: +single_value.field_type0List = new Type0List_template(*other_value.single_value.field_type0List); +break; +case PartialTaiType::ALT_type1List: +single_value.field_type1List = new Type1List_template(*other_value.single_value.field_type1List); +break; +case PartialTaiType::ALT_type2List: +single_value.field_type2List = new Type2List_template(*other_value.single_value.field_type2List); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @EPS_NAS_TypeDefs.PartialTaiType."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new PartialTaiType_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new PartialTaiType_template(*other_value.implication_.precondition); +implication_.implied_template = new PartialTaiType_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +PartialTaiType_template::PartialTaiType_template(): err_descr(NULL) +{ +} + +PartialTaiType_template::PartialTaiType_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +PartialTaiType_template::PartialTaiType_template(const PartialTaiType& other_value) +{ +copy_value(other_value); +} + +PartialTaiType_template::PartialTaiType_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const PartialTaiType&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @EPS_NAS_TypeDefs.PartialTaiType from an unbound optional field."); +} +} + +PartialTaiType_template::PartialTaiType_template(PartialTaiType_template* p_precondition, PartialTaiType_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +PartialTaiType_template::PartialTaiType_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +PartialTaiType_template::PartialTaiType_template(const PartialTaiType_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +PartialTaiType_template::~PartialTaiType_template() +{ +clean_up(); +} + +void PartialTaiType_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case PartialTaiType::ALT_type0List: +delete single_value.field_type0List; +break; +case PartialTaiType::ALT_type1List: +delete single_value.field_type1List; +break; +case PartialTaiType::ALT_type2List: +delete single_value.field_type2List; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +PartialTaiType_template& PartialTaiType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +PartialTaiType_template& PartialTaiType_template::operator=(const PartialTaiType& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +PartialTaiType_template& PartialTaiType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const PartialTaiType&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +} +return *this; +} + +PartialTaiType_template& PartialTaiType_template::operator=(const PartialTaiType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean PartialTaiType_template::match(const PartialTaiType& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +PartialTaiType::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == PartialTaiType::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case PartialTaiType::ALT_type0List: +return single_value.field_type0List->match(other_value.type0List(), legacy); +case PartialTaiType::ALT_type1List: +return single_value.field_type1List->match(other_value.type1List(), legacy); +case PartialTaiType::ALT_type2List: +return single_value.field_type2List->match(other_value.type2List(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +} +return FALSE; +} + +boolean PartialTaiType_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case PartialTaiType::ALT_type0List: +return single_value.field_type0List->is_value(); +case PartialTaiType::ALT_type1List: +return single_value.field_type1List->is_value(); +case PartialTaiType::ALT_type2List: +return single_value.field_type2List->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +} +} + +PartialTaiType PartialTaiType_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +PartialTaiType ret_val; +switch (single_value.union_selection) { +case PartialTaiType::ALT_type0List: +ret_val.type0List() = single_value.field_type0List->valueof(); +break; +case PartialTaiType::ALT_type1List: +ret_val.type1List() = single_value.field_type1List->valueof(); +break; +case PartialTaiType::ALT_type2List: +ret_val.type2List() = single_value.field_type2List->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +PartialTaiType_template& PartialTaiType_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +return value_list.list_value[list_index]; +} +void PartialTaiType_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new PartialTaiType_template[list_length]; +} + +PartialTaiType::union_selection_type PartialTaiType_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @EPS_NAS_TypeDefs.PartialTaiType"); +return single_value.union_selection; +} + +Type0List_template& PartialTaiType_template::type0List() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PartialTaiType::ALT_type0List) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_type0List = new Type0List_template(ANY_VALUE); +else single_value.field_type0List = new Type0List_template; +single_value.union_selection = PartialTaiType::ALT_type0List; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_type0List; +} + +const Type0List_template& PartialTaiType_template::type0List() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field type0List in a non-specific template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +if (single_value.union_selection != PartialTaiType::ALT_type0List) TTCN_error("Accessing non-selected field type0List in a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +return *single_value.field_type0List; +} + +Type1List_template& PartialTaiType_template::type1List() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PartialTaiType::ALT_type1List) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_type1List = new Type1List_template(ANY_VALUE); +else single_value.field_type1List = new Type1List_template; +single_value.union_selection = PartialTaiType::ALT_type1List; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_type1List; +} + +const Type1List_template& PartialTaiType_template::type1List() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field type1List in a non-specific template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +if (single_value.union_selection != PartialTaiType::ALT_type1List) TTCN_error("Accessing non-selected field type1List in a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +return *single_value.field_type1List; +} + +Type2List_template& PartialTaiType_template::type2List() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PartialTaiType::ALT_type2List) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_type2List = new Type2List_template(ANY_VALUE); +else single_value.field_type2List = new Type2List_template; +single_value.union_selection = PartialTaiType::ALT_type2List; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_type2List; +} + +const Type2List_template& PartialTaiType_template::type2List() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field type2List in a non-specific template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +if (single_value.union_selection != PartialTaiType::ALT_type2List) TTCN_error("Accessing non-selected field type2List in a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +return *single_value.field_type2List; +} + +boolean PartialTaiType_template::ischosen(PartialTaiType::union_selection_type checked_selection) const +{ +if (checked_selection == PartialTaiType::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @EPS_NAS_TypeDefs.PartialTaiType."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == PartialTaiType::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @EPS_NAS_TypeDefs.PartialTaiType containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void PartialTaiType_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void PartialTaiType_template::set_value(template_sel other_value) { *this = other_value; } +void PartialTaiType_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* PartialTaiType_template::clone() const { return new PartialTaiType_template(*this); } +const TTCN_Typedescriptor_t* PartialTaiType_template::get_descriptor() const { return &PartialTaiType_descr_; } +boolean PartialTaiType_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void PartialTaiType_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void PartialTaiType_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case PartialTaiType::ALT_type0List: +TTCN_Logger::log_event_str("{ type0List := "); +single_value.field_type0List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PartialTaiType::ALT_type1List: +TTCN_Logger::log_event_str("{ type1List := "); +single_value.field_type1List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PartialTaiType::ALT_type2List: +TTCN_Logger::log_event_str("{ type2List := "); +single_value.field_type2List->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void PartialTaiType_template::log_match(const PartialTaiType& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case PartialTaiType::ALT_type0List: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".type0List"); +single_value.field_type0List->log_match(match_value.type0List(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ type0List := "); +single_value.field_type0List->log_match(match_value.type0List(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PartialTaiType::ALT_type1List: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".type1List"); +single_value.field_type1List->log_match(match_value.type1List(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ type1List := "); +single_value.field_type1List->log_match(match_value.type1List(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PartialTaiType::ALT_type2List: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".type2List"); +single_value.field_type2List->log_match(match_value.type2List(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ type2List := "); +single_value.field_type2List->log_match(match_value.type2List(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void PartialTaiType_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case PartialTaiType::ALT_type0List: +single_value.field_type0List->encode_text(text_buf); +break; +case PartialTaiType::ALT_type1List: +single_value.field_type1List->encode_text(text_buf); +break; +case PartialTaiType::ALT_type2List: +single_value.field_type2List->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @EPS_NAS_TypeDefs.PartialTaiType."); +} +} + +void PartialTaiType_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = PartialTaiType::UNBOUND_VALUE; +PartialTaiType::union_selection_type new_selection = (PartialTaiType::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case PartialTaiType::ALT_type0List: +single_value.field_type0List = new Type0List_template; +single_value.field_type0List->decode_text(text_buf); +break; +case PartialTaiType::ALT_type1List: +single_value.field_type1List = new Type1List_template; +single_value.field_type1List->decode_text(text_buf); +break; +case PartialTaiType::ALT_type2List: +single_value.field_type2List = new Type2List_template; +single_value.field_type2List->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @EPS_NAS_TypeDefs.PartialTaiType."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new PartialTaiType_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @EPS_NAS_TypeDefs.PartialTaiType."); +} +} + +boolean PartialTaiType_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean PartialTaiType_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@EPS_NAS_TypeDefs.PartialTaiType'"); + } + if (strcmp("type0List", param_field) == 0) { + type0List().set_param(param); + return; + } else if (strcmp("type1List", param_field) == 0) { + type1List().set_param(param); + return; + } else if (strcmp("type2List", param_field) == 0) { + type2List().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@EPS_NAS_TypeDefs.PartialTaiType'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + PartialTaiType_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@EPS_NAS_TypeDefs.PartialTaiType"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "type0List")) { + type0List().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "type1List")) { + type1List().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "type2List")) { + type2List().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @EPS_NAS_TypeDefs.PartialTaiType.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + PartialTaiType_template* precondition = new PartialTaiType_template; + precondition->set_param(*m_p->get_elem(0)); + PartialTaiType_template* implied_template = new PartialTaiType_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = PartialTaiType_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@EPS_NAS_TypeDefs.PartialTaiType"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* PartialTaiType_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@EPS_NAS_TypeDefs.PartialTaiType'"); + } + if (strcmp("type0List", param_field) == 0) { + return type0List().get_param(param_name); + } else if (strcmp("type1List", param_field) == 0) { + return type1List().get_param(param_name); + } else if (strcmp("type2List", param_field) == 0) { + return type2List().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `PartialTaiType'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case PartialTaiType::ALT_type0List: + mp_field = single_value.field_type0List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type0List"))); + break; + case PartialTaiType::ALT_type1List: + mp_field = single_value.field_type1List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type1List"))); + break; + case PartialTaiType::ALT_type2List: + mp_field = single_value.field_type2List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type2List"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void PartialTaiType_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case PartialTaiType::ALT_type0List: +single_value.field_type0List->check_restriction(t_res, t_name ? t_name : "@EPS_NAS_TypeDefs.PartialTaiType"); +return; +case PartialTaiType::ALT_type1List: +single_value.field_type1List->check_restriction(t_res, t_name ? t_name : "@EPS_NAS_TypeDefs.PartialTaiType"); +return; +case PartialTaiType::ALT_type2List: +single_value.field_type2List->check_restriction(t_res, t_name ? t_name : "@EPS_NAS_TypeDefs.PartialTaiType"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @EPS_NAS_TypeDefs.PartialTaiType."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@EPS_NAS_TypeDefs.PartialTaiType"); +} + +void ListOfPartialTaiList::init_vec() { fld_vec[0]=&field_spareBit; fld_vec[1]=&field_typeOfList; fld_vec[2]=&field_numberOfElements; fld_vec[3]=&field_partialTaiList; } + +ListOfPartialTaiList::ListOfPartialTaiList() : Record_Type() { init_vec(); } + +ListOfPartialTaiList::ListOfPartialTaiList(const ListOfPartialTaiList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spareBit.is_bound() ) + field_spareBit = other_value.field_spareBit; +if (other_value.field_typeOfList.is_bound() ) + field_typeOfList = other_value.field_typeOfList; +if (other_value.field_numberOfElements.is_bound() ) + field_numberOfElements = other_value.field_numberOfElements; +if (other_value.field_partialTaiList.is_bound() ) + field_partialTaiList = other_value.field_partialTaiList; +init_vec(); +} + +ListOfPartialTaiList::ListOfPartialTaiList(const BITSTRING& par_spareBit, + const BITSTRING& par_typeOfList, + const BITSTRING& par_numberOfElements, + const PartialTaiType& par_partialTaiList) : field_spareBit(par_spareBit), + field_typeOfList(par_typeOfList), + field_numberOfElements(par_numberOfElements), + field_partialTaiList(par_partialTaiList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ListOfPartialTaiList::get_descriptor() const { return &ListOfPartialTaiList_descr_; } +const TTCN_Typedescriptor_t* ListOfPartialTaiList::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &EPS__PartialTaiListType_descr_, &CommonDefs::B5__Type_descr_, &PartialTaiType_descr_ }; +const TTCN_Typedescriptor_t* ListOfPartialTaiList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ListOfPartialTaiList::fld_names[] = { "spareBit", "typeOfList", "numberOfElements", "partialTaiList" }; +const char* ListOfPartialTaiList::fld_name(int p_index) const { return fld_names[p_index]; } + +void ListOfPartialTaiList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new PartialTaiType_template(ANY_VALUE) : new PartialTaiType_template; +} +} + +ListOfPartialTaiList_template::ListOfPartialTaiList_template(ListOfPartialTaiList_template* p_precondition, ListOfPartialTaiList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ListOfPartialTaiList_template::ListOfPartialTaiList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ListOfPartialTaiList_template::~ListOfPartialTaiList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ListOfPartialTaiList_template::match_dynamic(const Base_Type* match_value) const +{ +const ListOfPartialTaiList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ListOfPartialTaiList_template& ListOfPartialTaiList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ListOfPartialTaiList_template& ListOfPartialTaiList_template::operator=(const ListOfPartialTaiList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ListOfPartialTaiList_template& ListOfPartialTaiList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ListOfPartialTaiList_template& ListOfPartialTaiList_template::operator=(const ListOfPartialTaiList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ListOfPartialTaiList ListOfPartialTaiList_template::valueof() const +{ +ListOfPartialTaiList ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ListOfPartialTaiList_template::spareBit() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ListOfPartialTaiList_template::spareBit() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ListOfPartialTaiList_template::typeOfList() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ListOfPartialTaiList_template::typeOfList() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ListOfPartialTaiList_template::numberOfElements() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ListOfPartialTaiList_template::numberOfElements() const { return *(static_cast(get_at(2))); } +PartialTaiType_template& ListOfPartialTaiList_template::partialTaiList() { return *(static_cast(get_at(3))); } +const PartialTaiType_template& ListOfPartialTaiList_template::partialTaiList() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* ListOfPartialTaiList_template::get_descriptor() const { return &ListOfPartialTaiList_descr_; } +const char* ListOfPartialTaiList_template::fld_name(int p_index) const { return ListOfPartialTaiList::fld_names[p_index]; } + +const ListOfPartialTaiList TrackingAreaIdList_listOfPartialTais::UNBOUND_ELEM; +ListOfPartialTaiList& TrackingAreaIdList_listOfPartialTais::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ListOfPartialTaiList& TrackingAreaIdList_listOfPartialTais::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ListOfPartialTaiList& TrackingAreaIdList_listOfPartialTais::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ListOfPartialTaiList& TrackingAreaIdList_listOfPartialTais::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::operator<<=(const INTEGER& rotate_count) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +return *((TrackingAreaIdList_listOfPartialTais*)rotl(rotate_count, &rec_of)); +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::operator>>=(const INTEGER& rotate_count) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +return *((TrackingAreaIdList_listOfPartialTais*)rotr(rotate_count, &rec_of)); +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::operator>>=(int rotate_count) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +return *((TrackingAreaIdList_listOfPartialTais*)rotr(rotate_count, &rec_of)); +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::operator+(const TrackingAreaIdList_listOfPartialTais& other_value) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +return *((TrackingAreaIdList_listOfPartialTais*)concat(&other_value, &rec_of)); +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const TrackingAreaIdList_listOfPartialTais&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_TypeDefs.TrackingAreaIdList.listOfPartialTais concatenation."); +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::operator+(null_type) const +{ +return *this; +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::substr(int index, int returncount) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::replace(int index, int len, const TrackingAreaIdList_listOfPartialTais& repl) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais::replace(int index, int len, const TrackingAreaIdList_listOfPartialTais_template& repl) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* TrackingAreaIdList_listOfPartialTais::create_elem() const { return new ListOfPartialTaiList; } +const Base_Type* TrackingAreaIdList_listOfPartialTais::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* TrackingAreaIdList_listOfPartialTais::get_descriptor() const { return &TrackingAreaIdList_listOfPartialTais_descr_; } +TrackingAreaIdList_listOfPartialTais_template::TrackingAreaIdList_listOfPartialTais_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +TrackingAreaIdList_listOfPartialTais_template::TrackingAreaIdList_listOfPartialTais_template(TrackingAreaIdList_listOfPartialTais_template* p_precondition, TrackingAreaIdList_listOfPartialTais_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TrackingAreaIdList_listOfPartialTais_template::TrackingAreaIdList_listOfPartialTais_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TrackingAreaIdList_listOfPartialTais_template::~TrackingAreaIdList_listOfPartialTais_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TrackingAreaIdList_listOfPartialTais_template::match_dynamic(const Base_Type* match_value) const +{ +const TrackingAreaIdList_listOfPartialTais* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +TrackingAreaIdList_listOfPartialTais_template& TrackingAreaIdList_listOfPartialTais_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TrackingAreaIdList_listOfPartialTais_template& TrackingAreaIdList_listOfPartialTais_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +TrackingAreaIdList_listOfPartialTais_template& TrackingAreaIdList_listOfPartialTais_template::operator=(const TrackingAreaIdList_listOfPartialTais& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TrackingAreaIdList_listOfPartialTais_template& TrackingAreaIdList_listOfPartialTais_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TrackingAreaIdList_listOfPartialTais_template& TrackingAreaIdList_listOfPartialTais_template::operator=(const TrackingAreaIdList_listOfPartialTais_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TrackingAreaIdList_listOfPartialTais_template TrackingAreaIdList_listOfPartialTais_template::operator+(const TrackingAreaIdList_listOfPartialTais_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return TrackingAreaIdList_listOfPartialTais_template(ANY_VALUE); +} +TrackingAreaIdList_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +TrackingAreaIdList_listOfPartialTais_template TrackingAreaIdList_listOfPartialTais_template::operator+(const TrackingAreaIdList_listOfPartialTais& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +TrackingAreaIdList_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +TrackingAreaIdList_listOfPartialTais_template TrackingAreaIdList_listOfPartialTais_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return TrackingAreaIdList_listOfPartialTais_template(ANY_VALUE); +} +TrackingAreaIdList_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +TrackingAreaIdList_listOfPartialTais_template TrackingAreaIdList_listOfPartialTais_template::operator+(null_type) const +{ +return *this; +} + +ListOfPartialTaiList_template& TrackingAreaIdList_listOfPartialTais_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ListOfPartialTaiList_template& TrackingAreaIdList_listOfPartialTais_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ListOfPartialTaiList_template& TrackingAreaIdList_listOfPartialTais_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ListOfPartialTaiList_template& TrackingAreaIdList_listOfPartialTais_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais_template::valueof() const +{ +TrackingAreaIdList_listOfPartialTais ret_val; +valueofv(&ret_val); +return ret_val; +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais_template::substr(int index, int returncount) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais_template::replace(int index, int len, const TrackingAreaIdList_listOfPartialTais_template& repl) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +TrackingAreaIdList_listOfPartialTais TrackingAreaIdList_listOfPartialTais_template::replace(int index, int len, const TrackingAreaIdList_listOfPartialTais& repl) const +{ +TrackingAreaIdList_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* TrackingAreaIdList_listOfPartialTais_template::create_elem() const { return new ListOfPartialTaiList_template; } +const TTCN_Typedescriptor_t* TrackingAreaIdList_listOfPartialTais_template::get_descriptor() const { return &TrackingAreaIdList_listOfPartialTais_descr_; } +void TrackingAreaIdList::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_listOfPartialTais; } + +TrackingAreaIdList::TrackingAreaIdList() : Record_Type() { init_vec(); } + +TrackingAreaIdList::TrackingAreaIdList(const TrackingAreaIdList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_listOfPartialTais.is_bound() ) + field_listOfPartialTais = other_value.field_listOfPartialTais; +init_vec(); +} + +TrackingAreaIdList::TrackingAreaIdList(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const TrackingAreaIdList_listOfPartialTais& par_listOfPartialTais) : field_iei(par_iei), + field_iel(par_iel), + field_listOfPartialTais(par_listOfPartialTais) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TrackingAreaIdList::get_descriptor() const { return &TrackingAreaIdList_descr_; } +const TTCN_Typedescriptor_t* TrackingAreaIdList::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &TrackingAreaIdList_listOfPartialTais_descr_ }; +const TTCN_Typedescriptor_t* TrackingAreaIdList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TrackingAreaIdList::fld_names[] = { "iei", "iel", "listOfPartialTais" }; +const char* TrackingAreaIdList::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TrackingAreaIdList::optional_indexes[] = { 0, -1 }; +const int* TrackingAreaIdList::get_optional_indexes() const { return optional_indexes; } + +const int TrackingAreaIdList::optional_indexes_asn[] = { 0, -1 }; +const int* TrackingAreaIdList::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TrackingAreaIdList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new TrackingAreaIdList_listOfPartialTais_template(ANY_VALUE) : new TrackingAreaIdList_listOfPartialTais_template; +} +} + +TrackingAreaIdList_template::TrackingAreaIdList_template(TrackingAreaIdList_template* p_precondition, TrackingAreaIdList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TrackingAreaIdList_template::TrackingAreaIdList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TrackingAreaIdList_template::~TrackingAreaIdList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TrackingAreaIdList_template::match_dynamic(const Base_Type* match_value) const +{ +const TrackingAreaIdList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TrackingAreaIdList_template& TrackingAreaIdList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TrackingAreaIdList_template& TrackingAreaIdList_template::operator=(const TrackingAreaIdList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TrackingAreaIdList_template& TrackingAreaIdList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TrackingAreaIdList_template& TrackingAreaIdList_template::operator=(const TrackingAreaIdList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TrackingAreaIdList TrackingAreaIdList_template::valueof() const +{ +TrackingAreaIdList ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& TrackingAreaIdList_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& TrackingAreaIdList_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& TrackingAreaIdList_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& TrackingAreaIdList_template::iel() const { return *(static_cast(get_at(1))); } +TrackingAreaIdList_listOfPartialTais_template& TrackingAreaIdList_template::listOfPartialTais() { return *(static_cast(get_at(2))); } +const TrackingAreaIdList_listOfPartialTais_template& TrackingAreaIdList_template::listOfPartialTais() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* TrackingAreaIdList_template::get_descriptor() const { return &TrackingAreaIdList_descr_; } +const char* TrackingAreaIdList_template::fld_name(int p_index) const { return TrackingAreaIdList::fld_names[p_index]; } +void EPS__AttachResult::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_resultValue; } + +EPS__AttachResult::EPS__AttachResult() : Record_Type() { init_vec(); } + +EPS__AttachResult::EPS__AttachResult(const EPS__AttachResult& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_resultValue.is_bound() ) + field_resultValue = other_value.field_resultValue; +init_vec(); +} + +EPS__AttachResult::EPS__AttachResult(const BITSTRING& par_spare, + const BITSTRING& par_resultValue) : field_spare(par_spare), + field_resultValue(par_resultValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__AttachResult::get_descriptor() const { return &EPS__AttachResult_descr_; } +const TTCN_Typedescriptor_t* EPS__AttachResult::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &NAS__CommonTypeDefs::NAS__AttDetValue__Type_descr_ }; +const TTCN_Typedescriptor_t* EPS__AttachResult::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__AttachResult::fld_names[] = { "spare", "resultValue" }; +const char* EPS__AttachResult::fld_name(int p_index) const { return fld_names[p_index]; } + +void EPS__AttachResult_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EPS__AttachResult_template::EPS__AttachResult_template(EPS__AttachResult_template* p_precondition, EPS__AttachResult_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__AttachResult_template::EPS__AttachResult_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__AttachResult_template::~EPS__AttachResult_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__AttachResult_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__AttachResult* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__AttachResult_template& EPS__AttachResult_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__AttachResult_template& EPS__AttachResult_template::operator=(const EPS__AttachResult& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__AttachResult_template& EPS__AttachResult_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__AttachResult_template& EPS__AttachResult_template::operator=(const EPS__AttachResult_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__AttachResult EPS__AttachResult_template::valueof() const +{ +EPS__AttachResult ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& EPS__AttachResult_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& EPS__AttachResult_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EPS__AttachResult_template::resultValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EPS__AttachResult_template::resultValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* EPS__AttachResult_template::get_descriptor() const { return &EPS__AttachResult_descr_; } +const char* EPS__AttachResult_template::fld_name(int p_index) const { return EPS__AttachResult::fld_names[p_index]; } +void ESM__MessageContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_esmPdu; } + +ESM__MessageContainer::ESM__MessageContainer() : Record_Type() { init_vec(); } + +ESM__MessageContainer::ESM__MessageContainer(const ESM__MessageContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_esmPdu.is_bound() ) + field_esmPdu = other_value.field_esmPdu; +init_vec(); +} + +ESM__MessageContainer::ESM__MessageContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_esmPdu) : field_iei(par_iei), + field_iel(par_iel), + field_esmPdu(par_esmPdu) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ESM__MessageContainer::get_descriptor() const { return &ESM__MessageContainer_descr_; } +const TTCN_Typedescriptor_t* ESM__MessageContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* ESM__MessageContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ESM__MessageContainer::fld_names[] = { "iei", "iel", "esmPdu" }; +const char* ESM__MessageContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ESM__MessageContainer::optional_indexes[] = { 0, -1 }; +const int* ESM__MessageContainer::get_optional_indexes() const { return optional_indexes; } + +const int ESM__MessageContainer::optional_indexes_asn[] = { 0, -1 }; +const int* ESM__MessageContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ESM__MessageContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +ESM__MessageContainer_template::ESM__MessageContainer_template(ESM__MessageContainer_template* p_precondition, ESM__MessageContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ESM__MessageContainer_template::ESM__MessageContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ESM__MessageContainer_template::~ESM__MessageContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ESM__MessageContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const ESM__MessageContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ESM__MessageContainer_template& ESM__MessageContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ESM__MessageContainer_template& ESM__MessageContainer_template::operator=(const ESM__MessageContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ESM__MessageContainer_template& ESM__MessageContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ESM__MessageContainer_template& ESM__MessageContainer_template::operator=(const ESM__MessageContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ESM__MessageContainer ESM__MessageContainer_template::valueof() const +{ +ESM__MessageContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ESM__MessageContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ESM__MessageContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ESM__MessageContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ESM__MessageContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ESM__MessageContainer_template::esmPdu() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ESM__MessageContainer_template::esmPdu() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ESM__MessageContainer_template::get_descriptor() const { return &ESM__MessageContainer_descr_; } +const char* ESM__MessageContainer_template::fld_name(int p_index) const { return ESM__MessageContainer::fld_names[p_index]; } +void ATTACH__ACCEPT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_spareHalfOctet; fld_vec[4]=&field_epsAttachResult; fld_vec[5]=&field_t3412; fld_vec[6]=&field_taiList; fld_vec[7]=&field_esmMessage; fld_vec[8]=&field_guti; fld_vec[9]=&field_lai; fld_vec[10]=&field_msIdentity; fld_vec[11]=&field_emmCause; fld_vec[12]=&field_t3402; fld_vec[13]=&field_t3423; fld_vec[14]=&field_equivalentPlmns; fld_vec[15]=&field_emergencyNumberList; fld_vec[16]=&field_epsNetworkFeatureSupport; fld_vec[17]=&field_addUpdateResult; fld_vec[18]=&field_t3412ExtdValue; fld_vec[19]=&field_t3324Value; fld_vec[20]=&field_extendedDRXParams; fld_vec[21]=&field_dcnId; fld_vec[22]=&field_smsServicesStatus; fld_vec[23]=&field_non3GPP__NW__ProvidedPolicies; fld_vec[24]=&field_t3448; fld_vec[25]=&field_networkPolicy; fld_vec[26]=&field_t3447Value; fld_vec[27]=&field_xtdEmergencyNumList; fld_vec[28]=&field_cipheringKeyData; fld_vec[29]=&field_ueRadioCapId; fld_vec[30]=&field_ueRadioCapIdDeleteInd; fld_vec[31]=&field_negotiatedWUSAssistInfo; fld_vec[32]=&field_negotiatedDRXinNB__S1; fld_vec[33]=&field_negotiatedIMSI__Offset; fld_vec[34]=&field_forbidTAIList__Roaming; fld_vec[35]=&field_forbidTAIList__RegProvService; } + +ATTACH__ACCEPT::ATTACH__ACCEPT() : Record_Type() { init_vec(); } + +ATTACH__ACCEPT::ATTACH__ACCEPT(const ATTACH__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_epsAttachResult.is_bound() ) + field_epsAttachResult = other_value.field_epsAttachResult; +if (other_value.field_t3412.is_bound() ) + field_t3412 = other_value.field_t3412; +if (other_value.field_taiList.is_bound() ) + field_taiList = other_value.field_taiList; +if (other_value.field_esmMessage.is_bound() ) + field_esmMessage = other_value.field_esmMessage; +if (other_value.field_guti.is_bound() ) + field_guti = other_value.field_guti; +if (other_value.field_lai.is_bound() ) + field_lai = other_value.field_lai; +if (other_value.field_msIdentity.is_bound() ) + field_msIdentity = other_value.field_msIdentity; +if (other_value.field_emmCause.is_bound() ) + field_emmCause = other_value.field_emmCause; +if (other_value.field_t3402.is_bound() ) + field_t3402 = other_value.field_t3402; +if (other_value.field_t3423.is_bound() ) + field_t3423 = other_value.field_t3423; +if (other_value.field_equivalentPlmns.is_bound() ) + field_equivalentPlmns = other_value.field_equivalentPlmns; +if (other_value.field_emergencyNumberList.is_bound() ) + field_emergencyNumberList = other_value.field_emergencyNumberList; +if (other_value.field_epsNetworkFeatureSupport.is_bound() ) + field_epsNetworkFeatureSupport = other_value.field_epsNetworkFeatureSupport; +if (other_value.field_addUpdateResult.is_bound() ) + field_addUpdateResult = other_value.field_addUpdateResult; +if (other_value.field_t3412ExtdValue.is_bound() ) + field_t3412ExtdValue = other_value.field_t3412ExtdValue; +if (other_value.field_t3324Value.is_bound() ) + field_t3324Value = other_value.field_t3324Value; +if (other_value.field_extendedDRXParams.is_bound() ) + field_extendedDRXParams = other_value.field_extendedDRXParams; +if (other_value.field_dcnId.is_bound() ) + field_dcnId = other_value.field_dcnId; +if (other_value.field_smsServicesStatus.is_bound() ) + field_smsServicesStatus = other_value.field_smsServicesStatus; +if (other_value.field_non3GPP__NW__ProvidedPolicies.is_bound() ) + field_non3GPP__NW__ProvidedPolicies = other_value.field_non3GPP__NW__ProvidedPolicies; +if (other_value.field_t3448.is_bound() ) + field_t3448 = other_value.field_t3448; +if (other_value.field_networkPolicy.is_bound() ) + field_networkPolicy = other_value.field_networkPolicy; +if (other_value.field_t3447Value.is_bound() ) + field_t3447Value = other_value.field_t3447Value; +if (other_value.field_xtdEmergencyNumList.is_bound() ) + field_xtdEmergencyNumList = other_value.field_xtdEmergencyNumList; +if (other_value.field_cipheringKeyData.is_bound() ) + field_cipheringKeyData = other_value.field_cipheringKeyData; +if (other_value.field_ueRadioCapId.is_bound() ) + field_ueRadioCapId = other_value.field_ueRadioCapId; +if (other_value.field_ueRadioCapIdDeleteInd.is_bound() ) + field_ueRadioCapIdDeleteInd = other_value.field_ueRadioCapIdDeleteInd; +if (other_value.field_negotiatedWUSAssistInfo.is_bound() ) + field_negotiatedWUSAssistInfo = other_value.field_negotiatedWUSAssistInfo; +if (other_value.field_negotiatedDRXinNB__S1.is_bound() ) + field_negotiatedDRXinNB__S1 = other_value.field_negotiatedDRXinNB__S1; +if (other_value.field_negotiatedIMSI__Offset.is_bound() ) + field_negotiatedIMSI__Offset = other_value.field_negotiatedIMSI__Offset; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +ATTACH__ACCEPT::ATTACH__ACCEPT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const EPS__AttachResult& par_epsAttachResult, + const NAS__CommonTypeDefs::GPRS__Timer& par_t3412, + const TrackingAreaIdList& par_taiList, + const ESM__MessageContainer& par_esmMessage, + const OPTIONAL& par_guti, + const OPTIONAL& par_lai, + const OPTIONAL& par_msIdentity, + const OPTIONAL& par_emmCause, + const OPTIONAL& par_t3402, + const OPTIONAL& par_t3423, + const OPTIONAL& par_equivalentPlmns, + const OPTIONAL& par_emergencyNumberList, + const OPTIONAL& par_epsNetworkFeatureSupport, + const OPTIONAL& par_addUpdateResult, + const OPTIONAL& par_t3412ExtdValue, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_extendedDRXParams, + const OPTIONAL& par_dcnId, + const OPTIONAL& par_smsServicesStatus, + const OPTIONAL& par_non3GPP__NW__ProvidedPolicies, + const OPTIONAL& par_t3448, + const OPTIONAL& par_networkPolicy, + const OPTIONAL& par_t3447Value, + const OPTIONAL& par_xtdEmergencyNumList, + const OPTIONAL& par_cipheringKeyData, + const OPTIONAL& par_ueRadioCapId, + const OPTIONAL& par_ueRadioCapIdDeleteInd, + const OPTIONAL& par_negotiatedWUSAssistInfo, + const OPTIONAL& par_negotiatedDRXinNB__S1, + const OPTIONAL& par_negotiatedIMSI__Offset, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_spareHalfOctet(par_spareHalfOctet), + field_epsAttachResult(par_epsAttachResult), + field_t3412(par_t3412), + field_taiList(par_taiList), + field_esmMessage(par_esmMessage), + field_guti(par_guti), + field_lai(par_lai), + field_msIdentity(par_msIdentity), + field_emmCause(par_emmCause), + field_t3402(par_t3402), + field_t3423(par_t3423), + field_equivalentPlmns(par_equivalentPlmns), + field_emergencyNumberList(par_emergencyNumberList), + field_epsNetworkFeatureSupport(par_epsNetworkFeatureSupport), + field_addUpdateResult(par_addUpdateResult), + field_t3412ExtdValue(par_t3412ExtdValue), + field_t3324Value(par_t3324Value), + field_extendedDRXParams(par_extendedDRXParams), + field_dcnId(par_dcnId), + field_smsServicesStatus(par_smsServicesStatus), + field_non3GPP__NW__ProvidedPolicies(par_non3GPP__NW__ProvidedPolicies), + field_t3448(par_t3448), + field_networkPolicy(par_networkPolicy), + field_t3447Value(par_t3447Value), + field_xtdEmergencyNumList(par_xtdEmergencyNumList), + field_cipheringKeyData(par_cipheringKeyData), + field_ueRadioCapId(par_ueRadioCapId), + field_ueRadioCapIdDeleteInd(par_ueRadioCapIdDeleteInd), + field_negotiatedWUSAssistInfo(par_negotiatedWUSAssistInfo), + field_negotiatedDRXinNB__S1(par_negotiatedDRXinNB__S1), + field_negotiatedIMSI__Offset(par_negotiatedIMSI__Offset), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ATTACH__ACCEPT::get_descriptor() const { return &ATTACH__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* ATTACH__ACCEPT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &EPS__AttachResult_descr_, &NAS__CommonTypeDefs::GPRS__Timer_descr_, &TrackingAreaIdList_descr_, &ESM__MessageContainer_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &NAS__CommonTypeDefs::LocAreaId_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &EMM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer_descr_, &NAS__CommonTypeDefs::GPRS__Timer_descr_, &NAS__CommonTypeDefs::PLMN__List_descr_, &NAS__CommonTypeDefs::EmergNumList_descr_, &EPS__NetworkFeatureSupport_descr_, &AdditionalUpdateResult_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::ExtdDRXParams_descr_, &NAS__CommonTypeDefs::DCN__ID_descr_, &SMSServicesStatus_descr_, &NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NetworkPolicy_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::ExtdEmergNumList_descr_, &CipheringKeyData_descr_, &NAS__CommonTypeDefs::UERadioCapId_descr_, &NAS__CommonTypeDefs::UERadioCapIdDeletion_descr_, &NAS__CommonTypeDefs::WUSAssistInfo_descr_, &NAS__CommonTypeDefs::DRXParamCommon_descr_, &IMSI__Offset_descr_, &TrackingAreaIdList_descr_, &TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* ATTACH__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ATTACH__ACCEPT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "spareHalfOctet", "epsAttachResult", "t3412", "taiList", "esmMessage", "guti", "lai", "msIdentity", "emmCause", "t3402", "t3423", "equivalentPlmns", "emergencyNumberList", "epsNetworkFeatureSupport", "addUpdateResult", "t3412ExtdValue", "t3324Value", "extendedDRXParams", "dcnId", "smsServicesStatus", "non3GPP_NW_ProvidedPolicies", "t3448", "networkPolicy", "t3447Value", "xtdEmergencyNumList", "cipheringKeyData", "ueRadioCapId", "ueRadioCapIdDeleteInd", "negotiatedWUSAssistInfo", "negotiatedDRXinNB_S1", "negotiatedIMSI_Offset", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* ATTACH__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ATTACH__ACCEPT::optional_indexes[] = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1 }; +const int* ATTACH__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int ATTACH__ACCEPT::optional_indexes_asn[] = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1 }; +const int* ATTACH__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ATTACH__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 36; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[4] = was_any ? new EPS__AttachResult_template(ANY_VALUE) : new EPS__AttachResult_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer_template(ANY_VALUE) : new NAS__CommonTypeDefs::GPRS__Timer_template; +single_value.value_elements[6] = was_any ? new TrackingAreaIdList_template(ANY_VALUE) : new TrackingAreaIdList_template; +single_value.value_elements[7] = was_any ? new ESM__MessageContainer_template(ANY_VALUE) : new ESM__MessageContainer_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::LocAreaId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::LocAreaId_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[11] = was_any ? new EMM__Cause_template(ANY_OR_OMIT) : new EMM__Cause_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer_template; +single_value.value_elements[14] = was_any ? new NAS__CommonTypeDefs::PLMN__List_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::PLMN__List_template; +single_value.value_elements[15] = was_any ? new NAS__CommonTypeDefs::EmergNumList_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EmergNumList_template; +single_value.value_elements[16] = was_any ? new EPS__NetworkFeatureSupport_template(ANY_OR_OMIT) : new EPS__NetworkFeatureSupport_template; +single_value.value_elements[17] = was_any ? new AdditionalUpdateResult_template(ANY_OR_OMIT) : new AdditionalUpdateResult_template; +single_value.value_elements[18] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[19] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[20] = was_any ? new NAS__CommonTypeDefs::ExtdDRXParams_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdDRXParams_template; +single_value.value_elements[21] = was_any ? new NAS__CommonTypeDefs::DCN__ID_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DCN__ID_template; +single_value.value_elements[22] = was_any ? new SMSServicesStatus_template(ANY_OR_OMIT) : new SMSServicesStatus_template; +single_value.value_elements[23] = was_any ? new NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template; +single_value.value_elements[24] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[25] = was_any ? new NetworkPolicy_template(ANY_OR_OMIT) : new NetworkPolicy_template; +single_value.value_elements[26] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[27] = was_any ? new NAS__CommonTypeDefs::ExtdEmergNumList_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdEmergNumList_template; +single_value.value_elements[28] = was_any ? new CipheringKeyData_template(ANY_OR_OMIT) : new CipheringKeyData_template; +single_value.value_elements[29] = was_any ? new NAS__CommonTypeDefs::UERadioCapId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapId_template; +single_value.value_elements[30] = was_any ? new NAS__CommonTypeDefs::UERadioCapIdDeletion_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapIdDeletion_template; +single_value.value_elements[31] = was_any ? new NAS__CommonTypeDefs::WUSAssistInfo_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WUSAssistInfo_template; +single_value.value_elements[32] = was_any ? new NAS__CommonTypeDefs::DRXParamCommon_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXParamCommon_template; +single_value.value_elements[33] = was_any ? new IMSI__Offset_template(ANY_OR_OMIT) : new IMSI__Offset_template; +single_value.value_elements[34] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +single_value.value_elements[35] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +} +} + +ATTACH__ACCEPT_template::ATTACH__ACCEPT_template(ATTACH__ACCEPT_template* p_precondition, ATTACH__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ATTACH__ACCEPT_template::ATTACH__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ATTACH__ACCEPT_template::~ATTACH__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ATTACH__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const ATTACH__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ATTACH__ACCEPT_template& ATTACH__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ATTACH__ACCEPT_template& ATTACH__ACCEPT_template::operator=(const ATTACH__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ATTACH__ACCEPT_template& ATTACH__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ATTACH__ACCEPT_template& ATTACH__ACCEPT_template::operator=(const ATTACH__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ATTACH__ACCEPT ATTACH__ACCEPT_template::valueof() const +{ +ATTACH__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ATTACH__ACCEPT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ATTACH__ACCEPT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ATTACH__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ATTACH__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ATTACH__ACCEPT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ATTACH__ACCEPT_template::messageType() const { return *(static_cast(get_at(2))); } +HEXSTRING_template& ATTACH__ACCEPT_template::spareHalfOctet() { return *(static_cast(get_at(3))); } +const HEXSTRING_template& ATTACH__ACCEPT_template::spareHalfOctet() const { return *(static_cast(get_at(3))); } +EPS__AttachResult_template& ATTACH__ACCEPT_template::epsAttachResult() { return *(static_cast(get_at(4))); } +const EPS__AttachResult_template& ATTACH__ACCEPT_template::epsAttachResult() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::GPRS__Timer_template& ATTACH__ACCEPT_template::t3412() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::GPRS__Timer_template& ATTACH__ACCEPT_template::t3412() const { return *(static_cast(get_at(5))); } +TrackingAreaIdList_template& ATTACH__ACCEPT_template::taiList() { return *(static_cast(get_at(6))); } +const TrackingAreaIdList_template& ATTACH__ACCEPT_template::taiList() const { return *(static_cast(get_at(6))); } +ESM__MessageContainer_template& ATTACH__ACCEPT_template::esmMessage() { return *(static_cast(get_at(7))); } +const ESM__MessageContainer_template& ATTACH__ACCEPT_template::esmMessage() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::MobileIdentity_template& ATTACH__ACCEPT_template::guti() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::MobileIdentity_template& ATTACH__ACCEPT_template::guti() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::LocAreaId_template& ATTACH__ACCEPT_template::lai() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::LocAreaId_template& ATTACH__ACCEPT_template::lai() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::MobileIdentity_template& ATTACH__ACCEPT_template::msIdentity() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::MobileIdentity_template& ATTACH__ACCEPT_template::msIdentity() const { return *(static_cast(get_at(10))); } +EMM__Cause_template& ATTACH__ACCEPT_template::emmCause() { return *(static_cast(get_at(11))); } +const EMM__Cause_template& ATTACH__ACCEPT_template::emmCause() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::GPRS__Timer_template& ATTACH__ACCEPT_template::t3402() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::GPRS__Timer_template& ATTACH__ACCEPT_template::t3402() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::GPRS__Timer_template& ATTACH__ACCEPT_template::t3423() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::GPRS__Timer_template& ATTACH__ACCEPT_template::t3423() const { return *(static_cast(get_at(13))); } +NAS__CommonTypeDefs::PLMN__List_template& ATTACH__ACCEPT_template::equivalentPlmns() { return *(static_cast(get_at(14))); } +const NAS__CommonTypeDefs::PLMN__List_template& ATTACH__ACCEPT_template::equivalentPlmns() const { return *(static_cast(get_at(14))); } +NAS__CommonTypeDefs::EmergNumList_template& ATTACH__ACCEPT_template::emergencyNumberList() { return *(static_cast(get_at(15))); } +const NAS__CommonTypeDefs::EmergNumList_template& ATTACH__ACCEPT_template::emergencyNumberList() const { return *(static_cast(get_at(15))); } +EPS__NetworkFeatureSupport_template& ATTACH__ACCEPT_template::epsNetworkFeatureSupport() { return *(static_cast(get_at(16))); } +const EPS__NetworkFeatureSupport_template& ATTACH__ACCEPT_template::epsNetworkFeatureSupport() const { return *(static_cast(get_at(16))); } +AdditionalUpdateResult_template& ATTACH__ACCEPT_template::addUpdateResult() { return *(static_cast(get_at(17))); } +const AdditionalUpdateResult_template& ATTACH__ACCEPT_template::addUpdateResult() const { return *(static_cast(get_at(17))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__ACCEPT_template::t3412ExtdValue() { return *(static_cast(get_at(18))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__ACCEPT_template::t3412ExtdValue() const { return *(static_cast(get_at(18))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__ACCEPT_template::t3324Value() { return *(static_cast(get_at(19))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__ACCEPT_template::t3324Value() const { return *(static_cast(get_at(19))); } +NAS__CommonTypeDefs::ExtdDRXParams_template& ATTACH__ACCEPT_template::extendedDRXParams() { return *(static_cast(get_at(20))); } +const NAS__CommonTypeDefs::ExtdDRXParams_template& ATTACH__ACCEPT_template::extendedDRXParams() const { return *(static_cast(get_at(20))); } +NAS__CommonTypeDefs::DCN__ID_template& ATTACH__ACCEPT_template::dcnId() { return *(static_cast(get_at(21))); } +const NAS__CommonTypeDefs::DCN__ID_template& ATTACH__ACCEPT_template::dcnId() const { return *(static_cast(get_at(21))); } +SMSServicesStatus_template& ATTACH__ACCEPT_template::smsServicesStatus() { return *(static_cast(get_at(22))); } +const SMSServicesStatus_template& ATTACH__ACCEPT_template::smsServicesStatus() const { return *(static_cast(get_at(22))); } +NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& ATTACH__ACCEPT_template::non3GPP__NW__ProvidedPolicies() { return *(static_cast(get_at(23))); } +const NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& ATTACH__ACCEPT_template::non3GPP__NW__ProvidedPolicies() const { return *(static_cast(get_at(23))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__ACCEPT_template::t3448() { return *(static_cast(get_at(24))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__ACCEPT_template::t3448() const { return *(static_cast(get_at(24))); } +NetworkPolicy_template& ATTACH__ACCEPT_template::networkPolicy() { return *(static_cast(get_at(25))); } +const NetworkPolicy_template& ATTACH__ACCEPT_template::networkPolicy() const { return *(static_cast(get_at(25))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__ACCEPT_template::t3447Value() { return *(static_cast(get_at(26))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__ACCEPT_template::t3447Value() const { return *(static_cast(get_at(26))); } +NAS__CommonTypeDefs::ExtdEmergNumList_template& ATTACH__ACCEPT_template::xtdEmergencyNumList() { return *(static_cast(get_at(27))); } +const NAS__CommonTypeDefs::ExtdEmergNumList_template& ATTACH__ACCEPT_template::xtdEmergencyNumList() const { return *(static_cast(get_at(27))); } +CipheringKeyData_template& ATTACH__ACCEPT_template::cipheringKeyData() { return *(static_cast(get_at(28))); } +const CipheringKeyData_template& ATTACH__ACCEPT_template::cipheringKeyData() const { return *(static_cast(get_at(28))); } +NAS__CommonTypeDefs::UERadioCapId_template& ATTACH__ACCEPT_template::ueRadioCapId() { return *(static_cast(get_at(29))); } +const NAS__CommonTypeDefs::UERadioCapId_template& ATTACH__ACCEPT_template::ueRadioCapId() const { return *(static_cast(get_at(29))); } +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ATTACH__ACCEPT_template::ueRadioCapIdDeleteInd() { return *(static_cast(get_at(30))); } +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ATTACH__ACCEPT_template::ueRadioCapIdDeleteInd() const { return *(static_cast(get_at(30))); } +NAS__CommonTypeDefs::WUSAssistInfo_template& ATTACH__ACCEPT_template::negotiatedWUSAssistInfo() { return *(static_cast(get_at(31))); } +const NAS__CommonTypeDefs::WUSAssistInfo_template& ATTACH__ACCEPT_template::negotiatedWUSAssistInfo() const { return *(static_cast(get_at(31))); } +NAS__CommonTypeDefs::DRXParamCommon_template& ATTACH__ACCEPT_template::negotiatedDRXinNB__S1() { return *(static_cast(get_at(32))); } +const NAS__CommonTypeDefs::DRXParamCommon_template& ATTACH__ACCEPT_template::negotiatedDRXinNB__S1() const { return *(static_cast(get_at(32))); } +IMSI__Offset_template& ATTACH__ACCEPT_template::negotiatedIMSI__Offset() { return *(static_cast(get_at(33))); } +const IMSI__Offset_template& ATTACH__ACCEPT_template::negotiatedIMSI__Offset() const { return *(static_cast(get_at(33))); } +TrackingAreaIdList_template& ATTACH__ACCEPT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(34))); } +const TrackingAreaIdList_template& ATTACH__ACCEPT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(34))); } +TrackingAreaIdList_template& ATTACH__ACCEPT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(35))); } +const TrackingAreaIdList_template& ATTACH__ACCEPT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(35))); } +const TTCN_Typedescriptor_t* ATTACH__ACCEPT_template::get_descriptor() const { return &ATTACH__ACCEPT_descr_; } +const char* ATTACH__ACCEPT_template::fld_name(int p_index) const { return ATTACH__ACCEPT::fld_names[p_index]; } +void EMM__Cause::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_causeValue; } + +EMM__Cause::EMM__Cause() : Record_Type() { init_vec(); } + +EMM__Cause::EMM__Cause(const EMM__Cause& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_causeValue.is_bound() ) + field_causeValue = other_value.field_causeValue; +init_vec(); +} + +EMM__Cause::EMM__Cause(const OPTIONAL& par_iei, + const BITSTRING& par_causeValue) : field_iei(par_iei), + field_causeValue(par_causeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EMM__Cause::get_descriptor() const { return &EMM__Cause_descr_; } +const TTCN_Typedescriptor_t* EMM__Cause::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::NAS__CauseValue__Type_descr_ }; +const TTCN_Typedescriptor_t* EMM__Cause::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EMM__Cause::fld_names[] = { "iei", "causeValue" }; +const char* EMM__Cause::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EMM__Cause::optional_indexes[] = { 0, -1 }; +const int* EMM__Cause::get_optional_indexes() const { return optional_indexes; } + +const int EMM__Cause::optional_indexes_asn[] = { 0, -1 }; +const int* EMM__Cause::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EMM__Cause_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EMM__Cause_template::EMM__Cause_template(EMM__Cause_template* p_precondition, EMM__Cause_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EMM__Cause_template::EMM__Cause_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EMM__Cause_template::~EMM__Cause_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EMM__Cause_template::match_dynamic(const Base_Type* match_value) const +{ +const EMM__Cause* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EMM__Cause_template& EMM__Cause_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EMM__Cause_template& EMM__Cause_template::operator=(const EMM__Cause& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EMM__Cause_template& EMM__Cause_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EMM__Cause_template& EMM__Cause_template::operator=(const EMM__Cause_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EMM__Cause EMM__Cause_template::valueof() const +{ +EMM__Cause ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EMM__Cause_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EMM__Cause_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EMM__Cause_template::causeValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EMM__Cause_template::causeValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* EMM__Cause_template::get_descriptor() const { return &EMM__Cause_descr_; } +const char* EMM__Cause_template::fld_name(int p_index) const { return EMM__Cause::fld_names[p_index]; } +void EPS__NetworkFeatureSupport::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_cp__CIOT; fld_vec[3]=&field_emmRegistered__withoutPDN; fld_vec[4]=&field_esrps; fld_vec[5]=&field_csLCS; fld_vec[6]=&field_epcLCS; fld_vec[7]=&field_emcBS; fld_vec[8]=&field_imsVoPS; fld_vec[9]=&field_bearers15; fld_vec[10]=&field_iwkN26; fld_vec[11]=&field_restrictDCNR; fld_vec[12]=&field_restrictEC; fld_vec[13]=&field_extdPCO; fld_vec[14]=&field_headerComp__CP__CIOT; fld_vec[15]=&field_s1__U__data; fld_vec[16]=&field_up__CIOT; fld_vec[17]=&field_spare; fld_vec[18]=&field_ptcc; fld_vec[19]=&field_pr; fld_vec[20]=&field_rpr; fld_vec[21]=&field_piv; fld_vec[22]=&field_ncr; } + +EPS__NetworkFeatureSupport::EPS__NetworkFeatureSupport() : Record_Type() { init_vec(); } + +EPS__NetworkFeatureSupport::EPS__NetworkFeatureSupport(const EPS__NetworkFeatureSupport& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_cp__CIOT.is_bound() ) + field_cp__CIOT = other_value.field_cp__CIOT; +if (other_value.field_emmRegistered__withoutPDN.is_bound() ) + field_emmRegistered__withoutPDN = other_value.field_emmRegistered__withoutPDN; +if (other_value.field_esrps.is_bound() ) + field_esrps = other_value.field_esrps; +if (other_value.field_csLCS.is_bound() ) + field_csLCS = other_value.field_csLCS; +if (other_value.field_epcLCS.is_bound() ) + field_epcLCS = other_value.field_epcLCS; +if (other_value.field_emcBS.is_bound() ) + field_emcBS = other_value.field_emcBS; +if (other_value.field_imsVoPS.is_bound() ) + field_imsVoPS = other_value.field_imsVoPS; +if (other_value.field_bearers15.is_bound() ) + field_bearers15 = other_value.field_bearers15; +if (other_value.field_iwkN26.is_bound() ) + field_iwkN26 = other_value.field_iwkN26; +if (other_value.field_restrictDCNR.is_bound() ) + field_restrictDCNR = other_value.field_restrictDCNR; +if (other_value.field_restrictEC.is_bound() ) + field_restrictEC = other_value.field_restrictEC; +if (other_value.field_extdPCO.is_bound() ) + field_extdPCO = other_value.field_extdPCO; +if (other_value.field_headerComp__CP__CIOT.is_bound() ) + field_headerComp__CP__CIOT = other_value.field_headerComp__CP__CIOT; +if (other_value.field_s1__U__data.is_bound() ) + field_s1__U__data = other_value.field_s1__U__data; +if (other_value.field_up__CIOT.is_bound() ) + field_up__CIOT = other_value.field_up__CIOT; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_ptcc.is_bound() ) + field_ptcc = other_value.field_ptcc; +if (other_value.field_pr.is_bound() ) + field_pr = other_value.field_pr; +if (other_value.field_rpr.is_bound() ) + field_rpr = other_value.field_rpr; +if (other_value.field_piv.is_bound() ) + field_piv = other_value.field_piv; +if (other_value.field_ncr.is_bound() ) + field_ncr = other_value.field_ncr; +init_vec(); +} + +EPS__NetworkFeatureSupport::EPS__NetworkFeatureSupport(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_cp__CIOT, + const BITSTRING& par_emmRegistered__withoutPDN, + const BITSTRING& par_esrps, + const BITSTRING& par_csLCS, + const BITSTRING& par_epcLCS, + const BITSTRING& par_emcBS, + const BITSTRING& par_imsVoPS, + const OPTIONAL& par_bearers15, + const OPTIONAL& par_iwkN26, + const OPTIONAL& par_restrictDCNR, + const OPTIONAL& par_restrictEC, + const OPTIONAL& par_extdPCO, + const OPTIONAL& par_headerComp__CP__CIOT, + const OPTIONAL& par_s1__U__data, + const OPTIONAL& par_up__CIOT, + const OPTIONAL& par_spare, + const OPTIONAL& par_ptcc, + const OPTIONAL& par_pr, + const OPTIONAL& par_rpr, + const OPTIONAL& par_piv, + const OPTIONAL& par_ncr) : field_iei(par_iei), + field_iel(par_iel), + field_cp__CIOT(par_cp__CIOT), + field_emmRegistered__withoutPDN(par_emmRegistered__withoutPDN), + field_esrps(par_esrps), + field_csLCS(par_csLCS), + field_epcLCS(par_epcLCS), + field_emcBS(par_emcBS), + field_imsVoPS(par_imsVoPS), + field_bearers15(par_bearers15), + field_iwkN26(par_iwkN26), + field_restrictDCNR(par_restrictDCNR), + field_restrictEC(par_restrictEC), + field_extdPCO(par_extdPCO), + field_headerComp__CP__CIOT(par_headerComp__CP__CIOT), + field_s1__U__data(par_s1__U__data), + field_up__CIOT(par_up__CIOT), + field_spare(par_spare), + field_ptcc(par_ptcc), + field_pr(par_pr), + field_rpr(par_rpr), + field_piv(par_piv), + field_ncr(par_ncr) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__NetworkFeatureSupport::get_descriptor() const { return &EPS__NetworkFeatureSupport_descr_; } +const TTCN_Typedescriptor_t* EPS__NetworkFeatureSupport::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* EPS__NetworkFeatureSupport::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__NetworkFeatureSupport::fld_names[] = { "iei", "iel", "cp_CIOT", "emmRegistered_withoutPDN", "esrps", "csLCS", "epcLCS", "emcBS", "imsVoPS", "bearers15", "iwkN26", "restrictDCNR", "restrictEC", "extdPCO", "headerComp_CP_CIOT", "s1_U_data", "up_CIOT", "spare", "ptcc", "pr", "rpr", "piv", "ncr" }; +const char* EPS__NetworkFeatureSupport::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EPS__NetworkFeatureSupport::optional_indexes[] = { 0, 1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1 }; +const int* EPS__NetworkFeatureSupport::get_optional_indexes() const { return optional_indexes; } + +const int EPS__NetworkFeatureSupport::optional_indexes_asn[] = { 0, 1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1 }; +const int* EPS__NetworkFeatureSupport::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EPS__NetworkFeatureSupport_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 23; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[12] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[13] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[14] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[15] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[16] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[17] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[18] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[19] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[20] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[21] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[22] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +EPS__NetworkFeatureSupport_template::EPS__NetworkFeatureSupport_template(EPS__NetworkFeatureSupport_template* p_precondition, EPS__NetworkFeatureSupport_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__NetworkFeatureSupport_template::EPS__NetworkFeatureSupport_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__NetworkFeatureSupport_template::~EPS__NetworkFeatureSupport_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__NetworkFeatureSupport_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__NetworkFeatureSupport* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__NetworkFeatureSupport_template& EPS__NetworkFeatureSupport_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__NetworkFeatureSupport_template& EPS__NetworkFeatureSupport_template::operator=(const EPS__NetworkFeatureSupport& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__NetworkFeatureSupport_template& EPS__NetworkFeatureSupport_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__NetworkFeatureSupport_template& EPS__NetworkFeatureSupport_template::operator=(const EPS__NetworkFeatureSupport_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__NetworkFeatureSupport EPS__NetworkFeatureSupport_template::valueof() const +{ +EPS__NetworkFeatureSupport ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EPS__NetworkFeatureSupport_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EPS__NetworkFeatureSupport_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EPS__NetworkFeatureSupport_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EPS__NetworkFeatureSupport_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::cp__CIOT() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::cp__CIOT() const { return *(static_cast(get_at(2))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::emmRegistered__withoutPDN() { return *(static_cast(get_at(3))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::emmRegistered__withoutPDN() const { return *(static_cast(get_at(3))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::esrps() { return *(static_cast(get_at(4))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::esrps() const { return *(static_cast(get_at(4))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::csLCS() { return *(static_cast(get_at(5))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::csLCS() const { return *(static_cast(get_at(5))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::epcLCS() { return *(static_cast(get_at(6))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::epcLCS() const { return *(static_cast(get_at(6))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::emcBS() { return *(static_cast(get_at(7))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::emcBS() const { return *(static_cast(get_at(7))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::imsVoPS() { return *(static_cast(get_at(8))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::imsVoPS() const { return *(static_cast(get_at(8))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::bearers15() { return *(static_cast(get_at(9))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::bearers15() const { return *(static_cast(get_at(9))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::iwkN26() { return *(static_cast(get_at(10))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::iwkN26() const { return *(static_cast(get_at(10))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::restrictDCNR() { return *(static_cast(get_at(11))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::restrictDCNR() const { return *(static_cast(get_at(11))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::restrictEC() { return *(static_cast(get_at(12))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::restrictEC() const { return *(static_cast(get_at(12))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::extdPCO() { return *(static_cast(get_at(13))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::extdPCO() const { return *(static_cast(get_at(13))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::headerComp__CP__CIOT() { return *(static_cast(get_at(14))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::headerComp__CP__CIOT() const { return *(static_cast(get_at(14))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::s1__U__data() { return *(static_cast(get_at(15))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::s1__U__data() const { return *(static_cast(get_at(15))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::up__CIOT() { return *(static_cast(get_at(16))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::up__CIOT() const { return *(static_cast(get_at(16))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::spare() { return *(static_cast(get_at(17))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::spare() const { return *(static_cast(get_at(17))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::ptcc() { return *(static_cast(get_at(18))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::ptcc() const { return *(static_cast(get_at(18))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::pr() { return *(static_cast(get_at(19))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::pr() const { return *(static_cast(get_at(19))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::rpr() { return *(static_cast(get_at(20))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::rpr() const { return *(static_cast(get_at(20))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::piv() { return *(static_cast(get_at(21))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::piv() const { return *(static_cast(get_at(21))); } +BITSTRING_template& EPS__NetworkFeatureSupport_template::ncr() { return *(static_cast(get_at(22))); } +const BITSTRING_template& EPS__NetworkFeatureSupport_template::ncr() const { return *(static_cast(get_at(22))); } +const TTCN_Typedescriptor_t* EPS__NetworkFeatureSupport_template::get_descriptor() const { return &EPS__NetworkFeatureSupport_descr_; } +const char* EPS__NetworkFeatureSupport_template::fld_name(int p_index) const { return EPS__NetworkFeatureSupport::fld_names[p_index]; } +void AdditionalUpdateResult::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spareBits; fld_vec[2]=&field_addUpdateResultValue; } + +AdditionalUpdateResult::AdditionalUpdateResult() : Record_Type() { init_vec(); } + +AdditionalUpdateResult::AdditionalUpdateResult(const AdditionalUpdateResult& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_addUpdateResultValue.is_bound() ) + field_addUpdateResultValue = other_value.field_addUpdateResultValue; +init_vec(); +} + +AdditionalUpdateResult::AdditionalUpdateResult(const HEXSTRING& par_iei, + const BITSTRING& par_spareBits, + const BITSTRING& par_addUpdateResultValue) : field_iei(par_iei), + field_spareBits(par_spareBits), + field_addUpdateResultValue(par_addUpdateResultValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AdditionalUpdateResult::get_descriptor() const { return &AdditionalUpdateResult_descr_; } +const TTCN_Typedescriptor_t* AdditionalUpdateResult::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* AdditionalUpdateResult::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AdditionalUpdateResult::fld_names[] = { "iei", "spareBits", "addUpdateResultValue" }; +const char* AdditionalUpdateResult::fld_name(int p_index) const { return fld_names[p_index]; } + +void AdditionalUpdateResult_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AdditionalUpdateResult_template::AdditionalUpdateResult_template(AdditionalUpdateResult_template* p_precondition, AdditionalUpdateResult_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AdditionalUpdateResult_template::AdditionalUpdateResult_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AdditionalUpdateResult_template::~AdditionalUpdateResult_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AdditionalUpdateResult_template::match_dynamic(const Base_Type* match_value) const +{ +const AdditionalUpdateResult* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AdditionalUpdateResult_template& AdditionalUpdateResult_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AdditionalUpdateResult_template& AdditionalUpdateResult_template::operator=(const AdditionalUpdateResult& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AdditionalUpdateResult_template& AdditionalUpdateResult_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AdditionalUpdateResult_template& AdditionalUpdateResult_template::operator=(const AdditionalUpdateResult_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AdditionalUpdateResult AdditionalUpdateResult_template::valueof() const +{ +AdditionalUpdateResult ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& AdditionalUpdateResult_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& AdditionalUpdateResult_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AdditionalUpdateResult_template::spareBits() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AdditionalUpdateResult_template::spareBits() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AdditionalUpdateResult_template::addUpdateResultValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AdditionalUpdateResult_template::addUpdateResultValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AdditionalUpdateResult_template::get_descriptor() const { return &AdditionalUpdateResult_descr_; } +const char* AdditionalUpdateResult_template::fld_name(int p_index) const { return AdditionalUpdateResult::fld_names[p_index]; } +void SMSServicesStatus::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_smsServicesStatusValue; } + +SMSServicesStatus::SMSServicesStatus() : Record_Type() { init_vec(); } + +SMSServicesStatus::SMSServicesStatus(const SMSServicesStatus& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_smsServicesStatusValue.is_bound() ) + field_smsServicesStatusValue = other_value.field_smsServicesStatusValue; +init_vec(); +} + +SMSServicesStatus::SMSServicesStatus(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_smsServicesStatusValue) : field_iei(par_iei), + field_spare(par_spare), + field_smsServicesStatusValue(par_smsServicesStatusValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SMSServicesStatus::get_descriptor() const { return &SMSServicesStatus_descr_; } +const TTCN_Typedescriptor_t* SMSServicesStatus::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* SMSServicesStatus::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SMSServicesStatus::fld_names[] = { "iei", "spare", "smsServicesStatusValue" }; +const char* SMSServicesStatus::fld_name(int p_index) const { return fld_names[p_index]; } + +void SMSServicesStatus_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SMSServicesStatus_template::SMSServicesStatus_template(SMSServicesStatus_template* p_precondition, SMSServicesStatus_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SMSServicesStatus_template::SMSServicesStatus_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SMSServicesStatus_template::~SMSServicesStatus_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SMSServicesStatus_template::match_dynamic(const Base_Type* match_value) const +{ +const SMSServicesStatus* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SMSServicesStatus_template& SMSServicesStatus_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SMSServicesStatus_template& SMSServicesStatus_template::operator=(const SMSServicesStatus& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SMSServicesStatus_template& SMSServicesStatus_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SMSServicesStatus_template& SMSServicesStatus_template::operator=(const SMSServicesStatus_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SMSServicesStatus SMSServicesStatus_template::valueof() const +{ +SMSServicesStatus ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& SMSServicesStatus_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& SMSServicesStatus_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SMSServicesStatus_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SMSServicesStatus_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SMSServicesStatus_template::smsServicesStatusValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SMSServicesStatus_template::smsServicesStatusValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SMSServicesStatus_template::get_descriptor() const { return &SMSServicesStatus_descr_; } +const char* SMSServicesStatus_template::fld_name(int p_index) const { return SMSServicesStatus::fld_names[p_index]; } +void NetworkPolicy::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_redirPolicy; } + +NetworkPolicy::NetworkPolicy() : Record_Type() { init_vec(); } + +NetworkPolicy::NetworkPolicy(const NetworkPolicy& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_redirPolicy.is_bound() ) + field_redirPolicy = other_value.field_redirPolicy; +init_vec(); +} + +NetworkPolicy::NetworkPolicy(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_redirPolicy) : field_iei(par_iei), + field_spare(par_spare), + field_redirPolicy(par_redirPolicy) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NetworkPolicy::get_descriptor() const { return &NetworkPolicy_descr_; } +const TTCN_Typedescriptor_t* NetworkPolicy::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* NetworkPolicy::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NetworkPolicy::fld_names[] = { "iei", "spare", "redirPolicy" }; +const char* NetworkPolicy::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NetworkPolicy::optional_indexes[] = { 0, -1 }; +const int* NetworkPolicy::get_optional_indexes() const { return optional_indexes; } + +const int NetworkPolicy::optional_indexes_asn[] = { 0, -1 }; +const int* NetworkPolicy::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NetworkPolicy_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NetworkPolicy_template::NetworkPolicy_template(NetworkPolicy_template* p_precondition, NetworkPolicy_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NetworkPolicy_template::NetworkPolicy_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NetworkPolicy_template::~NetworkPolicy_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NetworkPolicy_template::match_dynamic(const Base_Type* match_value) const +{ +const NetworkPolicy* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NetworkPolicy_template& NetworkPolicy_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NetworkPolicy_template& NetworkPolicy_template::operator=(const NetworkPolicy& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NetworkPolicy_template& NetworkPolicy_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NetworkPolicy_template& NetworkPolicy_template::operator=(const NetworkPolicy_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NetworkPolicy NetworkPolicy_template::valueof() const +{ +NetworkPolicy ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& NetworkPolicy_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& NetworkPolicy_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NetworkPolicy_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NetworkPolicy_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NetworkPolicy_template::redirPolicy() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NetworkPolicy_template::redirPolicy() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NetworkPolicy_template::get_descriptor() const { return &NetworkPolicy_descr_; } +const char* NetworkPolicy_template::fld_name(int p_index) const { return NetworkPolicy::fld_names[p_index]; } + +const CipheringKey CipheringKeyData_cipherKey::UNBOUND_ELEM; +CipheringKey& CipheringKeyData_cipherKey::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +CipheringKey& CipheringKeyData_cipherKey::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const CipheringKey& CipheringKeyData_cipherKey::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const CipheringKey& CipheringKeyData_cipherKey::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::operator<<=(const INTEGER& rotate_count) const +{ +CipheringKeyData_cipherKey rec_of; +return *((CipheringKeyData_cipherKey*)rotl(rotate_count, &rec_of)); +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::operator>>=(const INTEGER& rotate_count) const +{ +CipheringKeyData_cipherKey rec_of; +return *((CipheringKeyData_cipherKey*)rotr(rotate_count, &rec_of)); +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::operator>>=(int rotate_count) const +{ +CipheringKeyData_cipherKey rec_of; +return *((CipheringKeyData_cipherKey*)rotr(rotate_count, &rec_of)); +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::operator+(const CipheringKeyData_cipherKey& other_value) const +{ +CipheringKeyData_cipherKey rec_of; +return *((CipheringKeyData_cipherKey*)concat(&other_value, &rec_of)); +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const CipheringKeyData_cipherKey&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_TypeDefs.CipheringKeyData.cipherKey concatenation."); +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::operator+(null_type) const +{ +return *this; +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::substr(int index, int returncount) const +{ +CipheringKeyData_cipherKey rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::replace(int index, int len, const CipheringKeyData_cipherKey& repl) const +{ +CipheringKeyData_cipherKey rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey::replace(int index, int len, const CipheringKeyData_cipherKey_template& repl) const +{ +CipheringKeyData_cipherKey rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* CipheringKeyData_cipherKey::create_elem() const { return new CipheringKey; } +const Base_Type* CipheringKeyData_cipherKey::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* CipheringKeyData_cipherKey::get_descriptor() const { return &CipheringKeyData_cipherKey_descr_; } +CipheringKeyData_cipherKey_template::CipheringKeyData_cipherKey_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +CipheringKeyData_cipherKey_template::CipheringKeyData_cipherKey_template(CipheringKeyData_cipherKey_template* p_precondition, CipheringKeyData_cipherKey_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CipheringKeyData_cipherKey_template::CipheringKeyData_cipherKey_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CipheringKeyData_cipherKey_template::~CipheringKeyData_cipherKey_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CipheringKeyData_cipherKey_template::match_dynamic(const Base_Type* match_value) const +{ +const CipheringKeyData_cipherKey* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +CipheringKeyData_cipherKey_template& CipheringKeyData_cipherKey_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CipheringKeyData_cipherKey_template& CipheringKeyData_cipherKey_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +CipheringKeyData_cipherKey_template& CipheringKeyData_cipherKey_template::operator=(const CipheringKeyData_cipherKey& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CipheringKeyData_cipherKey_template& CipheringKeyData_cipherKey_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CipheringKeyData_cipherKey_template& CipheringKeyData_cipherKey_template::operator=(const CipheringKeyData_cipherKey_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CipheringKeyData_cipherKey_template CipheringKeyData_cipherKey_template::operator+(const CipheringKeyData_cipherKey_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return CipheringKeyData_cipherKey_template(ANY_VALUE); +} +CipheringKeyData_cipherKey_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +CipheringKeyData_cipherKey_template CipheringKeyData_cipherKey_template::operator+(const CipheringKeyData_cipherKey& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +CipheringKeyData_cipherKey_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +CipheringKeyData_cipherKey_template CipheringKeyData_cipherKey_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return CipheringKeyData_cipherKey_template(ANY_VALUE); +} +CipheringKeyData_cipherKey_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +CipheringKeyData_cipherKey_template CipheringKeyData_cipherKey_template::operator+(null_type) const +{ +return *this; +} + +CipheringKey_template& CipheringKeyData_cipherKey_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +CipheringKey_template& CipheringKeyData_cipherKey_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const CipheringKey_template& CipheringKeyData_cipherKey_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const CipheringKey_template& CipheringKeyData_cipherKey_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey_template::valueof() const +{ +CipheringKeyData_cipherKey ret_val; +valueofv(&ret_val); +return ret_val; +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey_template::substr(int index, int returncount) const +{ +CipheringKeyData_cipherKey rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey_template::replace(int index, int len, const CipheringKeyData_cipherKey_template& repl) const +{ +CipheringKeyData_cipherKey rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +CipheringKeyData_cipherKey CipheringKeyData_cipherKey_template::replace(int index, int len, const CipheringKeyData_cipherKey& repl) const +{ +CipheringKeyData_cipherKey rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* CipheringKeyData_cipherKey_template::create_elem() const { return new CipheringKey_template; } +const TTCN_Typedescriptor_t* CipheringKeyData_cipherKey_template::get_descriptor() const { return &CipheringKeyData_cipherKey_descr_; } +void CipheringKey::init_vec() { fld_vec[0]=&field_id; fld_vec[1]=&field_key; fld_vec[2]=&field_spare; fld_vec[3]=&field_c0Length; fld_vec[4]=&field_c0; fld_vec[5]=&field_posSIBType1__1to2__1; fld_vec[6]=&field_posSIBType2__2to9; fld_vec[7]=&field_posSIBType2__10to17; fld_vec[8]=&field_posSIBType2__18to3__1; fld_vec[9]=&field_validityStartTime; fld_vec[10]=&field_validityDuration; fld_vec[11]=&field_taiList; } + +CipheringKey::CipheringKey() : Record_Type() { init_vec(); } + +CipheringKey::CipheringKey(const CipheringKey& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_key.is_bound() ) + field_key = other_value.field_key; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_c0Length.is_bound() ) + field_c0Length = other_value.field_c0Length; +if (other_value.field_c0.is_bound() ) + field_c0 = other_value.field_c0; +if (other_value.field_posSIBType1__1to2__1.is_bound() ) + field_posSIBType1__1to2__1 = other_value.field_posSIBType1__1to2__1; +if (other_value.field_posSIBType2__2to9.is_bound() ) + field_posSIBType2__2to9 = other_value.field_posSIBType2__2to9; +if (other_value.field_posSIBType2__10to17.is_bound() ) + field_posSIBType2__10to17 = other_value.field_posSIBType2__10to17; +if (other_value.field_posSIBType2__18to3__1.is_bound() ) + field_posSIBType2__18to3__1 = other_value.field_posSIBType2__18to3__1; +if (other_value.field_validityStartTime.is_bound() ) + field_validityStartTime = other_value.field_validityStartTime; +if (other_value.field_validityDuration.is_bound() ) + field_validityDuration = other_value.field_validityDuration; +if (other_value.field_taiList.is_bound() ) + field_taiList = other_value.field_taiList; +init_vec(); +} + +CipheringKey::CipheringKey(const OCTETSTRING& par_id, + const OCTETSTRING& par_key, + const BITSTRING& par_spare, + const BITSTRING& par_c0Length, + const OCTETSTRING& par_c0, + const BITSTRING& par_posSIBType1__1to2__1, + const BITSTRING& par_posSIBType2__2to9, + const BITSTRING& par_posSIBType2__10to17, + const BITSTRING& par_posSIBType2__18to3__1, + const OCTETSTRING& par_validityStartTime, + const OCTETSTRING& par_validityDuration, + const TrackingAreaIdList& par_taiList) : field_id(par_id), + field_key(par_key), + field_spare(par_spare), + field_c0Length(par_c0Length), + field_c0(par_c0), + field_posSIBType1__1to2__1(par_posSIBType1__1to2__1), + field_posSIBType2__2to9(par_posSIBType2__2to9), + field_posSIBType2__10to17(par_posSIBType2__10to17), + field_posSIBType2__18to3__1(par_posSIBType2__18to3__1), + field_validityStartTime(par_validityStartTime), + field_validityDuration(par_validityDuration), + field_taiList(par_taiList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CipheringKey::get_descriptor() const { return &CipheringKey_descr_; } +const TTCN_Typedescriptor_t* CipheringKey::fld_descriptors[] = { &CommonDefs::O2__Type_descr_, &CommonDefs::O16__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B5__Type_descr_, &OCTETSTRING_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::O5__Type_descr_, &CommonDefs::O2__Type_descr_, &TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* CipheringKey::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CipheringKey::fld_names[] = { "id", "key", "spare", "c0Length", "c0", "posSIBType1_1to2_1", "posSIBType2_2to9", "posSIBType2_10to17", "posSIBType2_18to3_1", "validityStartTime", "validityDuration", "taiList" }; +const char* CipheringKey::fld_name(int p_index) const { return fld_names[p_index]; } + +void CipheringKey_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 12; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[10] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[11] = was_any ? new TrackingAreaIdList_template(ANY_VALUE) : new TrackingAreaIdList_template; +} +} + +CipheringKey_template::CipheringKey_template(CipheringKey_template* p_precondition, CipheringKey_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CipheringKey_template::CipheringKey_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CipheringKey_template::~CipheringKey_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CipheringKey_template::match_dynamic(const Base_Type* match_value) const +{ +const CipheringKey* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CipheringKey_template& CipheringKey_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CipheringKey_template& CipheringKey_template::operator=(const CipheringKey& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CipheringKey_template& CipheringKey_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CipheringKey_template& CipheringKey_template::operator=(const CipheringKey_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CipheringKey CipheringKey_template::valueof() const +{ +CipheringKey ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& CipheringKey_template::id() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& CipheringKey_template::id() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& CipheringKey_template::key() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& CipheringKey_template::key() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CipheringKey_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CipheringKey_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& CipheringKey_template::c0Length() { return *(static_cast(get_at(3))); } +const BITSTRING_template& CipheringKey_template::c0Length() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& CipheringKey_template::c0() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& CipheringKey_template::c0() const { return *(static_cast(get_at(4))); } +BITSTRING_template& CipheringKey_template::posSIBType1__1to2__1() { return *(static_cast(get_at(5))); } +const BITSTRING_template& CipheringKey_template::posSIBType1__1to2__1() const { return *(static_cast(get_at(5))); } +BITSTRING_template& CipheringKey_template::posSIBType2__2to9() { return *(static_cast(get_at(6))); } +const BITSTRING_template& CipheringKey_template::posSIBType2__2to9() const { return *(static_cast(get_at(6))); } +BITSTRING_template& CipheringKey_template::posSIBType2__10to17() { return *(static_cast(get_at(7))); } +const BITSTRING_template& CipheringKey_template::posSIBType2__10to17() const { return *(static_cast(get_at(7))); } +BITSTRING_template& CipheringKey_template::posSIBType2__18to3__1() { return *(static_cast(get_at(8))); } +const BITSTRING_template& CipheringKey_template::posSIBType2__18to3__1() const { return *(static_cast(get_at(8))); } +OCTETSTRING_template& CipheringKey_template::validityStartTime() { return *(static_cast(get_at(9))); } +const OCTETSTRING_template& CipheringKey_template::validityStartTime() const { return *(static_cast(get_at(9))); } +OCTETSTRING_template& CipheringKey_template::validityDuration() { return *(static_cast(get_at(10))); } +const OCTETSTRING_template& CipheringKey_template::validityDuration() const { return *(static_cast(get_at(10))); } +TrackingAreaIdList_template& CipheringKey_template::taiList() { return *(static_cast(get_at(11))); } +const TrackingAreaIdList_template& CipheringKey_template::taiList() const { return *(static_cast(get_at(11))); } +const TTCN_Typedescriptor_t* CipheringKey_template::get_descriptor() const { return &CipheringKey_descr_; } +const char* CipheringKey_template::fld_name(int p_index) const { return CipheringKey::fld_names[p_index]; } +void CipheringKeyData::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_cipherKey; } + +CipheringKeyData::CipheringKeyData() : Record_Type() { init_vec(); } + +CipheringKeyData::CipheringKeyData(const CipheringKeyData& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_cipherKey.is_bound() ) + field_cipherKey = other_value.field_cipherKey; +init_vec(); +} + +CipheringKeyData::CipheringKeyData(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const CipheringKeyData_cipherKey& par_cipherKey) : field_iei(par_iei), + field_iel(par_iel), + field_cipherKey(par_cipherKey) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CipheringKeyData::get_descriptor() const { return &CipheringKeyData_descr_; } +const TTCN_Typedescriptor_t* CipheringKeyData::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &CipheringKeyData_cipherKey_descr_ }; +const TTCN_Typedescriptor_t* CipheringKeyData::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CipheringKeyData::fld_names[] = { "iei", "iel", "cipherKey" }; +const char* CipheringKeyData::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CipheringKeyData::optional_indexes[] = { 0, -1 }; +const int* CipheringKeyData::get_optional_indexes() const { return optional_indexes; } + +const int CipheringKeyData::optional_indexes_asn[] = { 0, -1 }; +const int* CipheringKeyData::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CipheringKeyData_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new CipheringKeyData_cipherKey_template(ANY_VALUE) : new CipheringKeyData_cipherKey_template; +} +} + +CipheringKeyData_template::CipheringKeyData_template(CipheringKeyData_template* p_precondition, CipheringKeyData_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CipheringKeyData_template::CipheringKeyData_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CipheringKeyData_template::~CipheringKeyData_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CipheringKeyData_template::match_dynamic(const Base_Type* match_value) const +{ +const CipheringKeyData* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CipheringKeyData_template& CipheringKeyData_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CipheringKeyData_template& CipheringKeyData_template::operator=(const CipheringKeyData& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CipheringKeyData_template& CipheringKeyData_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CipheringKeyData_template& CipheringKeyData_template::operator=(const CipheringKeyData_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CipheringKeyData CipheringKeyData_template::valueof() const +{ +CipheringKeyData ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& CipheringKeyData_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& CipheringKeyData_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& CipheringKeyData_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& CipheringKeyData_template::iel() const { return *(static_cast(get_at(1))); } +CipheringKeyData_cipherKey_template& CipheringKeyData_template::cipherKey() { return *(static_cast(get_at(2))); } +const CipheringKeyData_cipherKey_template& CipheringKeyData_template::cipherKey() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* CipheringKeyData_template::get_descriptor() const { return &CipheringKeyData_descr_; } +const char* CipheringKeyData_template::fld_name(int p_index) const { return CipheringKeyData::fld_names[p_index]; } +void IMSI__Offset::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_offsetValue; } + +IMSI__Offset::IMSI__Offset() : Record_Type() { init_vec(); } + +IMSI__Offset::IMSI__Offset(const IMSI__Offset& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_offsetValue.is_bound() ) + field_offsetValue = other_value.field_offsetValue; +init_vec(); +} + +IMSI__Offset::IMSI__Offset(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_offsetValue) : field_iei(par_iei), + field_iel(par_iel), + field_offsetValue(par_offsetValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IMSI__Offset::get_descriptor() const { return &IMSI__Offset_descr_; } +const TTCN_Typedescriptor_t* IMSI__Offset::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* IMSI__Offset::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IMSI__Offset::fld_names[] = { "iei", "iel", "offsetValue" }; +const char* IMSI__Offset::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IMSI__Offset::optional_indexes[] = { 0, 1, -1 }; +const int* IMSI__Offset::get_optional_indexes() const { return optional_indexes; } + +const int IMSI__Offset::optional_indexes_asn[] = { 0, 1, -1 }; +const int* IMSI__Offset::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IMSI__Offset_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +IMSI__Offset_template::IMSI__Offset_template(IMSI__Offset_template* p_precondition, IMSI__Offset_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IMSI__Offset_template::IMSI__Offset_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IMSI__Offset_template::~IMSI__Offset_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IMSI__Offset_template::match_dynamic(const Base_Type* match_value) const +{ +const IMSI__Offset* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IMSI__Offset_template& IMSI__Offset_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IMSI__Offset_template& IMSI__Offset_template::operator=(const IMSI__Offset& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IMSI__Offset_template& IMSI__Offset_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IMSI__Offset_template& IMSI__Offset_template::operator=(const IMSI__Offset_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IMSI__Offset IMSI__Offset_template::valueof() const +{ +IMSI__Offset ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& IMSI__Offset_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& IMSI__Offset_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& IMSI__Offset_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& IMSI__Offset_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& IMSI__Offset_template::offsetValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& IMSI__Offset_template::offsetValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* IMSI__Offset_template::get_descriptor() const { return &IMSI__Offset_descr_; } +const char* IMSI__Offset_template::fld_name(int p_index) const { return IMSI__Offset::fld_names[p_index]; } +void ATTACH__COMPLETE::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_esmMessage; } + +ATTACH__COMPLETE::ATTACH__COMPLETE() : Record_Type() { init_vec(); } + +ATTACH__COMPLETE::ATTACH__COMPLETE(const ATTACH__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmMessage.is_bound() ) + field_esmMessage = other_value.field_esmMessage; +init_vec(); +} + +ATTACH__COMPLETE::ATTACH__COMPLETE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const ESM__MessageContainer& par_esmMessage) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_esmMessage(par_esmMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ATTACH__COMPLETE::get_descriptor() const { return &ATTACH__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* ATTACH__COMPLETE::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__MessageContainer_descr_ }; +const TTCN_Typedescriptor_t* ATTACH__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ATTACH__COMPLETE::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "esmMessage" }; +const char* ATTACH__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +void ATTACH__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new ESM__MessageContainer_template(ANY_VALUE) : new ESM__MessageContainer_template; +} +} + +ATTACH__COMPLETE_template::ATTACH__COMPLETE_template(ATTACH__COMPLETE_template* p_precondition, ATTACH__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ATTACH__COMPLETE_template::ATTACH__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ATTACH__COMPLETE_template::~ATTACH__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ATTACH__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const ATTACH__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ATTACH__COMPLETE_template& ATTACH__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ATTACH__COMPLETE_template& ATTACH__COMPLETE_template::operator=(const ATTACH__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ATTACH__COMPLETE_template& ATTACH__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ATTACH__COMPLETE_template& ATTACH__COMPLETE_template::operator=(const ATTACH__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ATTACH__COMPLETE ATTACH__COMPLETE_template::valueof() const +{ +ATTACH__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ATTACH__COMPLETE_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ATTACH__COMPLETE_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ATTACH__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ATTACH__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ATTACH__COMPLETE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ATTACH__COMPLETE_template::messageType() const { return *(static_cast(get_at(2))); } +ESM__MessageContainer_template& ATTACH__COMPLETE_template::esmMessage() { return *(static_cast(get_at(3))); } +const ESM__MessageContainer_template& ATTACH__COMPLETE_template::esmMessage() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* ATTACH__COMPLETE_template::get_descriptor() const { return &ATTACH__COMPLETE_descr_; } +const char* ATTACH__COMPLETE_template::fld_name(int p_index) const { return ATTACH__COMPLETE::fld_names[p_index]; } +void ATTACH__REJECT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_emmCause; fld_vec[4]=&field_esmMessage; fld_vec[5]=&field_t3346; fld_vec[6]=&field_t3402; fld_vec[7]=&field_extdEMMCause; fld_vec[8]=&field_lowerBoundTimerValue; fld_vec[9]=&field_forbidTAIList__Roaming; fld_vec[10]=&field_forbidTAIList__RegProvService; } + +ATTACH__REJECT::ATTACH__REJECT() : Record_Type() { init_vec(); } + +ATTACH__REJECT::ATTACH__REJECT(const ATTACH__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_emmCause.is_bound() ) + field_emmCause = other_value.field_emmCause; +if (other_value.field_esmMessage.is_bound() ) + field_esmMessage = other_value.field_esmMessage; +if (other_value.field_t3346.is_bound() ) + field_t3346 = other_value.field_t3346; +if (other_value.field_t3402.is_bound() ) + field_t3402 = other_value.field_t3402; +if (other_value.field_extdEMMCause.is_bound() ) + field_extdEMMCause = other_value.field_extdEMMCause; +if (other_value.field_lowerBoundTimerValue.is_bound() ) + field_lowerBoundTimerValue = other_value.field_lowerBoundTimerValue; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +ATTACH__REJECT::ATTACH__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause, + const OPTIONAL& par_esmMessage, + const OPTIONAL& par_t3346, + const OPTIONAL& par_t3402, + const OPTIONAL& par_extdEMMCause, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_emmCause(par_emmCause), + field_esmMessage(par_esmMessage), + field_t3346(par_t3346), + field_t3402(par_t3402), + field_extdEMMCause(par_extdEMMCause), + field_lowerBoundTimerValue(par_lowerBoundTimerValue), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ATTACH__REJECT::get_descriptor() const { return &ATTACH__REJECT_descr_; } +const TTCN_Typedescriptor_t* ATTACH__REJECT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EMM__Cause_descr_, &ESM__MessageContainer_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &Extd__EMM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &TrackingAreaIdList_descr_, &TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* ATTACH__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ATTACH__REJECT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "emmCause", "esmMessage", "t3346", "t3402", "extdEMMCause", "lowerBoundTimerValue", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* ATTACH__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ATTACH__REJECT::optional_indexes[] = { 4, 5, 6, 7, 8, 9, 10, -1 }; +const int* ATTACH__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int ATTACH__REJECT::optional_indexes_asn[] = { 4, 5, 6, 7, 8, 9, 10, -1 }; +const int* ATTACH__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ATTACH__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 11; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new EMM__Cause_template(ANY_VALUE) : new EMM__Cause_template; +single_value.value_elements[4] = was_any ? new ESM__MessageContainer_template(ANY_OR_OMIT) : new ESM__MessageContainer_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new Extd__EMM__Cause_template(ANY_OR_OMIT) : new Extd__EMM__Cause_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[9] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +single_value.value_elements[10] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +} +} + +ATTACH__REJECT_template::ATTACH__REJECT_template(ATTACH__REJECT_template* p_precondition, ATTACH__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ATTACH__REJECT_template::ATTACH__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ATTACH__REJECT_template::~ATTACH__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ATTACH__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const ATTACH__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ATTACH__REJECT_template& ATTACH__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ATTACH__REJECT_template& ATTACH__REJECT_template::operator=(const ATTACH__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ATTACH__REJECT_template& ATTACH__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ATTACH__REJECT_template& ATTACH__REJECT_template::operator=(const ATTACH__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ATTACH__REJECT ATTACH__REJECT_template::valueof() const +{ +ATTACH__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ATTACH__REJECT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ATTACH__REJECT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ATTACH__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ATTACH__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ATTACH__REJECT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ATTACH__REJECT_template::messageType() const { return *(static_cast(get_at(2))); } +EMM__Cause_template& ATTACH__REJECT_template::emmCause() { return *(static_cast(get_at(3))); } +const EMM__Cause_template& ATTACH__REJECT_template::emmCause() const { return *(static_cast(get_at(3))); } +ESM__MessageContainer_template& ATTACH__REJECT_template::esmMessage() { return *(static_cast(get_at(4))); } +const ESM__MessageContainer_template& ATTACH__REJECT_template::esmMessage() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REJECT_template::t3346() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REJECT_template::t3346() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REJECT_template::t3402() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REJECT_template::t3402() const { return *(static_cast(get_at(6))); } +Extd__EMM__Cause_template& ATTACH__REJECT_template::extdEMMCause() { return *(static_cast(get_at(7))); } +const Extd__EMM__Cause_template& ATTACH__REJECT_template::extdEMMCause() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REJECT_template::lowerBoundTimerValue() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REJECT_template::lowerBoundTimerValue() const { return *(static_cast(get_at(8))); } +TrackingAreaIdList_template& ATTACH__REJECT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(9))); } +const TrackingAreaIdList_template& ATTACH__REJECT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(9))); } +TrackingAreaIdList_template& ATTACH__REJECT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(10))); } +const TrackingAreaIdList_template& ATTACH__REJECT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(10))); } +const TTCN_Typedescriptor_t* ATTACH__REJECT_template::get_descriptor() const { return &ATTACH__REJECT_descr_; } +const char* ATTACH__REJECT_template::fld_name(int p_index) const { return ATTACH__REJECT::fld_names[p_index]; } +void Extd__EMM__Cause::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_nbIoTAllowed; fld_vec[3]=&field_epsOptimizationInfo; fld_vec[4]=&field_eutranAllowed; } + +Extd__EMM__Cause::Extd__EMM__Cause() : Record_Type() { init_vec(); } + +Extd__EMM__Cause::Extd__EMM__Cause(const Extd__EMM__Cause& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_nbIoTAllowed.is_bound() ) + field_nbIoTAllowed = other_value.field_nbIoTAllowed; +if (other_value.field_epsOptimizationInfo.is_bound() ) + field_epsOptimizationInfo = other_value.field_epsOptimizationInfo; +if (other_value.field_eutranAllowed.is_bound() ) + field_eutranAllowed = other_value.field_eutranAllowed; +init_vec(); +} + +Extd__EMM__Cause::Extd__EMM__Cause(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_nbIoTAllowed, + const BITSTRING& par_epsOptimizationInfo, + const BITSTRING& par_eutranAllowed) : field_iei(par_iei), + field_spare(par_spare), + field_nbIoTAllowed(par_nbIoTAllowed), + field_epsOptimizationInfo(par_epsOptimizationInfo), + field_eutranAllowed(par_eutranAllowed) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Extd__EMM__Cause::get_descriptor() const { return &Extd__EMM__Cause_descr_; } +const TTCN_Typedescriptor_t* Extd__EMM__Cause::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* Extd__EMM__Cause::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Extd__EMM__Cause::fld_names[] = { "iei", "spare", "nbIoTAllowed", "epsOptimizationInfo", "eutranAllowed" }; +const char* Extd__EMM__Cause::fld_name(int p_index) const { return fld_names[p_index]; } + +const int Extd__EMM__Cause::optional_indexes[] = { 0, -1 }; +const int* Extd__EMM__Cause::get_optional_indexes() const { return optional_indexes; } + +const int Extd__EMM__Cause::optional_indexes_asn[] = { 0, -1 }; +const int* Extd__EMM__Cause::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void Extd__EMM__Cause_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +Extd__EMM__Cause_template::Extd__EMM__Cause_template(Extd__EMM__Cause_template* p_precondition, Extd__EMM__Cause_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Extd__EMM__Cause_template::Extd__EMM__Cause_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Extd__EMM__Cause_template::~Extd__EMM__Cause_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Extd__EMM__Cause_template::match_dynamic(const Base_Type* match_value) const +{ +const Extd__EMM__Cause* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Extd__EMM__Cause_template& Extd__EMM__Cause_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Extd__EMM__Cause_template& Extd__EMM__Cause_template::operator=(const Extd__EMM__Cause& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Extd__EMM__Cause_template& Extd__EMM__Cause_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Extd__EMM__Cause_template& Extd__EMM__Cause_template::operator=(const Extd__EMM__Cause_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Extd__EMM__Cause Extd__EMM__Cause_template::valueof() const +{ +Extd__EMM__Cause ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& Extd__EMM__Cause_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& Extd__EMM__Cause_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& Extd__EMM__Cause_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& Extd__EMM__Cause_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& Extd__EMM__Cause_template::nbIoTAllowed() { return *(static_cast(get_at(2))); } +const BITSTRING_template& Extd__EMM__Cause_template::nbIoTAllowed() const { return *(static_cast(get_at(2))); } +BITSTRING_template& Extd__EMM__Cause_template::epsOptimizationInfo() { return *(static_cast(get_at(3))); } +const BITSTRING_template& Extd__EMM__Cause_template::epsOptimizationInfo() const { return *(static_cast(get_at(3))); } +BITSTRING_template& Extd__EMM__Cause_template::eutranAllowed() { return *(static_cast(get_at(4))); } +const BITSTRING_template& Extd__EMM__Cause_template::eutranAllowed() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* Extd__EMM__Cause_template::get_descriptor() const { return &Extd__EMM__Cause_descr_; } +const char* Extd__EMM__Cause_template::fld_name(int p_index) const { return Extd__EMM__Cause::fld_names[p_index]; } +void EPS__AttachType::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_typeValue; } + +EPS__AttachType::EPS__AttachType() : Record_Type() { init_vec(); } + +EPS__AttachType::EPS__AttachType(const EPS__AttachType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_typeValue.is_bound() ) + field_typeValue = other_value.field_typeValue; +init_vec(); +} + +EPS__AttachType::EPS__AttachType(const BITSTRING& par_spare, + const BITSTRING& par_typeValue) : field_spare(par_spare), + field_typeValue(par_typeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__AttachType::get_descriptor() const { return &EPS__AttachType_descr_; } +const TTCN_Typedescriptor_t* EPS__AttachType::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &NAS__CommonTypeDefs::NAS__AttDetValue__Type_descr_ }; +const TTCN_Typedescriptor_t* EPS__AttachType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__AttachType::fld_names[] = { "spare", "typeValue" }; +const char* EPS__AttachType::fld_name(int p_index) const { return fld_names[p_index]; } + +void EPS__AttachType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EPS__AttachType_template::EPS__AttachType_template(EPS__AttachType_template* p_precondition, EPS__AttachType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__AttachType_template::EPS__AttachType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__AttachType_template::~EPS__AttachType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__AttachType_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__AttachType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__AttachType_template& EPS__AttachType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__AttachType_template& EPS__AttachType_template::operator=(const EPS__AttachType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__AttachType_template& EPS__AttachType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__AttachType_template& EPS__AttachType_template::operator=(const EPS__AttachType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__AttachType EPS__AttachType_template::valueof() const +{ +EPS__AttachType ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& EPS__AttachType_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& EPS__AttachType_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EPS__AttachType_template::typeValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EPS__AttachType_template::typeValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* EPS__AttachType_template::get_descriptor() const { return &EPS__AttachType_descr_; } +const char* EPS__AttachType_template::fld_name(int p_index) const { return EPS__AttachType::fld_names[p_index]; } +void ATTACH__REQUEST::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_nasKeySetId; fld_vec[4]=&field_epsAttachType; fld_vec[5]=&field_epsMobileIdentity; fld_vec[6]=&field_ueNetworkCapability; fld_vec[7]=&field_esmMessage; fld_vec[8]=&field_oldPtmsiSignature; fld_vec[9]=&field_additionalGuti; fld_vec[10]=&field_lastVisitedRegisteredTai; fld_vec[11]=&field_drxParameter; fld_vec[12]=&field_msNetworkCapability; fld_vec[13]=&field_oldLai; fld_vec[14]=&field_tmsiStatus; fld_vec[15]=&field_msClassmark2; fld_vec[16]=&field_msClassmark3; fld_vec[17]=&field_supportedCodecList; fld_vec[18]=&field_addUpdateType; fld_vec[19]=&field_voiceDomainPref; fld_vec[20]=&field_deviceProperties; fld_vec[21]=&field_oldGUTI__Type; fld_vec[22]=&field_msNetworkFeatureSupport; fld_vec[23]=&field_tmsiBasedNRIContainer; fld_vec[24]=&field_t3324Value; fld_vec[25]=&field_t3412ExtdValue; fld_vec[26]=&field_extendedDRXParams; fld_vec[27]=&field_ueAddSecurityCap; fld_vec[28]=&field_ueStatus; fld_vec[29]=&field_addInfoReq; fld_vec[30]=&field_n1UENetworkCap; fld_vec[31]=&field_ueRadioCapIdAvailability; fld_vec[32]=&field_requestedWUSAssistInfo; fld_vec[33]=&field_drxInNB__S1; fld_vec[34]=&field_requestedIMSI__Offset; } + +ATTACH__REQUEST::ATTACH__REQUEST() : Record_Type() { init_vec(); } + +ATTACH__REQUEST::ATTACH__REQUEST(const ATTACH__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_nasKeySetId.is_bound() ) + field_nasKeySetId = other_value.field_nasKeySetId; +if (other_value.field_epsAttachType.is_bound() ) + field_epsAttachType = other_value.field_epsAttachType; +if (other_value.field_epsMobileIdentity.is_bound() ) + field_epsMobileIdentity = other_value.field_epsMobileIdentity; +if (other_value.field_ueNetworkCapability.is_bound() ) + field_ueNetworkCapability = other_value.field_ueNetworkCapability; +if (other_value.field_esmMessage.is_bound() ) + field_esmMessage = other_value.field_esmMessage; +if (other_value.field_oldPtmsiSignature.is_bound() ) + field_oldPtmsiSignature = other_value.field_oldPtmsiSignature; +if (other_value.field_additionalGuti.is_bound() ) + field_additionalGuti = other_value.field_additionalGuti; +if (other_value.field_lastVisitedRegisteredTai.is_bound() ) + field_lastVisitedRegisteredTai = other_value.field_lastVisitedRegisteredTai; +if (other_value.field_drxParameter.is_bound() ) + field_drxParameter = other_value.field_drxParameter; +if (other_value.field_msNetworkCapability.is_bound() ) + field_msNetworkCapability = other_value.field_msNetworkCapability; +if (other_value.field_oldLai.is_bound() ) + field_oldLai = other_value.field_oldLai; +if (other_value.field_tmsiStatus.is_bound() ) + field_tmsiStatus = other_value.field_tmsiStatus; +if (other_value.field_msClassmark2.is_bound() ) + field_msClassmark2 = other_value.field_msClassmark2; +if (other_value.field_msClassmark3.is_bound() ) + field_msClassmark3 = other_value.field_msClassmark3; +if (other_value.field_supportedCodecList.is_bound() ) + field_supportedCodecList = other_value.field_supportedCodecList; +if (other_value.field_addUpdateType.is_bound() ) + field_addUpdateType = other_value.field_addUpdateType; +if (other_value.field_voiceDomainPref.is_bound() ) + field_voiceDomainPref = other_value.field_voiceDomainPref; +if (other_value.field_deviceProperties.is_bound() ) + field_deviceProperties = other_value.field_deviceProperties; +if (other_value.field_oldGUTI__Type.is_bound() ) + field_oldGUTI__Type = other_value.field_oldGUTI__Type; +if (other_value.field_msNetworkFeatureSupport.is_bound() ) + field_msNetworkFeatureSupport = other_value.field_msNetworkFeatureSupport; +if (other_value.field_tmsiBasedNRIContainer.is_bound() ) + field_tmsiBasedNRIContainer = other_value.field_tmsiBasedNRIContainer; +if (other_value.field_t3324Value.is_bound() ) + field_t3324Value = other_value.field_t3324Value; +if (other_value.field_t3412ExtdValue.is_bound() ) + field_t3412ExtdValue = other_value.field_t3412ExtdValue; +if (other_value.field_extendedDRXParams.is_bound() ) + field_extendedDRXParams = other_value.field_extendedDRXParams; +if (other_value.field_ueAddSecurityCap.is_bound() ) + field_ueAddSecurityCap = other_value.field_ueAddSecurityCap; +if (other_value.field_ueStatus.is_bound() ) + field_ueStatus = other_value.field_ueStatus; +if (other_value.field_addInfoReq.is_bound() ) + field_addInfoReq = other_value.field_addInfoReq; +if (other_value.field_n1UENetworkCap.is_bound() ) + field_n1UENetworkCap = other_value.field_n1UENetworkCap; +if (other_value.field_ueRadioCapIdAvailability.is_bound() ) + field_ueRadioCapIdAvailability = other_value.field_ueRadioCapIdAvailability; +if (other_value.field_requestedWUSAssistInfo.is_bound() ) + field_requestedWUSAssistInfo = other_value.field_requestedWUSAssistInfo; +if (other_value.field_drxInNB__S1.is_bound() ) + field_drxInNB__S1 = other_value.field_drxInNB__S1; +if (other_value.field_requestedIMSI__Offset.is_bound() ) + field_requestedIMSI__Offset = other_value.field_requestedIMSI__Offset; +init_vec(); +} + +ATTACH__REQUEST::ATTACH__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_nasKeySetId, + const EPS__AttachType& par_epsAttachType, + const NAS__CommonTypeDefs::MobileIdentity& par_epsMobileIdentity, + const NAS__CommonTypeDefs::UE__NetworkCap& par_ueNetworkCapability, + const ESM__MessageContainer& par_esmMessage, + const OPTIONAL& par_oldPtmsiSignature, + const OPTIONAL& par_additionalGuti, + const OPTIONAL& par_lastVisitedRegisteredTai, + const OPTIONAL& par_drxParameter, + const OPTIONAL& par_msNetworkCapability, + const OPTIONAL& par_oldLai, + const OPTIONAL& par_tmsiStatus, + const OPTIONAL& par_msClassmark2, + const OPTIONAL& par_msClassmark3, + const OPTIONAL& par_supportedCodecList, + const OPTIONAL& par_addUpdateType, + const OPTIONAL& par_voiceDomainPref, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_oldGUTI__Type, + const OPTIONAL& par_msNetworkFeatureSupport, + const OPTIONAL& par_tmsiBasedNRIContainer, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_t3412ExtdValue, + const OPTIONAL& par_extendedDRXParams, + const OPTIONAL& par_ueAddSecurityCap, + const OPTIONAL& par_ueStatus, + const OPTIONAL& par_addInfoReq, + const OPTIONAL& par_n1UENetworkCap, + const OPTIONAL& par_ueRadioCapIdAvailability, + const OPTIONAL& par_requestedWUSAssistInfo, + const OPTIONAL& par_drxInNB__S1, + const OPTIONAL& par_requestedIMSI__Offset) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_nasKeySetId(par_nasKeySetId), + field_epsAttachType(par_epsAttachType), + field_epsMobileIdentity(par_epsMobileIdentity), + field_ueNetworkCapability(par_ueNetworkCapability), + field_esmMessage(par_esmMessage), + field_oldPtmsiSignature(par_oldPtmsiSignature), + field_additionalGuti(par_additionalGuti), + field_lastVisitedRegisteredTai(par_lastVisitedRegisteredTai), + field_drxParameter(par_drxParameter), + field_msNetworkCapability(par_msNetworkCapability), + field_oldLai(par_oldLai), + field_tmsiStatus(par_tmsiStatus), + field_msClassmark2(par_msClassmark2), + field_msClassmark3(par_msClassmark3), + field_supportedCodecList(par_supportedCodecList), + field_addUpdateType(par_addUpdateType), + field_voiceDomainPref(par_voiceDomainPref), + field_deviceProperties(par_deviceProperties), + field_oldGUTI__Type(par_oldGUTI__Type), + field_msNetworkFeatureSupport(par_msNetworkFeatureSupport), + field_tmsiBasedNRIContainer(par_tmsiBasedNRIContainer), + field_t3324Value(par_t3324Value), + field_t3412ExtdValue(par_t3412ExtdValue), + field_extendedDRXParams(par_extendedDRXParams), + field_ueAddSecurityCap(par_ueAddSecurityCap), + field_ueStatus(par_ueStatus), + field_addInfoReq(par_addInfoReq), + field_n1UENetworkCap(par_n1UENetworkCap), + field_ueRadioCapIdAvailability(par_ueRadioCapIdAvailability), + field_requestedWUSAssistInfo(par_requestedWUSAssistInfo), + field_drxInNB__S1(par_drxInNB__S1), + field_requestedIMSI__Offset(par_requestedIMSI__Offset) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ATTACH__REQUEST::get_descriptor() const { return &ATTACH__REQUEST_descr_; } +const TTCN_Typedescriptor_t* ATTACH__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &EPS__AttachType_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &NAS__CommonTypeDefs::UE__NetworkCap_descr_, &ESM__MessageContainer_descr_, &NAS__CommonTypeDefs::PTMSI__Signature_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &TrackingAreaId_descr_, &NAS__CommonTypeDefs::DRXparameter_descr_, &NAS__CommonTypeDefs::MS__NetworkCap_descr_, &NAS__CommonTypeDefs::LocAreaId_descr_, &NAS__CommonTypeDefs::TMSI__Status_descr_, &NAS__CommonTypeDefs::MS__Clsmk2_descr_, &NAS__CommonTypeDefs::MS__Clsmk3_descr_, &NAS__CommonTypeDefs::CodecList_descr_, &NAS__CommonTypeDefs::AdditionalUpdateType_descr_, &NAS__CommonTypeDefs::VoiceDomainPref_descr_, &NAS__CommonTypeDefs::DeviceProperties_descr_, &GUTI__Type_descr_, &NAS__CommonTypeDefs::MS__NetworkFeatureSupport_descr_, &NAS__CommonTypeDefs::NwkResourceId_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::ExtdDRXParams_descr_, &UE__AdditionalSecurityCapability_descr_, &NAS__CommonTypeDefs::UE__Status_descr_, &AdditionalInfoReq_descr_, &N1__UENetworkCap_descr_, &UERadioCapIdAvailability_descr_, &NAS__CommonTypeDefs::WUSAssistInfo_descr_, &NAS__CommonTypeDefs::DRXParamCommon_descr_, &IMSI__Offset_descr_ }; +const TTCN_Typedescriptor_t* ATTACH__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ATTACH__REQUEST::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "nasKeySetId", "epsAttachType", "epsMobileIdentity", "ueNetworkCapability", "esmMessage", "oldPtmsiSignature", "additionalGuti", "lastVisitedRegisteredTai", "drxParameter", "msNetworkCapability", "oldLai", "tmsiStatus", "msClassmark2", "msClassmark3", "supportedCodecList", "addUpdateType", "voiceDomainPref", "deviceProperties", "oldGUTI_Type", "msNetworkFeatureSupport", "tmsiBasedNRIContainer", "t3324Value", "t3412ExtdValue", "extendedDRXParams", "ueAddSecurityCap", "ueStatus", "addInfoReq", "n1UENetworkCap", "ueRadioCapIdAvailability", "requestedWUSAssistInfo", "drxInNB_S1", "requestedIMSI_Offset" }; +const char* ATTACH__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ATTACH__REQUEST::optional_indexes[] = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1 }; +const int* ATTACH__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int ATTACH__REQUEST::optional_indexes_asn[] = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1 }; +const int* ATTACH__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ATTACH__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 35; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[4] = was_any ? new EPS__AttachType_template(ANY_VALUE) : new EPS__AttachType_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_VALUE) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::UE__NetworkCap_template(ANY_VALUE) : new NAS__CommonTypeDefs::UE__NetworkCap_template; +single_value.value_elements[7] = was_any ? new ESM__MessageContainer_template(ANY_VALUE) : new ESM__MessageContainer_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::PTMSI__Signature_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::PTMSI__Signature_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[10] = was_any ? new TrackingAreaId_template(ANY_OR_OMIT) : new TrackingAreaId_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::DRXparameter_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXparameter_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::MS__NetworkCap_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MS__NetworkCap_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::LocAreaId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::LocAreaId_template; +single_value.value_elements[14] = was_any ? new NAS__CommonTypeDefs::TMSI__Status_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::TMSI__Status_template; +single_value.value_elements[15] = was_any ? new NAS__CommonTypeDefs::MS__Clsmk2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MS__Clsmk2_template; +single_value.value_elements[16] = was_any ? new NAS__CommonTypeDefs::MS__Clsmk3_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MS__Clsmk3_template; +single_value.value_elements[17] = was_any ? new NAS__CommonTypeDefs::CodecList_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::CodecList_template; +single_value.value_elements[18] = was_any ? new NAS__CommonTypeDefs::AdditionalUpdateType_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AdditionalUpdateType_template; +single_value.value_elements[19] = was_any ? new NAS__CommonTypeDefs::VoiceDomainPref_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::VoiceDomainPref_template; +single_value.value_elements[20] = was_any ? new NAS__CommonTypeDefs::DeviceProperties_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DeviceProperties_template; +single_value.value_elements[21] = was_any ? new GUTI__Type_template(ANY_OR_OMIT) : new GUTI__Type_template; +single_value.value_elements[22] = was_any ? new NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template; +single_value.value_elements[23] = was_any ? new NAS__CommonTypeDefs::NwkResourceId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NwkResourceId_template; +single_value.value_elements[24] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[25] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[26] = was_any ? new NAS__CommonTypeDefs::ExtdDRXParams_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdDRXParams_template; +single_value.value_elements[27] = was_any ? new UE__AdditionalSecurityCapability_template(ANY_OR_OMIT) : new UE__AdditionalSecurityCapability_template; +single_value.value_elements[28] = was_any ? new NAS__CommonTypeDefs::UE__Status_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__Status_template; +single_value.value_elements[29] = was_any ? new AdditionalInfoReq_template(ANY_OR_OMIT) : new AdditionalInfoReq_template; +single_value.value_elements[30] = was_any ? new N1__UENetworkCap_template(ANY_OR_OMIT) : new N1__UENetworkCap_template; +single_value.value_elements[31] = was_any ? new UERadioCapIdAvailability_template(ANY_OR_OMIT) : new UERadioCapIdAvailability_template; +single_value.value_elements[32] = was_any ? new NAS__CommonTypeDefs::WUSAssistInfo_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WUSAssistInfo_template; +single_value.value_elements[33] = was_any ? new NAS__CommonTypeDefs::DRXParamCommon_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXParamCommon_template; +single_value.value_elements[34] = was_any ? new IMSI__Offset_template(ANY_OR_OMIT) : new IMSI__Offset_template; +} +} + +ATTACH__REQUEST_template::ATTACH__REQUEST_template(ATTACH__REQUEST_template* p_precondition, ATTACH__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ATTACH__REQUEST_template::ATTACH__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ATTACH__REQUEST_template::~ATTACH__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ATTACH__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const ATTACH__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ATTACH__REQUEST_template& ATTACH__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ATTACH__REQUEST_template& ATTACH__REQUEST_template::operator=(const ATTACH__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ATTACH__REQUEST_template& ATTACH__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ATTACH__REQUEST_template& ATTACH__REQUEST_template::operator=(const ATTACH__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ATTACH__REQUEST ATTACH__REQUEST_template::valueof() const +{ +ATTACH__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ATTACH__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ATTACH__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ATTACH__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ATTACH__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ATTACH__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ATTACH__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ATTACH__REQUEST_template::nasKeySetId() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ATTACH__REQUEST_template::nasKeySetId() const { return *(static_cast(get_at(3))); } +EPS__AttachType_template& ATTACH__REQUEST_template::epsAttachType() { return *(static_cast(get_at(4))); } +const EPS__AttachType_template& ATTACH__REQUEST_template::epsAttachType() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::MobileIdentity_template& ATTACH__REQUEST_template::epsMobileIdentity() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::MobileIdentity_template& ATTACH__REQUEST_template::epsMobileIdentity() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::UE__NetworkCap_template& ATTACH__REQUEST_template::ueNetworkCapability() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::UE__NetworkCap_template& ATTACH__REQUEST_template::ueNetworkCapability() const { return *(static_cast(get_at(6))); } +ESM__MessageContainer_template& ATTACH__REQUEST_template::esmMessage() { return *(static_cast(get_at(7))); } +const ESM__MessageContainer_template& ATTACH__REQUEST_template::esmMessage() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::PTMSI__Signature_template& ATTACH__REQUEST_template::oldPtmsiSignature() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::PTMSI__Signature_template& ATTACH__REQUEST_template::oldPtmsiSignature() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::MobileIdentity_template& ATTACH__REQUEST_template::additionalGuti() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::MobileIdentity_template& ATTACH__REQUEST_template::additionalGuti() const { return *(static_cast(get_at(9))); } +TrackingAreaId_template& ATTACH__REQUEST_template::lastVisitedRegisteredTai() { return *(static_cast(get_at(10))); } +const TrackingAreaId_template& ATTACH__REQUEST_template::lastVisitedRegisteredTai() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::DRXparameter_template& ATTACH__REQUEST_template::drxParameter() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::DRXparameter_template& ATTACH__REQUEST_template::drxParameter() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::MS__NetworkCap_template& ATTACH__REQUEST_template::msNetworkCapability() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::MS__NetworkCap_template& ATTACH__REQUEST_template::msNetworkCapability() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::LocAreaId_template& ATTACH__REQUEST_template::oldLai() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::LocAreaId_template& ATTACH__REQUEST_template::oldLai() const { return *(static_cast(get_at(13))); } +NAS__CommonTypeDefs::TMSI__Status_template& ATTACH__REQUEST_template::tmsiStatus() { return *(static_cast(get_at(14))); } +const NAS__CommonTypeDefs::TMSI__Status_template& ATTACH__REQUEST_template::tmsiStatus() const { return *(static_cast(get_at(14))); } +NAS__CommonTypeDefs::MS__Clsmk2_template& ATTACH__REQUEST_template::msClassmark2() { return *(static_cast(get_at(15))); } +const NAS__CommonTypeDefs::MS__Clsmk2_template& ATTACH__REQUEST_template::msClassmark2() const { return *(static_cast(get_at(15))); } +NAS__CommonTypeDefs::MS__Clsmk3_template& ATTACH__REQUEST_template::msClassmark3() { return *(static_cast(get_at(16))); } +const NAS__CommonTypeDefs::MS__Clsmk3_template& ATTACH__REQUEST_template::msClassmark3() const { return *(static_cast(get_at(16))); } +NAS__CommonTypeDefs::CodecList_template& ATTACH__REQUEST_template::supportedCodecList() { return *(static_cast(get_at(17))); } +const NAS__CommonTypeDefs::CodecList_template& ATTACH__REQUEST_template::supportedCodecList() const { return *(static_cast(get_at(17))); } +NAS__CommonTypeDefs::AdditionalUpdateType_template& ATTACH__REQUEST_template::addUpdateType() { return *(static_cast(get_at(18))); } +const NAS__CommonTypeDefs::AdditionalUpdateType_template& ATTACH__REQUEST_template::addUpdateType() const { return *(static_cast(get_at(18))); } +NAS__CommonTypeDefs::VoiceDomainPref_template& ATTACH__REQUEST_template::voiceDomainPref() { return *(static_cast(get_at(19))); } +const NAS__CommonTypeDefs::VoiceDomainPref_template& ATTACH__REQUEST_template::voiceDomainPref() const { return *(static_cast(get_at(19))); } +NAS__CommonTypeDefs::DeviceProperties_template& ATTACH__REQUEST_template::deviceProperties() { return *(static_cast(get_at(20))); } +const NAS__CommonTypeDefs::DeviceProperties_template& ATTACH__REQUEST_template::deviceProperties() const { return *(static_cast(get_at(20))); } +GUTI__Type_template& ATTACH__REQUEST_template::oldGUTI__Type() { return *(static_cast(get_at(21))); } +const GUTI__Type_template& ATTACH__REQUEST_template::oldGUTI__Type() const { return *(static_cast(get_at(21))); } +NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template& ATTACH__REQUEST_template::msNetworkFeatureSupport() { return *(static_cast(get_at(22))); } +const NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template& ATTACH__REQUEST_template::msNetworkFeatureSupport() const { return *(static_cast(get_at(22))); } +NAS__CommonTypeDefs::NwkResourceId_template& ATTACH__REQUEST_template::tmsiBasedNRIContainer() { return *(static_cast(get_at(23))); } +const NAS__CommonTypeDefs::NwkResourceId_template& ATTACH__REQUEST_template::tmsiBasedNRIContainer() const { return *(static_cast(get_at(23))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REQUEST_template::t3324Value() { return *(static_cast(get_at(24))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REQUEST_template::t3324Value() const { return *(static_cast(get_at(24))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REQUEST_template::t3412ExtdValue() { return *(static_cast(get_at(25))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& ATTACH__REQUEST_template::t3412ExtdValue() const { return *(static_cast(get_at(25))); } +NAS__CommonTypeDefs::ExtdDRXParams_template& ATTACH__REQUEST_template::extendedDRXParams() { return *(static_cast(get_at(26))); } +const NAS__CommonTypeDefs::ExtdDRXParams_template& ATTACH__REQUEST_template::extendedDRXParams() const { return *(static_cast(get_at(26))); } +UE__AdditionalSecurityCapability_template& ATTACH__REQUEST_template::ueAddSecurityCap() { return *(static_cast(get_at(27))); } +const UE__AdditionalSecurityCapability_template& ATTACH__REQUEST_template::ueAddSecurityCap() const { return *(static_cast(get_at(27))); } +NAS__CommonTypeDefs::UE__Status_template& ATTACH__REQUEST_template::ueStatus() { return *(static_cast(get_at(28))); } +const NAS__CommonTypeDefs::UE__Status_template& ATTACH__REQUEST_template::ueStatus() const { return *(static_cast(get_at(28))); } +AdditionalInfoReq_template& ATTACH__REQUEST_template::addInfoReq() { return *(static_cast(get_at(29))); } +const AdditionalInfoReq_template& ATTACH__REQUEST_template::addInfoReq() const { return *(static_cast(get_at(29))); } +N1__UENetworkCap_template& ATTACH__REQUEST_template::n1UENetworkCap() { return *(static_cast(get_at(30))); } +const N1__UENetworkCap_template& ATTACH__REQUEST_template::n1UENetworkCap() const { return *(static_cast(get_at(30))); } +UERadioCapIdAvailability_template& ATTACH__REQUEST_template::ueRadioCapIdAvailability() { return *(static_cast(get_at(31))); } +const UERadioCapIdAvailability_template& ATTACH__REQUEST_template::ueRadioCapIdAvailability() const { return *(static_cast(get_at(31))); } +NAS__CommonTypeDefs::WUSAssistInfo_template& ATTACH__REQUEST_template::requestedWUSAssistInfo() { return *(static_cast(get_at(32))); } +const NAS__CommonTypeDefs::WUSAssistInfo_template& ATTACH__REQUEST_template::requestedWUSAssistInfo() const { return *(static_cast(get_at(32))); } +NAS__CommonTypeDefs::DRXParamCommon_template& ATTACH__REQUEST_template::drxInNB__S1() { return *(static_cast(get_at(33))); } +const NAS__CommonTypeDefs::DRXParamCommon_template& ATTACH__REQUEST_template::drxInNB__S1() const { return *(static_cast(get_at(33))); } +IMSI__Offset_template& ATTACH__REQUEST_template::requestedIMSI__Offset() { return *(static_cast(get_at(34))); } +const IMSI__Offset_template& ATTACH__REQUEST_template::requestedIMSI__Offset() const { return *(static_cast(get_at(34))); } +const TTCN_Typedescriptor_t* ATTACH__REQUEST_template::get_descriptor() const { return &ATTACH__REQUEST_descr_; } +const char* ATTACH__REQUEST_template::fld_name(int p_index) const { return ATTACH__REQUEST::fld_names[p_index]; } +void GUTI__Type::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_gutiType; } + +GUTI__Type::GUTI__Type() : Record_Type() { init_vec(); } + +GUTI__Type::GUTI__Type(const GUTI__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_gutiType.is_bound() ) + field_gutiType = other_value.field_gutiType; +init_vec(); +} + +GUTI__Type::GUTI__Type(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_gutiType) : field_iei(par_iei), + field_spare(par_spare), + field_gutiType(par_gutiType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* GUTI__Type::get_descriptor() const { return &GUTI__Type_descr_; } +const TTCN_Typedescriptor_t* GUTI__Type::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* GUTI__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* GUTI__Type::fld_names[] = { "iei", "spare", "gutiType" }; +const char* GUTI__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void GUTI__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +GUTI__Type_template::GUTI__Type_template(GUTI__Type_template* p_precondition, GUTI__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +GUTI__Type_template::GUTI__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +GUTI__Type_template::~GUTI__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean GUTI__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const GUTI__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +GUTI__Type_template& GUTI__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GUTI__Type_template& GUTI__Type_template::operator=(const GUTI__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +GUTI__Type_template& GUTI__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +GUTI__Type_template& GUTI__Type_template::operator=(const GUTI__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +GUTI__Type GUTI__Type_template::valueof() const +{ +GUTI__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& GUTI__Type_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& GUTI__Type_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& GUTI__Type_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& GUTI__Type_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& GUTI__Type_template::gutiType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& GUTI__Type_template::gutiType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* GUTI__Type_template::get_descriptor() const { return &GUTI__Type_descr_; } +const char* GUTI__Type_template::fld_name(int p_index) const { return GUTI__Type::fld_names[p_index]; } +void UE__AdditionalSecurityCapability::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_eaCap5G__0__7; fld_vec[3]=&field_eaCap5G__8__15; fld_vec[4]=&field_iaCap5G__0__7; fld_vec[5]=&field_iaCap5G__8__15; } + +UE__AdditionalSecurityCapability::UE__AdditionalSecurityCapability() : Record_Type() { init_vec(); } + +UE__AdditionalSecurityCapability::UE__AdditionalSecurityCapability(const UE__AdditionalSecurityCapability& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_eaCap5G__0__7.is_bound() ) + field_eaCap5G__0__7 = other_value.field_eaCap5G__0__7; +if (other_value.field_eaCap5G__8__15.is_bound() ) + field_eaCap5G__8__15 = other_value.field_eaCap5G__8__15; +if (other_value.field_iaCap5G__0__7.is_bound() ) + field_iaCap5G__0__7 = other_value.field_iaCap5G__0__7; +if (other_value.field_iaCap5G__8__15.is_bound() ) + field_iaCap5G__8__15 = other_value.field_iaCap5G__8__15; +init_vec(); +} + +UE__AdditionalSecurityCapability::UE__AdditionalSecurityCapability(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_eaCap5G__0__7, + const OCTETSTRING& par_eaCap5G__8__15, + const OCTETSTRING& par_iaCap5G__0__7, + const OCTETSTRING& par_iaCap5G__8__15) : field_iei(par_iei), + field_iel(par_iel), + field_eaCap5G__0__7(par_eaCap5G__0__7), + field_eaCap5G__8__15(par_eaCap5G__8__15), + field_iaCap5G__0__7(par_iaCap5G__0__7), + field_iaCap5G__8__15(par_iaCap5G__8__15) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__AdditionalSecurityCapability::get_descriptor() const { return &UE__AdditionalSecurityCapability_descr_; } +const TTCN_Typedescriptor_t* UE__AdditionalSecurityCapability::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__AdditionalSecurityCapability::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__AdditionalSecurityCapability::fld_names[] = { "iei", "iel", "eaCap5G_0_7", "eaCap5G_8_15", "iaCap5G_0_7", "iaCap5G_8_15" }; +const char* UE__AdditionalSecurityCapability::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__AdditionalSecurityCapability::optional_indexes[] = { 0, -1 }; +const int* UE__AdditionalSecurityCapability::get_optional_indexes() const { return optional_indexes; } + +const int UE__AdditionalSecurityCapability::optional_indexes_asn[] = { 0, -1 }; +const int* UE__AdditionalSecurityCapability::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__AdditionalSecurityCapability_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +UE__AdditionalSecurityCapability_template::UE__AdditionalSecurityCapability_template(UE__AdditionalSecurityCapability_template* p_precondition, UE__AdditionalSecurityCapability_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__AdditionalSecurityCapability_template::UE__AdditionalSecurityCapability_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__AdditionalSecurityCapability_template::~UE__AdditionalSecurityCapability_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__AdditionalSecurityCapability_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__AdditionalSecurityCapability* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__AdditionalSecurityCapability_template& UE__AdditionalSecurityCapability_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__AdditionalSecurityCapability_template& UE__AdditionalSecurityCapability_template::operator=(const UE__AdditionalSecurityCapability& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__AdditionalSecurityCapability_template& UE__AdditionalSecurityCapability_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__AdditionalSecurityCapability_template& UE__AdditionalSecurityCapability_template::operator=(const UE__AdditionalSecurityCapability_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__AdditionalSecurityCapability UE__AdditionalSecurityCapability_template::valueof() const +{ +UE__AdditionalSecurityCapability ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UE__AdditionalSecurityCapability_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UE__AdditionalSecurityCapability_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UE__AdditionalSecurityCapability_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UE__AdditionalSecurityCapability_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& UE__AdditionalSecurityCapability_template::eaCap5G__0__7() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& UE__AdditionalSecurityCapability_template::eaCap5G__0__7() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& UE__AdditionalSecurityCapability_template::eaCap5G__8__15() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& UE__AdditionalSecurityCapability_template::eaCap5G__8__15() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& UE__AdditionalSecurityCapability_template::iaCap5G__0__7() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& UE__AdditionalSecurityCapability_template::iaCap5G__0__7() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& UE__AdditionalSecurityCapability_template::iaCap5G__8__15() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& UE__AdditionalSecurityCapability_template::iaCap5G__8__15() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* UE__AdditionalSecurityCapability_template::get_descriptor() const { return &UE__AdditionalSecurityCapability_descr_; } +const char* UE__AdditionalSecurityCapability_template::fld_name(int p_index) const { return UE__AdditionalSecurityCapability::fld_names[p_index]; } +void AdditionalInfoReq::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_cipherKey; } + +AdditionalInfoReq::AdditionalInfoReq() : Record_Type() { init_vec(); } + +AdditionalInfoReq::AdditionalInfoReq(const AdditionalInfoReq& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_cipherKey.is_bound() ) + field_cipherKey = other_value.field_cipherKey; +init_vec(); +} + +AdditionalInfoReq::AdditionalInfoReq(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_cipherKey) : field_iei(par_iei), + field_spare(par_spare), + field_cipherKey(par_cipherKey) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AdditionalInfoReq::get_descriptor() const { return &AdditionalInfoReq_descr_; } +const TTCN_Typedescriptor_t* AdditionalInfoReq::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* AdditionalInfoReq::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AdditionalInfoReq::fld_names[] = { "iei", "spare", "cipherKey" }; +const char* AdditionalInfoReq::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AdditionalInfoReq::optional_indexes[] = { 0, -1 }; +const int* AdditionalInfoReq::get_optional_indexes() const { return optional_indexes; } + +const int AdditionalInfoReq::optional_indexes_asn[] = { 0, -1 }; +const int* AdditionalInfoReq::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AdditionalInfoReq_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AdditionalInfoReq_template::AdditionalInfoReq_template(AdditionalInfoReq_template* p_precondition, AdditionalInfoReq_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AdditionalInfoReq_template::AdditionalInfoReq_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AdditionalInfoReq_template::~AdditionalInfoReq_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AdditionalInfoReq_template::match_dynamic(const Base_Type* match_value) const +{ +const AdditionalInfoReq* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AdditionalInfoReq_template& AdditionalInfoReq_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AdditionalInfoReq_template& AdditionalInfoReq_template::operator=(const AdditionalInfoReq& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AdditionalInfoReq_template& AdditionalInfoReq_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AdditionalInfoReq_template& AdditionalInfoReq_template::operator=(const AdditionalInfoReq_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AdditionalInfoReq AdditionalInfoReq_template::valueof() const +{ +AdditionalInfoReq ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AdditionalInfoReq_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AdditionalInfoReq_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AdditionalInfoReq_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AdditionalInfoReq_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AdditionalInfoReq_template::cipherKey() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AdditionalInfoReq_template::cipherKey() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AdditionalInfoReq_template::get_descriptor() const { return &AdditionalInfoReq_descr_; } +const char* AdditionalInfoReq_template::fld_name(int p_index) const { return AdditionalInfoReq::fld_names[p_index]; } +void N1__UENetworkCap::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_ehc__CP__CIoT; fld_vec[4]=&field_ngPNB__CIoT; fld_vec[5]=&field_ngUP__CIoT; fld_vec[6]=&field_ngHC__CP__CIoT; fld_vec[7]=&field_n3Data; fld_vec[8]=&field_ngCP__CIoT; } + +N1__UENetworkCap::N1__UENetworkCap() : Record_Type() { init_vec(); } + +N1__UENetworkCap::N1__UENetworkCap(const N1__UENetworkCap& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_ehc__CP__CIoT.is_bound() ) + field_ehc__CP__CIoT = other_value.field_ehc__CP__CIoT; +if (other_value.field_ngPNB__CIoT.is_bound() ) + field_ngPNB__CIoT = other_value.field_ngPNB__CIoT; +if (other_value.field_ngUP__CIoT.is_bound() ) + field_ngUP__CIoT = other_value.field_ngUP__CIoT; +if (other_value.field_ngHC__CP__CIoT.is_bound() ) + field_ngHC__CP__CIoT = other_value.field_ngHC__CP__CIoT; +if (other_value.field_n3Data.is_bound() ) + field_n3Data = other_value.field_n3Data; +if (other_value.field_ngCP__CIoT.is_bound() ) + field_ngCP__CIoT = other_value.field_ngCP__CIoT; +init_vec(); +} + +N1__UENetworkCap::N1__UENetworkCap(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_ehc__CP__CIoT, + const BITSTRING& par_ngPNB__CIoT, + const BITSTRING& par_ngUP__CIoT, + const BITSTRING& par_ngHC__CP__CIoT, + const BITSTRING& par_n3Data, + const BITSTRING& par_ngCP__CIoT) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_ehc__CP__CIoT(par_ehc__CP__CIoT), + field_ngPNB__CIoT(par_ngPNB__CIoT), + field_ngUP__CIoT(par_ngUP__CIoT), + field_ngHC__CP__CIoT(par_ngHC__CP__CIoT), + field_n3Data(par_n3Data), + field_ngCP__CIoT(par_ngCP__CIoT) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* N1__UENetworkCap::get_descriptor() const { return &N1__UENetworkCap_descr_; } +const TTCN_Typedescriptor_t* N1__UENetworkCap::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* N1__UENetworkCap::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* N1__UENetworkCap::fld_names[] = { "iei", "iel", "spare", "ehc_CP_CIoT", "ngPNB_CIoT", "ngUP_CIoT", "ngHC_CP_CIoT", "n3Data", "ngCP_CIoT" }; +const char* N1__UENetworkCap::fld_name(int p_index) const { return fld_names[p_index]; } + +const int N1__UENetworkCap::optional_indexes[] = { 0, -1 }; +const int* N1__UENetworkCap::get_optional_indexes() const { return optional_indexes; } + +const int N1__UENetworkCap::optional_indexes_asn[] = { 0, -1 }; +const int* N1__UENetworkCap::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void N1__UENetworkCap_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 9; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +N1__UENetworkCap_template::N1__UENetworkCap_template(N1__UENetworkCap_template* p_precondition, N1__UENetworkCap_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +N1__UENetworkCap_template::N1__UENetworkCap_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +N1__UENetworkCap_template::~N1__UENetworkCap_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean N1__UENetworkCap_template::match_dynamic(const Base_Type* match_value) const +{ +const N1__UENetworkCap* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +N1__UENetworkCap_template& N1__UENetworkCap_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +N1__UENetworkCap_template& N1__UENetworkCap_template::operator=(const N1__UENetworkCap& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +N1__UENetworkCap_template& N1__UENetworkCap_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +N1__UENetworkCap_template& N1__UENetworkCap_template::operator=(const N1__UENetworkCap_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +N1__UENetworkCap N1__UENetworkCap_template::valueof() const +{ +N1__UENetworkCap ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& N1__UENetworkCap_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& N1__UENetworkCap_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& N1__UENetworkCap_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& N1__UENetworkCap_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& N1__UENetworkCap_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& N1__UENetworkCap_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& N1__UENetworkCap_template::ehc__CP__CIoT() { return *(static_cast(get_at(3))); } +const BITSTRING_template& N1__UENetworkCap_template::ehc__CP__CIoT() const { return *(static_cast(get_at(3))); } +BITSTRING_template& N1__UENetworkCap_template::ngPNB__CIoT() { return *(static_cast(get_at(4))); } +const BITSTRING_template& N1__UENetworkCap_template::ngPNB__CIoT() const { return *(static_cast(get_at(4))); } +BITSTRING_template& N1__UENetworkCap_template::ngUP__CIoT() { return *(static_cast(get_at(5))); } +const BITSTRING_template& N1__UENetworkCap_template::ngUP__CIoT() const { return *(static_cast(get_at(5))); } +BITSTRING_template& N1__UENetworkCap_template::ngHC__CP__CIoT() { return *(static_cast(get_at(6))); } +const BITSTRING_template& N1__UENetworkCap_template::ngHC__CP__CIoT() const { return *(static_cast(get_at(6))); } +BITSTRING_template& N1__UENetworkCap_template::n3Data() { return *(static_cast(get_at(7))); } +const BITSTRING_template& N1__UENetworkCap_template::n3Data() const { return *(static_cast(get_at(7))); } +BITSTRING_template& N1__UENetworkCap_template::ngCP__CIoT() { return *(static_cast(get_at(8))); } +const BITSTRING_template& N1__UENetworkCap_template::ngCP__CIoT() const { return *(static_cast(get_at(8))); } +const TTCN_Typedescriptor_t* N1__UENetworkCap_template::get_descriptor() const { return &N1__UENetworkCap_descr_; } +const char* N1__UENetworkCap_template::fld_name(int p_index) const { return N1__UENetworkCap::fld_names[p_index]; } +void UERadioCapIdAvailability::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_availability; } + +UERadioCapIdAvailability::UERadioCapIdAvailability() : Record_Type() { init_vec(); } + +UERadioCapIdAvailability::UERadioCapIdAvailability(const UERadioCapIdAvailability& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_availability.is_bound() ) + field_availability = other_value.field_availability; +init_vec(); +} + +UERadioCapIdAvailability::UERadioCapIdAvailability(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_availability) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_availability(par_availability) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UERadioCapIdAvailability::get_descriptor() const { return &UERadioCapIdAvailability_descr_; } +const TTCN_Typedescriptor_t* UERadioCapIdAvailability::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B5__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* UERadioCapIdAvailability::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UERadioCapIdAvailability::fld_names[] = { "iei", "iel", "spare", "availability" }; +const char* UERadioCapIdAvailability::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UERadioCapIdAvailability::optional_indexes[] = { 0, 1, -1 }; +const int* UERadioCapIdAvailability::get_optional_indexes() const { return optional_indexes; } + +const int UERadioCapIdAvailability::optional_indexes_asn[] = { 0, 1, -1 }; +const int* UERadioCapIdAvailability::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UERadioCapIdAvailability_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UERadioCapIdAvailability_template::UERadioCapIdAvailability_template(UERadioCapIdAvailability_template* p_precondition, UERadioCapIdAvailability_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UERadioCapIdAvailability_template::UERadioCapIdAvailability_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UERadioCapIdAvailability_template::~UERadioCapIdAvailability_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UERadioCapIdAvailability_template::match_dynamic(const Base_Type* match_value) const +{ +const UERadioCapIdAvailability* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UERadioCapIdAvailability_template& UERadioCapIdAvailability_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UERadioCapIdAvailability_template& UERadioCapIdAvailability_template::operator=(const UERadioCapIdAvailability& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UERadioCapIdAvailability_template& UERadioCapIdAvailability_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UERadioCapIdAvailability_template& UERadioCapIdAvailability_template::operator=(const UERadioCapIdAvailability_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UERadioCapIdAvailability UERadioCapIdAvailability_template::valueof() const +{ +UERadioCapIdAvailability ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UERadioCapIdAvailability_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UERadioCapIdAvailability_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UERadioCapIdAvailability_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UERadioCapIdAvailability_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UERadioCapIdAvailability_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UERadioCapIdAvailability_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UERadioCapIdAvailability_template::availability() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UERadioCapIdAvailability_template::availability() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UERadioCapIdAvailability_template::get_descriptor() const { return &UERadioCapIdAvailability_descr_; } +const char* UERadioCapIdAvailability_template::fld_name(int p_index) const { return UERadioCapIdAvailability::fld_names[p_index]; } +void AUTHENTICATION__FAILURE::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_emmCause; fld_vec[4]=&field_authenticationFailureParameter; } + +AUTHENTICATION__FAILURE::AUTHENTICATION__FAILURE() : Record_Type() { init_vec(); } + +AUTHENTICATION__FAILURE::AUTHENTICATION__FAILURE(const AUTHENTICATION__FAILURE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_emmCause.is_bound() ) + field_emmCause = other_value.field_emmCause; +if (other_value.field_authenticationFailureParameter.is_bound() ) + field_authenticationFailureParameter = other_value.field_authenticationFailureParameter; +init_vec(); +} + +AUTHENTICATION__FAILURE::AUTHENTICATION__FAILURE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause, + const OPTIONAL& par_authenticationFailureParameter) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_emmCause(par_emmCause), + field_authenticationFailureParameter(par_authenticationFailureParameter) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AUTHENTICATION__FAILURE::get_descriptor() const { return &AUTHENTICATION__FAILURE_descr_; } +const TTCN_Typedescriptor_t* AUTHENTICATION__FAILURE::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EMM__Cause_descr_, &NAS__CommonTypeDefs::AuthenticationFailureParameter_descr_ }; +const TTCN_Typedescriptor_t* AUTHENTICATION__FAILURE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AUTHENTICATION__FAILURE::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "emmCause", "authenticationFailureParameter" }; +const char* AUTHENTICATION__FAILURE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AUTHENTICATION__FAILURE::optional_indexes[] = { 4, -1 }; +const int* AUTHENTICATION__FAILURE::get_optional_indexes() const { return optional_indexes; } + +const int AUTHENTICATION__FAILURE::optional_indexes_asn[] = { 4, -1 }; +const int* AUTHENTICATION__FAILURE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AUTHENTICATION__FAILURE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new EMM__Cause_template(ANY_VALUE) : new EMM__Cause_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::AuthenticationFailureParameter_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AuthenticationFailureParameter_template; +} +} + +AUTHENTICATION__FAILURE_template::AUTHENTICATION__FAILURE_template(AUTHENTICATION__FAILURE_template* p_precondition, AUTHENTICATION__FAILURE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AUTHENTICATION__FAILURE_template::AUTHENTICATION__FAILURE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AUTHENTICATION__FAILURE_template::~AUTHENTICATION__FAILURE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AUTHENTICATION__FAILURE_template::match_dynamic(const Base_Type* match_value) const +{ +const AUTHENTICATION__FAILURE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AUTHENTICATION__FAILURE_template& AUTHENTICATION__FAILURE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AUTHENTICATION__FAILURE_template& AUTHENTICATION__FAILURE_template::operator=(const AUTHENTICATION__FAILURE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AUTHENTICATION__FAILURE_template& AUTHENTICATION__FAILURE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AUTHENTICATION__FAILURE_template& AUTHENTICATION__FAILURE_template::operator=(const AUTHENTICATION__FAILURE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AUTHENTICATION__FAILURE AUTHENTICATION__FAILURE_template::valueof() const +{ +AUTHENTICATION__FAILURE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& AUTHENTICATION__FAILURE_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& AUTHENTICATION__FAILURE_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AUTHENTICATION__FAILURE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AUTHENTICATION__FAILURE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AUTHENTICATION__FAILURE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AUTHENTICATION__FAILURE_template::messageType() const { return *(static_cast(get_at(2))); } +EMM__Cause_template& AUTHENTICATION__FAILURE_template::emmCause() { return *(static_cast(get_at(3))); } +const EMM__Cause_template& AUTHENTICATION__FAILURE_template::emmCause() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::AuthenticationFailureParameter_template& AUTHENTICATION__FAILURE_template::authenticationFailureParameter() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& AUTHENTICATION__FAILURE_template::authenticationFailureParameter() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* AUTHENTICATION__FAILURE_template::get_descriptor() const { return &AUTHENTICATION__FAILURE_descr_; } +const char* AUTHENTICATION__FAILURE_template::fld_name(int p_index) const { return AUTHENTICATION__FAILURE::fld_names[p_index]; } +void AUTHENTICATION__REJECT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +AUTHENTICATION__REJECT::AUTHENTICATION__REJECT() : Record_Type() { init_vec(); } + +AUTHENTICATION__REJECT::AUTHENTICATION__REJECT(const AUTHENTICATION__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +AUTHENTICATION__REJECT::AUTHENTICATION__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AUTHENTICATION__REJECT::get_descriptor() const { return &AUTHENTICATION__REJECT_descr_; } +const TTCN_Typedescriptor_t* AUTHENTICATION__REJECT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* AUTHENTICATION__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AUTHENTICATION__REJECT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType" }; +const char* AUTHENTICATION__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +void AUTHENTICATION__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AUTHENTICATION__REJECT_template::AUTHENTICATION__REJECT_template(AUTHENTICATION__REJECT_template* p_precondition, AUTHENTICATION__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AUTHENTICATION__REJECT_template::AUTHENTICATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AUTHENTICATION__REJECT_template::~AUTHENTICATION__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AUTHENTICATION__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const AUTHENTICATION__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AUTHENTICATION__REJECT_template& AUTHENTICATION__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AUTHENTICATION__REJECT_template& AUTHENTICATION__REJECT_template::operator=(const AUTHENTICATION__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AUTHENTICATION__REJECT_template& AUTHENTICATION__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AUTHENTICATION__REJECT_template& AUTHENTICATION__REJECT_template::operator=(const AUTHENTICATION__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AUTHENTICATION__REJECT AUTHENTICATION__REJECT_template::valueof() const +{ +AUTHENTICATION__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& AUTHENTICATION__REJECT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& AUTHENTICATION__REJECT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AUTHENTICATION__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AUTHENTICATION__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AUTHENTICATION__REJECT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AUTHENTICATION__REJECT_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AUTHENTICATION__REJECT_template::get_descriptor() const { return &AUTHENTICATION__REJECT_descr_; } +const char* AUTHENTICATION__REJECT_template::fld_name(int p_index) const { return AUTHENTICATION__REJECT::fld_names[p_index]; } +void AUTHENTICATION__REQUEST::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_spareHalfOctet; fld_vec[4]=&field_asmeNasKeySetId; fld_vec[5]=&field_rand; fld_vec[6]=&field_autn; } + +AUTHENTICATION__REQUEST::AUTHENTICATION__REQUEST() : Record_Type() { init_vec(); } + +AUTHENTICATION__REQUEST::AUTHENTICATION__REQUEST(const AUTHENTICATION__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_asmeNasKeySetId.is_bound() ) + field_asmeNasKeySetId = other_value.field_asmeNasKeySetId; +if (other_value.field_rand.is_bound() ) + field_rand = other_value.field_rand; +if (other_value.field_autn.is_bound() ) + field_autn = other_value.field_autn; +init_vec(); +} + +AUTHENTICATION__REQUEST::AUTHENTICATION__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_asmeNasKeySetId, + const NAS__CommonTypeDefs::RAND& par_rand, + const NAS__CommonTypeDefs::AUTN& par_autn) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_spareHalfOctet(par_spareHalfOctet), + field_asmeNasKeySetId(par_asmeNasKeySetId), + field_rand(par_rand), + field_autn(par_autn) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AUTHENTICATION__REQUEST::get_descriptor() const { return &AUTHENTICATION__REQUEST_descr_; } +const TTCN_Typedescriptor_t* AUTHENTICATION__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &NAS__CommonTypeDefs::RAND_descr_, &NAS__CommonTypeDefs::AUTN_descr_ }; +const TTCN_Typedescriptor_t* AUTHENTICATION__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AUTHENTICATION__REQUEST::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "spareHalfOctet", "asmeNasKeySetId", "rand", "autn" }; +const char* AUTHENTICATION__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void AUTHENTICATION__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::RAND_template(ANY_VALUE) : new NAS__CommonTypeDefs::RAND_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::AUTN_template(ANY_VALUE) : new NAS__CommonTypeDefs::AUTN_template; +} +} + +AUTHENTICATION__REQUEST_template::AUTHENTICATION__REQUEST_template(AUTHENTICATION__REQUEST_template* p_precondition, AUTHENTICATION__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AUTHENTICATION__REQUEST_template::AUTHENTICATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AUTHENTICATION__REQUEST_template::~AUTHENTICATION__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AUTHENTICATION__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const AUTHENTICATION__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AUTHENTICATION__REQUEST_template& AUTHENTICATION__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AUTHENTICATION__REQUEST_template& AUTHENTICATION__REQUEST_template::operator=(const AUTHENTICATION__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AUTHENTICATION__REQUEST_template& AUTHENTICATION__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AUTHENTICATION__REQUEST_template& AUTHENTICATION__REQUEST_template::operator=(const AUTHENTICATION__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AUTHENTICATION__REQUEST AUTHENTICATION__REQUEST_template::valueof() const +{ +AUTHENTICATION__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& AUTHENTICATION__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& AUTHENTICATION__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AUTHENTICATION__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AUTHENTICATION__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AUTHENTICATION__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AUTHENTICATION__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +HEXSTRING_template& AUTHENTICATION__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(3))); } +const HEXSTRING_template& AUTHENTICATION__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& AUTHENTICATION__REQUEST_template::asmeNasKeySetId() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& AUTHENTICATION__REQUEST_template::asmeNasKeySetId() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::RAND_template& AUTHENTICATION__REQUEST_template::rand() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::RAND_template& AUTHENTICATION__REQUEST_template::rand() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::AUTN_template& AUTHENTICATION__REQUEST_template::autn() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::AUTN_template& AUTHENTICATION__REQUEST_template::autn() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* AUTHENTICATION__REQUEST_template::get_descriptor() const { return &AUTHENTICATION__REQUEST_descr_; } +const char* AUTHENTICATION__REQUEST_template::fld_name(int p_index) const { return AUTHENTICATION__REQUEST::fld_names[p_index]; } +void AUTHENTICATION__RESPONSE::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_authenticationResponseParameter; } + +AUTHENTICATION__RESPONSE::AUTHENTICATION__RESPONSE() : Record_Type() { init_vec(); } + +AUTHENTICATION__RESPONSE::AUTHENTICATION__RESPONSE(const AUTHENTICATION__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_authenticationResponseParameter.is_bound() ) + field_authenticationResponseParameter = other_value.field_authenticationResponseParameter; +init_vec(); +} + +AUTHENTICATION__RESPONSE::AUTHENTICATION__RESPONSE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::AuthenticationResponseParameter& par_authenticationResponseParameter) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_authenticationResponseParameter(par_authenticationResponseParameter) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AUTHENTICATION__RESPONSE::get_descriptor() const { return &AUTHENTICATION__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* AUTHENTICATION__RESPONSE::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::AuthenticationResponseParameter_descr_ }; +const TTCN_Typedescriptor_t* AUTHENTICATION__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AUTHENTICATION__RESPONSE::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "authenticationResponseParameter" }; +const char* AUTHENTICATION__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +void AUTHENTICATION__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::AuthenticationResponseParameter_template(ANY_VALUE) : new NAS__CommonTypeDefs::AuthenticationResponseParameter_template; +} +} + +AUTHENTICATION__RESPONSE_template::AUTHENTICATION__RESPONSE_template(AUTHENTICATION__RESPONSE_template* p_precondition, AUTHENTICATION__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AUTHENTICATION__RESPONSE_template::AUTHENTICATION__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AUTHENTICATION__RESPONSE_template::~AUTHENTICATION__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AUTHENTICATION__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const AUTHENTICATION__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AUTHENTICATION__RESPONSE_template& AUTHENTICATION__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AUTHENTICATION__RESPONSE_template& AUTHENTICATION__RESPONSE_template::operator=(const AUTHENTICATION__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AUTHENTICATION__RESPONSE_template& AUTHENTICATION__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AUTHENTICATION__RESPONSE_template& AUTHENTICATION__RESPONSE_template::operator=(const AUTHENTICATION__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AUTHENTICATION__RESPONSE AUTHENTICATION__RESPONSE_template::valueof() const +{ +AUTHENTICATION__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& AUTHENTICATION__RESPONSE_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& AUTHENTICATION__RESPONSE_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AUTHENTICATION__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AUTHENTICATION__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AUTHENTICATION__RESPONSE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AUTHENTICATION__RESPONSE_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::AuthenticationResponseParameter_template& AUTHENTICATION__RESPONSE_template::authenticationResponseParameter() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::AuthenticationResponseParameter_template& AUTHENTICATION__RESPONSE_template::authenticationResponseParameter() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* AUTHENTICATION__RESPONSE_template::get_descriptor() const { return &AUTHENTICATION__RESPONSE_descr_; } +const char* AUTHENTICATION__RESPONSE_template::fld_name(int p_index) const { return AUTHENTICATION__RESPONSE::fld_names[p_index]; } +void PagingIdentity::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spareBits; fld_vec[2]=&field_pagingId; } + +PagingIdentity::PagingIdentity() : Record_Type() { init_vec(); } + +PagingIdentity::PagingIdentity(const PagingIdentity& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_pagingId.is_bound() ) + field_pagingId = other_value.field_pagingId; +init_vec(); +} + +PagingIdentity::PagingIdentity(const OPTIONAL& par_iei, + const BITSTRING& par_spareBits, + const BITSTRING& par_pagingId) : field_iei(par_iei), + field_spareBits(par_spareBits), + field_pagingId(par_pagingId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PagingIdentity::get_descriptor() const { return &PagingIdentity_descr_; } +const TTCN_Typedescriptor_t* PagingIdentity::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* PagingIdentity::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PagingIdentity::fld_names[] = { "iei", "spareBits", "pagingId" }; +const char* PagingIdentity::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PagingIdentity::optional_indexes[] = { 0, -1 }; +const int* PagingIdentity::get_optional_indexes() const { return optional_indexes; } + +const int PagingIdentity::optional_indexes_asn[] = { 0, -1 }; +const int* PagingIdentity::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PagingIdentity_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +PagingIdentity_template::PagingIdentity_template(PagingIdentity_template* p_precondition, PagingIdentity_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PagingIdentity_template::PagingIdentity_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PagingIdentity_template::~PagingIdentity_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PagingIdentity_template::match_dynamic(const Base_Type* match_value) const +{ +const PagingIdentity* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PagingIdentity_template& PagingIdentity_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PagingIdentity_template& PagingIdentity_template::operator=(const PagingIdentity& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PagingIdentity_template& PagingIdentity_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PagingIdentity_template& PagingIdentity_template::operator=(const PagingIdentity_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PagingIdentity PagingIdentity_template::valueof() const +{ +PagingIdentity ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PagingIdentity_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PagingIdentity_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PagingIdentity_template::spareBits() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PagingIdentity_template::spareBits() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PagingIdentity_template::pagingId() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PagingIdentity_template::pagingId() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PagingIdentity_template::get_descriptor() const { return &PagingIdentity_descr_; } +const char* PagingIdentity_template::fld_name(int p_index) const { return PagingIdentity::fld_names[p_index]; } +void CS__SERVICE__NOTIFICATION::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_pagingIdentity; fld_vec[4]=&field_cli; fld_vec[5]=&field_ssCode; fld_vec[6]=&field_lcsIndicator; fld_vec[7]=&field_lcsClientIdentity; } + +CS__SERVICE__NOTIFICATION::CS__SERVICE__NOTIFICATION() : Record_Type() { init_vec(); } + +CS__SERVICE__NOTIFICATION::CS__SERVICE__NOTIFICATION(const CS__SERVICE__NOTIFICATION& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_pagingIdentity.is_bound() ) + field_pagingIdentity = other_value.field_pagingIdentity; +if (other_value.field_cli.is_bound() ) + field_cli = other_value.field_cli; +if (other_value.field_ssCode.is_bound() ) + field_ssCode = other_value.field_ssCode; +if (other_value.field_lcsIndicator.is_bound() ) + field_lcsIndicator = other_value.field_lcsIndicator; +if (other_value.field_lcsClientIdentity.is_bound() ) + field_lcsClientIdentity = other_value.field_lcsClientIdentity; +init_vec(); +} + +CS__SERVICE__NOTIFICATION::CS__SERVICE__NOTIFICATION(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const PagingIdentity& par_pagingIdentity, + const OPTIONAL& par_cli, + const OPTIONAL& par_ssCode, + const OPTIONAL& par_lcsIndicator, + const OPTIONAL& par_lcsClientIdentity) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_pagingIdentity(par_pagingIdentity), + field_cli(par_cli), + field_ssCode(par_ssCode), + field_lcsIndicator(par_lcsIndicator), + field_lcsClientIdentity(par_lcsClientIdentity) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CS__SERVICE__NOTIFICATION::get_descriptor() const { return &CS__SERVICE__NOTIFICATION_descr_; } +const TTCN_Typedescriptor_t* CS__SERVICE__NOTIFICATION::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &PagingIdentity_descr_, &CLI_descr_, &SsCode_descr_, &LcsIndicator_descr_, &LcsClientIdentity_descr_ }; +const TTCN_Typedescriptor_t* CS__SERVICE__NOTIFICATION::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CS__SERVICE__NOTIFICATION::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "pagingIdentity", "cli", "ssCode", "lcsIndicator", "lcsClientIdentity" }; +const char* CS__SERVICE__NOTIFICATION::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CS__SERVICE__NOTIFICATION::optional_indexes[] = { 4, 5, 6, 7, -1 }; +const int* CS__SERVICE__NOTIFICATION::get_optional_indexes() const { return optional_indexes; } + +const int CS__SERVICE__NOTIFICATION::optional_indexes_asn[] = { 4, 5, 6, 7, -1 }; +const int* CS__SERVICE__NOTIFICATION::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CS__SERVICE__NOTIFICATION_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new PagingIdentity_template(ANY_VALUE) : new PagingIdentity_template; +single_value.value_elements[4] = was_any ? new CLI_template(ANY_OR_OMIT) : new CLI_template; +single_value.value_elements[5] = was_any ? new SsCode_template(ANY_OR_OMIT) : new SsCode_template; +single_value.value_elements[6] = was_any ? new LcsIndicator_template(ANY_OR_OMIT) : new LcsIndicator_template; +single_value.value_elements[7] = was_any ? new LcsClientIdentity_template(ANY_OR_OMIT) : new LcsClientIdentity_template; +} +} + +CS__SERVICE__NOTIFICATION_template::CS__SERVICE__NOTIFICATION_template(CS__SERVICE__NOTIFICATION_template* p_precondition, CS__SERVICE__NOTIFICATION_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CS__SERVICE__NOTIFICATION_template::CS__SERVICE__NOTIFICATION_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CS__SERVICE__NOTIFICATION_template::~CS__SERVICE__NOTIFICATION_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CS__SERVICE__NOTIFICATION_template::match_dynamic(const Base_Type* match_value) const +{ +const CS__SERVICE__NOTIFICATION* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CS__SERVICE__NOTIFICATION_template& CS__SERVICE__NOTIFICATION_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CS__SERVICE__NOTIFICATION_template& CS__SERVICE__NOTIFICATION_template::operator=(const CS__SERVICE__NOTIFICATION& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CS__SERVICE__NOTIFICATION_template& CS__SERVICE__NOTIFICATION_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CS__SERVICE__NOTIFICATION_template& CS__SERVICE__NOTIFICATION_template::operator=(const CS__SERVICE__NOTIFICATION_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CS__SERVICE__NOTIFICATION CS__SERVICE__NOTIFICATION_template::valueof() const +{ +CS__SERVICE__NOTIFICATION ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& CS__SERVICE__NOTIFICATION_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& CS__SERVICE__NOTIFICATION_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& CS__SERVICE__NOTIFICATION_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& CS__SERVICE__NOTIFICATION_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CS__SERVICE__NOTIFICATION_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CS__SERVICE__NOTIFICATION_template::messageType() const { return *(static_cast(get_at(2))); } +PagingIdentity_template& CS__SERVICE__NOTIFICATION_template::pagingIdentity() { return *(static_cast(get_at(3))); } +const PagingIdentity_template& CS__SERVICE__NOTIFICATION_template::pagingIdentity() const { return *(static_cast(get_at(3))); } +CLI_template& CS__SERVICE__NOTIFICATION_template::cli() { return *(static_cast(get_at(4))); } +const CLI_template& CS__SERVICE__NOTIFICATION_template::cli() const { return *(static_cast(get_at(4))); } +SsCode_template& CS__SERVICE__NOTIFICATION_template::ssCode() { return *(static_cast(get_at(5))); } +const SsCode_template& CS__SERVICE__NOTIFICATION_template::ssCode() const { return *(static_cast(get_at(5))); } +LcsIndicator_template& CS__SERVICE__NOTIFICATION_template::lcsIndicator() { return *(static_cast(get_at(6))); } +const LcsIndicator_template& CS__SERVICE__NOTIFICATION_template::lcsIndicator() const { return *(static_cast(get_at(6))); } +LcsClientIdentity_template& CS__SERVICE__NOTIFICATION_template::lcsClientIdentity() { return *(static_cast(get_at(7))); } +const LcsClientIdentity_template& CS__SERVICE__NOTIFICATION_template::lcsClientIdentity() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* CS__SERVICE__NOTIFICATION_template::get_descriptor() const { return &CS__SERVICE__NOTIFICATION_descr_; } +const char* CS__SERVICE__NOTIFICATION_template::fld_name(int p_index) const { return CS__SERVICE__NOTIFICATION::fld_names[p_index]; } +void CLI::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_cliValue; } + +CLI::CLI() : Record_Type() { init_vec(); } + +CLI::CLI(const CLI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_cliValue.is_bound() ) + field_cliValue = other_value.field_cliValue; +init_vec(); +} + +CLI::CLI(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_cliValue) : field_iei(par_iei), + field_iel(par_iel), + field_cliValue(par_cliValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CLI::get_descriptor() const { return &CLI_descr_; } +const TTCN_Typedescriptor_t* CLI::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* CLI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CLI::fld_names[] = { "iei", "iel", "cliValue" }; +const char* CLI::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CLI::optional_indexes[] = { 0, -1 }; +const int* CLI::get_optional_indexes() const { return optional_indexes; } + +const int CLI::optional_indexes_asn[] = { 0, -1 }; +const int* CLI::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CLI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +CLI_template::CLI_template(CLI_template* p_precondition, CLI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CLI_template::CLI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CLI_template::~CLI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CLI_template::match_dynamic(const Base_Type* match_value) const +{ +const CLI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CLI_template& CLI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CLI_template& CLI_template::operator=(const CLI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CLI_template& CLI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CLI_template& CLI_template::operator=(const CLI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CLI CLI_template::valueof() const +{ +CLI ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& CLI_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& CLI_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& CLI_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& CLI_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& CLI_template::cliValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& CLI_template::cliValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* CLI_template::get_descriptor() const { return &CLI_descr_; } +const char* CLI_template::fld_name(int p_index) const { return CLI::fld_names[p_index]; } +void SsCode::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_ssCodeValue; } + +SsCode::SsCode() : Record_Type() { init_vec(); } + +SsCode::SsCode(const SsCode& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_ssCodeValue.is_bound() ) + field_ssCodeValue = other_value.field_ssCodeValue; +init_vec(); +} + +SsCode::SsCode(const OPTIONAL& par_iei, + const OCTETSTRING& par_ssCodeValue) : field_iei(par_iei), + field_ssCodeValue(par_ssCodeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SsCode::get_descriptor() const { return &SsCode_descr_; } +const TTCN_Typedescriptor_t* SsCode::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* SsCode::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SsCode::fld_names[] = { "iei", "ssCodeValue" }; +const char* SsCode::fld_name(int p_index) const { return fld_names[p_index]; } + +const int SsCode::optional_indexes[] = { 0, -1 }; +const int* SsCode::get_optional_indexes() const { return optional_indexes; } + +const int SsCode::optional_indexes_asn[] = { 0, -1 }; +const int* SsCode::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void SsCode_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +SsCode_template::SsCode_template(SsCode_template* p_precondition, SsCode_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SsCode_template::SsCode_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SsCode_template::~SsCode_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SsCode_template::match_dynamic(const Base_Type* match_value) const +{ +const SsCode* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SsCode_template& SsCode_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SsCode_template& SsCode_template::operator=(const SsCode& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SsCode_template& SsCode_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SsCode_template& SsCode_template::operator=(const SsCode_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SsCode SsCode_template::valueof() const +{ +SsCode ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SsCode_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SsCode_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SsCode_template::ssCodeValue() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SsCode_template::ssCodeValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* SsCode_template::get_descriptor() const { return &SsCode_descr_; } +const char* SsCode_template::fld_name(int p_index) const { return SsCode::fld_names[p_index]; } +void LcsIndicator::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_lcsIndicator; } + +LcsIndicator::LcsIndicator() : Record_Type() { init_vec(); } + +LcsIndicator::LcsIndicator(const LcsIndicator& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_lcsIndicator.is_bound() ) + field_lcsIndicator = other_value.field_lcsIndicator; +init_vec(); +} + +LcsIndicator::LcsIndicator(const OPTIONAL& par_iei, + const OCTETSTRING& par_lcsIndicator) : field_iei(par_iei), + field_lcsIndicator(par_lcsIndicator) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* LcsIndicator::get_descriptor() const { return &LcsIndicator_descr_; } +const TTCN_Typedescriptor_t* LcsIndicator::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* LcsIndicator::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* LcsIndicator::fld_names[] = { "iei", "lcsIndicator" }; +const char* LcsIndicator::fld_name(int p_index) const { return fld_names[p_index]; } + +const int LcsIndicator::optional_indexes[] = { 0, -1 }; +const int* LcsIndicator::get_optional_indexes() const { return optional_indexes; } + +const int LcsIndicator::optional_indexes_asn[] = { 0, -1 }; +const int* LcsIndicator::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void LcsIndicator_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +LcsIndicator_template::LcsIndicator_template(LcsIndicator_template* p_precondition, LcsIndicator_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LcsIndicator_template::LcsIndicator_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LcsIndicator_template::~LcsIndicator_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LcsIndicator_template::match_dynamic(const Base_Type* match_value) const +{ +const LcsIndicator* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +LcsIndicator_template& LcsIndicator_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LcsIndicator_template& LcsIndicator_template::operator=(const LcsIndicator& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LcsIndicator_template& LcsIndicator_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LcsIndicator_template& LcsIndicator_template::operator=(const LcsIndicator_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LcsIndicator LcsIndicator_template::valueof() const +{ +LcsIndicator ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& LcsIndicator_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& LcsIndicator_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& LcsIndicator_template::lcsIndicator() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& LcsIndicator_template::lcsIndicator() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* LcsIndicator_template::get_descriptor() const { return &LcsIndicator_descr_; } +const char* LcsIndicator_template::fld_name(int p_index) const { return LcsIndicator::fld_names[p_index]; } +void LcsClientIdentity::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_lcsClientIdentityValue; } + +LcsClientIdentity::LcsClientIdentity() : Record_Type() { init_vec(); } + +LcsClientIdentity::LcsClientIdentity(const LcsClientIdentity& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_lcsClientIdentityValue.is_bound() ) + field_lcsClientIdentityValue = other_value.field_lcsClientIdentityValue; +init_vec(); +} + +LcsClientIdentity::LcsClientIdentity(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_lcsClientIdentityValue) : field_iei(par_iei), + field_iel(par_iel), + field_lcsClientIdentityValue(par_lcsClientIdentityValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* LcsClientIdentity::get_descriptor() const { return &LcsClientIdentity_descr_; } +const TTCN_Typedescriptor_t* LcsClientIdentity::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* LcsClientIdentity::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* LcsClientIdentity::fld_names[] = { "iei", "iel", "lcsClientIdentityValue" }; +const char* LcsClientIdentity::fld_name(int p_index) const { return fld_names[p_index]; } + +const int LcsClientIdentity::optional_indexes[] = { 0, -1 }; +const int* LcsClientIdentity::get_optional_indexes() const { return optional_indexes; } + +const int LcsClientIdentity::optional_indexes_asn[] = { 0, -1 }; +const int* LcsClientIdentity::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void LcsClientIdentity_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +LcsClientIdentity_template::LcsClientIdentity_template(LcsClientIdentity_template* p_precondition, LcsClientIdentity_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LcsClientIdentity_template::LcsClientIdentity_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LcsClientIdentity_template::~LcsClientIdentity_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LcsClientIdentity_template::match_dynamic(const Base_Type* match_value) const +{ +const LcsClientIdentity* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +LcsClientIdentity_template& LcsClientIdentity_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LcsClientIdentity_template& LcsClientIdentity_template::operator=(const LcsClientIdentity& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LcsClientIdentity_template& LcsClientIdentity_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LcsClientIdentity_template& LcsClientIdentity_template::operator=(const LcsClientIdentity_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LcsClientIdentity LcsClientIdentity_template::valueof() const +{ +LcsClientIdentity ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& LcsClientIdentity_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& LcsClientIdentity_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& LcsClientIdentity_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& LcsClientIdentity_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& LcsClientIdentity_template::lcsClientIdentityValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& LcsClientIdentity_template::lcsClientIdentityValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* LcsClientIdentity_template::get_descriptor() const { return &LcsClientIdentity_descr_; } +const char* LcsClientIdentity_template::fld_name(int p_index) const { return LcsClientIdentity::fld_names[p_index]; } +void DETACH__ACCEPT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +DETACH__ACCEPT::DETACH__ACCEPT() : Record_Type() { init_vec(); } + +DETACH__ACCEPT::DETACH__ACCEPT(const DETACH__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +DETACH__ACCEPT::DETACH__ACCEPT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DETACH__ACCEPT::get_descriptor() const { return &DETACH__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* DETACH__ACCEPT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* DETACH__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DETACH__ACCEPT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType" }; +const char* DETACH__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +void DETACH__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DETACH__ACCEPT_template::DETACH__ACCEPT_template(DETACH__ACCEPT_template* p_precondition, DETACH__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DETACH__ACCEPT_template::DETACH__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DETACH__ACCEPT_template::~DETACH__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DETACH__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const DETACH__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DETACH__ACCEPT_template& DETACH__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DETACH__ACCEPT_template& DETACH__ACCEPT_template::operator=(const DETACH__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DETACH__ACCEPT_template& DETACH__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DETACH__ACCEPT_template& DETACH__ACCEPT_template::operator=(const DETACH__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DETACH__ACCEPT DETACH__ACCEPT_template::valueof() const +{ +DETACH__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DETACH__ACCEPT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DETACH__ACCEPT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DETACH__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DETACH__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DETACH__ACCEPT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DETACH__ACCEPT_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* DETACH__ACCEPT_template::get_descriptor() const { return &DETACH__ACCEPT_descr_; } +const char* DETACH__ACCEPT_template::fld_name(int p_index) const { return DETACH__ACCEPT::fld_names[p_index]; } +void DETACH__REQUEST__MO::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_asmeNasKeySetId; fld_vec[4]=&field_detachType; fld_vec[5]=&field_epsMobileIdentity; } + +DETACH__REQUEST__MO::DETACH__REQUEST__MO() : Record_Type() { init_vec(); } + +DETACH__REQUEST__MO::DETACH__REQUEST__MO(const DETACH__REQUEST__MO& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_asmeNasKeySetId.is_bound() ) + field_asmeNasKeySetId = other_value.field_asmeNasKeySetId; +if (other_value.field_detachType.is_bound() ) + field_detachType = other_value.field_detachType; +if (other_value.field_epsMobileIdentity.is_bound() ) + field_epsMobileIdentity = other_value.field_epsMobileIdentity; +init_vec(); +} + +DETACH__REQUEST__MO::DETACH__REQUEST__MO(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_asmeNasKeySetId, + const NAS__CommonTypeDefs::DetachType& par_detachType, + const NAS__CommonTypeDefs::MobileIdentity& par_epsMobileIdentity) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_asmeNasKeySetId(par_asmeNasKeySetId), + field_detachType(par_detachType), + field_epsMobileIdentity(par_epsMobileIdentity) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DETACH__REQUEST__MO::get_descriptor() const { return &DETACH__REQUEST__MO_descr_; } +const TTCN_Typedescriptor_t* DETACH__REQUEST__MO::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &NAS__CommonTypeDefs::DetachType_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_ }; +const TTCN_Typedescriptor_t* DETACH__REQUEST__MO::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DETACH__REQUEST__MO::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "asmeNasKeySetId", "detachType", "epsMobileIdentity" }; +const char* DETACH__REQUEST__MO::fld_name(int p_index) const { return fld_names[p_index]; } + +void DETACH__REQUEST__MO_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::DetachType_template(ANY_VALUE) : new NAS__CommonTypeDefs::DetachType_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_VALUE) : new NAS__CommonTypeDefs::MobileIdentity_template; +} +} + +DETACH__REQUEST__MO_template::DETACH__REQUEST__MO_template(DETACH__REQUEST__MO_template* p_precondition, DETACH__REQUEST__MO_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DETACH__REQUEST__MO_template::DETACH__REQUEST__MO_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DETACH__REQUEST__MO_template::~DETACH__REQUEST__MO_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DETACH__REQUEST__MO_template::match_dynamic(const Base_Type* match_value) const +{ +const DETACH__REQUEST__MO* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DETACH__REQUEST__MO_template& DETACH__REQUEST__MO_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DETACH__REQUEST__MO_template& DETACH__REQUEST__MO_template::operator=(const DETACH__REQUEST__MO& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DETACH__REQUEST__MO_template& DETACH__REQUEST__MO_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DETACH__REQUEST__MO_template& DETACH__REQUEST__MO_template::operator=(const DETACH__REQUEST__MO_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DETACH__REQUEST__MO DETACH__REQUEST__MO_template::valueof() const +{ +DETACH__REQUEST__MO ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DETACH__REQUEST__MO_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DETACH__REQUEST__MO_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DETACH__REQUEST__MO_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DETACH__REQUEST__MO_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DETACH__REQUEST__MO_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DETACH__REQUEST__MO_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& DETACH__REQUEST__MO_template::asmeNasKeySetId() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& DETACH__REQUEST__MO_template::asmeNasKeySetId() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::DetachType_template& DETACH__REQUEST__MO_template::detachType() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::DetachType_template& DETACH__REQUEST__MO_template::detachType() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::MobileIdentity_template& DETACH__REQUEST__MO_template::epsMobileIdentity() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::MobileIdentity_template& DETACH__REQUEST__MO_template::epsMobileIdentity() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* DETACH__REQUEST__MO_template::get_descriptor() const { return &DETACH__REQUEST__MO_descr_; } +const char* DETACH__REQUEST__MO_template::fld_name(int p_index) const { return DETACH__REQUEST__MO::fld_names[p_index]; } +void DETACH__REQUEST__MT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_spareHalfOctet; fld_vec[4]=&field_detachType; fld_vec[5]=&field_emmCause; fld_vec[6]=&field_lowerBoundTimerValue; fld_vec[7]=&field_forbidTAIList__Roaming; fld_vec[8]=&field_forbidTAIList__RegProvService; } + +DETACH__REQUEST__MT::DETACH__REQUEST__MT() : Record_Type() { init_vec(); } + +DETACH__REQUEST__MT::DETACH__REQUEST__MT(const DETACH__REQUEST__MT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_detachType.is_bound() ) + field_detachType = other_value.field_detachType; +if (other_value.field_emmCause.is_bound() ) + field_emmCause = other_value.field_emmCause; +if (other_value.field_lowerBoundTimerValue.is_bound() ) + field_lowerBoundTimerValue = other_value.field_lowerBoundTimerValue; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +DETACH__REQUEST__MT::DETACH__REQUEST__MT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const NAS__CommonTypeDefs::DetachType& par_detachType, + const OPTIONAL& par_emmCause, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_spareHalfOctet(par_spareHalfOctet), + field_detachType(par_detachType), + field_emmCause(par_emmCause), + field_lowerBoundTimerValue(par_lowerBoundTimerValue), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DETACH__REQUEST__MT::get_descriptor() const { return &DETACH__REQUEST__MT_descr_; } +const TTCN_Typedescriptor_t* DETACH__REQUEST__MT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::DetachType_descr_, &EMM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &TrackingAreaIdList_descr_, &TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* DETACH__REQUEST__MT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DETACH__REQUEST__MT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "spareHalfOctet", "detachType", "emmCause", "lowerBoundTimerValue", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* DETACH__REQUEST__MT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DETACH__REQUEST__MT::optional_indexes[] = { 5, 6, 7, 8, -1 }; +const int* DETACH__REQUEST__MT::get_optional_indexes() const { return optional_indexes; } + +const int DETACH__REQUEST__MT::optional_indexes_asn[] = { 5, 6, 7, 8, -1 }; +const int* DETACH__REQUEST__MT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DETACH__REQUEST__MT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 9; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::DetachType_template(ANY_VALUE) : new NAS__CommonTypeDefs::DetachType_template; +single_value.value_elements[5] = was_any ? new EMM__Cause_template(ANY_OR_OMIT) : new EMM__Cause_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +single_value.value_elements[8] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +} +} + +DETACH__REQUEST__MT_template::DETACH__REQUEST__MT_template(DETACH__REQUEST__MT_template* p_precondition, DETACH__REQUEST__MT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DETACH__REQUEST__MT_template::DETACH__REQUEST__MT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DETACH__REQUEST__MT_template::~DETACH__REQUEST__MT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DETACH__REQUEST__MT_template::match_dynamic(const Base_Type* match_value) const +{ +const DETACH__REQUEST__MT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DETACH__REQUEST__MT_template& DETACH__REQUEST__MT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DETACH__REQUEST__MT_template& DETACH__REQUEST__MT_template::operator=(const DETACH__REQUEST__MT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DETACH__REQUEST__MT_template& DETACH__REQUEST__MT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DETACH__REQUEST__MT_template& DETACH__REQUEST__MT_template::operator=(const DETACH__REQUEST__MT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DETACH__REQUEST__MT DETACH__REQUEST__MT_template::valueof() const +{ +DETACH__REQUEST__MT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DETACH__REQUEST__MT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DETACH__REQUEST__MT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DETACH__REQUEST__MT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DETACH__REQUEST__MT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DETACH__REQUEST__MT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DETACH__REQUEST__MT_template::messageType() const { return *(static_cast(get_at(2))); } +HEXSTRING_template& DETACH__REQUEST__MT_template::spareHalfOctet() { return *(static_cast(get_at(3))); } +const HEXSTRING_template& DETACH__REQUEST__MT_template::spareHalfOctet() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::DetachType_template& DETACH__REQUEST__MT_template::detachType() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::DetachType_template& DETACH__REQUEST__MT_template::detachType() const { return *(static_cast(get_at(4))); } +EMM__Cause_template& DETACH__REQUEST__MT_template::emmCause() { return *(static_cast(get_at(5))); } +const EMM__Cause_template& DETACH__REQUEST__MT_template::emmCause() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& DETACH__REQUEST__MT_template::lowerBoundTimerValue() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& DETACH__REQUEST__MT_template::lowerBoundTimerValue() const { return *(static_cast(get_at(6))); } +TrackingAreaIdList_template& DETACH__REQUEST__MT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(7))); } +const TrackingAreaIdList_template& DETACH__REQUEST__MT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(7))); } +TrackingAreaIdList_template& DETACH__REQUEST__MT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(8))); } +const TrackingAreaIdList_template& DETACH__REQUEST__MT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(8))); } +const TTCN_Typedescriptor_t* DETACH__REQUEST__MT_template::get_descriptor() const { return &DETACH__REQUEST__MT_descr_; } +const char* DETACH__REQUEST__MT_template::fld_name(int p_index) const { return DETACH__REQUEST__MT::fld_names[p_index]; } +void NAS__MessageContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_smsmessage; } + +NAS__MessageContainer::NAS__MessageContainer() : Record_Type() { init_vec(); } + +NAS__MessageContainer::NAS__MessageContainer(const NAS__MessageContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_smsmessage.is_bound() ) + field_smsmessage = other_value.field_smsmessage; +init_vec(); +} + +NAS__MessageContainer::NAS__MessageContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_smsmessage) : field_iei(par_iei), + field_iel(par_iel), + field_smsmessage(par_smsmessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NAS__MessageContainer::get_descriptor() const { return &NAS__MessageContainer_descr_; } +const TTCN_Typedescriptor_t* NAS__MessageContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NAS__MessageContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NAS__MessageContainer::fld_names[] = { "iei", "iel", "smsmessage" }; +const char* NAS__MessageContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NAS__MessageContainer::optional_indexes[] = { 0, -1 }; +const int* NAS__MessageContainer::get_optional_indexes() const { return optional_indexes; } + +const int NAS__MessageContainer::optional_indexes_asn[] = { 0, -1 }; +const int* NAS__MessageContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NAS__MessageContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NAS__MessageContainer_template::NAS__MessageContainer_template(NAS__MessageContainer_template* p_precondition, NAS__MessageContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NAS__MessageContainer_template::NAS__MessageContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NAS__MessageContainer_template::~NAS__MessageContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NAS__MessageContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const NAS__MessageContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NAS__MessageContainer_template& NAS__MessageContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NAS__MessageContainer_template& NAS__MessageContainer_template::operator=(const NAS__MessageContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NAS__MessageContainer_template& NAS__MessageContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NAS__MessageContainer_template& NAS__MessageContainer_template::operator=(const NAS__MessageContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NAS__MessageContainer NAS__MessageContainer_template::valueof() const +{ +NAS__MessageContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NAS__MessageContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NAS__MessageContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NAS__MessageContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NAS__MessageContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NAS__MessageContainer_template::smsmessage() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NAS__MessageContainer_template::smsmessage() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NAS__MessageContainer_template::get_descriptor() const { return &NAS__MessageContainer_descr_; } +const char* NAS__MessageContainer_template::fld_name(int p_index) const { return NAS__MessageContainer::fld_names[p_index]; } +void DL__NAS__TRANSPORT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_nasMessage; } + +DL__NAS__TRANSPORT::DL__NAS__TRANSPORT() : Record_Type() { init_vec(); } + +DL__NAS__TRANSPORT::DL__NAS__TRANSPORT(const DL__NAS__TRANSPORT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_nasMessage.is_bound() ) + field_nasMessage = other_value.field_nasMessage; +init_vec(); +} + +DL__NAS__TRANSPORT::DL__NAS__TRANSPORT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__MessageContainer& par_nasMessage) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_nasMessage(par_nasMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DL__NAS__TRANSPORT::get_descriptor() const { return &DL__NAS__TRANSPORT_descr_; } +const TTCN_Typedescriptor_t* DL__NAS__TRANSPORT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__MessageContainer_descr_ }; +const TTCN_Typedescriptor_t* DL__NAS__TRANSPORT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DL__NAS__TRANSPORT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "nasMessage" }; +const char* DL__NAS__TRANSPORT::fld_name(int p_index) const { return fld_names[p_index]; } + +void DL__NAS__TRANSPORT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__MessageContainer_template(ANY_VALUE) : new NAS__MessageContainer_template; +} +} + +DL__NAS__TRANSPORT_template::DL__NAS__TRANSPORT_template(DL__NAS__TRANSPORT_template* p_precondition, DL__NAS__TRANSPORT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DL__NAS__TRANSPORT_template::DL__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DL__NAS__TRANSPORT_template::~DL__NAS__TRANSPORT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DL__NAS__TRANSPORT_template::match_dynamic(const Base_Type* match_value) const +{ +const DL__NAS__TRANSPORT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DL__NAS__TRANSPORT_template& DL__NAS__TRANSPORT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DL__NAS__TRANSPORT_template& DL__NAS__TRANSPORT_template::operator=(const DL__NAS__TRANSPORT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DL__NAS__TRANSPORT_template& DL__NAS__TRANSPORT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DL__NAS__TRANSPORT_template& DL__NAS__TRANSPORT_template::operator=(const DL__NAS__TRANSPORT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DL__NAS__TRANSPORT DL__NAS__TRANSPORT_template::valueof() const +{ +DL__NAS__TRANSPORT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DL__NAS__TRANSPORT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DL__NAS__TRANSPORT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DL__NAS__TRANSPORT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DL__NAS__TRANSPORT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DL__NAS__TRANSPORT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DL__NAS__TRANSPORT_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__MessageContainer_template& DL__NAS__TRANSPORT_template::nasMessage() { return *(static_cast(get_at(3))); } +const NAS__MessageContainer_template& DL__NAS__TRANSPORT_template::nasMessage() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* DL__NAS__TRANSPORT_template::get_descriptor() const { return &DL__NAS__TRANSPORT_descr_; } +const char* DL__NAS__TRANSPORT_template::fld_name(int p_index) const { return DL__NAS__TRANSPORT::fld_names[p_index]; } +void EMM__INFORMATION::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_fullNetworkName; fld_vec[4]=&field_shortNetworkName; fld_vec[5]=&field_localTimeZone; fld_vec[6]=&field_localTimeZoneAndTime; fld_vec[7]=&field_daylightSavingTime; } + +EMM__INFORMATION::EMM__INFORMATION() : Record_Type() { init_vec(); } + +EMM__INFORMATION::EMM__INFORMATION(const EMM__INFORMATION& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_fullNetworkName.is_bound() ) + field_fullNetworkName = other_value.field_fullNetworkName; +if (other_value.field_shortNetworkName.is_bound() ) + field_shortNetworkName = other_value.field_shortNetworkName; +if (other_value.field_localTimeZone.is_bound() ) + field_localTimeZone = other_value.field_localTimeZone; +if (other_value.field_localTimeZoneAndTime.is_bound() ) + field_localTimeZoneAndTime = other_value.field_localTimeZoneAndTime; +if (other_value.field_daylightSavingTime.is_bound() ) + field_daylightSavingTime = other_value.field_daylightSavingTime; +init_vec(); +} + +EMM__INFORMATION::EMM__INFORMATION(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_fullNetworkName, + const OPTIONAL& par_shortNetworkName, + const OPTIONAL& par_localTimeZone, + const OPTIONAL& par_localTimeZoneAndTime, + const OPTIONAL& par_daylightSavingTime) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_fullNetworkName(par_fullNetworkName), + field_shortNetworkName(par_shortNetworkName), + field_localTimeZone(par_localTimeZone), + field_localTimeZoneAndTime(par_localTimeZoneAndTime), + field_daylightSavingTime(par_daylightSavingTime) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EMM__INFORMATION::get_descriptor() const { return &EMM__INFORMATION_descr_; } +const TTCN_Typedescriptor_t* EMM__INFORMATION::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NetworkName_descr_, &NAS__CommonTypeDefs::NetworkName_descr_, &NAS__CommonTypeDefs::TimeZone_descr_, &NAS__CommonTypeDefs::TimeZoneAndTime_descr_, &NAS__CommonTypeDefs::DaylightSavingTime_descr_ }; +const TTCN_Typedescriptor_t* EMM__INFORMATION::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EMM__INFORMATION::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "fullNetworkName", "shortNetworkName", "localTimeZone", "localTimeZoneAndTime", "daylightSavingTime" }; +const char* EMM__INFORMATION::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EMM__INFORMATION::optional_indexes[] = { 3, 4, 5, 6, 7, -1 }; +const int* EMM__INFORMATION::get_optional_indexes() const { return optional_indexes; } + +const int EMM__INFORMATION::optional_indexes_asn[] = { 3, 4, 5, 6, 7, -1 }; +const int* EMM__INFORMATION::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EMM__INFORMATION_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::NetworkName_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NetworkName_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::NetworkName_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NetworkName_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::TimeZone_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::TimeZone_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::TimeZoneAndTime_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::TimeZoneAndTime_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::DaylightSavingTime_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DaylightSavingTime_template; +} +} + +EMM__INFORMATION_template::EMM__INFORMATION_template(EMM__INFORMATION_template* p_precondition, EMM__INFORMATION_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EMM__INFORMATION_template::EMM__INFORMATION_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EMM__INFORMATION_template::~EMM__INFORMATION_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EMM__INFORMATION_template::match_dynamic(const Base_Type* match_value) const +{ +const EMM__INFORMATION* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EMM__INFORMATION_template& EMM__INFORMATION_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EMM__INFORMATION_template& EMM__INFORMATION_template::operator=(const EMM__INFORMATION& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EMM__INFORMATION_template& EMM__INFORMATION_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EMM__INFORMATION_template& EMM__INFORMATION_template::operator=(const EMM__INFORMATION_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EMM__INFORMATION EMM__INFORMATION_template::valueof() const +{ +EMM__INFORMATION ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& EMM__INFORMATION_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& EMM__INFORMATION_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EMM__INFORMATION_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EMM__INFORMATION_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EMM__INFORMATION_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EMM__INFORMATION_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::NetworkName_template& EMM__INFORMATION_template::fullNetworkName() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::NetworkName_template& EMM__INFORMATION_template::fullNetworkName() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::NetworkName_template& EMM__INFORMATION_template::shortNetworkName() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::NetworkName_template& EMM__INFORMATION_template::shortNetworkName() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::TimeZone_template& EMM__INFORMATION_template::localTimeZone() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::TimeZone_template& EMM__INFORMATION_template::localTimeZone() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::TimeZoneAndTime_template& EMM__INFORMATION_template::localTimeZoneAndTime() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::TimeZoneAndTime_template& EMM__INFORMATION_template::localTimeZoneAndTime() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::DaylightSavingTime_template& EMM__INFORMATION_template::daylightSavingTime() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::DaylightSavingTime_template& EMM__INFORMATION_template::daylightSavingTime() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* EMM__INFORMATION_template::get_descriptor() const { return &EMM__INFORMATION_descr_; } +const char* EMM__INFORMATION_template::fld_name(int p_index) const { return EMM__INFORMATION::fld_names[p_index]; } +void EMM__STATUS::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_emmCause; } + +EMM__STATUS::EMM__STATUS() : Record_Type() { init_vec(); } + +EMM__STATUS::EMM__STATUS(const EMM__STATUS& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_emmCause.is_bound() ) + field_emmCause = other_value.field_emmCause; +init_vec(); +} + +EMM__STATUS::EMM__STATUS(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_emmCause(par_emmCause) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EMM__STATUS::get_descriptor() const { return &EMM__STATUS_descr_; } +const TTCN_Typedescriptor_t* EMM__STATUS::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EMM__Cause_descr_ }; +const TTCN_Typedescriptor_t* EMM__STATUS::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EMM__STATUS::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "emmCause" }; +const char* EMM__STATUS::fld_name(int p_index) const { return fld_names[p_index]; } + +void EMM__STATUS_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new EMM__Cause_template(ANY_VALUE) : new EMM__Cause_template; +} +} + +EMM__STATUS_template::EMM__STATUS_template(EMM__STATUS_template* p_precondition, EMM__STATUS_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EMM__STATUS_template::EMM__STATUS_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EMM__STATUS_template::~EMM__STATUS_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EMM__STATUS_template::match_dynamic(const Base_Type* match_value) const +{ +const EMM__STATUS* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EMM__STATUS_template& EMM__STATUS_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EMM__STATUS_template& EMM__STATUS_template::operator=(const EMM__STATUS& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EMM__STATUS_template& EMM__STATUS_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EMM__STATUS_template& EMM__STATUS_template::operator=(const EMM__STATUS_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EMM__STATUS EMM__STATUS_template::valueof() const +{ +EMM__STATUS ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& EMM__STATUS_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& EMM__STATUS_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EMM__STATUS_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EMM__STATUS_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EMM__STATUS_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EMM__STATUS_template::messageType() const { return *(static_cast(get_at(2))); } +EMM__Cause_template& EMM__STATUS_template::emmCause() { return *(static_cast(get_at(3))); } +const EMM__Cause_template& EMM__STATUS_template::emmCause() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EMM__STATUS_template::get_descriptor() const { return &EMM__STATUS_descr_; } +const char* EMM__STATUS_template::fld_name(int p_index) const { return EMM__STATUS::fld_names[p_index]; } +void EPS__ServiceType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_serviceValue; } + +EPS__ServiceType::EPS__ServiceType() : Record_Type() { init_vec(); } + +EPS__ServiceType::EPS__ServiceType(const EPS__ServiceType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_serviceValue.is_bound() ) + field_serviceValue = other_value.field_serviceValue; +init_vec(); +} + +EPS__ServiceType::EPS__ServiceType(const OPTIONAL& par_iei, + const BITSTRING& par_serviceValue) : field_iei(par_iei), + field_serviceValue(par_serviceValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__ServiceType::get_descriptor() const { return &EPS__ServiceType_descr_; } +const TTCN_Typedescriptor_t* EPS__ServiceType::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &EPS__ServiceTypeValue_descr_ }; +const TTCN_Typedescriptor_t* EPS__ServiceType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__ServiceType::fld_names[] = { "iei", "serviceValue" }; +const char* EPS__ServiceType::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EPS__ServiceType::optional_indexes[] = { 0, -1 }; +const int* EPS__ServiceType::get_optional_indexes() const { return optional_indexes; } + +const int EPS__ServiceType::optional_indexes_asn[] = { 0, -1 }; +const int* EPS__ServiceType::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EPS__ServiceType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EPS__ServiceType_template::EPS__ServiceType_template(EPS__ServiceType_template* p_precondition, EPS__ServiceType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__ServiceType_template::EPS__ServiceType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__ServiceType_template::~EPS__ServiceType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__ServiceType_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__ServiceType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__ServiceType_template& EPS__ServiceType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__ServiceType_template& EPS__ServiceType_template::operator=(const EPS__ServiceType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__ServiceType_template& EPS__ServiceType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__ServiceType_template& EPS__ServiceType_template::operator=(const EPS__ServiceType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__ServiceType EPS__ServiceType_template::valueof() const +{ +EPS__ServiceType ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& EPS__ServiceType_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& EPS__ServiceType_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EPS__ServiceType_template::serviceValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EPS__ServiceType_template::serviceValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* EPS__ServiceType_template::get_descriptor() const { return &EPS__ServiceType_descr_; } +const char* EPS__ServiceType_template::fld_name(int p_index) const { return EPS__ServiceType::fld_names[p_index]; } +void EXT__SERVICE__REQUEST::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_nasKeySetId; fld_vec[4]=&field_serviceType; fld_vec[5]=&field_mTMSI; fld_vec[6]=&field_csfbResponse; fld_vec[7]=&field_epsBearerContextStatus; fld_vec[8]=&field_deviceProperties; fld_vec[9]=&field_ueRequestType; fld_vec[10]=&field_pagingRestriction; } + +EXT__SERVICE__REQUEST::EXT__SERVICE__REQUEST() : Record_Type() { init_vec(); } + +EXT__SERVICE__REQUEST::EXT__SERVICE__REQUEST(const EXT__SERVICE__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_nasKeySetId.is_bound() ) + field_nasKeySetId = other_value.field_nasKeySetId; +if (other_value.field_serviceType.is_bound() ) + field_serviceType = other_value.field_serviceType; +if (other_value.field_mTMSI.is_bound() ) + field_mTMSI = other_value.field_mTMSI; +if (other_value.field_csfbResponse.is_bound() ) + field_csfbResponse = other_value.field_csfbResponse; +if (other_value.field_epsBearerContextStatus.is_bound() ) + field_epsBearerContextStatus = other_value.field_epsBearerContextStatus; +if (other_value.field_deviceProperties.is_bound() ) + field_deviceProperties = other_value.field_deviceProperties; +if (other_value.field_ueRequestType.is_bound() ) + field_ueRequestType = other_value.field_ueRequestType; +if (other_value.field_pagingRestriction.is_bound() ) + field_pagingRestriction = other_value.field_pagingRestriction; +init_vec(); +} + +EXT__SERVICE__REQUEST::EXT__SERVICE__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_nasKeySetId, + const EPS__ServiceType& par_serviceType, + const NAS__CommonTypeDefs::MobileIdentity& par_mTMSI, + const OPTIONAL& par_csfbResponse, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestriction) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_nasKeySetId(par_nasKeySetId), + field_serviceType(par_serviceType), + field_mTMSI(par_mTMSI), + field_csfbResponse(par_csfbResponse), + field_epsBearerContextStatus(par_epsBearerContextStatus), + field_deviceProperties(par_deviceProperties), + field_ueRequestType(par_ueRequestType), + field_pagingRestriction(par_pagingRestriction) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EXT__SERVICE__REQUEST::get_descriptor() const { return &EXT__SERVICE__REQUEST_descr_; } +const TTCN_Typedescriptor_t* EXT__SERVICE__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &EPS__ServiceType_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &CSFBResponse_descr_, &NAS__CommonTypeDefs::EPS__BearerContextStatus_descr_, &NAS__CommonTypeDefs::DeviceProperties_descr_, &NAS__CommonTypeDefs::UE__RequestType_descr_, &PagingRestriction_descr_ }; +const TTCN_Typedescriptor_t* EXT__SERVICE__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EXT__SERVICE__REQUEST::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "nasKeySetId", "serviceType", "mTMSI", "csfbResponse", "epsBearerContextStatus", "deviceProperties", "ueRequestType", "pagingRestriction" }; +const char* EXT__SERVICE__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EXT__SERVICE__REQUEST::optional_indexes[] = { 6, 7, 8, 9, 10, -1 }; +const int* EXT__SERVICE__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int EXT__SERVICE__REQUEST::optional_indexes_asn[] = { 6, 7, 8, 9, 10, -1 }; +const int* EXT__SERVICE__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EXT__SERVICE__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 11; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[4] = was_any ? new EPS__ServiceType_template(ANY_VALUE) : new EPS__ServiceType_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_VALUE) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[6] = was_any ? new CSFBResponse_template(ANY_OR_OMIT) : new CSFBResponse_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::EPS__BearerContextStatus_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__BearerContextStatus_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::DeviceProperties_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DeviceProperties_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::UE__RequestType_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__RequestType_template; +single_value.value_elements[10] = was_any ? new PagingRestriction_template(ANY_OR_OMIT) : new PagingRestriction_template; +} +} + +EXT__SERVICE__REQUEST_template::EXT__SERVICE__REQUEST_template(EXT__SERVICE__REQUEST_template* p_precondition, EXT__SERVICE__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EXT__SERVICE__REQUEST_template::EXT__SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EXT__SERVICE__REQUEST_template::~EXT__SERVICE__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EXT__SERVICE__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const EXT__SERVICE__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EXT__SERVICE__REQUEST_template& EXT__SERVICE__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EXT__SERVICE__REQUEST_template& EXT__SERVICE__REQUEST_template::operator=(const EXT__SERVICE__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EXT__SERVICE__REQUEST_template& EXT__SERVICE__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EXT__SERVICE__REQUEST_template& EXT__SERVICE__REQUEST_template::operator=(const EXT__SERVICE__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EXT__SERVICE__REQUEST EXT__SERVICE__REQUEST_template::valueof() const +{ +EXT__SERVICE__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& EXT__SERVICE__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& EXT__SERVICE__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EXT__SERVICE__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EXT__SERVICE__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EXT__SERVICE__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EXT__SERVICE__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& EXT__SERVICE__REQUEST_template::nasKeySetId() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& EXT__SERVICE__REQUEST_template::nasKeySetId() const { return *(static_cast(get_at(3))); } +EPS__ServiceType_template& EXT__SERVICE__REQUEST_template::serviceType() { return *(static_cast(get_at(4))); } +const EPS__ServiceType_template& EXT__SERVICE__REQUEST_template::serviceType() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::MobileIdentity_template& EXT__SERVICE__REQUEST_template::mTMSI() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::MobileIdentity_template& EXT__SERVICE__REQUEST_template::mTMSI() const { return *(static_cast(get_at(5))); } +CSFBResponse_template& EXT__SERVICE__REQUEST_template::csfbResponse() { return *(static_cast(get_at(6))); } +const CSFBResponse_template& EXT__SERVICE__REQUEST_template::csfbResponse() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& EXT__SERVICE__REQUEST_template::epsBearerContextStatus() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& EXT__SERVICE__REQUEST_template::epsBearerContextStatus() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::DeviceProperties_template& EXT__SERVICE__REQUEST_template::deviceProperties() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::DeviceProperties_template& EXT__SERVICE__REQUEST_template::deviceProperties() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::UE__RequestType_template& EXT__SERVICE__REQUEST_template::ueRequestType() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::UE__RequestType_template& EXT__SERVICE__REQUEST_template::ueRequestType() const { return *(static_cast(get_at(9))); } +PagingRestriction_template& EXT__SERVICE__REQUEST_template::pagingRestriction() { return *(static_cast(get_at(10))); } +const PagingRestriction_template& EXT__SERVICE__REQUEST_template::pagingRestriction() const { return *(static_cast(get_at(10))); } +const TTCN_Typedescriptor_t* EXT__SERVICE__REQUEST_template::get_descriptor() const { return &EXT__SERVICE__REQUEST_descr_; } +const char* EXT__SERVICE__REQUEST_template::fld_name(int p_index) const { return EXT__SERVICE__REQUEST::fld_names[p_index]; } +void CSFBResponse::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_csfbValue; } + +CSFBResponse::CSFBResponse() : Record_Type() { init_vec(); } + +CSFBResponse::CSFBResponse(const CSFBResponse& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_csfbValue.is_bound() ) + field_csfbValue = other_value.field_csfbValue; +init_vec(); +} + +CSFBResponse::CSFBResponse(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_csfbValue) : field_iei(par_iei), + field_spare(par_spare), + field_csfbValue(par_csfbValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CSFBResponse::get_descriptor() const { return &CSFBResponse_descr_; } +const TTCN_Typedescriptor_t* CSFBResponse::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* CSFBResponse::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CSFBResponse::fld_names[] = { "iei", "spare", "csfbValue" }; +const char* CSFBResponse::fld_name(int p_index) const { return fld_names[p_index]; } + +void CSFBResponse_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +CSFBResponse_template::CSFBResponse_template(CSFBResponse_template* p_precondition, CSFBResponse_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CSFBResponse_template::CSFBResponse_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CSFBResponse_template::~CSFBResponse_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CSFBResponse_template::match_dynamic(const Base_Type* match_value) const +{ +const CSFBResponse* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CSFBResponse_template& CSFBResponse_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CSFBResponse_template& CSFBResponse_template::operator=(const CSFBResponse& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CSFBResponse_template& CSFBResponse_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CSFBResponse_template& CSFBResponse_template::operator=(const CSFBResponse_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CSFBResponse CSFBResponse_template::valueof() const +{ +CSFBResponse ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& CSFBResponse_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& CSFBResponse_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& CSFBResponse_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& CSFBResponse_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CSFBResponse_template::csfbValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CSFBResponse_template::csfbValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* CSFBResponse_template::get_descriptor() const { return &CSFBResponse_descr_; } +const char* CSFBResponse_template::fld_name(int p_index) const { return CSFBResponse::fld_names[p_index]; } +void PagingRestriction::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_prType; fld_vec[4]=&field_ebi7__0; fld_vec[5]=&field_ebi15__8; } + +PagingRestriction::PagingRestriction() : Record_Type() { init_vec(); } + +PagingRestriction::PagingRestriction(const PagingRestriction& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_prType.is_bound() ) + field_prType = other_value.field_prType; +if (other_value.field_ebi7__0.is_bound() ) + field_ebi7__0 = other_value.field_ebi7__0; +if (other_value.field_ebi15__8.is_bound() ) + field_ebi15__8 = other_value.field_ebi15__8; +init_vec(); +} + +PagingRestriction::PagingRestriction(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_prType, + const OPTIONAL& par_ebi7__0, + const OPTIONAL& par_ebi15__8) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_prType(par_prType), + field_ebi7__0(par_ebi7__0), + field_ebi15__8(par_ebi15__8) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PagingRestriction::get_descriptor() const { return &PagingRestriction_descr_; } +const TTCN_Typedescriptor_t* PagingRestriction::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* PagingRestriction::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PagingRestriction::fld_names[] = { "iei", "iel", "spare", "prType", "ebi7_0", "ebi15_8" }; +const char* PagingRestriction::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PagingRestriction::optional_indexes[] = { 0, 1, 4, 5, -1 }; +const int* PagingRestriction::get_optional_indexes() const { return optional_indexes; } + +const int PagingRestriction::optional_indexes_asn[] = { 0, 1, 4, 5, -1 }; +const int* PagingRestriction::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PagingRestriction_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +PagingRestriction_template::PagingRestriction_template(PagingRestriction_template* p_precondition, PagingRestriction_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PagingRestriction_template::PagingRestriction_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PagingRestriction_template::~PagingRestriction_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PagingRestriction_template::match_dynamic(const Base_Type* match_value) const +{ +const PagingRestriction* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PagingRestriction_template& PagingRestriction_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PagingRestriction_template& PagingRestriction_template::operator=(const PagingRestriction& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PagingRestriction_template& PagingRestriction_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PagingRestriction_template& PagingRestriction_template::operator=(const PagingRestriction_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PagingRestriction PagingRestriction_template::valueof() const +{ +PagingRestriction ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PagingRestriction_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PagingRestriction_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PagingRestriction_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PagingRestriction_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PagingRestriction_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PagingRestriction_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PagingRestriction_template::prType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PagingRestriction_template::prType() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& PagingRestriction_template::ebi7__0() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& PagingRestriction_template::ebi7__0() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& PagingRestriction_template::ebi15__8() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& PagingRestriction_template::ebi15__8() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* PagingRestriction_template::get_descriptor() const { return &PagingRestriction_descr_; } +const char* PagingRestriction_template::fld_name(int p_index) const { return PagingRestriction::fld_names[p_index]; } +void GUTI__REALLOCATION__COMMAND::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_guti; fld_vec[4]=&field_taiList; fld_vec[5]=&field_dcnId; fld_vec[6]=&field_ueRadioCapId; fld_vec[7]=&field_ueRadioCapIdDeleteInd; } + +GUTI__REALLOCATION__COMMAND::GUTI__REALLOCATION__COMMAND() : Record_Type() { init_vec(); } + +GUTI__REALLOCATION__COMMAND::GUTI__REALLOCATION__COMMAND(const GUTI__REALLOCATION__COMMAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_guti.is_bound() ) + field_guti = other_value.field_guti; +if (other_value.field_taiList.is_bound() ) + field_taiList = other_value.field_taiList; +if (other_value.field_dcnId.is_bound() ) + field_dcnId = other_value.field_dcnId; +if (other_value.field_ueRadioCapId.is_bound() ) + field_ueRadioCapId = other_value.field_ueRadioCapId; +if (other_value.field_ueRadioCapIdDeleteInd.is_bound() ) + field_ueRadioCapIdDeleteInd = other_value.field_ueRadioCapIdDeleteInd; +init_vec(); +} + +GUTI__REALLOCATION__COMMAND::GUTI__REALLOCATION__COMMAND(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::MobileIdentity& par_guti, + const OPTIONAL& par_taiList, + const OPTIONAL& par_dcnId, + const OPTIONAL& par_ueRadioCapId, + const OPTIONAL& par_ueRadioCapIdDeleteInd) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_guti(par_guti), + field_taiList(par_taiList), + field_dcnId(par_dcnId), + field_ueRadioCapId(par_ueRadioCapId), + field_ueRadioCapIdDeleteInd(par_ueRadioCapIdDeleteInd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* GUTI__REALLOCATION__COMMAND::get_descriptor() const { return &GUTI__REALLOCATION__COMMAND_descr_; } +const TTCN_Typedescriptor_t* GUTI__REALLOCATION__COMMAND::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &TrackingAreaIdList_descr_, &NAS__CommonTypeDefs::DCN__ID_descr_, &NAS__CommonTypeDefs::UERadioCapId_descr_, &NAS__CommonTypeDefs::UERadioCapIdDeletion_descr_ }; +const TTCN_Typedescriptor_t* GUTI__REALLOCATION__COMMAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* GUTI__REALLOCATION__COMMAND::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "guti", "taiList", "dcnId", "ueRadioCapId", "ueRadioCapIdDeleteInd" }; +const char* GUTI__REALLOCATION__COMMAND::fld_name(int p_index) const { return fld_names[p_index]; } + +const int GUTI__REALLOCATION__COMMAND::optional_indexes[] = { 4, 5, 6, 7, -1 }; +const int* GUTI__REALLOCATION__COMMAND::get_optional_indexes() const { return optional_indexes; } + +const int GUTI__REALLOCATION__COMMAND::optional_indexes_asn[] = { 4, 5, 6, 7, -1 }; +const int* GUTI__REALLOCATION__COMMAND::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void GUTI__REALLOCATION__COMMAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_VALUE) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[4] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::DCN__ID_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DCN__ID_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::UERadioCapId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapId_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::UERadioCapIdDeletion_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapIdDeletion_template; +} +} + +GUTI__REALLOCATION__COMMAND_template::GUTI__REALLOCATION__COMMAND_template(GUTI__REALLOCATION__COMMAND_template* p_precondition, GUTI__REALLOCATION__COMMAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +GUTI__REALLOCATION__COMMAND_template::GUTI__REALLOCATION__COMMAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +GUTI__REALLOCATION__COMMAND_template::~GUTI__REALLOCATION__COMMAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean GUTI__REALLOCATION__COMMAND_template::match_dynamic(const Base_Type* match_value) const +{ +const GUTI__REALLOCATION__COMMAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +GUTI__REALLOCATION__COMMAND_template& GUTI__REALLOCATION__COMMAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GUTI__REALLOCATION__COMMAND_template& GUTI__REALLOCATION__COMMAND_template::operator=(const GUTI__REALLOCATION__COMMAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +GUTI__REALLOCATION__COMMAND_template& GUTI__REALLOCATION__COMMAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +GUTI__REALLOCATION__COMMAND_template& GUTI__REALLOCATION__COMMAND_template::operator=(const GUTI__REALLOCATION__COMMAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +GUTI__REALLOCATION__COMMAND GUTI__REALLOCATION__COMMAND_template::valueof() const +{ +GUTI__REALLOCATION__COMMAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& GUTI__REALLOCATION__COMMAND_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& GUTI__REALLOCATION__COMMAND_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& GUTI__REALLOCATION__COMMAND_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& GUTI__REALLOCATION__COMMAND_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& GUTI__REALLOCATION__COMMAND_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& GUTI__REALLOCATION__COMMAND_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::MobileIdentity_template& GUTI__REALLOCATION__COMMAND_template::guti() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::MobileIdentity_template& GUTI__REALLOCATION__COMMAND_template::guti() const { return *(static_cast(get_at(3))); } +TrackingAreaIdList_template& GUTI__REALLOCATION__COMMAND_template::taiList() { return *(static_cast(get_at(4))); } +const TrackingAreaIdList_template& GUTI__REALLOCATION__COMMAND_template::taiList() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::DCN__ID_template& GUTI__REALLOCATION__COMMAND_template::dcnId() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::DCN__ID_template& GUTI__REALLOCATION__COMMAND_template::dcnId() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::UERadioCapId_template& GUTI__REALLOCATION__COMMAND_template::ueRadioCapId() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::UERadioCapId_template& GUTI__REALLOCATION__COMMAND_template::ueRadioCapId() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& GUTI__REALLOCATION__COMMAND_template::ueRadioCapIdDeleteInd() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& GUTI__REALLOCATION__COMMAND_template::ueRadioCapIdDeleteInd() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* GUTI__REALLOCATION__COMMAND_template::get_descriptor() const { return &GUTI__REALLOCATION__COMMAND_descr_; } +const char* GUTI__REALLOCATION__COMMAND_template::fld_name(int p_index) const { return GUTI__REALLOCATION__COMMAND::fld_names[p_index]; } +void GUTI__REALLOCATION__COMPLETE::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +GUTI__REALLOCATION__COMPLETE::GUTI__REALLOCATION__COMPLETE() : Record_Type() { init_vec(); } + +GUTI__REALLOCATION__COMPLETE::GUTI__REALLOCATION__COMPLETE(const GUTI__REALLOCATION__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +GUTI__REALLOCATION__COMPLETE::GUTI__REALLOCATION__COMPLETE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* GUTI__REALLOCATION__COMPLETE::get_descriptor() const { return &GUTI__REALLOCATION__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* GUTI__REALLOCATION__COMPLETE::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* GUTI__REALLOCATION__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* GUTI__REALLOCATION__COMPLETE::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType" }; +const char* GUTI__REALLOCATION__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +void GUTI__REALLOCATION__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +GUTI__REALLOCATION__COMPLETE_template::GUTI__REALLOCATION__COMPLETE_template(GUTI__REALLOCATION__COMPLETE_template* p_precondition, GUTI__REALLOCATION__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +GUTI__REALLOCATION__COMPLETE_template::GUTI__REALLOCATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +GUTI__REALLOCATION__COMPLETE_template::~GUTI__REALLOCATION__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean GUTI__REALLOCATION__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const GUTI__REALLOCATION__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +GUTI__REALLOCATION__COMPLETE_template& GUTI__REALLOCATION__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GUTI__REALLOCATION__COMPLETE_template& GUTI__REALLOCATION__COMPLETE_template::operator=(const GUTI__REALLOCATION__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +GUTI__REALLOCATION__COMPLETE_template& GUTI__REALLOCATION__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +GUTI__REALLOCATION__COMPLETE_template& GUTI__REALLOCATION__COMPLETE_template::operator=(const GUTI__REALLOCATION__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +GUTI__REALLOCATION__COMPLETE GUTI__REALLOCATION__COMPLETE_template::valueof() const +{ +GUTI__REALLOCATION__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& GUTI__REALLOCATION__COMPLETE_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& GUTI__REALLOCATION__COMPLETE_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& GUTI__REALLOCATION__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& GUTI__REALLOCATION__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& GUTI__REALLOCATION__COMPLETE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& GUTI__REALLOCATION__COMPLETE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* GUTI__REALLOCATION__COMPLETE_template::get_descriptor() const { return &GUTI__REALLOCATION__COMPLETE_descr_; } +const char* GUTI__REALLOCATION__COMPLETE_template::fld_name(int p_index) const { return GUTI__REALLOCATION__COMPLETE::fld_names[p_index]; } +void IDENTITY__REQUEST::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_spareHalfOctet; fld_vec[4]=&field_identityType2; } + +IDENTITY__REQUEST::IDENTITY__REQUEST() : Record_Type() { init_vec(); } + +IDENTITY__REQUEST::IDENTITY__REQUEST(const IDENTITY__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_identityType2.is_bound() ) + field_identityType2 = other_value.field_identityType2; +init_vec(); +} + +IDENTITY__REQUEST::IDENTITY__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const NAS__CommonTypeDefs::IdentityType& par_identityType2) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_spareHalfOctet(par_spareHalfOctet), + field_identityType2(par_identityType2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IDENTITY__REQUEST::get_descriptor() const { return &IDENTITY__REQUEST_descr_; } +const TTCN_Typedescriptor_t* IDENTITY__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::IdentityType_descr_ }; +const TTCN_Typedescriptor_t* IDENTITY__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IDENTITY__REQUEST::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "spareHalfOctet", "identityType2" }; +const char* IDENTITY__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void IDENTITY__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::IdentityType_template(ANY_VALUE) : new NAS__CommonTypeDefs::IdentityType_template; +} +} + +IDENTITY__REQUEST_template::IDENTITY__REQUEST_template(IDENTITY__REQUEST_template* p_precondition, IDENTITY__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IDENTITY__REQUEST_template::IDENTITY__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IDENTITY__REQUEST_template::~IDENTITY__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IDENTITY__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const IDENTITY__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IDENTITY__REQUEST_template& IDENTITY__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IDENTITY__REQUEST_template& IDENTITY__REQUEST_template::operator=(const IDENTITY__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IDENTITY__REQUEST_template& IDENTITY__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IDENTITY__REQUEST_template& IDENTITY__REQUEST_template::operator=(const IDENTITY__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IDENTITY__REQUEST IDENTITY__REQUEST_template::valueof() const +{ +IDENTITY__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& IDENTITY__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& IDENTITY__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& IDENTITY__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& IDENTITY__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& IDENTITY__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& IDENTITY__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +HEXSTRING_template& IDENTITY__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(3))); } +const HEXSTRING_template& IDENTITY__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::IdentityType_template& IDENTITY__REQUEST_template::identityType2() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::IdentityType_template& IDENTITY__REQUEST_template::identityType2() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* IDENTITY__REQUEST_template::get_descriptor() const { return &IDENTITY__REQUEST_descr_; } +const char* IDENTITY__REQUEST_template::fld_name(int p_index) const { return IDENTITY__REQUEST::fld_names[p_index]; } +void IDENTITY__RESPONSE::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_mobileIdentity; } + +IDENTITY__RESPONSE::IDENTITY__RESPONSE() : Record_Type() { init_vec(); } + +IDENTITY__RESPONSE::IDENTITY__RESPONSE(const IDENTITY__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_mobileIdentity.is_bound() ) + field_mobileIdentity = other_value.field_mobileIdentity; +init_vec(); +} + +IDENTITY__RESPONSE::IDENTITY__RESPONSE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::MobileIdentity& par_mobileIdentity) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_mobileIdentity(par_mobileIdentity) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IDENTITY__RESPONSE::get_descriptor() const { return &IDENTITY__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* IDENTITY__RESPONSE::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_ }; +const TTCN_Typedescriptor_t* IDENTITY__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IDENTITY__RESPONSE::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "mobileIdentity" }; +const char* IDENTITY__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +void IDENTITY__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_VALUE) : new NAS__CommonTypeDefs::MobileIdentity_template; +} +} + +IDENTITY__RESPONSE_template::IDENTITY__RESPONSE_template(IDENTITY__RESPONSE_template* p_precondition, IDENTITY__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IDENTITY__RESPONSE_template::IDENTITY__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IDENTITY__RESPONSE_template::~IDENTITY__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IDENTITY__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const IDENTITY__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IDENTITY__RESPONSE_template& IDENTITY__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IDENTITY__RESPONSE_template& IDENTITY__RESPONSE_template::operator=(const IDENTITY__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IDENTITY__RESPONSE_template& IDENTITY__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IDENTITY__RESPONSE_template& IDENTITY__RESPONSE_template::operator=(const IDENTITY__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IDENTITY__RESPONSE IDENTITY__RESPONSE_template::valueof() const +{ +IDENTITY__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& IDENTITY__RESPONSE_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& IDENTITY__RESPONSE_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& IDENTITY__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& IDENTITY__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& IDENTITY__RESPONSE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& IDENTITY__RESPONSE_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::MobileIdentity_template& IDENTITY__RESPONSE_template::mobileIdentity() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::MobileIdentity_template& IDENTITY__RESPONSE_template::mobileIdentity() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* IDENTITY__RESPONSE_template::get_descriptor() const { return &IDENTITY__RESPONSE_descr_; } +const char* IDENTITY__RESPONSE_template::fld_name(int p_index) const { return IDENTITY__RESPONSE::fld_names[p_index]; } +void SECURITY__MODE__COMMAND::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_nasSecurityAlgorithms; fld_vec[4]=&field_spareHalfOctet; fld_vec[5]=&field_asmeNasKeySetId; fld_vec[6]=&field_replayedSecurityCapability; fld_vec[7]=&field_imeisvRequest; fld_vec[8]=&field_replayedNonceUe; fld_vec[9]=&field_nonceMme; fld_vec[10]=&field_hashMME; fld_vec[11]=&field_replayedUEAddSecurityCap; fld_vec[12]=&field_ueRadioCapIdRequest; } + +SECURITY__MODE__COMMAND::SECURITY__MODE__COMMAND() : Record_Type() { init_vec(); } + +SECURITY__MODE__COMMAND::SECURITY__MODE__COMMAND(const SECURITY__MODE__COMMAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_nasSecurityAlgorithms.is_bound() ) + field_nasSecurityAlgorithms = other_value.field_nasSecurityAlgorithms; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_asmeNasKeySetId.is_bound() ) + field_asmeNasKeySetId = other_value.field_asmeNasKeySetId; +if (other_value.field_replayedSecurityCapability.is_bound() ) + field_replayedSecurityCapability = other_value.field_replayedSecurityCapability; +if (other_value.field_imeisvRequest.is_bound() ) + field_imeisvRequest = other_value.field_imeisvRequest; +if (other_value.field_replayedNonceUe.is_bound() ) + field_replayedNonceUe = other_value.field_replayedNonceUe; +if (other_value.field_nonceMme.is_bound() ) + field_nonceMme = other_value.field_nonceMme; +if (other_value.field_hashMME.is_bound() ) + field_hashMME = other_value.field_hashMME; +if (other_value.field_replayedUEAddSecurityCap.is_bound() ) + field_replayedUEAddSecurityCap = other_value.field_replayedUEAddSecurityCap; +if (other_value.field_ueRadioCapIdRequest.is_bound() ) + field_ueRadioCapIdRequest = other_value.field_ueRadioCapIdRequest; +init_vec(); +} + +SECURITY__MODE__COMMAND::SECURITY__MODE__COMMAND(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__SecurityAlgorithms& par_nasSecurityAlgorithms, + const HEXSTRING& par_spareHalfOctet, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_asmeNasKeySetId, + const NAS__CommonTypeDefs::UE__SecurityCapability& par_replayedSecurityCapability, + const OPTIONAL& par_imeisvRequest, + const OPTIONAL& par_replayedNonceUe, + const OPTIONAL& par_nonceMme, + const OPTIONAL& par_hashMME, + const OPTIONAL& par_replayedUEAddSecurityCap, + const OPTIONAL& par_ueRadioCapIdRequest) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_nasSecurityAlgorithms(par_nasSecurityAlgorithms), + field_spareHalfOctet(par_spareHalfOctet), + field_asmeNasKeySetId(par_asmeNasKeySetId), + field_replayedSecurityCapability(par_replayedSecurityCapability), + field_imeisvRequest(par_imeisvRequest), + field_replayedNonceUe(par_replayedNonceUe), + field_nonceMme(par_nonceMme), + field_hashMME(par_hashMME), + field_replayedUEAddSecurityCap(par_replayedUEAddSecurityCap), + field_ueRadioCapIdRequest(par_ueRadioCapIdRequest) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SECURITY__MODE__COMMAND::get_descriptor() const { return &SECURITY__MODE__COMMAND_descr_; } +const TTCN_Typedescriptor_t* SECURITY__MODE__COMMAND::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NAS__SecurityAlgorithms_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &NAS__CommonTypeDefs::UE__SecurityCapability_descr_, &NAS__CommonTypeDefs::IMEISV__Request_descr_, &Nonce_descr_, &Nonce_descr_, &NAS__CommonTypeDefs::HashMME_descr_, &UE__AdditionalSecurityCapability_descr_, &UERadioCapIdRequest_descr_ }; +const TTCN_Typedescriptor_t* SECURITY__MODE__COMMAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SECURITY__MODE__COMMAND::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "nasSecurityAlgorithms", "spareHalfOctet", "asmeNasKeySetId", "replayedSecurityCapability", "imeisvRequest", "replayedNonceUe", "nonceMme", "hashMME", "replayedUEAddSecurityCap", "ueRadioCapIdRequest" }; +const char* SECURITY__MODE__COMMAND::fld_name(int p_index) const { return fld_names[p_index]; } + +const int SECURITY__MODE__COMMAND::optional_indexes[] = { 7, 8, 9, 10, 11, 12, -1 }; +const int* SECURITY__MODE__COMMAND::get_optional_indexes() const { return optional_indexes; } + +const int SECURITY__MODE__COMMAND::optional_indexes_asn[] = { 7, 8, 9, 10, 11, 12, -1 }; +const int* SECURITY__MODE__COMMAND::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void SECURITY__MODE__COMMAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 13; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::UE__SecurityCapability_template(ANY_VALUE) : new NAS__CommonTypeDefs::UE__SecurityCapability_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::IMEISV__Request_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::IMEISV__Request_template; +single_value.value_elements[8] = was_any ? new Nonce_template(ANY_OR_OMIT) : new Nonce_template; +single_value.value_elements[9] = was_any ? new Nonce_template(ANY_OR_OMIT) : new Nonce_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::HashMME_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::HashMME_template; +single_value.value_elements[11] = was_any ? new UE__AdditionalSecurityCapability_template(ANY_OR_OMIT) : new UE__AdditionalSecurityCapability_template; +single_value.value_elements[12] = was_any ? new UERadioCapIdRequest_template(ANY_OR_OMIT) : new UERadioCapIdRequest_template; +} +} + +SECURITY__MODE__COMMAND_template::SECURITY__MODE__COMMAND_template(SECURITY__MODE__COMMAND_template* p_precondition, SECURITY__MODE__COMMAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SECURITY__MODE__COMMAND_template::SECURITY__MODE__COMMAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SECURITY__MODE__COMMAND_template::~SECURITY__MODE__COMMAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SECURITY__MODE__COMMAND_template::match_dynamic(const Base_Type* match_value) const +{ +const SECURITY__MODE__COMMAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SECURITY__MODE__COMMAND_template& SECURITY__MODE__COMMAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SECURITY__MODE__COMMAND_template& SECURITY__MODE__COMMAND_template::operator=(const SECURITY__MODE__COMMAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SECURITY__MODE__COMMAND_template& SECURITY__MODE__COMMAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SECURITY__MODE__COMMAND_template& SECURITY__MODE__COMMAND_template::operator=(const SECURITY__MODE__COMMAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SECURITY__MODE__COMMAND SECURITY__MODE__COMMAND_template::valueof() const +{ +SECURITY__MODE__COMMAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SECURITY__MODE__COMMAND_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SECURITY__MODE__COMMAND_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SECURITY__MODE__COMMAND_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SECURITY__MODE__COMMAND_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SECURITY__MODE__COMMAND_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SECURITY__MODE__COMMAND_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& SECURITY__MODE__COMMAND_template::nasSecurityAlgorithms() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& SECURITY__MODE__COMMAND_template::nasSecurityAlgorithms() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& SECURITY__MODE__COMMAND_template::spareHalfOctet() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& SECURITY__MODE__COMMAND_template::spareHalfOctet() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& SECURITY__MODE__COMMAND_template::asmeNasKeySetId() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& SECURITY__MODE__COMMAND_template::asmeNasKeySetId() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::UE__SecurityCapability_template& SECURITY__MODE__COMMAND_template::replayedSecurityCapability() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::UE__SecurityCapability_template& SECURITY__MODE__COMMAND_template::replayedSecurityCapability() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::IMEISV__Request_template& SECURITY__MODE__COMMAND_template::imeisvRequest() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::IMEISV__Request_template& SECURITY__MODE__COMMAND_template::imeisvRequest() const { return *(static_cast(get_at(7))); } +Nonce_template& SECURITY__MODE__COMMAND_template::replayedNonceUe() { return *(static_cast(get_at(8))); } +const Nonce_template& SECURITY__MODE__COMMAND_template::replayedNonceUe() const { return *(static_cast(get_at(8))); } +Nonce_template& SECURITY__MODE__COMMAND_template::nonceMme() { return *(static_cast(get_at(9))); } +const Nonce_template& SECURITY__MODE__COMMAND_template::nonceMme() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::HashMME_template& SECURITY__MODE__COMMAND_template::hashMME() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::HashMME_template& SECURITY__MODE__COMMAND_template::hashMME() const { return *(static_cast(get_at(10))); } +UE__AdditionalSecurityCapability_template& SECURITY__MODE__COMMAND_template::replayedUEAddSecurityCap() { return *(static_cast(get_at(11))); } +const UE__AdditionalSecurityCapability_template& SECURITY__MODE__COMMAND_template::replayedUEAddSecurityCap() const { return *(static_cast(get_at(11))); } +UERadioCapIdRequest_template& SECURITY__MODE__COMMAND_template::ueRadioCapIdRequest() { return *(static_cast(get_at(12))); } +const UERadioCapIdRequest_template& SECURITY__MODE__COMMAND_template::ueRadioCapIdRequest() const { return *(static_cast(get_at(12))); } +const TTCN_Typedescriptor_t* SECURITY__MODE__COMMAND_template::get_descriptor() const { return &SECURITY__MODE__COMMAND_descr_; } +const char* SECURITY__MODE__COMMAND_template::fld_name(int p_index) const { return SECURITY__MODE__COMMAND::fld_names[p_index]; } +void Nonce::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_nonceValue; } + +Nonce::Nonce() : Record_Type() { init_vec(); } + +Nonce::Nonce(const Nonce& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_nonceValue.is_bound() ) + field_nonceValue = other_value.field_nonceValue; +init_vec(); +} + +Nonce::Nonce(const OPTIONAL& par_iei, + const OCTETSTRING& par_nonceValue) : field_iei(par_iei), + field_nonceValue(par_nonceValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Nonce::get_descriptor() const { return &Nonce_descr_; } +const TTCN_Typedescriptor_t* Nonce::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::O4__Type_descr_ }; +const TTCN_Typedescriptor_t* Nonce::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Nonce::fld_names[] = { "iei", "nonceValue" }; +const char* Nonce::fld_name(int p_index) const { return fld_names[p_index]; } + +const int Nonce::optional_indexes[] = { 0, -1 }; +const int* Nonce::get_optional_indexes() const { return optional_indexes; } + +const int Nonce::optional_indexes_asn[] = { 0, -1 }; +const int* Nonce::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void Nonce_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +Nonce_template::Nonce_template(Nonce_template* p_precondition, Nonce_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Nonce_template::Nonce_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Nonce_template::~Nonce_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Nonce_template::match_dynamic(const Base_Type* match_value) const +{ +const Nonce* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Nonce_template& Nonce_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Nonce_template& Nonce_template::operator=(const Nonce& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Nonce_template& Nonce_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Nonce_template& Nonce_template::operator=(const Nonce_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Nonce Nonce_template::valueof() const +{ +Nonce ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& Nonce_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& Nonce_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& Nonce_template::nonceValue() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& Nonce_template::nonceValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* Nonce_template::get_descriptor() const { return &Nonce_descr_; } +const char* Nonce_template::fld_name(int p_index) const { return Nonce::fld_names[p_index]; } +void UERadioCapIdRequest::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_radioCapIdReq; } + +UERadioCapIdRequest::UERadioCapIdRequest() : Record_Type() { init_vec(); } + +UERadioCapIdRequest::UERadioCapIdRequest(const UERadioCapIdRequest& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_radioCapIdReq.is_bound() ) + field_radioCapIdReq = other_value.field_radioCapIdReq; +init_vec(); +} + +UERadioCapIdRequest::UERadioCapIdRequest(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_radioCapIdReq) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_radioCapIdReq(par_radioCapIdReq) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UERadioCapIdRequest::get_descriptor() const { return &UERadioCapIdRequest_descr_; } +const TTCN_Typedescriptor_t* UERadioCapIdRequest::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* UERadioCapIdRequest::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UERadioCapIdRequest::fld_names[] = { "iei", "iel", "spare", "radioCapIdReq" }; +const char* UERadioCapIdRequest::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UERadioCapIdRequest::optional_indexes[] = { 0, 1, -1 }; +const int* UERadioCapIdRequest::get_optional_indexes() const { return optional_indexes; } + +const int UERadioCapIdRequest::optional_indexes_asn[] = { 0, 1, -1 }; +const int* UERadioCapIdRequest::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UERadioCapIdRequest_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UERadioCapIdRequest_template::UERadioCapIdRequest_template(UERadioCapIdRequest_template* p_precondition, UERadioCapIdRequest_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UERadioCapIdRequest_template::UERadioCapIdRequest_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UERadioCapIdRequest_template::~UERadioCapIdRequest_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UERadioCapIdRequest_template::match_dynamic(const Base_Type* match_value) const +{ +const UERadioCapIdRequest* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UERadioCapIdRequest_template& UERadioCapIdRequest_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UERadioCapIdRequest_template& UERadioCapIdRequest_template::operator=(const UERadioCapIdRequest& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UERadioCapIdRequest_template& UERadioCapIdRequest_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UERadioCapIdRequest_template& UERadioCapIdRequest_template::operator=(const UERadioCapIdRequest_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UERadioCapIdRequest UERadioCapIdRequest_template::valueof() const +{ +UERadioCapIdRequest ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UERadioCapIdRequest_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UERadioCapIdRequest_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UERadioCapIdRequest_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UERadioCapIdRequest_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UERadioCapIdRequest_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UERadioCapIdRequest_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UERadioCapIdRequest_template::radioCapIdReq() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UERadioCapIdRequest_template::radioCapIdReq() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UERadioCapIdRequest_template::get_descriptor() const { return &UERadioCapIdRequest_descr_; } +const char* UERadioCapIdRequest_template::fld_name(int p_index) const { return UERadioCapIdRequest::fld_names[p_index]; } +void SECURITY__MODE__COMPLETE::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_imeisv; fld_vec[4]=&field_replayedNASMsg; fld_vec[5]=&field_ueRadioCapId; } + +SECURITY__MODE__COMPLETE::SECURITY__MODE__COMPLETE() : Record_Type() { init_vec(); } + +SECURITY__MODE__COMPLETE::SECURITY__MODE__COMPLETE(const SECURITY__MODE__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_imeisv.is_bound() ) + field_imeisv = other_value.field_imeisv; +if (other_value.field_replayedNASMsg.is_bound() ) + field_replayedNASMsg = other_value.field_replayedNASMsg; +if (other_value.field_ueRadioCapId.is_bound() ) + field_ueRadioCapId = other_value.field_ueRadioCapId; +init_vec(); +} + +SECURITY__MODE__COMPLETE::SECURITY__MODE__COMPLETE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_imeisv, + const OPTIONAL& par_replayedNASMsg, + const OPTIONAL& par_ueRadioCapId) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_imeisv(par_imeisv), + field_replayedNASMsg(par_replayedNASMsg), + field_ueRadioCapId(par_ueRadioCapId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SECURITY__MODE__COMPLETE::get_descriptor() const { return &SECURITY__MODE__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* SECURITY__MODE__COMPLETE::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &NAS__CommonTypeDefs::ReplayedNASMessageContainer_descr_, &NAS__CommonTypeDefs::UERadioCapId_descr_ }; +const TTCN_Typedescriptor_t* SECURITY__MODE__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SECURITY__MODE__COMPLETE::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "imeisv", "replayedNASMsg", "ueRadioCapId" }; +const char* SECURITY__MODE__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int SECURITY__MODE__COMPLETE::optional_indexes[] = { 3, 4, 5, -1 }; +const int* SECURITY__MODE__COMPLETE::get_optional_indexes() const { return optional_indexes; } + +const int SECURITY__MODE__COMPLETE::optional_indexes_asn[] = { 3, 4, 5, -1 }; +const int* SECURITY__MODE__COMPLETE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void SECURITY__MODE__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::UERadioCapId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapId_template; +} +} + +SECURITY__MODE__COMPLETE_template::SECURITY__MODE__COMPLETE_template(SECURITY__MODE__COMPLETE_template* p_precondition, SECURITY__MODE__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SECURITY__MODE__COMPLETE_template::SECURITY__MODE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SECURITY__MODE__COMPLETE_template::~SECURITY__MODE__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SECURITY__MODE__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const SECURITY__MODE__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SECURITY__MODE__COMPLETE_template& SECURITY__MODE__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SECURITY__MODE__COMPLETE_template& SECURITY__MODE__COMPLETE_template::operator=(const SECURITY__MODE__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SECURITY__MODE__COMPLETE_template& SECURITY__MODE__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SECURITY__MODE__COMPLETE_template& SECURITY__MODE__COMPLETE_template::operator=(const SECURITY__MODE__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SECURITY__MODE__COMPLETE SECURITY__MODE__COMPLETE_template::valueof() const +{ +SECURITY__MODE__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SECURITY__MODE__COMPLETE_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SECURITY__MODE__COMPLETE_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SECURITY__MODE__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SECURITY__MODE__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SECURITY__MODE__COMPLETE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SECURITY__MODE__COMPLETE_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::MobileIdentity_template& SECURITY__MODE__COMPLETE_template::imeisv() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::MobileIdentity_template& SECURITY__MODE__COMPLETE_template::imeisv() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& SECURITY__MODE__COMPLETE_template::replayedNASMsg() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& SECURITY__MODE__COMPLETE_template::replayedNASMsg() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::UERadioCapId_template& SECURITY__MODE__COMPLETE_template::ueRadioCapId() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::UERadioCapId_template& SECURITY__MODE__COMPLETE_template::ueRadioCapId() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* SECURITY__MODE__COMPLETE_template::get_descriptor() const { return &SECURITY__MODE__COMPLETE_descr_; } +const char* SECURITY__MODE__COMPLETE_template::fld_name(int p_index) const { return SECURITY__MODE__COMPLETE::fld_names[p_index]; } +void SECURITY__MODE__REJECT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_emmCause; } + +SECURITY__MODE__REJECT::SECURITY__MODE__REJECT() : Record_Type() { init_vec(); } + +SECURITY__MODE__REJECT::SECURITY__MODE__REJECT(const SECURITY__MODE__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_emmCause.is_bound() ) + field_emmCause = other_value.field_emmCause; +init_vec(); +} + +SECURITY__MODE__REJECT::SECURITY__MODE__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_emmCause(par_emmCause) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SECURITY__MODE__REJECT::get_descriptor() const { return &SECURITY__MODE__REJECT_descr_; } +const TTCN_Typedescriptor_t* SECURITY__MODE__REJECT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EMM__Cause_descr_ }; +const TTCN_Typedescriptor_t* SECURITY__MODE__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SECURITY__MODE__REJECT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "emmCause" }; +const char* SECURITY__MODE__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +void SECURITY__MODE__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new EMM__Cause_template(ANY_VALUE) : new EMM__Cause_template; +} +} + +SECURITY__MODE__REJECT_template::SECURITY__MODE__REJECT_template(SECURITY__MODE__REJECT_template* p_precondition, SECURITY__MODE__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SECURITY__MODE__REJECT_template::SECURITY__MODE__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SECURITY__MODE__REJECT_template::~SECURITY__MODE__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SECURITY__MODE__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const SECURITY__MODE__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SECURITY__MODE__REJECT_template& SECURITY__MODE__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SECURITY__MODE__REJECT_template& SECURITY__MODE__REJECT_template::operator=(const SECURITY__MODE__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SECURITY__MODE__REJECT_template& SECURITY__MODE__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SECURITY__MODE__REJECT_template& SECURITY__MODE__REJECT_template::operator=(const SECURITY__MODE__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SECURITY__MODE__REJECT SECURITY__MODE__REJECT_template::valueof() const +{ +SECURITY__MODE__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SECURITY__MODE__REJECT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SECURITY__MODE__REJECT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SECURITY__MODE__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SECURITY__MODE__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SECURITY__MODE__REJECT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SECURITY__MODE__REJECT_template::messageType() const { return *(static_cast(get_at(2))); } +EMM__Cause_template& SECURITY__MODE__REJECT_template::emmCause() { return *(static_cast(get_at(3))); } +const EMM__Cause_template& SECURITY__MODE__REJECT_template::emmCause() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* SECURITY__MODE__REJECT_template::get_descriptor() const { return &SECURITY__MODE__REJECT_descr_; } +const char* SECURITY__MODE__REJECT_template::fld_name(int p_index) const { return SECURITY__MODE__REJECT::fld_names[p_index]; } +void SECURITY__PROTECTED__NAS__MESSAGE::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageAuthenticationCode; fld_vec[3]=&field_sequenceNumber; fld_vec[4]=&field_nasMessage; } + +SECURITY__PROTECTED__NAS__MESSAGE::SECURITY__PROTECTED__NAS__MESSAGE() : Record_Type() { init_vec(); } + +SECURITY__PROTECTED__NAS__MESSAGE::SECURITY__PROTECTED__NAS__MESSAGE(const SECURITY__PROTECTED__NAS__MESSAGE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageAuthenticationCode.is_bound() ) + field_messageAuthenticationCode = other_value.field_messageAuthenticationCode; +if (other_value.field_sequenceNumber.is_bound() ) + field_sequenceNumber = other_value.field_sequenceNumber; +if (other_value.field_nasMessage.is_bound() ) + field_nasMessage = other_value.field_nasMessage; +init_vec(); +} + +SECURITY__PROTECTED__NAS__MESSAGE::SECURITY__PROTECTED__NAS__MESSAGE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_messageAuthenticationCode, + const OCTETSTRING& par_sequenceNumber, + const OCTETSTRING& par_nasMessage) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageAuthenticationCode(par_messageAuthenticationCode), + field_sequenceNumber(par_sequenceNumber), + field_nasMessage(par_nasMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SECURITY__PROTECTED__NAS__MESSAGE::get_descriptor() const { return &SECURITY__PROTECTED__NAS__MESSAGE_descr_; } +const TTCN_Typedescriptor_t* SECURITY__PROTECTED__NAS__MESSAGE::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &CommonDefs::MessageAuthenticationCode_descr_, &NAS__CommonTypeDefs::NAS__SequenceNumber_descr_, &NAS__Message_descr_ }; +const TTCN_Typedescriptor_t* SECURITY__PROTECTED__NAS__MESSAGE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SECURITY__PROTECTED__NAS__MESSAGE::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageAuthenticationCode", "sequenceNumber", "nasMessage" }; +const char* SECURITY__PROTECTED__NAS__MESSAGE::fld_name(int p_index) const { return fld_names[p_index]; } + +void SECURITY__PROTECTED__NAS__MESSAGE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +SECURITY__PROTECTED__NAS__MESSAGE_template::SECURITY__PROTECTED__NAS__MESSAGE_template(SECURITY__PROTECTED__NAS__MESSAGE_template* p_precondition, SECURITY__PROTECTED__NAS__MESSAGE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SECURITY__PROTECTED__NAS__MESSAGE_template::SECURITY__PROTECTED__NAS__MESSAGE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SECURITY__PROTECTED__NAS__MESSAGE_template::~SECURITY__PROTECTED__NAS__MESSAGE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SECURITY__PROTECTED__NAS__MESSAGE_template::match_dynamic(const Base_Type* match_value) const +{ +const SECURITY__PROTECTED__NAS__MESSAGE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SECURITY__PROTECTED__NAS__MESSAGE_template& SECURITY__PROTECTED__NAS__MESSAGE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SECURITY__PROTECTED__NAS__MESSAGE_template& SECURITY__PROTECTED__NAS__MESSAGE_template::operator=(const SECURITY__PROTECTED__NAS__MESSAGE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SECURITY__PROTECTED__NAS__MESSAGE_template& SECURITY__PROTECTED__NAS__MESSAGE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SECURITY__PROTECTED__NAS__MESSAGE_template& SECURITY__PROTECTED__NAS__MESSAGE_template::operator=(const SECURITY__PROTECTED__NAS__MESSAGE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SECURITY__PROTECTED__NAS__MESSAGE SECURITY__PROTECTED__NAS__MESSAGE_template::valueof() const +{ +SECURITY__PROTECTED__NAS__MESSAGE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::messageAuthenticationCode() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::messageAuthenticationCode() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::sequenceNumber() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::sequenceNumber() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::nasMessage() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& SECURITY__PROTECTED__NAS__MESSAGE_template::nasMessage() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* SECURITY__PROTECTED__NAS__MESSAGE_template::get_descriptor() const { return &SECURITY__PROTECTED__NAS__MESSAGE_descr_; } +const char* SECURITY__PROTECTED__NAS__MESSAGE_template::fld_name(int p_index) const { return SECURITY__PROTECTED__NAS__MESSAGE::fld_names[p_index]; } +void SERVICE__REJECT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_emmCause; fld_vec[4]=&field_t3442; fld_vec[5]=&field_t3346; fld_vec[6]=&field_t3448; fld_vec[7]=&field_lowerBoundTimerValue; fld_vec[8]=&field_forbidTAIList__Roaming; fld_vec[9]=&field_forbidTAIList__RegProvService; } + +SERVICE__REJECT::SERVICE__REJECT() : Record_Type() { init_vec(); } + +SERVICE__REJECT::SERVICE__REJECT(const SERVICE__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_emmCause.is_bound() ) + field_emmCause = other_value.field_emmCause; +if (other_value.field_t3442.is_bound() ) + field_t3442 = other_value.field_t3442; +if (other_value.field_t3346.is_bound() ) + field_t3346 = other_value.field_t3346; +if (other_value.field_t3448.is_bound() ) + field_t3448 = other_value.field_t3448; +if (other_value.field_lowerBoundTimerValue.is_bound() ) + field_lowerBoundTimerValue = other_value.field_lowerBoundTimerValue; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +SERVICE__REJECT::SERVICE__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause, + const OPTIONAL& par_t3442, + const OPTIONAL& par_t3346, + const OPTIONAL& par_t3448, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_emmCause(par_emmCause), + field_t3442(par_t3442), + field_t3346(par_t3346), + field_t3448(par_t3448), + field_lowerBoundTimerValue(par_lowerBoundTimerValue), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SERVICE__REJECT::get_descriptor() const { return &SERVICE__REJECT_descr_; } +const TTCN_Typedescriptor_t* SERVICE__REJECT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EMM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &TrackingAreaIdList_descr_, &TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* SERVICE__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SERVICE__REJECT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "emmCause", "t3442", "t3346", "t3448", "lowerBoundTimerValue", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* SERVICE__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int SERVICE__REJECT::optional_indexes[] = { 4, 5, 6, 7, 8, 9, -1 }; +const int* SERVICE__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int SERVICE__REJECT::optional_indexes_asn[] = { 4, 5, 6, 7, 8, 9, -1 }; +const int* SERVICE__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void SERVICE__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new EMM__Cause_template(ANY_VALUE) : new EMM__Cause_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[8] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +single_value.value_elements[9] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +} +} + +SERVICE__REJECT_template::SERVICE__REJECT_template(SERVICE__REJECT_template* p_precondition, SERVICE__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SERVICE__REJECT_template::SERVICE__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SERVICE__REJECT_template::~SERVICE__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SERVICE__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const SERVICE__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SERVICE__REJECT_template& SERVICE__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SERVICE__REJECT_template& SERVICE__REJECT_template::operator=(const SERVICE__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SERVICE__REJECT_template& SERVICE__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SERVICE__REJECT_template& SERVICE__REJECT_template::operator=(const SERVICE__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SERVICE__REJECT SERVICE__REJECT_template::valueof() const +{ +SERVICE__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SERVICE__REJECT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SERVICE__REJECT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SERVICE__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SERVICE__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SERVICE__REJECT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SERVICE__REJECT_template::messageType() const { return *(static_cast(get_at(2))); } +EMM__Cause_template& SERVICE__REJECT_template::emmCause() { return *(static_cast(get_at(3))); } +const EMM__Cause_template& SERVICE__REJECT_template::emmCause() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::GPRS__Timer_template& SERVICE__REJECT_template::t3442() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::GPRS__Timer_template& SERVICE__REJECT_template::t3442() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& SERVICE__REJECT_template::t3346() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& SERVICE__REJECT_template::t3346() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& SERVICE__REJECT_template::t3448() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& SERVICE__REJECT_template::t3448() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& SERVICE__REJECT_template::lowerBoundTimerValue() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& SERVICE__REJECT_template::lowerBoundTimerValue() const { return *(static_cast(get_at(7))); } +TrackingAreaIdList_template& SERVICE__REJECT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(8))); } +const TrackingAreaIdList_template& SERVICE__REJECT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(8))); } +TrackingAreaIdList_template& SERVICE__REJECT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(9))); } +const TrackingAreaIdList_template& SERVICE__REJECT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* SERVICE__REJECT_template::get_descriptor() const { return &SERVICE__REJECT_descr_; } +const char* SERVICE__REJECT_template::fld_name(int p_index) const { return SERVICE__REJECT::fld_names[p_index]; } +void KSIandSN::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_ksi; fld_vec[2]=&field_sn; } + +KSIandSN::KSIandSN() : Record_Type() { init_vec(); } + +KSIandSN::KSIandSN(const KSIandSN& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_ksi.is_bound() ) + field_ksi = other_value.field_ksi; +if (other_value.field_sn.is_bound() ) + field_sn = other_value.field_sn; +init_vec(); +} + +KSIandSN::KSIandSN(const OPTIONAL& par_iei, + const BITSTRING& par_ksi, + const BITSTRING& par_sn) : field_iei(par_iei), + field_ksi(par_ksi), + field_sn(par_sn) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* KSIandSN::get_descriptor() const { return &KSIandSN_descr_; } +const TTCN_Typedescriptor_t* KSIandSN::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B5__Type_descr_ }; +const TTCN_Typedescriptor_t* KSIandSN::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* KSIandSN::fld_names[] = { "iei", "ksi", "sn" }; +const char* KSIandSN::fld_name(int p_index) const { return fld_names[p_index]; } + +const int KSIandSN::optional_indexes[] = { 0, -1 }; +const int* KSIandSN::get_optional_indexes() const { return optional_indexes; } + +const int KSIandSN::optional_indexes_asn[] = { 0, -1 }; +const int* KSIandSN::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void KSIandSN_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +KSIandSN_template::KSIandSN_template(KSIandSN_template* p_precondition, KSIandSN_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +KSIandSN_template::KSIandSN_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +KSIandSN_template::~KSIandSN_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean KSIandSN_template::match_dynamic(const Base_Type* match_value) const +{ +const KSIandSN* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +KSIandSN_template& KSIandSN_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +KSIandSN_template& KSIandSN_template::operator=(const KSIandSN& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +KSIandSN_template& KSIandSN_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +KSIandSN_template& KSIandSN_template::operator=(const KSIandSN_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +KSIandSN KSIandSN_template::valueof() const +{ +KSIandSN ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& KSIandSN_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& KSIandSN_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& KSIandSN_template::ksi() { return *(static_cast(get_at(1))); } +const BITSTRING_template& KSIandSN_template::ksi() const { return *(static_cast(get_at(1))); } +BITSTRING_template& KSIandSN_template::sn() { return *(static_cast(get_at(2))); } +const BITSTRING_template& KSIandSN_template::sn() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* KSIandSN_template::get_descriptor() const { return &KSIandSN_descr_; } +const char* KSIandSN_template::fld_name(int p_index) const { return KSIandSN::fld_names[p_index]; } +void ShortMAC::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_macValue; } + +ShortMAC::ShortMAC() : Record_Type() { init_vec(); } + +ShortMAC::ShortMAC(const ShortMAC& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_macValue.is_bound() ) + field_macValue = other_value.field_macValue; +init_vec(); +} + +ShortMAC::ShortMAC(const OPTIONAL& par_iei, + const BITSTRING& par_macValue) : field_iei(par_iei), + field_macValue(par_macValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ShortMAC::get_descriptor() const { return &ShortMAC_descr_; } +const TTCN_Typedescriptor_t* ShortMAC::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::B16__Type_descr_ }; +const TTCN_Typedescriptor_t* ShortMAC::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ShortMAC::fld_names[] = { "iei", "macValue" }; +const char* ShortMAC::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ShortMAC::optional_indexes[] = { 0, -1 }; +const int* ShortMAC::get_optional_indexes() const { return optional_indexes; } + +const int ShortMAC::optional_indexes_asn[] = { 0, -1 }; +const int* ShortMAC::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ShortMAC_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ShortMAC_template::ShortMAC_template(ShortMAC_template* p_precondition, ShortMAC_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ShortMAC_template::ShortMAC_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ShortMAC_template::~ShortMAC_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ShortMAC_template::match_dynamic(const Base_Type* match_value) const +{ +const ShortMAC* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ShortMAC_template& ShortMAC_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ShortMAC_template& ShortMAC_template::operator=(const ShortMAC& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ShortMAC_template& ShortMAC_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ShortMAC_template& ShortMAC_template::operator=(const ShortMAC_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ShortMAC ShortMAC_template::valueof() const +{ +ShortMAC ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ShortMAC_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ShortMAC_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ShortMAC_template::macValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ShortMAC_template::macValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* ShortMAC_template::get_descriptor() const { return &ShortMAC_descr_; } +const char* ShortMAC_template::fld_name(int p_index) const { return ShortMAC::fld_names[p_index]; } +void SERVICE__REQUEST::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_ksiAndSN; fld_vec[3]=&field_shortMAC; } + +SERVICE__REQUEST::SERVICE__REQUEST() : Record_Type() { init_vec(); } + +SERVICE__REQUEST::SERVICE__REQUEST(const SERVICE__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_ksiAndSN.is_bound() ) + field_ksiAndSN = other_value.field_ksiAndSN; +if (other_value.field_shortMAC.is_bound() ) + field_shortMAC = other_value.field_shortMAC; +init_vec(); +} + +SERVICE__REQUEST::SERVICE__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const KSIandSN& par_ksiAndSN, + const ShortMAC& par_shortMAC) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_ksiAndSN(par_ksiAndSN), + field_shortMAC(par_shortMAC) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SERVICE__REQUEST::get_descriptor() const { return &SERVICE__REQUEST_descr_; } +const TTCN_Typedescriptor_t* SERVICE__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &KSIandSN_descr_, &ShortMAC_descr_ }; +const TTCN_Typedescriptor_t* SERVICE__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SERVICE__REQUEST::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "ksiAndSN", "shortMAC" }; +const char* SERVICE__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void SERVICE__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new KSIandSN_template(ANY_VALUE) : new KSIandSN_template; +single_value.value_elements[3] = was_any ? new ShortMAC_template(ANY_VALUE) : new ShortMAC_template; +} +} + +SERVICE__REQUEST_template::SERVICE__REQUEST_template(SERVICE__REQUEST_template* p_precondition, SERVICE__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SERVICE__REQUEST_template::SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SERVICE__REQUEST_template::~SERVICE__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SERVICE__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const SERVICE__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SERVICE__REQUEST_template& SERVICE__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SERVICE__REQUEST_template& SERVICE__REQUEST_template::operator=(const SERVICE__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SERVICE__REQUEST_template& SERVICE__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SERVICE__REQUEST_template& SERVICE__REQUEST_template::operator=(const SERVICE__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SERVICE__REQUEST SERVICE__REQUEST_template::valueof() const +{ +SERVICE__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SERVICE__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SERVICE__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SERVICE__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SERVICE__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +KSIandSN_template& SERVICE__REQUEST_template::ksiAndSN() { return *(static_cast(get_at(2))); } +const KSIandSN_template& SERVICE__REQUEST_template::ksiAndSN() const { return *(static_cast(get_at(2))); } +ShortMAC_template& SERVICE__REQUEST_template::shortMAC() { return *(static_cast(get_at(3))); } +const ShortMAC_template& SERVICE__REQUEST_template::shortMAC() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* SERVICE__REQUEST_template::get_descriptor() const { return &SERVICE__REQUEST_descr_; } +const char* SERVICE__REQUEST_template::fld_name(int p_index) const { return SERVICE__REQUEST::fld_names[p_index]; } +void EPS__UpdateResult::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_resultValue; } + +EPS__UpdateResult::EPS__UpdateResult() : Record_Type() { init_vec(); } + +EPS__UpdateResult::EPS__UpdateResult(const EPS__UpdateResult& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_resultValue.is_bound() ) + field_resultValue = other_value.field_resultValue; +init_vec(); +} + +EPS__UpdateResult::EPS__UpdateResult(const BITSTRING& par_spare, + const BITSTRING& par_resultValue) : field_spare(par_spare), + field_resultValue(par_resultValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__UpdateResult::get_descriptor() const { return &EPS__UpdateResult_descr_; } +const TTCN_Typedescriptor_t* EPS__UpdateResult::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &NAS__CommonTypeDefs::NAS__AttDetValue__Type_descr_ }; +const TTCN_Typedescriptor_t* EPS__UpdateResult::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__UpdateResult::fld_names[] = { "spare", "resultValue" }; +const char* EPS__UpdateResult::fld_name(int p_index) const { return fld_names[p_index]; } + +void EPS__UpdateResult_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EPS__UpdateResult_template::EPS__UpdateResult_template(EPS__UpdateResult_template* p_precondition, EPS__UpdateResult_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__UpdateResult_template::EPS__UpdateResult_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__UpdateResult_template::~EPS__UpdateResult_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__UpdateResult_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__UpdateResult* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__UpdateResult_template& EPS__UpdateResult_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__UpdateResult_template& EPS__UpdateResult_template::operator=(const EPS__UpdateResult& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__UpdateResult_template& EPS__UpdateResult_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__UpdateResult_template& EPS__UpdateResult_template::operator=(const EPS__UpdateResult_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__UpdateResult EPS__UpdateResult_template::valueof() const +{ +EPS__UpdateResult ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& EPS__UpdateResult_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& EPS__UpdateResult_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EPS__UpdateResult_template::resultValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EPS__UpdateResult_template::resultValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* EPS__UpdateResult_template::get_descriptor() const { return &EPS__UpdateResult_descr_; } +const char* EPS__UpdateResult_template::fld_name(int p_index) const { return EPS__UpdateResult::fld_names[p_index]; } +void TRACKING__AREA__UPDATE__ACCEPT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_spareHalfOctet; fld_vec[4]=&field_epsUpdateResult; fld_vec[5]=&field_t3412; fld_vec[6]=&field_guti; fld_vec[7]=&field_taiList; fld_vec[8]=&field_epsBearerContextStatus; fld_vec[9]=&field_lai; fld_vec[10]=&field_msIdentity; fld_vec[11]=&field_emmCause; fld_vec[12]=&field_t3402; fld_vec[13]=&field_t3423; fld_vec[14]=&field_equivalentPlmns; fld_vec[15]=&field_asmeNasKeySetId; fld_vec[16]=&field_emergencyNumberList; fld_vec[17]=&field_epsNetworkFeatureSupport; fld_vec[18]=&field_addUpdateResult; fld_vec[19]=&field_t3412ExtdValue; fld_vec[20]=&field_t3324Value; fld_vec[21]=&field_extendedDRXParams; fld_vec[22]=&field_headerCompressionConfigStatus; fld_vec[23]=&field_dcnId; fld_vec[24]=&field_smsServicesStatus; fld_vec[25]=&field_non3GPP__NW__ProvidedPolicies; fld_vec[26]=&field_t3448; fld_vec[27]=&field_networkPolicy; fld_vec[28]=&field_t3447Value; fld_vec[29]=&field_xtdEmergencyNumList; fld_vec[30]=&field_cipheringKeyData; fld_vec[31]=&field_ueRadioCapId; fld_vec[32]=&field_ueRadioCapIdDeleteInd; fld_vec[33]=&field_negotiatedWUSAssistInfo; fld_vec[34]=&field_negotiatedDRXinNB__S1; fld_vec[35]=&field_negotiatedIMSI__Offset; fld_vec[36]=&field_epsAddRequestResult; fld_vec[37]=&field_forbidTAIList__Roaming; fld_vec[38]=&field_forbidTAIList__RegProvService; } + +TRACKING__AREA__UPDATE__ACCEPT::TRACKING__AREA__UPDATE__ACCEPT() : Record_Type() { init_vec(); } + +TRACKING__AREA__UPDATE__ACCEPT::TRACKING__AREA__UPDATE__ACCEPT(const TRACKING__AREA__UPDATE__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_epsUpdateResult.is_bound() ) + field_epsUpdateResult = other_value.field_epsUpdateResult; +if (other_value.field_t3412.is_bound() ) + field_t3412 = other_value.field_t3412; +if (other_value.field_guti.is_bound() ) + field_guti = other_value.field_guti; +if (other_value.field_taiList.is_bound() ) + field_taiList = other_value.field_taiList; +if (other_value.field_epsBearerContextStatus.is_bound() ) + field_epsBearerContextStatus = other_value.field_epsBearerContextStatus; +if (other_value.field_lai.is_bound() ) + field_lai = other_value.field_lai; +if (other_value.field_msIdentity.is_bound() ) + field_msIdentity = other_value.field_msIdentity; +if (other_value.field_emmCause.is_bound() ) + field_emmCause = other_value.field_emmCause; +if (other_value.field_t3402.is_bound() ) + field_t3402 = other_value.field_t3402; +if (other_value.field_t3423.is_bound() ) + field_t3423 = other_value.field_t3423; +if (other_value.field_equivalentPlmns.is_bound() ) + field_equivalentPlmns = other_value.field_equivalentPlmns; +if (other_value.field_asmeNasKeySetId.is_bound() ) + field_asmeNasKeySetId = other_value.field_asmeNasKeySetId; +if (other_value.field_emergencyNumberList.is_bound() ) + field_emergencyNumberList = other_value.field_emergencyNumberList; +if (other_value.field_epsNetworkFeatureSupport.is_bound() ) + field_epsNetworkFeatureSupport = other_value.field_epsNetworkFeatureSupport; +if (other_value.field_addUpdateResult.is_bound() ) + field_addUpdateResult = other_value.field_addUpdateResult; +if (other_value.field_t3412ExtdValue.is_bound() ) + field_t3412ExtdValue = other_value.field_t3412ExtdValue; +if (other_value.field_t3324Value.is_bound() ) + field_t3324Value = other_value.field_t3324Value; +if (other_value.field_extendedDRXParams.is_bound() ) + field_extendedDRXParams = other_value.field_extendedDRXParams; +if (other_value.field_headerCompressionConfigStatus.is_bound() ) + field_headerCompressionConfigStatus = other_value.field_headerCompressionConfigStatus; +if (other_value.field_dcnId.is_bound() ) + field_dcnId = other_value.field_dcnId; +if (other_value.field_smsServicesStatus.is_bound() ) + field_smsServicesStatus = other_value.field_smsServicesStatus; +if (other_value.field_non3GPP__NW__ProvidedPolicies.is_bound() ) + field_non3GPP__NW__ProvidedPolicies = other_value.field_non3GPP__NW__ProvidedPolicies; +if (other_value.field_t3448.is_bound() ) + field_t3448 = other_value.field_t3448; +if (other_value.field_networkPolicy.is_bound() ) + field_networkPolicy = other_value.field_networkPolicy; +if (other_value.field_t3447Value.is_bound() ) + field_t3447Value = other_value.field_t3447Value; +if (other_value.field_xtdEmergencyNumList.is_bound() ) + field_xtdEmergencyNumList = other_value.field_xtdEmergencyNumList; +if (other_value.field_cipheringKeyData.is_bound() ) + field_cipheringKeyData = other_value.field_cipheringKeyData; +if (other_value.field_ueRadioCapId.is_bound() ) + field_ueRadioCapId = other_value.field_ueRadioCapId; +if (other_value.field_ueRadioCapIdDeleteInd.is_bound() ) + field_ueRadioCapIdDeleteInd = other_value.field_ueRadioCapIdDeleteInd; +if (other_value.field_negotiatedWUSAssistInfo.is_bound() ) + field_negotiatedWUSAssistInfo = other_value.field_negotiatedWUSAssistInfo; +if (other_value.field_negotiatedDRXinNB__S1.is_bound() ) + field_negotiatedDRXinNB__S1 = other_value.field_negotiatedDRXinNB__S1; +if (other_value.field_negotiatedIMSI__Offset.is_bound() ) + field_negotiatedIMSI__Offset = other_value.field_negotiatedIMSI__Offset; +if (other_value.field_epsAddRequestResult.is_bound() ) + field_epsAddRequestResult = other_value.field_epsAddRequestResult; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +TRACKING__AREA__UPDATE__ACCEPT::TRACKING__AREA__UPDATE__ACCEPT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const EPS__UpdateResult& par_epsUpdateResult, + const OPTIONAL& par_t3412, + const OPTIONAL& par_guti, + const OPTIONAL& par_taiList, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_lai, + const OPTIONAL& par_msIdentity, + const OPTIONAL& par_emmCause, + const OPTIONAL& par_t3402, + const OPTIONAL& par_t3423, + const OPTIONAL& par_equivalentPlmns, + const OPTIONAL& par_asmeNasKeySetId, + const OPTIONAL& par_emergencyNumberList, + const OPTIONAL& par_epsNetworkFeatureSupport, + const OPTIONAL& par_addUpdateResult, + const OPTIONAL& par_t3412ExtdValue, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_extendedDRXParams, + const OPTIONAL& par_headerCompressionConfigStatus, + const OPTIONAL& par_dcnId, + const OPTIONAL& par_smsServicesStatus, + const OPTIONAL& par_non3GPP__NW__ProvidedPolicies, + const OPTIONAL& par_t3448, + const OPTIONAL& par_networkPolicy, + const OPTIONAL& par_t3447Value, + const OPTIONAL& par_xtdEmergencyNumList, + const OPTIONAL& par_cipheringKeyData, + const OPTIONAL& par_ueRadioCapId, + const OPTIONAL& par_ueRadioCapIdDeleteInd, + const OPTIONAL& par_negotiatedWUSAssistInfo, + const OPTIONAL& par_negotiatedDRXinNB__S1, + const OPTIONAL& par_negotiatedIMSI__Offset, + const OPTIONAL& par_epsAddRequestResult, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_spareHalfOctet(par_spareHalfOctet), + field_epsUpdateResult(par_epsUpdateResult), + field_t3412(par_t3412), + field_guti(par_guti), + field_taiList(par_taiList), + field_epsBearerContextStatus(par_epsBearerContextStatus), + field_lai(par_lai), + field_msIdentity(par_msIdentity), + field_emmCause(par_emmCause), + field_t3402(par_t3402), + field_t3423(par_t3423), + field_equivalentPlmns(par_equivalentPlmns), + field_asmeNasKeySetId(par_asmeNasKeySetId), + field_emergencyNumberList(par_emergencyNumberList), + field_epsNetworkFeatureSupport(par_epsNetworkFeatureSupport), + field_addUpdateResult(par_addUpdateResult), + field_t3412ExtdValue(par_t3412ExtdValue), + field_t3324Value(par_t3324Value), + field_extendedDRXParams(par_extendedDRXParams), + field_headerCompressionConfigStatus(par_headerCompressionConfigStatus), + field_dcnId(par_dcnId), + field_smsServicesStatus(par_smsServicesStatus), + field_non3GPP__NW__ProvidedPolicies(par_non3GPP__NW__ProvidedPolicies), + field_t3448(par_t3448), + field_networkPolicy(par_networkPolicy), + field_t3447Value(par_t3447Value), + field_xtdEmergencyNumList(par_xtdEmergencyNumList), + field_cipheringKeyData(par_cipheringKeyData), + field_ueRadioCapId(par_ueRadioCapId), + field_ueRadioCapIdDeleteInd(par_ueRadioCapIdDeleteInd), + field_negotiatedWUSAssistInfo(par_negotiatedWUSAssistInfo), + field_negotiatedDRXinNB__S1(par_negotiatedDRXinNB__S1), + field_negotiatedIMSI__Offset(par_negotiatedIMSI__Offset), + field_epsAddRequestResult(par_epsAddRequestResult), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__ACCEPT::get_descriptor() const { return &TRACKING__AREA__UPDATE__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__ACCEPT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &EPS__UpdateResult_descr_, &NAS__CommonTypeDefs::GPRS__Timer_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &TrackingAreaIdList_descr_, &NAS__CommonTypeDefs::EPS__BearerContextStatus_descr_, &NAS__CommonTypeDefs::LocAreaId_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &EMM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer_descr_, &NAS__CommonTypeDefs::GPRS__Timer_descr_, &NAS__CommonTypeDefs::PLMN__List_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &NAS__CommonTypeDefs::EmergNumList_descr_, &EPS__NetworkFeatureSupport_descr_, &AdditionalUpdateResult_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::ExtdDRXParams_descr_, &HeaderCompressConfigStatus_descr_, &NAS__CommonTypeDefs::DCN__ID_descr_, &SMSServicesStatus_descr_, &NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NetworkPolicy_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::ExtdEmergNumList_descr_, &CipheringKeyData_descr_, &NAS__CommonTypeDefs::UERadioCapId_descr_, &NAS__CommonTypeDefs::UERadioCapIdDeletion_descr_, &NAS__CommonTypeDefs::WUSAssistInfo_descr_, &NAS__CommonTypeDefs::DRXParamCommon_descr_, &IMSI__Offset_descr_, &EPS__AddReqResult_descr_, &TrackingAreaIdList_descr_, &TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TRACKING__AREA__UPDATE__ACCEPT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "spareHalfOctet", "epsUpdateResult", "t3412", "guti", "taiList", "epsBearerContextStatus", "lai", "msIdentity", "emmCause", "t3402", "t3423", "equivalentPlmns", "asmeNasKeySetId", "emergencyNumberList", "epsNetworkFeatureSupport", "addUpdateResult", "t3412ExtdValue", "t3324Value", "extendedDRXParams", "headerCompressionConfigStatus", "dcnId", "smsServicesStatus", "non3GPP_NW_ProvidedPolicies", "t3448", "networkPolicy", "t3447Value", "xtdEmergencyNumList", "cipheringKeyData", "ueRadioCapId", "ueRadioCapIdDeleteInd", "negotiatedWUSAssistInfo", "negotiatedDRXinNB_S1", "negotiatedIMSI_Offset", "epsAddRequestResult", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* TRACKING__AREA__UPDATE__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TRACKING__AREA__UPDATE__ACCEPT::optional_indexes[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, -1 }; +const int* TRACKING__AREA__UPDATE__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int TRACKING__AREA__UPDATE__ACCEPT::optional_indexes_asn[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, -1 }; +const int* TRACKING__AREA__UPDATE__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TRACKING__AREA__UPDATE__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 39; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[4] = was_any ? new EPS__UpdateResult_template(ANY_VALUE) : new EPS__UpdateResult_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[7] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::EPS__BearerContextStatus_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__BearerContextStatus_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::LocAreaId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::LocAreaId_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[11] = was_any ? new EMM__Cause_template(ANY_OR_OMIT) : new EMM__Cause_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer_template; +single_value.value_elements[14] = was_any ? new NAS__CommonTypeDefs::PLMN__List_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::PLMN__List_template; +single_value.value_elements[15] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[16] = was_any ? new NAS__CommonTypeDefs::EmergNumList_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EmergNumList_template; +single_value.value_elements[17] = was_any ? new EPS__NetworkFeatureSupport_template(ANY_OR_OMIT) : new EPS__NetworkFeatureSupport_template; +single_value.value_elements[18] = was_any ? new AdditionalUpdateResult_template(ANY_OR_OMIT) : new AdditionalUpdateResult_template; +single_value.value_elements[19] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[20] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[21] = was_any ? new NAS__CommonTypeDefs::ExtdDRXParams_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdDRXParams_template; +single_value.value_elements[22] = was_any ? new HeaderCompressConfigStatus_template(ANY_OR_OMIT) : new HeaderCompressConfigStatus_template; +single_value.value_elements[23] = was_any ? new NAS__CommonTypeDefs::DCN__ID_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DCN__ID_template; +single_value.value_elements[24] = was_any ? new SMSServicesStatus_template(ANY_OR_OMIT) : new SMSServicesStatus_template; +single_value.value_elements[25] = was_any ? new NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template; +single_value.value_elements[26] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[27] = was_any ? new NetworkPolicy_template(ANY_OR_OMIT) : new NetworkPolicy_template; +single_value.value_elements[28] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[29] = was_any ? new NAS__CommonTypeDefs::ExtdEmergNumList_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdEmergNumList_template; +single_value.value_elements[30] = was_any ? new CipheringKeyData_template(ANY_OR_OMIT) : new CipheringKeyData_template; +single_value.value_elements[31] = was_any ? new NAS__CommonTypeDefs::UERadioCapId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapId_template; +single_value.value_elements[32] = was_any ? new NAS__CommonTypeDefs::UERadioCapIdDeletion_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapIdDeletion_template; +single_value.value_elements[33] = was_any ? new NAS__CommonTypeDefs::WUSAssistInfo_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WUSAssistInfo_template; +single_value.value_elements[34] = was_any ? new NAS__CommonTypeDefs::DRXParamCommon_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXParamCommon_template; +single_value.value_elements[35] = was_any ? new IMSI__Offset_template(ANY_OR_OMIT) : new IMSI__Offset_template; +single_value.value_elements[36] = was_any ? new EPS__AddReqResult_template(ANY_OR_OMIT) : new EPS__AddReqResult_template; +single_value.value_elements[37] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +single_value.value_elements[38] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +} +} + +TRACKING__AREA__UPDATE__ACCEPT_template::TRACKING__AREA__UPDATE__ACCEPT_template(TRACKING__AREA__UPDATE__ACCEPT_template* p_precondition, TRACKING__AREA__UPDATE__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TRACKING__AREA__UPDATE__ACCEPT_template::TRACKING__AREA__UPDATE__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TRACKING__AREA__UPDATE__ACCEPT_template::~TRACKING__AREA__UPDATE__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TRACKING__AREA__UPDATE__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const TRACKING__AREA__UPDATE__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TRACKING__AREA__UPDATE__ACCEPT_template& TRACKING__AREA__UPDATE__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TRACKING__AREA__UPDATE__ACCEPT_template& TRACKING__AREA__UPDATE__ACCEPT_template::operator=(const TRACKING__AREA__UPDATE__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TRACKING__AREA__UPDATE__ACCEPT_template& TRACKING__AREA__UPDATE__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TRACKING__AREA__UPDATE__ACCEPT_template& TRACKING__AREA__UPDATE__ACCEPT_template::operator=(const TRACKING__AREA__UPDATE__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TRACKING__AREA__UPDATE__ACCEPT TRACKING__AREA__UPDATE__ACCEPT_template::valueof() const +{ +TRACKING__AREA__UPDATE__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& TRACKING__AREA__UPDATE__ACCEPT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__ACCEPT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& TRACKING__AREA__UPDATE__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& TRACKING__AREA__UPDATE__ACCEPT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__ACCEPT_template::messageType() const { return *(static_cast(get_at(2))); } +HEXSTRING_template& TRACKING__AREA__UPDATE__ACCEPT_template::spareHalfOctet() { return *(static_cast(get_at(3))); } +const HEXSTRING_template& TRACKING__AREA__UPDATE__ACCEPT_template::spareHalfOctet() const { return *(static_cast(get_at(3))); } +EPS__UpdateResult_template& TRACKING__AREA__UPDATE__ACCEPT_template::epsUpdateResult() { return *(static_cast(get_at(4))); } +const EPS__UpdateResult_template& TRACKING__AREA__UPDATE__ACCEPT_template::epsUpdateResult() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::GPRS__Timer_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3412() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::GPRS__Timer_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3412() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::MobileIdentity_template& TRACKING__AREA__UPDATE__ACCEPT_template::guti() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::MobileIdentity_template& TRACKING__AREA__UPDATE__ACCEPT_template::guti() const { return *(static_cast(get_at(6))); } +TrackingAreaIdList_template& TRACKING__AREA__UPDATE__ACCEPT_template::taiList() { return *(static_cast(get_at(7))); } +const TrackingAreaIdList_template& TRACKING__AREA__UPDATE__ACCEPT_template::taiList() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& TRACKING__AREA__UPDATE__ACCEPT_template::epsBearerContextStatus() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& TRACKING__AREA__UPDATE__ACCEPT_template::epsBearerContextStatus() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::LocAreaId_template& TRACKING__AREA__UPDATE__ACCEPT_template::lai() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::LocAreaId_template& TRACKING__AREA__UPDATE__ACCEPT_template::lai() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::MobileIdentity_template& TRACKING__AREA__UPDATE__ACCEPT_template::msIdentity() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::MobileIdentity_template& TRACKING__AREA__UPDATE__ACCEPT_template::msIdentity() const { return *(static_cast(get_at(10))); } +EMM__Cause_template& TRACKING__AREA__UPDATE__ACCEPT_template::emmCause() { return *(static_cast(get_at(11))); } +const EMM__Cause_template& TRACKING__AREA__UPDATE__ACCEPT_template::emmCause() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::GPRS__Timer_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3402() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::GPRS__Timer_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3402() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::GPRS__Timer_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3423() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::GPRS__Timer_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3423() const { return *(static_cast(get_at(13))); } +NAS__CommonTypeDefs::PLMN__List_template& TRACKING__AREA__UPDATE__ACCEPT_template::equivalentPlmns() { return *(static_cast(get_at(14))); } +const NAS__CommonTypeDefs::PLMN__List_template& TRACKING__AREA__UPDATE__ACCEPT_template::equivalentPlmns() const { return *(static_cast(get_at(14))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& TRACKING__AREA__UPDATE__ACCEPT_template::asmeNasKeySetId() { return *(static_cast(get_at(15))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& TRACKING__AREA__UPDATE__ACCEPT_template::asmeNasKeySetId() const { return *(static_cast(get_at(15))); } +NAS__CommonTypeDefs::EmergNumList_template& TRACKING__AREA__UPDATE__ACCEPT_template::emergencyNumberList() { return *(static_cast(get_at(16))); } +const NAS__CommonTypeDefs::EmergNumList_template& TRACKING__AREA__UPDATE__ACCEPT_template::emergencyNumberList() const { return *(static_cast(get_at(16))); } +EPS__NetworkFeatureSupport_template& TRACKING__AREA__UPDATE__ACCEPT_template::epsNetworkFeatureSupport() { return *(static_cast(get_at(17))); } +const EPS__NetworkFeatureSupport_template& TRACKING__AREA__UPDATE__ACCEPT_template::epsNetworkFeatureSupport() const { return *(static_cast(get_at(17))); } +AdditionalUpdateResult_template& TRACKING__AREA__UPDATE__ACCEPT_template::addUpdateResult() { return *(static_cast(get_at(18))); } +const AdditionalUpdateResult_template& TRACKING__AREA__UPDATE__ACCEPT_template::addUpdateResult() const { return *(static_cast(get_at(18))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3412ExtdValue() { return *(static_cast(get_at(19))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3412ExtdValue() const { return *(static_cast(get_at(19))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3324Value() { return *(static_cast(get_at(20))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3324Value() const { return *(static_cast(get_at(20))); } +NAS__CommonTypeDefs::ExtdDRXParams_template& TRACKING__AREA__UPDATE__ACCEPT_template::extendedDRXParams() { return *(static_cast(get_at(21))); } +const NAS__CommonTypeDefs::ExtdDRXParams_template& TRACKING__AREA__UPDATE__ACCEPT_template::extendedDRXParams() const { return *(static_cast(get_at(21))); } +HeaderCompressConfigStatus_template& TRACKING__AREA__UPDATE__ACCEPT_template::headerCompressionConfigStatus() { return *(static_cast(get_at(22))); } +const HeaderCompressConfigStatus_template& TRACKING__AREA__UPDATE__ACCEPT_template::headerCompressionConfigStatus() const { return *(static_cast(get_at(22))); } +NAS__CommonTypeDefs::DCN__ID_template& TRACKING__AREA__UPDATE__ACCEPT_template::dcnId() { return *(static_cast(get_at(23))); } +const NAS__CommonTypeDefs::DCN__ID_template& TRACKING__AREA__UPDATE__ACCEPT_template::dcnId() const { return *(static_cast(get_at(23))); } +SMSServicesStatus_template& TRACKING__AREA__UPDATE__ACCEPT_template::smsServicesStatus() { return *(static_cast(get_at(24))); } +const SMSServicesStatus_template& TRACKING__AREA__UPDATE__ACCEPT_template::smsServicesStatus() const { return *(static_cast(get_at(24))); } +NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& TRACKING__AREA__UPDATE__ACCEPT_template::non3GPP__NW__ProvidedPolicies() { return *(static_cast(get_at(25))); } +const NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& TRACKING__AREA__UPDATE__ACCEPT_template::non3GPP__NW__ProvidedPolicies() const { return *(static_cast(get_at(25))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3448() { return *(static_cast(get_at(26))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3448() const { return *(static_cast(get_at(26))); } +NetworkPolicy_template& TRACKING__AREA__UPDATE__ACCEPT_template::networkPolicy() { return *(static_cast(get_at(27))); } +const NetworkPolicy_template& TRACKING__AREA__UPDATE__ACCEPT_template::networkPolicy() const { return *(static_cast(get_at(27))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3447Value() { return *(static_cast(get_at(28))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__ACCEPT_template::t3447Value() const { return *(static_cast(get_at(28))); } +NAS__CommonTypeDefs::ExtdEmergNumList_template& TRACKING__AREA__UPDATE__ACCEPT_template::xtdEmergencyNumList() { return *(static_cast(get_at(29))); } +const NAS__CommonTypeDefs::ExtdEmergNumList_template& TRACKING__AREA__UPDATE__ACCEPT_template::xtdEmergencyNumList() const { return *(static_cast(get_at(29))); } +CipheringKeyData_template& TRACKING__AREA__UPDATE__ACCEPT_template::cipheringKeyData() { return *(static_cast(get_at(30))); } +const CipheringKeyData_template& TRACKING__AREA__UPDATE__ACCEPT_template::cipheringKeyData() const { return *(static_cast(get_at(30))); } +NAS__CommonTypeDefs::UERadioCapId_template& TRACKING__AREA__UPDATE__ACCEPT_template::ueRadioCapId() { return *(static_cast(get_at(31))); } +const NAS__CommonTypeDefs::UERadioCapId_template& TRACKING__AREA__UPDATE__ACCEPT_template::ueRadioCapId() const { return *(static_cast(get_at(31))); } +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& TRACKING__AREA__UPDATE__ACCEPT_template::ueRadioCapIdDeleteInd() { return *(static_cast(get_at(32))); } +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& TRACKING__AREA__UPDATE__ACCEPT_template::ueRadioCapIdDeleteInd() const { return *(static_cast(get_at(32))); } +NAS__CommonTypeDefs::WUSAssistInfo_template& TRACKING__AREA__UPDATE__ACCEPT_template::negotiatedWUSAssistInfo() { return *(static_cast(get_at(33))); } +const NAS__CommonTypeDefs::WUSAssistInfo_template& TRACKING__AREA__UPDATE__ACCEPT_template::negotiatedWUSAssistInfo() const { return *(static_cast(get_at(33))); } +NAS__CommonTypeDefs::DRXParamCommon_template& TRACKING__AREA__UPDATE__ACCEPT_template::negotiatedDRXinNB__S1() { return *(static_cast(get_at(34))); } +const NAS__CommonTypeDefs::DRXParamCommon_template& TRACKING__AREA__UPDATE__ACCEPT_template::negotiatedDRXinNB__S1() const { return *(static_cast(get_at(34))); } +IMSI__Offset_template& TRACKING__AREA__UPDATE__ACCEPT_template::negotiatedIMSI__Offset() { return *(static_cast(get_at(35))); } +const IMSI__Offset_template& TRACKING__AREA__UPDATE__ACCEPT_template::negotiatedIMSI__Offset() const { return *(static_cast(get_at(35))); } +EPS__AddReqResult_template& TRACKING__AREA__UPDATE__ACCEPT_template::epsAddRequestResult() { return *(static_cast(get_at(36))); } +const EPS__AddReqResult_template& TRACKING__AREA__UPDATE__ACCEPT_template::epsAddRequestResult() const { return *(static_cast(get_at(36))); } +TrackingAreaIdList_template& TRACKING__AREA__UPDATE__ACCEPT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(37))); } +const TrackingAreaIdList_template& TRACKING__AREA__UPDATE__ACCEPT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(37))); } +TrackingAreaIdList_template& TRACKING__AREA__UPDATE__ACCEPT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(38))); } +const TrackingAreaIdList_template& TRACKING__AREA__UPDATE__ACCEPT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(38))); } +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__ACCEPT_template::get_descriptor() const { return &TRACKING__AREA__UPDATE__ACCEPT_descr_; } +const char* TRACKING__AREA__UPDATE__ACCEPT_template::fld_name(int p_index) const { return TRACKING__AREA__UPDATE__ACCEPT::fld_names[p_index]; } +void HeaderCompressConfigStatus::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_epsBearerInd__0__7; fld_vec[3]=&field_epsBearerInd__8__15; } + +HeaderCompressConfigStatus::HeaderCompressConfigStatus() : Record_Type() { init_vec(); } + +HeaderCompressConfigStatus::HeaderCompressConfigStatus(const HeaderCompressConfigStatus& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_epsBearerInd__0__7.is_bound() ) + field_epsBearerInd__0__7 = other_value.field_epsBearerInd__0__7; +if (other_value.field_epsBearerInd__8__15.is_bound() ) + field_epsBearerInd__8__15 = other_value.field_epsBearerInd__8__15; +init_vec(); +} + +HeaderCompressConfigStatus::HeaderCompressConfigStatus(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_epsBearerInd__0__7, + const OCTETSTRING& par_epsBearerInd__8__15) : field_iei(par_iei), + field_iel(par_iel), + field_epsBearerInd__0__7(par_epsBearerInd__0__7), + field_epsBearerInd__8__15(par_epsBearerInd__8__15) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* HeaderCompressConfigStatus::get_descriptor() const { return &HeaderCompressConfigStatus_descr_; } +const TTCN_Typedescriptor_t* HeaderCompressConfigStatus::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* HeaderCompressConfigStatus::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* HeaderCompressConfigStatus::fld_names[] = { "iei", "iel", "epsBearerInd_0_7", "epsBearerInd_8_15" }; +const char* HeaderCompressConfigStatus::fld_name(int p_index) const { return fld_names[p_index]; } + +const int HeaderCompressConfigStatus::optional_indexes[] = { 0, -1 }; +const int* HeaderCompressConfigStatus::get_optional_indexes() const { return optional_indexes; } + +const int HeaderCompressConfigStatus::optional_indexes_asn[] = { 0, -1 }; +const int* HeaderCompressConfigStatus::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void HeaderCompressConfigStatus_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +HeaderCompressConfigStatus_template::HeaderCompressConfigStatus_template(HeaderCompressConfigStatus_template* p_precondition, HeaderCompressConfigStatus_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +HeaderCompressConfigStatus_template::HeaderCompressConfigStatus_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +HeaderCompressConfigStatus_template::~HeaderCompressConfigStatus_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean HeaderCompressConfigStatus_template::match_dynamic(const Base_Type* match_value) const +{ +const HeaderCompressConfigStatus* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +HeaderCompressConfigStatus_template& HeaderCompressConfigStatus_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +HeaderCompressConfigStatus_template& HeaderCompressConfigStatus_template::operator=(const HeaderCompressConfigStatus& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +HeaderCompressConfigStatus_template& HeaderCompressConfigStatus_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +HeaderCompressConfigStatus_template& HeaderCompressConfigStatus_template::operator=(const HeaderCompressConfigStatus_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +HeaderCompressConfigStatus HeaderCompressConfigStatus_template::valueof() const +{ +HeaderCompressConfigStatus ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& HeaderCompressConfigStatus_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& HeaderCompressConfigStatus_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& HeaderCompressConfigStatus_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& HeaderCompressConfigStatus_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& HeaderCompressConfigStatus_template::epsBearerInd__0__7() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& HeaderCompressConfigStatus_template::epsBearerInd__0__7() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& HeaderCompressConfigStatus_template::epsBearerInd__8__15() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& HeaderCompressConfigStatus_template::epsBearerInd__8__15() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* HeaderCompressConfigStatus_template::get_descriptor() const { return &HeaderCompressConfigStatus_descr_; } +const char* HeaderCompressConfigStatus_template::fld_name(int p_index) const { return HeaderCompressConfigStatus::fld_names[p_index]; } +void EPS__AddReqResult::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_prd; } + +EPS__AddReqResult::EPS__AddReqResult() : Record_Type() { init_vec(); } + +EPS__AddReqResult::EPS__AddReqResult(const EPS__AddReqResult& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_prd.is_bound() ) + field_prd = other_value.field_prd; +init_vec(); +} + +EPS__AddReqResult::EPS__AddReqResult(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_prd) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_prd(par_prd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__AddReqResult::get_descriptor() const { return &EPS__AddReqResult_descr_; } +const TTCN_Typedescriptor_t* EPS__AddReqResult::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* EPS__AddReqResult::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__AddReqResult::fld_names[] = { "iei", "iel", "spare", "prd" }; +const char* EPS__AddReqResult::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EPS__AddReqResult::optional_indexes[] = { 0, 1, -1 }; +const int* EPS__AddReqResult::get_optional_indexes() const { return optional_indexes; } + +const int EPS__AddReqResult::optional_indexes_asn[] = { 0, 1, -1 }; +const int* EPS__AddReqResult::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EPS__AddReqResult_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EPS__AddReqResult_template::EPS__AddReqResult_template(EPS__AddReqResult_template* p_precondition, EPS__AddReqResult_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__AddReqResult_template::EPS__AddReqResult_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__AddReqResult_template::~EPS__AddReqResult_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__AddReqResult_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__AddReqResult* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__AddReqResult_template& EPS__AddReqResult_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__AddReqResult_template& EPS__AddReqResult_template::operator=(const EPS__AddReqResult& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__AddReqResult_template& EPS__AddReqResult_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__AddReqResult_template& EPS__AddReqResult_template::operator=(const EPS__AddReqResult_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__AddReqResult EPS__AddReqResult_template::valueof() const +{ +EPS__AddReqResult ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EPS__AddReqResult_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EPS__AddReqResult_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EPS__AddReqResult_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EPS__AddReqResult_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EPS__AddReqResult_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EPS__AddReqResult_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& EPS__AddReqResult_template::prd() { return *(static_cast(get_at(3))); } +const BITSTRING_template& EPS__AddReqResult_template::prd() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EPS__AddReqResult_template::get_descriptor() const { return &EPS__AddReqResult_descr_; } +const char* EPS__AddReqResult_template::fld_name(int p_index) const { return EPS__AddReqResult::fld_names[p_index]; } +void TRACKING__AREA__UPDATE__COMPLETE::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +TRACKING__AREA__UPDATE__COMPLETE::TRACKING__AREA__UPDATE__COMPLETE() : Record_Type() { init_vec(); } + +TRACKING__AREA__UPDATE__COMPLETE::TRACKING__AREA__UPDATE__COMPLETE(const TRACKING__AREA__UPDATE__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +TRACKING__AREA__UPDATE__COMPLETE::TRACKING__AREA__UPDATE__COMPLETE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__COMPLETE::get_descriptor() const { return &TRACKING__AREA__UPDATE__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__COMPLETE::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TRACKING__AREA__UPDATE__COMPLETE::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType" }; +const char* TRACKING__AREA__UPDATE__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +void TRACKING__AREA__UPDATE__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +TRACKING__AREA__UPDATE__COMPLETE_template::TRACKING__AREA__UPDATE__COMPLETE_template(TRACKING__AREA__UPDATE__COMPLETE_template* p_precondition, TRACKING__AREA__UPDATE__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TRACKING__AREA__UPDATE__COMPLETE_template::TRACKING__AREA__UPDATE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TRACKING__AREA__UPDATE__COMPLETE_template::~TRACKING__AREA__UPDATE__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TRACKING__AREA__UPDATE__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const TRACKING__AREA__UPDATE__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TRACKING__AREA__UPDATE__COMPLETE_template& TRACKING__AREA__UPDATE__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TRACKING__AREA__UPDATE__COMPLETE_template& TRACKING__AREA__UPDATE__COMPLETE_template::operator=(const TRACKING__AREA__UPDATE__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TRACKING__AREA__UPDATE__COMPLETE_template& TRACKING__AREA__UPDATE__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TRACKING__AREA__UPDATE__COMPLETE_template& TRACKING__AREA__UPDATE__COMPLETE_template::operator=(const TRACKING__AREA__UPDATE__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TRACKING__AREA__UPDATE__COMPLETE TRACKING__AREA__UPDATE__COMPLETE_template::valueof() const +{ +TRACKING__AREA__UPDATE__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& TRACKING__AREA__UPDATE__COMPLETE_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__COMPLETE_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& TRACKING__AREA__UPDATE__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& TRACKING__AREA__UPDATE__COMPLETE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__COMPLETE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__COMPLETE_template::get_descriptor() const { return &TRACKING__AREA__UPDATE__COMPLETE_descr_; } +const char* TRACKING__AREA__UPDATE__COMPLETE_template::fld_name(int p_index) const { return TRACKING__AREA__UPDATE__COMPLETE::fld_names[p_index]; } +void TRACKING__AREA__UPDATE__REJECT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_emmCause; fld_vec[4]=&field_t3346; fld_vec[5]=&field_extdEMMCause; fld_vec[6]=&field_lowerBoundTimerValue; fld_vec[7]=&field_forbidTAIList__Roaming; fld_vec[8]=&field_forbidTAIList__RegProvService; } + +TRACKING__AREA__UPDATE__REJECT::TRACKING__AREA__UPDATE__REJECT() : Record_Type() { init_vec(); } + +TRACKING__AREA__UPDATE__REJECT::TRACKING__AREA__UPDATE__REJECT(const TRACKING__AREA__UPDATE__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_emmCause.is_bound() ) + field_emmCause = other_value.field_emmCause; +if (other_value.field_t3346.is_bound() ) + field_t3346 = other_value.field_t3346; +if (other_value.field_extdEMMCause.is_bound() ) + field_extdEMMCause = other_value.field_extdEMMCause; +if (other_value.field_lowerBoundTimerValue.is_bound() ) + field_lowerBoundTimerValue = other_value.field_lowerBoundTimerValue; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +TRACKING__AREA__UPDATE__REJECT::TRACKING__AREA__UPDATE__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause, + const OPTIONAL& par_t3346, + const OPTIONAL& par_extdEMMCause, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_emmCause(par_emmCause), + field_t3346(par_t3346), + field_extdEMMCause(par_extdEMMCause), + field_lowerBoundTimerValue(par_lowerBoundTimerValue), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__REJECT::get_descriptor() const { return &TRACKING__AREA__UPDATE__REJECT_descr_; } +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__REJECT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EMM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &Extd__EMM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &TrackingAreaIdList_descr_, &TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TRACKING__AREA__UPDATE__REJECT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "emmCause", "t3346", "extdEMMCause", "lowerBoundTimerValue", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* TRACKING__AREA__UPDATE__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TRACKING__AREA__UPDATE__REJECT::optional_indexes[] = { 4, 5, 6, 7, 8, -1 }; +const int* TRACKING__AREA__UPDATE__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int TRACKING__AREA__UPDATE__REJECT::optional_indexes_asn[] = { 4, 5, 6, 7, 8, -1 }; +const int* TRACKING__AREA__UPDATE__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TRACKING__AREA__UPDATE__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 9; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new EMM__Cause_template(ANY_VALUE) : new EMM__Cause_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[5] = was_any ? new Extd__EMM__Cause_template(ANY_OR_OMIT) : new Extd__EMM__Cause_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +single_value.value_elements[8] = was_any ? new TrackingAreaIdList_template(ANY_OR_OMIT) : new TrackingAreaIdList_template; +} +} + +TRACKING__AREA__UPDATE__REJECT_template::TRACKING__AREA__UPDATE__REJECT_template(TRACKING__AREA__UPDATE__REJECT_template* p_precondition, TRACKING__AREA__UPDATE__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TRACKING__AREA__UPDATE__REJECT_template::TRACKING__AREA__UPDATE__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TRACKING__AREA__UPDATE__REJECT_template::~TRACKING__AREA__UPDATE__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TRACKING__AREA__UPDATE__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const TRACKING__AREA__UPDATE__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TRACKING__AREA__UPDATE__REJECT_template& TRACKING__AREA__UPDATE__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TRACKING__AREA__UPDATE__REJECT_template& TRACKING__AREA__UPDATE__REJECT_template::operator=(const TRACKING__AREA__UPDATE__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TRACKING__AREA__UPDATE__REJECT_template& TRACKING__AREA__UPDATE__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TRACKING__AREA__UPDATE__REJECT_template& TRACKING__AREA__UPDATE__REJECT_template::operator=(const TRACKING__AREA__UPDATE__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TRACKING__AREA__UPDATE__REJECT TRACKING__AREA__UPDATE__REJECT_template::valueof() const +{ +TRACKING__AREA__UPDATE__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& TRACKING__AREA__UPDATE__REJECT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__REJECT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& TRACKING__AREA__UPDATE__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& TRACKING__AREA__UPDATE__REJECT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__REJECT_template::messageType() const { return *(static_cast(get_at(2))); } +EMM__Cause_template& TRACKING__AREA__UPDATE__REJECT_template::emmCause() { return *(static_cast(get_at(3))); } +const EMM__Cause_template& TRACKING__AREA__UPDATE__REJECT_template::emmCause() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__REJECT_template::t3346() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__REJECT_template::t3346() const { return *(static_cast(get_at(4))); } +Extd__EMM__Cause_template& TRACKING__AREA__UPDATE__REJECT_template::extdEMMCause() { return *(static_cast(get_at(5))); } +const Extd__EMM__Cause_template& TRACKING__AREA__UPDATE__REJECT_template::extdEMMCause() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__REJECT_template::lowerBoundTimerValue() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__REJECT_template::lowerBoundTimerValue() const { return *(static_cast(get_at(6))); } +TrackingAreaIdList_template& TRACKING__AREA__UPDATE__REJECT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(7))); } +const TrackingAreaIdList_template& TRACKING__AREA__UPDATE__REJECT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(7))); } +TrackingAreaIdList_template& TRACKING__AREA__UPDATE__REJECT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(8))); } +const TrackingAreaIdList_template& TRACKING__AREA__UPDATE__REJECT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(8))); } +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__REJECT_template::get_descriptor() const { return &TRACKING__AREA__UPDATE__REJECT_descr_; } +const char* TRACKING__AREA__UPDATE__REJECT_template::fld_name(int p_index) const { return TRACKING__AREA__UPDATE__REJECT::fld_names[p_index]; } +void EPS__UpdateType::init_vec() { fld_vec[0]=&field_activeFlag; fld_vec[1]=&field_typeValue; } + +EPS__UpdateType::EPS__UpdateType() : Record_Type() { init_vec(); } + +EPS__UpdateType::EPS__UpdateType(const EPS__UpdateType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_activeFlag.is_bound() ) + field_activeFlag = other_value.field_activeFlag; +if (other_value.field_typeValue.is_bound() ) + field_typeValue = other_value.field_typeValue; +init_vec(); +} + +EPS__UpdateType::EPS__UpdateType(const BITSTRING& par_activeFlag, + const BITSTRING& par_typeValue) : field_activeFlag(par_activeFlag), + field_typeValue(par_typeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__UpdateType::get_descriptor() const { return &EPS__UpdateType_descr_; } +const TTCN_Typedescriptor_t* EPS__UpdateType::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &NAS__CommonTypeDefs::NAS__AttDetValue__Type_descr_ }; +const TTCN_Typedescriptor_t* EPS__UpdateType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__UpdateType::fld_names[] = { "activeFlag", "typeValue" }; +const char* EPS__UpdateType::fld_name(int p_index) const { return fld_names[p_index]; } + +void EPS__UpdateType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EPS__UpdateType_template::EPS__UpdateType_template(EPS__UpdateType_template* p_precondition, EPS__UpdateType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__UpdateType_template::EPS__UpdateType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__UpdateType_template::~EPS__UpdateType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__UpdateType_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__UpdateType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__UpdateType_template& EPS__UpdateType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__UpdateType_template& EPS__UpdateType_template::operator=(const EPS__UpdateType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__UpdateType_template& EPS__UpdateType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__UpdateType_template& EPS__UpdateType_template::operator=(const EPS__UpdateType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__UpdateType EPS__UpdateType_template::valueof() const +{ +EPS__UpdateType ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& EPS__UpdateType_template::activeFlag() { return *(static_cast(get_at(0))); } +const BITSTRING_template& EPS__UpdateType_template::activeFlag() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EPS__UpdateType_template::typeValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EPS__UpdateType_template::typeValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* EPS__UpdateType_template::get_descriptor() const { return &EPS__UpdateType_descr_; } +const char* EPS__UpdateType_template::fld_name(int p_index) const { return EPS__UpdateType::fld_names[p_index]; } +void TRACKING__AREA__UPDATE__REQUEST::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_asmeNasKeySetId; fld_vec[4]=&field_epsUpdateType; fld_vec[5]=&field_oldGuti; fld_vec[6]=&field_nonCurrentNativeNasKeySetId; fld_vec[7]=&field_gprsCipheringKeySeqNum; fld_vec[8]=&field_oldPtmsiSignature; fld_vec[9]=&field_additionalGuti; fld_vec[10]=&field_nonce; fld_vec[11]=&field_ueNetworkCapability; fld_vec[12]=&field_lastVisitedRegisteredTai; fld_vec[13]=&field_drxParameter; fld_vec[14]=&field_ueRadioCapNeeded; fld_vec[15]=&field_epsBearerContextStatus; fld_vec[16]=&field_msNetworkCapability; fld_vec[17]=&field_oldLai; fld_vec[18]=&field_tmsiStatus; fld_vec[19]=&field_msClassmark2; fld_vec[20]=&field_msClassmark3; fld_vec[21]=&field_supportedCodecList; fld_vec[22]=&field_addUpdateType; fld_vec[23]=&field_voiceDomainPref; fld_vec[24]=&field_oldGUTI__Type; fld_vec[25]=&field_deviceProperties; fld_vec[26]=&field_msNetworkFeatureSupport; fld_vec[27]=&field_tmsiBasedNRIContainer; fld_vec[28]=&field_t3324Value; fld_vec[29]=&field_t3412ExtdValue; fld_vec[30]=&field_extendedDRXParams; fld_vec[31]=&field_ueAddSecurityCap; fld_vec[32]=&field_ueStatus; fld_vec[33]=&field_addInfoReq; fld_vec[34]=&field_n1UENetworkCap; fld_vec[35]=&field_ueRadioCapIdAvailability; fld_vec[36]=&field_requestedWUSAssistInfo; fld_vec[37]=&field_drxInNB__S1; fld_vec[38]=&field_requestedIMSI__Offset; fld_vec[39]=&field_ueRequestType; fld_vec[40]=&field_pagingRestriction; } + +TRACKING__AREA__UPDATE__REQUEST::TRACKING__AREA__UPDATE__REQUEST() : Record_Type() { init_vec(); } + +TRACKING__AREA__UPDATE__REQUEST::TRACKING__AREA__UPDATE__REQUEST(const TRACKING__AREA__UPDATE__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_asmeNasKeySetId.is_bound() ) + field_asmeNasKeySetId = other_value.field_asmeNasKeySetId; +if (other_value.field_epsUpdateType.is_bound() ) + field_epsUpdateType = other_value.field_epsUpdateType; +if (other_value.field_oldGuti.is_bound() ) + field_oldGuti = other_value.field_oldGuti; +if (other_value.field_nonCurrentNativeNasKeySetId.is_bound() ) + field_nonCurrentNativeNasKeySetId = other_value.field_nonCurrentNativeNasKeySetId; +if (other_value.field_gprsCipheringKeySeqNum.is_bound() ) + field_gprsCipheringKeySeqNum = other_value.field_gprsCipheringKeySeqNum; +if (other_value.field_oldPtmsiSignature.is_bound() ) + field_oldPtmsiSignature = other_value.field_oldPtmsiSignature; +if (other_value.field_additionalGuti.is_bound() ) + field_additionalGuti = other_value.field_additionalGuti; +if (other_value.field_nonce.is_bound() ) + field_nonce = other_value.field_nonce; +if (other_value.field_ueNetworkCapability.is_bound() ) + field_ueNetworkCapability = other_value.field_ueNetworkCapability; +if (other_value.field_lastVisitedRegisteredTai.is_bound() ) + field_lastVisitedRegisteredTai = other_value.field_lastVisitedRegisteredTai; +if (other_value.field_drxParameter.is_bound() ) + field_drxParameter = other_value.field_drxParameter; +if (other_value.field_ueRadioCapNeeded.is_bound() ) + field_ueRadioCapNeeded = other_value.field_ueRadioCapNeeded; +if (other_value.field_epsBearerContextStatus.is_bound() ) + field_epsBearerContextStatus = other_value.field_epsBearerContextStatus; +if (other_value.field_msNetworkCapability.is_bound() ) + field_msNetworkCapability = other_value.field_msNetworkCapability; +if (other_value.field_oldLai.is_bound() ) + field_oldLai = other_value.field_oldLai; +if (other_value.field_tmsiStatus.is_bound() ) + field_tmsiStatus = other_value.field_tmsiStatus; +if (other_value.field_msClassmark2.is_bound() ) + field_msClassmark2 = other_value.field_msClassmark2; +if (other_value.field_msClassmark3.is_bound() ) + field_msClassmark3 = other_value.field_msClassmark3; +if (other_value.field_supportedCodecList.is_bound() ) + field_supportedCodecList = other_value.field_supportedCodecList; +if (other_value.field_addUpdateType.is_bound() ) + field_addUpdateType = other_value.field_addUpdateType; +if (other_value.field_voiceDomainPref.is_bound() ) + field_voiceDomainPref = other_value.field_voiceDomainPref; +if (other_value.field_oldGUTI__Type.is_bound() ) + field_oldGUTI__Type = other_value.field_oldGUTI__Type; +if (other_value.field_deviceProperties.is_bound() ) + field_deviceProperties = other_value.field_deviceProperties; +if (other_value.field_msNetworkFeatureSupport.is_bound() ) + field_msNetworkFeatureSupport = other_value.field_msNetworkFeatureSupport; +if (other_value.field_tmsiBasedNRIContainer.is_bound() ) + field_tmsiBasedNRIContainer = other_value.field_tmsiBasedNRIContainer; +if (other_value.field_t3324Value.is_bound() ) + field_t3324Value = other_value.field_t3324Value; +if (other_value.field_t3412ExtdValue.is_bound() ) + field_t3412ExtdValue = other_value.field_t3412ExtdValue; +if (other_value.field_extendedDRXParams.is_bound() ) + field_extendedDRXParams = other_value.field_extendedDRXParams; +if (other_value.field_ueAddSecurityCap.is_bound() ) + field_ueAddSecurityCap = other_value.field_ueAddSecurityCap; +if (other_value.field_ueStatus.is_bound() ) + field_ueStatus = other_value.field_ueStatus; +if (other_value.field_addInfoReq.is_bound() ) + field_addInfoReq = other_value.field_addInfoReq; +if (other_value.field_n1UENetworkCap.is_bound() ) + field_n1UENetworkCap = other_value.field_n1UENetworkCap; +if (other_value.field_ueRadioCapIdAvailability.is_bound() ) + field_ueRadioCapIdAvailability = other_value.field_ueRadioCapIdAvailability; +if (other_value.field_requestedWUSAssistInfo.is_bound() ) + field_requestedWUSAssistInfo = other_value.field_requestedWUSAssistInfo; +if (other_value.field_drxInNB__S1.is_bound() ) + field_drxInNB__S1 = other_value.field_drxInNB__S1; +if (other_value.field_requestedIMSI__Offset.is_bound() ) + field_requestedIMSI__Offset = other_value.field_requestedIMSI__Offset; +if (other_value.field_ueRequestType.is_bound() ) + field_ueRequestType = other_value.field_ueRequestType; +if (other_value.field_pagingRestriction.is_bound() ) + field_pagingRestriction = other_value.field_pagingRestriction; +init_vec(); +} + +TRACKING__AREA__UPDATE__REQUEST::TRACKING__AREA__UPDATE__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_asmeNasKeySetId, + const EPS__UpdateType& par_epsUpdateType, + const NAS__CommonTypeDefs::MobileIdentity& par_oldGuti, + const OPTIONAL& par_nonCurrentNativeNasKeySetId, + const OPTIONAL& par_gprsCipheringKeySeqNum, + const OPTIONAL& par_oldPtmsiSignature, + const OPTIONAL& par_additionalGuti, + const OPTIONAL& par_nonce, + const OPTIONAL& par_ueNetworkCapability, + const OPTIONAL& par_lastVisitedRegisteredTai, + const OPTIONAL& par_drxParameter, + const OPTIONAL& par_ueRadioCapNeeded, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_msNetworkCapability, + const OPTIONAL& par_oldLai, + const OPTIONAL& par_tmsiStatus, + const OPTIONAL& par_msClassmark2, + const OPTIONAL& par_msClassmark3, + const OPTIONAL& par_supportedCodecList, + const OPTIONAL& par_addUpdateType, + const OPTIONAL& par_voiceDomainPref, + const OPTIONAL& par_oldGUTI__Type, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_msNetworkFeatureSupport, + const OPTIONAL& par_tmsiBasedNRIContainer, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_t3412ExtdValue, + const OPTIONAL& par_extendedDRXParams, + const OPTIONAL& par_ueAddSecurityCap, + const OPTIONAL& par_ueStatus, + const OPTIONAL& par_addInfoReq, + const OPTIONAL& par_n1UENetworkCap, + const OPTIONAL& par_ueRadioCapIdAvailability, + const OPTIONAL& par_requestedWUSAssistInfo, + const OPTIONAL& par_drxInNB__S1, + const OPTIONAL& par_requestedIMSI__Offset, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestriction) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_asmeNasKeySetId(par_asmeNasKeySetId), + field_epsUpdateType(par_epsUpdateType), + field_oldGuti(par_oldGuti), + field_nonCurrentNativeNasKeySetId(par_nonCurrentNativeNasKeySetId), + field_gprsCipheringKeySeqNum(par_gprsCipheringKeySeqNum), + field_oldPtmsiSignature(par_oldPtmsiSignature), + field_additionalGuti(par_additionalGuti), + field_nonce(par_nonce), + field_ueNetworkCapability(par_ueNetworkCapability), + field_lastVisitedRegisteredTai(par_lastVisitedRegisteredTai), + field_drxParameter(par_drxParameter), + field_ueRadioCapNeeded(par_ueRadioCapNeeded), + field_epsBearerContextStatus(par_epsBearerContextStatus), + field_msNetworkCapability(par_msNetworkCapability), + field_oldLai(par_oldLai), + field_tmsiStatus(par_tmsiStatus), + field_msClassmark2(par_msClassmark2), + field_msClassmark3(par_msClassmark3), + field_supportedCodecList(par_supportedCodecList), + field_addUpdateType(par_addUpdateType), + field_voiceDomainPref(par_voiceDomainPref), + field_oldGUTI__Type(par_oldGUTI__Type), + field_deviceProperties(par_deviceProperties), + field_msNetworkFeatureSupport(par_msNetworkFeatureSupport), + field_tmsiBasedNRIContainer(par_tmsiBasedNRIContainer), + field_t3324Value(par_t3324Value), + field_t3412ExtdValue(par_t3412ExtdValue), + field_extendedDRXParams(par_extendedDRXParams), + field_ueAddSecurityCap(par_ueAddSecurityCap), + field_ueStatus(par_ueStatus), + field_addInfoReq(par_addInfoReq), + field_n1UENetworkCap(par_n1UENetworkCap), + field_ueRadioCapIdAvailability(par_ueRadioCapIdAvailability), + field_requestedWUSAssistInfo(par_requestedWUSAssistInfo), + field_drxInNB__S1(par_drxInNB__S1), + field_requestedIMSI__Offset(par_requestedIMSI__Offset), + field_ueRequestType(par_ueRequestType), + field_pagingRestriction(par_pagingRestriction) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__REQUEST::get_descriptor() const { return &TRACKING__AREA__UPDATE__REQUEST_descr_; } +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &EPS__UpdateType_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &NAS__CommonTypeDefs::CiphKeySeqNum_descr_, &NAS__CommonTypeDefs::PTMSI__Signature_descr_, &NAS__CommonTypeDefs::MobileIdentity_descr_, &Nonce_descr_, &NAS__CommonTypeDefs::UE__NetworkCap_descr_, &TrackingAreaId_descr_, &NAS__CommonTypeDefs::DRXparameter_descr_, &UERadioCapInfoUpdateNeeded_descr_, &NAS__CommonTypeDefs::EPS__BearerContextStatus_descr_, &NAS__CommonTypeDefs::MS__NetworkCap_descr_, &NAS__CommonTypeDefs::LocAreaId_descr_, &NAS__CommonTypeDefs::TMSI__Status_descr_, &NAS__CommonTypeDefs::MS__Clsmk2_descr_, &NAS__CommonTypeDefs::MS__Clsmk3_descr_, &NAS__CommonTypeDefs::CodecList_descr_, &NAS__CommonTypeDefs::AdditionalUpdateType_descr_, &NAS__CommonTypeDefs::VoiceDomainPref_descr_, &GUTI__Type_descr_, &NAS__CommonTypeDefs::DeviceProperties_descr_, &NAS__CommonTypeDefs::MS__NetworkFeatureSupport_descr_, &NAS__CommonTypeDefs::NwkResourceId_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::ExtdDRXParams_descr_, &UE__AdditionalSecurityCapability_descr_, &NAS__CommonTypeDefs::UE__Status_descr_, &AdditionalInfoReq_descr_, &N1__UENetworkCap_descr_, &UERadioCapIdAvailability_descr_, &NAS__CommonTypeDefs::WUSAssistInfo_descr_, &NAS__CommonTypeDefs::DRXParamCommon_descr_, &IMSI__Offset_descr_, &NAS__CommonTypeDefs::UE__RequestType_descr_, &PagingRestriction_descr_ }; +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TRACKING__AREA__UPDATE__REQUEST::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "asmeNasKeySetId", "epsUpdateType", "oldGuti", "nonCurrentNativeNasKeySetId", "gprsCipheringKeySeqNum", "oldPtmsiSignature", "additionalGuti", "nonce", "ueNetworkCapability", "lastVisitedRegisteredTai", "drxParameter", "ueRadioCapNeeded", "epsBearerContextStatus", "msNetworkCapability", "oldLai", "tmsiStatus", "msClassmark2", "msClassmark3", "supportedCodecList", "addUpdateType", "voiceDomainPref", "oldGUTI_Type", "deviceProperties", "msNetworkFeatureSupport", "tmsiBasedNRIContainer", "t3324Value", "t3412ExtdValue", "extendedDRXParams", "ueAddSecurityCap", "ueStatus", "addInfoReq", "n1UENetworkCap", "ueRadioCapIdAvailability", "requestedWUSAssistInfo", "drxInNB_S1", "requestedIMSI_Offset", "ueRequestType", "pagingRestriction" }; +const char* TRACKING__AREA__UPDATE__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TRACKING__AREA__UPDATE__REQUEST::optional_indexes[] = { 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1 }; +const int* TRACKING__AREA__UPDATE__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int TRACKING__AREA__UPDATE__REQUEST::optional_indexes_asn[] = { 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1 }; +const int* TRACKING__AREA__UPDATE__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TRACKING__AREA__UPDATE__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 41; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[4] = was_any ? new EPS__UpdateType_template(ANY_VALUE) : new EPS__UpdateType_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_VALUE) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::CiphKeySeqNum_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::CiphKeySeqNum_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::PTMSI__Signature_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::PTMSI__Signature_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::MobileIdentity_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MobileIdentity_template; +single_value.value_elements[10] = was_any ? new Nonce_template(ANY_OR_OMIT) : new Nonce_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::UE__NetworkCap_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__NetworkCap_template; +single_value.value_elements[12] = was_any ? new TrackingAreaId_template(ANY_OR_OMIT) : new TrackingAreaId_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::DRXparameter_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXparameter_template; +single_value.value_elements[14] = was_any ? new UERadioCapInfoUpdateNeeded_template(ANY_OR_OMIT) : new UERadioCapInfoUpdateNeeded_template; +single_value.value_elements[15] = was_any ? new NAS__CommonTypeDefs::EPS__BearerContextStatus_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__BearerContextStatus_template; +single_value.value_elements[16] = was_any ? new NAS__CommonTypeDefs::MS__NetworkCap_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MS__NetworkCap_template; +single_value.value_elements[17] = was_any ? new NAS__CommonTypeDefs::LocAreaId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::LocAreaId_template; +single_value.value_elements[18] = was_any ? new NAS__CommonTypeDefs::TMSI__Status_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::TMSI__Status_template; +single_value.value_elements[19] = was_any ? new NAS__CommonTypeDefs::MS__Clsmk2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MS__Clsmk2_template; +single_value.value_elements[20] = was_any ? new NAS__CommonTypeDefs::MS__Clsmk3_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MS__Clsmk3_template; +single_value.value_elements[21] = was_any ? new NAS__CommonTypeDefs::CodecList_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::CodecList_template; +single_value.value_elements[22] = was_any ? new NAS__CommonTypeDefs::AdditionalUpdateType_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AdditionalUpdateType_template; +single_value.value_elements[23] = was_any ? new NAS__CommonTypeDefs::VoiceDomainPref_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::VoiceDomainPref_template; +single_value.value_elements[24] = was_any ? new GUTI__Type_template(ANY_OR_OMIT) : new GUTI__Type_template; +single_value.value_elements[25] = was_any ? new NAS__CommonTypeDefs::DeviceProperties_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DeviceProperties_template; +single_value.value_elements[26] = was_any ? new NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template; +single_value.value_elements[27] = was_any ? new NAS__CommonTypeDefs::NwkResourceId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NwkResourceId_template; +single_value.value_elements[28] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[29] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[30] = was_any ? new NAS__CommonTypeDefs::ExtdDRXParams_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdDRXParams_template; +single_value.value_elements[31] = was_any ? new UE__AdditionalSecurityCapability_template(ANY_OR_OMIT) : new UE__AdditionalSecurityCapability_template; +single_value.value_elements[32] = was_any ? new NAS__CommonTypeDefs::UE__Status_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__Status_template; +single_value.value_elements[33] = was_any ? new AdditionalInfoReq_template(ANY_OR_OMIT) : new AdditionalInfoReq_template; +single_value.value_elements[34] = was_any ? new N1__UENetworkCap_template(ANY_OR_OMIT) : new N1__UENetworkCap_template; +single_value.value_elements[35] = was_any ? new UERadioCapIdAvailability_template(ANY_OR_OMIT) : new UERadioCapIdAvailability_template; +single_value.value_elements[36] = was_any ? new NAS__CommonTypeDefs::WUSAssistInfo_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WUSAssistInfo_template; +single_value.value_elements[37] = was_any ? new NAS__CommonTypeDefs::DRXParamCommon_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXParamCommon_template; +single_value.value_elements[38] = was_any ? new IMSI__Offset_template(ANY_OR_OMIT) : new IMSI__Offset_template; +single_value.value_elements[39] = was_any ? new NAS__CommonTypeDefs::UE__RequestType_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__RequestType_template; +single_value.value_elements[40] = was_any ? new PagingRestriction_template(ANY_OR_OMIT) : new PagingRestriction_template; +} +} + +TRACKING__AREA__UPDATE__REQUEST_template::TRACKING__AREA__UPDATE__REQUEST_template(TRACKING__AREA__UPDATE__REQUEST_template* p_precondition, TRACKING__AREA__UPDATE__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TRACKING__AREA__UPDATE__REQUEST_template::TRACKING__AREA__UPDATE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TRACKING__AREA__UPDATE__REQUEST_template::~TRACKING__AREA__UPDATE__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TRACKING__AREA__UPDATE__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const TRACKING__AREA__UPDATE__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TRACKING__AREA__UPDATE__REQUEST_template& TRACKING__AREA__UPDATE__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TRACKING__AREA__UPDATE__REQUEST_template& TRACKING__AREA__UPDATE__REQUEST_template::operator=(const TRACKING__AREA__UPDATE__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TRACKING__AREA__UPDATE__REQUEST_template& TRACKING__AREA__UPDATE__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TRACKING__AREA__UPDATE__REQUEST_template& TRACKING__AREA__UPDATE__REQUEST_template::operator=(const TRACKING__AREA__UPDATE__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TRACKING__AREA__UPDATE__REQUEST TRACKING__AREA__UPDATE__REQUEST_template::valueof() const +{ +TRACKING__AREA__UPDATE__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& TRACKING__AREA__UPDATE__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& TRACKING__AREA__UPDATE__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& TRACKING__AREA__UPDATE__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& TRACKING__AREA__UPDATE__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& TRACKING__AREA__UPDATE__REQUEST_template::asmeNasKeySetId() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& TRACKING__AREA__UPDATE__REQUEST_template::asmeNasKeySetId() const { return *(static_cast(get_at(3))); } +EPS__UpdateType_template& TRACKING__AREA__UPDATE__REQUEST_template::epsUpdateType() { return *(static_cast(get_at(4))); } +const EPS__UpdateType_template& TRACKING__AREA__UPDATE__REQUEST_template::epsUpdateType() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::MobileIdentity_template& TRACKING__AREA__UPDATE__REQUEST_template::oldGuti() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::MobileIdentity_template& TRACKING__AREA__UPDATE__REQUEST_template::oldGuti() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& TRACKING__AREA__UPDATE__REQUEST_template::nonCurrentNativeNasKeySetId() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& TRACKING__AREA__UPDATE__REQUEST_template::nonCurrentNativeNasKeySetId() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::CiphKeySeqNum_template& TRACKING__AREA__UPDATE__REQUEST_template::gprsCipheringKeySeqNum() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::CiphKeySeqNum_template& TRACKING__AREA__UPDATE__REQUEST_template::gprsCipheringKeySeqNum() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::PTMSI__Signature_template& TRACKING__AREA__UPDATE__REQUEST_template::oldPtmsiSignature() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::PTMSI__Signature_template& TRACKING__AREA__UPDATE__REQUEST_template::oldPtmsiSignature() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::MobileIdentity_template& TRACKING__AREA__UPDATE__REQUEST_template::additionalGuti() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::MobileIdentity_template& TRACKING__AREA__UPDATE__REQUEST_template::additionalGuti() const { return *(static_cast(get_at(9))); } +Nonce_template& TRACKING__AREA__UPDATE__REQUEST_template::nonce() { return *(static_cast(get_at(10))); } +const Nonce_template& TRACKING__AREA__UPDATE__REQUEST_template::nonce() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::UE__NetworkCap_template& TRACKING__AREA__UPDATE__REQUEST_template::ueNetworkCapability() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::UE__NetworkCap_template& TRACKING__AREA__UPDATE__REQUEST_template::ueNetworkCapability() const { return *(static_cast(get_at(11))); } +TrackingAreaId_template& TRACKING__AREA__UPDATE__REQUEST_template::lastVisitedRegisteredTai() { return *(static_cast(get_at(12))); } +const TrackingAreaId_template& TRACKING__AREA__UPDATE__REQUEST_template::lastVisitedRegisteredTai() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::DRXparameter_template& TRACKING__AREA__UPDATE__REQUEST_template::drxParameter() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::DRXparameter_template& TRACKING__AREA__UPDATE__REQUEST_template::drxParameter() const { return *(static_cast(get_at(13))); } +UERadioCapInfoUpdateNeeded_template& TRACKING__AREA__UPDATE__REQUEST_template::ueRadioCapNeeded() { return *(static_cast(get_at(14))); } +const UERadioCapInfoUpdateNeeded_template& TRACKING__AREA__UPDATE__REQUEST_template::ueRadioCapNeeded() const { return *(static_cast(get_at(14))); } +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& TRACKING__AREA__UPDATE__REQUEST_template::epsBearerContextStatus() { return *(static_cast(get_at(15))); } +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& TRACKING__AREA__UPDATE__REQUEST_template::epsBearerContextStatus() const { return *(static_cast(get_at(15))); } +NAS__CommonTypeDefs::MS__NetworkCap_template& TRACKING__AREA__UPDATE__REQUEST_template::msNetworkCapability() { return *(static_cast(get_at(16))); } +const NAS__CommonTypeDefs::MS__NetworkCap_template& TRACKING__AREA__UPDATE__REQUEST_template::msNetworkCapability() const { return *(static_cast(get_at(16))); } +NAS__CommonTypeDefs::LocAreaId_template& TRACKING__AREA__UPDATE__REQUEST_template::oldLai() { return *(static_cast(get_at(17))); } +const NAS__CommonTypeDefs::LocAreaId_template& TRACKING__AREA__UPDATE__REQUEST_template::oldLai() const { return *(static_cast(get_at(17))); } +NAS__CommonTypeDefs::TMSI__Status_template& TRACKING__AREA__UPDATE__REQUEST_template::tmsiStatus() { return *(static_cast(get_at(18))); } +const NAS__CommonTypeDefs::TMSI__Status_template& TRACKING__AREA__UPDATE__REQUEST_template::tmsiStatus() const { return *(static_cast(get_at(18))); } +NAS__CommonTypeDefs::MS__Clsmk2_template& TRACKING__AREA__UPDATE__REQUEST_template::msClassmark2() { return *(static_cast(get_at(19))); } +const NAS__CommonTypeDefs::MS__Clsmk2_template& TRACKING__AREA__UPDATE__REQUEST_template::msClassmark2() const { return *(static_cast(get_at(19))); } +NAS__CommonTypeDefs::MS__Clsmk3_template& TRACKING__AREA__UPDATE__REQUEST_template::msClassmark3() { return *(static_cast(get_at(20))); } +const NAS__CommonTypeDefs::MS__Clsmk3_template& TRACKING__AREA__UPDATE__REQUEST_template::msClassmark3() const { return *(static_cast(get_at(20))); } +NAS__CommonTypeDefs::CodecList_template& TRACKING__AREA__UPDATE__REQUEST_template::supportedCodecList() { return *(static_cast(get_at(21))); } +const NAS__CommonTypeDefs::CodecList_template& TRACKING__AREA__UPDATE__REQUEST_template::supportedCodecList() const { return *(static_cast(get_at(21))); } +NAS__CommonTypeDefs::AdditionalUpdateType_template& TRACKING__AREA__UPDATE__REQUEST_template::addUpdateType() { return *(static_cast(get_at(22))); } +const NAS__CommonTypeDefs::AdditionalUpdateType_template& TRACKING__AREA__UPDATE__REQUEST_template::addUpdateType() const { return *(static_cast(get_at(22))); } +NAS__CommonTypeDefs::VoiceDomainPref_template& TRACKING__AREA__UPDATE__REQUEST_template::voiceDomainPref() { return *(static_cast(get_at(23))); } +const NAS__CommonTypeDefs::VoiceDomainPref_template& TRACKING__AREA__UPDATE__REQUEST_template::voiceDomainPref() const { return *(static_cast(get_at(23))); } +GUTI__Type_template& TRACKING__AREA__UPDATE__REQUEST_template::oldGUTI__Type() { return *(static_cast(get_at(24))); } +const GUTI__Type_template& TRACKING__AREA__UPDATE__REQUEST_template::oldGUTI__Type() const { return *(static_cast(get_at(24))); } +NAS__CommonTypeDefs::DeviceProperties_template& TRACKING__AREA__UPDATE__REQUEST_template::deviceProperties() { return *(static_cast(get_at(25))); } +const NAS__CommonTypeDefs::DeviceProperties_template& TRACKING__AREA__UPDATE__REQUEST_template::deviceProperties() const { return *(static_cast(get_at(25))); } +NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template& TRACKING__AREA__UPDATE__REQUEST_template::msNetworkFeatureSupport() { return *(static_cast(get_at(26))); } +const NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template& TRACKING__AREA__UPDATE__REQUEST_template::msNetworkFeatureSupport() const { return *(static_cast(get_at(26))); } +NAS__CommonTypeDefs::NwkResourceId_template& TRACKING__AREA__UPDATE__REQUEST_template::tmsiBasedNRIContainer() { return *(static_cast(get_at(27))); } +const NAS__CommonTypeDefs::NwkResourceId_template& TRACKING__AREA__UPDATE__REQUEST_template::tmsiBasedNRIContainer() const { return *(static_cast(get_at(27))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__REQUEST_template::t3324Value() { return *(static_cast(get_at(28))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__REQUEST_template::t3324Value() const { return *(static_cast(get_at(28))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__REQUEST_template::t3412ExtdValue() { return *(static_cast(get_at(29))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& TRACKING__AREA__UPDATE__REQUEST_template::t3412ExtdValue() const { return *(static_cast(get_at(29))); } +NAS__CommonTypeDefs::ExtdDRXParams_template& TRACKING__AREA__UPDATE__REQUEST_template::extendedDRXParams() { return *(static_cast(get_at(30))); } +const NAS__CommonTypeDefs::ExtdDRXParams_template& TRACKING__AREA__UPDATE__REQUEST_template::extendedDRXParams() const { return *(static_cast(get_at(30))); } +UE__AdditionalSecurityCapability_template& TRACKING__AREA__UPDATE__REQUEST_template::ueAddSecurityCap() { return *(static_cast(get_at(31))); } +const UE__AdditionalSecurityCapability_template& TRACKING__AREA__UPDATE__REQUEST_template::ueAddSecurityCap() const { return *(static_cast(get_at(31))); } +NAS__CommonTypeDefs::UE__Status_template& TRACKING__AREA__UPDATE__REQUEST_template::ueStatus() { return *(static_cast(get_at(32))); } +const NAS__CommonTypeDefs::UE__Status_template& TRACKING__AREA__UPDATE__REQUEST_template::ueStatus() const { return *(static_cast(get_at(32))); } +AdditionalInfoReq_template& TRACKING__AREA__UPDATE__REQUEST_template::addInfoReq() { return *(static_cast(get_at(33))); } +const AdditionalInfoReq_template& TRACKING__AREA__UPDATE__REQUEST_template::addInfoReq() const { return *(static_cast(get_at(33))); } +N1__UENetworkCap_template& TRACKING__AREA__UPDATE__REQUEST_template::n1UENetworkCap() { return *(static_cast(get_at(34))); } +const N1__UENetworkCap_template& TRACKING__AREA__UPDATE__REQUEST_template::n1UENetworkCap() const { return *(static_cast(get_at(34))); } +UERadioCapIdAvailability_template& TRACKING__AREA__UPDATE__REQUEST_template::ueRadioCapIdAvailability() { return *(static_cast(get_at(35))); } +const UERadioCapIdAvailability_template& TRACKING__AREA__UPDATE__REQUEST_template::ueRadioCapIdAvailability() const { return *(static_cast(get_at(35))); } +NAS__CommonTypeDefs::WUSAssistInfo_template& TRACKING__AREA__UPDATE__REQUEST_template::requestedWUSAssistInfo() { return *(static_cast(get_at(36))); } +const NAS__CommonTypeDefs::WUSAssistInfo_template& TRACKING__AREA__UPDATE__REQUEST_template::requestedWUSAssistInfo() const { return *(static_cast(get_at(36))); } +NAS__CommonTypeDefs::DRXParamCommon_template& TRACKING__AREA__UPDATE__REQUEST_template::drxInNB__S1() { return *(static_cast(get_at(37))); } +const NAS__CommonTypeDefs::DRXParamCommon_template& TRACKING__AREA__UPDATE__REQUEST_template::drxInNB__S1() const { return *(static_cast(get_at(37))); } +IMSI__Offset_template& TRACKING__AREA__UPDATE__REQUEST_template::requestedIMSI__Offset() { return *(static_cast(get_at(38))); } +const IMSI__Offset_template& TRACKING__AREA__UPDATE__REQUEST_template::requestedIMSI__Offset() const { return *(static_cast(get_at(38))); } +NAS__CommonTypeDefs::UE__RequestType_template& TRACKING__AREA__UPDATE__REQUEST_template::ueRequestType() { return *(static_cast(get_at(39))); } +const NAS__CommonTypeDefs::UE__RequestType_template& TRACKING__AREA__UPDATE__REQUEST_template::ueRequestType() const { return *(static_cast(get_at(39))); } +PagingRestriction_template& TRACKING__AREA__UPDATE__REQUEST_template::pagingRestriction() { return *(static_cast(get_at(40))); } +const PagingRestriction_template& TRACKING__AREA__UPDATE__REQUEST_template::pagingRestriction() const { return *(static_cast(get_at(40))); } +const TTCN_Typedescriptor_t* TRACKING__AREA__UPDATE__REQUEST_template::get_descriptor() const { return &TRACKING__AREA__UPDATE__REQUEST_descr_; } +const char* TRACKING__AREA__UPDATE__REQUEST_template::fld_name(int p_index) const { return TRACKING__AREA__UPDATE__REQUEST::fld_names[p_index]; } +void UERadioCapInfoUpdateNeeded::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_urcUpdate; } + +UERadioCapInfoUpdateNeeded::UERadioCapInfoUpdateNeeded() : Record_Type() { init_vec(); } + +UERadioCapInfoUpdateNeeded::UERadioCapInfoUpdateNeeded(const UERadioCapInfoUpdateNeeded& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_urcUpdate.is_bound() ) + field_urcUpdate = other_value.field_urcUpdate; +init_vec(); +} + +UERadioCapInfoUpdateNeeded::UERadioCapInfoUpdateNeeded(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_urcUpdate) : field_iei(par_iei), + field_spare(par_spare), + field_urcUpdate(par_urcUpdate) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UERadioCapInfoUpdateNeeded::get_descriptor() const { return &UERadioCapInfoUpdateNeeded_descr_; } +const TTCN_Typedescriptor_t* UERadioCapInfoUpdateNeeded::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* UERadioCapInfoUpdateNeeded::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UERadioCapInfoUpdateNeeded::fld_names[] = { "iei", "spare", "urcUpdate" }; +const char* UERadioCapInfoUpdateNeeded::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UERadioCapInfoUpdateNeeded::optional_indexes[] = { 0, -1 }; +const int* UERadioCapInfoUpdateNeeded::get_optional_indexes() const { return optional_indexes; } + +const int UERadioCapInfoUpdateNeeded::optional_indexes_asn[] = { 0, -1 }; +const int* UERadioCapInfoUpdateNeeded::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UERadioCapInfoUpdateNeeded_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UERadioCapInfoUpdateNeeded_template::UERadioCapInfoUpdateNeeded_template(UERadioCapInfoUpdateNeeded_template* p_precondition, UERadioCapInfoUpdateNeeded_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UERadioCapInfoUpdateNeeded_template::UERadioCapInfoUpdateNeeded_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UERadioCapInfoUpdateNeeded_template::~UERadioCapInfoUpdateNeeded_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UERadioCapInfoUpdateNeeded_template::match_dynamic(const Base_Type* match_value) const +{ +const UERadioCapInfoUpdateNeeded* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UERadioCapInfoUpdateNeeded_template& UERadioCapInfoUpdateNeeded_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UERadioCapInfoUpdateNeeded_template& UERadioCapInfoUpdateNeeded_template::operator=(const UERadioCapInfoUpdateNeeded& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UERadioCapInfoUpdateNeeded_template& UERadioCapInfoUpdateNeeded_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UERadioCapInfoUpdateNeeded_template& UERadioCapInfoUpdateNeeded_template::operator=(const UERadioCapInfoUpdateNeeded_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UERadioCapInfoUpdateNeeded UERadioCapInfoUpdateNeeded_template::valueof() const +{ +UERadioCapInfoUpdateNeeded ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& UERadioCapInfoUpdateNeeded_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& UERadioCapInfoUpdateNeeded_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UERadioCapInfoUpdateNeeded_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UERadioCapInfoUpdateNeeded_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UERadioCapInfoUpdateNeeded_template::urcUpdate() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UERadioCapInfoUpdateNeeded_template::urcUpdate() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UERadioCapInfoUpdateNeeded_template::get_descriptor() const { return &UERadioCapInfoUpdateNeeded_descr_; } +const char* UERadioCapInfoUpdateNeeded_template::fld_name(int p_index) const { return UERadioCapInfoUpdateNeeded::fld_names[p_index]; } +void UL__NAS__TRANSPORT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_nasMessage; } + +UL__NAS__TRANSPORT::UL__NAS__TRANSPORT() : Record_Type() { init_vec(); } + +UL__NAS__TRANSPORT::UL__NAS__TRANSPORT(const UL__NAS__TRANSPORT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_nasMessage.is_bound() ) + field_nasMessage = other_value.field_nasMessage; +init_vec(); +} + +UL__NAS__TRANSPORT::UL__NAS__TRANSPORT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__MessageContainer& par_nasMessage) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_nasMessage(par_nasMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UL__NAS__TRANSPORT::get_descriptor() const { return &UL__NAS__TRANSPORT_descr_; } +const TTCN_Typedescriptor_t* UL__NAS__TRANSPORT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__MessageContainer_descr_ }; +const TTCN_Typedescriptor_t* UL__NAS__TRANSPORT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UL__NAS__TRANSPORT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "nasMessage" }; +const char* UL__NAS__TRANSPORT::fld_name(int p_index) const { return fld_names[p_index]; } + +void UL__NAS__TRANSPORT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__MessageContainer_template(ANY_VALUE) : new NAS__MessageContainer_template; +} +} + +UL__NAS__TRANSPORT_template::UL__NAS__TRANSPORT_template(UL__NAS__TRANSPORT_template* p_precondition, UL__NAS__TRANSPORT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UL__NAS__TRANSPORT_template::UL__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UL__NAS__TRANSPORT_template::~UL__NAS__TRANSPORT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UL__NAS__TRANSPORT_template::match_dynamic(const Base_Type* match_value) const +{ +const UL__NAS__TRANSPORT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UL__NAS__TRANSPORT_template& UL__NAS__TRANSPORT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UL__NAS__TRANSPORT_template& UL__NAS__TRANSPORT_template::operator=(const UL__NAS__TRANSPORT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UL__NAS__TRANSPORT_template& UL__NAS__TRANSPORT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UL__NAS__TRANSPORT_template& UL__NAS__TRANSPORT_template::operator=(const UL__NAS__TRANSPORT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UL__NAS__TRANSPORT UL__NAS__TRANSPORT_template::valueof() const +{ +UL__NAS__TRANSPORT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UL__NAS__TRANSPORT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UL__NAS__TRANSPORT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UL__NAS__TRANSPORT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UL__NAS__TRANSPORT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UL__NAS__TRANSPORT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UL__NAS__TRANSPORT_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__MessageContainer_template& UL__NAS__TRANSPORT_template::nasMessage() { return *(static_cast(get_at(3))); } +const NAS__MessageContainer_template& UL__NAS__TRANSPORT_template::nasMessage() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UL__NAS__TRANSPORT_template::get_descriptor() const { return &UL__NAS__TRANSPORT_descr_; } +const char* UL__NAS__TRANSPORT_template::fld_name(int p_index) const { return UL__NAS__TRANSPORT::fld_names[p_index]; } +void GenericMessageContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_genericMsgContainerValue; } + +GenericMessageContainer::GenericMessageContainer() : Record_Type() { init_vec(); } + +GenericMessageContainer::GenericMessageContainer(const GenericMessageContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_genericMsgContainerValue.is_bound() ) + field_genericMsgContainerValue = other_value.field_genericMsgContainerValue; +init_vec(); +} + +GenericMessageContainer::GenericMessageContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_genericMsgContainerValue) : field_iei(par_iei), + field_iel(par_iel), + field_genericMsgContainerValue(par_genericMsgContainerValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* GenericMessageContainer::get_descriptor() const { return &GenericMessageContainer_descr_; } +const TTCN_Typedescriptor_t* GenericMessageContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* GenericMessageContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* GenericMessageContainer::fld_names[] = { "iei", "iel", "genericMsgContainerValue" }; +const char* GenericMessageContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int GenericMessageContainer::optional_indexes[] = { 0, -1 }; +const int* GenericMessageContainer::get_optional_indexes() const { return optional_indexes; } + +const int GenericMessageContainer::optional_indexes_asn[] = { 0, -1 }; +const int* GenericMessageContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void GenericMessageContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +GenericMessageContainer_template::GenericMessageContainer_template(GenericMessageContainer_template* p_precondition, GenericMessageContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +GenericMessageContainer_template::GenericMessageContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +GenericMessageContainer_template::~GenericMessageContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean GenericMessageContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const GenericMessageContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +GenericMessageContainer_template& GenericMessageContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GenericMessageContainer_template& GenericMessageContainer_template::operator=(const GenericMessageContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +GenericMessageContainer_template& GenericMessageContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +GenericMessageContainer_template& GenericMessageContainer_template::operator=(const GenericMessageContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +GenericMessageContainer GenericMessageContainer_template::valueof() const +{ +GenericMessageContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& GenericMessageContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& GenericMessageContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& GenericMessageContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& GenericMessageContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& GenericMessageContainer_template::genericMsgContainerValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& GenericMessageContainer_template::genericMsgContainerValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* GenericMessageContainer_template::get_descriptor() const { return &GenericMessageContainer_descr_; } +const char* GenericMessageContainer_template::fld_name(int p_index) const { return GenericMessageContainer::fld_names[p_index]; } +void DL__GENERIC__NAS__TRANSPORT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_genericMessageContainerType; fld_vec[4]=&field_genericMessageContainer; fld_vec[5]=&field_additionalInformation; } + +DL__GENERIC__NAS__TRANSPORT::DL__GENERIC__NAS__TRANSPORT() : Record_Type() { init_vec(); } + +DL__GENERIC__NAS__TRANSPORT::DL__GENERIC__NAS__TRANSPORT(const DL__GENERIC__NAS__TRANSPORT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_genericMessageContainerType.is_bound() ) + field_genericMessageContainerType = other_value.field_genericMessageContainerType; +if (other_value.field_genericMessageContainer.is_bound() ) + field_genericMessageContainer = other_value.field_genericMessageContainer; +if (other_value.field_additionalInformation.is_bound() ) + field_additionalInformation = other_value.field_additionalInformation; +init_vec(); +} + +DL__GENERIC__NAS__TRANSPORT::DL__GENERIC__NAS__TRANSPORT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_genericMessageContainerType, + const GenericMessageContainer& par_genericMessageContainer, + const OPTIONAL& par_additionalInformation) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_genericMessageContainerType(par_genericMessageContainerType), + field_genericMessageContainer(par_genericMessageContainer), + field_additionalInformation(par_additionalInformation) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DL__GENERIC__NAS__TRANSPORT::get_descriptor() const { return &DL__GENERIC__NAS__TRANSPORT_descr_; } +const TTCN_Typedescriptor_t* DL__GENERIC__NAS__TRANSPORT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GenericMessageContainerType_descr_, &GenericMessageContainer_descr_, &NAS__CommonTypeDefs::AdditionalInformation_descr_ }; +const TTCN_Typedescriptor_t* DL__GENERIC__NAS__TRANSPORT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DL__GENERIC__NAS__TRANSPORT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "genericMessageContainerType", "genericMessageContainer", "additionalInformation" }; +const char* DL__GENERIC__NAS__TRANSPORT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DL__GENERIC__NAS__TRANSPORT::optional_indexes[] = { 5, -1 }; +const int* DL__GENERIC__NAS__TRANSPORT::get_optional_indexes() const { return optional_indexes; } + +const int DL__GENERIC__NAS__TRANSPORT::optional_indexes_asn[] = { 5, -1 }; +const int* DL__GENERIC__NAS__TRANSPORT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DL__GENERIC__NAS__TRANSPORT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GenericMessageContainer_template(ANY_VALUE) : new GenericMessageContainer_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::AdditionalInformation_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AdditionalInformation_template; +} +} + +DL__GENERIC__NAS__TRANSPORT_template::DL__GENERIC__NAS__TRANSPORT_template(DL__GENERIC__NAS__TRANSPORT_template* p_precondition, DL__GENERIC__NAS__TRANSPORT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DL__GENERIC__NAS__TRANSPORT_template::DL__GENERIC__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DL__GENERIC__NAS__TRANSPORT_template::~DL__GENERIC__NAS__TRANSPORT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DL__GENERIC__NAS__TRANSPORT_template::match_dynamic(const Base_Type* match_value) const +{ +const DL__GENERIC__NAS__TRANSPORT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DL__GENERIC__NAS__TRANSPORT_template& DL__GENERIC__NAS__TRANSPORT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DL__GENERIC__NAS__TRANSPORT_template& DL__GENERIC__NAS__TRANSPORT_template::operator=(const DL__GENERIC__NAS__TRANSPORT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DL__GENERIC__NAS__TRANSPORT_template& DL__GENERIC__NAS__TRANSPORT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DL__GENERIC__NAS__TRANSPORT_template& DL__GENERIC__NAS__TRANSPORT_template::operator=(const DL__GENERIC__NAS__TRANSPORT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DL__GENERIC__NAS__TRANSPORT DL__GENERIC__NAS__TRANSPORT_template::valueof() const +{ +DL__GENERIC__NAS__TRANSPORT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DL__GENERIC__NAS__TRANSPORT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DL__GENERIC__NAS__TRANSPORT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DL__GENERIC__NAS__TRANSPORT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DL__GENERIC__NAS__TRANSPORT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DL__GENERIC__NAS__TRANSPORT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DL__GENERIC__NAS__TRANSPORT_template::messageType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& DL__GENERIC__NAS__TRANSPORT_template::genericMessageContainerType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& DL__GENERIC__NAS__TRANSPORT_template::genericMessageContainerType() const { return *(static_cast(get_at(3))); } +GenericMessageContainer_template& DL__GENERIC__NAS__TRANSPORT_template::genericMessageContainer() { return *(static_cast(get_at(4))); } +const GenericMessageContainer_template& DL__GENERIC__NAS__TRANSPORT_template::genericMessageContainer() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::AdditionalInformation_template& DL__GENERIC__NAS__TRANSPORT_template::additionalInformation() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::AdditionalInformation_template& DL__GENERIC__NAS__TRANSPORT_template::additionalInformation() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* DL__GENERIC__NAS__TRANSPORT_template::get_descriptor() const { return &DL__GENERIC__NAS__TRANSPORT_descr_; } +const char* DL__GENERIC__NAS__TRANSPORT_template::fld_name(int p_index) const { return DL__GENERIC__NAS__TRANSPORT::fld_names[p_index]; } +void UL__GENERIC__NAS__TRANSPORT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_genericMessageContainerType; fld_vec[4]=&field_genericMessageContainer; fld_vec[5]=&field_additionalInformation; } + +UL__GENERIC__NAS__TRANSPORT::UL__GENERIC__NAS__TRANSPORT() : Record_Type() { init_vec(); } + +UL__GENERIC__NAS__TRANSPORT::UL__GENERIC__NAS__TRANSPORT(const UL__GENERIC__NAS__TRANSPORT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_genericMessageContainerType.is_bound() ) + field_genericMessageContainerType = other_value.field_genericMessageContainerType; +if (other_value.field_genericMessageContainer.is_bound() ) + field_genericMessageContainer = other_value.field_genericMessageContainer; +if (other_value.field_additionalInformation.is_bound() ) + field_additionalInformation = other_value.field_additionalInformation; +init_vec(); +} + +UL__GENERIC__NAS__TRANSPORT::UL__GENERIC__NAS__TRANSPORT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_genericMessageContainerType, + const GenericMessageContainer& par_genericMessageContainer, + const OPTIONAL& par_additionalInformation) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_genericMessageContainerType(par_genericMessageContainerType), + field_genericMessageContainer(par_genericMessageContainer), + field_additionalInformation(par_additionalInformation) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UL__GENERIC__NAS__TRANSPORT::get_descriptor() const { return &UL__GENERIC__NAS__TRANSPORT_descr_; } +const TTCN_Typedescriptor_t* UL__GENERIC__NAS__TRANSPORT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GenericMessageContainerType_descr_, &GenericMessageContainer_descr_, &NAS__CommonTypeDefs::AdditionalInformation_descr_ }; +const TTCN_Typedescriptor_t* UL__GENERIC__NAS__TRANSPORT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UL__GENERIC__NAS__TRANSPORT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "genericMessageContainerType", "genericMessageContainer", "additionalInformation" }; +const char* UL__GENERIC__NAS__TRANSPORT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UL__GENERIC__NAS__TRANSPORT::optional_indexes[] = { 5, -1 }; +const int* UL__GENERIC__NAS__TRANSPORT::get_optional_indexes() const { return optional_indexes; } + +const int UL__GENERIC__NAS__TRANSPORT::optional_indexes_asn[] = { 5, -1 }; +const int* UL__GENERIC__NAS__TRANSPORT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UL__GENERIC__NAS__TRANSPORT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GenericMessageContainer_template(ANY_VALUE) : new GenericMessageContainer_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::AdditionalInformation_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AdditionalInformation_template; +} +} + +UL__GENERIC__NAS__TRANSPORT_template::UL__GENERIC__NAS__TRANSPORT_template(UL__GENERIC__NAS__TRANSPORT_template* p_precondition, UL__GENERIC__NAS__TRANSPORT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UL__GENERIC__NAS__TRANSPORT_template::UL__GENERIC__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UL__GENERIC__NAS__TRANSPORT_template::~UL__GENERIC__NAS__TRANSPORT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UL__GENERIC__NAS__TRANSPORT_template::match_dynamic(const Base_Type* match_value) const +{ +const UL__GENERIC__NAS__TRANSPORT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UL__GENERIC__NAS__TRANSPORT_template& UL__GENERIC__NAS__TRANSPORT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UL__GENERIC__NAS__TRANSPORT_template& UL__GENERIC__NAS__TRANSPORT_template::operator=(const UL__GENERIC__NAS__TRANSPORT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UL__GENERIC__NAS__TRANSPORT_template& UL__GENERIC__NAS__TRANSPORT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UL__GENERIC__NAS__TRANSPORT_template& UL__GENERIC__NAS__TRANSPORT_template::operator=(const UL__GENERIC__NAS__TRANSPORT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UL__GENERIC__NAS__TRANSPORT UL__GENERIC__NAS__TRANSPORT_template::valueof() const +{ +UL__GENERIC__NAS__TRANSPORT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UL__GENERIC__NAS__TRANSPORT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UL__GENERIC__NAS__TRANSPORT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UL__GENERIC__NAS__TRANSPORT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UL__GENERIC__NAS__TRANSPORT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UL__GENERIC__NAS__TRANSPORT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UL__GENERIC__NAS__TRANSPORT_template::messageType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UL__GENERIC__NAS__TRANSPORT_template::genericMessageContainerType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UL__GENERIC__NAS__TRANSPORT_template::genericMessageContainerType() const { return *(static_cast(get_at(3))); } +GenericMessageContainer_template& UL__GENERIC__NAS__TRANSPORT_template::genericMessageContainer() { return *(static_cast(get_at(4))); } +const GenericMessageContainer_template& UL__GENERIC__NAS__TRANSPORT_template::genericMessageContainer() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::AdditionalInformation_template& UL__GENERIC__NAS__TRANSPORT_template::additionalInformation() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::AdditionalInformation_template& UL__GENERIC__NAS__TRANSPORT_template::additionalInformation() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* UL__GENERIC__NAS__TRANSPORT_template::get_descriptor() const { return &UL__GENERIC__NAS__TRANSPORT_descr_; } +const char* UL__GENERIC__NAS__TRANSPORT_template::fld_name(int p_index) const { return UL__GENERIC__NAS__TRANSPORT::fld_names[p_index]; } +void ControlPlaneServiceType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_activeFlag; fld_vec[2]=&field_controlPlaneServiceType; } + +ControlPlaneServiceType::ControlPlaneServiceType() : Record_Type() { init_vec(); } + +ControlPlaneServiceType::ControlPlaneServiceType(const ControlPlaneServiceType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_activeFlag.is_bound() ) + field_activeFlag = other_value.field_activeFlag; +if (other_value.field_controlPlaneServiceType.is_bound() ) + field_controlPlaneServiceType = other_value.field_controlPlaneServiceType; +init_vec(); +} + +ControlPlaneServiceType::ControlPlaneServiceType(const OPTIONAL& par_iei, + const BITSTRING& par_activeFlag, + const BITSTRING& par_controlPlaneServiceType) : field_iei(par_iei), + field_activeFlag(par_activeFlag), + field_controlPlaneServiceType(par_controlPlaneServiceType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ControlPlaneServiceType::get_descriptor() const { return &ControlPlaneServiceType_descr_; } +const TTCN_Typedescriptor_t* ControlPlaneServiceType::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* ControlPlaneServiceType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ControlPlaneServiceType::fld_names[] = { "iei", "activeFlag", "controlPlaneServiceType" }; +const char* ControlPlaneServiceType::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ControlPlaneServiceType::optional_indexes[] = { 0, -1 }; +const int* ControlPlaneServiceType::get_optional_indexes() const { return optional_indexes; } + +const int ControlPlaneServiceType::optional_indexes_asn[] = { 0, -1 }; +const int* ControlPlaneServiceType::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ControlPlaneServiceType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ControlPlaneServiceType_template::ControlPlaneServiceType_template(ControlPlaneServiceType_template* p_precondition, ControlPlaneServiceType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ControlPlaneServiceType_template::ControlPlaneServiceType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ControlPlaneServiceType_template::~ControlPlaneServiceType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ControlPlaneServiceType_template::match_dynamic(const Base_Type* match_value) const +{ +const ControlPlaneServiceType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ControlPlaneServiceType_template& ControlPlaneServiceType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ControlPlaneServiceType_template& ControlPlaneServiceType_template::operator=(const ControlPlaneServiceType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ControlPlaneServiceType_template& ControlPlaneServiceType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ControlPlaneServiceType_template& ControlPlaneServiceType_template::operator=(const ControlPlaneServiceType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ControlPlaneServiceType ControlPlaneServiceType_template::valueof() const +{ +ControlPlaneServiceType ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ControlPlaneServiceType_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ControlPlaneServiceType_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ControlPlaneServiceType_template::activeFlag() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ControlPlaneServiceType_template::activeFlag() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ControlPlaneServiceType_template::controlPlaneServiceType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ControlPlaneServiceType_template::controlPlaneServiceType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ControlPlaneServiceType_template::get_descriptor() const { return &ControlPlaneServiceType_descr_; } +const char* ControlPlaneServiceType_template::fld_name(int p_index) const { return ControlPlaneServiceType::fld_names[p_index]; } +void CONTROL__PLANE__SERVICE__REQUEST::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_nasKeySetId; fld_vec[4]=&field_controlPlaneServiceType; fld_vec[5]=&field_esmMessage; fld_vec[6]=&field_nasMessage; fld_vec[7]=&field_epsBearerContextStatus; fld_vec[8]=&field_deviceProperties; fld_vec[9]=&field_ueRequestType; fld_vec[10]=&field_pagingRestriction; } + +CONTROL__PLANE__SERVICE__REQUEST::CONTROL__PLANE__SERVICE__REQUEST() : Record_Type() { init_vec(); } + +CONTROL__PLANE__SERVICE__REQUEST::CONTROL__PLANE__SERVICE__REQUEST(const CONTROL__PLANE__SERVICE__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_nasKeySetId.is_bound() ) + field_nasKeySetId = other_value.field_nasKeySetId; +if (other_value.field_controlPlaneServiceType.is_bound() ) + field_controlPlaneServiceType = other_value.field_controlPlaneServiceType; +if (other_value.field_esmMessage.is_bound() ) + field_esmMessage = other_value.field_esmMessage; +if (other_value.field_nasMessage.is_bound() ) + field_nasMessage = other_value.field_nasMessage; +if (other_value.field_epsBearerContextStatus.is_bound() ) + field_epsBearerContextStatus = other_value.field_epsBearerContextStatus; +if (other_value.field_deviceProperties.is_bound() ) + field_deviceProperties = other_value.field_deviceProperties; +if (other_value.field_ueRequestType.is_bound() ) + field_ueRequestType = other_value.field_ueRequestType; +if (other_value.field_pagingRestriction.is_bound() ) + field_pagingRestriction = other_value.field_pagingRestriction; +init_vec(); +} + +CONTROL__PLANE__SERVICE__REQUEST::CONTROL__PLANE__SERVICE__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_nasKeySetId, + const ControlPlaneServiceType& par_controlPlaneServiceType, + const OPTIONAL& par_esmMessage, + const OPTIONAL& par_nasMessage, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestriction) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_nasKeySetId(par_nasKeySetId), + field_controlPlaneServiceType(par_controlPlaneServiceType), + field_esmMessage(par_esmMessage), + field_nasMessage(par_nasMessage), + field_epsBearerContextStatus(par_epsBearerContextStatus), + field_deviceProperties(par_deviceProperties), + field_ueRequestType(par_ueRequestType), + field_pagingRestriction(par_pagingRestriction) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CONTROL__PLANE__SERVICE__REQUEST::get_descriptor() const { return &CONTROL__PLANE__SERVICE__REQUEST_descr_; } +const TTCN_Typedescriptor_t* CONTROL__PLANE__SERVICE__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &ControlPlaneServiceType_descr_, &ESM__MessageContainer_descr_, &NAS__MessageContainer_descr_, &NAS__CommonTypeDefs::EPS__BearerContextStatus_descr_, &NAS__CommonTypeDefs::DeviceProperties_descr_, &NAS__CommonTypeDefs::UE__RequestType_descr_, &PagingRestriction_descr_ }; +const TTCN_Typedescriptor_t* CONTROL__PLANE__SERVICE__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CONTROL__PLANE__SERVICE__REQUEST::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "nasKeySetId", "controlPlaneServiceType", "esmMessage", "nasMessage", "epsBearerContextStatus", "deviceProperties", "ueRequestType", "pagingRestriction" }; +const char* CONTROL__PLANE__SERVICE__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CONTROL__PLANE__SERVICE__REQUEST::optional_indexes[] = { 5, 6, 7, 8, 9, 10, -1 }; +const int* CONTROL__PLANE__SERVICE__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int CONTROL__PLANE__SERVICE__REQUEST::optional_indexes_asn[] = { 5, 6, 7, 8, 9, 10, -1 }; +const int* CONTROL__PLANE__SERVICE__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CONTROL__PLANE__SERVICE__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 11; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[4] = was_any ? new ControlPlaneServiceType_template(ANY_VALUE) : new ControlPlaneServiceType_template; +single_value.value_elements[5] = was_any ? new ESM__MessageContainer_template(ANY_OR_OMIT) : new ESM__MessageContainer_template; +single_value.value_elements[6] = was_any ? new NAS__MessageContainer_template(ANY_OR_OMIT) : new NAS__MessageContainer_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::EPS__BearerContextStatus_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__BearerContextStatus_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::DeviceProperties_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DeviceProperties_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::UE__RequestType_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__RequestType_template; +single_value.value_elements[10] = was_any ? new PagingRestriction_template(ANY_OR_OMIT) : new PagingRestriction_template; +} +} + +CONTROL__PLANE__SERVICE__REQUEST_template::CONTROL__PLANE__SERVICE__REQUEST_template(CONTROL__PLANE__SERVICE__REQUEST_template* p_precondition, CONTROL__PLANE__SERVICE__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CONTROL__PLANE__SERVICE__REQUEST_template::CONTROL__PLANE__SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CONTROL__PLANE__SERVICE__REQUEST_template::~CONTROL__PLANE__SERVICE__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CONTROL__PLANE__SERVICE__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const CONTROL__PLANE__SERVICE__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CONTROL__PLANE__SERVICE__REQUEST_template& CONTROL__PLANE__SERVICE__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CONTROL__PLANE__SERVICE__REQUEST_template& CONTROL__PLANE__SERVICE__REQUEST_template::operator=(const CONTROL__PLANE__SERVICE__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CONTROL__PLANE__SERVICE__REQUEST_template& CONTROL__PLANE__SERVICE__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CONTROL__PLANE__SERVICE__REQUEST_template& CONTROL__PLANE__SERVICE__REQUEST_template::operator=(const CONTROL__PLANE__SERVICE__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CONTROL__PLANE__SERVICE__REQUEST CONTROL__PLANE__SERVICE__REQUEST_template::valueof() const +{ +CONTROL__PLANE__SERVICE__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& CONTROL__PLANE__SERVICE__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& CONTROL__PLANE__SERVICE__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& CONTROL__PLANE__SERVICE__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& CONTROL__PLANE__SERVICE__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CONTROL__PLANE__SERVICE__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CONTROL__PLANE__SERVICE__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& CONTROL__PLANE__SERVICE__REQUEST_template::nasKeySetId() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& CONTROL__PLANE__SERVICE__REQUEST_template::nasKeySetId() const { return *(static_cast(get_at(3))); } +ControlPlaneServiceType_template& CONTROL__PLANE__SERVICE__REQUEST_template::controlPlaneServiceType() { return *(static_cast(get_at(4))); } +const ControlPlaneServiceType_template& CONTROL__PLANE__SERVICE__REQUEST_template::controlPlaneServiceType() const { return *(static_cast(get_at(4))); } +ESM__MessageContainer_template& CONTROL__PLANE__SERVICE__REQUEST_template::esmMessage() { return *(static_cast(get_at(5))); } +const ESM__MessageContainer_template& CONTROL__PLANE__SERVICE__REQUEST_template::esmMessage() const { return *(static_cast(get_at(5))); } +NAS__MessageContainer_template& CONTROL__PLANE__SERVICE__REQUEST_template::nasMessage() { return *(static_cast(get_at(6))); } +const NAS__MessageContainer_template& CONTROL__PLANE__SERVICE__REQUEST_template::nasMessage() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& CONTROL__PLANE__SERVICE__REQUEST_template::epsBearerContextStatus() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& CONTROL__PLANE__SERVICE__REQUEST_template::epsBearerContextStatus() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::DeviceProperties_template& CONTROL__PLANE__SERVICE__REQUEST_template::deviceProperties() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::DeviceProperties_template& CONTROL__PLANE__SERVICE__REQUEST_template::deviceProperties() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::UE__RequestType_template& CONTROL__PLANE__SERVICE__REQUEST_template::ueRequestType() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::UE__RequestType_template& CONTROL__PLANE__SERVICE__REQUEST_template::ueRequestType() const { return *(static_cast(get_at(9))); } +PagingRestriction_template& CONTROL__PLANE__SERVICE__REQUEST_template::pagingRestriction() { return *(static_cast(get_at(10))); } +const PagingRestriction_template& CONTROL__PLANE__SERVICE__REQUEST_template::pagingRestriction() const { return *(static_cast(get_at(10))); } +const TTCN_Typedescriptor_t* CONTROL__PLANE__SERVICE__REQUEST_template::get_descriptor() const { return &CONTROL__PLANE__SERVICE__REQUEST_descr_; } +const char* CONTROL__PLANE__SERVICE__REQUEST_template::fld_name(int p_index) const { return CONTROL__PLANE__SERVICE__REQUEST::fld_names[p_index]; } +void SERVICE__ACCEPT::init_vec() { fld_vec[0]=&field_securityHeaderType; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_epsBearerContextStatus; fld_vec[4]=&field_t3448; fld_vec[5]=&field_epsAddRequestResult; } + +SERVICE__ACCEPT::SERVICE__ACCEPT() : Record_Type() { init_vec(); } + +SERVICE__ACCEPT::SERVICE__ACCEPT(const SERVICE__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_epsBearerContextStatus.is_bound() ) + field_epsBearerContextStatus = other_value.field_epsBearerContextStatus; +if (other_value.field_t3448.is_bound() ) + field_t3448 = other_value.field_t3448; +if (other_value.field_epsAddRequestResult.is_bound() ) + field_epsAddRequestResult = other_value.field_epsAddRequestResult; +init_vec(); +} + +SERVICE__ACCEPT::SERVICE__ACCEPT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_t3448, + const OPTIONAL& par_epsAddRequestResult) : field_securityHeaderType(par_securityHeaderType), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_epsBearerContextStatus(par_epsBearerContextStatus), + field_t3448(par_t3448), + field_epsAddRequestResult(par_epsAddRequestResult) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SERVICE__ACCEPT::get_descriptor() const { return &SERVICE__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* SERVICE__ACCEPT::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::EPS__BearerContextStatus_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &EPS__AddReqResult_descr_ }; +const TTCN_Typedescriptor_t* SERVICE__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SERVICE__ACCEPT::fld_names[] = { "securityHeaderType", "protocolDiscriminator", "messageType", "epsBearerContextStatus", "t3448", "epsAddRequestResult" }; +const char* SERVICE__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int SERVICE__ACCEPT::optional_indexes[] = { 3, 4, 5, -1 }; +const int* SERVICE__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int SERVICE__ACCEPT::optional_indexes_asn[] = { 3, 4, 5, -1 }; +const int* SERVICE__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void SERVICE__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::EPS__BearerContextStatus_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__BearerContextStatus_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[5] = was_any ? new EPS__AddReqResult_template(ANY_OR_OMIT) : new EPS__AddReqResult_template; +} +} + +SERVICE__ACCEPT_template::SERVICE__ACCEPT_template(SERVICE__ACCEPT_template* p_precondition, SERVICE__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SERVICE__ACCEPT_template::SERVICE__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SERVICE__ACCEPT_template::~SERVICE__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SERVICE__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const SERVICE__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SERVICE__ACCEPT_template& SERVICE__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SERVICE__ACCEPT_template& SERVICE__ACCEPT_template::operator=(const SERVICE__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SERVICE__ACCEPT_template& SERVICE__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SERVICE__ACCEPT_template& SERVICE__ACCEPT_template::operator=(const SERVICE__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SERVICE__ACCEPT SERVICE__ACCEPT_template::valueof() const +{ +SERVICE__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SERVICE__ACCEPT_template::securityHeaderType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SERVICE__ACCEPT_template::securityHeaderType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SERVICE__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SERVICE__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SERVICE__ACCEPT_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SERVICE__ACCEPT_template::messageType() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& SERVICE__ACCEPT_template::epsBearerContextStatus() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& SERVICE__ACCEPT_template::epsBearerContextStatus() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& SERVICE__ACCEPT_template::t3448() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& SERVICE__ACCEPT_template::t3448() const { return *(static_cast(get_at(4))); } +EPS__AddReqResult_template& SERVICE__ACCEPT_template::epsAddRequestResult() { return *(static_cast(get_at(5))); } +const EPS__AddReqResult_template& SERVICE__ACCEPT_template::epsAddRequestResult() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* SERVICE__ACCEPT_template::get_descriptor() const { return &SERVICE__ACCEPT_descr_; } +const char* SERVICE__ACCEPT_template::fld_name(int p_index) const { return SERVICE__ACCEPT::fld_names[p_index]; } +void ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_protocolConfigurationOptions; fld_vec[5]=&field_nbifomContainer; fld_vec[6]=&field_extdProtocolConfigurationOptions; } + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT() : Record_Type() { init_vec(); } + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::get_descriptor() const { return &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "protocolConfigurationOptions", "nbifomContainer", "extdProtocolConfigurationOptions" }; +const char* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::optional_indexes[] = { 4, 5, 6, -1 }; +const int* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::optional_indexes_asn[] = { 4, 5, 6, -1 }; +const int* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template* p_precondition, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::~ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::valueof() const +{ +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::protocolConfigurationOptions() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::nbifomContainer() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::nbifomContainer() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::get_descriptor() const { return &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_descr_; } +const char* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template::fld_name(int p_index) const { return ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT::fld_names[p_index]; } +void ESM__Cause::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_causeValue; } + +ESM__Cause::ESM__Cause() : Record_Type() { init_vec(); } + +ESM__Cause::ESM__Cause(const ESM__Cause& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_causeValue.is_bound() ) + field_causeValue = other_value.field_causeValue; +init_vec(); +} + +ESM__Cause::ESM__Cause(const OPTIONAL& par_iei, + const BITSTRING& par_causeValue) : field_iei(par_iei), + field_causeValue(par_causeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ESM__Cause::get_descriptor() const { return &ESM__Cause_descr_; } +const TTCN_Typedescriptor_t* ESM__Cause::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::NAS__CauseValue__Type_descr_ }; +const TTCN_Typedescriptor_t* ESM__Cause::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ESM__Cause::fld_names[] = { "iei", "causeValue" }; +const char* ESM__Cause::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ESM__Cause::optional_indexes[] = { 0, -1 }; +const int* ESM__Cause::get_optional_indexes() const { return optional_indexes; } + +const int ESM__Cause::optional_indexes_asn[] = { 0, -1 }; +const int* ESM__Cause::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ESM__Cause_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ESM__Cause_template::ESM__Cause_template(ESM__Cause_template* p_precondition, ESM__Cause_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ESM__Cause_template::ESM__Cause_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ESM__Cause_template::~ESM__Cause_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ESM__Cause_template::match_dynamic(const Base_Type* match_value) const +{ +const ESM__Cause* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ESM__Cause_template& ESM__Cause_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ESM__Cause_template& ESM__Cause_template::operator=(const ESM__Cause& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ESM__Cause_template& ESM__Cause_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ESM__Cause_template& ESM__Cause_template::operator=(const ESM__Cause_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ESM__Cause ESM__Cause_template::valueof() const +{ +ESM__Cause ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ESM__Cause_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ESM__Cause_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ESM__Cause_template::causeValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ESM__Cause_template::causeValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* ESM__Cause_template::get_descriptor() const { return &ESM__Cause_descr_; } +const char* ESM__Cause_template::fld_name(int p_index) const { return ESM__Cause::fld_names[p_index]; } +void ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_esmCause; fld_vec[5]=&field_protocolConfigurationOptions; fld_vec[6]=&field_nbifomContainer; fld_vec[7]=&field_extdProtocolConfigurationOptions; } + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT() : Record_Type() { init_vec(); } + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::get_descriptor() const { return &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_descr_; } +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "esmCause", "protocolConfigurationOptions", "nbifomContainer", "extdProtocolConfigurationOptions" }; +const char* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::optional_indexes[] = { 5, 6, 7, -1 }; +const int* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::optional_indexes_asn[] = { 5, 6, 7, -1 }; +const int* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ESM__Cause_template(ANY_VALUE) : new ESM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template* p_precondition, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::~ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::valueof() const +{ +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +ESM__Cause_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::esmCause() { return *(static_cast(get_at(4))); } +const ESM__Cause_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::esmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::protocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::nbifomContainer() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::nbifomContainer() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::get_descriptor() const { return &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_descr_; } +const char* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template::fld_name(int p_index) const { return ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT::fld_names[p_index]; } +void LinkedEpsBearerIdentity::init_vec() { fld_vec[0]=&field_idValue; } + +LinkedEpsBearerIdentity::LinkedEpsBearerIdentity() : Record_Type() { init_vec(); } + +LinkedEpsBearerIdentity::LinkedEpsBearerIdentity(const LinkedEpsBearerIdentity& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_idValue.is_bound() ) + field_idValue = other_value.field_idValue; +init_vec(); +} + +LinkedEpsBearerIdentity::LinkedEpsBearerIdentity(const BITSTRING& par_idValue) : field_idValue(par_idValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* LinkedEpsBearerIdentity::get_descriptor() const { return &LinkedEpsBearerIdentity_descr_; } +const TTCN_Typedescriptor_t* LinkedEpsBearerIdentity::fld_descriptors[] = { &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* LinkedEpsBearerIdentity::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* LinkedEpsBearerIdentity::fld_names[] = { "idValue" }; +const char* LinkedEpsBearerIdentity::fld_name(int p_index) const { return fld_names[p_index]; } + +void LinkedEpsBearerIdentity_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +LinkedEpsBearerIdentity_template::LinkedEpsBearerIdentity_template(LinkedEpsBearerIdentity_template* p_precondition, LinkedEpsBearerIdentity_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LinkedEpsBearerIdentity_template::LinkedEpsBearerIdentity_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LinkedEpsBearerIdentity_template::~LinkedEpsBearerIdentity_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LinkedEpsBearerIdentity_template::match_dynamic(const Base_Type* match_value) const +{ +const LinkedEpsBearerIdentity* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +LinkedEpsBearerIdentity_template& LinkedEpsBearerIdentity_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LinkedEpsBearerIdentity_template& LinkedEpsBearerIdentity_template::operator=(const LinkedEpsBearerIdentity& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LinkedEpsBearerIdentity_template& LinkedEpsBearerIdentity_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LinkedEpsBearerIdentity_template& LinkedEpsBearerIdentity_template::operator=(const LinkedEpsBearerIdentity_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LinkedEpsBearerIdentity LinkedEpsBearerIdentity_template::valueof() const +{ +LinkedEpsBearerIdentity ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& LinkedEpsBearerIdentity_template::idValue() { return *(static_cast(get_at(0))); } +const BITSTRING_template& LinkedEpsBearerIdentity_template::idValue() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* LinkedEpsBearerIdentity_template::get_descriptor() const { return &LinkedEpsBearerIdentity_descr_; } +const char* LinkedEpsBearerIdentity_template::fld_name(int p_index) const { return LinkedEpsBearerIdentity::fld_names[p_index]; } +void ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet; fld_vec[5]=&field_linkedEpsBearerId; fld_vec[6]=&field_epsQos; fld_vec[7]=&field_tft; fld_vec[8]=&field_transactionIdentifier; fld_vec[9]=&field_negotiatedQos; fld_vec[10]=&field_negotiatedLlcSapi; fld_vec[11]=&field_radioPriority; fld_vec[12]=&field_packetFlowIdentifier; fld_vec[13]=&field_protocolConfigurationOptions; fld_vec[14]=&field_wlanOffloadInd; fld_vec[15]=&field_nbifomContainer; fld_vec[16]=&field_extdProtocolConfigurationOptions; fld_vec[17]=&field_extd__EPS__QOS; } + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST() : Record_Type() { init_vec(); } + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_linkedEpsBearerId.is_bound() ) + field_linkedEpsBearerId = other_value.field_linkedEpsBearerId; +if (other_value.field_epsQos.is_bound() ) + field_epsQos = other_value.field_epsQos; +if (other_value.field_tft.is_bound() ) + field_tft = other_value.field_tft; +if (other_value.field_transactionIdentifier.is_bound() ) + field_transactionIdentifier = other_value.field_transactionIdentifier; +if (other_value.field_negotiatedQos.is_bound() ) + field_negotiatedQos = other_value.field_negotiatedQos; +if (other_value.field_negotiatedLlcSapi.is_bound() ) + field_negotiatedLlcSapi = other_value.field_negotiatedLlcSapi; +if (other_value.field_radioPriority.is_bound() ) + field_radioPriority = other_value.field_radioPriority; +if (other_value.field_packetFlowIdentifier.is_bound() ) + field_packetFlowIdentifier = other_value.field_packetFlowIdentifier; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_wlanOffloadInd.is_bound() ) + field_wlanOffloadInd = other_value.field_wlanOffloadInd; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_extd__EPS__QOS.is_bound() ) + field_extd__EPS__QOS = other_value.field_extd__EPS__QOS; +init_vec(); +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const LinkedEpsBearerIdentity& par_linkedEpsBearerId, + const NAS__CommonTypeDefs::EPS__QualityOfService& par_epsQos, + const NAS__CommonTypeDefs::TrafficFlowTemplate& par_tft, + const OPTIONAL& par_transactionIdentifier, + const OPTIONAL& par_negotiatedQos, + const OPTIONAL& par_negotiatedLlcSapi, + const OPTIONAL& par_radioPriority, + const OPTIONAL& par_packetFlowIdentifier, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_wlanOffloadInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_extd__EPS__QOS) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_spareHalfOctet(par_spareHalfOctet), + field_linkedEpsBearerId(par_linkedEpsBearerId), + field_epsQos(par_epsQos), + field_tft(par_tft), + field_transactionIdentifier(par_transactionIdentifier), + field_negotiatedQos(par_negotiatedQos), + field_negotiatedLlcSapi(par_negotiatedLlcSapi), + field_radioPriority(par_radioPriority), + field_packetFlowIdentifier(par_packetFlowIdentifier), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_wlanOffloadInd(par_wlanOffloadInd), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_extd__EPS__QOS(par_extd__EPS__QOS) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::get_descriptor() const { return &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_descr_; } +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &LinkedEpsBearerIdentity_descr_, &NAS__CommonTypeDefs::EPS__QualityOfService_descr_, &NAS__CommonTypeDefs::TrafficFlowTemplate_descr_, &TransactionIdentifier_descr_, &NAS__CommonTypeDefs::QualityOfService_descr_, &NAS__CommonTypeDefs::LLC__SAPI_descr_, &NAS__CommonTypeDefs::RadioPriority_descr_, &NAS__CommonTypeDefs::PacketFlowIdentifier_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::WLANOffloadAcceptability_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::Extd__EPS__QOS_descr_ }; +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "spareHalfOctet", "linkedEpsBearerId", "epsQos", "tft", "transactionIdentifier", "negotiatedQos", "negotiatedLlcSapi", "radioPriority", "packetFlowIdentifier", "protocolConfigurationOptions", "wlanOffloadInd", "nbifomContainer", "extdProtocolConfigurationOptions", "extd_EPS_QOS" }; +const char* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::optional_indexes[] = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1 }; +const int* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::optional_indexes_asn[] = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1 }; +const int* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 18; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new LinkedEpsBearerIdentity_template(ANY_VALUE) : new LinkedEpsBearerIdentity_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::EPS__QualityOfService_template(ANY_VALUE) : new NAS__CommonTypeDefs::EPS__QualityOfService_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::TrafficFlowTemplate_template(ANY_VALUE) : new NAS__CommonTypeDefs::TrafficFlowTemplate_template; +single_value.value_elements[8] = was_any ? new TransactionIdentifier_template(ANY_OR_OMIT) : new TransactionIdentifier_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::QualityOfService_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::QualityOfService_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::LLC__SAPI_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::LLC__SAPI_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::RadioPriority_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::RadioPriority_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::PacketFlowIdentifier_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::PacketFlowIdentifier_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[14] = was_any ? new NAS__CommonTypeDefs::WLANOffloadAcceptability_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WLANOffloadAcceptability_template; +single_value.value_elements[15] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[16] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[17] = was_any ? new NAS__CommonTypeDefs::Extd__EPS__QOS_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::Extd__EPS__QOS_template; +} +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template* p_precondition, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::~ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::valueof() const +{ +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(4))); } +LinkedEpsBearerIdentity_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::linkedEpsBearerId() { return *(static_cast(get_at(5))); } +const LinkedEpsBearerIdentity_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::linkedEpsBearerId() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::EPS__QualityOfService_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::epsQos() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::EPS__QualityOfService_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::epsQos() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::TrafficFlowTemplate_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::tft() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::TrafficFlowTemplate_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::tft() const { return *(static_cast(get_at(7))); } +TransactionIdentifier_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::transactionIdentifier() { return *(static_cast(get_at(8))); } +const TransactionIdentifier_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::transactionIdentifier() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::QualityOfService_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedQos() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::QualityOfService_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedQos() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::LLC__SAPI_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedLlcSapi() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::LLC__SAPI_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedLlcSapi() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::RadioPriority_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::radioPriority() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::RadioPriority_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::radioPriority() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::PacketFlowIdentifier_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::packetFlowIdentifier() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::PacketFlowIdentifier_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::packetFlowIdentifier() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::protocolConfigurationOptions() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::protocolConfigurationOptions() const { return *(static_cast(get_at(13))); } +NAS__CommonTypeDefs::WLANOffloadAcceptability_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::wlanOffloadInd() { return *(static_cast(get_at(14))); } +const NAS__CommonTypeDefs::WLANOffloadAcceptability_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::wlanOffloadInd() const { return *(static_cast(get_at(14))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::nbifomContainer() { return *(static_cast(get_at(15))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::nbifomContainer() const { return *(static_cast(get_at(15))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(16))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(16))); } +NAS__CommonTypeDefs::Extd__EPS__QOS_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::extd__EPS__QOS() { return *(static_cast(get_at(17))); } +const NAS__CommonTypeDefs::Extd__EPS__QOS_template& ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::extd__EPS__QOS() const { return *(static_cast(get_at(17))); } +const TTCN_Typedescriptor_t* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::get_descriptor() const { return &ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_descr_; } +const char* ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template::fld_name(int p_index) const { return ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST::fld_names[p_index]; } +void TransactionIdentifier::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_tiFlag; fld_vec[3]=&field_tiValue; fld_vec[4]=&field_spare; fld_vec[5]=&field_ext; fld_vec[6]=&field_tiValue__2; } + +TransactionIdentifier::TransactionIdentifier() : Record_Type() { init_vec(); } + +TransactionIdentifier::TransactionIdentifier(const TransactionIdentifier& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_tiFlag.is_bound() ) + field_tiFlag = other_value.field_tiFlag; +if (other_value.field_tiValue.is_bound() ) + field_tiValue = other_value.field_tiValue; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_ext.is_bound() ) + field_ext = other_value.field_ext; +if (other_value.field_tiValue__2.is_bound() ) + field_tiValue__2 = other_value.field_tiValue__2; +init_vec(); +} + +TransactionIdentifier::TransactionIdentifier(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_tiFlag, + const BITSTRING& par_tiValue, + const BITSTRING& par_spare, + const OPTIONAL& par_ext, + const OPTIONAL& par_tiValue__2) : field_iei(par_iei), + field_iel(par_iel), + field_tiFlag(par_tiFlag), + field_tiValue(par_tiValue), + field_spare(par_spare), + field_ext(par_ext), + field_tiValue__2(par_tiValue__2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TransactionIdentifier::get_descriptor() const { return &TransactionIdentifier_descr_; } +const TTCN_Typedescriptor_t* TransactionIdentifier::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B7__Type_descr_ }; +const TTCN_Typedescriptor_t* TransactionIdentifier::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TransactionIdentifier::fld_names[] = { "iei", "iel", "tiFlag", "tiValue", "spare", "ext", "tiValue_2" }; +const char* TransactionIdentifier::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TransactionIdentifier::optional_indexes[] = { 0, 5, 6, -1 }; +const int* TransactionIdentifier::get_optional_indexes() const { return optional_indexes; } + +const int TransactionIdentifier::optional_indexes_asn[] = { 0, 5, 6, -1 }; +const int* TransactionIdentifier::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TransactionIdentifier_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +TransactionIdentifier_template::TransactionIdentifier_template(TransactionIdentifier_template* p_precondition, TransactionIdentifier_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TransactionIdentifier_template::TransactionIdentifier_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TransactionIdentifier_template::~TransactionIdentifier_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TransactionIdentifier_template::match_dynamic(const Base_Type* match_value) const +{ +const TransactionIdentifier* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TransactionIdentifier_template& TransactionIdentifier_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TransactionIdentifier_template& TransactionIdentifier_template::operator=(const TransactionIdentifier& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TransactionIdentifier_template& TransactionIdentifier_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TransactionIdentifier_template& TransactionIdentifier_template::operator=(const TransactionIdentifier_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TransactionIdentifier TransactionIdentifier_template::valueof() const +{ +TransactionIdentifier ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& TransactionIdentifier_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& TransactionIdentifier_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& TransactionIdentifier_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& TransactionIdentifier_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& TransactionIdentifier_template::tiFlag() { return *(static_cast(get_at(2))); } +const BITSTRING_template& TransactionIdentifier_template::tiFlag() const { return *(static_cast(get_at(2))); } +BITSTRING_template& TransactionIdentifier_template::tiValue() { return *(static_cast(get_at(3))); } +const BITSTRING_template& TransactionIdentifier_template::tiValue() const { return *(static_cast(get_at(3))); } +BITSTRING_template& TransactionIdentifier_template::spare() { return *(static_cast(get_at(4))); } +const BITSTRING_template& TransactionIdentifier_template::spare() const { return *(static_cast(get_at(4))); } +BITSTRING_template& TransactionIdentifier_template::ext() { return *(static_cast(get_at(5))); } +const BITSTRING_template& TransactionIdentifier_template::ext() const { return *(static_cast(get_at(5))); } +BITSTRING_template& TransactionIdentifier_template::tiValue__2() { return *(static_cast(get_at(6))); } +const BITSTRING_template& TransactionIdentifier_template::tiValue__2() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* TransactionIdentifier_template::get_descriptor() const { return &TransactionIdentifier_descr_; } +const char* TransactionIdentifier_template::fld_name(int p_index) const { return TransactionIdentifier::fld_names[p_index]; } +void ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_protocolConfigurationOptions; fld_vec[5]=&field_extdProtocolConfigurationOptions; } + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT() : Record_Type() { init_vec(); } + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::get_descriptor() const { return &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "protocolConfigurationOptions", "extdProtocolConfigurationOptions" }; +const char* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::optional_indexes[] = { 4, 5, -1 }; +const int* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::optional_indexes_asn[] = { 4, 5, -1 }; +const int* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template* p_precondition, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::~ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::valueof() const +{ +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::protocolConfigurationOptions() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::get_descriptor() const { return &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_descr_; } +const char* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template::fld_name(int p_index) const { return ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT::fld_names[p_index]; } +void ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_esmCause; fld_vec[5]=&field_protocolConfigurationOptions; fld_vec[6]=&field_extdProtocolConfigurationOptions; } + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT() : Record_Type() { init_vec(); } + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::get_descriptor() const { return &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_descr_; } +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "esmCause", "protocolConfigurationOptions", "extdProtocolConfigurationOptions" }; +const char* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::optional_indexes[] = { 5, 6, -1 }; +const int* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::optional_indexes_asn[] = { 5, 6, -1 }; +const int* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ESM__Cause_template(ANY_VALUE) : new ESM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template* p_precondition, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::~ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::valueof() const +{ +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +ESM__Cause_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::esmCause() { return *(static_cast(get_at(4))); } +const ESM__Cause_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::esmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::protocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::get_descriptor() const { return &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_descr_; } +const char* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template::fld_name(int p_index) const { return ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT::fld_names[p_index]; } +void ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_epsQos; fld_vec[5]=&field_accessPointName; fld_vec[6]=&field_pdnAdress; fld_vec[7]=&field_transactionIdentifier; fld_vec[8]=&field_negotiatedQos; fld_vec[9]=&field_negotiatedLlcSapi; fld_vec[10]=&field_radioPriority; fld_vec[11]=&field_packetFlowIdentifier; fld_vec[12]=&field_apnAggMaxBitRate; fld_vec[13]=&field_esmCause; fld_vec[14]=&field_protocolConfigurationOptions; fld_vec[15]=&field_connectivityType; fld_vec[16]=&field_wlanOffloadInd; fld_vec[17]=&field_nbifomContainer; fld_vec[18]=&field_headerCompressionConfig; fld_vec[19]=&field_controlPlaneOnlyIndication; fld_vec[20]=&field_extdProtocolConfigurationOptions; fld_vec[21]=&field_servingPLMNRateControl; fld_vec[22]=&field_extd__APN__AMBR; } + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST() : Record_Type() { init_vec(); } + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_epsQos.is_bound() ) + field_epsQos = other_value.field_epsQos; +if (other_value.field_accessPointName.is_bound() ) + field_accessPointName = other_value.field_accessPointName; +if (other_value.field_pdnAdress.is_bound() ) + field_pdnAdress = other_value.field_pdnAdress; +if (other_value.field_transactionIdentifier.is_bound() ) + field_transactionIdentifier = other_value.field_transactionIdentifier; +if (other_value.field_negotiatedQos.is_bound() ) + field_negotiatedQos = other_value.field_negotiatedQos; +if (other_value.field_negotiatedLlcSapi.is_bound() ) + field_negotiatedLlcSapi = other_value.field_negotiatedLlcSapi; +if (other_value.field_radioPriority.is_bound() ) + field_radioPriority = other_value.field_radioPriority; +if (other_value.field_packetFlowIdentifier.is_bound() ) + field_packetFlowIdentifier = other_value.field_packetFlowIdentifier; +if (other_value.field_apnAggMaxBitRate.is_bound() ) + field_apnAggMaxBitRate = other_value.field_apnAggMaxBitRate; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_connectivityType.is_bound() ) + field_connectivityType = other_value.field_connectivityType; +if (other_value.field_wlanOffloadInd.is_bound() ) + field_wlanOffloadInd = other_value.field_wlanOffloadInd; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_headerCompressionConfig.is_bound() ) + field_headerCompressionConfig = other_value.field_headerCompressionConfig; +if (other_value.field_controlPlaneOnlyIndication.is_bound() ) + field_controlPlaneOnlyIndication = other_value.field_controlPlaneOnlyIndication; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_servingPLMNRateControl.is_bound() ) + field_servingPLMNRateControl = other_value.field_servingPLMNRateControl; +if (other_value.field_extd__APN__AMBR.is_bound() ) + field_extd__APN__AMBR = other_value.field_extd__APN__AMBR; +init_vec(); +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::EPS__QualityOfService& par_epsQos, + const NAS__CommonTypeDefs::AccessPointName& par_accessPointName, + const NAS__CommonTypeDefs::PDN__Address& par_pdnAdress, + const OPTIONAL& par_transactionIdentifier, + const OPTIONAL& par_negotiatedQos, + const OPTIONAL& par_negotiatedLlcSapi, + const OPTIONAL& par_radioPriority, + const OPTIONAL& par_packetFlowIdentifier, + const OPTIONAL& par_apnAggMaxBitRate, + const OPTIONAL& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_connectivityType, + const OPTIONAL& par_wlanOffloadInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_headerCompressionConfig, + const OPTIONAL& par_controlPlaneOnlyIndication, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_servingPLMNRateControl, + const OPTIONAL& par_extd__APN__AMBR) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_epsQos(par_epsQos), + field_accessPointName(par_accessPointName), + field_pdnAdress(par_pdnAdress), + field_transactionIdentifier(par_transactionIdentifier), + field_negotiatedQos(par_negotiatedQos), + field_negotiatedLlcSapi(par_negotiatedLlcSapi), + field_radioPriority(par_radioPriority), + field_packetFlowIdentifier(par_packetFlowIdentifier), + field_apnAggMaxBitRate(par_apnAggMaxBitRate), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_connectivityType(par_connectivityType), + field_wlanOffloadInd(par_wlanOffloadInd), + field_nbifomContainer(par_nbifomContainer), + field_headerCompressionConfig(par_headerCompressionConfig), + field_controlPlaneOnlyIndication(par_controlPlaneOnlyIndication), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_servingPLMNRateControl(par_servingPLMNRateControl), + field_extd__APN__AMBR(par_extd__APN__AMBR) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::get_descriptor() const { return &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_descr_; } +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::EPS__QualityOfService_descr_, &NAS__CommonTypeDefs::AccessPointName_descr_, &NAS__CommonTypeDefs::PDN__Address_descr_, &TransactionIdentifier_descr_, &NAS__CommonTypeDefs::QualityOfService_descr_, &NAS__CommonTypeDefs::LLC__SAPI_descr_, &NAS__CommonTypeDefs::RadioPriority_descr_, &NAS__CommonTypeDefs::PacketFlowIdentifier_descr_, &APN__AMBR_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ConnectivityType_descr_, &NAS__CommonTypeDefs::WLANOffloadAcceptability_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &HeaderCompressConfig_descr_, &NAS__CommonTypeDefs::ControlPlaneInd_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ServingPLMNRateControl_descr_, &Extd__APN__AMBR_descr_ }; +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "epsQos", "accessPointName", "pdnAdress", "transactionIdentifier", "negotiatedQos", "negotiatedLlcSapi", "radioPriority", "packetFlowIdentifier", "apnAggMaxBitRate", "esmCause", "protocolConfigurationOptions", "connectivityType", "wlanOffloadInd", "nbifomContainer", "headerCompressionConfig", "controlPlaneOnlyIndication", "extdProtocolConfigurationOptions", "servingPLMNRateControl", "extd_APN_AMBR" }; +const char* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::optional_indexes[] = { 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1 }; +const int* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::optional_indexes_asn[] = { 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1 }; +const int* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 23; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::EPS__QualityOfService_template(ANY_VALUE) : new NAS__CommonTypeDefs::EPS__QualityOfService_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::AccessPointName_template(ANY_VALUE) : new NAS__CommonTypeDefs::AccessPointName_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::PDN__Address_template(ANY_VALUE) : new NAS__CommonTypeDefs::PDN__Address_template; +single_value.value_elements[7] = was_any ? new TransactionIdentifier_template(ANY_OR_OMIT) : new TransactionIdentifier_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::QualityOfService_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::QualityOfService_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::LLC__SAPI_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::LLC__SAPI_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::RadioPriority_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::RadioPriority_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::PacketFlowIdentifier_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::PacketFlowIdentifier_template; +single_value.value_elements[12] = was_any ? new APN__AMBR_template(ANY_OR_OMIT) : new APN__AMBR_template; +single_value.value_elements[13] = was_any ? new ESM__Cause_template(ANY_OR_OMIT) : new ESM__Cause_template; +single_value.value_elements[14] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[15] = was_any ? new NAS__CommonTypeDefs::ConnectivityType_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ConnectivityType_template; +single_value.value_elements[16] = was_any ? new NAS__CommonTypeDefs::WLANOffloadAcceptability_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WLANOffloadAcceptability_template; +single_value.value_elements[17] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[18] = was_any ? new HeaderCompressConfig_template(ANY_OR_OMIT) : new HeaderCompressConfig_template; +single_value.value_elements[19] = was_any ? new NAS__CommonTypeDefs::ControlPlaneInd_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ControlPlaneInd_template; +single_value.value_elements[20] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[21] = was_any ? new NAS__CommonTypeDefs::ServingPLMNRateControl_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ServingPLMNRateControl_template; +single_value.value_elements[22] = was_any ? new Extd__APN__AMBR_template(ANY_OR_OMIT) : new Extd__APN__AMBR_template; +} +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template* p_precondition, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::~ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::valueof() const +{ +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::EPS__QualityOfService_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::epsQos() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::EPS__QualityOfService_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::epsQos() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::AccessPointName_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::accessPointName() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::AccessPointName_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::accessPointName() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::PDN__Address_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::pdnAdress() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::PDN__Address_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::pdnAdress() const { return *(static_cast(get_at(6))); } +TransactionIdentifier_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::transactionIdentifier() { return *(static_cast(get_at(7))); } +const TransactionIdentifier_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::transactionIdentifier() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::QualityOfService_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedQos() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::QualityOfService_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedQos() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::LLC__SAPI_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedLlcSapi() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::LLC__SAPI_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedLlcSapi() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::RadioPriority_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::radioPriority() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::RadioPriority_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::radioPriority() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::PacketFlowIdentifier_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::packetFlowIdentifier() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::PacketFlowIdentifier_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::packetFlowIdentifier() const { return *(static_cast(get_at(11))); } +APN__AMBR_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::apnAggMaxBitRate() { return *(static_cast(get_at(12))); } +const APN__AMBR_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::apnAggMaxBitRate() const { return *(static_cast(get_at(12))); } +ESM__Cause_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::esmCause() { return *(static_cast(get_at(13))); } +const ESM__Cause_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::esmCause() const { return *(static_cast(get_at(13))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::protocolConfigurationOptions() { return *(static_cast(get_at(14))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::protocolConfigurationOptions() const { return *(static_cast(get_at(14))); } +NAS__CommonTypeDefs::ConnectivityType_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::connectivityType() { return *(static_cast(get_at(15))); } +const NAS__CommonTypeDefs::ConnectivityType_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::connectivityType() const { return *(static_cast(get_at(15))); } +NAS__CommonTypeDefs::WLANOffloadAcceptability_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::wlanOffloadInd() { return *(static_cast(get_at(16))); } +const NAS__CommonTypeDefs::WLANOffloadAcceptability_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::wlanOffloadInd() const { return *(static_cast(get_at(16))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::nbifomContainer() { return *(static_cast(get_at(17))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::nbifomContainer() const { return *(static_cast(get_at(17))); } +HeaderCompressConfig_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::headerCompressionConfig() { return *(static_cast(get_at(18))); } +const HeaderCompressConfig_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::headerCompressionConfig() const { return *(static_cast(get_at(18))); } +NAS__CommonTypeDefs::ControlPlaneInd_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::controlPlaneOnlyIndication() { return *(static_cast(get_at(19))); } +const NAS__CommonTypeDefs::ControlPlaneInd_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::controlPlaneOnlyIndication() const { return *(static_cast(get_at(19))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(20))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(20))); } +NAS__CommonTypeDefs::ServingPLMNRateControl_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::servingPLMNRateControl() { return *(static_cast(get_at(21))); } +const NAS__CommonTypeDefs::ServingPLMNRateControl_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::servingPLMNRateControl() const { return *(static_cast(get_at(21))); } +Extd__APN__AMBR_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::extd__APN__AMBR() { return *(static_cast(get_at(22))); } +const Extd__APN__AMBR_template& ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::extd__APN__AMBR() const { return *(static_cast(get_at(22))); } +const TTCN_Typedescriptor_t* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::get_descriptor() const { return &ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_descr_; } +const char* ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template::fld_name(int p_index) const { return ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST::fld_names[p_index]; } +void APN__AMBR::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_downlink; fld_vec[3]=&field_uplink; fld_vec[4]=&field_downlinkExt; fld_vec[5]=&field_uplinkExt; fld_vec[6]=&field_downlinkExt2; fld_vec[7]=&field_uplinkExt2; } + +APN__AMBR::APN__AMBR() : Record_Type() { init_vec(); } + +APN__AMBR::APN__AMBR(const APN__AMBR& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_downlink.is_bound() ) + field_downlink = other_value.field_downlink; +if (other_value.field_uplink.is_bound() ) + field_uplink = other_value.field_uplink; +if (other_value.field_downlinkExt.is_bound() ) + field_downlinkExt = other_value.field_downlinkExt; +if (other_value.field_uplinkExt.is_bound() ) + field_uplinkExt = other_value.field_uplinkExt; +if (other_value.field_downlinkExt2.is_bound() ) + field_downlinkExt2 = other_value.field_downlinkExt2; +if (other_value.field_uplinkExt2.is_bound() ) + field_uplinkExt2 = other_value.field_uplinkExt2; +init_vec(); +} + +APN__AMBR::APN__AMBR(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_downlink, + const BITSTRING& par_uplink, + const OPTIONAL& par_downlinkExt, + const OPTIONAL& par_uplinkExt, + const OPTIONAL& par_downlinkExt2, + const OPTIONAL& par_uplinkExt2) : field_iei(par_iei), + field_iel(par_iel), + field_downlink(par_downlink), + field_uplink(par_uplink), + field_downlinkExt(par_downlinkExt), + field_uplinkExt(par_uplinkExt), + field_downlinkExt2(par_downlinkExt2), + field_uplinkExt2(par_uplinkExt2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* APN__AMBR::get_descriptor() const { return &APN__AMBR_descr_; } +const TTCN_Typedescriptor_t* APN__AMBR::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* APN__AMBR::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* APN__AMBR::fld_names[] = { "iei", "iel", "downlink", "uplink", "downlinkExt", "uplinkExt", "downlinkExt2", "uplinkExt2" }; +const char* APN__AMBR::fld_name(int p_index) const { return fld_names[p_index]; } + +const int APN__AMBR::optional_indexes[] = { 0, 1, 4, 5, 6, 7, -1 }; +const int* APN__AMBR::get_optional_indexes() const { return optional_indexes; } + +const int APN__AMBR::optional_indexes_asn[] = { 0, 1, 4, 5, 6, 7, -1 }; +const int* APN__AMBR::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void APN__AMBR_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +APN__AMBR_template::APN__AMBR_template(APN__AMBR_template* p_precondition, APN__AMBR_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +APN__AMBR_template::APN__AMBR_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +APN__AMBR_template::~APN__AMBR_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean APN__AMBR_template::match_dynamic(const Base_Type* match_value) const +{ +const APN__AMBR* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +APN__AMBR_template& APN__AMBR_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +APN__AMBR_template& APN__AMBR_template::operator=(const APN__AMBR& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +APN__AMBR_template& APN__AMBR_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +APN__AMBR_template& APN__AMBR_template::operator=(const APN__AMBR_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +APN__AMBR APN__AMBR_template::valueof() const +{ +APN__AMBR ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& APN__AMBR_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& APN__AMBR_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& APN__AMBR_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& APN__AMBR_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& APN__AMBR_template::downlink() { return *(static_cast(get_at(2))); } +const BITSTRING_template& APN__AMBR_template::downlink() const { return *(static_cast(get_at(2))); } +BITSTRING_template& APN__AMBR_template::uplink() { return *(static_cast(get_at(3))); } +const BITSTRING_template& APN__AMBR_template::uplink() const { return *(static_cast(get_at(3))); } +BITSTRING_template& APN__AMBR_template::downlinkExt() { return *(static_cast(get_at(4))); } +const BITSTRING_template& APN__AMBR_template::downlinkExt() const { return *(static_cast(get_at(4))); } +BITSTRING_template& APN__AMBR_template::uplinkExt() { return *(static_cast(get_at(5))); } +const BITSTRING_template& APN__AMBR_template::uplinkExt() const { return *(static_cast(get_at(5))); } +BITSTRING_template& APN__AMBR_template::downlinkExt2() { return *(static_cast(get_at(6))); } +const BITSTRING_template& APN__AMBR_template::downlinkExt2() const { return *(static_cast(get_at(6))); } +BITSTRING_template& APN__AMBR_template::uplinkExt2() { return *(static_cast(get_at(7))); } +const BITSTRING_template& APN__AMBR_template::uplinkExt2() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* APN__AMBR_template::get_descriptor() const { return &APN__AMBR_descr_; } +const char* APN__AMBR_template::fld_name(int p_index) const { return APN__AMBR::fld_names[p_index]; } +void HeaderCompressConfig::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_profileP0x0104; fld_vec[4]=&field_profileP0x0103; fld_vec[5]=&field_profileP0x0102; fld_vec[6]=&field_profileP0x0006; fld_vec[7]=&field_profileP0x0004; fld_vec[8]=&field_profileP0x0003; fld_vec[9]=&field_profileP0x0002; fld_vec[10]=&field_maxCID; fld_vec[11]=&field_addHeaderCompressContextSetupParamsType; fld_vec[12]=&field_addHeaderCompressContextSetupParams; } + +HeaderCompressConfig::HeaderCompressConfig() : Record_Type() { init_vec(); } + +HeaderCompressConfig::HeaderCompressConfig(const HeaderCompressConfig& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_profileP0x0104.is_bound() ) + field_profileP0x0104 = other_value.field_profileP0x0104; +if (other_value.field_profileP0x0103.is_bound() ) + field_profileP0x0103 = other_value.field_profileP0x0103; +if (other_value.field_profileP0x0102.is_bound() ) + field_profileP0x0102 = other_value.field_profileP0x0102; +if (other_value.field_profileP0x0006.is_bound() ) + field_profileP0x0006 = other_value.field_profileP0x0006; +if (other_value.field_profileP0x0004.is_bound() ) + field_profileP0x0004 = other_value.field_profileP0x0004; +if (other_value.field_profileP0x0003.is_bound() ) + field_profileP0x0003 = other_value.field_profileP0x0003; +if (other_value.field_profileP0x0002.is_bound() ) + field_profileP0x0002 = other_value.field_profileP0x0002; +if (other_value.field_maxCID.is_bound() ) + field_maxCID = other_value.field_maxCID; +if (other_value.field_addHeaderCompressContextSetupParamsType.is_bound() ) + field_addHeaderCompressContextSetupParamsType = other_value.field_addHeaderCompressContextSetupParamsType; +if (other_value.field_addHeaderCompressContextSetupParams.is_bound() ) + field_addHeaderCompressContextSetupParams = other_value.field_addHeaderCompressContextSetupParams; +init_vec(); +} + +HeaderCompressConfig::HeaderCompressConfig(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_profileP0x0104, + const BITSTRING& par_profileP0x0103, + const BITSTRING& par_profileP0x0102, + const BITSTRING& par_profileP0x0006, + const BITSTRING& par_profileP0x0004, + const BITSTRING& par_profileP0x0003, + const BITSTRING& par_profileP0x0002, + const OCTETSTRING& par_maxCID, + const OPTIONAL& par_addHeaderCompressContextSetupParamsType, + const OPTIONAL& par_addHeaderCompressContextSetupParams) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_profileP0x0104(par_profileP0x0104), + field_profileP0x0103(par_profileP0x0103), + field_profileP0x0102(par_profileP0x0102), + field_profileP0x0006(par_profileP0x0006), + field_profileP0x0004(par_profileP0x0004), + field_profileP0x0003(par_profileP0x0003), + field_profileP0x0002(par_profileP0x0002), + field_maxCID(par_maxCID), + field_addHeaderCompressContextSetupParamsType(par_addHeaderCompressContextSetupParamsType), + field_addHeaderCompressContextSetupParams(par_addHeaderCompressContextSetupParams) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* HeaderCompressConfig::get_descriptor() const { return &HeaderCompressConfig_descr_; } +const TTCN_Typedescriptor_t* HeaderCompressConfig::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::O2__Type_descr_, &CommonDefs::O1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* HeaderCompressConfig::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* HeaderCompressConfig::fld_names[] = { "iei", "iel", "spare", "profileP0x0104", "profileP0x0103", "profileP0x0102", "profileP0x0006", "profileP0x0004", "profileP0x0003", "profileP0x0002", "maxCID", "addHeaderCompressContextSetupParamsType", "addHeaderCompressContextSetupParams" }; +const char* HeaderCompressConfig::fld_name(int p_index) const { return fld_names[p_index]; } + +const int HeaderCompressConfig::optional_indexes[] = { 0, 11, 12, -1 }; +const int* HeaderCompressConfig::get_optional_indexes() const { return optional_indexes; } + +const int HeaderCompressConfig::optional_indexes_asn[] = { 0, 11, 12, -1 }; +const int* HeaderCompressConfig::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void HeaderCompressConfig_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 13; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[11] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[12] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +HeaderCompressConfig_template::HeaderCompressConfig_template(HeaderCompressConfig_template* p_precondition, HeaderCompressConfig_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +HeaderCompressConfig_template::HeaderCompressConfig_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +HeaderCompressConfig_template::~HeaderCompressConfig_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean HeaderCompressConfig_template::match_dynamic(const Base_Type* match_value) const +{ +const HeaderCompressConfig* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +HeaderCompressConfig_template& HeaderCompressConfig_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +HeaderCompressConfig_template& HeaderCompressConfig_template::operator=(const HeaderCompressConfig& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +HeaderCompressConfig_template& HeaderCompressConfig_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +HeaderCompressConfig_template& HeaderCompressConfig_template::operator=(const HeaderCompressConfig_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +HeaderCompressConfig HeaderCompressConfig_template::valueof() const +{ +HeaderCompressConfig ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& HeaderCompressConfig_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& HeaderCompressConfig_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& HeaderCompressConfig_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& HeaderCompressConfig_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& HeaderCompressConfig_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& HeaderCompressConfig_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& HeaderCompressConfig_template::profileP0x0104() { return *(static_cast(get_at(3))); } +const BITSTRING_template& HeaderCompressConfig_template::profileP0x0104() const { return *(static_cast(get_at(3))); } +BITSTRING_template& HeaderCompressConfig_template::profileP0x0103() { return *(static_cast(get_at(4))); } +const BITSTRING_template& HeaderCompressConfig_template::profileP0x0103() const { return *(static_cast(get_at(4))); } +BITSTRING_template& HeaderCompressConfig_template::profileP0x0102() { return *(static_cast(get_at(5))); } +const BITSTRING_template& HeaderCompressConfig_template::profileP0x0102() const { return *(static_cast(get_at(5))); } +BITSTRING_template& HeaderCompressConfig_template::profileP0x0006() { return *(static_cast(get_at(6))); } +const BITSTRING_template& HeaderCompressConfig_template::profileP0x0006() const { return *(static_cast(get_at(6))); } +BITSTRING_template& HeaderCompressConfig_template::profileP0x0004() { return *(static_cast(get_at(7))); } +const BITSTRING_template& HeaderCompressConfig_template::profileP0x0004() const { return *(static_cast(get_at(7))); } +BITSTRING_template& HeaderCompressConfig_template::profileP0x0003() { return *(static_cast(get_at(8))); } +const BITSTRING_template& HeaderCompressConfig_template::profileP0x0003() const { return *(static_cast(get_at(8))); } +BITSTRING_template& HeaderCompressConfig_template::profileP0x0002() { return *(static_cast(get_at(9))); } +const BITSTRING_template& HeaderCompressConfig_template::profileP0x0002() const { return *(static_cast(get_at(9))); } +OCTETSTRING_template& HeaderCompressConfig_template::maxCID() { return *(static_cast(get_at(10))); } +const OCTETSTRING_template& HeaderCompressConfig_template::maxCID() const { return *(static_cast(get_at(10))); } +OCTETSTRING_template& HeaderCompressConfig_template::addHeaderCompressContextSetupParamsType() { return *(static_cast(get_at(11))); } +const OCTETSTRING_template& HeaderCompressConfig_template::addHeaderCompressContextSetupParamsType() const { return *(static_cast(get_at(11))); } +OCTETSTRING_template& HeaderCompressConfig_template::addHeaderCompressContextSetupParams() { return *(static_cast(get_at(12))); } +const OCTETSTRING_template& HeaderCompressConfig_template::addHeaderCompressContextSetupParams() const { return *(static_cast(get_at(12))); } +const TTCN_Typedescriptor_t* HeaderCompressConfig_template::get_descriptor() const { return &HeaderCompressConfig_descr_; } +const char* HeaderCompressConfig_template::fld_name(int p_index) const { return HeaderCompressConfig::fld_names[p_index]; } +void Extd__APN__AMBR::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_unitDL; fld_vec[3]=&field_downlink__1; fld_vec[4]=&field_downlink__2; fld_vec[5]=&field_unitUL; fld_vec[6]=&field_uplink__1; fld_vec[7]=&field_uplink__2; } + +Extd__APN__AMBR::Extd__APN__AMBR() : Record_Type() { init_vec(); } + +Extd__APN__AMBR::Extd__APN__AMBR(const Extd__APN__AMBR& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_unitDL.is_bound() ) + field_unitDL = other_value.field_unitDL; +if (other_value.field_downlink__1.is_bound() ) + field_downlink__1 = other_value.field_downlink__1; +if (other_value.field_downlink__2.is_bound() ) + field_downlink__2 = other_value.field_downlink__2; +if (other_value.field_unitUL.is_bound() ) + field_unitUL = other_value.field_unitUL; +if (other_value.field_uplink__1.is_bound() ) + field_uplink__1 = other_value.field_uplink__1; +if (other_value.field_uplink__2.is_bound() ) + field_uplink__2 = other_value.field_uplink__2; +init_vec(); +} + +Extd__APN__AMBR::Extd__APN__AMBR(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_unitDL, + const BITSTRING& par_downlink__1, + const BITSTRING& par_downlink__2, + const BITSTRING& par_unitUL, + const BITSTRING& par_uplink__1, + const BITSTRING& par_uplink__2) : field_iei(par_iei), + field_iel(par_iel), + field_unitDL(par_unitDL), + field_downlink__1(par_downlink__1), + field_downlink__2(par_downlink__2), + field_unitUL(par_unitUL), + field_uplink__1(par_uplink__1), + field_uplink__2(par_uplink__2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Extd__APN__AMBR::get_descriptor() const { return &Extd__APN__AMBR_descr_; } +const TTCN_Typedescriptor_t* Extd__APN__AMBR::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* Extd__APN__AMBR::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Extd__APN__AMBR::fld_names[] = { "iei", "iel", "unitDL", "downlink_1", "downlink_2", "unitUL", "uplink_1", "uplink_2" }; +const char* Extd__APN__AMBR::fld_name(int p_index) const { return fld_names[p_index]; } + +const int Extd__APN__AMBR::optional_indexes[] = { 0, 1, -1 }; +const int* Extd__APN__AMBR::get_optional_indexes() const { return optional_indexes; } + +const int Extd__APN__AMBR::optional_indexes_asn[] = { 0, 1, -1 }; +const int* Extd__APN__AMBR::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void Extd__APN__AMBR_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +Extd__APN__AMBR_template::Extd__APN__AMBR_template(Extd__APN__AMBR_template* p_precondition, Extd__APN__AMBR_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Extd__APN__AMBR_template::Extd__APN__AMBR_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Extd__APN__AMBR_template::~Extd__APN__AMBR_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Extd__APN__AMBR_template::match_dynamic(const Base_Type* match_value) const +{ +const Extd__APN__AMBR* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Extd__APN__AMBR_template& Extd__APN__AMBR_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Extd__APN__AMBR_template& Extd__APN__AMBR_template::operator=(const Extd__APN__AMBR& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Extd__APN__AMBR_template& Extd__APN__AMBR_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Extd__APN__AMBR_template& Extd__APN__AMBR_template::operator=(const Extd__APN__AMBR_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Extd__APN__AMBR Extd__APN__AMBR_template::valueof() const +{ +Extd__APN__AMBR ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& Extd__APN__AMBR_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& Extd__APN__AMBR_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& Extd__APN__AMBR_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& Extd__APN__AMBR_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& Extd__APN__AMBR_template::unitDL() { return *(static_cast(get_at(2))); } +const BITSTRING_template& Extd__APN__AMBR_template::unitDL() const { return *(static_cast(get_at(2))); } +BITSTRING_template& Extd__APN__AMBR_template::downlink__1() { return *(static_cast(get_at(3))); } +const BITSTRING_template& Extd__APN__AMBR_template::downlink__1() const { return *(static_cast(get_at(3))); } +BITSTRING_template& Extd__APN__AMBR_template::downlink__2() { return *(static_cast(get_at(4))); } +const BITSTRING_template& Extd__APN__AMBR_template::downlink__2() const { return *(static_cast(get_at(4))); } +BITSTRING_template& Extd__APN__AMBR_template::unitUL() { return *(static_cast(get_at(5))); } +const BITSTRING_template& Extd__APN__AMBR_template::unitUL() const { return *(static_cast(get_at(5))); } +BITSTRING_template& Extd__APN__AMBR_template::uplink__1() { return *(static_cast(get_at(6))); } +const BITSTRING_template& Extd__APN__AMBR_template::uplink__1() const { return *(static_cast(get_at(6))); } +BITSTRING_template& Extd__APN__AMBR_template::uplink__2() { return *(static_cast(get_at(7))); } +const BITSTRING_template& Extd__APN__AMBR_template::uplink__2() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* Extd__APN__AMBR_template::get_descriptor() const { return &Extd__APN__AMBR_descr_; } +const char* Extd__APN__AMBR_template::fld_name(int p_index) const { return Extd__APN__AMBR::fld_names[p_index]; } +void BEARER__RESOURCE__ALLOCATION__REJECT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_esmCause; fld_vec[5]=&field_protocolConfigurationOptions; fld_vec[6]=&field_backOffTimerValue; fld_vec[7]=&field_reattemptInd; fld_vec[8]=&field_nbifomContainer; fld_vec[9]=&field_extdProtocolConfigurationOptions; } + +BEARER__RESOURCE__ALLOCATION__REJECT::BEARER__RESOURCE__ALLOCATION__REJECT() : Record_Type() { init_vec(); } + +BEARER__RESOURCE__ALLOCATION__REJECT::BEARER__RESOURCE__ALLOCATION__REJECT(const BEARER__RESOURCE__ALLOCATION__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_backOffTimerValue.is_bound() ) + field_backOffTimerValue = other_value.field_backOffTimerValue; +if (other_value.field_reattemptInd.is_bound() ) + field_reattemptInd = other_value.field_reattemptInd; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +BEARER__RESOURCE__ALLOCATION__REJECT::BEARER__RESOURCE__ALLOCATION__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_reattemptInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_backOffTimerValue(par_backOffTimerValue), + field_reattemptInd(par_reattemptInd), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* BEARER__RESOURCE__ALLOCATION__REJECT::get_descriptor() const { return &BEARER__RESOURCE__ALLOCATION__REJECT_descr_; } +const TTCN_Typedescriptor_t* BEARER__RESOURCE__ALLOCATION__REJECT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::ReAttemptIndicator_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* BEARER__RESOURCE__ALLOCATION__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* BEARER__RESOURCE__ALLOCATION__REJECT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "esmCause", "protocolConfigurationOptions", "backOffTimerValue", "reattemptInd", "nbifomContainer", "extdProtocolConfigurationOptions" }; +const char* BEARER__RESOURCE__ALLOCATION__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int BEARER__RESOURCE__ALLOCATION__REJECT::optional_indexes[] = { 5, 6, 7, 8, 9, -1 }; +const int* BEARER__RESOURCE__ALLOCATION__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int BEARER__RESOURCE__ALLOCATION__REJECT::optional_indexes_asn[] = { 5, 6, 7, 8, 9, -1 }; +const int* BEARER__RESOURCE__ALLOCATION__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void BEARER__RESOURCE__ALLOCATION__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ESM__Cause_template(ANY_VALUE) : new ESM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::ReAttemptIndicator_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReAttemptIndicator_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +BEARER__RESOURCE__ALLOCATION__REJECT_template::BEARER__RESOURCE__ALLOCATION__REJECT_template(BEARER__RESOURCE__ALLOCATION__REJECT_template* p_precondition, BEARER__RESOURCE__ALLOCATION__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +BEARER__RESOURCE__ALLOCATION__REJECT_template::BEARER__RESOURCE__ALLOCATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +BEARER__RESOURCE__ALLOCATION__REJECT_template::~BEARER__RESOURCE__ALLOCATION__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean BEARER__RESOURCE__ALLOCATION__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const BEARER__RESOURCE__ALLOCATION__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +BEARER__RESOURCE__ALLOCATION__REJECT_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +BEARER__RESOURCE__ALLOCATION__REJECT_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::operator=(const BEARER__RESOURCE__ALLOCATION__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +BEARER__RESOURCE__ALLOCATION__REJECT_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +BEARER__RESOURCE__ALLOCATION__REJECT_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::operator=(const BEARER__RESOURCE__ALLOCATION__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +BEARER__RESOURCE__ALLOCATION__REJECT BEARER__RESOURCE__ALLOCATION__REJECT_template::valueof() const +{ +BEARER__RESOURCE__ALLOCATION__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +ESM__Cause_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::esmCause() { return *(static_cast(get_at(4))); } +const ESM__Cause_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::esmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::protocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::backOffTimerValue() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::backOffTimerValue() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::ReAttemptIndicator_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::reattemptInd() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::ReAttemptIndicator_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::reattemptInd() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::nbifomContainer() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::nbifomContainer() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& BEARER__RESOURCE__ALLOCATION__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* BEARER__RESOURCE__ALLOCATION__REJECT_template::get_descriptor() const { return &BEARER__RESOURCE__ALLOCATION__REJECT_descr_; } +const char* BEARER__RESOURCE__ALLOCATION__REJECT_template::fld_name(int p_index) const { return BEARER__RESOURCE__ALLOCATION__REJECT::fld_names[p_index]; } +void BEARER__RESOURCE__ALLOCATION__REQUEST::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet; fld_vec[5]=&field_linkedEpsBearerId; fld_vec[6]=&field_trafficFlowAgg; fld_vec[7]=&field_requiredTrafficFlowQoS; fld_vec[8]=&field_protocolConfigurationOptions; fld_vec[9]=&field_deviceProperties; fld_vec[10]=&field_nbifomContainer; fld_vec[11]=&field_extdProtocolConfigurationOptions; fld_vec[12]=&field_extd__EPS__QOS; } + +BEARER__RESOURCE__ALLOCATION__REQUEST::BEARER__RESOURCE__ALLOCATION__REQUEST() : Record_Type() { init_vec(); } + +BEARER__RESOURCE__ALLOCATION__REQUEST::BEARER__RESOURCE__ALLOCATION__REQUEST(const BEARER__RESOURCE__ALLOCATION__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_linkedEpsBearerId.is_bound() ) + field_linkedEpsBearerId = other_value.field_linkedEpsBearerId; +if (other_value.field_trafficFlowAgg.is_bound() ) + field_trafficFlowAgg = other_value.field_trafficFlowAgg; +if (other_value.field_requiredTrafficFlowQoS.is_bound() ) + field_requiredTrafficFlowQoS = other_value.field_requiredTrafficFlowQoS; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_deviceProperties.is_bound() ) + field_deviceProperties = other_value.field_deviceProperties; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_extd__EPS__QOS.is_bound() ) + field_extd__EPS__QOS = other_value.field_extd__EPS__QOS; +init_vec(); +} + +BEARER__RESOURCE__ALLOCATION__REQUEST::BEARER__RESOURCE__ALLOCATION__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const LinkedEpsBearerIdentity& par_linkedEpsBearerId, + const NAS__CommonTypeDefs::TrafficFlowTemplate& par_trafficFlowAgg, + const NAS__CommonTypeDefs::EPS__QualityOfService& par_requiredTrafficFlowQoS, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_extd__EPS__QOS) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_spareHalfOctet(par_spareHalfOctet), + field_linkedEpsBearerId(par_linkedEpsBearerId), + field_trafficFlowAgg(par_trafficFlowAgg), + field_requiredTrafficFlowQoS(par_requiredTrafficFlowQoS), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_deviceProperties(par_deviceProperties), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_extd__EPS__QOS(par_extd__EPS__QOS) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* BEARER__RESOURCE__ALLOCATION__REQUEST::get_descriptor() const { return &BEARER__RESOURCE__ALLOCATION__REQUEST_descr_; } +const TTCN_Typedescriptor_t* BEARER__RESOURCE__ALLOCATION__REQUEST::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &LinkedEpsBearerIdentity_descr_, &NAS__CommonTypeDefs::TrafficFlowTemplate_descr_, &NAS__CommonTypeDefs::EPS__QualityOfService_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::DeviceProperties_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::Extd__EPS__QOS_descr_ }; +const TTCN_Typedescriptor_t* BEARER__RESOURCE__ALLOCATION__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* BEARER__RESOURCE__ALLOCATION__REQUEST::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "spareHalfOctet", "linkedEpsBearerId", "trafficFlowAgg", "requiredTrafficFlowQoS", "protocolConfigurationOptions", "deviceProperties", "nbifomContainer", "extdProtocolConfigurationOptions", "extd_EPS_QOS" }; +const char* BEARER__RESOURCE__ALLOCATION__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int BEARER__RESOURCE__ALLOCATION__REQUEST::optional_indexes[] = { 8, 9, 10, 11, 12, -1 }; +const int* BEARER__RESOURCE__ALLOCATION__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int BEARER__RESOURCE__ALLOCATION__REQUEST::optional_indexes_asn[] = { 8, 9, 10, 11, 12, -1 }; +const int* BEARER__RESOURCE__ALLOCATION__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void BEARER__RESOURCE__ALLOCATION__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 13; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new LinkedEpsBearerIdentity_template(ANY_VALUE) : new LinkedEpsBearerIdentity_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::TrafficFlowTemplate_template(ANY_VALUE) : new NAS__CommonTypeDefs::TrafficFlowTemplate_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::EPS__QualityOfService_template(ANY_VALUE) : new NAS__CommonTypeDefs::EPS__QualityOfService_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::DeviceProperties_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DeviceProperties_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::Extd__EPS__QOS_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::Extd__EPS__QOS_template; +} +} + +BEARER__RESOURCE__ALLOCATION__REQUEST_template::BEARER__RESOURCE__ALLOCATION__REQUEST_template(BEARER__RESOURCE__ALLOCATION__REQUEST_template* p_precondition, BEARER__RESOURCE__ALLOCATION__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +BEARER__RESOURCE__ALLOCATION__REQUEST_template::BEARER__RESOURCE__ALLOCATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +BEARER__RESOURCE__ALLOCATION__REQUEST_template::~BEARER__RESOURCE__ALLOCATION__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean BEARER__RESOURCE__ALLOCATION__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const BEARER__RESOURCE__ALLOCATION__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +BEARER__RESOURCE__ALLOCATION__REQUEST_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +BEARER__RESOURCE__ALLOCATION__REQUEST_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::operator=(const BEARER__RESOURCE__ALLOCATION__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +BEARER__RESOURCE__ALLOCATION__REQUEST_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +BEARER__RESOURCE__ALLOCATION__REQUEST_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::operator=(const BEARER__RESOURCE__ALLOCATION__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +BEARER__RESOURCE__ALLOCATION__REQUEST BEARER__RESOURCE__ALLOCATION__REQUEST_template::valueof() const +{ +BEARER__RESOURCE__ALLOCATION__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(4))); } +LinkedEpsBearerIdentity_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::linkedEpsBearerId() { return *(static_cast(get_at(5))); } +const LinkedEpsBearerIdentity_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::linkedEpsBearerId() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::TrafficFlowTemplate_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::trafficFlowAgg() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::TrafficFlowTemplate_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::trafficFlowAgg() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::EPS__QualityOfService_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::requiredTrafficFlowQoS() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::EPS__QualityOfService_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::requiredTrafficFlowQoS() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::protocolConfigurationOptions() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::protocolConfigurationOptions() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::DeviceProperties_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::deviceProperties() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::DeviceProperties_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::deviceProperties() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::nbifomContainer() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::nbifomContainer() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::Extd__EPS__QOS_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::extd__EPS__QOS() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::Extd__EPS__QOS_template& BEARER__RESOURCE__ALLOCATION__REQUEST_template::extd__EPS__QOS() const { return *(static_cast(get_at(12))); } +const TTCN_Typedescriptor_t* BEARER__RESOURCE__ALLOCATION__REQUEST_template::get_descriptor() const { return &BEARER__RESOURCE__ALLOCATION__REQUEST_descr_; } +const char* BEARER__RESOURCE__ALLOCATION__REQUEST_template::fld_name(int p_index) const { return BEARER__RESOURCE__ALLOCATION__REQUEST::fld_names[p_index]; } +void BEARER__RESOURCE__MODIFICATION__REJECT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_esmCause; fld_vec[5]=&field_protocolConfigurationOptions; fld_vec[6]=&field_backOffTimerValue; fld_vec[7]=&field_reattemptInd; fld_vec[8]=&field_nbifomContainer; fld_vec[9]=&field_extdProtocolConfigurationOptions; } + +BEARER__RESOURCE__MODIFICATION__REJECT::BEARER__RESOURCE__MODIFICATION__REJECT() : Record_Type() { init_vec(); } + +BEARER__RESOURCE__MODIFICATION__REJECT::BEARER__RESOURCE__MODIFICATION__REJECT(const BEARER__RESOURCE__MODIFICATION__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_backOffTimerValue.is_bound() ) + field_backOffTimerValue = other_value.field_backOffTimerValue; +if (other_value.field_reattemptInd.is_bound() ) + field_reattemptInd = other_value.field_reattemptInd; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +BEARER__RESOURCE__MODIFICATION__REJECT::BEARER__RESOURCE__MODIFICATION__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_reattemptInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_backOffTimerValue(par_backOffTimerValue), + field_reattemptInd(par_reattemptInd), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* BEARER__RESOURCE__MODIFICATION__REJECT::get_descriptor() const { return &BEARER__RESOURCE__MODIFICATION__REJECT_descr_; } +const TTCN_Typedescriptor_t* BEARER__RESOURCE__MODIFICATION__REJECT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::ReAttemptIndicator_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* BEARER__RESOURCE__MODIFICATION__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* BEARER__RESOURCE__MODIFICATION__REJECT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "esmCause", "protocolConfigurationOptions", "backOffTimerValue", "reattemptInd", "nbifomContainer", "extdProtocolConfigurationOptions" }; +const char* BEARER__RESOURCE__MODIFICATION__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int BEARER__RESOURCE__MODIFICATION__REJECT::optional_indexes[] = { 5, 6, 7, 8, 9, -1 }; +const int* BEARER__RESOURCE__MODIFICATION__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int BEARER__RESOURCE__MODIFICATION__REJECT::optional_indexes_asn[] = { 5, 6, 7, 8, 9, -1 }; +const int* BEARER__RESOURCE__MODIFICATION__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void BEARER__RESOURCE__MODIFICATION__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ESM__Cause_template(ANY_VALUE) : new ESM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::ReAttemptIndicator_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReAttemptIndicator_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +BEARER__RESOURCE__MODIFICATION__REJECT_template::BEARER__RESOURCE__MODIFICATION__REJECT_template(BEARER__RESOURCE__MODIFICATION__REJECT_template* p_precondition, BEARER__RESOURCE__MODIFICATION__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +BEARER__RESOURCE__MODIFICATION__REJECT_template::BEARER__RESOURCE__MODIFICATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +BEARER__RESOURCE__MODIFICATION__REJECT_template::~BEARER__RESOURCE__MODIFICATION__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean BEARER__RESOURCE__MODIFICATION__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const BEARER__RESOURCE__MODIFICATION__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +BEARER__RESOURCE__MODIFICATION__REJECT_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +BEARER__RESOURCE__MODIFICATION__REJECT_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::operator=(const BEARER__RESOURCE__MODIFICATION__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +BEARER__RESOURCE__MODIFICATION__REJECT_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +BEARER__RESOURCE__MODIFICATION__REJECT_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::operator=(const BEARER__RESOURCE__MODIFICATION__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +BEARER__RESOURCE__MODIFICATION__REJECT BEARER__RESOURCE__MODIFICATION__REJECT_template::valueof() const +{ +BEARER__RESOURCE__MODIFICATION__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +ESM__Cause_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::esmCause() { return *(static_cast(get_at(4))); } +const ESM__Cause_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::esmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::protocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::backOffTimerValue() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::backOffTimerValue() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::ReAttemptIndicator_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::reattemptInd() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::ReAttemptIndicator_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::reattemptInd() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::nbifomContainer() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::nbifomContainer() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& BEARER__RESOURCE__MODIFICATION__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* BEARER__RESOURCE__MODIFICATION__REJECT_template::get_descriptor() const { return &BEARER__RESOURCE__MODIFICATION__REJECT_descr_; } +const char* BEARER__RESOURCE__MODIFICATION__REJECT_template::fld_name(int p_index) const { return BEARER__RESOURCE__MODIFICATION__REJECT::fld_names[p_index]; } +void BEARER__RESOURCE__MODIFICATION__REQUEST::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet; fld_vec[5]=&field_epsBearerIdentityforPacketFilter; fld_vec[6]=&field_trafficFlowAgg; fld_vec[7]=&field_requiredTrafficFlowQoS; fld_vec[8]=&field_esmCause; fld_vec[9]=&field_protocolConfigurationOptions; fld_vec[10]=&field_deviceProperties; fld_vec[11]=&field_nbifomContainer; fld_vec[12]=&field_headerCompressionConfig; fld_vec[13]=&field_extdProtocolConfigurationOptions; fld_vec[14]=&field_extd__EPS__QOS; } + +BEARER__RESOURCE__MODIFICATION__REQUEST::BEARER__RESOURCE__MODIFICATION__REQUEST() : Record_Type() { init_vec(); } + +BEARER__RESOURCE__MODIFICATION__REQUEST::BEARER__RESOURCE__MODIFICATION__REQUEST(const BEARER__RESOURCE__MODIFICATION__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_epsBearerIdentityforPacketFilter.is_bound() ) + field_epsBearerIdentityforPacketFilter = other_value.field_epsBearerIdentityforPacketFilter; +if (other_value.field_trafficFlowAgg.is_bound() ) + field_trafficFlowAgg = other_value.field_trafficFlowAgg; +if (other_value.field_requiredTrafficFlowQoS.is_bound() ) + field_requiredTrafficFlowQoS = other_value.field_requiredTrafficFlowQoS; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_deviceProperties.is_bound() ) + field_deviceProperties = other_value.field_deviceProperties; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_headerCompressionConfig.is_bound() ) + field_headerCompressionConfig = other_value.field_headerCompressionConfig; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_extd__EPS__QOS.is_bound() ) + field_extd__EPS__QOS = other_value.field_extd__EPS__QOS; +init_vec(); +} + +BEARER__RESOURCE__MODIFICATION__REQUEST::BEARER__RESOURCE__MODIFICATION__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const LinkedEpsBearerIdentity& par_epsBearerIdentityforPacketFilter, + const NAS__CommonTypeDefs::TrafficFlowTemplate& par_trafficFlowAgg, + const OPTIONAL& par_requiredTrafficFlowQoS, + const OPTIONAL& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_headerCompressionConfig, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_extd__EPS__QOS) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_spareHalfOctet(par_spareHalfOctet), + field_epsBearerIdentityforPacketFilter(par_epsBearerIdentityforPacketFilter), + field_trafficFlowAgg(par_trafficFlowAgg), + field_requiredTrafficFlowQoS(par_requiredTrafficFlowQoS), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_deviceProperties(par_deviceProperties), + field_nbifomContainer(par_nbifomContainer), + field_headerCompressionConfig(par_headerCompressionConfig), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_extd__EPS__QOS(par_extd__EPS__QOS) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* BEARER__RESOURCE__MODIFICATION__REQUEST::get_descriptor() const { return &BEARER__RESOURCE__MODIFICATION__REQUEST_descr_; } +const TTCN_Typedescriptor_t* BEARER__RESOURCE__MODIFICATION__REQUEST::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &LinkedEpsBearerIdentity_descr_, &NAS__CommonTypeDefs::TrafficFlowTemplate_descr_, &NAS__CommonTypeDefs::EPS__QualityOfService_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::DeviceProperties_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &HeaderCompressConfig_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::Extd__EPS__QOS_descr_ }; +const TTCN_Typedescriptor_t* BEARER__RESOURCE__MODIFICATION__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* BEARER__RESOURCE__MODIFICATION__REQUEST::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "spareHalfOctet", "epsBearerIdentityforPacketFilter", "trafficFlowAgg", "requiredTrafficFlowQoS", "esmCause", "protocolConfigurationOptions", "deviceProperties", "nbifomContainer", "headerCompressionConfig", "extdProtocolConfigurationOptions", "extd_EPS_QOS" }; +const char* BEARER__RESOURCE__MODIFICATION__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int BEARER__RESOURCE__MODIFICATION__REQUEST::optional_indexes[] = { 7, 8, 9, 10, 11, 12, 13, 14, -1 }; +const int* BEARER__RESOURCE__MODIFICATION__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int BEARER__RESOURCE__MODIFICATION__REQUEST::optional_indexes_asn[] = { 7, 8, 9, 10, 11, 12, 13, 14, -1 }; +const int* BEARER__RESOURCE__MODIFICATION__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void BEARER__RESOURCE__MODIFICATION__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 15; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new LinkedEpsBearerIdentity_template(ANY_VALUE) : new LinkedEpsBearerIdentity_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::TrafficFlowTemplate_template(ANY_VALUE) : new NAS__CommonTypeDefs::TrafficFlowTemplate_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::EPS__QualityOfService_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__QualityOfService_template; +single_value.value_elements[8] = was_any ? new ESM__Cause_template(ANY_OR_OMIT) : new ESM__Cause_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::DeviceProperties_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DeviceProperties_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[12] = was_any ? new HeaderCompressConfig_template(ANY_OR_OMIT) : new HeaderCompressConfig_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[14] = was_any ? new NAS__CommonTypeDefs::Extd__EPS__QOS_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::Extd__EPS__QOS_template; +} +} + +BEARER__RESOURCE__MODIFICATION__REQUEST_template::BEARER__RESOURCE__MODIFICATION__REQUEST_template(BEARER__RESOURCE__MODIFICATION__REQUEST_template* p_precondition, BEARER__RESOURCE__MODIFICATION__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +BEARER__RESOURCE__MODIFICATION__REQUEST_template::BEARER__RESOURCE__MODIFICATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +BEARER__RESOURCE__MODIFICATION__REQUEST_template::~BEARER__RESOURCE__MODIFICATION__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean BEARER__RESOURCE__MODIFICATION__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const BEARER__RESOURCE__MODIFICATION__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +BEARER__RESOURCE__MODIFICATION__REQUEST_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +BEARER__RESOURCE__MODIFICATION__REQUEST_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::operator=(const BEARER__RESOURCE__MODIFICATION__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +BEARER__RESOURCE__MODIFICATION__REQUEST_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +BEARER__RESOURCE__MODIFICATION__REQUEST_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::operator=(const BEARER__RESOURCE__MODIFICATION__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +BEARER__RESOURCE__MODIFICATION__REQUEST BEARER__RESOURCE__MODIFICATION__REQUEST_template::valueof() const +{ +BEARER__RESOURCE__MODIFICATION__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(4))); } +LinkedEpsBearerIdentity_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::epsBearerIdentityforPacketFilter() { return *(static_cast(get_at(5))); } +const LinkedEpsBearerIdentity_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::epsBearerIdentityforPacketFilter() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::TrafficFlowTemplate_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::trafficFlowAgg() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::TrafficFlowTemplate_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::trafficFlowAgg() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::EPS__QualityOfService_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::requiredTrafficFlowQoS() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::EPS__QualityOfService_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::requiredTrafficFlowQoS() const { return *(static_cast(get_at(7))); } +ESM__Cause_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::esmCause() { return *(static_cast(get_at(8))); } +const ESM__Cause_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::esmCause() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::protocolConfigurationOptions() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::protocolConfigurationOptions() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::DeviceProperties_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::deviceProperties() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::DeviceProperties_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::deviceProperties() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::nbifomContainer() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::nbifomContainer() const { return *(static_cast(get_at(11))); } +HeaderCompressConfig_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::headerCompressionConfig() { return *(static_cast(get_at(12))); } +const HeaderCompressConfig_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::headerCompressionConfig() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(13))); } +NAS__CommonTypeDefs::Extd__EPS__QOS_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::extd__EPS__QOS() { return *(static_cast(get_at(14))); } +const NAS__CommonTypeDefs::Extd__EPS__QOS_template& BEARER__RESOURCE__MODIFICATION__REQUEST_template::extd__EPS__QOS() const { return *(static_cast(get_at(14))); } +const TTCN_Typedescriptor_t* BEARER__RESOURCE__MODIFICATION__REQUEST_template::get_descriptor() const { return &BEARER__RESOURCE__MODIFICATION__REQUEST_descr_; } +const char* BEARER__RESOURCE__MODIFICATION__REQUEST_template::fld_name(int p_index) const { return BEARER__RESOURCE__MODIFICATION__REQUEST::fld_names[p_index]; } +void DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_protocolConfigurationOptions; fld_vec[5]=&field_extdProtocolConfigurationOptions; } + +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT() : Record_Type() { init_vec(); } + +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::get_descriptor() const { return &DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "protocolConfigurationOptions", "extdProtocolConfigurationOptions" }; +const char* DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::optional_indexes[] = { 4, 5, -1 }; +const int* DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::optional_indexes_asn[] = { 4, 5, -1 }; +const int* DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template* p_precondition, DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::~DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::valueof() const +{ +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::protocolConfigurationOptions() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::get_descriptor() const { return &DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_descr_; } +const char* DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template::fld_name(int p_index) const { return DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT::fld_names[p_index]; } +void DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_esmCause; fld_vec[5]=&field_protocolConfigurationOptions; fld_vec[6]=&field_t3396Value; fld_vec[7]=&field_wlanOffloadInd; fld_vec[8]=&field_nbifomContainer; fld_vec[9]=&field_extdProtocolConfigurationOptions; } + +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST() : Record_Type() { init_vec(); } + +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_t3396Value.is_bound() ) + field_t3396Value = other_value.field_t3396Value; +if (other_value.field_wlanOffloadInd.is_bound() ) + field_wlanOffloadInd = other_value.field_wlanOffloadInd; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_t3396Value, + const OPTIONAL& par_wlanOffloadInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_t3396Value(par_t3396Value), + field_wlanOffloadInd(par_wlanOffloadInd), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::get_descriptor() const { return &DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_descr_; } +const TTCN_Typedescriptor_t* DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::WLANOffloadAcceptability_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "esmCause", "protocolConfigurationOptions", "t3396Value", "wlanOffloadInd", "nbifomContainer", "extdProtocolConfigurationOptions" }; +const char* DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::optional_indexes[] = { 5, 6, 7, 8, 9, -1 }; +const int* DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::optional_indexes_asn[] = { 5, 6, 7, 8, 9, -1 }; +const int* DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ESM__Cause_template(ANY_VALUE) : new ESM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::WLANOffloadAcceptability_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WLANOffloadAcceptability_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template* p_precondition, DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::~DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::valueof() const +{ +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +ESM__Cause_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::esmCause() { return *(static_cast(get_at(4))); } +const ESM__Cause_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::esmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::protocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::protocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::t3396Value() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::t3396Value() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::WLANOffloadAcceptability_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::wlanOffloadInd() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::WLANOffloadAcceptability_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::wlanOffloadInd() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::nbifomContainer() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::nbifomContainer() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::get_descriptor() const { return &DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_descr_; } +const char* DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template::fld_name(int p_index) const { return DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST::fld_names[p_index]; } +void ESM__DUMMY__MESSAGE::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; } + +ESM__DUMMY__MESSAGE::ESM__DUMMY__MESSAGE() : Record_Type() { init_vec(); } + +ESM__DUMMY__MESSAGE::ESM__DUMMY__MESSAGE(const ESM__DUMMY__MESSAGE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +ESM__DUMMY__MESSAGE::ESM__DUMMY__MESSAGE(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ESM__DUMMY__MESSAGE::get_descriptor() const { return &ESM__DUMMY__MESSAGE_descr_; } +const TTCN_Typedescriptor_t* ESM__DUMMY__MESSAGE::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* ESM__DUMMY__MESSAGE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ESM__DUMMY__MESSAGE::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType" }; +const char* ESM__DUMMY__MESSAGE::fld_name(int p_index) const { return fld_names[p_index]; } + +void ESM__DUMMY__MESSAGE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ESM__DUMMY__MESSAGE_template::ESM__DUMMY__MESSAGE_template(ESM__DUMMY__MESSAGE_template* p_precondition, ESM__DUMMY__MESSAGE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ESM__DUMMY__MESSAGE_template::ESM__DUMMY__MESSAGE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ESM__DUMMY__MESSAGE_template::~ESM__DUMMY__MESSAGE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ESM__DUMMY__MESSAGE_template::match_dynamic(const Base_Type* match_value) const +{ +const ESM__DUMMY__MESSAGE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ESM__DUMMY__MESSAGE_template& ESM__DUMMY__MESSAGE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ESM__DUMMY__MESSAGE_template& ESM__DUMMY__MESSAGE_template::operator=(const ESM__DUMMY__MESSAGE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ESM__DUMMY__MESSAGE_template& ESM__DUMMY__MESSAGE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ESM__DUMMY__MESSAGE_template& ESM__DUMMY__MESSAGE_template::operator=(const ESM__DUMMY__MESSAGE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ESM__DUMMY__MESSAGE ESM__DUMMY__MESSAGE_template::valueof() const +{ +ESM__DUMMY__MESSAGE ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ESM__DUMMY__MESSAGE_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ESM__DUMMY__MESSAGE_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ESM__DUMMY__MESSAGE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ESM__DUMMY__MESSAGE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ESM__DUMMY__MESSAGE_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ESM__DUMMY__MESSAGE_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ESM__DUMMY__MESSAGE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ESM__DUMMY__MESSAGE_template::messageType() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* ESM__DUMMY__MESSAGE_template::get_descriptor() const { return &ESM__DUMMY__MESSAGE_descr_; } +const char* ESM__DUMMY__MESSAGE_template::fld_name(int p_index) const { return ESM__DUMMY__MESSAGE::fld_names[p_index]; } +void ESM__INFORMATION__REQUEST::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; } + +ESM__INFORMATION__REQUEST::ESM__INFORMATION__REQUEST() : Record_Type() { init_vec(); } + +ESM__INFORMATION__REQUEST::ESM__INFORMATION__REQUEST(const ESM__INFORMATION__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +ESM__INFORMATION__REQUEST::ESM__INFORMATION__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ESM__INFORMATION__REQUEST::get_descriptor() const { return &ESM__INFORMATION__REQUEST_descr_; } +const TTCN_Typedescriptor_t* ESM__INFORMATION__REQUEST::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* ESM__INFORMATION__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ESM__INFORMATION__REQUEST::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType" }; +const char* ESM__INFORMATION__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void ESM__INFORMATION__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ESM__INFORMATION__REQUEST_template::ESM__INFORMATION__REQUEST_template(ESM__INFORMATION__REQUEST_template* p_precondition, ESM__INFORMATION__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ESM__INFORMATION__REQUEST_template::ESM__INFORMATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ESM__INFORMATION__REQUEST_template::~ESM__INFORMATION__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ESM__INFORMATION__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const ESM__INFORMATION__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ESM__INFORMATION__REQUEST_template& ESM__INFORMATION__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ESM__INFORMATION__REQUEST_template& ESM__INFORMATION__REQUEST_template::operator=(const ESM__INFORMATION__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ESM__INFORMATION__REQUEST_template& ESM__INFORMATION__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ESM__INFORMATION__REQUEST_template& ESM__INFORMATION__REQUEST_template::operator=(const ESM__INFORMATION__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ESM__INFORMATION__REQUEST ESM__INFORMATION__REQUEST_template::valueof() const +{ +ESM__INFORMATION__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ESM__INFORMATION__REQUEST_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ESM__INFORMATION__REQUEST_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ESM__INFORMATION__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ESM__INFORMATION__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ESM__INFORMATION__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ESM__INFORMATION__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ESM__INFORMATION__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ESM__INFORMATION__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* ESM__INFORMATION__REQUEST_template::get_descriptor() const { return &ESM__INFORMATION__REQUEST_descr_; } +const char* ESM__INFORMATION__REQUEST_template::fld_name(int p_index) const { return ESM__INFORMATION__REQUEST::fld_names[p_index]; } +void ESM__INFORMATION__RESPONSE::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_accessPointName; fld_vec[5]=&field_protocolConfigurationOptions; fld_vec[6]=&field_extdProtocolConfigurationOptions; } + +ESM__INFORMATION__RESPONSE::ESM__INFORMATION__RESPONSE() : Record_Type() { init_vec(); } + +ESM__INFORMATION__RESPONSE::ESM__INFORMATION__RESPONSE(const ESM__INFORMATION__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_accessPointName.is_bound() ) + field_accessPointName = other_value.field_accessPointName; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +ESM__INFORMATION__RESPONSE::ESM__INFORMATION__RESPONSE(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_accessPointName, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_accessPointName(par_accessPointName), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ESM__INFORMATION__RESPONSE::get_descriptor() const { return &ESM__INFORMATION__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* ESM__INFORMATION__RESPONSE::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::AccessPointName_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* ESM__INFORMATION__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ESM__INFORMATION__RESPONSE::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "accessPointName", "protocolConfigurationOptions", "extdProtocolConfigurationOptions" }; +const char* ESM__INFORMATION__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ESM__INFORMATION__RESPONSE::optional_indexes[] = { 4, 5, 6, -1 }; +const int* ESM__INFORMATION__RESPONSE::get_optional_indexes() const { return optional_indexes; } + +const int ESM__INFORMATION__RESPONSE::optional_indexes_asn[] = { 4, 5, 6, -1 }; +const int* ESM__INFORMATION__RESPONSE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ESM__INFORMATION__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::AccessPointName_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AccessPointName_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +ESM__INFORMATION__RESPONSE_template::ESM__INFORMATION__RESPONSE_template(ESM__INFORMATION__RESPONSE_template* p_precondition, ESM__INFORMATION__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ESM__INFORMATION__RESPONSE_template::ESM__INFORMATION__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ESM__INFORMATION__RESPONSE_template::~ESM__INFORMATION__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ESM__INFORMATION__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const ESM__INFORMATION__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ESM__INFORMATION__RESPONSE_template& ESM__INFORMATION__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ESM__INFORMATION__RESPONSE_template& ESM__INFORMATION__RESPONSE_template::operator=(const ESM__INFORMATION__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ESM__INFORMATION__RESPONSE_template& ESM__INFORMATION__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ESM__INFORMATION__RESPONSE_template& ESM__INFORMATION__RESPONSE_template::operator=(const ESM__INFORMATION__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ESM__INFORMATION__RESPONSE ESM__INFORMATION__RESPONSE_template::valueof() const +{ +ESM__INFORMATION__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ESM__INFORMATION__RESPONSE_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ESM__INFORMATION__RESPONSE_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ESM__INFORMATION__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ESM__INFORMATION__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ESM__INFORMATION__RESPONSE_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ESM__INFORMATION__RESPONSE_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ESM__INFORMATION__RESPONSE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ESM__INFORMATION__RESPONSE_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::AccessPointName_template& ESM__INFORMATION__RESPONSE_template::accessPointName() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::AccessPointName_template& ESM__INFORMATION__RESPONSE_template::accessPointName() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& ESM__INFORMATION__RESPONSE_template::protocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& ESM__INFORMATION__RESPONSE_template::protocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ESM__INFORMATION__RESPONSE_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& ESM__INFORMATION__RESPONSE_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* ESM__INFORMATION__RESPONSE_template::get_descriptor() const { return &ESM__INFORMATION__RESPONSE_descr_; } +const char* ESM__INFORMATION__RESPONSE_template::fld_name(int p_index) const { return ESM__INFORMATION__RESPONSE::fld_names[p_index]; } +void ESM__STATUS::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_esmCause; } + +ESM__STATUS::ESM__STATUS() : Record_Type() { init_vec(); } + +ESM__STATUS::ESM__STATUS(const ESM__STATUS& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +init_vec(); +} + +ESM__STATUS::ESM__STATUS(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_esmCause(par_esmCause) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ESM__STATUS::get_descriptor() const { return &ESM__STATUS_descr_; } +const TTCN_Typedescriptor_t* ESM__STATUS::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__Cause_descr_ }; +const TTCN_Typedescriptor_t* ESM__STATUS::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ESM__STATUS::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "esmCause" }; +const char* ESM__STATUS::fld_name(int p_index) const { return fld_names[p_index]; } + +void ESM__STATUS_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ESM__Cause_template(ANY_VALUE) : new ESM__Cause_template; +} +} + +ESM__STATUS_template::ESM__STATUS_template(ESM__STATUS_template* p_precondition, ESM__STATUS_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ESM__STATUS_template::ESM__STATUS_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ESM__STATUS_template::~ESM__STATUS_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ESM__STATUS_template::match_dynamic(const Base_Type* match_value) const +{ +const ESM__STATUS* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ESM__STATUS_template& ESM__STATUS_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ESM__STATUS_template& ESM__STATUS_template::operator=(const ESM__STATUS& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ESM__STATUS_template& ESM__STATUS_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ESM__STATUS_template& ESM__STATUS_template::operator=(const ESM__STATUS_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ESM__STATUS ESM__STATUS_template::valueof() const +{ +ESM__STATUS ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ESM__STATUS_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ESM__STATUS_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ESM__STATUS_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ESM__STATUS_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ESM__STATUS_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ESM__STATUS_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ESM__STATUS_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ESM__STATUS_template::messageType() const { return *(static_cast(get_at(3))); } +ESM__Cause_template& ESM__STATUS_template::esmCause() { return *(static_cast(get_at(4))); } +const ESM__Cause_template& ESM__STATUS_template::esmCause() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* ESM__STATUS_template::get_descriptor() const { return &ESM__STATUS_descr_; } +const char* ESM__STATUS_template::fld_name(int p_index) const { return ESM__STATUS::fld_names[p_index]; } +void MODIFY__EPS__BEARER__CONTEXT__ACCEPT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_protocolConfigurationOptions; fld_vec[5]=&field_nbifomContainer; fld_vec[6]=&field_extdProtocolConfigurationOptions; } + +MODIFY__EPS__BEARER__CONTEXT__ACCEPT::MODIFY__EPS__BEARER__CONTEXT__ACCEPT() : Record_Type() { init_vec(); } + +MODIFY__EPS__BEARER__CONTEXT__ACCEPT::MODIFY__EPS__BEARER__CONTEXT__ACCEPT(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +MODIFY__EPS__BEARER__CONTEXT__ACCEPT::MODIFY__EPS__BEARER__CONTEXT__ACCEPT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__ACCEPT::get_descriptor() const { return &MODIFY__EPS__BEARER__CONTEXT__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__ACCEPT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MODIFY__EPS__BEARER__CONTEXT__ACCEPT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "protocolConfigurationOptions", "nbifomContainer", "extdProtocolConfigurationOptions" }; +const char* MODIFY__EPS__BEARER__CONTEXT__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MODIFY__EPS__BEARER__CONTEXT__ACCEPT::optional_indexes[] = { 4, 5, 6, -1 }; +const int* MODIFY__EPS__BEARER__CONTEXT__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int MODIFY__EPS__BEARER__CONTEXT__ACCEPT::optional_indexes_asn[] = { 4, 5, 6, -1 }; +const int* MODIFY__EPS__BEARER__CONTEXT__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template* p_precondition, MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::~MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const MODIFY__EPS__BEARER__CONTEXT__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::operator=(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__ACCEPT MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::valueof() const +{ +MODIFY__EPS__BEARER__CONTEXT__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::protocolConfigurationOptions() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::nbifomContainer() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::nbifomContainer() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::get_descriptor() const { return &MODIFY__EPS__BEARER__CONTEXT__ACCEPT_descr_; } +const char* MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template::fld_name(int p_index) const { return MODIFY__EPS__BEARER__CONTEXT__ACCEPT::fld_names[p_index]; } +void MODIFY__EPS__BEARER__CONTEXT__REJECT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_esmCause; fld_vec[5]=&field_protocolConfigurationOptions; fld_vec[6]=&field_nbifomContainer; fld_vec[7]=&field_extdProtocolConfigurationOptions; } + +MODIFY__EPS__BEARER__CONTEXT__REJECT::MODIFY__EPS__BEARER__CONTEXT__REJECT() : Record_Type() { init_vec(); } + +MODIFY__EPS__BEARER__CONTEXT__REJECT::MODIFY__EPS__BEARER__CONTEXT__REJECT(const MODIFY__EPS__BEARER__CONTEXT__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +MODIFY__EPS__BEARER__CONTEXT__REJECT::MODIFY__EPS__BEARER__CONTEXT__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__REJECT::get_descriptor() const { return &MODIFY__EPS__BEARER__CONTEXT__REJECT_descr_; } +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__REJECT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MODIFY__EPS__BEARER__CONTEXT__REJECT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "esmCause", "protocolConfigurationOptions", "nbifomContainer", "extdProtocolConfigurationOptions" }; +const char* MODIFY__EPS__BEARER__CONTEXT__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MODIFY__EPS__BEARER__CONTEXT__REJECT::optional_indexes[] = { 5, 6, 7, -1 }; +const int* MODIFY__EPS__BEARER__CONTEXT__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int MODIFY__EPS__BEARER__CONTEXT__REJECT::optional_indexes_asn[] = { 5, 6, 7, -1 }; +const int* MODIFY__EPS__BEARER__CONTEXT__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MODIFY__EPS__BEARER__CONTEXT__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ESM__Cause_template(ANY_VALUE) : new ESM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +MODIFY__EPS__BEARER__CONTEXT__REJECT_template::MODIFY__EPS__BEARER__CONTEXT__REJECT_template(MODIFY__EPS__BEARER__CONTEXT__REJECT_template* p_precondition, MODIFY__EPS__BEARER__CONTEXT__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MODIFY__EPS__BEARER__CONTEXT__REJECT_template::MODIFY__EPS__BEARER__CONTEXT__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MODIFY__EPS__BEARER__CONTEXT__REJECT_template::~MODIFY__EPS__BEARER__CONTEXT__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MODIFY__EPS__BEARER__CONTEXT__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const MODIFY__EPS__BEARER__CONTEXT__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MODIFY__EPS__BEARER__CONTEXT__REJECT_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__REJECT_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::operator=(const MODIFY__EPS__BEARER__CONTEXT__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__REJECT_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__REJECT_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::operator=(const MODIFY__EPS__BEARER__CONTEXT__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__REJECT MODIFY__EPS__BEARER__CONTEXT__REJECT_template::valueof() const +{ +MODIFY__EPS__BEARER__CONTEXT__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +ESM__Cause_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::esmCause() { return *(static_cast(get_at(4))); } +const ESM__Cause_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::esmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::protocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::nbifomContainer() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::nbifomContainer() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__REJECT_template::get_descriptor() const { return &MODIFY__EPS__BEARER__CONTEXT__REJECT_descr_; } +const char* MODIFY__EPS__BEARER__CONTEXT__REJECT_template::fld_name(int p_index) const { return MODIFY__EPS__BEARER__CONTEXT__REJECT::fld_names[p_index]; } +void MODIFY__EPS__BEARER__CONTEXT__REQUEST::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_newEPSQos; fld_vec[5]=&field_tft; fld_vec[6]=&field_newQos; fld_vec[7]=&field_negotiatedLlcSapi; fld_vec[8]=&field_radioPriority; fld_vec[9]=&field_packetFlowIdentifier; fld_vec[10]=&field_apnAggMaxBitRate; fld_vec[11]=&field_protocolConfigurationOptions; fld_vec[12]=&field_wlanOffloadInd; fld_vec[13]=&field_nbifomContainer; fld_vec[14]=&field_headerCompressionConfig; fld_vec[15]=&field_extdProtocolConfigurationOptions; fld_vec[16]=&field_extd__APN__AMBR; fld_vec[17]=&field_extd__EPS__QOS; } + +MODIFY__EPS__BEARER__CONTEXT__REQUEST::MODIFY__EPS__BEARER__CONTEXT__REQUEST() : Record_Type() { init_vec(); } + +MODIFY__EPS__BEARER__CONTEXT__REQUEST::MODIFY__EPS__BEARER__CONTEXT__REQUEST(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_newEPSQos.is_bound() ) + field_newEPSQos = other_value.field_newEPSQos; +if (other_value.field_tft.is_bound() ) + field_tft = other_value.field_tft; +if (other_value.field_newQos.is_bound() ) + field_newQos = other_value.field_newQos; +if (other_value.field_negotiatedLlcSapi.is_bound() ) + field_negotiatedLlcSapi = other_value.field_negotiatedLlcSapi; +if (other_value.field_radioPriority.is_bound() ) + field_radioPriority = other_value.field_radioPriority; +if (other_value.field_packetFlowIdentifier.is_bound() ) + field_packetFlowIdentifier = other_value.field_packetFlowIdentifier; +if (other_value.field_apnAggMaxBitRate.is_bound() ) + field_apnAggMaxBitRate = other_value.field_apnAggMaxBitRate; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_wlanOffloadInd.is_bound() ) + field_wlanOffloadInd = other_value.field_wlanOffloadInd; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_headerCompressionConfig.is_bound() ) + field_headerCompressionConfig = other_value.field_headerCompressionConfig; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_extd__APN__AMBR.is_bound() ) + field_extd__APN__AMBR = other_value.field_extd__APN__AMBR; +if (other_value.field_extd__EPS__QOS.is_bound() ) + field_extd__EPS__QOS = other_value.field_extd__EPS__QOS; +init_vec(); +} + +MODIFY__EPS__BEARER__CONTEXT__REQUEST::MODIFY__EPS__BEARER__CONTEXT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_newEPSQos, + const OPTIONAL& par_tft, + const OPTIONAL& par_newQos, + const OPTIONAL& par_negotiatedLlcSapi, + const OPTIONAL& par_radioPriority, + const OPTIONAL& par_packetFlowIdentifier, + const OPTIONAL& par_apnAggMaxBitRate, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_wlanOffloadInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_headerCompressionConfig, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_extd__APN__AMBR, + const OPTIONAL& par_extd__EPS__QOS) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_newEPSQos(par_newEPSQos), + field_tft(par_tft), + field_newQos(par_newQos), + field_negotiatedLlcSapi(par_negotiatedLlcSapi), + field_radioPriority(par_radioPriority), + field_packetFlowIdentifier(par_packetFlowIdentifier), + field_apnAggMaxBitRate(par_apnAggMaxBitRate), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_wlanOffloadInd(par_wlanOffloadInd), + field_nbifomContainer(par_nbifomContainer), + field_headerCompressionConfig(par_headerCompressionConfig), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_extd__APN__AMBR(par_extd__APN__AMBR), + field_extd__EPS__QOS(par_extd__EPS__QOS) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__REQUEST::get_descriptor() const { return &MODIFY__EPS__BEARER__CONTEXT__REQUEST_descr_; } +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__REQUEST::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::EPS__QualityOfService_descr_, &NAS__CommonTypeDefs::TrafficFlowTemplate_descr_, &NAS__CommonTypeDefs::QualityOfService_descr_, &NAS__CommonTypeDefs::LLC__SAPI_descr_, &NAS__CommonTypeDefs::RadioPriority_descr_, &NAS__CommonTypeDefs::PacketFlowIdentifier_descr_, &APN__AMBR_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::WLANOffloadAcceptability_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &HeaderCompressConfig_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &Extd__APN__AMBR_descr_, &NAS__CommonTypeDefs::Extd__EPS__QOS_descr_ }; +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MODIFY__EPS__BEARER__CONTEXT__REQUEST::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "newEPSQos", "tft", "newQos", "negotiatedLlcSapi", "radioPriority", "packetFlowIdentifier", "apnAggMaxBitRate", "protocolConfigurationOptions", "wlanOffloadInd", "nbifomContainer", "headerCompressionConfig", "extdProtocolConfigurationOptions", "extd_APN_AMBR", "extd_EPS_QOS" }; +const char* MODIFY__EPS__BEARER__CONTEXT__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MODIFY__EPS__BEARER__CONTEXT__REQUEST::optional_indexes[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1 }; +const int* MODIFY__EPS__BEARER__CONTEXT__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int MODIFY__EPS__BEARER__CONTEXT__REQUEST::optional_indexes_asn[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1 }; +const int* MODIFY__EPS__BEARER__CONTEXT__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 18; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::EPS__QualityOfService_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__QualityOfService_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::TrafficFlowTemplate_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::TrafficFlowTemplate_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::QualityOfService_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::QualityOfService_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::LLC__SAPI_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::LLC__SAPI_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::RadioPriority_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::RadioPriority_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::PacketFlowIdentifier_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::PacketFlowIdentifier_template; +single_value.value_elements[10] = was_any ? new APN__AMBR_template(ANY_OR_OMIT) : new APN__AMBR_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::WLANOffloadAcceptability_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WLANOffloadAcceptability_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[14] = was_any ? new HeaderCompressConfig_template(ANY_OR_OMIT) : new HeaderCompressConfig_template; +single_value.value_elements[15] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[16] = was_any ? new Extd__APN__AMBR_template(ANY_OR_OMIT) : new Extd__APN__AMBR_template; +single_value.value_elements[17] = was_any ? new NAS__CommonTypeDefs::Extd__EPS__QOS_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::Extd__EPS__QOS_template; +} +} + +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(MODIFY__EPS__BEARER__CONTEXT__REQUEST_template* p_precondition, MODIFY__EPS__BEARER__CONTEXT__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::~MODIFY__EPS__BEARER__CONTEXT__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const MODIFY__EPS__BEARER__CONTEXT__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::operator=(const MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MODIFY__EPS__BEARER__CONTEXT__REQUEST MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::valueof() const +{ +MODIFY__EPS__BEARER__CONTEXT__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::EPS__QualityOfService_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::newEPSQos() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::EPS__QualityOfService_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::newEPSQos() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::TrafficFlowTemplate_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::tft() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::TrafficFlowTemplate_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::tft() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::QualityOfService_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::newQos() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::QualityOfService_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::newQos() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::LLC__SAPI_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedLlcSapi() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::LLC__SAPI_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::negotiatedLlcSapi() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::RadioPriority_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::radioPriority() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::RadioPriority_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::radioPriority() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::PacketFlowIdentifier_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::packetFlowIdentifier() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::PacketFlowIdentifier_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::packetFlowIdentifier() const { return *(static_cast(get_at(9))); } +APN__AMBR_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::apnAggMaxBitRate() { return *(static_cast(get_at(10))); } +const APN__AMBR_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::apnAggMaxBitRate() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::protocolConfigurationOptions() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::protocolConfigurationOptions() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::WLANOffloadAcceptability_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::wlanOffloadInd() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::WLANOffloadAcceptability_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::wlanOffloadInd() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::nbifomContainer() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::nbifomContainer() const { return *(static_cast(get_at(13))); } +HeaderCompressConfig_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::headerCompressionConfig() { return *(static_cast(get_at(14))); } +const HeaderCompressConfig_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::headerCompressionConfig() const { return *(static_cast(get_at(14))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(15))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(15))); } +Extd__APN__AMBR_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::extd__APN__AMBR() { return *(static_cast(get_at(16))); } +const Extd__APN__AMBR_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::extd__APN__AMBR() const { return *(static_cast(get_at(16))); } +NAS__CommonTypeDefs::Extd__EPS__QOS_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::extd__EPS__QOS() { return *(static_cast(get_at(17))); } +const NAS__CommonTypeDefs::Extd__EPS__QOS_template& MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::extd__EPS__QOS() const { return *(static_cast(get_at(17))); } +const TTCN_Typedescriptor_t* MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::get_descriptor() const { return &MODIFY__EPS__BEARER__CONTEXT__REQUEST_descr_; } +const char* MODIFY__EPS__BEARER__CONTEXT__REQUEST_template::fld_name(int p_index) const { return MODIFY__EPS__BEARER__CONTEXT__REQUEST::fld_names[p_index]; } +void NotificationIndicator::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_notificationInd; } + +NotificationIndicator::NotificationIndicator() : Record_Type() { init_vec(); } + +NotificationIndicator::NotificationIndicator(const NotificationIndicator& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_notificationInd.is_bound() ) + field_notificationInd = other_value.field_notificationInd; +init_vec(); +} + +NotificationIndicator::NotificationIndicator(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_notificationInd) : field_iei(par_iei), + field_iel(par_iel), + field_notificationInd(par_notificationInd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NotificationIndicator::get_descriptor() const { return &NotificationIndicator_descr_; } +const TTCN_Typedescriptor_t* NotificationIndicator::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* NotificationIndicator::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NotificationIndicator::fld_names[] = { "iei", "iel", "notificationInd" }; +const char* NotificationIndicator::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NotificationIndicator::optional_indexes[] = { 0, -1 }; +const int* NotificationIndicator::get_optional_indexes() const { return optional_indexes; } + +const int NotificationIndicator::optional_indexes_asn[] = { 0, -1 }; +const int* NotificationIndicator::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NotificationIndicator_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NotificationIndicator_template::NotificationIndicator_template(NotificationIndicator_template* p_precondition, NotificationIndicator_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NotificationIndicator_template::NotificationIndicator_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NotificationIndicator_template::~NotificationIndicator_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NotificationIndicator_template::match_dynamic(const Base_Type* match_value) const +{ +const NotificationIndicator* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NotificationIndicator_template& NotificationIndicator_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NotificationIndicator_template& NotificationIndicator_template::operator=(const NotificationIndicator& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NotificationIndicator_template& NotificationIndicator_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NotificationIndicator_template& NotificationIndicator_template::operator=(const NotificationIndicator_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NotificationIndicator NotificationIndicator_template::valueof() const +{ +NotificationIndicator ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NotificationIndicator_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NotificationIndicator_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NotificationIndicator_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NotificationIndicator_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NotificationIndicator_template::notificationInd() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NotificationIndicator_template::notificationInd() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NotificationIndicator_template::get_descriptor() const { return &NotificationIndicator_descr_; } +const char* NotificationIndicator_template::fld_name(int p_index) const { return NotificationIndicator::fld_names[p_index]; } +void NOTIFICATION::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_notificationIndicator; } + +NOTIFICATION::NOTIFICATION() : Record_Type() { init_vec(); } + +NOTIFICATION::NOTIFICATION(const NOTIFICATION& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_notificationIndicator.is_bound() ) + field_notificationIndicator = other_value.field_notificationIndicator; +init_vec(); +} + +NOTIFICATION::NOTIFICATION(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const NotificationIndicator& par_notificationIndicator) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_notificationIndicator(par_notificationIndicator) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NOTIFICATION::get_descriptor() const { return &NOTIFICATION_descr_; } +const TTCN_Typedescriptor_t* NOTIFICATION::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NotificationIndicator_descr_ }; +const TTCN_Typedescriptor_t* NOTIFICATION::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NOTIFICATION::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "notificationIndicator" }; +const char* NOTIFICATION::fld_name(int p_index) const { return fld_names[p_index]; } + +void NOTIFICATION_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NotificationIndicator_template(ANY_VALUE) : new NotificationIndicator_template; +} +} + +NOTIFICATION_template::NOTIFICATION_template(NOTIFICATION_template* p_precondition, NOTIFICATION_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NOTIFICATION_template::NOTIFICATION_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NOTIFICATION_template::~NOTIFICATION_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NOTIFICATION_template::match_dynamic(const Base_Type* match_value) const +{ +const NOTIFICATION* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NOTIFICATION_template& NOTIFICATION_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NOTIFICATION_template& NOTIFICATION_template::operator=(const NOTIFICATION& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NOTIFICATION_template& NOTIFICATION_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NOTIFICATION_template& NOTIFICATION_template::operator=(const NOTIFICATION_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NOTIFICATION NOTIFICATION_template::valueof() const +{ +NOTIFICATION ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& NOTIFICATION_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& NOTIFICATION_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NOTIFICATION_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NOTIFICATION_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NOTIFICATION_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NOTIFICATION_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NOTIFICATION_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NOTIFICATION_template::messageType() const { return *(static_cast(get_at(3))); } +NotificationIndicator_template& NOTIFICATION_template::notificationIndicator() { return *(static_cast(get_at(4))); } +const NotificationIndicator_template& NOTIFICATION_template::notificationIndicator() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NOTIFICATION_template::get_descriptor() const { return &NOTIFICATION_descr_; } +const char* NOTIFICATION_template::fld_name(int p_index) const { return NOTIFICATION::fld_names[p_index]; } +void PDN__CONNECTIVITY__REJECT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_esmCause; fld_vec[5]=&field_protocolConfigurationOptions; fld_vec[6]=&field_backOffTimerValue; fld_vec[7]=&field_reattemptInd; fld_vec[8]=&field_nbifomContainer; fld_vec[9]=&field_extdProtocolConfigurationOptions; } + +PDN__CONNECTIVITY__REJECT::PDN__CONNECTIVITY__REJECT() : Record_Type() { init_vec(); } + +PDN__CONNECTIVITY__REJECT::PDN__CONNECTIVITY__REJECT(const PDN__CONNECTIVITY__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_backOffTimerValue.is_bound() ) + field_backOffTimerValue = other_value.field_backOffTimerValue; +if (other_value.field_reattemptInd.is_bound() ) + field_reattemptInd = other_value.field_reattemptInd; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +PDN__CONNECTIVITY__REJECT::PDN__CONNECTIVITY__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_reattemptInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_backOffTimerValue(par_backOffTimerValue), + field_reattemptInd(par_reattemptInd), + field_nbifomContainer(par_nbifomContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDN__CONNECTIVITY__REJECT::get_descriptor() const { return &PDN__CONNECTIVITY__REJECT_descr_; } +const TTCN_Typedescriptor_t* PDN__CONNECTIVITY__REJECT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::ReAttemptIndicator_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* PDN__CONNECTIVITY__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDN__CONNECTIVITY__REJECT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "esmCause", "protocolConfigurationOptions", "backOffTimerValue", "reattemptInd", "nbifomContainer", "extdProtocolConfigurationOptions" }; +const char* PDN__CONNECTIVITY__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PDN__CONNECTIVITY__REJECT::optional_indexes[] = { 5, 6, 7, 8, 9, -1 }; +const int* PDN__CONNECTIVITY__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int PDN__CONNECTIVITY__REJECT::optional_indexes_asn[] = { 5, 6, 7, 8, 9, -1 }; +const int* PDN__CONNECTIVITY__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PDN__CONNECTIVITY__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ESM__Cause_template(ANY_VALUE) : new ESM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::ReAttemptIndicator_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReAttemptIndicator_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +PDN__CONNECTIVITY__REJECT_template::PDN__CONNECTIVITY__REJECT_template(PDN__CONNECTIVITY__REJECT_template* p_precondition, PDN__CONNECTIVITY__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDN__CONNECTIVITY__REJECT_template::PDN__CONNECTIVITY__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDN__CONNECTIVITY__REJECT_template::~PDN__CONNECTIVITY__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDN__CONNECTIVITY__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const PDN__CONNECTIVITY__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDN__CONNECTIVITY__REJECT_template& PDN__CONNECTIVITY__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDN__CONNECTIVITY__REJECT_template& PDN__CONNECTIVITY__REJECT_template::operator=(const PDN__CONNECTIVITY__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDN__CONNECTIVITY__REJECT_template& PDN__CONNECTIVITY__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDN__CONNECTIVITY__REJECT_template& PDN__CONNECTIVITY__REJECT_template::operator=(const PDN__CONNECTIVITY__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDN__CONNECTIVITY__REJECT PDN__CONNECTIVITY__REJECT_template::valueof() const +{ +PDN__CONNECTIVITY__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& PDN__CONNECTIVITY__REJECT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& PDN__CONNECTIVITY__REJECT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PDN__CONNECTIVITY__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PDN__CONNECTIVITY__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& PDN__CONNECTIVITY__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& PDN__CONNECTIVITY__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PDN__CONNECTIVITY__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PDN__CONNECTIVITY__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +ESM__Cause_template& PDN__CONNECTIVITY__REJECT_template::esmCause() { return *(static_cast(get_at(4))); } +const ESM__Cause_template& PDN__CONNECTIVITY__REJECT_template::esmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& PDN__CONNECTIVITY__REJECT_template::protocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& PDN__CONNECTIVITY__REJECT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& PDN__CONNECTIVITY__REJECT_template::backOffTimerValue() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& PDN__CONNECTIVITY__REJECT_template::backOffTimerValue() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::ReAttemptIndicator_template& PDN__CONNECTIVITY__REJECT_template::reattemptInd() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::ReAttemptIndicator_template& PDN__CONNECTIVITY__REJECT_template::reattemptInd() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& PDN__CONNECTIVITY__REJECT_template::nbifomContainer() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& PDN__CONNECTIVITY__REJECT_template::nbifomContainer() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PDN__CONNECTIVITY__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PDN__CONNECTIVITY__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* PDN__CONNECTIVITY__REJECT_template::get_descriptor() const { return &PDN__CONNECTIVITY__REJECT_descr_; } +const char* PDN__CONNECTIVITY__REJECT_template::fld_name(int p_index) const { return PDN__CONNECTIVITY__REJECT::fld_names[p_index]; } +void PDN__Type::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_typeValue; } + +PDN__Type::PDN__Type() : Record_Type() { init_vec(); } + +PDN__Type::PDN__Type(const PDN__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_typeValue.is_bound() ) + field_typeValue = other_value.field_typeValue; +init_vec(); +} + +PDN__Type::PDN__Type(const BITSTRING& par_spare, + const BITSTRING& par_typeValue) : field_spare(par_spare), + field_typeValue(par_typeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDN__Type::get_descriptor() const { return &PDN__Type_descr_; } +const TTCN_Typedescriptor_t* PDN__Type::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &NAS__CommonTypeDefs::PdnTypeValue_descr_ }; +const TTCN_Typedescriptor_t* PDN__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDN__Type::fld_names[] = { "spare", "typeValue" }; +const char* PDN__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void PDN__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +PDN__Type_template::PDN__Type_template(PDN__Type_template* p_precondition, PDN__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDN__Type_template::PDN__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDN__Type_template::~PDN__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDN__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const PDN__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDN__Type_template& PDN__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDN__Type_template& PDN__Type_template::operator=(const PDN__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDN__Type_template& PDN__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDN__Type_template& PDN__Type_template::operator=(const PDN__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDN__Type PDN__Type_template::valueof() const +{ +PDN__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& PDN__Type_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& PDN__Type_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PDN__Type_template::typeValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PDN__Type_template::typeValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* PDN__Type_template::get_descriptor() const { return &PDN__Type_descr_; } +const char* PDN__Type_template::fld_name(int p_index) const { return PDN__Type::fld_names[p_index]; } +void PDN__CONNECTIVITY__REQUEST::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_pdnType; fld_vec[5]=&field_requestType; fld_vec[6]=&field_esmInfoTransferFlag; fld_vec[7]=&field_accessPointName; fld_vec[8]=&field_protocolConfigurationOptions; fld_vec[9]=&field_deviceProperties; fld_vec[10]=&field_nbifomContainer; fld_vec[11]=&field_headerCompressionConfig; fld_vec[12]=&field_extdProtocolConfigurationOptions; } + +PDN__CONNECTIVITY__REQUEST::PDN__CONNECTIVITY__REQUEST() : Record_Type() { init_vec(); } + +PDN__CONNECTIVITY__REQUEST::PDN__CONNECTIVITY__REQUEST(const PDN__CONNECTIVITY__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_pdnType.is_bound() ) + field_pdnType = other_value.field_pdnType; +if (other_value.field_requestType.is_bound() ) + field_requestType = other_value.field_requestType; +if (other_value.field_esmInfoTransferFlag.is_bound() ) + field_esmInfoTransferFlag = other_value.field_esmInfoTransferFlag; +if (other_value.field_accessPointName.is_bound() ) + field_accessPointName = other_value.field_accessPointName; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_deviceProperties.is_bound() ) + field_deviceProperties = other_value.field_deviceProperties; +if (other_value.field_nbifomContainer.is_bound() ) + field_nbifomContainer = other_value.field_nbifomContainer; +if (other_value.field_headerCompressionConfig.is_bound() ) + field_headerCompressionConfig = other_value.field_headerCompressionConfig; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +PDN__CONNECTIVITY__REQUEST::PDN__CONNECTIVITY__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const PDN__Type& par_pdnType, + const NAS__CommonTypeDefs::Request__Type& par_requestType, + const OPTIONAL& par_esmInfoTransferFlag, + const OPTIONAL& par_accessPointName, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_headerCompressionConfig, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_pdnType(par_pdnType), + field_requestType(par_requestType), + field_esmInfoTransferFlag(par_esmInfoTransferFlag), + field_accessPointName(par_accessPointName), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_deviceProperties(par_deviceProperties), + field_nbifomContainer(par_nbifomContainer), + field_headerCompressionConfig(par_headerCompressionConfig), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDN__CONNECTIVITY__REQUEST::get_descriptor() const { return &PDN__CONNECTIVITY__REQUEST_descr_; } +const TTCN_Typedescriptor_t* PDN__CONNECTIVITY__REQUEST::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &PDN__Type_descr_, &NAS__CommonTypeDefs::Request__Type_descr_, &ESM__InfoTransferFlag_descr_, &NAS__CommonTypeDefs::AccessPointName_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::DeviceProperties_descr_, &NAS__CommonTypeDefs::NBIFOMContainer_descr_, &HeaderCompressConfig_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* PDN__CONNECTIVITY__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDN__CONNECTIVITY__REQUEST::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "pdnType", "requestType", "esmInfoTransferFlag", "accessPointName", "protocolConfigurationOptions", "deviceProperties", "nbifomContainer", "headerCompressionConfig", "extdProtocolConfigurationOptions" }; +const char* PDN__CONNECTIVITY__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PDN__CONNECTIVITY__REQUEST::optional_indexes[] = { 6, 7, 8, 9, 10, 11, 12, -1 }; +const int* PDN__CONNECTIVITY__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int PDN__CONNECTIVITY__REQUEST::optional_indexes_asn[] = { 6, 7, 8, 9, 10, 11, 12, -1 }; +const int* PDN__CONNECTIVITY__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PDN__CONNECTIVITY__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 13; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new PDN__Type_template(ANY_VALUE) : new PDN__Type_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::Request__Type_template(ANY_VALUE) : new NAS__CommonTypeDefs::Request__Type_template; +single_value.value_elements[6] = was_any ? new ESM__InfoTransferFlag_template(ANY_OR_OMIT) : new ESM__InfoTransferFlag_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::AccessPointName_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AccessPointName_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::DeviceProperties_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DeviceProperties_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::NBIFOMContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NBIFOMContainer_template; +single_value.value_elements[11] = was_any ? new HeaderCompressConfig_template(ANY_OR_OMIT) : new HeaderCompressConfig_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +PDN__CONNECTIVITY__REQUEST_template::PDN__CONNECTIVITY__REQUEST_template(PDN__CONNECTIVITY__REQUEST_template* p_precondition, PDN__CONNECTIVITY__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDN__CONNECTIVITY__REQUEST_template::PDN__CONNECTIVITY__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDN__CONNECTIVITY__REQUEST_template::~PDN__CONNECTIVITY__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDN__CONNECTIVITY__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const PDN__CONNECTIVITY__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDN__CONNECTIVITY__REQUEST_template& PDN__CONNECTIVITY__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDN__CONNECTIVITY__REQUEST_template& PDN__CONNECTIVITY__REQUEST_template::operator=(const PDN__CONNECTIVITY__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDN__CONNECTIVITY__REQUEST_template& PDN__CONNECTIVITY__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDN__CONNECTIVITY__REQUEST_template& PDN__CONNECTIVITY__REQUEST_template::operator=(const PDN__CONNECTIVITY__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDN__CONNECTIVITY__REQUEST PDN__CONNECTIVITY__REQUEST_template::valueof() const +{ +PDN__CONNECTIVITY__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& PDN__CONNECTIVITY__REQUEST_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& PDN__CONNECTIVITY__REQUEST_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PDN__CONNECTIVITY__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PDN__CONNECTIVITY__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& PDN__CONNECTIVITY__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& PDN__CONNECTIVITY__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PDN__CONNECTIVITY__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PDN__CONNECTIVITY__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +PDN__Type_template& PDN__CONNECTIVITY__REQUEST_template::pdnType() { return *(static_cast(get_at(4))); } +const PDN__Type_template& PDN__CONNECTIVITY__REQUEST_template::pdnType() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::Request__Type_template& PDN__CONNECTIVITY__REQUEST_template::requestType() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::Request__Type_template& PDN__CONNECTIVITY__REQUEST_template::requestType() const { return *(static_cast(get_at(5))); } +ESM__InfoTransferFlag_template& PDN__CONNECTIVITY__REQUEST_template::esmInfoTransferFlag() { return *(static_cast(get_at(6))); } +const ESM__InfoTransferFlag_template& PDN__CONNECTIVITY__REQUEST_template::esmInfoTransferFlag() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::AccessPointName_template& PDN__CONNECTIVITY__REQUEST_template::accessPointName() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::AccessPointName_template& PDN__CONNECTIVITY__REQUEST_template::accessPointName() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& PDN__CONNECTIVITY__REQUEST_template::protocolConfigurationOptions() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& PDN__CONNECTIVITY__REQUEST_template::protocolConfigurationOptions() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::DeviceProperties_template& PDN__CONNECTIVITY__REQUEST_template::deviceProperties() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::DeviceProperties_template& PDN__CONNECTIVITY__REQUEST_template::deviceProperties() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::NBIFOMContainer_template& PDN__CONNECTIVITY__REQUEST_template::nbifomContainer() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::NBIFOMContainer_template& PDN__CONNECTIVITY__REQUEST_template::nbifomContainer() const { return *(static_cast(get_at(10))); } +HeaderCompressConfig_template& PDN__CONNECTIVITY__REQUEST_template::headerCompressionConfig() { return *(static_cast(get_at(11))); } +const HeaderCompressConfig_template& PDN__CONNECTIVITY__REQUEST_template::headerCompressionConfig() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PDN__CONNECTIVITY__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PDN__CONNECTIVITY__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(12))); } +const TTCN_Typedescriptor_t* PDN__CONNECTIVITY__REQUEST_template::get_descriptor() const { return &PDN__CONNECTIVITY__REQUEST_descr_; } +const char* PDN__CONNECTIVITY__REQUEST_template::fld_name(int p_index) const { return PDN__CONNECTIVITY__REQUEST::fld_names[p_index]; } +void ESM__InfoTransferFlag::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_eitValue; } + +ESM__InfoTransferFlag::ESM__InfoTransferFlag() : Record_Type() { init_vec(); } + +ESM__InfoTransferFlag::ESM__InfoTransferFlag(const ESM__InfoTransferFlag& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_eitValue.is_bound() ) + field_eitValue = other_value.field_eitValue; +init_vec(); +} + +ESM__InfoTransferFlag::ESM__InfoTransferFlag(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_eitValue) : field_iei(par_iei), + field_spare(par_spare), + field_eitValue(par_eitValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ESM__InfoTransferFlag::get_descriptor() const { return &ESM__InfoTransferFlag_descr_; } +const TTCN_Typedescriptor_t* ESM__InfoTransferFlag::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* ESM__InfoTransferFlag::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ESM__InfoTransferFlag::fld_names[] = { "iei", "spare", "eitValue" }; +const char* ESM__InfoTransferFlag::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ESM__InfoTransferFlag::optional_indexes[] = { 0, -1 }; +const int* ESM__InfoTransferFlag::get_optional_indexes() const { return optional_indexes; } + +const int ESM__InfoTransferFlag::optional_indexes_asn[] = { 0, -1 }; +const int* ESM__InfoTransferFlag::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ESM__InfoTransferFlag_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ESM__InfoTransferFlag_template::ESM__InfoTransferFlag_template(ESM__InfoTransferFlag_template* p_precondition, ESM__InfoTransferFlag_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ESM__InfoTransferFlag_template::ESM__InfoTransferFlag_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ESM__InfoTransferFlag_template::~ESM__InfoTransferFlag_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ESM__InfoTransferFlag_template::match_dynamic(const Base_Type* match_value) const +{ +const ESM__InfoTransferFlag* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ESM__InfoTransferFlag_template& ESM__InfoTransferFlag_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ESM__InfoTransferFlag_template& ESM__InfoTransferFlag_template::operator=(const ESM__InfoTransferFlag& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ESM__InfoTransferFlag_template& ESM__InfoTransferFlag_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ESM__InfoTransferFlag_template& ESM__InfoTransferFlag_template::operator=(const ESM__InfoTransferFlag_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ESM__InfoTransferFlag ESM__InfoTransferFlag_template::valueof() const +{ +ESM__InfoTransferFlag ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ESM__InfoTransferFlag_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ESM__InfoTransferFlag_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ESM__InfoTransferFlag_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ESM__InfoTransferFlag_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ESM__InfoTransferFlag_template::eitValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ESM__InfoTransferFlag_template::eitValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ESM__InfoTransferFlag_template::get_descriptor() const { return &ESM__InfoTransferFlag_descr_; } +const char* ESM__InfoTransferFlag_template::fld_name(int p_index) const { return ESM__InfoTransferFlag::fld_names[p_index]; } +void PDN__DISCONNECT__REJECT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_esmCause; fld_vec[5]=&field_protocolConfigurationOptions; fld_vec[6]=&field_extdProtocolConfigurationOptions; } + +PDN__DISCONNECT__REJECT::PDN__DISCONNECT__REJECT() : Record_Type() { init_vec(); } + +PDN__DISCONNECT__REJECT::PDN__DISCONNECT__REJECT(const PDN__DISCONNECT__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_esmCause.is_bound() ) + field_esmCause = other_value.field_esmCause; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +PDN__DISCONNECT__REJECT::PDN__DISCONNECT__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_esmCause(par_esmCause), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDN__DISCONNECT__REJECT::get_descriptor() const { return &PDN__DISCONNECT__REJECT_descr_; } +const TTCN_Typedescriptor_t* PDN__DISCONNECT__REJECT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ESM__Cause_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* PDN__DISCONNECT__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDN__DISCONNECT__REJECT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "esmCause", "protocolConfigurationOptions", "extdProtocolConfigurationOptions" }; +const char* PDN__DISCONNECT__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PDN__DISCONNECT__REJECT::optional_indexes[] = { 5, 6, -1 }; +const int* PDN__DISCONNECT__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int PDN__DISCONNECT__REJECT::optional_indexes_asn[] = { 5, 6, -1 }; +const int* PDN__DISCONNECT__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PDN__DISCONNECT__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ESM__Cause_template(ANY_VALUE) : new ESM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +PDN__DISCONNECT__REJECT_template::PDN__DISCONNECT__REJECT_template(PDN__DISCONNECT__REJECT_template* p_precondition, PDN__DISCONNECT__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDN__DISCONNECT__REJECT_template::PDN__DISCONNECT__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDN__DISCONNECT__REJECT_template::~PDN__DISCONNECT__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDN__DISCONNECT__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const PDN__DISCONNECT__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDN__DISCONNECT__REJECT_template& PDN__DISCONNECT__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDN__DISCONNECT__REJECT_template& PDN__DISCONNECT__REJECT_template::operator=(const PDN__DISCONNECT__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDN__DISCONNECT__REJECT_template& PDN__DISCONNECT__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDN__DISCONNECT__REJECT_template& PDN__DISCONNECT__REJECT_template::operator=(const PDN__DISCONNECT__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDN__DISCONNECT__REJECT PDN__DISCONNECT__REJECT_template::valueof() const +{ +PDN__DISCONNECT__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& PDN__DISCONNECT__REJECT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& PDN__DISCONNECT__REJECT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PDN__DISCONNECT__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PDN__DISCONNECT__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& PDN__DISCONNECT__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& PDN__DISCONNECT__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PDN__DISCONNECT__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PDN__DISCONNECT__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +ESM__Cause_template& PDN__DISCONNECT__REJECT_template::esmCause() { return *(static_cast(get_at(4))); } +const ESM__Cause_template& PDN__DISCONNECT__REJECT_template::esmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& PDN__DISCONNECT__REJECT_template::protocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& PDN__DISCONNECT__REJECT_template::protocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PDN__DISCONNECT__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PDN__DISCONNECT__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* PDN__DISCONNECT__REJECT_template::get_descriptor() const { return &PDN__DISCONNECT__REJECT_descr_; } +const char* PDN__DISCONNECT__REJECT_template::fld_name(int p_index) const { return PDN__DISCONNECT__REJECT::fld_names[p_index]; } +void PDN__DISCONNECT__REQUEST::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet; fld_vec[5]=&field_linkedEpsBearerId; fld_vec[6]=&field_protocolConfigurationOptions; fld_vec[7]=&field_extdProtocolConfigurationOptions; } + +PDN__DISCONNECT__REQUEST::PDN__DISCONNECT__REQUEST() : Record_Type() { init_vec(); } + +PDN__DISCONNECT__REQUEST::PDN__DISCONNECT__REQUEST(const PDN__DISCONNECT__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_linkedEpsBearerId.is_bound() ) + field_linkedEpsBearerId = other_value.field_linkedEpsBearerId; +if (other_value.field_protocolConfigurationOptions.is_bound() ) + field_protocolConfigurationOptions = other_value.field_protocolConfigurationOptions; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +PDN__DISCONNECT__REQUEST::PDN__DISCONNECT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const LinkedEpsBearerIdentity& par_linkedEpsBearerId, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_spareHalfOctet(par_spareHalfOctet), + field_linkedEpsBearerId(par_linkedEpsBearerId), + field_protocolConfigurationOptions(par_protocolConfigurationOptions), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDN__DISCONNECT__REQUEST::get_descriptor() const { return &PDN__DISCONNECT__REQUEST_descr_; } +const TTCN_Typedescriptor_t* PDN__DISCONNECT__REQUEST::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &LinkedEpsBearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* PDN__DISCONNECT__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDN__DISCONNECT__REQUEST::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "spareHalfOctet", "linkedEpsBearerId", "protocolConfigurationOptions", "extdProtocolConfigurationOptions" }; +const char* PDN__DISCONNECT__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PDN__DISCONNECT__REQUEST::optional_indexes[] = { 6, 7, -1 }; +const int* PDN__DISCONNECT__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int PDN__DISCONNECT__REQUEST::optional_indexes_asn[] = { 6, 7, -1 }; +const int* PDN__DISCONNECT__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PDN__DISCONNECT__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new LinkedEpsBearerIdentity_template(ANY_VALUE) : new LinkedEpsBearerIdentity_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::ProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ProtocolConfigOptions_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +PDN__DISCONNECT__REQUEST_template::PDN__DISCONNECT__REQUEST_template(PDN__DISCONNECT__REQUEST_template* p_precondition, PDN__DISCONNECT__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDN__DISCONNECT__REQUEST_template::PDN__DISCONNECT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDN__DISCONNECT__REQUEST_template::~PDN__DISCONNECT__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDN__DISCONNECT__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const PDN__DISCONNECT__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDN__DISCONNECT__REQUEST_template& PDN__DISCONNECT__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDN__DISCONNECT__REQUEST_template& PDN__DISCONNECT__REQUEST_template::operator=(const PDN__DISCONNECT__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDN__DISCONNECT__REQUEST_template& PDN__DISCONNECT__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDN__DISCONNECT__REQUEST_template& PDN__DISCONNECT__REQUEST_template::operator=(const PDN__DISCONNECT__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDN__DISCONNECT__REQUEST PDN__DISCONNECT__REQUEST_template::valueof() const +{ +PDN__DISCONNECT__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& PDN__DISCONNECT__REQUEST_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& PDN__DISCONNECT__REQUEST_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PDN__DISCONNECT__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PDN__DISCONNECT__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& PDN__DISCONNECT__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& PDN__DISCONNECT__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PDN__DISCONNECT__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PDN__DISCONNECT__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& PDN__DISCONNECT__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& PDN__DISCONNECT__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(4))); } +LinkedEpsBearerIdentity_template& PDN__DISCONNECT__REQUEST_template::linkedEpsBearerId() { return *(static_cast(get_at(5))); } +const LinkedEpsBearerIdentity_template& PDN__DISCONNECT__REQUEST_template::linkedEpsBearerId() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::ProtocolConfigOptions_template& PDN__DISCONNECT__REQUEST_template::protocolConfigurationOptions() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& PDN__DISCONNECT__REQUEST_template::protocolConfigurationOptions() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PDN__DISCONNECT__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PDN__DISCONNECT__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* PDN__DISCONNECT__REQUEST_template::get_descriptor() const { return &PDN__DISCONNECT__REQUEST_descr_; } +const char* PDN__DISCONNECT__REQUEST_template::fld_name(int p_index) const { return PDN__DISCONNECT__REQUEST::fld_names[p_index]; } +void REMOTE__UE__REPORT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_remoteUEContextConnected; fld_vec[5]=&field_remoteUEContextDisconnected; fld_vec[6]=&field_ProSeKeyManageFunctionAddress; } + +REMOTE__UE__REPORT::REMOTE__UE__REPORT() : Record_Type() { init_vec(); } + +REMOTE__UE__REPORT::REMOTE__UE__REPORT(const REMOTE__UE__REPORT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_remoteUEContextConnected.is_bound() ) + field_remoteUEContextConnected = other_value.field_remoteUEContextConnected; +if (other_value.field_remoteUEContextDisconnected.is_bound() ) + field_remoteUEContextDisconnected = other_value.field_remoteUEContextDisconnected; +if (other_value.field_ProSeKeyManageFunctionAddress.is_bound() ) + field_ProSeKeyManageFunctionAddress = other_value.field_ProSeKeyManageFunctionAddress; +init_vec(); +} + +REMOTE__UE__REPORT::REMOTE__UE__REPORT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_remoteUEContextConnected, + const OPTIONAL& par_remoteUEContextDisconnected, + const OPTIONAL& par_ProSeKeyManageFunctionAddress) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_remoteUEContextConnected(par_remoteUEContextConnected), + field_remoteUEContextDisconnected(par_remoteUEContextDisconnected), + field_ProSeKeyManageFunctionAddress(par_ProSeKeyManageFunctionAddress) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* REMOTE__UE__REPORT::get_descriptor() const { return &REMOTE__UE__REPORT_descr_; } +const TTCN_Typedescriptor_t* REMOTE__UE__REPORT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &RemoteUEContextList_descr_, &RemoteUEContextList_descr_, &PKMF__Address_descr_ }; +const TTCN_Typedescriptor_t* REMOTE__UE__REPORT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* REMOTE__UE__REPORT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "remoteUEContextConnected", "remoteUEContextDisconnected", "ProSeKeyManageFunctionAddress" }; +const char* REMOTE__UE__REPORT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int REMOTE__UE__REPORT::optional_indexes[] = { 4, 5, 6, -1 }; +const int* REMOTE__UE__REPORT::get_optional_indexes() const { return optional_indexes; } + +const int REMOTE__UE__REPORT::optional_indexes_asn[] = { 4, 5, 6, -1 }; +const int* REMOTE__UE__REPORT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void REMOTE__UE__REPORT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new RemoteUEContextList_template(ANY_OR_OMIT) : new RemoteUEContextList_template; +single_value.value_elements[5] = was_any ? new RemoteUEContextList_template(ANY_OR_OMIT) : new RemoteUEContextList_template; +single_value.value_elements[6] = was_any ? new PKMF__Address_template(ANY_OR_OMIT) : new PKMF__Address_template; +} +} + +REMOTE__UE__REPORT_template::REMOTE__UE__REPORT_template(REMOTE__UE__REPORT_template* p_precondition, REMOTE__UE__REPORT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +REMOTE__UE__REPORT_template::REMOTE__UE__REPORT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +REMOTE__UE__REPORT_template::~REMOTE__UE__REPORT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean REMOTE__UE__REPORT_template::match_dynamic(const Base_Type* match_value) const +{ +const REMOTE__UE__REPORT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +REMOTE__UE__REPORT_template& REMOTE__UE__REPORT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +REMOTE__UE__REPORT_template& REMOTE__UE__REPORT_template::operator=(const REMOTE__UE__REPORT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +REMOTE__UE__REPORT_template& REMOTE__UE__REPORT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +REMOTE__UE__REPORT_template& REMOTE__UE__REPORT_template::operator=(const REMOTE__UE__REPORT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +REMOTE__UE__REPORT REMOTE__UE__REPORT_template::valueof() const +{ +REMOTE__UE__REPORT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& REMOTE__UE__REPORT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& REMOTE__UE__REPORT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& REMOTE__UE__REPORT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& REMOTE__UE__REPORT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& REMOTE__UE__REPORT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& REMOTE__UE__REPORT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& REMOTE__UE__REPORT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& REMOTE__UE__REPORT_template::messageType() const { return *(static_cast(get_at(3))); } +RemoteUEContextList_template& REMOTE__UE__REPORT_template::remoteUEContextConnected() { return *(static_cast(get_at(4))); } +const RemoteUEContextList_template& REMOTE__UE__REPORT_template::remoteUEContextConnected() const { return *(static_cast(get_at(4))); } +RemoteUEContextList_template& REMOTE__UE__REPORT_template::remoteUEContextDisconnected() { return *(static_cast(get_at(5))); } +const RemoteUEContextList_template& REMOTE__UE__REPORT_template::remoteUEContextDisconnected() const { return *(static_cast(get_at(5))); } +PKMF__Address_template& REMOTE__UE__REPORT_template::ProSeKeyManageFunctionAddress() { return *(static_cast(get_at(6))); } +const PKMF__Address_template& REMOTE__UE__REPORT_template::ProSeKeyManageFunctionAddress() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* REMOTE__UE__REPORT_template::get_descriptor() const { return &REMOTE__UE__REPORT_descr_; } +const char* REMOTE__UE__REPORT_template::fld_name(int p_index) const { return REMOTE__UE__REPORT::fld_names[p_index]; } + +const RemoteUEContext ListOfRemoteUEContext::UNBOUND_ELEM; +RemoteUEContext& ListOfRemoteUEContext::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +RemoteUEContext& ListOfRemoteUEContext::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const RemoteUEContext& ListOfRemoteUEContext::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const RemoteUEContext& ListOfRemoteUEContext::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ListOfRemoteUEContext ListOfRemoteUEContext::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +ListOfRemoteUEContext ListOfRemoteUEContext::operator<<=(const INTEGER& rotate_count) const +{ +ListOfRemoteUEContext rec_of; +return *((ListOfRemoteUEContext*)rotl(rotate_count, &rec_of)); +} + +ListOfRemoteUEContext ListOfRemoteUEContext::operator>>=(const INTEGER& rotate_count) const +{ +ListOfRemoteUEContext rec_of; +return *((ListOfRemoteUEContext*)rotr(rotate_count, &rec_of)); +} + +ListOfRemoteUEContext ListOfRemoteUEContext::operator>>=(int rotate_count) const +{ +ListOfRemoteUEContext rec_of; +return *((ListOfRemoteUEContext*)rotr(rotate_count, &rec_of)); +} + +ListOfRemoteUEContext ListOfRemoteUEContext::operator+(const ListOfRemoteUEContext& other_value) const +{ +ListOfRemoteUEContext rec_of; +return *((ListOfRemoteUEContext*)concat(&other_value, &rec_of)); +} + +ListOfRemoteUEContext ListOfRemoteUEContext::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const ListOfRemoteUEContext&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_TypeDefs.ListOfRemoteUEContext concatenation."); +} + +ListOfRemoteUEContext ListOfRemoteUEContext::operator+(null_type) const +{ +return *this; +} + +ListOfRemoteUEContext ListOfRemoteUEContext::substr(int index, int returncount) const +{ +ListOfRemoteUEContext rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ListOfRemoteUEContext ListOfRemoteUEContext::replace(int index, int len, const ListOfRemoteUEContext& repl) const +{ +ListOfRemoteUEContext rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ListOfRemoteUEContext ListOfRemoteUEContext::replace(int index, int len, const ListOfRemoteUEContext_template& repl) const +{ +ListOfRemoteUEContext rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* ListOfRemoteUEContext::create_elem() const { return new RemoteUEContext; } +const Base_Type* ListOfRemoteUEContext::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* ListOfRemoteUEContext::get_descriptor() const { return &ListOfRemoteUEContext_descr_; } +ListOfRemoteUEContext_template::ListOfRemoteUEContext_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +ListOfRemoteUEContext_template::ListOfRemoteUEContext_template(ListOfRemoteUEContext_template* p_precondition, ListOfRemoteUEContext_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ListOfRemoteUEContext_template::ListOfRemoteUEContext_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ListOfRemoteUEContext_template::~ListOfRemoteUEContext_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ListOfRemoteUEContext_template::match_dynamic(const Base_Type* match_value) const +{ +const ListOfRemoteUEContext* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +ListOfRemoteUEContext_template& ListOfRemoteUEContext_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ListOfRemoteUEContext_template& ListOfRemoteUEContext_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +ListOfRemoteUEContext_template& ListOfRemoteUEContext_template::operator=(const ListOfRemoteUEContext& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ListOfRemoteUEContext_template& ListOfRemoteUEContext_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ListOfRemoteUEContext_template& ListOfRemoteUEContext_template::operator=(const ListOfRemoteUEContext_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ListOfRemoteUEContext_template ListOfRemoteUEContext_template::operator+(const ListOfRemoteUEContext_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return ListOfRemoteUEContext_template(ANY_VALUE); +} +ListOfRemoteUEContext_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ListOfRemoteUEContext_template ListOfRemoteUEContext_template::operator+(const ListOfRemoteUEContext& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +ListOfRemoteUEContext_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ListOfRemoteUEContext_template ListOfRemoteUEContext_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return ListOfRemoteUEContext_template(ANY_VALUE); +} +ListOfRemoteUEContext_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +ListOfRemoteUEContext_template ListOfRemoteUEContext_template::operator+(null_type) const +{ +return *this; +} + +RemoteUEContext_template& ListOfRemoteUEContext_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +RemoteUEContext_template& ListOfRemoteUEContext_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const RemoteUEContext_template& ListOfRemoteUEContext_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const RemoteUEContext_template& ListOfRemoteUEContext_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ListOfRemoteUEContext ListOfRemoteUEContext_template::valueof() const +{ +ListOfRemoteUEContext ret_val; +valueofv(&ret_val); +return ret_val; +} + +ListOfRemoteUEContext ListOfRemoteUEContext_template::substr(int index, int returncount) const +{ +ListOfRemoteUEContext rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ListOfRemoteUEContext ListOfRemoteUEContext_template::replace(int index, int len, const ListOfRemoteUEContext_template& repl) const +{ +ListOfRemoteUEContext rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ListOfRemoteUEContext ListOfRemoteUEContext_template::replace(int index, int len, const ListOfRemoteUEContext& repl) const +{ +ListOfRemoteUEContext rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* ListOfRemoteUEContext_template::create_elem() const { return new RemoteUEContext_template; } +const TTCN_Typedescriptor_t* ListOfRemoteUEContext_template::get_descriptor() const { return &ListOfRemoteUEContext_descr_; } + +const UserIdentity UserIdentityList::UNBOUND_ELEM; +UserIdentity& UserIdentityList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +UserIdentity& UserIdentityList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const UserIdentity& UserIdentityList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const UserIdentity& UserIdentityList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +UserIdentityList UserIdentityList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +UserIdentityList UserIdentityList::operator<<=(const INTEGER& rotate_count) const +{ +UserIdentityList rec_of; +return *((UserIdentityList*)rotl(rotate_count, &rec_of)); +} + +UserIdentityList UserIdentityList::operator>>=(const INTEGER& rotate_count) const +{ +UserIdentityList rec_of; +return *((UserIdentityList*)rotr(rotate_count, &rec_of)); +} + +UserIdentityList UserIdentityList::operator>>=(int rotate_count) const +{ +UserIdentityList rec_of; +return *((UserIdentityList*)rotr(rotate_count, &rec_of)); +} + +UserIdentityList UserIdentityList::operator+(const UserIdentityList& other_value) const +{ +UserIdentityList rec_of; +return *((UserIdentityList*)concat(&other_value, &rec_of)); +} + +UserIdentityList UserIdentityList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const UserIdentityList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @EPS_NAS_TypeDefs.UserIdentityList concatenation."); +} + +UserIdentityList UserIdentityList::operator+(null_type) const +{ +return *this; +} + +UserIdentityList UserIdentityList::substr(int index, int returncount) const +{ +UserIdentityList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +UserIdentityList UserIdentityList::replace(int index, int len, const UserIdentityList& repl) const +{ +UserIdentityList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +UserIdentityList UserIdentityList::replace(int index, int len, const UserIdentityList_template& repl) const +{ +UserIdentityList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* UserIdentityList::create_elem() const { return new UserIdentity; } +const Base_Type* UserIdentityList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* UserIdentityList::get_descriptor() const { return &UserIdentityList_descr_; } +UserIdentityList_template::UserIdentityList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +UserIdentityList_template::UserIdentityList_template(UserIdentityList_template* p_precondition, UserIdentityList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UserIdentityList_template::UserIdentityList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UserIdentityList_template::~UserIdentityList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UserIdentityList_template::match_dynamic(const Base_Type* match_value) const +{ +const UserIdentityList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +UserIdentityList_template& UserIdentityList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UserIdentityList_template& UserIdentityList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +UserIdentityList_template& UserIdentityList_template::operator=(const UserIdentityList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UserIdentityList_template& UserIdentityList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UserIdentityList_template& UserIdentityList_template::operator=(const UserIdentityList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UserIdentityList_template UserIdentityList_template::operator+(const UserIdentityList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return UserIdentityList_template(ANY_VALUE); +} +UserIdentityList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +UserIdentityList_template UserIdentityList_template::operator+(const UserIdentityList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +UserIdentityList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +UserIdentityList_template UserIdentityList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return UserIdentityList_template(ANY_VALUE); +} +UserIdentityList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +UserIdentityList_template UserIdentityList_template::operator+(null_type) const +{ +return *this; +} + +UserIdentity_template& UserIdentityList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +UserIdentity_template& UserIdentityList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const UserIdentity_template& UserIdentityList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const UserIdentity_template& UserIdentityList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +UserIdentityList UserIdentityList_template::valueof() const +{ +UserIdentityList ret_val; +valueofv(&ret_val); +return ret_val; +} + +UserIdentityList UserIdentityList_template::substr(int index, int returncount) const +{ +UserIdentityList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +UserIdentityList UserIdentityList_template::replace(int index, int len, const UserIdentityList_template& repl) const +{ +UserIdentityList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +UserIdentityList UserIdentityList_template::replace(int index, int len, const UserIdentityList& repl) const +{ +UserIdentityList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* UserIdentityList_template::create_elem() const { return new UserIdentity_template; } +const TTCN_Typedescriptor_t* UserIdentityList_template::get_descriptor() const { return &UserIdentityList_descr_; } +void UserIdentity::init_vec() { fld_vec[0]=&field_lengthOfUserId; fld_vec[1]=&field_firstDigit; fld_vec[2]=&field_odd__even; fld_vec[3]=&field_typeOfUserId; fld_vec[4]=&field_digits; } + +UserIdentity::UserIdentity() : Record_Type() { init_vec(); } + +UserIdentity::UserIdentity(const UserIdentity& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_lengthOfUserId.is_bound() ) + field_lengthOfUserId = other_value.field_lengthOfUserId; +if (other_value.field_firstDigit.is_bound() ) + field_firstDigit = other_value.field_firstDigit; +if (other_value.field_odd__even.is_bound() ) + field_odd__even = other_value.field_odd__even; +if (other_value.field_typeOfUserId.is_bound() ) + field_typeOfUserId = other_value.field_typeOfUserId; +if (other_value.field_digits.is_bound() ) + field_digits = other_value.field_digits; +init_vec(); +} + +UserIdentity::UserIdentity(const OCTETSTRING& par_lengthOfUserId, + const BITSTRING& par_firstDigit, + const BITSTRING& par_odd__even, + const BITSTRING& par_typeOfUserId, + const UserIdentity_digits& par_digits) : field_lengthOfUserId(par_lengthOfUserId), + field_firstDigit(par_firstDigit), + field_odd__even(par_odd__even), + field_typeOfUserId(par_typeOfUserId), + field_digits(par_digits) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UserIdentity::get_descriptor() const { return &UserIdentity_descr_; } +const TTCN_Typedescriptor_t* UserIdentity::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &UserIdentity_digits_descr_ }; +const TTCN_Typedescriptor_t* UserIdentity::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UserIdentity::fld_names[] = { "lengthOfUserId", "firstDigit", "odd_even", "typeOfUserId", "digits" }; +const char* UserIdentity::fld_name(int p_index) const { return fld_names[p_index]; } + +void UserIdentity_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new UserIdentity_digits_template(ANY_VALUE) : new UserIdentity_digits_template; +} +} + +UserIdentity_template::UserIdentity_template(UserIdentity_template* p_precondition, UserIdentity_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UserIdentity_template::UserIdentity_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UserIdentity_template::~UserIdentity_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UserIdentity_template::match_dynamic(const Base_Type* match_value) const +{ +const UserIdentity* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UserIdentity_template& UserIdentity_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UserIdentity_template& UserIdentity_template::operator=(const UserIdentity& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UserIdentity_template& UserIdentity_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UserIdentity_template& UserIdentity_template::operator=(const UserIdentity_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UserIdentity UserIdentity_template::valueof() const +{ +UserIdentity ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UserIdentity_template::lengthOfUserId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UserIdentity_template::lengthOfUserId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UserIdentity_template::firstDigit() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UserIdentity_template::firstDigit() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UserIdentity_template::odd__even() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UserIdentity_template::odd__even() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UserIdentity_template::typeOfUserId() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UserIdentity_template::typeOfUserId() const { return *(static_cast(get_at(3))); } +UserIdentity_digits_template& UserIdentity_template::digits() { return *(static_cast(get_at(4))); } +const UserIdentity_digits_template& UserIdentity_template::digits() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* UserIdentity_template::get_descriptor() const { return &UserIdentity_descr_; } +const char* UserIdentity_template::fld_name(int p_index) const { return UserIdentity::fld_names[p_index]; } +void RemoteUEContext::init_vec() { fld_vec[0]=&field_lengthOfContext; fld_vec[1]=&field_numberOfUserIds; fld_vec[2]=&field_userIdentities; fld_vec[3]=&field_spare; fld_vec[4]=&field_addressType; fld_vec[5]=&field_addressInfo; } + +RemoteUEContext::RemoteUEContext() : Record_Type() { init_vec(); } + +RemoteUEContext::RemoteUEContext(const RemoteUEContext& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_lengthOfContext.is_bound() ) + field_lengthOfContext = other_value.field_lengthOfContext; +if (other_value.field_numberOfUserIds.is_bound() ) + field_numberOfUserIds = other_value.field_numberOfUserIds; +if (other_value.field_userIdentities.is_bound() ) + field_userIdentities = other_value.field_userIdentities; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_addressType.is_bound() ) + field_addressType = other_value.field_addressType; +if (other_value.field_addressInfo.is_bound() ) + field_addressInfo = other_value.field_addressInfo; +init_vec(); +} + +RemoteUEContext::RemoteUEContext(const OCTETSTRING& par_lengthOfContext, + const OCTETSTRING& par_numberOfUserIds, + const UserIdentityList& par_userIdentities, + const BITSTRING& par_spare, + const BITSTRING& par_addressType, + const OPTIONAL& par_addressInfo) : field_lengthOfContext(par_lengthOfContext), + field_numberOfUserIds(par_numberOfUserIds), + field_userIdentities(par_userIdentities), + field_spare(par_spare), + field_addressType(par_addressType), + field_addressInfo(par_addressInfo) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RemoteUEContext::get_descriptor() const { return &RemoteUEContext_descr_; } +const TTCN_Typedescriptor_t* RemoteUEContext::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &UserIdentityList_descr_, &CommonDefs::B5__Type_descr_, &CommonDefs::B3__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* RemoteUEContext::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RemoteUEContext::fld_names[] = { "lengthOfContext", "numberOfUserIds", "userIdentities", "spare", "addressType", "addressInfo" }; +const char* RemoteUEContext::fld_name(int p_index) const { return fld_names[p_index]; } + +const int RemoteUEContext::optional_indexes[] = { 5, -1 }; +const int* RemoteUEContext::get_optional_indexes() const { return optional_indexes; } + +const int RemoteUEContext::optional_indexes_asn[] = { 5, -1 }; +const int* RemoteUEContext::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void RemoteUEContext_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new UserIdentityList_template(ANY_VALUE) : new UserIdentityList_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +RemoteUEContext_template::RemoteUEContext_template(RemoteUEContext_template* p_precondition, RemoteUEContext_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RemoteUEContext_template::RemoteUEContext_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RemoteUEContext_template::~RemoteUEContext_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RemoteUEContext_template::match_dynamic(const Base_Type* match_value) const +{ +const RemoteUEContext* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RemoteUEContext_template& RemoteUEContext_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RemoteUEContext_template& RemoteUEContext_template::operator=(const RemoteUEContext& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RemoteUEContext_template& RemoteUEContext_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RemoteUEContext_template& RemoteUEContext_template::operator=(const RemoteUEContext_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RemoteUEContext RemoteUEContext_template::valueof() const +{ +RemoteUEContext ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& RemoteUEContext_template::lengthOfContext() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& RemoteUEContext_template::lengthOfContext() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& RemoteUEContext_template::numberOfUserIds() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& RemoteUEContext_template::numberOfUserIds() const { return *(static_cast(get_at(1))); } +UserIdentityList_template& RemoteUEContext_template::userIdentities() { return *(static_cast(get_at(2))); } +const UserIdentityList_template& RemoteUEContext_template::userIdentities() const { return *(static_cast(get_at(2))); } +BITSTRING_template& RemoteUEContext_template::spare() { return *(static_cast(get_at(3))); } +const BITSTRING_template& RemoteUEContext_template::spare() const { return *(static_cast(get_at(3))); } +BITSTRING_template& RemoteUEContext_template::addressType() { return *(static_cast(get_at(4))); } +const BITSTRING_template& RemoteUEContext_template::addressType() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& RemoteUEContext_template::addressInfo() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& RemoteUEContext_template::addressInfo() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* RemoteUEContext_template::get_descriptor() const { return &RemoteUEContext_descr_; } +const char* RemoteUEContext_template::fld_name(int p_index) const { return RemoteUEContext::fld_names[p_index]; } +void RemoteUEContextList::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_numberOfContexts; fld_vec[3]=&field_remoteUEContexts; } + +RemoteUEContextList::RemoteUEContextList() : Record_Type() { init_vec(); } + +RemoteUEContextList::RemoteUEContextList(const RemoteUEContextList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_numberOfContexts.is_bound() ) + field_numberOfContexts = other_value.field_numberOfContexts; +if (other_value.field_remoteUEContexts.is_bound() ) + field_remoteUEContexts = other_value.field_remoteUEContexts; +init_vec(); +} + +RemoteUEContextList::RemoteUEContextList(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_numberOfContexts, + const ListOfRemoteUEContext& par_remoteUEContexts) : field_iei(par_iei), + field_iel(par_iel), + field_numberOfContexts(par_numberOfContexts), + field_remoteUEContexts(par_remoteUEContexts) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RemoteUEContextList::get_descriptor() const { return &RemoteUEContextList_descr_; } +const TTCN_Typedescriptor_t* RemoteUEContextList::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &CommonDefs::O1__Type_descr_, &ListOfRemoteUEContext_descr_ }; +const TTCN_Typedescriptor_t* RemoteUEContextList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RemoteUEContextList::fld_names[] = { "iei", "iel", "numberOfContexts", "remoteUEContexts" }; +const char* RemoteUEContextList::fld_name(int p_index) const { return fld_names[p_index]; } + +const int RemoteUEContextList::optional_indexes[] = { 0, -1 }; +const int* RemoteUEContextList::get_optional_indexes() const { return optional_indexes; } + +const int RemoteUEContextList::optional_indexes_asn[] = { 0, -1 }; +const int* RemoteUEContextList::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void RemoteUEContextList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new ListOfRemoteUEContext_template(ANY_VALUE) : new ListOfRemoteUEContext_template; +} +} + +RemoteUEContextList_template::RemoteUEContextList_template(RemoteUEContextList_template* p_precondition, RemoteUEContextList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RemoteUEContextList_template::RemoteUEContextList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RemoteUEContextList_template::~RemoteUEContextList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RemoteUEContextList_template::match_dynamic(const Base_Type* match_value) const +{ +const RemoteUEContextList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RemoteUEContextList_template& RemoteUEContextList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RemoteUEContextList_template& RemoteUEContextList_template::operator=(const RemoteUEContextList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RemoteUEContextList_template& RemoteUEContextList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RemoteUEContextList_template& RemoteUEContextList_template::operator=(const RemoteUEContextList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RemoteUEContextList RemoteUEContextList_template::valueof() const +{ +RemoteUEContextList ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& RemoteUEContextList_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& RemoteUEContextList_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& RemoteUEContextList_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& RemoteUEContextList_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& RemoteUEContextList_template::numberOfContexts() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& RemoteUEContextList_template::numberOfContexts() const { return *(static_cast(get_at(2))); } +ListOfRemoteUEContext_template& RemoteUEContextList_template::remoteUEContexts() { return *(static_cast(get_at(3))); } +const ListOfRemoteUEContext_template& RemoteUEContextList_template::remoteUEContexts() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* RemoteUEContextList_template::get_descriptor() const { return &RemoteUEContextList_descr_; } +const char* RemoteUEContextList_template::fld_name(int p_index) const { return RemoteUEContextList::fld_names[p_index]; } +void PKMF__Address::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_addressType; fld_vec[4]=&field_addressInfo; } + +PKMF__Address::PKMF__Address() : Record_Type() { init_vec(); } + +PKMF__Address::PKMF__Address(const PKMF__Address& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_addressType.is_bound() ) + field_addressType = other_value.field_addressType; +if (other_value.field_addressInfo.is_bound() ) + field_addressInfo = other_value.field_addressInfo; +init_vec(); +} + +PKMF__Address::PKMF__Address(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_addressType, + const OCTETSTRING& par_addressInfo) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_addressType(par_addressType), + field_addressInfo(par_addressInfo) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PKMF__Address::get_descriptor() const { return &PKMF__Address_descr_; } +const TTCN_Typedescriptor_t* PKMF__Address::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B5__Type_descr_, &CommonDefs::B3__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* PKMF__Address::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PKMF__Address::fld_names[] = { "iei", "iel", "spare", "addressType", "addressInfo" }; +const char* PKMF__Address::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PKMF__Address::optional_indexes[] = { 0, -1 }; +const int* PKMF__Address::get_optional_indexes() const { return optional_indexes; } + +const int PKMF__Address::optional_indexes_asn[] = { 0, -1 }; +const int* PKMF__Address::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PKMF__Address_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +PKMF__Address_template::PKMF__Address_template(PKMF__Address_template* p_precondition, PKMF__Address_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PKMF__Address_template::PKMF__Address_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PKMF__Address_template::~PKMF__Address_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PKMF__Address_template::match_dynamic(const Base_Type* match_value) const +{ +const PKMF__Address* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PKMF__Address_template& PKMF__Address_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PKMF__Address_template& PKMF__Address_template::operator=(const PKMF__Address& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PKMF__Address_template& PKMF__Address_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PKMF__Address_template& PKMF__Address_template::operator=(const PKMF__Address_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PKMF__Address PKMF__Address_template::valueof() const +{ +PKMF__Address ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PKMF__Address_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PKMF__Address_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PKMF__Address_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PKMF__Address_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PKMF__Address_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PKMF__Address_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PKMF__Address_template::addressType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PKMF__Address_template::addressType() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& PKMF__Address_template::addressInfo() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& PKMF__Address_template::addressInfo() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* PKMF__Address_template::get_descriptor() const { return &PKMF__Address_descr_; } +const char* PKMF__Address_template::fld_name(int p_index) const { return PKMF__Address::fld_names[p_index]; } +void REMOTE__UE__REPORT__RESPONSE::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; } + +REMOTE__UE__REPORT__RESPONSE::REMOTE__UE__REPORT__RESPONSE() : Record_Type() { init_vec(); } + +REMOTE__UE__REPORT__RESPONSE::REMOTE__UE__REPORT__RESPONSE(const REMOTE__UE__REPORT__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +REMOTE__UE__REPORT__RESPONSE::REMOTE__UE__REPORT__RESPONSE(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* REMOTE__UE__REPORT__RESPONSE::get_descriptor() const { return &REMOTE__UE__REPORT__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* REMOTE__UE__REPORT__RESPONSE::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* REMOTE__UE__REPORT__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* REMOTE__UE__REPORT__RESPONSE::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType" }; +const char* REMOTE__UE__REPORT__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +void REMOTE__UE__REPORT__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +REMOTE__UE__REPORT__RESPONSE_template::REMOTE__UE__REPORT__RESPONSE_template(REMOTE__UE__REPORT__RESPONSE_template* p_precondition, REMOTE__UE__REPORT__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +REMOTE__UE__REPORT__RESPONSE_template::REMOTE__UE__REPORT__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +REMOTE__UE__REPORT__RESPONSE_template::~REMOTE__UE__REPORT__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean REMOTE__UE__REPORT__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const REMOTE__UE__REPORT__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +REMOTE__UE__REPORT__RESPONSE_template& REMOTE__UE__REPORT__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +REMOTE__UE__REPORT__RESPONSE_template& REMOTE__UE__REPORT__RESPONSE_template::operator=(const REMOTE__UE__REPORT__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +REMOTE__UE__REPORT__RESPONSE_template& REMOTE__UE__REPORT__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +REMOTE__UE__REPORT__RESPONSE_template& REMOTE__UE__REPORT__RESPONSE_template::operator=(const REMOTE__UE__REPORT__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +REMOTE__UE__REPORT__RESPONSE REMOTE__UE__REPORT__RESPONSE_template::valueof() const +{ +REMOTE__UE__REPORT__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& REMOTE__UE__REPORT__RESPONSE_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& REMOTE__UE__REPORT__RESPONSE_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& REMOTE__UE__REPORT__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& REMOTE__UE__REPORT__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& REMOTE__UE__REPORT__RESPONSE_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& REMOTE__UE__REPORT__RESPONSE_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& REMOTE__UE__REPORT__RESPONSE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& REMOTE__UE__REPORT__RESPONSE_template::messageType() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* REMOTE__UE__REPORT__RESPONSE_template::get_descriptor() const { return &REMOTE__UE__REPORT__RESPONSE_descr_; } +const char* REMOTE__UE__REPORT__RESPONSE_template::fld_name(int p_index) const { return REMOTE__UE__REPORT__RESPONSE::fld_names[p_index]; } +void UserDataContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_dataContainer; } + +UserDataContainer::UserDataContainer() : Record_Type() { init_vec(); } + +UserDataContainer::UserDataContainer(const UserDataContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_dataContainer.is_bound() ) + field_dataContainer = other_value.field_dataContainer; +init_vec(); +} + +UserDataContainer::UserDataContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_dataContainer) : field_iei(par_iei), + field_iel(par_iel), + field_dataContainer(par_dataContainer) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UserDataContainer::get_descriptor() const { return &UserDataContainer_descr_; } +const TTCN_Typedescriptor_t* UserDataContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* UserDataContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UserDataContainer::fld_names[] = { "iei", "iel", "dataContainer" }; +const char* UserDataContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UserDataContainer::optional_indexes[] = { 0, -1 }; +const int* UserDataContainer::get_optional_indexes() const { return optional_indexes; } + +const int UserDataContainer::optional_indexes_asn[] = { 0, -1 }; +const int* UserDataContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UserDataContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +UserDataContainer_template::UserDataContainer_template(UserDataContainer_template* p_precondition, UserDataContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UserDataContainer_template::UserDataContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UserDataContainer_template::~UserDataContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UserDataContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const UserDataContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UserDataContainer_template& UserDataContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UserDataContainer_template& UserDataContainer_template::operator=(const UserDataContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UserDataContainer_template& UserDataContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UserDataContainer_template& UserDataContainer_template::operator=(const UserDataContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UserDataContainer UserDataContainer_template::valueof() const +{ +UserDataContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UserDataContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UserDataContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UserDataContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UserDataContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& UserDataContainer_template::dataContainer() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& UserDataContainer_template::dataContainer() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UserDataContainer_template::get_descriptor() const { return &UserDataContainer_descr_; } +const char* UserDataContainer_template::fld_name(int p_index) const { return UserDataContainer::fld_names[p_index]; } +void ESM__DATA__TRANSPORT::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_userDatacontainer; fld_vec[5]=&field_releaseAssistanceInd; } + +ESM__DATA__TRANSPORT::ESM__DATA__TRANSPORT() : Record_Type() { init_vec(); } + +ESM__DATA__TRANSPORT::ESM__DATA__TRANSPORT(const ESM__DATA__TRANSPORT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_userDatacontainer.is_bound() ) + field_userDatacontainer = other_value.field_userDatacontainer; +if (other_value.field_releaseAssistanceInd.is_bound() ) + field_releaseAssistanceInd = other_value.field_releaseAssistanceInd; +init_vec(); +} + +ESM__DATA__TRANSPORT::ESM__DATA__TRANSPORT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const UserDataContainer& par_userDatacontainer, + const OPTIONAL& par_releaseAssistanceInd) : field_epsBearerId(par_epsBearerId), + field_protocolDiscriminator(par_protocolDiscriminator), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_userDatacontainer(par_userDatacontainer), + field_releaseAssistanceInd(par_releaseAssistanceInd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ESM__DATA__TRANSPORT::get_descriptor() const { return &ESM__DATA__TRANSPORT_descr_; } +const TTCN_Typedescriptor_t* ESM__DATA__TRANSPORT::fld_descriptors[] = { &EPS__BearerIdentity_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &UserDataContainer_descr_, &NAS__CommonTypeDefs::ReleaseAssistanceInd_descr_ }; +const TTCN_Typedescriptor_t* ESM__DATA__TRANSPORT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ESM__DATA__TRANSPORT::fld_names[] = { "epsBearerId", "protocolDiscriminator", "procedureTransactionIdentifier", "messageType", "userDatacontainer", "releaseAssistanceInd" }; +const char* ESM__DATA__TRANSPORT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ESM__DATA__TRANSPORT::optional_indexes[] = { 5, -1 }; +const int* ESM__DATA__TRANSPORT::get_optional_indexes() const { return optional_indexes; } + +const int ESM__DATA__TRANSPORT::optional_indexes_asn[] = { 5, -1 }; +const int* ESM__DATA__TRANSPORT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ESM__DATA__TRANSPORT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new UserDataContainer_template(ANY_VALUE) : new UserDataContainer_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ReleaseAssistanceInd_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReleaseAssistanceInd_template; +} +} + +ESM__DATA__TRANSPORT_template::ESM__DATA__TRANSPORT_template(ESM__DATA__TRANSPORT_template* p_precondition, ESM__DATA__TRANSPORT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ESM__DATA__TRANSPORT_template::ESM__DATA__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ESM__DATA__TRANSPORT_template::~ESM__DATA__TRANSPORT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ESM__DATA__TRANSPORT_template::match_dynamic(const Base_Type* match_value) const +{ +const ESM__DATA__TRANSPORT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ESM__DATA__TRANSPORT_template& ESM__DATA__TRANSPORT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ESM__DATA__TRANSPORT_template& ESM__DATA__TRANSPORT_template::operator=(const ESM__DATA__TRANSPORT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ESM__DATA__TRANSPORT_template& ESM__DATA__TRANSPORT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ESM__DATA__TRANSPORT_template& ESM__DATA__TRANSPORT_template::operator=(const ESM__DATA__TRANSPORT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ESM__DATA__TRANSPORT ESM__DATA__TRANSPORT_template::valueof() const +{ +ESM__DATA__TRANSPORT ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ESM__DATA__TRANSPORT_template::epsBearerId() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ESM__DATA__TRANSPORT_template::epsBearerId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ESM__DATA__TRANSPORT_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ESM__DATA__TRANSPORT_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ESM__DATA__TRANSPORT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ESM__DATA__TRANSPORT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ESM__DATA__TRANSPORT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ESM__DATA__TRANSPORT_template::messageType() const { return *(static_cast(get_at(3))); } +UserDataContainer_template& ESM__DATA__TRANSPORT_template::userDatacontainer() { return *(static_cast(get_at(4))); } +const UserDataContainer_template& ESM__DATA__TRANSPORT_template::userDatacontainer() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ReleaseAssistanceInd_template& ESM__DATA__TRANSPORT_template::releaseAssistanceInd() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& ESM__DATA__TRANSPORT_template::releaseAssistanceInd() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* ESM__DATA__TRANSPORT_template::get_descriptor() const { return &ESM__DATA__TRANSPORT_descr_; } +const char* ESM__DATA__TRANSPORT_template::fld_name(int p_index) const { return ESM__DATA__TRANSPORT::fld_names[p_index]; } +void NAS__SecurityParametersfromEUTRA::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_dl__nasCountValue; } + +NAS__SecurityParametersfromEUTRA::NAS__SecurityParametersfromEUTRA() : Record_Type() { init_vec(); } + +NAS__SecurityParametersfromEUTRA::NAS__SecurityParametersfromEUTRA(const NAS__SecurityParametersfromEUTRA& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_dl__nasCountValue.is_bound() ) + field_dl__nasCountValue = other_value.field_dl__nasCountValue; +init_vec(); +} + +NAS__SecurityParametersfromEUTRA::NAS__SecurityParametersfromEUTRA(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_dl__nasCountValue) : field_iei(par_iei), + field_spare(par_spare), + field_dl__nasCountValue(par_dl__nasCountValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NAS__SecurityParametersfromEUTRA::get_descriptor() const { return &NAS__SecurityParametersfromEUTRA_descr_; } +const TTCN_Typedescriptor_t* NAS__SecurityParametersfromEUTRA::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* NAS__SecurityParametersfromEUTRA::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NAS__SecurityParametersfromEUTRA::fld_names[] = { "iei", "spare", "dl_nasCountValue" }; +const char* NAS__SecurityParametersfromEUTRA::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NAS__SecurityParametersfromEUTRA::optional_indexes[] = { 0, -1 }; +const int* NAS__SecurityParametersfromEUTRA::get_optional_indexes() const { return optional_indexes; } + +const int NAS__SecurityParametersfromEUTRA::optional_indexes_asn[] = { 0, -1 }; +const int* NAS__SecurityParametersfromEUTRA::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NAS__SecurityParametersfromEUTRA_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NAS__SecurityParametersfromEUTRA_template::NAS__SecurityParametersfromEUTRA_template(NAS__SecurityParametersfromEUTRA_template* p_precondition, NAS__SecurityParametersfromEUTRA_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NAS__SecurityParametersfromEUTRA_template::NAS__SecurityParametersfromEUTRA_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NAS__SecurityParametersfromEUTRA_template::~NAS__SecurityParametersfromEUTRA_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NAS__SecurityParametersfromEUTRA_template::match_dynamic(const Base_Type* match_value) const +{ +const NAS__SecurityParametersfromEUTRA* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NAS__SecurityParametersfromEUTRA_template& NAS__SecurityParametersfromEUTRA_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NAS__SecurityParametersfromEUTRA_template& NAS__SecurityParametersfromEUTRA_template::operator=(const NAS__SecurityParametersfromEUTRA& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NAS__SecurityParametersfromEUTRA_template& NAS__SecurityParametersfromEUTRA_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NAS__SecurityParametersfromEUTRA_template& NAS__SecurityParametersfromEUTRA_template::operator=(const NAS__SecurityParametersfromEUTRA_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NAS__SecurityParametersfromEUTRA NAS__SecurityParametersfromEUTRA_template::valueof() const +{ +NAS__SecurityParametersfromEUTRA ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NAS__SecurityParametersfromEUTRA_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NAS__SecurityParametersfromEUTRA_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NAS__SecurityParametersfromEUTRA_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NAS__SecurityParametersfromEUTRA_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NAS__SecurityParametersfromEUTRA_template::dl__nasCountValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NAS__SecurityParametersfromEUTRA_template::dl__nasCountValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NAS__SecurityParametersfromEUTRA_template::get_descriptor() const { return &NAS__SecurityParametersfromEUTRA_descr_; } +const char* NAS__SecurityParametersfromEUTRA_template::fld_name(int p_index) const { return NAS__SecurityParametersfromEUTRA::fld_names[p_index]; } +void NAS__SecurityParameterstoEUTRA::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_noncevalue; fld_vec[2]=&field_spare1; fld_vec[3]=&field_cipherAlgorithmType; fld_vec[4]=&field_spare2; fld_vec[5]=&field_integrityAlgorithmType; fld_vec[6]=&field_spare3; fld_vec[7]=&field_tsc; fld_vec[8]=&field_naskeysetid; } + +NAS__SecurityParameterstoEUTRA::NAS__SecurityParameterstoEUTRA() : Record_Type() { init_vec(); } + +NAS__SecurityParameterstoEUTRA::NAS__SecurityParameterstoEUTRA(const NAS__SecurityParameterstoEUTRA& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_noncevalue.is_bound() ) + field_noncevalue = other_value.field_noncevalue; +if (other_value.field_spare1.is_bound() ) + field_spare1 = other_value.field_spare1; +if (other_value.field_cipherAlgorithmType.is_bound() ) + field_cipherAlgorithmType = other_value.field_cipherAlgorithmType; +if (other_value.field_spare2.is_bound() ) + field_spare2 = other_value.field_spare2; +if (other_value.field_integrityAlgorithmType.is_bound() ) + field_integrityAlgorithmType = other_value.field_integrityAlgorithmType; +if (other_value.field_spare3.is_bound() ) + field_spare3 = other_value.field_spare3; +if (other_value.field_tsc.is_bound() ) + field_tsc = other_value.field_tsc; +if (other_value.field_naskeysetid.is_bound() ) + field_naskeysetid = other_value.field_naskeysetid; +init_vec(); +} + +NAS__SecurityParameterstoEUTRA::NAS__SecurityParameterstoEUTRA(const OPTIONAL& par_iei, + const OCTETSTRING& par_noncevalue, + const BITSTRING& par_spare1, + const BITSTRING& par_cipherAlgorithmType, + const BITSTRING& par_spare2, + const BITSTRING& par_integrityAlgorithmType, + const BITSTRING& par_spare3, + const BITSTRING& par_tsc, + const BITSTRING& par_naskeysetid) : field_iei(par_iei), + field_noncevalue(par_noncevalue), + field_spare1(par_spare1), + field_cipherAlgorithmType(par_cipherAlgorithmType), + field_spare2(par_spare2), + field_integrityAlgorithmType(par_integrityAlgorithmType), + field_spare3(par_spare3), + field_tsc(par_tsc), + field_naskeysetid(par_naskeysetid) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NAS__SecurityParameterstoEUTRA::get_descriptor() const { return &NAS__SecurityParameterstoEUTRA_descr_; } +const TTCN_Typedescriptor_t* NAS__SecurityParameterstoEUTRA::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::O4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* NAS__SecurityParameterstoEUTRA::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NAS__SecurityParameterstoEUTRA::fld_names[] = { "iei", "noncevalue", "spare1", "cipherAlgorithmType", "spare2", "integrityAlgorithmType", "spare3", "tsc", "naskeysetid" }; +const char* NAS__SecurityParameterstoEUTRA::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NAS__SecurityParameterstoEUTRA::optional_indexes[] = { 0, -1 }; +const int* NAS__SecurityParameterstoEUTRA::get_optional_indexes() const { return optional_indexes; } + +const int NAS__SecurityParameterstoEUTRA::optional_indexes_asn[] = { 0, -1 }; +const int* NAS__SecurityParameterstoEUTRA::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NAS__SecurityParameterstoEUTRA_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 9; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NAS__SecurityParameterstoEUTRA_template::NAS__SecurityParameterstoEUTRA_template(NAS__SecurityParameterstoEUTRA_template* p_precondition, NAS__SecurityParameterstoEUTRA_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NAS__SecurityParameterstoEUTRA_template::NAS__SecurityParameterstoEUTRA_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NAS__SecurityParameterstoEUTRA_template::~NAS__SecurityParameterstoEUTRA_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NAS__SecurityParameterstoEUTRA_template::match_dynamic(const Base_Type* match_value) const +{ +const NAS__SecurityParameterstoEUTRA* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NAS__SecurityParameterstoEUTRA_template& NAS__SecurityParameterstoEUTRA_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NAS__SecurityParameterstoEUTRA_template& NAS__SecurityParameterstoEUTRA_template::operator=(const NAS__SecurityParameterstoEUTRA& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NAS__SecurityParameterstoEUTRA_template& NAS__SecurityParameterstoEUTRA_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NAS__SecurityParameterstoEUTRA_template& NAS__SecurityParameterstoEUTRA_template::operator=(const NAS__SecurityParameterstoEUTRA_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NAS__SecurityParameterstoEUTRA NAS__SecurityParameterstoEUTRA_template::valueof() const +{ +NAS__SecurityParameterstoEUTRA ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NAS__SecurityParameterstoEUTRA_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NAS__SecurityParameterstoEUTRA_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NAS__SecurityParameterstoEUTRA_template::noncevalue() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NAS__SecurityParameterstoEUTRA_template::noncevalue() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::spare1() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::spare1() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::cipherAlgorithmType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::cipherAlgorithmType() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::spare2() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::spare2() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::integrityAlgorithmType() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::integrityAlgorithmType() const { return *(static_cast(get_at(5))); } +BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::spare3() { return *(static_cast(get_at(6))); } +const BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::spare3() const { return *(static_cast(get_at(6))); } +BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::tsc() { return *(static_cast(get_at(7))); } +const BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::tsc() const { return *(static_cast(get_at(7))); } +BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::naskeysetid() { return *(static_cast(get_at(8))); } +const BITSTRING_template& NAS__SecurityParameterstoEUTRA_template::naskeysetid() const { return *(static_cast(get_at(8))); } +const TTCN_Typedescriptor_t* NAS__SecurityParameterstoEUTRA_template::get_descriptor() const { return &NAS__SecurityParameterstoEUTRA_descr_; } +const char* NAS__SecurityParameterstoEUTRA_template::fld_name(int p_index) const { return NAS__SecurityParameterstoEUTRA::fld_names[p_index]; } +void UPDATE__UE__LOCATION__INFORMATION::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_ellipsoidPointWithAltitude; fld_vec[4]=&field_horizontalVelocity; fld_vec[5]=&field_gnss__TOD__msec; } + +UPDATE__UE__LOCATION__INFORMATION::UPDATE__UE__LOCATION__INFORMATION() : Record_Type() { init_vec(); } + +UPDATE__UE__LOCATION__INFORMATION::UPDATE__UE__LOCATION__INFORMATION(const UPDATE__UE__LOCATION__INFORMATION& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_ellipsoidPointWithAltitude.is_bound() ) + field_ellipsoidPointWithAltitude = other_value.field_ellipsoidPointWithAltitude; +if (other_value.field_horizontalVelocity.is_bound() ) + field_horizontalVelocity = other_value.field_horizontalVelocity; +if (other_value.field_gnss__TOD__msec.is_bound() ) + field_gnss__TOD__msec = other_value.field_gnss__TOD__msec; +init_vec(); +} + +UPDATE__UE__LOCATION__INFORMATION::UPDATE__UE__LOCATION__INFORMATION(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_ellipsoidPointWithAltitude, + const OCTETSTRING& par_horizontalVelocity, + const OCTETSTRING& par_gnss__TOD__msec) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_ellipsoidPointWithAltitude(par_ellipsoidPointWithAltitude), + field_horizontalVelocity(par_horizontalVelocity), + field_gnss__TOD__msec(par_gnss__TOD__msec) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UPDATE__UE__LOCATION__INFORMATION::get_descriptor() const { return &UPDATE__UE__LOCATION__INFORMATION_descr_; } +const TTCN_Typedescriptor_t* UPDATE__UE__LOCATION__INFORMATION::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EllipsoidPointWithAltitude__Type_descr_, &HorizontalVelocity__Type_descr_, &Gnss__TOD__msec__Type_descr_ }; +const TTCN_Typedescriptor_t* UPDATE__UE__LOCATION__INFORMATION::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UPDATE__UE__LOCATION__INFORMATION::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "ellipsoidPointWithAltitude", "horizontalVelocity", "gnss_TOD_msec" }; +const char* UPDATE__UE__LOCATION__INFORMATION::fld_name(int p_index) const { return fld_names[p_index]; } + +void UPDATE__UE__LOCATION__INFORMATION_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +UPDATE__UE__LOCATION__INFORMATION_template::UPDATE__UE__LOCATION__INFORMATION_template(UPDATE__UE__LOCATION__INFORMATION_template* p_precondition, UPDATE__UE__LOCATION__INFORMATION_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UPDATE__UE__LOCATION__INFORMATION_template::UPDATE__UE__LOCATION__INFORMATION_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UPDATE__UE__LOCATION__INFORMATION_template::~UPDATE__UE__LOCATION__INFORMATION_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UPDATE__UE__LOCATION__INFORMATION_template::match_dynamic(const Base_Type* match_value) const +{ +const UPDATE__UE__LOCATION__INFORMATION* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UPDATE__UE__LOCATION__INFORMATION_template& UPDATE__UE__LOCATION__INFORMATION_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UPDATE__UE__LOCATION__INFORMATION_template& UPDATE__UE__LOCATION__INFORMATION_template::operator=(const UPDATE__UE__LOCATION__INFORMATION& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UPDATE__UE__LOCATION__INFORMATION_template& UPDATE__UE__LOCATION__INFORMATION_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UPDATE__UE__LOCATION__INFORMATION_template& UPDATE__UE__LOCATION__INFORMATION_template::operator=(const UPDATE__UE__LOCATION__INFORMATION_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UPDATE__UE__LOCATION__INFORMATION UPDATE__UE__LOCATION__INFORMATION_template::valueof() const +{ +UPDATE__UE__LOCATION__INFORMATION ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::messageType() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::ellipsoidPointWithAltitude() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::ellipsoidPointWithAltitude() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::horizontalVelocity() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::horizontalVelocity() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::gnss__TOD__msec() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& UPDATE__UE__LOCATION__INFORMATION_template::gnss__TOD__msec() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* UPDATE__UE__LOCATION__INFORMATION_template::get_descriptor() const { return &UPDATE__UE__LOCATION__INFORMATION_descr_; } +const char* UPDATE__UE__LOCATION__INFORMATION_template::fld_name(int p_index) const { return UPDATE__UE__LOCATION__INFORMATION::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +PlmnAndTacs_template operator+(template_sel left_template, const PlmnAndTacs_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = PlmnAndTacs_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return PlmnAndTacs_template(ANY_VALUE); +} +PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +PlmnAndTacs_template operator+(const PlmnAndTacs& left_value, const PlmnAndTacs_template& right_template) +{ +boolean dummy = FALSE; +int res_length = PlmnAndTacs_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +PlmnAndTacs_template operator+(template_sel left_template, const PlmnAndTacs& right_value) +{ +int res_length = PlmnAndTacs_template::get_length_for_concat(left_template) + PlmnAndTacs_template::get_length_for_concat(right_value); +PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +PlmnAndTacs_template operator+(const PlmnAndTacs& left_value, template_sel right_template) +{ +int res_length = PlmnAndTacs_template::get_length_for_concat(left_value) + PlmnAndTacs_template::get_length_for_concat(right_template); +PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +Type0List_template operator+(template_sel left_template, const Type0List_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = Type0List_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return Type0List_template(ANY_VALUE); +} +Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +Type0List_template operator+(const Type0List& left_value, const Type0List_template& right_template) +{ +boolean dummy = FALSE; +int res_length = Type0List_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +Type0List_template operator+(template_sel left_template, const Type0List& right_value) +{ +int res_length = Type0List_template::get_length_for_concat(left_template) + Type0List_template::get_length_for_concat(right_value); +Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +Type0List_template operator+(const Type0List& left_value, template_sel right_template) +{ +int res_length = Type0List_template::get_length_for_concat(left_value) + Type0List_template::get_length_for_concat(right_template); +Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +Type1List_template operator+(template_sel left_template, const Type1List_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = Type1List_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return Type1List_template(ANY_VALUE); +} +Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +Type1List_template operator+(const Type1List& left_value, const Type1List_template& right_template) +{ +boolean dummy = FALSE; +int res_length = Type1List_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +Type1List_template operator+(template_sel left_template, const Type1List& right_value) +{ +int res_length = Type1List_template::get_length_for_concat(left_template) + Type1List_template::get_length_for_concat(right_value); +Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +Type1List_template operator+(const Type1List& left_value, template_sel right_template) +{ +int res_length = Type1List_template::get_length_for_concat(left_value) + Type1List_template::get_length_for_concat(right_template); +Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +Type2List_template operator+(template_sel left_template, const Type2List_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = Type2List_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return Type2List_template(ANY_VALUE); +} +Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +Type2List_template operator+(const Type2List& left_value, const Type2List_template& right_template) +{ +boolean dummy = FALSE; +int res_length = Type2List_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +Type2List_template operator+(template_sel left_template, const Type2List& right_value) +{ +int res_length = Type2List_template::get_length_for_concat(left_template) + Type2List_template::get_length_for_concat(right_value); +Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +Type2List_template operator+(const Type2List& left_value, template_sel right_template) +{ +int res_length = Type2List_template::get_length_for_concat(left_value) + Type2List_template::get_length_for_concat(right_template); +Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +TrackingAreaIdList_listOfPartialTais_template operator+(template_sel left_template, const TrackingAreaIdList_listOfPartialTais_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = TrackingAreaIdList_listOfPartialTais_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return TrackingAreaIdList_listOfPartialTais_template(ANY_VALUE); +} +TrackingAreaIdList_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +TrackingAreaIdList_listOfPartialTais_template operator+(const TrackingAreaIdList_listOfPartialTais& left_value, const TrackingAreaIdList_listOfPartialTais_template& right_template) +{ +boolean dummy = FALSE; +int res_length = TrackingAreaIdList_listOfPartialTais_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +TrackingAreaIdList_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +TrackingAreaIdList_listOfPartialTais_template operator+(template_sel left_template, const TrackingAreaIdList_listOfPartialTais& right_value) +{ +int res_length = TrackingAreaIdList_listOfPartialTais_template::get_length_for_concat(left_template) + TrackingAreaIdList_listOfPartialTais_template::get_length_for_concat(right_value); +TrackingAreaIdList_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +TrackingAreaIdList_listOfPartialTais_template operator+(const TrackingAreaIdList_listOfPartialTais& left_value, template_sel right_template) +{ +int res_length = TrackingAreaIdList_listOfPartialTais_template::get_length_for_concat(left_value) + TrackingAreaIdList_listOfPartialTais_template::get_length_for_concat(right_template); +TrackingAreaIdList_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +CipheringKeyData_cipherKey_template operator+(template_sel left_template, const CipheringKeyData_cipherKey_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = CipheringKeyData_cipherKey_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return CipheringKeyData_cipherKey_template(ANY_VALUE); +} +CipheringKeyData_cipherKey_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +CipheringKeyData_cipherKey_template operator+(const CipheringKeyData_cipherKey& left_value, const CipheringKeyData_cipherKey_template& right_template) +{ +boolean dummy = FALSE; +int res_length = CipheringKeyData_cipherKey_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +CipheringKeyData_cipherKey_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +CipheringKeyData_cipherKey_template operator+(template_sel left_template, const CipheringKeyData_cipherKey& right_value) +{ +int res_length = CipheringKeyData_cipherKey_template::get_length_for_concat(left_template) + CipheringKeyData_cipherKey_template::get_length_for_concat(right_value); +CipheringKeyData_cipherKey_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +CipheringKeyData_cipherKey_template operator+(const CipheringKeyData_cipherKey& left_value, template_sel right_template) +{ +int res_length = CipheringKeyData_cipherKey_template::get_length_for_concat(left_value) + CipheringKeyData_cipherKey_template::get_length_for_concat(right_template); +CipheringKeyData_cipherKey_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +ListOfRemoteUEContext_template operator+(template_sel left_template, const ListOfRemoteUEContext_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = ListOfRemoteUEContext_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return ListOfRemoteUEContext_template(ANY_VALUE); +} +ListOfRemoteUEContext_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +ListOfRemoteUEContext_template operator+(const ListOfRemoteUEContext& left_value, const ListOfRemoteUEContext_template& right_template) +{ +boolean dummy = FALSE; +int res_length = ListOfRemoteUEContext_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +ListOfRemoteUEContext_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +ListOfRemoteUEContext_template operator+(template_sel left_template, const ListOfRemoteUEContext& right_value) +{ +int res_length = ListOfRemoteUEContext_template::get_length_for_concat(left_template) + ListOfRemoteUEContext_template::get_length_for_concat(right_value); +ListOfRemoteUEContext_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +ListOfRemoteUEContext_template operator+(const ListOfRemoteUEContext& left_value, template_sel right_template) +{ +int res_length = ListOfRemoteUEContext_template::get_length_for_concat(left_value) + ListOfRemoteUEContext_template::get_length_for_concat(right_template); +ListOfRemoteUEContext_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +UserIdentityList_template operator+(template_sel left_template, const UserIdentityList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = UserIdentityList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return UserIdentityList_template(ANY_VALUE); +} +UserIdentityList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +UserIdentityList_template operator+(const UserIdentityList& left_value, const UserIdentityList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = UserIdentityList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +UserIdentityList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +UserIdentityList_template operator+(template_sel left_template, const UserIdentityList& right_value) +{ +int res_length = UserIdentityList_template::get_length_for_concat(left_template) + UserIdentityList_template::get_length_for_concat(right_value); +UserIdentityList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +UserIdentityList_template operator+(const UserIdentityList& left_value, template_sel right_template) +{ +int res_length = UserIdentityList_template::get_length_for_concat(left_value) + UserIdentityList_template::get_length_for_concat(right_template); +UserIdentityList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/EPS_NAS/EPS_NAS_TypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EPS_NAS_TypeDefs"); +EPS__NAS__TypeDefs::init_ttcn3_debugger(); +NAS__CommonTypeDefs::module_object.pre_init_module(); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/EPS_NAS/EPS_NAS_TypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EPS_NAS_TypeDefs"); +NAS__CommonTypeDefs::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/EPS_NAS_TypeDefs.hh b/build/Ats_NG_NAS/EPS_NAS_TypeDefs.hh new file mode 100644 index 0000000000000000000000000000000000000000..32d55ac7a64a154e52734ef449752adcb81c8581 --- /dev/null +++ b/build/Ats_NG_NAS/EPS_NAS_TypeDefs.hh @@ -0,0 +1,16760 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef EPS__NAS__TypeDefs_HH +#define EPS__NAS__TypeDefs_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NAS_CommonTypeDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 EPS__NAS__TypeDefs_HH +#endif + +namespace EPS__NAS__TypeDefs { + +/* Forward declarations of classes */ + +class TrackingAreaId; +class TrackingAreaId_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING NAS__TacList; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template NAS__TacList_template; +class PartialTai; +class PartialTai_template; +class Type0Element; +class Type0Element_template; +class Type1Element; +class Type1Element_template; +class PlmnAndTacs; +class PlmnAndTacs_template; +class Type2Element; +class Type2Element_template; +class Type0List; +class Type0List_template; +class Type1List; +class Type1List_template; +class Type2List; +class Type2List_template; +class PartialTaiType; +class PartialTaiType_template; +class ListOfPartialTaiList; +class ListOfPartialTaiList_template; +class TrackingAreaIdList_listOfPartialTais; +class TrackingAreaIdList_listOfPartialTais_template; +class TrackingAreaIdList; +class TrackingAreaIdList_template; +class EPS__AttachResult; +class EPS__AttachResult_template; +class ESM__MessageContainer; +class ESM__MessageContainer_template; +class ATTACH__ACCEPT; +class ATTACH__ACCEPT_template; +class EMM__Cause; +class EMM__Cause_template; +class EPS__NetworkFeatureSupport; +class EPS__NetworkFeatureSupport_template; +class AdditionalUpdateResult; +class AdditionalUpdateResult_template; +class SMSServicesStatus; +class SMSServicesStatus_template; +class NetworkPolicy; +class NetworkPolicy_template; +class CipheringKeyData_cipherKey; +class CipheringKeyData_cipherKey_template; +class CipheringKey; +class CipheringKey_template; +class CipheringKeyData; +class CipheringKeyData_template; +class IMSI__Offset; +class IMSI__Offset_template; +class ATTACH__COMPLETE; +class ATTACH__COMPLETE_template; +class ATTACH__REJECT; +class ATTACH__REJECT_template; +class Extd__EMM__Cause; +class Extd__EMM__Cause_template; +class EPS__AttachType; +class EPS__AttachType_template; +class ATTACH__REQUEST; +class ATTACH__REQUEST_template; +class GUTI__Type; +class GUTI__Type_template; +class UE__AdditionalSecurityCapability; +class UE__AdditionalSecurityCapability_template; +class AdditionalInfoReq; +class AdditionalInfoReq_template; +class N1__UENetworkCap; +class N1__UENetworkCap_template; +class UERadioCapIdAvailability; +class UERadioCapIdAvailability_template; +class AUTHENTICATION__FAILURE; +class AUTHENTICATION__FAILURE_template; +class AUTHENTICATION__REJECT; +class AUTHENTICATION__REJECT_template; +class AUTHENTICATION__REQUEST; +class AUTHENTICATION__REQUEST_template; +class AUTHENTICATION__RESPONSE; +class AUTHENTICATION__RESPONSE_template; +class PagingIdentity; +class PagingIdentity_template; +class CS__SERVICE__NOTIFICATION; +class CS__SERVICE__NOTIFICATION_template; +class CLI; +class CLI_template; +class SsCode; +class SsCode_template; +class LcsIndicator; +class LcsIndicator_template; +class LcsClientIdentity; +class LcsClientIdentity_template; +class DETACH__ACCEPT; +class DETACH__ACCEPT_template; +class DETACH__REQUEST__MO; +class DETACH__REQUEST__MO_template; +class DETACH__REQUEST__MT; +class DETACH__REQUEST__MT_template; +class NAS__MessageContainer; +class NAS__MessageContainer_template; +class DL__NAS__TRANSPORT; +class DL__NAS__TRANSPORT_template; +class EMM__INFORMATION; +class EMM__INFORMATION_template; +class EMM__STATUS; +class EMM__STATUS_template; +class EPS__ServiceType; +class EPS__ServiceType_template; +class EXT__SERVICE__REQUEST; +class EXT__SERVICE__REQUEST_template; +class CSFBResponse; +class CSFBResponse_template; +class PagingRestriction; +class PagingRestriction_template; +class GUTI__REALLOCATION__COMMAND; +class GUTI__REALLOCATION__COMMAND_template; +class GUTI__REALLOCATION__COMPLETE; +class GUTI__REALLOCATION__COMPLETE_template; +class IDENTITY__REQUEST; +class IDENTITY__REQUEST_template; +class IDENTITY__RESPONSE; +class IDENTITY__RESPONSE_template; +class SECURITY__MODE__COMMAND; +class SECURITY__MODE__COMMAND_template; +class Nonce; +class Nonce_template; +class UERadioCapIdRequest; +class UERadioCapIdRequest_template; +class SECURITY__MODE__COMPLETE; +class SECURITY__MODE__COMPLETE_template; +class SECURITY__MODE__REJECT; +class SECURITY__MODE__REJECT_template; +class SECURITY__PROTECTED__NAS__MESSAGE; +class SECURITY__PROTECTED__NAS__MESSAGE_template; +class SERVICE__REJECT; +class SERVICE__REJECT_template; +class KSIandSN; +class KSIandSN_template; +class ShortMAC; +class ShortMAC_template; +class SERVICE__REQUEST; +class SERVICE__REQUEST_template; +class EPS__UpdateResult; +class EPS__UpdateResult_template; +class TRACKING__AREA__UPDATE__ACCEPT; +class TRACKING__AREA__UPDATE__ACCEPT_template; +class HeaderCompressConfigStatus; +class HeaderCompressConfigStatus_template; +class EPS__AddReqResult; +class EPS__AddReqResult_template; +class TRACKING__AREA__UPDATE__COMPLETE; +class TRACKING__AREA__UPDATE__COMPLETE_template; +class TRACKING__AREA__UPDATE__REJECT; +class TRACKING__AREA__UPDATE__REJECT_template; +class EPS__UpdateType; +class EPS__UpdateType_template; +class TRACKING__AREA__UPDATE__REQUEST; +class TRACKING__AREA__UPDATE__REQUEST_template; +class UERadioCapInfoUpdateNeeded; +class UERadioCapInfoUpdateNeeded_template; +class UL__NAS__TRANSPORT; +class UL__NAS__TRANSPORT_template; +class GenericMessageContainer; +class GenericMessageContainer_template; +class DL__GENERIC__NAS__TRANSPORT; +class DL__GENERIC__NAS__TRANSPORT_template; +class UL__GENERIC__NAS__TRANSPORT; +class UL__GENERIC__NAS__TRANSPORT_template; +class ControlPlaneServiceType; +class ControlPlaneServiceType_template; +class CONTROL__PLANE__SERVICE__REQUEST; +class CONTROL__PLANE__SERVICE__REQUEST_template; +class SERVICE__ACCEPT; +class SERVICE__ACCEPT_template; +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT; +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template; +class ESM__Cause; +class ESM__Cause_template; +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT; +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template; +class LinkedEpsBearerIdentity; +class LinkedEpsBearerIdentity_template; +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST; +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template; +class TransactionIdentifier; +class TransactionIdentifier_template; +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT; +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template; +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT; +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template; +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST; +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template; +class APN__AMBR; +class APN__AMBR_template; +class HeaderCompressConfig; +class HeaderCompressConfig_template; +class Extd__APN__AMBR; +class Extd__APN__AMBR_template; +class BEARER__RESOURCE__ALLOCATION__REJECT; +class BEARER__RESOURCE__ALLOCATION__REJECT_template; +class BEARER__RESOURCE__ALLOCATION__REQUEST; +class BEARER__RESOURCE__ALLOCATION__REQUEST_template; +class BEARER__RESOURCE__MODIFICATION__REJECT; +class BEARER__RESOURCE__MODIFICATION__REJECT_template; +class BEARER__RESOURCE__MODIFICATION__REQUEST; +class BEARER__RESOURCE__MODIFICATION__REQUEST_template; +class DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT; +class DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template; +class DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST; +class DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template; +class ESM__DUMMY__MESSAGE; +class ESM__DUMMY__MESSAGE_template; +class ESM__INFORMATION__REQUEST; +class ESM__INFORMATION__REQUEST_template; +class ESM__INFORMATION__RESPONSE; +class ESM__INFORMATION__RESPONSE_template; +class ESM__STATUS; +class ESM__STATUS_template; +class MODIFY__EPS__BEARER__CONTEXT__ACCEPT; +class MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template; +class MODIFY__EPS__BEARER__CONTEXT__REJECT; +class MODIFY__EPS__BEARER__CONTEXT__REJECT_template; +class MODIFY__EPS__BEARER__CONTEXT__REQUEST; +class MODIFY__EPS__BEARER__CONTEXT__REQUEST_template; +class NotificationIndicator; +class NotificationIndicator_template; +class NOTIFICATION; +class NOTIFICATION_template; +class PDN__CONNECTIVITY__REJECT; +class PDN__CONNECTIVITY__REJECT_template; +class PDN__Type; +class PDN__Type_template; +class PDN__CONNECTIVITY__REQUEST; +class PDN__CONNECTIVITY__REQUEST_template; +class ESM__InfoTransferFlag; +class ESM__InfoTransferFlag_template; +class PDN__DISCONNECT__REJECT; +class PDN__DISCONNECT__REJECT_template; +class PDN__DISCONNECT__REQUEST; +class PDN__DISCONNECT__REQUEST_template; +class REMOTE__UE__REPORT; +class REMOTE__UE__REPORT_template; +class ListOfRemoteUEContext; +class ListOfRemoteUEContext_template; +class UserIdentityList; +class UserIdentityList_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__BITSTRING UserIdentity_digits; +typedef PreGenRecordOf::PREGEN__RECORD__OF__BITSTRING_template UserIdentity_digits_template; +class UserIdentity; +class UserIdentity_template; +class RemoteUEContext; +class RemoteUEContext_template; +class RemoteUEContextList; +class RemoteUEContextList_template; +class PKMF__Address; +class PKMF__Address_template; +class REMOTE__UE__REPORT__RESPONSE; +class REMOTE__UE__REPORT__RESPONSE_template; +class UserDataContainer; +class UserDataContainer_template; +class ESM__DATA__TRANSPORT; +class ESM__DATA__TRANSPORT_template; +class NAS__SecurityParametersfromEUTRA; +class NAS__SecurityParametersfromEUTRA_template; +class NAS__SecurityParameterstoEUTRA; +class NAS__SecurityParameterstoEUTRA_template; +class UPDATE__UE__LOCATION__INFORMATION; +class UPDATE__UE__LOCATION__INFORMATION_template; + +} /* end of namespace */ + +#ifndef EPS__NAS__TypeDefs_HH +#define EPS__NAS__TypeDefs_HH + +namespace EPS__NAS__TypeDefs { + +/* Type definitions */ + +typedef HEXSTRING EPS__BearerIdentity; +typedef HEXSTRING_template EPS__BearerIdentity_template; +typedef OCTETSTRING NAS__Message; +typedef OCTETSTRING_template NAS__Message_template; +typedef OCTETSTRING EPS__MmeGi; +typedef OCTETSTRING_template EPS__MmeGi_template; +typedef OCTETSTRING EPS__Mmec; +typedef OCTETSTRING_template EPS__Mmec_template; +typedef OCTETSTRING EPS__M__Tmsi; +typedef OCTETSTRING_template EPS__M__Tmsi_template; +typedef OCTETSTRING EPS__S__Tmsi; +typedef OCTETSTRING_template EPS__S__Tmsi_template; +typedef BITSTRING EPS__PartialTaiListType; +typedef BITSTRING_template EPS__PartialTaiListType_template; +typedef BITSTRING EPS__ServiceTypeValue; +typedef BITSTRING_template EPS__ServiceTypeValue_template; +typedef BITSTRING EPS__UpdateTypeValue; +typedef BITSTRING_template EPS__UpdateTypeValue_template; +typedef OCTETSTRING NAS__Tac; +typedef OCTETSTRING_template NAS__Tac_template; +typedef NAS__CommonTypeDefs::DRXParamCommon NB__S1__DRXParam; +typedef NAS__CommonTypeDefs::DRXParamCommon_template NB__S1__DRXParam_template; +typedef BITSTRING GenericMessageContainerType; +typedef BITSTRING_template GenericMessageContainerType_template; +typedef OCTETSTRING EllipsoidPointWithAltitude__Type; +typedef OCTETSTRING_template EllipsoidPointWithAltitude__Type_template; +typedef OCTETSTRING HorizontalVelocity__Type; +typedef OCTETSTRING_template HorizontalVelocity__Type_template; +typedef OCTETSTRING Gnss__TOD__msec__Type; +typedef OCTETSTRING_template Gnss__TOD__msec__Type_template; + +/* Class definitions */ + +class TrackingAreaId : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_plmnId; + OCTETSTRING field_tac; + Base_Type* fld_vec[3]; + void init_vec(); +public: + TrackingAreaId(); + TrackingAreaId(const TrackingAreaId& other_value); + TrackingAreaId(const OPTIONAL& par_iei, + const OCTETSTRING& par_plmnId, + const OCTETSTRING& par_tac); +inline TrackingAreaId& operator=(const TrackingAreaId& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TrackingAreaId& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TrackingAreaId& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& plmnId() + {return field_plmnId;} + inline const OCTETSTRING& plmnId() const + {return field_plmnId;} + inline OCTETSTRING& tac() + {return field_tac;} + inline const OCTETSTRING& tac() const + {return field_tac;} +Base_Type* clone() const { return new TrackingAreaId(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TrackingAreaId_template : public Record_Template { +void set_specific(); +public: +TrackingAreaId_template(): Record_Template() {} +TrackingAreaId_template(template_sel other_value): Record_Template(other_value) {} +TrackingAreaId_template(const TrackingAreaId& other_value): Record_Template() { copy_value(&other_value); } +TrackingAreaId_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TrackingAreaId_template(TrackingAreaId_template* p_precondition, TrackingAreaId_template* p_implied_template); +TrackingAreaId_template(Dynamic_Match_Interface* p_dyn_match); +TrackingAreaId_template(const TrackingAreaId_template& other_value): Record_Template() { copy_template(other_value); } +~TrackingAreaId_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TrackingAreaId_template& operator=(template_sel other_value); +TrackingAreaId_template& operator=(const TrackingAreaId& other_value); +TrackingAreaId_template& operator=(const OPTIONAL& other_value); +TrackingAreaId_template& operator=(const TrackingAreaId_template& other_value); +inline boolean match(const TrackingAreaId& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TrackingAreaId& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TrackingAreaId valueof() const; +inline TrackingAreaId_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& plmnId(); +const OCTETSTRING_template& plmnId() const; +OCTETSTRING_template& tac(); +const OCTETSTRING_template& tac() const; +Record_Template* create() const { return new TrackingAreaId_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PartialTai : public Record_Type { + OCTETSTRING field_plmnId; + OCTETSTRING field_tac; + Base_Type* fld_vec[2]; + void init_vec(); +public: + PartialTai(); + PartialTai(const PartialTai& other_value); + PartialTai(const OCTETSTRING& par_plmnId, + const OCTETSTRING& par_tac); +inline PartialTai& operator=(const PartialTai& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PartialTai& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PartialTai& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& plmnId() + {return field_plmnId;} + inline const OCTETSTRING& plmnId() const + {return field_plmnId;} + inline OCTETSTRING& tac() + {return field_tac;} + inline const OCTETSTRING& tac() const + {return field_tac;} +Base_Type* clone() const { return new PartialTai(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PartialTai_template : public Record_Template { +void set_specific(); +public: +PartialTai_template(): Record_Template() {} +PartialTai_template(template_sel other_value): Record_Template(other_value) {} +PartialTai_template(const PartialTai& other_value): Record_Template() { copy_value(&other_value); } +PartialTai_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PartialTai_template(PartialTai_template* p_precondition, PartialTai_template* p_implied_template); +PartialTai_template(Dynamic_Match_Interface* p_dyn_match); +PartialTai_template(const PartialTai_template& other_value): Record_Template() { copy_template(other_value); } +~PartialTai_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PartialTai_template& operator=(template_sel other_value); +PartialTai_template& operator=(const PartialTai& other_value); +PartialTai_template& operator=(const OPTIONAL& other_value); +PartialTai_template& operator=(const PartialTai_template& other_value); +inline boolean match(const PartialTai& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PartialTai& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PartialTai valueof() const; +inline PartialTai_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& plmnId(); +const OCTETSTRING_template& plmnId() const; +OCTETSTRING_template& tac(); +const OCTETSTRING_template& tac() const; +Record_Template* create() const { return new PartialTai_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Type0Element : public Record_Type { + OCTETSTRING field_plmnId; + NAS__TacList field_tacList; + Base_Type* fld_vec[2]; + void init_vec(); +public: + Type0Element(); + Type0Element(const Type0Element& other_value); + Type0Element(const OCTETSTRING& par_plmnId, + const NAS__TacList& par_tacList); +inline Type0Element& operator=(const Type0Element& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Type0Element& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Type0Element& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& plmnId() + {return field_plmnId;} + inline const OCTETSTRING& plmnId() const + {return field_plmnId;} + inline NAS__TacList& tacList() + {return field_tacList;} + inline const NAS__TacList& tacList() const + {return field_tacList;} +Base_Type* clone() const { return new Type0Element(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Type0Element_template : public Record_Template { +void set_specific(); +public: +Type0Element_template(): Record_Template() {} +Type0Element_template(template_sel other_value): Record_Template(other_value) {} +Type0Element_template(const Type0Element& other_value): Record_Template() { copy_value(&other_value); } +Type0Element_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Type0Element_template(Type0Element_template* p_precondition, Type0Element_template* p_implied_template); +Type0Element_template(Dynamic_Match_Interface* p_dyn_match); +Type0Element_template(const Type0Element_template& other_value): Record_Template() { copy_template(other_value); } +~Type0Element_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Type0Element_template& operator=(template_sel other_value); +Type0Element_template& operator=(const Type0Element& other_value); +Type0Element_template& operator=(const OPTIONAL& other_value); +Type0Element_template& operator=(const Type0Element_template& other_value); +inline boolean match(const Type0Element& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Type0Element& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Type0Element valueof() const; +inline Type0Element_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& plmnId(); +const OCTETSTRING_template& plmnId() const; +NAS__TacList_template& tacList(); +const NAS__TacList_template& tacList() const; +Record_Template* create() const { return new Type0Element_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Type1Element : public Record_Type { + PartialTai field_partialTac; + Base_Type* fld_vec[1]; + void init_vec(); +public: + Type1Element(); + Type1Element(const Type1Element& other_value); + Type1Element(const PartialTai& par_partialTac); +inline Type1Element& operator=(const Type1Element& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Type1Element& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Type1Element& other_value) const + { return !is_equal(&other_value); } + + inline PartialTai& partialTac() + {return field_partialTac;} + inline const PartialTai& partialTac() const + {return field_partialTac;} +Base_Type* clone() const { return new Type1Element(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Type1Element_template : public Record_Template { +void set_specific(); +public: +Type1Element_template(): Record_Template() {} +Type1Element_template(template_sel other_value): Record_Template(other_value) {} +Type1Element_template(const Type1Element& other_value): Record_Template() { copy_value(&other_value); } +Type1Element_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Type1Element_template(Type1Element_template* p_precondition, Type1Element_template* p_implied_template); +Type1Element_template(Dynamic_Match_Interface* p_dyn_match); +Type1Element_template(const Type1Element_template& other_value): Record_Template() { copy_template(other_value); } +~Type1Element_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Type1Element_template& operator=(template_sel other_value); +Type1Element_template& operator=(const Type1Element& other_value); +Type1Element_template& operator=(const OPTIONAL& other_value); +Type1Element_template& operator=(const Type1Element_template& other_value); +inline boolean match(const Type1Element& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Type1Element& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Type1Element valueof() const; +inline Type1Element_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +PartialTai_template& partialTac(); +const PartialTai_template& partialTac() const; +Record_Template* create() const { return new Type1Element_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PlmnAndTacs : public Record_Of_Type { + +static const PartialTai UNBOUND_ELEM; + +public: +PlmnAndTacs(): Record_Of_Type() {} +PlmnAndTacs(null_type other_value): Record_Of_Type(other_value) {} +PlmnAndTacs(const PlmnAndTacs& other_value): Record_Of_Type(other_value) {} +~PlmnAndTacs() { clean_up(); } + +inline PlmnAndTacs& operator=(null_type other_value) { set_val(other_value); return *this; } +inline PlmnAndTacs& operator=(const PlmnAndTacs& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PlmnAndTacs& other_value) const { return is_equal(&other_value); } +boolean operator!=(const PlmnAndTacs& other_value) const { return !is_equal(&other_value); } +PartialTai& operator[](int index_value); +PartialTai& operator[](const INTEGER& index_value); +const PartialTai& operator[](int index_value) const; +const PartialTai& operator[](const INTEGER& index_value) const; +PlmnAndTacs operator<<=(int rotate_count) const; +PlmnAndTacs operator<<=(const INTEGER& rotate_count) const; +PlmnAndTacs operator>>=(int rotate_count) const; +PlmnAndTacs operator>>=(const INTEGER& rotate_count) const; + +PlmnAndTacs operator+(const PlmnAndTacs& other_value) const; + +PlmnAndTacs operator+(const OPTIONAL& other_value) const; + +PlmnAndTacs operator+(null_type) const; + +PlmnAndTacs substr(int index, int returncount) const; + +PlmnAndTacs replace(int index, int len, const PlmnAndTacs& repl) const; + +PlmnAndTacs replace(int index, int len, const PlmnAndTacs_template& repl) const; + +Base_Type* clone() const { return new PlmnAndTacs(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class PlmnAndTacs_template : public Record_Of_Template { +friend PlmnAndTacs_template operator+(template_sel left_template, const PlmnAndTacs_template& right_template); +friend PlmnAndTacs_template operator+(const PlmnAndTacs& left_value, const PlmnAndTacs_template& right_template); +friend PlmnAndTacs_template operator+(template_sel left_template, const PlmnAndTacs& right_value); +friend PlmnAndTacs_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend PlmnAndTacs_template operator+(const PlmnAndTacs& left_value, template_sel right_template); + +public: +PlmnAndTacs_template() {} +PlmnAndTacs_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +PlmnAndTacs_template(null_type other_value); +PlmnAndTacs_template(const PlmnAndTacs& other_value) { copy_value(&other_value); } +PlmnAndTacs_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +PlmnAndTacs_template(PlmnAndTacs_template* p_precondition, PlmnAndTacs_template* p_implied_template); +PlmnAndTacs_template(Dynamic_Match_Interface* p_dyn_match); +PlmnAndTacs_template(const PlmnAndTacs_template& other_value): Record_Of_Template() { copy_template(other_value); } +~PlmnAndTacs_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PlmnAndTacs_template& operator=(template_sel other_value); +PlmnAndTacs_template& operator=(null_type other_value); +PlmnAndTacs_template& operator=(const PlmnAndTacs& other_value); +PlmnAndTacs_template& operator=(const OPTIONAL& other_value); +PlmnAndTacs_template& operator=(const PlmnAndTacs_template& other_value); + +PlmnAndTacs_template operator+(const PlmnAndTacs_template& other_value) const; +PlmnAndTacs_template operator+(const PlmnAndTacs& other_value) const; +PlmnAndTacs_template operator+(template_sel other_value) const; +PlmnAndTacs_template operator+(null_type) const; + +PartialTai_template& operator[](int index_value); +PartialTai_template& operator[](const INTEGER& index_value); +const PartialTai_template& operator[](int index_value) const; +const PartialTai_template& operator[](const INTEGER& index_value) const; +inline boolean match(const PlmnAndTacs& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +PlmnAndTacs valueof() const; +PlmnAndTacs substr(int index, int returncount) const; + +PlmnAndTacs replace(int index, int len, const PlmnAndTacs_template& repl) const; + +PlmnAndTacs replace(int index, int len, const PlmnAndTacs& repl) const; + +inline PlmnAndTacs_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const PlmnAndTacs& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new PlmnAndTacs_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class Type2Element : public Record_Type { + PlmnAndTacs field_plmnAndTacs; + Base_Type* fld_vec[1]; + void init_vec(); +public: + Type2Element(); + Type2Element(const Type2Element& other_value); + Type2Element(const PlmnAndTacs& par_plmnAndTacs); +inline Type2Element& operator=(const Type2Element& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Type2Element& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Type2Element& other_value) const + { return !is_equal(&other_value); } + + inline PlmnAndTacs& plmnAndTacs() + {return field_plmnAndTacs;} + inline const PlmnAndTacs& plmnAndTacs() const + {return field_plmnAndTacs;} +Base_Type* clone() const { return new Type2Element(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Type2Element_template : public Record_Template { +void set_specific(); +public: +Type2Element_template(): Record_Template() {} +Type2Element_template(template_sel other_value): Record_Template(other_value) {} +Type2Element_template(const Type2Element& other_value): Record_Template() { copy_value(&other_value); } +Type2Element_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Type2Element_template(Type2Element_template* p_precondition, Type2Element_template* p_implied_template); +Type2Element_template(Dynamic_Match_Interface* p_dyn_match); +Type2Element_template(const Type2Element_template& other_value): Record_Template() { copy_template(other_value); } +~Type2Element_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Type2Element_template& operator=(template_sel other_value); +Type2Element_template& operator=(const Type2Element& other_value); +Type2Element_template& operator=(const OPTIONAL& other_value); +Type2Element_template& operator=(const Type2Element_template& other_value); +inline boolean match(const Type2Element& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Type2Element& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Type2Element valueof() const; +inline Type2Element_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +PlmnAndTacs_template& plmnAndTacs(); +const PlmnAndTacs_template& plmnAndTacs() const; +Record_Template* create() const { return new Type2Element_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Type0List : public Record_Of_Type { + +static const Type0Element UNBOUND_ELEM; + +public: +Type0List(): Record_Of_Type() {} +Type0List(null_type other_value): Record_Of_Type(other_value) {} +Type0List(const Type0List& other_value): Record_Of_Type(other_value) {} +~Type0List() { clean_up(); } + +inline Type0List& operator=(null_type other_value) { set_val(other_value); return *this; } +inline Type0List& operator=(const Type0List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Type0List& other_value) const { return is_equal(&other_value); } +boolean operator!=(const Type0List& other_value) const { return !is_equal(&other_value); } +Type0Element& operator[](int index_value); +Type0Element& operator[](const INTEGER& index_value); +const Type0Element& operator[](int index_value) const; +const Type0Element& operator[](const INTEGER& index_value) const; +Type0List operator<<=(int rotate_count) const; +Type0List operator<<=(const INTEGER& rotate_count) const; +Type0List operator>>=(int rotate_count) const; +Type0List operator>>=(const INTEGER& rotate_count) const; + +Type0List operator+(const Type0List& other_value) const; + +Type0List operator+(const OPTIONAL& other_value) const; + +Type0List operator+(null_type) const; + +Type0List substr(int index, int returncount) const; + +Type0List replace(int index, int len, const Type0List& repl) const; + +Type0List replace(int index, int len, const Type0List_template& repl) const; + +Base_Type* clone() const { return new Type0List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class Type0List_template : public Record_Of_Template { +friend Type0List_template operator+(template_sel left_template, const Type0List_template& right_template); +friend Type0List_template operator+(const Type0List& left_value, const Type0List_template& right_template); +friend Type0List_template operator+(template_sel left_template, const Type0List& right_value); +friend Type0List_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend Type0List_template operator+(const Type0List& left_value, template_sel right_template); + +public: +Type0List_template() {} +Type0List_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +Type0List_template(null_type other_value); +Type0List_template(const Type0List& other_value) { copy_value(&other_value); } +Type0List_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +Type0List_template(Type0List_template* p_precondition, Type0List_template* p_implied_template); +Type0List_template(Dynamic_Match_Interface* p_dyn_match); +Type0List_template(const Type0List_template& other_value): Record_Of_Template() { copy_template(other_value); } +~Type0List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Type0List_template& operator=(template_sel other_value); +Type0List_template& operator=(null_type other_value); +Type0List_template& operator=(const Type0List& other_value); +Type0List_template& operator=(const OPTIONAL& other_value); +Type0List_template& operator=(const Type0List_template& other_value); + +Type0List_template operator+(const Type0List_template& other_value) const; +Type0List_template operator+(const Type0List& other_value) const; +Type0List_template operator+(template_sel other_value) const; +Type0List_template operator+(null_type) const; + +Type0Element_template& operator[](int index_value); +Type0Element_template& operator[](const INTEGER& index_value); +const Type0Element_template& operator[](int index_value) const; +const Type0Element_template& operator[](const INTEGER& index_value) const; +inline boolean match(const Type0List& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +Type0List valueof() const; +Type0List substr(int index, int returncount) const; + +Type0List replace(int index, int len, const Type0List_template& repl) const; + +Type0List replace(int index, int len, const Type0List& repl) const; + +inline Type0List_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const Type0List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new Type0List_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class Type1List : public Record_Of_Type { + +static const Type1Element UNBOUND_ELEM; + +public: +Type1List(): Record_Of_Type() {} +Type1List(null_type other_value): Record_Of_Type(other_value) {} +Type1List(const Type1List& other_value): Record_Of_Type(other_value) {} +~Type1List() { clean_up(); } + +inline Type1List& operator=(null_type other_value) { set_val(other_value); return *this; } +inline Type1List& operator=(const Type1List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Type1List& other_value) const { return is_equal(&other_value); } +boolean operator!=(const Type1List& other_value) const { return !is_equal(&other_value); } +Type1Element& operator[](int index_value); +Type1Element& operator[](const INTEGER& index_value); +const Type1Element& operator[](int index_value) const; +const Type1Element& operator[](const INTEGER& index_value) const; +Type1List operator<<=(int rotate_count) const; +Type1List operator<<=(const INTEGER& rotate_count) const; +Type1List operator>>=(int rotate_count) const; +Type1List operator>>=(const INTEGER& rotate_count) const; + +Type1List operator+(const Type1List& other_value) const; + +Type1List operator+(const OPTIONAL& other_value) const; + +Type1List operator+(null_type) const; + +Type1List substr(int index, int returncount) const; + +Type1List replace(int index, int len, const Type1List& repl) const; + +Type1List replace(int index, int len, const Type1List_template& repl) const; + +Base_Type* clone() const { return new Type1List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class Type1List_template : public Record_Of_Template { +friend Type1List_template operator+(template_sel left_template, const Type1List_template& right_template); +friend Type1List_template operator+(const Type1List& left_value, const Type1List_template& right_template); +friend Type1List_template operator+(template_sel left_template, const Type1List& right_value); +friend Type1List_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend Type1List_template operator+(const Type1List& left_value, template_sel right_template); + +public: +Type1List_template() {} +Type1List_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +Type1List_template(null_type other_value); +Type1List_template(const Type1List& other_value) { copy_value(&other_value); } +Type1List_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +Type1List_template(Type1List_template* p_precondition, Type1List_template* p_implied_template); +Type1List_template(Dynamic_Match_Interface* p_dyn_match); +Type1List_template(const Type1List_template& other_value): Record_Of_Template() { copy_template(other_value); } +~Type1List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Type1List_template& operator=(template_sel other_value); +Type1List_template& operator=(null_type other_value); +Type1List_template& operator=(const Type1List& other_value); +Type1List_template& operator=(const OPTIONAL& other_value); +Type1List_template& operator=(const Type1List_template& other_value); + +Type1List_template operator+(const Type1List_template& other_value) const; +Type1List_template operator+(const Type1List& other_value) const; +Type1List_template operator+(template_sel other_value) const; +Type1List_template operator+(null_type) const; + +Type1Element_template& operator[](int index_value); +Type1Element_template& operator[](const INTEGER& index_value); +const Type1Element_template& operator[](int index_value) const; +const Type1Element_template& operator[](const INTEGER& index_value) const; +inline boolean match(const Type1List& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +Type1List valueof() const; +Type1List substr(int index, int returncount) const; + +Type1List replace(int index, int len, const Type1List_template& repl) const; + +Type1List replace(int index, int len, const Type1List& repl) const; + +inline Type1List_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const Type1List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new Type1List_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class Type2List : public Record_Of_Type { + +static const Type2Element UNBOUND_ELEM; + +public: +Type2List(): Record_Of_Type() {} +Type2List(null_type other_value): Record_Of_Type(other_value) {} +Type2List(const Type2List& other_value): Record_Of_Type(other_value) {} +~Type2List() { clean_up(); } + +inline Type2List& operator=(null_type other_value) { set_val(other_value); return *this; } +inline Type2List& operator=(const Type2List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Type2List& other_value) const { return is_equal(&other_value); } +boolean operator!=(const Type2List& other_value) const { return !is_equal(&other_value); } +Type2Element& operator[](int index_value); +Type2Element& operator[](const INTEGER& index_value); +const Type2Element& operator[](int index_value) const; +const Type2Element& operator[](const INTEGER& index_value) const; +Type2List operator<<=(int rotate_count) const; +Type2List operator<<=(const INTEGER& rotate_count) const; +Type2List operator>>=(int rotate_count) const; +Type2List operator>>=(const INTEGER& rotate_count) const; + +Type2List operator+(const Type2List& other_value) const; + +Type2List operator+(const OPTIONAL& other_value) const; + +Type2List operator+(null_type) const; + +Type2List substr(int index, int returncount) const; + +Type2List replace(int index, int len, const Type2List& repl) const; + +Type2List replace(int index, int len, const Type2List_template& repl) const; + +Base_Type* clone() const { return new Type2List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class Type2List_template : public Record_Of_Template { +friend Type2List_template operator+(template_sel left_template, const Type2List_template& right_template); +friend Type2List_template operator+(const Type2List& left_value, const Type2List_template& right_template); +friend Type2List_template operator+(template_sel left_template, const Type2List& right_value); +friend Type2List_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend Type2List_template operator+(const Type2List& left_value, template_sel right_template); + +public: +Type2List_template() {} +Type2List_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +Type2List_template(null_type other_value); +Type2List_template(const Type2List& other_value) { copy_value(&other_value); } +Type2List_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +Type2List_template(Type2List_template* p_precondition, Type2List_template* p_implied_template); +Type2List_template(Dynamic_Match_Interface* p_dyn_match); +Type2List_template(const Type2List_template& other_value): Record_Of_Template() { copy_template(other_value); } +~Type2List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Type2List_template& operator=(template_sel other_value); +Type2List_template& operator=(null_type other_value); +Type2List_template& operator=(const Type2List& other_value); +Type2List_template& operator=(const OPTIONAL& other_value); +Type2List_template& operator=(const Type2List_template& other_value); + +Type2List_template operator+(const Type2List_template& other_value) const; +Type2List_template operator+(const Type2List& other_value) const; +Type2List_template operator+(template_sel other_value) const; +Type2List_template operator+(null_type) const; + +Type2Element_template& operator[](int index_value); +Type2Element_template& operator[](const INTEGER& index_value); +const Type2Element_template& operator[](int index_value) const; +const Type2Element_template& operator[](const INTEGER& index_value) const; +inline boolean match(const Type2List& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +Type2List valueof() const; +Type2List substr(int index, int returncount) const; + +Type2List replace(int index, int len, const Type2List_template& repl) const; + +Type2List replace(int index, int len, const Type2List& repl) const; + +inline Type2List_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const Type2List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new Type2List_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class PartialTaiType : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_type0List = 1, ALT_type1List = 2, ALT_type2List = 3 }; +private: +union_selection_type union_selection; +union { +Type0List *field_type0List; +Type1List *field_type1List; +Type2List *field_type2List; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const PartialTaiType& other_value); + +public: +PartialTaiType(); +PartialTaiType(const PartialTaiType& other_value); +~PartialTaiType(); +PartialTaiType& operator=(const PartialTaiType& other_value); +boolean operator==(const PartialTaiType& other_value) const; +inline boolean operator!=(const PartialTaiType& other_value) const { return !(*this == other_value); } +Type0List& type0List(); +const Type0List& type0List() const; +Type1List& type1List(); +const Type1List& type1List() const; +Type2List& type2List(); +const Type2List& type2List() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class PartialTaiType_template : public Base_Template { +union { +struct { +PartialTaiType::union_selection_type union_selection; +union { +Type0List_template *field_type0List; +Type1List_template *field_type1List; +Type2List_template *field_type2List; +}; +} single_value; +struct { +unsigned int n_values; +PartialTaiType_template *list_value; +} value_list; +struct { +PartialTaiType_template* precondition; +PartialTaiType_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const PartialTaiType& other_value); + +void copy_template(const PartialTaiType_template& other_value); + +public: +PartialTaiType_template(); +PartialTaiType_template(template_sel other_value); +PartialTaiType_template(const PartialTaiType& other_value); +PartialTaiType_template(const OPTIONAL& other_value); +PartialTaiType_template(PartialTaiType_template* p_precondition, PartialTaiType_template* p_implied_template); +PartialTaiType_template(Dynamic_Match_Interface* p_dyn_match); +PartialTaiType_template(const PartialTaiType_template& other_value); +~PartialTaiType_template(); +void clean_up(); +PartialTaiType_template& operator=(template_sel other_value); +PartialTaiType_template& operator=(const PartialTaiType& other_value); +PartialTaiType_template& operator=(const OPTIONAL& other_value); +PartialTaiType_template& operator=(const PartialTaiType_template& other_value); +boolean match(const PartialTaiType& other_value, boolean legacy = FALSE) const; +boolean is_value() const;PartialTaiType valueof() const; +PartialTaiType_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +PartialTaiType::union_selection_type get_union_selection() const; +Type0List_template& type0List(); +const Type0List_template& type0List() const; +Type1List_template& type1List(); +const Type1List_template& type1List() const; +Type2List_template& type2List(); +const Type2List_template& type2List() const; +boolean ischosen(PartialTaiType::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const PartialTaiType& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class ListOfPartialTaiList : public Record_Type { + BITSTRING field_spareBit; + BITSTRING field_typeOfList; + BITSTRING field_numberOfElements; + PartialTaiType field_partialTaiList; + Base_Type* fld_vec[4]; + void init_vec(); +public: + ListOfPartialTaiList(); + ListOfPartialTaiList(const ListOfPartialTaiList& other_value); + ListOfPartialTaiList(const BITSTRING& par_spareBit, + const BITSTRING& par_typeOfList, + const BITSTRING& par_numberOfElements, + const PartialTaiType& par_partialTaiList); +inline ListOfPartialTaiList& operator=(const ListOfPartialTaiList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ListOfPartialTaiList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ListOfPartialTaiList& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spareBit() + {return field_spareBit;} + inline const BITSTRING& spareBit() const + {return field_spareBit;} + inline BITSTRING& typeOfList() + {return field_typeOfList;} + inline const BITSTRING& typeOfList() const + {return field_typeOfList;} + inline BITSTRING& numberOfElements() + {return field_numberOfElements;} + inline const BITSTRING& numberOfElements() const + {return field_numberOfElements;} + inline PartialTaiType& partialTaiList() + {return field_partialTaiList;} + inline const PartialTaiType& partialTaiList() const + {return field_partialTaiList;} +Base_Type* clone() const { return new ListOfPartialTaiList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ListOfPartialTaiList_template : public Record_Template { +void set_specific(); +public: +ListOfPartialTaiList_template(): Record_Template() {} +ListOfPartialTaiList_template(template_sel other_value): Record_Template(other_value) {} +ListOfPartialTaiList_template(const ListOfPartialTaiList& other_value): Record_Template() { copy_value(&other_value); } +ListOfPartialTaiList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ListOfPartialTaiList_template(ListOfPartialTaiList_template* p_precondition, ListOfPartialTaiList_template* p_implied_template); +ListOfPartialTaiList_template(Dynamic_Match_Interface* p_dyn_match); +ListOfPartialTaiList_template(const ListOfPartialTaiList_template& other_value): Record_Template() { copy_template(other_value); } +~ListOfPartialTaiList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ListOfPartialTaiList_template& operator=(template_sel other_value); +ListOfPartialTaiList_template& operator=(const ListOfPartialTaiList& other_value); +ListOfPartialTaiList_template& operator=(const OPTIONAL& other_value); +ListOfPartialTaiList_template& operator=(const ListOfPartialTaiList_template& other_value); +inline boolean match(const ListOfPartialTaiList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ListOfPartialTaiList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ListOfPartialTaiList valueof() const; +inline ListOfPartialTaiList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spareBit(); +const BITSTRING_template& spareBit() const; +BITSTRING_template& typeOfList(); +const BITSTRING_template& typeOfList() const; +BITSTRING_template& numberOfElements(); +const BITSTRING_template& numberOfElements() const; +PartialTaiType_template& partialTaiList(); +const PartialTaiType_template& partialTaiList() const; +Record_Template* create() const { return new ListOfPartialTaiList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TrackingAreaIdList_listOfPartialTais : public Record_Of_Type { + +static const ListOfPartialTaiList UNBOUND_ELEM; + +public: +TrackingAreaIdList_listOfPartialTais(): Record_Of_Type() {} +TrackingAreaIdList_listOfPartialTais(null_type other_value): Record_Of_Type(other_value) {} +TrackingAreaIdList_listOfPartialTais(const TrackingAreaIdList_listOfPartialTais& other_value): Record_Of_Type(other_value) {} +~TrackingAreaIdList_listOfPartialTais() { clean_up(); } + +inline TrackingAreaIdList_listOfPartialTais& operator=(null_type other_value) { set_val(other_value); return *this; } +inline TrackingAreaIdList_listOfPartialTais& operator=(const TrackingAreaIdList_listOfPartialTais& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TrackingAreaIdList_listOfPartialTais& other_value) const { return is_equal(&other_value); } +boolean operator!=(const TrackingAreaIdList_listOfPartialTais& other_value) const { return !is_equal(&other_value); } +ListOfPartialTaiList& operator[](int index_value); +ListOfPartialTaiList& operator[](const INTEGER& index_value); +const ListOfPartialTaiList& operator[](int index_value) const; +const ListOfPartialTaiList& operator[](const INTEGER& index_value) const; +TrackingAreaIdList_listOfPartialTais operator<<=(int rotate_count) const; +TrackingAreaIdList_listOfPartialTais operator<<=(const INTEGER& rotate_count) const; +TrackingAreaIdList_listOfPartialTais operator>>=(int rotate_count) const; +TrackingAreaIdList_listOfPartialTais operator>>=(const INTEGER& rotate_count) const; + +TrackingAreaIdList_listOfPartialTais operator+(const TrackingAreaIdList_listOfPartialTais& other_value) const; + +TrackingAreaIdList_listOfPartialTais operator+(const OPTIONAL& other_value) const; + +TrackingAreaIdList_listOfPartialTais operator+(null_type) const; + +TrackingAreaIdList_listOfPartialTais substr(int index, int returncount) const; + +TrackingAreaIdList_listOfPartialTais replace(int index, int len, const TrackingAreaIdList_listOfPartialTais& repl) const; + +TrackingAreaIdList_listOfPartialTais replace(int index, int len, const TrackingAreaIdList_listOfPartialTais_template& repl) const; + +Base_Type* clone() const { return new TrackingAreaIdList_listOfPartialTais(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class TrackingAreaIdList_listOfPartialTais_template : public Record_Of_Template { +friend TrackingAreaIdList_listOfPartialTais_template operator+(template_sel left_template, const TrackingAreaIdList_listOfPartialTais_template& right_template); +friend TrackingAreaIdList_listOfPartialTais_template operator+(const TrackingAreaIdList_listOfPartialTais& left_value, const TrackingAreaIdList_listOfPartialTais_template& right_template); +friend TrackingAreaIdList_listOfPartialTais_template operator+(template_sel left_template, const TrackingAreaIdList_listOfPartialTais& right_value); +friend TrackingAreaIdList_listOfPartialTais_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend TrackingAreaIdList_listOfPartialTais_template operator+(const TrackingAreaIdList_listOfPartialTais& left_value, template_sel right_template); + +public: +TrackingAreaIdList_listOfPartialTais_template() {} +TrackingAreaIdList_listOfPartialTais_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +TrackingAreaIdList_listOfPartialTais_template(null_type other_value); +TrackingAreaIdList_listOfPartialTais_template(const TrackingAreaIdList_listOfPartialTais& other_value) { copy_value(&other_value); } +TrackingAreaIdList_listOfPartialTais_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +TrackingAreaIdList_listOfPartialTais_template(TrackingAreaIdList_listOfPartialTais_template* p_precondition, TrackingAreaIdList_listOfPartialTais_template* p_implied_template); +TrackingAreaIdList_listOfPartialTais_template(Dynamic_Match_Interface* p_dyn_match); +TrackingAreaIdList_listOfPartialTais_template(const TrackingAreaIdList_listOfPartialTais_template& other_value): Record_Of_Template() { copy_template(other_value); } +~TrackingAreaIdList_listOfPartialTais_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TrackingAreaIdList_listOfPartialTais_template& operator=(template_sel other_value); +TrackingAreaIdList_listOfPartialTais_template& operator=(null_type other_value); +TrackingAreaIdList_listOfPartialTais_template& operator=(const TrackingAreaIdList_listOfPartialTais& other_value); +TrackingAreaIdList_listOfPartialTais_template& operator=(const OPTIONAL& other_value); +TrackingAreaIdList_listOfPartialTais_template& operator=(const TrackingAreaIdList_listOfPartialTais_template& other_value); + +TrackingAreaIdList_listOfPartialTais_template operator+(const TrackingAreaIdList_listOfPartialTais_template& other_value) const; +TrackingAreaIdList_listOfPartialTais_template operator+(const TrackingAreaIdList_listOfPartialTais& other_value) const; +TrackingAreaIdList_listOfPartialTais_template operator+(template_sel other_value) const; +TrackingAreaIdList_listOfPartialTais_template operator+(null_type) const; + +ListOfPartialTaiList_template& operator[](int index_value); +ListOfPartialTaiList_template& operator[](const INTEGER& index_value); +const ListOfPartialTaiList_template& operator[](int index_value) const; +const ListOfPartialTaiList_template& operator[](const INTEGER& index_value) const; +inline boolean match(const TrackingAreaIdList_listOfPartialTais& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +TrackingAreaIdList_listOfPartialTais valueof() const; +TrackingAreaIdList_listOfPartialTais substr(int index, int returncount) const; + +TrackingAreaIdList_listOfPartialTais replace(int index, int len, const TrackingAreaIdList_listOfPartialTais_template& repl) const; + +TrackingAreaIdList_listOfPartialTais replace(int index, int len, const TrackingAreaIdList_listOfPartialTais& repl) const; + +inline TrackingAreaIdList_listOfPartialTais_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const TrackingAreaIdList_listOfPartialTais& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new TrackingAreaIdList_listOfPartialTais_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class TrackingAreaIdList : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + TrackingAreaIdList_listOfPartialTais field_listOfPartialTais; + Base_Type* fld_vec[3]; + void init_vec(); +public: + TrackingAreaIdList(); + TrackingAreaIdList(const TrackingAreaIdList& other_value); + TrackingAreaIdList(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const TrackingAreaIdList_listOfPartialTais& par_listOfPartialTais); +inline TrackingAreaIdList& operator=(const TrackingAreaIdList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TrackingAreaIdList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TrackingAreaIdList& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline TrackingAreaIdList_listOfPartialTais& listOfPartialTais() + {return field_listOfPartialTais;} + inline const TrackingAreaIdList_listOfPartialTais& listOfPartialTais() const + {return field_listOfPartialTais;} +Base_Type* clone() const { return new TrackingAreaIdList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TrackingAreaIdList_template : public Record_Template { +void set_specific(); +public: +TrackingAreaIdList_template(): Record_Template() {} +TrackingAreaIdList_template(template_sel other_value): Record_Template(other_value) {} +TrackingAreaIdList_template(const TrackingAreaIdList& other_value): Record_Template() { copy_value(&other_value); } +TrackingAreaIdList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TrackingAreaIdList_template(TrackingAreaIdList_template* p_precondition, TrackingAreaIdList_template* p_implied_template); +TrackingAreaIdList_template(Dynamic_Match_Interface* p_dyn_match); +TrackingAreaIdList_template(const TrackingAreaIdList_template& other_value): Record_Template() { copy_template(other_value); } +~TrackingAreaIdList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TrackingAreaIdList_template& operator=(template_sel other_value); +TrackingAreaIdList_template& operator=(const TrackingAreaIdList& other_value); +TrackingAreaIdList_template& operator=(const OPTIONAL& other_value); +TrackingAreaIdList_template& operator=(const TrackingAreaIdList_template& other_value); +inline boolean match(const TrackingAreaIdList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TrackingAreaIdList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TrackingAreaIdList valueof() const; +inline TrackingAreaIdList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +TrackingAreaIdList_listOfPartialTais_template& listOfPartialTais(); +const TrackingAreaIdList_listOfPartialTais_template& listOfPartialTais() const; +Record_Template* create() const { return new TrackingAreaIdList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__AttachResult : public Record_Type { + BITSTRING field_spare; + BITSTRING field_resultValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + EPS__AttachResult(); + EPS__AttachResult(const EPS__AttachResult& other_value); + EPS__AttachResult(const BITSTRING& par_spare, + const BITSTRING& par_resultValue); +inline EPS__AttachResult& operator=(const EPS__AttachResult& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__AttachResult& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__AttachResult& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& resultValue() + {return field_resultValue;} + inline const BITSTRING& resultValue() const + {return field_resultValue;} +Base_Type* clone() const { return new EPS__AttachResult(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__AttachResult_template : public Record_Template { +void set_specific(); +public: +EPS__AttachResult_template(): Record_Template() {} +EPS__AttachResult_template(template_sel other_value): Record_Template(other_value) {} +EPS__AttachResult_template(const EPS__AttachResult& other_value): Record_Template() { copy_value(&other_value); } +EPS__AttachResult_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__AttachResult_template(EPS__AttachResult_template* p_precondition, EPS__AttachResult_template* p_implied_template); +EPS__AttachResult_template(Dynamic_Match_Interface* p_dyn_match); +EPS__AttachResult_template(const EPS__AttachResult_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__AttachResult_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__AttachResult_template& operator=(template_sel other_value); +EPS__AttachResult_template& operator=(const EPS__AttachResult& other_value); +EPS__AttachResult_template& operator=(const OPTIONAL& other_value); +EPS__AttachResult_template& operator=(const EPS__AttachResult_template& other_value); +inline boolean match(const EPS__AttachResult& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__AttachResult& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__AttachResult valueof() const; +inline EPS__AttachResult_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& resultValue(); +const BITSTRING_template& resultValue() const; +Record_Template* create() const { return new EPS__AttachResult_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ESM__MessageContainer : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_esmPdu; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ESM__MessageContainer(); + ESM__MessageContainer(const ESM__MessageContainer& other_value); + ESM__MessageContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_esmPdu); +inline ESM__MessageContainer& operator=(const ESM__MessageContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ESM__MessageContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ESM__MessageContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& esmPdu() + {return field_esmPdu;} + inline const OCTETSTRING& esmPdu() const + {return field_esmPdu;} +Base_Type* clone() const { return new ESM__MessageContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ESM__MessageContainer_template : public Record_Template { +void set_specific(); +public: +ESM__MessageContainer_template(): Record_Template() {} +ESM__MessageContainer_template(template_sel other_value): Record_Template(other_value) {} +ESM__MessageContainer_template(const ESM__MessageContainer& other_value): Record_Template() { copy_value(&other_value); } +ESM__MessageContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ESM__MessageContainer_template(ESM__MessageContainer_template* p_precondition, ESM__MessageContainer_template* p_implied_template); +ESM__MessageContainer_template(Dynamic_Match_Interface* p_dyn_match); +ESM__MessageContainer_template(const ESM__MessageContainer_template& other_value): Record_Template() { copy_template(other_value); } +~ESM__MessageContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ESM__MessageContainer_template& operator=(template_sel other_value); +ESM__MessageContainer_template& operator=(const ESM__MessageContainer& other_value); +ESM__MessageContainer_template& operator=(const OPTIONAL& other_value); +ESM__MessageContainer_template& operator=(const ESM__MessageContainer_template& other_value); +inline boolean match(const ESM__MessageContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ESM__MessageContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ESM__MessageContainer valueof() const; +inline ESM__MessageContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& esmPdu(); +const OCTETSTRING_template& esmPdu() const; +Record_Template* create() const { return new ESM__MessageContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ATTACH__ACCEPT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet; + EPS__AttachResult field_epsAttachResult; + NAS__CommonTypeDefs::GPRS__Timer field_t3412; + TrackingAreaIdList field_taiList; + ESM__MessageContainer field_esmMessage; + OPTIONAL field_guti; + OPTIONAL field_lai; + OPTIONAL field_msIdentity; + OPTIONAL field_emmCause; + OPTIONAL field_t3402; + OPTIONAL field_t3423; + OPTIONAL field_equivalentPlmns; + OPTIONAL field_emergencyNumberList; + OPTIONAL field_epsNetworkFeatureSupport; + OPTIONAL field_addUpdateResult; + OPTIONAL field_t3412ExtdValue; + OPTIONAL field_t3324Value; + OPTIONAL field_extendedDRXParams; + OPTIONAL field_dcnId; + OPTIONAL field_smsServicesStatus; + OPTIONAL field_non3GPP__NW__ProvidedPolicies; + OPTIONAL field_t3448; + OPTIONAL field_networkPolicy; + OPTIONAL field_t3447Value; + OPTIONAL field_xtdEmergencyNumList; + OPTIONAL field_cipheringKeyData; + OPTIONAL field_ueRadioCapId; + OPTIONAL field_ueRadioCapIdDeleteInd; + OPTIONAL field_negotiatedWUSAssistInfo; + OPTIONAL field_negotiatedDRXinNB__S1; + OPTIONAL field_negotiatedIMSI__Offset; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[36]; + void init_vec(); +public: + ATTACH__ACCEPT(); + ATTACH__ACCEPT(const ATTACH__ACCEPT& other_value); + ATTACH__ACCEPT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const EPS__AttachResult& par_epsAttachResult, + const NAS__CommonTypeDefs::GPRS__Timer& par_t3412, + const TrackingAreaIdList& par_taiList, + const ESM__MessageContainer& par_esmMessage, + const OPTIONAL& par_guti, + const OPTIONAL& par_lai, + const OPTIONAL& par_msIdentity, + const OPTIONAL& par_emmCause, + const OPTIONAL& par_t3402, + const OPTIONAL& par_t3423, + const OPTIONAL& par_equivalentPlmns, + const OPTIONAL& par_emergencyNumberList, + const OPTIONAL& par_epsNetworkFeatureSupport, + const OPTIONAL& par_addUpdateResult, + const OPTIONAL& par_t3412ExtdValue, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_extendedDRXParams, + const OPTIONAL& par_dcnId, + const OPTIONAL& par_smsServicesStatus, + const OPTIONAL& par_non3GPP__NW__ProvidedPolicies, + const OPTIONAL& par_t3448, + const OPTIONAL& par_networkPolicy, + const OPTIONAL& par_t3447Value, + const OPTIONAL& par_xtdEmergencyNumList, + const OPTIONAL& par_cipheringKeyData, + const OPTIONAL& par_ueRadioCapId, + const OPTIONAL& par_ueRadioCapIdDeleteInd, + const OPTIONAL& par_negotiatedWUSAssistInfo, + const OPTIONAL& par_negotiatedDRXinNB__S1, + const OPTIONAL& par_negotiatedIMSI__Offset, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline ATTACH__ACCEPT& operator=(const ATTACH__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ATTACH__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ATTACH__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline EPS__AttachResult& epsAttachResult() + {return field_epsAttachResult;} + inline const EPS__AttachResult& epsAttachResult() const + {return field_epsAttachResult;} + inline NAS__CommonTypeDefs::GPRS__Timer& t3412() + {return field_t3412;} + inline const NAS__CommonTypeDefs::GPRS__Timer& t3412() const + {return field_t3412;} + inline TrackingAreaIdList& taiList() + {return field_taiList;} + inline const TrackingAreaIdList& taiList() const + {return field_taiList;} + inline ESM__MessageContainer& esmMessage() + {return field_esmMessage;} + inline const ESM__MessageContainer& esmMessage() const + {return field_esmMessage;} + inline OPTIONAL& guti() + {return field_guti;} + inline const OPTIONAL& guti() const + {return field_guti;} + inline OPTIONAL& lai() + {return field_lai;} + inline const OPTIONAL& lai() const + {return field_lai;} + inline OPTIONAL& msIdentity() + {return field_msIdentity;} + inline const OPTIONAL& msIdentity() const + {return field_msIdentity;} + inline OPTIONAL& emmCause() + {return field_emmCause;} + inline const OPTIONAL& emmCause() const + {return field_emmCause;} + inline OPTIONAL& t3402() + {return field_t3402;} + inline const OPTIONAL& t3402() const + {return field_t3402;} + inline OPTIONAL& t3423() + {return field_t3423;} + inline const OPTIONAL& t3423() const + {return field_t3423;} + inline OPTIONAL& equivalentPlmns() + {return field_equivalentPlmns;} + inline const OPTIONAL& equivalentPlmns() const + {return field_equivalentPlmns;} + inline OPTIONAL& emergencyNumberList() + {return field_emergencyNumberList;} + inline const OPTIONAL& emergencyNumberList() const + {return field_emergencyNumberList;} + inline OPTIONAL& epsNetworkFeatureSupport() + {return field_epsNetworkFeatureSupport;} + inline const OPTIONAL& epsNetworkFeatureSupport() const + {return field_epsNetworkFeatureSupport;} + inline OPTIONAL& addUpdateResult() + {return field_addUpdateResult;} + inline const OPTIONAL& addUpdateResult() const + {return field_addUpdateResult;} + inline OPTIONAL& t3412ExtdValue() + {return field_t3412ExtdValue;} + inline const OPTIONAL& t3412ExtdValue() const + {return field_t3412ExtdValue;} + inline OPTIONAL& t3324Value() + {return field_t3324Value;} + inline const OPTIONAL& t3324Value() const + {return field_t3324Value;} + inline OPTIONAL& extendedDRXParams() + {return field_extendedDRXParams;} + inline const OPTIONAL& extendedDRXParams() const + {return field_extendedDRXParams;} + inline OPTIONAL& dcnId() + {return field_dcnId;} + inline const OPTIONAL& dcnId() const + {return field_dcnId;} + inline OPTIONAL& smsServicesStatus() + {return field_smsServicesStatus;} + inline const OPTIONAL& smsServicesStatus() const + {return field_smsServicesStatus;} + inline OPTIONAL& non3GPP__NW__ProvidedPolicies() + {return field_non3GPP__NW__ProvidedPolicies;} + inline const OPTIONAL& non3GPP__NW__ProvidedPolicies() const + {return field_non3GPP__NW__ProvidedPolicies;} + inline OPTIONAL& t3448() + {return field_t3448;} + inline const OPTIONAL& t3448() const + {return field_t3448;} + inline OPTIONAL& networkPolicy() + {return field_networkPolicy;} + inline const OPTIONAL& networkPolicy() const + {return field_networkPolicy;} + inline OPTIONAL& t3447Value() + {return field_t3447Value;} + inline const OPTIONAL& t3447Value() const + {return field_t3447Value;} + inline OPTIONAL& xtdEmergencyNumList() + {return field_xtdEmergencyNumList;} + inline const OPTIONAL& xtdEmergencyNumList() const + {return field_xtdEmergencyNumList;} + inline OPTIONAL& cipheringKeyData() + {return field_cipheringKeyData;} + inline const OPTIONAL& cipheringKeyData() const + {return field_cipheringKeyData;} + inline OPTIONAL& ueRadioCapId() + {return field_ueRadioCapId;} + inline const OPTIONAL& ueRadioCapId() const + {return field_ueRadioCapId;} + inline OPTIONAL& ueRadioCapIdDeleteInd() + {return field_ueRadioCapIdDeleteInd;} + inline const OPTIONAL& ueRadioCapIdDeleteInd() const + {return field_ueRadioCapIdDeleteInd;} + inline OPTIONAL& negotiatedWUSAssistInfo() + {return field_negotiatedWUSAssistInfo;} + inline const OPTIONAL& negotiatedWUSAssistInfo() const + {return field_negotiatedWUSAssistInfo;} + inline OPTIONAL& negotiatedDRXinNB__S1() + {return field_negotiatedDRXinNB__S1;} + inline const OPTIONAL& negotiatedDRXinNB__S1() const + {return field_negotiatedDRXinNB__S1;} + inline OPTIONAL& negotiatedIMSI__Offset() + {return field_negotiatedIMSI__Offset;} + inline const OPTIONAL& negotiatedIMSI__Offset() const + {return field_negotiatedIMSI__Offset;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new ATTACH__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 36; } +int optional_count() const { return 28; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ATTACH__ACCEPT_template : public Record_Template { +void set_specific(); +public: +ATTACH__ACCEPT_template(): Record_Template() {} +ATTACH__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +ATTACH__ACCEPT_template(const ATTACH__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +ATTACH__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ATTACH__ACCEPT_template(ATTACH__ACCEPT_template* p_precondition, ATTACH__ACCEPT_template* p_implied_template); +ATTACH__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +ATTACH__ACCEPT_template(const ATTACH__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~ATTACH__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ATTACH__ACCEPT_template& operator=(template_sel other_value); +ATTACH__ACCEPT_template& operator=(const ATTACH__ACCEPT& other_value); +ATTACH__ACCEPT_template& operator=(const OPTIONAL& other_value); +ATTACH__ACCEPT_template& operator=(const ATTACH__ACCEPT_template& other_value); +inline boolean match(const ATTACH__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ATTACH__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ATTACH__ACCEPT valueof() const; +inline ATTACH__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +EPS__AttachResult_template& epsAttachResult(); +const EPS__AttachResult_template& epsAttachResult() const; +NAS__CommonTypeDefs::GPRS__Timer_template& t3412(); +const NAS__CommonTypeDefs::GPRS__Timer_template& t3412() const; +TrackingAreaIdList_template& taiList(); +const TrackingAreaIdList_template& taiList() const; +ESM__MessageContainer_template& esmMessage(); +const ESM__MessageContainer_template& esmMessage() const; +NAS__CommonTypeDefs::MobileIdentity_template& guti(); +const NAS__CommonTypeDefs::MobileIdentity_template& guti() const; +NAS__CommonTypeDefs::LocAreaId_template& lai(); +const NAS__CommonTypeDefs::LocAreaId_template& lai() const; +NAS__CommonTypeDefs::MobileIdentity_template& msIdentity(); +const NAS__CommonTypeDefs::MobileIdentity_template& msIdentity() const; +EMM__Cause_template& emmCause(); +const EMM__Cause_template& emmCause() const; +NAS__CommonTypeDefs::GPRS__Timer_template& t3402(); +const NAS__CommonTypeDefs::GPRS__Timer_template& t3402() const; +NAS__CommonTypeDefs::GPRS__Timer_template& t3423(); +const NAS__CommonTypeDefs::GPRS__Timer_template& t3423() const; +NAS__CommonTypeDefs::PLMN__List_template& equivalentPlmns(); +const NAS__CommonTypeDefs::PLMN__List_template& equivalentPlmns() const; +NAS__CommonTypeDefs::EmergNumList_template& emergencyNumberList(); +const NAS__CommonTypeDefs::EmergNumList_template& emergencyNumberList() const; +EPS__NetworkFeatureSupport_template& epsNetworkFeatureSupport(); +const EPS__NetworkFeatureSupport_template& epsNetworkFeatureSupport() const; +AdditionalUpdateResult_template& addUpdateResult(); +const AdditionalUpdateResult_template& addUpdateResult() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3412ExtdValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3412ExtdValue() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value() const; +NAS__CommonTypeDefs::ExtdDRXParams_template& extendedDRXParams(); +const NAS__CommonTypeDefs::ExtdDRXParams_template& extendedDRXParams() const; +NAS__CommonTypeDefs::DCN__ID_template& dcnId(); +const NAS__CommonTypeDefs::DCN__ID_template& dcnId() const; +SMSServicesStatus_template& smsServicesStatus(); +const SMSServicesStatus_template& smsServicesStatus() const; +NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& non3GPP__NW__ProvidedPolicies(); +const NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& non3GPP__NW__ProvidedPolicies() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3448(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3448() const; +NetworkPolicy_template& networkPolicy(); +const NetworkPolicy_template& networkPolicy() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3447Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3447Value() const; +NAS__CommonTypeDefs::ExtdEmergNumList_template& xtdEmergencyNumList(); +const NAS__CommonTypeDefs::ExtdEmergNumList_template& xtdEmergencyNumList() const; +CipheringKeyData_template& cipheringKeyData(); +const CipheringKeyData_template& cipheringKeyData() const; +NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapId(); +const NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapId() const; +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeleteInd(); +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeleteInd() const; +NAS__CommonTypeDefs::WUSAssistInfo_template& negotiatedWUSAssistInfo(); +const NAS__CommonTypeDefs::WUSAssistInfo_template& negotiatedWUSAssistInfo() const; +NAS__CommonTypeDefs::DRXParamCommon_template& negotiatedDRXinNB__S1(); +const NAS__CommonTypeDefs::DRXParamCommon_template& negotiatedDRXinNB__S1() const; +IMSI__Offset_template& negotiatedIMSI__Offset(); +const IMSI__Offset_template& negotiatedIMSI__Offset() const; +TrackingAreaIdList_template& forbidTAIList__Roaming(); +const TrackingAreaIdList_template& forbidTAIList__Roaming() const; +TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new ATTACH__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EMM__Cause : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_causeValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + EMM__Cause(); + EMM__Cause(const EMM__Cause& other_value); + EMM__Cause(const OPTIONAL& par_iei, + const BITSTRING& par_causeValue); +inline EMM__Cause& operator=(const EMM__Cause& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EMM__Cause& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EMM__Cause& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& causeValue() + {return field_causeValue;} + inline const BITSTRING& causeValue() const + {return field_causeValue;} +Base_Type* clone() const { return new EMM__Cause(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EMM__Cause_template : public Record_Template { +void set_specific(); +public: +EMM__Cause_template(): Record_Template() {} +EMM__Cause_template(template_sel other_value): Record_Template(other_value) {} +EMM__Cause_template(const EMM__Cause& other_value): Record_Template() { copy_value(&other_value); } +EMM__Cause_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EMM__Cause_template(EMM__Cause_template* p_precondition, EMM__Cause_template* p_implied_template); +EMM__Cause_template(Dynamic_Match_Interface* p_dyn_match); +EMM__Cause_template(const EMM__Cause_template& other_value): Record_Template() { copy_template(other_value); } +~EMM__Cause_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EMM__Cause_template& operator=(template_sel other_value); +EMM__Cause_template& operator=(const EMM__Cause& other_value); +EMM__Cause_template& operator=(const OPTIONAL& other_value); +EMM__Cause_template& operator=(const EMM__Cause_template& other_value); +inline boolean match(const EMM__Cause& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EMM__Cause& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EMM__Cause valueof() const; +inline EMM__Cause_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& causeValue(); +const BITSTRING_template& causeValue() const; +Record_Template* create() const { return new EMM__Cause_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__NetworkFeatureSupport : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_cp__CIOT; + BITSTRING field_emmRegistered__withoutPDN; + BITSTRING field_esrps; + BITSTRING field_csLCS; + BITSTRING field_epcLCS; + BITSTRING field_emcBS; + BITSTRING field_imsVoPS; + OPTIONAL field_bearers15; + OPTIONAL field_iwkN26; + OPTIONAL field_restrictDCNR; + OPTIONAL field_restrictEC; + OPTIONAL field_extdPCO; + OPTIONAL field_headerComp__CP__CIOT; + OPTIONAL field_s1__U__data; + OPTIONAL field_up__CIOT; + OPTIONAL field_spare; + OPTIONAL field_ptcc; + OPTIONAL field_pr; + OPTIONAL field_rpr; + OPTIONAL field_piv; + OPTIONAL field_ncr; + Base_Type* fld_vec[23]; + void init_vec(); +public: + EPS__NetworkFeatureSupport(); + EPS__NetworkFeatureSupport(const EPS__NetworkFeatureSupport& other_value); + EPS__NetworkFeatureSupport(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_cp__CIOT, + const BITSTRING& par_emmRegistered__withoutPDN, + const BITSTRING& par_esrps, + const BITSTRING& par_csLCS, + const BITSTRING& par_epcLCS, + const BITSTRING& par_emcBS, + const BITSTRING& par_imsVoPS, + const OPTIONAL& par_bearers15, + const OPTIONAL& par_iwkN26, + const OPTIONAL& par_restrictDCNR, + const OPTIONAL& par_restrictEC, + const OPTIONAL& par_extdPCO, + const OPTIONAL& par_headerComp__CP__CIOT, + const OPTIONAL& par_s1__U__data, + const OPTIONAL& par_up__CIOT, + const OPTIONAL& par_spare, + const OPTIONAL& par_ptcc, + const OPTIONAL& par_pr, + const OPTIONAL& par_rpr, + const OPTIONAL& par_piv, + const OPTIONAL& par_ncr); +inline EPS__NetworkFeatureSupport& operator=(const EPS__NetworkFeatureSupport& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__NetworkFeatureSupport& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__NetworkFeatureSupport& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& cp__CIOT() + {return field_cp__CIOT;} + inline const BITSTRING& cp__CIOT() const + {return field_cp__CIOT;} + inline BITSTRING& emmRegistered__withoutPDN() + {return field_emmRegistered__withoutPDN;} + inline const BITSTRING& emmRegistered__withoutPDN() const + {return field_emmRegistered__withoutPDN;} + inline BITSTRING& esrps() + {return field_esrps;} + inline const BITSTRING& esrps() const + {return field_esrps;} + inline BITSTRING& csLCS() + {return field_csLCS;} + inline const BITSTRING& csLCS() const + {return field_csLCS;} + inline BITSTRING& epcLCS() + {return field_epcLCS;} + inline const BITSTRING& epcLCS() const + {return field_epcLCS;} + inline BITSTRING& emcBS() + {return field_emcBS;} + inline const BITSTRING& emcBS() const + {return field_emcBS;} + inline BITSTRING& imsVoPS() + {return field_imsVoPS;} + inline const BITSTRING& imsVoPS() const + {return field_imsVoPS;} + inline OPTIONAL& bearers15() + {return field_bearers15;} + inline const OPTIONAL& bearers15() const + {return field_bearers15;} + inline OPTIONAL& iwkN26() + {return field_iwkN26;} + inline const OPTIONAL& iwkN26() const + {return field_iwkN26;} + inline OPTIONAL& restrictDCNR() + {return field_restrictDCNR;} + inline const OPTIONAL& restrictDCNR() const + {return field_restrictDCNR;} + inline OPTIONAL& restrictEC() + {return field_restrictEC;} + inline const OPTIONAL& restrictEC() const + {return field_restrictEC;} + inline OPTIONAL& extdPCO() + {return field_extdPCO;} + inline const OPTIONAL& extdPCO() const + {return field_extdPCO;} + inline OPTIONAL& headerComp__CP__CIOT() + {return field_headerComp__CP__CIOT;} + inline const OPTIONAL& headerComp__CP__CIOT() const + {return field_headerComp__CP__CIOT;} + inline OPTIONAL& s1__U__data() + {return field_s1__U__data;} + inline const OPTIONAL& s1__U__data() const + {return field_s1__U__data;} + inline OPTIONAL& up__CIOT() + {return field_up__CIOT;} + inline const OPTIONAL& up__CIOT() const + {return field_up__CIOT;} + inline OPTIONAL& spare() + {return field_spare;} + inline const OPTIONAL& spare() const + {return field_spare;} + inline OPTIONAL& ptcc() + {return field_ptcc;} + inline const OPTIONAL& ptcc() const + {return field_ptcc;} + inline OPTIONAL& pr() + {return field_pr;} + inline const OPTIONAL& pr() const + {return field_pr;} + inline OPTIONAL& rpr() + {return field_rpr;} + inline const OPTIONAL& rpr() const + {return field_rpr;} + inline OPTIONAL& piv() + {return field_piv;} + inline const OPTIONAL& piv() const + {return field_piv;} + inline OPTIONAL& ncr() + {return field_ncr;} + inline const OPTIONAL& ncr() const + {return field_ncr;} +Base_Type* clone() const { return new EPS__NetworkFeatureSupport(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 23; } +int optional_count() const { return 16; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__NetworkFeatureSupport_template : public Record_Template { +void set_specific(); +public: +EPS__NetworkFeatureSupport_template(): Record_Template() {} +EPS__NetworkFeatureSupport_template(template_sel other_value): Record_Template(other_value) {} +EPS__NetworkFeatureSupport_template(const EPS__NetworkFeatureSupport& other_value): Record_Template() { copy_value(&other_value); } +EPS__NetworkFeatureSupport_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__NetworkFeatureSupport_template(EPS__NetworkFeatureSupport_template* p_precondition, EPS__NetworkFeatureSupport_template* p_implied_template); +EPS__NetworkFeatureSupport_template(Dynamic_Match_Interface* p_dyn_match); +EPS__NetworkFeatureSupport_template(const EPS__NetworkFeatureSupport_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__NetworkFeatureSupport_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__NetworkFeatureSupport_template& operator=(template_sel other_value); +EPS__NetworkFeatureSupport_template& operator=(const EPS__NetworkFeatureSupport& other_value); +EPS__NetworkFeatureSupport_template& operator=(const OPTIONAL& other_value); +EPS__NetworkFeatureSupport_template& operator=(const EPS__NetworkFeatureSupport_template& other_value); +inline boolean match(const EPS__NetworkFeatureSupport& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__NetworkFeatureSupport& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__NetworkFeatureSupport valueof() const; +inline EPS__NetworkFeatureSupport_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& cp__CIOT(); +const BITSTRING_template& cp__CIOT() const; +BITSTRING_template& emmRegistered__withoutPDN(); +const BITSTRING_template& emmRegistered__withoutPDN() const; +BITSTRING_template& esrps(); +const BITSTRING_template& esrps() const; +BITSTRING_template& csLCS(); +const BITSTRING_template& csLCS() const; +BITSTRING_template& epcLCS(); +const BITSTRING_template& epcLCS() const; +BITSTRING_template& emcBS(); +const BITSTRING_template& emcBS() const; +BITSTRING_template& imsVoPS(); +const BITSTRING_template& imsVoPS() const; +BITSTRING_template& bearers15(); +const BITSTRING_template& bearers15() const; +BITSTRING_template& iwkN26(); +const BITSTRING_template& iwkN26() const; +BITSTRING_template& restrictDCNR(); +const BITSTRING_template& restrictDCNR() const; +BITSTRING_template& restrictEC(); +const BITSTRING_template& restrictEC() const; +BITSTRING_template& extdPCO(); +const BITSTRING_template& extdPCO() const; +BITSTRING_template& headerComp__CP__CIOT(); +const BITSTRING_template& headerComp__CP__CIOT() const; +BITSTRING_template& s1__U__data(); +const BITSTRING_template& s1__U__data() const; +BITSTRING_template& up__CIOT(); +const BITSTRING_template& up__CIOT() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& ptcc(); +const BITSTRING_template& ptcc() const; +BITSTRING_template& pr(); +const BITSTRING_template& pr() const; +BITSTRING_template& rpr(); +const BITSTRING_template& rpr() const; +BITSTRING_template& piv(); +const BITSTRING_template& piv() const; +BITSTRING_template& ncr(); +const BITSTRING_template& ncr() const; +Record_Template* create() const { return new EPS__NetworkFeatureSupport_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AdditionalUpdateResult : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spareBits; + BITSTRING field_addUpdateResultValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AdditionalUpdateResult(); + AdditionalUpdateResult(const AdditionalUpdateResult& other_value); + AdditionalUpdateResult(const HEXSTRING& par_iei, + const BITSTRING& par_spareBits, + const BITSTRING& par_addUpdateResultValue); +inline AdditionalUpdateResult& operator=(const AdditionalUpdateResult& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AdditionalUpdateResult& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AdditionalUpdateResult& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& addUpdateResultValue() + {return field_addUpdateResultValue;} + inline const BITSTRING& addUpdateResultValue() const + {return field_addUpdateResultValue;} +Base_Type* clone() const { return new AdditionalUpdateResult(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AdditionalUpdateResult_template : public Record_Template { +void set_specific(); +public: +AdditionalUpdateResult_template(): Record_Template() {} +AdditionalUpdateResult_template(template_sel other_value): Record_Template(other_value) {} +AdditionalUpdateResult_template(const AdditionalUpdateResult& other_value): Record_Template() { copy_value(&other_value); } +AdditionalUpdateResult_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AdditionalUpdateResult_template(AdditionalUpdateResult_template* p_precondition, AdditionalUpdateResult_template* p_implied_template); +AdditionalUpdateResult_template(Dynamic_Match_Interface* p_dyn_match); +AdditionalUpdateResult_template(const AdditionalUpdateResult_template& other_value): Record_Template() { copy_template(other_value); } +~AdditionalUpdateResult_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AdditionalUpdateResult_template& operator=(template_sel other_value); +AdditionalUpdateResult_template& operator=(const AdditionalUpdateResult& other_value); +AdditionalUpdateResult_template& operator=(const OPTIONAL& other_value); +AdditionalUpdateResult_template& operator=(const AdditionalUpdateResult_template& other_value); +inline boolean match(const AdditionalUpdateResult& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AdditionalUpdateResult& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AdditionalUpdateResult valueof() const; +inline AdditionalUpdateResult_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& addUpdateResultValue(); +const BITSTRING_template& addUpdateResultValue() const; +Record_Template* create() const { return new AdditionalUpdateResult_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SMSServicesStatus : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_smsServicesStatusValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SMSServicesStatus(); + SMSServicesStatus(const SMSServicesStatus& other_value); + SMSServicesStatus(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_smsServicesStatusValue); +inline SMSServicesStatus& operator=(const SMSServicesStatus& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SMSServicesStatus& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SMSServicesStatus& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& smsServicesStatusValue() + {return field_smsServicesStatusValue;} + inline const BITSTRING& smsServicesStatusValue() const + {return field_smsServicesStatusValue;} +Base_Type* clone() const { return new SMSServicesStatus(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SMSServicesStatus_template : public Record_Template { +void set_specific(); +public: +SMSServicesStatus_template(): Record_Template() {} +SMSServicesStatus_template(template_sel other_value): Record_Template(other_value) {} +SMSServicesStatus_template(const SMSServicesStatus& other_value): Record_Template() { copy_value(&other_value); } +SMSServicesStatus_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SMSServicesStatus_template(SMSServicesStatus_template* p_precondition, SMSServicesStatus_template* p_implied_template); +SMSServicesStatus_template(Dynamic_Match_Interface* p_dyn_match); +SMSServicesStatus_template(const SMSServicesStatus_template& other_value): Record_Template() { copy_template(other_value); } +~SMSServicesStatus_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SMSServicesStatus_template& operator=(template_sel other_value); +SMSServicesStatus_template& operator=(const SMSServicesStatus& other_value); +SMSServicesStatus_template& operator=(const OPTIONAL& other_value); +SMSServicesStatus_template& operator=(const SMSServicesStatus_template& other_value); +inline boolean match(const SMSServicesStatus& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SMSServicesStatus& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SMSServicesStatus valueof() const; +inline SMSServicesStatus_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& smsServicesStatusValue(); +const BITSTRING_template& smsServicesStatusValue() const; +Record_Template* create() const { return new SMSServicesStatus_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NetworkPolicy : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_redirPolicy; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NetworkPolicy(); + NetworkPolicy(const NetworkPolicy& other_value); + NetworkPolicy(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_redirPolicy); +inline NetworkPolicy& operator=(const NetworkPolicy& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NetworkPolicy& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NetworkPolicy& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& redirPolicy() + {return field_redirPolicy;} + inline const BITSTRING& redirPolicy() const + {return field_redirPolicy;} +Base_Type* clone() const { return new NetworkPolicy(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NetworkPolicy_template : public Record_Template { +void set_specific(); +public: +NetworkPolicy_template(): Record_Template() {} +NetworkPolicy_template(template_sel other_value): Record_Template(other_value) {} +NetworkPolicy_template(const NetworkPolicy& other_value): Record_Template() { copy_value(&other_value); } +NetworkPolicy_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NetworkPolicy_template(NetworkPolicy_template* p_precondition, NetworkPolicy_template* p_implied_template); +NetworkPolicy_template(Dynamic_Match_Interface* p_dyn_match); +NetworkPolicy_template(const NetworkPolicy_template& other_value): Record_Template() { copy_template(other_value); } +~NetworkPolicy_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NetworkPolicy_template& operator=(template_sel other_value); +NetworkPolicy_template& operator=(const NetworkPolicy& other_value); +NetworkPolicy_template& operator=(const OPTIONAL& other_value); +NetworkPolicy_template& operator=(const NetworkPolicy_template& other_value); +inline boolean match(const NetworkPolicy& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NetworkPolicy& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NetworkPolicy valueof() const; +inline NetworkPolicy_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& redirPolicy(); +const BITSTRING_template& redirPolicy() const; +Record_Template* create() const { return new NetworkPolicy_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CipheringKeyData_cipherKey : public Record_Of_Type { + +static const CipheringKey UNBOUND_ELEM; + +public: +CipheringKeyData_cipherKey(): Record_Of_Type() {} +CipheringKeyData_cipherKey(null_type other_value): Record_Of_Type(other_value) {} +CipheringKeyData_cipherKey(const CipheringKeyData_cipherKey& other_value): Record_Of_Type(other_value) {} +~CipheringKeyData_cipherKey() { clean_up(); } + +inline CipheringKeyData_cipherKey& operator=(null_type other_value) { set_val(other_value); return *this; } +inline CipheringKeyData_cipherKey& operator=(const CipheringKeyData_cipherKey& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CipheringKeyData_cipherKey& other_value) const { return is_equal(&other_value); } +boolean operator!=(const CipheringKeyData_cipherKey& other_value) const { return !is_equal(&other_value); } +CipheringKey& operator[](int index_value); +CipheringKey& operator[](const INTEGER& index_value); +const CipheringKey& operator[](int index_value) const; +const CipheringKey& operator[](const INTEGER& index_value) const; +CipheringKeyData_cipherKey operator<<=(int rotate_count) const; +CipheringKeyData_cipherKey operator<<=(const INTEGER& rotate_count) const; +CipheringKeyData_cipherKey operator>>=(int rotate_count) const; +CipheringKeyData_cipherKey operator>>=(const INTEGER& rotate_count) const; + +CipheringKeyData_cipherKey operator+(const CipheringKeyData_cipherKey& other_value) const; + +CipheringKeyData_cipherKey operator+(const OPTIONAL& other_value) const; + +CipheringKeyData_cipherKey operator+(null_type) const; + +CipheringKeyData_cipherKey substr(int index, int returncount) const; + +CipheringKeyData_cipherKey replace(int index, int len, const CipheringKeyData_cipherKey& repl) const; + +CipheringKeyData_cipherKey replace(int index, int len, const CipheringKeyData_cipherKey_template& repl) const; + +Base_Type* clone() const { return new CipheringKeyData_cipherKey(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class CipheringKeyData_cipherKey_template : public Record_Of_Template { +friend CipheringKeyData_cipherKey_template operator+(template_sel left_template, const CipheringKeyData_cipherKey_template& right_template); +friend CipheringKeyData_cipherKey_template operator+(const CipheringKeyData_cipherKey& left_value, const CipheringKeyData_cipherKey_template& right_template); +friend CipheringKeyData_cipherKey_template operator+(template_sel left_template, const CipheringKeyData_cipherKey& right_value); +friend CipheringKeyData_cipherKey_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend CipheringKeyData_cipherKey_template operator+(const CipheringKeyData_cipherKey& left_value, template_sel right_template); + +public: +CipheringKeyData_cipherKey_template() {} +CipheringKeyData_cipherKey_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +CipheringKeyData_cipherKey_template(null_type other_value); +CipheringKeyData_cipherKey_template(const CipheringKeyData_cipherKey& other_value) { copy_value(&other_value); } +CipheringKeyData_cipherKey_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +CipheringKeyData_cipherKey_template(CipheringKeyData_cipherKey_template* p_precondition, CipheringKeyData_cipherKey_template* p_implied_template); +CipheringKeyData_cipherKey_template(Dynamic_Match_Interface* p_dyn_match); +CipheringKeyData_cipherKey_template(const CipheringKeyData_cipherKey_template& other_value): Record_Of_Template() { copy_template(other_value); } +~CipheringKeyData_cipherKey_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CipheringKeyData_cipherKey_template& operator=(template_sel other_value); +CipheringKeyData_cipherKey_template& operator=(null_type other_value); +CipheringKeyData_cipherKey_template& operator=(const CipheringKeyData_cipherKey& other_value); +CipheringKeyData_cipherKey_template& operator=(const OPTIONAL& other_value); +CipheringKeyData_cipherKey_template& operator=(const CipheringKeyData_cipherKey_template& other_value); + +CipheringKeyData_cipherKey_template operator+(const CipheringKeyData_cipherKey_template& other_value) const; +CipheringKeyData_cipherKey_template operator+(const CipheringKeyData_cipherKey& other_value) const; +CipheringKeyData_cipherKey_template operator+(template_sel other_value) const; +CipheringKeyData_cipherKey_template operator+(null_type) const; + +CipheringKey_template& operator[](int index_value); +CipheringKey_template& operator[](const INTEGER& index_value); +const CipheringKey_template& operator[](int index_value) const; +const CipheringKey_template& operator[](const INTEGER& index_value) const; +inline boolean match(const CipheringKeyData_cipherKey& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +CipheringKeyData_cipherKey valueof() const; +CipheringKeyData_cipherKey substr(int index, int returncount) const; + +CipheringKeyData_cipherKey replace(int index, int len, const CipheringKeyData_cipherKey_template& repl) const; + +CipheringKeyData_cipherKey replace(int index, int len, const CipheringKeyData_cipherKey& repl) const; + +inline CipheringKeyData_cipherKey_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const CipheringKeyData_cipherKey& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new CipheringKeyData_cipherKey_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class CipheringKey : public Record_Type { + OCTETSTRING field_id; + OCTETSTRING field_key; + BITSTRING field_spare; + BITSTRING field_c0Length; + OCTETSTRING field_c0; + BITSTRING field_posSIBType1__1to2__1; + BITSTRING field_posSIBType2__2to9; + BITSTRING field_posSIBType2__10to17; + BITSTRING field_posSIBType2__18to3__1; + OCTETSTRING field_validityStartTime; + OCTETSTRING field_validityDuration; + TrackingAreaIdList field_taiList; + Base_Type* fld_vec[12]; + void init_vec(); +public: + CipheringKey(); + CipheringKey(const CipheringKey& other_value); + CipheringKey(const OCTETSTRING& par_id, + const OCTETSTRING& par_key, + const BITSTRING& par_spare, + const BITSTRING& par_c0Length, + const OCTETSTRING& par_c0, + const BITSTRING& par_posSIBType1__1to2__1, + const BITSTRING& par_posSIBType2__2to9, + const BITSTRING& par_posSIBType2__10to17, + const BITSTRING& par_posSIBType2__18to3__1, + const OCTETSTRING& par_validityStartTime, + const OCTETSTRING& par_validityDuration, + const TrackingAreaIdList& par_taiList); +inline CipheringKey& operator=(const CipheringKey& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CipheringKey& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CipheringKey& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline OCTETSTRING& key() + {return field_key;} + inline const OCTETSTRING& key() const + {return field_key;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& c0Length() + {return field_c0Length;} + inline const BITSTRING& c0Length() const + {return field_c0Length;} + inline OCTETSTRING& c0() + {return field_c0;} + inline const OCTETSTRING& c0() const + {return field_c0;} + inline BITSTRING& posSIBType1__1to2__1() + {return field_posSIBType1__1to2__1;} + inline const BITSTRING& posSIBType1__1to2__1() const + {return field_posSIBType1__1to2__1;} + inline BITSTRING& posSIBType2__2to9() + {return field_posSIBType2__2to9;} + inline const BITSTRING& posSIBType2__2to9() const + {return field_posSIBType2__2to9;} + inline BITSTRING& posSIBType2__10to17() + {return field_posSIBType2__10to17;} + inline const BITSTRING& posSIBType2__10to17() const + {return field_posSIBType2__10to17;} + inline BITSTRING& posSIBType2__18to3__1() + {return field_posSIBType2__18to3__1;} + inline const BITSTRING& posSIBType2__18to3__1() const + {return field_posSIBType2__18to3__1;} + inline OCTETSTRING& validityStartTime() + {return field_validityStartTime;} + inline const OCTETSTRING& validityStartTime() const + {return field_validityStartTime;} + inline OCTETSTRING& validityDuration() + {return field_validityDuration;} + inline const OCTETSTRING& validityDuration() const + {return field_validityDuration;} + inline TrackingAreaIdList& taiList() + {return field_taiList;} + inline const TrackingAreaIdList& taiList() const + {return field_taiList;} +Base_Type* clone() const { return new CipheringKey(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 12; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CipheringKey_template : public Record_Template { +void set_specific(); +public: +CipheringKey_template(): Record_Template() {} +CipheringKey_template(template_sel other_value): Record_Template(other_value) {} +CipheringKey_template(const CipheringKey& other_value): Record_Template() { copy_value(&other_value); } +CipheringKey_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CipheringKey_template(CipheringKey_template* p_precondition, CipheringKey_template* p_implied_template); +CipheringKey_template(Dynamic_Match_Interface* p_dyn_match); +CipheringKey_template(const CipheringKey_template& other_value): Record_Template() { copy_template(other_value); } +~CipheringKey_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CipheringKey_template& operator=(template_sel other_value); +CipheringKey_template& operator=(const CipheringKey& other_value); +CipheringKey_template& operator=(const OPTIONAL& other_value); +CipheringKey_template& operator=(const CipheringKey_template& other_value); +inline boolean match(const CipheringKey& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CipheringKey& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CipheringKey valueof() const; +inline CipheringKey_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +OCTETSTRING_template& key(); +const OCTETSTRING_template& key() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& c0Length(); +const BITSTRING_template& c0Length() const; +OCTETSTRING_template& c0(); +const OCTETSTRING_template& c0() const; +BITSTRING_template& posSIBType1__1to2__1(); +const BITSTRING_template& posSIBType1__1to2__1() const; +BITSTRING_template& posSIBType2__2to9(); +const BITSTRING_template& posSIBType2__2to9() const; +BITSTRING_template& posSIBType2__10to17(); +const BITSTRING_template& posSIBType2__10to17() const; +BITSTRING_template& posSIBType2__18to3__1(); +const BITSTRING_template& posSIBType2__18to3__1() const; +OCTETSTRING_template& validityStartTime(); +const OCTETSTRING_template& validityStartTime() const; +OCTETSTRING_template& validityDuration(); +const OCTETSTRING_template& validityDuration() const; +TrackingAreaIdList_template& taiList(); +const TrackingAreaIdList_template& taiList() const; +Record_Template* create() const { return new CipheringKey_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CipheringKeyData : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + CipheringKeyData_cipherKey field_cipherKey; + Base_Type* fld_vec[3]; + void init_vec(); +public: + CipheringKeyData(); + CipheringKeyData(const CipheringKeyData& other_value); + CipheringKeyData(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const CipheringKeyData_cipherKey& par_cipherKey); +inline CipheringKeyData& operator=(const CipheringKeyData& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CipheringKeyData& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CipheringKeyData& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline CipheringKeyData_cipherKey& cipherKey() + {return field_cipherKey;} + inline const CipheringKeyData_cipherKey& cipherKey() const + {return field_cipherKey;} +Base_Type* clone() const { return new CipheringKeyData(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CipheringKeyData_template : public Record_Template { +void set_specific(); +public: +CipheringKeyData_template(): Record_Template() {} +CipheringKeyData_template(template_sel other_value): Record_Template(other_value) {} +CipheringKeyData_template(const CipheringKeyData& other_value): Record_Template() { copy_value(&other_value); } +CipheringKeyData_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CipheringKeyData_template(CipheringKeyData_template* p_precondition, CipheringKeyData_template* p_implied_template); +CipheringKeyData_template(Dynamic_Match_Interface* p_dyn_match); +CipheringKeyData_template(const CipheringKeyData_template& other_value): Record_Template() { copy_template(other_value); } +~CipheringKeyData_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CipheringKeyData_template& operator=(template_sel other_value); +CipheringKeyData_template& operator=(const CipheringKeyData& other_value); +CipheringKeyData_template& operator=(const OPTIONAL& other_value); +CipheringKeyData_template& operator=(const CipheringKeyData_template& other_value); +inline boolean match(const CipheringKeyData& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CipheringKeyData& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CipheringKeyData valueof() const; +inline CipheringKeyData_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +CipheringKeyData_cipherKey_template& cipherKey(); +const CipheringKeyData_cipherKey_template& cipherKey() const; +Record_Template* create() const { return new CipheringKeyData_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IMSI__Offset : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_offsetValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + IMSI__Offset(); + IMSI__Offset(const IMSI__Offset& other_value); + IMSI__Offset(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_offsetValue); +inline IMSI__Offset& operator=(const IMSI__Offset& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IMSI__Offset& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IMSI__Offset& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& offsetValue() + {return field_offsetValue;} + inline const OCTETSTRING& offsetValue() const + {return field_offsetValue;} +Base_Type* clone() const { return new IMSI__Offset(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IMSI__Offset_template : public Record_Template { +void set_specific(); +public: +IMSI__Offset_template(): Record_Template() {} +IMSI__Offset_template(template_sel other_value): Record_Template(other_value) {} +IMSI__Offset_template(const IMSI__Offset& other_value): Record_Template() { copy_value(&other_value); } +IMSI__Offset_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IMSI__Offset_template(IMSI__Offset_template* p_precondition, IMSI__Offset_template* p_implied_template); +IMSI__Offset_template(Dynamic_Match_Interface* p_dyn_match); +IMSI__Offset_template(const IMSI__Offset_template& other_value): Record_Template() { copy_template(other_value); } +~IMSI__Offset_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IMSI__Offset_template& operator=(template_sel other_value); +IMSI__Offset_template& operator=(const IMSI__Offset& other_value); +IMSI__Offset_template& operator=(const OPTIONAL& other_value); +IMSI__Offset_template& operator=(const IMSI__Offset_template& other_value); +inline boolean match(const IMSI__Offset& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IMSI__Offset& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IMSI__Offset valueof() const; +inline IMSI__Offset_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& offsetValue(); +const OCTETSTRING_template& offsetValue() const; +Record_Template* create() const { return new IMSI__Offset_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ATTACH__COMPLETE : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + ESM__MessageContainer field_esmMessage; + Base_Type* fld_vec[4]; + void init_vec(); +public: + ATTACH__COMPLETE(); + ATTACH__COMPLETE(const ATTACH__COMPLETE& other_value); + ATTACH__COMPLETE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const ESM__MessageContainer& par_esmMessage); +inline ATTACH__COMPLETE& operator=(const ATTACH__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ATTACH__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ATTACH__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__MessageContainer& esmMessage() + {return field_esmMessage;} + inline const ESM__MessageContainer& esmMessage() const + {return field_esmMessage;} +Base_Type* clone() const { return new ATTACH__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ATTACH__COMPLETE_template : public Record_Template { +void set_specific(); +public: +ATTACH__COMPLETE_template(): Record_Template() {} +ATTACH__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +ATTACH__COMPLETE_template(const ATTACH__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +ATTACH__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ATTACH__COMPLETE_template(ATTACH__COMPLETE_template* p_precondition, ATTACH__COMPLETE_template* p_implied_template); +ATTACH__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +ATTACH__COMPLETE_template(const ATTACH__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~ATTACH__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ATTACH__COMPLETE_template& operator=(template_sel other_value); +ATTACH__COMPLETE_template& operator=(const ATTACH__COMPLETE& other_value); +ATTACH__COMPLETE_template& operator=(const OPTIONAL& other_value); +ATTACH__COMPLETE_template& operator=(const ATTACH__COMPLETE_template& other_value); +inline boolean match(const ATTACH__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ATTACH__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ATTACH__COMPLETE valueof() const; +inline ATTACH__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__MessageContainer_template& esmMessage(); +const ESM__MessageContainer_template& esmMessage() const; +Record_Template* create() const { return new ATTACH__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ATTACH__REJECT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + EMM__Cause field_emmCause; + OPTIONAL field_esmMessage; + OPTIONAL field_t3346; + OPTIONAL field_t3402; + OPTIONAL field_extdEMMCause; + OPTIONAL field_lowerBoundTimerValue; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[11]; + void init_vec(); +public: + ATTACH__REJECT(); + ATTACH__REJECT(const ATTACH__REJECT& other_value); + ATTACH__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause, + const OPTIONAL& par_esmMessage, + const OPTIONAL& par_t3346, + const OPTIONAL& par_t3402, + const OPTIONAL& par_extdEMMCause, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline ATTACH__REJECT& operator=(const ATTACH__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ATTACH__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ATTACH__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline EMM__Cause& emmCause() + {return field_emmCause;} + inline const EMM__Cause& emmCause() const + {return field_emmCause;} + inline OPTIONAL& esmMessage() + {return field_esmMessage;} + inline const OPTIONAL& esmMessage() const + {return field_esmMessage;} + inline OPTIONAL& t3346() + {return field_t3346;} + inline const OPTIONAL& t3346() const + {return field_t3346;} + inline OPTIONAL& t3402() + {return field_t3402;} + inline const OPTIONAL& t3402() const + {return field_t3402;} + inline OPTIONAL& extdEMMCause() + {return field_extdEMMCause;} + inline const OPTIONAL& extdEMMCause() const + {return field_extdEMMCause;} + inline OPTIONAL& lowerBoundTimerValue() + {return field_lowerBoundTimerValue;} + inline const OPTIONAL& lowerBoundTimerValue() const + {return field_lowerBoundTimerValue;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new ATTACH__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 11; } +int optional_count() const { return 7; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ATTACH__REJECT_template : public Record_Template { +void set_specific(); +public: +ATTACH__REJECT_template(): Record_Template() {} +ATTACH__REJECT_template(template_sel other_value): Record_Template(other_value) {} +ATTACH__REJECT_template(const ATTACH__REJECT& other_value): Record_Template() { copy_value(&other_value); } +ATTACH__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ATTACH__REJECT_template(ATTACH__REJECT_template* p_precondition, ATTACH__REJECT_template* p_implied_template); +ATTACH__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +ATTACH__REJECT_template(const ATTACH__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~ATTACH__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ATTACH__REJECT_template& operator=(template_sel other_value); +ATTACH__REJECT_template& operator=(const ATTACH__REJECT& other_value); +ATTACH__REJECT_template& operator=(const OPTIONAL& other_value); +ATTACH__REJECT_template& operator=(const ATTACH__REJECT_template& other_value); +inline boolean match(const ATTACH__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ATTACH__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ATTACH__REJECT valueof() const; +inline ATTACH__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EMM__Cause_template& emmCause(); +const EMM__Cause_template& emmCause() const; +ESM__MessageContainer_template& esmMessage(); +const ESM__MessageContainer_template& esmMessage() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3346(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3346() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3402(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3402() const; +Extd__EMM__Cause_template& extdEMMCause(); +const Extd__EMM__Cause_template& extdEMMCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue() const; +TrackingAreaIdList_template& forbidTAIList__Roaming(); +const TrackingAreaIdList_template& forbidTAIList__Roaming() const; +TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new ATTACH__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Extd__EMM__Cause : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_nbIoTAllowed; + BITSTRING field_epsOptimizationInfo; + BITSTRING field_eutranAllowed; + Base_Type* fld_vec[5]; + void init_vec(); +public: + Extd__EMM__Cause(); + Extd__EMM__Cause(const Extd__EMM__Cause& other_value); + Extd__EMM__Cause(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_nbIoTAllowed, + const BITSTRING& par_epsOptimizationInfo, + const BITSTRING& par_eutranAllowed); +inline Extd__EMM__Cause& operator=(const Extd__EMM__Cause& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Extd__EMM__Cause& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Extd__EMM__Cause& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& nbIoTAllowed() + {return field_nbIoTAllowed;} + inline const BITSTRING& nbIoTAllowed() const + {return field_nbIoTAllowed;} + inline BITSTRING& epsOptimizationInfo() + {return field_epsOptimizationInfo;} + inline const BITSTRING& epsOptimizationInfo() const + {return field_epsOptimizationInfo;} + inline BITSTRING& eutranAllowed() + {return field_eutranAllowed;} + inline const BITSTRING& eutranAllowed() const + {return field_eutranAllowed;} +Base_Type* clone() const { return new Extd__EMM__Cause(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Extd__EMM__Cause_template : public Record_Template { +void set_specific(); +public: +Extd__EMM__Cause_template(): Record_Template() {} +Extd__EMM__Cause_template(template_sel other_value): Record_Template(other_value) {} +Extd__EMM__Cause_template(const Extd__EMM__Cause& other_value): Record_Template() { copy_value(&other_value); } +Extd__EMM__Cause_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Extd__EMM__Cause_template(Extd__EMM__Cause_template* p_precondition, Extd__EMM__Cause_template* p_implied_template); +Extd__EMM__Cause_template(Dynamic_Match_Interface* p_dyn_match); +Extd__EMM__Cause_template(const Extd__EMM__Cause_template& other_value): Record_Template() { copy_template(other_value); } +~Extd__EMM__Cause_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Extd__EMM__Cause_template& operator=(template_sel other_value); +Extd__EMM__Cause_template& operator=(const Extd__EMM__Cause& other_value); +Extd__EMM__Cause_template& operator=(const OPTIONAL& other_value); +Extd__EMM__Cause_template& operator=(const Extd__EMM__Cause_template& other_value); +inline boolean match(const Extd__EMM__Cause& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Extd__EMM__Cause& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Extd__EMM__Cause valueof() const; +inline Extd__EMM__Cause_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& nbIoTAllowed(); +const BITSTRING_template& nbIoTAllowed() const; +BITSTRING_template& epsOptimizationInfo(); +const BITSTRING_template& epsOptimizationInfo() const; +BITSTRING_template& eutranAllowed(); +const BITSTRING_template& eutranAllowed() const; +Record_Template* create() const { return new Extd__EMM__Cause_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__AttachType : public Record_Type { + BITSTRING field_spare; + BITSTRING field_typeValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + EPS__AttachType(); + EPS__AttachType(const EPS__AttachType& other_value); + EPS__AttachType(const BITSTRING& par_spare, + const BITSTRING& par_typeValue); +inline EPS__AttachType& operator=(const EPS__AttachType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__AttachType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__AttachType& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& typeValue() + {return field_typeValue;} + inline const BITSTRING& typeValue() const + {return field_typeValue;} +Base_Type* clone() const { return new EPS__AttachType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__AttachType_template : public Record_Template { +void set_specific(); +public: +EPS__AttachType_template(): Record_Template() {} +EPS__AttachType_template(template_sel other_value): Record_Template(other_value) {} +EPS__AttachType_template(const EPS__AttachType& other_value): Record_Template() { copy_value(&other_value); } +EPS__AttachType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__AttachType_template(EPS__AttachType_template* p_precondition, EPS__AttachType_template* p_implied_template); +EPS__AttachType_template(Dynamic_Match_Interface* p_dyn_match); +EPS__AttachType_template(const EPS__AttachType_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__AttachType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__AttachType_template& operator=(template_sel other_value); +EPS__AttachType_template& operator=(const EPS__AttachType& other_value); +EPS__AttachType_template& operator=(const OPTIONAL& other_value); +EPS__AttachType_template& operator=(const EPS__AttachType_template& other_value); +inline boolean match(const EPS__AttachType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__AttachType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__AttachType valueof() const; +inline EPS__AttachType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& typeValue(); +const BITSTRING_template& typeValue() const; +Record_Template* create() const { return new EPS__AttachType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ATTACH__REQUEST : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_nasKeySetId; + EPS__AttachType field_epsAttachType; + NAS__CommonTypeDefs::MobileIdentity field_epsMobileIdentity; + NAS__CommonTypeDefs::UE__NetworkCap field_ueNetworkCapability; + ESM__MessageContainer field_esmMessage; + OPTIONAL field_oldPtmsiSignature; + OPTIONAL field_additionalGuti; + OPTIONAL field_lastVisitedRegisteredTai; + OPTIONAL field_drxParameter; + OPTIONAL field_msNetworkCapability; + OPTIONAL field_oldLai; + OPTIONAL field_tmsiStatus; + OPTIONAL field_msClassmark2; + OPTIONAL field_msClassmark3; + OPTIONAL field_supportedCodecList; + OPTIONAL field_addUpdateType; + OPTIONAL field_voiceDomainPref; + OPTIONAL field_deviceProperties; + OPTIONAL field_oldGUTI__Type; + OPTIONAL field_msNetworkFeatureSupport; + OPTIONAL field_tmsiBasedNRIContainer; + OPTIONAL field_t3324Value; + OPTIONAL field_t3412ExtdValue; + OPTIONAL field_extendedDRXParams; + OPTIONAL field_ueAddSecurityCap; + OPTIONAL field_ueStatus; + OPTIONAL field_addInfoReq; + OPTIONAL field_n1UENetworkCap; + OPTIONAL field_ueRadioCapIdAvailability; + OPTIONAL field_requestedWUSAssistInfo; + OPTIONAL field_drxInNB__S1; + OPTIONAL field_requestedIMSI__Offset; + Base_Type* fld_vec[35]; + void init_vec(); +public: + ATTACH__REQUEST(); + ATTACH__REQUEST(const ATTACH__REQUEST& other_value); + ATTACH__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_nasKeySetId, + const EPS__AttachType& par_epsAttachType, + const NAS__CommonTypeDefs::MobileIdentity& par_epsMobileIdentity, + const NAS__CommonTypeDefs::UE__NetworkCap& par_ueNetworkCapability, + const ESM__MessageContainer& par_esmMessage, + const OPTIONAL& par_oldPtmsiSignature, + const OPTIONAL& par_additionalGuti, + const OPTIONAL& par_lastVisitedRegisteredTai, + const OPTIONAL& par_drxParameter, + const OPTIONAL& par_msNetworkCapability, + const OPTIONAL& par_oldLai, + const OPTIONAL& par_tmsiStatus, + const OPTIONAL& par_msClassmark2, + const OPTIONAL& par_msClassmark3, + const OPTIONAL& par_supportedCodecList, + const OPTIONAL& par_addUpdateType, + const OPTIONAL& par_voiceDomainPref, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_oldGUTI__Type, + const OPTIONAL& par_msNetworkFeatureSupport, + const OPTIONAL& par_tmsiBasedNRIContainer, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_t3412ExtdValue, + const OPTIONAL& par_extendedDRXParams, + const OPTIONAL& par_ueAddSecurityCap, + const OPTIONAL& par_ueStatus, + const OPTIONAL& par_addInfoReq, + const OPTIONAL& par_n1UENetworkCap, + const OPTIONAL& par_ueRadioCapIdAvailability, + const OPTIONAL& par_requestedWUSAssistInfo, + const OPTIONAL& par_drxInNB__S1, + const OPTIONAL& par_requestedIMSI__Offset); +inline ATTACH__REQUEST& operator=(const ATTACH__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ATTACH__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ATTACH__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& nasKeySetId() + {return field_nasKeySetId;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& nasKeySetId() const + {return field_nasKeySetId;} + inline EPS__AttachType& epsAttachType() + {return field_epsAttachType;} + inline const EPS__AttachType& epsAttachType() const + {return field_epsAttachType;} + inline NAS__CommonTypeDefs::MobileIdentity& epsMobileIdentity() + {return field_epsMobileIdentity;} + inline const NAS__CommonTypeDefs::MobileIdentity& epsMobileIdentity() const + {return field_epsMobileIdentity;} + inline NAS__CommonTypeDefs::UE__NetworkCap& ueNetworkCapability() + {return field_ueNetworkCapability;} + inline const NAS__CommonTypeDefs::UE__NetworkCap& ueNetworkCapability() const + {return field_ueNetworkCapability;} + inline ESM__MessageContainer& esmMessage() + {return field_esmMessage;} + inline const ESM__MessageContainer& esmMessage() const + {return field_esmMessage;} + inline OPTIONAL& oldPtmsiSignature() + {return field_oldPtmsiSignature;} + inline const OPTIONAL& oldPtmsiSignature() const + {return field_oldPtmsiSignature;} + inline OPTIONAL& additionalGuti() + {return field_additionalGuti;} + inline const OPTIONAL& additionalGuti() const + {return field_additionalGuti;} + inline OPTIONAL& lastVisitedRegisteredTai() + {return field_lastVisitedRegisteredTai;} + inline const OPTIONAL& lastVisitedRegisteredTai() const + {return field_lastVisitedRegisteredTai;} + inline OPTIONAL& drxParameter() + {return field_drxParameter;} + inline const OPTIONAL& drxParameter() const + {return field_drxParameter;} + inline OPTIONAL& msNetworkCapability() + {return field_msNetworkCapability;} + inline const OPTIONAL& msNetworkCapability() const + {return field_msNetworkCapability;} + inline OPTIONAL& oldLai() + {return field_oldLai;} + inline const OPTIONAL& oldLai() const + {return field_oldLai;} + inline OPTIONAL& tmsiStatus() + {return field_tmsiStatus;} + inline const OPTIONAL& tmsiStatus() const + {return field_tmsiStatus;} + inline OPTIONAL& msClassmark2() + {return field_msClassmark2;} + inline const OPTIONAL& msClassmark2() const + {return field_msClassmark2;} + inline OPTIONAL& msClassmark3() + {return field_msClassmark3;} + inline const OPTIONAL& msClassmark3() const + {return field_msClassmark3;} + inline OPTIONAL& supportedCodecList() + {return field_supportedCodecList;} + inline const OPTIONAL& supportedCodecList() const + {return field_supportedCodecList;} + inline OPTIONAL& addUpdateType() + {return field_addUpdateType;} + inline const OPTIONAL& addUpdateType() const + {return field_addUpdateType;} + inline OPTIONAL& voiceDomainPref() + {return field_voiceDomainPref;} + inline const OPTIONAL& voiceDomainPref() const + {return field_voiceDomainPref;} + inline OPTIONAL& deviceProperties() + {return field_deviceProperties;} + inline const OPTIONAL& deviceProperties() const + {return field_deviceProperties;} + inline OPTIONAL& oldGUTI__Type() + {return field_oldGUTI__Type;} + inline const OPTIONAL& oldGUTI__Type() const + {return field_oldGUTI__Type;} + inline OPTIONAL& msNetworkFeatureSupport() + {return field_msNetworkFeatureSupport;} + inline const OPTIONAL& msNetworkFeatureSupport() const + {return field_msNetworkFeatureSupport;} + inline OPTIONAL& tmsiBasedNRIContainer() + {return field_tmsiBasedNRIContainer;} + inline const OPTIONAL& tmsiBasedNRIContainer() const + {return field_tmsiBasedNRIContainer;} + inline OPTIONAL& t3324Value() + {return field_t3324Value;} + inline const OPTIONAL& t3324Value() const + {return field_t3324Value;} + inline OPTIONAL& t3412ExtdValue() + {return field_t3412ExtdValue;} + inline const OPTIONAL& t3412ExtdValue() const + {return field_t3412ExtdValue;} + inline OPTIONAL& extendedDRXParams() + {return field_extendedDRXParams;} + inline const OPTIONAL& extendedDRXParams() const + {return field_extendedDRXParams;} + inline OPTIONAL& ueAddSecurityCap() + {return field_ueAddSecurityCap;} + inline const OPTIONAL& ueAddSecurityCap() const + {return field_ueAddSecurityCap;} + inline OPTIONAL& ueStatus() + {return field_ueStatus;} + inline const OPTIONAL& ueStatus() const + {return field_ueStatus;} + inline OPTIONAL& addInfoReq() + {return field_addInfoReq;} + inline const OPTIONAL& addInfoReq() const + {return field_addInfoReq;} + inline OPTIONAL& n1UENetworkCap() + {return field_n1UENetworkCap;} + inline const OPTIONAL& n1UENetworkCap() const + {return field_n1UENetworkCap;} + inline OPTIONAL& ueRadioCapIdAvailability() + {return field_ueRadioCapIdAvailability;} + inline const OPTIONAL& ueRadioCapIdAvailability() const + {return field_ueRadioCapIdAvailability;} + inline OPTIONAL& requestedWUSAssistInfo() + {return field_requestedWUSAssistInfo;} + inline const OPTIONAL& requestedWUSAssistInfo() const + {return field_requestedWUSAssistInfo;} + inline OPTIONAL& drxInNB__S1() + {return field_drxInNB__S1;} + inline const OPTIONAL& drxInNB__S1() const + {return field_drxInNB__S1;} + inline OPTIONAL& requestedIMSI__Offset() + {return field_requestedIMSI__Offset;} + inline const OPTIONAL& requestedIMSI__Offset() const + {return field_requestedIMSI__Offset;} +Base_Type* clone() const { return new ATTACH__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 35; } +int optional_count() const { return 27; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ATTACH__REQUEST_template : public Record_Template { +void set_specific(); +public: +ATTACH__REQUEST_template(): Record_Template() {} +ATTACH__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +ATTACH__REQUEST_template(const ATTACH__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +ATTACH__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ATTACH__REQUEST_template(ATTACH__REQUEST_template* p_precondition, ATTACH__REQUEST_template* p_implied_template); +ATTACH__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +ATTACH__REQUEST_template(const ATTACH__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~ATTACH__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ATTACH__REQUEST_template& operator=(template_sel other_value); +ATTACH__REQUEST_template& operator=(const ATTACH__REQUEST& other_value); +ATTACH__REQUEST_template& operator=(const OPTIONAL& other_value); +ATTACH__REQUEST_template& operator=(const ATTACH__REQUEST_template& other_value); +inline boolean match(const ATTACH__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ATTACH__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ATTACH__REQUEST valueof() const; +inline ATTACH__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nasKeySetId() const; +EPS__AttachType_template& epsAttachType(); +const EPS__AttachType_template& epsAttachType() const; +NAS__CommonTypeDefs::MobileIdentity_template& epsMobileIdentity(); +const NAS__CommonTypeDefs::MobileIdentity_template& epsMobileIdentity() const; +NAS__CommonTypeDefs::UE__NetworkCap_template& ueNetworkCapability(); +const NAS__CommonTypeDefs::UE__NetworkCap_template& ueNetworkCapability() const; +ESM__MessageContainer_template& esmMessage(); +const ESM__MessageContainer_template& esmMessage() const; +NAS__CommonTypeDefs::PTMSI__Signature_template& oldPtmsiSignature(); +const NAS__CommonTypeDefs::PTMSI__Signature_template& oldPtmsiSignature() const; +NAS__CommonTypeDefs::MobileIdentity_template& additionalGuti(); +const NAS__CommonTypeDefs::MobileIdentity_template& additionalGuti() const; +TrackingAreaId_template& lastVisitedRegisteredTai(); +const TrackingAreaId_template& lastVisitedRegisteredTai() const; +NAS__CommonTypeDefs::DRXparameter_template& drxParameter(); +const NAS__CommonTypeDefs::DRXparameter_template& drxParameter() const; +NAS__CommonTypeDefs::MS__NetworkCap_template& msNetworkCapability(); +const NAS__CommonTypeDefs::MS__NetworkCap_template& msNetworkCapability() const; +NAS__CommonTypeDefs::LocAreaId_template& oldLai(); +const NAS__CommonTypeDefs::LocAreaId_template& oldLai() const; +NAS__CommonTypeDefs::TMSI__Status_template& tmsiStatus(); +const NAS__CommonTypeDefs::TMSI__Status_template& tmsiStatus() const; +NAS__CommonTypeDefs::MS__Clsmk2_template& msClassmark2(); +const NAS__CommonTypeDefs::MS__Clsmk2_template& msClassmark2() const; +NAS__CommonTypeDefs::MS__Clsmk3_template& msClassmark3(); +const NAS__CommonTypeDefs::MS__Clsmk3_template& msClassmark3() const; +NAS__CommonTypeDefs::CodecList_template& supportedCodecList(); +const NAS__CommonTypeDefs::CodecList_template& supportedCodecList() const; +NAS__CommonTypeDefs::AdditionalUpdateType_template& addUpdateType(); +const NAS__CommonTypeDefs::AdditionalUpdateType_template& addUpdateType() const; +NAS__CommonTypeDefs::VoiceDomainPref_template& voiceDomainPref(); +const NAS__CommonTypeDefs::VoiceDomainPref_template& voiceDomainPref() const; +NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties(); +const NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties() const; +GUTI__Type_template& oldGUTI__Type(); +const GUTI__Type_template& oldGUTI__Type() const; +NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template& msNetworkFeatureSupport(); +const NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template& msNetworkFeatureSupport() const; +NAS__CommonTypeDefs::NwkResourceId_template& tmsiBasedNRIContainer(); +const NAS__CommonTypeDefs::NwkResourceId_template& tmsiBasedNRIContainer() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3412ExtdValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3412ExtdValue() const; +NAS__CommonTypeDefs::ExtdDRXParams_template& extendedDRXParams(); +const NAS__CommonTypeDefs::ExtdDRXParams_template& extendedDRXParams() const; +UE__AdditionalSecurityCapability_template& ueAddSecurityCap(); +const UE__AdditionalSecurityCapability_template& ueAddSecurityCap() const; +NAS__CommonTypeDefs::UE__Status_template& ueStatus(); +const NAS__CommonTypeDefs::UE__Status_template& ueStatus() const; +AdditionalInfoReq_template& addInfoReq(); +const AdditionalInfoReq_template& addInfoReq() const; +N1__UENetworkCap_template& n1UENetworkCap(); +const N1__UENetworkCap_template& n1UENetworkCap() const; +UERadioCapIdAvailability_template& ueRadioCapIdAvailability(); +const UERadioCapIdAvailability_template& ueRadioCapIdAvailability() const; +NAS__CommonTypeDefs::WUSAssistInfo_template& requestedWUSAssistInfo(); +const NAS__CommonTypeDefs::WUSAssistInfo_template& requestedWUSAssistInfo() const; +NAS__CommonTypeDefs::DRXParamCommon_template& drxInNB__S1(); +const NAS__CommonTypeDefs::DRXParamCommon_template& drxInNB__S1() const; +IMSI__Offset_template& requestedIMSI__Offset(); +const IMSI__Offset_template& requestedIMSI__Offset() const; +Record_Template* create() const { return new ATTACH__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class GUTI__Type : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_gutiType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + GUTI__Type(); + GUTI__Type(const GUTI__Type& other_value); + GUTI__Type(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_gutiType); +inline GUTI__Type& operator=(const GUTI__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const GUTI__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const GUTI__Type& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& gutiType() + {return field_gutiType;} + inline const BITSTRING& gutiType() const + {return field_gutiType;} +Base_Type* clone() const { return new GUTI__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class GUTI__Type_template : public Record_Template { +void set_specific(); +public: +GUTI__Type_template(): Record_Template() {} +GUTI__Type_template(template_sel other_value): Record_Template(other_value) {} +GUTI__Type_template(const GUTI__Type& other_value): Record_Template() { copy_value(&other_value); } +GUTI__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +GUTI__Type_template(GUTI__Type_template* p_precondition, GUTI__Type_template* p_implied_template); +GUTI__Type_template(Dynamic_Match_Interface* p_dyn_match); +GUTI__Type_template(const GUTI__Type_template& other_value): Record_Template() { copy_template(other_value); } +~GUTI__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +GUTI__Type_template& operator=(template_sel other_value); +GUTI__Type_template& operator=(const GUTI__Type& other_value); +GUTI__Type_template& operator=(const OPTIONAL& other_value); +GUTI__Type_template& operator=(const GUTI__Type_template& other_value); +inline boolean match(const GUTI__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const GUTI__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +GUTI__Type valueof() const; +inline GUTI__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& gutiType(); +const BITSTRING_template& gutiType() const; +Record_Template* create() const { return new GUTI__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__AdditionalSecurityCapability : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_eaCap5G__0__7; + OCTETSTRING field_eaCap5G__8__15; + OCTETSTRING field_iaCap5G__0__7; + OCTETSTRING field_iaCap5G__8__15; + Base_Type* fld_vec[6]; + void init_vec(); +public: + UE__AdditionalSecurityCapability(); + UE__AdditionalSecurityCapability(const UE__AdditionalSecurityCapability& other_value); + UE__AdditionalSecurityCapability(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_eaCap5G__0__7, + const OCTETSTRING& par_eaCap5G__8__15, + const OCTETSTRING& par_iaCap5G__0__7, + const OCTETSTRING& par_iaCap5G__8__15); +inline UE__AdditionalSecurityCapability& operator=(const UE__AdditionalSecurityCapability& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__AdditionalSecurityCapability& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__AdditionalSecurityCapability& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& eaCap5G__0__7() + {return field_eaCap5G__0__7;} + inline const OCTETSTRING& eaCap5G__0__7() const + {return field_eaCap5G__0__7;} + inline OCTETSTRING& eaCap5G__8__15() + {return field_eaCap5G__8__15;} + inline const OCTETSTRING& eaCap5G__8__15() const + {return field_eaCap5G__8__15;} + inline OCTETSTRING& iaCap5G__0__7() + {return field_iaCap5G__0__7;} + inline const OCTETSTRING& iaCap5G__0__7() const + {return field_iaCap5G__0__7;} + inline OCTETSTRING& iaCap5G__8__15() + {return field_iaCap5G__8__15;} + inline const OCTETSTRING& iaCap5G__8__15() const + {return field_iaCap5G__8__15;} +Base_Type* clone() const { return new UE__AdditionalSecurityCapability(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__AdditionalSecurityCapability_template : public Record_Template { +void set_specific(); +public: +UE__AdditionalSecurityCapability_template(): Record_Template() {} +UE__AdditionalSecurityCapability_template(template_sel other_value): Record_Template(other_value) {} +UE__AdditionalSecurityCapability_template(const UE__AdditionalSecurityCapability& other_value): Record_Template() { copy_value(&other_value); } +UE__AdditionalSecurityCapability_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__AdditionalSecurityCapability_template(UE__AdditionalSecurityCapability_template* p_precondition, UE__AdditionalSecurityCapability_template* p_implied_template); +UE__AdditionalSecurityCapability_template(Dynamic_Match_Interface* p_dyn_match); +UE__AdditionalSecurityCapability_template(const UE__AdditionalSecurityCapability_template& other_value): Record_Template() { copy_template(other_value); } +~UE__AdditionalSecurityCapability_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__AdditionalSecurityCapability_template& operator=(template_sel other_value); +UE__AdditionalSecurityCapability_template& operator=(const UE__AdditionalSecurityCapability& other_value); +UE__AdditionalSecurityCapability_template& operator=(const OPTIONAL& other_value); +UE__AdditionalSecurityCapability_template& operator=(const UE__AdditionalSecurityCapability_template& other_value); +inline boolean match(const UE__AdditionalSecurityCapability& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__AdditionalSecurityCapability& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__AdditionalSecurityCapability valueof() const; +inline UE__AdditionalSecurityCapability_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& eaCap5G__0__7(); +const OCTETSTRING_template& eaCap5G__0__7() const; +OCTETSTRING_template& eaCap5G__8__15(); +const OCTETSTRING_template& eaCap5G__8__15() const; +OCTETSTRING_template& iaCap5G__0__7(); +const OCTETSTRING_template& iaCap5G__0__7() const; +OCTETSTRING_template& iaCap5G__8__15(); +const OCTETSTRING_template& iaCap5G__8__15() const; +Record_Template* create() const { return new UE__AdditionalSecurityCapability_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AdditionalInfoReq : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_cipherKey; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AdditionalInfoReq(); + AdditionalInfoReq(const AdditionalInfoReq& other_value); + AdditionalInfoReq(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_cipherKey); +inline AdditionalInfoReq& operator=(const AdditionalInfoReq& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AdditionalInfoReq& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AdditionalInfoReq& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& cipherKey() + {return field_cipherKey;} + inline const BITSTRING& cipherKey() const + {return field_cipherKey;} +Base_Type* clone() const { return new AdditionalInfoReq(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AdditionalInfoReq_template : public Record_Template { +void set_specific(); +public: +AdditionalInfoReq_template(): Record_Template() {} +AdditionalInfoReq_template(template_sel other_value): Record_Template(other_value) {} +AdditionalInfoReq_template(const AdditionalInfoReq& other_value): Record_Template() { copy_value(&other_value); } +AdditionalInfoReq_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AdditionalInfoReq_template(AdditionalInfoReq_template* p_precondition, AdditionalInfoReq_template* p_implied_template); +AdditionalInfoReq_template(Dynamic_Match_Interface* p_dyn_match); +AdditionalInfoReq_template(const AdditionalInfoReq_template& other_value): Record_Template() { copy_template(other_value); } +~AdditionalInfoReq_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AdditionalInfoReq_template& operator=(template_sel other_value); +AdditionalInfoReq_template& operator=(const AdditionalInfoReq& other_value); +AdditionalInfoReq_template& operator=(const OPTIONAL& other_value); +AdditionalInfoReq_template& operator=(const AdditionalInfoReq_template& other_value); +inline boolean match(const AdditionalInfoReq& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AdditionalInfoReq& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AdditionalInfoReq valueof() const; +inline AdditionalInfoReq_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& cipherKey(); +const BITSTRING_template& cipherKey() const; +Record_Template* create() const { return new AdditionalInfoReq_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class N1__UENetworkCap : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare; + BITSTRING field_ehc__CP__CIoT; + BITSTRING field_ngPNB__CIoT; + BITSTRING field_ngUP__CIoT; + BITSTRING field_ngHC__CP__CIoT; + BITSTRING field_n3Data; + BITSTRING field_ngCP__CIoT; + Base_Type* fld_vec[9]; + void init_vec(); +public: + N1__UENetworkCap(); + N1__UENetworkCap(const N1__UENetworkCap& other_value); + N1__UENetworkCap(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_ehc__CP__CIoT, + const BITSTRING& par_ngPNB__CIoT, + const BITSTRING& par_ngUP__CIoT, + const BITSTRING& par_ngHC__CP__CIoT, + const BITSTRING& par_n3Data, + const BITSTRING& par_ngCP__CIoT); +inline N1__UENetworkCap& operator=(const N1__UENetworkCap& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const N1__UENetworkCap& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const N1__UENetworkCap& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& ehc__CP__CIoT() + {return field_ehc__CP__CIoT;} + inline const BITSTRING& ehc__CP__CIoT() const + {return field_ehc__CP__CIoT;} + inline BITSTRING& ngPNB__CIoT() + {return field_ngPNB__CIoT;} + inline const BITSTRING& ngPNB__CIoT() const + {return field_ngPNB__CIoT;} + inline BITSTRING& ngUP__CIoT() + {return field_ngUP__CIoT;} + inline const BITSTRING& ngUP__CIoT() const + {return field_ngUP__CIoT;} + inline BITSTRING& ngHC__CP__CIoT() + {return field_ngHC__CP__CIoT;} + inline const BITSTRING& ngHC__CP__CIoT() const + {return field_ngHC__CP__CIoT;} + inline BITSTRING& n3Data() + {return field_n3Data;} + inline const BITSTRING& n3Data() const + {return field_n3Data;} + inline BITSTRING& ngCP__CIoT() + {return field_ngCP__CIoT;} + inline const BITSTRING& ngCP__CIoT() const + {return field_ngCP__CIoT;} +Base_Type* clone() const { return new N1__UENetworkCap(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 9; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class N1__UENetworkCap_template : public Record_Template { +void set_specific(); +public: +N1__UENetworkCap_template(): Record_Template() {} +N1__UENetworkCap_template(template_sel other_value): Record_Template(other_value) {} +N1__UENetworkCap_template(const N1__UENetworkCap& other_value): Record_Template() { copy_value(&other_value); } +N1__UENetworkCap_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +N1__UENetworkCap_template(N1__UENetworkCap_template* p_precondition, N1__UENetworkCap_template* p_implied_template); +N1__UENetworkCap_template(Dynamic_Match_Interface* p_dyn_match); +N1__UENetworkCap_template(const N1__UENetworkCap_template& other_value): Record_Template() { copy_template(other_value); } +~N1__UENetworkCap_template(); +boolean match_dynamic(const Base_Type* match_value) const; +N1__UENetworkCap_template& operator=(template_sel other_value); +N1__UENetworkCap_template& operator=(const N1__UENetworkCap& other_value); +N1__UENetworkCap_template& operator=(const OPTIONAL& other_value); +N1__UENetworkCap_template& operator=(const N1__UENetworkCap_template& other_value); +inline boolean match(const N1__UENetworkCap& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const N1__UENetworkCap& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +N1__UENetworkCap valueof() const; +inline N1__UENetworkCap_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& ehc__CP__CIoT(); +const BITSTRING_template& ehc__CP__CIoT() const; +BITSTRING_template& ngPNB__CIoT(); +const BITSTRING_template& ngPNB__CIoT() const; +BITSTRING_template& ngUP__CIoT(); +const BITSTRING_template& ngUP__CIoT() const; +BITSTRING_template& ngHC__CP__CIoT(); +const BITSTRING_template& ngHC__CP__CIoT() const; +BITSTRING_template& n3Data(); +const BITSTRING_template& n3Data() const; +BITSTRING_template& ngCP__CIoT(); +const BITSTRING_template& ngCP__CIoT() const; +Record_Template* create() const { return new N1__UENetworkCap_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UERadioCapIdAvailability : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_availability; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UERadioCapIdAvailability(); + UERadioCapIdAvailability(const UERadioCapIdAvailability& other_value); + UERadioCapIdAvailability(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_availability); +inline UERadioCapIdAvailability& operator=(const UERadioCapIdAvailability& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UERadioCapIdAvailability& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UERadioCapIdAvailability& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& availability() + {return field_availability;} + inline const BITSTRING& availability() const + {return field_availability;} +Base_Type* clone() const { return new UERadioCapIdAvailability(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UERadioCapIdAvailability_template : public Record_Template { +void set_specific(); +public: +UERadioCapIdAvailability_template(): Record_Template() {} +UERadioCapIdAvailability_template(template_sel other_value): Record_Template(other_value) {} +UERadioCapIdAvailability_template(const UERadioCapIdAvailability& other_value): Record_Template() { copy_value(&other_value); } +UERadioCapIdAvailability_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UERadioCapIdAvailability_template(UERadioCapIdAvailability_template* p_precondition, UERadioCapIdAvailability_template* p_implied_template); +UERadioCapIdAvailability_template(Dynamic_Match_Interface* p_dyn_match); +UERadioCapIdAvailability_template(const UERadioCapIdAvailability_template& other_value): Record_Template() { copy_template(other_value); } +~UERadioCapIdAvailability_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UERadioCapIdAvailability_template& operator=(template_sel other_value); +UERadioCapIdAvailability_template& operator=(const UERadioCapIdAvailability& other_value); +UERadioCapIdAvailability_template& operator=(const OPTIONAL& other_value); +UERadioCapIdAvailability_template& operator=(const UERadioCapIdAvailability_template& other_value); +inline boolean match(const UERadioCapIdAvailability& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UERadioCapIdAvailability& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UERadioCapIdAvailability valueof() const; +inline UERadioCapIdAvailability_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& availability(); +const BITSTRING_template& availability() const; +Record_Template* create() const { return new UERadioCapIdAvailability_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AUTHENTICATION__FAILURE : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + EMM__Cause field_emmCause; + OPTIONAL field_authenticationFailureParameter; + Base_Type* fld_vec[5]; + void init_vec(); +public: + AUTHENTICATION__FAILURE(); + AUTHENTICATION__FAILURE(const AUTHENTICATION__FAILURE& other_value); + AUTHENTICATION__FAILURE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause, + const OPTIONAL& par_authenticationFailureParameter); +inline AUTHENTICATION__FAILURE& operator=(const AUTHENTICATION__FAILURE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AUTHENTICATION__FAILURE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AUTHENTICATION__FAILURE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline EMM__Cause& emmCause() + {return field_emmCause;} + inline const EMM__Cause& emmCause() const + {return field_emmCause;} + inline OPTIONAL& authenticationFailureParameter() + {return field_authenticationFailureParameter;} + inline const OPTIONAL& authenticationFailureParameter() const + {return field_authenticationFailureParameter;} +Base_Type* clone() const { return new AUTHENTICATION__FAILURE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AUTHENTICATION__FAILURE_template : public Record_Template { +void set_specific(); +public: +AUTHENTICATION__FAILURE_template(): Record_Template() {} +AUTHENTICATION__FAILURE_template(template_sel other_value): Record_Template(other_value) {} +AUTHENTICATION__FAILURE_template(const AUTHENTICATION__FAILURE& other_value): Record_Template() { copy_value(&other_value); } +AUTHENTICATION__FAILURE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AUTHENTICATION__FAILURE_template(AUTHENTICATION__FAILURE_template* p_precondition, AUTHENTICATION__FAILURE_template* p_implied_template); +AUTHENTICATION__FAILURE_template(Dynamic_Match_Interface* p_dyn_match); +AUTHENTICATION__FAILURE_template(const AUTHENTICATION__FAILURE_template& other_value): Record_Template() { copy_template(other_value); } +~AUTHENTICATION__FAILURE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AUTHENTICATION__FAILURE_template& operator=(template_sel other_value); +AUTHENTICATION__FAILURE_template& operator=(const AUTHENTICATION__FAILURE& other_value); +AUTHENTICATION__FAILURE_template& operator=(const OPTIONAL& other_value); +AUTHENTICATION__FAILURE_template& operator=(const AUTHENTICATION__FAILURE_template& other_value); +inline boolean match(const AUTHENTICATION__FAILURE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AUTHENTICATION__FAILURE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AUTHENTICATION__FAILURE valueof() const; +inline AUTHENTICATION__FAILURE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EMM__Cause_template& emmCause(); +const EMM__Cause_template& emmCause() const; +NAS__CommonTypeDefs::AuthenticationFailureParameter_template& authenticationFailureParameter(); +const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& authenticationFailureParameter() const; +Record_Template* create() const { return new AUTHENTICATION__FAILURE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AUTHENTICATION__REJECT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AUTHENTICATION__REJECT(); + AUTHENTICATION__REJECT(const AUTHENTICATION__REJECT& other_value); + AUTHENTICATION__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline AUTHENTICATION__REJECT& operator=(const AUTHENTICATION__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AUTHENTICATION__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AUTHENTICATION__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new AUTHENTICATION__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AUTHENTICATION__REJECT_template : public Record_Template { +void set_specific(); +public: +AUTHENTICATION__REJECT_template(): Record_Template() {} +AUTHENTICATION__REJECT_template(template_sel other_value): Record_Template(other_value) {} +AUTHENTICATION__REJECT_template(const AUTHENTICATION__REJECT& other_value): Record_Template() { copy_value(&other_value); } +AUTHENTICATION__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AUTHENTICATION__REJECT_template(AUTHENTICATION__REJECT_template* p_precondition, AUTHENTICATION__REJECT_template* p_implied_template); +AUTHENTICATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +AUTHENTICATION__REJECT_template(const AUTHENTICATION__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~AUTHENTICATION__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AUTHENTICATION__REJECT_template& operator=(template_sel other_value); +AUTHENTICATION__REJECT_template& operator=(const AUTHENTICATION__REJECT& other_value); +AUTHENTICATION__REJECT_template& operator=(const OPTIONAL& other_value); +AUTHENTICATION__REJECT_template& operator=(const AUTHENTICATION__REJECT_template& other_value); +inline boolean match(const AUTHENTICATION__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AUTHENTICATION__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AUTHENTICATION__REJECT valueof() const; +inline AUTHENTICATION__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new AUTHENTICATION__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AUTHENTICATION__REQUEST : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_asmeNasKeySetId; + NAS__CommonTypeDefs::RAND field_rand; + NAS__CommonTypeDefs::AUTN field_autn; + Base_Type* fld_vec[7]; + void init_vec(); +public: + AUTHENTICATION__REQUEST(); + AUTHENTICATION__REQUEST(const AUTHENTICATION__REQUEST& other_value); + AUTHENTICATION__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_asmeNasKeySetId, + const NAS__CommonTypeDefs::RAND& par_rand, + const NAS__CommonTypeDefs::AUTN& par_autn); +inline AUTHENTICATION__REQUEST& operator=(const AUTHENTICATION__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AUTHENTICATION__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AUTHENTICATION__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& asmeNasKeySetId() + {return field_asmeNasKeySetId;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& asmeNasKeySetId() const + {return field_asmeNasKeySetId;} + inline NAS__CommonTypeDefs::RAND& rand() + {return field_rand;} + inline const NAS__CommonTypeDefs::RAND& rand() const + {return field_rand;} + inline NAS__CommonTypeDefs::AUTN& autn() + {return field_autn;} + inline const NAS__CommonTypeDefs::AUTN& autn() const + {return field_autn;} +Base_Type* clone() const { return new AUTHENTICATION__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AUTHENTICATION__REQUEST_template : public Record_Template { +void set_specific(); +public: +AUTHENTICATION__REQUEST_template(): Record_Template() {} +AUTHENTICATION__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +AUTHENTICATION__REQUEST_template(const AUTHENTICATION__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +AUTHENTICATION__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AUTHENTICATION__REQUEST_template(AUTHENTICATION__REQUEST_template* p_precondition, AUTHENTICATION__REQUEST_template* p_implied_template); +AUTHENTICATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +AUTHENTICATION__REQUEST_template(const AUTHENTICATION__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~AUTHENTICATION__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AUTHENTICATION__REQUEST_template& operator=(template_sel other_value); +AUTHENTICATION__REQUEST_template& operator=(const AUTHENTICATION__REQUEST& other_value); +AUTHENTICATION__REQUEST_template& operator=(const OPTIONAL& other_value); +AUTHENTICATION__REQUEST_template& operator=(const AUTHENTICATION__REQUEST_template& other_value); +inline boolean match(const AUTHENTICATION__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AUTHENTICATION__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AUTHENTICATION__REQUEST valueof() const; +inline AUTHENTICATION__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId() const; +NAS__CommonTypeDefs::RAND_template& rand(); +const NAS__CommonTypeDefs::RAND_template& rand() const; +NAS__CommonTypeDefs::AUTN_template& autn(); +const NAS__CommonTypeDefs::AUTN_template& autn() const; +Record_Template* create() const { return new AUTHENTICATION__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AUTHENTICATION__RESPONSE : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__CommonTypeDefs::AuthenticationResponseParameter field_authenticationResponseParameter; + Base_Type* fld_vec[4]; + void init_vec(); +public: + AUTHENTICATION__RESPONSE(); + AUTHENTICATION__RESPONSE(const AUTHENTICATION__RESPONSE& other_value); + AUTHENTICATION__RESPONSE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::AuthenticationResponseParameter& par_authenticationResponseParameter); +inline AUTHENTICATION__RESPONSE& operator=(const AUTHENTICATION__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AUTHENTICATION__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AUTHENTICATION__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::AuthenticationResponseParameter& authenticationResponseParameter() + {return field_authenticationResponseParameter;} + inline const NAS__CommonTypeDefs::AuthenticationResponseParameter& authenticationResponseParameter() const + {return field_authenticationResponseParameter;} +Base_Type* clone() const { return new AUTHENTICATION__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AUTHENTICATION__RESPONSE_template : public Record_Template { +void set_specific(); +public: +AUTHENTICATION__RESPONSE_template(): Record_Template() {} +AUTHENTICATION__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +AUTHENTICATION__RESPONSE_template(const AUTHENTICATION__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +AUTHENTICATION__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AUTHENTICATION__RESPONSE_template(AUTHENTICATION__RESPONSE_template* p_precondition, AUTHENTICATION__RESPONSE_template* p_implied_template); +AUTHENTICATION__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +AUTHENTICATION__RESPONSE_template(const AUTHENTICATION__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~AUTHENTICATION__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AUTHENTICATION__RESPONSE_template& operator=(template_sel other_value); +AUTHENTICATION__RESPONSE_template& operator=(const AUTHENTICATION__RESPONSE& other_value); +AUTHENTICATION__RESPONSE_template& operator=(const OPTIONAL& other_value); +AUTHENTICATION__RESPONSE_template& operator=(const AUTHENTICATION__RESPONSE_template& other_value); +inline boolean match(const AUTHENTICATION__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AUTHENTICATION__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AUTHENTICATION__RESPONSE valueof() const; +inline AUTHENTICATION__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::AuthenticationResponseParameter_template& authenticationResponseParameter(); +const NAS__CommonTypeDefs::AuthenticationResponseParameter_template& authenticationResponseParameter() const; +Record_Template* create() const { return new AUTHENTICATION__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PagingIdentity : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spareBits; + BITSTRING field_pagingId; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PagingIdentity(); + PagingIdentity(const PagingIdentity& other_value); + PagingIdentity(const OPTIONAL& par_iei, + const BITSTRING& par_spareBits, + const BITSTRING& par_pagingId); +inline PagingIdentity& operator=(const PagingIdentity& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PagingIdentity& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PagingIdentity& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& pagingId() + {return field_pagingId;} + inline const BITSTRING& pagingId() const + {return field_pagingId;} +Base_Type* clone() const { return new PagingIdentity(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PagingIdentity_template : public Record_Template { +void set_specific(); +public: +PagingIdentity_template(): Record_Template() {} +PagingIdentity_template(template_sel other_value): Record_Template(other_value) {} +PagingIdentity_template(const PagingIdentity& other_value): Record_Template() { copy_value(&other_value); } +PagingIdentity_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PagingIdentity_template(PagingIdentity_template* p_precondition, PagingIdentity_template* p_implied_template); +PagingIdentity_template(Dynamic_Match_Interface* p_dyn_match); +PagingIdentity_template(const PagingIdentity_template& other_value): Record_Template() { copy_template(other_value); } +~PagingIdentity_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PagingIdentity_template& operator=(template_sel other_value); +PagingIdentity_template& operator=(const PagingIdentity& other_value); +PagingIdentity_template& operator=(const OPTIONAL& other_value); +PagingIdentity_template& operator=(const PagingIdentity_template& other_value); +inline boolean match(const PagingIdentity& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PagingIdentity& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PagingIdentity valueof() const; +inline PagingIdentity_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& pagingId(); +const BITSTRING_template& pagingId() const; +Record_Template* create() const { return new PagingIdentity_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CS__SERVICE__NOTIFICATION : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + PagingIdentity field_pagingIdentity; + OPTIONAL field_cli; + OPTIONAL field_ssCode; + OPTIONAL field_lcsIndicator; + OPTIONAL field_lcsClientIdentity; + Base_Type* fld_vec[8]; + void init_vec(); +public: + CS__SERVICE__NOTIFICATION(); + CS__SERVICE__NOTIFICATION(const CS__SERVICE__NOTIFICATION& other_value); + CS__SERVICE__NOTIFICATION(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const PagingIdentity& par_pagingIdentity, + const OPTIONAL& par_cli, + const OPTIONAL& par_ssCode, + const OPTIONAL& par_lcsIndicator, + const OPTIONAL& par_lcsClientIdentity); +inline CS__SERVICE__NOTIFICATION& operator=(const CS__SERVICE__NOTIFICATION& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CS__SERVICE__NOTIFICATION& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CS__SERVICE__NOTIFICATION& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline PagingIdentity& pagingIdentity() + {return field_pagingIdentity;} + inline const PagingIdentity& pagingIdentity() const + {return field_pagingIdentity;} + inline OPTIONAL& cli() + {return field_cli;} + inline const OPTIONAL& cli() const + {return field_cli;} + inline OPTIONAL& ssCode() + {return field_ssCode;} + inline const OPTIONAL& ssCode() const + {return field_ssCode;} + inline OPTIONAL& lcsIndicator() + {return field_lcsIndicator;} + inline const OPTIONAL& lcsIndicator() const + {return field_lcsIndicator;} + inline OPTIONAL& lcsClientIdentity() + {return field_lcsClientIdentity;} + inline const OPTIONAL& lcsClientIdentity() const + {return field_lcsClientIdentity;} +Base_Type* clone() const { return new CS__SERVICE__NOTIFICATION(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CS__SERVICE__NOTIFICATION_template : public Record_Template { +void set_specific(); +public: +CS__SERVICE__NOTIFICATION_template(): Record_Template() {} +CS__SERVICE__NOTIFICATION_template(template_sel other_value): Record_Template(other_value) {} +CS__SERVICE__NOTIFICATION_template(const CS__SERVICE__NOTIFICATION& other_value): Record_Template() { copy_value(&other_value); } +CS__SERVICE__NOTIFICATION_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CS__SERVICE__NOTIFICATION_template(CS__SERVICE__NOTIFICATION_template* p_precondition, CS__SERVICE__NOTIFICATION_template* p_implied_template); +CS__SERVICE__NOTIFICATION_template(Dynamic_Match_Interface* p_dyn_match); +CS__SERVICE__NOTIFICATION_template(const CS__SERVICE__NOTIFICATION_template& other_value): Record_Template() { copy_template(other_value); } +~CS__SERVICE__NOTIFICATION_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CS__SERVICE__NOTIFICATION_template& operator=(template_sel other_value); +CS__SERVICE__NOTIFICATION_template& operator=(const CS__SERVICE__NOTIFICATION& other_value); +CS__SERVICE__NOTIFICATION_template& operator=(const OPTIONAL& other_value); +CS__SERVICE__NOTIFICATION_template& operator=(const CS__SERVICE__NOTIFICATION_template& other_value); +inline boolean match(const CS__SERVICE__NOTIFICATION& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CS__SERVICE__NOTIFICATION& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CS__SERVICE__NOTIFICATION valueof() const; +inline CS__SERVICE__NOTIFICATION_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +PagingIdentity_template& pagingIdentity(); +const PagingIdentity_template& pagingIdentity() const; +CLI_template& cli(); +const CLI_template& cli() const; +SsCode_template& ssCode(); +const SsCode_template& ssCode() const; +LcsIndicator_template& lcsIndicator(); +const LcsIndicator_template& lcsIndicator() const; +LcsClientIdentity_template& lcsClientIdentity(); +const LcsClientIdentity_template& lcsClientIdentity() const; +Record_Template* create() const { return new CS__SERVICE__NOTIFICATION_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CLI : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_cliValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + CLI(); + CLI(const CLI& other_value); + CLI(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_cliValue); +inline CLI& operator=(const CLI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CLI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CLI& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& cliValue() + {return field_cliValue;} + inline const OCTETSTRING& cliValue() const + {return field_cliValue;} +Base_Type* clone() const { return new CLI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CLI_template : public Record_Template { +void set_specific(); +public: +CLI_template(): Record_Template() {} +CLI_template(template_sel other_value): Record_Template(other_value) {} +CLI_template(const CLI& other_value): Record_Template() { copy_value(&other_value); } +CLI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CLI_template(CLI_template* p_precondition, CLI_template* p_implied_template); +CLI_template(Dynamic_Match_Interface* p_dyn_match); +CLI_template(const CLI_template& other_value): Record_Template() { copy_template(other_value); } +~CLI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CLI_template& operator=(template_sel other_value); +CLI_template& operator=(const CLI& other_value); +CLI_template& operator=(const OPTIONAL& other_value); +CLI_template& operator=(const CLI_template& other_value); +inline boolean match(const CLI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CLI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CLI valueof() const; +inline CLI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& cliValue(); +const OCTETSTRING_template& cliValue() const; +Record_Template* create() const { return new CLI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SsCode : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_ssCodeValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + SsCode(); + SsCode(const SsCode& other_value); + SsCode(const OPTIONAL& par_iei, + const OCTETSTRING& par_ssCodeValue); +inline SsCode& operator=(const SsCode& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SsCode& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SsCode& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& ssCodeValue() + {return field_ssCodeValue;} + inline const OCTETSTRING& ssCodeValue() const + {return field_ssCodeValue;} +Base_Type* clone() const { return new SsCode(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SsCode_template : public Record_Template { +void set_specific(); +public: +SsCode_template(): Record_Template() {} +SsCode_template(template_sel other_value): Record_Template(other_value) {} +SsCode_template(const SsCode& other_value): Record_Template() { copy_value(&other_value); } +SsCode_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SsCode_template(SsCode_template* p_precondition, SsCode_template* p_implied_template); +SsCode_template(Dynamic_Match_Interface* p_dyn_match); +SsCode_template(const SsCode_template& other_value): Record_Template() { copy_template(other_value); } +~SsCode_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SsCode_template& operator=(template_sel other_value); +SsCode_template& operator=(const SsCode& other_value); +SsCode_template& operator=(const OPTIONAL& other_value); +SsCode_template& operator=(const SsCode_template& other_value); +inline boolean match(const SsCode& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SsCode& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SsCode valueof() const; +inline SsCode_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& ssCodeValue(); +const OCTETSTRING_template& ssCodeValue() const; +Record_Template* create() const { return new SsCode_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class LcsIndicator : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_lcsIndicator; + Base_Type* fld_vec[2]; + void init_vec(); +public: + LcsIndicator(); + LcsIndicator(const LcsIndicator& other_value); + LcsIndicator(const OPTIONAL& par_iei, + const OCTETSTRING& par_lcsIndicator); +inline LcsIndicator& operator=(const LcsIndicator& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LcsIndicator& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const LcsIndicator& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& lcsIndicator() + {return field_lcsIndicator;} + inline const OCTETSTRING& lcsIndicator() const + {return field_lcsIndicator;} +Base_Type* clone() const { return new LcsIndicator(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class LcsIndicator_template : public Record_Template { +void set_specific(); +public: +LcsIndicator_template(): Record_Template() {} +LcsIndicator_template(template_sel other_value): Record_Template(other_value) {} +LcsIndicator_template(const LcsIndicator& other_value): Record_Template() { copy_value(&other_value); } +LcsIndicator_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +LcsIndicator_template(LcsIndicator_template* p_precondition, LcsIndicator_template* p_implied_template); +LcsIndicator_template(Dynamic_Match_Interface* p_dyn_match); +LcsIndicator_template(const LcsIndicator_template& other_value): Record_Template() { copy_template(other_value); } +~LcsIndicator_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LcsIndicator_template& operator=(template_sel other_value); +LcsIndicator_template& operator=(const LcsIndicator& other_value); +LcsIndicator_template& operator=(const OPTIONAL& other_value); +LcsIndicator_template& operator=(const LcsIndicator_template& other_value); +inline boolean match(const LcsIndicator& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const LcsIndicator& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +LcsIndicator valueof() const; +inline LcsIndicator_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& lcsIndicator(); +const OCTETSTRING_template& lcsIndicator() const; +Record_Template* create() const { return new LcsIndicator_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class LcsClientIdentity : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_lcsClientIdentityValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + LcsClientIdentity(); + LcsClientIdentity(const LcsClientIdentity& other_value); + LcsClientIdentity(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_lcsClientIdentityValue); +inline LcsClientIdentity& operator=(const LcsClientIdentity& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LcsClientIdentity& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const LcsClientIdentity& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& lcsClientIdentityValue() + {return field_lcsClientIdentityValue;} + inline const OCTETSTRING& lcsClientIdentityValue() const + {return field_lcsClientIdentityValue;} +Base_Type* clone() const { return new LcsClientIdentity(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class LcsClientIdentity_template : public Record_Template { +void set_specific(); +public: +LcsClientIdentity_template(): Record_Template() {} +LcsClientIdentity_template(template_sel other_value): Record_Template(other_value) {} +LcsClientIdentity_template(const LcsClientIdentity& other_value): Record_Template() { copy_value(&other_value); } +LcsClientIdentity_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +LcsClientIdentity_template(LcsClientIdentity_template* p_precondition, LcsClientIdentity_template* p_implied_template); +LcsClientIdentity_template(Dynamic_Match_Interface* p_dyn_match); +LcsClientIdentity_template(const LcsClientIdentity_template& other_value): Record_Template() { copy_template(other_value); } +~LcsClientIdentity_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LcsClientIdentity_template& operator=(template_sel other_value); +LcsClientIdentity_template& operator=(const LcsClientIdentity& other_value); +LcsClientIdentity_template& operator=(const OPTIONAL& other_value); +LcsClientIdentity_template& operator=(const LcsClientIdentity_template& other_value); +inline boolean match(const LcsClientIdentity& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const LcsClientIdentity& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +LcsClientIdentity valueof() const; +inline LcsClientIdentity_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& lcsClientIdentityValue(); +const OCTETSTRING_template& lcsClientIdentityValue() const; +Record_Template* create() const { return new LcsClientIdentity_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DETACH__ACCEPT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + DETACH__ACCEPT(); + DETACH__ACCEPT(const DETACH__ACCEPT& other_value); + DETACH__ACCEPT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline DETACH__ACCEPT& operator=(const DETACH__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DETACH__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DETACH__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new DETACH__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DETACH__ACCEPT_template : public Record_Template { +void set_specific(); +public: +DETACH__ACCEPT_template(): Record_Template() {} +DETACH__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +DETACH__ACCEPT_template(const DETACH__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +DETACH__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DETACH__ACCEPT_template(DETACH__ACCEPT_template* p_precondition, DETACH__ACCEPT_template* p_implied_template); +DETACH__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +DETACH__ACCEPT_template(const DETACH__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~DETACH__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DETACH__ACCEPT_template& operator=(template_sel other_value); +DETACH__ACCEPT_template& operator=(const DETACH__ACCEPT& other_value); +DETACH__ACCEPT_template& operator=(const OPTIONAL& other_value); +DETACH__ACCEPT_template& operator=(const DETACH__ACCEPT_template& other_value); +inline boolean match(const DETACH__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DETACH__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DETACH__ACCEPT valueof() const; +inline DETACH__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new DETACH__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DETACH__REQUEST__MO : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_asmeNasKeySetId; + NAS__CommonTypeDefs::DetachType field_detachType; + NAS__CommonTypeDefs::MobileIdentity field_epsMobileIdentity; + Base_Type* fld_vec[6]; + void init_vec(); +public: + DETACH__REQUEST__MO(); + DETACH__REQUEST__MO(const DETACH__REQUEST__MO& other_value); + DETACH__REQUEST__MO(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_asmeNasKeySetId, + const NAS__CommonTypeDefs::DetachType& par_detachType, + const NAS__CommonTypeDefs::MobileIdentity& par_epsMobileIdentity); +inline DETACH__REQUEST__MO& operator=(const DETACH__REQUEST__MO& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DETACH__REQUEST__MO& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DETACH__REQUEST__MO& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& asmeNasKeySetId() + {return field_asmeNasKeySetId;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& asmeNasKeySetId() const + {return field_asmeNasKeySetId;} + inline NAS__CommonTypeDefs::DetachType& detachType() + {return field_detachType;} + inline const NAS__CommonTypeDefs::DetachType& detachType() const + {return field_detachType;} + inline NAS__CommonTypeDefs::MobileIdentity& epsMobileIdentity() + {return field_epsMobileIdentity;} + inline const NAS__CommonTypeDefs::MobileIdentity& epsMobileIdentity() const + {return field_epsMobileIdentity;} +Base_Type* clone() const { return new DETACH__REQUEST__MO(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DETACH__REQUEST__MO_template : public Record_Template { +void set_specific(); +public: +DETACH__REQUEST__MO_template(): Record_Template() {} +DETACH__REQUEST__MO_template(template_sel other_value): Record_Template(other_value) {} +DETACH__REQUEST__MO_template(const DETACH__REQUEST__MO& other_value): Record_Template() { copy_value(&other_value); } +DETACH__REQUEST__MO_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DETACH__REQUEST__MO_template(DETACH__REQUEST__MO_template* p_precondition, DETACH__REQUEST__MO_template* p_implied_template); +DETACH__REQUEST__MO_template(Dynamic_Match_Interface* p_dyn_match); +DETACH__REQUEST__MO_template(const DETACH__REQUEST__MO_template& other_value): Record_Template() { copy_template(other_value); } +~DETACH__REQUEST__MO_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DETACH__REQUEST__MO_template& operator=(template_sel other_value); +DETACH__REQUEST__MO_template& operator=(const DETACH__REQUEST__MO& other_value); +DETACH__REQUEST__MO_template& operator=(const OPTIONAL& other_value); +DETACH__REQUEST__MO_template& operator=(const DETACH__REQUEST__MO_template& other_value); +inline boolean match(const DETACH__REQUEST__MO& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DETACH__REQUEST__MO& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DETACH__REQUEST__MO valueof() const; +inline DETACH__REQUEST__MO_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId() const; +NAS__CommonTypeDefs::DetachType_template& detachType(); +const NAS__CommonTypeDefs::DetachType_template& detachType() const; +NAS__CommonTypeDefs::MobileIdentity_template& epsMobileIdentity(); +const NAS__CommonTypeDefs::MobileIdentity_template& epsMobileIdentity() const; +Record_Template* create() const { return new DETACH__REQUEST__MO_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DETACH__REQUEST__MT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet; + NAS__CommonTypeDefs::DetachType field_detachType; + OPTIONAL field_emmCause; + OPTIONAL field_lowerBoundTimerValue; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[9]; + void init_vec(); +public: + DETACH__REQUEST__MT(); + DETACH__REQUEST__MT(const DETACH__REQUEST__MT& other_value); + DETACH__REQUEST__MT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const NAS__CommonTypeDefs::DetachType& par_detachType, + const OPTIONAL& par_emmCause, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline DETACH__REQUEST__MT& operator=(const DETACH__REQUEST__MT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DETACH__REQUEST__MT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DETACH__REQUEST__MT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline NAS__CommonTypeDefs::DetachType& detachType() + {return field_detachType;} + inline const NAS__CommonTypeDefs::DetachType& detachType() const + {return field_detachType;} + inline OPTIONAL& emmCause() + {return field_emmCause;} + inline const OPTIONAL& emmCause() const + {return field_emmCause;} + inline OPTIONAL& lowerBoundTimerValue() + {return field_lowerBoundTimerValue;} + inline const OPTIONAL& lowerBoundTimerValue() const + {return field_lowerBoundTimerValue;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new DETACH__REQUEST__MT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 9; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DETACH__REQUEST__MT_template : public Record_Template { +void set_specific(); +public: +DETACH__REQUEST__MT_template(): Record_Template() {} +DETACH__REQUEST__MT_template(template_sel other_value): Record_Template(other_value) {} +DETACH__REQUEST__MT_template(const DETACH__REQUEST__MT& other_value): Record_Template() { copy_value(&other_value); } +DETACH__REQUEST__MT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DETACH__REQUEST__MT_template(DETACH__REQUEST__MT_template* p_precondition, DETACH__REQUEST__MT_template* p_implied_template); +DETACH__REQUEST__MT_template(Dynamic_Match_Interface* p_dyn_match); +DETACH__REQUEST__MT_template(const DETACH__REQUEST__MT_template& other_value): Record_Template() { copy_template(other_value); } +~DETACH__REQUEST__MT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DETACH__REQUEST__MT_template& operator=(template_sel other_value); +DETACH__REQUEST__MT_template& operator=(const DETACH__REQUEST__MT& other_value); +DETACH__REQUEST__MT_template& operator=(const OPTIONAL& other_value); +DETACH__REQUEST__MT_template& operator=(const DETACH__REQUEST__MT_template& other_value); +inline boolean match(const DETACH__REQUEST__MT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DETACH__REQUEST__MT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DETACH__REQUEST__MT valueof() const; +inline DETACH__REQUEST__MT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +NAS__CommonTypeDefs::DetachType_template& detachType(); +const NAS__CommonTypeDefs::DetachType_template& detachType() const; +EMM__Cause_template& emmCause(); +const EMM__Cause_template& emmCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue() const; +TrackingAreaIdList_template& forbidTAIList__Roaming(); +const TrackingAreaIdList_template& forbidTAIList__Roaming() const; +TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new DETACH__REQUEST__MT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NAS__MessageContainer : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_smsmessage; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NAS__MessageContainer(); + NAS__MessageContainer(const NAS__MessageContainer& other_value); + NAS__MessageContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_smsmessage); +inline NAS__MessageContainer& operator=(const NAS__MessageContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NAS__MessageContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NAS__MessageContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& smsmessage() + {return field_smsmessage;} + inline const OCTETSTRING& smsmessage() const + {return field_smsmessage;} +Base_Type* clone() const { return new NAS__MessageContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NAS__MessageContainer_template : public Record_Template { +void set_specific(); +public: +NAS__MessageContainer_template(): Record_Template() {} +NAS__MessageContainer_template(template_sel other_value): Record_Template(other_value) {} +NAS__MessageContainer_template(const NAS__MessageContainer& other_value): Record_Template() { copy_value(&other_value); } +NAS__MessageContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NAS__MessageContainer_template(NAS__MessageContainer_template* p_precondition, NAS__MessageContainer_template* p_implied_template); +NAS__MessageContainer_template(Dynamic_Match_Interface* p_dyn_match); +NAS__MessageContainer_template(const NAS__MessageContainer_template& other_value): Record_Template() { copy_template(other_value); } +~NAS__MessageContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NAS__MessageContainer_template& operator=(template_sel other_value); +NAS__MessageContainer_template& operator=(const NAS__MessageContainer& other_value); +NAS__MessageContainer_template& operator=(const OPTIONAL& other_value); +NAS__MessageContainer_template& operator=(const NAS__MessageContainer_template& other_value); +inline boolean match(const NAS__MessageContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NAS__MessageContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NAS__MessageContainer valueof() const; +inline NAS__MessageContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& smsmessage(); +const OCTETSTRING_template& smsmessage() const; +Record_Template* create() const { return new NAS__MessageContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DL__NAS__TRANSPORT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__MessageContainer field_nasMessage; + Base_Type* fld_vec[4]; + void init_vec(); +public: + DL__NAS__TRANSPORT(); + DL__NAS__TRANSPORT(const DL__NAS__TRANSPORT& other_value); + DL__NAS__TRANSPORT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__MessageContainer& par_nasMessage); +inline DL__NAS__TRANSPORT& operator=(const DL__NAS__TRANSPORT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DL__NAS__TRANSPORT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DL__NAS__TRANSPORT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__MessageContainer& nasMessage() + {return field_nasMessage;} + inline const NAS__MessageContainer& nasMessage() const + {return field_nasMessage;} +Base_Type* clone() const { return new DL__NAS__TRANSPORT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DL__NAS__TRANSPORT_template : public Record_Template { +void set_specific(); +public: +DL__NAS__TRANSPORT_template(): Record_Template() {} +DL__NAS__TRANSPORT_template(template_sel other_value): Record_Template(other_value) {} +DL__NAS__TRANSPORT_template(const DL__NAS__TRANSPORT& other_value): Record_Template() { copy_value(&other_value); } +DL__NAS__TRANSPORT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DL__NAS__TRANSPORT_template(DL__NAS__TRANSPORT_template* p_precondition, DL__NAS__TRANSPORT_template* p_implied_template); +DL__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match); +DL__NAS__TRANSPORT_template(const DL__NAS__TRANSPORT_template& other_value): Record_Template() { copy_template(other_value); } +~DL__NAS__TRANSPORT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DL__NAS__TRANSPORT_template& operator=(template_sel other_value); +DL__NAS__TRANSPORT_template& operator=(const DL__NAS__TRANSPORT& other_value); +DL__NAS__TRANSPORT_template& operator=(const OPTIONAL& other_value); +DL__NAS__TRANSPORT_template& operator=(const DL__NAS__TRANSPORT_template& other_value); +inline boolean match(const DL__NAS__TRANSPORT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DL__NAS__TRANSPORT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DL__NAS__TRANSPORT valueof() const; +inline DL__NAS__TRANSPORT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__MessageContainer_template& nasMessage(); +const NAS__MessageContainer_template& nasMessage() const; +Record_Template* create() const { return new DL__NAS__TRANSPORT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EMM__INFORMATION : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OPTIONAL field_fullNetworkName; + OPTIONAL field_shortNetworkName; + OPTIONAL field_localTimeZone; + OPTIONAL field_localTimeZoneAndTime; + OPTIONAL field_daylightSavingTime; + Base_Type* fld_vec[8]; + void init_vec(); +public: + EMM__INFORMATION(); + EMM__INFORMATION(const EMM__INFORMATION& other_value); + EMM__INFORMATION(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_fullNetworkName, + const OPTIONAL& par_shortNetworkName, + const OPTIONAL& par_localTimeZone, + const OPTIONAL& par_localTimeZoneAndTime, + const OPTIONAL& par_daylightSavingTime); +inline EMM__INFORMATION& operator=(const EMM__INFORMATION& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EMM__INFORMATION& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EMM__INFORMATION& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& fullNetworkName() + {return field_fullNetworkName;} + inline const OPTIONAL& fullNetworkName() const + {return field_fullNetworkName;} + inline OPTIONAL& shortNetworkName() + {return field_shortNetworkName;} + inline const OPTIONAL& shortNetworkName() const + {return field_shortNetworkName;} + inline OPTIONAL& localTimeZone() + {return field_localTimeZone;} + inline const OPTIONAL& localTimeZone() const + {return field_localTimeZone;} + inline OPTIONAL& localTimeZoneAndTime() + {return field_localTimeZoneAndTime;} + inline const OPTIONAL& localTimeZoneAndTime() const + {return field_localTimeZoneAndTime;} + inline OPTIONAL& daylightSavingTime() + {return field_daylightSavingTime;} + inline const OPTIONAL& daylightSavingTime() const + {return field_daylightSavingTime;} +Base_Type* clone() const { return new EMM__INFORMATION(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EMM__INFORMATION_template : public Record_Template { +void set_specific(); +public: +EMM__INFORMATION_template(): Record_Template() {} +EMM__INFORMATION_template(template_sel other_value): Record_Template(other_value) {} +EMM__INFORMATION_template(const EMM__INFORMATION& other_value): Record_Template() { copy_value(&other_value); } +EMM__INFORMATION_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EMM__INFORMATION_template(EMM__INFORMATION_template* p_precondition, EMM__INFORMATION_template* p_implied_template); +EMM__INFORMATION_template(Dynamic_Match_Interface* p_dyn_match); +EMM__INFORMATION_template(const EMM__INFORMATION_template& other_value): Record_Template() { copy_template(other_value); } +~EMM__INFORMATION_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EMM__INFORMATION_template& operator=(template_sel other_value); +EMM__INFORMATION_template& operator=(const EMM__INFORMATION& other_value); +EMM__INFORMATION_template& operator=(const OPTIONAL& other_value); +EMM__INFORMATION_template& operator=(const EMM__INFORMATION_template& other_value); +inline boolean match(const EMM__INFORMATION& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EMM__INFORMATION& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EMM__INFORMATION valueof() const; +inline EMM__INFORMATION_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NetworkName_template& fullNetworkName(); +const NAS__CommonTypeDefs::NetworkName_template& fullNetworkName() const; +NAS__CommonTypeDefs::NetworkName_template& shortNetworkName(); +const NAS__CommonTypeDefs::NetworkName_template& shortNetworkName() const; +NAS__CommonTypeDefs::TimeZone_template& localTimeZone(); +const NAS__CommonTypeDefs::TimeZone_template& localTimeZone() const; +NAS__CommonTypeDefs::TimeZoneAndTime_template& localTimeZoneAndTime(); +const NAS__CommonTypeDefs::TimeZoneAndTime_template& localTimeZoneAndTime() const; +NAS__CommonTypeDefs::DaylightSavingTime_template& daylightSavingTime(); +const NAS__CommonTypeDefs::DaylightSavingTime_template& daylightSavingTime() const; +Record_Template* create() const { return new EMM__INFORMATION_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EMM__STATUS : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + EMM__Cause field_emmCause; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EMM__STATUS(); + EMM__STATUS(const EMM__STATUS& other_value); + EMM__STATUS(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause); +inline EMM__STATUS& operator=(const EMM__STATUS& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EMM__STATUS& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EMM__STATUS& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline EMM__Cause& emmCause() + {return field_emmCause;} + inline const EMM__Cause& emmCause() const + {return field_emmCause;} +Base_Type* clone() const { return new EMM__STATUS(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EMM__STATUS_template : public Record_Template { +void set_specific(); +public: +EMM__STATUS_template(): Record_Template() {} +EMM__STATUS_template(template_sel other_value): Record_Template(other_value) {} +EMM__STATUS_template(const EMM__STATUS& other_value): Record_Template() { copy_value(&other_value); } +EMM__STATUS_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EMM__STATUS_template(EMM__STATUS_template* p_precondition, EMM__STATUS_template* p_implied_template); +EMM__STATUS_template(Dynamic_Match_Interface* p_dyn_match); +EMM__STATUS_template(const EMM__STATUS_template& other_value): Record_Template() { copy_template(other_value); } +~EMM__STATUS_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EMM__STATUS_template& operator=(template_sel other_value); +EMM__STATUS_template& operator=(const EMM__STATUS& other_value); +EMM__STATUS_template& operator=(const OPTIONAL& other_value); +EMM__STATUS_template& operator=(const EMM__STATUS_template& other_value); +inline boolean match(const EMM__STATUS& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EMM__STATUS& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EMM__STATUS valueof() const; +inline EMM__STATUS_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EMM__Cause_template& emmCause(); +const EMM__Cause_template& emmCause() const; +Record_Template* create() const { return new EMM__STATUS_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__ServiceType : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_serviceValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + EPS__ServiceType(); + EPS__ServiceType(const EPS__ServiceType& other_value); + EPS__ServiceType(const OPTIONAL& par_iei, + const BITSTRING& par_serviceValue); +inline EPS__ServiceType& operator=(const EPS__ServiceType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__ServiceType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__ServiceType& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& serviceValue() + {return field_serviceValue;} + inline const BITSTRING& serviceValue() const + {return field_serviceValue;} +Base_Type* clone() const { return new EPS__ServiceType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__ServiceType_template : public Record_Template { +void set_specific(); +public: +EPS__ServiceType_template(): Record_Template() {} +EPS__ServiceType_template(template_sel other_value): Record_Template(other_value) {} +EPS__ServiceType_template(const EPS__ServiceType& other_value): Record_Template() { copy_value(&other_value); } +EPS__ServiceType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__ServiceType_template(EPS__ServiceType_template* p_precondition, EPS__ServiceType_template* p_implied_template); +EPS__ServiceType_template(Dynamic_Match_Interface* p_dyn_match); +EPS__ServiceType_template(const EPS__ServiceType_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__ServiceType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__ServiceType_template& operator=(template_sel other_value); +EPS__ServiceType_template& operator=(const EPS__ServiceType& other_value); +EPS__ServiceType_template& operator=(const OPTIONAL& other_value); +EPS__ServiceType_template& operator=(const EPS__ServiceType_template& other_value); +inline boolean match(const EPS__ServiceType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__ServiceType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__ServiceType valueof() const; +inline EPS__ServiceType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& serviceValue(); +const BITSTRING_template& serviceValue() const; +Record_Template* create() const { return new EPS__ServiceType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EXT__SERVICE__REQUEST : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_nasKeySetId; + EPS__ServiceType field_serviceType; + NAS__CommonTypeDefs::MobileIdentity field_mTMSI; + OPTIONAL field_csfbResponse; + OPTIONAL field_epsBearerContextStatus; + OPTIONAL field_deviceProperties; + OPTIONAL field_ueRequestType; + OPTIONAL field_pagingRestriction; + Base_Type* fld_vec[11]; + void init_vec(); +public: + EXT__SERVICE__REQUEST(); + EXT__SERVICE__REQUEST(const EXT__SERVICE__REQUEST& other_value); + EXT__SERVICE__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_nasKeySetId, + const EPS__ServiceType& par_serviceType, + const NAS__CommonTypeDefs::MobileIdentity& par_mTMSI, + const OPTIONAL& par_csfbResponse, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestriction); +inline EXT__SERVICE__REQUEST& operator=(const EXT__SERVICE__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EXT__SERVICE__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EXT__SERVICE__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& nasKeySetId() + {return field_nasKeySetId;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& nasKeySetId() const + {return field_nasKeySetId;} + inline EPS__ServiceType& serviceType() + {return field_serviceType;} + inline const EPS__ServiceType& serviceType() const + {return field_serviceType;} + inline NAS__CommonTypeDefs::MobileIdentity& mTMSI() + {return field_mTMSI;} + inline const NAS__CommonTypeDefs::MobileIdentity& mTMSI() const + {return field_mTMSI;} + inline OPTIONAL& csfbResponse() + {return field_csfbResponse;} + inline const OPTIONAL& csfbResponse() const + {return field_csfbResponse;} + inline OPTIONAL& epsBearerContextStatus() + {return field_epsBearerContextStatus;} + inline const OPTIONAL& epsBearerContextStatus() const + {return field_epsBearerContextStatus;} + inline OPTIONAL& deviceProperties() + {return field_deviceProperties;} + inline const OPTIONAL& deviceProperties() const + {return field_deviceProperties;} + inline OPTIONAL& ueRequestType() + {return field_ueRequestType;} + inline const OPTIONAL& ueRequestType() const + {return field_ueRequestType;} + inline OPTIONAL& pagingRestriction() + {return field_pagingRestriction;} + inline const OPTIONAL& pagingRestriction() const + {return field_pagingRestriction;} +Base_Type* clone() const { return new EXT__SERVICE__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 11; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EXT__SERVICE__REQUEST_template : public Record_Template { +void set_specific(); +public: +EXT__SERVICE__REQUEST_template(): Record_Template() {} +EXT__SERVICE__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +EXT__SERVICE__REQUEST_template(const EXT__SERVICE__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +EXT__SERVICE__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EXT__SERVICE__REQUEST_template(EXT__SERVICE__REQUEST_template* p_precondition, EXT__SERVICE__REQUEST_template* p_implied_template); +EXT__SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +EXT__SERVICE__REQUEST_template(const EXT__SERVICE__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~EXT__SERVICE__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EXT__SERVICE__REQUEST_template& operator=(template_sel other_value); +EXT__SERVICE__REQUEST_template& operator=(const EXT__SERVICE__REQUEST& other_value); +EXT__SERVICE__REQUEST_template& operator=(const OPTIONAL& other_value); +EXT__SERVICE__REQUEST_template& operator=(const EXT__SERVICE__REQUEST_template& other_value); +inline boolean match(const EXT__SERVICE__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EXT__SERVICE__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EXT__SERVICE__REQUEST valueof() const; +inline EXT__SERVICE__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nasKeySetId() const; +EPS__ServiceType_template& serviceType(); +const EPS__ServiceType_template& serviceType() const; +NAS__CommonTypeDefs::MobileIdentity_template& mTMSI(); +const NAS__CommonTypeDefs::MobileIdentity_template& mTMSI() const; +CSFBResponse_template& csfbResponse(); +const CSFBResponse_template& csfbResponse() const; +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus(); +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus() const; +NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties(); +const NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties() const; +NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType(); +const NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType() const; +PagingRestriction_template& pagingRestriction(); +const PagingRestriction_template& pagingRestriction() const; +Record_Template* create() const { return new EXT__SERVICE__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CSFBResponse : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_csfbValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + CSFBResponse(); + CSFBResponse(const CSFBResponse& other_value); + CSFBResponse(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_csfbValue); +inline CSFBResponse& operator=(const CSFBResponse& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CSFBResponse& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CSFBResponse& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& csfbValue() + {return field_csfbValue;} + inline const BITSTRING& csfbValue() const + {return field_csfbValue;} +Base_Type* clone() const { return new CSFBResponse(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CSFBResponse_template : public Record_Template { +void set_specific(); +public: +CSFBResponse_template(): Record_Template() {} +CSFBResponse_template(template_sel other_value): Record_Template(other_value) {} +CSFBResponse_template(const CSFBResponse& other_value): Record_Template() { copy_value(&other_value); } +CSFBResponse_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CSFBResponse_template(CSFBResponse_template* p_precondition, CSFBResponse_template* p_implied_template); +CSFBResponse_template(Dynamic_Match_Interface* p_dyn_match); +CSFBResponse_template(const CSFBResponse_template& other_value): Record_Template() { copy_template(other_value); } +~CSFBResponse_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CSFBResponse_template& operator=(template_sel other_value); +CSFBResponse_template& operator=(const CSFBResponse& other_value); +CSFBResponse_template& operator=(const OPTIONAL& other_value); +CSFBResponse_template& operator=(const CSFBResponse_template& other_value); +inline boolean match(const CSFBResponse& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CSFBResponse& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CSFBResponse valueof() const; +inline CSFBResponse_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& csfbValue(); +const BITSTRING_template& csfbValue() const; +Record_Template* create() const { return new CSFBResponse_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PagingRestriction : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_prType; + OPTIONAL field_ebi7__0; + OPTIONAL field_ebi15__8; + Base_Type* fld_vec[6]; + void init_vec(); +public: + PagingRestriction(); + PagingRestriction(const PagingRestriction& other_value); + PagingRestriction(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_prType, + const OPTIONAL& par_ebi7__0, + const OPTIONAL& par_ebi15__8); +inline PagingRestriction& operator=(const PagingRestriction& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PagingRestriction& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PagingRestriction& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& prType() + {return field_prType;} + inline const BITSTRING& prType() const + {return field_prType;} + inline OPTIONAL& ebi7__0() + {return field_ebi7__0;} + inline const OPTIONAL& ebi7__0() const + {return field_ebi7__0;} + inline OPTIONAL& ebi15__8() + {return field_ebi15__8;} + inline const OPTIONAL& ebi15__8() const + {return field_ebi15__8;} +Base_Type* clone() const { return new PagingRestriction(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PagingRestriction_template : public Record_Template { +void set_specific(); +public: +PagingRestriction_template(): Record_Template() {} +PagingRestriction_template(template_sel other_value): Record_Template(other_value) {} +PagingRestriction_template(const PagingRestriction& other_value): Record_Template() { copy_value(&other_value); } +PagingRestriction_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PagingRestriction_template(PagingRestriction_template* p_precondition, PagingRestriction_template* p_implied_template); +PagingRestriction_template(Dynamic_Match_Interface* p_dyn_match); +PagingRestriction_template(const PagingRestriction_template& other_value): Record_Template() { copy_template(other_value); } +~PagingRestriction_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PagingRestriction_template& operator=(template_sel other_value); +PagingRestriction_template& operator=(const PagingRestriction& other_value); +PagingRestriction_template& operator=(const OPTIONAL& other_value); +PagingRestriction_template& operator=(const PagingRestriction_template& other_value); +inline boolean match(const PagingRestriction& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PagingRestriction& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PagingRestriction valueof() const; +inline PagingRestriction_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& prType(); +const BITSTRING_template& prType() const; +OCTETSTRING_template& ebi7__0(); +const OCTETSTRING_template& ebi7__0() const; +OCTETSTRING_template& ebi15__8(); +const OCTETSTRING_template& ebi15__8() const; +Record_Template* create() const { return new PagingRestriction_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class GUTI__REALLOCATION__COMMAND : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__CommonTypeDefs::MobileIdentity field_guti; + OPTIONAL field_taiList; + OPTIONAL field_dcnId; + OPTIONAL field_ueRadioCapId; + OPTIONAL field_ueRadioCapIdDeleteInd; + Base_Type* fld_vec[8]; + void init_vec(); +public: + GUTI__REALLOCATION__COMMAND(); + GUTI__REALLOCATION__COMMAND(const GUTI__REALLOCATION__COMMAND& other_value); + GUTI__REALLOCATION__COMMAND(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::MobileIdentity& par_guti, + const OPTIONAL& par_taiList, + const OPTIONAL& par_dcnId, + const OPTIONAL& par_ueRadioCapId, + const OPTIONAL& par_ueRadioCapIdDeleteInd); +inline GUTI__REALLOCATION__COMMAND& operator=(const GUTI__REALLOCATION__COMMAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const GUTI__REALLOCATION__COMMAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const GUTI__REALLOCATION__COMMAND& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::MobileIdentity& guti() + {return field_guti;} + inline const NAS__CommonTypeDefs::MobileIdentity& guti() const + {return field_guti;} + inline OPTIONAL& taiList() + {return field_taiList;} + inline const OPTIONAL& taiList() const + {return field_taiList;} + inline OPTIONAL& dcnId() + {return field_dcnId;} + inline const OPTIONAL& dcnId() const + {return field_dcnId;} + inline OPTIONAL& ueRadioCapId() + {return field_ueRadioCapId;} + inline const OPTIONAL& ueRadioCapId() const + {return field_ueRadioCapId;} + inline OPTIONAL& ueRadioCapIdDeleteInd() + {return field_ueRadioCapIdDeleteInd;} + inline const OPTIONAL& ueRadioCapIdDeleteInd() const + {return field_ueRadioCapIdDeleteInd;} +Base_Type* clone() const { return new GUTI__REALLOCATION__COMMAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class GUTI__REALLOCATION__COMMAND_template : public Record_Template { +void set_specific(); +public: +GUTI__REALLOCATION__COMMAND_template(): Record_Template() {} +GUTI__REALLOCATION__COMMAND_template(template_sel other_value): Record_Template(other_value) {} +GUTI__REALLOCATION__COMMAND_template(const GUTI__REALLOCATION__COMMAND& other_value): Record_Template() { copy_value(&other_value); } +GUTI__REALLOCATION__COMMAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +GUTI__REALLOCATION__COMMAND_template(GUTI__REALLOCATION__COMMAND_template* p_precondition, GUTI__REALLOCATION__COMMAND_template* p_implied_template); +GUTI__REALLOCATION__COMMAND_template(Dynamic_Match_Interface* p_dyn_match); +GUTI__REALLOCATION__COMMAND_template(const GUTI__REALLOCATION__COMMAND_template& other_value): Record_Template() { copy_template(other_value); } +~GUTI__REALLOCATION__COMMAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +GUTI__REALLOCATION__COMMAND_template& operator=(template_sel other_value); +GUTI__REALLOCATION__COMMAND_template& operator=(const GUTI__REALLOCATION__COMMAND& other_value); +GUTI__REALLOCATION__COMMAND_template& operator=(const OPTIONAL& other_value); +GUTI__REALLOCATION__COMMAND_template& operator=(const GUTI__REALLOCATION__COMMAND_template& other_value); +inline boolean match(const GUTI__REALLOCATION__COMMAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const GUTI__REALLOCATION__COMMAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +GUTI__REALLOCATION__COMMAND valueof() const; +inline GUTI__REALLOCATION__COMMAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::MobileIdentity_template& guti(); +const NAS__CommonTypeDefs::MobileIdentity_template& guti() const; +TrackingAreaIdList_template& taiList(); +const TrackingAreaIdList_template& taiList() const; +NAS__CommonTypeDefs::DCN__ID_template& dcnId(); +const NAS__CommonTypeDefs::DCN__ID_template& dcnId() const; +NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapId(); +const NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapId() const; +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeleteInd(); +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeleteInd() const; +Record_Template* create() const { return new GUTI__REALLOCATION__COMMAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class GUTI__REALLOCATION__COMPLETE : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + GUTI__REALLOCATION__COMPLETE(); + GUTI__REALLOCATION__COMPLETE(const GUTI__REALLOCATION__COMPLETE& other_value); + GUTI__REALLOCATION__COMPLETE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline GUTI__REALLOCATION__COMPLETE& operator=(const GUTI__REALLOCATION__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const GUTI__REALLOCATION__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const GUTI__REALLOCATION__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new GUTI__REALLOCATION__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class GUTI__REALLOCATION__COMPLETE_template : public Record_Template { +void set_specific(); +public: +GUTI__REALLOCATION__COMPLETE_template(): Record_Template() {} +GUTI__REALLOCATION__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +GUTI__REALLOCATION__COMPLETE_template(const GUTI__REALLOCATION__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +GUTI__REALLOCATION__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +GUTI__REALLOCATION__COMPLETE_template(GUTI__REALLOCATION__COMPLETE_template* p_precondition, GUTI__REALLOCATION__COMPLETE_template* p_implied_template); +GUTI__REALLOCATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +GUTI__REALLOCATION__COMPLETE_template(const GUTI__REALLOCATION__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~GUTI__REALLOCATION__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +GUTI__REALLOCATION__COMPLETE_template& operator=(template_sel other_value); +GUTI__REALLOCATION__COMPLETE_template& operator=(const GUTI__REALLOCATION__COMPLETE& other_value); +GUTI__REALLOCATION__COMPLETE_template& operator=(const OPTIONAL& other_value); +GUTI__REALLOCATION__COMPLETE_template& operator=(const GUTI__REALLOCATION__COMPLETE_template& other_value); +inline boolean match(const GUTI__REALLOCATION__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const GUTI__REALLOCATION__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +GUTI__REALLOCATION__COMPLETE valueof() const; +inline GUTI__REALLOCATION__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new GUTI__REALLOCATION__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IDENTITY__REQUEST : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet; + NAS__CommonTypeDefs::IdentityType field_identityType2; + Base_Type* fld_vec[5]; + void init_vec(); +public: + IDENTITY__REQUEST(); + IDENTITY__REQUEST(const IDENTITY__REQUEST& other_value); + IDENTITY__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const NAS__CommonTypeDefs::IdentityType& par_identityType2); +inline IDENTITY__REQUEST& operator=(const IDENTITY__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IDENTITY__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IDENTITY__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline NAS__CommonTypeDefs::IdentityType& identityType2() + {return field_identityType2;} + inline const NAS__CommonTypeDefs::IdentityType& identityType2() const + {return field_identityType2;} +Base_Type* clone() const { return new IDENTITY__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IDENTITY__REQUEST_template : public Record_Template { +void set_specific(); +public: +IDENTITY__REQUEST_template(): Record_Template() {} +IDENTITY__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +IDENTITY__REQUEST_template(const IDENTITY__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +IDENTITY__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IDENTITY__REQUEST_template(IDENTITY__REQUEST_template* p_precondition, IDENTITY__REQUEST_template* p_implied_template); +IDENTITY__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +IDENTITY__REQUEST_template(const IDENTITY__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~IDENTITY__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IDENTITY__REQUEST_template& operator=(template_sel other_value); +IDENTITY__REQUEST_template& operator=(const IDENTITY__REQUEST& other_value); +IDENTITY__REQUEST_template& operator=(const OPTIONAL& other_value); +IDENTITY__REQUEST_template& operator=(const IDENTITY__REQUEST_template& other_value); +inline boolean match(const IDENTITY__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IDENTITY__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IDENTITY__REQUEST valueof() const; +inline IDENTITY__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +NAS__CommonTypeDefs::IdentityType_template& identityType2(); +const NAS__CommonTypeDefs::IdentityType_template& identityType2() const; +Record_Template* create() const { return new IDENTITY__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IDENTITY__RESPONSE : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__CommonTypeDefs::MobileIdentity field_mobileIdentity; + Base_Type* fld_vec[4]; + void init_vec(); +public: + IDENTITY__RESPONSE(); + IDENTITY__RESPONSE(const IDENTITY__RESPONSE& other_value); + IDENTITY__RESPONSE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::MobileIdentity& par_mobileIdentity); +inline IDENTITY__RESPONSE& operator=(const IDENTITY__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IDENTITY__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IDENTITY__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::MobileIdentity& mobileIdentity() + {return field_mobileIdentity;} + inline const NAS__CommonTypeDefs::MobileIdentity& mobileIdentity() const + {return field_mobileIdentity;} +Base_Type* clone() const { return new IDENTITY__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IDENTITY__RESPONSE_template : public Record_Template { +void set_specific(); +public: +IDENTITY__RESPONSE_template(): Record_Template() {} +IDENTITY__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +IDENTITY__RESPONSE_template(const IDENTITY__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +IDENTITY__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IDENTITY__RESPONSE_template(IDENTITY__RESPONSE_template* p_precondition, IDENTITY__RESPONSE_template* p_implied_template); +IDENTITY__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +IDENTITY__RESPONSE_template(const IDENTITY__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~IDENTITY__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IDENTITY__RESPONSE_template& operator=(template_sel other_value); +IDENTITY__RESPONSE_template& operator=(const IDENTITY__RESPONSE& other_value); +IDENTITY__RESPONSE_template& operator=(const OPTIONAL& other_value); +IDENTITY__RESPONSE_template& operator=(const IDENTITY__RESPONSE_template& other_value); +inline boolean match(const IDENTITY__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IDENTITY__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IDENTITY__RESPONSE valueof() const; +inline IDENTITY__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::MobileIdentity_template& mobileIdentity(); +const NAS__CommonTypeDefs::MobileIdentity_template& mobileIdentity() const; +Record_Template* create() const { return new IDENTITY__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SECURITY__MODE__COMMAND : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__CommonTypeDefs::NAS__SecurityAlgorithms field_nasSecurityAlgorithms; + HEXSTRING field_spareHalfOctet; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_asmeNasKeySetId; + NAS__CommonTypeDefs::UE__SecurityCapability field_replayedSecurityCapability; + OPTIONAL field_imeisvRequest; + OPTIONAL field_replayedNonceUe; + OPTIONAL field_nonceMme; + OPTIONAL field_hashMME; + OPTIONAL field_replayedUEAddSecurityCap; + OPTIONAL field_ueRadioCapIdRequest; + Base_Type* fld_vec[13]; + void init_vec(); +public: + SECURITY__MODE__COMMAND(); + SECURITY__MODE__COMMAND(const SECURITY__MODE__COMMAND& other_value); + SECURITY__MODE__COMMAND(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__SecurityAlgorithms& par_nasSecurityAlgorithms, + const HEXSTRING& par_spareHalfOctet, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_asmeNasKeySetId, + const NAS__CommonTypeDefs::UE__SecurityCapability& par_replayedSecurityCapability, + const OPTIONAL& par_imeisvRequest, + const OPTIONAL& par_replayedNonceUe, + const OPTIONAL& par_nonceMme, + const OPTIONAL& par_hashMME, + const OPTIONAL& par_replayedUEAddSecurityCap, + const OPTIONAL& par_ueRadioCapIdRequest); +inline SECURITY__MODE__COMMAND& operator=(const SECURITY__MODE__COMMAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SECURITY__MODE__COMMAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SECURITY__MODE__COMMAND& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::NAS__SecurityAlgorithms& nasSecurityAlgorithms() + {return field_nasSecurityAlgorithms;} + inline const NAS__CommonTypeDefs::NAS__SecurityAlgorithms& nasSecurityAlgorithms() const + {return field_nasSecurityAlgorithms;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& asmeNasKeySetId() + {return field_asmeNasKeySetId;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& asmeNasKeySetId() const + {return field_asmeNasKeySetId;} + inline NAS__CommonTypeDefs::UE__SecurityCapability& replayedSecurityCapability() + {return field_replayedSecurityCapability;} + inline const NAS__CommonTypeDefs::UE__SecurityCapability& replayedSecurityCapability() const + {return field_replayedSecurityCapability;} + inline OPTIONAL& imeisvRequest() + {return field_imeisvRequest;} + inline const OPTIONAL& imeisvRequest() const + {return field_imeisvRequest;} + inline OPTIONAL& replayedNonceUe() + {return field_replayedNonceUe;} + inline const OPTIONAL& replayedNonceUe() const + {return field_replayedNonceUe;} + inline OPTIONAL& nonceMme() + {return field_nonceMme;} + inline const OPTIONAL& nonceMme() const + {return field_nonceMme;} + inline OPTIONAL& hashMME() + {return field_hashMME;} + inline const OPTIONAL& hashMME() const + {return field_hashMME;} + inline OPTIONAL& replayedUEAddSecurityCap() + {return field_replayedUEAddSecurityCap;} + inline const OPTIONAL& replayedUEAddSecurityCap() const + {return field_replayedUEAddSecurityCap;} + inline OPTIONAL& ueRadioCapIdRequest() + {return field_ueRadioCapIdRequest;} + inline const OPTIONAL& ueRadioCapIdRequest() const + {return field_ueRadioCapIdRequest;} +Base_Type* clone() const { return new SECURITY__MODE__COMMAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 13; } +int optional_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SECURITY__MODE__COMMAND_template : public Record_Template { +void set_specific(); +public: +SECURITY__MODE__COMMAND_template(): Record_Template() {} +SECURITY__MODE__COMMAND_template(template_sel other_value): Record_Template(other_value) {} +SECURITY__MODE__COMMAND_template(const SECURITY__MODE__COMMAND& other_value): Record_Template() { copy_value(&other_value); } +SECURITY__MODE__COMMAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SECURITY__MODE__COMMAND_template(SECURITY__MODE__COMMAND_template* p_precondition, SECURITY__MODE__COMMAND_template* p_implied_template); +SECURITY__MODE__COMMAND_template(Dynamic_Match_Interface* p_dyn_match); +SECURITY__MODE__COMMAND_template(const SECURITY__MODE__COMMAND_template& other_value): Record_Template() { copy_template(other_value); } +~SECURITY__MODE__COMMAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SECURITY__MODE__COMMAND_template& operator=(template_sel other_value); +SECURITY__MODE__COMMAND_template& operator=(const SECURITY__MODE__COMMAND& other_value); +SECURITY__MODE__COMMAND_template& operator=(const OPTIONAL& other_value); +SECURITY__MODE__COMMAND_template& operator=(const SECURITY__MODE__COMMAND_template& other_value); +inline boolean match(const SECURITY__MODE__COMMAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SECURITY__MODE__COMMAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SECURITY__MODE__COMMAND valueof() const; +inline SECURITY__MODE__COMMAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& nasSecurityAlgorithms(); +const NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& nasSecurityAlgorithms() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId() const; +NAS__CommonTypeDefs::UE__SecurityCapability_template& replayedSecurityCapability(); +const NAS__CommonTypeDefs::UE__SecurityCapability_template& replayedSecurityCapability() const; +NAS__CommonTypeDefs::IMEISV__Request_template& imeisvRequest(); +const NAS__CommonTypeDefs::IMEISV__Request_template& imeisvRequest() const; +Nonce_template& replayedNonceUe(); +const Nonce_template& replayedNonceUe() const; +Nonce_template& nonceMme(); +const Nonce_template& nonceMme() const; +NAS__CommonTypeDefs::HashMME_template& hashMME(); +const NAS__CommonTypeDefs::HashMME_template& hashMME() const; +UE__AdditionalSecurityCapability_template& replayedUEAddSecurityCap(); +const UE__AdditionalSecurityCapability_template& replayedUEAddSecurityCap() const; +UERadioCapIdRequest_template& ueRadioCapIdRequest(); +const UERadioCapIdRequest_template& ueRadioCapIdRequest() const; +Record_Template* create() const { return new SECURITY__MODE__COMMAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Nonce : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_nonceValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + Nonce(); + Nonce(const Nonce& other_value); + Nonce(const OPTIONAL& par_iei, + const OCTETSTRING& par_nonceValue); +inline Nonce& operator=(const Nonce& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Nonce& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Nonce& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& nonceValue() + {return field_nonceValue;} + inline const OCTETSTRING& nonceValue() const + {return field_nonceValue;} +Base_Type* clone() const { return new Nonce(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Nonce_template : public Record_Template { +void set_specific(); +public: +Nonce_template(): Record_Template() {} +Nonce_template(template_sel other_value): Record_Template(other_value) {} +Nonce_template(const Nonce& other_value): Record_Template() { copy_value(&other_value); } +Nonce_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Nonce_template(Nonce_template* p_precondition, Nonce_template* p_implied_template); +Nonce_template(Dynamic_Match_Interface* p_dyn_match); +Nonce_template(const Nonce_template& other_value): Record_Template() { copy_template(other_value); } +~Nonce_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Nonce_template& operator=(template_sel other_value); +Nonce_template& operator=(const Nonce& other_value); +Nonce_template& operator=(const OPTIONAL& other_value); +Nonce_template& operator=(const Nonce_template& other_value); +inline boolean match(const Nonce& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Nonce& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Nonce valueof() const; +inline Nonce_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& nonceValue(); +const OCTETSTRING_template& nonceValue() const; +Record_Template* create() const { return new Nonce_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UERadioCapIdRequest : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_radioCapIdReq; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UERadioCapIdRequest(); + UERadioCapIdRequest(const UERadioCapIdRequest& other_value); + UERadioCapIdRequest(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_radioCapIdReq); +inline UERadioCapIdRequest& operator=(const UERadioCapIdRequest& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UERadioCapIdRequest& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UERadioCapIdRequest& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& radioCapIdReq() + {return field_radioCapIdReq;} + inline const BITSTRING& radioCapIdReq() const + {return field_radioCapIdReq;} +Base_Type* clone() const { return new UERadioCapIdRequest(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UERadioCapIdRequest_template : public Record_Template { +void set_specific(); +public: +UERadioCapIdRequest_template(): Record_Template() {} +UERadioCapIdRequest_template(template_sel other_value): Record_Template(other_value) {} +UERadioCapIdRequest_template(const UERadioCapIdRequest& other_value): Record_Template() { copy_value(&other_value); } +UERadioCapIdRequest_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UERadioCapIdRequest_template(UERadioCapIdRequest_template* p_precondition, UERadioCapIdRequest_template* p_implied_template); +UERadioCapIdRequest_template(Dynamic_Match_Interface* p_dyn_match); +UERadioCapIdRequest_template(const UERadioCapIdRequest_template& other_value): Record_Template() { copy_template(other_value); } +~UERadioCapIdRequest_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UERadioCapIdRequest_template& operator=(template_sel other_value); +UERadioCapIdRequest_template& operator=(const UERadioCapIdRequest& other_value); +UERadioCapIdRequest_template& operator=(const OPTIONAL& other_value); +UERadioCapIdRequest_template& operator=(const UERadioCapIdRequest_template& other_value); +inline boolean match(const UERadioCapIdRequest& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UERadioCapIdRequest& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UERadioCapIdRequest valueof() const; +inline UERadioCapIdRequest_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& radioCapIdReq(); +const BITSTRING_template& radioCapIdReq() const; +Record_Template* create() const { return new UERadioCapIdRequest_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SECURITY__MODE__COMPLETE : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OPTIONAL field_imeisv; + OPTIONAL field_replayedNASMsg; + OPTIONAL field_ueRadioCapId; + Base_Type* fld_vec[6]; + void init_vec(); +public: + SECURITY__MODE__COMPLETE(); + SECURITY__MODE__COMPLETE(const SECURITY__MODE__COMPLETE& other_value); + SECURITY__MODE__COMPLETE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_imeisv, + const OPTIONAL& par_replayedNASMsg, + const OPTIONAL& par_ueRadioCapId); +inline SECURITY__MODE__COMPLETE& operator=(const SECURITY__MODE__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SECURITY__MODE__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SECURITY__MODE__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& imeisv() + {return field_imeisv;} + inline const OPTIONAL& imeisv() const + {return field_imeisv;} + inline OPTIONAL& replayedNASMsg() + {return field_replayedNASMsg;} + inline const OPTIONAL& replayedNASMsg() const + {return field_replayedNASMsg;} + inline OPTIONAL& ueRadioCapId() + {return field_ueRadioCapId;} + inline const OPTIONAL& ueRadioCapId() const + {return field_ueRadioCapId;} +Base_Type* clone() const { return new SECURITY__MODE__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SECURITY__MODE__COMPLETE_template : public Record_Template { +void set_specific(); +public: +SECURITY__MODE__COMPLETE_template(): Record_Template() {} +SECURITY__MODE__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +SECURITY__MODE__COMPLETE_template(const SECURITY__MODE__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +SECURITY__MODE__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SECURITY__MODE__COMPLETE_template(SECURITY__MODE__COMPLETE_template* p_precondition, SECURITY__MODE__COMPLETE_template* p_implied_template); +SECURITY__MODE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +SECURITY__MODE__COMPLETE_template(const SECURITY__MODE__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~SECURITY__MODE__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SECURITY__MODE__COMPLETE_template& operator=(template_sel other_value); +SECURITY__MODE__COMPLETE_template& operator=(const SECURITY__MODE__COMPLETE& other_value); +SECURITY__MODE__COMPLETE_template& operator=(const OPTIONAL& other_value); +SECURITY__MODE__COMPLETE_template& operator=(const SECURITY__MODE__COMPLETE_template& other_value); +inline boolean match(const SECURITY__MODE__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SECURITY__MODE__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SECURITY__MODE__COMPLETE valueof() const; +inline SECURITY__MODE__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::MobileIdentity_template& imeisv(); +const NAS__CommonTypeDefs::MobileIdentity_template& imeisv() const; +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& replayedNASMsg(); +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& replayedNASMsg() const; +NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapId(); +const NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapId() const; +Record_Template* create() const { return new SECURITY__MODE__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SECURITY__MODE__REJECT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + EMM__Cause field_emmCause; + Base_Type* fld_vec[4]; + void init_vec(); +public: + SECURITY__MODE__REJECT(); + SECURITY__MODE__REJECT(const SECURITY__MODE__REJECT& other_value); + SECURITY__MODE__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause); +inline SECURITY__MODE__REJECT& operator=(const SECURITY__MODE__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SECURITY__MODE__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SECURITY__MODE__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline EMM__Cause& emmCause() + {return field_emmCause;} + inline const EMM__Cause& emmCause() const + {return field_emmCause;} +Base_Type* clone() const { return new SECURITY__MODE__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SECURITY__MODE__REJECT_template : public Record_Template { +void set_specific(); +public: +SECURITY__MODE__REJECT_template(): Record_Template() {} +SECURITY__MODE__REJECT_template(template_sel other_value): Record_Template(other_value) {} +SECURITY__MODE__REJECT_template(const SECURITY__MODE__REJECT& other_value): Record_Template() { copy_value(&other_value); } +SECURITY__MODE__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SECURITY__MODE__REJECT_template(SECURITY__MODE__REJECT_template* p_precondition, SECURITY__MODE__REJECT_template* p_implied_template); +SECURITY__MODE__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +SECURITY__MODE__REJECT_template(const SECURITY__MODE__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~SECURITY__MODE__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SECURITY__MODE__REJECT_template& operator=(template_sel other_value); +SECURITY__MODE__REJECT_template& operator=(const SECURITY__MODE__REJECT& other_value); +SECURITY__MODE__REJECT_template& operator=(const OPTIONAL& other_value); +SECURITY__MODE__REJECT_template& operator=(const SECURITY__MODE__REJECT_template& other_value); +inline boolean match(const SECURITY__MODE__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SECURITY__MODE__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SECURITY__MODE__REJECT valueof() const; +inline SECURITY__MODE__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EMM__Cause_template& emmCause(); +const EMM__Cause_template& emmCause() const; +Record_Template* create() const { return new SECURITY__MODE__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SECURITY__PROTECTED__NAS__MESSAGE : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_messageAuthenticationCode; + OCTETSTRING field_sequenceNumber; + OCTETSTRING field_nasMessage; + Base_Type* fld_vec[5]; + void init_vec(); +public: + SECURITY__PROTECTED__NAS__MESSAGE(); + SECURITY__PROTECTED__NAS__MESSAGE(const SECURITY__PROTECTED__NAS__MESSAGE& other_value); + SECURITY__PROTECTED__NAS__MESSAGE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_messageAuthenticationCode, + const OCTETSTRING& par_sequenceNumber, + const OCTETSTRING& par_nasMessage); +inline SECURITY__PROTECTED__NAS__MESSAGE& operator=(const SECURITY__PROTECTED__NAS__MESSAGE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SECURITY__PROTECTED__NAS__MESSAGE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SECURITY__PROTECTED__NAS__MESSAGE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& messageAuthenticationCode() + {return field_messageAuthenticationCode;} + inline const OCTETSTRING& messageAuthenticationCode() const + {return field_messageAuthenticationCode;} + inline OCTETSTRING& sequenceNumber() + {return field_sequenceNumber;} + inline const OCTETSTRING& sequenceNumber() const + {return field_sequenceNumber;} + inline OCTETSTRING& nasMessage() + {return field_nasMessage;} + inline const OCTETSTRING& nasMessage() const + {return field_nasMessage;} +Base_Type* clone() const { return new SECURITY__PROTECTED__NAS__MESSAGE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SECURITY__PROTECTED__NAS__MESSAGE_template : public Record_Template { +void set_specific(); +public: +SECURITY__PROTECTED__NAS__MESSAGE_template(): Record_Template() {} +SECURITY__PROTECTED__NAS__MESSAGE_template(template_sel other_value): Record_Template(other_value) {} +SECURITY__PROTECTED__NAS__MESSAGE_template(const SECURITY__PROTECTED__NAS__MESSAGE& other_value): Record_Template() { copy_value(&other_value); } +SECURITY__PROTECTED__NAS__MESSAGE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SECURITY__PROTECTED__NAS__MESSAGE_template(SECURITY__PROTECTED__NAS__MESSAGE_template* p_precondition, SECURITY__PROTECTED__NAS__MESSAGE_template* p_implied_template); +SECURITY__PROTECTED__NAS__MESSAGE_template(Dynamic_Match_Interface* p_dyn_match); +SECURITY__PROTECTED__NAS__MESSAGE_template(const SECURITY__PROTECTED__NAS__MESSAGE_template& other_value): Record_Template() { copy_template(other_value); } +~SECURITY__PROTECTED__NAS__MESSAGE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SECURITY__PROTECTED__NAS__MESSAGE_template& operator=(template_sel other_value); +SECURITY__PROTECTED__NAS__MESSAGE_template& operator=(const SECURITY__PROTECTED__NAS__MESSAGE& other_value); +SECURITY__PROTECTED__NAS__MESSAGE_template& operator=(const OPTIONAL& other_value); +SECURITY__PROTECTED__NAS__MESSAGE_template& operator=(const SECURITY__PROTECTED__NAS__MESSAGE_template& other_value); +inline boolean match(const SECURITY__PROTECTED__NAS__MESSAGE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SECURITY__PROTECTED__NAS__MESSAGE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SECURITY__PROTECTED__NAS__MESSAGE valueof() const; +inline SECURITY__PROTECTED__NAS__MESSAGE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& messageAuthenticationCode(); +const OCTETSTRING_template& messageAuthenticationCode() const; +OCTETSTRING_template& sequenceNumber(); +const OCTETSTRING_template& sequenceNumber() const; +OCTETSTRING_template& nasMessage(); +const OCTETSTRING_template& nasMessage() const; +Record_Template* create() const { return new SECURITY__PROTECTED__NAS__MESSAGE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SERVICE__REJECT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + EMM__Cause field_emmCause; + OPTIONAL field_t3442; + OPTIONAL field_t3346; + OPTIONAL field_t3448; + OPTIONAL field_lowerBoundTimerValue; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[10]; + void init_vec(); +public: + SERVICE__REJECT(); + SERVICE__REJECT(const SERVICE__REJECT& other_value); + SERVICE__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause, + const OPTIONAL& par_t3442, + const OPTIONAL& par_t3346, + const OPTIONAL& par_t3448, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline SERVICE__REJECT& operator=(const SERVICE__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SERVICE__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SERVICE__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline EMM__Cause& emmCause() + {return field_emmCause;} + inline const EMM__Cause& emmCause() const + {return field_emmCause;} + inline OPTIONAL& t3442() + {return field_t3442;} + inline const OPTIONAL& t3442() const + {return field_t3442;} + inline OPTIONAL& t3346() + {return field_t3346;} + inline const OPTIONAL& t3346() const + {return field_t3346;} + inline OPTIONAL& t3448() + {return field_t3448;} + inline const OPTIONAL& t3448() const + {return field_t3448;} + inline OPTIONAL& lowerBoundTimerValue() + {return field_lowerBoundTimerValue;} + inline const OPTIONAL& lowerBoundTimerValue() const + {return field_lowerBoundTimerValue;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new SERVICE__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +int optional_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SERVICE__REJECT_template : public Record_Template { +void set_specific(); +public: +SERVICE__REJECT_template(): Record_Template() {} +SERVICE__REJECT_template(template_sel other_value): Record_Template(other_value) {} +SERVICE__REJECT_template(const SERVICE__REJECT& other_value): Record_Template() { copy_value(&other_value); } +SERVICE__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SERVICE__REJECT_template(SERVICE__REJECT_template* p_precondition, SERVICE__REJECT_template* p_implied_template); +SERVICE__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +SERVICE__REJECT_template(const SERVICE__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~SERVICE__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SERVICE__REJECT_template& operator=(template_sel other_value); +SERVICE__REJECT_template& operator=(const SERVICE__REJECT& other_value); +SERVICE__REJECT_template& operator=(const OPTIONAL& other_value); +SERVICE__REJECT_template& operator=(const SERVICE__REJECT_template& other_value); +inline boolean match(const SERVICE__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SERVICE__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SERVICE__REJECT valueof() const; +inline SERVICE__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EMM__Cause_template& emmCause(); +const EMM__Cause_template& emmCause() const; +NAS__CommonTypeDefs::GPRS__Timer_template& t3442(); +const NAS__CommonTypeDefs::GPRS__Timer_template& t3442() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3346(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3346() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3448(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3448() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue() const; +TrackingAreaIdList_template& forbidTAIList__Roaming(); +const TrackingAreaIdList_template& forbidTAIList__Roaming() const; +TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new SERVICE__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class KSIandSN : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_ksi; + BITSTRING field_sn; + Base_Type* fld_vec[3]; + void init_vec(); +public: + KSIandSN(); + KSIandSN(const KSIandSN& other_value); + KSIandSN(const OPTIONAL& par_iei, + const BITSTRING& par_ksi, + const BITSTRING& par_sn); +inline KSIandSN& operator=(const KSIandSN& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const KSIandSN& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const KSIandSN& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& ksi() + {return field_ksi;} + inline const BITSTRING& ksi() const + {return field_ksi;} + inline BITSTRING& sn() + {return field_sn;} + inline const BITSTRING& sn() const + {return field_sn;} +Base_Type* clone() const { return new KSIandSN(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class KSIandSN_template : public Record_Template { +void set_specific(); +public: +KSIandSN_template(): Record_Template() {} +KSIandSN_template(template_sel other_value): Record_Template(other_value) {} +KSIandSN_template(const KSIandSN& other_value): Record_Template() { copy_value(&other_value); } +KSIandSN_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +KSIandSN_template(KSIandSN_template* p_precondition, KSIandSN_template* p_implied_template); +KSIandSN_template(Dynamic_Match_Interface* p_dyn_match); +KSIandSN_template(const KSIandSN_template& other_value): Record_Template() { copy_template(other_value); } +~KSIandSN_template(); +boolean match_dynamic(const Base_Type* match_value) const; +KSIandSN_template& operator=(template_sel other_value); +KSIandSN_template& operator=(const KSIandSN& other_value); +KSIandSN_template& operator=(const OPTIONAL& other_value); +KSIandSN_template& operator=(const KSIandSN_template& other_value); +inline boolean match(const KSIandSN& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const KSIandSN& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +KSIandSN valueof() const; +inline KSIandSN_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& ksi(); +const BITSTRING_template& ksi() const; +BITSTRING_template& sn(); +const BITSTRING_template& sn() const; +Record_Template* create() const { return new KSIandSN_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ShortMAC : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_macValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + ShortMAC(); + ShortMAC(const ShortMAC& other_value); + ShortMAC(const OPTIONAL& par_iei, + const BITSTRING& par_macValue); +inline ShortMAC& operator=(const ShortMAC& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ShortMAC& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ShortMAC& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& macValue() + {return field_macValue;} + inline const BITSTRING& macValue() const + {return field_macValue;} +Base_Type* clone() const { return new ShortMAC(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ShortMAC_template : public Record_Template { +void set_specific(); +public: +ShortMAC_template(): Record_Template() {} +ShortMAC_template(template_sel other_value): Record_Template(other_value) {} +ShortMAC_template(const ShortMAC& other_value): Record_Template() { copy_value(&other_value); } +ShortMAC_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ShortMAC_template(ShortMAC_template* p_precondition, ShortMAC_template* p_implied_template); +ShortMAC_template(Dynamic_Match_Interface* p_dyn_match); +ShortMAC_template(const ShortMAC_template& other_value): Record_Template() { copy_template(other_value); } +~ShortMAC_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ShortMAC_template& operator=(template_sel other_value); +ShortMAC_template& operator=(const ShortMAC& other_value); +ShortMAC_template& operator=(const OPTIONAL& other_value); +ShortMAC_template& operator=(const ShortMAC_template& other_value); +inline boolean match(const ShortMAC& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ShortMAC& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ShortMAC valueof() const; +inline ShortMAC_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& macValue(); +const BITSTRING_template& macValue() const; +Record_Template* create() const { return new ShortMAC_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SERVICE__REQUEST : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + KSIandSN field_ksiAndSN; + ShortMAC field_shortMAC; + Base_Type* fld_vec[4]; + void init_vec(); +public: + SERVICE__REQUEST(); + SERVICE__REQUEST(const SERVICE__REQUEST& other_value); + SERVICE__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const KSIandSN& par_ksiAndSN, + const ShortMAC& par_shortMAC); +inline SERVICE__REQUEST& operator=(const SERVICE__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SERVICE__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SERVICE__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline KSIandSN& ksiAndSN() + {return field_ksiAndSN;} + inline const KSIandSN& ksiAndSN() const + {return field_ksiAndSN;} + inline ShortMAC& shortMAC() + {return field_shortMAC;} + inline const ShortMAC& shortMAC() const + {return field_shortMAC;} +Base_Type* clone() const { return new SERVICE__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SERVICE__REQUEST_template : public Record_Template { +void set_specific(); +public: +SERVICE__REQUEST_template(): Record_Template() {} +SERVICE__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +SERVICE__REQUEST_template(const SERVICE__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +SERVICE__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SERVICE__REQUEST_template(SERVICE__REQUEST_template* p_precondition, SERVICE__REQUEST_template* p_implied_template); +SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +SERVICE__REQUEST_template(const SERVICE__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~SERVICE__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SERVICE__REQUEST_template& operator=(template_sel other_value); +SERVICE__REQUEST_template& operator=(const SERVICE__REQUEST& other_value); +SERVICE__REQUEST_template& operator=(const OPTIONAL& other_value); +SERVICE__REQUEST_template& operator=(const SERVICE__REQUEST_template& other_value); +inline boolean match(const SERVICE__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SERVICE__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SERVICE__REQUEST valueof() const; +inline SERVICE__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +KSIandSN_template& ksiAndSN(); +const KSIandSN_template& ksiAndSN() const; +ShortMAC_template& shortMAC(); +const ShortMAC_template& shortMAC() const; +Record_Template* create() const { return new SERVICE__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__UpdateResult : public Record_Type { + BITSTRING field_spare; + BITSTRING field_resultValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + EPS__UpdateResult(); + EPS__UpdateResult(const EPS__UpdateResult& other_value); + EPS__UpdateResult(const BITSTRING& par_spare, + const BITSTRING& par_resultValue); +inline EPS__UpdateResult& operator=(const EPS__UpdateResult& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__UpdateResult& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__UpdateResult& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& resultValue() + {return field_resultValue;} + inline const BITSTRING& resultValue() const + {return field_resultValue;} +Base_Type* clone() const { return new EPS__UpdateResult(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__UpdateResult_template : public Record_Template { +void set_specific(); +public: +EPS__UpdateResult_template(): Record_Template() {} +EPS__UpdateResult_template(template_sel other_value): Record_Template(other_value) {} +EPS__UpdateResult_template(const EPS__UpdateResult& other_value): Record_Template() { copy_value(&other_value); } +EPS__UpdateResult_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__UpdateResult_template(EPS__UpdateResult_template* p_precondition, EPS__UpdateResult_template* p_implied_template); +EPS__UpdateResult_template(Dynamic_Match_Interface* p_dyn_match); +EPS__UpdateResult_template(const EPS__UpdateResult_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__UpdateResult_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__UpdateResult_template& operator=(template_sel other_value); +EPS__UpdateResult_template& operator=(const EPS__UpdateResult& other_value); +EPS__UpdateResult_template& operator=(const OPTIONAL& other_value); +EPS__UpdateResult_template& operator=(const EPS__UpdateResult_template& other_value); +inline boolean match(const EPS__UpdateResult& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__UpdateResult& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__UpdateResult valueof() const; +inline EPS__UpdateResult_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& resultValue(); +const BITSTRING_template& resultValue() const; +Record_Template* create() const { return new EPS__UpdateResult_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TRACKING__AREA__UPDATE__ACCEPT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet; + EPS__UpdateResult field_epsUpdateResult; + OPTIONAL field_t3412; + OPTIONAL field_guti; + OPTIONAL field_taiList; + OPTIONAL field_epsBearerContextStatus; + OPTIONAL field_lai; + OPTIONAL field_msIdentity; + OPTIONAL field_emmCause; + OPTIONAL field_t3402; + OPTIONAL field_t3423; + OPTIONAL field_equivalentPlmns; + OPTIONAL field_asmeNasKeySetId; + OPTIONAL field_emergencyNumberList; + OPTIONAL field_epsNetworkFeatureSupport; + OPTIONAL field_addUpdateResult; + OPTIONAL field_t3412ExtdValue; + OPTIONAL field_t3324Value; + OPTIONAL field_extendedDRXParams; + OPTIONAL field_headerCompressionConfigStatus; + OPTIONAL field_dcnId; + OPTIONAL field_smsServicesStatus; + OPTIONAL field_non3GPP__NW__ProvidedPolicies; + OPTIONAL field_t3448; + OPTIONAL field_networkPolicy; + OPTIONAL field_t3447Value; + OPTIONAL field_xtdEmergencyNumList; + OPTIONAL field_cipheringKeyData; + OPTIONAL field_ueRadioCapId; + OPTIONAL field_ueRadioCapIdDeleteInd; + OPTIONAL field_negotiatedWUSAssistInfo; + OPTIONAL field_negotiatedDRXinNB__S1; + OPTIONAL field_negotiatedIMSI__Offset; + OPTIONAL field_epsAddRequestResult; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[39]; + void init_vec(); +public: + TRACKING__AREA__UPDATE__ACCEPT(); + TRACKING__AREA__UPDATE__ACCEPT(const TRACKING__AREA__UPDATE__ACCEPT& other_value); + TRACKING__AREA__UPDATE__ACCEPT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const EPS__UpdateResult& par_epsUpdateResult, + const OPTIONAL& par_t3412, + const OPTIONAL& par_guti, + const OPTIONAL& par_taiList, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_lai, + const OPTIONAL& par_msIdentity, + const OPTIONAL& par_emmCause, + const OPTIONAL& par_t3402, + const OPTIONAL& par_t3423, + const OPTIONAL& par_equivalentPlmns, + const OPTIONAL& par_asmeNasKeySetId, + const OPTIONAL& par_emergencyNumberList, + const OPTIONAL& par_epsNetworkFeatureSupport, + const OPTIONAL& par_addUpdateResult, + const OPTIONAL& par_t3412ExtdValue, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_extendedDRXParams, + const OPTIONAL& par_headerCompressionConfigStatus, + const OPTIONAL& par_dcnId, + const OPTIONAL& par_smsServicesStatus, + const OPTIONAL& par_non3GPP__NW__ProvidedPolicies, + const OPTIONAL& par_t3448, + const OPTIONAL& par_networkPolicy, + const OPTIONAL& par_t3447Value, + const OPTIONAL& par_xtdEmergencyNumList, + const OPTIONAL& par_cipheringKeyData, + const OPTIONAL& par_ueRadioCapId, + const OPTIONAL& par_ueRadioCapIdDeleteInd, + const OPTIONAL& par_negotiatedWUSAssistInfo, + const OPTIONAL& par_negotiatedDRXinNB__S1, + const OPTIONAL& par_negotiatedIMSI__Offset, + const OPTIONAL& par_epsAddRequestResult, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline TRACKING__AREA__UPDATE__ACCEPT& operator=(const TRACKING__AREA__UPDATE__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TRACKING__AREA__UPDATE__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TRACKING__AREA__UPDATE__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline EPS__UpdateResult& epsUpdateResult() + {return field_epsUpdateResult;} + inline const EPS__UpdateResult& epsUpdateResult() const + {return field_epsUpdateResult;} + inline OPTIONAL& t3412() + {return field_t3412;} + inline const OPTIONAL& t3412() const + {return field_t3412;} + inline OPTIONAL& guti() + {return field_guti;} + inline const OPTIONAL& guti() const + {return field_guti;} + inline OPTIONAL& taiList() + {return field_taiList;} + inline const OPTIONAL& taiList() const + {return field_taiList;} + inline OPTIONAL& epsBearerContextStatus() + {return field_epsBearerContextStatus;} + inline const OPTIONAL& epsBearerContextStatus() const + {return field_epsBearerContextStatus;} + inline OPTIONAL& lai() + {return field_lai;} + inline const OPTIONAL& lai() const + {return field_lai;} + inline OPTIONAL& msIdentity() + {return field_msIdentity;} + inline const OPTIONAL& msIdentity() const + {return field_msIdentity;} + inline OPTIONAL& emmCause() + {return field_emmCause;} + inline const OPTIONAL& emmCause() const + {return field_emmCause;} + inline OPTIONAL& t3402() + {return field_t3402;} + inline const OPTIONAL& t3402() const + {return field_t3402;} + inline OPTIONAL& t3423() + {return field_t3423;} + inline const OPTIONAL& t3423() const + {return field_t3423;} + inline OPTIONAL& equivalentPlmns() + {return field_equivalentPlmns;} + inline const OPTIONAL& equivalentPlmns() const + {return field_equivalentPlmns;} + inline OPTIONAL& asmeNasKeySetId() + {return field_asmeNasKeySetId;} + inline const OPTIONAL& asmeNasKeySetId() const + {return field_asmeNasKeySetId;} + inline OPTIONAL& emergencyNumberList() + {return field_emergencyNumberList;} + inline const OPTIONAL& emergencyNumberList() const + {return field_emergencyNumberList;} + inline OPTIONAL& epsNetworkFeatureSupport() + {return field_epsNetworkFeatureSupport;} + inline const OPTIONAL& epsNetworkFeatureSupport() const + {return field_epsNetworkFeatureSupport;} + inline OPTIONAL& addUpdateResult() + {return field_addUpdateResult;} + inline const OPTIONAL& addUpdateResult() const + {return field_addUpdateResult;} + inline OPTIONAL& t3412ExtdValue() + {return field_t3412ExtdValue;} + inline const OPTIONAL& t3412ExtdValue() const + {return field_t3412ExtdValue;} + inline OPTIONAL& t3324Value() + {return field_t3324Value;} + inline const OPTIONAL& t3324Value() const + {return field_t3324Value;} + inline OPTIONAL& extendedDRXParams() + {return field_extendedDRXParams;} + inline const OPTIONAL& extendedDRXParams() const + {return field_extendedDRXParams;} + inline OPTIONAL& headerCompressionConfigStatus() + {return field_headerCompressionConfigStatus;} + inline const OPTIONAL& headerCompressionConfigStatus() const + {return field_headerCompressionConfigStatus;} + inline OPTIONAL& dcnId() + {return field_dcnId;} + inline const OPTIONAL& dcnId() const + {return field_dcnId;} + inline OPTIONAL& smsServicesStatus() + {return field_smsServicesStatus;} + inline const OPTIONAL& smsServicesStatus() const + {return field_smsServicesStatus;} + inline OPTIONAL& non3GPP__NW__ProvidedPolicies() + {return field_non3GPP__NW__ProvidedPolicies;} + inline const OPTIONAL& non3GPP__NW__ProvidedPolicies() const + {return field_non3GPP__NW__ProvidedPolicies;} + inline OPTIONAL& t3448() + {return field_t3448;} + inline const OPTIONAL& t3448() const + {return field_t3448;} + inline OPTIONAL& networkPolicy() + {return field_networkPolicy;} + inline const OPTIONAL& networkPolicy() const + {return field_networkPolicy;} + inline OPTIONAL& t3447Value() + {return field_t3447Value;} + inline const OPTIONAL& t3447Value() const + {return field_t3447Value;} + inline OPTIONAL& xtdEmergencyNumList() + {return field_xtdEmergencyNumList;} + inline const OPTIONAL& xtdEmergencyNumList() const + {return field_xtdEmergencyNumList;} + inline OPTIONAL& cipheringKeyData() + {return field_cipheringKeyData;} + inline const OPTIONAL& cipheringKeyData() const + {return field_cipheringKeyData;} + inline OPTIONAL& ueRadioCapId() + {return field_ueRadioCapId;} + inline const OPTIONAL& ueRadioCapId() const + {return field_ueRadioCapId;} + inline OPTIONAL& ueRadioCapIdDeleteInd() + {return field_ueRadioCapIdDeleteInd;} + inline const OPTIONAL& ueRadioCapIdDeleteInd() const + {return field_ueRadioCapIdDeleteInd;} + inline OPTIONAL& negotiatedWUSAssistInfo() + {return field_negotiatedWUSAssistInfo;} + inline const OPTIONAL& negotiatedWUSAssistInfo() const + {return field_negotiatedWUSAssistInfo;} + inline OPTIONAL& negotiatedDRXinNB__S1() + {return field_negotiatedDRXinNB__S1;} + inline const OPTIONAL& negotiatedDRXinNB__S1() const + {return field_negotiatedDRXinNB__S1;} + inline OPTIONAL& negotiatedIMSI__Offset() + {return field_negotiatedIMSI__Offset;} + inline const OPTIONAL& negotiatedIMSI__Offset() const + {return field_negotiatedIMSI__Offset;} + inline OPTIONAL& epsAddRequestResult() + {return field_epsAddRequestResult;} + inline const OPTIONAL& epsAddRequestResult() const + {return field_epsAddRequestResult;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new TRACKING__AREA__UPDATE__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 39; } +int optional_count() const { return 34; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TRACKING__AREA__UPDATE__ACCEPT_template : public Record_Template { +void set_specific(); +public: +TRACKING__AREA__UPDATE__ACCEPT_template(): Record_Template() {} +TRACKING__AREA__UPDATE__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +TRACKING__AREA__UPDATE__ACCEPT_template(const TRACKING__AREA__UPDATE__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +TRACKING__AREA__UPDATE__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TRACKING__AREA__UPDATE__ACCEPT_template(TRACKING__AREA__UPDATE__ACCEPT_template* p_precondition, TRACKING__AREA__UPDATE__ACCEPT_template* p_implied_template); +TRACKING__AREA__UPDATE__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +TRACKING__AREA__UPDATE__ACCEPT_template(const TRACKING__AREA__UPDATE__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~TRACKING__AREA__UPDATE__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TRACKING__AREA__UPDATE__ACCEPT_template& operator=(template_sel other_value); +TRACKING__AREA__UPDATE__ACCEPT_template& operator=(const TRACKING__AREA__UPDATE__ACCEPT& other_value); +TRACKING__AREA__UPDATE__ACCEPT_template& operator=(const OPTIONAL& other_value); +TRACKING__AREA__UPDATE__ACCEPT_template& operator=(const TRACKING__AREA__UPDATE__ACCEPT_template& other_value); +inline boolean match(const TRACKING__AREA__UPDATE__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TRACKING__AREA__UPDATE__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TRACKING__AREA__UPDATE__ACCEPT valueof() const; +inline TRACKING__AREA__UPDATE__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +EPS__UpdateResult_template& epsUpdateResult(); +const EPS__UpdateResult_template& epsUpdateResult() const; +NAS__CommonTypeDefs::GPRS__Timer_template& t3412(); +const NAS__CommonTypeDefs::GPRS__Timer_template& t3412() const; +NAS__CommonTypeDefs::MobileIdentity_template& guti(); +const NAS__CommonTypeDefs::MobileIdentity_template& guti() const; +TrackingAreaIdList_template& taiList(); +const TrackingAreaIdList_template& taiList() const; +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus(); +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus() const; +NAS__CommonTypeDefs::LocAreaId_template& lai(); +const NAS__CommonTypeDefs::LocAreaId_template& lai() const; +NAS__CommonTypeDefs::MobileIdentity_template& msIdentity(); +const NAS__CommonTypeDefs::MobileIdentity_template& msIdentity() const; +EMM__Cause_template& emmCause(); +const EMM__Cause_template& emmCause() const; +NAS__CommonTypeDefs::GPRS__Timer_template& t3402(); +const NAS__CommonTypeDefs::GPRS__Timer_template& t3402() const; +NAS__CommonTypeDefs::GPRS__Timer_template& t3423(); +const NAS__CommonTypeDefs::GPRS__Timer_template& t3423() const; +NAS__CommonTypeDefs::PLMN__List_template& equivalentPlmns(); +const NAS__CommonTypeDefs::PLMN__List_template& equivalentPlmns() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId() const; +NAS__CommonTypeDefs::EmergNumList_template& emergencyNumberList(); +const NAS__CommonTypeDefs::EmergNumList_template& emergencyNumberList() const; +EPS__NetworkFeatureSupport_template& epsNetworkFeatureSupport(); +const EPS__NetworkFeatureSupport_template& epsNetworkFeatureSupport() const; +AdditionalUpdateResult_template& addUpdateResult(); +const AdditionalUpdateResult_template& addUpdateResult() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3412ExtdValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3412ExtdValue() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value() const; +NAS__CommonTypeDefs::ExtdDRXParams_template& extendedDRXParams(); +const NAS__CommonTypeDefs::ExtdDRXParams_template& extendedDRXParams() const; +HeaderCompressConfigStatus_template& headerCompressionConfigStatus(); +const HeaderCompressConfigStatus_template& headerCompressionConfigStatus() const; +NAS__CommonTypeDefs::DCN__ID_template& dcnId(); +const NAS__CommonTypeDefs::DCN__ID_template& dcnId() const; +SMSServicesStatus_template& smsServicesStatus(); +const SMSServicesStatus_template& smsServicesStatus() const; +NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& non3GPP__NW__ProvidedPolicies(); +const NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& non3GPP__NW__ProvidedPolicies() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3448(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3448() const; +NetworkPolicy_template& networkPolicy(); +const NetworkPolicy_template& networkPolicy() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3447Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3447Value() const; +NAS__CommonTypeDefs::ExtdEmergNumList_template& xtdEmergencyNumList(); +const NAS__CommonTypeDefs::ExtdEmergNumList_template& xtdEmergencyNumList() const; +CipheringKeyData_template& cipheringKeyData(); +const CipheringKeyData_template& cipheringKeyData() const; +NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapId(); +const NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapId() const; +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeleteInd(); +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeleteInd() const; +NAS__CommonTypeDefs::WUSAssistInfo_template& negotiatedWUSAssistInfo(); +const NAS__CommonTypeDefs::WUSAssistInfo_template& negotiatedWUSAssistInfo() const; +NAS__CommonTypeDefs::DRXParamCommon_template& negotiatedDRXinNB__S1(); +const NAS__CommonTypeDefs::DRXParamCommon_template& negotiatedDRXinNB__S1() const; +IMSI__Offset_template& negotiatedIMSI__Offset(); +const IMSI__Offset_template& negotiatedIMSI__Offset() const; +EPS__AddReqResult_template& epsAddRequestResult(); +const EPS__AddReqResult_template& epsAddRequestResult() const; +TrackingAreaIdList_template& forbidTAIList__Roaming(); +const TrackingAreaIdList_template& forbidTAIList__Roaming() const; +TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new TRACKING__AREA__UPDATE__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class HeaderCompressConfigStatus : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_epsBearerInd__0__7; + OCTETSTRING field_epsBearerInd__8__15; + Base_Type* fld_vec[4]; + void init_vec(); +public: + HeaderCompressConfigStatus(); + HeaderCompressConfigStatus(const HeaderCompressConfigStatus& other_value); + HeaderCompressConfigStatus(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_epsBearerInd__0__7, + const OCTETSTRING& par_epsBearerInd__8__15); +inline HeaderCompressConfigStatus& operator=(const HeaderCompressConfigStatus& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const HeaderCompressConfigStatus& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const HeaderCompressConfigStatus& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& epsBearerInd__0__7() + {return field_epsBearerInd__0__7;} + inline const OCTETSTRING& epsBearerInd__0__7() const + {return field_epsBearerInd__0__7;} + inline OCTETSTRING& epsBearerInd__8__15() + {return field_epsBearerInd__8__15;} + inline const OCTETSTRING& epsBearerInd__8__15() const + {return field_epsBearerInd__8__15;} +Base_Type* clone() const { return new HeaderCompressConfigStatus(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class HeaderCompressConfigStatus_template : public Record_Template { +void set_specific(); +public: +HeaderCompressConfigStatus_template(): Record_Template() {} +HeaderCompressConfigStatus_template(template_sel other_value): Record_Template(other_value) {} +HeaderCompressConfigStatus_template(const HeaderCompressConfigStatus& other_value): Record_Template() { copy_value(&other_value); } +HeaderCompressConfigStatus_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +HeaderCompressConfigStatus_template(HeaderCompressConfigStatus_template* p_precondition, HeaderCompressConfigStatus_template* p_implied_template); +HeaderCompressConfigStatus_template(Dynamic_Match_Interface* p_dyn_match); +HeaderCompressConfigStatus_template(const HeaderCompressConfigStatus_template& other_value): Record_Template() { copy_template(other_value); } +~HeaderCompressConfigStatus_template(); +boolean match_dynamic(const Base_Type* match_value) const; +HeaderCompressConfigStatus_template& operator=(template_sel other_value); +HeaderCompressConfigStatus_template& operator=(const HeaderCompressConfigStatus& other_value); +HeaderCompressConfigStatus_template& operator=(const OPTIONAL& other_value); +HeaderCompressConfigStatus_template& operator=(const HeaderCompressConfigStatus_template& other_value); +inline boolean match(const HeaderCompressConfigStatus& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const HeaderCompressConfigStatus& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +HeaderCompressConfigStatus valueof() const; +inline HeaderCompressConfigStatus_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& epsBearerInd__0__7(); +const OCTETSTRING_template& epsBearerInd__0__7() const; +OCTETSTRING_template& epsBearerInd__8__15(); +const OCTETSTRING_template& epsBearerInd__8__15() const; +Record_Template* create() const { return new HeaderCompressConfigStatus_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__AddReqResult : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_prd; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EPS__AddReqResult(); + EPS__AddReqResult(const EPS__AddReqResult& other_value); + EPS__AddReqResult(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_prd); +inline EPS__AddReqResult& operator=(const EPS__AddReqResult& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__AddReqResult& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__AddReqResult& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& prd() + {return field_prd;} + inline const BITSTRING& prd() const + {return field_prd;} +Base_Type* clone() const { return new EPS__AddReqResult(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__AddReqResult_template : public Record_Template { +void set_specific(); +public: +EPS__AddReqResult_template(): Record_Template() {} +EPS__AddReqResult_template(template_sel other_value): Record_Template(other_value) {} +EPS__AddReqResult_template(const EPS__AddReqResult& other_value): Record_Template() { copy_value(&other_value); } +EPS__AddReqResult_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__AddReqResult_template(EPS__AddReqResult_template* p_precondition, EPS__AddReqResult_template* p_implied_template); +EPS__AddReqResult_template(Dynamic_Match_Interface* p_dyn_match); +EPS__AddReqResult_template(const EPS__AddReqResult_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__AddReqResult_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__AddReqResult_template& operator=(template_sel other_value); +EPS__AddReqResult_template& operator=(const EPS__AddReqResult& other_value); +EPS__AddReqResult_template& operator=(const OPTIONAL& other_value); +EPS__AddReqResult_template& operator=(const EPS__AddReqResult_template& other_value); +inline boolean match(const EPS__AddReqResult& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__AddReqResult& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__AddReqResult valueof() const; +inline EPS__AddReqResult_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& prd(); +const BITSTRING_template& prd() const; +Record_Template* create() const { return new EPS__AddReqResult_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TRACKING__AREA__UPDATE__COMPLETE : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + TRACKING__AREA__UPDATE__COMPLETE(); + TRACKING__AREA__UPDATE__COMPLETE(const TRACKING__AREA__UPDATE__COMPLETE& other_value); + TRACKING__AREA__UPDATE__COMPLETE(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline TRACKING__AREA__UPDATE__COMPLETE& operator=(const TRACKING__AREA__UPDATE__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TRACKING__AREA__UPDATE__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TRACKING__AREA__UPDATE__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new TRACKING__AREA__UPDATE__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TRACKING__AREA__UPDATE__COMPLETE_template : public Record_Template { +void set_specific(); +public: +TRACKING__AREA__UPDATE__COMPLETE_template(): Record_Template() {} +TRACKING__AREA__UPDATE__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +TRACKING__AREA__UPDATE__COMPLETE_template(const TRACKING__AREA__UPDATE__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +TRACKING__AREA__UPDATE__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TRACKING__AREA__UPDATE__COMPLETE_template(TRACKING__AREA__UPDATE__COMPLETE_template* p_precondition, TRACKING__AREA__UPDATE__COMPLETE_template* p_implied_template); +TRACKING__AREA__UPDATE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +TRACKING__AREA__UPDATE__COMPLETE_template(const TRACKING__AREA__UPDATE__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~TRACKING__AREA__UPDATE__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TRACKING__AREA__UPDATE__COMPLETE_template& operator=(template_sel other_value); +TRACKING__AREA__UPDATE__COMPLETE_template& operator=(const TRACKING__AREA__UPDATE__COMPLETE& other_value); +TRACKING__AREA__UPDATE__COMPLETE_template& operator=(const OPTIONAL& other_value); +TRACKING__AREA__UPDATE__COMPLETE_template& operator=(const TRACKING__AREA__UPDATE__COMPLETE_template& other_value); +inline boolean match(const TRACKING__AREA__UPDATE__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TRACKING__AREA__UPDATE__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TRACKING__AREA__UPDATE__COMPLETE valueof() const; +inline TRACKING__AREA__UPDATE__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new TRACKING__AREA__UPDATE__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TRACKING__AREA__UPDATE__REJECT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + EMM__Cause field_emmCause; + OPTIONAL field_t3346; + OPTIONAL field_extdEMMCause; + OPTIONAL field_lowerBoundTimerValue; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[9]; + void init_vec(); +public: + TRACKING__AREA__UPDATE__REJECT(); + TRACKING__AREA__UPDATE__REJECT(const TRACKING__AREA__UPDATE__REJECT& other_value); + TRACKING__AREA__UPDATE__REJECT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const EMM__Cause& par_emmCause, + const OPTIONAL& par_t3346, + const OPTIONAL& par_extdEMMCause, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline TRACKING__AREA__UPDATE__REJECT& operator=(const TRACKING__AREA__UPDATE__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TRACKING__AREA__UPDATE__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TRACKING__AREA__UPDATE__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline EMM__Cause& emmCause() + {return field_emmCause;} + inline const EMM__Cause& emmCause() const + {return field_emmCause;} + inline OPTIONAL& t3346() + {return field_t3346;} + inline const OPTIONAL& t3346() const + {return field_t3346;} + inline OPTIONAL& extdEMMCause() + {return field_extdEMMCause;} + inline const OPTIONAL& extdEMMCause() const + {return field_extdEMMCause;} + inline OPTIONAL& lowerBoundTimerValue() + {return field_lowerBoundTimerValue;} + inline const OPTIONAL& lowerBoundTimerValue() const + {return field_lowerBoundTimerValue;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new TRACKING__AREA__UPDATE__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 9; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TRACKING__AREA__UPDATE__REJECT_template : public Record_Template { +void set_specific(); +public: +TRACKING__AREA__UPDATE__REJECT_template(): Record_Template() {} +TRACKING__AREA__UPDATE__REJECT_template(template_sel other_value): Record_Template(other_value) {} +TRACKING__AREA__UPDATE__REJECT_template(const TRACKING__AREA__UPDATE__REJECT& other_value): Record_Template() { copy_value(&other_value); } +TRACKING__AREA__UPDATE__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TRACKING__AREA__UPDATE__REJECT_template(TRACKING__AREA__UPDATE__REJECT_template* p_precondition, TRACKING__AREA__UPDATE__REJECT_template* p_implied_template); +TRACKING__AREA__UPDATE__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +TRACKING__AREA__UPDATE__REJECT_template(const TRACKING__AREA__UPDATE__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~TRACKING__AREA__UPDATE__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TRACKING__AREA__UPDATE__REJECT_template& operator=(template_sel other_value); +TRACKING__AREA__UPDATE__REJECT_template& operator=(const TRACKING__AREA__UPDATE__REJECT& other_value); +TRACKING__AREA__UPDATE__REJECT_template& operator=(const OPTIONAL& other_value); +TRACKING__AREA__UPDATE__REJECT_template& operator=(const TRACKING__AREA__UPDATE__REJECT_template& other_value); +inline boolean match(const TRACKING__AREA__UPDATE__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TRACKING__AREA__UPDATE__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TRACKING__AREA__UPDATE__REJECT valueof() const; +inline TRACKING__AREA__UPDATE__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EMM__Cause_template& emmCause(); +const EMM__Cause_template& emmCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3346(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3346() const; +Extd__EMM__Cause_template& extdEMMCause(); +const Extd__EMM__Cause_template& extdEMMCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue() const; +TrackingAreaIdList_template& forbidTAIList__Roaming(); +const TrackingAreaIdList_template& forbidTAIList__Roaming() const; +TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new TRACKING__AREA__UPDATE__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__UpdateType : public Record_Type { + BITSTRING field_activeFlag; + BITSTRING field_typeValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + EPS__UpdateType(); + EPS__UpdateType(const EPS__UpdateType& other_value); + EPS__UpdateType(const BITSTRING& par_activeFlag, + const BITSTRING& par_typeValue); +inline EPS__UpdateType& operator=(const EPS__UpdateType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__UpdateType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__UpdateType& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& activeFlag() + {return field_activeFlag;} + inline const BITSTRING& activeFlag() const + {return field_activeFlag;} + inline BITSTRING& typeValue() + {return field_typeValue;} + inline const BITSTRING& typeValue() const + {return field_typeValue;} +Base_Type* clone() const { return new EPS__UpdateType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__UpdateType_template : public Record_Template { +void set_specific(); +public: +EPS__UpdateType_template(): Record_Template() {} +EPS__UpdateType_template(template_sel other_value): Record_Template(other_value) {} +EPS__UpdateType_template(const EPS__UpdateType& other_value): Record_Template() { copy_value(&other_value); } +EPS__UpdateType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__UpdateType_template(EPS__UpdateType_template* p_precondition, EPS__UpdateType_template* p_implied_template); +EPS__UpdateType_template(Dynamic_Match_Interface* p_dyn_match); +EPS__UpdateType_template(const EPS__UpdateType_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__UpdateType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__UpdateType_template& operator=(template_sel other_value); +EPS__UpdateType_template& operator=(const EPS__UpdateType& other_value); +EPS__UpdateType_template& operator=(const OPTIONAL& other_value); +EPS__UpdateType_template& operator=(const EPS__UpdateType_template& other_value); +inline boolean match(const EPS__UpdateType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__UpdateType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__UpdateType valueof() const; +inline EPS__UpdateType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& activeFlag(); +const BITSTRING_template& activeFlag() const; +BITSTRING_template& typeValue(); +const BITSTRING_template& typeValue() const; +Record_Template* create() const { return new EPS__UpdateType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TRACKING__AREA__UPDATE__REQUEST : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_asmeNasKeySetId; + EPS__UpdateType field_epsUpdateType; + NAS__CommonTypeDefs::MobileIdentity field_oldGuti; + OPTIONAL field_nonCurrentNativeNasKeySetId; + OPTIONAL field_gprsCipheringKeySeqNum; + OPTIONAL field_oldPtmsiSignature; + OPTIONAL field_additionalGuti; + OPTIONAL field_nonce; + OPTIONAL field_ueNetworkCapability; + OPTIONAL field_lastVisitedRegisteredTai; + OPTIONAL field_drxParameter; + OPTIONAL field_ueRadioCapNeeded; + OPTIONAL field_epsBearerContextStatus; + OPTIONAL field_msNetworkCapability; + OPTIONAL field_oldLai; + OPTIONAL field_tmsiStatus; + OPTIONAL field_msClassmark2; + OPTIONAL field_msClassmark3; + OPTIONAL field_supportedCodecList; + OPTIONAL field_addUpdateType; + OPTIONAL field_voiceDomainPref; + OPTIONAL field_oldGUTI__Type; + OPTIONAL field_deviceProperties; + OPTIONAL field_msNetworkFeatureSupport; + OPTIONAL field_tmsiBasedNRIContainer; + OPTIONAL field_t3324Value; + OPTIONAL field_t3412ExtdValue; + OPTIONAL field_extendedDRXParams; + OPTIONAL field_ueAddSecurityCap; + OPTIONAL field_ueStatus; + OPTIONAL field_addInfoReq; + OPTIONAL field_n1UENetworkCap; + OPTIONAL field_ueRadioCapIdAvailability; + OPTIONAL field_requestedWUSAssistInfo; + OPTIONAL field_drxInNB__S1; + OPTIONAL field_requestedIMSI__Offset; + OPTIONAL field_ueRequestType; + OPTIONAL field_pagingRestriction; + Base_Type* fld_vec[41]; + void init_vec(); +public: + TRACKING__AREA__UPDATE__REQUEST(); + TRACKING__AREA__UPDATE__REQUEST(const TRACKING__AREA__UPDATE__REQUEST& other_value); + TRACKING__AREA__UPDATE__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_asmeNasKeySetId, + const EPS__UpdateType& par_epsUpdateType, + const NAS__CommonTypeDefs::MobileIdentity& par_oldGuti, + const OPTIONAL& par_nonCurrentNativeNasKeySetId, + const OPTIONAL& par_gprsCipheringKeySeqNum, + const OPTIONAL& par_oldPtmsiSignature, + const OPTIONAL& par_additionalGuti, + const OPTIONAL& par_nonce, + const OPTIONAL& par_ueNetworkCapability, + const OPTIONAL& par_lastVisitedRegisteredTai, + const OPTIONAL& par_drxParameter, + const OPTIONAL& par_ueRadioCapNeeded, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_msNetworkCapability, + const OPTIONAL& par_oldLai, + const OPTIONAL& par_tmsiStatus, + const OPTIONAL& par_msClassmark2, + const OPTIONAL& par_msClassmark3, + const OPTIONAL& par_supportedCodecList, + const OPTIONAL& par_addUpdateType, + const OPTIONAL& par_voiceDomainPref, + const OPTIONAL& par_oldGUTI__Type, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_msNetworkFeatureSupport, + const OPTIONAL& par_tmsiBasedNRIContainer, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_t3412ExtdValue, + const OPTIONAL& par_extendedDRXParams, + const OPTIONAL& par_ueAddSecurityCap, + const OPTIONAL& par_ueStatus, + const OPTIONAL& par_addInfoReq, + const OPTIONAL& par_n1UENetworkCap, + const OPTIONAL& par_ueRadioCapIdAvailability, + const OPTIONAL& par_requestedWUSAssistInfo, + const OPTIONAL& par_drxInNB__S1, + const OPTIONAL& par_requestedIMSI__Offset, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestriction); +inline TRACKING__AREA__UPDATE__REQUEST& operator=(const TRACKING__AREA__UPDATE__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TRACKING__AREA__UPDATE__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TRACKING__AREA__UPDATE__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& asmeNasKeySetId() + {return field_asmeNasKeySetId;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& asmeNasKeySetId() const + {return field_asmeNasKeySetId;} + inline EPS__UpdateType& epsUpdateType() + {return field_epsUpdateType;} + inline const EPS__UpdateType& epsUpdateType() const + {return field_epsUpdateType;} + inline NAS__CommonTypeDefs::MobileIdentity& oldGuti() + {return field_oldGuti;} + inline const NAS__CommonTypeDefs::MobileIdentity& oldGuti() const + {return field_oldGuti;} + inline OPTIONAL& nonCurrentNativeNasKeySetId() + {return field_nonCurrentNativeNasKeySetId;} + inline const OPTIONAL& nonCurrentNativeNasKeySetId() const + {return field_nonCurrentNativeNasKeySetId;} + inline OPTIONAL& gprsCipheringKeySeqNum() + {return field_gprsCipheringKeySeqNum;} + inline const OPTIONAL& gprsCipheringKeySeqNum() const + {return field_gprsCipheringKeySeqNum;} + inline OPTIONAL& oldPtmsiSignature() + {return field_oldPtmsiSignature;} + inline const OPTIONAL& oldPtmsiSignature() const + {return field_oldPtmsiSignature;} + inline OPTIONAL& additionalGuti() + {return field_additionalGuti;} + inline const OPTIONAL& additionalGuti() const + {return field_additionalGuti;} + inline OPTIONAL& nonce() + {return field_nonce;} + inline const OPTIONAL& nonce() const + {return field_nonce;} + inline OPTIONAL& ueNetworkCapability() + {return field_ueNetworkCapability;} + inline const OPTIONAL& ueNetworkCapability() const + {return field_ueNetworkCapability;} + inline OPTIONAL& lastVisitedRegisteredTai() + {return field_lastVisitedRegisteredTai;} + inline const OPTIONAL& lastVisitedRegisteredTai() const + {return field_lastVisitedRegisteredTai;} + inline OPTIONAL& drxParameter() + {return field_drxParameter;} + inline const OPTIONAL& drxParameter() const + {return field_drxParameter;} + inline OPTIONAL& ueRadioCapNeeded() + {return field_ueRadioCapNeeded;} + inline const OPTIONAL& ueRadioCapNeeded() const + {return field_ueRadioCapNeeded;} + inline OPTIONAL& epsBearerContextStatus() + {return field_epsBearerContextStatus;} + inline const OPTIONAL& epsBearerContextStatus() const + {return field_epsBearerContextStatus;} + inline OPTIONAL& msNetworkCapability() + {return field_msNetworkCapability;} + inline const OPTIONAL& msNetworkCapability() const + {return field_msNetworkCapability;} + inline OPTIONAL& oldLai() + {return field_oldLai;} + inline const OPTIONAL& oldLai() const + {return field_oldLai;} + inline OPTIONAL& tmsiStatus() + {return field_tmsiStatus;} + inline const OPTIONAL& tmsiStatus() const + {return field_tmsiStatus;} + inline OPTIONAL& msClassmark2() + {return field_msClassmark2;} + inline const OPTIONAL& msClassmark2() const + {return field_msClassmark2;} + inline OPTIONAL& msClassmark3() + {return field_msClassmark3;} + inline const OPTIONAL& msClassmark3() const + {return field_msClassmark3;} + inline OPTIONAL& supportedCodecList() + {return field_supportedCodecList;} + inline const OPTIONAL& supportedCodecList() const + {return field_supportedCodecList;} + inline OPTIONAL& addUpdateType() + {return field_addUpdateType;} + inline const OPTIONAL& addUpdateType() const + {return field_addUpdateType;} + inline OPTIONAL& voiceDomainPref() + {return field_voiceDomainPref;} + inline const OPTIONAL& voiceDomainPref() const + {return field_voiceDomainPref;} + inline OPTIONAL& oldGUTI__Type() + {return field_oldGUTI__Type;} + inline const OPTIONAL& oldGUTI__Type() const + {return field_oldGUTI__Type;} + inline OPTIONAL& deviceProperties() + {return field_deviceProperties;} + inline const OPTIONAL& deviceProperties() const + {return field_deviceProperties;} + inline OPTIONAL& msNetworkFeatureSupport() + {return field_msNetworkFeatureSupport;} + inline const OPTIONAL& msNetworkFeatureSupport() const + {return field_msNetworkFeatureSupport;} + inline OPTIONAL& tmsiBasedNRIContainer() + {return field_tmsiBasedNRIContainer;} + inline const OPTIONAL& tmsiBasedNRIContainer() const + {return field_tmsiBasedNRIContainer;} + inline OPTIONAL& t3324Value() + {return field_t3324Value;} + inline const OPTIONAL& t3324Value() const + {return field_t3324Value;} + inline OPTIONAL& t3412ExtdValue() + {return field_t3412ExtdValue;} + inline const OPTIONAL& t3412ExtdValue() const + {return field_t3412ExtdValue;} + inline OPTIONAL& extendedDRXParams() + {return field_extendedDRXParams;} + inline const OPTIONAL& extendedDRXParams() const + {return field_extendedDRXParams;} + inline OPTIONAL& ueAddSecurityCap() + {return field_ueAddSecurityCap;} + inline const OPTIONAL& ueAddSecurityCap() const + {return field_ueAddSecurityCap;} + inline OPTIONAL& ueStatus() + {return field_ueStatus;} + inline const OPTIONAL& ueStatus() const + {return field_ueStatus;} + inline OPTIONAL& addInfoReq() + {return field_addInfoReq;} + inline const OPTIONAL& addInfoReq() const + {return field_addInfoReq;} + inline OPTIONAL& n1UENetworkCap() + {return field_n1UENetworkCap;} + inline const OPTIONAL& n1UENetworkCap() const + {return field_n1UENetworkCap;} + inline OPTIONAL& ueRadioCapIdAvailability() + {return field_ueRadioCapIdAvailability;} + inline const OPTIONAL& ueRadioCapIdAvailability() const + {return field_ueRadioCapIdAvailability;} + inline OPTIONAL& requestedWUSAssistInfo() + {return field_requestedWUSAssistInfo;} + inline const OPTIONAL& requestedWUSAssistInfo() const + {return field_requestedWUSAssistInfo;} + inline OPTIONAL& drxInNB__S1() + {return field_drxInNB__S1;} + inline const OPTIONAL& drxInNB__S1() const + {return field_drxInNB__S1;} + inline OPTIONAL& requestedIMSI__Offset() + {return field_requestedIMSI__Offset;} + inline const OPTIONAL& requestedIMSI__Offset() const + {return field_requestedIMSI__Offset;} + inline OPTIONAL& ueRequestType() + {return field_ueRequestType;} + inline const OPTIONAL& ueRequestType() const + {return field_ueRequestType;} + inline OPTIONAL& pagingRestriction() + {return field_pagingRestriction;} + inline const OPTIONAL& pagingRestriction() const + {return field_pagingRestriction;} +Base_Type* clone() const { return new TRACKING__AREA__UPDATE__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 41; } +int optional_count() const { return 35; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TRACKING__AREA__UPDATE__REQUEST_template : public Record_Template { +void set_specific(); +public: +TRACKING__AREA__UPDATE__REQUEST_template(): Record_Template() {} +TRACKING__AREA__UPDATE__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +TRACKING__AREA__UPDATE__REQUEST_template(const TRACKING__AREA__UPDATE__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +TRACKING__AREA__UPDATE__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TRACKING__AREA__UPDATE__REQUEST_template(TRACKING__AREA__UPDATE__REQUEST_template* p_precondition, TRACKING__AREA__UPDATE__REQUEST_template* p_implied_template); +TRACKING__AREA__UPDATE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +TRACKING__AREA__UPDATE__REQUEST_template(const TRACKING__AREA__UPDATE__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~TRACKING__AREA__UPDATE__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TRACKING__AREA__UPDATE__REQUEST_template& operator=(template_sel other_value); +TRACKING__AREA__UPDATE__REQUEST_template& operator=(const TRACKING__AREA__UPDATE__REQUEST& other_value); +TRACKING__AREA__UPDATE__REQUEST_template& operator=(const OPTIONAL& other_value); +TRACKING__AREA__UPDATE__REQUEST_template& operator=(const TRACKING__AREA__UPDATE__REQUEST_template& other_value); +inline boolean match(const TRACKING__AREA__UPDATE__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TRACKING__AREA__UPDATE__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TRACKING__AREA__UPDATE__REQUEST valueof() const; +inline TRACKING__AREA__UPDATE__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& asmeNasKeySetId() const; +EPS__UpdateType_template& epsUpdateType(); +const EPS__UpdateType_template& epsUpdateType() const; +NAS__CommonTypeDefs::MobileIdentity_template& oldGuti(); +const NAS__CommonTypeDefs::MobileIdentity_template& oldGuti() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nonCurrentNativeNasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nonCurrentNativeNasKeySetId() const; +NAS__CommonTypeDefs::CiphKeySeqNum_template& gprsCipheringKeySeqNum(); +const NAS__CommonTypeDefs::CiphKeySeqNum_template& gprsCipheringKeySeqNum() const; +NAS__CommonTypeDefs::PTMSI__Signature_template& oldPtmsiSignature(); +const NAS__CommonTypeDefs::PTMSI__Signature_template& oldPtmsiSignature() const; +NAS__CommonTypeDefs::MobileIdentity_template& additionalGuti(); +const NAS__CommonTypeDefs::MobileIdentity_template& additionalGuti() const; +Nonce_template& nonce(); +const Nonce_template& nonce() const; +NAS__CommonTypeDefs::UE__NetworkCap_template& ueNetworkCapability(); +const NAS__CommonTypeDefs::UE__NetworkCap_template& ueNetworkCapability() const; +TrackingAreaId_template& lastVisitedRegisteredTai(); +const TrackingAreaId_template& lastVisitedRegisteredTai() const; +NAS__CommonTypeDefs::DRXparameter_template& drxParameter(); +const NAS__CommonTypeDefs::DRXparameter_template& drxParameter() const; +UERadioCapInfoUpdateNeeded_template& ueRadioCapNeeded(); +const UERadioCapInfoUpdateNeeded_template& ueRadioCapNeeded() const; +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus(); +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus() const; +NAS__CommonTypeDefs::MS__NetworkCap_template& msNetworkCapability(); +const NAS__CommonTypeDefs::MS__NetworkCap_template& msNetworkCapability() const; +NAS__CommonTypeDefs::LocAreaId_template& oldLai(); +const NAS__CommonTypeDefs::LocAreaId_template& oldLai() const; +NAS__CommonTypeDefs::TMSI__Status_template& tmsiStatus(); +const NAS__CommonTypeDefs::TMSI__Status_template& tmsiStatus() const; +NAS__CommonTypeDefs::MS__Clsmk2_template& msClassmark2(); +const NAS__CommonTypeDefs::MS__Clsmk2_template& msClassmark2() const; +NAS__CommonTypeDefs::MS__Clsmk3_template& msClassmark3(); +const NAS__CommonTypeDefs::MS__Clsmk3_template& msClassmark3() const; +NAS__CommonTypeDefs::CodecList_template& supportedCodecList(); +const NAS__CommonTypeDefs::CodecList_template& supportedCodecList() const; +NAS__CommonTypeDefs::AdditionalUpdateType_template& addUpdateType(); +const NAS__CommonTypeDefs::AdditionalUpdateType_template& addUpdateType() const; +NAS__CommonTypeDefs::VoiceDomainPref_template& voiceDomainPref(); +const NAS__CommonTypeDefs::VoiceDomainPref_template& voiceDomainPref() const; +GUTI__Type_template& oldGUTI__Type(); +const GUTI__Type_template& oldGUTI__Type() const; +NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties(); +const NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties() const; +NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template& msNetworkFeatureSupport(); +const NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template& msNetworkFeatureSupport() const; +NAS__CommonTypeDefs::NwkResourceId_template& tmsiBasedNRIContainer(); +const NAS__CommonTypeDefs::NwkResourceId_template& tmsiBasedNRIContainer() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3412ExtdValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3412ExtdValue() const; +NAS__CommonTypeDefs::ExtdDRXParams_template& extendedDRXParams(); +const NAS__CommonTypeDefs::ExtdDRXParams_template& extendedDRXParams() const; +UE__AdditionalSecurityCapability_template& ueAddSecurityCap(); +const UE__AdditionalSecurityCapability_template& ueAddSecurityCap() const; +NAS__CommonTypeDefs::UE__Status_template& ueStatus(); +const NAS__CommonTypeDefs::UE__Status_template& ueStatus() const; +AdditionalInfoReq_template& addInfoReq(); +const AdditionalInfoReq_template& addInfoReq() const; +N1__UENetworkCap_template& n1UENetworkCap(); +const N1__UENetworkCap_template& n1UENetworkCap() const; +UERadioCapIdAvailability_template& ueRadioCapIdAvailability(); +const UERadioCapIdAvailability_template& ueRadioCapIdAvailability() const; +NAS__CommonTypeDefs::WUSAssistInfo_template& requestedWUSAssistInfo(); +const NAS__CommonTypeDefs::WUSAssistInfo_template& requestedWUSAssistInfo() const; +NAS__CommonTypeDefs::DRXParamCommon_template& drxInNB__S1(); +const NAS__CommonTypeDefs::DRXParamCommon_template& drxInNB__S1() const; +IMSI__Offset_template& requestedIMSI__Offset(); +const IMSI__Offset_template& requestedIMSI__Offset() const; +NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType(); +const NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType() const; +PagingRestriction_template& pagingRestriction(); +const PagingRestriction_template& pagingRestriction() const; +Record_Template* create() const { return new TRACKING__AREA__UPDATE__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UERadioCapInfoUpdateNeeded : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_urcUpdate; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UERadioCapInfoUpdateNeeded(); + UERadioCapInfoUpdateNeeded(const UERadioCapInfoUpdateNeeded& other_value); + UERadioCapInfoUpdateNeeded(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_urcUpdate); +inline UERadioCapInfoUpdateNeeded& operator=(const UERadioCapInfoUpdateNeeded& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UERadioCapInfoUpdateNeeded& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UERadioCapInfoUpdateNeeded& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& urcUpdate() + {return field_urcUpdate;} + inline const BITSTRING& urcUpdate() const + {return field_urcUpdate;} +Base_Type* clone() const { return new UERadioCapInfoUpdateNeeded(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UERadioCapInfoUpdateNeeded_template : public Record_Template { +void set_specific(); +public: +UERadioCapInfoUpdateNeeded_template(): Record_Template() {} +UERadioCapInfoUpdateNeeded_template(template_sel other_value): Record_Template(other_value) {} +UERadioCapInfoUpdateNeeded_template(const UERadioCapInfoUpdateNeeded& other_value): Record_Template() { copy_value(&other_value); } +UERadioCapInfoUpdateNeeded_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UERadioCapInfoUpdateNeeded_template(UERadioCapInfoUpdateNeeded_template* p_precondition, UERadioCapInfoUpdateNeeded_template* p_implied_template); +UERadioCapInfoUpdateNeeded_template(Dynamic_Match_Interface* p_dyn_match); +UERadioCapInfoUpdateNeeded_template(const UERadioCapInfoUpdateNeeded_template& other_value): Record_Template() { copy_template(other_value); } +~UERadioCapInfoUpdateNeeded_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UERadioCapInfoUpdateNeeded_template& operator=(template_sel other_value); +UERadioCapInfoUpdateNeeded_template& operator=(const UERadioCapInfoUpdateNeeded& other_value); +UERadioCapInfoUpdateNeeded_template& operator=(const OPTIONAL& other_value); +UERadioCapInfoUpdateNeeded_template& operator=(const UERadioCapInfoUpdateNeeded_template& other_value); +inline boolean match(const UERadioCapInfoUpdateNeeded& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UERadioCapInfoUpdateNeeded& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UERadioCapInfoUpdateNeeded valueof() const; +inline UERadioCapInfoUpdateNeeded_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& urcUpdate(); +const BITSTRING_template& urcUpdate() const; +Record_Template* create() const { return new UERadioCapInfoUpdateNeeded_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UL__NAS__TRANSPORT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__MessageContainer field_nasMessage; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UL__NAS__TRANSPORT(); + UL__NAS__TRANSPORT(const UL__NAS__TRANSPORT& other_value); + UL__NAS__TRANSPORT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__MessageContainer& par_nasMessage); +inline UL__NAS__TRANSPORT& operator=(const UL__NAS__TRANSPORT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UL__NAS__TRANSPORT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UL__NAS__TRANSPORT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__MessageContainer& nasMessage() + {return field_nasMessage;} + inline const NAS__MessageContainer& nasMessage() const + {return field_nasMessage;} +Base_Type* clone() const { return new UL__NAS__TRANSPORT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UL__NAS__TRANSPORT_template : public Record_Template { +void set_specific(); +public: +UL__NAS__TRANSPORT_template(): Record_Template() {} +UL__NAS__TRANSPORT_template(template_sel other_value): Record_Template(other_value) {} +UL__NAS__TRANSPORT_template(const UL__NAS__TRANSPORT& other_value): Record_Template() { copy_value(&other_value); } +UL__NAS__TRANSPORT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UL__NAS__TRANSPORT_template(UL__NAS__TRANSPORT_template* p_precondition, UL__NAS__TRANSPORT_template* p_implied_template); +UL__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match); +UL__NAS__TRANSPORT_template(const UL__NAS__TRANSPORT_template& other_value): Record_Template() { copy_template(other_value); } +~UL__NAS__TRANSPORT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UL__NAS__TRANSPORT_template& operator=(template_sel other_value); +UL__NAS__TRANSPORT_template& operator=(const UL__NAS__TRANSPORT& other_value); +UL__NAS__TRANSPORT_template& operator=(const OPTIONAL& other_value); +UL__NAS__TRANSPORT_template& operator=(const UL__NAS__TRANSPORT_template& other_value); +inline boolean match(const UL__NAS__TRANSPORT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UL__NAS__TRANSPORT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UL__NAS__TRANSPORT valueof() const; +inline UL__NAS__TRANSPORT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__MessageContainer_template& nasMessage(); +const NAS__MessageContainer_template& nasMessage() const; +Record_Template* create() const { return new UL__NAS__TRANSPORT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class GenericMessageContainer : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_genericMsgContainerValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + GenericMessageContainer(); + GenericMessageContainer(const GenericMessageContainer& other_value); + GenericMessageContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_genericMsgContainerValue); +inline GenericMessageContainer& operator=(const GenericMessageContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const GenericMessageContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const GenericMessageContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& genericMsgContainerValue() + {return field_genericMsgContainerValue;} + inline const OCTETSTRING& genericMsgContainerValue() const + {return field_genericMsgContainerValue;} +Base_Type* clone() const { return new GenericMessageContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class GenericMessageContainer_template : public Record_Template { +void set_specific(); +public: +GenericMessageContainer_template(): Record_Template() {} +GenericMessageContainer_template(template_sel other_value): Record_Template(other_value) {} +GenericMessageContainer_template(const GenericMessageContainer& other_value): Record_Template() { copy_value(&other_value); } +GenericMessageContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +GenericMessageContainer_template(GenericMessageContainer_template* p_precondition, GenericMessageContainer_template* p_implied_template); +GenericMessageContainer_template(Dynamic_Match_Interface* p_dyn_match); +GenericMessageContainer_template(const GenericMessageContainer_template& other_value): Record_Template() { copy_template(other_value); } +~GenericMessageContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +GenericMessageContainer_template& operator=(template_sel other_value); +GenericMessageContainer_template& operator=(const GenericMessageContainer& other_value); +GenericMessageContainer_template& operator=(const OPTIONAL& other_value); +GenericMessageContainer_template& operator=(const GenericMessageContainer_template& other_value); +inline boolean match(const GenericMessageContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const GenericMessageContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +GenericMessageContainer valueof() const; +inline GenericMessageContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& genericMsgContainerValue(); +const OCTETSTRING_template& genericMsgContainerValue() const; +Record_Template* create() const { return new GenericMessageContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DL__GENERIC__NAS__TRANSPORT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + BITSTRING field_genericMessageContainerType; + GenericMessageContainer field_genericMessageContainer; + OPTIONAL field_additionalInformation; + Base_Type* fld_vec[6]; + void init_vec(); +public: + DL__GENERIC__NAS__TRANSPORT(); + DL__GENERIC__NAS__TRANSPORT(const DL__GENERIC__NAS__TRANSPORT& other_value); + DL__GENERIC__NAS__TRANSPORT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_genericMessageContainerType, + const GenericMessageContainer& par_genericMessageContainer, + const OPTIONAL& par_additionalInformation); +inline DL__GENERIC__NAS__TRANSPORT& operator=(const DL__GENERIC__NAS__TRANSPORT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DL__GENERIC__NAS__TRANSPORT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DL__GENERIC__NAS__TRANSPORT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline BITSTRING& genericMessageContainerType() + {return field_genericMessageContainerType;} + inline const BITSTRING& genericMessageContainerType() const + {return field_genericMessageContainerType;} + inline GenericMessageContainer& genericMessageContainer() + {return field_genericMessageContainer;} + inline const GenericMessageContainer& genericMessageContainer() const + {return field_genericMessageContainer;} + inline OPTIONAL& additionalInformation() + {return field_additionalInformation;} + inline const OPTIONAL& additionalInformation() const + {return field_additionalInformation;} +Base_Type* clone() const { return new DL__GENERIC__NAS__TRANSPORT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DL__GENERIC__NAS__TRANSPORT_template : public Record_Template { +void set_specific(); +public: +DL__GENERIC__NAS__TRANSPORT_template(): Record_Template() {} +DL__GENERIC__NAS__TRANSPORT_template(template_sel other_value): Record_Template(other_value) {} +DL__GENERIC__NAS__TRANSPORT_template(const DL__GENERIC__NAS__TRANSPORT& other_value): Record_Template() { copy_value(&other_value); } +DL__GENERIC__NAS__TRANSPORT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DL__GENERIC__NAS__TRANSPORT_template(DL__GENERIC__NAS__TRANSPORT_template* p_precondition, DL__GENERIC__NAS__TRANSPORT_template* p_implied_template); +DL__GENERIC__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match); +DL__GENERIC__NAS__TRANSPORT_template(const DL__GENERIC__NAS__TRANSPORT_template& other_value): Record_Template() { copy_template(other_value); } +~DL__GENERIC__NAS__TRANSPORT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DL__GENERIC__NAS__TRANSPORT_template& operator=(template_sel other_value); +DL__GENERIC__NAS__TRANSPORT_template& operator=(const DL__GENERIC__NAS__TRANSPORT& other_value); +DL__GENERIC__NAS__TRANSPORT_template& operator=(const OPTIONAL& other_value); +DL__GENERIC__NAS__TRANSPORT_template& operator=(const DL__GENERIC__NAS__TRANSPORT_template& other_value); +inline boolean match(const DL__GENERIC__NAS__TRANSPORT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DL__GENERIC__NAS__TRANSPORT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DL__GENERIC__NAS__TRANSPORT valueof() const; +inline DL__GENERIC__NAS__TRANSPORT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +BITSTRING_template& genericMessageContainerType(); +const BITSTRING_template& genericMessageContainerType() const; +GenericMessageContainer_template& genericMessageContainer(); +const GenericMessageContainer_template& genericMessageContainer() const; +NAS__CommonTypeDefs::AdditionalInformation_template& additionalInformation(); +const NAS__CommonTypeDefs::AdditionalInformation_template& additionalInformation() const; +Record_Template* create() const { return new DL__GENERIC__NAS__TRANSPORT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UL__GENERIC__NAS__TRANSPORT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + BITSTRING field_genericMessageContainerType; + GenericMessageContainer field_genericMessageContainer; + OPTIONAL field_additionalInformation; + Base_Type* fld_vec[6]; + void init_vec(); +public: + UL__GENERIC__NAS__TRANSPORT(); + UL__GENERIC__NAS__TRANSPORT(const UL__GENERIC__NAS__TRANSPORT& other_value); + UL__GENERIC__NAS__TRANSPORT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_genericMessageContainerType, + const GenericMessageContainer& par_genericMessageContainer, + const OPTIONAL& par_additionalInformation); +inline UL__GENERIC__NAS__TRANSPORT& operator=(const UL__GENERIC__NAS__TRANSPORT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UL__GENERIC__NAS__TRANSPORT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UL__GENERIC__NAS__TRANSPORT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline BITSTRING& genericMessageContainerType() + {return field_genericMessageContainerType;} + inline const BITSTRING& genericMessageContainerType() const + {return field_genericMessageContainerType;} + inline GenericMessageContainer& genericMessageContainer() + {return field_genericMessageContainer;} + inline const GenericMessageContainer& genericMessageContainer() const + {return field_genericMessageContainer;} + inline OPTIONAL& additionalInformation() + {return field_additionalInformation;} + inline const OPTIONAL& additionalInformation() const + {return field_additionalInformation;} +Base_Type* clone() const { return new UL__GENERIC__NAS__TRANSPORT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UL__GENERIC__NAS__TRANSPORT_template : public Record_Template { +void set_specific(); +public: +UL__GENERIC__NAS__TRANSPORT_template(): Record_Template() {} +UL__GENERIC__NAS__TRANSPORT_template(template_sel other_value): Record_Template(other_value) {} +UL__GENERIC__NAS__TRANSPORT_template(const UL__GENERIC__NAS__TRANSPORT& other_value): Record_Template() { copy_value(&other_value); } +UL__GENERIC__NAS__TRANSPORT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UL__GENERIC__NAS__TRANSPORT_template(UL__GENERIC__NAS__TRANSPORT_template* p_precondition, UL__GENERIC__NAS__TRANSPORT_template* p_implied_template); +UL__GENERIC__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match); +UL__GENERIC__NAS__TRANSPORT_template(const UL__GENERIC__NAS__TRANSPORT_template& other_value): Record_Template() { copy_template(other_value); } +~UL__GENERIC__NAS__TRANSPORT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UL__GENERIC__NAS__TRANSPORT_template& operator=(template_sel other_value); +UL__GENERIC__NAS__TRANSPORT_template& operator=(const UL__GENERIC__NAS__TRANSPORT& other_value); +UL__GENERIC__NAS__TRANSPORT_template& operator=(const OPTIONAL& other_value); +UL__GENERIC__NAS__TRANSPORT_template& operator=(const UL__GENERIC__NAS__TRANSPORT_template& other_value); +inline boolean match(const UL__GENERIC__NAS__TRANSPORT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UL__GENERIC__NAS__TRANSPORT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UL__GENERIC__NAS__TRANSPORT valueof() const; +inline UL__GENERIC__NAS__TRANSPORT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +BITSTRING_template& genericMessageContainerType(); +const BITSTRING_template& genericMessageContainerType() const; +GenericMessageContainer_template& genericMessageContainer(); +const GenericMessageContainer_template& genericMessageContainer() const; +NAS__CommonTypeDefs::AdditionalInformation_template& additionalInformation(); +const NAS__CommonTypeDefs::AdditionalInformation_template& additionalInformation() const; +Record_Template* create() const { return new UL__GENERIC__NAS__TRANSPORT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ControlPlaneServiceType : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_activeFlag; + BITSTRING field_controlPlaneServiceType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ControlPlaneServiceType(); + ControlPlaneServiceType(const ControlPlaneServiceType& other_value); + ControlPlaneServiceType(const OPTIONAL& par_iei, + const BITSTRING& par_activeFlag, + const BITSTRING& par_controlPlaneServiceType); +inline ControlPlaneServiceType& operator=(const ControlPlaneServiceType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ControlPlaneServiceType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ControlPlaneServiceType& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& activeFlag() + {return field_activeFlag;} + inline const BITSTRING& activeFlag() const + {return field_activeFlag;} + inline BITSTRING& controlPlaneServiceType() + {return field_controlPlaneServiceType;} + inline const BITSTRING& controlPlaneServiceType() const + {return field_controlPlaneServiceType;} +Base_Type* clone() const { return new ControlPlaneServiceType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ControlPlaneServiceType_template : public Record_Template { +void set_specific(); +public: +ControlPlaneServiceType_template(): Record_Template() {} +ControlPlaneServiceType_template(template_sel other_value): Record_Template(other_value) {} +ControlPlaneServiceType_template(const ControlPlaneServiceType& other_value): Record_Template() { copy_value(&other_value); } +ControlPlaneServiceType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ControlPlaneServiceType_template(ControlPlaneServiceType_template* p_precondition, ControlPlaneServiceType_template* p_implied_template); +ControlPlaneServiceType_template(Dynamic_Match_Interface* p_dyn_match); +ControlPlaneServiceType_template(const ControlPlaneServiceType_template& other_value): Record_Template() { copy_template(other_value); } +~ControlPlaneServiceType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ControlPlaneServiceType_template& operator=(template_sel other_value); +ControlPlaneServiceType_template& operator=(const ControlPlaneServiceType& other_value); +ControlPlaneServiceType_template& operator=(const OPTIONAL& other_value); +ControlPlaneServiceType_template& operator=(const ControlPlaneServiceType_template& other_value); +inline boolean match(const ControlPlaneServiceType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ControlPlaneServiceType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ControlPlaneServiceType valueof() const; +inline ControlPlaneServiceType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& activeFlag(); +const BITSTRING_template& activeFlag() const; +BITSTRING_template& controlPlaneServiceType(); +const BITSTRING_template& controlPlaneServiceType() const; +Record_Template* create() const { return new ControlPlaneServiceType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CONTROL__PLANE__SERVICE__REQUEST : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_nasKeySetId; + ControlPlaneServiceType field_controlPlaneServiceType; + OPTIONAL field_esmMessage; + OPTIONAL field_nasMessage; + OPTIONAL field_epsBearerContextStatus; + OPTIONAL field_deviceProperties; + OPTIONAL field_ueRequestType; + OPTIONAL field_pagingRestriction; + Base_Type* fld_vec[11]; + void init_vec(); +public: + CONTROL__PLANE__SERVICE__REQUEST(); + CONTROL__PLANE__SERVICE__REQUEST(const CONTROL__PLANE__SERVICE__REQUEST& other_value); + CONTROL__PLANE__SERVICE__REQUEST(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_nasKeySetId, + const ControlPlaneServiceType& par_controlPlaneServiceType, + const OPTIONAL& par_esmMessage, + const OPTIONAL& par_nasMessage, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestriction); +inline CONTROL__PLANE__SERVICE__REQUEST& operator=(const CONTROL__PLANE__SERVICE__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CONTROL__PLANE__SERVICE__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CONTROL__PLANE__SERVICE__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& nasKeySetId() + {return field_nasKeySetId;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& nasKeySetId() const + {return field_nasKeySetId;} + inline ControlPlaneServiceType& controlPlaneServiceType() + {return field_controlPlaneServiceType;} + inline const ControlPlaneServiceType& controlPlaneServiceType() const + {return field_controlPlaneServiceType;} + inline OPTIONAL& esmMessage() + {return field_esmMessage;} + inline const OPTIONAL& esmMessage() const + {return field_esmMessage;} + inline OPTIONAL& nasMessage() + {return field_nasMessage;} + inline const OPTIONAL& nasMessage() const + {return field_nasMessage;} + inline OPTIONAL& epsBearerContextStatus() + {return field_epsBearerContextStatus;} + inline const OPTIONAL& epsBearerContextStatus() const + {return field_epsBearerContextStatus;} + inline OPTIONAL& deviceProperties() + {return field_deviceProperties;} + inline const OPTIONAL& deviceProperties() const + {return field_deviceProperties;} + inline OPTIONAL& ueRequestType() + {return field_ueRequestType;} + inline const OPTIONAL& ueRequestType() const + {return field_ueRequestType;} + inline OPTIONAL& pagingRestriction() + {return field_pagingRestriction;} + inline const OPTIONAL& pagingRestriction() const + {return field_pagingRestriction;} +Base_Type* clone() const { return new CONTROL__PLANE__SERVICE__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 11; } +int optional_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CONTROL__PLANE__SERVICE__REQUEST_template : public Record_Template { +void set_specific(); +public: +CONTROL__PLANE__SERVICE__REQUEST_template(): Record_Template() {} +CONTROL__PLANE__SERVICE__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +CONTROL__PLANE__SERVICE__REQUEST_template(const CONTROL__PLANE__SERVICE__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +CONTROL__PLANE__SERVICE__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CONTROL__PLANE__SERVICE__REQUEST_template(CONTROL__PLANE__SERVICE__REQUEST_template* p_precondition, CONTROL__PLANE__SERVICE__REQUEST_template* p_implied_template); +CONTROL__PLANE__SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +CONTROL__PLANE__SERVICE__REQUEST_template(const CONTROL__PLANE__SERVICE__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~CONTROL__PLANE__SERVICE__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CONTROL__PLANE__SERVICE__REQUEST_template& operator=(template_sel other_value); +CONTROL__PLANE__SERVICE__REQUEST_template& operator=(const CONTROL__PLANE__SERVICE__REQUEST& other_value); +CONTROL__PLANE__SERVICE__REQUEST_template& operator=(const OPTIONAL& other_value); +CONTROL__PLANE__SERVICE__REQUEST_template& operator=(const CONTROL__PLANE__SERVICE__REQUEST_template& other_value); +inline boolean match(const CONTROL__PLANE__SERVICE__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CONTROL__PLANE__SERVICE__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CONTROL__PLANE__SERVICE__REQUEST valueof() const; +inline CONTROL__PLANE__SERVICE__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nasKeySetId() const; +ControlPlaneServiceType_template& controlPlaneServiceType(); +const ControlPlaneServiceType_template& controlPlaneServiceType() const; +ESM__MessageContainer_template& esmMessage(); +const ESM__MessageContainer_template& esmMessage() const; +NAS__MessageContainer_template& nasMessage(); +const NAS__MessageContainer_template& nasMessage() const; +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus(); +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus() const; +NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties(); +const NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties() const; +NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType(); +const NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType() const; +PagingRestriction_template& pagingRestriction(); +const PagingRestriction_template& pagingRestriction() const; +Record_Template* create() const { return new CONTROL__PLANE__SERVICE__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SERVICE__ACCEPT : public Record_Type { + BITSTRING field_securityHeaderType; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OPTIONAL field_epsBearerContextStatus; + OPTIONAL field_t3448; + OPTIONAL field_epsAddRequestResult; + Base_Type* fld_vec[6]; + void init_vec(); +public: + SERVICE__ACCEPT(); + SERVICE__ACCEPT(const SERVICE__ACCEPT& other_value); + SERVICE__ACCEPT(const BITSTRING& par_securityHeaderType, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_t3448, + const OPTIONAL& par_epsAddRequestResult); +inline SERVICE__ACCEPT& operator=(const SERVICE__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SERVICE__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SERVICE__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& epsBearerContextStatus() + {return field_epsBearerContextStatus;} + inline const OPTIONAL& epsBearerContextStatus() const + {return field_epsBearerContextStatus;} + inline OPTIONAL& t3448() + {return field_t3448;} + inline const OPTIONAL& t3448() const + {return field_t3448;} + inline OPTIONAL& epsAddRequestResult() + {return field_epsAddRequestResult;} + inline const OPTIONAL& epsAddRequestResult() const + {return field_epsAddRequestResult;} +Base_Type* clone() const { return new SERVICE__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SERVICE__ACCEPT_template : public Record_Template { +void set_specific(); +public: +SERVICE__ACCEPT_template(): Record_Template() {} +SERVICE__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +SERVICE__ACCEPT_template(const SERVICE__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +SERVICE__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SERVICE__ACCEPT_template(SERVICE__ACCEPT_template* p_precondition, SERVICE__ACCEPT_template* p_implied_template); +SERVICE__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +SERVICE__ACCEPT_template(const SERVICE__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~SERVICE__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SERVICE__ACCEPT_template& operator=(template_sel other_value); +SERVICE__ACCEPT_template& operator=(const SERVICE__ACCEPT& other_value); +SERVICE__ACCEPT_template& operator=(const OPTIONAL& other_value); +SERVICE__ACCEPT_template& operator=(const SERVICE__ACCEPT_template& other_value); +inline boolean match(const SERVICE__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SERVICE__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SERVICE__ACCEPT valueof() const; +inline SERVICE__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus(); +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3448(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3448() const; +EPS__AddReqResult_template& epsAddRequestResult(); +const EPS__AddReqResult_template& epsAddRequestResult() const; +Record_Template* create() const { return new SERVICE__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[7]; + void init_vec(); +public: + ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT(); + ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& other_value); + ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template : public Record_Template { +void set_specific(); +public: +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(): Record_Template() {} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template* p_precondition, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template* p_implied_template); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(template_sel other_value); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& other_value); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const OPTIONAL& other_value); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& other_value); +inline boolean match(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT valueof() const; +inline ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ESM__Cause : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_causeValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + ESM__Cause(); + ESM__Cause(const ESM__Cause& other_value); + ESM__Cause(const OPTIONAL& par_iei, + const BITSTRING& par_causeValue); +inline ESM__Cause& operator=(const ESM__Cause& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ESM__Cause& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ESM__Cause& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& causeValue() + {return field_causeValue;} + inline const BITSTRING& causeValue() const + {return field_causeValue;} +Base_Type* clone() const { return new ESM__Cause(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ESM__Cause_template : public Record_Template { +void set_specific(); +public: +ESM__Cause_template(): Record_Template() {} +ESM__Cause_template(template_sel other_value): Record_Template(other_value) {} +ESM__Cause_template(const ESM__Cause& other_value): Record_Template() { copy_value(&other_value); } +ESM__Cause_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ESM__Cause_template(ESM__Cause_template* p_precondition, ESM__Cause_template* p_implied_template); +ESM__Cause_template(Dynamic_Match_Interface* p_dyn_match); +ESM__Cause_template(const ESM__Cause_template& other_value): Record_Template() { copy_template(other_value); } +~ESM__Cause_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ESM__Cause_template& operator=(template_sel other_value); +ESM__Cause_template& operator=(const ESM__Cause& other_value); +ESM__Cause_template& operator=(const OPTIONAL& other_value); +ESM__Cause_template& operator=(const ESM__Cause_template& other_value); +inline boolean match(const ESM__Cause& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ESM__Cause& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ESM__Cause valueof() const; +inline ESM__Cause_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& causeValue(); +const BITSTRING_template& causeValue() const; +Record_Template* create() const { return new ESM__Cause_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + ESM__Cause field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[8]; + void init_vec(); +public: + ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT(); + ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& other_value); + ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__Cause& esmCause() + {return field_esmCause;} + inline const ESM__Cause& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template : public Record_Template { +void set_specific(); +public: +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(): Record_Template() {} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(template_sel other_value): Record_Template(other_value) {} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& other_value): Record_Template() { copy_value(&other_value); } +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template* p_precondition, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template* p_implied_template); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& operator=(template_sel other_value); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& other_value); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& operator=(const OPTIONAL& other_value); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& other_value); +inline boolean match(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT valueof() const; +inline ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class LinkedEpsBearerIdentity : public Record_Type { + BITSTRING field_idValue; + Base_Type* fld_vec[1]; + void init_vec(); +public: + LinkedEpsBearerIdentity(); + LinkedEpsBearerIdentity(const LinkedEpsBearerIdentity& other_value); + LinkedEpsBearerIdentity(const BITSTRING& par_idValue); +inline LinkedEpsBearerIdentity& operator=(const LinkedEpsBearerIdentity& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LinkedEpsBearerIdentity& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const LinkedEpsBearerIdentity& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& idValue() + {return field_idValue;} + inline const BITSTRING& idValue() const + {return field_idValue;} +Base_Type* clone() const { return new LinkedEpsBearerIdentity(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class LinkedEpsBearerIdentity_template : public Record_Template { +void set_specific(); +public: +LinkedEpsBearerIdentity_template(): Record_Template() {} +LinkedEpsBearerIdentity_template(template_sel other_value): Record_Template(other_value) {} +LinkedEpsBearerIdentity_template(const LinkedEpsBearerIdentity& other_value): Record_Template() { copy_value(&other_value); } +LinkedEpsBearerIdentity_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +LinkedEpsBearerIdentity_template(LinkedEpsBearerIdentity_template* p_precondition, LinkedEpsBearerIdentity_template* p_implied_template); +LinkedEpsBearerIdentity_template(Dynamic_Match_Interface* p_dyn_match); +LinkedEpsBearerIdentity_template(const LinkedEpsBearerIdentity_template& other_value): Record_Template() { copy_template(other_value); } +~LinkedEpsBearerIdentity_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LinkedEpsBearerIdentity_template& operator=(template_sel other_value); +LinkedEpsBearerIdentity_template& operator=(const LinkedEpsBearerIdentity& other_value); +LinkedEpsBearerIdentity_template& operator=(const OPTIONAL& other_value); +LinkedEpsBearerIdentity_template& operator=(const LinkedEpsBearerIdentity_template& other_value); +inline boolean match(const LinkedEpsBearerIdentity& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const LinkedEpsBearerIdentity& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +LinkedEpsBearerIdentity valueof() const; +inline LinkedEpsBearerIdentity_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& idValue(); +const BITSTRING_template& idValue() const; +Record_Template* create() const { return new LinkedEpsBearerIdentity_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet; + LinkedEpsBearerIdentity field_linkedEpsBearerId; + NAS__CommonTypeDefs::EPS__QualityOfService field_epsQos; + NAS__CommonTypeDefs::TrafficFlowTemplate field_tft; + OPTIONAL field_transactionIdentifier; + OPTIONAL field_negotiatedQos; + OPTIONAL field_negotiatedLlcSapi; + OPTIONAL field_radioPriority; + OPTIONAL field_packetFlowIdentifier; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_wlanOffloadInd; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_extd__EPS__QOS; + Base_Type* fld_vec[18]; + void init_vec(); +public: + ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST(); + ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& other_value); + ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const LinkedEpsBearerIdentity& par_linkedEpsBearerId, + const NAS__CommonTypeDefs::EPS__QualityOfService& par_epsQos, + const NAS__CommonTypeDefs::TrafficFlowTemplate& par_tft, + const OPTIONAL& par_transactionIdentifier, + const OPTIONAL& par_negotiatedQos, + const OPTIONAL& par_negotiatedLlcSapi, + const OPTIONAL& par_radioPriority, + const OPTIONAL& par_packetFlowIdentifier, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_wlanOffloadInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_extd__EPS__QOS); +inline ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline LinkedEpsBearerIdentity& linkedEpsBearerId() + {return field_linkedEpsBearerId;} + inline const LinkedEpsBearerIdentity& linkedEpsBearerId() const + {return field_linkedEpsBearerId;} + inline NAS__CommonTypeDefs::EPS__QualityOfService& epsQos() + {return field_epsQos;} + inline const NAS__CommonTypeDefs::EPS__QualityOfService& epsQos() const + {return field_epsQos;} + inline NAS__CommonTypeDefs::TrafficFlowTemplate& tft() + {return field_tft;} + inline const NAS__CommonTypeDefs::TrafficFlowTemplate& tft() const + {return field_tft;} + inline OPTIONAL& transactionIdentifier() + {return field_transactionIdentifier;} + inline const OPTIONAL& transactionIdentifier() const + {return field_transactionIdentifier;} + inline OPTIONAL& negotiatedQos() + {return field_negotiatedQos;} + inline const OPTIONAL& negotiatedQos() const + {return field_negotiatedQos;} + inline OPTIONAL& negotiatedLlcSapi() + {return field_negotiatedLlcSapi;} + inline const OPTIONAL& negotiatedLlcSapi() const + {return field_negotiatedLlcSapi;} + inline OPTIONAL& radioPriority() + {return field_radioPriority;} + inline const OPTIONAL& radioPriority() const + {return field_radioPriority;} + inline OPTIONAL& packetFlowIdentifier() + {return field_packetFlowIdentifier;} + inline const OPTIONAL& packetFlowIdentifier() const + {return field_packetFlowIdentifier;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& wlanOffloadInd() + {return field_wlanOffloadInd;} + inline const OPTIONAL& wlanOffloadInd() const + {return field_wlanOffloadInd;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& extd__EPS__QOS() + {return field_extd__EPS__QOS;} + inline const OPTIONAL& extd__EPS__QOS() const + {return field_extd__EPS__QOS;} +Base_Type* clone() const { return new ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 18; } +int optional_count() const { return 10; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template : public Record_Template { +void set_specific(); +public: +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(): Record_Template() {} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template* p_precondition, ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template* p_implied_template); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& operator=(template_sel other_value); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& other_value); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const OPTIONAL& other_value); +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& other_value); +inline boolean match(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST valueof() const; +inline ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +LinkedEpsBearerIdentity_template& linkedEpsBearerId(); +const LinkedEpsBearerIdentity_template& linkedEpsBearerId() const; +NAS__CommonTypeDefs::EPS__QualityOfService_template& epsQos(); +const NAS__CommonTypeDefs::EPS__QualityOfService_template& epsQos() const; +NAS__CommonTypeDefs::TrafficFlowTemplate_template& tft(); +const NAS__CommonTypeDefs::TrafficFlowTemplate_template& tft() const; +TransactionIdentifier_template& transactionIdentifier(); +const TransactionIdentifier_template& transactionIdentifier() const; +NAS__CommonTypeDefs::QualityOfService_template& negotiatedQos(); +const NAS__CommonTypeDefs::QualityOfService_template& negotiatedQos() const; +NAS__CommonTypeDefs::LLC__SAPI_template& negotiatedLlcSapi(); +const NAS__CommonTypeDefs::LLC__SAPI_template& negotiatedLlcSapi() const; +NAS__CommonTypeDefs::RadioPriority_template& radioPriority(); +const NAS__CommonTypeDefs::RadioPriority_template& radioPriority() const; +NAS__CommonTypeDefs::PacketFlowIdentifier_template& packetFlowIdentifier(); +const NAS__CommonTypeDefs::PacketFlowIdentifier_template& packetFlowIdentifier() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::WLANOffloadAcceptability_template& wlanOffloadInd(); +const NAS__CommonTypeDefs::WLANOffloadAcceptability_template& wlanOffloadInd() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +NAS__CommonTypeDefs::Extd__EPS__QOS_template& extd__EPS__QOS(); +const NAS__CommonTypeDefs::Extd__EPS__QOS_template& extd__EPS__QOS() const; +Record_Template* create() const { return new ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TransactionIdentifier : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_tiFlag; + BITSTRING field_tiValue; + BITSTRING field_spare; + OPTIONAL field_ext; + OPTIONAL field_tiValue__2; + Base_Type* fld_vec[7]; + void init_vec(); +public: + TransactionIdentifier(); + TransactionIdentifier(const TransactionIdentifier& other_value); + TransactionIdentifier(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_tiFlag, + const BITSTRING& par_tiValue, + const BITSTRING& par_spare, + const OPTIONAL& par_ext, + const OPTIONAL& par_tiValue__2); +inline TransactionIdentifier& operator=(const TransactionIdentifier& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TransactionIdentifier& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TransactionIdentifier& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& tiFlag() + {return field_tiFlag;} + inline const BITSTRING& tiFlag() const + {return field_tiFlag;} + inline BITSTRING& tiValue() + {return field_tiValue;} + inline const BITSTRING& tiValue() const + {return field_tiValue;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline OPTIONAL& ext() + {return field_ext;} + inline const OPTIONAL& ext() const + {return field_ext;} + inline OPTIONAL& tiValue__2() + {return field_tiValue__2;} + inline const OPTIONAL& tiValue__2() const + {return field_tiValue__2;} +Base_Type* clone() const { return new TransactionIdentifier(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TransactionIdentifier_template : public Record_Template { +void set_specific(); +public: +TransactionIdentifier_template(): Record_Template() {} +TransactionIdentifier_template(template_sel other_value): Record_Template(other_value) {} +TransactionIdentifier_template(const TransactionIdentifier& other_value): Record_Template() { copy_value(&other_value); } +TransactionIdentifier_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TransactionIdentifier_template(TransactionIdentifier_template* p_precondition, TransactionIdentifier_template* p_implied_template); +TransactionIdentifier_template(Dynamic_Match_Interface* p_dyn_match); +TransactionIdentifier_template(const TransactionIdentifier_template& other_value): Record_Template() { copy_template(other_value); } +~TransactionIdentifier_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TransactionIdentifier_template& operator=(template_sel other_value); +TransactionIdentifier_template& operator=(const TransactionIdentifier& other_value); +TransactionIdentifier_template& operator=(const OPTIONAL& other_value); +TransactionIdentifier_template& operator=(const TransactionIdentifier_template& other_value); +inline boolean match(const TransactionIdentifier& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TransactionIdentifier& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TransactionIdentifier valueof() const; +inline TransactionIdentifier_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& tiFlag(); +const BITSTRING_template& tiFlag() const; +BITSTRING_template& tiValue(); +const BITSTRING_template& tiValue() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& ext(); +const BITSTRING_template& ext() const; +BITSTRING_template& tiValue__2(); +const BITSTRING_template& tiValue__2() const; +Record_Template* create() const { return new TransactionIdentifier_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[6]; + void init_vec(); +public: + ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT(); + ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& other_value); + ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template : public Record_Template { +void set_specific(); +public: +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(): Record_Template() {} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template* p_precondition, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template* p_implied_template); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(template_sel other_value); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& other_value); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const OPTIONAL& other_value); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& other_value); +inline boolean match(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT valueof() const; +inline ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + ESM__Cause field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[7]; + void init_vec(); +public: + ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT(); + ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& other_value); + ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__Cause& esmCause() + {return field_esmCause;} + inline const ESM__Cause& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template : public Record_Template { +void set_specific(); +public: +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(): Record_Template() {} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(template_sel other_value): Record_Template(other_value) {} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& other_value): Record_Template() { copy_value(&other_value); } +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template* p_precondition, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template* p_implied_template); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& operator=(template_sel other_value); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& other_value); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& operator=(const OPTIONAL& other_value); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& other_value); +inline boolean match(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT valueof() const; +inline ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + NAS__CommonTypeDefs::EPS__QualityOfService field_epsQos; + NAS__CommonTypeDefs::AccessPointName field_accessPointName; + NAS__CommonTypeDefs::PDN__Address field_pdnAdress; + OPTIONAL field_transactionIdentifier; + OPTIONAL field_negotiatedQos; + OPTIONAL field_negotiatedLlcSapi; + OPTIONAL field_radioPriority; + OPTIONAL field_packetFlowIdentifier; + OPTIONAL field_apnAggMaxBitRate; + OPTIONAL field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_connectivityType; + OPTIONAL field_wlanOffloadInd; + OPTIONAL field_nbifomContainer; + OPTIONAL field_headerCompressionConfig; + OPTIONAL field_controlPlaneOnlyIndication; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_servingPLMNRateControl; + OPTIONAL field_extd__APN__AMBR; + Base_Type* fld_vec[23]; + void init_vec(); +public: + ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST(); + ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& other_value); + ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::EPS__QualityOfService& par_epsQos, + const NAS__CommonTypeDefs::AccessPointName& par_accessPointName, + const NAS__CommonTypeDefs::PDN__Address& par_pdnAdress, + const OPTIONAL& par_transactionIdentifier, + const OPTIONAL& par_negotiatedQos, + const OPTIONAL& par_negotiatedLlcSapi, + const OPTIONAL& par_radioPriority, + const OPTIONAL& par_packetFlowIdentifier, + const OPTIONAL& par_apnAggMaxBitRate, + const OPTIONAL& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_connectivityType, + const OPTIONAL& par_wlanOffloadInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_headerCompressionConfig, + const OPTIONAL& par_controlPlaneOnlyIndication, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_servingPLMNRateControl, + const OPTIONAL& par_extd__APN__AMBR); +inline ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::EPS__QualityOfService& epsQos() + {return field_epsQos;} + inline const NAS__CommonTypeDefs::EPS__QualityOfService& epsQos() const + {return field_epsQos;} + inline NAS__CommonTypeDefs::AccessPointName& accessPointName() + {return field_accessPointName;} + inline const NAS__CommonTypeDefs::AccessPointName& accessPointName() const + {return field_accessPointName;} + inline NAS__CommonTypeDefs::PDN__Address& pdnAdress() + {return field_pdnAdress;} + inline const NAS__CommonTypeDefs::PDN__Address& pdnAdress() const + {return field_pdnAdress;} + inline OPTIONAL& transactionIdentifier() + {return field_transactionIdentifier;} + inline const OPTIONAL& transactionIdentifier() const + {return field_transactionIdentifier;} + inline OPTIONAL& negotiatedQos() + {return field_negotiatedQos;} + inline const OPTIONAL& negotiatedQos() const + {return field_negotiatedQos;} + inline OPTIONAL& negotiatedLlcSapi() + {return field_negotiatedLlcSapi;} + inline const OPTIONAL& negotiatedLlcSapi() const + {return field_negotiatedLlcSapi;} + inline OPTIONAL& radioPriority() + {return field_radioPriority;} + inline const OPTIONAL& radioPriority() const + {return field_radioPriority;} + inline OPTIONAL& packetFlowIdentifier() + {return field_packetFlowIdentifier;} + inline const OPTIONAL& packetFlowIdentifier() const + {return field_packetFlowIdentifier;} + inline OPTIONAL& apnAggMaxBitRate() + {return field_apnAggMaxBitRate;} + inline const OPTIONAL& apnAggMaxBitRate() const + {return field_apnAggMaxBitRate;} + inline OPTIONAL& esmCause() + {return field_esmCause;} + inline const OPTIONAL& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& connectivityType() + {return field_connectivityType;} + inline const OPTIONAL& connectivityType() const + {return field_connectivityType;} + inline OPTIONAL& wlanOffloadInd() + {return field_wlanOffloadInd;} + inline const OPTIONAL& wlanOffloadInd() const + {return field_wlanOffloadInd;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& headerCompressionConfig() + {return field_headerCompressionConfig;} + inline const OPTIONAL& headerCompressionConfig() const + {return field_headerCompressionConfig;} + inline OPTIONAL& controlPlaneOnlyIndication() + {return field_controlPlaneOnlyIndication;} + inline const OPTIONAL& controlPlaneOnlyIndication() const + {return field_controlPlaneOnlyIndication;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& servingPLMNRateControl() + {return field_servingPLMNRateControl;} + inline const OPTIONAL& servingPLMNRateControl() const + {return field_servingPLMNRateControl;} + inline OPTIONAL& extd__APN__AMBR() + {return field_extd__APN__AMBR;} + inline const OPTIONAL& extd__APN__AMBR() const + {return field_extd__APN__AMBR;} +Base_Type* clone() const { return new ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 23; } +int optional_count() const { return 16; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template : public Record_Template { +void set_specific(); +public: +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(): Record_Template() {} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template* p_precondition, ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template* p_implied_template); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& operator=(template_sel other_value); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& other_value); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const OPTIONAL& other_value); +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& other_value); +inline boolean match(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST valueof() const; +inline ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::EPS__QualityOfService_template& epsQos(); +const NAS__CommonTypeDefs::EPS__QualityOfService_template& epsQos() const; +NAS__CommonTypeDefs::AccessPointName_template& accessPointName(); +const NAS__CommonTypeDefs::AccessPointName_template& accessPointName() const; +NAS__CommonTypeDefs::PDN__Address_template& pdnAdress(); +const NAS__CommonTypeDefs::PDN__Address_template& pdnAdress() const; +TransactionIdentifier_template& transactionIdentifier(); +const TransactionIdentifier_template& transactionIdentifier() const; +NAS__CommonTypeDefs::QualityOfService_template& negotiatedQos(); +const NAS__CommonTypeDefs::QualityOfService_template& negotiatedQos() const; +NAS__CommonTypeDefs::LLC__SAPI_template& negotiatedLlcSapi(); +const NAS__CommonTypeDefs::LLC__SAPI_template& negotiatedLlcSapi() const; +NAS__CommonTypeDefs::RadioPriority_template& radioPriority(); +const NAS__CommonTypeDefs::RadioPriority_template& radioPriority() const; +NAS__CommonTypeDefs::PacketFlowIdentifier_template& packetFlowIdentifier(); +const NAS__CommonTypeDefs::PacketFlowIdentifier_template& packetFlowIdentifier() const; +APN__AMBR_template& apnAggMaxBitRate(); +const APN__AMBR_template& apnAggMaxBitRate() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::ConnectivityType_template& connectivityType(); +const NAS__CommonTypeDefs::ConnectivityType_template& connectivityType() const; +NAS__CommonTypeDefs::WLANOffloadAcceptability_template& wlanOffloadInd(); +const NAS__CommonTypeDefs::WLANOffloadAcceptability_template& wlanOffloadInd() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +HeaderCompressConfig_template& headerCompressionConfig(); +const HeaderCompressConfig_template& headerCompressionConfig() const; +NAS__CommonTypeDefs::ControlPlaneInd_template& controlPlaneOnlyIndication(); +const NAS__CommonTypeDefs::ControlPlaneInd_template& controlPlaneOnlyIndication() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +NAS__CommonTypeDefs::ServingPLMNRateControl_template& servingPLMNRateControl(); +const NAS__CommonTypeDefs::ServingPLMNRateControl_template& servingPLMNRateControl() const; +Extd__APN__AMBR_template& extd__APN__AMBR(); +const Extd__APN__AMBR_template& extd__APN__AMBR() const; +Record_Template* create() const { return new ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class APN__AMBR : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_downlink; + BITSTRING field_uplink; + OPTIONAL field_downlinkExt; + OPTIONAL field_uplinkExt; + OPTIONAL field_downlinkExt2; + OPTIONAL field_uplinkExt2; + Base_Type* fld_vec[8]; + void init_vec(); +public: + APN__AMBR(); + APN__AMBR(const APN__AMBR& other_value); + APN__AMBR(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_downlink, + const BITSTRING& par_uplink, + const OPTIONAL& par_downlinkExt, + const OPTIONAL& par_uplinkExt, + const OPTIONAL& par_downlinkExt2, + const OPTIONAL& par_uplinkExt2); +inline APN__AMBR& operator=(const APN__AMBR& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const APN__AMBR& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const APN__AMBR& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& downlink() + {return field_downlink;} + inline const BITSTRING& downlink() const + {return field_downlink;} + inline BITSTRING& uplink() + {return field_uplink;} + inline const BITSTRING& uplink() const + {return field_uplink;} + inline OPTIONAL& downlinkExt() + {return field_downlinkExt;} + inline const OPTIONAL& downlinkExt() const + {return field_downlinkExt;} + inline OPTIONAL& uplinkExt() + {return field_uplinkExt;} + inline const OPTIONAL& uplinkExt() const + {return field_uplinkExt;} + inline OPTIONAL& downlinkExt2() + {return field_downlinkExt2;} + inline const OPTIONAL& downlinkExt2() const + {return field_downlinkExt2;} + inline OPTIONAL& uplinkExt2() + {return field_uplinkExt2;} + inline const OPTIONAL& uplinkExt2() const + {return field_uplinkExt2;} +Base_Type* clone() const { return new APN__AMBR(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class APN__AMBR_template : public Record_Template { +void set_specific(); +public: +APN__AMBR_template(): Record_Template() {} +APN__AMBR_template(template_sel other_value): Record_Template(other_value) {} +APN__AMBR_template(const APN__AMBR& other_value): Record_Template() { copy_value(&other_value); } +APN__AMBR_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +APN__AMBR_template(APN__AMBR_template* p_precondition, APN__AMBR_template* p_implied_template); +APN__AMBR_template(Dynamic_Match_Interface* p_dyn_match); +APN__AMBR_template(const APN__AMBR_template& other_value): Record_Template() { copy_template(other_value); } +~APN__AMBR_template(); +boolean match_dynamic(const Base_Type* match_value) const; +APN__AMBR_template& operator=(template_sel other_value); +APN__AMBR_template& operator=(const APN__AMBR& other_value); +APN__AMBR_template& operator=(const OPTIONAL& other_value); +APN__AMBR_template& operator=(const APN__AMBR_template& other_value); +inline boolean match(const APN__AMBR& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const APN__AMBR& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +APN__AMBR valueof() const; +inline APN__AMBR_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& downlink(); +const BITSTRING_template& downlink() const; +BITSTRING_template& uplink(); +const BITSTRING_template& uplink() const; +BITSTRING_template& downlinkExt(); +const BITSTRING_template& downlinkExt() const; +BITSTRING_template& uplinkExt(); +const BITSTRING_template& uplinkExt() const; +BITSTRING_template& downlinkExt2(); +const BITSTRING_template& downlinkExt2() const; +BITSTRING_template& uplinkExt2(); +const BITSTRING_template& uplinkExt2() const; +Record_Template* create() const { return new APN__AMBR_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class HeaderCompressConfig : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare; + BITSTRING field_profileP0x0104; + BITSTRING field_profileP0x0103; + BITSTRING field_profileP0x0102; + BITSTRING field_profileP0x0006; + BITSTRING field_profileP0x0004; + BITSTRING field_profileP0x0003; + BITSTRING field_profileP0x0002; + OCTETSTRING field_maxCID; + OPTIONAL field_addHeaderCompressContextSetupParamsType; + OPTIONAL field_addHeaderCompressContextSetupParams; + Base_Type* fld_vec[13]; + void init_vec(); +public: + HeaderCompressConfig(); + HeaderCompressConfig(const HeaderCompressConfig& other_value); + HeaderCompressConfig(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_profileP0x0104, + const BITSTRING& par_profileP0x0103, + const BITSTRING& par_profileP0x0102, + const BITSTRING& par_profileP0x0006, + const BITSTRING& par_profileP0x0004, + const BITSTRING& par_profileP0x0003, + const BITSTRING& par_profileP0x0002, + const OCTETSTRING& par_maxCID, + const OPTIONAL& par_addHeaderCompressContextSetupParamsType, + const OPTIONAL& par_addHeaderCompressContextSetupParams); +inline HeaderCompressConfig& operator=(const HeaderCompressConfig& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const HeaderCompressConfig& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const HeaderCompressConfig& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& profileP0x0104() + {return field_profileP0x0104;} + inline const BITSTRING& profileP0x0104() const + {return field_profileP0x0104;} + inline BITSTRING& profileP0x0103() + {return field_profileP0x0103;} + inline const BITSTRING& profileP0x0103() const + {return field_profileP0x0103;} + inline BITSTRING& profileP0x0102() + {return field_profileP0x0102;} + inline const BITSTRING& profileP0x0102() const + {return field_profileP0x0102;} + inline BITSTRING& profileP0x0006() + {return field_profileP0x0006;} + inline const BITSTRING& profileP0x0006() const + {return field_profileP0x0006;} + inline BITSTRING& profileP0x0004() + {return field_profileP0x0004;} + inline const BITSTRING& profileP0x0004() const + {return field_profileP0x0004;} + inline BITSTRING& profileP0x0003() + {return field_profileP0x0003;} + inline const BITSTRING& profileP0x0003() const + {return field_profileP0x0003;} + inline BITSTRING& profileP0x0002() + {return field_profileP0x0002;} + inline const BITSTRING& profileP0x0002() const + {return field_profileP0x0002;} + inline OCTETSTRING& maxCID() + {return field_maxCID;} + inline const OCTETSTRING& maxCID() const + {return field_maxCID;} + inline OPTIONAL& addHeaderCompressContextSetupParamsType() + {return field_addHeaderCompressContextSetupParamsType;} + inline const OPTIONAL& addHeaderCompressContextSetupParamsType() const + {return field_addHeaderCompressContextSetupParamsType;} + inline OPTIONAL& addHeaderCompressContextSetupParams() + {return field_addHeaderCompressContextSetupParams;} + inline const OPTIONAL& addHeaderCompressContextSetupParams() const + {return field_addHeaderCompressContextSetupParams;} +Base_Type* clone() const { return new HeaderCompressConfig(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 13; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class HeaderCompressConfig_template : public Record_Template { +void set_specific(); +public: +HeaderCompressConfig_template(): Record_Template() {} +HeaderCompressConfig_template(template_sel other_value): Record_Template(other_value) {} +HeaderCompressConfig_template(const HeaderCompressConfig& other_value): Record_Template() { copy_value(&other_value); } +HeaderCompressConfig_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +HeaderCompressConfig_template(HeaderCompressConfig_template* p_precondition, HeaderCompressConfig_template* p_implied_template); +HeaderCompressConfig_template(Dynamic_Match_Interface* p_dyn_match); +HeaderCompressConfig_template(const HeaderCompressConfig_template& other_value): Record_Template() { copy_template(other_value); } +~HeaderCompressConfig_template(); +boolean match_dynamic(const Base_Type* match_value) const; +HeaderCompressConfig_template& operator=(template_sel other_value); +HeaderCompressConfig_template& operator=(const HeaderCompressConfig& other_value); +HeaderCompressConfig_template& operator=(const OPTIONAL& other_value); +HeaderCompressConfig_template& operator=(const HeaderCompressConfig_template& other_value); +inline boolean match(const HeaderCompressConfig& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const HeaderCompressConfig& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +HeaderCompressConfig valueof() const; +inline HeaderCompressConfig_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& profileP0x0104(); +const BITSTRING_template& profileP0x0104() const; +BITSTRING_template& profileP0x0103(); +const BITSTRING_template& profileP0x0103() const; +BITSTRING_template& profileP0x0102(); +const BITSTRING_template& profileP0x0102() const; +BITSTRING_template& profileP0x0006(); +const BITSTRING_template& profileP0x0006() const; +BITSTRING_template& profileP0x0004(); +const BITSTRING_template& profileP0x0004() const; +BITSTRING_template& profileP0x0003(); +const BITSTRING_template& profileP0x0003() const; +BITSTRING_template& profileP0x0002(); +const BITSTRING_template& profileP0x0002() const; +OCTETSTRING_template& maxCID(); +const OCTETSTRING_template& maxCID() const; +OCTETSTRING_template& addHeaderCompressContextSetupParamsType(); +const OCTETSTRING_template& addHeaderCompressContextSetupParamsType() const; +OCTETSTRING_template& addHeaderCompressContextSetupParams(); +const OCTETSTRING_template& addHeaderCompressContextSetupParams() const; +Record_Template* create() const { return new HeaderCompressConfig_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Extd__APN__AMBR : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_unitDL; + BITSTRING field_downlink__1; + BITSTRING field_downlink__2; + BITSTRING field_unitUL; + BITSTRING field_uplink__1; + BITSTRING field_uplink__2; + Base_Type* fld_vec[8]; + void init_vec(); +public: + Extd__APN__AMBR(); + Extd__APN__AMBR(const Extd__APN__AMBR& other_value); + Extd__APN__AMBR(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_unitDL, + const BITSTRING& par_downlink__1, + const BITSTRING& par_downlink__2, + const BITSTRING& par_unitUL, + const BITSTRING& par_uplink__1, + const BITSTRING& par_uplink__2); +inline Extd__APN__AMBR& operator=(const Extd__APN__AMBR& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Extd__APN__AMBR& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Extd__APN__AMBR& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& unitDL() + {return field_unitDL;} + inline const BITSTRING& unitDL() const + {return field_unitDL;} + inline BITSTRING& downlink__1() + {return field_downlink__1;} + inline const BITSTRING& downlink__1() const + {return field_downlink__1;} + inline BITSTRING& downlink__2() + {return field_downlink__2;} + inline const BITSTRING& downlink__2() const + {return field_downlink__2;} + inline BITSTRING& unitUL() + {return field_unitUL;} + inline const BITSTRING& unitUL() const + {return field_unitUL;} + inline BITSTRING& uplink__1() + {return field_uplink__1;} + inline const BITSTRING& uplink__1() const + {return field_uplink__1;} + inline BITSTRING& uplink__2() + {return field_uplink__2;} + inline const BITSTRING& uplink__2() const + {return field_uplink__2;} +Base_Type* clone() const { return new Extd__APN__AMBR(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Extd__APN__AMBR_template : public Record_Template { +void set_specific(); +public: +Extd__APN__AMBR_template(): Record_Template() {} +Extd__APN__AMBR_template(template_sel other_value): Record_Template(other_value) {} +Extd__APN__AMBR_template(const Extd__APN__AMBR& other_value): Record_Template() { copy_value(&other_value); } +Extd__APN__AMBR_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Extd__APN__AMBR_template(Extd__APN__AMBR_template* p_precondition, Extd__APN__AMBR_template* p_implied_template); +Extd__APN__AMBR_template(Dynamic_Match_Interface* p_dyn_match); +Extd__APN__AMBR_template(const Extd__APN__AMBR_template& other_value): Record_Template() { copy_template(other_value); } +~Extd__APN__AMBR_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Extd__APN__AMBR_template& operator=(template_sel other_value); +Extd__APN__AMBR_template& operator=(const Extd__APN__AMBR& other_value); +Extd__APN__AMBR_template& operator=(const OPTIONAL& other_value); +Extd__APN__AMBR_template& operator=(const Extd__APN__AMBR_template& other_value); +inline boolean match(const Extd__APN__AMBR& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Extd__APN__AMBR& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Extd__APN__AMBR valueof() const; +inline Extd__APN__AMBR_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& unitDL(); +const BITSTRING_template& unitDL() const; +BITSTRING_template& downlink__1(); +const BITSTRING_template& downlink__1() const; +BITSTRING_template& downlink__2(); +const BITSTRING_template& downlink__2() const; +BITSTRING_template& unitUL(); +const BITSTRING_template& unitUL() const; +BITSTRING_template& uplink__1(); +const BITSTRING_template& uplink__1() const; +BITSTRING_template& uplink__2(); +const BITSTRING_template& uplink__2() const; +Record_Template* create() const { return new Extd__APN__AMBR_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class BEARER__RESOURCE__ALLOCATION__REJECT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + ESM__Cause field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_backOffTimerValue; + OPTIONAL field_reattemptInd; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[10]; + void init_vec(); +public: + BEARER__RESOURCE__ALLOCATION__REJECT(); + BEARER__RESOURCE__ALLOCATION__REJECT(const BEARER__RESOURCE__ALLOCATION__REJECT& other_value); + BEARER__RESOURCE__ALLOCATION__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_reattemptInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline BEARER__RESOURCE__ALLOCATION__REJECT& operator=(const BEARER__RESOURCE__ALLOCATION__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const BEARER__RESOURCE__ALLOCATION__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const BEARER__RESOURCE__ALLOCATION__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__Cause& esmCause() + {return field_esmCause;} + inline const ESM__Cause& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& backOffTimerValue() + {return field_backOffTimerValue;} + inline const OPTIONAL& backOffTimerValue() const + {return field_backOffTimerValue;} + inline OPTIONAL& reattemptInd() + {return field_reattemptInd;} + inline const OPTIONAL& reattemptInd() const + {return field_reattemptInd;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new BEARER__RESOURCE__ALLOCATION__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class BEARER__RESOURCE__ALLOCATION__REJECT_template : public Record_Template { +void set_specific(); +public: +BEARER__RESOURCE__ALLOCATION__REJECT_template(): Record_Template() {} +BEARER__RESOURCE__ALLOCATION__REJECT_template(template_sel other_value): Record_Template(other_value) {} +BEARER__RESOURCE__ALLOCATION__REJECT_template(const BEARER__RESOURCE__ALLOCATION__REJECT& other_value): Record_Template() { copy_value(&other_value); } +BEARER__RESOURCE__ALLOCATION__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +BEARER__RESOURCE__ALLOCATION__REJECT_template(BEARER__RESOURCE__ALLOCATION__REJECT_template* p_precondition, BEARER__RESOURCE__ALLOCATION__REJECT_template* p_implied_template); +BEARER__RESOURCE__ALLOCATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +BEARER__RESOURCE__ALLOCATION__REJECT_template(const BEARER__RESOURCE__ALLOCATION__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~BEARER__RESOURCE__ALLOCATION__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +BEARER__RESOURCE__ALLOCATION__REJECT_template& operator=(template_sel other_value); +BEARER__RESOURCE__ALLOCATION__REJECT_template& operator=(const BEARER__RESOURCE__ALLOCATION__REJECT& other_value); +BEARER__RESOURCE__ALLOCATION__REJECT_template& operator=(const OPTIONAL& other_value); +BEARER__RESOURCE__ALLOCATION__REJECT_template& operator=(const BEARER__RESOURCE__ALLOCATION__REJECT_template& other_value); +inline boolean match(const BEARER__RESOURCE__ALLOCATION__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const BEARER__RESOURCE__ALLOCATION__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +BEARER__RESOURCE__ALLOCATION__REJECT valueof() const; +inline BEARER__RESOURCE__ALLOCATION__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue() const; +NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd(); +const NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new BEARER__RESOURCE__ALLOCATION__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class BEARER__RESOURCE__ALLOCATION__REQUEST : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet; + LinkedEpsBearerIdentity field_linkedEpsBearerId; + NAS__CommonTypeDefs::TrafficFlowTemplate field_trafficFlowAgg; + NAS__CommonTypeDefs::EPS__QualityOfService field_requiredTrafficFlowQoS; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_deviceProperties; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_extd__EPS__QOS; + Base_Type* fld_vec[13]; + void init_vec(); +public: + BEARER__RESOURCE__ALLOCATION__REQUEST(); + BEARER__RESOURCE__ALLOCATION__REQUEST(const BEARER__RESOURCE__ALLOCATION__REQUEST& other_value); + BEARER__RESOURCE__ALLOCATION__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const LinkedEpsBearerIdentity& par_linkedEpsBearerId, + const NAS__CommonTypeDefs::TrafficFlowTemplate& par_trafficFlowAgg, + const NAS__CommonTypeDefs::EPS__QualityOfService& par_requiredTrafficFlowQoS, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_extd__EPS__QOS); +inline BEARER__RESOURCE__ALLOCATION__REQUEST& operator=(const BEARER__RESOURCE__ALLOCATION__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const BEARER__RESOURCE__ALLOCATION__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const BEARER__RESOURCE__ALLOCATION__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline LinkedEpsBearerIdentity& linkedEpsBearerId() + {return field_linkedEpsBearerId;} + inline const LinkedEpsBearerIdentity& linkedEpsBearerId() const + {return field_linkedEpsBearerId;} + inline NAS__CommonTypeDefs::TrafficFlowTemplate& trafficFlowAgg() + {return field_trafficFlowAgg;} + inline const NAS__CommonTypeDefs::TrafficFlowTemplate& trafficFlowAgg() const + {return field_trafficFlowAgg;} + inline NAS__CommonTypeDefs::EPS__QualityOfService& requiredTrafficFlowQoS() + {return field_requiredTrafficFlowQoS;} + inline const NAS__CommonTypeDefs::EPS__QualityOfService& requiredTrafficFlowQoS() const + {return field_requiredTrafficFlowQoS;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& deviceProperties() + {return field_deviceProperties;} + inline const OPTIONAL& deviceProperties() const + {return field_deviceProperties;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& extd__EPS__QOS() + {return field_extd__EPS__QOS;} + inline const OPTIONAL& extd__EPS__QOS() const + {return field_extd__EPS__QOS;} +Base_Type* clone() const { return new BEARER__RESOURCE__ALLOCATION__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 13; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class BEARER__RESOURCE__ALLOCATION__REQUEST_template : public Record_Template { +void set_specific(); +public: +BEARER__RESOURCE__ALLOCATION__REQUEST_template(): Record_Template() {} +BEARER__RESOURCE__ALLOCATION__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +BEARER__RESOURCE__ALLOCATION__REQUEST_template(const BEARER__RESOURCE__ALLOCATION__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +BEARER__RESOURCE__ALLOCATION__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +BEARER__RESOURCE__ALLOCATION__REQUEST_template(BEARER__RESOURCE__ALLOCATION__REQUEST_template* p_precondition, BEARER__RESOURCE__ALLOCATION__REQUEST_template* p_implied_template); +BEARER__RESOURCE__ALLOCATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +BEARER__RESOURCE__ALLOCATION__REQUEST_template(const BEARER__RESOURCE__ALLOCATION__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~BEARER__RESOURCE__ALLOCATION__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +BEARER__RESOURCE__ALLOCATION__REQUEST_template& operator=(template_sel other_value); +BEARER__RESOURCE__ALLOCATION__REQUEST_template& operator=(const BEARER__RESOURCE__ALLOCATION__REQUEST& other_value); +BEARER__RESOURCE__ALLOCATION__REQUEST_template& operator=(const OPTIONAL& other_value); +BEARER__RESOURCE__ALLOCATION__REQUEST_template& operator=(const BEARER__RESOURCE__ALLOCATION__REQUEST_template& other_value); +inline boolean match(const BEARER__RESOURCE__ALLOCATION__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const BEARER__RESOURCE__ALLOCATION__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +BEARER__RESOURCE__ALLOCATION__REQUEST valueof() const; +inline BEARER__RESOURCE__ALLOCATION__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +LinkedEpsBearerIdentity_template& linkedEpsBearerId(); +const LinkedEpsBearerIdentity_template& linkedEpsBearerId() const; +NAS__CommonTypeDefs::TrafficFlowTemplate_template& trafficFlowAgg(); +const NAS__CommonTypeDefs::TrafficFlowTemplate_template& trafficFlowAgg() const; +NAS__CommonTypeDefs::EPS__QualityOfService_template& requiredTrafficFlowQoS(); +const NAS__CommonTypeDefs::EPS__QualityOfService_template& requiredTrafficFlowQoS() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties(); +const NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +NAS__CommonTypeDefs::Extd__EPS__QOS_template& extd__EPS__QOS(); +const NAS__CommonTypeDefs::Extd__EPS__QOS_template& extd__EPS__QOS() const; +Record_Template* create() const { return new BEARER__RESOURCE__ALLOCATION__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class BEARER__RESOURCE__MODIFICATION__REJECT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + ESM__Cause field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_backOffTimerValue; + OPTIONAL field_reattemptInd; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[10]; + void init_vec(); +public: + BEARER__RESOURCE__MODIFICATION__REJECT(); + BEARER__RESOURCE__MODIFICATION__REJECT(const BEARER__RESOURCE__MODIFICATION__REJECT& other_value); + BEARER__RESOURCE__MODIFICATION__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_reattemptInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline BEARER__RESOURCE__MODIFICATION__REJECT& operator=(const BEARER__RESOURCE__MODIFICATION__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const BEARER__RESOURCE__MODIFICATION__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const BEARER__RESOURCE__MODIFICATION__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__Cause& esmCause() + {return field_esmCause;} + inline const ESM__Cause& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& backOffTimerValue() + {return field_backOffTimerValue;} + inline const OPTIONAL& backOffTimerValue() const + {return field_backOffTimerValue;} + inline OPTIONAL& reattemptInd() + {return field_reattemptInd;} + inline const OPTIONAL& reattemptInd() const + {return field_reattemptInd;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new BEARER__RESOURCE__MODIFICATION__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class BEARER__RESOURCE__MODIFICATION__REJECT_template : public Record_Template { +void set_specific(); +public: +BEARER__RESOURCE__MODIFICATION__REJECT_template(): Record_Template() {} +BEARER__RESOURCE__MODIFICATION__REJECT_template(template_sel other_value): Record_Template(other_value) {} +BEARER__RESOURCE__MODIFICATION__REJECT_template(const BEARER__RESOURCE__MODIFICATION__REJECT& other_value): Record_Template() { copy_value(&other_value); } +BEARER__RESOURCE__MODIFICATION__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +BEARER__RESOURCE__MODIFICATION__REJECT_template(BEARER__RESOURCE__MODIFICATION__REJECT_template* p_precondition, BEARER__RESOURCE__MODIFICATION__REJECT_template* p_implied_template); +BEARER__RESOURCE__MODIFICATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +BEARER__RESOURCE__MODIFICATION__REJECT_template(const BEARER__RESOURCE__MODIFICATION__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~BEARER__RESOURCE__MODIFICATION__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +BEARER__RESOURCE__MODIFICATION__REJECT_template& operator=(template_sel other_value); +BEARER__RESOURCE__MODIFICATION__REJECT_template& operator=(const BEARER__RESOURCE__MODIFICATION__REJECT& other_value); +BEARER__RESOURCE__MODIFICATION__REJECT_template& operator=(const OPTIONAL& other_value); +BEARER__RESOURCE__MODIFICATION__REJECT_template& operator=(const BEARER__RESOURCE__MODIFICATION__REJECT_template& other_value); +inline boolean match(const BEARER__RESOURCE__MODIFICATION__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const BEARER__RESOURCE__MODIFICATION__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +BEARER__RESOURCE__MODIFICATION__REJECT valueof() const; +inline BEARER__RESOURCE__MODIFICATION__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue() const; +NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd(); +const NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new BEARER__RESOURCE__MODIFICATION__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class BEARER__RESOURCE__MODIFICATION__REQUEST : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet; + LinkedEpsBearerIdentity field_epsBearerIdentityforPacketFilter; + NAS__CommonTypeDefs::TrafficFlowTemplate field_trafficFlowAgg; + OPTIONAL field_requiredTrafficFlowQoS; + OPTIONAL field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_deviceProperties; + OPTIONAL field_nbifomContainer; + OPTIONAL field_headerCompressionConfig; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_extd__EPS__QOS; + Base_Type* fld_vec[15]; + void init_vec(); +public: + BEARER__RESOURCE__MODIFICATION__REQUEST(); + BEARER__RESOURCE__MODIFICATION__REQUEST(const BEARER__RESOURCE__MODIFICATION__REQUEST& other_value); + BEARER__RESOURCE__MODIFICATION__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const LinkedEpsBearerIdentity& par_epsBearerIdentityforPacketFilter, + const NAS__CommonTypeDefs::TrafficFlowTemplate& par_trafficFlowAgg, + const OPTIONAL& par_requiredTrafficFlowQoS, + const OPTIONAL& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_headerCompressionConfig, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_extd__EPS__QOS); +inline BEARER__RESOURCE__MODIFICATION__REQUEST& operator=(const BEARER__RESOURCE__MODIFICATION__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const BEARER__RESOURCE__MODIFICATION__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const BEARER__RESOURCE__MODIFICATION__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline LinkedEpsBearerIdentity& epsBearerIdentityforPacketFilter() + {return field_epsBearerIdentityforPacketFilter;} + inline const LinkedEpsBearerIdentity& epsBearerIdentityforPacketFilter() const + {return field_epsBearerIdentityforPacketFilter;} + inline NAS__CommonTypeDefs::TrafficFlowTemplate& trafficFlowAgg() + {return field_trafficFlowAgg;} + inline const NAS__CommonTypeDefs::TrafficFlowTemplate& trafficFlowAgg() const + {return field_trafficFlowAgg;} + inline OPTIONAL& requiredTrafficFlowQoS() + {return field_requiredTrafficFlowQoS;} + inline const OPTIONAL& requiredTrafficFlowQoS() const + {return field_requiredTrafficFlowQoS;} + inline OPTIONAL& esmCause() + {return field_esmCause;} + inline const OPTIONAL& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& deviceProperties() + {return field_deviceProperties;} + inline const OPTIONAL& deviceProperties() const + {return field_deviceProperties;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& headerCompressionConfig() + {return field_headerCompressionConfig;} + inline const OPTIONAL& headerCompressionConfig() const + {return field_headerCompressionConfig;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& extd__EPS__QOS() + {return field_extd__EPS__QOS;} + inline const OPTIONAL& extd__EPS__QOS() const + {return field_extd__EPS__QOS;} +Base_Type* clone() const { return new BEARER__RESOURCE__MODIFICATION__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 15; } +int optional_count() const { return 8; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class BEARER__RESOURCE__MODIFICATION__REQUEST_template : public Record_Template { +void set_specific(); +public: +BEARER__RESOURCE__MODIFICATION__REQUEST_template(): Record_Template() {} +BEARER__RESOURCE__MODIFICATION__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +BEARER__RESOURCE__MODIFICATION__REQUEST_template(const BEARER__RESOURCE__MODIFICATION__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +BEARER__RESOURCE__MODIFICATION__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +BEARER__RESOURCE__MODIFICATION__REQUEST_template(BEARER__RESOURCE__MODIFICATION__REQUEST_template* p_precondition, BEARER__RESOURCE__MODIFICATION__REQUEST_template* p_implied_template); +BEARER__RESOURCE__MODIFICATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +BEARER__RESOURCE__MODIFICATION__REQUEST_template(const BEARER__RESOURCE__MODIFICATION__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~BEARER__RESOURCE__MODIFICATION__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +BEARER__RESOURCE__MODIFICATION__REQUEST_template& operator=(template_sel other_value); +BEARER__RESOURCE__MODIFICATION__REQUEST_template& operator=(const BEARER__RESOURCE__MODIFICATION__REQUEST& other_value); +BEARER__RESOURCE__MODIFICATION__REQUEST_template& operator=(const OPTIONAL& other_value); +BEARER__RESOURCE__MODIFICATION__REQUEST_template& operator=(const BEARER__RESOURCE__MODIFICATION__REQUEST_template& other_value); +inline boolean match(const BEARER__RESOURCE__MODIFICATION__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const BEARER__RESOURCE__MODIFICATION__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +BEARER__RESOURCE__MODIFICATION__REQUEST valueof() const; +inline BEARER__RESOURCE__MODIFICATION__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +LinkedEpsBearerIdentity_template& epsBearerIdentityforPacketFilter(); +const LinkedEpsBearerIdentity_template& epsBearerIdentityforPacketFilter() const; +NAS__CommonTypeDefs::TrafficFlowTemplate_template& trafficFlowAgg(); +const NAS__CommonTypeDefs::TrafficFlowTemplate_template& trafficFlowAgg() const; +NAS__CommonTypeDefs::EPS__QualityOfService_template& requiredTrafficFlowQoS(); +const NAS__CommonTypeDefs::EPS__QualityOfService_template& requiredTrafficFlowQoS() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties(); +const NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +HeaderCompressConfig_template& headerCompressionConfig(); +const HeaderCompressConfig_template& headerCompressionConfig() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +NAS__CommonTypeDefs::Extd__EPS__QOS_template& extd__EPS__QOS(); +const NAS__CommonTypeDefs::Extd__EPS__QOS_template& extd__EPS__QOS() const; +Record_Template* create() const { return new BEARER__RESOURCE__MODIFICATION__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[6]; + void init_vec(); +public: + DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT(); + DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& other_value); + DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template : public Record_Template { +void set_specific(); +public: +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(): Record_Template() {} +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template* p_precondition, DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template* p_implied_template); +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(template_sel other_value); +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& other_value); +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const OPTIONAL& other_value); +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& other_value); +inline boolean match(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT valueof() const; +inline DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + ESM__Cause field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_t3396Value; + OPTIONAL field_wlanOffloadInd; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[10]; + void init_vec(); +public: + DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST(); + DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& other_value); + DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_t3396Value, + const OPTIONAL& par_wlanOffloadInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__Cause& esmCause() + {return field_esmCause;} + inline const ESM__Cause& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& t3396Value() + {return field_t3396Value;} + inline const OPTIONAL& t3396Value() const + {return field_t3396Value;} + inline OPTIONAL& wlanOffloadInd() + {return field_wlanOffloadInd;} + inline const OPTIONAL& wlanOffloadInd() const + {return field_wlanOffloadInd;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template : public Record_Template { +void set_specific(); +public: +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(): Record_Template() {} +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template* p_precondition, DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template* p_implied_template); +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& operator=(template_sel other_value); +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& other_value); +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const OPTIONAL& other_value); +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& other_value); +inline boolean match(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST valueof() const; +inline DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3396Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3396Value() const; +NAS__CommonTypeDefs::WLANOffloadAcceptability_template& wlanOffloadInd(); +const NAS__CommonTypeDefs::WLANOffloadAcceptability_template& wlanOffloadInd() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ESM__DUMMY__MESSAGE : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + Base_Type* fld_vec[4]; + void init_vec(); +public: + ESM__DUMMY__MESSAGE(); + ESM__DUMMY__MESSAGE(const ESM__DUMMY__MESSAGE& other_value); + ESM__DUMMY__MESSAGE(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType); +inline ESM__DUMMY__MESSAGE& operator=(const ESM__DUMMY__MESSAGE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ESM__DUMMY__MESSAGE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ESM__DUMMY__MESSAGE& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new ESM__DUMMY__MESSAGE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ESM__DUMMY__MESSAGE_template : public Record_Template { +void set_specific(); +public: +ESM__DUMMY__MESSAGE_template(): Record_Template() {} +ESM__DUMMY__MESSAGE_template(template_sel other_value): Record_Template(other_value) {} +ESM__DUMMY__MESSAGE_template(const ESM__DUMMY__MESSAGE& other_value): Record_Template() { copy_value(&other_value); } +ESM__DUMMY__MESSAGE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ESM__DUMMY__MESSAGE_template(ESM__DUMMY__MESSAGE_template* p_precondition, ESM__DUMMY__MESSAGE_template* p_implied_template); +ESM__DUMMY__MESSAGE_template(Dynamic_Match_Interface* p_dyn_match); +ESM__DUMMY__MESSAGE_template(const ESM__DUMMY__MESSAGE_template& other_value): Record_Template() { copy_template(other_value); } +~ESM__DUMMY__MESSAGE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ESM__DUMMY__MESSAGE_template& operator=(template_sel other_value); +ESM__DUMMY__MESSAGE_template& operator=(const ESM__DUMMY__MESSAGE& other_value); +ESM__DUMMY__MESSAGE_template& operator=(const OPTIONAL& other_value); +ESM__DUMMY__MESSAGE_template& operator=(const ESM__DUMMY__MESSAGE_template& other_value); +inline boolean match(const ESM__DUMMY__MESSAGE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ESM__DUMMY__MESSAGE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ESM__DUMMY__MESSAGE valueof() const; +inline ESM__DUMMY__MESSAGE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new ESM__DUMMY__MESSAGE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ESM__INFORMATION__REQUEST : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + Base_Type* fld_vec[4]; + void init_vec(); +public: + ESM__INFORMATION__REQUEST(); + ESM__INFORMATION__REQUEST(const ESM__INFORMATION__REQUEST& other_value); + ESM__INFORMATION__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType); +inline ESM__INFORMATION__REQUEST& operator=(const ESM__INFORMATION__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ESM__INFORMATION__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ESM__INFORMATION__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new ESM__INFORMATION__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ESM__INFORMATION__REQUEST_template : public Record_Template { +void set_specific(); +public: +ESM__INFORMATION__REQUEST_template(): Record_Template() {} +ESM__INFORMATION__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +ESM__INFORMATION__REQUEST_template(const ESM__INFORMATION__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +ESM__INFORMATION__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ESM__INFORMATION__REQUEST_template(ESM__INFORMATION__REQUEST_template* p_precondition, ESM__INFORMATION__REQUEST_template* p_implied_template); +ESM__INFORMATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +ESM__INFORMATION__REQUEST_template(const ESM__INFORMATION__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~ESM__INFORMATION__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ESM__INFORMATION__REQUEST_template& operator=(template_sel other_value); +ESM__INFORMATION__REQUEST_template& operator=(const ESM__INFORMATION__REQUEST& other_value); +ESM__INFORMATION__REQUEST_template& operator=(const OPTIONAL& other_value); +ESM__INFORMATION__REQUEST_template& operator=(const ESM__INFORMATION__REQUEST_template& other_value); +inline boolean match(const ESM__INFORMATION__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ESM__INFORMATION__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ESM__INFORMATION__REQUEST valueof() const; +inline ESM__INFORMATION__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new ESM__INFORMATION__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ESM__INFORMATION__RESPONSE : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_accessPointName; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[7]; + void init_vec(); +public: + ESM__INFORMATION__RESPONSE(); + ESM__INFORMATION__RESPONSE(const ESM__INFORMATION__RESPONSE& other_value); + ESM__INFORMATION__RESPONSE(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_accessPointName, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline ESM__INFORMATION__RESPONSE& operator=(const ESM__INFORMATION__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ESM__INFORMATION__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ESM__INFORMATION__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& accessPointName() + {return field_accessPointName;} + inline const OPTIONAL& accessPointName() const + {return field_accessPointName;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new ESM__INFORMATION__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ESM__INFORMATION__RESPONSE_template : public Record_Template { +void set_specific(); +public: +ESM__INFORMATION__RESPONSE_template(): Record_Template() {} +ESM__INFORMATION__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +ESM__INFORMATION__RESPONSE_template(const ESM__INFORMATION__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +ESM__INFORMATION__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ESM__INFORMATION__RESPONSE_template(ESM__INFORMATION__RESPONSE_template* p_precondition, ESM__INFORMATION__RESPONSE_template* p_implied_template); +ESM__INFORMATION__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +ESM__INFORMATION__RESPONSE_template(const ESM__INFORMATION__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~ESM__INFORMATION__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ESM__INFORMATION__RESPONSE_template& operator=(template_sel other_value); +ESM__INFORMATION__RESPONSE_template& operator=(const ESM__INFORMATION__RESPONSE& other_value); +ESM__INFORMATION__RESPONSE_template& operator=(const OPTIONAL& other_value); +ESM__INFORMATION__RESPONSE_template& operator=(const ESM__INFORMATION__RESPONSE_template& other_value); +inline boolean match(const ESM__INFORMATION__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ESM__INFORMATION__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ESM__INFORMATION__RESPONSE valueof() const; +inline ESM__INFORMATION__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::AccessPointName_template& accessPointName(); +const NAS__CommonTypeDefs::AccessPointName_template& accessPointName() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new ESM__INFORMATION__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ESM__STATUS : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + ESM__Cause field_esmCause; + Base_Type* fld_vec[5]; + void init_vec(); +public: + ESM__STATUS(); + ESM__STATUS(const ESM__STATUS& other_value); + ESM__STATUS(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause); +inline ESM__STATUS& operator=(const ESM__STATUS& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ESM__STATUS& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ESM__STATUS& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__Cause& esmCause() + {return field_esmCause;} + inline const ESM__Cause& esmCause() const + {return field_esmCause;} +Base_Type* clone() const { return new ESM__STATUS(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ESM__STATUS_template : public Record_Template { +void set_specific(); +public: +ESM__STATUS_template(): Record_Template() {} +ESM__STATUS_template(template_sel other_value): Record_Template(other_value) {} +ESM__STATUS_template(const ESM__STATUS& other_value): Record_Template() { copy_value(&other_value); } +ESM__STATUS_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ESM__STATUS_template(ESM__STATUS_template* p_precondition, ESM__STATUS_template* p_implied_template); +ESM__STATUS_template(Dynamic_Match_Interface* p_dyn_match); +ESM__STATUS_template(const ESM__STATUS_template& other_value): Record_Template() { copy_template(other_value); } +~ESM__STATUS_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ESM__STATUS_template& operator=(template_sel other_value); +ESM__STATUS_template& operator=(const ESM__STATUS& other_value); +ESM__STATUS_template& operator=(const OPTIONAL& other_value); +ESM__STATUS_template& operator=(const ESM__STATUS_template& other_value); +inline boolean match(const ESM__STATUS& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ESM__STATUS& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ESM__STATUS valueof() const; +inline ESM__STATUS_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +Record_Template* create() const { return new ESM__STATUS_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MODIFY__EPS__BEARER__CONTEXT__ACCEPT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[7]; + void init_vec(); +public: + MODIFY__EPS__BEARER__CONTEXT__ACCEPT(); + MODIFY__EPS__BEARER__CONTEXT__ACCEPT(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& other_value); + MODIFY__EPS__BEARER__CONTEXT__ACCEPT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline MODIFY__EPS__BEARER__CONTEXT__ACCEPT& operator=(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new MODIFY__EPS__BEARER__CONTEXT__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template : public Record_Template { +void set_specific(); +public: +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(): Record_Template() {} +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template* p_precondition, MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template* p_implied_template); +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(template_sel other_value); +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& other_value); +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const OPTIONAL& other_value); +MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& operator=(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& other_value); +inline boolean match(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MODIFY__EPS__BEARER__CONTEXT__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MODIFY__EPS__BEARER__CONTEXT__ACCEPT valueof() const; +inline MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new MODIFY__EPS__BEARER__CONTEXT__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MODIFY__EPS__BEARER__CONTEXT__REJECT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + ESM__Cause field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[8]; + void init_vec(); +public: + MODIFY__EPS__BEARER__CONTEXT__REJECT(); + MODIFY__EPS__BEARER__CONTEXT__REJECT(const MODIFY__EPS__BEARER__CONTEXT__REJECT& other_value); + MODIFY__EPS__BEARER__CONTEXT__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline MODIFY__EPS__BEARER__CONTEXT__REJECT& operator=(const MODIFY__EPS__BEARER__CONTEXT__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MODIFY__EPS__BEARER__CONTEXT__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MODIFY__EPS__BEARER__CONTEXT__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__Cause& esmCause() + {return field_esmCause;} + inline const ESM__Cause& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new MODIFY__EPS__BEARER__CONTEXT__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MODIFY__EPS__BEARER__CONTEXT__REJECT_template : public Record_Template { +void set_specific(); +public: +MODIFY__EPS__BEARER__CONTEXT__REJECT_template(): Record_Template() {} +MODIFY__EPS__BEARER__CONTEXT__REJECT_template(template_sel other_value): Record_Template(other_value) {} +MODIFY__EPS__BEARER__CONTEXT__REJECT_template(const MODIFY__EPS__BEARER__CONTEXT__REJECT& other_value): Record_Template() { copy_value(&other_value); } +MODIFY__EPS__BEARER__CONTEXT__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MODIFY__EPS__BEARER__CONTEXT__REJECT_template(MODIFY__EPS__BEARER__CONTEXT__REJECT_template* p_precondition, MODIFY__EPS__BEARER__CONTEXT__REJECT_template* p_implied_template); +MODIFY__EPS__BEARER__CONTEXT__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +MODIFY__EPS__BEARER__CONTEXT__REJECT_template(const MODIFY__EPS__BEARER__CONTEXT__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~MODIFY__EPS__BEARER__CONTEXT__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MODIFY__EPS__BEARER__CONTEXT__REJECT_template& operator=(template_sel other_value); +MODIFY__EPS__BEARER__CONTEXT__REJECT_template& operator=(const MODIFY__EPS__BEARER__CONTEXT__REJECT& other_value); +MODIFY__EPS__BEARER__CONTEXT__REJECT_template& operator=(const OPTIONAL& other_value); +MODIFY__EPS__BEARER__CONTEXT__REJECT_template& operator=(const MODIFY__EPS__BEARER__CONTEXT__REJECT_template& other_value); +inline boolean match(const MODIFY__EPS__BEARER__CONTEXT__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MODIFY__EPS__BEARER__CONTEXT__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MODIFY__EPS__BEARER__CONTEXT__REJECT valueof() const; +inline MODIFY__EPS__BEARER__CONTEXT__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new MODIFY__EPS__BEARER__CONTEXT__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MODIFY__EPS__BEARER__CONTEXT__REQUEST : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_newEPSQos; + OPTIONAL field_tft; + OPTIONAL field_newQos; + OPTIONAL field_negotiatedLlcSapi; + OPTIONAL field_radioPriority; + OPTIONAL field_packetFlowIdentifier; + OPTIONAL field_apnAggMaxBitRate; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_wlanOffloadInd; + OPTIONAL field_nbifomContainer; + OPTIONAL field_headerCompressionConfig; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_extd__APN__AMBR; + OPTIONAL field_extd__EPS__QOS; + Base_Type* fld_vec[18]; + void init_vec(); +public: + MODIFY__EPS__BEARER__CONTEXT__REQUEST(); + MODIFY__EPS__BEARER__CONTEXT__REQUEST(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& other_value); + MODIFY__EPS__BEARER__CONTEXT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_newEPSQos, + const OPTIONAL& par_tft, + const OPTIONAL& par_newQos, + const OPTIONAL& par_negotiatedLlcSapi, + const OPTIONAL& par_radioPriority, + const OPTIONAL& par_packetFlowIdentifier, + const OPTIONAL& par_apnAggMaxBitRate, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_wlanOffloadInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_headerCompressionConfig, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_extd__APN__AMBR, + const OPTIONAL& par_extd__EPS__QOS); +inline MODIFY__EPS__BEARER__CONTEXT__REQUEST& operator=(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& newEPSQos() + {return field_newEPSQos;} + inline const OPTIONAL& newEPSQos() const + {return field_newEPSQos;} + inline OPTIONAL& tft() + {return field_tft;} + inline const OPTIONAL& tft() const + {return field_tft;} + inline OPTIONAL& newQos() + {return field_newQos;} + inline const OPTIONAL& newQos() const + {return field_newQos;} + inline OPTIONAL& negotiatedLlcSapi() + {return field_negotiatedLlcSapi;} + inline const OPTIONAL& negotiatedLlcSapi() const + {return field_negotiatedLlcSapi;} + inline OPTIONAL& radioPriority() + {return field_radioPriority;} + inline const OPTIONAL& radioPriority() const + {return field_radioPriority;} + inline OPTIONAL& packetFlowIdentifier() + {return field_packetFlowIdentifier;} + inline const OPTIONAL& packetFlowIdentifier() const + {return field_packetFlowIdentifier;} + inline OPTIONAL& apnAggMaxBitRate() + {return field_apnAggMaxBitRate;} + inline const OPTIONAL& apnAggMaxBitRate() const + {return field_apnAggMaxBitRate;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& wlanOffloadInd() + {return field_wlanOffloadInd;} + inline const OPTIONAL& wlanOffloadInd() const + {return field_wlanOffloadInd;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& headerCompressionConfig() + {return field_headerCompressionConfig;} + inline const OPTIONAL& headerCompressionConfig() const + {return field_headerCompressionConfig;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& extd__APN__AMBR() + {return field_extd__APN__AMBR;} + inline const OPTIONAL& extd__APN__AMBR() const + {return field_extd__APN__AMBR;} + inline OPTIONAL& extd__EPS__QOS() + {return field_extd__EPS__QOS;} + inline const OPTIONAL& extd__EPS__QOS() const + {return field_extd__EPS__QOS;} +Base_Type* clone() const { return new MODIFY__EPS__BEARER__CONTEXT__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 18; } +int optional_count() const { return 14; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MODIFY__EPS__BEARER__CONTEXT__REQUEST_template : public Record_Template { +void set_specific(); +public: +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(): Record_Template() {} +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(MODIFY__EPS__BEARER__CONTEXT__REQUEST_template* p_precondition, MODIFY__EPS__BEARER__CONTEXT__REQUEST_template* p_implied_template); +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(const MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~MODIFY__EPS__BEARER__CONTEXT__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& operator=(template_sel other_value); +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& other_value); +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const OPTIONAL& other_value); +MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& operator=(const MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& other_value); +inline boolean match(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MODIFY__EPS__BEARER__CONTEXT__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MODIFY__EPS__BEARER__CONTEXT__REQUEST valueof() const; +inline MODIFY__EPS__BEARER__CONTEXT__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::EPS__QualityOfService_template& newEPSQos(); +const NAS__CommonTypeDefs::EPS__QualityOfService_template& newEPSQos() const; +NAS__CommonTypeDefs::TrafficFlowTemplate_template& tft(); +const NAS__CommonTypeDefs::TrafficFlowTemplate_template& tft() const; +NAS__CommonTypeDefs::QualityOfService_template& newQos(); +const NAS__CommonTypeDefs::QualityOfService_template& newQos() const; +NAS__CommonTypeDefs::LLC__SAPI_template& negotiatedLlcSapi(); +const NAS__CommonTypeDefs::LLC__SAPI_template& negotiatedLlcSapi() const; +NAS__CommonTypeDefs::RadioPriority_template& radioPriority(); +const NAS__CommonTypeDefs::RadioPriority_template& radioPriority() const; +NAS__CommonTypeDefs::PacketFlowIdentifier_template& packetFlowIdentifier(); +const NAS__CommonTypeDefs::PacketFlowIdentifier_template& packetFlowIdentifier() const; +APN__AMBR_template& apnAggMaxBitRate(); +const APN__AMBR_template& apnAggMaxBitRate() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::WLANOffloadAcceptability_template& wlanOffloadInd(); +const NAS__CommonTypeDefs::WLANOffloadAcceptability_template& wlanOffloadInd() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +HeaderCompressConfig_template& headerCompressionConfig(); +const HeaderCompressConfig_template& headerCompressionConfig() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Extd__APN__AMBR_template& extd__APN__AMBR(); +const Extd__APN__AMBR_template& extd__APN__AMBR() const; +NAS__CommonTypeDefs::Extd__EPS__QOS_template& extd__EPS__QOS(); +const NAS__CommonTypeDefs::Extd__EPS__QOS_template& extd__EPS__QOS() const; +Record_Template* create() const { return new MODIFY__EPS__BEARER__CONTEXT__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NotificationIndicator : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_notificationInd; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NotificationIndicator(); + NotificationIndicator(const NotificationIndicator& other_value); + NotificationIndicator(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_notificationInd); +inline NotificationIndicator& operator=(const NotificationIndicator& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NotificationIndicator& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NotificationIndicator& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& notificationInd() + {return field_notificationInd;} + inline const BITSTRING& notificationInd() const + {return field_notificationInd;} +Base_Type* clone() const { return new NotificationIndicator(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NotificationIndicator_template : public Record_Template { +void set_specific(); +public: +NotificationIndicator_template(): Record_Template() {} +NotificationIndicator_template(template_sel other_value): Record_Template(other_value) {} +NotificationIndicator_template(const NotificationIndicator& other_value): Record_Template() { copy_value(&other_value); } +NotificationIndicator_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NotificationIndicator_template(NotificationIndicator_template* p_precondition, NotificationIndicator_template* p_implied_template); +NotificationIndicator_template(Dynamic_Match_Interface* p_dyn_match); +NotificationIndicator_template(const NotificationIndicator_template& other_value): Record_Template() { copy_template(other_value); } +~NotificationIndicator_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NotificationIndicator_template& operator=(template_sel other_value); +NotificationIndicator_template& operator=(const NotificationIndicator& other_value); +NotificationIndicator_template& operator=(const OPTIONAL& other_value); +NotificationIndicator_template& operator=(const NotificationIndicator_template& other_value); +inline boolean match(const NotificationIndicator& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NotificationIndicator& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NotificationIndicator valueof() const; +inline NotificationIndicator_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& notificationInd(); +const BITSTRING_template& notificationInd() const; +Record_Template* create() const { return new NotificationIndicator_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NOTIFICATION : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + NotificationIndicator field_notificationIndicator; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NOTIFICATION(); + NOTIFICATION(const NOTIFICATION& other_value); + NOTIFICATION(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const NotificationIndicator& par_notificationIndicator); +inline NOTIFICATION& operator=(const NOTIFICATION& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NOTIFICATION& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NOTIFICATION& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NotificationIndicator& notificationIndicator() + {return field_notificationIndicator;} + inline const NotificationIndicator& notificationIndicator() const + {return field_notificationIndicator;} +Base_Type* clone() const { return new NOTIFICATION(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NOTIFICATION_template : public Record_Template { +void set_specific(); +public: +NOTIFICATION_template(): Record_Template() {} +NOTIFICATION_template(template_sel other_value): Record_Template(other_value) {} +NOTIFICATION_template(const NOTIFICATION& other_value): Record_Template() { copy_value(&other_value); } +NOTIFICATION_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NOTIFICATION_template(NOTIFICATION_template* p_precondition, NOTIFICATION_template* p_implied_template); +NOTIFICATION_template(Dynamic_Match_Interface* p_dyn_match); +NOTIFICATION_template(const NOTIFICATION_template& other_value): Record_Template() { copy_template(other_value); } +~NOTIFICATION_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NOTIFICATION_template& operator=(template_sel other_value); +NOTIFICATION_template& operator=(const NOTIFICATION& other_value); +NOTIFICATION_template& operator=(const OPTIONAL& other_value); +NOTIFICATION_template& operator=(const NOTIFICATION_template& other_value); +inline boolean match(const NOTIFICATION& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NOTIFICATION& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NOTIFICATION valueof() const; +inline NOTIFICATION_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NotificationIndicator_template& notificationIndicator(); +const NotificationIndicator_template& notificationIndicator() const; +Record_Template* create() const { return new NOTIFICATION_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDN__CONNECTIVITY__REJECT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + ESM__Cause field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_backOffTimerValue; + OPTIONAL field_reattemptInd; + OPTIONAL field_nbifomContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[10]; + void init_vec(); +public: + PDN__CONNECTIVITY__REJECT(); + PDN__CONNECTIVITY__REJECT(const PDN__CONNECTIVITY__REJECT& other_value); + PDN__CONNECTIVITY__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_reattemptInd, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline PDN__CONNECTIVITY__REJECT& operator=(const PDN__CONNECTIVITY__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDN__CONNECTIVITY__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDN__CONNECTIVITY__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__Cause& esmCause() + {return field_esmCause;} + inline const ESM__Cause& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& backOffTimerValue() + {return field_backOffTimerValue;} + inline const OPTIONAL& backOffTimerValue() const + {return field_backOffTimerValue;} + inline OPTIONAL& reattemptInd() + {return field_reattemptInd;} + inline const OPTIONAL& reattemptInd() const + {return field_reattemptInd;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new PDN__CONNECTIVITY__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDN__CONNECTIVITY__REJECT_template : public Record_Template { +void set_specific(); +public: +PDN__CONNECTIVITY__REJECT_template(): Record_Template() {} +PDN__CONNECTIVITY__REJECT_template(template_sel other_value): Record_Template(other_value) {} +PDN__CONNECTIVITY__REJECT_template(const PDN__CONNECTIVITY__REJECT& other_value): Record_Template() { copy_value(&other_value); } +PDN__CONNECTIVITY__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDN__CONNECTIVITY__REJECT_template(PDN__CONNECTIVITY__REJECT_template* p_precondition, PDN__CONNECTIVITY__REJECT_template* p_implied_template); +PDN__CONNECTIVITY__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +PDN__CONNECTIVITY__REJECT_template(const PDN__CONNECTIVITY__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~PDN__CONNECTIVITY__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDN__CONNECTIVITY__REJECT_template& operator=(template_sel other_value); +PDN__CONNECTIVITY__REJECT_template& operator=(const PDN__CONNECTIVITY__REJECT& other_value); +PDN__CONNECTIVITY__REJECT_template& operator=(const OPTIONAL& other_value); +PDN__CONNECTIVITY__REJECT_template& operator=(const PDN__CONNECTIVITY__REJECT_template& other_value); +inline boolean match(const PDN__CONNECTIVITY__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDN__CONNECTIVITY__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDN__CONNECTIVITY__REJECT valueof() const; +inline PDN__CONNECTIVITY__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue() const; +NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd(); +const NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new PDN__CONNECTIVITY__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDN__Type : public Record_Type { + BITSTRING field_spare; + BITSTRING field_typeValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + PDN__Type(); + PDN__Type(const PDN__Type& other_value); + PDN__Type(const BITSTRING& par_spare, + const BITSTRING& par_typeValue); +inline PDN__Type& operator=(const PDN__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDN__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDN__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& typeValue() + {return field_typeValue;} + inline const BITSTRING& typeValue() const + {return field_typeValue;} +Base_Type* clone() const { return new PDN__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDN__Type_template : public Record_Template { +void set_specific(); +public: +PDN__Type_template(): Record_Template() {} +PDN__Type_template(template_sel other_value): Record_Template(other_value) {} +PDN__Type_template(const PDN__Type& other_value): Record_Template() { copy_value(&other_value); } +PDN__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDN__Type_template(PDN__Type_template* p_precondition, PDN__Type_template* p_implied_template); +PDN__Type_template(Dynamic_Match_Interface* p_dyn_match); +PDN__Type_template(const PDN__Type_template& other_value): Record_Template() { copy_template(other_value); } +~PDN__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDN__Type_template& operator=(template_sel other_value); +PDN__Type_template& operator=(const PDN__Type& other_value); +PDN__Type_template& operator=(const OPTIONAL& other_value); +PDN__Type_template& operator=(const PDN__Type_template& other_value); +inline boolean match(const PDN__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDN__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDN__Type valueof() const; +inline PDN__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& typeValue(); +const BITSTRING_template& typeValue() const; +Record_Template* create() const { return new PDN__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDN__CONNECTIVITY__REQUEST : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + PDN__Type field_pdnType; + NAS__CommonTypeDefs::Request__Type field_requestType; + OPTIONAL field_esmInfoTransferFlag; + OPTIONAL field_accessPointName; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_deviceProperties; + OPTIONAL field_nbifomContainer; + OPTIONAL field_headerCompressionConfig; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[13]; + void init_vec(); +public: + PDN__CONNECTIVITY__REQUEST(); + PDN__CONNECTIVITY__REQUEST(const PDN__CONNECTIVITY__REQUEST& other_value); + PDN__CONNECTIVITY__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const PDN__Type& par_pdnType, + const NAS__CommonTypeDefs::Request__Type& par_requestType, + const OPTIONAL& par_esmInfoTransferFlag, + const OPTIONAL& par_accessPointName, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_deviceProperties, + const OPTIONAL& par_nbifomContainer, + const OPTIONAL& par_headerCompressionConfig, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline PDN__CONNECTIVITY__REQUEST& operator=(const PDN__CONNECTIVITY__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDN__CONNECTIVITY__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDN__CONNECTIVITY__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline PDN__Type& pdnType() + {return field_pdnType;} + inline const PDN__Type& pdnType() const + {return field_pdnType;} + inline NAS__CommonTypeDefs::Request__Type& requestType() + {return field_requestType;} + inline const NAS__CommonTypeDefs::Request__Type& requestType() const + {return field_requestType;} + inline OPTIONAL& esmInfoTransferFlag() + {return field_esmInfoTransferFlag;} + inline const OPTIONAL& esmInfoTransferFlag() const + {return field_esmInfoTransferFlag;} + inline OPTIONAL& accessPointName() + {return field_accessPointName;} + inline const OPTIONAL& accessPointName() const + {return field_accessPointName;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& deviceProperties() + {return field_deviceProperties;} + inline const OPTIONAL& deviceProperties() const + {return field_deviceProperties;} + inline OPTIONAL& nbifomContainer() + {return field_nbifomContainer;} + inline const OPTIONAL& nbifomContainer() const + {return field_nbifomContainer;} + inline OPTIONAL& headerCompressionConfig() + {return field_headerCompressionConfig;} + inline const OPTIONAL& headerCompressionConfig() const + {return field_headerCompressionConfig;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new PDN__CONNECTIVITY__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 13; } +int optional_count() const { return 7; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDN__CONNECTIVITY__REQUEST_template : public Record_Template { +void set_specific(); +public: +PDN__CONNECTIVITY__REQUEST_template(): Record_Template() {} +PDN__CONNECTIVITY__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +PDN__CONNECTIVITY__REQUEST_template(const PDN__CONNECTIVITY__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +PDN__CONNECTIVITY__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDN__CONNECTIVITY__REQUEST_template(PDN__CONNECTIVITY__REQUEST_template* p_precondition, PDN__CONNECTIVITY__REQUEST_template* p_implied_template); +PDN__CONNECTIVITY__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +PDN__CONNECTIVITY__REQUEST_template(const PDN__CONNECTIVITY__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~PDN__CONNECTIVITY__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDN__CONNECTIVITY__REQUEST_template& operator=(template_sel other_value); +PDN__CONNECTIVITY__REQUEST_template& operator=(const PDN__CONNECTIVITY__REQUEST& other_value); +PDN__CONNECTIVITY__REQUEST_template& operator=(const OPTIONAL& other_value); +PDN__CONNECTIVITY__REQUEST_template& operator=(const PDN__CONNECTIVITY__REQUEST_template& other_value); +inline boolean match(const PDN__CONNECTIVITY__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDN__CONNECTIVITY__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDN__CONNECTIVITY__REQUEST valueof() const; +inline PDN__CONNECTIVITY__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +PDN__Type_template& pdnType(); +const PDN__Type_template& pdnType() const; +NAS__CommonTypeDefs::Request__Type_template& requestType(); +const NAS__CommonTypeDefs::Request__Type_template& requestType() const; +ESM__InfoTransferFlag_template& esmInfoTransferFlag(); +const ESM__InfoTransferFlag_template& esmInfoTransferFlag() const; +NAS__CommonTypeDefs::AccessPointName_template& accessPointName(); +const NAS__CommonTypeDefs::AccessPointName_template& accessPointName() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties(); +const NAS__CommonTypeDefs::DeviceProperties_template& deviceProperties() const; +NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer(); +const NAS__CommonTypeDefs::NBIFOMContainer_template& nbifomContainer() const; +HeaderCompressConfig_template& headerCompressionConfig(); +const HeaderCompressConfig_template& headerCompressionConfig() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new PDN__CONNECTIVITY__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ESM__InfoTransferFlag : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_eitValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ESM__InfoTransferFlag(); + ESM__InfoTransferFlag(const ESM__InfoTransferFlag& other_value); + ESM__InfoTransferFlag(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_eitValue); +inline ESM__InfoTransferFlag& operator=(const ESM__InfoTransferFlag& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ESM__InfoTransferFlag& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ESM__InfoTransferFlag& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& eitValue() + {return field_eitValue;} + inline const BITSTRING& eitValue() const + {return field_eitValue;} +Base_Type* clone() const { return new ESM__InfoTransferFlag(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ESM__InfoTransferFlag_template : public Record_Template { +void set_specific(); +public: +ESM__InfoTransferFlag_template(): Record_Template() {} +ESM__InfoTransferFlag_template(template_sel other_value): Record_Template(other_value) {} +ESM__InfoTransferFlag_template(const ESM__InfoTransferFlag& other_value): Record_Template() { copy_value(&other_value); } +ESM__InfoTransferFlag_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ESM__InfoTransferFlag_template(ESM__InfoTransferFlag_template* p_precondition, ESM__InfoTransferFlag_template* p_implied_template); +ESM__InfoTransferFlag_template(Dynamic_Match_Interface* p_dyn_match); +ESM__InfoTransferFlag_template(const ESM__InfoTransferFlag_template& other_value): Record_Template() { copy_template(other_value); } +~ESM__InfoTransferFlag_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ESM__InfoTransferFlag_template& operator=(template_sel other_value); +ESM__InfoTransferFlag_template& operator=(const ESM__InfoTransferFlag& other_value); +ESM__InfoTransferFlag_template& operator=(const OPTIONAL& other_value); +ESM__InfoTransferFlag_template& operator=(const ESM__InfoTransferFlag_template& other_value); +inline boolean match(const ESM__InfoTransferFlag& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ESM__InfoTransferFlag& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ESM__InfoTransferFlag valueof() const; +inline ESM__InfoTransferFlag_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& eitValue(); +const BITSTRING_template& eitValue() const; +Record_Template* create() const { return new ESM__InfoTransferFlag_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDN__DISCONNECT__REJECT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + ESM__Cause field_esmCause; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[7]; + void init_vec(); +public: + PDN__DISCONNECT__REJECT(); + PDN__DISCONNECT__REJECT(const PDN__DISCONNECT__REJECT& other_value); + PDN__DISCONNECT__REJECT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const ESM__Cause& par_esmCause, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline PDN__DISCONNECT__REJECT& operator=(const PDN__DISCONNECT__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDN__DISCONNECT__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDN__DISCONNECT__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline ESM__Cause& esmCause() + {return field_esmCause;} + inline const ESM__Cause& esmCause() const + {return field_esmCause;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new PDN__DISCONNECT__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDN__DISCONNECT__REJECT_template : public Record_Template { +void set_specific(); +public: +PDN__DISCONNECT__REJECT_template(): Record_Template() {} +PDN__DISCONNECT__REJECT_template(template_sel other_value): Record_Template(other_value) {} +PDN__DISCONNECT__REJECT_template(const PDN__DISCONNECT__REJECT& other_value): Record_Template() { copy_value(&other_value); } +PDN__DISCONNECT__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDN__DISCONNECT__REJECT_template(PDN__DISCONNECT__REJECT_template* p_precondition, PDN__DISCONNECT__REJECT_template* p_implied_template); +PDN__DISCONNECT__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +PDN__DISCONNECT__REJECT_template(const PDN__DISCONNECT__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~PDN__DISCONNECT__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDN__DISCONNECT__REJECT_template& operator=(template_sel other_value); +PDN__DISCONNECT__REJECT_template& operator=(const PDN__DISCONNECT__REJECT& other_value); +PDN__DISCONNECT__REJECT_template& operator=(const OPTIONAL& other_value); +PDN__DISCONNECT__REJECT_template& operator=(const PDN__DISCONNECT__REJECT_template& other_value); +inline boolean match(const PDN__DISCONNECT__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDN__DISCONNECT__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDN__DISCONNECT__REJECT valueof() const; +inline PDN__DISCONNECT__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ESM__Cause_template& esmCause(); +const ESM__Cause_template& esmCause() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new PDN__DISCONNECT__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDN__DISCONNECT__REQUEST : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet; + LinkedEpsBearerIdentity field_linkedEpsBearerId; + OPTIONAL field_protocolConfigurationOptions; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[8]; + void init_vec(); +public: + PDN__DISCONNECT__REQUEST(); + PDN__DISCONNECT__REQUEST(const PDN__DISCONNECT__REQUEST& other_value); + PDN__DISCONNECT__REQUEST(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet, + const LinkedEpsBearerIdentity& par_linkedEpsBearerId, + const OPTIONAL& par_protocolConfigurationOptions, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline PDN__DISCONNECT__REQUEST& operator=(const PDN__DISCONNECT__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDN__DISCONNECT__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDN__DISCONNECT__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline LinkedEpsBearerIdentity& linkedEpsBearerId() + {return field_linkedEpsBearerId;} + inline const LinkedEpsBearerIdentity& linkedEpsBearerId() const + {return field_linkedEpsBearerId;} + inline OPTIONAL& protocolConfigurationOptions() + {return field_protocolConfigurationOptions;} + inline const OPTIONAL& protocolConfigurationOptions() const + {return field_protocolConfigurationOptions;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new PDN__DISCONNECT__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDN__DISCONNECT__REQUEST_template : public Record_Template { +void set_specific(); +public: +PDN__DISCONNECT__REQUEST_template(): Record_Template() {} +PDN__DISCONNECT__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +PDN__DISCONNECT__REQUEST_template(const PDN__DISCONNECT__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +PDN__DISCONNECT__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDN__DISCONNECT__REQUEST_template(PDN__DISCONNECT__REQUEST_template* p_precondition, PDN__DISCONNECT__REQUEST_template* p_implied_template); +PDN__DISCONNECT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +PDN__DISCONNECT__REQUEST_template(const PDN__DISCONNECT__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~PDN__DISCONNECT__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDN__DISCONNECT__REQUEST_template& operator=(template_sel other_value); +PDN__DISCONNECT__REQUEST_template& operator=(const PDN__DISCONNECT__REQUEST& other_value); +PDN__DISCONNECT__REQUEST_template& operator=(const OPTIONAL& other_value); +PDN__DISCONNECT__REQUEST_template& operator=(const PDN__DISCONNECT__REQUEST_template& other_value); +inline boolean match(const PDN__DISCONNECT__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDN__DISCONNECT__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDN__DISCONNECT__REQUEST valueof() const; +inline PDN__DISCONNECT__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +LinkedEpsBearerIdentity_template& linkedEpsBearerId(); +const LinkedEpsBearerIdentity_template& linkedEpsBearerId() const; +NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions(); +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& protocolConfigurationOptions() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new PDN__DISCONNECT__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class REMOTE__UE__REPORT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_remoteUEContextConnected; + OPTIONAL field_remoteUEContextDisconnected; + OPTIONAL field_ProSeKeyManageFunctionAddress; + Base_Type* fld_vec[7]; + void init_vec(); +public: + REMOTE__UE__REPORT(); + REMOTE__UE__REPORT(const REMOTE__UE__REPORT& other_value); + REMOTE__UE__REPORT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_remoteUEContextConnected, + const OPTIONAL& par_remoteUEContextDisconnected, + const OPTIONAL& par_ProSeKeyManageFunctionAddress); +inline REMOTE__UE__REPORT& operator=(const REMOTE__UE__REPORT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const REMOTE__UE__REPORT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const REMOTE__UE__REPORT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& remoteUEContextConnected() + {return field_remoteUEContextConnected;} + inline const OPTIONAL& remoteUEContextConnected() const + {return field_remoteUEContextConnected;} + inline OPTIONAL& remoteUEContextDisconnected() + {return field_remoteUEContextDisconnected;} + inline const OPTIONAL& remoteUEContextDisconnected() const + {return field_remoteUEContextDisconnected;} + inline OPTIONAL& ProSeKeyManageFunctionAddress() + {return field_ProSeKeyManageFunctionAddress;} + inline const OPTIONAL& ProSeKeyManageFunctionAddress() const + {return field_ProSeKeyManageFunctionAddress;} +Base_Type* clone() const { return new REMOTE__UE__REPORT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class REMOTE__UE__REPORT_template : public Record_Template { +void set_specific(); +public: +REMOTE__UE__REPORT_template(): Record_Template() {} +REMOTE__UE__REPORT_template(template_sel other_value): Record_Template(other_value) {} +REMOTE__UE__REPORT_template(const REMOTE__UE__REPORT& other_value): Record_Template() { copy_value(&other_value); } +REMOTE__UE__REPORT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +REMOTE__UE__REPORT_template(REMOTE__UE__REPORT_template* p_precondition, REMOTE__UE__REPORT_template* p_implied_template); +REMOTE__UE__REPORT_template(Dynamic_Match_Interface* p_dyn_match); +REMOTE__UE__REPORT_template(const REMOTE__UE__REPORT_template& other_value): Record_Template() { copy_template(other_value); } +~REMOTE__UE__REPORT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +REMOTE__UE__REPORT_template& operator=(template_sel other_value); +REMOTE__UE__REPORT_template& operator=(const REMOTE__UE__REPORT& other_value); +REMOTE__UE__REPORT_template& operator=(const OPTIONAL& other_value); +REMOTE__UE__REPORT_template& operator=(const REMOTE__UE__REPORT_template& other_value); +inline boolean match(const REMOTE__UE__REPORT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const REMOTE__UE__REPORT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +REMOTE__UE__REPORT valueof() const; +inline REMOTE__UE__REPORT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +RemoteUEContextList_template& remoteUEContextConnected(); +const RemoteUEContextList_template& remoteUEContextConnected() const; +RemoteUEContextList_template& remoteUEContextDisconnected(); +const RemoteUEContextList_template& remoteUEContextDisconnected() const; +PKMF__Address_template& ProSeKeyManageFunctionAddress(); +const PKMF__Address_template& ProSeKeyManageFunctionAddress() const; +Record_Template* create() const { return new REMOTE__UE__REPORT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ListOfRemoteUEContext : public Record_Of_Type { + +static const RemoteUEContext UNBOUND_ELEM; + +public: +ListOfRemoteUEContext(): Record_Of_Type() {} +ListOfRemoteUEContext(null_type other_value): Record_Of_Type(other_value) {} +ListOfRemoteUEContext(const ListOfRemoteUEContext& other_value): Record_Of_Type(other_value) {} +~ListOfRemoteUEContext() { clean_up(); } + +inline ListOfRemoteUEContext& operator=(null_type other_value) { set_val(other_value); return *this; } +inline ListOfRemoteUEContext& operator=(const ListOfRemoteUEContext& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ListOfRemoteUEContext& other_value) const { return is_equal(&other_value); } +boolean operator!=(const ListOfRemoteUEContext& other_value) const { return !is_equal(&other_value); } +RemoteUEContext& operator[](int index_value); +RemoteUEContext& operator[](const INTEGER& index_value); +const RemoteUEContext& operator[](int index_value) const; +const RemoteUEContext& operator[](const INTEGER& index_value) const; +ListOfRemoteUEContext operator<<=(int rotate_count) const; +ListOfRemoteUEContext operator<<=(const INTEGER& rotate_count) const; +ListOfRemoteUEContext operator>>=(int rotate_count) const; +ListOfRemoteUEContext operator>>=(const INTEGER& rotate_count) const; + +ListOfRemoteUEContext operator+(const ListOfRemoteUEContext& other_value) const; + +ListOfRemoteUEContext operator+(const OPTIONAL& other_value) const; + +ListOfRemoteUEContext operator+(null_type) const; + +ListOfRemoteUEContext substr(int index, int returncount) const; + +ListOfRemoteUEContext replace(int index, int len, const ListOfRemoteUEContext& repl) const; + +ListOfRemoteUEContext replace(int index, int len, const ListOfRemoteUEContext_template& repl) const; + +Base_Type* clone() const { return new ListOfRemoteUEContext(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class ListOfRemoteUEContext_template : public Record_Of_Template { +friend ListOfRemoteUEContext_template operator+(template_sel left_template, const ListOfRemoteUEContext_template& right_template); +friend ListOfRemoteUEContext_template operator+(const ListOfRemoteUEContext& left_value, const ListOfRemoteUEContext_template& right_template); +friend ListOfRemoteUEContext_template operator+(template_sel left_template, const ListOfRemoteUEContext& right_value); +friend ListOfRemoteUEContext_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend ListOfRemoteUEContext_template operator+(const ListOfRemoteUEContext& left_value, template_sel right_template); + +public: +ListOfRemoteUEContext_template() {} +ListOfRemoteUEContext_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +ListOfRemoteUEContext_template(null_type other_value); +ListOfRemoteUEContext_template(const ListOfRemoteUEContext& other_value) { copy_value(&other_value); } +ListOfRemoteUEContext_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +ListOfRemoteUEContext_template(ListOfRemoteUEContext_template* p_precondition, ListOfRemoteUEContext_template* p_implied_template); +ListOfRemoteUEContext_template(Dynamic_Match_Interface* p_dyn_match); +ListOfRemoteUEContext_template(const ListOfRemoteUEContext_template& other_value): Record_Of_Template() { copy_template(other_value); } +~ListOfRemoteUEContext_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ListOfRemoteUEContext_template& operator=(template_sel other_value); +ListOfRemoteUEContext_template& operator=(null_type other_value); +ListOfRemoteUEContext_template& operator=(const ListOfRemoteUEContext& other_value); +ListOfRemoteUEContext_template& operator=(const OPTIONAL& other_value); +ListOfRemoteUEContext_template& operator=(const ListOfRemoteUEContext_template& other_value); + +ListOfRemoteUEContext_template operator+(const ListOfRemoteUEContext_template& other_value) const; +ListOfRemoteUEContext_template operator+(const ListOfRemoteUEContext& other_value) const; +ListOfRemoteUEContext_template operator+(template_sel other_value) const; +ListOfRemoteUEContext_template operator+(null_type) const; + +RemoteUEContext_template& operator[](int index_value); +RemoteUEContext_template& operator[](const INTEGER& index_value); +const RemoteUEContext_template& operator[](int index_value) const; +const RemoteUEContext_template& operator[](const INTEGER& index_value) const; +inline boolean match(const ListOfRemoteUEContext& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +ListOfRemoteUEContext valueof() const; +ListOfRemoteUEContext substr(int index, int returncount) const; + +ListOfRemoteUEContext replace(int index, int len, const ListOfRemoteUEContext_template& repl) const; + +ListOfRemoteUEContext replace(int index, int len, const ListOfRemoteUEContext& repl) const; + +inline ListOfRemoteUEContext_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const ListOfRemoteUEContext& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new ListOfRemoteUEContext_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class UserIdentityList : public Record_Of_Type { + +static const UserIdentity UNBOUND_ELEM; + +public: +UserIdentityList(): Record_Of_Type() {} +UserIdentityList(null_type other_value): Record_Of_Type(other_value) {} +UserIdentityList(const UserIdentityList& other_value): Record_Of_Type(other_value) {} +~UserIdentityList() { clean_up(); } + +inline UserIdentityList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline UserIdentityList& operator=(const UserIdentityList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UserIdentityList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const UserIdentityList& other_value) const { return !is_equal(&other_value); } +UserIdentity& operator[](int index_value); +UserIdentity& operator[](const INTEGER& index_value); +const UserIdentity& operator[](int index_value) const; +const UserIdentity& operator[](const INTEGER& index_value) const; +UserIdentityList operator<<=(int rotate_count) const; +UserIdentityList operator<<=(const INTEGER& rotate_count) const; +UserIdentityList operator>>=(int rotate_count) const; +UserIdentityList operator>>=(const INTEGER& rotate_count) const; + +UserIdentityList operator+(const UserIdentityList& other_value) const; + +UserIdentityList operator+(const OPTIONAL& other_value) const; + +UserIdentityList operator+(null_type) const; + +UserIdentityList substr(int index, int returncount) const; + +UserIdentityList replace(int index, int len, const UserIdentityList& repl) const; + +UserIdentityList replace(int index, int len, const UserIdentityList_template& repl) const; + +Base_Type* clone() const { return new UserIdentityList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class UserIdentityList_template : public Record_Of_Template { +friend UserIdentityList_template operator+(template_sel left_template, const UserIdentityList_template& right_template); +friend UserIdentityList_template operator+(const UserIdentityList& left_value, const UserIdentityList_template& right_template); +friend UserIdentityList_template operator+(template_sel left_template, const UserIdentityList& right_value); +friend UserIdentityList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend UserIdentityList_template operator+(const UserIdentityList& left_value, template_sel right_template); + +public: +UserIdentityList_template() {} +UserIdentityList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +UserIdentityList_template(null_type other_value); +UserIdentityList_template(const UserIdentityList& other_value) { copy_value(&other_value); } +UserIdentityList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +UserIdentityList_template(UserIdentityList_template* p_precondition, UserIdentityList_template* p_implied_template); +UserIdentityList_template(Dynamic_Match_Interface* p_dyn_match); +UserIdentityList_template(const UserIdentityList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~UserIdentityList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UserIdentityList_template& operator=(template_sel other_value); +UserIdentityList_template& operator=(null_type other_value); +UserIdentityList_template& operator=(const UserIdentityList& other_value); +UserIdentityList_template& operator=(const OPTIONAL& other_value); +UserIdentityList_template& operator=(const UserIdentityList_template& other_value); + +UserIdentityList_template operator+(const UserIdentityList_template& other_value) const; +UserIdentityList_template operator+(const UserIdentityList& other_value) const; +UserIdentityList_template operator+(template_sel other_value) const; +UserIdentityList_template operator+(null_type) const; + +UserIdentity_template& operator[](int index_value); +UserIdentity_template& operator[](const INTEGER& index_value); +const UserIdentity_template& operator[](int index_value) const; +const UserIdentity_template& operator[](const INTEGER& index_value) const; +inline boolean match(const UserIdentityList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +UserIdentityList valueof() const; +UserIdentityList substr(int index, int returncount) const; + +UserIdentityList replace(int index, int len, const UserIdentityList_template& repl) const; + +UserIdentityList replace(int index, int len, const UserIdentityList& repl) const; + +inline UserIdentityList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const UserIdentityList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new UserIdentityList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class UserIdentity : public Record_Type { + OCTETSTRING field_lengthOfUserId; + BITSTRING field_firstDigit; + BITSTRING field_odd__even; + BITSTRING field_typeOfUserId; + UserIdentity_digits field_digits; + Base_Type* fld_vec[5]; + void init_vec(); +public: + UserIdentity(); + UserIdentity(const UserIdentity& other_value); + UserIdentity(const OCTETSTRING& par_lengthOfUserId, + const BITSTRING& par_firstDigit, + const BITSTRING& par_odd__even, + const BITSTRING& par_typeOfUserId, + const UserIdentity_digits& par_digits); +inline UserIdentity& operator=(const UserIdentity& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UserIdentity& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UserIdentity& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& lengthOfUserId() + {return field_lengthOfUserId;} + inline const OCTETSTRING& lengthOfUserId() const + {return field_lengthOfUserId;} + inline BITSTRING& firstDigit() + {return field_firstDigit;} + inline const BITSTRING& firstDigit() const + {return field_firstDigit;} + inline BITSTRING& odd__even() + {return field_odd__even;} + inline const BITSTRING& odd__even() const + {return field_odd__even;} + inline BITSTRING& typeOfUserId() + {return field_typeOfUserId;} + inline const BITSTRING& typeOfUserId() const + {return field_typeOfUserId;} + inline UserIdentity_digits& digits() + {return field_digits;} + inline const UserIdentity_digits& digits() const + {return field_digits;} +Base_Type* clone() const { return new UserIdentity(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UserIdentity_template : public Record_Template { +void set_specific(); +public: +UserIdentity_template(): Record_Template() {} +UserIdentity_template(template_sel other_value): Record_Template(other_value) {} +UserIdentity_template(const UserIdentity& other_value): Record_Template() { copy_value(&other_value); } +UserIdentity_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UserIdentity_template(UserIdentity_template* p_precondition, UserIdentity_template* p_implied_template); +UserIdentity_template(Dynamic_Match_Interface* p_dyn_match); +UserIdentity_template(const UserIdentity_template& other_value): Record_Template() { copy_template(other_value); } +~UserIdentity_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UserIdentity_template& operator=(template_sel other_value); +UserIdentity_template& operator=(const UserIdentity& other_value); +UserIdentity_template& operator=(const OPTIONAL& other_value); +UserIdentity_template& operator=(const UserIdentity_template& other_value); +inline boolean match(const UserIdentity& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UserIdentity& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UserIdentity valueof() const; +inline UserIdentity_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& lengthOfUserId(); +const OCTETSTRING_template& lengthOfUserId() const; +BITSTRING_template& firstDigit(); +const BITSTRING_template& firstDigit() const; +BITSTRING_template& odd__even(); +const BITSTRING_template& odd__even() const; +BITSTRING_template& typeOfUserId(); +const BITSTRING_template& typeOfUserId() const; +UserIdentity_digits_template& digits(); +const UserIdentity_digits_template& digits() const; +Record_Template* create() const { return new UserIdentity_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RemoteUEContext : public Record_Type { + OCTETSTRING field_lengthOfContext; + OCTETSTRING field_numberOfUserIds; + UserIdentityList field_userIdentities; + BITSTRING field_spare; + BITSTRING field_addressType; + OPTIONAL field_addressInfo; + Base_Type* fld_vec[6]; + void init_vec(); +public: + RemoteUEContext(); + RemoteUEContext(const RemoteUEContext& other_value); + RemoteUEContext(const OCTETSTRING& par_lengthOfContext, + const OCTETSTRING& par_numberOfUserIds, + const UserIdentityList& par_userIdentities, + const BITSTRING& par_spare, + const BITSTRING& par_addressType, + const OPTIONAL& par_addressInfo); +inline RemoteUEContext& operator=(const RemoteUEContext& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RemoteUEContext& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RemoteUEContext& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& lengthOfContext() + {return field_lengthOfContext;} + inline const OCTETSTRING& lengthOfContext() const + {return field_lengthOfContext;} + inline OCTETSTRING& numberOfUserIds() + {return field_numberOfUserIds;} + inline const OCTETSTRING& numberOfUserIds() const + {return field_numberOfUserIds;} + inline UserIdentityList& userIdentities() + {return field_userIdentities;} + inline const UserIdentityList& userIdentities() const + {return field_userIdentities;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& addressType() + {return field_addressType;} + inline const BITSTRING& addressType() const + {return field_addressType;} + inline OPTIONAL& addressInfo() + {return field_addressInfo;} + inline const OPTIONAL& addressInfo() const + {return field_addressInfo;} +Base_Type* clone() const { return new RemoteUEContext(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RemoteUEContext_template : public Record_Template { +void set_specific(); +public: +RemoteUEContext_template(): Record_Template() {} +RemoteUEContext_template(template_sel other_value): Record_Template(other_value) {} +RemoteUEContext_template(const RemoteUEContext& other_value): Record_Template() { copy_value(&other_value); } +RemoteUEContext_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RemoteUEContext_template(RemoteUEContext_template* p_precondition, RemoteUEContext_template* p_implied_template); +RemoteUEContext_template(Dynamic_Match_Interface* p_dyn_match); +RemoteUEContext_template(const RemoteUEContext_template& other_value): Record_Template() { copy_template(other_value); } +~RemoteUEContext_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RemoteUEContext_template& operator=(template_sel other_value); +RemoteUEContext_template& operator=(const RemoteUEContext& other_value); +RemoteUEContext_template& operator=(const OPTIONAL& other_value); +RemoteUEContext_template& operator=(const RemoteUEContext_template& other_value); +inline boolean match(const RemoteUEContext& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RemoteUEContext& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RemoteUEContext valueof() const; +inline RemoteUEContext_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& lengthOfContext(); +const OCTETSTRING_template& lengthOfContext() const; +OCTETSTRING_template& numberOfUserIds(); +const OCTETSTRING_template& numberOfUserIds() const; +UserIdentityList_template& userIdentities(); +const UserIdentityList_template& userIdentities() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& addressType(); +const BITSTRING_template& addressType() const; +OCTETSTRING_template& addressInfo(); +const OCTETSTRING_template& addressInfo() const; +Record_Template* create() const { return new RemoteUEContext_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RemoteUEContextList : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_numberOfContexts; + ListOfRemoteUEContext field_remoteUEContexts; + Base_Type* fld_vec[4]; + void init_vec(); +public: + RemoteUEContextList(); + RemoteUEContextList(const RemoteUEContextList& other_value); + RemoteUEContextList(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_numberOfContexts, + const ListOfRemoteUEContext& par_remoteUEContexts); +inline RemoteUEContextList& operator=(const RemoteUEContextList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RemoteUEContextList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RemoteUEContextList& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& numberOfContexts() + {return field_numberOfContexts;} + inline const OCTETSTRING& numberOfContexts() const + {return field_numberOfContexts;} + inline ListOfRemoteUEContext& remoteUEContexts() + {return field_remoteUEContexts;} + inline const ListOfRemoteUEContext& remoteUEContexts() const + {return field_remoteUEContexts;} +Base_Type* clone() const { return new RemoteUEContextList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RemoteUEContextList_template : public Record_Template { +void set_specific(); +public: +RemoteUEContextList_template(): Record_Template() {} +RemoteUEContextList_template(template_sel other_value): Record_Template(other_value) {} +RemoteUEContextList_template(const RemoteUEContextList& other_value): Record_Template() { copy_value(&other_value); } +RemoteUEContextList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RemoteUEContextList_template(RemoteUEContextList_template* p_precondition, RemoteUEContextList_template* p_implied_template); +RemoteUEContextList_template(Dynamic_Match_Interface* p_dyn_match); +RemoteUEContextList_template(const RemoteUEContextList_template& other_value): Record_Template() { copy_template(other_value); } +~RemoteUEContextList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RemoteUEContextList_template& operator=(template_sel other_value); +RemoteUEContextList_template& operator=(const RemoteUEContextList& other_value); +RemoteUEContextList_template& operator=(const OPTIONAL& other_value); +RemoteUEContextList_template& operator=(const RemoteUEContextList_template& other_value); +inline boolean match(const RemoteUEContextList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RemoteUEContextList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RemoteUEContextList valueof() const; +inline RemoteUEContextList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& numberOfContexts(); +const OCTETSTRING_template& numberOfContexts() const; +ListOfRemoteUEContext_template& remoteUEContexts(); +const ListOfRemoteUEContext_template& remoteUEContexts() const; +Record_Template* create() const { return new RemoteUEContextList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PKMF__Address : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare; + BITSTRING field_addressType; + OCTETSTRING field_addressInfo; + Base_Type* fld_vec[5]; + void init_vec(); +public: + PKMF__Address(); + PKMF__Address(const PKMF__Address& other_value); + PKMF__Address(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_addressType, + const OCTETSTRING& par_addressInfo); +inline PKMF__Address& operator=(const PKMF__Address& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PKMF__Address& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PKMF__Address& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& addressType() + {return field_addressType;} + inline const BITSTRING& addressType() const + {return field_addressType;} + inline OCTETSTRING& addressInfo() + {return field_addressInfo;} + inline const OCTETSTRING& addressInfo() const + {return field_addressInfo;} +Base_Type* clone() const { return new PKMF__Address(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PKMF__Address_template : public Record_Template { +void set_specific(); +public: +PKMF__Address_template(): Record_Template() {} +PKMF__Address_template(template_sel other_value): Record_Template(other_value) {} +PKMF__Address_template(const PKMF__Address& other_value): Record_Template() { copy_value(&other_value); } +PKMF__Address_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PKMF__Address_template(PKMF__Address_template* p_precondition, PKMF__Address_template* p_implied_template); +PKMF__Address_template(Dynamic_Match_Interface* p_dyn_match); +PKMF__Address_template(const PKMF__Address_template& other_value): Record_Template() { copy_template(other_value); } +~PKMF__Address_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PKMF__Address_template& operator=(template_sel other_value); +PKMF__Address_template& operator=(const PKMF__Address& other_value); +PKMF__Address_template& operator=(const OPTIONAL& other_value); +PKMF__Address_template& operator=(const PKMF__Address_template& other_value); +inline boolean match(const PKMF__Address& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PKMF__Address& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PKMF__Address valueof() const; +inline PKMF__Address_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& addressType(); +const BITSTRING_template& addressType() const; +OCTETSTRING_template& addressInfo(); +const OCTETSTRING_template& addressInfo() const; +Record_Template* create() const { return new PKMF__Address_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class REMOTE__UE__REPORT__RESPONSE : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + Base_Type* fld_vec[4]; + void init_vec(); +public: + REMOTE__UE__REPORT__RESPONSE(); + REMOTE__UE__REPORT__RESPONSE(const REMOTE__UE__REPORT__RESPONSE& other_value); + REMOTE__UE__REPORT__RESPONSE(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType); +inline REMOTE__UE__REPORT__RESPONSE& operator=(const REMOTE__UE__REPORT__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const REMOTE__UE__REPORT__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const REMOTE__UE__REPORT__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new REMOTE__UE__REPORT__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class REMOTE__UE__REPORT__RESPONSE_template : public Record_Template { +void set_specific(); +public: +REMOTE__UE__REPORT__RESPONSE_template(): Record_Template() {} +REMOTE__UE__REPORT__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +REMOTE__UE__REPORT__RESPONSE_template(const REMOTE__UE__REPORT__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +REMOTE__UE__REPORT__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +REMOTE__UE__REPORT__RESPONSE_template(REMOTE__UE__REPORT__RESPONSE_template* p_precondition, REMOTE__UE__REPORT__RESPONSE_template* p_implied_template); +REMOTE__UE__REPORT__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +REMOTE__UE__REPORT__RESPONSE_template(const REMOTE__UE__REPORT__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~REMOTE__UE__REPORT__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +REMOTE__UE__REPORT__RESPONSE_template& operator=(template_sel other_value); +REMOTE__UE__REPORT__RESPONSE_template& operator=(const REMOTE__UE__REPORT__RESPONSE& other_value); +REMOTE__UE__REPORT__RESPONSE_template& operator=(const OPTIONAL& other_value); +REMOTE__UE__REPORT__RESPONSE_template& operator=(const REMOTE__UE__REPORT__RESPONSE_template& other_value); +inline boolean match(const REMOTE__UE__REPORT__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const REMOTE__UE__REPORT__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +REMOTE__UE__REPORT__RESPONSE valueof() const; +inline REMOTE__UE__REPORT__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new REMOTE__UE__REPORT__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UserDataContainer : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_dataContainer; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UserDataContainer(); + UserDataContainer(const UserDataContainer& other_value); + UserDataContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_dataContainer); +inline UserDataContainer& operator=(const UserDataContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UserDataContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UserDataContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& dataContainer() + {return field_dataContainer;} + inline const OCTETSTRING& dataContainer() const + {return field_dataContainer;} +Base_Type* clone() const { return new UserDataContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UserDataContainer_template : public Record_Template { +void set_specific(); +public: +UserDataContainer_template(): Record_Template() {} +UserDataContainer_template(template_sel other_value): Record_Template(other_value) {} +UserDataContainer_template(const UserDataContainer& other_value): Record_Template() { copy_value(&other_value); } +UserDataContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UserDataContainer_template(UserDataContainer_template* p_precondition, UserDataContainer_template* p_implied_template); +UserDataContainer_template(Dynamic_Match_Interface* p_dyn_match); +UserDataContainer_template(const UserDataContainer_template& other_value): Record_Template() { copy_template(other_value); } +~UserDataContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UserDataContainer_template& operator=(template_sel other_value); +UserDataContainer_template& operator=(const UserDataContainer& other_value); +UserDataContainer_template& operator=(const OPTIONAL& other_value); +UserDataContainer_template& operator=(const UserDataContainer_template& other_value); +inline boolean match(const UserDataContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UserDataContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UserDataContainer valueof() const; +inline UserDataContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& dataContainer(); +const OCTETSTRING_template& dataContainer() const; +Record_Template* create() const { return new UserDataContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ESM__DATA__TRANSPORT : public Record_Type { + HEXSTRING field_epsBearerId; + BITSTRING field_protocolDiscriminator; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + UserDataContainer field_userDatacontainer; + OPTIONAL field_releaseAssistanceInd; + Base_Type* fld_vec[6]; + void init_vec(); +public: + ESM__DATA__TRANSPORT(); + ESM__DATA__TRANSPORT(const ESM__DATA__TRANSPORT& other_value); + ESM__DATA__TRANSPORT(const HEXSTRING& par_epsBearerId, + const BITSTRING& par_protocolDiscriminator, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const UserDataContainer& par_userDatacontainer, + const OPTIONAL& par_releaseAssistanceInd); +inline ESM__DATA__TRANSPORT& operator=(const ESM__DATA__TRANSPORT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ESM__DATA__TRANSPORT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ESM__DATA__TRANSPORT& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& epsBearerId() + {return field_epsBearerId;} + inline const HEXSTRING& epsBearerId() const + {return field_epsBearerId;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline UserDataContainer& userDatacontainer() + {return field_userDatacontainer;} + inline const UserDataContainer& userDatacontainer() const + {return field_userDatacontainer;} + inline OPTIONAL& releaseAssistanceInd() + {return field_releaseAssistanceInd;} + inline const OPTIONAL& releaseAssistanceInd() const + {return field_releaseAssistanceInd;} +Base_Type* clone() const { return new ESM__DATA__TRANSPORT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ESM__DATA__TRANSPORT_template : public Record_Template { +void set_specific(); +public: +ESM__DATA__TRANSPORT_template(): Record_Template() {} +ESM__DATA__TRANSPORT_template(template_sel other_value): Record_Template(other_value) {} +ESM__DATA__TRANSPORT_template(const ESM__DATA__TRANSPORT& other_value): Record_Template() { copy_value(&other_value); } +ESM__DATA__TRANSPORT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ESM__DATA__TRANSPORT_template(ESM__DATA__TRANSPORT_template* p_precondition, ESM__DATA__TRANSPORT_template* p_implied_template); +ESM__DATA__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match); +ESM__DATA__TRANSPORT_template(const ESM__DATA__TRANSPORT_template& other_value): Record_Template() { copy_template(other_value); } +~ESM__DATA__TRANSPORT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ESM__DATA__TRANSPORT_template& operator=(template_sel other_value); +ESM__DATA__TRANSPORT_template& operator=(const ESM__DATA__TRANSPORT& other_value); +ESM__DATA__TRANSPORT_template& operator=(const OPTIONAL& other_value); +ESM__DATA__TRANSPORT_template& operator=(const ESM__DATA__TRANSPORT_template& other_value); +inline boolean match(const ESM__DATA__TRANSPORT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ESM__DATA__TRANSPORT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ESM__DATA__TRANSPORT valueof() const; +inline ESM__DATA__TRANSPORT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& epsBearerId(); +const HEXSTRING_template& epsBearerId() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +UserDataContainer_template& userDatacontainer(); +const UserDataContainer_template& userDatacontainer() const; +NAS__CommonTypeDefs::ReleaseAssistanceInd_template& releaseAssistanceInd(); +const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& releaseAssistanceInd() const; +Record_Template* create() const { return new ESM__DATA__TRANSPORT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NAS__SecurityParametersfromEUTRA : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_dl__nasCountValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NAS__SecurityParametersfromEUTRA(); + NAS__SecurityParametersfromEUTRA(const NAS__SecurityParametersfromEUTRA& other_value); + NAS__SecurityParametersfromEUTRA(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_dl__nasCountValue); +inline NAS__SecurityParametersfromEUTRA& operator=(const NAS__SecurityParametersfromEUTRA& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NAS__SecurityParametersfromEUTRA& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NAS__SecurityParametersfromEUTRA& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& dl__nasCountValue() + {return field_dl__nasCountValue;} + inline const BITSTRING& dl__nasCountValue() const + {return field_dl__nasCountValue;} +Base_Type* clone() const { return new NAS__SecurityParametersfromEUTRA(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NAS__SecurityParametersfromEUTRA_template : public Record_Template { +void set_specific(); +public: +NAS__SecurityParametersfromEUTRA_template(): Record_Template() {} +NAS__SecurityParametersfromEUTRA_template(template_sel other_value): Record_Template(other_value) {} +NAS__SecurityParametersfromEUTRA_template(const NAS__SecurityParametersfromEUTRA& other_value): Record_Template() { copy_value(&other_value); } +NAS__SecurityParametersfromEUTRA_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NAS__SecurityParametersfromEUTRA_template(NAS__SecurityParametersfromEUTRA_template* p_precondition, NAS__SecurityParametersfromEUTRA_template* p_implied_template); +NAS__SecurityParametersfromEUTRA_template(Dynamic_Match_Interface* p_dyn_match); +NAS__SecurityParametersfromEUTRA_template(const NAS__SecurityParametersfromEUTRA_template& other_value): Record_Template() { copy_template(other_value); } +~NAS__SecurityParametersfromEUTRA_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NAS__SecurityParametersfromEUTRA_template& operator=(template_sel other_value); +NAS__SecurityParametersfromEUTRA_template& operator=(const NAS__SecurityParametersfromEUTRA& other_value); +NAS__SecurityParametersfromEUTRA_template& operator=(const OPTIONAL& other_value); +NAS__SecurityParametersfromEUTRA_template& operator=(const NAS__SecurityParametersfromEUTRA_template& other_value); +inline boolean match(const NAS__SecurityParametersfromEUTRA& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NAS__SecurityParametersfromEUTRA& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NAS__SecurityParametersfromEUTRA valueof() const; +inline NAS__SecurityParametersfromEUTRA_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& dl__nasCountValue(); +const BITSTRING_template& dl__nasCountValue() const; +Record_Template* create() const { return new NAS__SecurityParametersfromEUTRA_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NAS__SecurityParameterstoEUTRA : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_noncevalue; + BITSTRING field_spare1; + BITSTRING field_cipherAlgorithmType; + BITSTRING field_spare2; + BITSTRING field_integrityAlgorithmType; + BITSTRING field_spare3; + BITSTRING field_tsc; + BITSTRING field_naskeysetid; + Base_Type* fld_vec[9]; + void init_vec(); +public: + NAS__SecurityParameterstoEUTRA(); + NAS__SecurityParameterstoEUTRA(const NAS__SecurityParameterstoEUTRA& other_value); + NAS__SecurityParameterstoEUTRA(const OPTIONAL& par_iei, + const OCTETSTRING& par_noncevalue, + const BITSTRING& par_spare1, + const BITSTRING& par_cipherAlgorithmType, + const BITSTRING& par_spare2, + const BITSTRING& par_integrityAlgorithmType, + const BITSTRING& par_spare3, + const BITSTRING& par_tsc, + const BITSTRING& par_naskeysetid); +inline NAS__SecurityParameterstoEUTRA& operator=(const NAS__SecurityParameterstoEUTRA& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NAS__SecurityParameterstoEUTRA& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NAS__SecurityParameterstoEUTRA& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& noncevalue() + {return field_noncevalue;} + inline const OCTETSTRING& noncevalue() const + {return field_noncevalue;} + inline BITSTRING& spare1() + {return field_spare1;} + inline const BITSTRING& spare1() const + {return field_spare1;} + inline BITSTRING& cipherAlgorithmType() + {return field_cipherAlgorithmType;} + inline const BITSTRING& cipherAlgorithmType() const + {return field_cipherAlgorithmType;} + inline BITSTRING& spare2() + {return field_spare2;} + inline const BITSTRING& spare2() const + {return field_spare2;} + inline BITSTRING& integrityAlgorithmType() + {return field_integrityAlgorithmType;} + inline const BITSTRING& integrityAlgorithmType() const + {return field_integrityAlgorithmType;} + inline BITSTRING& spare3() + {return field_spare3;} + inline const BITSTRING& spare3() const + {return field_spare3;} + inline BITSTRING& tsc() + {return field_tsc;} + inline const BITSTRING& tsc() const + {return field_tsc;} + inline BITSTRING& naskeysetid() + {return field_naskeysetid;} + inline const BITSTRING& naskeysetid() const + {return field_naskeysetid;} +Base_Type* clone() const { return new NAS__SecurityParameterstoEUTRA(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 9; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NAS__SecurityParameterstoEUTRA_template : public Record_Template { +void set_specific(); +public: +NAS__SecurityParameterstoEUTRA_template(): Record_Template() {} +NAS__SecurityParameterstoEUTRA_template(template_sel other_value): Record_Template(other_value) {} +NAS__SecurityParameterstoEUTRA_template(const NAS__SecurityParameterstoEUTRA& other_value): Record_Template() { copy_value(&other_value); } +NAS__SecurityParameterstoEUTRA_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NAS__SecurityParameterstoEUTRA_template(NAS__SecurityParameterstoEUTRA_template* p_precondition, NAS__SecurityParameterstoEUTRA_template* p_implied_template); +NAS__SecurityParameterstoEUTRA_template(Dynamic_Match_Interface* p_dyn_match); +NAS__SecurityParameterstoEUTRA_template(const NAS__SecurityParameterstoEUTRA_template& other_value): Record_Template() { copy_template(other_value); } +~NAS__SecurityParameterstoEUTRA_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NAS__SecurityParameterstoEUTRA_template& operator=(template_sel other_value); +NAS__SecurityParameterstoEUTRA_template& operator=(const NAS__SecurityParameterstoEUTRA& other_value); +NAS__SecurityParameterstoEUTRA_template& operator=(const OPTIONAL& other_value); +NAS__SecurityParameterstoEUTRA_template& operator=(const NAS__SecurityParameterstoEUTRA_template& other_value); +inline boolean match(const NAS__SecurityParameterstoEUTRA& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NAS__SecurityParameterstoEUTRA& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NAS__SecurityParameterstoEUTRA valueof() const; +inline NAS__SecurityParameterstoEUTRA_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& noncevalue(); +const OCTETSTRING_template& noncevalue() const; +BITSTRING_template& spare1(); +const BITSTRING_template& spare1() const; +BITSTRING_template& cipherAlgorithmType(); +const BITSTRING_template& cipherAlgorithmType() const; +BITSTRING_template& spare2(); +const BITSTRING_template& spare2() const; +BITSTRING_template& integrityAlgorithmType(); +const BITSTRING_template& integrityAlgorithmType() const; +BITSTRING_template& spare3(); +const BITSTRING_template& spare3() const; +BITSTRING_template& tsc(); +const BITSTRING_template& tsc() const; +BITSTRING_template& naskeysetid(); +const BITSTRING_template& naskeysetid() const; +Record_Template* create() const { return new NAS__SecurityParameterstoEUTRA_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UPDATE__UE__LOCATION__INFORMATION : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OCTETSTRING field_ellipsoidPointWithAltitude; + OCTETSTRING field_horizontalVelocity; + OCTETSTRING field_gnss__TOD__msec; + Base_Type* fld_vec[6]; + void init_vec(); +public: + UPDATE__UE__LOCATION__INFORMATION(); + UPDATE__UE__LOCATION__INFORMATION(const UPDATE__UE__LOCATION__INFORMATION& other_value); + UPDATE__UE__LOCATION__INFORMATION(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OCTETSTRING& par_ellipsoidPointWithAltitude, + const OCTETSTRING& par_horizontalVelocity, + const OCTETSTRING& par_gnss__TOD__msec); +inline UPDATE__UE__LOCATION__INFORMATION& operator=(const UPDATE__UE__LOCATION__INFORMATION& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UPDATE__UE__LOCATION__INFORMATION& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UPDATE__UE__LOCATION__INFORMATION& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OCTETSTRING& ellipsoidPointWithAltitude() + {return field_ellipsoidPointWithAltitude;} + inline const OCTETSTRING& ellipsoidPointWithAltitude() const + {return field_ellipsoidPointWithAltitude;} + inline OCTETSTRING& horizontalVelocity() + {return field_horizontalVelocity;} + inline const OCTETSTRING& horizontalVelocity() const + {return field_horizontalVelocity;} + inline OCTETSTRING& gnss__TOD__msec() + {return field_gnss__TOD__msec;} + inline const OCTETSTRING& gnss__TOD__msec() const + {return field_gnss__TOD__msec;} +Base_Type* clone() const { return new UPDATE__UE__LOCATION__INFORMATION(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UPDATE__UE__LOCATION__INFORMATION_template : public Record_Template { +void set_specific(); +public: +UPDATE__UE__LOCATION__INFORMATION_template(): Record_Template() {} +UPDATE__UE__LOCATION__INFORMATION_template(template_sel other_value): Record_Template(other_value) {} +UPDATE__UE__LOCATION__INFORMATION_template(const UPDATE__UE__LOCATION__INFORMATION& other_value): Record_Template() { copy_value(&other_value); } +UPDATE__UE__LOCATION__INFORMATION_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UPDATE__UE__LOCATION__INFORMATION_template(UPDATE__UE__LOCATION__INFORMATION_template* p_precondition, UPDATE__UE__LOCATION__INFORMATION_template* p_implied_template); +UPDATE__UE__LOCATION__INFORMATION_template(Dynamic_Match_Interface* p_dyn_match); +UPDATE__UE__LOCATION__INFORMATION_template(const UPDATE__UE__LOCATION__INFORMATION_template& other_value): Record_Template() { copy_template(other_value); } +~UPDATE__UE__LOCATION__INFORMATION_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UPDATE__UE__LOCATION__INFORMATION_template& operator=(template_sel other_value); +UPDATE__UE__LOCATION__INFORMATION_template& operator=(const UPDATE__UE__LOCATION__INFORMATION& other_value); +UPDATE__UE__LOCATION__INFORMATION_template& operator=(const OPTIONAL& other_value); +UPDATE__UE__LOCATION__INFORMATION_template& operator=(const UPDATE__UE__LOCATION__INFORMATION_template& other_value); +inline boolean match(const UPDATE__UE__LOCATION__INFORMATION& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UPDATE__UE__LOCATION__INFORMATION& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UPDATE__UE__LOCATION__INFORMATION valueof() const; +inline UPDATE__UE__LOCATION__INFORMATION_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +OCTETSTRING_template& ellipsoidPointWithAltitude(); +const OCTETSTRING_template& ellipsoidPointWithAltitude() const; +OCTETSTRING_template& horizontalVelocity(); +const OCTETSTRING_template& horizontalVelocity() const; +OCTETSTRING_template& gnss__TOD__msec(); +const OCTETSTRING_template& gnss__TOD__msec() const; +Record_Template* create() const { return new UPDATE__UE__LOCATION__INFORMATION_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_EPS_NAS_TypeDefs(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_EPS_NAS_TypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern PlmnAndTacs_template operator+(template_sel left_template, const PlmnAndTacs_template& right_template); +extern PlmnAndTacs_template operator+(template_sel left_template, const PlmnAndTacs& right_value); +extern PlmnAndTacs_template operator+(const PlmnAndTacs& left_value, template_sel right_template); +extern Type0List_template operator+(template_sel left_template, const Type0List_template& right_template); +extern Type0List_template operator+(template_sel left_template, const Type0List& right_value); +extern Type0List_template operator+(const Type0List& left_value, template_sel right_template); +extern Type1List_template operator+(template_sel left_template, const Type1List_template& right_template); +extern Type1List_template operator+(template_sel left_template, const Type1List& right_value); +extern Type1List_template operator+(const Type1List& left_value, template_sel right_template); +extern Type2List_template operator+(template_sel left_template, const Type2List_template& right_template); +extern Type2List_template operator+(template_sel left_template, const Type2List& right_value); +extern Type2List_template operator+(const Type2List& left_value, template_sel right_template); +extern TrackingAreaIdList_listOfPartialTais_template operator+(template_sel left_template, const TrackingAreaIdList_listOfPartialTais_template& right_template); +extern TrackingAreaIdList_listOfPartialTais_template operator+(template_sel left_template, const TrackingAreaIdList_listOfPartialTais& right_value); +extern TrackingAreaIdList_listOfPartialTais_template operator+(const TrackingAreaIdList_listOfPartialTais& left_value, template_sel right_template); +extern CipheringKeyData_cipherKey_template operator+(template_sel left_template, const CipheringKeyData_cipherKey_template& right_template); +extern CipheringKeyData_cipherKey_template operator+(template_sel left_template, const CipheringKeyData_cipherKey& right_value); +extern CipheringKeyData_cipherKey_template operator+(const CipheringKeyData_cipherKey& left_value, template_sel right_template); +extern ListOfRemoteUEContext_template operator+(template_sel left_template, const ListOfRemoteUEContext_template& right_template); +extern ListOfRemoteUEContext_template operator+(template_sel left_template, const ListOfRemoteUEContext& right_value); +extern ListOfRemoteUEContext_template operator+(const ListOfRemoteUEContext& left_value, template_sel right_template); +extern UserIdentityList_template operator+(template_sel left_template, const UserIdentityList_template& right_template); +extern UserIdentityList_template operator+(template_sel left_template, const UserIdentityList& right_value); +extern UserIdentityList_template operator+(const UserIdentityList& left_value, template_sel right_template); + +/* Global variable declarations */ + +extern const XERdescriptor_t EPS__BearerIdentity_xer_; +extern const TTCN_Typedescriptor_t EPS__BearerIdentity_descr_; +extern const XERdescriptor_t NAS__Message_xer_; +extern const TTCN_OERdescriptor_t NAS__Message_oer_; +extern const TTCN_Typedescriptor_t NAS__Message_descr_; +extern const XERdescriptor_t EPS__MmeGi_xer_; +extern const TTCN_OERdescriptor_t EPS__MmeGi_oer_; +extern const TTCN_Typedescriptor_t EPS__MmeGi_descr_; +extern const XERdescriptor_t EPS__Mmec_xer_; +extern const TTCN_OERdescriptor_t EPS__Mmec_oer_; +extern const TTCN_Typedescriptor_t EPS__Mmec_descr_; +extern const XERdescriptor_t EPS__M__Tmsi_xer_; +extern const TTCN_OERdescriptor_t EPS__M__Tmsi_oer_; +extern const TTCN_Typedescriptor_t EPS__M__Tmsi_descr_; +extern const XERdescriptor_t EPS__S__Tmsi_xer_; +extern const TTCN_OERdescriptor_t EPS__S__Tmsi_oer_; +extern const TTCN_Typedescriptor_t EPS__S__Tmsi_descr_; +extern const XERdescriptor_t EPS__PartialTaiListType_xer_; +extern const TTCN_OERdescriptor_t EPS__PartialTaiListType_oer_; +extern const TTCN_Typedescriptor_t EPS__PartialTaiListType_descr_; +extern const XERdescriptor_t EPS__ServiceTypeValue_xer_; +extern const TTCN_OERdescriptor_t EPS__ServiceTypeValue_oer_; +extern const TTCN_Typedescriptor_t EPS__ServiceTypeValue_descr_; +extern const XERdescriptor_t EPS__UpdateTypeValue_xer_; +extern const TTCN_OERdescriptor_t EPS__UpdateTypeValue_oer_; +extern const TTCN_Typedescriptor_t EPS__UpdateTypeValue_descr_; +extern const XERdescriptor_t NAS__Tac_xer_; +extern const TTCN_OERdescriptor_t NAS__Tac_oer_; +extern const TTCN_Typedescriptor_t NAS__Tac_descr_; +extern const XERdescriptor_t TrackingAreaId_plmnId_xer_; +extern const TTCN_OERdescriptor_t TrackingAreaId_plmnId_oer_; +extern const TTCN_Typedescriptor_t TrackingAreaId_plmnId_descr_; +extern const XERdescriptor_t TrackingAreaId_tac_xer_; +extern const TTCN_OERdescriptor_t TrackingAreaId_tac_oer_; +extern const TTCN_Typedescriptor_t TrackingAreaId_tac_descr_; +extern const TTCN_Typedescriptor_t TrackingAreaId_descr_; +extern const XERdescriptor_t TrackingAreaId_iei_xer_; +extern const TTCN_OERdescriptor_t TrackingAreaId_iei_oer_; +extern const TTCN_Typedescriptor_t TrackingAreaId_iei_descr_; +extern const TTCN_Typedescriptor_t NAS__TacList_descr_; +extern const XERdescriptor_t NAS__TacList_0_xer_; +extern const TTCN_OERdescriptor_t NAS__TacList_0_oer_; +extern const TTCN_Typedescriptor_t NAS__TacList_0_descr_; +extern const XERdescriptor_t PartialTai_plmnId_xer_; +extern const TTCN_OERdescriptor_t PartialTai_plmnId_oer_; +extern const TTCN_Typedescriptor_t PartialTai_plmnId_descr_; +extern const XERdescriptor_t PartialTai_tac_xer_; +extern const TTCN_OERdescriptor_t PartialTai_tac_oer_; +extern const TTCN_Typedescriptor_t PartialTai_tac_descr_; +extern const TTCN_Typedescriptor_t PartialTai_descr_; +extern const XERdescriptor_t Type0Element_plmnId_xer_; +extern const TTCN_OERdescriptor_t Type0Element_plmnId_oer_; +extern const TTCN_Typedescriptor_t Type0Element_plmnId_descr_; +extern const TTCN_Typedescriptor_t Type0Element_descr_; +extern const TTCN_Typedescriptor_t Type1Element_descr_; +extern const TTCN_Typedescriptor_t PlmnAndTacs_descr_; +extern const TTCN_Typedescriptor_t Type2Element_descr_; +extern const TTCN_Typedescriptor_t Type0List_descr_; +extern const TTCN_Typedescriptor_t Type1List_descr_; +extern const TTCN_Typedescriptor_t Type2List_descr_; +extern const TTCN_Typedescriptor_t PartialTaiType_descr_; +extern const XERdescriptor_t ListOfPartialTaiList_spareBit_xer_; +extern const TTCN_OERdescriptor_t ListOfPartialTaiList_spareBit_oer_; +extern const TTCN_Typedescriptor_t ListOfPartialTaiList_spareBit_descr_; +extern const XERdescriptor_t ListOfPartialTaiList_typeOfList_xer_; +extern const TTCN_OERdescriptor_t ListOfPartialTaiList_typeOfList_oer_; +extern const TTCN_Typedescriptor_t ListOfPartialTaiList_typeOfList_descr_; +extern const XERdescriptor_t ListOfPartialTaiList_numberOfElements_xer_; +extern const TTCN_OERdescriptor_t ListOfPartialTaiList_numberOfElements_oer_; +extern const TTCN_Typedescriptor_t ListOfPartialTaiList_numberOfElements_descr_; +extern const TTCN_Typedescriptor_t ListOfPartialTaiList_descr_; +extern const XERdescriptor_t TrackingAreaIdList_iel_xer_; +extern const TTCN_OERdescriptor_t TrackingAreaIdList_iel_oer_; +extern const TTCN_Typedescriptor_t TrackingAreaIdList_iel_descr_; +extern const TTCN_Typedescriptor_t TrackingAreaIdList_listOfPartialTais_descr_; +extern const TTCN_Typedescriptor_t TrackingAreaIdList_descr_; +extern const XERdescriptor_t TrackingAreaIdList_iei_xer_; +extern const TTCN_OERdescriptor_t TrackingAreaIdList_iei_oer_; +extern const TTCN_Typedescriptor_t TrackingAreaIdList_iei_descr_; +extern const XERdescriptor_t ATTACH__ACCEPT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t ATTACH__ACCEPT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t ATTACH__ACCEPT_securityHeaderType_descr_; +extern const XERdescriptor_t ATTACH__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ATTACH__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ATTACH__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t ATTACH__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t ATTACH__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t ATTACH__ACCEPT_messageType_descr_; +extern const XERdescriptor_t ATTACH__ACCEPT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t ATTACH__ACCEPT_spareHalfOctet_descr_; +extern const XERdescriptor_t EPS__AttachResult_spare_xer_; +extern const TTCN_OERdescriptor_t EPS__AttachResult_spare_oer_; +extern const TTCN_Typedescriptor_t EPS__AttachResult_spare_descr_; +extern const XERdescriptor_t EPS__AttachResult_resultValue_xer_; +extern const TTCN_OERdescriptor_t EPS__AttachResult_resultValue_oer_; +extern const TTCN_Typedescriptor_t EPS__AttachResult_resultValue_descr_; +extern const TTCN_Typedescriptor_t EPS__AttachResult_descr_; +extern const XERdescriptor_t ESM__MessageContainer_iel_xer_; +extern const TTCN_OERdescriptor_t ESM__MessageContainer_iel_oer_; +extern const TTCN_Typedescriptor_t ESM__MessageContainer_iel_descr_; +extern const XERdescriptor_t ESM__MessageContainer_esmPdu_xer_; +extern const TTCN_OERdescriptor_t ESM__MessageContainer_esmPdu_oer_; +extern const TTCN_Typedescriptor_t ESM__MessageContainer_esmPdu_descr_; +extern const TTCN_Typedescriptor_t ESM__MessageContainer_descr_; +extern const XERdescriptor_t ESM__MessageContainer_iei_xer_; +extern const TTCN_OERdescriptor_t ESM__MessageContainer_iei_oer_; +extern const TTCN_Typedescriptor_t ESM__MessageContainer_iei_descr_; +extern const TTCN_Typedescriptor_t ATTACH__ACCEPT_descr_; +extern const XERdescriptor_t EMM__Cause_causeValue_xer_; +extern const TTCN_OERdescriptor_t EMM__Cause_causeValue_oer_; +extern const TTCN_Typedescriptor_t EMM__Cause_causeValue_descr_; +extern const TTCN_Typedescriptor_t EMM__Cause_descr_; +extern const XERdescriptor_t EMM__Cause_iei_xer_; +extern const TTCN_OERdescriptor_t EMM__Cause_iei_oer_; +extern const TTCN_Typedescriptor_t EMM__Cause_iei_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_cp__CIOT_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_cp__CIOT_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_cp__CIOT_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_emmRegistered__withoutPDN_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_emmRegistered__withoutPDN_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_emmRegistered__withoutPDN_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_esrps_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_esrps_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_esrps_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_csLCS_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_csLCS_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_csLCS_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_epcLCS_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_epcLCS_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_epcLCS_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_emcBS_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_emcBS_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_emcBS_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_imsVoPS_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_imsVoPS_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_imsVoPS_descr_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_iei_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_iei_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_iei_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_iel_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_iel_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_iel_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_bearers15_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_bearers15_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_bearers15_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_iwkN26_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_iwkN26_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_iwkN26_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_restrictDCNR_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_restrictDCNR_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_restrictDCNR_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_restrictEC_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_restrictEC_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_restrictEC_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_extdPCO_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_extdPCO_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_extdPCO_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_headerComp__CP__CIOT_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_headerComp__CP__CIOT_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_headerComp__CP__CIOT_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_s1__U__data_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_s1__U__data_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_s1__U__data_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_up__CIOT_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_up__CIOT_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_up__CIOT_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_spare_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_spare_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_spare_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_ptcc_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_ptcc_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_ptcc_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_pr_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_pr_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_pr_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_rpr_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_rpr_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_rpr_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_piv_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_piv_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_piv_descr_; +extern const XERdescriptor_t EPS__NetworkFeatureSupport_ncr_xer_; +extern const TTCN_OERdescriptor_t EPS__NetworkFeatureSupport_ncr_oer_; +extern const TTCN_Typedescriptor_t EPS__NetworkFeatureSupport_ncr_descr_; +extern const XERdescriptor_t AdditionalUpdateResult_iei_xer_; +extern const TTCN_Typedescriptor_t AdditionalUpdateResult_iei_descr_; +extern const XERdescriptor_t AdditionalUpdateResult_spareBits_xer_; +extern const TTCN_OERdescriptor_t AdditionalUpdateResult_spareBits_oer_; +extern const TTCN_Typedescriptor_t AdditionalUpdateResult_spareBits_descr_; +extern const XERdescriptor_t AdditionalUpdateResult_addUpdateResultValue_xer_; +extern const TTCN_OERdescriptor_t AdditionalUpdateResult_addUpdateResultValue_oer_; +extern const TTCN_Typedescriptor_t AdditionalUpdateResult_addUpdateResultValue_descr_; +extern const TTCN_Typedescriptor_t AdditionalUpdateResult_descr_; +extern const XERdescriptor_t SMSServicesStatus_iei_xer_; +extern const TTCN_Typedescriptor_t SMSServicesStatus_iei_descr_; +extern const XERdescriptor_t SMSServicesStatus_spare_xer_; +extern const TTCN_OERdescriptor_t SMSServicesStatus_spare_oer_; +extern const TTCN_Typedescriptor_t SMSServicesStatus_spare_descr_; +extern const XERdescriptor_t SMSServicesStatus_smsServicesStatusValue_xer_; +extern const TTCN_OERdescriptor_t SMSServicesStatus_smsServicesStatusValue_oer_; +extern const TTCN_Typedescriptor_t SMSServicesStatus_smsServicesStatusValue_descr_; +extern const TTCN_Typedescriptor_t SMSServicesStatus_descr_; +extern const XERdescriptor_t NetworkPolicy_spare_xer_; +extern const TTCN_OERdescriptor_t NetworkPolicy_spare_oer_; +extern const TTCN_Typedescriptor_t NetworkPolicy_spare_descr_; +extern const XERdescriptor_t NetworkPolicy_redirPolicy_xer_; +extern const TTCN_OERdescriptor_t NetworkPolicy_redirPolicy_oer_; +extern const TTCN_Typedescriptor_t NetworkPolicy_redirPolicy_descr_; +extern const TTCN_Typedescriptor_t NetworkPolicy_descr_; +extern const XERdescriptor_t NetworkPolicy_iei_xer_; +extern const TTCN_Typedescriptor_t NetworkPolicy_iei_descr_; +extern const XERdescriptor_t CipheringKeyData_iel_xer_; +extern const TTCN_OERdescriptor_t CipheringKeyData_iel_oer_; +extern const TTCN_Typedescriptor_t CipheringKeyData_iel_descr_; +extern const TTCN_Typedescriptor_t CipheringKeyData_cipherKey_descr_; +extern const XERdescriptor_t CipheringKey_id_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_id_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_id_descr_; +extern const XERdescriptor_t CipheringKey_key_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_key_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_key_descr_; +extern const XERdescriptor_t CipheringKey_spare_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_spare_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_spare_descr_; +extern const XERdescriptor_t CipheringKey_c0Length_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_c0Length_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_c0Length_descr_; +extern const XERdescriptor_t CipheringKey_c0_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_c0_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_c0_descr_; +extern const XERdescriptor_t CipheringKey_posSIBType1__1to2__1_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_posSIBType1__1to2__1_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_posSIBType1__1to2__1_descr_; +extern const XERdescriptor_t CipheringKey_posSIBType2__2to9_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_posSIBType2__2to9_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_posSIBType2__2to9_descr_; +extern const XERdescriptor_t CipheringKey_posSIBType2__10to17_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_posSIBType2__10to17_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_posSIBType2__10to17_descr_; +extern const XERdescriptor_t CipheringKey_posSIBType2__18to3__1_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_posSIBType2__18to3__1_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_posSIBType2__18to3__1_descr_; +extern const XERdescriptor_t CipheringKey_validityStartTime_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_validityStartTime_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_validityStartTime_descr_; +extern const XERdescriptor_t CipheringKey_validityDuration_xer_; +extern const TTCN_OERdescriptor_t CipheringKey_validityDuration_oer_; +extern const TTCN_Typedescriptor_t CipheringKey_validityDuration_descr_; +extern const TTCN_Typedescriptor_t CipheringKey_descr_; +extern const TTCN_Typedescriptor_t CipheringKeyData_descr_; +extern const XERdescriptor_t CipheringKeyData_iei_xer_; +extern const TTCN_OERdescriptor_t CipheringKeyData_iei_oer_; +extern const TTCN_Typedescriptor_t CipheringKeyData_iei_descr_; +extern const TTCN_Typedescriptor_t& NB__S1__DRXParam_descr_; +extern const XERdescriptor_t IMSI__Offset_offsetValue_xer_; +extern const TTCN_OERdescriptor_t IMSI__Offset_offsetValue_oer_; +extern const TTCN_Typedescriptor_t IMSI__Offset_offsetValue_descr_; +extern const TTCN_Typedescriptor_t IMSI__Offset_descr_; +extern const XERdescriptor_t IMSI__Offset_iei_xer_; +extern const TTCN_OERdescriptor_t IMSI__Offset_iei_oer_; +extern const TTCN_Typedescriptor_t IMSI__Offset_iei_descr_; +extern const XERdescriptor_t IMSI__Offset_iel_xer_; +extern const TTCN_OERdescriptor_t IMSI__Offset_iel_oer_; +extern const TTCN_Typedescriptor_t IMSI__Offset_iel_descr_; +extern const XERdescriptor_t ATTACH__COMPLETE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t ATTACH__COMPLETE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t ATTACH__COMPLETE_securityHeaderType_descr_; +extern const XERdescriptor_t ATTACH__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ATTACH__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ATTACH__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t ATTACH__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t ATTACH__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t ATTACH__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t ATTACH__COMPLETE_descr_; +extern const XERdescriptor_t ATTACH__REJECT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t ATTACH__REJECT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t ATTACH__REJECT_securityHeaderType_descr_; +extern const XERdescriptor_t ATTACH__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ATTACH__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ATTACH__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t ATTACH__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t ATTACH__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t ATTACH__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t ATTACH__REJECT_descr_; +extern const XERdescriptor_t Extd__EMM__Cause_spare_xer_; +extern const TTCN_OERdescriptor_t Extd__EMM__Cause_spare_oer_; +extern const TTCN_Typedescriptor_t Extd__EMM__Cause_spare_descr_; +extern const XERdescriptor_t Extd__EMM__Cause_nbIoTAllowed_xer_; +extern const TTCN_OERdescriptor_t Extd__EMM__Cause_nbIoTAllowed_oer_; +extern const TTCN_Typedescriptor_t Extd__EMM__Cause_nbIoTAllowed_descr_; +extern const XERdescriptor_t Extd__EMM__Cause_epsOptimizationInfo_xer_; +extern const TTCN_OERdescriptor_t Extd__EMM__Cause_epsOptimizationInfo_oer_; +extern const TTCN_Typedescriptor_t Extd__EMM__Cause_epsOptimizationInfo_descr_; +extern const XERdescriptor_t Extd__EMM__Cause_eutranAllowed_xer_; +extern const TTCN_OERdescriptor_t Extd__EMM__Cause_eutranAllowed_oer_; +extern const TTCN_Typedescriptor_t Extd__EMM__Cause_eutranAllowed_descr_; +extern const TTCN_Typedescriptor_t Extd__EMM__Cause_descr_; +extern const XERdescriptor_t Extd__EMM__Cause_iei_xer_; +extern const TTCN_Typedescriptor_t Extd__EMM__Cause_iei_descr_; +extern const XERdescriptor_t ATTACH__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t ATTACH__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t ATTACH__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t ATTACH__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ATTACH__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ATTACH__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t ATTACH__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t ATTACH__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t ATTACH__REQUEST_messageType_descr_; +extern const XERdescriptor_t EPS__AttachType_spare_xer_; +extern const TTCN_OERdescriptor_t EPS__AttachType_spare_oer_; +extern const TTCN_Typedescriptor_t EPS__AttachType_spare_descr_; +extern const XERdescriptor_t EPS__AttachType_typeValue_xer_; +extern const TTCN_OERdescriptor_t EPS__AttachType_typeValue_oer_; +extern const TTCN_Typedescriptor_t EPS__AttachType_typeValue_descr_; +extern const TTCN_Typedescriptor_t EPS__AttachType_descr_; +extern const TTCN_Typedescriptor_t ATTACH__REQUEST_descr_; +extern const XERdescriptor_t GUTI__Type_iei_xer_; +extern const TTCN_Typedescriptor_t GUTI__Type_iei_descr_; +extern const XERdescriptor_t GUTI__Type_spare_xer_; +extern const TTCN_OERdescriptor_t GUTI__Type_spare_oer_; +extern const TTCN_Typedescriptor_t GUTI__Type_spare_descr_; +extern const XERdescriptor_t GUTI__Type_gutiType_xer_; +extern const TTCN_OERdescriptor_t GUTI__Type_gutiType_oer_; +extern const TTCN_Typedescriptor_t GUTI__Type_gutiType_descr_; +extern const TTCN_Typedescriptor_t GUTI__Type_descr_; +extern const XERdescriptor_t UE__AdditionalSecurityCapability_iel_xer_; +extern const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_iel_oer_; +extern const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_iel_descr_; +extern const XERdescriptor_t UE__AdditionalSecurityCapability_eaCap5G__0__7_xer_; +extern const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_eaCap5G__0__7_oer_; +extern const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_eaCap5G__0__7_descr_; +extern const XERdescriptor_t UE__AdditionalSecurityCapability_eaCap5G__8__15_xer_; +extern const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_eaCap5G__8__15_oer_; +extern const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_eaCap5G__8__15_descr_; +extern const XERdescriptor_t UE__AdditionalSecurityCapability_iaCap5G__0__7_xer_; +extern const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_iaCap5G__0__7_oer_; +extern const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_iaCap5G__0__7_descr_; +extern const XERdescriptor_t UE__AdditionalSecurityCapability_iaCap5G__8__15_xer_; +extern const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_iaCap5G__8__15_oer_; +extern const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_iaCap5G__8__15_descr_; +extern const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_descr_; +extern const XERdescriptor_t UE__AdditionalSecurityCapability_iei_xer_; +extern const TTCN_OERdescriptor_t UE__AdditionalSecurityCapability_iei_oer_; +extern const TTCN_Typedescriptor_t UE__AdditionalSecurityCapability_iei_descr_; +extern const XERdescriptor_t AdditionalInfoReq_spare_xer_; +extern const TTCN_OERdescriptor_t AdditionalInfoReq_spare_oer_; +extern const TTCN_Typedescriptor_t AdditionalInfoReq_spare_descr_; +extern const XERdescriptor_t AdditionalInfoReq_cipherKey_xer_; +extern const TTCN_OERdescriptor_t AdditionalInfoReq_cipherKey_oer_; +extern const TTCN_Typedescriptor_t AdditionalInfoReq_cipherKey_descr_; +extern const TTCN_Typedescriptor_t AdditionalInfoReq_descr_; +extern const XERdescriptor_t AdditionalInfoReq_iei_xer_; +extern const TTCN_OERdescriptor_t AdditionalInfoReq_iei_oer_; +extern const TTCN_Typedescriptor_t AdditionalInfoReq_iei_descr_; +extern const XERdescriptor_t N1__UENetworkCap_iel_xer_; +extern const TTCN_OERdescriptor_t N1__UENetworkCap_iel_oer_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_iel_descr_; +extern const XERdescriptor_t N1__UENetworkCap_spare_xer_; +extern const TTCN_OERdescriptor_t N1__UENetworkCap_spare_oer_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_spare_descr_; +extern const XERdescriptor_t N1__UENetworkCap_ehc__CP__CIoT_xer_; +extern const TTCN_OERdescriptor_t N1__UENetworkCap_ehc__CP__CIoT_oer_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_ehc__CP__CIoT_descr_; +extern const XERdescriptor_t N1__UENetworkCap_ngPNB__CIoT_xer_; +extern const TTCN_OERdescriptor_t N1__UENetworkCap_ngPNB__CIoT_oer_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_ngPNB__CIoT_descr_; +extern const XERdescriptor_t N1__UENetworkCap_ngUP__CIoT_xer_; +extern const TTCN_OERdescriptor_t N1__UENetworkCap_ngUP__CIoT_oer_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_ngUP__CIoT_descr_; +extern const XERdescriptor_t N1__UENetworkCap_ngHC__CP__CIoT_xer_; +extern const TTCN_OERdescriptor_t N1__UENetworkCap_ngHC__CP__CIoT_oer_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_ngHC__CP__CIoT_descr_; +extern const XERdescriptor_t N1__UENetworkCap_n3Data_xer_; +extern const TTCN_OERdescriptor_t N1__UENetworkCap_n3Data_oer_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_n3Data_descr_; +extern const XERdescriptor_t N1__UENetworkCap_ngCP__CIoT_xer_; +extern const TTCN_OERdescriptor_t N1__UENetworkCap_ngCP__CIoT_oer_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_ngCP__CIoT_descr_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_descr_; +extern const XERdescriptor_t N1__UENetworkCap_iei_xer_; +extern const TTCN_OERdescriptor_t N1__UENetworkCap_iei_oer_; +extern const TTCN_Typedescriptor_t N1__UENetworkCap_iei_descr_; +extern const XERdescriptor_t UERadioCapIdAvailability_spare_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdAvailability_spare_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdAvailability_spare_descr_; +extern const XERdescriptor_t UERadioCapIdAvailability_availability_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdAvailability_availability_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdAvailability_availability_descr_; +extern const TTCN_Typedescriptor_t UERadioCapIdAvailability_descr_; +extern const XERdescriptor_t UERadioCapIdAvailability_iei_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdAvailability_iei_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdAvailability_iei_descr_; +extern const XERdescriptor_t UERadioCapIdAvailability_iel_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdAvailability_iel_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdAvailability_iel_descr_; +extern const XERdescriptor_t AUTHENTICATION__FAILURE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__FAILURE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__FAILURE_securityHeaderType_descr_; +extern const XERdescriptor_t AUTHENTICATION__FAILURE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__FAILURE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__FAILURE_protocolDiscriminator_descr_; +extern const XERdescriptor_t AUTHENTICATION__FAILURE_messageType_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__FAILURE_messageType_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__FAILURE_messageType_descr_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__FAILURE_descr_; +extern const XERdescriptor_t AUTHENTICATION__REJECT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__REJECT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__REJECT_securityHeaderType_descr_; +extern const XERdescriptor_t AUTHENTICATION__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t AUTHENTICATION__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__REJECT_descr_; +extern const XERdescriptor_t AUTHENTICATION__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t AUTHENTICATION__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t AUTHENTICATION__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_messageType_descr_; +extern const XERdescriptor_t AUTHENTICATION__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_spareHalfOctet_descr_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__REQUEST_descr_; +extern const XERdescriptor_t AUTHENTICATION__RESPONSE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__RESPONSE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__RESPONSE_securityHeaderType_descr_; +extern const XERdescriptor_t AUTHENTICATION__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t AUTHENTICATION__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t AUTHENTICATION__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t AUTHENTICATION__RESPONSE_descr_; +extern const XERdescriptor_t CS__SERVICE__NOTIFICATION_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t CS__SERVICE__NOTIFICATION_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t CS__SERVICE__NOTIFICATION_securityHeaderType_descr_; +extern const XERdescriptor_t CS__SERVICE__NOTIFICATION_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t CS__SERVICE__NOTIFICATION_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t CS__SERVICE__NOTIFICATION_protocolDiscriminator_descr_; +extern const XERdescriptor_t CS__SERVICE__NOTIFICATION_messageType_xer_; +extern const TTCN_OERdescriptor_t CS__SERVICE__NOTIFICATION_messageType_oer_; +extern const TTCN_Typedescriptor_t CS__SERVICE__NOTIFICATION_messageType_descr_; +extern const XERdescriptor_t PagingIdentity_spareBits_xer_; +extern const TTCN_OERdescriptor_t PagingIdentity_spareBits_oer_; +extern const TTCN_Typedescriptor_t PagingIdentity_spareBits_descr_; +extern const XERdescriptor_t PagingIdentity_pagingId_xer_; +extern const TTCN_OERdescriptor_t PagingIdentity_pagingId_oer_; +extern const TTCN_Typedescriptor_t PagingIdentity_pagingId_descr_; +extern const TTCN_Typedescriptor_t PagingIdentity_descr_; +extern const XERdescriptor_t PagingIdentity_iei_xer_; +extern const TTCN_OERdescriptor_t PagingIdentity_iei_oer_; +extern const TTCN_Typedescriptor_t PagingIdentity_iei_descr_; +extern const TTCN_Typedescriptor_t CS__SERVICE__NOTIFICATION_descr_; +extern const XERdescriptor_t CLI_iel_xer_; +extern const TTCN_OERdescriptor_t CLI_iel_oer_; +extern const TTCN_Typedescriptor_t CLI_iel_descr_; +extern const XERdescriptor_t CLI_cliValue_xer_; +extern const TTCN_OERdescriptor_t CLI_cliValue_oer_; +extern const TTCN_Typedescriptor_t CLI_cliValue_descr_; +extern const TTCN_Typedescriptor_t CLI_descr_; +extern const XERdescriptor_t CLI_iei_xer_; +extern const TTCN_OERdescriptor_t CLI_iei_oer_; +extern const TTCN_Typedescriptor_t CLI_iei_descr_; +extern const XERdescriptor_t SsCode_ssCodeValue_xer_; +extern const TTCN_OERdescriptor_t SsCode_ssCodeValue_oer_; +extern const TTCN_Typedescriptor_t SsCode_ssCodeValue_descr_; +extern const TTCN_Typedescriptor_t SsCode_descr_; +extern const XERdescriptor_t SsCode_iei_xer_; +extern const TTCN_OERdescriptor_t SsCode_iei_oer_; +extern const TTCN_Typedescriptor_t SsCode_iei_descr_; +extern const XERdescriptor_t LcsIndicator_lcsIndicator_xer_; +extern const TTCN_OERdescriptor_t LcsIndicator_lcsIndicator_oer_; +extern const TTCN_Typedescriptor_t LcsIndicator_lcsIndicator_descr_; +extern const TTCN_Typedescriptor_t LcsIndicator_descr_; +extern const XERdescriptor_t LcsIndicator_iei_xer_; +extern const TTCN_OERdescriptor_t LcsIndicator_iei_oer_; +extern const TTCN_Typedescriptor_t LcsIndicator_iei_descr_; +extern const XERdescriptor_t LcsClientIdentity_iel_xer_; +extern const TTCN_OERdescriptor_t LcsClientIdentity_iel_oer_; +extern const TTCN_Typedescriptor_t LcsClientIdentity_iel_descr_; +extern const XERdescriptor_t LcsClientIdentity_lcsClientIdentityValue_xer_; +extern const TTCN_OERdescriptor_t LcsClientIdentity_lcsClientIdentityValue_oer_; +extern const TTCN_Typedescriptor_t LcsClientIdentity_lcsClientIdentityValue_descr_; +extern const TTCN_Typedescriptor_t LcsClientIdentity_descr_; +extern const XERdescriptor_t LcsClientIdentity_iei_xer_; +extern const TTCN_OERdescriptor_t LcsClientIdentity_iei_oer_; +extern const TTCN_Typedescriptor_t LcsClientIdentity_iei_descr_; +extern const XERdescriptor_t DETACH__ACCEPT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t DETACH__ACCEPT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t DETACH__ACCEPT_securityHeaderType_descr_; +extern const XERdescriptor_t DETACH__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t DETACH__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t DETACH__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t DETACH__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t DETACH__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t DETACH__ACCEPT_messageType_descr_; +extern const TTCN_Typedescriptor_t DETACH__ACCEPT_descr_; +extern const XERdescriptor_t DETACH__REQUEST__MO_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t DETACH__REQUEST__MO_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t DETACH__REQUEST__MO_securityHeaderType_descr_; +extern const XERdescriptor_t DETACH__REQUEST__MO_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t DETACH__REQUEST__MO_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t DETACH__REQUEST__MO_protocolDiscriminator_descr_; +extern const XERdescriptor_t DETACH__REQUEST__MO_messageType_xer_; +extern const TTCN_OERdescriptor_t DETACH__REQUEST__MO_messageType_oer_; +extern const TTCN_Typedescriptor_t DETACH__REQUEST__MO_messageType_descr_; +extern const TTCN_Typedescriptor_t DETACH__REQUEST__MO_descr_; +extern const XERdescriptor_t DETACH__REQUEST__MT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t DETACH__REQUEST__MT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t DETACH__REQUEST__MT_securityHeaderType_descr_; +extern const XERdescriptor_t DETACH__REQUEST__MT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t DETACH__REQUEST__MT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t DETACH__REQUEST__MT_protocolDiscriminator_descr_; +extern const XERdescriptor_t DETACH__REQUEST__MT_messageType_xer_; +extern const TTCN_OERdescriptor_t DETACH__REQUEST__MT_messageType_oer_; +extern const TTCN_Typedescriptor_t DETACH__REQUEST__MT_messageType_descr_; +extern const XERdescriptor_t DETACH__REQUEST__MT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t DETACH__REQUEST__MT_spareHalfOctet_descr_; +extern const TTCN_Typedescriptor_t DETACH__REQUEST__MT_descr_; +extern const XERdescriptor_t DL__NAS__TRANSPORT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t DL__NAS__TRANSPORT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t DL__NAS__TRANSPORT_securityHeaderType_descr_; +extern const XERdescriptor_t DL__NAS__TRANSPORT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t DL__NAS__TRANSPORT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t DL__NAS__TRANSPORT_protocolDiscriminator_descr_; +extern const XERdescriptor_t DL__NAS__TRANSPORT_messageType_xer_; +extern const TTCN_OERdescriptor_t DL__NAS__TRANSPORT_messageType_oer_; +extern const TTCN_Typedescriptor_t DL__NAS__TRANSPORT_messageType_descr_; +extern const XERdescriptor_t NAS__MessageContainer_iel_xer_; +extern const TTCN_OERdescriptor_t NAS__MessageContainer_iel_oer_; +extern const TTCN_Typedescriptor_t NAS__MessageContainer_iel_descr_; +extern const XERdescriptor_t NAS__MessageContainer_smsmessage_xer_; +extern const TTCN_OERdescriptor_t NAS__MessageContainer_smsmessage_oer_; +extern const TTCN_Typedescriptor_t NAS__MessageContainer_smsmessage_descr_; +extern const TTCN_Typedescriptor_t NAS__MessageContainer_descr_; +extern const XERdescriptor_t NAS__MessageContainer_iei_xer_; +extern const TTCN_OERdescriptor_t NAS__MessageContainer_iei_oer_; +extern const TTCN_Typedescriptor_t NAS__MessageContainer_iei_descr_; +extern const TTCN_Typedescriptor_t DL__NAS__TRANSPORT_descr_; +extern const XERdescriptor_t EMM__INFORMATION_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t EMM__INFORMATION_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t EMM__INFORMATION_securityHeaderType_descr_; +extern const XERdescriptor_t EMM__INFORMATION_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t EMM__INFORMATION_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t EMM__INFORMATION_protocolDiscriminator_descr_; +extern const XERdescriptor_t EMM__INFORMATION_messageType_xer_; +extern const TTCN_OERdescriptor_t EMM__INFORMATION_messageType_oer_; +extern const TTCN_Typedescriptor_t EMM__INFORMATION_messageType_descr_; +extern const TTCN_Typedescriptor_t EMM__INFORMATION_descr_; +extern const XERdescriptor_t EMM__STATUS_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t EMM__STATUS_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t EMM__STATUS_securityHeaderType_descr_; +extern const XERdescriptor_t EMM__STATUS_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t EMM__STATUS_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t EMM__STATUS_protocolDiscriminator_descr_; +extern const XERdescriptor_t EMM__STATUS_messageType_xer_; +extern const TTCN_OERdescriptor_t EMM__STATUS_messageType_oer_; +extern const TTCN_Typedescriptor_t EMM__STATUS_messageType_descr_; +extern const TTCN_Typedescriptor_t EMM__STATUS_descr_; +extern const XERdescriptor_t EXT__SERVICE__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t EXT__SERVICE__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t EXT__SERVICE__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t EXT__SERVICE__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t EXT__SERVICE__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t EXT__SERVICE__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t EXT__SERVICE__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t EXT__SERVICE__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t EXT__SERVICE__REQUEST_messageType_descr_; +extern const XERdescriptor_t EPS__ServiceType_serviceValue_xer_; +extern const TTCN_OERdescriptor_t EPS__ServiceType_serviceValue_oer_; +extern const TTCN_Typedescriptor_t EPS__ServiceType_serviceValue_descr_; +extern const TTCN_Typedescriptor_t EPS__ServiceType_descr_; +extern const XERdescriptor_t EPS__ServiceType_iei_xer_; +extern const TTCN_Typedescriptor_t EPS__ServiceType_iei_descr_; +extern const TTCN_Typedescriptor_t EXT__SERVICE__REQUEST_descr_; +extern const XERdescriptor_t CSFBResponse_iei_xer_; +extern const TTCN_Typedescriptor_t CSFBResponse_iei_descr_; +extern const XERdescriptor_t CSFBResponse_spare_xer_; +extern const TTCN_OERdescriptor_t CSFBResponse_spare_oer_; +extern const TTCN_Typedescriptor_t CSFBResponse_spare_descr_; +extern const XERdescriptor_t CSFBResponse_csfbValue_xer_; +extern const TTCN_OERdescriptor_t CSFBResponse_csfbValue_oer_; +extern const TTCN_Typedescriptor_t CSFBResponse_csfbValue_descr_; +extern const TTCN_Typedescriptor_t CSFBResponse_descr_; +extern const XERdescriptor_t PagingRestriction_spare_xer_; +extern const TTCN_OERdescriptor_t PagingRestriction_spare_oer_; +extern const TTCN_Typedescriptor_t PagingRestriction_spare_descr_; +extern const XERdescriptor_t PagingRestriction_prType_xer_; +extern const TTCN_OERdescriptor_t PagingRestriction_prType_oer_; +extern const TTCN_Typedescriptor_t PagingRestriction_prType_descr_; +extern const TTCN_Typedescriptor_t PagingRestriction_descr_; +extern const XERdescriptor_t PagingRestriction_iei_xer_; +extern const TTCN_OERdescriptor_t PagingRestriction_iei_oer_; +extern const TTCN_Typedescriptor_t PagingRestriction_iei_descr_; +extern const XERdescriptor_t PagingRestriction_iel_xer_; +extern const TTCN_OERdescriptor_t PagingRestriction_iel_oer_; +extern const TTCN_Typedescriptor_t PagingRestriction_iel_descr_; +extern const XERdescriptor_t PagingRestriction_ebi7__0_xer_; +extern const TTCN_OERdescriptor_t PagingRestriction_ebi7__0_oer_; +extern const TTCN_Typedescriptor_t PagingRestriction_ebi7__0_descr_; +extern const XERdescriptor_t PagingRestriction_ebi15__8_xer_; +extern const TTCN_OERdescriptor_t PagingRestriction_ebi15__8_oer_; +extern const TTCN_Typedescriptor_t PagingRestriction_ebi15__8_descr_; +extern const XERdescriptor_t GUTI__REALLOCATION__COMMAND_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMMAND_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMMAND_securityHeaderType_descr_; +extern const XERdescriptor_t GUTI__REALLOCATION__COMMAND_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMMAND_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMMAND_protocolDiscriminator_descr_; +extern const XERdescriptor_t GUTI__REALLOCATION__COMMAND_messageType_xer_; +extern const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMMAND_messageType_oer_; +extern const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMMAND_messageType_descr_; +extern const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMMAND_descr_; +extern const XERdescriptor_t GUTI__REALLOCATION__COMPLETE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMPLETE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMPLETE_securityHeaderType_descr_; +extern const XERdescriptor_t GUTI__REALLOCATION__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t GUTI__REALLOCATION__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t GUTI__REALLOCATION__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t GUTI__REALLOCATION__COMPLETE_descr_; +extern const XERdescriptor_t IDENTITY__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t IDENTITY__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t IDENTITY__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t IDENTITY__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t IDENTITY__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t IDENTITY__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t IDENTITY__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t IDENTITY__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t IDENTITY__REQUEST_messageType_descr_; +extern const XERdescriptor_t IDENTITY__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t IDENTITY__REQUEST_spareHalfOctet_descr_; +extern const TTCN_Typedescriptor_t IDENTITY__REQUEST_descr_; +extern const XERdescriptor_t IDENTITY__RESPONSE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t IDENTITY__RESPONSE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t IDENTITY__RESPONSE_securityHeaderType_descr_; +extern const XERdescriptor_t IDENTITY__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t IDENTITY__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t IDENTITY__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t IDENTITY__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t IDENTITY__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t IDENTITY__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t IDENTITY__RESPONSE_descr_; +extern const XERdescriptor_t SECURITY__MODE__COMMAND_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t SECURITY__MODE__COMMAND_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_securityHeaderType_descr_; +extern const XERdescriptor_t SECURITY__MODE__COMMAND_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SECURITY__MODE__COMMAND_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_protocolDiscriminator_descr_; +extern const XERdescriptor_t SECURITY__MODE__COMMAND_messageType_xer_; +extern const TTCN_OERdescriptor_t SECURITY__MODE__COMMAND_messageType_oer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_messageType_descr_; +extern const XERdescriptor_t SECURITY__MODE__COMMAND_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_spareHalfOctet_descr_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__COMMAND_descr_; +extern const XERdescriptor_t Nonce_nonceValue_xer_; +extern const TTCN_OERdescriptor_t Nonce_nonceValue_oer_; +extern const TTCN_Typedescriptor_t Nonce_nonceValue_descr_; +extern const TTCN_Typedescriptor_t Nonce_descr_; +extern const XERdescriptor_t Nonce_iei_xer_; +extern const TTCN_OERdescriptor_t Nonce_iei_oer_; +extern const TTCN_Typedescriptor_t Nonce_iei_descr_; +extern const XERdescriptor_t UERadioCapIdRequest_spare_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdRequest_spare_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdRequest_spare_descr_; +extern const XERdescriptor_t UERadioCapIdRequest_radioCapIdReq_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdRequest_radioCapIdReq_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdRequest_radioCapIdReq_descr_; +extern const TTCN_Typedescriptor_t UERadioCapIdRequest_descr_; +extern const XERdescriptor_t UERadioCapIdRequest_iei_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdRequest_iei_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdRequest_iei_descr_; +extern const XERdescriptor_t UERadioCapIdRequest_iel_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdRequest_iel_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdRequest_iel_descr_; +extern const XERdescriptor_t SECURITY__MODE__COMPLETE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t SECURITY__MODE__COMPLETE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__COMPLETE_securityHeaderType_descr_; +extern const XERdescriptor_t SECURITY__MODE__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SECURITY__MODE__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t SECURITY__MODE__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t SECURITY__MODE__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__COMPLETE_descr_; +extern const XERdescriptor_t SECURITY__MODE__REJECT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t SECURITY__MODE__REJECT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__REJECT_securityHeaderType_descr_; +extern const XERdescriptor_t SECURITY__MODE__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SECURITY__MODE__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t SECURITY__MODE__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t SECURITY__MODE__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t SECURITY__MODE__REJECT_descr_; +extern const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_descr_; +extern const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_descr_; +extern const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_xer_; +extern const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_; +extern const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_descr_; +extern const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_xer_; +extern const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_; +extern const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_descr_; +extern const XERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_xer_; +extern const TTCN_OERdescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_oer_; +extern const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_nasMessage_descr_; +extern const TTCN_Typedescriptor_t SECURITY__PROTECTED__NAS__MESSAGE_descr_; +extern const XERdescriptor_t SERVICE__REJECT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t SERVICE__REJECT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t SERVICE__REJECT_securityHeaderType_descr_; +extern const XERdescriptor_t SERVICE__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SERVICE__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SERVICE__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t SERVICE__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t SERVICE__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t SERVICE__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t SERVICE__REJECT_descr_; +extern const XERdescriptor_t SERVICE__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t SERVICE__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t SERVICE__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t SERVICE__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SERVICE__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SERVICE__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t KSIandSN_ksi_xer_; +extern const TTCN_OERdescriptor_t KSIandSN_ksi_oer_; +extern const TTCN_Typedescriptor_t KSIandSN_ksi_descr_; +extern const XERdescriptor_t KSIandSN_sn_xer_; +extern const TTCN_OERdescriptor_t KSIandSN_sn_oer_; +extern const TTCN_Typedescriptor_t KSIandSN_sn_descr_; +extern const TTCN_Typedescriptor_t KSIandSN_descr_; +extern const XERdescriptor_t KSIandSN_iei_xer_; +extern const TTCN_OERdescriptor_t KSIandSN_iei_oer_; +extern const TTCN_Typedescriptor_t KSIandSN_iei_descr_; +extern const XERdescriptor_t ShortMAC_macValue_xer_; +extern const TTCN_OERdescriptor_t ShortMAC_macValue_oer_; +extern const TTCN_Typedescriptor_t ShortMAC_macValue_descr_; +extern const TTCN_Typedescriptor_t ShortMAC_descr_; +extern const XERdescriptor_t ShortMAC_iei_xer_; +extern const TTCN_OERdescriptor_t ShortMAC_iei_oer_; +extern const TTCN_Typedescriptor_t ShortMAC_iei_descr_; +extern const TTCN_Typedescriptor_t SERVICE__REQUEST_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_securityHeaderType_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_messageType_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__ACCEPT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_spareHalfOctet_descr_; +extern const XERdescriptor_t EPS__UpdateResult_spare_xer_; +extern const TTCN_OERdescriptor_t EPS__UpdateResult_spare_oer_; +extern const TTCN_Typedescriptor_t EPS__UpdateResult_spare_descr_; +extern const XERdescriptor_t EPS__UpdateResult_resultValue_xer_; +extern const TTCN_OERdescriptor_t EPS__UpdateResult_resultValue_oer_; +extern const TTCN_Typedescriptor_t EPS__UpdateResult_resultValue_descr_; +extern const TTCN_Typedescriptor_t EPS__UpdateResult_descr_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__ACCEPT_descr_; +extern const XERdescriptor_t HeaderCompressConfigStatus_iel_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfigStatus_iel_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfigStatus_iel_descr_; +extern const XERdescriptor_t HeaderCompressConfigStatus_epsBearerInd__0__7_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfigStatus_epsBearerInd__0__7_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfigStatus_epsBearerInd__0__7_descr_; +extern const XERdescriptor_t HeaderCompressConfigStatus_epsBearerInd__8__15_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfigStatus_epsBearerInd__8__15_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfigStatus_epsBearerInd__8__15_descr_; +extern const TTCN_Typedescriptor_t HeaderCompressConfigStatus_descr_; +extern const XERdescriptor_t HeaderCompressConfigStatus_iei_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfigStatus_iei_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfigStatus_iei_descr_; +extern const XERdescriptor_t EPS__AddReqResult_spare_xer_; +extern const TTCN_OERdescriptor_t EPS__AddReqResult_spare_oer_; +extern const TTCN_Typedescriptor_t EPS__AddReqResult_spare_descr_; +extern const XERdescriptor_t EPS__AddReqResult_prd_xer_; +extern const TTCN_OERdescriptor_t EPS__AddReqResult_prd_oer_; +extern const TTCN_Typedescriptor_t EPS__AddReqResult_prd_descr_; +extern const TTCN_Typedescriptor_t EPS__AddReqResult_descr_; +extern const XERdescriptor_t EPS__AddReqResult_iei_xer_; +extern const TTCN_OERdescriptor_t EPS__AddReqResult_iei_oer_; +extern const TTCN_Typedescriptor_t EPS__AddReqResult_iei_descr_; +extern const XERdescriptor_t EPS__AddReqResult_iel_xer_; +extern const TTCN_OERdescriptor_t EPS__AddReqResult_iel_oer_; +extern const TTCN_Typedescriptor_t EPS__AddReqResult_iel_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__COMPLETE_securityHeaderType_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__COMPLETE_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__REJECT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REJECT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REJECT_securityHeaderType_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REJECT_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t TRACKING__AREA__UPDATE__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REQUEST_messageType_descr_; +extern const XERdescriptor_t EPS__UpdateType_activeFlag_xer_; +extern const TTCN_OERdescriptor_t EPS__UpdateType_activeFlag_oer_; +extern const TTCN_Typedescriptor_t EPS__UpdateType_activeFlag_descr_; +extern const XERdescriptor_t EPS__UpdateType_typeValue_xer_; +extern const TTCN_OERdescriptor_t EPS__UpdateType_typeValue_oer_; +extern const TTCN_Typedescriptor_t EPS__UpdateType_typeValue_descr_; +extern const TTCN_Typedescriptor_t EPS__UpdateType_descr_; +extern const TTCN_Typedescriptor_t TRACKING__AREA__UPDATE__REQUEST_descr_; +extern const XERdescriptor_t UERadioCapInfoUpdateNeeded_spare_xer_; +extern const TTCN_OERdescriptor_t UERadioCapInfoUpdateNeeded_spare_oer_; +extern const TTCN_Typedescriptor_t UERadioCapInfoUpdateNeeded_spare_descr_; +extern const XERdescriptor_t UERadioCapInfoUpdateNeeded_urcUpdate_xer_; +extern const TTCN_OERdescriptor_t UERadioCapInfoUpdateNeeded_urcUpdate_oer_; +extern const TTCN_Typedescriptor_t UERadioCapInfoUpdateNeeded_urcUpdate_descr_; +extern const TTCN_Typedescriptor_t UERadioCapInfoUpdateNeeded_descr_; +extern const XERdescriptor_t UERadioCapInfoUpdateNeeded_iei_xer_; +extern const TTCN_Typedescriptor_t UERadioCapInfoUpdateNeeded_iei_descr_; +extern const XERdescriptor_t UL__NAS__TRANSPORT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t UL__NAS__TRANSPORT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t UL__NAS__TRANSPORT_securityHeaderType_descr_; +extern const XERdescriptor_t UL__NAS__TRANSPORT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UL__NAS__TRANSPORT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UL__NAS__TRANSPORT_protocolDiscriminator_descr_; +extern const XERdescriptor_t UL__NAS__TRANSPORT_messageType_xer_; +extern const TTCN_OERdescriptor_t UL__NAS__TRANSPORT_messageType_oer_; +extern const TTCN_Typedescriptor_t UL__NAS__TRANSPORT_messageType_descr_; +extern const TTCN_Typedescriptor_t UL__NAS__TRANSPORT_descr_; +extern const XERdescriptor_t DL__GENERIC__NAS__TRANSPORT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t DL__GENERIC__NAS__TRANSPORT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_securityHeaderType_descr_; +extern const XERdescriptor_t DL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t DL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_descr_; +extern const XERdescriptor_t DL__GENERIC__NAS__TRANSPORT_messageType_xer_; +extern const TTCN_OERdescriptor_t DL__GENERIC__NAS__TRANSPORT_messageType_oer_; +extern const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_messageType_descr_; +extern const XERdescriptor_t GenericMessageContainerType_xer_; +extern const TTCN_OERdescriptor_t GenericMessageContainerType_oer_; +extern const TTCN_Typedescriptor_t GenericMessageContainerType_descr_; +extern const XERdescriptor_t DL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_xer_; +extern const TTCN_OERdescriptor_t DL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_oer_; +extern const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_descr_; +extern const XERdescriptor_t GenericMessageContainer_iel_xer_; +extern const TTCN_OERdescriptor_t GenericMessageContainer_iel_oer_; +extern const TTCN_Typedescriptor_t GenericMessageContainer_iel_descr_; +extern const XERdescriptor_t GenericMessageContainer_genericMsgContainerValue_xer_; +extern const TTCN_OERdescriptor_t GenericMessageContainer_genericMsgContainerValue_oer_; +extern const TTCN_Typedescriptor_t GenericMessageContainer_genericMsgContainerValue_descr_; +extern const TTCN_Typedescriptor_t GenericMessageContainer_descr_; +extern const XERdescriptor_t GenericMessageContainer_iei_xer_; +extern const TTCN_OERdescriptor_t GenericMessageContainer_iei_oer_; +extern const TTCN_Typedescriptor_t GenericMessageContainer_iei_descr_; +extern const TTCN_Typedescriptor_t DL__GENERIC__NAS__TRANSPORT_descr_; +extern const XERdescriptor_t UL__GENERIC__NAS__TRANSPORT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t UL__GENERIC__NAS__TRANSPORT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_securityHeaderType_descr_; +extern const XERdescriptor_t UL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_protocolDiscriminator_descr_; +extern const XERdescriptor_t UL__GENERIC__NAS__TRANSPORT_messageType_xer_; +extern const TTCN_OERdescriptor_t UL__GENERIC__NAS__TRANSPORT_messageType_oer_; +extern const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_messageType_descr_; +extern const XERdescriptor_t UL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_xer_; +extern const TTCN_OERdescriptor_t UL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_oer_; +extern const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_genericMessageContainerType_descr_; +extern const TTCN_Typedescriptor_t UL__GENERIC__NAS__TRANSPORT_descr_; +extern const XERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t CONTROL__PLANE__SERVICE__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t CONTROL__PLANE__SERVICE__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t CONTROL__PLANE__SERVICE__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t CONTROL__PLANE__SERVICE__REQUEST_messageType_descr_; +extern const XERdescriptor_t ControlPlaneServiceType_activeFlag_xer_; +extern const TTCN_OERdescriptor_t ControlPlaneServiceType_activeFlag_oer_; +extern const TTCN_Typedescriptor_t ControlPlaneServiceType_activeFlag_descr_; +extern const XERdescriptor_t ControlPlaneServiceType_controlPlaneServiceType_xer_; +extern const TTCN_OERdescriptor_t ControlPlaneServiceType_controlPlaneServiceType_oer_; +extern const TTCN_Typedescriptor_t ControlPlaneServiceType_controlPlaneServiceType_descr_; +extern const TTCN_Typedescriptor_t ControlPlaneServiceType_descr_; +extern const XERdescriptor_t ControlPlaneServiceType_iei_xer_; +extern const TTCN_Typedescriptor_t ControlPlaneServiceType_iei_descr_; +extern const TTCN_Typedescriptor_t CONTROL__PLANE__SERVICE__REQUEST_descr_; +extern const XERdescriptor_t SERVICE__ACCEPT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t SERVICE__ACCEPT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t SERVICE__ACCEPT_securityHeaderType_descr_; +extern const XERdescriptor_t SERVICE__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SERVICE__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SERVICE__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t SERVICE__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t SERVICE__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t SERVICE__ACCEPT_messageType_descr_; +extern const TTCN_Typedescriptor_t SERVICE__ACCEPT_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_messageType_descr_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__ACCEPT_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_epsBearerId_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_messageType_descr_; +extern const XERdescriptor_t ESM__Cause_causeValue_xer_; +extern const TTCN_OERdescriptor_t ESM__Cause_causeValue_oer_; +extern const TTCN_Typedescriptor_t ESM__Cause_causeValue_descr_; +extern const TTCN_Typedescriptor_t ESM__Cause_descr_; +extern const XERdescriptor_t ESM__Cause_iei_xer_; +extern const TTCN_OERdescriptor_t ESM__Cause_iei_oer_; +extern const TTCN_Typedescriptor_t ESM__Cause_iei_descr_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REJECT_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_messageType_descr_; +extern const XERdescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_spareHalfOctet_descr_; +extern const XERdescriptor_t LinkedEpsBearerIdentity_idValue_xer_; +extern const TTCN_OERdescriptor_t LinkedEpsBearerIdentity_idValue_oer_; +extern const TTCN_Typedescriptor_t LinkedEpsBearerIdentity_idValue_descr_; +extern const TTCN_Typedescriptor_t LinkedEpsBearerIdentity_descr_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEDICATED__EPS__BEARER__CONTEXT__REQUEST_descr_; +extern const XERdescriptor_t TransactionIdentifier_iel_xer_; +extern const TTCN_OERdescriptor_t TransactionIdentifier_iel_oer_; +extern const TTCN_Typedescriptor_t TransactionIdentifier_iel_descr_; +extern const XERdescriptor_t TransactionIdentifier_tiFlag_xer_; +extern const TTCN_OERdescriptor_t TransactionIdentifier_tiFlag_oer_; +extern const TTCN_Typedescriptor_t TransactionIdentifier_tiFlag_descr_; +extern const XERdescriptor_t TransactionIdentifier_tiValue_xer_; +extern const TTCN_OERdescriptor_t TransactionIdentifier_tiValue_oer_; +extern const TTCN_Typedescriptor_t TransactionIdentifier_tiValue_descr_; +extern const XERdescriptor_t TransactionIdentifier_spare_xer_; +extern const TTCN_OERdescriptor_t TransactionIdentifier_spare_oer_; +extern const TTCN_Typedescriptor_t TransactionIdentifier_spare_descr_; +extern const TTCN_Typedescriptor_t TransactionIdentifier_descr_; +extern const XERdescriptor_t TransactionIdentifier_iei_xer_; +extern const TTCN_OERdescriptor_t TransactionIdentifier_iei_oer_; +extern const TTCN_Typedescriptor_t TransactionIdentifier_iei_descr_; +extern const XERdescriptor_t TransactionIdentifier_ext_xer_; +extern const TTCN_OERdescriptor_t TransactionIdentifier_ext_oer_; +extern const TTCN_Typedescriptor_t TransactionIdentifier_ext_descr_; +extern const XERdescriptor_t TransactionIdentifier_tiValue__2_xer_; +extern const TTCN_OERdescriptor_t TransactionIdentifier_tiValue__2_oer_; +extern const TTCN_Typedescriptor_t TransactionIdentifier_tiValue__2_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_messageType_descr_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__ACCEPT_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_epsBearerId_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REJECT_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t ACTIVATE__DEFAULT__EPS__BEARER__CONTEXT__REQUEST_descr_; +extern const XERdescriptor_t APN__AMBR_downlink_xer_; +extern const TTCN_OERdescriptor_t APN__AMBR_downlink_oer_; +extern const TTCN_Typedescriptor_t APN__AMBR_downlink_descr_; +extern const XERdescriptor_t APN__AMBR_uplink_xer_; +extern const TTCN_OERdescriptor_t APN__AMBR_uplink_oer_; +extern const TTCN_Typedescriptor_t APN__AMBR_uplink_descr_; +extern const TTCN_Typedescriptor_t APN__AMBR_descr_; +extern const XERdescriptor_t APN__AMBR_iei_xer_; +extern const TTCN_OERdescriptor_t APN__AMBR_iei_oer_; +extern const TTCN_Typedescriptor_t APN__AMBR_iei_descr_; +extern const XERdescriptor_t APN__AMBR_iel_xer_; +extern const TTCN_OERdescriptor_t APN__AMBR_iel_oer_; +extern const TTCN_Typedescriptor_t APN__AMBR_iel_descr_; +extern const XERdescriptor_t APN__AMBR_downlinkExt_xer_; +extern const TTCN_OERdescriptor_t APN__AMBR_downlinkExt_oer_; +extern const TTCN_Typedescriptor_t APN__AMBR_downlinkExt_descr_; +extern const XERdescriptor_t APN__AMBR_uplinkExt_xer_; +extern const TTCN_OERdescriptor_t APN__AMBR_uplinkExt_oer_; +extern const TTCN_Typedescriptor_t APN__AMBR_uplinkExt_descr_; +extern const XERdescriptor_t APN__AMBR_downlinkExt2_xer_; +extern const TTCN_OERdescriptor_t APN__AMBR_downlinkExt2_oer_; +extern const TTCN_Typedescriptor_t APN__AMBR_downlinkExt2_descr_; +extern const XERdescriptor_t APN__AMBR_uplinkExt2_xer_; +extern const TTCN_OERdescriptor_t APN__AMBR_uplinkExt2_oer_; +extern const TTCN_Typedescriptor_t APN__AMBR_uplinkExt2_descr_; +extern const XERdescriptor_t HeaderCompressConfig_iel_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_iel_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_iel_descr_; +extern const XERdescriptor_t HeaderCompressConfig_spare_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_spare_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_spare_descr_; +extern const XERdescriptor_t HeaderCompressConfig_profileP0x0104_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0104_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0104_descr_; +extern const XERdescriptor_t HeaderCompressConfig_profileP0x0103_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0103_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0103_descr_; +extern const XERdescriptor_t HeaderCompressConfig_profileP0x0102_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0102_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0102_descr_; +extern const XERdescriptor_t HeaderCompressConfig_profileP0x0006_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0006_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0006_descr_; +extern const XERdescriptor_t HeaderCompressConfig_profileP0x0004_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0004_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0004_descr_; +extern const XERdescriptor_t HeaderCompressConfig_profileP0x0003_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0003_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0003_descr_; +extern const XERdescriptor_t HeaderCompressConfig_profileP0x0002_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_profileP0x0002_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_profileP0x0002_descr_; +extern const XERdescriptor_t HeaderCompressConfig_maxCID_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_maxCID_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_maxCID_descr_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_descr_; +extern const XERdescriptor_t HeaderCompressConfig_iei_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_iei_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_iei_descr_; +extern const XERdescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParamsType_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParamsType_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParamsType_descr_; +extern const XERdescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParams_xer_; +extern const TTCN_OERdescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParams_oer_; +extern const TTCN_Typedescriptor_t HeaderCompressConfig_addHeaderCompressContextSetupParams_descr_; +extern const XERdescriptor_t Extd__APN__AMBR_unitDL_xer_; +extern const TTCN_OERdescriptor_t Extd__APN__AMBR_unitDL_oer_; +extern const TTCN_Typedescriptor_t Extd__APN__AMBR_unitDL_descr_; +extern const XERdescriptor_t Extd__APN__AMBR_downlink__1_xer_; +extern const TTCN_OERdescriptor_t Extd__APN__AMBR_downlink__1_oer_; +extern const TTCN_Typedescriptor_t Extd__APN__AMBR_downlink__1_descr_; +extern const XERdescriptor_t Extd__APN__AMBR_downlink__2_xer_; +extern const TTCN_OERdescriptor_t Extd__APN__AMBR_downlink__2_oer_; +extern const TTCN_Typedescriptor_t Extd__APN__AMBR_downlink__2_descr_; +extern const XERdescriptor_t Extd__APN__AMBR_unitUL_xer_; +extern const TTCN_OERdescriptor_t Extd__APN__AMBR_unitUL_oer_; +extern const TTCN_Typedescriptor_t Extd__APN__AMBR_unitUL_descr_; +extern const XERdescriptor_t Extd__APN__AMBR_uplink__1_xer_; +extern const TTCN_OERdescriptor_t Extd__APN__AMBR_uplink__1_oer_; +extern const TTCN_Typedescriptor_t Extd__APN__AMBR_uplink__1_descr_; +extern const XERdescriptor_t Extd__APN__AMBR_uplink__2_xer_; +extern const TTCN_OERdescriptor_t Extd__APN__AMBR_uplink__2_oer_; +extern const TTCN_Typedescriptor_t Extd__APN__AMBR_uplink__2_descr_; +extern const TTCN_Typedescriptor_t Extd__APN__AMBR_descr_; +extern const XERdescriptor_t Extd__APN__AMBR_iei_xer_; +extern const TTCN_OERdescriptor_t Extd__APN__AMBR_iei_oer_; +extern const TTCN_Typedescriptor_t Extd__APN__AMBR_iei_descr_; +extern const XERdescriptor_t Extd__APN__AMBR_iel_xer_; +extern const TTCN_OERdescriptor_t Extd__APN__AMBR_iel_oer_; +extern const TTCN_Typedescriptor_t Extd__APN__AMBR_iel_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_epsBearerId_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REJECT_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_epsBearerId_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_messageType_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_spareHalfOctet_descr_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__ALLOCATION__REQUEST_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_epsBearerId_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REJECT_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_epsBearerId_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_messageType_descr_; +extern const XERdescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_spareHalfOctet_descr_; +extern const TTCN_Typedescriptor_t BEARER__RESOURCE__MODIFICATION__REQUEST_descr_; +extern const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_descr_; +extern const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_messageType_descr_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__ACCEPT_descr_; +extern const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_descr_; +extern const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t DEACTIVATE__EPS__BEARER__CONTEXT__REQUEST_descr_; +extern const XERdescriptor_t ESM__DUMMY__MESSAGE_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_epsBearerId_descr_; +extern const XERdescriptor_t ESM__DUMMY__MESSAGE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ESM__DUMMY__MESSAGE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_protocolDiscriminator_descr_; +extern const XERdescriptor_t ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ESM__DUMMY__MESSAGE_messageType_xer_; +extern const TTCN_OERdescriptor_t ESM__DUMMY__MESSAGE_messageType_oer_; +extern const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_messageType_descr_; +extern const TTCN_Typedescriptor_t ESM__DUMMY__MESSAGE_descr_; +extern const XERdescriptor_t ESM__INFORMATION__REQUEST_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_epsBearerId_descr_; +extern const XERdescriptor_t ESM__INFORMATION__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ESM__INFORMATION__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ESM__INFORMATION__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t ESM__INFORMATION__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__REQUEST_descr_; +extern const XERdescriptor_t ESM__INFORMATION__RESPONSE_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_epsBearerId_descr_; +extern const XERdescriptor_t ESM__INFORMATION__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ESM__INFORMATION__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ESM__INFORMATION__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t ESM__INFORMATION__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t ESM__INFORMATION__RESPONSE_descr_; +extern const XERdescriptor_t ESM__STATUS_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ESM__STATUS_epsBearerId_descr_; +extern const XERdescriptor_t ESM__STATUS_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ESM__STATUS_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ESM__STATUS_protocolDiscriminator_descr_; +extern const XERdescriptor_t ESM__STATUS_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ESM__STATUS_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ESM__STATUS_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ESM__STATUS_messageType_xer_; +extern const TTCN_OERdescriptor_t ESM__STATUS_messageType_oer_; +extern const TTCN_Typedescriptor_t ESM__STATUS_messageType_descr_; +extern const TTCN_Typedescriptor_t ESM__STATUS_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_epsBearerId_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_messageType_descr_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__ACCEPT_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_epsBearerId_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REJECT_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_epsBearerId_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t MODIFY__EPS__BEARER__CONTEXT__REQUEST_descr_; +extern const XERdescriptor_t NOTIFICATION_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t NOTIFICATION_epsBearerId_descr_; +extern const XERdescriptor_t NOTIFICATION_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NOTIFICATION_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NOTIFICATION_protocolDiscriminator_descr_; +extern const XERdescriptor_t NOTIFICATION_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NOTIFICATION_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NOTIFICATION_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NOTIFICATION_messageType_xer_; +extern const TTCN_OERdescriptor_t NOTIFICATION_messageType_oer_; +extern const TTCN_Typedescriptor_t NOTIFICATION_messageType_descr_; +extern const XERdescriptor_t NotificationIndicator_iel_xer_; +extern const TTCN_OERdescriptor_t NotificationIndicator_iel_oer_; +extern const TTCN_Typedescriptor_t NotificationIndicator_iel_descr_; +extern const XERdescriptor_t NotificationIndicator_notificationInd_xer_; +extern const TTCN_OERdescriptor_t NotificationIndicator_notificationInd_oer_; +extern const TTCN_Typedescriptor_t NotificationIndicator_notificationInd_descr_; +extern const TTCN_Typedescriptor_t NotificationIndicator_descr_; +extern const XERdescriptor_t NotificationIndicator_iei_xer_; +extern const TTCN_OERdescriptor_t NotificationIndicator_iei_oer_; +extern const TTCN_Typedescriptor_t NotificationIndicator_iei_descr_; +extern const TTCN_Typedescriptor_t NOTIFICATION_descr_; +extern const XERdescriptor_t PDN__CONNECTIVITY__REJECT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_epsBearerId_descr_; +extern const XERdescriptor_t PDN__CONNECTIVITY__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t PDN__CONNECTIVITY__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REJECT_descr_; +extern const XERdescriptor_t PDN__CONNECTIVITY__REQUEST_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_epsBearerId_descr_; +extern const XERdescriptor_t PDN__CONNECTIVITY__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t PDN__CONNECTIVITY__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t PDN__CONNECTIVITY__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_messageType_descr_; +extern const XERdescriptor_t PDN__Type_spare_xer_; +extern const TTCN_OERdescriptor_t PDN__Type_spare_oer_; +extern const TTCN_Typedescriptor_t PDN__Type_spare_descr_; +extern const XERdescriptor_t PDN__Type_typeValue_xer_; +extern const TTCN_OERdescriptor_t PDN__Type_typeValue_oer_; +extern const TTCN_Typedescriptor_t PDN__Type_typeValue_descr_; +extern const TTCN_Typedescriptor_t PDN__Type_descr_; +extern const TTCN_Typedescriptor_t PDN__CONNECTIVITY__REQUEST_descr_; +extern const XERdescriptor_t ESM__InfoTransferFlag_spare_xer_; +extern const TTCN_OERdescriptor_t ESM__InfoTransferFlag_spare_oer_; +extern const TTCN_Typedescriptor_t ESM__InfoTransferFlag_spare_descr_; +extern const XERdescriptor_t ESM__InfoTransferFlag_eitValue_xer_; +extern const TTCN_OERdescriptor_t ESM__InfoTransferFlag_eitValue_oer_; +extern const TTCN_Typedescriptor_t ESM__InfoTransferFlag_eitValue_descr_; +extern const TTCN_Typedescriptor_t ESM__InfoTransferFlag_descr_; +extern const XERdescriptor_t ESM__InfoTransferFlag_iei_xer_; +extern const TTCN_Typedescriptor_t ESM__InfoTransferFlag_iei_descr_; +extern const XERdescriptor_t PDN__DISCONNECT__REJECT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_epsBearerId_descr_; +extern const XERdescriptor_t PDN__DISCONNECT__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t PDN__DISCONNECT__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t PDN__DISCONNECT__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t PDN__DISCONNECT__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REJECT_descr_; +extern const XERdescriptor_t PDN__DISCONNECT__REQUEST_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_epsBearerId_descr_; +extern const XERdescriptor_t PDN__DISCONNECT__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t PDN__DISCONNECT__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t PDN__DISCONNECT__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t PDN__DISCONNECT__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_messageType_descr_; +extern const XERdescriptor_t PDN__DISCONNECT__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_spareHalfOctet_descr_; +extern const TTCN_Typedescriptor_t PDN__DISCONNECT__REQUEST_descr_; +extern const XERdescriptor_t REMOTE__UE__REPORT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT_epsBearerId_descr_; +extern const XERdescriptor_t REMOTE__UE__REPORT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t REMOTE__UE__REPORT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT_protocolDiscriminator_descr_; +extern const XERdescriptor_t REMOTE__UE__REPORT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t REMOTE__UE__REPORT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t REMOTE__UE__REPORT_messageType_xer_; +extern const TTCN_OERdescriptor_t REMOTE__UE__REPORT_messageType_oer_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT_messageType_descr_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT_descr_; +extern const XERdescriptor_t RemoteUEContextList_iel_xer_; +extern const TTCN_OERdescriptor_t RemoteUEContextList_iel_oer_; +extern const TTCN_Typedescriptor_t RemoteUEContextList_iel_descr_; +extern const XERdescriptor_t RemoteUEContextList_numberOfContexts_xer_; +extern const TTCN_OERdescriptor_t RemoteUEContextList_numberOfContexts_oer_; +extern const TTCN_Typedescriptor_t RemoteUEContextList_numberOfContexts_descr_; +extern const TTCN_Typedescriptor_t ListOfRemoteUEContext_descr_; +extern const XERdescriptor_t RemoteUEContext_lengthOfContext_xer_; +extern const TTCN_OERdescriptor_t RemoteUEContext_lengthOfContext_oer_; +extern const TTCN_Typedescriptor_t RemoteUEContext_lengthOfContext_descr_; +extern const XERdescriptor_t RemoteUEContext_numberOfUserIds_xer_; +extern const TTCN_OERdescriptor_t RemoteUEContext_numberOfUserIds_oer_; +extern const TTCN_Typedescriptor_t RemoteUEContext_numberOfUserIds_descr_; +extern const TTCN_Typedescriptor_t UserIdentityList_descr_; +extern const XERdescriptor_t UserIdentity_lengthOfUserId_xer_; +extern const TTCN_OERdescriptor_t UserIdentity_lengthOfUserId_oer_; +extern const TTCN_Typedescriptor_t UserIdentity_lengthOfUserId_descr_; +extern const XERdescriptor_t UserIdentity_firstDigit_xer_; +extern const TTCN_OERdescriptor_t UserIdentity_firstDigit_oer_; +extern const TTCN_Typedescriptor_t UserIdentity_firstDigit_descr_; +extern const XERdescriptor_t UserIdentity_odd__even_xer_; +extern const TTCN_OERdescriptor_t UserIdentity_odd__even_oer_; +extern const TTCN_Typedescriptor_t UserIdentity_odd__even_descr_; +extern const XERdescriptor_t UserIdentity_typeOfUserId_xer_; +extern const TTCN_OERdescriptor_t UserIdentity_typeOfUserId_oer_; +extern const TTCN_Typedescriptor_t UserIdentity_typeOfUserId_descr_; +extern const TTCN_Typedescriptor_t UserIdentity_digits_descr_; +extern const XERdescriptor_t UserIdentity_digits_0_xer_; +extern const TTCN_OERdescriptor_t UserIdentity_digits_0_oer_; +extern const TTCN_Typedescriptor_t UserIdentity_digits_0_descr_; +extern const TTCN_Typedescriptor_t UserIdentity_descr_; +extern const XERdescriptor_t RemoteUEContext_spare_xer_; +extern const TTCN_OERdescriptor_t RemoteUEContext_spare_oer_; +extern const TTCN_Typedescriptor_t RemoteUEContext_spare_descr_; +extern const XERdescriptor_t RemoteUEContext_addressType_xer_; +extern const TTCN_OERdescriptor_t RemoteUEContext_addressType_oer_; +extern const TTCN_Typedescriptor_t RemoteUEContext_addressType_descr_; +extern const TTCN_Typedescriptor_t RemoteUEContext_descr_; +extern const XERdescriptor_t RemoteUEContext_addressInfo_xer_; +extern const TTCN_OERdescriptor_t RemoteUEContext_addressInfo_oer_; +extern const TTCN_Typedescriptor_t RemoteUEContext_addressInfo_descr_; +extern const TTCN_Typedescriptor_t RemoteUEContextList_descr_; +extern const XERdescriptor_t RemoteUEContextList_iei_xer_; +extern const TTCN_OERdescriptor_t RemoteUEContextList_iei_oer_; +extern const TTCN_Typedescriptor_t RemoteUEContextList_iei_descr_; +extern const XERdescriptor_t PKMF__Address_iel_xer_; +extern const TTCN_OERdescriptor_t PKMF__Address_iel_oer_; +extern const TTCN_Typedescriptor_t PKMF__Address_iel_descr_; +extern const XERdescriptor_t PKMF__Address_spare_xer_; +extern const TTCN_OERdescriptor_t PKMF__Address_spare_oer_; +extern const TTCN_Typedescriptor_t PKMF__Address_spare_descr_; +extern const XERdescriptor_t PKMF__Address_addressType_xer_; +extern const TTCN_OERdescriptor_t PKMF__Address_addressType_oer_; +extern const TTCN_Typedescriptor_t PKMF__Address_addressType_descr_; +extern const XERdescriptor_t PKMF__Address_addressInfo_xer_; +extern const TTCN_OERdescriptor_t PKMF__Address_addressInfo_oer_; +extern const TTCN_Typedescriptor_t PKMF__Address_addressInfo_descr_; +extern const TTCN_Typedescriptor_t PKMF__Address_descr_; +extern const XERdescriptor_t PKMF__Address_iei_xer_; +extern const TTCN_OERdescriptor_t PKMF__Address_iei_oer_; +extern const TTCN_Typedescriptor_t PKMF__Address_iei_descr_; +extern const XERdescriptor_t REMOTE__UE__REPORT__RESPONSE_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_epsBearerId_descr_; +extern const XERdescriptor_t REMOTE__UE__REPORT__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t REMOTE__UE__REPORT__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t REMOTE__UE__REPORT__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t REMOTE__UE__REPORT__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t REMOTE__UE__REPORT__RESPONSE_descr_; +extern const XERdescriptor_t ESM__DATA__TRANSPORT_epsBearerId_xer_; +extern const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_epsBearerId_descr_; +extern const XERdescriptor_t ESM__DATA__TRANSPORT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ESM__DATA__TRANSPORT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_protocolDiscriminator_descr_; +extern const XERdescriptor_t ESM__DATA__TRANSPORT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ESM__DATA__TRANSPORT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t ESM__DATA__TRANSPORT_messageType_xer_; +extern const TTCN_OERdescriptor_t ESM__DATA__TRANSPORT_messageType_oer_; +extern const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_messageType_descr_; +extern const XERdescriptor_t UserDataContainer_iel_xer_; +extern const TTCN_OERdescriptor_t UserDataContainer_iel_oer_; +extern const TTCN_Typedescriptor_t UserDataContainer_iel_descr_; +extern const XERdescriptor_t UserDataContainer_dataContainer_xer_; +extern const TTCN_OERdescriptor_t UserDataContainer_dataContainer_oer_; +extern const TTCN_Typedescriptor_t UserDataContainer_dataContainer_descr_; +extern const TTCN_Typedescriptor_t UserDataContainer_descr_; +extern const XERdescriptor_t UserDataContainer_iei_xer_; +extern const TTCN_OERdescriptor_t UserDataContainer_iei_oer_; +extern const TTCN_Typedescriptor_t UserDataContainer_iei_descr_; +extern const TTCN_Typedescriptor_t ESM__DATA__TRANSPORT_descr_; +extern const XERdescriptor_t NAS__SecurityParametersfromEUTRA_spare_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParametersfromEUTRA_spare_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParametersfromEUTRA_spare_descr_; +extern const XERdescriptor_t NAS__SecurityParametersfromEUTRA_dl__nasCountValue_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParametersfromEUTRA_dl__nasCountValue_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParametersfromEUTRA_dl__nasCountValue_descr_; +extern const TTCN_Typedescriptor_t NAS__SecurityParametersfromEUTRA_descr_; +extern const XERdescriptor_t NAS__SecurityParametersfromEUTRA_iei_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParametersfromEUTRA_iei_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParametersfromEUTRA_iei_descr_; +extern const XERdescriptor_t NAS__SecurityParameterstoEUTRA_noncevalue_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_noncevalue_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_noncevalue_descr_; +extern const XERdescriptor_t NAS__SecurityParameterstoEUTRA_spare1_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_spare1_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_spare1_descr_; +extern const XERdescriptor_t NAS__SecurityParameterstoEUTRA_cipherAlgorithmType_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_cipherAlgorithmType_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_cipherAlgorithmType_descr_; +extern const XERdescriptor_t NAS__SecurityParameterstoEUTRA_spare2_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_spare2_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_spare2_descr_; +extern const XERdescriptor_t NAS__SecurityParameterstoEUTRA_integrityAlgorithmType_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_integrityAlgorithmType_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_integrityAlgorithmType_descr_; +extern const XERdescriptor_t NAS__SecurityParameterstoEUTRA_spare3_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_spare3_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_spare3_descr_; +extern const XERdescriptor_t NAS__SecurityParameterstoEUTRA_tsc_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_tsc_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_tsc_descr_; +extern const XERdescriptor_t NAS__SecurityParameterstoEUTRA_naskeysetid_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_naskeysetid_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_naskeysetid_descr_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_descr_; +extern const XERdescriptor_t NAS__SecurityParameterstoEUTRA_iei_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityParameterstoEUTRA_iei_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityParameterstoEUTRA_iei_descr_; +extern const XERdescriptor_t EllipsoidPointWithAltitude__Type_xer_; +extern const TTCN_OERdescriptor_t EllipsoidPointWithAltitude__Type_oer_; +extern const TTCN_Typedescriptor_t EllipsoidPointWithAltitude__Type_descr_; +extern const XERdescriptor_t HorizontalVelocity__Type_xer_; +extern const TTCN_OERdescriptor_t HorizontalVelocity__Type_oer_; +extern const TTCN_Typedescriptor_t HorizontalVelocity__Type_descr_; +extern const XERdescriptor_t Gnss__TOD__msec__Type_xer_; +extern const TTCN_OERdescriptor_t Gnss__TOD__msec__Type_oer_; +extern const TTCN_Typedescriptor_t Gnss__TOD__msec__Type_descr_; +extern const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_skipIndicator_descr_; +extern const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_protocolDiscriminator_descr_; +extern const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_messageType_xer_; +extern const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_messageType_oer_; +extern const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_messageType_descr_; +extern const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_xer_; +extern const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_oer_; +extern const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_ellipsoidPointWithAltitude_descr_; +extern const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_xer_; +extern const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_oer_; +extern const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_horizontalVelocity_descr_; +extern const XERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_xer_; +extern const TTCN_OERdescriptor_t UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_oer_; +extern const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_gnss__TOD__msec_descr_; +extern const TTCN_Typedescriptor_t UPDATE__UE__LOCATION__INFORMATION_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/EPS_NAS_TypeDefs.o b/build/Ats_NG_NAS/EPS_NAS_TypeDefs.o new file mode 100644 index 0000000000000000000000000000000000000000..063b58235d7d1e5ab640de1fb3e7e11456b4fae5 Binary files /dev/null and b/build/Ats_NG_NAS/EPS_NAS_TypeDefs.o differ diff --git a/build/Ats_NG_NAS/EUTRA_NR_Parameters.cc b/build/Ats_NG_NAS/EUTRA_NR_Parameters.cc new file mode 100644 index 0000000000000000000000000000000000000000..09afb20cc44fda8d3d4e635d939127d1bd33ec86 --- /dev/null +++ b/build/Ats_NG_NAS/EUTRA_NR_Parameters.cc @@ -0,0 +1,816 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "EUTRA_NR_Parameters.hh" + +namespace EUTRA__NR__Parameters { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); +static boolean set_module_param(Module_Param& param); +static Module_Param* get_module_param(Module_Param_Name& param_name); +static void log_module_param(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0xb4, 0x60, 0xad, 0xa1, 0x89, 0x09, 0xc4, 0xe6, 0xe2, 0x6c, 0x3d, 0x09, 0x78, 0x4c, 0x4a, 0x92 }; + +/* Global variable definitions */ + +static INTEGER modulepar_pc__noOf__PDNsNewConnection; +const INTEGER& pc__noOf__PDNsNewConnection = modulepar_pc__noOf__PDNsNewConnection; +static INTEGER modulepar_pc__noOf__PDNsSameConnection; +const INTEGER& pc__noOf__PDNsSameConnection = modulepar_pc__noOf__PDNsSameConnection; +static Common4G5G::ENDC__BandCombination__Type modulepar_px__ENDC__BandCombination; +const Common4G5G::ENDC__BandCombination__Type& px__ENDC__BandCombination = modulepar_px__ENDC__BandCombination; +static Common4G5G::ENDC__CA__BandCombination__Type modulepar_px__ENDC__CA__BandCombination; +const Common4G5G::ENDC__CA__BandCombination__Type& px__ENDC__CA__BandCombination = modulepar_px__ENDC__CA__BandCombination; +static Common4G5G::ENDC__BandCombination__Type modulepar_px__ENDC__SecondaryBandCombination; +const Common4G5G::ENDC__BandCombination__Type& px__ENDC__SecondaryBandCombination = modulepar_px__ENDC__SecondaryBandCombination; +static Common4G5G::NEDC__BandCombination__Type modulepar_px__NEDC__BandCombination; +const Common4G5G::NEDC__BandCombination__Type& px__NEDC__BandCombination = modulepar_px__NEDC__BandCombination; +static Common4G5G::NEDC__BandCombination__Type modulepar_px__NEDC__SecondaryBandCombination; +const Common4G5G::NEDC__BandCombination__Type& px__NEDC__SecondaryBandCombination = modulepar_px__NEDC__SecondaryBandCombination; +static INTEGER modulepar_px__NR__PrimaryBand; +const INTEGER& px__NR__PrimaryBand = modulepar_px__NR__PrimaryBand; +static BOOLEAN modulepar_pc__5GCN; +const BOOLEAN& pc__5GCN = modulepar_pc__5GCN; +static BOOLEAN modulepar_pc__EN__DC; +const BOOLEAN& pc__EN__DC = modulepar_pc__EN__DC; +static BOOLEAN modulepar_pc__EPS__UPIP; +const BOOLEAN& pc__EPS__UPIP = modulepar_pc__EPS__UPIP; +static BOOLEAN modulepar_pc__IP__Ping; +const BOOLEAN& pc__IP__Ping = modulepar_pc__IP__Ping; +static BOOLEAN modulepar_pc__InterBand__CA__BetweenFR1__FR2; +const BOOLEAN& pc__InterBand__CA__BetweenFR1__FR2 = modulepar_pc__InterBand__CA__BetweenFR1__FR2; +static BOOLEAN modulepar_pc__InterBand__CA__WithinFR1; +const BOOLEAN& pc__InterBand__CA__WithinFR1 = modulepar_pc__InterBand__CA__WithinFR1; +static BOOLEAN modulepar_pc__InterBand__CA__WithinFR2; +const BOOLEAN& pc__InterBand__CA__WithinFR2 = modulepar_pc__InterBand__CA__WithinFR2; +static BOOLEAN modulepar_pc__InterBand__ENDC__IncludingFR1__FR2; +const BOOLEAN& pc__InterBand__ENDC__IncludingFR1__FR2 = modulepar_pc__InterBand__ENDC__IncludingFR1__FR2; +static BOOLEAN modulepar_pc__InterBand__ENDC__IncludingFR2; +const BOOLEAN& pc__InterBand__ENDC__IncludingFR2 = modulepar_pc__InterBand__ENDC__IncludingFR2; +static BOOLEAN modulepar_pc__InterBand__ENDC__WithinFR1; +const BOOLEAN& pc__InterBand__ENDC__WithinFR1 = modulepar_pc__InterBand__ENDC__WithinFR1; +static BOOLEAN modulepar_pc__InterBand__NRDC__BetweenFR1__FR2; +const BOOLEAN& pc__InterBand__NRDC__BetweenFR1__FR2 = modulepar_pc__InterBand__NRDC__BetweenFR1__FR2; +static BOOLEAN modulepar_pc__IntraBand__Contiguous__CA__WithinFR1; +const BOOLEAN& pc__IntraBand__Contiguous__CA__WithinFR1 = modulepar_pc__IntraBand__Contiguous__CA__WithinFR1; +static BOOLEAN modulepar_pc__IntraBand__Contiguous__CA__WithinFR2; +const BOOLEAN& pc__IntraBand__Contiguous__CA__WithinFR2 = modulepar_pc__IntraBand__Contiguous__CA__WithinFR2; +static BOOLEAN modulepar_pc__IntraBand__Contiguous__ENDC; +const BOOLEAN& pc__IntraBand__Contiguous__ENDC = modulepar_pc__IntraBand__Contiguous__ENDC; +static BOOLEAN modulepar_pc__IntraBand__NonContiguous__CA__WithinFR1; +const BOOLEAN& pc__IntraBand__NonContiguous__CA__WithinFR1 = modulepar_pc__IntraBand__NonContiguous__CA__WithinFR1; +static BOOLEAN modulepar_pc__IntraBand__NonContiguous__CA__WithinFR2; +const BOOLEAN& pc__IntraBand__NonContiguous__CA__WithinFR2 = modulepar_pc__IntraBand__NonContiguous__CA__WithinFR2; +static BOOLEAN modulepar_pc__IntraBand__NonContiguous__ENDC; +const BOOLEAN& pc__IntraBand__NonContiguous__ENDC = modulepar_pc__IntraBand__NonContiguous__ENDC; +static BOOLEAN modulepar_pc__TransferEmergencyPDUN1toS1noN26; +const BOOLEAN& pc__TransferEmergencyPDUN1toS1noN26 = modulepar_pc__TransferEmergencyPDUN1toS1noN26; +static BOOLEAN modulepar_pc__TransferEmergencyPDUS1toN1noN26; +const BOOLEAN& pc__TransferEmergencyPDUS1toN1noN26 = modulepar_pc__TransferEmergencyPDUS1toN1noN26; +static BOOLEAN modulepar_pc__configuredUL__GrantType1; +const BOOLEAN& pc__configuredUL__GrantType1 = modulepar_pc__configuredUL__GrantType1; +static BOOLEAN modulepar_pc__configuredUL__GrantType2; +const BOOLEAN& pc__configuredUL__GrantType2 = modulepar_pc__configuredUL__GrantType2; +static BOOLEAN modulepar_pc__data__centric; +const BOOLEAN& pc__data__centric = modulepar_pc__data__centric; +static BOOLEAN modulepar_pc__dynamicPowerSharingENDC; +const BOOLEAN& pc__dynamicPowerSharingENDC = modulepar_pc__dynamicPowerSharingENDC; +static BOOLEAN modulepar_pc__dynamicSwitchRA__Type0__1__PDSCH; +const BOOLEAN& pc__dynamicSwitchRA__Type0__1__PDSCH = modulepar_pc__dynamicSwitchRA__Type0__1__PDSCH; +static BOOLEAN modulepar_pc__dynamicSwitchRA__Type0__1__PUSCH; +const BOOLEAN& pc__dynamicSwitchRA__Type0__1__PUSCH = modulepar_pc__dynamicSwitchRA__Type0__1__PUSCH; +static BOOLEAN modulepar_pc__eutra__EPC__HO__ToNR__FDD__FR1__r15; +const BOOLEAN& pc__eutra__EPC__HO__ToNR__FDD__FR1__r15 = modulepar_pc__eutra__EPC__HO__ToNR__FDD__FR1__r15; +static BOOLEAN modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR1__r15; +const BOOLEAN& pc__eutra__EPC__HO__ToNR__TDD__FR1__r15 = modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR1__r15; +static BOOLEAN modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR2__r15; +const BOOLEAN& pc__eutra__EPC__HO__ToNR__TDD__FR2__r15 = modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR2__r15; +static BOOLEAN modulepar_pc__gp10__en__dc; +const BOOLEAN& pc__gp10__en__dc = modulepar_pc__gp10__en__dc; +static BOOLEAN modulepar_pc__gp11__en__dc; +const BOOLEAN& pc__gp11__en__dc = modulepar_pc__gp11__en__dc; +static BOOLEAN modulepar_pc__gp4__en__dc; +const BOOLEAN& pc__gp4__en__dc = modulepar_pc__gp4__en__dc; +static BOOLEAN modulepar_pc__gp5__en__dc; +const BOOLEAN& pc__gp5__en__dc = modulepar_pc__gp5__en__dc; +static BOOLEAN modulepar_pc__gp6__en__dc; +const BOOLEAN& pc__gp6__en__dc = modulepar_pc__gp6__en__dc; +static BOOLEAN modulepar_pc__gp7__en__dc; +const BOOLEAN& pc__gp7__en__dc = modulepar_pc__gp7__en__dc; +static BOOLEAN modulepar_pc__gp8__en__dc; +const BOOLEAN& pc__gp8__en__dc = modulepar_pc__gp8__en__dc; +static BOOLEAN modulepar_pc__gp9__en__dc; +const BOOLEAN& pc__gp9__en__dc = modulepar_pc__gp9__en__dc; +static BOOLEAN modulepar_pc__idleInactiveEUTRA__MeasReport; +const BOOLEAN& pc__idleInactiveEUTRA__MeasReport = modulepar_pc__idleInactiveEUTRA__MeasReport; +static BOOLEAN modulepar_pc__inactiveState; +const BOOLEAN& pc__inactiveState = modulepar_pc__inactiveState; +static BOOLEAN modulepar_pc__interRAT__NR__ToENDC; +const BOOLEAN& pc__interRAT__NR__ToENDC = modulepar_pc__interRAT__NR__ToENDC; +static BOOLEAN modulepar_pc__ra__Type0__PUSCH; +const BOOLEAN& pc__ra__Type0__PUSCH = modulepar_pc__ra__Type0__PUSCH; +static BOOLEAN modulepar_pc__srb3; +const BOOLEAN& pc__srb3 = modulepar_pc__srb3; +static BOOLEAN modulepar_pc__ss__SINR__Meas; +const BOOLEAN& pc__ss__SINR__Meas = modulepar_pc__ss__SINR__Meas; +TTCN_Module module_object("EUTRA_NR_Parameters", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, set_module_param, get_module_param, log_module_param, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("EUTRA_NR_Parameters"); + global_scope->add_variable(&pc__5GCN, "pc_5GCN", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EN__DC, "pc_EN_DC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EPS__UPIP, "pc_EPS_UPIP", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IP__Ping, "pc_IP_Ping", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__InterBand__CA__BetweenFR1__FR2, "pc_InterBand_CA_BetweenFR1_FR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__InterBand__CA__WithinFR1, "pc_InterBand_CA_WithinFR1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__InterBand__CA__WithinFR2, "pc_InterBand_CA_WithinFR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__InterBand__ENDC__IncludingFR1__FR2, "pc_InterBand_ENDC_IncludingFR1_FR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__InterBand__ENDC__IncludingFR2, "pc_InterBand_ENDC_IncludingFR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__InterBand__ENDC__WithinFR1, "pc_InterBand_ENDC_WithinFR1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__InterBand__NRDC__BetweenFR1__FR2, "pc_InterBand_NRDC_BetweenFR1_FR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IntraBand__Contiguous__CA__WithinFR1, "pc_IntraBand_Contiguous_CA_WithinFR1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IntraBand__Contiguous__CA__WithinFR2, "pc_IntraBand_Contiguous_CA_WithinFR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IntraBand__Contiguous__ENDC, "pc_IntraBand_Contiguous_ENDC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IntraBand__NonContiguous__CA__WithinFR1, "pc_IntraBand_NonContiguous_CA_WithinFR1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IntraBand__NonContiguous__CA__WithinFR2, "pc_IntraBand_NonContiguous_CA_WithinFR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IntraBand__NonContiguous__ENDC, "pc_IntraBand_NonContiguous_ENDC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__TransferEmergencyPDUN1toS1noN26, "pc_TransferEmergencyPDUN1toS1noN26", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__TransferEmergencyPDUS1toN1noN26, "pc_TransferEmergencyPDUS1toN1noN26", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__configuredUL__GrantType1, "pc_configuredUL_GrantType1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__configuredUL__GrantType2, "pc_configuredUL_GrantType2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__data__centric, "pc_data_centric", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__dynamicPowerSharingENDC, "pc_dynamicPowerSharingENDC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__dynamicSwitchRA__Type0__1__PDSCH, "pc_dynamicSwitchRA_Type0_1_PDSCH", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__dynamicSwitchRA__Type0__1__PUSCH, "pc_dynamicSwitchRA_Type0_1_PUSCH", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eutra__EPC__HO__ToNR__FDD__FR1__r15, "pc_eutra_EPC_HO_ToNR_FDD_FR1_r15", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eutra__EPC__HO__ToNR__TDD__FR1__r15, "pc_eutra_EPC_HO_ToNR_TDD_FR1_r15", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eutra__EPC__HO__ToNR__TDD__FR2__r15, "pc_eutra_EPC_HO_ToNR_TDD_FR2_r15", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__gp10__en__dc, "pc_gp10_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__gp11__en__dc, "pc_gp11_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__gp4__en__dc, "pc_gp4_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__gp5__en__dc, "pc_gp5_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__gp6__en__dc, "pc_gp6_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__gp7__en__dc, "pc_gp7_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__gp8__en__dc, "pc_gp8_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__gp9__en__dc, "pc_gp9_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__idleInactiveEUTRA__MeasReport, "pc_idleInactiveEUTRA_MeasReport", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__inactiveState, "pc_inactiveState", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__interRAT__NR__ToENDC, "pc_interRAT_NR_ToENDC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__noOf__PDNsNewConnection, "pc_noOf_PDNsNewConnection", "integer", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__noOf__PDNsSameConnection, "pc_noOf_PDNsSameConnection", "integer", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ra__Type0__PUSCH, "pc_ra_Type0_PUSCH", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__srb3, "pc_srb3", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ss__SINR__Meas, "pc_ss_SINR_Meas", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__ENDC__BandCombination, "px_ENDC_BandCombination", "ENDC_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&px__ENDC__CA__BandCombination, "px_ENDC_CA_BandCombination", "ENDC_CA_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&px__ENDC__SecondaryBandCombination, "px_ENDC_SecondaryBandCombination", "ENDC_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&px__NEDC__BandCombination, "px_NEDC_BandCombination", "NEDC_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&px__NEDC__SecondaryBandCombination, "px_NEDC_SecondaryBandCombination", "NEDC_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&px__NR__PrimaryBand, "px_NR_PrimaryBand", "integer", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); +} + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EUTRA_NR_Parameters"); +EUTRA__NR__Parameters::init_ttcn3_debugger(); +Common4G5G::module_object.pre_init_module(); +module_object.add_modulepar("pc_noOf_PDNsNewConnection"); +module_object.add_modulepar("pc_noOf_PDNsSameConnection"); +current_location.update_lineno(26); +ttcn3_debugger.breakpoint_entry(26); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 26 */ +modulepar_px__ENDC__BandCombination = Common4G5G::ENDC__BandCombination__Type::DC__25A__n41A; +module_object.add_modulepar("px_ENDC_BandCombination"); +current_location.update_lineno(28); +ttcn3_debugger.breakpoint_entry(28); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 28 */ +modulepar_px__ENDC__CA__BandCombination = Common4G5G::ENDC__CA__BandCombination__Type::DC__1A__n28A__n78A; +module_object.add_modulepar("px_ENDC_CA_BandCombination"); +current_location.update_lineno(31); +ttcn3_debugger.breakpoint_entry(31); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 31 */ +modulepar_px__ENDC__SecondaryBandCombination = Common4G5G::ENDC__BandCombination__Type::DC__1A__n77A; +module_object.add_modulepar("px_ENDC_SecondaryBandCombination"); +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 33 */ +modulepar_px__NEDC__BandCombination = Common4G5G::NEDC__BandCombination__Type::DC__n28A__3A; +module_object.add_modulepar("px_NEDC_BandCombination"); +current_location.update_lineno(35); +ttcn3_debugger.breakpoint_entry(35); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 35 */ +modulepar_px__NEDC__SecondaryBandCombination = Common4G5G::NEDC__BandCombination__Type::DC__n28A__39A; +module_object.add_modulepar("px_NEDC_SecondaryBandCombination"); +current_location.update_lineno(38); +ttcn3_debugger.breakpoint_entry(38); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 38 */ +modulepar_px__NR__PrimaryBand = 1; +module_object.add_modulepar("px_NR_PrimaryBand"); +current_location.update_lineno(44); +ttcn3_debugger.breakpoint_entry(44); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 44 */ +modulepar_pc__5GCN = FALSE; +module_object.add_modulepar("pc_5GCN"); +current_location.update_lineno(47); +ttcn3_debugger.breakpoint_entry(47); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 47 */ +modulepar_pc__EN__DC = FALSE; +module_object.add_modulepar("pc_EN_DC"); +current_location.update_lineno(50); +ttcn3_debugger.breakpoint_entry(50); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 50 */ +modulepar_pc__EPS__UPIP = FALSE; +module_object.add_modulepar("pc_EPS_UPIP"); +current_location.update_lineno(53); +ttcn3_debugger.breakpoint_entry(53); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 53 */ +modulepar_pc__IP__Ping = FALSE; +module_object.add_modulepar("pc_IP_Ping"); +current_location.update_lineno(56); +ttcn3_debugger.breakpoint_entry(56); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 56 */ +modulepar_pc__InterBand__CA__BetweenFR1__FR2 = FALSE; +module_object.add_modulepar("pc_InterBand_CA_BetweenFR1_FR2"); +current_location.update_lineno(59); +ttcn3_debugger.breakpoint_entry(59); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 59 */ +modulepar_pc__InterBand__CA__WithinFR1 = FALSE; +module_object.add_modulepar("pc_InterBand_CA_WithinFR1"); +current_location.update_lineno(62); +ttcn3_debugger.breakpoint_entry(62); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 62 */ +modulepar_pc__InterBand__CA__WithinFR2 = FALSE; +module_object.add_modulepar("pc_InterBand_CA_WithinFR2"); +current_location.update_lineno(65); +ttcn3_debugger.breakpoint_entry(65); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 65 */ +modulepar_pc__InterBand__ENDC__IncludingFR1__FR2 = FALSE; +module_object.add_modulepar("pc_InterBand_ENDC_IncludingFR1_FR2"); +current_location.update_lineno(68); +ttcn3_debugger.breakpoint_entry(68); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 68 */ +modulepar_pc__InterBand__ENDC__IncludingFR2 = FALSE; +module_object.add_modulepar("pc_InterBand_ENDC_IncludingFR2"); +current_location.update_lineno(71); +ttcn3_debugger.breakpoint_entry(71); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 71 */ +modulepar_pc__InterBand__ENDC__WithinFR1 = FALSE; +module_object.add_modulepar("pc_InterBand_ENDC_WithinFR1"); +current_location.update_lineno(74); +ttcn3_debugger.breakpoint_entry(74); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 74 */ +modulepar_pc__InterBand__NRDC__BetweenFR1__FR2 = FALSE; +module_object.add_modulepar("pc_InterBand_NRDC_BetweenFR1_FR2"); +current_location.update_lineno(77); +ttcn3_debugger.breakpoint_entry(77); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 77 */ +modulepar_pc__IntraBand__Contiguous__CA__WithinFR1 = FALSE; +module_object.add_modulepar("pc_IntraBand_Contiguous_CA_WithinFR1"); +current_location.update_lineno(80); +ttcn3_debugger.breakpoint_entry(80); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 80 */ +modulepar_pc__IntraBand__Contiguous__CA__WithinFR2 = FALSE; +module_object.add_modulepar("pc_IntraBand_Contiguous_CA_WithinFR2"); +current_location.update_lineno(83); +ttcn3_debugger.breakpoint_entry(83); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 83 */ +modulepar_pc__IntraBand__Contiguous__ENDC = FALSE; +module_object.add_modulepar("pc_IntraBand_Contiguous_ENDC"); +current_location.update_lineno(86); +ttcn3_debugger.breakpoint_entry(86); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 86 */ +modulepar_pc__IntraBand__NonContiguous__CA__WithinFR1 = FALSE; +module_object.add_modulepar("pc_IntraBand_NonContiguous_CA_WithinFR1"); +current_location.update_lineno(90); +ttcn3_debugger.breakpoint_entry(90); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 90 */ +modulepar_pc__IntraBand__NonContiguous__CA__WithinFR2 = FALSE; +module_object.add_modulepar("pc_IntraBand_NonContiguous_CA_WithinFR2"); +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 94 */ +modulepar_pc__IntraBand__NonContiguous__ENDC = FALSE; +module_object.add_modulepar("pc_IntraBand_NonContiguous_ENDC"); +current_location.update_lineno(97); +ttcn3_debugger.breakpoint_entry(97); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 97 */ +modulepar_pc__TransferEmergencyPDUN1toS1noN26 = FALSE; +module_object.add_modulepar("pc_TransferEmergencyPDUN1toS1noN26"); +current_location.update_lineno(100); +ttcn3_debugger.breakpoint_entry(100); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 100 */ +modulepar_pc__TransferEmergencyPDUS1toN1noN26 = FALSE; +module_object.add_modulepar("pc_TransferEmergencyPDUS1toN1noN26"); +current_location.update_lineno(103); +ttcn3_debugger.breakpoint_entry(103); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 103 */ +modulepar_pc__configuredUL__GrantType1 = FALSE; +module_object.add_modulepar("pc_configuredUL_GrantType1"); +current_location.update_lineno(106); +ttcn3_debugger.breakpoint_entry(106); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 106 */ +modulepar_pc__configuredUL__GrantType2 = FALSE; +module_object.add_modulepar("pc_configuredUL_GrantType2"); +current_location.update_lineno(109); +ttcn3_debugger.breakpoint_entry(109); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 109 */ +modulepar_pc__data__centric = FALSE; +module_object.add_modulepar("pc_data_centric"); +current_location.update_lineno(112); +ttcn3_debugger.breakpoint_entry(112); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 112 */ +modulepar_pc__dynamicPowerSharingENDC = FALSE; +module_object.add_modulepar("pc_dynamicPowerSharingENDC"); +current_location.update_lineno(115); +ttcn3_debugger.breakpoint_entry(115); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 115 */ +modulepar_pc__dynamicSwitchRA__Type0__1__PDSCH = FALSE; +module_object.add_modulepar("pc_dynamicSwitchRA_Type0_1_PDSCH"); +current_location.update_lineno(118); +ttcn3_debugger.breakpoint_entry(118); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 118 */ +modulepar_pc__dynamicSwitchRA__Type0__1__PUSCH = FALSE; +module_object.add_modulepar("pc_dynamicSwitchRA_Type0_1_PUSCH"); +current_location.update_lineno(121); +ttcn3_debugger.breakpoint_entry(121); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 121 */ +modulepar_pc__eutra__EPC__HO__ToNR__FDD__FR1__r15 = FALSE; +module_object.add_modulepar("pc_eutra_EPC_HO_ToNR_FDD_FR1_r15"); +current_location.update_lineno(124); +ttcn3_debugger.breakpoint_entry(124); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 124 */ +modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR1__r15 = FALSE; +module_object.add_modulepar("pc_eutra_EPC_HO_ToNR_TDD_FR1_r15"); +current_location.update_lineno(127); +ttcn3_debugger.breakpoint_entry(127); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 127 */ +modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR2__r15 = FALSE; +module_object.add_modulepar("pc_eutra_EPC_HO_ToNR_TDD_FR2_r15"); +current_location.update_lineno(130); +ttcn3_debugger.breakpoint_entry(130); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 130 */ +modulepar_pc__gp10__en__dc = FALSE; +module_object.add_modulepar("pc_gp10_en_dc"); +current_location.update_lineno(133); +ttcn3_debugger.breakpoint_entry(133); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 133 */ +modulepar_pc__gp11__en__dc = FALSE; +module_object.add_modulepar("pc_gp11_en_dc"); +current_location.update_lineno(136); +ttcn3_debugger.breakpoint_entry(136); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 136 */ +modulepar_pc__gp4__en__dc = FALSE; +module_object.add_modulepar("pc_gp4_en_dc"); +current_location.update_lineno(139); +ttcn3_debugger.breakpoint_entry(139); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 139 */ +modulepar_pc__gp5__en__dc = FALSE; +module_object.add_modulepar("pc_gp5_en_dc"); +current_location.update_lineno(142); +ttcn3_debugger.breakpoint_entry(142); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 142 */ +modulepar_pc__gp6__en__dc = FALSE; +module_object.add_modulepar("pc_gp6_en_dc"); +current_location.update_lineno(145); +ttcn3_debugger.breakpoint_entry(145); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 145 */ +modulepar_pc__gp7__en__dc = FALSE; +module_object.add_modulepar("pc_gp7_en_dc"); +current_location.update_lineno(148); +ttcn3_debugger.breakpoint_entry(148); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 148 */ +modulepar_pc__gp8__en__dc = FALSE; +module_object.add_modulepar("pc_gp8_en_dc"); +current_location.update_lineno(151); +ttcn3_debugger.breakpoint_entry(151); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 151 */ +modulepar_pc__gp9__en__dc = FALSE; +module_object.add_modulepar("pc_gp9_en_dc"); +current_location.update_lineno(154); +ttcn3_debugger.breakpoint_entry(154); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 154 */ +modulepar_pc__idleInactiveEUTRA__MeasReport = FALSE; +module_object.add_modulepar("pc_idleInactiveEUTRA_MeasReport"); +current_location.update_lineno(157); +ttcn3_debugger.breakpoint_entry(157); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 157 */ +modulepar_pc__inactiveState = FALSE; +module_object.add_modulepar("pc_inactiveState"); +current_location.update_lineno(160); +ttcn3_debugger.breakpoint_entry(160); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 160 */ +modulepar_pc__interRAT__NR__ToENDC = FALSE; +module_object.add_modulepar("pc_interRAT_NR_ToENDC"); +current_location.update_lineno(163); +ttcn3_debugger.breakpoint_entry(163); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 163 */ +modulepar_pc__ra__Type0__PUSCH = FALSE; +module_object.add_modulepar("pc_ra_Type0_PUSCH"); +current_location.update_lineno(166); +ttcn3_debugger.breakpoint_entry(166); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 166 */ +modulepar_pc__srb3 = FALSE; +module_object.add_modulepar("pc_srb3"); +current_location.update_lineno(169); +ttcn3_debugger.breakpoint_entry(169); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn, line 169 */ +modulepar_pc__ss__SINR__Meas = FALSE; +module_object.add_modulepar("pc_ss_SINR_Meas"); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/EUTRA_NR_Parameters.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EUTRA_NR_Parameters"); +Common4G5G::module_object.post_init_module(); +} + +static boolean set_module_param(Module_Param& param) +{ +const char* const par_name = param.get_id()->get_current_name(); +if (!strcmp(par_name, "pc_noOf_PDNsNewConnection")) { +modulepar_pc__noOf__PDNsNewConnection.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_noOf_PDNsSameConnection")) { +modulepar_pc__noOf__PDNsSameConnection.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_ENDC_BandCombination")) { +modulepar_px__ENDC__BandCombination.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_ENDC_CA_BandCombination")) { +modulepar_px__ENDC__CA__BandCombination.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_ENDC_SecondaryBandCombination")) { +modulepar_px__ENDC__SecondaryBandCombination.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_NEDC_BandCombination")) { +modulepar_px__NEDC__BandCombination.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_NEDC_SecondaryBandCombination")) { +modulepar_px__NEDC__SecondaryBandCombination.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_NR_PrimaryBand")) { +modulepar_px__NR__PrimaryBand.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_5GCN")) { +modulepar_pc__5GCN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EN_DC")) { +modulepar_pc__EN__DC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EPS_UPIP")) { +modulepar_pc__EPS__UPIP.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IP_Ping")) { +modulepar_pc__IP__Ping.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_InterBand_CA_BetweenFR1_FR2")) { +modulepar_pc__InterBand__CA__BetweenFR1__FR2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_InterBand_CA_WithinFR1")) { +modulepar_pc__InterBand__CA__WithinFR1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_InterBand_CA_WithinFR2")) { +modulepar_pc__InterBand__CA__WithinFR2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_InterBand_ENDC_IncludingFR1_FR2")) { +modulepar_pc__InterBand__ENDC__IncludingFR1__FR2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_InterBand_ENDC_IncludingFR2")) { +modulepar_pc__InterBand__ENDC__IncludingFR2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_InterBand_ENDC_WithinFR1")) { +modulepar_pc__InterBand__ENDC__WithinFR1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_InterBand_NRDC_BetweenFR1_FR2")) { +modulepar_pc__InterBand__NRDC__BetweenFR1__FR2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IntraBand_Contiguous_CA_WithinFR1")) { +modulepar_pc__IntraBand__Contiguous__CA__WithinFR1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IntraBand_Contiguous_CA_WithinFR2")) { +modulepar_pc__IntraBand__Contiguous__CA__WithinFR2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IntraBand_Contiguous_ENDC")) { +modulepar_pc__IntraBand__Contiguous__ENDC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IntraBand_NonContiguous_CA_WithinFR1")) { +modulepar_pc__IntraBand__NonContiguous__CA__WithinFR1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IntraBand_NonContiguous_CA_WithinFR2")) { +modulepar_pc__IntraBand__NonContiguous__CA__WithinFR2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IntraBand_NonContiguous_ENDC")) { +modulepar_pc__IntraBand__NonContiguous__ENDC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_TransferEmergencyPDUN1toS1noN26")) { +modulepar_pc__TransferEmergencyPDUN1toS1noN26.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_TransferEmergencyPDUS1toN1noN26")) { +modulepar_pc__TransferEmergencyPDUS1toN1noN26.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_configuredUL_GrantType1")) { +modulepar_pc__configuredUL__GrantType1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_configuredUL_GrantType2")) { +modulepar_pc__configuredUL__GrantType2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_data_centric")) { +modulepar_pc__data__centric.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_dynamicPowerSharingENDC")) { +modulepar_pc__dynamicPowerSharingENDC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_dynamicSwitchRA_Type0_1_PDSCH")) { +modulepar_pc__dynamicSwitchRA__Type0__1__PDSCH.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_dynamicSwitchRA_Type0_1_PUSCH")) { +modulepar_pc__dynamicSwitchRA__Type0__1__PUSCH.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eutra_EPC_HO_ToNR_FDD_FR1_r15")) { +modulepar_pc__eutra__EPC__HO__ToNR__FDD__FR1__r15.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eutra_EPC_HO_ToNR_TDD_FR1_r15")) { +modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR1__r15.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eutra_EPC_HO_ToNR_TDD_FR2_r15")) { +modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR2__r15.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_gp10_en_dc")) { +modulepar_pc__gp10__en__dc.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_gp11_en_dc")) { +modulepar_pc__gp11__en__dc.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_gp4_en_dc")) { +modulepar_pc__gp4__en__dc.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_gp5_en_dc")) { +modulepar_pc__gp5__en__dc.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_gp6_en_dc")) { +modulepar_pc__gp6__en__dc.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_gp7_en_dc")) { +modulepar_pc__gp7__en__dc.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_gp8_en_dc")) { +modulepar_pc__gp8__en__dc.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_gp9_en_dc")) { +modulepar_pc__gp9__en__dc.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_idleInactiveEUTRA_MeasReport")) { +modulepar_pc__idleInactiveEUTRA__MeasReport.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_inactiveState")) { +modulepar_pc__inactiveState.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_interRAT_NR_ToENDC")) { +modulepar_pc__interRAT__NR__ToENDC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ra_Type0_PUSCH")) { +modulepar_pc__ra__Type0__PUSCH.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_srb3")) { +modulepar_pc__srb3.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ss_SINR_Meas")) { +modulepar_pc__ss__SINR__Meas.set_param(param); +return TRUE; +} else return FALSE; +} + +static Module_Param* get_module_param(Module_Param_Name& param_name) +{ +const char* const par_name = param_name.get_current_name(); +if (!strcmp(par_name, "pc_noOf_PDNsNewConnection")) { +return modulepar_pc__noOf__PDNsNewConnection.get_param(param_name); +} else if (!strcmp(par_name, "pc_noOf_PDNsSameConnection")) { +return modulepar_pc__noOf__PDNsSameConnection.get_param(param_name); +} else if (!strcmp(par_name, "px_ENDC_BandCombination")) { +return modulepar_px__ENDC__BandCombination.get_param(param_name); +} else if (!strcmp(par_name, "px_ENDC_CA_BandCombination")) { +return modulepar_px__ENDC__CA__BandCombination.get_param(param_name); +} else if (!strcmp(par_name, "px_ENDC_SecondaryBandCombination")) { +return modulepar_px__ENDC__SecondaryBandCombination.get_param(param_name); +} else if (!strcmp(par_name, "px_NEDC_BandCombination")) { +return modulepar_px__NEDC__BandCombination.get_param(param_name); +} else if (!strcmp(par_name, "px_NEDC_SecondaryBandCombination")) { +return modulepar_px__NEDC__SecondaryBandCombination.get_param(param_name); +} else if (!strcmp(par_name, "px_NR_PrimaryBand")) { +return modulepar_px__NR__PrimaryBand.get_param(param_name); +} else if (!strcmp(par_name, "pc_5GCN")) { +return modulepar_pc__5GCN.get_param(param_name); +} else if (!strcmp(par_name, "pc_EN_DC")) { +return modulepar_pc__EN__DC.get_param(param_name); +} else if (!strcmp(par_name, "pc_EPS_UPIP")) { +return modulepar_pc__EPS__UPIP.get_param(param_name); +} else if (!strcmp(par_name, "pc_IP_Ping")) { +return modulepar_pc__IP__Ping.get_param(param_name); +} else if (!strcmp(par_name, "pc_InterBand_CA_BetweenFR1_FR2")) { +return modulepar_pc__InterBand__CA__BetweenFR1__FR2.get_param(param_name); +} else if (!strcmp(par_name, "pc_InterBand_CA_WithinFR1")) { +return modulepar_pc__InterBand__CA__WithinFR1.get_param(param_name); +} else if (!strcmp(par_name, "pc_InterBand_CA_WithinFR2")) { +return modulepar_pc__InterBand__CA__WithinFR2.get_param(param_name); +} else if (!strcmp(par_name, "pc_InterBand_ENDC_IncludingFR1_FR2")) { +return modulepar_pc__InterBand__ENDC__IncludingFR1__FR2.get_param(param_name); +} else if (!strcmp(par_name, "pc_InterBand_ENDC_IncludingFR2")) { +return modulepar_pc__InterBand__ENDC__IncludingFR2.get_param(param_name); +} else if (!strcmp(par_name, "pc_InterBand_ENDC_WithinFR1")) { +return modulepar_pc__InterBand__ENDC__WithinFR1.get_param(param_name); +} else if (!strcmp(par_name, "pc_InterBand_NRDC_BetweenFR1_FR2")) { +return modulepar_pc__InterBand__NRDC__BetweenFR1__FR2.get_param(param_name); +} else if (!strcmp(par_name, "pc_IntraBand_Contiguous_CA_WithinFR1")) { +return modulepar_pc__IntraBand__Contiguous__CA__WithinFR1.get_param(param_name); +} else if (!strcmp(par_name, "pc_IntraBand_Contiguous_CA_WithinFR2")) { +return modulepar_pc__IntraBand__Contiguous__CA__WithinFR2.get_param(param_name); +} else if (!strcmp(par_name, "pc_IntraBand_Contiguous_ENDC")) { +return modulepar_pc__IntraBand__Contiguous__ENDC.get_param(param_name); +} else if (!strcmp(par_name, "pc_IntraBand_NonContiguous_CA_WithinFR1")) { +return modulepar_pc__IntraBand__NonContiguous__CA__WithinFR1.get_param(param_name); +} else if (!strcmp(par_name, "pc_IntraBand_NonContiguous_CA_WithinFR2")) { +return modulepar_pc__IntraBand__NonContiguous__CA__WithinFR2.get_param(param_name); +} else if (!strcmp(par_name, "pc_IntraBand_NonContiguous_ENDC")) { +return modulepar_pc__IntraBand__NonContiguous__ENDC.get_param(param_name); +} else if (!strcmp(par_name, "pc_TransferEmergencyPDUN1toS1noN26")) { +return modulepar_pc__TransferEmergencyPDUN1toS1noN26.get_param(param_name); +} else if (!strcmp(par_name, "pc_TransferEmergencyPDUS1toN1noN26")) { +return modulepar_pc__TransferEmergencyPDUS1toN1noN26.get_param(param_name); +} else if (!strcmp(par_name, "pc_configuredUL_GrantType1")) { +return modulepar_pc__configuredUL__GrantType1.get_param(param_name); +} else if (!strcmp(par_name, "pc_configuredUL_GrantType2")) { +return modulepar_pc__configuredUL__GrantType2.get_param(param_name); +} else if (!strcmp(par_name, "pc_data_centric")) { +return modulepar_pc__data__centric.get_param(param_name); +} else if (!strcmp(par_name, "pc_dynamicPowerSharingENDC")) { +return modulepar_pc__dynamicPowerSharingENDC.get_param(param_name); +} else if (!strcmp(par_name, "pc_dynamicSwitchRA_Type0_1_PDSCH")) { +return modulepar_pc__dynamicSwitchRA__Type0__1__PDSCH.get_param(param_name); +} else if (!strcmp(par_name, "pc_dynamicSwitchRA_Type0_1_PUSCH")) { +return modulepar_pc__dynamicSwitchRA__Type0__1__PUSCH.get_param(param_name); +} else if (!strcmp(par_name, "pc_eutra_EPC_HO_ToNR_FDD_FR1_r15")) { +return modulepar_pc__eutra__EPC__HO__ToNR__FDD__FR1__r15.get_param(param_name); +} else if (!strcmp(par_name, "pc_eutra_EPC_HO_ToNR_TDD_FR1_r15")) { +return modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR1__r15.get_param(param_name); +} else if (!strcmp(par_name, "pc_eutra_EPC_HO_ToNR_TDD_FR2_r15")) { +return modulepar_pc__eutra__EPC__HO__ToNR__TDD__FR2__r15.get_param(param_name); +} else if (!strcmp(par_name, "pc_gp10_en_dc")) { +return modulepar_pc__gp10__en__dc.get_param(param_name); +} else if (!strcmp(par_name, "pc_gp11_en_dc")) { +return modulepar_pc__gp11__en__dc.get_param(param_name); +} else if (!strcmp(par_name, "pc_gp4_en_dc")) { +return modulepar_pc__gp4__en__dc.get_param(param_name); +} else if (!strcmp(par_name, "pc_gp5_en_dc")) { +return modulepar_pc__gp5__en__dc.get_param(param_name); +} else if (!strcmp(par_name, "pc_gp6_en_dc")) { +return modulepar_pc__gp6__en__dc.get_param(param_name); +} else if (!strcmp(par_name, "pc_gp7_en_dc")) { +return modulepar_pc__gp7__en__dc.get_param(param_name); +} else if (!strcmp(par_name, "pc_gp8_en_dc")) { +return modulepar_pc__gp8__en__dc.get_param(param_name); +} else if (!strcmp(par_name, "pc_gp9_en_dc")) { +return modulepar_pc__gp9__en__dc.get_param(param_name); +} else if (!strcmp(par_name, "pc_idleInactiveEUTRA_MeasReport")) { +return modulepar_pc__idleInactiveEUTRA__MeasReport.get_param(param_name); +} else if (!strcmp(par_name, "pc_inactiveState")) { +return modulepar_pc__inactiveState.get_param(param_name); +} else if (!strcmp(par_name, "pc_interRAT_NR_ToENDC")) { +return modulepar_pc__interRAT__NR__ToENDC.get_param(param_name); +} else if (!strcmp(par_name, "pc_ra_Type0_PUSCH")) { +return modulepar_pc__ra__Type0__PUSCH.get_param(param_name); +} else if (!strcmp(par_name, "pc_srb3")) { +return modulepar_pc__srb3.get_param(param_name); +} else if (!strcmp(par_name, "pc_ss_SINR_Meas")) { +return modulepar_pc__ss__SINR__Meas.get_param(param_name); +} else return NULL; +} + +static void log_module_param() +{ +TTCN_Logger::log_event_str("pc_noOf_PDNsNewConnection := "); +pc__noOf__PDNsNewConnection.log(); +TTCN_Logger::log_event_str(", pc_noOf_PDNsSameConnection := "); +pc__noOf__PDNsSameConnection.log(); +TTCN_Logger::log_event_str(", px_ENDC_BandCombination := "); +px__ENDC__BandCombination.log(); +TTCN_Logger::log_event_str(", px_ENDC_CA_BandCombination := "); +px__ENDC__CA__BandCombination.log(); +TTCN_Logger::log_event_str(", px_ENDC_SecondaryBandCombination := "); +px__ENDC__SecondaryBandCombination.log(); +TTCN_Logger::log_event_str(", px_NEDC_BandCombination := "); +px__NEDC__BandCombination.log(); +TTCN_Logger::log_event_str(", px_NEDC_SecondaryBandCombination := "); +px__NEDC__SecondaryBandCombination.log(); +TTCN_Logger::log_event_str(", px_NR_PrimaryBand := "); +px__NR__PrimaryBand.log(); +TTCN_Logger::log_event_str(", pc_5GCN := "); +pc__5GCN.log(); +TTCN_Logger::log_event_str(", pc_EN_DC := "); +pc__EN__DC.log(); +TTCN_Logger::log_event_str(", pc_EPS_UPIP := "); +pc__EPS__UPIP.log(); +TTCN_Logger::log_event_str(", pc_IP_Ping := "); +pc__IP__Ping.log(); +TTCN_Logger::log_event_str(", pc_InterBand_CA_BetweenFR1_FR2 := "); +pc__InterBand__CA__BetweenFR1__FR2.log(); +TTCN_Logger::log_event_str(", pc_InterBand_CA_WithinFR1 := "); +pc__InterBand__CA__WithinFR1.log(); +TTCN_Logger::log_event_str(", pc_InterBand_CA_WithinFR2 := "); +pc__InterBand__CA__WithinFR2.log(); +TTCN_Logger::log_event_str(", pc_InterBand_ENDC_IncludingFR1_FR2 := "); +pc__InterBand__ENDC__IncludingFR1__FR2.log(); +TTCN_Logger::log_event_str(", pc_InterBand_ENDC_IncludingFR2 := "); +pc__InterBand__ENDC__IncludingFR2.log(); +TTCN_Logger::log_event_str(", pc_InterBand_ENDC_WithinFR1 := "); +pc__InterBand__ENDC__WithinFR1.log(); +TTCN_Logger::log_event_str(", pc_InterBand_NRDC_BetweenFR1_FR2 := "); +pc__InterBand__NRDC__BetweenFR1__FR2.log(); +TTCN_Logger::log_event_str(", pc_IntraBand_Contiguous_CA_WithinFR1 := "); +pc__IntraBand__Contiguous__CA__WithinFR1.log(); +TTCN_Logger::log_event_str(", pc_IntraBand_Contiguous_CA_WithinFR2 := "); +pc__IntraBand__Contiguous__CA__WithinFR2.log(); +TTCN_Logger::log_event_str(", pc_IntraBand_Contiguous_ENDC := "); +pc__IntraBand__Contiguous__ENDC.log(); +TTCN_Logger::log_event_str(", pc_IntraBand_NonContiguous_CA_WithinFR1 := "); +pc__IntraBand__NonContiguous__CA__WithinFR1.log(); +TTCN_Logger::log_event_str(", pc_IntraBand_NonContiguous_CA_WithinFR2 := "); +pc__IntraBand__NonContiguous__CA__WithinFR2.log(); +TTCN_Logger::log_event_str(", pc_IntraBand_NonContiguous_ENDC := "); +pc__IntraBand__NonContiguous__ENDC.log(); +TTCN_Logger::log_event_str(", pc_TransferEmergencyPDUN1toS1noN26 := "); +pc__TransferEmergencyPDUN1toS1noN26.log(); +TTCN_Logger::log_event_str(", pc_TransferEmergencyPDUS1toN1noN26 := "); +pc__TransferEmergencyPDUS1toN1noN26.log(); +TTCN_Logger::log_event_str(", pc_configuredUL_GrantType1 := "); +pc__configuredUL__GrantType1.log(); +TTCN_Logger::log_event_str(", pc_configuredUL_GrantType2 := "); +pc__configuredUL__GrantType2.log(); +TTCN_Logger::log_event_str(", pc_data_centric := "); +pc__data__centric.log(); +TTCN_Logger::log_event_str(", pc_dynamicPowerSharingENDC := "); +pc__dynamicPowerSharingENDC.log(); +TTCN_Logger::log_event_str(", pc_dynamicSwitchRA_Type0_1_PDSCH := "); +pc__dynamicSwitchRA__Type0__1__PDSCH.log(); +TTCN_Logger::log_event_str(", pc_dynamicSwitchRA_Type0_1_PUSCH := "); +pc__dynamicSwitchRA__Type0__1__PUSCH.log(); +TTCN_Logger::log_event_str(", pc_eutra_EPC_HO_ToNR_FDD_FR1_r15 := "); +pc__eutra__EPC__HO__ToNR__FDD__FR1__r15.log(); +TTCN_Logger::log_event_str(", pc_eutra_EPC_HO_ToNR_TDD_FR1_r15 := "); +pc__eutra__EPC__HO__ToNR__TDD__FR1__r15.log(); +TTCN_Logger::log_event_str(", pc_eutra_EPC_HO_ToNR_TDD_FR2_r15 := "); +pc__eutra__EPC__HO__ToNR__TDD__FR2__r15.log(); +TTCN_Logger::log_event_str(", pc_gp10_en_dc := "); +pc__gp10__en__dc.log(); +TTCN_Logger::log_event_str(", pc_gp11_en_dc := "); +pc__gp11__en__dc.log(); +TTCN_Logger::log_event_str(", pc_gp4_en_dc := "); +pc__gp4__en__dc.log(); +TTCN_Logger::log_event_str(", pc_gp5_en_dc := "); +pc__gp5__en__dc.log(); +TTCN_Logger::log_event_str(", pc_gp6_en_dc := "); +pc__gp6__en__dc.log(); +TTCN_Logger::log_event_str(", pc_gp7_en_dc := "); +pc__gp7__en__dc.log(); +TTCN_Logger::log_event_str(", pc_gp8_en_dc := "); +pc__gp8__en__dc.log(); +TTCN_Logger::log_event_str(", pc_gp9_en_dc := "); +pc__gp9__en__dc.log(); +TTCN_Logger::log_event_str(", pc_idleInactiveEUTRA_MeasReport := "); +pc__idleInactiveEUTRA__MeasReport.log(); +TTCN_Logger::log_event_str(", pc_inactiveState := "); +pc__inactiveState.log(); +TTCN_Logger::log_event_str(", pc_interRAT_NR_ToENDC := "); +pc__interRAT__NR__ToENDC.log(); +TTCN_Logger::log_event_str(", pc_ra_Type0_PUSCH := "); +pc__ra__Type0__PUSCH.log(); +TTCN_Logger::log_event_str(", pc_srb3 := "); +pc__srb3.log(); +TTCN_Logger::log_event_str(", pc_ss_SINR_Meas := "); +pc__ss__SINR__Meas.log(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/EUTRA_NR_Parameters.hh b/build/Ats_NG_NAS/EUTRA_NR_Parameters.hh new file mode 100644 index 0000000000000000000000000000000000000000..a83c96268de0f0a1b9057af8895174c2e6df989a --- /dev/null +++ b/build/Ats_NG_NAS/EUTRA_NR_Parameters.hh @@ -0,0 +1,90 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef EUTRA__NR__Parameters_HH +#define EUTRA__NR__Parameters_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "Common4G5G.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace EUTRA__NR__Parameters { + +/* Global variable declarations */ + +extern const INTEGER& pc__noOf__PDNsNewConnection; +extern const INTEGER& pc__noOf__PDNsSameConnection; +extern const Common4G5G::ENDC__BandCombination__Type& px__ENDC__BandCombination; +extern const Common4G5G::ENDC__CA__BandCombination__Type& px__ENDC__CA__BandCombination; +extern const Common4G5G::ENDC__BandCombination__Type& px__ENDC__SecondaryBandCombination; +extern const Common4G5G::NEDC__BandCombination__Type& px__NEDC__BandCombination; +extern const Common4G5G::NEDC__BandCombination__Type& px__NEDC__SecondaryBandCombination; +extern const INTEGER& px__NR__PrimaryBand; +extern const BOOLEAN& pc__5GCN; +extern const BOOLEAN& pc__EN__DC; +extern const BOOLEAN& pc__EPS__UPIP; +extern const BOOLEAN& pc__IP__Ping; +extern const BOOLEAN& pc__InterBand__CA__BetweenFR1__FR2; +extern const BOOLEAN& pc__InterBand__CA__WithinFR1; +extern const BOOLEAN& pc__InterBand__CA__WithinFR2; +extern const BOOLEAN& pc__InterBand__ENDC__IncludingFR1__FR2; +extern const BOOLEAN& pc__InterBand__ENDC__IncludingFR2; +extern const BOOLEAN& pc__InterBand__ENDC__WithinFR1; +extern const BOOLEAN& pc__InterBand__NRDC__BetweenFR1__FR2; +extern const BOOLEAN& pc__IntraBand__Contiguous__CA__WithinFR1; +extern const BOOLEAN& pc__IntraBand__Contiguous__CA__WithinFR2; +extern const BOOLEAN& pc__IntraBand__Contiguous__ENDC; +extern const BOOLEAN& pc__IntraBand__NonContiguous__CA__WithinFR1; +extern const BOOLEAN& pc__IntraBand__NonContiguous__CA__WithinFR2; +extern const BOOLEAN& pc__IntraBand__NonContiguous__ENDC; +extern const BOOLEAN& pc__TransferEmergencyPDUN1toS1noN26; +extern const BOOLEAN& pc__TransferEmergencyPDUS1toN1noN26; +extern const BOOLEAN& pc__configuredUL__GrantType1; +extern const BOOLEAN& pc__configuredUL__GrantType2; +extern const BOOLEAN& pc__data__centric; +extern const BOOLEAN& pc__dynamicPowerSharingENDC; +extern const BOOLEAN& pc__dynamicSwitchRA__Type0__1__PDSCH; +extern const BOOLEAN& pc__dynamicSwitchRA__Type0__1__PUSCH; +extern const BOOLEAN& pc__eutra__EPC__HO__ToNR__FDD__FR1__r15; +extern const BOOLEAN& pc__eutra__EPC__HO__ToNR__TDD__FR1__r15; +extern const BOOLEAN& pc__eutra__EPC__HO__ToNR__TDD__FR2__r15; +extern const BOOLEAN& pc__gp10__en__dc; +extern const BOOLEAN& pc__gp11__en__dc; +extern const BOOLEAN& pc__gp4__en__dc; +extern const BOOLEAN& pc__gp5__en__dc; +extern const BOOLEAN& pc__gp6__en__dc; +extern const BOOLEAN& pc__gp7__en__dc; +extern const BOOLEAN& pc__gp8__en__dc; +extern const BOOLEAN& pc__gp9__en__dc; +extern const BOOLEAN& pc__idleInactiveEUTRA__MeasReport; +extern const BOOLEAN& pc__inactiveState; +extern const BOOLEAN& pc__interRAT__NR__ToENDC; +extern const BOOLEAN& pc__ra__Type0__PUSCH; +extern const BOOLEAN& pc__srb3; +extern const BOOLEAN& pc__ss__SINR__Meas; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/EUTRA_NR_Parameters.o b/build/Ats_NG_NAS/EUTRA_NR_Parameters.o new file mode 100644 index 0000000000000000000000000000000000000000..8e397f225cf9c929c547e64766067df5550ac6bb Binary files /dev/null and b/build/Ats_NG_NAS/EUTRA_NR_Parameters.o differ diff --git a/build/Ats_NG_NAS/EUTRA_NR_SecurityFunctions.cc b/build/Ats_NG_NAS/EUTRA_NR_SecurityFunctions.cc new file mode 100644 index 0000000000000000000000000000000000000000..8bf685a0a6d9fc7dc8c4b44f0e1cf7b042f76e54 --- /dev/null +++ b/build/Ats_NG_NAS/EUTRA_NR_SecurityFunctions.cc @@ -0,0 +1,826 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "EUTRA_NR_SecurityFunctions.hh" + +namespace EUTRA__NR__SecurityFunctions { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char os_9_octets[] = { 0 }, +os_5_octets[] = { 0, 1 }, +os_3_octets[] = { 0, 2 }, +os_1_octets[] = { 0, 4 }, +os_14_octets[] = { 0, 32 }, +os_8_octets[] = { 1 }, +os_4_octets[] = { 21 }, +os_0_octets[] = { 26 }, +os_2_octets[] = { 28 }, +os_6_octets[] = { 105 }, +os_7_octets[] = { 114 }, +os_10_octets[] = { 115 }, +os_11_octets[] = { 116 }, +os_12_octets[] = { 117 }, +os_13_octets[] = { 118 }; +static const OCTETSTRING os_9(1, os_9_octets), +os_5(2, os_5_octets), +os_3(2, os_3_octets), +os_1(2, os_1_octets), +os_14(2, os_14_octets), +os_8(1, os_8_octets), +os_4(1, os_4_octets), +os_0(1, os_0_octets), +os_2(1, os_2_octets), +os_6(1, os_6_octets), +os_7(1, os_7_octets), +os_10(1, os_10_octets), +os_11(1, os_11_octets), +os_12(1, os_12_octets), +os_13(1, os_13_octets); +static const unsigned char module_checksum[] = { 0xd8, 0xdb, 0x8d, 0x75, 0x70, 0x94, 0x75, 0xcc, 0xcd, 0x73, 0x41, 0xae, 0x31, 0xfb, 0x6e, 0x44 }; + +/* Global variable definitions */ + +const XERdescriptor_t SK__Counter__Type_xer_ = { {"SK_Counter_Type>\n", "SK_Counter_Type>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SK__Counter__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SK__Counter__Type_descr_ = { "@EUTRA_NR_SecurityFunctions.SK_Counter_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &SK__Counter__Type_xer_, &INTEGER_json_, &SK__Counter__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +INTEGER const_tsc__SK__Counter; +const INTEGER& tsc__SK__Counter = const_tsc__SK__Counter; +INTEGER const_tsc__NAS__Enc__Alg; +const INTEGER& tsc__NAS__Enc__Alg = const_tsc__NAS__Enc__Alg; +INTEGER const_tsc__NAS__Int__Alg; +const INTEGER& tsc__NAS__Int__Alg = const_tsc__NAS__Int__Alg; +INTEGER const_tsc__RRC__Enc__Alg; +const INTEGER& tsc__RRC__Enc__Alg = const_tsc__RRC__Enc__Alg; +INTEGER const_tsc__RRC__Int__Alg; +const INTEGER& tsc__RRC__Int__Alg = const_tsc__RRC__Int__Alg; +INTEGER const_tsc__UP__Enc__Alg; +const INTEGER& tsc__UP__Enc__Alg = const_tsc__UP__Enc__Alg; +INTEGER const_tsc__N__UP__Int__Alg; +const INTEGER& tsc__N__UP__Int__Alg = const_tsc__N__UP__Int__Alg; +const XERdescriptor_t NR__AlgTypeDistg__Type_xer_ = { {"NR_AlgTypeDistg_Type>\n", "NR_AlgTypeDistg_Type>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NR__AlgTypeDistg__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NR__AlgTypeDistg__Type_descr_ = { "@EUTRA_NR_SecurityFunctions.NR_AlgTypeDistg_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &NR__AlgTypeDistg__Type_xer_, &INTEGER_json_, &NR__AlgTypeDistg__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AlgTypeDistg__Type_xer_ = { {"AlgTypeDistg_Type>\n", "AlgTypeDistg_Type>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AlgTypeDistg__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AlgTypeDistg__Type_descr_ = { "@EUTRA_NR_SecurityFunctions.AlgTypeDistg_Type", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &AlgTypeDistg__Type_xer_, &INTEGER_json_, &AlgTypeDistg__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("EUTRA_NR_SecurityFunctions", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_EUTRA_NR_SecurityFunctions(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "AlgTypeDistg_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AlgTypeDistg_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_AlgTypeDistg_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_AlgTypeDistg_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SK_Counter_Type")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SK_Counter_Type template")) { + ((const INTEGER_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_EUTRA_NR_SecurityFunctions(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "AlgTypeDistg_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AlgTypeDistg_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_AlgTypeDistg_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_AlgTypeDistg_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SK_Counter_Type")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SK_Counter_Type template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("EUTRA_NR_SecurityFunctions"); + global_scope->add_variable(&tsc__NAS__Enc__Alg, "tsc_NAS_Enc_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NAS__Int__Alg, "tsc_NAS_Int_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__N__UP__Int__Alg, "tsc_N_UP_Int_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__RRC__Enc__Alg, "tsc_RRC_Enc_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__RRC__Int__Alg, "tsc_RRC_Int_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__SK__Counter, "tsc_SK_Counter", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__UP__Enc__Alg, "tsc_UP_Enc_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); +} + +/* Bodies of functions, altsteps and testcases */ + +BITSTRING f__EUTRA__Authentication__S1A(const INTEGER& p__KDF, const BITSTRING& p__KASME, const OCTETSTRING& p__DL__NAS__Count) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 57, TTCN_Location::LOCATION_FUNCTION, "f_EUTRA_Authentication_S1A"); +charstring_list param_names; +param_names[0] = "p_KDF"; +param_names[1] = "p_KASME"; +param_names[2] = "p_DL_NAS_Count"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_EUTRA_Authentication_S1A", "function", "EUTRA_NR_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__KDF, "p_KDF", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KASME, "p_KASME", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DL__NAS__Count, "p_DL_NAS_Count", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(61); +ttcn3_debugger.breakpoint_entry(61); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 61 */ +OCTETSTRING const__S1A__FC(os_0); +debug_scope.add_variable(&const__S1A__FC, "const_S1A_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(62); +ttcn3_debugger.breakpoint_entry(62); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 62 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(65); +ttcn3_debugger.breakpoint_entry(65); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 65 */ +v__S = os_0; +current_location.update_lineno(67); +ttcn3_debugger.breakpoint_entry(67); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 67 */ +{ +OCTETSTRING tmp_1; +tmp_1 = (v__S + p__DL__NAS__Count); +v__S = tmp_1; +} +current_location.update_lineno(69); +ttcn3_debugger.breakpoint_entry(69); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 69 */ +{ +OCTETSTRING tmp_2; +tmp_2 = (v__S + os_1); +v__S = tmp_2; +} +current_location.update_lineno(72); +ttcn3_debugger.breakpoint_entry(72); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 72 */ +{ +BITSTRING tmp_3; +return DEBUGGER_STORE_RETURN_VALUE(tmp_3, CommonDefs::fx__KeyDerivationFunction(p__KDF, p__KASME, v__S)); +} +} + +BITSTRING f__EUTRA__Authentication__S1C(const INTEGER& p__KDF, const BITSTRING& p__KENB, const INTEGER& p__SCG__Counter) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 86, TTCN_Location::LOCATION_FUNCTION, "f_EUTRA_Authentication_S1C"); +charstring_list param_names; +param_names[0] = "p_KDF"; +param_names[1] = "p_KENB"; +param_names[2] = "p_SCG_Counter"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_EUTRA_Authentication_S1C", "function", "EUTRA_NR_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__KDF, "p_KDF", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KENB, "p_KENB", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SCG__Counter, "p_SCG_Counter", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(90); +ttcn3_debugger.breakpoint_entry(90); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 90 */ +OCTETSTRING const__S1C__FC(os_2); +debug_scope.add_variable(&const__S1C__FC, "const_S1C_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(91); +ttcn3_debugger.breakpoint_entry(91); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 91 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(93); +ttcn3_debugger.breakpoint_entry(93); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 93 */ +v__S = os_2; +current_location.update_lineno(95); +ttcn3_debugger.breakpoint_entry(95); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 95 */ +{ +OCTETSTRING tmp_5; +tmp_5 = (v__S + int2oct(p__SCG__Counter, 2)); +v__S = tmp_5; +} +current_location.update_lineno(97); +ttcn3_debugger.breakpoint_entry(97); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 97 */ +{ +OCTETSTRING tmp_6; +tmp_6 = (v__S + os_3); +v__S = tmp_6; +} +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 99 */ +{ +BITSTRING tmp_7; +return DEBUGGER_STORE_RETURN_VALUE(tmp_7, CommonDefs::fx__KeyDerivationFunction(p__KDF, p__KENB, v__S)); +} +} + +BITSTRING f__EUTRA__NB__Authentication__S15(const INTEGER& p__AlgTypeDistg, const BITSTRING& p__Alg, const BITSTRING& p__Key, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 113, TTCN_Location::LOCATION_FUNCTION, "f_EUTRA_NB_Authentication_S15"); +charstring_list param_names; +param_names[0] = "p_AlgTypeDistg"; +param_names[1] = "p_Alg"; +param_names[2] = "p_Key"; +param_names[3] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_EUTRA_NB_Authentication_S15", "function", "EUTRA_NR_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__AlgTypeDistg, "p_AlgTypeDistg", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Alg, "p_Alg", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Key, "p_Key", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(118); +ttcn3_debugger.breakpoint_entry(118); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 118 */ +OCTETSTRING const__S15__FC(os_4); +debug_scope.add_variable(&const__S15__FC, "const_S15_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(119); +ttcn3_debugger.breakpoint_entry(119); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 119 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(121); +ttcn3_debugger.breakpoint_entry(121); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 121 */ +v__S = os_4; +current_location.update_lineno(123); +ttcn3_debugger.breakpoint_entry(123); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 123 */ +{ +OCTETSTRING tmp_9; +tmp_9 = (v__S + int2oct(p__AlgTypeDistg, 1)); +v__S = tmp_9; +} +current_location.update_lineno(125); +ttcn3_debugger.breakpoint_entry(125); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 125 */ +{ +OCTETSTRING tmp_10; +tmp_10 = (v__S + os_5); +v__S = tmp_10; +} +current_location.update_lineno(127); +ttcn3_debugger.breakpoint_entry(127); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 127 */ +{ +OCTETSTRING tmp_11; +tmp_11 = (v__S + bit2oct(p__Alg)); +v__S = tmp_11; +} +current_location.update_lineno(129); +ttcn3_debugger.breakpoint_entry(129); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 129 */ +{ +OCTETSTRING tmp_12; +tmp_12 = (v__S + os_5); +v__S = tmp_12; +} +current_location.update_lineno(132); +ttcn3_debugger.breakpoint_entry(132); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 132 */ +{ +BITSTRING tmp_13; +return DEBUGGER_STORE_RETURN_VALUE(tmp_13, substr(CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__Key, v__S), 128, 128)); +} +} + +BITSTRING f__NG__Authentication__A8(const INTEGER& p__AlgTypeDistg, const BITSTRING& p__Alg, const BITSTRING& p__Key, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 147, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A8"); +charstring_list param_names; +param_names[0] = "p_AlgTypeDistg"; +param_names[1] = "p_Alg"; +param_names[2] = "p_Key"; +param_names[3] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A8", "function", "EUTRA_NR_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__AlgTypeDistg, "p_AlgTypeDistg", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Alg, "p_Alg", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Key, "p_Key", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(152); +ttcn3_debugger.breakpoint_entry(152); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 152 */ +OCTETSTRING const__S69__FC(os_6); +debug_scope.add_variable(&const__S69__FC, "const_S69_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(153); +ttcn3_debugger.breakpoint_entry(153); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 153 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(155); +ttcn3_debugger.breakpoint_entry(155); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 155 */ +v__S = os_6; +current_location.update_lineno(157); +ttcn3_debugger.breakpoint_entry(157); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 157 */ +{ +OCTETSTRING tmp_15; +tmp_15 = (v__S + int2oct(p__AlgTypeDistg, 1)); +v__S = tmp_15; +} +current_location.update_lineno(159); +ttcn3_debugger.breakpoint_entry(159); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 159 */ +{ +OCTETSTRING tmp_16; +tmp_16 = (v__S + os_5); +v__S = tmp_16; +} +current_location.update_lineno(161); +ttcn3_debugger.breakpoint_entry(161); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 161 */ +{ +OCTETSTRING tmp_17; +tmp_17 = (v__S + bit2oct(p__Alg)); +v__S = tmp_17; +} +current_location.update_lineno(163); +ttcn3_debugger.breakpoint_entry(163); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 163 */ +{ +OCTETSTRING tmp_18; +tmp_18 = (v__S + os_5); +v__S = tmp_18; +} +current_location.update_lineno(166); +ttcn3_debugger.breakpoint_entry(166); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 166 */ +{ +BITSTRING tmp_19; +return DEBUGGER_STORE_RETURN_VALUE(tmp_19, substr(CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__Key, v__S), 128, 128)); +} +} + +BITSTRING f__NG__Authentication__A13(const BOOLEAN& p__Handover, const OCTETSTRING& p__Count, const BITSTRING& p__KAMF, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 181, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A13"); +charstring_list param_names; +param_names[0] = "p_Handover"; +param_names[1] = "p_Count"; +param_names[2] = "p_KAMF"; +param_names[3] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A13", "function", "EUTRA_NR_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Handover, "p_Handover", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Count, "p_Count", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KAMF, "p_KAMF", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(186); +ttcn3_debugger.breakpoint_entry(186); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 186 */ +OCTETSTRING const__S72__FC(os_7); +debug_scope.add_variable(&const__S72__FC, "const_S72_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(187); +ttcn3_debugger.breakpoint_entry(187); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 187 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(188); +ttcn3_debugger.breakpoint_entry(188); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 188 */ +OCTETSTRING v__P0; +debug_scope.add_variable(&v__P0, "v_P0", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(191); +ttcn3_debugger.breakpoint_entry(191); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 191 */ +v__S = os_7; +current_location.update_lineno(193); +ttcn3_debugger.breakpoint_entry(193); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 193 */ +if (p__Handover) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(194); +ttcn3_debugger.breakpoint_entry(194); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 194 */ +v__P0 = os_8; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(196); +ttcn3_debugger.breakpoint_entry(196); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 196 */ +v__P0 = os_9; +} +current_location.update_lineno(198); +ttcn3_debugger.breakpoint_entry(198); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 198 */ +{ +OCTETSTRING tmp_23; +tmp_23 = (v__S + v__P0); +v__S = tmp_23; +} +current_location.update_lineno(200); +ttcn3_debugger.breakpoint_entry(200); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 200 */ +{ +OCTETSTRING tmp_24; +tmp_24 = (v__S + os_5); +v__S = tmp_24; +} +current_location.update_lineno(202); +ttcn3_debugger.breakpoint_entry(202); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 202 */ +{ +OCTETSTRING tmp_25; +tmp_25 = (v__S + p__Count); +v__S = tmp_25; +} +current_location.update_lineno(204); +ttcn3_debugger.breakpoint_entry(204); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 204 */ +{ +OCTETSTRING tmp_26; +tmp_26 = (v__S + os_1); +v__S = tmp_26; +} +current_location.update_lineno(207); +ttcn3_debugger.breakpoint_entry(207); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 207 */ +{ +BITSTRING tmp_27; +return DEBUGGER_STORE_RETURN_VALUE(tmp_27, CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__KAMF, v__S)); +} +} + +BITSTRING f__NG__Authentication__A14(const BOOLEAN& p__Handover, const OCTETSTRING& p__Count, const BITSTRING& p__KAMF, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 221, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A14"); +charstring_list param_names; +param_names[0] = "p_Handover"; +param_names[1] = "p_Count"; +param_names[2] = "p_KAMF"; +param_names[3] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A14", "function", "EUTRA_NR_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Handover, "p_Handover", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Count, "p_Count", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KAMF, "p_KAMF", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(226); +ttcn3_debugger.breakpoint_entry(226); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 226 */ +OCTETSTRING const__S73__FC(os_10); +debug_scope.add_variable(&const__S73__FC, "const_S73_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(227); +ttcn3_debugger.breakpoint_entry(227); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 227 */ +OCTETSTRING const__S74__FC(os_11); +debug_scope.add_variable(&const__S74__FC, "const_S74_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(228); +ttcn3_debugger.breakpoint_entry(228); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 228 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(230); +ttcn3_debugger.breakpoint_entry(230); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 230 */ +if (p__Handover) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(232); +ttcn3_debugger.breakpoint_entry(232); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 232 */ +v__S = os_11; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(236); +ttcn3_debugger.breakpoint_entry(236); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 236 */ +v__S = os_10; +} +current_location.update_lineno(239); +ttcn3_debugger.breakpoint_entry(239); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 239 */ +{ +OCTETSTRING tmp_30; +tmp_30 = (v__S + p__Count); +v__S = tmp_30; +} +current_location.update_lineno(241); +ttcn3_debugger.breakpoint_entry(241); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 241 */ +{ +OCTETSTRING tmp_31; +tmp_31 = (v__S + os_1); +v__S = tmp_31; +} +current_location.update_lineno(244); +ttcn3_debugger.breakpoint_entry(244); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 244 */ +{ +BITSTRING tmp_32; +return DEBUGGER_STORE_RETURN_VALUE(tmp_32, CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__KAMF, v__S)); +} +} + +BITSTRING f__NG__Authentication__A15__IdleMode(const OCTETSTRING& p__Count, const BITSTRING& p__KASME, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 257, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A15_IdleMode"); +charstring_list param_names; +param_names[0] = "p_Count"; +param_names[1] = "p_KASME"; +param_names[2] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A15_IdleMode", "function", "EUTRA_NR_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Count, "p_Count", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KASME, "p_KASME", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(261); +ttcn3_debugger.breakpoint_entry(261); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 261 */ +OCTETSTRING const__S75__FC(os_12); +debug_scope.add_variable(&const__S75__FC, "const_S75_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(262); +ttcn3_debugger.breakpoint_entry(262); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 262 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(265); +ttcn3_debugger.breakpoint_entry(265); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 265 */ +v__S = os_12; +current_location.update_lineno(267); +ttcn3_debugger.breakpoint_entry(267); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 267 */ +{ +OCTETSTRING tmp_34; +tmp_34 = (v__S + p__Count); +v__S = tmp_34; +} +current_location.update_lineno(269); +ttcn3_debugger.breakpoint_entry(269); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 269 */ +{ +OCTETSTRING tmp_35; +tmp_35 = (v__S + os_1); +v__S = tmp_35; +} +current_location.update_lineno(272); +ttcn3_debugger.breakpoint_entry(272); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 272 */ +{ +BITSTRING tmp_36; +return DEBUGGER_STORE_RETURN_VALUE(tmp_36, CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__KASME, v__S)); +} +} + +BITSTRING f__NG__Authentication__A15__HO(const BITSTRING& p__NH, const BITSTRING& p__KASME, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 284, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A15_HO"); +charstring_list param_names; +param_names[0] = "p_NH"; +param_names[1] = "p_KASME"; +param_names[2] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A15_HO", "function", "EUTRA_NR_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__NH, "p_NH", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KASME, "p_KASME", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(288); +ttcn3_debugger.breakpoint_entry(288); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 288 */ +OCTETSTRING const__S76__FC(os_13); +debug_scope.add_variable(&const__S76__FC, "const_S76_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(289); +ttcn3_debugger.breakpoint_entry(289); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 289 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(292); +ttcn3_debugger.breakpoint_entry(292); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 292 */ +v__S = os_13; +current_location.update_lineno(294); +ttcn3_debugger.breakpoint_entry(294); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 294 */ +{ +OCTETSTRING tmp_38; +tmp_38 = (v__S + bit2oct(p__NH)); +v__S = tmp_38; +} +current_location.update_lineno(296); +ttcn3_debugger.breakpoint_entry(296); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 296 */ +{ +OCTETSTRING tmp_39; +tmp_39 = (v__S + os_14); +v__S = tmp_39; +} +current_location.update_lineno(299); +ttcn3_debugger.breakpoint_entry(299); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 299 */ +{ +BITSTRING tmp_40; +return DEBUGGER_STORE_RETURN_VALUE(tmp_40, CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__KASME, v__S)); +} +} + +BITSTRING f__EUTRA__NR__InitAS__KeyChaining__SgNB(const INTEGER& p__KDF, const BITSTRING& p__KENB, const INTEGER& p__SK__Counter) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 313, TTCN_Location::LOCATION_FUNCTION, "f_EUTRA_NR_InitAS_KeyChaining_SgNB"); +charstring_list param_names; +param_names[0] = "p_KDF"; +param_names[1] = "p_KENB"; +param_names[2] = "p_SK_Counter"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_EUTRA_NR_InitAS_KeyChaining_SgNB", "function", "EUTRA_NR_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__KDF, "p_KDF", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KENB, "p_KENB", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SK__Counter, "p_SK_Counter", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(318); +ttcn3_debugger.breakpoint_entry(318); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 318 */ +{ +BITSTRING tmp_41; +return DEBUGGER_STORE_RETURN_VALUE(tmp_41, f__EUTRA__Authentication__S1C(p__KDF, p__KENB, p__SK__Counter)); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EUTRA_NR_SecurityFunctions"); +EUTRA__NR__SecurityFunctions::init_ttcn3_debugger(); +CommonDefs::module_object.pre_init_module(); +current_location.update_lineno(18); +ttcn3_debugger.breakpoint_entry(18); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 18 */ +const_tsc__SK__Counter = 0; +current_location.update_lineno(19); +ttcn3_debugger.breakpoint_entry(19); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 19 */ +const_tsc__NAS__Enc__Alg = 1; +current_location.update_lineno(20); +ttcn3_debugger.breakpoint_entry(20); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 20 */ +const_tsc__NAS__Int__Alg = 2; +current_location.update_lineno(21); +ttcn3_debugger.breakpoint_entry(21); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 21 */ +const_tsc__RRC__Enc__Alg = 3; +current_location.update_lineno(22); +ttcn3_debugger.breakpoint_entry(22); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 22 */ +const_tsc__RRC__Int__Alg = 4; +current_location.update_lineno(23); +ttcn3_debugger.breakpoint_entry(23); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 23 */ +const_tsc__UP__Enc__Alg = 5; +current_location.update_lineno(24); +ttcn3_debugger.breakpoint_entry(24); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn, line 24 */ +const_tsc__N__UP__Int__Alg = 6; +module_object.add_function("f_EUTRA_Authentication_S1A", (genericfunc_t)&f__EUTRA__Authentication__S1A, NULL); +module_object.add_function("f_EUTRA_Authentication_S1C", (genericfunc_t)&f__EUTRA__Authentication__S1C, NULL); +module_object.add_function("f_EUTRA_NB_Authentication_S15", (genericfunc_t)&f__EUTRA__NB__Authentication__S15, NULL); +module_object.add_function("f_NG_Authentication_A8", (genericfunc_t)&f__NG__Authentication__A8, NULL); +module_object.add_function("f_NG_Authentication_A13", (genericfunc_t)&f__NG__Authentication__A13, NULL); +module_object.add_function("f_NG_Authentication_A14", (genericfunc_t)&f__NG__Authentication__A14, NULL); +module_object.add_function("f_NG_Authentication_A15_IdleMode", (genericfunc_t)&f__NG__Authentication__A15__IdleMode, NULL); +module_object.add_function("f_NG_Authentication_A15_HO", (genericfunc_t)&f__NG__Authentication__A15__HO, NULL); +module_object.add_function("f_EUTRA_NR_InitAS_KeyChaining_SgNB", (genericfunc_t)&f__EUTRA__NR__InitAS__KeyChaining__SgNB, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/Common4G5G/EUTRA_NR_SecurityFunctions.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "EUTRA_NR_SecurityFunctions"); +CommonDefs::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/EUTRA_NR_SecurityFunctions.hh b/build/Ats_NG_NAS/EUTRA_NR_SecurityFunctions.hh new file mode 100644 index 0000000000000000000000000000000000000000..fb25406fc40f62b010f0a7be0b3455a4ff04b6e3 --- /dev/null +++ b/build/Ats_NG_NAS/EUTRA_NR_SecurityFunctions.hh @@ -0,0 +1,91 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef EUTRA__NR__SecurityFunctions_HH +#define EUTRA__NR__SecurityFunctions_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "CommonDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace EUTRA__NR__SecurityFunctions { + +/* Type definitions */ + +typedef INTEGER SK__Counter__Type; +typedef INTEGER_template SK__Counter__Type_template; +typedef INTEGER NR__AlgTypeDistg__Type; +typedef INTEGER_template NR__AlgTypeDistg__Type_template; +typedef INTEGER AlgTypeDistg__Type; +typedef INTEGER_template AlgTypeDistg__Type_template; + +/* Class definitions */ + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_EUTRA_NR_SecurityFunctions(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_EUTRA_NR_SecurityFunctions(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern BITSTRING f__EUTRA__Authentication__S1A(const INTEGER& p__KDF, const BITSTRING& p__KASME, const OCTETSTRING& p__DL__NAS__Count); +extern BITSTRING f__EUTRA__Authentication__S1C(const INTEGER& p__KDF, const BITSTRING& p__KENB, const INTEGER& p__SCG__Counter); +extern BITSTRING f__EUTRA__NB__Authentication__S15(const INTEGER& p__AlgTypeDistg, const BITSTRING& p__Alg, const BITSTRING& p__Key, const INTEGER& p__KDF__Type); +extern BITSTRING f__NG__Authentication__A8(const INTEGER& p__AlgTypeDistg, const BITSTRING& p__Alg, const BITSTRING& p__Key, const INTEGER& p__KDF__Type); +extern BITSTRING f__NG__Authentication__A13(const BOOLEAN& p__Handover, const OCTETSTRING& p__Count, const BITSTRING& p__KAMF, const INTEGER& p__KDF__Type); +extern BITSTRING f__NG__Authentication__A14(const BOOLEAN& p__Handover, const OCTETSTRING& p__Count, const BITSTRING& p__KAMF, const INTEGER& p__KDF__Type); +extern BITSTRING f__NG__Authentication__A15__IdleMode(const OCTETSTRING& p__Count, const BITSTRING& p__KASME, const INTEGER& p__KDF__Type); +extern BITSTRING f__NG__Authentication__A15__HO(const BITSTRING& p__NH, const BITSTRING& p__KASME, const INTEGER& p__KDF__Type); +extern BITSTRING f__EUTRA__NR__InitAS__KeyChaining__SgNB(const INTEGER& p__KDF, const BITSTRING& p__KENB, const INTEGER& p__SK__Counter); + +/* Global variable declarations */ + +extern const XERdescriptor_t SK__Counter__Type_xer_; +extern const TTCN_OERdescriptor_t SK__Counter__Type_oer_; +extern const TTCN_Typedescriptor_t SK__Counter__Type_descr_; +extern const INTEGER& tsc__SK__Counter; +extern INTEGER const_tsc__SK__Counter; +extern const INTEGER& tsc__NAS__Enc__Alg; +extern INTEGER const_tsc__NAS__Enc__Alg; +extern const INTEGER& tsc__NAS__Int__Alg; +extern INTEGER const_tsc__NAS__Int__Alg; +extern const INTEGER& tsc__RRC__Enc__Alg; +extern INTEGER const_tsc__RRC__Enc__Alg; +extern const INTEGER& tsc__RRC__Int__Alg; +extern INTEGER const_tsc__RRC__Int__Alg; +extern const INTEGER& tsc__UP__Enc__Alg; +extern INTEGER const_tsc__UP__Enc__Alg; +extern const INTEGER& tsc__N__UP__Int__Alg; +extern INTEGER const_tsc__N__UP__Int__Alg; +extern const XERdescriptor_t NR__AlgTypeDistg__Type_xer_; +extern const TTCN_OERdescriptor_t NR__AlgTypeDistg__Type_oer_; +extern const TTCN_Typedescriptor_t NR__AlgTypeDistg__Type_descr_; +extern const XERdescriptor_t AlgTypeDistg__Type_xer_; +extern const TTCN_OERdescriptor_t AlgTypeDistg__Type_oer_; +extern const TTCN_Typedescriptor_t AlgTypeDistg__Type_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/EUTRA_NR_SecurityFunctions.o b/build/Ats_NG_NAS/EUTRA_NR_SecurityFunctions.o new file mode 100644 index 0000000000000000000000000000000000000000..1f4e8561b391e9a638aeb6de25b29d85f961c128 Binary files /dev/null and b/build/Ats_NG_NAS/EUTRA_NR_SecurityFunctions.o differ diff --git a/build/Ats_NG_NAS/LibCommon_AbstractData.cc b/build/Ats_NG_NAS/LibCommon_AbstractData.cc new file mode 100644 index 0000000000000000000000000000000000000000..70686e8ca165e3f3709d4bb738ab007b9c3e0dc7 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_AbstractData.cc @@ -0,0 +1,570 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "LibCommon_AbstractData.hh" + +namespace LibCommon__AbstractData { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const CHARSTRING cs_1(0, NULL), +cs_0(44, "f_peekTopStringStack: String stack is empty!"); +static const unsigned char module_checksum[] = { 0xe4, 0x88, 0x9f, 0x39, 0xa2, 0x88, 0xdc, 0x05, 0x51, 0x95, 0x2e, 0xe2, 0xef, 0x1b, 0xf9, 0x89 }; + +/* Global variable definitions */ + +const XERdescriptor_t StringStack_stackSize_xer_ = { {"stackSize>\n", "stackSize>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t StringStack_stackSize_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t StringStack_stackSize_descr_ = { "@LibCommon_AbstractData.StringStack.stackSize", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &StringStack_stackSize_xer_, &INTEGER_json_, &StringStack_stackSize_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for StringItems +const TTCN_Typedescriptor_t StringItems_descr_ = { "@LibCommon_AbstractData.StringItems", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CHARSTRING_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t StringItems_0_xer_ = { {"CHARSTRING>\n", "CHARSTRING>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t StringItems_0_descr_ = { "@LibCommon_AbstractData.StringItems.", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &StringItems_0_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for StringStack +const TTCN_Typedescriptor_t StringStack_descr_ = { "@LibCommon_AbstractData.StringStack", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +StringStack const_c__initStringStack; +const StringStack& c__initStringStack = const_c__initStringStack; +TTCN_Module module_object("LibCommon_AbstractData", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_LibCommon_AbstractData(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "StringItems")) { + ((const StringItems*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "StringItems template")) { + ((const StringItems_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "StringStack")) { + ((const StringStack*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "StringStack template")) { + ((const StringStack_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_LibCommon_AbstractData(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "StringItems")) { + ((StringItems*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "StringItems template")) { + ((StringItems_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "StringStack")) { + ((StringStack*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "StringStack template")) { + ((StringStack_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("LibCommon_AbstractData"); + global_scope->add_variable(&c__initStringStack, "c_initStringStack", "StringStack", "LibCommon_AbstractData", print_var_LibCommon_AbstractData); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int10Max, "c_int10Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int10Min, "c_int10Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int11Max, "c_int11Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int11Min, "c_int11Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int12Max, "c_int12Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int12Min, "c_int12Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int13Max, "c_int13Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int13Min, "c_int13Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int14Max, "c_int14Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int14Min, "c_int14Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int15Max, "c_int15Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int15Min, "c_int15Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int16Max, "c_int16Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int16Min, "c_int16Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int17Max, "c_int17Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int17Min, "c_int17Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int18Max, "c_int18Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int18Min, "c_int18Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int19Max, "c_int19Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int19Min, "c_int19Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int1Max, "c_int1Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int1Min, "c_int1Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int20Max, "c_int20Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int20Min, "c_int20Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int21Max, "c_int21Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int21Min, "c_int21Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int22Max, "c_int22Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int22Min, "c_int22Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int23Max, "c_int23Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int23Min, "c_int23Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int24Max, "c_int24Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int24Min, "c_int24Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int25Max, "c_int25Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int25Min, "c_int25Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int26Max, "c_int26Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int26Min, "c_int26Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int27Max, "c_int27Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int27Min, "c_int27Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int28Max, "c_int28Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int28Min, "c_int28Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int29Max, "c_int29Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int29Min, "c_int29Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int2Max, "c_int2Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int2Min, "c_int2Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int30Max, "c_int30Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int30Min, "c_int30Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int31Max, "c_int31Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int31Min, "c_int31Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int32Max, "c_int32Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int32Min, "c_int32Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int3Max, "c_int3Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int3Min, "c_int3Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int4Max, "c_int4Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int4Min, "c_int4Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int5Max, "c_int5Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int5Min, "c_int5Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int6Max, "c_int6Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int6Min, "c_int6Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int7Max, "c_int7Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int7Min, "c_int7Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int8Max, "c_int8Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int8Min, "c_int8Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int9Max, "c_int9Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int9Min, "c_int9Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt10Max, "c_uInt10Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt10Zero, "c_uInt10Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt11Max, "c_uInt11Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt12Max, "c_uInt12Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt12Zero, "c_uInt12Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt13Max, "c_uInt13Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt14Max, "c_uInt14Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt14Zero, "c_uInt14Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt15Max, "c_uInt15Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt16Max, "c_uInt16Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt16Zero, "c_uInt16Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt17Max, "c_uInt17Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt18Max, "c_uInt18Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt19Max, "c_uInt19Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt1Max, "c_uInt1Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt1Zero, "c_uInt1Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt20Max, "c_uInt20Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt21Max, "c_uInt21Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt22Max, "c_uInt22Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt23Max, "c_uInt23Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt24Max, "c_uInt24Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt24Zero, "c_uInt24Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt25Max, "c_uInt25Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt26Max, "c_uInt26Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt27Max, "c_uInt27Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt28Max, "c_uInt28Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt29Max, "c_uInt29Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt2Max, "c_uInt2Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt2Zero, "c_uInt2Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt30Max, "c_uInt30Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt31Max, "c_uInt31Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt32Max, "c_uInt32Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt32Zero, "c_uInt32Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt36Max, "c_uInt36Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt3Max, "c_uInt3Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt3Zero, "c_uInt3Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt48Max, "c_uInt48Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt48Zero, "c_uInt48Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt4Max, "c_uInt4Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt4Zero, "c_uInt4Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt52Max, "c_uInt52Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt5Max, "c_uInt5Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt5Zero, "c_uInt5Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt64Max, "c_uInt64Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt6Max, "c_uInt6Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt6Zero, "c_uInt6Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt7Max, "c_uInt7Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt7Zero, "c_uInt7Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt8Max, "c_uInt8Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt8Zero, "c_uInt8Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt9Max, "c_uInt9Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void StringStack::init_vec() { fld_vec[0]=&field_stackSize; fld_vec[1]=&field_stringItems; } + +StringStack::StringStack() : Record_Type() { init_vec(); } + +StringStack::StringStack(const StringStack& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_stackSize.is_bound() ) + field_stackSize = other_value.field_stackSize; +if (other_value.field_stringItems.is_bound() ) + field_stringItems = other_value.field_stringItems; +init_vec(); +} + +StringStack::StringStack(const INTEGER& par_stackSize, + const StringItems& par_stringItems) : field_stackSize(par_stackSize), + field_stringItems(par_stringItems) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* StringStack::get_descriptor() const { return &StringStack_descr_; } +const TTCN_Typedescriptor_t* StringStack::fld_descriptors[] = { &LibCommon__BasicTypesAndValues::UInt_descr_, &StringItems_descr_ }; +const TTCN_Typedescriptor_t* StringStack::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* StringStack::fld_names[] = { "stackSize", "stringItems" }; +const char* StringStack::fld_name(int p_index) const { return fld_names[p_index]; } + +void StringStack_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[1] = was_any ? new StringItems_template(ANY_VALUE) : new StringItems_template; +} +} + +StringStack_template::StringStack_template(StringStack_template* p_precondition, StringStack_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +StringStack_template::StringStack_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +StringStack_template::~StringStack_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean StringStack_template::match_dynamic(const Base_Type* match_value) const +{ +const StringStack* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +StringStack_template& StringStack_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +StringStack_template& StringStack_template::operator=(const StringStack& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +StringStack_template& StringStack_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +StringStack_template& StringStack_template::operator=(const StringStack_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +StringStack StringStack_template::valueof() const +{ +StringStack ret_val; +valueofv(&ret_val); +return ret_val; +} + +INTEGER_template& StringStack_template::stackSize() { return *(static_cast(get_at(0))); } +const INTEGER_template& StringStack_template::stackSize() const { return *(static_cast(get_at(0))); } +StringItems_template& StringStack_template::stringItems() { return *(static_cast(get_at(1))); } +const StringItems_template& StringStack_template::stringItems() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* StringStack_template::get_descriptor() const { return &StringStack_descr_; } +const char* StringStack_template::fld_name(int p_index) const { return StringStack::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +void f__initStringStack(StringStack& p__stack) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn", 52, TTCN_Location::LOCATION_FUNCTION, "f_initStringStack"); +charstring_list param_names; +param_names[0] = "p_stack"; +charstring_list param_types; +param_types[0] = "inout"; +TTCN3_Debug_Function debug_scope("f_initStringStack", "function", "LibCommon_AbstractData", param_names, param_types, NULL); +debug_scope.add_variable(&p__stack, "p_stack", "StringStack", NULL, print_var_LibCommon_AbstractData, set_var_LibCommon_AbstractData); +debug_scope.initial_snapshot(); +current_location.update_lineno(53); +ttcn3_debugger.breakpoint_entry(53); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 53 */ +p__stack = c__initStringStack; +} + +BOOLEAN f__isStringStackEmpty(StringStack& p__stack) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn", 61, TTCN_Location::LOCATION_FUNCTION, "f_isStringStackEmpty"); +charstring_list param_names; +param_names[0] = "p_stack"; +charstring_list param_types; +param_types[0] = "inout"; +TTCN3_Debug_Function debug_scope("f_isStringStackEmpty", "function", "LibCommon_AbstractData", param_names, param_types, NULL); +debug_scope.add_variable(&p__stack, "p_stack", "StringStack", NULL, print_var_LibCommon_AbstractData, set_var_LibCommon_AbstractData); +debug_scope.initial_snapshot(); +current_location.update_lineno(63); +ttcn3_debugger.breakpoint_entry(63); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 63 */ +if ((const_cast< const StringStack&>(p__stack).stackSize() == 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(63); +ttcn3_debugger.breakpoint_entry(63); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 63 */ +{ +BOOLEAN tmp_1; +return DEBUGGER_STORE_RETURN_VALUE(tmp_1, TRUE); +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(64); +ttcn3_debugger.breakpoint_entry(64); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 64 */ +{ +BOOLEAN tmp_2; +return DEBUGGER_STORE_RETURN_VALUE(tmp_2, FALSE); +} +} +} + +BOOLEAN f__isItemOnStringStack(StringStack& p__stack, const CHARSTRING& p__item) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn", 75, TTCN_Location::LOCATION_FUNCTION, "f_isItemOnStringStack"); +charstring_list param_names; +param_names[0] = "p_stack"; +param_names[1] = "p_item"; +charstring_list param_types; +param_types[0] = "inout"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_isItemOnStringStack", "function", "LibCommon_AbstractData", param_names, param_types, NULL); +debug_scope.add_variable(&p__stack, "p_stack", "StringStack", NULL, print_var_LibCommon_AbstractData, set_var_LibCommon_AbstractData); +debug_scope.add_variable(&p__item, "p_item", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(78); +ttcn3_debugger.breakpoint_entry(78); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 78 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 79 */ +i = 0; +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 79 */ +for ( ; ; ) { +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 79 */ +if (!(i < const_cast< const StringStack&>(p__stack).stackSize())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(80); +ttcn3_debugger.breakpoint_entry(80); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 80 */ +if ((const_cast< const StringStack&>(p__stack).stringItems()[i] == p__item)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(81); +ttcn3_debugger.breakpoint_entry(81); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 81 */ +{ +BOOLEAN tmp_4; +return DEBUGGER_STORE_RETURN_VALUE(tmp_4, TRUE); +} +} +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 79 */ +{ +INTEGER tmp_5; +++i; +} +} +current_location.update_lineno(84); +ttcn3_debugger.breakpoint_entry(84); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 84 */ +{ +BOOLEAN tmp_6; +return DEBUGGER_STORE_RETURN_VALUE(tmp_6, FALSE); +} +} + +BOOLEAN f__peekStringStackTop(StringStack& p__stack, CHARSTRING& p__item) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn", 95, TTCN_Location::LOCATION_FUNCTION, "f_peekStringStackTop"); +p__item.clean_up(); +charstring_list param_names; +param_names[0] = "p_stack"; +param_names[1] = "p_item"; +charstring_list param_types; +param_types[0] = "inout"; +param_types[1] = "out"; +TTCN3_Debug_Function debug_scope("f_peekStringStackTop", "function", "LibCommon_AbstractData", param_names, param_types, NULL); +debug_scope.add_variable(&p__stack, "p_stack", "StringStack", NULL, print_var_LibCommon_AbstractData, set_var_LibCommon_AbstractData); +debug_scope.add_variable(&p__item, "p_item", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(98); +ttcn3_debugger.breakpoint_entry(98); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 98 */ +if ((const_cast< const StringStack&>(p__stack).stackSize() == 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 99 */ +p__item = cs_0; +current_location.update_lineno(100); +ttcn3_debugger.breakpoint_entry(100); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 100 */ +{ +BOOLEAN tmp_8; +return DEBUGGER_STORE_RETURN_VALUE(tmp_8, FALSE); +} +} +current_location.update_lineno(102); +ttcn3_debugger.breakpoint_entry(102); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 102 */ +p__item = const_cast< const StringStack&>(p__stack).stringItems()[(const_cast< const StringStack&>(p__stack).stackSize() - 1)]; +current_location.update_lineno(103); +ttcn3_debugger.breakpoint_entry(103); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 103 */ +{ +BOOLEAN tmp_10; +return DEBUGGER_STORE_RETURN_VALUE(tmp_10, TRUE); +} +} + +void f__pushStringStack(StringStack& p__stack, const CHARSTRING& p__item) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn", 114, TTCN_Location::LOCATION_FUNCTION, "f_pushStringStack"); +charstring_list param_names; +param_names[0] = "p_stack"; +param_names[1] = "p_item"; +charstring_list param_types; +param_types[0] = "inout"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_pushStringStack", "function", "LibCommon_AbstractData", param_names, param_types, NULL); +debug_scope.add_variable(&p__stack, "p_stack", "StringStack", NULL, print_var_LibCommon_AbstractData, set_var_LibCommon_AbstractData); +debug_scope.add_variable(&p__item, "p_item", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(116); +ttcn3_debugger.breakpoint_entry(116); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 116 */ +p__stack.stringItems()[const_cast< const StringStack&>(p__stack).stackSize()] = p__item; +current_location.update_lineno(117); +ttcn3_debugger.breakpoint_entry(117); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 117 */ +{ +INTEGER tmp_12; +tmp_12 = (const_cast< const StringStack&>(p__stack).stackSize() + 1); +p__stack.stackSize() = tmp_12; +} +} + +void f__popStringStack(StringStack& p__stack) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn", 126, TTCN_Location::LOCATION_FUNCTION, "f_popStringStack"); +charstring_list param_names; +param_names[0] = "p_stack"; +charstring_list param_types; +param_types[0] = "inout"; +TTCN3_Debug_Function debug_scope("f_popStringStack", "function", "LibCommon_AbstractData", param_names, param_types, NULL); +debug_scope.add_variable(&p__stack, "p_stack", "StringStack", NULL, print_var_LibCommon_AbstractData, set_var_LibCommon_AbstractData); +debug_scope.initial_snapshot(); +current_location.update_lineno(127); +ttcn3_debugger.breakpoint_entry(127); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 127 */ +if ((const_cast< const StringStack&>(p__stack).stackSize() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(128); +ttcn3_debugger.breakpoint_entry(128); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 128 */ +{ +INTEGER tmp_13; +tmp_13 = (const_cast< const StringStack&>(p__stack).stackSize() - 1); +p__stack.stackSize() = tmp_13; +} +current_location.update_lineno(131); +ttcn3_debugger.breakpoint_entry(131); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 131 */ +p__stack.stringItems()[const_cast< const StringStack&>(p__stack).stackSize()] = cs_1; +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_AbstractData"); +LibCommon__AbstractData::init_ttcn3_debugger(); +LibCommon__BasicTypesAndValues::module_object.pre_init_module(); +current_location.update_lineno(42); +ttcn3_debugger.breakpoint_entry(42); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn, line 42 */ +const_c__initStringStack.stackSize() = 0; +const_c__initStringStack.stringItems() = NULL_VALUE; +module_object.add_function("f_initStringStack", (genericfunc_t)&f__initStringStack, NULL); +module_object.add_function("f_isStringStackEmpty", (genericfunc_t)&f__isStringStackEmpty, NULL); +module_object.add_function("f_isItemOnStringStack", (genericfunc_t)&f__isItemOnStringStack, NULL); +module_object.add_function("f_peekStringStackTop", (genericfunc_t)&f__peekStringStackTop, NULL); +module_object.add_function("f_pushStringStack", (genericfunc_t)&f__pushStringStack, NULL); +module_object.add_function("f_popStringStack", (genericfunc_t)&f__popStringStack, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_AbstractData.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_AbstractData"); +LibCommon__BasicTypesAndValues::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/LibCommon_AbstractData.hh b/build/Ats_NG_NAS/LibCommon_AbstractData.hh new file mode 100644 index 0000000000000000000000000000000000000000..f998976c9597e27c0a35ae2c4e107917371799a2 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_AbstractData.hh @@ -0,0 +1,152 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef LibCommon__AbstractData_HH +#define LibCommon__AbstractData_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "LibCommon_BasicTypesAndValues.hh" + +#if TTCN3_VERSION != 100000 +#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 LibCommon__AbstractData_HH +#endif + +namespace LibCommon__AbstractData { + +/* Forward declarations of classes */ + +typedef PreGenRecordOf::PREGEN__RECORD__OF__CHARSTRING StringItems; +typedef PreGenRecordOf::PREGEN__RECORD__OF__CHARSTRING_template StringItems_template; +class StringStack; +class StringStack_template; + +} /* end of namespace */ + +#ifndef LibCommon__AbstractData_HH +#define LibCommon__AbstractData_HH + +namespace LibCommon__AbstractData { + +/* Class definitions */ + +class StringStack : public Record_Type { + INTEGER field_stackSize; + StringItems field_stringItems; + Base_Type* fld_vec[2]; + void init_vec(); +public: + StringStack(); + StringStack(const StringStack& other_value); + StringStack(const INTEGER& par_stackSize, + const StringItems& par_stringItems); +inline StringStack& operator=(const StringStack& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const StringStack& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const StringStack& other_value) const + { return !is_equal(&other_value); } + + inline INTEGER& stackSize() + {return field_stackSize;} + inline const INTEGER& stackSize() const + {return field_stackSize;} + inline StringItems& stringItems() + {return field_stringItems;} + inline const StringItems& stringItems() const + {return field_stringItems;} +Base_Type* clone() const { return new StringStack(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class StringStack_template : public Record_Template { +void set_specific(); +public: +StringStack_template(): Record_Template() {} +StringStack_template(template_sel other_value): Record_Template(other_value) {} +StringStack_template(const StringStack& other_value): Record_Template() { copy_value(&other_value); } +StringStack_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +StringStack_template(StringStack_template* p_precondition, StringStack_template* p_implied_template); +StringStack_template(Dynamic_Match_Interface* p_dyn_match); +StringStack_template(const StringStack_template& other_value): Record_Template() { copy_template(other_value); } +~StringStack_template(); +boolean match_dynamic(const Base_Type* match_value) const; +StringStack_template& operator=(template_sel other_value); +StringStack_template& operator=(const StringStack& other_value); +StringStack_template& operator=(const OPTIONAL& other_value); +StringStack_template& operator=(const StringStack_template& other_value); +inline boolean match(const StringStack& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const StringStack& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +StringStack valueof() const; +inline StringStack_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +INTEGER_template& stackSize(); +const INTEGER_template& stackSize() const; +StringItems_template& stringItems(); +const StringItems_template& stringItems() const; +Record_Template* create() const { return new StringStack_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_LibCommon_AbstractData(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_LibCommon_AbstractData(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern void f__initStringStack(StringStack& p__stack); +extern BOOLEAN f__isStringStackEmpty(StringStack& p__stack); +extern BOOLEAN f__isItemOnStringStack(StringStack& p__stack, const CHARSTRING& p__item); +extern BOOLEAN f__peekStringStackTop(StringStack& p__stack, CHARSTRING& p__item); +extern void f__pushStringStack(StringStack& p__stack, const CHARSTRING& p__item); +extern void f__popStringStack(StringStack& p__stack); + +/* Global variable declarations */ + +extern const XERdescriptor_t StringStack_stackSize_xer_; +extern const TTCN_OERdescriptor_t StringStack_stackSize_oer_; +extern const TTCN_Typedescriptor_t StringStack_stackSize_descr_; +extern const TTCN_Typedescriptor_t StringItems_descr_; +extern const XERdescriptor_t StringItems_0_xer_; +extern const TTCN_Typedescriptor_t StringItems_0_descr_; +extern const TTCN_Typedescriptor_t StringStack_descr_; +extern const StringStack& c__initStringStack; +extern StringStack const_c__initStringStack; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/LibCommon_AbstractData.o b/build/Ats_NG_NAS/LibCommon_AbstractData.o new file mode 100644 index 0000000000000000000000000000000000000000..40921bceedcff137c9eb84652591ac5d259c0fe4 Binary files /dev/null and b/build/Ats_NG_NAS/LibCommon_AbstractData.o differ diff --git a/build/Ats_NG_NAS/LibCommon_BasicTypesAndValues.cc b/build/Ats_NG_NAS/LibCommon_BasicTypesAndValues.cc new file mode 100644 index 0000000000000000000000000000000000000000..d073552450cfc527d733d9f85600b757a7aee098 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_BasicTypesAndValues.cc @@ -0,0 +1,2140 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "LibCommon_BasicTypesAndValues.hh" + +namespace LibCommon__BasicTypesAndValues { + +/* Prototypes of static functions */ + +static void pre_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0xd8, 0xa4, 0x48, 0x6e, 0x9a, 0xc4, 0x25, 0xf9, 0x28, 0xd4, 0xcb, 0x0b, 0xb4, 0x2c, 0x89, 0x9c }; + +/* Global variable definitions */ + +INTEGER const_c__uInt1Max; +const INTEGER& c__uInt1Max = const_c__uInt1Max; +INTEGER const_c__uInt2Max; +const INTEGER& c__uInt2Max = const_c__uInt2Max; +INTEGER const_c__uInt3Max; +const INTEGER& c__uInt3Max = const_c__uInt3Max; +INTEGER const_c__uInt4Max; +const INTEGER& c__uInt4Max = const_c__uInt4Max; +INTEGER const_c__uInt5Max; +const INTEGER& c__uInt5Max = const_c__uInt5Max; +INTEGER const_c__uInt6Max; +const INTEGER& c__uInt6Max = const_c__uInt6Max; +INTEGER const_c__uInt7Max; +const INTEGER& c__uInt7Max = const_c__uInt7Max; +INTEGER const_c__uInt8Max; +const INTEGER& c__uInt8Max = const_c__uInt8Max; +INTEGER const_c__uInt9Max; +const INTEGER& c__uInt9Max = const_c__uInt9Max; +INTEGER const_c__uInt10Max; +const INTEGER& c__uInt10Max = const_c__uInt10Max; +INTEGER const_c__uInt11Max; +const INTEGER& c__uInt11Max = const_c__uInt11Max; +INTEGER const_c__uInt12Max; +const INTEGER& c__uInt12Max = const_c__uInt12Max; +INTEGER const_c__uInt13Max; +const INTEGER& c__uInt13Max = const_c__uInt13Max; +INTEGER const_c__uInt14Max; +const INTEGER& c__uInt14Max = const_c__uInt14Max; +INTEGER const_c__uInt15Max; +const INTEGER& c__uInt15Max = const_c__uInt15Max; +INTEGER const_c__uInt16Max; +const INTEGER& c__uInt16Max = const_c__uInt16Max; +INTEGER const_c__uInt17Max; +const INTEGER& c__uInt17Max = const_c__uInt17Max; +INTEGER const_c__uInt18Max; +const INTEGER& c__uInt18Max = const_c__uInt18Max; +INTEGER const_c__uInt19Max; +const INTEGER& c__uInt19Max = const_c__uInt19Max; +INTEGER const_c__uInt20Max; +const INTEGER& c__uInt20Max = const_c__uInt20Max; +INTEGER const_c__uInt21Max; +const INTEGER& c__uInt21Max = const_c__uInt21Max; +INTEGER const_c__uInt22Max; +const INTEGER& c__uInt22Max = const_c__uInt22Max; +INTEGER const_c__uInt23Max; +const INTEGER& c__uInt23Max = const_c__uInt23Max; +INTEGER const_c__uInt24Max; +const INTEGER& c__uInt24Max = const_c__uInt24Max; +INTEGER const_c__uInt25Max; +const INTEGER& c__uInt25Max = const_c__uInt25Max; +INTEGER const_c__uInt26Max; +const INTEGER& c__uInt26Max = const_c__uInt26Max; +INTEGER const_c__uInt27Max; +const INTEGER& c__uInt27Max = const_c__uInt27Max; +INTEGER const_c__uInt28Max; +const INTEGER& c__uInt28Max = const_c__uInt28Max; +INTEGER const_c__uInt29Max; +const INTEGER& c__uInt29Max = const_c__uInt29Max; +INTEGER const_c__uInt30Max; +const INTEGER& c__uInt30Max = const_c__uInt30Max; +INTEGER const_c__uInt31Max; +const INTEGER& c__uInt31Max = const_c__uInt31Max; +INTEGER const_c__uInt32Max; +const INTEGER& c__uInt32Max = const_c__uInt32Max; +INTEGER const_c__uInt36Max; +const INTEGER& c__uInt36Max = const_c__uInt36Max; +INTEGER const_c__uInt48Max; +const INTEGER& c__uInt48Max = const_c__uInt48Max; +INTEGER const_c__uInt52Max; +const INTEGER& c__uInt52Max = const_c__uInt52Max; +INTEGER const_c__uInt64Max; +const INTEGER& c__uInt64Max = const_c__uInt64Max; +const XERdescriptor_t UInt_xer_ = { {"UInt>\n", "UInt>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt_descr_ = { "@LibCommon_BasicTypesAndValues.UInt", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &UInt_xer_, &INTEGER_json_, &UInt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt1_raw_ = {1,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt1_xer_ = { {"UInt1>\n", "UInt1>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt1_descr_ = { "@LibCommon_BasicTypesAndValues.UInt1", &INTEGER_ber_, &UInt1_raw_, &INTEGER_text_, &UInt1_xer_, &INTEGER_json_, &UInt1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt2_raw_ = {2,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt2_xer_ = { {"UInt2>\n", "UInt2>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt2_descr_ = { "@LibCommon_BasicTypesAndValues.UInt2", &INTEGER_ber_, &UInt2_raw_, &INTEGER_text_, &UInt2_xer_, &INTEGER_json_, &UInt2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt3_raw_ = {3,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt3_xer_ = { {"UInt3>\n", "UInt3>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt3_descr_ = { "@LibCommon_BasicTypesAndValues.UInt3", &INTEGER_ber_, &UInt3_raw_, &INTEGER_text_, &UInt3_xer_, &INTEGER_json_, &UInt3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt4_raw_ = {4,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt4_xer_ = { {"UInt4>\n", "UInt4>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt4_descr_ = { "@LibCommon_BasicTypesAndValues.UInt4", &INTEGER_ber_, &UInt4_raw_, &INTEGER_text_, &UInt4_xer_, &INTEGER_json_, &UInt4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt5_raw_ = {5,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt5_xer_ = { {"UInt5>\n", "UInt5>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt5_descr_ = { "@LibCommon_BasicTypesAndValues.UInt5", &INTEGER_ber_, &UInt5_raw_, &INTEGER_text_, &UInt5_xer_, &INTEGER_json_, &UInt5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt6_raw_ = {6,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt6_xer_ = { {"UInt6>\n", "UInt6>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt6_descr_ = { "@LibCommon_BasicTypesAndValues.UInt6", &INTEGER_ber_, &UInt6_raw_, &INTEGER_text_, &UInt6_xer_, &INTEGER_json_, &UInt6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt7_raw_ = {7,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt7_xer_ = { {"UInt7>\n", "UInt7>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt7_descr_ = { "@LibCommon_BasicTypesAndValues.UInt7", &INTEGER_ber_, &UInt7_raw_, &INTEGER_text_, &UInt7_xer_, &INTEGER_json_, &UInt7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt8_raw_ = {8,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt8_xer_ = { {"UInt8>\n", "UInt8>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt8_descr_ = { "@LibCommon_BasicTypesAndValues.UInt8", &INTEGER_ber_, &UInt8_raw_, &INTEGER_text_, &UInt8_xer_, &INTEGER_json_, &UInt8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt9_raw_ = {9,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt9_xer_ = { {"UInt9>\n", "UInt9>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt9_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt9_descr_ = { "@LibCommon_BasicTypesAndValues.UInt9", &INTEGER_ber_, &UInt9_raw_, &INTEGER_text_, &UInt9_xer_, &INTEGER_json_, &UInt9_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt10_raw_ = {10,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt10_xer_ = { {"UInt10>\n", "UInt10>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt10_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt10_descr_ = { "@LibCommon_BasicTypesAndValues.UInt10", &INTEGER_ber_, &UInt10_raw_, &INTEGER_text_, &UInt10_xer_, &INTEGER_json_, &UInt10_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt11_raw_ = {11,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt11_xer_ = { {"UInt11>\n", "UInt11>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt11_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt11_descr_ = { "@LibCommon_BasicTypesAndValues.UInt11", &INTEGER_ber_, &UInt11_raw_, &INTEGER_text_, &UInt11_xer_, &INTEGER_json_, &UInt11_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt12_raw_ = {12,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt12_xer_ = { {"UInt12>\n", "UInt12>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt12_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt12_descr_ = { "@LibCommon_BasicTypesAndValues.UInt12", &INTEGER_ber_, &UInt12_raw_, &INTEGER_text_, &UInt12_xer_, &INTEGER_json_, &UInt12_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt13_raw_ = {13,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt13_xer_ = { {"UInt13>\n", "UInt13>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt13_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt13_descr_ = { "@LibCommon_BasicTypesAndValues.UInt13", &INTEGER_ber_, &UInt13_raw_, &INTEGER_text_, &UInt13_xer_, &INTEGER_json_, &UInt13_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt14_raw_ = {14,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt14_xer_ = { {"UInt14>\n", "UInt14>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt14_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt14_descr_ = { "@LibCommon_BasicTypesAndValues.UInt14", &INTEGER_ber_, &UInt14_raw_, &INTEGER_text_, &UInt14_xer_, &INTEGER_json_, &UInt14_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt15_raw_ = {15,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt15_xer_ = { {"UInt15>\n", "UInt15>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt15_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt15_descr_ = { "@LibCommon_BasicTypesAndValues.UInt15", &INTEGER_ber_, &UInt15_raw_, &INTEGER_text_, &UInt15_xer_, &INTEGER_json_, &UInt15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt16_raw_ = {16,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt16_xer_ = { {"UInt16>\n", "UInt16>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt16_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt16_descr_ = { "@LibCommon_BasicTypesAndValues.UInt16", &INTEGER_ber_, &UInt16_raw_, &INTEGER_text_, &UInt16_xer_, &INTEGER_json_, &UInt16_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt17_raw_ = {17,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt17_xer_ = { {"UInt17>\n", "UInt17>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt17_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt17_descr_ = { "@LibCommon_BasicTypesAndValues.UInt17", &INTEGER_ber_, &UInt17_raw_, &INTEGER_text_, &UInt17_xer_, &INTEGER_json_, &UInt17_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt18_raw_ = {18,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt18_xer_ = { {"UInt18>\n", "UInt18>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt18_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt18_descr_ = { "@LibCommon_BasicTypesAndValues.UInt18", &INTEGER_ber_, &UInt18_raw_, &INTEGER_text_, &UInt18_xer_, &INTEGER_json_, &UInt18_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt19_raw_ = {19,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt19_xer_ = { {"UInt19>\n", "UInt19>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt19_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt19_descr_ = { "@LibCommon_BasicTypesAndValues.UInt19", &INTEGER_ber_, &UInt19_raw_, &INTEGER_text_, &UInt19_xer_, &INTEGER_json_, &UInt19_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt20_raw_ = {20,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt20_xer_ = { {"UInt20>\n", "UInt20>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt20_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt20_descr_ = { "@LibCommon_BasicTypesAndValues.UInt20", &INTEGER_ber_, &UInt20_raw_, &INTEGER_text_, &UInt20_xer_, &INTEGER_json_, &UInt20_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt21_raw_ = {21,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt21_xer_ = { {"UInt21>\n", "UInt21>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt21_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt21_descr_ = { "@LibCommon_BasicTypesAndValues.UInt21", &INTEGER_ber_, &UInt21_raw_, &INTEGER_text_, &UInt21_xer_, &INTEGER_json_, &UInt21_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt22_raw_ = {22,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt22_xer_ = { {"UInt22>\n", "UInt22>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt22_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt22_descr_ = { "@LibCommon_BasicTypesAndValues.UInt22", &INTEGER_ber_, &UInt22_raw_, &INTEGER_text_, &UInt22_xer_, &INTEGER_json_, &UInt22_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt23_raw_ = {23,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt23_xer_ = { {"UInt23>\n", "UInt23>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt23_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt23_descr_ = { "@LibCommon_BasicTypesAndValues.UInt23", &INTEGER_ber_, &UInt23_raw_, &INTEGER_text_, &UInt23_xer_, &INTEGER_json_, &UInt23_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt24_raw_ = {24,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt24_xer_ = { {"UInt24>\n", "UInt24>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt24_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt24_descr_ = { "@LibCommon_BasicTypesAndValues.UInt24", &INTEGER_ber_, &UInt24_raw_, &INTEGER_text_, &UInt24_xer_, &INTEGER_json_, &UInt24_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt25_raw_ = {25,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt25_xer_ = { {"UInt25>\n", "UInt25>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt25_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt25_descr_ = { "@LibCommon_BasicTypesAndValues.UInt25", &INTEGER_ber_, &UInt25_raw_, &INTEGER_text_, &UInt25_xer_, &INTEGER_json_, &UInt25_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt26_raw_ = {26,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt26_xer_ = { {"UInt26>\n", "UInt26>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt26_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt26_descr_ = { "@LibCommon_BasicTypesAndValues.UInt26", &INTEGER_ber_, &UInt26_raw_, &INTEGER_text_, &UInt26_xer_, &INTEGER_json_, &UInt26_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt27_raw_ = {27,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt27_xer_ = { {"UInt27>\n", "UInt27>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt27_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt27_descr_ = { "@LibCommon_BasicTypesAndValues.UInt27", &INTEGER_ber_, &UInt27_raw_, &INTEGER_text_, &UInt27_xer_, &INTEGER_json_, &UInt27_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt28_raw_ = {28,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt28_xer_ = { {"UInt28>\n", "UInt28>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt28_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt28_descr_ = { "@LibCommon_BasicTypesAndValues.UInt28", &INTEGER_ber_, &UInt28_raw_, &INTEGER_text_, &UInt28_xer_, &INTEGER_json_, &UInt28_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt29_raw_ = {29,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt29_xer_ = { {"UInt29>\n", "UInt29>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt29_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt29_descr_ = { "@LibCommon_BasicTypesAndValues.UInt29", &INTEGER_ber_, &UInt29_raw_, &INTEGER_text_, &UInt29_xer_, &INTEGER_json_, &UInt29_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt30_raw_ = {30,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt30_xer_ = { {"UInt30>\n", "UInt30>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt30_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt30_descr_ = { "@LibCommon_BasicTypesAndValues.UInt30", &INTEGER_ber_, &UInt30_raw_, &INTEGER_text_, &UInt30_xer_, &INTEGER_json_, &UInt30_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt31_raw_ = {31,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt31_xer_ = { {"UInt31>\n", "UInt31>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt31_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt31_descr_ = { "@LibCommon_BasicTypesAndValues.UInt31", &INTEGER_ber_, &UInt31_raw_, &INTEGER_text_, &UInt31_xer_, &INTEGER_json_, &UInt31_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt32_raw_ = {32,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt32_xer_ = { {"UInt32>\n", "UInt32>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt32_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt32_descr_ = { "@LibCommon_BasicTypesAndValues.UInt32", &INTEGER_ber_, &UInt32_raw_, &INTEGER_text_, &UInt32_xer_, &INTEGER_json_, &UInt32_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt36_raw_ = {36,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt36_xer_ = { {"UInt36>\n", "UInt36>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt36_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt36_descr_ = { "@LibCommon_BasicTypesAndValues.UInt36", &INTEGER_ber_, &UInt36_raw_, &INTEGER_text_, &UInt36_xer_, &INTEGER_json_, &UInt36_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt48_raw_ = {48,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt48_xer_ = { {"UInt48>\n", "UInt48>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt48_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt48_descr_ = { "@LibCommon_BasicTypesAndValues.UInt48", &INTEGER_ber_, &UInt48_raw_, &INTEGER_text_, &UInt48_xer_, &INTEGER_json_, &UInt48_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt52_raw_ = {52,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt52_xer_ = { {"UInt52>\n", "UInt52>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt52_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt52_descr_ = { "@LibCommon_BasicTypesAndValues.UInt52", &INTEGER_ber_, &UInt52_raw_, &INTEGER_text_, &UInt52_xer_, &INTEGER_json_, &UInt52_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t UInt64_raw_ = {64,SG_NO,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t UInt64_xer_ = { {"UInt64>\n", "UInt64>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UInt64_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UInt64_descr_ = { "@LibCommon_BasicTypesAndValues.UInt64", &INTEGER_ber_, &UInt64_raw_, &INTEGER_text_, &UInt64_xer_, &INTEGER_json_, &UInt64_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +INTEGER const_c__int1Min; +const INTEGER& c__int1Min = const_c__int1Min; +INTEGER const_c__int1Max; +const INTEGER& c__int1Max = const_c__int1Max; +INTEGER const_c__int2Min; +const INTEGER& c__int2Min = const_c__int2Min; +INTEGER const_c__int2Max; +const INTEGER& c__int2Max = const_c__int2Max; +INTEGER const_c__int3Min; +const INTEGER& c__int3Min = const_c__int3Min; +INTEGER const_c__int3Max; +const INTEGER& c__int3Max = const_c__int3Max; +INTEGER const_c__int4Min; +const INTEGER& c__int4Min = const_c__int4Min; +INTEGER const_c__int4Max; +const INTEGER& c__int4Max = const_c__int4Max; +INTEGER const_c__int5Min; +const INTEGER& c__int5Min = const_c__int5Min; +INTEGER const_c__int5Max; +const INTEGER& c__int5Max = const_c__int5Max; +INTEGER const_c__int6Min; +const INTEGER& c__int6Min = const_c__int6Min; +INTEGER const_c__int6Max; +const INTEGER& c__int6Max = const_c__int6Max; +INTEGER const_c__int7Min; +const INTEGER& c__int7Min = const_c__int7Min; +INTEGER const_c__int7Max; +const INTEGER& c__int7Max = const_c__int7Max; +INTEGER const_c__int8Min; +const INTEGER& c__int8Min = const_c__int8Min; +INTEGER const_c__int8Max; +const INTEGER& c__int8Max = const_c__int8Max; +INTEGER const_c__int9Min; +const INTEGER& c__int9Min = const_c__int9Min; +INTEGER const_c__int9Max; +const INTEGER& c__int9Max = const_c__int9Max; +INTEGER const_c__int10Min; +const INTEGER& c__int10Min = const_c__int10Min; +INTEGER const_c__int10Max; +const INTEGER& c__int10Max = const_c__int10Max; +INTEGER const_c__int11Min; +const INTEGER& c__int11Min = const_c__int11Min; +INTEGER const_c__int11Max; +const INTEGER& c__int11Max = const_c__int11Max; +INTEGER const_c__int12Min; +const INTEGER& c__int12Min = const_c__int12Min; +INTEGER const_c__int12Max; +const INTEGER& c__int12Max = const_c__int12Max; +INTEGER const_c__int13Min; +const INTEGER& c__int13Min = const_c__int13Min; +INTEGER const_c__int13Max; +const INTEGER& c__int13Max = const_c__int13Max; +INTEGER const_c__int14Min; +const INTEGER& c__int14Min = const_c__int14Min; +INTEGER const_c__int14Max; +const INTEGER& c__int14Max = const_c__int14Max; +INTEGER const_c__int15Min; +const INTEGER& c__int15Min = const_c__int15Min; +INTEGER const_c__int15Max; +const INTEGER& c__int15Max = const_c__int15Max; +INTEGER const_c__int16Min; +const INTEGER& c__int16Min = const_c__int16Min; +INTEGER const_c__int16Max; +const INTEGER& c__int16Max = const_c__int16Max; +INTEGER const_c__int17Min; +const INTEGER& c__int17Min = const_c__int17Min; +INTEGER const_c__int17Max; +const INTEGER& c__int17Max = const_c__int17Max; +INTEGER const_c__int18Min; +const INTEGER& c__int18Min = const_c__int18Min; +INTEGER const_c__int18Max; +const INTEGER& c__int18Max = const_c__int18Max; +INTEGER const_c__int19Min; +const INTEGER& c__int19Min = const_c__int19Min; +INTEGER const_c__int19Max; +const INTEGER& c__int19Max = const_c__int19Max; +INTEGER const_c__int20Min; +const INTEGER& c__int20Min = const_c__int20Min; +INTEGER const_c__int20Max; +const INTEGER& c__int20Max = const_c__int20Max; +INTEGER const_c__int21Min; +const INTEGER& c__int21Min = const_c__int21Min; +INTEGER const_c__int21Max; +const INTEGER& c__int21Max = const_c__int21Max; +INTEGER const_c__int22Min; +const INTEGER& c__int22Min = const_c__int22Min; +INTEGER const_c__int22Max; +const INTEGER& c__int22Max = const_c__int22Max; +INTEGER const_c__int23Min; +const INTEGER& c__int23Min = const_c__int23Min; +INTEGER const_c__int23Max; +const INTEGER& c__int23Max = const_c__int23Max; +INTEGER const_c__int24Min; +const INTEGER& c__int24Min = const_c__int24Min; +INTEGER const_c__int24Max; +const INTEGER& c__int24Max = const_c__int24Max; +INTEGER const_c__int25Min; +const INTEGER& c__int25Min = const_c__int25Min; +INTEGER const_c__int25Max; +const INTEGER& c__int25Max = const_c__int25Max; +INTEGER const_c__int26Min; +const INTEGER& c__int26Min = const_c__int26Min; +INTEGER const_c__int26Max; +const INTEGER& c__int26Max = const_c__int26Max; +INTEGER const_c__int27Min; +const INTEGER& c__int27Min = const_c__int27Min; +INTEGER const_c__int27Max; +const INTEGER& c__int27Max = const_c__int27Max; +INTEGER const_c__int28Min; +const INTEGER& c__int28Min = const_c__int28Min; +INTEGER const_c__int28Max; +const INTEGER& c__int28Max = const_c__int28Max; +INTEGER const_c__int29Min; +const INTEGER& c__int29Min = const_c__int29Min; +INTEGER const_c__int29Max; +const INTEGER& c__int29Max = const_c__int29Max; +INTEGER const_c__int30Min; +const INTEGER& c__int30Min = const_c__int30Min; +INTEGER const_c__int30Max; +const INTEGER& c__int30Max = const_c__int30Max; +INTEGER const_c__int31Min; +const INTEGER& c__int31Min = const_c__int31Min; +INTEGER const_c__int31Max; +const INTEGER& c__int31Max = const_c__int31Max; +INTEGER const_c__int32Min; +const INTEGER& c__int32Min = const_c__int32Min; +INTEGER const_c__int32Max; +const INTEGER& c__int32Max = const_c__int32Max; +const XERdescriptor_t Int_xer_ = { {"Int>\n", "Int>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int_descr_ = { "@LibCommon_BasicTypesAndValues.Int", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Int_xer_, &INTEGER_json_, &Int_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int1_raw_ = {1,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int1_xer_ = { {"Int1>\n", "Int1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int1_descr_ = { "@LibCommon_BasicTypesAndValues.Int1", &INTEGER_ber_, &Int1_raw_, &INTEGER_text_, &Int1_xer_, &INTEGER_json_, &Int1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int2_raw_ = {2,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int2_xer_ = { {"Int2>\n", "Int2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int2_descr_ = { "@LibCommon_BasicTypesAndValues.Int2", &INTEGER_ber_, &Int2_raw_, &INTEGER_text_, &Int2_xer_, &INTEGER_json_, &Int2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int3_raw_ = {3,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int3_xer_ = { {"Int3>\n", "Int3>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int3_descr_ = { "@LibCommon_BasicTypesAndValues.Int3", &INTEGER_ber_, &Int3_raw_, &INTEGER_text_, &Int3_xer_, &INTEGER_json_, &Int3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int4_raw_ = {4,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int4_xer_ = { {"Int4>\n", "Int4>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int4_descr_ = { "@LibCommon_BasicTypesAndValues.Int4", &INTEGER_ber_, &Int4_raw_, &INTEGER_text_, &Int4_xer_, &INTEGER_json_, &Int4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int5_raw_ = {5,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int5_xer_ = { {"Int5>\n", "Int5>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int5_descr_ = { "@LibCommon_BasicTypesAndValues.Int5", &INTEGER_ber_, &Int5_raw_, &INTEGER_text_, &Int5_xer_, &INTEGER_json_, &Int5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int6_raw_ = {6,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int6_xer_ = { {"Int6>\n", "Int6>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int6_descr_ = { "@LibCommon_BasicTypesAndValues.Int6", &INTEGER_ber_, &Int6_raw_, &INTEGER_text_, &Int6_xer_, &INTEGER_json_, &Int6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int7_raw_ = {7,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int7_xer_ = { {"Int7>\n", "Int7>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int7_descr_ = { "@LibCommon_BasicTypesAndValues.Int7", &INTEGER_ber_, &Int7_raw_, &INTEGER_text_, &Int7_xer_, &INTEGER_json_, &Int7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int8_raw_ = {8,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int8_xer_ = { {"Int8>\n", "Int8>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int8_descr_ = { "@LibCommon_BasicTypesAndValues.Int8", &INTEGER_ber_, &Int8_raw_, &INTEGER_text_, &Int8_xer_, &INTEGER_json_, &Int8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int9_raw_ = {9,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int9_xer_ = { {"Int9>\n", "Int9>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int9_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int9_descr_ = { "@LibCommon_BasicTypesAndValues.Int9", &INTEGER_ber_, &Int9_raw_, &INTEGER_text_, &Int9_xer_, &INTEGER_json_, &Int9_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int10_raw_ = {10,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int10_xer_ = { {"Int10>\n", "Int10>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int10_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int10_descr_ = { "@LibCommon_BasicTypesAndValues.Int10", &INTEGER_ber_, &Int10_raw_, &INTEGER_text_, &Int10_xer_, &INTEGER_json_, &Int10_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int11_raw_ = {11,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int11_xer_ = { {"Int11>\n", "Int11>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int11_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int11_descr_ = { "@LibCommon_BasicTypesAndValues.Int11", &INTEGER_ber_, &Int11_raw_, &INTEGER_text_, &Int11_xer_, &INTEGER_json_, &Int11_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int12_raw_ = {12,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int12_xer_ = { {"Int12>\n", "Int12>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int12_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int12_descr_ = { "@LibCommon_BasicTypesAndValues.Int12", &INTEGER_ber_, &Int12_raw_, &INTEGER_text_, &Int12_xer_, &INTEGER_json_, &Int12_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int13_raw_ = {13,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int13_xer_ = { {"Int13>\n", "Int13>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int13_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int13_descr_ = { "@LibCommon_BasicTypesAndValues.Int13", &INTEGER_ber_, &Int13_raw_, &INTEGER_text_, &Int13_xer_, &INTEGER_json_, &Int13_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int14_raw_ = {14,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int14_xer_ = { {"Int14>\n", "Int14>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int14_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int14_descr_ = { "@LibCommon_BasicTypesAndValues.Int14", &INTEGER_ber_, &Int14_raw_, &INTEGER_text_, &Int14_xer_, &INTEGER_json_, &Int14_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int15_raw_ = {15,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int15_xer_ = { {"Int15>\n", "Int15>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int15_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int15_descr_ = { "@LibCommon_BasicTypesAndValues.Int15", &INTEGER_ber_, &Int15_raw_, &INTEGER_text_, &Int15_xer_, &INTEGER_json_, &Int15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int16_raw_ = {16,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int16_xer_ = { {"Int16>\n", "Int16>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int16_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int16_descr_ = { "@LibCommon_BasicTypesAndValues.Int16", &INTEGER_ber_, &Int16_raw_, &INTEGER_text_, &Int16_xer_, &INTEGER_json_, &Int16_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int17_raw_ = {17,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int17_xer_ = { {"Int17>\n", "Int17>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int17_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int17_descr_ = { "@LibCommon_BasicTypesAndValues.Int17", &INTEGER_ber_, &Int17_raw_, &INTEGER_text_, &Int17_xer_, &INTEGER_json_, &Int17_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int18_raw_ = {18,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int18_xer_ = { {"Int18>\n", "Int18>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int18_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int18_descr_ = { "@LibCommon_BasicTypesAndValues.Int18", &INTEGER_ber_, &Int18_raw_, &INTEGER_text_, &Int18_xer_, &INTEGER_json_, &Int18_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int19_raw_ = {19,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int19_xer_ = { {"Int19>\n", "Int19>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int19_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int19_descr_ = { "@LibCommon_BasicTypesAndValues.Int19", &INTEGER_ber_, &Int19_raw_, &INTEGER_text_, &Int19_xer_, &INTEGER_json_, &Int19_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int20_raw_ = {20,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int20_xer_ = { {"Int20>\n", "Int20>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int20_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int20_descr_ = { "@LibCommon_BasicTypesAndValues.Int20", &INTEGER_ber_, &Int20_raw_, &INTEGER_text_, &Int20_xer_, &INTEGER_json_, &Int20_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int21_raw_ = {21,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int21_xer_ = { {"Int21>\n", "Int21>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int21_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int21_descr_ = { "@LibCommon_BasicTypesAndValues.Int21", &INTEGER_ber_, &Int21_raw_, &INTEGER_text_, &Int21_xer_, &INTEGER_json_, &Int21_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int22_raw_ = {22,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int22_xer_ = { {"Int22>\n", "Int22>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int22_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int22_descr_ = { "@LibCommon_BasicTypesAndValues.Int22", &INTEGER_ber_, &Int22_raw_, &INTEGER_text_, &Int22_xer_, &INTEGER_json_, &Int22_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int23_raw_ = {23,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int23_xer_ = { {"Int23>\n", "Int23>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int23_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int23_descr_ = { "@LibCommon_BasicTypesAndValues.Int23", &INTEGER_ber_, &Int23_raw_, &INTEGER_text_, &Int23_xer_, &INTEGER_json_, &Int23_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int24_raw_ = {24,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int24_xer_ = { {"Int24>\n", "Int24>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int24_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int24_descr_ = { "@LibCommon_BasicTypesAndValues.Int24", &INTEGER_ber_, &Int24_raw_, &INTEGER_text_, &Int24_xer_, &INTEGER_json_, &Int24_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int25_raw_ = {25,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int25_xer_ = { {"Int25>\n", "Int25>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int25_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int25_descr_ = { "@LibCommon_BasicTypesAndValues.Int25", &INTEGER_ber_, &Int25_raw_, &INTEGER_text_, &Int25_xer_, &INTEGER_json_, &Int25_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int26_raw_ = {26,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int26_xer_ = { {"Int26>\n", "Int26>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int26_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int26_descr_ = { "@LibCommon_BasicTypesAndValues.Int26", &INTEGER_ber_, &Int26_raw_, &INTEGER_text_, &Int26_xer_, &INTEGER_json_, &Int26_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int27_raw_ = {27,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int27_xer_ = { {"Int27>\n", "Int27>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int27_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int27_descr_ = { "@LibCommon_BasicTypesAndValues.Int27", &INTEGER_ber_, &Int27_raw_, &INTEGER_text_, &Int27_xer_, &INTEGER_json_, &Int27_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int28_raw_ = {28,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int28_xer_ = { {"Int28>\n", "Int28>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int28_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int28_descr_ = { "@LibCommon_BasicTypesAndValues.Int28", &INTEGER_ber_, &Int28_raw_, &INTEGER_text_, &Int28_xer_, &INTEGER_json_, &Int28_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int29_raw_ = {29,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int29_xer_ = { {"Int29>\n", "Int29>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int29_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int29_descr_ = { "@LibCommon_BasicTypesAndValues.Int29", &INTEGER_ber_, &Int29_raw_, &INTEGER_text_, &Int29_xer_, &INTEGER_json_, &Int29_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int30_raw_ = {30,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int30_xer_ = { {"Int30>\n", "Int30>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int30_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int30_descr_ = { "@LibCommon_BasicTypesAndValues.Int30", &INTEGER_ber_, &Int30_raw_, &INTEGER_text_, &Int30_xer_, &INTEGER_json_, &Int30_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int31_raw_ = {31,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int31_xer_ = { {"Int31>\n", "Int31>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int31_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int31_descr_ = { "@LibCommon_BasicTypesAndValues.Int31", &INTEGER_ber_, &Int31_raw_, &INTEGER_text_, &Int31_xer_, &INTEGER_json_, &Int31_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Int32_raw_ = {32,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Int32_xer_ = { {"Int32>\n", "Int32>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Int32_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Int32_descr_ = { "@LibCommon_BasicTypesAndValues.Int32", &INTEGER_ber_, &Int32_raw_, &INTEGER_text_, &Int32_xer_, &INTEGER_json_, &Int32_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +INTEGER const_c__uInt1Zero; +const INTEGER& c__uInt1Zero = const_c__uInt1Zero; +INTEGER const_c__uInt2Zero; +const INTEGER& c__uInt2Zero = const_c__uInt2Zero; +INTEGER const_c__uInt3Zero; +const INTEGER& c__uInt3Zero = const_c__uInt3Zero; +INTEGER const_c__uInt4Zero; +const INTEGER& c__uInt4Zero = const_c__uInt4Zero; +INTEGER const_c__uInt5Zero; +const INTEGER& c__uInt5Zero = const_c__uInt5Zero; +INTEGER const_c__uInt6Zero; +const INTEGER& c__uInt6Zero = const_c__uInt6Zero; +INTEGER const_c__uInt7Zero; +const INTEGER& c__uInt7Zero = const_c__uInt7Zero; +INTEGER const_c__uInt8Zero; +const INTEGER& c__uInt8Zero = const_c__uInt8Zero; +INTEGER const_c__uInt10Zero; +const INTEGER& c__uInt10Zero = const_c__uInt10Zero; +INTEGER const_c__uInt12Zero; +const INTEGER& c__uInt12Zero = const_c__uInt12Zero; +INTEGER const_c__uInt14Zero; +const INTEGER& c__uInt14Zero = const_c__uInt14Zero; +INTEGER const_c__uInt16Zero; +const INTEGER& c__uInt16Zero = const_c__uInt16Zero; +INTEGER const_c__uInt24Zero; +const INTEGER& c__uInt24Zero = const_c__uInt24Zero; +INTEGER const_c__uInt32Zero; +const INTEGER& c__uInt32Zero = const_c__uInt32Zero; +INTEGER const_c__uInt48Zero; +const INTEGER& c__uInt48Zero = const_c__uInt48Zero; +const TTCN_RAWdescriptor_t Bool1_raw_ = {1,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bool1_xer_ = { {"Bool1>\n", "Bool1>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Bool1_oer_ext_arr_[0] = {}; +const int Bool1_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Bool1_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Bool1_oer_ext_arr_, 0, Bool1_oer_p_}; +const TTCN_Typedescriptor_t Bool1_descr_ = { "@LibCommon_BasicTypesAndValues.Bool1", &BOOLEAN_ber_, &Bool1_raw_, &BOOLEAN_text_, &Bool1_xer_, &BOOLEAN_json_, &Bool1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bool2_raw_ = {2,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bool2_xer_ = { {"Bool2>\n", "Bool2>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Bool2_oer_ext_arr_[0] = {}; +const int Bool2_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Bool2_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Bool2_oer_ext_arr_, 0, Bool2_oer_p_}; +const TTCN_Typedescriptor_t Bool2_descr_ = { "@LibCommon_BasicTypesAndValues.Bool2", &BOOLEAN_ber_, &Bool2_raw_, &BOOLEAN_text_, &Bool2_xer_, &BOOLEAN_json_, &Bool2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bool3_raw_ = {3,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bool3_xer_ = { {"Bool3>\n", "Bool3>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Bool3_oer_ext_arr_[0] = {}; +const int Bool3_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Bool3_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Bool3_oer_ext_arr_, 0, Bool3_oer_p_}; +const TTCN_Typedescriptor_t Bool3_descr_ = { "@LibCommon_BasicTypesAndValues.Bool3", &BOOLEAN_ber_, &Bool3_raw_, &BOOLEAN_text_, &Bool3_xer_, &BOOLEAN_json_, &Bool3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bool4_raw_ = {4,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bool4_xer_ = { {"Bool4>\n", "Bool4>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Bool4_oer_ext_arr_[0] = {}; +const int Bool4_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Bool4_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Bool4_oer_ext_arr_, 0, Bool4_oer_p_}; +const TTCN_Typedescriptor_t Bool4_descr_ = { "@LibCommon_BasicTypesAndValues.Bool4", &BOOLEAN_ber_, &Bool4_raw_, &BOOLEAN_text_, &Bool4_xer_, &BOOLEAN_json_, &Bool4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bool5_raw_ = {5,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bool5_xer_ = { {"Bool5>\n", "Bool5>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Bool5_oer_ext_arr_[0] = {}; +const int Bool5_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Bool5_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Bool5_oer_ext_arr_, 0, Bool5_oer_p_}; +const TTCN_Typedescriptor_t Bool5_descr_ = { "@LibCommon_BasicTypesAndValues.Bool5", &BOOLEAN_ber_, &Bool5_raw_, &BOOLEAN_text_, &Bool5_xer_, &BOOLEAN_json_, &Bool5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bool6_raw_ = {6,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bool6_xer_ = { {"Bool6>\n", "Bool6>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Bool6_oer_ext_arr_[0] = {}; +const int Bool6_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Bool6_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Bool6_oer_ext_arr_, 0, Bool6_oer_p_}; +const TTCN_Typedescriptor_t Bool6_descr_ = { "@LibCommon_BasicTypesAndValues.Bool6", &BOOLEAN_ber_, &Bool6_raw_, &BOOLEAN_text_, &Bool6_xer_, &BOOLEAN_json_, &Bool6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bool7_raw_ = {7,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bool7_xer_ = { {"Bool7>\n", "Bool7>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Bool7_oer_ext_arr_[0] = {}; +const int Bool7_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Bool7_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Bool7_oer_ext_arr_, 0, Bool7_oer_p_}; +const TTCN_Typedescriptor_t Bool7_descr_ = { "@LibCommon_BasicTypesAndValues.Bool7", &BOOLEAN_ber_, &Bool7_raw_, &BOOLEAN_text_, &Bool7_xer_, &BOOLEAN_json_, &Bool7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bool8_raw_ = {8,SG_SG_BIT,ORDER_MSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bool8_xer_ = { {"Bool8>\n", "Bool8>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Bool8_oer_ext_arr_[0] = {}; +const int Bool8_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Bool8_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Bool8_oer_ext_arr_, 0, Bool8_oer_p_}; +const TTCN_Typedescriptor_t Bool8_descr_ = { "@LibCommon_BasicTypesAndValues.Bool8", &BOOLEAN_ber_, &Bool8_raw_, &BOOLEAN_text_, &Bool8_xer_, &BOOLEAN_json_, &Bool8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("LibCommon_BasicTypesAndValues", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_LibCommon_BasicTypesAndValues(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "Bool1")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool1 template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool2")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool2 template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool3")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool3 template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool4")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool4 template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool5")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool5 template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool6")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool6 template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool7")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool7 template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool8")) { + ((const BOOLEAN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bool8 template")) { + ((const BOOLEAN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int1")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int1 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int10")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int10 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int11")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int11 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int12")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int12 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int13")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int13 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int14")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int14 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int15")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int15 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int16")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int16 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int17")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int17 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int18")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int18 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int19")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int19 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int2")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int2 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int20")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int20 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int21")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int21 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int22")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int22 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int23")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int23 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int24")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int24 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int25")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int25 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int26")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int26 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int27")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int27 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int28")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int28 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int29")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int29 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int3")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int3 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int30")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int30 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int31")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int31 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int32")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int32 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int4")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int4 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int5")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int5 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int6")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int6 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int7")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int7 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int8")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int8 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int9")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Int9 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt1")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt1 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt10")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt10 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt11")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt11 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt12")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt12 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt13")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt13 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt14")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt14 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt15")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt15 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt16")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt16 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt17")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt17 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt18")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt18 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt19")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt19 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt2")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt2 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt20")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt20 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt21")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt21 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt22")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt22 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt23")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt23 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt24")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt24 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt25")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt25 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt26")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt26 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt27")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt27 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt28")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt28 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt29")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt29 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt3")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt3 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt30")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt30 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt31")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt31 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt32")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt32 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt36")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt36 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt4")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt4 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt48")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt48 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt5")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt5 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt52")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt52 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt6")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt6 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt64")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt64 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt7")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt7 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt8")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt8 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt9")) { + ((const INTEGER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UInt9 template")) { + ((const INTEGER_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_LibCommon_BasicTypesAndValues(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "Bool1")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool1 template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool2")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool2 template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool3")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool3 template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool4")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool4 template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool5")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool5 template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool6")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool6 template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool7")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool7 template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool8")) { + ((BOOLEAN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bool8 template")) { + ((BOOLEAN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int1")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int1 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int10")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int10 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int11")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int11 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int12")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int12 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int13")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int13 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int14")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int14 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int15")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int15 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int16")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int16 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int17")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int17 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int18")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int18 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int19")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int19 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int2")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int2 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int20")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int20 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int21")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int21 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int22")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int22 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int23")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int23 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int24")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int24 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int25")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int25 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int26")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int26 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int27")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int27 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int28")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int28 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int29")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int29 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int3")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int3 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int30")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int30 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int31")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int31 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int32")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int32 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int4")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int4 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int5")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int5 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int6")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int6 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int7")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int7 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int8")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int8 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int9")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Int9 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt1")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt1 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt10")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt10 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt11")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt11 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt12")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt12 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt13")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt13 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt14")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt14 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt15")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt15 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt16")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt16 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt17")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt17 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt18")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt18 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt19")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt19 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt2")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt2 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt20")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt20 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt21")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt21 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt22")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt22 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt23")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt23 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt24")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt24 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt25")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt25 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt26")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt26 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt27")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt27 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt28")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt28 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt29")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt29 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt3")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt3 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt30")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt30 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt31")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt31 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt32")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt32 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt36")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt36 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt4")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt4 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt48")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt48 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt5")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt5 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt52")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt52 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt6")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt6 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt64")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt64 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt7")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt7 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt8")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt8 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt9")) { + ((INTEGER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UInt9 template")) { + ((INTEGER_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("LibCommon_BasicTypesAndValues"); + global_scope->add_variable(&c__int10Max, "c_int10Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int10Min, "c_int10Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int11Max, "c_int11Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int11Min, "c_int11Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int12Max, "c_int12Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int12Min, "c_int12Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int13Max, "c_int13Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int13Min, "c_int13Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int14Max, "c_int14Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int14Min, "c_int14Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int15Max, "c_int15Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int15Min, "c_int15Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int16Max, "c_int16Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int16Min, "c_int16Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int17Max, "c_int17Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int17Min, "c_int17Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int18Max, "c_int18Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int18Min, "c_int18Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int19Max, "c_int19Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int19Min, "c_int19Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int1Max, "c_int1Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int1Min, "c_int1Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int20Max, "c_int20Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int20Min, "c_int20Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int21Max, "c_int21Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int21Min, "c_int21Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int22Max, "c_int22Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int22Min, "c_int22Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int23Max, "c_int23Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int23Min, "c_int23Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int24Max, "c_int24Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int24Min, "c_int24Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int25Max, "c_int25Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int25Min, "c_int25Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int26Max, "c_int26Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int26Min, "c_int26Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int27Max, "c_int27Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int27Min, "c_int27Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int28Max, "c_int28Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int28Min, "c_int28Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int29Max, "c_int29Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int29Min, "c_int29Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int2Max, "c_int2Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int2Min, "c_int2Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int30Max, "c_int30Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int30Min, "c_int30Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int31Max, "c_int31Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int31Min, "c_int31Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int32Max, "c_int32Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int32Min, "c_int32Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int3Max, "c_int3Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int3Min, "c_int3Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int4Max, "c_int4Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int4Min, "c_int4Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int5Max, "c_int5Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int5Min, "c_int5Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int6Max, "c_int6Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int6Min, "c_int6Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int7Max, "c_int7Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int7Min, "c_int7Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int8Max, "c_int8Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int8Min, "c_int8Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int9Max, "c_int9Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__int9Min, "c_int9Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt10Max, "c_uInt10Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt10Zero, "c_uInt10Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt11Max, "c_uInt11Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt12Max, "c_uInt12Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt12Zero, "c_uInt12Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt13Max, "c_uInt13Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt14Max, "c_uInt14Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt14Zero, "c_uInt14Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt15Max, "c_uInt15Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt16Max, "c_uInt16Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt16Zero, "c_uInt16Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt17Max, "c_uInt17Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt18Max, "c_uInt18Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt19Max, "c_uInt19Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt1Max, "c_uInt1Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt1Zero, "c_uInt1Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt20Max, "c_uInt20Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt21Max, "c_uInt21Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt22Max, "c_uInt22Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt23Max, "c_uInt23Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt24Max, "c_uInt24Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt24Zero, "c_uInt24Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt25Max, "c_uInt25Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt26Max, "c_uInt26Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt27Max, "c_uInt27Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt28Max, "c_uInt28Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt29Max, "c_uInt29Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt2Max, "c_uInt2Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt2Zero, "c_uInt2Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt30Max, "c_uInt30Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt31Max, "c_uInt31Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt32Max, "c_uInt32Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt32Zero, "c_uInt32Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt36Max, "c_uInt36Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt3Max, "c_uInt3Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt3Zero, "c_uInt3Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt48Max, "c_uInt48Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt48Zero, "c_uInt48Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt4Max, "c_uInt4Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt4Zero, "c_uInt4Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt52Max, "c_uInt52Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt5Max, "c_uInt5Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt5Zero, "c_uInt5Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt64Max, "c_uInt64Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt6Max, "c_uInt6Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt6Zero, "c_uInt6Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt7Max, "c_uInt7Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt7Zero, "c_uInt7Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt8Max, "c_uInt8Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt8Zero, "c_uInt8Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__uInt9Max, "c_uInt9Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); +} + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_BasicTypesAndValues"); +LibCommon__BasicTypesAndValues::init_ttcn3_debugger(); +current_location.update_lineno(26); +ttcn3_debugger.breakpoint_entry(26); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 26 */ +const_c__uInt1Max = 1; +current_location.update_lineno(27); +ttcn3_debugger.breakpoint_entry(27); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 27 */ +const_c__uInt2Max = 3; +current_location.update_lineno(28); +ttcn3_debugger.breakpoint_entry(28); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 28 */ +const_c__uInt3Max = 7; +current_location.update_lineno(29); +ttcn3_debugger.breakpoint_entry(29); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 29 */ +const_c__uInt4Max = 15; +current_location.update_lineno(30); +ttcn3_debugger.breakpoint_entry(30); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 30 */ +const_c__uInt5Max = 31; +current_location.update_lineno(31); +ttcn3_debugger.breakpoint_entry(31); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 31 */ +const_c__uInt6Max = 63; +current_location.update_lineno(32); +ttcn3_debugger.breakpoint_entry(32); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 32 */ +const_c__uInt7Max = 127; +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 33 */ +const_c__uInt8Max = 255; +current_location.update_lineno(34); +ttcn3_debugger.breakpoint_entry(34); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 34 */ +const_c__uInt9Max = 511; +current_location.update_lineno(35); +ttcn3_debugger.breakpoint_entry(35); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 35 */ +const_c__uInt10Max = 1023; +current_location.update_lineno(36); +ttcn3_debugger.breakpoint_entry(36); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 36 */ +const_c__uInt11Max = 2047; +current_location.update_lineno(37); +ttcn3_debugger.breakpoint_entry(37); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 37 */ +const_c__uInt12Max = 4095; +current_location.update_lineno(38); +ttcn3_debugger.breakpoint_entry(38); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 38 */ +const_c__uInt13Max = 8191; +current_location.update_lineno(39); +ttcn3_debugger.breakpoint_entry(39); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 39 */ +const_c__uInt14Max = 16383; +current_location.update_lineno(40); +ttcn3_debugger.breakpoint_entry(40); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 40 */ +const_c__uInt15Max = 32767; +current_location.update_lineno(41); +ttcn3_debugger.breakpoint_entry(41); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 41 */ +const_c__uInt16Max = 65535; +current_location.update_lineno(42); +ttcn3_debugger.breakpoint_entry(42); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 42 */ +const_c__uInt17Max = 131071; +current_location.update_lineno(43); +ttcn3_debugger.breakpoint_entry(43); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 43 */ +const_c__uInt18Max = 262143; +current_location.update_lineno(44); +ttcn3_debugger.breakpoint_entry(44); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 44 */ +const_c__uInt19Max = 524287; +current_location.update_lineno(45); +ttcn3_debugger.breakpoint_entry(45); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 45 */ +const_c__uInt20Max = 1048575; +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 46 */ +const_c__uInt21Max = 2097151; +current_location.update_lineno(47); +ttcn3_debugger.breakpoint_entry(47); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 47 */ +const_c__uInt22Max = 4194303; +current_location.update_lineno(48); +ttcn3_debugger.breakpoint_entry(48); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 48 */ +const_c__uInt23Max = 8388607; +current_location.update_lineno(49); +ttcn3_debugger.breakpoint_entry(49); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 49 */ +const_c__uInt24Max = 16777215; +current_location.update_lineno(50); +ttcn3_debugger.breakpoint_entry(50); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 50 */ +const_c__uInt25Max = 33554431; +current_location.update_lineno(51); +ttcn3_debugger.breakpoint_entry(51); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 51 */ +const_c__uInt26Max = 67108863; +current_location.update_lineno(52); +ttcn3_debugger.breakpoint_entry(52); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 52 */ +const_c__uInt27Max = 134217727; +current_location.update_lineno(53); +ttcn3_debugger.breakpoint_entry(53); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 53 */ +const_c__uInt28Max = 268435456; +current_location.update_lineno(54); +ttcn3_debugger.breakpoint_entry(54); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 54 */ +const_c__uInt29Max = 536870911; +current_location.update_lineno(55); +ttcn3_debugger.breakpoint_entry(55); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 55 */ +const_c__uInt30Max = 1073741823; +current_location.update_lineno(56); +ttcn3_debugger.breakpoint_entry(56); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 56 */ +const_c__uInt31Max = 2147483647; +current_location.update_lineno(57); +ttcn3_debugger.breakpoint_entry(57); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 57 */ +{ INTEGER INTEGER_tmp("4294967295"); +const_c__uInt32Max = INTEGER_tmp; } +current_location.update_lineno(58); +ttcn3_debugger.breakpoint_entry(58); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 58 */ +{ INTEGER INTEGER_tmp("68719476735"); +const_c__uInt36Max = INTEGER_tmp; } +current_location.update_lineno(59); +ttcn3_debugger.breakpoint_entry(59); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 59 */ +{ INTEGER INTEGER_tmp("281474976710655"); +const_c__uInt48Max = INTEGER_tmp; } +current_location.update_lineno(60); +ttcn3_debugger.breakpoint_entry(60); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 60 */ +{ INTEGER INTEGER_tmp("4503599627370495"); +const_c__uInt52Max = INTEGER_tmp; } +current_location.update_lineno(61); +ttcn3_debugger.breakpoint_entry(61); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 61 */ +{ INTEGER INTEGER_tmp("18446744073709551615"); +const_c__uInt64Max = INTEGER_tmp; } +current_location.update_lineno(109); +ttcn3_debugger.breakpoint_entry(109); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 109 */ +const_c__int1Min = -1; +current_location.update_lineno(110); +ttcn3_debugger.breakpoint_entry(110); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 110 */ +const_c__int1Max = 0; +current_location.update_lineno(111); +ttcn3_debugger.breakpoint_entry(111); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 111 */ +const_c__int2Min = -2; +current_location.update_lineno(112); +ttcn3_debugger.breakpoint_entry(112); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 112 */ +const_c__int2Max = 1; +current_location.update_lineno(113); +ttcn3_debugger.breakpoint_entry(113); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 113 */ +const_c__int3Min = -4; +current_location.update_lineno(114); +ttcn3_debugger.breakpoint_entry(114); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 114 */ +const_c__int3Max = 3; +current_location.update_lineno(115); +ttcn3_debugger.breakpoint_entry(115); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 115 */ +const_c__int4Min = -8; +current_location.update_lineno(116); +ttcn3_debugger.breakpoint_entry(116); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 116 */ +const_c__int4Max = 7; +current_location.update_lineno(117); +ttcn3_debugger.breakpoint_entry(117); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 117 */ +const_c__int5Min = -16; +current_location.update_lineno(118); +ttcn3_debugger.breakpoint_entry(118); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 118 */ +const_c__int5Max = 15; +current_location.update_lineno(119); +ttcn3_debugger.breakpoint_entry(119); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 119 */ +const_c__int6Min = -32; +current_location.update_lineno(120); +ttcn3_debugger.breakpoint_entry(120); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 120 */ +const_c__int6Max = 31; +current_location.update_lineno(121); +ttcn3_debugger.breakpoint_entry(121); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 121 */ +const_c__int7Min = -64; +current_location.update_lineno(122); +ttcn3_debugger.breakpoint_entry(122); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 122 */ +const_c__int7Max = 63; +current_location.update_lineno(123); +ttcn3_debugger.breakpoint_entry(123); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 123 */ +const_c__int8Min = -128; +current_location.update_lineno(124); +ttcn3_debugger.breakpoint_entry(124); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 124 */ +const_c__int8Max = 127; +current_location.update_lineno(125); +ttcn3_debugger.breakpoint_entry(125); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 125 */ +const_c__int9Min = -256; +current_location.update_lineno(126); +ttcn3_debugger.breakpoint_entry(126); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 126 */ +const_c__int9Max = 255; +current_location.update_lineno(127); +ttcn3_debugger.breakpoint_entry(127); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 127 */ +const_c__int10Min = -512; +current_location.update_lineno(128); +ttcn3_debugger.breakpoint_entry(128); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 128 */ +const_c__int10Max = 511; +current_location.update_lineno(129); +ttcn3_debugger.breakpoint_entry(129); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 129 */ +const_c__int11Min = -1024; +current_location.update_lineno(130); +ttcn3_debugger.breakpoint_entry(130); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 130 */ +const_c__int11Max = 1023; +current_location.update_lineno(131); +ttcn3_debugger.breakpoint_entry(131); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 131 */ +const_c__int12Min = -2048; +current_location.update_lineno(132); +ttcn3_debugger.breakpoint_entry(132); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 132 */ +const_c__int12Max = 2047; +current_location.update_lineno(133); +ttcn3_debugger.breakpoint_entry(133); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 133 */ +const_c__int13Min = -4096; +current_location.update_lineno(134); +ttcn3_debugger.breakpoint_entry(134); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 134 */ +const_c__int13Max = 4095; +current_location.update_lineno(135); +ttcn3_debugger.breakpoint_entry(135); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 135 */ +const_c__int14Min = -8192; +current_location.update_lineno(136); +ttcn3_debugger.breakpoint_entry(136); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 136 */ +const_c__int14Max = 8191; +current_location.update_lineno(137); +ttcn3_debugger.breakpoint_entry(137); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 137 */ +const_c__int15Min = -16384; +current_location.update_lineno(138); +ttcn3_debugger.breakpoint_entry(138); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 138 */ +const_c__int15Max = 16383; +current_location.update_lineno(139); +ttcn3_debugger.breakpoint_entry(139); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 139 */ +const_c__int16Min = -32768; +current_location.update_lineno(140); +ttcn3_debugger.breakpoint_entry(140); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 140 */ +const_c__int16Max = 32767; +current_location.update_lineno(141); +ttcn3_debugger.breakpoint_entry(141); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 141 */ +const_c__int17Min = -65536; +current_location.update_lineno(142); +ttcn3_debugger.breakpoint_entry(142); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 142 */ +const_c__int17Max = 65535; +current_location.update_lineno(143); +ttcn3_debugger.breakpoint_entry(143); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 143 */ +const_c__int18Min = -131072; +current_location.update_lineno(144); +ttcn3_debugger.breakpoint_entry(144); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 144 */ +const_c__int18Max = 131071; +current_location.update_lineno(145); +ttcn3_debugger.breakpoint_entry(145); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 145 */ +const_c__int19Min = -262144; +current_location.update_lineno(146); +ttcn3_debugger.breakpoint_entry(146); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 146 */ +const_c__int19Max = 262143; +current_location.update_lineno(147); +ttcn3_debugger.breakpoint_entry(147); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 147 */ +const_c__int20Min = -524288; +current_location.update_lineno(148); +ttcn3_debugger.breakpoint_entry(148); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 148 */ +const_c__int20Max = 524287; +current_location.update_lineno(149); +ttcn3_debugger.breakpoint_entry(149); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 149 */ +const_c__int21Min = -1048576; +current_location.update_lineno(150); +ttcn3_debugger.breakpoint_entry(150); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 150 */ +const_c__int21Max = 1048575; +current_location.update_lineno(151); +ttcn3_debugger.breakpoint_entry(151); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 151 */ +const_c__int22Min = -2097152; +current_location.update_lineno(152); +ttcn3_debugger.breakpoint_entry(152); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 152 */ +const_c__int22Max = 2097151; +current_location.update_lineno(153); +ttcn3_debugger.breakpoint_entry(153); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 153 */ +const_c__int23Min = -4194304; +current_location.update_lineno(154); +ttcn3_debugger.breakpoint_entry(154); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 154 */ +const_c__int23Max = 4194303; +current_location.update_lineno(155); +ttcn3_debugger.breakpoint_entry(155); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 155 */ +const_c__int24Min = -8388608; +current_location.update_lineno(156); +ttcn3_debugger.breakpoint_entry(156); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 156 */ +const_c__int24Max = 8388607; +current_location.update_lineno(157); +ttcn3_debugger.breakpoint_entry(157); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 157 */ +const_c__int25Min = -16777216; +current_location.update_lineno(158); +ttcn3_debugger.breakpoint_entry(158); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 158 */ +const_c__int25Max = 16777215; +current_location.update_lineno(159); +ttcn3_debugger.breakpoint_entry(159); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 159 */ +const_c__int26Min = -33554432; +current_location.update_lineno(160); +ttcn3_debugger.breakpoint_entry(160); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 160 */ +const_c__int26Max = 33554431; +current_location.update_lineno(161); +ttcn3_debugger.breakpoint_entry(161); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 161 */ +const_c__int27Min = -67108864; +current_location.update_lineno(162); +ttcn3_debugger.breakpoint_entry(162); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 162 */ +const_c__int27Max = 67108863; +current_location.update_lineno(163); +ttcn3_debugger.breakpoint_entry(163); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 163 */ +const_c__int28Min = -134217728; +current_location.update_lineno(164); +ttcn3_debugger.breakpoint_entry(164); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 164 */ +const_c__int28Max = 134217727; +current_location.update_lineno(165); +ttcn3_debugger.breakpoint_entry(165); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 165 */ +const_c__int29Min = -268435456; +current_location.update_lineno(166); +ttcn3_debugger.breakpoint_entry(166); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 166 */ +const_c__int29Max = 268435456; +current_location.update_lineno(167); +ttcn3_debugger.breakpoint_entry(167); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 167 */ +const_c__int30Min = -536870912; +current_location.update_lineno(168); +ttcn3_debugger.breakpoint_entry(168); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 168 */ +const_c__int30Max = 536870911; +current_location.update_lineno(169); +ttcn3_debugger.breakpoint_entry(169); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 169 */ +const_c__int31Min = -1073741824; +current_location.update_lineno(170); +ttcn3_debugger.breakpoint_entry(170); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 170 */ +const_c__int31Max = 1073741823; +current_location.update_lineno(171); +ttcn3_debugger.breakpoint_entry(171); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 171 */ +const_c__int32Min = -2147483648; +current_location.update_lineno(172); +ttcn3_debugger.breakpoint_entry(172); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 172 */ +const_c__int32Max = 2147483647; +current_location.update_lineno(212); +ttcn3_debugger.breakpoint_entry(212); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 212 */ +const_c__uInt1Zero = 0; +current_location.update_lineno(213); +ttcn3_debugger.breakpoint_entry(213); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 213 */ +const_c__uInt2Zero = 0; +current_location.update_lineno(214); +ttcn3_debugger.breakpoint_entry(214); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 214 */ +const_c__uInt3Zero = 0; +current_location.update_lineno(215); +ttcn3_debugger.breakpoint_entry(215); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 215 */ +const_c__uInt4Zero = 0; +current_location.update_lineno(216); +ttcn3_debugger.breakpoint_entry(216); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 216 */ +const_c__uInt5Zero = 0; +current_location.update_lineno(217); +ttcn3_debugger.breakpoint_entry(217); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 217 */ +const_c__uInt6Zero = 0; +current_location.update_lineno(218); +ttcn3_debugger.breakpoint_entry(218); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 218 */ +const_c__uInt7Zero = 0; +current_location.update_lineno(219); +ttcn3_debugger.breakpoint_entry(219); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 219 */ +const_c__uInt8Zero = 0; +current_location.update_lineno(220); +ttcn3_debugger.breakpoint_entry(220); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 220 */ +const_c__uInt10Zero = 0; +current_location.update_lineno(221); +ttcn3_debugger.breakpoint_entry(221); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 221 */ +const_c__uInt12Zero = 0; +current_location.update_lineno(222); +ttcn3_debugger.breakpoint_entry(222); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 222 */ +const_c__uInt14Zero = 0; +current_location.update_lineno(223); +ttcn3_debugger.breakpoint_entry(223); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 223 */ +const_c__uInt16Zero = 0; +current_location.update_lineno(224); +ttcn3_debugger.breakpoint_entry(224); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 224 */ +const_c__uInt24Zero = 0; +current_location.update_lineno(225); +ttcn3_debugger.breakpoint_entry(225); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 225 */ +const_c__uInt32Zero = 0; +current_location.update_lineno(226); +ttcn3_debugger.breakpoint_entry(226); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_BasicTypesAndValues.ttcn, line 226 */ +const_c__uInt48Zero = 0; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/LibCommon_BasicTypesAndValues.hh b/build/Ats_NG_NAS/LibCommon_BasicTypesAndValues.hh new file mode 100644 index 0000000000000000000000000000000000000000..35a75772d3fbc90bff50c032ec1ecc744ce9c568 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_BasicTypesAndValues.hh @@ -0,0 +1,745 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef LibCommon__BasicTypesAndValues_HH +#define LibCommon__BasicTypesAndValues_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include + +#if TTCN3_VERSION != 100000 +#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 + +namespace LibCommon__BasicTypesAndValues { + +/* Type definitions */ + +typedef INTEGER UInt; +typedef INTEGER_template UInt_template; +typedef INTEGER UInt1; +typedef INTEGER_template UInt1_template; +typedef INTEGER UInt2; +typedef INTEGER_template UInt2_template; +typedef INTEGER UInt3; +typedef INTEGER_template UInt3_template; +typedef INTEGER UInt4; +typedef INTEGER_template UInt4_template; +typedef INTEGER UInt5; +typedef INTEGER_template UInt5_template; +typedef INTEGER UInt6; +typedef INTEGER_template UInt6_template; +typedef INTEGER UInt7; +typedef INTEGER_template UInt7_template; +typedef INTEGER UInt8; +typedef INTEGER_template UInt8_template; +typedef INTEGER UInt9; +typedef INTEGER_template UInt9_template; +typedef INTEGER UInt10; +typedef INTEGER_template UInt10_template; +typedef INTEGER UInt11; +typedef INTEGER_template UInt11_template; +typedef INTEGER UInt12; +typedef INTEGER_template UInt12_template; +typedef INTEGER UInt13; +typedef INTEGER_template UInt13_template; +typedef INTEGER UInt14; +typedef INTEGER_template UInt14_template; +typedef INTEGER UInt15; +typedef INTEGER_template UInt15_template; +typedef INTEGER UInt16; +typedef INTEGER_template UInt16_template; +typedef INTEGER UInt17; +typedef INTEGER_template UInt17_template; +typedef INTEGER UInt18; +typedef INTEGER_template UInt18_template; +typedef INTEGER UInt19; +typedef INTEGER_template UInt19_template; +typedef INTEGER UInt20; +typedef INTEGER_template UInt20_template; +typedef INTEGER UInt21; +typedef INTEGER_template UInt21_template; +typedef INTEGER UInt22; +typedef INTEGER_template UInt22_template; +typedef INTEGER UInt23; +typedef INTEGER_template UInt23_template; +typedef INTEGER UInt24; +typedef INTEGER_template UInt24_template; +typedef INTEGER UInt25; +typedef INTEGER_template UInt25_template; +typedef INTEGER UInt26; +typedef INTEGER_template UInt26_template; +typedef INTEGER UInt27; +typedef INTEGER_template UInt27_template; +typedef INTEGER UInt28; +typedef INTEGER_template UInt28_template; +typedef INTEGER UInt29; +typedef INTEGER_template UInt29_template; +typedef INTEGER UInt30; +typedef INTEGER_template UInt30_template; +typedef INTEGER UInt31; +typedef INTEGER_template UInt31_template; +typedef INTEGER UInt32; +typedef INTEGER_template UInt32_template; +typedef INTEGER UInt36; +typedef INTEGER_template UInt36_template; +typedef INTEGER UInt48; +typedef INTEGER_template UInt48_template; +typedef INTEGER UInt52; +typedef INTEGER_template UInt52_template; +typedef INTEGER UInt64; +typedef INTEGER_template UInt64_template; +typedef INTEGER Int; +typedef INTEGER_template Int_template; +typedef INTEGER Int1; +typedef INTEGER_template Int1_template; +typedef INTEGER Int2; +typedef INTEGER_template Int2_template; +typedef INTEGER Int3; +typedef INTEGER_template Int3_template; +typedef INTEGER Int4; +typedef INTEGER_template Int4_template; +typedef INTEGER Int5; +typedef INTEGER_template Int5_template; +typedef INTEGER Int6; +typedef INTEGER_template Int6_template; +typedef INTEGER Int7; +typedef INTEGER_template Int7_template; +typedef INTEGER Int8; +typedef INTEGER_template Int8_template; +typedef INTEGER Int9; +typedef INTEGER_template Int9_template; +typedef INTEGER Int10; +typedef INTEGER_template Int10_template; +typedef INTEGER Int11; +typedef INTEGER_template Int11_template; +typedef INTEGER Int12; +typedef INTEGER_template Int12_template; +typedef INTEGER Int13; +typedef INTEGER_template Int13_template; +typedef INTEGER Int14; +typedef INTEGER_template Int14_template; +typedef INTEGER Int15; +typedef INTEGER_template Int15_template; +typedef INTEGER Int16; +typedef INTEGER_template Int16_template; +typedef INTEGER Int17; +typedef INTEGER_template Int17_template; +typedef INTEGER Int18; +typedef INTEGER_template Int18_template; +typedef INTEGER Int19; +typedef INTEGER_template Int19_template; +typedef INTEGER Int20; +typedef INTEGER_template Int20_template; +typedef INTEGER Int21; +typedef INTEGER_template Int21_template; +typedef INTEGER Int22; +typedef INTEGER_template Int22_template; +typedef INTEGER Int23; +typedef INTEGER_template Int23_template; +typedef INTEGER Int24; +typedef INTEGER_template Int24_template; +typedef INTEGER Int25; +typedef INTEGER_template Int25_template; +typedef INTEGER Int26; +typedef INTEGER_template Int26_template; +typedef INTEGER Int27; +typedef INTEGER_template Int27_template; +typedef INTEGER Int28; +typedef INTEGER_template Int28_template; +typedef INTEGER Int29; +typedef INTEGER_template Int29_template; +typedef INTEGER Int30; +typedef INTEGER_template Int30_template; +typedef INTEGER Int31; +typedef INTEGER_template Int31_template; +typedef INTEGER Int32; +typedef INTEGER_template Int32_template; +typedef BOOLEAN Bool1; +typedef BOOLEAN_template Bool1_template; +typedef BOOLEAN Bool2; +typedef BOOLEAN_template Bool2_template; +typedef BOOLEAN Bool3; +typedef BOOLEAN_template Bool3_template; +typedef BOOLEAN Bool4; +typedef BOOLEAN_template Bool4_template; +typedef BOOLEAN Bool5; +typedef BOOLEAN_template Bool5_template; +typedef BOOLEAN Bool6; +typedef BOOLEAN_template Bool6_template; +typedef BOOLEAN Bool7; +typedef BOOLEAN_template Bool7_template; +typedef BOOLEAN Bool8; +typedef BOOLEAN_template Bool8_template; + +/* Class definitions */ + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_LibCommon_BasicTypesAndValues(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_LibCommon_BasicTypesAndValues(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Global variable declarations */ + +extern const INTEGER& c__uInt1Max; +extern INTEGER const_c__uInt1Max; +extern const INTEGER& c__uInt2Max; +extern INTEGER const_c__uInt2Max; +extern const INTEGER& c__uInt3Max; +extern INTEGER const_c__uInt3Max; +extern const INTEGER& c__uInt4Max; +extern INTEGER const_c__uInt4Max; +extern const INTEGER& c__uInt5Max; +extern INTEGER const_c__uInt5Max; +extern const INTEGER& c__uInt6Max; +extern INTEGER const_c__uInt6Max; +extern const INTEGER& c__uInt7Max; +extern INTEGER const_c__uInt7Max; +extern const INTEGER& c__uInt8Max; +extern INTEGER const_c__uInt8Max; +extern const INTEGER& c__uInt9Max; +extern INTEGER const_c__uInt9Max; +extern const INTEGER& c__uInt10Max; +extern INTEGER const_c__uInt10Max; +extern const INTEGER& c__uInt11Max; +extern INTEGER const_c__uInt11Max; +extern const INTEGER& c__uInt12Max; +extern INTEGER const_c__uInt12Max; +extern const INTEGER& c__uInt13Max; +extern INTEGER const_c__uInt13Max; +extern const INTEGER& c__uInt14Max; +extern INTEGER const_c__uInt14Max; +extern const INTEGER& c__uInt15Max; +extern INTEGER const_c__uInt15Max; +extern const INTEGER& c__uInt16Max; +extern INTEGER const_c__uInt16Max; +extern const INTEGER& c__uInt17Max; +extern INTEGER const_c__uInt17Max; +extern const INTEGER& c__uInt18Max; +extern INTEGER const_c__uInt18Max; +extern const INTEGER& c__uInt19Max; +extern INTEGER const_c__uInt19Max; +extern const INTEGER& c__uInt20Max; +extern INTEGER const_c__uInt20Max; +extern const INTEGER& c__uInt21Max; +extern INTEGER const_c__uInt21Max; +extern const INTEGER& c__uInt22Max; +extern INTEGER const_c__uInt22Max; +extern const INTEGER& c__uInt23Max; +extern INTEGER const_c__uInt23Max; +extern const INTEGER& c__uInt24Max; +extern INTEGER const_c__uInt24Max; +extern const INTEGER& c__uInt25Max; +extern INTEGER const_c__uInt25Max; +extern const INTEGER& c__uInt26Max; +extern INTEGER const_c__uInt26Max; +extern const INTEGER& c__uInt27Max; +extern INTEGER const_c__uInt27Max; +extern const INTEGER& c__uInt28Max; +extern INTEGER const_c__uInt28Max; +extern const INTEGER& c__uInt29Max; +extern INTEGER const_c__uInt29Max; +extern const INTEGER& c__uInt30Max; +extern INTEGER const_c__uInt30Max; +extern const INTEGER& c__uInt31Max; +extern INTEGER const_c__uInt31Max; +extern const INTEGER& c__uInt32Max; +extern INTEGER const_c__uInt32Max; +extern const INTEGER& c__uInt36Max; +extern INTEGER const_c__uInt36Max; +extern const INTEGER& c__uInt48Max; +extern INTEGER const_c__uInt48Max; +extern const INTEGER& c__uInt52Max; +extern INTEGER const_c__uInt52Max; +extern const INTEGER& c__uInt64Max; +extern INTEGER const_c__uInt64Max; +extern const XERdescriptor_t UInt_xer_; +extern const TTCN_OERdescriptor_t UInt_oer_; +extern const TTCN_Typedescriptor_t UInt_descr_; +extern const TTCN_RAWdescriptor_t UInt1_raw_; +extern const XERdescriptor_t UInt1_xer_; +extern const TTCN_OERdescriptor_t UInt1_oer_; +extern const TTCN_Typedescriptor_t UInt1_descr_; +extern const TTCN_RAWdescriptor_t UInt2_raw_; +extern const XERdescriptor_t UInt2_xer_; +extern const TTCN_OERdescriptor_t UInt2_oer_; +extern const TTCN_Typedescriptor_t UInt2_descr_; +extern const TTCN_RAWdescriptor_t UInt3_raw_; +extern const XERdescriptor_t UInt3_xer_; +extern const TTCN_OERdescriptor_t UInt3_oer_; +extern const TTCN_Typedescriptor_t UInt3_descr_; +extern const TTCN_RAWdescriptor_t UInt4_raw_; +extern const XERdescriptor_t UInt4_xer_; +extern const TTCN_OERdescriptor_t UInt4_oer_; +extern const TTCN_Typedescriptor_t UInt4_descr_; +extern const TTCN_RAWdescriptor_t UInt5_raw_; +extern const XERdescriptor_t UInt5_xer_; +extern const TTCN_OERdescriptor_t UInt5_oer_; +extern const TTCN_Typedescriptor_t UInt5_descr_; +extern const TTCN_RAWdescriptor_t UInt6_raw_; +extern const XERdescriptor_t UInt6_xer_; +extern const TTCN_OERdescriptor_t UInt6_oer_; +extern const TTCN_Typedescriptor_t UInt6_descr_; +extern const TTCN_RAWdescriptor_t UInt7_raw_; +extern const XERdescriptor_t UInt7_xer_; +extern const TTCN_OERdescriptor_t UInt7_oer_; +extern const TTCN_Typedescriptor_t UInt7_descr_; +extern const TTCN_RAWdescriptor_t UInt8_raw_; +extern const XERdescriptor_t UInt8_xer_; +extern const TTCN_OERdescriptor_t UInt8_oer_; +extern const TTCN_Typedescriptor_t UInt8_descr_; +extern const TTCN_RAWdescriptor_t UInt9_raw_; +extern const XERdescriptor_t UInt9_xer_; +extern const TTCN_OERdescriptor_t UInt9_oer_; +extern const TTCN_Typedescriptor_t UInt9_descr_; +extern const TTCN_RAWdescriptor_t UInt10_raw_; +extern const XERdescriptor_t UInt10_xer_; +extern const TTCN_OERdescriptor_t UInt10_oer_; +extern const TTCN_Typedescriptor_t UInt10_descr_; +extern const TTCN_RAWdescriptor_t UInt11_raw_; +extern const XERdescriptor_t UInt11_xer_; +extern const TTCN_OERdescriptor_t UInt11_oer_; +extern const TTCN_Typedescriptor_t UInt11_descr_; +extern const TTCN_RAWdescriptor_t UInt12_raw_; +extern const XERdescriptor_t UInt12_xer_; +extern const TTCN_OERdescriptor_t UInt12_oer_; +extern const TTCN_Typedescriptor_t UInt12_descr_; +extern const TTCN_RAWdescriptor_t UInt13_raw_; +extern const XERdescriptor_t UInt13_xer_; +extern const TTCN_OERdescriptor_t UInt13_oer_; +extern const TTCN_Typedescriptor_t UInt13_descr_; +extern const TTCN_RAWdescriptor_t UInt14_raw_; +extern const XERdescriptor_t UInt14_xer_; +extern const TTCN_OERdescriptor_t UInt14_oer_; +extern const TTCN_Typedescriptor_t UInt14_descr_; +extern const TTCN_RAWdescriptor_t UInt15_raw_; +extern const XERdescriptor_t UInt15_xer_; +extern const TTCN_OERdescriptor_t UInt15_oer_; +extern const TTCN_Typedescriptor_t UInt15_descr_; +extern const TTCN_RAWdescriptor_t UInt16_raw_; +extern const XERdescriptor_t UInt16_xer_; +extern const TTCN_OERdescriptor_t UInt16_oer_; +extern const TTCN_Typedescriptor_t UInt16_descr_; +extern const TTCN_RAWdescriptor_t UInt17_raw_; +extern const XERdescriptor_t UInt17_xer_; +extern const TTCN_OERdescriptor_t UInt17_oer_; +extern const TTCN_Typedescriptor_t UInt17_descr_; +extern const TTCN_RAWdescriptor_t UInt18_raw_; +extern const XERdescriptor_t UInt18_xer_; +extern const TTCN_OERdescriptor_t UInt18_oer_; +extern const TTCN_Typedescriptor_t UInt18_descr_; +extern const TTCN_RAWdescriptor_t UInt19_raw_; +extern const XERdescriptor_t UInt19_xer_; +extern const TTCN_OERdescriptor_t UInt19_oer_; +extern const TTCN_Typedescriptor_t UInt19_descr_; +extern const TTCN_RAWdescriptor_t UInt20_raw_; +extern const XERdescriptor_t UInt20_xer_; +extern const TTCN_OERdescriptor_t UInt20_oer_; +extern const TTCN_Typedescriptor_t UInt20_descr_; +extern const TTCN_RAWdescriptor_t UInt21_raw_; +extern const XERdescriptor_t UInt21_xer_; +extern const TTCN_OERdescriptor_t UInt21_oer_; +extern const TTCN_Typedescriptor_t UInt21_descr_; +extern const TTCN_RAWdescriptor_t UInt22_raw_; +extern const XERdescriptor_t UInt22_xer_; +extern const TTCN_OERdescriptor_t UInt22_oer_; +extern const TTCN_Typedescriptor_t UInt22_descr_; +extern const TTCN_RAWdescriptor_t UInt23_raw_; +extern const XERdescriptor_t UInt23_xer_; +extern const TTCN_OERdescriptor_t UInt23_oer_; +extern const TTCN_Typedescriptor_t UInt23_descr_; +extern const TTCN_RAWdescriptor_t UInt24_raw_; +extern const XERdescriptor_t UInt24_xer_; +extern const TTCN_OERdescriptor_t UInt24_oer_; +extern const TTCN_Typedescriptor_t UInt24_descr_; +extern const TTCN_RAWdescriptor_t UInt25_raw_; +extern const XERdescriptor_t UInt25_xer_; +extern const TTCN_OERdescriptor_t UInt25_oer_; +extern const TTCN_Typedescriptor_t UInt25_descr_; +extern const TTCN_RAWdescriptor_t UInt26_raw_; +extern const XERdescriptor_t UInt26_xer_; +extern const TTCN_OERdescriptor_t UInt26_oer_; +extern const TTCN_Typedescriptor_t UInt26_descr_; +extern const TTCN_RAWdescriptor_t UInt27_raw_; +extern const XERdescriptor_t UInt27_xer_; +extern const TTCN_OERdescriptor_t UInt27_oer_; +extern const TTCN_Typedescriptor_t UInt27_descr_; +extern const TTCN_RAWdescriptor_t UInt28_raw_; +extern const XERdescriptor_t UInt28_xer_; +extern const TTCN_OERdescriptor_t UInt28_oer_; +extern const TTCN_Typedescriptor_t UInt28_descr_; +extern const TTCN_RAWdescriptor_t UInt29_raw_; +extern const XERdescriptor_t UInt29_xer_; +extern const TTCN_OERdescriptor_t UInt29_oer_; +extern const TTCN_Typedescriptor_t UInt29_descr_; +extern const TTCN_RAWdescriptor_t UInt30_raw_; +extern const XERdescriptor_t UInt30_xer_; +extern const TTCN_OERdescriptor_t UInt30_oer_; +extern const TTCN_Typedescriptor_t UInt30_descr_; +extern const TTCN_RAWdescriptor_t UInt31_raw_; +extern const XERdescriptor_t UInt31_xer_; +extern const TTCN_OERdescriptor_t UInt31_oer_; +extern const TTCN_Typedescriptor_t UInt31_descr_; +extern const TTCN_RAWdescriptor_t UInt32_raw_; +extern const XERdescriptor_t UInt32_xer_; +extern const TTCN_OERdescriptor_t UInt32_oer_; +extern const TTCN_Typedescriptor_t UInt32_descr_; +extern const TTCN_RAWdescriptor_t UInt36_raw_; +extern const XERdescriptor_t UInt36_xer_; +extern const TTCN_OERdescriptor_t UInt36_oer_; +extern const TTCN_Typedescriptor_t UInt36_descr_; +extern const TTCN_RAWdescriptor_t UInt48_raw_; +extern const XERdescriptor_t UInt48_xer_; +extern const TTCN_OERdescriptor_t UInt48_oer_; +extern const TTCN_Typedescriptor_t UInt48_descr_; +extern const TTCN_RAWdescriptor_t UInt52_raw_; +extern const XERdescriptor_t UInt52_xer_; +extern const TTCN_OERdescriptor_t UInt52_oer_; +extern const TTCN_Typedescriptor_t UInt52_descr_; +extern const TTCN_RAWdescriptor_t UInt64_raw_; +extern const XERdescriptor_t UInt64_xer_; +extern const TTCN_OERdescriptor_t UInt64_oer_; +extern const TTCN_Typedescriptor_t UInt64_descr_; +extern const INTEGER& c__int1Min; +extern INTEGER const_c__int1Min; +extern const INTEGER& c__int1Max; +extern INTEGER const_c__int1Max; +extern const INTEGER& c__int2Min; +extern INTEGER const_c__int2Min; +extern const INTEGER& c__int2Max; +extern INTEGER const_c__int2Max; +extern const INTEGER& c__int3Min; +extern INTEGER const_c__int3Min; +extern const INTEGER& c__int3Max; +extern INTEGER const_c__int3Max; +extern const INTEGER& c__int4Min; +extern INTEGER const_c__int4Min; +extern const INTEGER& c__int4Max; +extern INTEGER const_c__int4Max; +extern const INTEGER& c__int5Min; +extern INTEGER const_c__int5Min; +extern const INTEGER& c__int5Max; +extern INTEGER const_c__int5Max; +extern const INTEGER& c__int6Min; +extern INTEGER const_c__int6Min; +extern const INTEGER& c__int6Max; +extern INTEGER const_c__int6Max; +extern const INTEGER& c__int7Min; +extern INTEGER const_c__int7Min; +extern const INTEGER& c__int7Max; +extern INTEGER const_c__int7Max; +extern const INTEGER& c__int8Min; +extern INTEGER const_c__int8Min; +extern const INTEGER& c__int8Max; +extern INTEGER const_c__int8Max; +extern const INTEGER& c__int9Min; +extern INTEGER const_c__int9Min; +extern const INTEGER& c__int9Max; +extern INTEGER const_c__int9Max; +extern const INTEGER& c__int10Min; +extern INTEGER const_c__int10Min; +extern const INTEGER& c__int10Max; +extern INTEGER const_c__int10Max; +extern const INTEGER& c__int11Min; +extern INTEGER const_c__int11Min; +extern const INTEGER& c__int11Max; +extern INTEGER const_c__int11Max; +extern const INTEGER& c__int12Min; +extern INTEGER const_c__int12Min; +extern const INTEGER& c__int12Max; +extern INTEGER const_c__int12Max; +extern const INTEGER& c__int13Min; +extern INTEGER const_c__int13Min; +extern const INTEGER& c__int13Max; +extern INTEGER const_c__int13Max; +extern const INTEGER& c__int14Min; +extern INTEGER const_c__int14Min; +extern const INTEGER& c__int14Max; +extern INTEGER const_c__int14Max; +extern const INTEGER& c__int15Min; +extern INTEGER const_c__int15Min; +extern const INTEGER& c__int15Max; +extern INTEGER const_c__int15Max; +extern const INTEGER& c__int16Min; +extern INTEGER const_c__int16Min; +extern const INTEGER& c__int16Max; +extern INTEGER const_c__int16Max; +extern const INTEGER& c__int17Min; +extern INTEGER const_c__int17Min; +extern const INTEGER& c__int17Max; +extern INTEGER const_c__int17Max; +extern const INTEGER& c__int18Min; +extern INTEGER const_c__int18Min; +extern const INTEGER& c__int18Max; +extern INTEGER const_c__int18Max; +extern const INTEGER& c__int19Min; +extern INTEGER const_c__int19Min; +extern const INTEGER& c__int19Max; +extern INTEGER const_c__int19Max; +extern const INTEGER& c__int20Min; +extern INTEGER const_c__int20Min; +extern const INTEGER& c__int20Max; +extern INTEGER const_c__int20Max; +extern const INTEGER& c__int21Min; +extern INTEGER const_c__int21Min; +extern const INTEGER& c__int21Max; +extern INTEGER const_c__int21Max; +extern const INTEGER& c__int22Min; +extern INTEGER const_c__int22Min; +extern const INTEGER& c__int22Max; +extern INTEGER const_c__int22Max; +extern const INTEGER& c__int23Min; +extern INTEGER const_c__int23Min; +extern const INTEGER& c__int23Max; +extern INTEGER const_c__int23Max; +extern const INTEGER& c__int24Min; +extern INTEGER const_c__int24Min; +extern const INTEGER& c__int24Max; +extern INTEGER const_c__int24Max; +extern const INTEGER& c__int25Min; +extern INTEGER const_c__int25Min; +extern const INTEGER& c__int25Max; +extern INTEGER const_c__int25Max; +extern const INTEGER& c__int26Min; +extern INTEGER const_c__int26Min; +extern const INTEGER& c__int26Max; +extern INTEGER const_c__int26Max; +extern const INTEGER& c__int27Min; +extern INTEGER const_c__int27Min; +extern const INTEGER& c__int27Max; +extern INTEGER const_c__int27Max; +extern const INTEGER& c__int28Min; +extern INTEGER const_c__int28Min; +extern const INTEGER& c__int28Max; +extern INTEGER const_c__int28Max; +extern const INTEGER& c__int29Min; +extern INTEGER const_c__int29Min; +extern const INTEGER& c__int29Max; +extern INTEGER const_c__int29Max; +extern const INTEGER& c__int30Min; +extern INTEGER const_c__int30Min; +extern const INTEGER& c__int30Max; +extern INTEGER const_c__int30Max; +extern const INTEGER& c__int31Min; +extern INTEGER const_c__int31Min; +extern const INTEGER& c__int31Max; +extern INTEGER const_c__int31Max; +extern const INTEGER& c__int32Min; +extern INTEGER const_c__int32Min; +extern const INTEGER& c__int32Max; +extern INTEGER const_c__int32Max; +extern const XERdescriptor_t Int_xer_; +extern const TTCN_OERdescriptor_t Int_oer_; +extern const TTCN_Typedescriptor_t Int_descr_; +extern const TTCN_RAWdescriptor_t Int1_raw_; +extern const XERdescriptor_t Int1_xer_; +extern const TTCN_OERdescriptor_t Int1_oer_; +extern const TTCN_Typedescriptor_t Int1_descr_; +extern const TTCN_RAWdescriptor_t Int2_raw_; +extern const XERdescriptor_t Int2_xer_; +extern const TTCN_OERdescriptor_t Int2_oer_; +extern const TTCN_Typedescriptor_t Int2_descr_; +extern const TTCN_RAWdescriptor_t Int3_raw_; +extern const XERdescriptor_t Int3_xer_; +extern const TTCN_OERdescriptor_t Int3_oer_; +extern const TTCN_Typedescriptor_t Int3_descr_; +extern const TTCN_RAWdescriptor_t Int4_raw_; +extern const XERdescriptor_t Int4_xer_; +extern const TTCN_OERdescriptor_t Int4_oer_; +extern const TTCN_Typedescriptor_t Int4_descr_; +extern const TTCN_RAWdescriptor_t Int5_raw_; +extern const XERdescriptor_t Int5_xer_; +extern const TTCN_OERdescriptor_t Int5_oer_; +extern const TTCN_Typedescriptor_t Int5_descr_; +extern const TTCN_RAWdescriptor_t Int6_raw_; +extern const XERdescriptor_t Int6_xer_; +extern const TTCN_OERdescriptor_t Int6_oer_; +extern const TTCN_Typedescriptor_t Int6_descr_; +extern const TTCN_RAWdescriptor_t Int7_raw_; +extern const XERdescriptor_t Int7_xer_; +extern const TTCN_OERdescriptor_t Int7_oer_; +extern const TTCN_Typedescriptor_t Int7_descr_; +extern const TTCN_RAWdescriptor_t Int8_raw_; +extern const XERdescriptor_t Int8_xer_; +extern const TTCN_OERdescriptor_t Int8_oer_; +extern const TTCN_Typedescriptor_t Int8_descr_; +extern const TTCN_RAWdescriptor_t Int9_raw_; +extern const XERdescriptor_t Int9_xer_; +extern const TTCN_OERdescriptor_t Int9_oer_; +extern const TTCN_Typedescriptor_t Int9_descr_; +extern const TTCN_RAWdescriptor_t Int10_raw_; +extern const XERdescriptor_t Int10_xer_; +extern const TTCN_OERdescriptor_t Int10_oer_; +extern const TTCN_Typedescriptor_t Int10_descr_; +extern const TTCN_RAWdescriptor_t Int11_raw_; +extern const XERdescriptor_t Int11_xer_; +extern const TTCN_OERdescriptor_t Int11_oer_; +extern const TTCN_Typedescriptor_t Int11_descr_; +extern const TTCN_RAWdescriptor_t Int12_raw_; +extern const XERdescriptor_t Int12_xer_; +extern const TTCN_OERdescriptor_t Int12_oer_; +extern const TTCN_Typedescriptor_t Int12_descr_; +extern const TTCN_RAWdescriptor_t Int13_raw_; +extern const XERdescriptor_t Int13_xer_; +extern const TTCN_OERdescriptor_t Int13_oer_; +extern const TTCN_Typedescriptor_t Int13_descr_; +extern const TTCN_RAWdescriptor_t Int14_raw_; +extern const XERdescriptor_t Int14_xer_; +extern const TTCN_OERdescriptor_t Int14_oer_; +extern const TTCN_Typedescriptor_t Int14_descr_; +extern const TTCN_RAWdescriptor_t Int15_raw_; +extern const XERdescriptor_t Int15_xer_; +extern const TTCN_OERdescriptor_t Int15_oer_; +extern const TTCN_Typedescriptor_t Int15_descr_; +extern const TTCN_RAWdescriptor_t Int16_raw_; +extern const XERdescriptor_t Int16_xer_; +extern const TTCN_OERdescriptor_t Int16_oer_; +extern const TTCN_Typedescriptor_t Int16_descr_; +extern const TTCN_RAWdescriptor_t Int17_raw_; +extern const XERdescriptor_t Int17_xer_; +extern const TTCN_OERdescriptor_t Int17_oer_; +extern const TTCN_Typedescriptor_t Int17_descr_; +extern const TTCN_RAWdescriptor_t Int18_raw_; +extern const XERdescriptor_t Int18_xer_; +extern const TTCN_OERdescriptor_t Int18_oer_; +extern const TTCN_Typedescriptor_t Int18_descr_; +extern const TTCN_RAWdescriptor_t Int19_raw_; +extern const XERdescriptor_t Int19_xer_; +extern const TTCN_OERdescriptor_t Int19_oer_; +extern const TTCN_Typedescriptor_t Int19_descr_; +extern const TTCN_RAWdescriptor_t Int20_raw_; +extern const XERdescriptor_t Int20_xer_; +extern const TTCN_OERdescriptor_t Int20_oer_; +extern const TTCN_Typedescriptor_t Int20_descr_; +extern const TTCN_RAWdescriptor_t Int21_raw_; +extern const XERdescriptor_t Int21_xer_; +extern const TTCN_OERdescriptor_t Int21_oer_; +extern const TTCN_Typedescriptor_t Int21_descr_; +extern const TTCN_RAWdescriptor_t Int22_raw_; +extern const XERdescriptor_t Int22_xer_; +extern const TTCN_OERdescriptor_t Int22_oer_; +extern const TTCN_Typedescriptor_t Int22_descr_; +extern const TTCN_RAWdescriptor_t Int23_raw_; +extern const XERdescriptor_t Int23_xer_; +extern const TTCN_OERdescriptor_t Int23_oer_; +extern const TTCN_Typedescriptor_t Int23_descr_; +extern const TTCN_RAWdescriptor_t Int24_raw_; +extern const XERdescriptor_t Int24_xer_; +extern const TTCN_OERdescriptor_t Int24_oer_; +extern const TTCN_Typedescriptor_t Int24_descr_; +extern const TTCN_RAWdescriptor_t Int25_raw_; +extern const XERdescriptor_t Int25_xer_; +extern const TTCN_OERdescriptor_t Int25_oer_; +extern const TTCN_Typedescriptor_t Int25_descr_; +extern const TTCN_RAWdescriptor_t Int26_raw_; +extern const XERdescriptor_t Int26_xer_; +extern const TTCN_OERdescriptor_t Int26_oer_; +extern const TTCN_Typedescriptor_t Int26_descr_; +extern const TTCN_RAWdescriptor_t Int27_raw_; +extern const XERdescriptor_t Int27_xer_; +extern const TTCN_OERdescriptor_t Int27_oer_; +extern const TTCN_Typedescriptor_t Int27_descr_; +extern const TTCN_RAWdescriptor_t Int28_raw_; +extern const XERdescriptor_t Int28_xer_; +extern const TTCN_OERdescriptor_t Int28_oer_; +extern const TTCN_Typedescriptor_t Int28_descr_; +extern const TTCN_RAWdescriptor_t Int29_raw_; +extern const XERdescriptor_t Int29_xer_; +extern const TTCN_OERdescriptor_t Int29_oer_; +extern const TTCN_Typedescriptor_t Int29_descr_; +extern const TTCN_RAWdescriptor_t Int30_raw_; +extern const XERdescriptor_t Int30_xer_; +extern const TTCN_OERdescriptor_t Int30_oer_; +extern const TTCN_Typedescriptor_t Int30_descr_; +extern const TTCN_RAWdescriptor_t Int31_raw_; +extern const XERdescriptor_t Int31_xer_; +extern const TTCN_OERdescriptor_t Int31_oer_; +extern const TTCN_Typedescriptor_t Int31_descr_; +extern const TTCN_RAWdescriptor_t Int32_raw_; +extern const XERdescriptor_t Int32_xer_; +extern const TTCN_OERdescriptor_t Int32_oer_; +extern const TTCN_Typedescriptor_t Int32_descr_; +extern const INTEGER& c__uInt1Zero; +extern INTEGER const_c__uInt1Zero; +extern const INTEGER& c__uInt2Zero; +extern INTEGER const_c__uInt2Zero; +extern const INTEGER& c__uInt3Zero; +extern INTEGER const_c__uInt3Zero; +extern const INTEGER& c__uInt4Zero; +extern INTEGER const_c__uInt4Zero; +extern const INTEGER& c__uInt5Zero; +extern INTEGER const_c__uInt5Zero; +extern const INTEGER& c__uInt6Zero; +extern INTEGER const_c__uInt6Zero; +extern const INTEGER& c__uInt7Zero; +extern INTEGER const_c__uInt7Zero; +extern const INTEGER& c__uInt8Zero; +extern INTEGER const_c__uInt8Zero; +extern const INTEGER& c__uInt10Zero; +extern INTEGER const_c__uInt10Zero; +extern const INTEGER& c__uInt12Zero; +extern INTEGER const_c__uInt12Zero; +extern const INTEGER& c__uInt14Zero; +extern INTEGER const_c__uInt14Zero; +extern const INTEGER& c__uInt16Zero; +extern INTEGER const_c__uInt16Zero; +extern const INTEGER& c__uInt24Zero; +extern INTEGER const_c__uInt24Zero; +extern const INTEGER& c__uInt32Zero; +extern INTEGER const_c__uInt32Zero; +extern const INTEGER& c__uInt48Zero; +extern INTEGER const_c__uInt48Zero; +extern const TTCN_RAWdescriptor_t Bool1_raw_; +extern const XERdescriptor_t Bool1_xer_; +extern const TTCN_OERdescriptor_t Bool1_oer_; +extern const TTCN_Typedescriptor_t Bool1_descr_; +extern const TTCN_RAWdescriptor_t Bool2_raw_; +extern const XERdescriptor_t Bool2_xer_; +extern const TTCN_OERdescriptor_t Bool2_oer_; +extern const TTCN_Typedescriptor_t Bool2_descr_; +extern const TTCN_RAWdescriptor_t Bool3_raw_; +extern const XERdescriptor_t Bool3_xer_; +extern const TTCN_OERdescriptor_t Bool3_oer_; +extern const TTCN_Typedescriptor_t Bool3_descr_; +extern const TTCN_RAWdescriptor_t Bool4_raw_; +extern const XERdescriptor_t Bool4_xer_; +extern const TTCN_OERdescriptor_t Bool4_oer_; +extern const TTCN_Typedescriptor_t Bool4_descr_; +extern const TTCN_RAWdescriptor_t Bool5_raw_; +extern const XERdescriptor_t Bool5_xer_; +extern const TTCN_OERdescriptor_t Bool5_oer_; +extern const TTCN_Typedescriptor_t Bool5_descr_; +extern const TTCN_RAWdescriptor_t Bool6_raw_; +extern const XERdescriptor_t Bool6_xer_; +extern const TTCN_OERdescriptor_t Bool6_oer_; +extern const TTCN_Typedescriptor_t Bool6_descr_; +extern const TTCN_RAWdescriptor_t Bool7_raw_; +extern const XERdescriptor_t Bool7_xer_; +extern const TTCN_OERdescriptor_t Bool7_oer_; +extern const TTCN_Typedescriptor_t Bool7_descr_; +extern const TTCN_RAWdescriptor_t Bool8_raw_; +extern const XERdescriptor_t Bool8_xer_; +extern const TTCN_OERdescriptor_t Bool8_oer_; +extern const TTCN_Typedescriptor_t Bool8_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/LibCommon_BasicTypesAndValues.o b/build/Ats_NG_NAS/LibCommon_BasicTypesAndValues.o new file mode 100644 index 0000000000000000000000000000000000000000..d7b1496d49b40905ac83b58d7eb1f9f843153b5b Binary files /dev/null and b/build/Ats_NG_NAS/LibCommon_BasicTypesAndValues.o differ diff --git a/build/Ats_NG_NAS/LibCommon_DataStrings.cc b/build/Ats_NG_NAS/LibCommon_DataStrings.cc new file mode 100644 index 0000000000000000000000000000000000000000..8d40c1c7c8a73352e744237821c3892cb1975550 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_DataStrings.cc @@ -0,0 +1,1729 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "LibCommon_DataStrings.hh" + +namespace LibCommon__DataStrings { + +/* Prototypes of static functions */ + +static void pre_init_module(); + +/* Literal string constants */ + +static const unsigned char bs_0_bits[] = { 0 }, +bs_1_bits[] = { 0 }, +bs_2_bits[] = { 0 }, +bs_3_bits[] = { 0 }, +bs_4_bits[] = { 0 }, +bs_5_bits[] = { 0 }, +bs_6_bits[] = { 0, 0 }, +bs_7_bits[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; +static const BITSTRING bs_0(1, bs_0_bits), +bs_1(2, bs_1_bits), +bs_2(4, bs_2_bits), +bs_3(5, bs_3_bits), +bs_4(6, bs_4_bits), +bs_5(8, bs_5_bits), +bs_6(14, bs_6_bits), +bs_7(64, bs_7_bits); +static const unsigned char os_0_octets[] = { 0 }, +os_1_octets[] = { 0, 0 }, +os_2_octets[] = { 0, 0, 0, 0 }, +os_3_octets[] = { 0, 0, 0, 0, 0, 0 }, +os_4_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0 }, +os_5_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_6_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_7_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_8_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_9_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_10_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_15_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_11_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_12_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_16_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_13_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_14_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_17_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_18_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_19_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_20_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +static const OCTETSTRING os_0(1, os_0_octets), +os_1(2, os_1_octets), +os_2(4, os_2_octets), +os_3(6, os_3_octets), +os_4(8, os_4_octets), +os_5(9, os_5_octets), +os_6(12, os_6_octets), +os_7(16, os_7_octets), +os_8(20, os_8_octets), +os_9(80, os_9_octets), +os_10(160, os_10_octets), +os_15(256, os_15_octets), +os_11(320, os_11_octets), +os_12(640, os_12_octets), +os_16(1024, os_16_octets), +os_13(1280, os_13_octets), +os_14(1380, os_14_octets), +os_17(4096, os_17_octets), +os_18(16384, os_18_octets), +os_19(65536, os_19_octets), +os_20(131072, os_20_octets); +static const unsigned char module_checksum[] = { 0x91, 0x54, 0x02, 0x04, 0xee, 0x0e, 0x40, 0x85, 0x24, 0x95, 0x23, 0x9c, 0xbd, 0x2c, 0x50, 0x6c }; + +/* Global variable definitions */ + +const TTCN_RAWdescriptor_t Bit1_raw_ = {1,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit1_xer_ = { {"Bit1>\n", "Bit1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit1_descr_ = { "@LibCommon_DataStrings.Bit1", &BITSTRING_ber_, &Bit1_raw_, NULL, &Bit1_xer_, &BITSTRING_json_, &Bit1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit2_raw_ = {2,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit2_xer_ = { {"Bit2>\n", "Bit2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit2_descr_ = { "@LibCommon_DataStrings.Bit2", &BITSTRING_ber_, &Bit2_raw_, NULL, &Bit2_xer_, &BITSTRING_json_, &Bit2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit3_raw_ = {3,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit3_xer_ = { {"Bit3>\n", "Bit3>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit3_descr_ = { "@LibCommon_DataStrings.Bit3", &BITSTRING_ber_, &Bit3_raw_, NULL, &Bit3_xer_, &BITSTRING_json_, &Bit3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit4_raw_ = {4,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit4_xer_ = { {"Bit4>\n", "Bit4>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit4_descr_ = { "@LibCommon_DataStrings.Bit4", &BITSTRING_ber_, &Bit4_raw_, NULL, &Bit4_xer_, &BITSTRING_json_, &Bit4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit5_raw_ = {5,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit5_xer_ = { {"Bit5>\n", "Bit5>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit5_descr_ = { "@LibCommon_DataStrings.Bit5", &BITSTRING_ber_, &Bit5_raw_, NULL, &Bit5_xer_, &BITSTRING_json_, &Bit5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit6_raw_ = {6,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit6_xer_ = { {"Bit6>\n", "Bit6>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit6_descr_ = { "@LibCommon_DataStrings.Bit6", &BITSTRING_ber_, &Bit6_raw_, NULL, &Bit6_xer_, &BITSTRING_json_, &Bit6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit7_raw_ = {7,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit7_xer_ = { {"Bit7>\n", "Bit7>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit7_descr_ = { "@LibCommon_DataStrings.Bit7", &BITSTRING_ber_, &Bit7_raw_, NULL, &Bit7_xer_, &BITSTRING_json_, &Bit7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit8_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit8_xer_ = { {"Bit8>\n", "Bit8>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit8_descr_ = { "@LibCommon_DataStrings.Bit8", &BITSTRING_ber_, &Bit8_raw_, NULL, &Bit8_xer_, &BITSTRING_json_, &Bit8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit9_raw_ = {9,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit9_xer_ = { {"Bit9>\n", "Bit9>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit9_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit9_descr_ = { "@LibCommon_DataStrings.Bit9", &BITSTRING_ber_, &Bit9_raw_, NULL, &Bit9_xer_, &BITSTRING_json_, &Bit9_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit10_raw_ = {10,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit10_xer_ = { {"Bit10>\n", "Bit10>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit10_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit10_descr_ = { "@LibCommon_DataStrings.Bit10", &BITSTRING_ber_, &Bit10_raw_, NULL, &Bit10_xer_, &BITSTRING_json_, &Bit10_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit11_raw_ = {11,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit11_xer_ = { {"Bit11>\n", "Bit11>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit11_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit11_descr_ = { "@LibCommon_DataStrings.Bit11", &BITSTRING_ber_, &Bit11_raw_, NULL, &Bit11_xer_, &BITSTRING_json_, &Bit11_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit12_raw_ = {12,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit12_xer_ = { {"Bit12>\n", "Bit12>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit12_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit12_descr_ = { "@LibCommon_DataStrings.Bit12", &BITSTRING_ber_, &Bit12_raw_, NULL, &Bit12_xer_, &BITSTRING_json_, &Bit12_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit13_raw_ = {13,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit13_xer_ = { {"Bit13>\n", "Bit13>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit13_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit13_descr_ = { "@LibCommon_DataStrings.Bit13", &BITSTRING_ber_, &Bit13_raw_, NULL, &Bit13_xer_, &BITSTRING_json_, &Bit13_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit14_raw_ = {14,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit14_xer_ = { {"Bit14>\n", "Bit14>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit14_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit14_descr_ = { "@LibCommon_DataStrings.Bit14", &BITSTRING_ber_, &Bit14_raw_, NULL, &Bit14_xer_, &BITSTRING_json_, &Bit14_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit15_raw_ = {15,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit15_xer_ = { {"Bit15>\n", "Bit15>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit15_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit15_descr_ = { "@LibCommon_DataStrings.Bit15", &BITSTRING_ber_, &Bit15_raw_, NULL, &Bit15_xer_, &BITSTRING_json_, &Bit15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit16_raw_ = {16,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit16_xer_ = { {"Bit16>\n", "Bit16>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit16_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit16_descr_ = { "@LibCommon_DataStrings.Bit16", &BITSTRING_ber_, &Bit16_raw_, NULL, &Bit16_xer_, &BITSTRING_json_, &Bit16_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit17_raw_ = {17,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit17_xer_ = { {"Bit17>\n", "Bit17>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit17_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit17_descr_ = { "@LibCommon_DataStrings.Bit17", &BITSTRING_ber_, &Bit17_raw_, NULL, &Bit17_xer_, &BITSTRING_json_, &Bit17_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit18_raw_ = {18,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit18_xer_ = { {"Bit18>\n", "Bit18>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit18_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit18_descr_ = { "@LibCommon_DataStrings.Bit18", &BITSTRING_ber_, &Bit18_raw_, NULL, &Bit18_xer_, &BITSTRING_json_, &Bit18_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit19_raw_ = {19,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit19_xer_ = { {"Bit19>\n", "Bit19>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit19_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit19_descr_ = { "@LibCommon_DataStrings.Bit19", &BITSTRING_ber_, &Bit19_raw_, NULL, &Bit19_xer_, &BITSTRING_json_, &Bit19_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit20_raw_ = {20,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit20_xer_ = { {"Bit20>\n", "Bit20>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit20_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit20_descr_ = { "@LibCommon_DataStrings.Bit20", &BITSTRING_ber_, &Bit20_raw_, NULL, &Bit20_xer_, &BITSTRING_json_, &Bit20_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit21_raw_ = {21,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit21_xer_ = { {"Bit21>\n", "Bit21>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit21_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit21_descr_ = { "@LibCommon_DataStrings.Bit21", &BITSTRING_ber_, &Bit21_raw_, NULL, &Bit21_xer_, &BITSTRING_json_, &Bit21_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit22_raw_ = {22,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit22_xer_ = { {"Bit22>\n", "Bit22>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit22_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit22_descr_ = { "@LibCommon_DataStrings.Bit22", &BITSTRING_ber_, &Bit22_raw_, NULL, &Bit22_xer_, &BITSTRING_json_, &Bit22_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit23_raw_ = {23,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit23_xer_ = { {"Bit23>\n", "Bit23>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit23_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit23_descr_ = { "@LibCommon_DataStrings.Bit23", &BITSTRING_ber_, &Bit23_raw_, NULL, &Bit23_xer_, &BITSTRING_json_, &Bit23_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit24_raw_ = {24,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit24_xer_ = { {"Bit24>\n", "Bit24>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit24_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit24_descr_ = { "@LibCommon_DataStrings.Bit24", &BITSTRING_ber_, &Bit24_raw_, NULL, &Bit24_xer_, &BITSTRING_json_, &Bit24_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit25_raw_ = {25,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit25_xer_ = { {"Bit25>\n", "Bit25>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit25_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit25_descr_ = { "@LibCommon_DataStrings.Bit25", &BITSTRING_ber_, &Bit25_raw_, NULL, &Bit25_xer_, &BITSTRING_json_, &Bit25_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit26_raw_ = {26,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit26_xer_ = { {"Bit26>\n", "Bit26>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit26_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit26_descr_ = { "@LibCommon_DataStrings.Bit26", &BITSTRING_ber_, &Bit26_raw_, NULL, &Bit26_xer_, &BITSTRING_json_, &Bit26_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit27_raw_ = {27,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit27_xer_ = { {"Bit27>\n", "Bit27>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit27_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit27_descr_ = { "@LibCommon_DataStrings.Bit27", &BITSTRING_ber_, &Bit27_raw_, NULL, &Bit27_xer_, &BITSTRING_json_, &Bit27_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit28_raw_ = {28,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit28_xer_ = { {"Bit28>\n", "Bit28>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit28_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit28_descr_ = { "@LibCommon_DataStrings.Bit28", &BITSTRING_ber_, &Bit28_raw_, NULL, &Bit28_xer_, &BITSTRING_json_, &Bit28_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit29_raw_ = {29,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit29_xer_ = { {"Bit29>\n", "Bit29>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit29_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit29_descr_ = { "@LibCommon_DataStrings.Bit29", &BITSTRING_ber_, &Bit29_raw_, NULL, &Bit29_xer_, &BITSTRING_json_, &Bit29_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit30_raw_ = {30,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit30_xer_ = { {"Bit30>\n", "Bit30>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit30_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit30_descr_ = { "@LibCommon_DataStrings.Bit30", &BITSTRING_ber_, &Bit30_raw_, NULL, &Bit30_xer_, &BITSTRING_json_, &Bit30_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit31_raw_ = {31,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit31_xer_ = { {"Bit31>\n", "Bit31>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit31_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit31_descr_ = { "@LibCommon_DataStrings.Bit31", &BITSTRING_ber_, &Bit31_raw_, NULL, &Bit31_xer_, &BITSTRING_json_, &Bit31_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit32_raw_ = {32,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit32_xer_ = { {"Bit32>\n", "Bit32>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit32_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit32_descr_ = { "@LibCommon_DataStrings.Bit32", &BITSTRING_ber_, &Bit32_raw_, NULL, &Bit32_xer_, &BITSTRING_json_, &Bit32_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit40_raw_ = {40,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit40_xer_ = { {"Bit40>\n", "Bit40>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit40_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit40_descr_ = { "@LibCommon_DataStrings.Bit40", &BITSTRING_ber_, &Bit40_raw_, NULL, &Bit40_xer_, &BITSTRING_json_, &Bit40_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit48_raw_ = {48,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit48_xer_ = { {"Bit48>\n", "Bit48>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit48_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit48_descr_ = { "@LibCommon_DataStrings.Bit48", &BITSTRING_ber_, &Bit48_raw_, NULL, &Bit48_xer_, &BITSTRING_json_, &Bit48_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit64_raw_ = {64,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit64_xer_ = { {"Bit64>\n", "Bit64>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit64_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit64_descr_ = { "@LibCommon_DataStrings.Bit64", &BITSTRING_ber_, &Bit64_raw_, NULL, &Bit64_xer_, &BITSTRING_json_, &Bit64_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit72_raw_ = {72,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit72_xer_ = { {"Bit72>\n", "Bit72>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit72_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit72_descr_ = { "@LibCommon_DataStrings.Bit72", &BITSTRING_ber_, &Bit72_raw_, NULL, &Bit72_xer_, &BITSTRING_json_, &Bit72_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit128_raw_ = {128,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit128_xer_ = { {"Bit128>\n", "Bit128>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit128_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit128_descr_ = { "@LibCommon_DataStrings.Bit128", &BITSTRING_ber_, &Bit128_raw_, NULL, &Bit128_xer_, &BITSTRING_json_, &Bit128_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit144_raw_ = {144,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit144_xer_ = { {"Bit144>\n", "Bit144>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit144_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit144_descr_ = { "@LibCommon_DataStrings.Bit144", &BITSTRING_ber_, &Bit144_raw_, NULL, &Bit144_xer_, &BITSTRING_json_, &Bit144_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Bit256_raw_ = {256,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Bit256_xer_ = { {"Bit256>\n", "Bit256>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Bit256_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Bit256_descr_ = { "@LibCommon_DataStrings.Bit256", &BITSTRING_ber_, &Bit256_raw_, NULL, &Bit256_xer_, &BITSTRING_json_, &Bit256_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +BITSTRING const_c__1ZeroBit; +const BITSTRING& c__1ZeroBit = const_c__1ZeroBit; +BITSTRING const_c__2ZeroBits; +const BITSTRING& c__2ZeroBits = const_c__2ZeroBits; +BITSTRING const_c__4ZeroBits; +const BITSTRING& c__4ZeroBits = const_c__4ZeroBits; +BITSTRING const_c__5ZeroBits; +const BITSTRING& c__5ZeroBits = const_c__5ZeroBits; +BITSTRING const_c__6ZeroBits; +const BITSTRING& c__6ZeroBits = const_c__6ZeroBits; +BITSTRING const_c__8ZeroBits; +const BITSTRING& c__8ZeroBits = const_c__8ZeroBits; +BITSTRING const_c__14ZeroBits; +const BITSTRING& c__14ZeroBits = const_c__14ZeroBits; +BITSTRING const_c__64ZeroBits; +const BITSTRING& c__64ZeroBits = const_c__64ZeroBits; +const TTCN_RAWdescriptor_t Oct1_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct1_xer_ = { {"Oct1>\n", "Oct1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct1_oer_ext_arr_[0] = {}; +const int Oct1_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct1_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Oct1_oer_ext_arr_, 0, Oct1_oer_p_}; +const TTCN_Typedescriptor_t Oct1_descr_ = { "@LibCommon_DataStrings.Oct1", &OCTETSTRING_ber_, &Oct1_raw_, &OCTETSTRING_text_, &Oct1_xer_, &OCTETSTRING_json_, &Oct1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct2_raw_ = {16,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct2_xer_ = { {"Oct2>\n", "Oct2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct2_oer_ext_arr_[0] = {}; +const int Oct2_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct2_oer_ = { -1, TRUE, 2, FALSE, 0, 0, Oct2_oer_ext_arr_, 0, Oct2_oer_p_}; +const TTCN_Typedescriptor_t Oct2_descr_ = { "@LibCommon_DataStrings.Oct2", &OCTETSTRING_ber_, &Oct2_raw_, &OCTETSTRING_text_, &Oct2_xer_, &OCTETSTRING_json_, &Oct2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct3_raw_ = {24,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct3_xer_ = { {"Oct3>\n", "Oct3>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct3_oer_ext_arr_[0] = {}; +const int Oct3_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct3_oer_ = { -1, TRUE, 3, FALSE, 0, 0, Oct3_oer_ext_arr_, 0, Oct3_oer_p_}; +const TTCN_Typedescriptor_t Oct3_descr_ = { "@LibCommon_DataStrings.Oct3", &OCTETSTRING_ber_, &Oct3_raw_, &OCTETSTRING_text_, &Oct3_xer_, &OCTETSTRING_json_, &Oct3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct4_raw_ = {32,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct4_xer_ = { {"Oct4>\n", "Oct4>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct4_oer_ext_arr_[0] = {}; +const int Oct4_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct4_oer_ = { -1, TRUE, 4, FALSE, 0, 0, Oct4_oer_ext_arr_, 0, Oct4_oer_p_}; +const TTCN_Typedescriptor_t Oct4_descr_ = { "@LibCommon_DataStrings.Oct4", &OCTETSTRING_ber_, &Oct4_raw_, &OCTETSTRING_text_, &Oct4_xer_, &OCTETSTRING_json_, &Oct4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct5_raw_ = {40,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct5_xer_ = { {"Oct5>\n", "Oct5>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct5_oer_ext_arr_[0] = {}; +const int Oct5_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct5_oer_ = { -1, TRUE, 5, FALSE, 0, 0, Oct5_oer_ext_arr_, 0, Oct5_oer_p_}; +const TTCN_Typedescriptor_t Oct5_descr_ = { "@LibCommon_DataStrings.Oct5", &OCTETSTRING_ber_, &Oct5_raw_, &OCTETSTRING_text_, &Oct5_xer_, &OCTETSTRING_json_, &Oct5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct6_raw_ = {48,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct6_xer_ = { {"Oct6>\n", "Oct6>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct6_oer_ext_arr_[0] = {}; +const int Oct6_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct6_oer_ = { -1, TRUE, 6, FALSE, 0, 0, Oct6_oer_ext_arr_, 0, Oct6_oer_p_}; +const TTCN_Typedescriptor_t Oct6_descr_ = { "@LibCommon_DataStrings.Oct6", &OCTETSTRING_ber_, &Oct6_raw_, &OCTETSTRING_text_, &Oct6_xer_, &OCTETSTRING_json_, &Oct6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct7_raw_ = {56,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct7_xer_ = { {"Oct7>\n", "Oct7>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct7_oer_ext_arr_[0] = {}; +const int Oct7_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct7_oer_ = { -1, TRUE, 7, FALSE, 0, 0, Oct7_oer_ext_arr_, 0, Oct7_oer_p_}; +const TTCN_Typedescriptor_t Oct7_descr_ = { "@LibCommon_DataStrings.Oct7", &OCTETSTRING_ber_, &Oct7_raw_, &OCTETSTRING_text_, &Oct7_xer_, &OCTETSTRING_json_, &Oct7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct8_raw_ = {64,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct8_xer_ = { {"Oct8>\n", "Oct8>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct8_oer_ext_arr_[0] = {}; +const int Oct8_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct8_oer_ = { -1, TRUE, 8, FALSE, 0, 0, Oct8_oer_ext_arr_, 0, Oct8_oer_p_}; +const TTCN_Typedescriptor_t Oct8_descr_ = { "@LibCommon_DataStrings.Oct8", &OCTETSTRING_ber_, &Oct8_raw_, &OCTETSTRING_text_, &Oct8_xer_, &OCTETSTRING_json_, &Oct8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct9_raw_ = {72,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct9_xer_ = { {"Oct9>\n", "Oct9>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct9_oer_ext_arr_[0] = {}; +const int Oct9_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct9_oer_ = { -1, TRUE, 9, FALSE, 0, 0, Oct9_oer_ext_arr_, 0, Oct9_oer_p_}; +const TTCN_Typedescriptor_t Oct9_descr_ = { "@LibCommon_DataStrings.Oct9", &OCTETSTRING_ber_, &Oct9_raw_, &OCTETSTRING_text_, &Oct9_xer_, &OCTETSTRING_json_, &Oct9_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct10_raw_ = {80,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct10_xer_ = { {"Oct10>\n", "Oct10>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct10_oer_ext_arr_[0] = {}; +const int Oct10_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct10_oer_ = { -1, TRUE, 10, FALSE, 0, 0, Oct10_oer_ext_arr_, 0, Oct10_oer_p_}; +const TTCN_Typedescriptor_t Oct10_descr_ = { "@LibCommon_DataStrings.Oct10", &OCTETSTRING_ber_, &Oct10_raw_, &OCTETSTRING_text_, &Oct10_xer_, &OCTETSTRING_json_, &Oct10_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct11_raw_ = {88,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct11_xer_ = { {"Oct11>\n", "Oct11>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct11_oer_ext_arr_[0] = {}; +const int Oct11_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct11_oer_ = { -1, TRUE, 11, FALSE, 0, 0, Oct11_oer_ext_arr_, 0, Oct11_oer_p_}; +const TTCN_Typedescriptor_t Oct11_descr_ = { "@LibCommon_DataStrings.Oct11", &OCTETSTRING_ber_, &Oct11_raw_, &OCTETSTRING_text_, &Oct11_xer_, &OCTETSTRING_json_, &Oct11_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct12_raw_ = {96,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct12_xer_ = { {"Oct12>\n", "Oct12>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct12_oer_ext_arr_[0] = {}; +const int Oct12_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct12_oer_ = { -1, TRUE, 12, FALSE, 0, 0, Oct12_oer_ext_arr_, 0, Oct12_oer_p_}; +const TTCN_Typedescriptor_t Oct12_descr_ = { "@LibCommon_DataStrings.Oct12", &OCTETSTRING_ber_, &Oct12_raw_, &OCTETSTRING_text_, &Oct12_xer_, &OCTETSTRING_json_, &Oct12_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct13_raw_ = {104,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct13_xer_ = { {"Oct13>\n", "Oct13>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct13_oer_ext_arr_[0] = {}; +const int Oct13_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct13_oer_ = { -1, TRUE, 13, FALSE, 0, 0, Oct13_oer_ext_arr_, 0, Oct13_oer_p_}; +const TTCN_Typedescriptor_t Oct13_descr_ = { "@LibCommon_DataStrings.Oct13", &OCTETSTRING_ber_, &Oct13_raw_, &OCTETSTRING_text_, &Oct13_xer_, &OCTETSTRING_json_, &Oct13_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct14_raw_ = {112,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct14_xer_ = { {"Oct14>\n", "Oct14>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct14_oer_ext_arr_[0] = {}; +const int Oct14_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct14_oer_ = { -1, TRUE, 14, FALSE, 0, 0, Oct14_oer_ext_arr_, 0, Oct14_oer_p_}; +const TTCN_Typedescriptor_t Oct14_descr_ = { "@LibCommon_DataStrings.Oct14", &OCTETSTRING_ber_, &Oct14_raw_, &OCTETSTRING_text_, &Oct14_xer_, &OCTETSTRING_json_, &Oct14_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct15_raw_ = {120,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct15_xer_ = { {"Oct15>\n", "Oct15>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct15_oer_ext_arr_[0] = {}; +const int Oct15_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct15_oer_ = { -1, TRUE, 15, FALSE, 0, 0, Oct15_oer_ext_arr_, 0, Oct15_oer_p_}; +const TTCN_Typedescriptor_t Oct15_descr_ = { "@LibCommon_DataStrings.Oct15", &OCTETSTRING_ber_, &Oct15_raw_, &OCTETSTRING_text_, &Oct15_xer_, &OCTETSTRING_json_, &Oct15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct16_raw_ = {128,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct16_xer_ = { {"Oct16>\n", "Oct16>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct16_oer_ext_arr_[0] = {}; +const int Oct16_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct16_oer_ = { -1, TRUE, 16, FALSE, 0, 0, Oct16_oer_ext_arr_, 0, Oct16_oer_p_}; +const TTCN_Typedescriptor_t Oct16_descr_ = { "@LibCommon_DataStrings.Oct16", &OCTETSTRING_ber_, &Oct16_raw_, &OCTETSTRING_text_, &Oct16_xer_, &OCTETSTRING_json_, &Oct16_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct20_raw_ = {160,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct20_xer_ = { {"Oct20>\n", "Oct20>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct20_oer_ext_arr_[0] = {}; +const int Oct20_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct20_oer_ = { -1, TRUE, 20, FALSE, 0, 0, Oct20_oer_ext_arr_, 0, Oct20_oer_p_}; +const TTCN_Typedescriptor_t Oct20_descr_ = { "@LibCommon_DataStrings.Oct20", &OCTETSTRING_ber_, &Oct20_raw_, &OCTETSTRING_text_, &Oct20_xer_, &OCTETSTRING_json_, &Oct20_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct32_raw_ = {256,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct32_xer_ = { {"Oct32>\n", "Oct32>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct32_oer_ext_arr_[0] = {}; +const int Oct32_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct32_oer_ = { -1, TRUE, 32, FALSE, 0, 0, Oct32_oer_ext_arr_, 0, Oct32_oer_p_}; +const TTCN_Typedescriptor_t Oct32_descr_ = { "@LibCommon_DataStrings.Oct32", &OCTETSTRING_ber_, &Oct32_raw_, &OCTETSTRING_text_, &Oct32_xer_, &OCTETSTRING_json_, &Oct32_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct48_raw_ = {384,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct48_xer_ = { {"Oct48>\n", "Oct48>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct48_oer_ext_arr_[0] = {}; +const int Oct48_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct48_oer_ = { -1, TRUE, 48, FALSE, 0, 0, Oct48_oer_ext_arr_, 0, Oct48_oer_p_}; +const TTCN_Typedescriptor_t Oct48_descr_ = { "@LibCommon_DataStrings.Oct48", &OCTETSTRING_ber_, &Oct48_raw_, &OCTETSTRING_text_, &Oct48_xer_, &OCTETSTRING_json_, &Oct48_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct64_raw_ = {512,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct64_xer_ = { {"Oct64>\n", "Oct64>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct64_oer_ext_arr_[0] = {}; +const int Oct64_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct64_oer_ = { -1, TRUE, 64, FALSE, 0, 0, Oct64_oer_ext_arr_, 0, Oct64_oer_p_}; +const TTCN_Typedescriptor_t Oct64_descr_ = { "@LibCommon_DataStrings.Oct64", &OCTETSTRING_ber_, &Oct64_raw_, &OCTETSTRING_text_, &Oct64_xer_, &OCTETSTRING_json_, &Oct64_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct80_raw_ = {640,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct80_xer_ = { {"Oct80>\n", "Oct80>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct80_oer_ext_arr_[0] = {}; +const int Oct80_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct80_oer_ = { -1, TRUE, 80, FALSE, 0, 0, Oct80_oer_ext_arr_, 0, Oct80_oer_p_}; +const TTCN_Typedescriptor_t Oct80_descr_ = { "@LibCommon_DataStrings.Oct80", &OCTETSTRING_ber_, &Oct80_raw_, &OCTETSTRING_text_, &Oct80_xer_, &OCTETSTRING_json_, &Oct80_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct96_raw_ = {768,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct96_xer_ = { {"Oct96>\n", "Oct96>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct96_oer_ext_arr_[0] = {}; +const int Oct96_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct96_oer_ = { -1, TRUE, 96, FALSE, 0, 0, Oct96_oer_ext_arr_, 0, Oct96_oer_p_}; +const TTCN_Typedescriptor_t Oct96_descr_ = { "@LibCommon_DataStrings.Oct96", &OCTETSTRING_ber_, &Oct96_raw_, &OCTETSTRING_text_, &Oct96_xer_, &OCTETSTRING_json_, &Oct96_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct128_raw_ = {1024,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct128_xer_ = { {"Oct128>\n", "Oct128>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct128_oer_ext_arr_[0] = {}; +const int Oct128_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct128_oer_ = { -1, TRUE, 128, FALSE, 0, 0, Oct128_oer_ext_arr_, 0, Oct128_oer_p_}; +const TTCN_Typedescriptor_t Oct128_descr_ = { "@LibCommon_DataStrings.Oct128", &OCTETSTRING_ber_, &Oct128_raw_, &OCTETSTRING_text_, &Oct128_xer_, &OCTETSTRING_json_, &Oct128_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct160_raw_ = {1280,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct160_xer_ = { {"Oct160>\n", "Oct160>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct160_oer_ext_arr_[0] = {}; +const int Oct160_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct160_oer_ = { -1, TRUE, 160, FALSE, 0, 0, Oct160_oer_ext_arr_, 0, Oct160_oer_p_}; +const TTCN_Typedescriptor_t Oct160_descr_ = { "@LibCommon_DataStrings.Oct160", &OCTETSTRING_ber_, &Oct160_raw_, &OCTETSTRING_text_, &Oct160_xer_, &OCTETSTRING_json_, &Oct160_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct320_raw_ = {2560,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct320_xer_ = { {"Oct320>\n", "Oct320>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct320_oer_ext_arr_[0] = {}; +const int Oct320_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct320_oer_ = { -1, TRUE, 320, FALSE, 0, 0, Oct320_oer_ext_arr_, 0, Oct320_oer_p_}; +const TTCN_Typedescriptor_t Oct320_descr_ = { "@LibCommon_DataStrings.Oct320", &OCTETSTRING_ber_, &Oct320_raw_, &OCTETSTRING_text_, &Oct320_xer_, &OCTETSTRING_json_, &Oct320_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct640_raw_ = {5120,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct640_xer_ = { {"Oct640>\n", "Oct640>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct640_oer_ext_arr_[0] = {}; +const int Oct640_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct640_oer_ = { -1, TRUE, 640, FALSE, 0, 0, Oct640_oer_ext_arr_, 0, Oct640_oer_p_}; +const TTCN_Typedescriptor_t Oct640_descr_ = { "@LibCommon_DataStrings.Oct640", &OCTETSTRING_ber_, &Oct640_raw_, &OCTETSTRING_text_, &Oct640_xer_, &OCTETSTRING_json_, &Oct640_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct1280_raw_ = {10240,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct1280_xer_ = { {"Oct1280>\n", "Oct1280>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct1280_oer_ext_arr_[0] = {}; +const int Oct1280_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct1280_oer_ = { -1, TRUE, 1280, FALSE, 0, 0, Oct1280_oer_ext_arr_, 0, Oct1280_oer_p_}; +const TTCN_Typedescriptor_t Oct1280_descr_ = { "@LibCommon_DataStrings.Oct1280", &OCTETSTRING_ber_, &Oct1280_raw_, &OCTETSTRING_text_, &Oct1280_xer_, &OCTETSTRING_json_, &Oct1280_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t Oct1380_raw_ = {11040,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t Oct1380_xer_ = { {"Oct1380>\n", "Oct1380>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct1380_oer_ext_arr_[0] = {}; +const int Oct1380_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct1380_oer_ = { -1, TRUE, 1380, FALSE, 0, 0, Oct1380_oer_ext_arr_, 0, Oct1380_oer_p_}; +const TTCN_Typedescriptor_t Oct1380_descr_ = { "@LibCommon_DataStrings.Oct1380", &OCTETSTRING_ber_, &Oct1380_raw_, &OCTETSTRING_text_, &Oct1380_xer_, &OCTETSTRING_json_, &Oct1380_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct0to3_xer_ = { {"Oct0to3>\n", "Oct0to3>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct0to3_oer_ext_arr_[0] = {}; +const int Oct0to3_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct0to3_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct0to3_oer_ext_arr_, 0, Oct0to3_oer_p_}; +const TTCN_Typedescriptor_t Oct0to3_descr_ = { "@LibCommon_DataStrings.Oct0to3", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct0to3_xer_, &OCTETSTRING_json_, &Oct0to3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct0to8_xer_ = { {"Oct0to8>\n", "Oct0to8>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct0to8_oer_ext_arr_[0] = {}; +const int Oct0to8_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct0to8_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct0to8_oer_ext_arr_, 0, Oct0to8_oer_p_}; +const TTCN_Typedescriptor_t Oct0to8_descr_ = { "@LibCommon_DataStrings.Oct0to8", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct0to8_xer_, &OCTETSTRING_json_, &Oct0to8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct0to12_xer_ = { {"Oct0to12>\n", "Oct0to12>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct0to12_oer_ext_arr_[0] = {}; +const int Oct0to12_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct0to12_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct0to12_oer_ext_arr_, 0, Oct0to12_oer_p_}; +const TTCN_Typedescriptor_t Oct0to12_descr_ = { "@LibCommon_DataStrings.Oct0to12", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct0to12_xer_, &OCTETSTRING_json_, &Oct0to12_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct0to16_xer_ = { {"Oct0to16>\n", "Oct0to16>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct0to16_oer_ext_arr_[0] = {}; +const int Oct0to16_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct0to16_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct0to16_oer_ext_arr_, 0, Oct0to16_oer_p_}; +const TTCN_Typedescriptor_t Oct0to16_descr_ = { "@LibCommon_DataStrings.Oct0to16", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct0to16_xer_, &OCTETSTRING_json_, &Oct0to16_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct0to31_xer_ = { {"Oct0to31>\n", "Oct0to31>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct0to31_oer_ext_arr_[0] = {}; +const int Oct0to31_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct0to31_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct0to31_oer_ext_arr_, 0, Oct0to31_oer_p_}; +const TTCN_Typedescriptor_t Oct0to31_descr_ = { "@LibCommon_DataStrings.Oct0to31", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct0to31_xer_, &OCTETSTRING_json_, &Oct0to31_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct0to20_xer_ = { {"Oct0to20>\n", "Oct0to20>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct0to20_oer_ext_arr_[0] = {}; +const int Oct0to20_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct0to20_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct0to20_oer_ext_arr_, 0, Oct0to20_oer_p_}; +const TTCN_Typedescriptor_t Oct0to20_descr_ = { "@LibCommon_DataStrings.Oct0to20", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct0to20_xer_, &OCTETSTRING_json_, &Oct0to20_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct0to30_xer_ = { {"Oct0to30>\n", "Oct0to30>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct0to30_oer_ext_arr_[0] = {}; +const int Oct0to30_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct0to30_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct0to30_oer_ext_arr_, 0, Oct0to30_oer_p_}; +const TTCN_Typedescriptor_t Oct0to30_descr_ = { "@LibCommon_DataStrings.Oct0to30", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct0to30_xer_, &OCTETSTRING_json_, &Oct0to30_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct0to127_xer_ = { {"Oct0to127>\n", "Oct0to127>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct0to127_oer_ext_arr_[0] = {}; +const int Oct0to127_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct0to127_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct0to127_oer_ext_arr_, 0, Oct0to127_oer_p_}; +const TTCN_Typedescriptor_t Oct0to127_descr_ = { "@LibCommon_DataStrings.Oct0to127", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct0to127_xer_, &OCTETSTRING_json_, &Oct0to127_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct0to255_xer_ = { {"Oct0to255>\n", "Oct0to255>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct0to255_oer_ext_arr_[0] = {}; +const int Oct0to255_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct0to255_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct0to255_oer_ext_arr_, 0, Oct0to255_oer_p_}; +const TTCN_Typedescriptor_t Oct0to255_descr_ = { "@LibCommon_DataStrings.Oct0to255", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct0to255_xer_, &OCTETSTRING_json_, &Oct0to255_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct1to15_xer_ = { {"Oct1to15>\n", "Oct1to15>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct1to15_oer_ext_arr_[0] = {}; +const int Oct1to15_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct1to15_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct1to15_oer_ext_arr_, 0, Oct1to15_oer_p_}; +const TTCN_Typedescriptor_t Oct1to15_descr_ = { "@LibCommon_DataStrings.Oct1to15", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct1to15_xer_, &OCTETSTRING_json_, &Oct1to15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct1to31_xer_ = { {"Oct1to31>\n", "Oct1to31>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct1to31_oer_ext_arr_[0] = {}; +const int Oct1to31_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct1to31_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct1to31_oer_ext_arr_, 0, Oct1to31_oer_p_}; +const TTCN_Typedescriptor_t Oct1to31_descr_ = { "@LibCommon_DataStrings.Oct1to31", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct1to31_xer_, &OCTETSTRING_json_, &Oct1to31_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct1to128_xer_ = { {"Oct1to128>\n", "Oct1to128>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct1to128_oer_ext_arr_[0] = {}; +const int Oct1to128_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct1to128_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct1to128_oer_ext_arr_, 0, Oct1to128_oer_p_}; +const TTCN_Typedescriptor_t Oct1to128_descr_ = { "@LibCommon_DataStrings.Oct1to128", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct1to128_xer_, &OCTETSTRING_json_, &Oct1to128_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct1to254_xer_ = { {"Oct1to254>\n", "Oct1to254>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct1to254_oer_ext_arr_[0] = {}; +const int Oct1to254_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct1to254_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct1to254_oer_ext_arr_, 0, Oct1to254_oer_p_}; +const TTCN_Typedescriptor_t Oct1to254_descr_ = { "@LibCommon_DataStrings.Oct1to254", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct1to254_xer_, &OCTETSTRING_json_, &Oct1to254_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct1to255_xer_ = { {"Oct1to255>\n", "Oct1to255>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct1to255_oer_ext_arr_[0] = {}; +const int Oct1to255_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct1to255_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct1to255_oer_ext_arr_, 0, Oct1to255_oer_p_}; +const TTCN_Typedescriptor_t Oct1to255_descr_ = { "@LibCommon_DataStrings.Oct1to255", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct1to255_xer_, &OCTETSTRING_json_, &Oct1to255_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct4to16_xer_ = { {"Oct4to16>\n", "Oct4to16>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct4to16_oer_ext_arr_[0] = {}; +const int Oct4to16_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct4to16_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct4to16_oer_ext_arr_, 0, Oct4to16_oer_p_}; +const TTCN_Typedescriptor_t Oct4to16_descr_ = { "@LibCommon_DataStrings.Oct4to16", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct4to16_xer_, &OCTETSTRING_json_, &Oct4to16_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Oct6to15_xer_ = { {"Oct6to15>\n", "Oct6to15>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Oct6to15_oer_ext_arr_[0] = {}; +const int Oct6to15_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Oct6to15_oer_ = { -1, TRUE, -1, FALSE, 0, 0, Oct6to15_oer_ext_arr_, 0, Oct6to15_oer_p_}; +const TTCN_Typedescriptor_t Oct6to15_descr_ = { "@LibCommon_DataStrings.Oct6to15", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &Oct6to15_xer_, &OCTETSTRING_json_, &Oct6to15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +OCTETSTRING const_c__1ZeroByte; +const OCTETSTRING& c__1ZeroByte = const_c__1ZeroByte; +OCTETSTRING const_c__2ZeroBytes; +const OCTETSTRING& c__2ZeroBytes = const_c__2ZeroBytes; +OCTETSTRING const_c__4ZeroBytes; +const OCTETSTRING& c__4ZeroBytes = const_c__4ZeroBytes; +OCTETSTRING const_c__6ZeroBytes; +const OCTETSTRING& c__6ZeroBytes = const_c__6ZeroBytes; +OCTETSTRING const_c__8ZeroBytes; +const OCTETSTRING& c__8ZeroBytes = const_c__8ZeroBytes; +OCTETSTRING const_c__9ZeroBytes; +const OCTETSTRING& c__9ZeroBytes = const_c__9ZeroBytes; +OCTETSTRING const_c__12ZeroBytes; +const OCTETSTRING& c__12ZeroBytes = const_c__12ZeroBytes; +OCTETSTRING const_c__16ZeroBytes; +const OCTETSTRING& c__16ZeroBytes = const_c__16ZeroBytes; +OCTETSTRING const_c__20ZeroBytes; +const OCTETSTRING& c__20ZeroBytes = const_c__20ZeroBytes; +OCTETSTRING const_c__80ZeroBytes; +const OCTETSTRING& c__80ZeroBytes = const_c__80ZeroBytes; +OCTETSTRING const_c__160ZeroBytes; +const OCTETSTRING& c__160ZeroBytes = const_c__160ZeroBytes; +OCTETSTRING const_c__320ZeroBytes; +const OCTETSTRING& c__320ZeroBytes = const_c__320ZeroBytes; +OCTETSTRING const_c__640ZeroBytes; +const OCTETSTRING& c__640ZeroBytes = const_c__640ZeroBytes; +OCTETSTRING const_c__1280ZeroBytes; +const OCTETSTRING& c__1280ZeroBytes = const_c__1280ZeroBytes; +OCTETSTRING const_c__1380ZeroBytes; +const OCTETSTRING& c__1380ZeroBytes = const_c__1380ZeroBytes; +OCTETSTRING const_c__256ZeroBytes; +const OCTETSTRING& c__256ZeroBytes = const_c__256ZeroBytes; +OCTETSTRING const_c__1KZeroBytes; +const OCTETSTRING& c__1KZeroBytes = const_c__1KZeroBytes; +OCTETSTRING const_c__4KZeroBytes; +const OCTETSTRING& c__4KZeroBytes = const_c__4KZeroBytes; +OCTETSTRING const_c__16KZeroBytes; +const OCTETSTRING& c__16KZeroBytes = const_c__16KZeroBytes; +OCTETSTRING const_c__64KZeroBytes; +const OCTETSTRING& c__64KZeroBytes = const_c__64KZeroBytes; +OCTETSTRING const_c__128KZeroBytes; +const OCTETSTRING& c__128KZeroBytes = const_c__128KZeroBytes; +TTCN_Module module_object("LibCommon_DataStrings", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_LibCommon_DataStrings(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "Bit1")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit1 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit10")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit10 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit11")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit11 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit12")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit12 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit128")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit128 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit13")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit13 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit14")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit14 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit144")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit144 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit15")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit15 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit16")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit16 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit17")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit17 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit18")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit18 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit19")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit19 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit2")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit2 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit20")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit20 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit21")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit21 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit22")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit22 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit23")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit23 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit24")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit24 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit25")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit25 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit256")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit256 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit26")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit26 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit27")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit27 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit28")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit28 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit29")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit29 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit3")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit3 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit30")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit30 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit31")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit31 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit32")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit32 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit4")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit4 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit40")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit40 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit48")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit48 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit5")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit5 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit6")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit6 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit64")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit64 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit7")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit7 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit72")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit72 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit8")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit8 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit9")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Bit9 template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to12")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to12 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to127")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to127 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to16")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to16 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to20")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to20 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to255")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to255 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to3")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to3 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to30")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to30 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to31")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to31 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to8")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct0to8 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct10")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct10 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct11")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct11 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct12")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct12 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct128")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct128 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1280")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1280 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct13")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct13 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1380")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1380 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct14")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct14 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct15")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct15 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct16")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct16 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct160")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct160 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to128")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to128 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to15")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to15 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to254")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to254 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to255")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to255 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to31")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct1to31 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct2")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct2 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct20")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct20 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct3")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct3 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct32")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct32 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct320")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct320 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct4")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct4 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct48")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct48 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct4to16")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct4to16 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct5")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct5 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct6")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct6 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct64")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct64 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct640")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct640 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct6to15")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct6to15 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct7")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct7 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct8")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct8 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct80")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct80 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct9")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct9 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct96")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Oct96 template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_LibCommon_DataStrings(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "Bit1")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit1 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit10")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit10 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit11")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit11 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit12")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit12 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit128")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit128 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit13")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit13 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit14")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit14 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit144")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit144 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit15")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit15 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit16")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit16 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit17")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit17 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit18")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit18 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit19")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit19 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit2")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit2 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit20")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit20 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit21")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit21 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit22")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit22 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit23")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit23 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit24")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit24 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit25")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit25 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit256")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit256 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit26")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit26 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit27")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit27 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit28")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit28 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit29")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit29 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit3")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit3 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit30")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit30 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit31")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit31 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit32")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit32 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit4")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit4 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit40")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit40 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit48")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit48 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit5")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit5 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit6")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit6 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit64")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit64 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit7")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit7 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit72")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit72 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit8")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit8 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit9")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Bit9 template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to12")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to12 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to127")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to127 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to16")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to16 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to20")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to20 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to255")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to255 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to3")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to3 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to30")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to30 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to31")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to31 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to8")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct0to8 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct10")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct10 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct11")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct11 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct12")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct12 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct128")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct128 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1280")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1280 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct13")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct13 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1380")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1380 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct14")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct14 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct15")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct15 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct16")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct16 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct160")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct160 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to128")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to128 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to15")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to15 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to254")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to254 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to255")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to255 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to31")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct1to31 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct2")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct2 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct20")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct20 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct3")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct3 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct32")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct32 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct320")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct320 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct4")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct4 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct48")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct48 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct4to16")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct4to16 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct5")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct5 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct6")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct6 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct64")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct64 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct640")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct640 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct6to15")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct6to15 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct7")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct7 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct8")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct8 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct80")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct80 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct9")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct9 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct96")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Oct96 template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("LibCommon_DataStrings"); + global_scope->add_variable(&c__1280ZeroBytes, "c_1280ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__128KZeroBytes, "c_128KZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__12ZeroBytes, "c_12ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__1380ZeroBytes, "c_1380ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__14ZeroBits, "c_14ZeroBits", "bitstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__160ZeroBytes, "c_160ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__16KZeroBytes, "c_16KZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__16ZeroBytes, "c_16ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__1KZeroBytes, "c_1KZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__1ZeroBit, "c_1ZeroBit", "bitstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__1ZeroByte, "c_1ZeroByte", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__20ZeroBytes, "c_20ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__256ZeroBytes, "c_256ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__2ZeroBits, "c_2ZeroBits", "bitstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__2ZeroBytes, "c_2ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__320ZeroBytes, "c_320ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__4KZeroBytes, "c_4KZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__4ZeroBits, "c_4ZeroBits", "bitstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__4ZeroBytes, "c_4ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__5ZeroBits, "c_5ZeroBits", "bitstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__640ZeroBytes, "c_640ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__64KZeroBytes, "c_64KZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__64ZeroBits, "c_64ZeroBits", "bitstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__6ZeroBits, "c_6ZeroBits", "bitstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__6ZeroBytes, "c_6ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__80ZeroBytes, "c_80ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__8ZeroBits, "c_8ZeroBits", "bitstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__8ZeroBytes, "c_8ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__9ZeroBytes, "c_9ZeroBytes", "octetstring", "LibCommon_DataStrings", TTCN3_Debugger::print_base_var); +} + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_DataStrings"); +LibCommon__DataStrings::init_ttcn3_debugger(); +current_location.update_lineno(74); +ttcn3_debugger.breakpoint_entry(74); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 74 */ +const_c__1ZeroBit = bs_0; +current_location.update_lineno(75); +ttcn3_debugger.breakpoint_entry(75); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 75 */ +const_c__2ZeroBits = bs_1; +current_location.update_lineno(76); +ttcn3_debugger.breakpoint_entry(76); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 76 */ +const_c__4ZeroBits = bs_2; +current_location.update_lineno(77); +ttcn3_debugger.breakpoint_entry(77); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 77 */ +const_c__5ZeroBits = bs_3; +current_location.update_lineno(78); +ttcn3_debugger.breakpoint_entry(78); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 78 */ +const_c__6ZeroBits = bs_4; +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 79 */ +const_c__8ZeroBits = bs_5; +current_location.update_lineno(80); +ttcn3_debugger.breakpoint_entry(80); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 80 */ +const_c__14ZeroBits = bs_6; +current_location.update_lineno(81); +ttcn3_debugger.breakpoint_entry(81); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 81 */ +const_c__64ZeroBits = bs_7; +current_location.update_lineno(143); +ttcn3_debugger.breakpoint_entry(143); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 143 */ +const_c__1ZeroByte = os_0; +current_location.update_lineno(144); +ttcn3_debugger.breakpoint_entry(144); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 144 */ +const_c__2ZeroBytes = os_1; +current_location.update_lineno(145); +ttcn3_debugger.breakpoint_entry(145); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 145 */ +const_c__4ZeroBytes = os_2; +current_location.update_lineno(146); +ttcn3_debugger.breakpoint_entry(146); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 146 */ +const_c__6ZeroBytes = os_3; +current_location.update_lineno(147); +ttcn3_debugger.breakpoint_entry(147); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 147 */ +const_c__8ZeroBytes = os_4; +current_location.update_lineno(148); +ttcn3_debugger.breakpoint_entry(148); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 148 */ +const_c__9ZeroBytes = os_5; +current_location.update_lineno(149); +ttcn3_debugger.breakpoint_entry(149); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 149 */ +const_c__12ZeroBytes = os_6; +current_location.update_lineno(150); +ttcn3_debugger.breakpoint_entry(150); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 150 */ +const_c__16ZeroBytes = os_7; +current_location.update_lineno(151); +ttcn3_debugger.breakpoint_entry(151); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 151 */ +const_c__20ZeroBytes = os_8; +current_location.update_lineno(153); +ttcn3_debugger.breakpoint_entry(153); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 153 */ +const_c__80ZeroBytes = os_9; +current_location.update_lineno(154); +ttcn3_debugger.breakpoint_entry(154); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 154 */ +const_c__160ZeroBytes = os_10; +current_location.update_lineno(155); +ttcn3_debugger.breakpoint_entry(155); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 155 */ +const_c__320ZeroBytes = os_11; +current_location.update_lineno(156); +ttcn3_debugger.breakpoint_entry(156); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 156 */ +const_c__640ZeroBytes = os_12; +current_location.update_lineno(157); +ttcn3_debugger.breakpoint_entry(157); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 157 */ +const_c__1280ZeroBytes = os_13; +current_location.update_lineno(158); +ttcn3_debugger.breakpoint_entry(158); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 158 */ +const_c__1380ZeroBytes = os_14; +current_location.update_lineno(159); +ttcn3_debugger.breakpoint_entry(159); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 159 */ +const_c__256ZeroBytes = os_15; +current_location.update_lineno(160); +ttcn3_debugger.breakpoint_entry(160); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 160 */ +const_c__1KZeroBytes = os_16; +current_location.update_lineno(161); +ttcn3_debugger.breakpoint_entry(161); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 161 */ +const_c__4KZeroBytes = os_17; +current_location.update_lineno(162); +ttcn3_debugger.breakpoint_entry(162); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 162 */ +const_c__16KZeroBytes = os_18; +current_location.update_lineno(163); +ttcn3_debugger.breakpoint_entry(163); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 163 */ +const_c__64KZeroBytes = os_19; +current_location.update_lineno(164); +ttcn3_debugger.breakpoint_entry(164); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_DataStrings.ttcn, line 164 */ +const_c__128KZeroBytes = os_20; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/LibCommon_DataStrings.hh b/build/Ats_NG_NAS/LibCommon_DataStrings.hh new file mode 100644 index 0000000000000000000000000000000000000000..264120241b3a923476fbab543f1e12e802def29a --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_DataStrings.hh @@ -0,0 +1,589 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef LibCommon__DataStrings_HH +#define LibCommon__DataStrings_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include + +#if TTCN3_VERSION != 100000 +#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 + +namespace LibCommon__DataStrings { + +/* Type definitions */ + +typedef BITSTRING Bit1; +typedef BITSTRING_template Bit1_template; +typedef BITSTRING Bit2; +typedef BITSTRING_template Bit2_template; +typedef BITSTRING Bit3; +typedef BITSTRING_template Bit3_template; +typedef BITSTRING Bit4; +typedef BITSTRING_template Bit4_template; +typedef BITSTRING Bit5; +typedef BITSTRING_template Bit5_template; +typedef BITSTRING Bit6; +typedef BITSTRING_template Bit6_template; +typedef BITSTRING Bit7; +typedef BITSTRING_template Bit7_template; +typedef BITSTRING Bit8; +typedef BITSTRING_template Bit8_template; +typedef BITSTRING Bit9; +typedef BITSTRING_template Bit9_template; +typedef BITSTRING Bit10; +typedef BITSTRING_template Bit10_template; +typedef BITSTRING Bit11; +typedef BITSTRING_template Bit11_template; +typedef BITSTRING Bit12; +typedef BITSTRING_template Bit12_template; +typedef BITSTRING Bit13; +typedef BITSTRING_template Bit13_template; +typedef BITSTRING Bit14; +typedef BITSTRING_template Bit14_template; +typedef BITSTRING Bit15; +typedef BITSTRING_template Bit15_template; +typedef BITSTRING Bit16; +typedef BITSTRING_template Bit16_template; +typedef BITSTRING Bit17; +typedef BITSTRING_template Bit17_template; +typedef BITSTRING Bit18; +typedef BITSTRING_template Bit18_template; +typedef BITSTRING Bit19; +typedef BITSTRING_template Bit19_template; +typedef BITSTRING Bit20; +typedef BITSTRING_template Bit20_template; +typedef BITSTRING Bit21; +typedef BITSTRING_template Bit21_template; +typedef BITSTRING Bit22; +typedef BITSTRING_template Bit22_template; +typedef BITSTRING Bit23; +typedef BITSTRING_template Bit23_template; +typedef BITSTRING Bit24; +typedef BITSTRING_template Bit24_template; +typedef BITSTRING Bit25; +typedef BITSTRING_template Bit25_template; +typedef BITSTRING Bit26; +typedef BITSTRING_template Bit26_template; +typedef BITSTRING Bit27; +typedef BITSTRING_template Bit27_template; +typedef BITSTRING Bit28; +typedef BITSTRING_template Bit28_template; +typedef BITSTRING Bit29; +typedef BITSTRING_template Bit29_template; +typedef BITSTRING Bit30; +typedef BITSTRING_template Bit30_template; +typedef BITSTRING Bit31; +typedef BITSTRING_template Bit31_template; +typedef BITSTRING Bit32; +typedef BITSTRING_template Bit32_template; +typedef BITSTRING Bit40; +typedef BITSTRING_template Bit40_template; +typedef BITSTRING Bit48; +typedef BITSTRING_template Bit48_template; +typedef BITSTRING Bit64; +typedef BITSTRING_template Bit64_template; +typedef BITSTRING Bit72; +typedef BITSTRING_template Bit72_template; +typedef BITSTRING Bit128; +typedef BITSTRING_template Bit128_template; +typedef BITSTRING Bit144; +typedef BITSTRING_template Bit144_template; +typedef BITSTRING Bit256; +typedef BITSTRING_template Bit256_template; +typedef OCTETSTRING Oct1; +typedef OCTETSTRING_template Oct1_template; +typedef OCTETSTRING Oct2; +typedef OCTETSTRING_template Oct2_template; +typedef OCTETSTRING Oct3; +typedef OCTETSTRING_template Oct3_template; +typedef OCTETSTRING Oct4; +typedef OCTETSTRING_template Oct4_template; +typedef OCTETSTRING Oct5; +typedef OCTETSTRING_template Oct5_template; +typedef OCTETSTRING Oct6; +typedef OCTETSTRING_template Oct6_template; +typedef OCTETSTRING Oct7; +typedef OCTETSTRING_template Oct7_template; +typedef OCTETSTRING Oct8; +typedef OCTETSTRING_template Oct8_template; +typedef OCTETSTRING Oct9; +typedef OCTETSTRING_template Oct9_template; +typedef OCTETSTRING Oct10; +typedef OCTETSTRING_template Oct10_template; +typedef OCTETSTRING Oct11; +typedef OCTETSTRING_template Oct11_template; +typedef OCTETSTRING Oct12; +typedef OCTETSTRING_template Oct12_template; +typedef OCTETSTRING Oct13; +typedef OCTETSTRING_template Oct13_template; +typedef OCTETSTRING Oct14; +typedef OCTETSTRING_template Oct14_template; +typedef OCTETSTRING Oct15; +typedef OCTETSTRING_template Oct15_template; +typedef OCTETSTRING Oct16; +typedef OCTETSTRING_template Oct16_template; +typedef OCTETSTRING Oct20; +typedef OCTETSTRING_template Oct20_template; +typedef OCTETSTRING Oct32; +typedef OCTETSTRING_template Oct32_template; +typedef OCTETSTRING Oct48; +typedef OCTETSTRING_template Oct48_template; +typedef OCTETSTRING Oct64; +typedef OCTETSTRING_template Oct64_template; +typedef OCTETSTRING Oct80; +typedef OCTETSTRING_template Oct80_template; +typedef OCTETSTRING Oct96; +typedef OCTETSTRING_template Oct96_template; +typedef OCTETSTRING Oct128; +typedef OCTETSTRING_template Oct128_template; +typedef OCTETSTRING Oct160; +typedef OCTETSTRING_template Oct160_template; +typedef OCTETSTRING Oct320; +typedef OCTETSTRING_template Oct320_template; +typedef OCTETSTRING Oct640; +typedef OCTETSTRING_template Oct640_template; +typedef OCTETSTRING Oct1280; +typedef OCTETSTRING_template Oct1280_template; +typedef OCTETSTRING Oct1380; +typedef OCTETSTRING_template Oct1380_template; +typedef OCTETSTRING Oct0to3; +typedef OCTETSTRING_template Oct0to3_template; +typedef OCTETSTRING Oct0to8; +typedef OCTETSTRING_template Oct0to8_template; +typedef OCTETSTRING Oct0to12; +typedef OCTETSTRING_template Oct0to12_template; +typedef OCTETSTRING Oct0to16; +typedef OCTETSTRING_template Oct0to16_template; +typedef OCTETSTRING Oct0to31; +typedef OCTETSTRING_template Oct0to31_template; +typedef OCTETSTRING Oct0to20; +typedef OCTETSTRING_template Oct0to20_template; +typedef OCTETSTRING Oct0to30; +typedef OCTETSTRING_template Oct0to30_template; +typedef OCTETSTRING Oct0to127; +typedef OCTETSTRING_template Oct0to127_template; +typedef OCTETSTRING Oct0to255; +typedef OCTETSTRING_template Oct0to255_template; +typedef OCTETSTRING Oct1to15; +typedef OCTETSTRING_template Oct1to15_template; +typedef OCTETSTRING Oct1to31; +typedef OCTETSTRING_template Oct1to31_template; +typedef OCTETSTRING Oct1to128; +typedef OCTETSTRING_template Oct1to128_template; +typedef OCTETSTRING Oct1to254; +typedef OCTETSTRING_template Oct1to254_template; +typedef OCTETSTRING Oct1to255; +typedef OCTETSTRING_template Oct1to255_template; +typedef OCTETSTRING Oct4to16; +typedef OCTETSTRING_template Oct4to16_template; +typedef OCTETSTRING Oct6to15; +typedef OCTETSTRING_template Oct6to15_template; + +/* Class definitions */ + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_LibCommon_DataStrings(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_LibCommon_DataStrings(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Global variable declarations */ + +extern const TTCN_RAWdescriptor_t Bit1_raw_; +extern const XERdescriptor_t Bit1_xer_; +extern const TTCN_OERdescriptor_t Bit1_oer_; +extern const TTCN_Typedescriptor_t Bit1_descr_; +extern const TTCN_RAWdescriptor_t Bit2_raw_; +extern const XERdescriptor_t Bit2_xer_; +extern const TTCN_OERdescriptor_t Bit2_oer_; +extern const TTCN_Typedescriptor_t Bit2_descr_; +extern const TTCN_RAWdescriptor_t Bit3_raw_; +extern const XERdescriptor_t Bit3_xer_; +extern const TTCN_OERdescriptor_t Bit3_oer_; +extern const TTCN_Typedescriptor_t Bit3_descr_; +extern const TTCN_RAWdescriptor_t Bit4_raw_; +extern const XERdescriptor_t Bit4_xer_; +extern const TTCN_OERdescriptor_t Bit4_oer_; +extern const TTCN_Typedescriptor_t Bit4_descr_; +extern const TTCN_RAWdescriptor_t Bit5_raw_; +extern const XERdescriptor_t Bit5_xer_; +extern const TTCN_OERdescriptor_t Bit5_oer_; +extern const TTCN_Typedescriptor_t Bit5_descr_; +extern const TTCN_RAWdescriptor_t Bit6_raw_; +extern const XERdescriptor_t Bit6_xer_; +extern const TTCN_OERdescriptor_t Bit6_oer_; +extern const TTCN_Typedescriptor_t Bit6_descr_; +extern const TTCN_RAWdescriptor_t Bit7_raw_; +extern const XERdescriptor_t Bit7_xer_; +extern const TTCN_OERdescriptor_t Bit7_oer_; +extern const TTCN_Typedescriptor_t Bit7_descr_; +extern const TTCN_RAWdescriptor_t Bit8_raw_; +extern const XERdescriptor_t Bit8_xer_; +extern const TTCN_OERdescriptor_t Bit8_oer_; +extern const TTCN_Typedescriptor_t Bit8_descr_; +extern const TTCN_RAWdescriptor_t Bit9_raw_; +extern const XERdescriptor_t Bit9_xer_; +extern const TTCN_OERdescriptor_t Bit9_oer_; +extern const TTCN_Typedescriptor_t Bit9_descr_; +extern const TTCN_RAWdescriptor_t Bit10_raw_; +extern const XERdescriptor_t Bit10_xer_; +extern const TTCN_OERdescriptor_t Bit10_oer_; +extern const TTCN_Typedescriptor_t Bit10_descr_; +extern const TTCN_RAWdescriptor_t Bit11_raw_; +extern const XERdescriptor_t Bit11_xer_; +extern const TTCN_OERdescriptor_t Bit11_oer_; +extern const TTCN_Typedescriptor_t Bit11_descr_; +extern const TTCN_RAWdescriptor_t Bit12_raw_; +extern const XERdescriptor_t Bit12_xer_; +extern const TTCN_OERdescriptor_t Bit12_oer_; +extern const TTCN_Typedescriptor_t Bit12_descr_; +extern const TTCN_RAWdescriptor_t Bit13_raw_; +extern const XERdescriptor_t Bit13_xer_; +extern const TTCN_OERdescriptor_t Bit13_oer_; +extern const TTCN_Typedescriptor_t Bit13_descr_; +extern const TTCN_RAWdescriptor_t Bit14_raw_; +extern const XERdescriptor_t Bit14_xer_; +extern const TTCN_OERdescriptor_t Bit14_oer_; +extern const TTCN_Typedescriptor_t Bit14_descr_; +extern const TTCN_RAWdescriptor_t Bit15_raw_; +extern const XERdescriptor_t Bit15_xer_; +extern const TTCN_OERdescriptor_t Bit15_oer_; +extern const TTCN_Typedescriptor_t Bit15_descr_; +extern const TTCN_RAWdescriptor_t Bit16_raw_; +extern const XERdescriptor_t Bit16_xer_; +extern const TTCN_OERdescriptor_t Bit16_oer_; +extern const TTCN_Typedescriptor_t Bit16_descr_; +extern const TTCN_RAWdescriptor_t Bit17_raw_; +extern const XERdescriptor_t Bit17_xer_; +extern const TTCN_OERdescriptor_t Bit17_oer_; +extern const TTCN_Typedescriptor_t Bit17_descr_; +extern const TTCN_RAWdescriptor_t Bit18_raw_; +extern const XERdescriptor_t Bit18_xer_; +extern const TTCN_OERdescriptor_t Bit18_oer_; +extern const TTCN_Typedescriptor_t Bit18_descr_; +extern const TTCN_RAWdescriptor_t Bit19_raw_; +extern const XERdescriptor_t Bit19_xer_; +extern const TTCN_OERdescriptor_t Bit19_oer_; +extern const TTCN_Typedescriptor_t Bit19_descr_; +extern const TTCN_RAWdescriptor_t Bit20_raw_; +extern const XERdescriptor_t Bit20_xer_; +extern const TTCN_OERdescriptor_t Bit20_oer_; +extern const TTCN_Typedescriptor_t Bit20_descr_; +extern const TTCN_RAWdescriptor_t Bit21_raw_; +extern const XERdescriptor_t Bit21_xer_; +extern const TTCN_OERdescriptor_t Bit21_oer_; +extern const TTCN_Typedescriptor_t Bit21_descr_; +extern const TTCN_RAWdescriptor_t Bit22_raw_; +extern const XERdescriptor_t Bit22_xer_; +extern const TTCN_OERdescriptor_t Bit22_oer_; +extern const TTCN_Typedescriptor_t Bit22_descr_; +extern const TTCN_RAWdescriptor_t Bit23_raw_; +extern const XERdescriptor_t Bit23_xer_; +extern const TTCN_OERdescriptor_t Bit23_oer_; +extern const TTCN_Typedescriptor_t Bit23_descr_; +extern const TTCN_RAWdescriptor_t Bit24_raw_; +extern const XERdescriptor_t Bit24_xer_; +extern const TTCN_OERdescriptor_t Bit24_oer_; +extern const TTCN_Typedescriptor_t Bit24_descr_; +extern const TTCN_RAWdescriptor_t Bit25_raw_; +extern const XERdescriptor_t Bit25_xer_; +extern const TTCN_OERdescriptor_t Bit25_oer_; +extern const TTCN_Typedescriptor_t Bit25_descr_; +extern const TTCN_RAWdescriptor_t Bit26_raw_; +extern const XERdescriptor_t Bit26_xer_; +extern const TTCN_OERdescriptor_t Bit26_oer_; +extern const TTCN_Typedescriptor_t Bit26_descr_; +extern const TTCN_RAWdescriptor_t Bit27_raw_; +extern const XERdescriptor_t Bit27_xer_; +extern const TTCN_OERdescriptor_t Bit27_oer_; +extern const TTCN_Typedescriptor_t Bit27_descr_; +extern const TTCN_RAWdescriptor_t Bit28_raw_; +extern const XERdescriptor_t Bit28_xer_; +extern const TTCN_OERdescriptor_t Bit28_oer_; +extern const TTCN_Typedescriptor_t Bit28_descr_; +extern const TTCN_RAWdescriptor_t Bit29_raw_; +extern const XERdescriptor_t Bit29_xer_; +extern const TTCN_OERdescriptor_t Bit29_oer_; +extern const TTCN_Typedescriptor_t Bit29_descr_; +extern const TTCN_RAWdescriptor_t Bit30_raw_; +extern const XERdescriptor_t Bit30_xer_; +extern const TTCN_OERdescriptor_t Bit30_oer_; +extern const TTCN_Typedescriptor_t Bit30_descr_; +extern const TTCN_RAWdescriptor_t Bit31_raw_; +extern const XERdescriptor_t Bit31_xer_; +extern const TTCN_OERdescriptor_t Bit31_oer_; +extern const TTCN_Typedescriptor_t Bit31_descr_; +extern const TTCN_RAWdescriptor_t Bit32_raw_; +extern const XERdescriptor_t Bit32_xer_; +extern const TTCN_OERdescriptor_t Bit32_oer_; +extern const TTCN_Typedescriptor_t Bit32_descr_; +extern const TTCN_RAWdescriptor_t Bit40_raw_; +extern const XERdescriptor_t Bit40_xer_; +extern const TTCN_OERdescriptor_t Bit40_oer_; +extern const TTCN_Typedescriptor_t Bit40_descr_; +extern const TTCN_RAWdescriptor_t Bit48_raw_; +extern const XERdescriptor_t Bit48_xer_; +extern const TTCN_OERdescriptor_t Bit48_oer_; +extern const TTCN_Typedescriptor_t Bit48_descr_; +extern const TTCN_RAWdescriptor_t Bit64_raw_; +extern const XERdescriptor_t Bit64_xer_; +extern const TTCN_OERdescriptor_t Bit64_oer_; +extern const TTCN_Typedescriptor_t Bit64_descr_; +extern const TTCN_RAWdescriptor_t Bit72_raw_; +extern const XERdescriptor_t Bit72_xer_; +extern const TTCN_OERdescriptor_t Bit72_oer_; +extern const TTCN_Typedescriptor_t Bit72_descr_; +extern const TTCN_RAWdescriptor_t Bit128_raw_; +extern const XERdescriptor_t Bit128_xer_; +extern const TTCN_OERdescriptor_t Bit128_oer_; +extern const TTCN_Typedescriptor_t Bit128_descr_; +extern const TTCN_RAWdescriptor_t Bit144_raw_; +extern const XERdescriptor_t Bit144_xer_; +extern const TTCN_OERdescriptor_t Bit144_oer_; +extern const TTCN_Typedescriptor_t Bit144_descr_; +extern const TTCN_RAWdescriptor_t Bit256_raw_; +extern const XERdescriptor_t Bit256_xer_; +extern const TTCN_OERdescriptor_t Bit256_oer_; +extern const TTCN_Typedescriptor_t Bit256_descr_; +extern const BITSTRING& c__1ZeroBit; +extern BITSTRING const_c__1ZeroBit; +extern const BITSTRING& c__2ZeroBits; +extern BITSTRING const_c__2ZeroBits; +extern const BITSTRING& c__4ZeroBits; +extern BITSTRING const_c__4ZeroBits; +extern const BITSTRING& c__5ZeroBits; +extern BITSTRING const_c__5ZeroBits; +extern const BITSTRING& c__6ZeroBits; +extern BITSTRING const_c__6ZeroBits; +extern const BITSTRING& c__8ZeroBits; +extern BITSTRING const_c__8ZeroBits; +extern const BITSTRING& c__14ZeroBits; +extern BITSTRING const_c__14ZeroBits; +extern const BITSTRING& c__64ZeroBits; +extern BITSTRING const_c__64ZeroBits; +extern const TTCN_RAWdescriptor_t Oct1_raw_; +extern const XERdescriptor_t Oct1_xer_; +extern const TTCN_OERdescriptor_t Oct1_oer_; +extern const TTCN_Typedescriptor_t Oct1_descr_; +extern const TTCN_RAWdescriptor_t Oct2_raw_; +extern const XERdescriptor_t Oct2_xer_; +extern const TTCN_OERdescriptor_t Oct2_oer_; +extern const TTCN_Typedescriptor_t Oct2_descr_; +extern const TTCN_RAWdescriptor_t Oct3_raw_; +extern const XERdescriptor_t Oct3_xer_; +extern const TTCN_OERdescriptor_t Oct3_oer_; +extern const TTCN_Typedescriptor_t Oct3_descr_; +extern const TTCN_RAWdescriptor_t Oct4_raw_; +extern const XERdescriptor_t Oct4_xer_; +extern const TTCN_OERdescriptor_t Oct4_oer_; +extern const TTCN_Typedescriptor_t Oct4_descr_; +extern const TTCN_RAWdescriptor_t Oct5_raw_; +extern const XERdescriptor_t Oct5_xer_; +extern const TTCN_OERdescriptor_t Oct5_oer_; +extern const TTCN_Typedescriptor_t Oct5_descr_; +extern const TTCN_RAWdescriptor_t Oct6_raw_; +extern const XERdescriptor_t Oct6_xer_; +extern const TTCN_OERdescriptor_t Oct6_oer_; +extern const TTCN_Typedescriptor_t Oct6_descr_; +extern const TTCN_RAWdescriptor_t Oct7_raw_; +extern const XERdescriptor_t Oct7_xer_; +extern const TTCN_OERdescriptor_t Oct7_oer_; +extern const TTCN_Typedescriptor_t Oct7_descr_; +extern const TTCN_RAWdescriptor_t Oct8_raw_; +extern const XERdescriptor_t Oct8_xer_; +extern const TTCN_OERdescriptor_t Oct8_oer_; +extern const TTCN_Typedescriptor_t Oct8_descr_; +extern const TTCN_RAWdescriptor_t Oct9_raw_; +extern const XERdescriptor_t Oct9_xer_; +extern const TTCN_OERdescriptor_t Oct9_oer_; +extern const TTCN_Typedescriptor_t Oct9_descr_; +extern const TTCN_RAWdescriptor_t Oct10_raw_; +extern const XERdescriptor_t Oct10_xer_; +extern const TTCN_OERdescriptor_t Oct10_oer_; +extern const TTCN_Typedescriptor_t Oct10_descr_; +extern const TTCN_RAWdescriptor_t Oct11_raw_; +extern const XERdescriptor_t Oct11_xer_; +extern const TTCN_OERdescriptor_t Oct11_oer_; +extern const TTCN_Typedescriptor_t Oct11_descr_; +extern const TTCN_RAWdescriptor_t Oct12_raw_; +extern const XERdescriptor_t Oct12_xer_; +extern const TTCN_OERdescriptor_t Oct12_oer_; +extern const TTCN_Typedescriptor_t Oct12_descr_; +extern const TTCN_RAWdescriptor_t Oct13_raw_; +extern const XERdescriptor_t Oct13_xer_; +extern const TTCN_OERdescriptor_t Oct13_oer_; +extern const TTCN_Typedescriptor_t Oct13_descr_; +extern const TTCN_RAWdescriptor_t Oct14_raw_; +extern const XERdescriptor_t Oct14_xer_; +extern const TTCN_OERdescriptor_t Oct14_oer_; +extern const TTCN_Typedescriptor_t Oct14_descr_; +extern const TTCN_RAWdescriptor_t Oct15_raw_; +extern const XERdescriptor_t Oct15_xer_; +extern const TTCN_OERdescriptor_t Oct15_oer_; +extern const TTCN_Typedescriptor_t Oct15_descr_; +extern const TTCN_RAWdescriptor_t Oct16_raw_; +extern const XERdescriptor_t Oct16_xer_; +extern const TTCN_OERdescriptor_t Oct16_oer_; +extern const TTCN_Typedescriptor_t Oct16_descr_; +extern const TTCN_RAWdescriptor_t Oct20_raw_; +extern const XERdescriptor_t Oct20_xer_; +extern const TTCN_OERdescriptor_t Oct20_oer_; +extern const TTCN_Typedescriptor_t Oct20_descr_; +extern const TTCN_RAWdescriptor_t Oct32_raw_; +extern const XERdescriptor_t Oct32_xer_; +extern const TTCN_OERdescriptor_t Oct32_oer_; +extern const TTCN_Typedescriptor_t Oct32_descr_; +extern const TTCN_RAWdescriptor_t Oct48_raw_; +extern const XERdescriptor_t Oct48_xer_; +extern const TTCN_OERdescriptor_t Oct48_oer_; +extern const TTCN_Typedescriptor_t Oct48_descr_; +extern const TTCN_RAWdescriptor_t Oct64_raw_; +extern const XERdescriptor_t Oct64_xer_; +extern const TTCN_OERdescriptor_t Oct64_oer_; +extern const TTCN_Typedescriptor_t Oct64_descr_; +extern const TTCN_RAWdescriptor_t Oct80_raw_; +extern const XERdescriptor_t Oct80_xer_; +extern const TTCN_OERdescriptor_t Oct80_oer_; +extern const TTCN_Typedescriptor_t Oct80_descr_; +extern const TTCN_RAWdescriptor_t Oct96_raw_; +extern const XERdescriptor_t Oct96_xer_; +extern const TTCN_OERdescriptor_t Oct96_oer_; +extern const TTCN_Typedescriptor_t Oct96_descr_; +extern const TTCN_RAWdescriptor_t Oct128_raw_; +extern const XERdescriptor_t Oct128_xer_; +extern const TTCN_OERdescriptor_t Oct128_oer_; +extern const TTCN_Typedescriptor_t Oct128_descr_; +extern const TTCN_RAWdescriptor_t Oct160_raw_; +extern const XERdescriptor_t Oct160_xer_; +extern const TTCN_OERdescriptor_t Oct160_oer_; +extern const TTCN_Typedescriptor_t Oct160_descr_; +extern const TTCN_RAWdescriptor_t Oct320_raw_; +extern const XERdescriptor_t Oct320_xer_; +extern const TTCN_OERdescriptor_t Oct320_oer_; +extern const TTCN_Typedescriptor_t Oct320_descr_; +extern const TTCN_RAWdescriptor_t Oct640_raw_; +extern const XERdescriptor_t Oct640_xer_; +extern const TTCN_OERdescriptor_t Oct640_oer_; +extern const TTCN_Typedescriptor_t Oct640_descr_; +extern const TTCN_RAWdescriptor_t Oct1280_raw_; +extern const XERdescriptor_t Oct1280_xer_; +extern const TTCN_OERdescriptor_t Oct1280_oer_; +extern const TTCN_Typedescriptor_t Oct1280_descr_; +extern const TTCN_RAWdescriptor_t Oct1380_raw_; +extern const XERdescriptor_t Oct1380_xer_; +extern const TTCN_OERdescriptor_t Oct1380_oer_; +extern const TTCN_Typedescriptor_t Oct1380_descr_; +extern const XERdescriptor_t Oct0to3_xer_; +extern const TTCN_OERdescriptor_t Oct0to3_oer_; +extern const TTCN_Typedescriptor_t Oct0to3_descr_; +extern const XERdescriptor_t Oct0to8_xer_; +extern const TTCN_OERdescriptor_t Oct0to8_oer_; +extern const TTCN_Typedescriptor_t Oct0to8_descr_; +extern const XERdescriptor_t Oct0to12_xer_; +extern const TTCN_OERdescriptor_t Oct0to12_oer_; +extern const TTCN_Typedescriptor_t Oct0to12_descr_; +extern const XERdescriptor_t Oct0to16_xer_; +extern const TTCN_OERdescriptor_t Oct0to16_oer_; +extern const TTCN_Typedescriptor_t Oct0to16_descr_; +extern const XERdescriptor_t Oct0to31_xer_; +extern const TTCN_OERdescriptor_t Oct0to31_oer_; +extern const TTCN_Typedescriptor_t Oct0to31_descr_; +extern const XERdescriptor_t Oct0to20_xer_; +extern const TTCN_OERdescriptor_t Oct0to20_oer_; +extern const TTCN_Typedescriptor_t Oct0to20_descr_; +extern const XERdescriptor_t Oct0to30_xer_; +extern const TTCN_OERdescriptor_t Oct0to30_oer_; +extern const TTCN_Typedescriptor_t Oct0to30_descr_; +extern const XERdescriptor_t Oct0to127_xer_; +extern const TTCN_OERdescriptor_t Oct0to127_oer_; +extern const TTCN_Typedescriptor_t Oct0to127_descr_; +extern const XERdescriptor_t Oct0to255_xer_; +extern const TTCN_OERdescriptor_t Oct0to255_oer_; +extern const TTCN_Typedescriptor_t Oct0to255_descr_; +extern const XERdescriptor_t Oct1to15_xer_; +extern const TTCN_OERdescriptor_t Oct1to15_oer_; +extern const TTCN_Typedescriptor_t Oct1to15_descr_; +extern const XERdescriptor_t Oct1to31_xer_; +extern const TTCN_OERdescriptor_t Oct1to31_oer_; +extern const TTCN_Typedescriptor_t Oct1to31_descr_; +extern const XERdescriptor_t Oct1to128_xer_; +extern const TTCN_OERdescriptor_t Oct1to128_oer_; +extern const TTCN_Typedescriptor_t Oct1to128_descr_; +extern const XERdescriptor_t Oct1to254_xer_; +extern const TTCN_OERdescriptor_t Oct1to254_oer_; +extern const TTCN_Typedescriptor_t Oct1to254_descr_; +extern const XERdescriptor_t Oct1to255_xer_; +extern const TTCN_OERdescriptor_t Oct1to255_oer_; +extern const TTCN_Typedescriptor_t Oct1to255_descr_; +extern const XERdescriptor_t Oct4to16_xer_; +extern const TTCN_OERdescriptor_t Oct4to16_oer_; +extern const TTCN_Typedescriptor_t Oct4to16_descr_; +extern const XERdescriptor_t Oct6to15_xer_; +extern const TTCN_OERdescriptor_t Oct6to15_oer_; +extern const TTCN_Typedescriptor_t Oct6to15_descr_; +extern const OCTETSTRING& c__1ZeroByte; +extern OCTETSTRING const_c__1ZeroByte; +extern const OCTETSTRING& c__2ZeroBytes; +extern OCTETSTRING const_c__2ZeroBytes; +extern const OCTETSTRING& c__4ZeroBytes; +extern OCTETSTRING const_c__4ZeroBytes; +extern const OCTETSTRING& c__6ZeroBytes; +extern OCTETSTRING const_c__6ZeroBytes; +extern const OCTETSTRING& c__8ZeroBytes; +extern OCTETSTRING const_c__8ZeroBytes; +extern const OCTETSTRING& c__9ZeroBytes; +extern OCTETSTRING const_c__9ZeroBytes; +extern const OCTETSTRING& c__12ZeroBytes; +extern OCTETSTRING const_c__12ZeroBytes; +extern const OCTETSTRING& c__16ZeroBytes; +extern OCTETSTRING const_c__16ZeroBytes; +extern const OCTETSTRING& c__20ZeroBytes; +extern OCTETSTRING const_c__20ZeroBytes; +extern const OCTETSTRING& c__80ZeroBytes; +extern OCTETSTRING const_c__80ZeroBytes; +extern const OCTETSTRING& c__160ZeroBytes; +extern OCTETSTRING const_c__160ZeroBytes; +extern const OCTETSTRING& c__320ZeroBytes; +extern OCTETSTRING const_c__320ZeroBytes; +extern const OCTETSTRING& c__640ZeroBytes; +extern OCTETSTRING const_c__640ZeroBytes; +extern const OCTETSTRING& c__1280ZeroBytes; +extern OCTETSTRING const_c__1280ZeroBytes; +extern const OCTETSTRING& c__1380ZeroBytes; +extern OCTETSTRING const_c__1380ZeroBytes; +extern const OCTETSTRING& c__256ZeroBytes; +extern OCTETSTRING const_c__256ZeroBytes; +extern const OCTETSTRING& c__1KZeroBytes; +extern OCTETSTRING const_c__1KZeroBytes; +extern const OCTETSTRING& c__4KZeroBytes; +extern OCTETSTRING const_c__4KZeroBytes; +extern const OCTETSTRING& c__16KZeroBytes; +extern OCTETSTRING const_c__16KZeroBytes; +extern const OCTETSTRING& c__64KZeroBytes; +extern OCTETSTRING const_c__64KZeroBytes; +extern const OCTETSTRING& c__128KZeroBytes; +extern OCTETSTRING const_c__128KZeroBytes; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/LibCommon_DataStrings.o b/build/Ats_NG_NAS/LibCommon_DataStrings.o new file mode 100644 index 0000000000000000000000000000000000000000..e175161416f3bf778c1d908386bef4070abfe071 Binary files /dev/null and b/build/Ats_NG_NAS/LibCommon_DataStrings.o differ diff --git a/build/Ats_NG_NAS/LibCommon_Sync.cc b/build/Ats_NG_NAS/LibCommon_Sync.cc new file mode 100644 index 0000000000000000000000000000000000000000..46477a97f21eecf713c99aa817e2f6ea3b88fe05 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_Sync.cc @@ -0,0 +1,6743 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "LibCommon_Sync.hh" + +namespace LibCommon__Sync { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); +static boolean set_module_param(Module_Param& param); +static Module_Param* get_module_param(Module_Param_Name& param_name); +static void log_module_param(); +static boolean init_comp_type(const char *component_type, boolean init_base_comps); +static boolean init_system_port(const char* component_type, const char* port_name); +static boolean start_ptc_function(const char *function_name, Text_Buf& function_arguments); + +/* Literal string constants */ + +static const CHARSTRING cs_5(0, NULL), +cs_4(4, "IDLE"), +cs_3(8, "initDone"), +cs_1(13, "postambleDone"), +cs_0(12, "preambleDone"), +cs_2(12, "testBodyDone"), +cs_6('x'), +cs_7('y'); +static const unsigned char module_checksum[] = { 0xb3, 0x04, 0x53, 0x3b, 0x32, 0x81, 0x98, 0x22, 0x89, 0x42, 0x17, 0xff, 0x43, 0xad, 0xad, 0x2d }; + +/* Class definitions for internal use */ + +class a__dummyShutDown_Default : public Default_Base { +public: +a__dummyShutDown_Default(); +alt_status call_altstep(); +}; + +class a__shutdown_Default : public Default_Base { +public: +a__shutdown_Default(); +alt_status call_altstep(); +}; + + +/* Global variable definitions */ + +const TTCN_Typedescriptor_t& BaseSyncComp_descr_ = COMPONENT_descr_; +SyncPort BaseSyncComp_component_syncPort("syncPort"); +TIMER BaseSyncComp_component_tc__sync("tc_sync"); +const TTCN_Typedescriptor_t& ServerSyncComp_descr_ = COMPONENT_descr_; +TIMER ServerSyncComp_component_tc__shutDown("tc_shutDown"); +const TTCN_Typedescriptor_t& ClientSyncComp_descr_ = COMPONENT_descr_; +LibCommon__AbstractData::StringStack ClientSyncComp_component_v__stateStack; +// No XER for TestcaseStep +const TTCN_Typedescriptor_t TestcaseStep_descr_ = { "@LibCommon_Sync.TestcaseStep", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TestcaseStep ClientSyncComp_component_vc__testcaseStep; +const TTCN_Typedescriptor_t& SelfSyncComp_descr_ = COMPONENT_descr_; +SyncPort SelfSyncComp_component_syncSendPort("syncSendPort"); +CHARSTRING const_c__prDone; +const CHARSTRING& c__prDone = const_c__prDone; +CHARSTRING const_c__poDone; +const CHARSTRING& c__poDone = const_c__poDone; +CHARSTRING const_c__tbDone; +const CHARSTRING& c__tbDone = const_c__tbDone; +CHARSTRING const_c__initDone; +const CHARSTRING& c__initDone = const_c__initDone; +static FLOAT modulepar_PX__TSYNC__TIME__LIMIT; +const FLOAT& PX__TSYNC__TIME__LIMIT = modulepar_PX__TSYNC__TIME__LIMIT; +static FLOAT modulepar_PX__TSHUT__DOWN__TIME__LIMIT; +const FLOAT& PX__TSHUT__DOWN__TIME__LIMIT = modulepar_PX__TSHUT__DOWN__TIME__LIMIT; +// No XER for SyncPointList +const TTCN_Typedescriptor_t SyncPointList_descr_ = { "@LibCommon_Sync.SyncPointList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CHARSTRING_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SyncPointList_0_xer_ = { {"CHARSTRING>\n", "CHARSTRING>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t SyncPointList_0_descr_ = { "@LibCommon_Sync.SyncPointList.", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &SyncPointList_0_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ClientSyncCompList +const TTCN_Typedescriptor_t ClientSyncCompList_descr_ = { "@LibCommon_Sync.ClientSyncCompList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &COMPONENT_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SyncCmd +const TTCN_Typedescriptor_t SyncCmd_descr_ = { "@LibCommon_Sync.SyncCmd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ClientReady_syncPointId_xer_ = { {"syncPointId>\n", "syncPointId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ClientReady_syncPointId_descr_ = { "@LibCommon_Sync.ClientReady.syncPointId", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &ClientReady_syncPointId_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ClientReady +const TTCN_Typedescriptor_t ClientReady_descr_ = { "@LibCommon_Sync.ClientReady", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ServerReady_syncPointId_xer_ = { {"syncPointId>\n", "syncPointId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ServerReady_syncPointId_descr_ = { "@LibCommon_Sync.ServerReady.syncPointId", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &ServerReady_syncPointId_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ServerReady +const TTCN_Typedescriptor_t ServerReady_descr_ = { "@LibCommon_Sync.ServerReady", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ClientStop +const TTCN_Typedescriptor_t ClientStop_descr_ = { "@LibCommon_Sync.ClientStop", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ServerStop +const TTCN_Typedescriptor_t ServerStop_descr_ = { "@LibCommon_Sync.ServerStop", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +Erroneous_descriptor_t* template_m__syncClientReady_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_m__syncServerReady_err_descr_ptr = NULL; +SyncCmd_template template_m__syncClientStop; +const SyncCmd_template& m__syncClientStop = template_m__syncClientStop; +SyncCmd_template template_m__syncServerStop; +const SyncCmd_template& m__syncServerStop = template_m__syncServerStop; +TTCN_Module module_object("LibCommon_Sync", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, set_module_param, get_module_param, log_module_param, init_comp_type, init_system_port, start_ptc_function, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_LibCommon_Sync(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "ClientReady")) { + ((const ClientReady*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ClientReady template")) { + ((const ClientReady_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ClientStop")) { + ((const ClientStop*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ClientStop template")) { + ((const ClientStop_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ClientSyncCompList")) { + ((const ClientSyncCompList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ClientSyncCompList template")) { + ((const ClientSyncCompList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServerReady")) { + ((const ServerReady*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServerReady template")) { + ((const ServerReady_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServerStop")) { + ((const ServerStop*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServerStop template")) { + ((const ServerStop_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SyncCmd")) { + ((const SyncCmd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SyncCmd template")) { + ((const SyncCmd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SyncPointList")) { + ((const SyncPointList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SyncPointList template")) { + ((const SyncPointList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TestcaseStep")) { + ((const TestcaseStep*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TestcaseStep template")) { + ((const TestcaseStep_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_LibCommon_Sync(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "ClientReady")) { + ((ClientReady*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ClientReady template")) { + ((ClientReady_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ClientStop")) { + ((ClientStop*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ClientStop template")) { + ((ClientStop_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ClientSyncCompList")) { + ((ClientSyncCompList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ClientSyncCompList template")) { + ((ClientSyncCompList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServerReady")) { + ((ServerReady*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServerReady template")) { + ((ServerReady_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServerStop")) { + ((ServerStop*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServerStop template")) { + ((ServerStop_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SyncCmd")) { + ((SyncCmd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SyncCmd template")) { + ((SyncCmd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SyncPointList")) { + ((SyncPointList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SyncPointList template")) { + ((SyncPointList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TestcaseStep")) { + ((TestcaseStep*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TestcaseStep template")) { + ((TestcaseStep_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("LibCommon_Sync"); + global_scope->add_variable(&PX__TSHUT__DOWN__TIME__LIMIT, "PX_TSHUT_DOWN_TIME_LIMIT", "float", "LibCommon_Sync", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&PX__TSYNC__TIME__LIMIT, "PX_TSYNC_TIME_LIMIT", "float", "LibCommon_Sync", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__initDone, "c_initDone", "charstring", "LibCommon_Sync", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__poDone, "c_poDone", "charstring", "LibCommon_Sync", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__prDone, "c_prDone", "charstring", "LibCommon_Sync", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__tbDone, "c_tbDone", "charstring", "LibCommon_Sync", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&m__syncClientStop, "m_syncClientStop", "SyncCmd template", "LibCommon_Sync", print_var_LibCommon_Sync); + global_scope->add_variable(&m__syncServerStop, "m_syncServerStop", "SyncCmd template", "LibCommon_Sync", print_var_LibCommon_Sync); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int10Max, "c_int10Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int10Min, "c_int10Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int11Max, "c_int11Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int11Min, "c_int11Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int12Max, "c_int12Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int12Min, "c_int12Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int13Max, "c_int13Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int13Min, "c_int13Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int14Max, "c_int14Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int14Min, "c_int14Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int15Max, "c_int15Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int15Min, "c_int15Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int16Max, "c_int16Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int16Min, "c_int16Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int17Max, "c_int17Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int17Min, "c_int17Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int18Max, "c_int18Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int18Min, "c_int18Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int19Max, "c_int19Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int19Min, "c_int19Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int1Max, "c_int1Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int1Min, "c_int1Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int20Max, "c_int20Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int20Min, "c_int20Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int21Max, "c_int21Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int21Min, "c_int21Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int22Max, "c_int22Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int22Min, "c_int22Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int23Max, "c_int23Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int23Min, "c_int23Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int24Max, "c_int24Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int24Min, "c_int24Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int25Max, "c_int25Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int25Min, "c_int25Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int26Max, "c_int26Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int26Min, "c_int26Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int27Max, "c_int27Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int27Min, "c_int27Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int28Max, "c_int28Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int28Min, "c_int28Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int29Max, "c_int29Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int29Min, "c_int29Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int2Max, "c_int2Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int2Min, "c_int2Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int30Max, "c_int30Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int30Min, "c_int30Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int31Max, "c_int31Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int31Min, "c_int31Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int32Max, "c_int32Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int32Min, "c_int32Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int3Max, "c_int3Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int3Min, "c_int3Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int4Max, "c_int4Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int4Min, "c_int4Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int5Max, "c_int5Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int5Min, "c_int5Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int6Max, "c_int6Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int6Min, "c_int6Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int7Max, "c_int7Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int7Min, "c_int7Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int8Max, "c_int8Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int8Min, "c_int8Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int9Max, "c_int9Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__int9Min, "c_int9Min", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt10Max, "c_uInt10Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt10Zero, "c_uInt10Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt11Max, "c_uInt11Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt12Max, "c_uInt12Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt12Zero, "c_uInt12Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt13Max, "c_uInt13Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt14Max, "c_uInt14Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt14Zero, "c_uInt14Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt15Max, "c_uInt15Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt16Max, "c_uInt16Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt16Zero, "c_uInt16Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt17Max, "c_uInt17Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt18Max, "c_uInt18Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt19Max, "c_uInt19Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt1Max, "c_uInt1Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt1Zero, "c_uInt1Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt20Max, "c_uInt20Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt21Max, "c_uInt21Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt22Max, "c_uInt22Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt23Max, "c_uInt23Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt24Max, "c_uInt24Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt24Zero, "c_uInt24Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt25Max, "c_uInt25Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt26Max, "c_uInt26Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt27Max, "c_uInt27Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt28Max, "c_uInt28Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt29Max, "c_uInt29Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt2Max, "c_uInt2Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt2Zero, "c_uInt2Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt30Max, "c_uInt30Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt31Max, "c_uInt31Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt32Max, "c_uInt32Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt32Zero, "c_uInt32Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt36Max, "c_uInt36Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt3Max, "c_uInt3Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt3Zero, "c_uInt3Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt48Max, "c_uInt48Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt48Zero, "c_uInt48Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt4Max, "c_uInt4Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt4Zero, "c_uInt4Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt52Max, "c_uInt52Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt5Max, "c_uInt5Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt5Zero, "c_uInt5Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt64Max, "c_uInt64Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt6Max, "c_uInt6Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt6Zero, "c_uInt6Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt7Max, "c_uInt7Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt7Zero, "c_uInt7Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt8Max, "c_uInt8Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt8Zero, "c_uInt8Zero", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__BasicTypesAndValues::c__uInt9Max, "c_uInt9Max", "integer", "LibCommon_BasicTypesAndValues", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&LibCommon__AbstractData::c__initStringStack, "c_initStringStack", "StringStack", "LibCommon_AbstractData", LibCommon__AbstractData::print_var_LibCommon_AbstractData); + /* variables of component BaseSyncComp */ + TTCN3_Debug_Scope* BaseSyncComp_scope = ttcn3_debugger.add_component_scope("BaseSyncComp"); + BaseSyncComp_scope->add_variable(&BaseSyncComp_component_syncPort, "syncPort", "port", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); + BaseSyncComp_scope->add_variable(&BaseSyncComp_component_tc__sync, "tc_sync", "timer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); + /* variables of component ClientSyncComp */ + TTCN3_Debug_Scope* ClientSyncComp_scope = ttcn3_debugger.add_component_scope("ClientSyncComp"); + ClientSyncComp_scope->add_variable(&BaseSyncComp_component_syncPort, "syncPort", "port", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); + ClientSyncComp_scope->add_variable(&BaseSyncComp_component_tc__sync, "tc_sync", "timer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); + ClientSyncComp_scope->add_variable(&ClientSyncComp_component_v__stateStack, "v_stateStack", "StringStack", NULL, LibCommon__AbstractData::print_var_LibCommon_AbstractData, LibCommon__AbstractData::set_var_LibCommon_AbstractData); + ClientSyncComp_scope->add_variable(&ClientSyncComp_component_vc__testcaseStep, "vc_testcaseStep", "TestcaseStep", NULL, print_var_LibCommon_Sync, set_var_LibCommon_Sync); + /* variables of component SelfSyncComp */ + TTCN3_Debug_Scope* SelfSyncComp_scope = ttcn3_debugger.add_component_scope("SelfSyncComp"); + SelfSyncComp_scope->add_variable(&BaseSyncComp_component_syncPort, "syncPort", "port", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); + SelfSyncComp_scope->add_variable(&SelfSyncComp_component_syncSendPort, "syncSendPort", "port", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); + SelfSyncComp_scope->add_variable(&BaseSyncComp_component_tc__sync, "tc_sync", "timer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); + SelfSyncComp_scope->add_variable(&ClientSyncComp_component_v__stateStack, "v_stateStack", "StringStack", NULL, LibCommon__AbstractData::print_var_LibCommon_AbstractData, LibCommon__AbstractData::set_var_LibCommon_AbstractData); + SelfSyncComp_scope->add_variable(&ClientSyncComp_component_vc__testcaseStep, "vc_testcaseStep", "TestcaseStep", NULL, print_var_LibCommon_Sync, set_var_LibCommon_Sync); + /* variables of component ServerSyncComp */ + TTCN3_Debug_Scope* ServerSyncComp_scope = ttcn3_debugger.add_component_scope("ServerSyncComp"); + ServerSyncComp_scope->add_variable(&BaseSyncComp_component_syncPort, "syncPort", "port", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); + ServerSyncComp_scope->add_variable(&ServerSyncComp_component_tc__shutDown, "tc_shutDown", "timer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); + ServerSyncComp_scope->add_variable(&BaseSyncComp_component_tc__sync, "tc_sync", "timer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +} + +/* Member functions of C++ classes */ + +TestcaseStep::TestcaseStep() +{ +enum_value = UNBOUND_VALUE; +} + +TestcaseStep::TestcaseStep(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @LibCommon_Sync.TestcaseStep with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +TestcaseStep::TestcaseStep(enum_type other_value) +{ +enum_value = other_value; +} + +TestcaseStep::TestcaseStep(const TestcaseStep& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +enum_value = other_value.enum_value; +} + +TestcaseStep& TestcaseStep::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @LibCommon_Sync.TestcaseStep.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +TestcaseStep& TestcaseStep::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +TestcaseStep& TestcaseStep::operator=(const TestcaseStep& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +enum_value = other_value.enum_value; +return *this; +} + +boolean TestcaseStep::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +return enum_value == other_value; +} + +boolean TestcaseStep::operator==(const TestcaseStep& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +return enum_value == other_value.enum_value; +} + +boolean TestcaseStep::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +return enum_value < other_value; +} + +boolean TestcaseStep::operator<(const TestcaseStep& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +return enum_value < other_value.enum_value; +} + +boolean TestcaseStep::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +return enum_value > other_value; +} + +boolean TestcaseStep::operator>(const TestcaseStep& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +return enum_value > other_value.enum_value; +} + +const char *TestcaseStep::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case e__preamble: return "e_preamble"; +case e__testBody: return "e_testBody"; +case e__postamble: return "e_postamble"; +default: return ""; +} +} + +TestcaseStep::enum_type TestcaseStep::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "e_preamble")) return e__preamble; +else if (!strcmp(str_par, "e_testBody")) return e__testBody; +else if (!strcmp(str_par, "e_postamble")) return e__postamble; +else return UNKNOWN_VALUE; +} + +boolean TestcaseStep::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +return TRUE; +default: +return FALSE; +} +} + +int TestcaseStep::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @LibCommon_Sync.TestcaseStep.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int TestcaseStep::enum2int(const TestcaseStep& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @LibCommon_Sync.TestcaseStep.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void TestcaseStep::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @LibCommon_Sync.TestcaseStep.", int_val); +enum_value = (enum_type)int_val; +} + +TestcaseStep::operator TestcaseStep::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @LibCommon_Sync.TestcaseStep."); +return enum_value; +} + +boolean TestcaseStep::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void TestcaseStep::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* TestcaseStep::clone() const { return new TestcaseStep(*this); } +const TTCN_Typedescriptor_t* TestcaseStep::get_descriptor() const { return &TestcaseStep_descr_; } +void TestcaseStep::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void TestcaseStep::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@LibCommon_Sync.TestcaseStep"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @LibCommon_Sync.TestcaseStep."); + } +} + +Module_Param* TestcaseStep::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void TestcaseStep::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +text_buf.push_int(enum_value); +} + +void TestcaseStep::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @LibCommon_Sync.TestcaseStep.", enum_value); +} + +void TestcaseStep_template::copy_template(const TestcaseStep_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new TestcaseStep_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new TestcaseStep_template(*other_value.implication_.precondition); +implication_.implied_template = new TestcaseStep_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @LibCommon_Sync.TestcaseStep."); +} +} + +TestcaseStep_template::TestcaseStep_template() +{ +} + +TestcaseStep_template::TestcaseStep_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +TestcaseStep_template::TestcaseStep_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!TestcaseStep::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @LibCommon_Sync.TestcaseStep with unknown numeric value %d.", other_value); +single_value = (TestcaseStep::enum_type)other_value; +} + +TestcaseStep_template::TestcaseStep_template(TestcaseStep::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +TestcaseStep_template::TestcaseStep_template(const TestcaseStep& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == TestcaseStep::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @LibCommon_Sync.TestcaseStep."); +single_value = other_value.enum_value; +} + +TestcaseStep_template::TestcaseStep_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (TestcaseStep::enum_type)(const TestcaseStep&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @LibCommon_Sync.TestcaseStep from an unbound optional field."); +} +} + +TestcaseStep_template::TestcaseStep_template(TestcaseStep_template* p_precondition, TestcaseStep_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +TestcaseStep_template::TestcaseStep_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +TestcaseStep_template::TestcaseStep_template(const TestcaseStep_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +TestcaseStep_template::~TestcaseStep_template() +{ +clean_up(); +} + +boolean TestcaseStep_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean TestcaseStep_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != TestcaseStep::UNBOUND_VALUE; +} + +void TestcaseStep_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +TestcaseStep_template& TestcaseStep_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TestcaseStep_template& TestcaseStep_template::operator=(int other_value) +{ +if (!TestcaseStep::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @LibCommon_Sync.TestcaseStep.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (TestcaseStep::enum_type)other_value; +return *this; +} + +TestcaseStep_template& TestcaseStep_template::operator=(TestcaseStep::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +TestcaseStep_template& TestcaseStep_template::operator=(const TestcaseStep& other_value) +{ +if (other_value.enum_value == TestcaseStep::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @LibCommon_Sync.TestcaseStep to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +TestcaseStep_template& TestcaseStep_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (TestcaseStep::enum_type)(const TestcaseStep&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @LibCommon_Sync.TestcaseStep."); +} +return *this; +} + +TestcaseStep_template& TestcaseStep_template::operator=(const TestcaseStep_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean TestcaseStep_template::match(TestcaseStep::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @LibCommon_Sync.TestcaseStep."); +} +return FALSE; +} + +boolean TestcaseStep_template::match(const TestcaseStep& other_value, boolean) const +{ +if (other_value.enum_value == TestcaseStep::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @LibCommon_Sync.TestcaseStep with an unbound value."); +return match(other_value.enum_value); +} + +TestcaseStep::enum_type TestcaseStep_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @LibCommon_Sync.TestcaseStep."); +return single_value; +} + +void TestcaseStep_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @LibCommon_Sync.TestcaseStep."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new TestcaseStep_template[list_length]; +} + +TestcaseStep_template& TestcaseStep_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @LibCommon_Sync.TestcaseStep."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @LibCommon_Sync.TestcaseStep."); +return value_list.list_value[list_index]; +} + +void TestcaseStep_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void TestcaseStep_template::set_value(template_sel other_value) { *this = other_value; } +void TestcaseStep_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* TestcaseStep_template::clone() const { return new TestcaseStep_template(*this); } +const TTCN_Typedescriptor_t* TestcaseStep_template::get_descriptor() const { return &TestcaseStep_descr_; } +boolean TestcaseStep_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void TestcaseStep_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void TestcaseStep_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(TestcaseStep::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void TestcaseStep_template::log_match(const TestcaseStep& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void TestcaseStep_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @LibCommon_Sync.TestcaseStep."); +} +} + +void TestcaseStep_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (TestcaseStep::enum_type)text_buf.pull_int().get_val(); +if (!TestcaseStep::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @LibCommon_Sync.TestcaseStep.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new TestcaseStep_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @LibCommon_Sync.TestcaseStep."); +} +} + +boolean TestcaseStep_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean TestcaseStep_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + TestcaseStep_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + TestcaseStep::enum_type enum_val = TestcaseStep::str_to_enum(m_p->get_enumerated()); + if (!TestcaseStep::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @LibCommon_Sync.TestcaseStep."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + TestcaseStep_template* precondition = new TestcaseStep_template; + precondition->set_param(*m_p->get_elem(0)); + TestcaseStep_template* implied_template = new TestcaseStep_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = TestcaseStep_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@LibCommon_Sync.TestcaseStep"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* TestcaseStep_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(TestcaseStep::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void SyncPort::remove_msg_queue_head() +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +switch (my_head->item_selection) { +case MESSAGE_0: +delete (my_head)->message_0; +break; +default: +TTCN_error("Internal error: Invalid message selector in the queue of port %s.", port_name); +} +msg_queue_item_base *next_item = msg_queue_head->next_item; +delete (msg_queue_item*)msg_queue_head; +msg_queue_head = next_item; +if (next_item == NULL) msg_queue_tail = NULL; +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::extract__msg, port_name, 0, ++msg_head_count, CHARSTRING(0,NULL), CHARSTRING(0,NULL));} + +void SyncPort::clear_queue() +{ +while (msg_queue_head != NULL) remove_msg_queue_head(); +} + +SyncPort::SyncPort(const char *par_port_name) + : PORT(par_port_name) +{ +msg_queue_head = NULL; +msg_queue_tail = NULL; +} + +SyncPort::~SyncPort() +{ +clear_queue(); +} + +void SyncPort::send(const SyncCmd& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +if (!is_started) TTCN_error("Sending a message on port %s, which is not started.", port_name); +if (!destination_component.is_bound()) TTCN_error("Unbound component reference in the to clause of send operation."); +const TTCN_Logger::Severity log_sev = destination_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMSEND:TTCN_Logger::PORTEVENT_MCSEND; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_send(port_name, destination_component, +(TTCN_Logger::begin_event(log_sev, TRUE), TTCN_Logger::log_event_str(" @LibCommon_Sync.SyncCmd : "), +send_par.log(), TTCN_Logger::end_event_log2str())); +} +if (destination_component == SYSTEM_COMPREF) TTCN_error("Message cannot be sent to system on internal port %s.", port_name); +else { +Text_Buf text_buf; +prepare_message(text_buf, "@LibCommon_Sync.SyncCmd"); +send_par.encode_text(text_buf); +send_data(text_buf, destination_component); +} +} + +void SyncPort::send(const SyncCmd& send_par, FLOAT* timestamp_redirect) +{ +send(send_par, COMPONENT(get_default_destination()), timestamp_redirect); +} + +void SyncPort::send(const SyncCmd_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +const SyncCmd& send_par_value = SyncCmd(send_par.valueof()); +send(send_par_value, destination_component, timestamp_redirect); +} + +void SyncPort::send(const SyncCmd_template& send_par, FLOAT* timestamp_redirect) +{ +const SyncCmd& send_par_value = SyncCmd(send_par.valueof()); +send(send_par_value, COMPONENT(get_default_destination()), timestamp_redirect); +} + +alt_status SyncPort::receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @LibCommon_Sync.SyncCmd: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status SyncPort::check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @LibCommon_Sync.SyncCmd: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +return ALT_YES; +} +} + +alt_status SyncPort::trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @LibCommon_Sync.SyncCmd: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status SyncPort::receive(const SyncCmd_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @LibCommon_Sync.SyncCmd.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @LibCommon_Sync.SyncCmd : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status SyncPort::check_receive(const SyncCmd_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Check-receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @LibCommon_Sync.SyncCmd.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @LibCommon_Sync.SyncCmd : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +return ALT_YES; +} +} + +alt_status SyncPort::trigger(const SyncCmd_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Trigger operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s will drop a message: Type of the first message in the queue is not @LibCommon_Sync.SyncCmd.", port_name); +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @LibCommon_Sync.SyncCmd : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +void SyncPort::incoming_message(const SyncCmd& incoming_par, component sender_component) +{ +if (!is_started) { +if (is_halted) { +TTCN_warning("A message that arrived on port %s has been discarded, because the port is not started.", port_name); +return; +} +else { +TTCN_error("Port %s is not started but a message has arrived on it.", port_name); +} +} +msg_tail_count++; +if (TTCN_Logger::log_this_event(TTCN_Logger::PORTEVENT_MQUEUE)) { +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::enqueue__msg, port_name, sender_component, msg_tail_count, +CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(TTCN_Logger::PORTEVENT_MQUEUE, TRUE), TTCN_Logger::log_event_str(" @LibCommon_Sync.SyncCmd : "), incoming_par.log(), TTCN_Logger::end_event_log2str())); +} +msg_queue_item *new_item = new msg_queue_item; +new_item->item_selection = MESSAGE_0; +new_item->message_0 = new SyncCmd(incoming_par); +new_item->sender_component = sender_component; +append_to_msg_queue(new_item); +} + +boolean SyncPort::process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING&) +{ +if (!strcmp(message_type, "@LibCommon_Sync.SyncCmd")) { +SyncCmd incoming_par; +incoming_par.decode_text(incoming_buf); +incoming_message(incoming_par, sender_component); +return TRUE; +} else return FALSE; +} + +a__dummyShutDown_Default::a__dummyShutDown_Default() + : Default_Base("a_dummyShutDown") +{ +} + +alt_status a__dummyShutDown_Default::call_altstep() +{ +return a__dummyShutDown_instance(); +} + +a__shutdown_Default::a__shutdown_Default() + : Default_Base("a_shutdown") +{ +} + +alt_status a__shutdown_Default::call_altstep() +{ +return a__shutdown_instance(); +} + + +const COMPONENT ClientSyncCompList::UNBOUND_ELEM; +COMPONENT& ClientSyncCompList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +COMPONENT& ClientSyncCompList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const COMPONENT& ClientSyncCompList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const COMPONENT& ClientSyncCompList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ClientSyncCompList ClientSyncCompList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +ClientSyncCompList ClientSyncCompList::operator<<=(const INTEGER& rotate_count) const +{ +ClientSyncCompList rec_of; +return *((ClientSyncCompList*)rotl(rotate_count, &rec_of)); +} + +ClientSyncCompList ClientSyncCompList::operator>>=(const INTEGER& rotate_count) const +{ +ClientSyncCompList rec_of; +return *((ClientSyncCompList*)rotr(rotate_count, &rec_of)); +} + +ClientSyncCompList ClientSyncCompList::operator>>=(int rotate_count) const +{ +ClientSyncCompList rec_of; +return *((ClientSyncCompList*)rotr(rotate_count, &rec_of)); +} + +ClientSyncCompList ClientSyncCompList::operator+(const ClientSyncCompList& other_value) const +{ +ClientSyncCompList rec_of; +return *((ClientSyncCompList*)concat(&other_value, &rec_of)); +} + +ClientSyncCompList ClientSyncCompList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const ClientSyncCompList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @LibCommon_Sync.ClientSyncCompList concatenation."); +} + +ClientSyncCompList ClientSyncCompList::operator+(null_type) const +{ +return *this; +} + +ClientSyncCompList ClientSyncCompList::substr(int index, int returncount) const +{ +ClientSyncCompList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ClientSyncCompList ClientSyncCompList::replace(int index, int len, const ClientSyncCompList& repl) const +{ +ClientSyncCompList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ClientSyncCompList ClientSyncCompList::replace(int index, int len, const ClientSyncCompList_template& repl) const +{ +ClientSyncCompList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* ClientSyncCompList::create_elem() const { return new COMPONENT; } +const Base_Type* ClientSyncCompList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* ClientSyncCompList::get_descriptor() const { return &ClientSyncCompList_descr_; } +ClientSyncCompList_template::ClientSyncCompList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +ClientSyncCompList_template::ClientSyncCompList_template(ClientSyncCompList_template* p_precondition, ClientSyncCompList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ClientSyncCompList_template::ClientSyncCompList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ClientSyncCompList_template::~ClientSyncCompList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ClientSyncCompList_template::match_dynamic(const Base_Type* match_value) const +{ +const ClientSyncCompList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +ClientSyncCompList_template& ClientSyncCompList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ClientSyncCompList_template& ClientSyncCompList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +ClientSyncCompList_template& ClientSyncCompList_template::operator=(const ClientSyncCompList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ClientSyncCompList_template& ClientSyncCompList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ClientSyncCompList_template& ClientSyncCompList_template::operator=(const ClientSyncCompList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ClientSyncCompList_template ClientSyncCompList_template::operator+(const ClientSyncCompList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return ClientSyncCompList_template(ANY_VALUE); +} +ClientSyncCompList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ClientSyncCompList_template ClientSyncCompList_template::operator+(const ClientSyncCompList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +ClientSyncCompList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ClientSyncCompList_template ClientSyncCompList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return ClientSyncCompList_template(ANY_VALUE); +} +ClientSyncCompList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +ClientSyncCompList_template ClientSyncCompList_template::operator+(null_type) const +{ +return *this; +} + +COMPONENT_template& ClientSyncCompList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +COMPONENT_template& ClientSyncCompList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const COMPONENT_template& ClientSyncCompList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const COMPONENT_template& ClientSyncCompList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ClientSyncCompList ClientSyncCompList_template::valueof() const +{ +ClientSyncCompList ret_val; +valueofv(&ret_val); +return ret_val; +} + +ClientSyncCompList ClientSyncCompList_template::substr(int index, int returncount) const +{ +ClientSyncCompList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ClientSyncCompList ClientSyncCompList_template::replace(int index, int len, const ClientSyncCompList_template& repl) const +{ +ClientSyncCompList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ClientSyncCompList ClientSyncCompList_template::replace(int index, int len, const ClientSyncCompList& repl) const +{ +ClientSyncCompList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* ClientSyncCompList_template::create_elem() const { return new COMPONENT_template; } +const TTCN_Typedescriptor_t* ClientSyncCompList_template::get_descriptor() const { return &ClientSyncCompList_descr_; } +void SyncCmd::copy_value(const SyncCmd& other_value) +{ +switch (other_value.union_selection) { +case ALT_clientReady: +field_clientReady = new ClientReady(*other_value.field_clientReady); +break; +case ALT_serverReady: +field_serverReady = new ServerReady(*other_value.field_serverReady); +break; +case ALT_clientStop: +field_clientStop = new ClientStop(*other_value.field_clientStop); +break; +case ALT_serverStop: +field_serverStop = new ServerStop(*other_value.field_serverStop); +break; +default: +TTCN_error("Assignment of an unbound union value of type @LibCommon_Sync.SyncCmd."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +SyncCmd::SyncCmd(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +SyncCmd::SyncCmd(const SyncCmd& other_value) +: Base_Type(){ +copy_value(other_value); +} + +SyncCmd::~SyncCmd() +{ +clean_up(); +} + +SyncCmd& SyncCmd::operator=(const SyncCmd& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean SyncCmd::operator==(const SyncCmd& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @LibCommon_Sync.SyncCmd."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @LibCommon_Sync.SyncCmd."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_clientReady: +return *field_clientReady == *other_value.field_clientReady; +case ALT_serverReady: +return *field_serverReady == *other_value.field_serverReady; +case ALT_clientStop: +return *field_clientStop == *other_value.field_clientStop; +case ALT_serverStop: +return *field_serverStop == *other_value.field_serverStop; +default: +return FALSE; +} +} + +ClientReady& SyncCmd::clientReady() +{ +if (union_selection != ALT_clientReady) { +clean_up(); +field_clientReady = new ClientReady; +union_selection = ALT_clientReady; +} +return *field_clientReady; +} + +const ClientReady& SyncCmd::clientReady() const +{ +if (union_selection != ALT_clientReady) TTCN_error("Using non-selected field clientReady in a value of union type @LibCommon_Sync.SyncCmd."); +return *field_clientReady; +} + +ServerReady& SyncCmd::serverReady() +{ +if (union_selection != ALT_serverReady) { +clean_up(); +field_serverReady = new ServerReady; +union_selection = ALT_serverReady; +} +return *field_serverReady; +} + +const ServerReady& SyncCmd::serverReady() const +{ +if (union_selection != ALT_serverReady) TTCN_error("Using non-selected field serverReady in a value of union type @LibCommon_Sync.SyncCmd."); +return *field_serverReady; +} + +ClientStop& SyncCmd::clientStop() +{ +if (union_selection != ALT_clientStop) { +clean_up(); +field_clientStop = new ClientStop; +union_selection = ALT_clientStop; +} +return *field_clientStop; +} + +const ClientStop& SyncCmd::clientStop() const +{ +if (union_selection != ALT_clientStop) TTCN_error("Using non-selected field clientStop in a value of union type @LibCommon_Sync.SyncCmd."); +return *field_clientStop; +} + +ServerStop& SyncCmd::serverStop() +{ +if (union_selection != ALT_serverStop) { +clean_up(); +field_serverStop = new ServerStop; +union_selection = ALT_serverStop; +} +return *field_serverStop; +} + +const ServerStop& SyncCmd::serverStop() const +{ +if (union_selection != ALT_serverStop) TTCN_error("Using non-selected field serverStop in a value of union type @LibCommon_Sync.SyncCmd."); +return *field_serverStop; +} + +boolean SyncCmd::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @LibCommon_Sync.SyncCmd."); +return union_selection == checked_selection; +} + +boolean SyncCmd::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean SyncCmd::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_clientReady: return field_clientReady->is_value(); +case ALT_serverReady: return field_serverReady->is_value(); +case ALT_clientStop: return field_clientStop->is_value(); +case ALT_serverStop: return field_serverStop->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void SyncCmd::clean_up() +{ +switch (union_selection) { +case ALT_clientReady: + delete field_clientReady; + break; +case ALT_serverReady: + delete field_serverReady; + break; +case ALT_clientStop: + delete field_clientStop; + break; +case ALT_serverStop: + delete field_serverStop; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean SyncCmd::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void SyncCmd::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* SyncCmd::clone() const { return new SyncCmd(*this); } +const TTCN_Typedescriptor_t* SyncCmd::get_descriptor() const { return &SyncCmd_descr_; } +void SyncCmd::log() const +{ +switch (union_selection) { +case ALT_clientReady: +TTCN_Logger::log_event_str("{ clientReady := "); +field_clientReady->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_serverReady: +TTCN_Logger::log_event_str("{ serverReady := "); +field_serverReady->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_clientStop: +TTCN_Logger::log_event_str("{ clientStop := "); +field_clientStop->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_serverStop: +TTCN_Logger::log_event_str("{ serverStop := "); +field_serverStop->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void SyncCmd::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@LibCommon_Sync.SyncCmd'"); + } + if (strcmp("clientReady", param_field) == 0) { + clientReady().set_param(param); + return; + } else if (strcmp("serverReady", param_field) == 0) { + serverReady().set_param(param); + return; + } else if (strcmp("clientStop", param_field) == 0) { + clientStop().set_param(param); + return; + } else if (strcmp("serverStop", param_field) == 0) { + serverStop().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@LibCommon_Sync.SyncCmd'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "clientReady")) { + clientReady().set_param(*mp_last); + if (!clientReady().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "serverReady")) { + serverReady().set_param(*mp_last); + if (!serverReady().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "clientStop")) { + clientStop().set_param(*mp_last); + if (!clientStop().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "serverStop")) { + serverStop().set_param(*mp_last); + if (!serverStop().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @LibCommon_Sync.SyncCmd.", last_name); +} + +Module_Param* SyncCmd::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@LibCommon_Sync.SyncCmd'"); + } + if (strcmp("clientReady", param_field) == 0) { + return clientReady().get_param(param_name); + } else if (strcmp("serverReady", param_field) == 0) { + return serverReady().get_param(param_name); + } else if (strcmp("clientStop", param_field) == 0) { + return clientStop().get_param(param_name); + } else if (strcmp("serverStop", param_field) == 0) { + return serverStop().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `SyncCmd'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_clientReady: + mp_field = field_clientReady->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("clientReady"))); + break; + case ALT_serverReady: + mp_field = field_serverReady->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("serverReady"))); + break; + case ALT_clientStop: + mp_field = field_clientStop->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("clientStop"))); + break; + case ALT_serverStop: + mp_field = field_serverStop->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("serverStop"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void SyncCmd::set_implicit_omit() +{ +switch (union_selection) { +case ALT_clientReady: +field_clientReady->set_implicit_omit(); break; +case ALT_serverReady: +field_serverReady->set_implicit_omit(); break; +case ALT_clientStop: +field_clientStop->set_implicit_omit(); break; +case ALT_serverStop: +field_serverStop->set_implicit_omit(); break; +default: break; +} +} + +void SyncCmd::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_clientReady: +field_clientReady->encode_text(text_buf); +break; +case ALT_serverReady: +field_serverReady->encode_text(text_buf); +break; +case ALT_clientStop: +field_clientStop->encode_text(text_buf); +break; +case ALT_serverStop: +field_serverStop->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @LibCommon_Sync.SyncCmd."); +} +} + +void SyncCmd::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_clientReady: +clientReady().decode_text(text_buf); +break; +case ALT_serverReady: +serverReady().decode_text(text_buf); +break; +case ALT_clientStop: +clientStop().decode_text(text_buf); +break; +case ALT_serverStop: +serverStop().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @LibCommon_Sync.SyncCmd."); +} +} + +void SyncCmd_template::copy_value(const SyncCmd& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case SyncCmd::ALT_clientReady: +single_value.field_clientReady = new ClientReady_template(other_value.clientReady()); +break; +case SyncCmd::ALT_serverReady: +single_value.field_serverReady = new ServerReady_template(other_value.serverReady()); +break; +case SyncCmd::ALT_clientStop: +single_value.field_clientStop = new ClientStop_template(other_value.clientStop()); +break; +case SyncCmd::ALT_serverStop: +single_value.field_serverStop = new ServerStop_template(other_value.serverStop()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @LibCommon_Sync.SyncCmd."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void SyncCmd_template::copy_template(const SyncCmd_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case SyncCmd::ALT_clientReady: +single_value.field_clientReady = new ClientReady_template(*other_value.single_value.field_clientReady); +break; +case SyncCmd::ALT_serverReady: +single_value.field_serverReady = new ServerReady_template(*other_value.single_value.field_serverReady); +break; +case SyncCmd::ALT_clientStop: +single_value.field_clientStop = new ClientStop_template(*other_value.single_value.field_clientStop); +break; +case SyncCmd::ALT_serverStop: +single_value.field_serverStop = new ServerStop_template(*other_value.single_value.field_serverStop); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @LibCommon_Sync.SyncCmd."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new SyncCmd_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new SyncCmd_template(*other_value.implication_.precondition); +implication_.implied_template = new SyncCmd_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @LibCommon_Sync.SyncCmd."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +SyncCmd_template::SyncCmd_template(): err_descr(NULL) +{ +} + +SyncCmd_template::SyncCmd_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +SyncCmd_template::SyncCmd_template(const SyncCmd& other_value) +{ +copy_value(other_value); +} + +SyncCmd_template::SyncCmd_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const SyncCmd&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @LibCommon_Sync.SyncCmd from an unbound optional field."); +} +} + +SyncCmd_template::SyncCmd_template(SyncCmd_template* p_precondition, SyncCmd_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +SyncCmd_template::SyncCmd_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +SyncCmd_template::SyncCmd_template(const SyncCmd_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +SyncCmd_template::~SyncCmd_template() +{ +clean_up(); +} + +void SyncCmd_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case SyncCmd::ALT_clientReady: +delete single_value.field_clientReady; +break; +case SyncCmd::ALT_serverReady: +delete single_value.field_serverReady; +break; +case SyncCmd::ALT_clientStop: +delete single_value.field_clientStop; +break; +case SyncCmd::ALT_serverStop: +delete single_value.field_serverStop; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +SyncCmd_template& SyncCmd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +SyncCmd_template& SyncCmd_template::operator=(const SyncCmd& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +SyncCmd_template& SyncCmd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const SyncCmd&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @LibCommon_Sync.SyncCmd."); +} +return *this; +} + +SyncCmd_template& SyncCmd_template::operator=(const SyncCmd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean SyncCmd_template::match(const SyncCmd& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +SyncCmd::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == SyncCmd::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case SyncCmd::ALT_clientReady: +return single_value.field_clientReady->match(other_value.clientReady(), legacy); +case SyncCmd::ALT_serverReady: +return single_value.field_serverReady->match(other_value.serverReady(), legacy); +case SyncCmd::ALT_clientStop: +return single_value.field_clientStop->match(other_value.clientStop(), legacy); +case SyncCmd::ALT_serverStop: +return single_value.field_serverStop->match(other_value.serverStop(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @LibCommon_Sync.SyncCmd."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @LibCommon_Sync.SyncCmd."); +} +return FALSE; +} + +boolean SyncCmd_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case SyncCmd::ALT_clientReady: +return single_value.field_clientReady->is_value(); +case SyncCmd::ALT_serverReady: +return single_value.field_serverReady->is_value(); +case SyncCmd::ALT_clientStop: +return single_value.field_clientStop->is_value(); +case SyncCmd::ALT_serverStop: +return single_value.field_serverStop->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @LibCommon_Sync.SyncCmd."); +} +} + +SyncCmd SyncCmd_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @LibCommon_Sync.SyncCmd."); +SyncCmd ret_val; +switch (single_value.union_selection) { +case SyncCmd::ALT_clientReady: +ret_val.clientReady() = single_value.field_clientReady->valueof(); +break; +case SyncCmd::ALT_serverReady: +ret_val.serverReady() = single_value.field_serverReady->valueof(); +break; +case SyncCmd::ALT_clientStop: +ret_val.clientStop() = single_value.field_clientStop->valueof(); +break; +case SyncCmd::ALT_serverStop: +ret_val.serverStop() = single_value.field_serverStop->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @LibCommon_Sync.SyncCmd."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +SyncCmd_template& SyncCmd_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @LibCommon_Sync.SyncCmd."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @LibCommon_Sync.SyncCmd."); +return value_list.list_value[list_index]; +} +void SyncCmd_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @LibCommon_Sync.SyncCmd."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new SyncCmd_template[list_length]; +} + +SyncCmd::union_selection_type SyncCmd_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @LibCommon_Sync.SyncCmd"); +return single_value.union_selection; +} + +ClientReady_template& SyncCmd_template::clientReady() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != SyncCmd::ALT_clientReady) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_clientReady = new ClientReady_template(ANY_VALUE); +else single_value.field_clientReady = new ClientReady_template; +single_value.union_selection = SyncCmd::ALT_clientReady; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_clientReady; +} + +const ClientReady_template& SyncCmd_template::clientReady() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field clientReady in a non-specific template of union type @LibCommon_Sync.SyncCmd."); +if (single_value.union_selection != SyncCmd::ALT_clientReady) TTCN_error("Accessing non-selected field clientReady in a template of union type @LibCommon_Sync.SyncCmd."); +return *single_value.field_clientReady; +} + +ServerReady_template& SyncCmd_template::serverReady() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != SyncCmd::ALT_serverReady) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_serverReady = new ServerReady_template(ANY_VALUE); +else single_value.field_serverReady = new ServerReady_template; +single_value.union_selection = SyncCmd::ALT_serverReady; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_serverReady; +} + +const ServerReady_template& SyncCmd_template::serverReady() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field serverReady in a non-specific template of union type @LibCommon_Sync.SyncCmd."); +if (single_value.union_selection != SyncCmd::ALT_serverReady) TTCN_error("Accessing non-selected field serverReady in a template of union type @LibCommon_Sync.SyncCmd."); +return *single_value.field_serverReady; +} + +ClientStop_template& SyncCmd_template::clientStop() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != SyncCmd::ALT_clientStop) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_clientStop = new ClientStop_template(ANY_VALUE); +else single_value.field_clientStop = new ClientStop_template; +single_value.union_selection = SyncCmd::ALT_clientStop; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_clientStop; +} + +const ClientStop_template& SyncCmd_template::clientStop() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field clientStop in a non-specific template of union type @LibCommon_Sync.SyncCmd."); +if (single_value.union_selection != SyncCmd::ALT_clientStop) TTCN_error("Accessing non-selected field clientStop in a template of union type @LibCommon_Sync.SyncCmd."); +return *single_value.field_clientStop; +} + +ServerStop_template& SyncCmd_template::serverStop() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != SyncCmd::ALT_serverStop) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_serverStop = new ServerStop_template(ANY_VALUE); +else single_value.field_serverStop = new ServerStop_template; +single_value.union_selection = SyncCmd::ALT_serverStop; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_serverStop; +} + +const ServerStop_template& SyncCmd_template::serverStop() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field serverStop in a non-specific template of union type @LibCommon_Sync.SyncCmd."); +if (single_value.union_selection != SyncCmd::ALT_serverStop) TTCN_error("Accessing non-selected field serverStop in a template of union type @LibCommon_Sync.SyncCmd."); +return *single_value.field_serverStop; +} + +boolean SyncCmd_template::ischosen(SyncCmd::union_selection_type checked_selection) const +{ +if (checked_selection == SyncCmd::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @LibCommon_Sync.SyncCmd."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == SyncCmd::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @LibCommon_Sync.SyncCmd."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @LibCommon_Sync.SyncCmd containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void SyncCmd_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void SyncCmd_template::set_value(template_sel other_value) { *this = other_value; } +void SyncCmd_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* SyncCmd_template::clone() const { return new SyncCmd_template(*this); } +const TTCN_Typedescriptor_t* SyncCmd_template::get_descriptor() const { return &SyncCmd_descr_; } +boolean SyncCmd_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void SyncCmd_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void SyncCmd_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case SyncCmd::ALT_clientReady: +TTCN_Logger::log_event_str("{ clientReady := "); +single_value.field_clientReady->log(); +TTCN_Logger::log_event_str(" }"); +break; +case SyncCmd::ALT_serverReady: +TTCN_Logger::log_event_str("{ serverReady := "); +single_value.field_serverReady->log(); +TTCN_Logger::log_event_str(" }"); +break; +case SyncCmd::ALT_clientStop: +TTCN_Logger::log_event_str("{ clientStop := "); +single_value.field_clientStop->log(); +TTCN_Logger::log_event_str(" }"); +break; +case SyncCmd::ALT_serverStop: +TTCN_Logger::log_event_str("{ serverStop := "); +single_value.field_serverStop->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void SyncCmd_template::log_match(const SyncCmd& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case SyncCmd::ALT_clientReady: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".clientReady"); +single_value.field_clientReady->log_match(match_value.clientReady(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ clientReady := "); +single_value.field_clientReady->log_match(match_value.clientReady(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case SyncCmd::ALT_serverReady: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".serverReady"); +single_value.field_serverReady->log_match(match_value.serverReady(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ serverReady := "); +single_value.field_serverReady->log_match(match_value.serverReady(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case SyncCmd::ALT_clientStop: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".clientStop"); +single_value.field_clientStop->log_match(match_value.clientStop(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ clientStop := "); +single_value.field_clientStop->log_match(match_value.clientStop(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case SyncCmd::ALT_serverStop: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".serverStop"); +single_value.field_serverStop->log_match(match_value.serverStop(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ serverStop := "); +single_value.field_serverStop->log_match(match_value.serverStop(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void SyncCmd_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case SyncCmd::ALT_clientReady: +single_value.field_clientReady->encode_text(text_buf); +break; +case SyncCmd::ALT_serverReady: +single_value.field_serverReady->encode_text(text_buf); +break; +case SyncCmd::ALT_clientStop: +single_value.field_clientStop->encode_text(text_buf); +break; +case SyncCmd::ALT_serverStop: +single_value.field_serverStop->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @LibCommon_Sync.SyncCmd."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @LibCommon_Sync.SyncCmd."); +} +} + +void SyncCmd_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = SyncCmd::UNBOUND_VALUE; +SyncCmd::union_selection_type new_selection = (SyncCmd::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case SyncCmd::ALT_clientReady: +single_value.field_clientReady = new ClientReady_template; +single_value.field_clientReady->decode_text(text_buf); +break; +case SyncCmd::ALT_serverReady: +single_value.field_serverReady = new ServerReady_template; +single_value.field_serverReady->decode_text(text_buf); +break; +case SyncCmd::ALT_clientStop: +single_value.field_clientStop = new ClientStop_template; +single_value.field_clientStop->decode_text(text_buf); +break; +case SyncCmd::ALT_serverStop: +single_value.field_serverStop = new ServerStop_template; +single_value.field_serverStop->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @LibCommon_Sync.SyncCmd."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new SyncCmd_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @LibCommon_Sync.SyncCmd."); +} +} + +boolean SyncCmd_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean SyncCmd_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@LibCommon_Sync.SyncCmd'"); + } + if (strcmp("clientReady", param_field) == 0) { + clientReady().set_param(param); + return; + } else if (strcmp("serverReady", param_field) == 0) { + serverReady().set_param(param); + return; + } else if (strcmp("clientStop", param_field) == 0) { + clientStop().set_param(param); + return; + } else if (strcmp("serverStop", param_field) == 0) { + serverStop().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@LibCommon_Sync.SyncCmd'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + SyncCmd_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@LibCommon_Sync.SyncCmd"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "clientReady")) { + clientReady().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "serverReady")) { + serverReady().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "clientStop")) { + clientStop().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "serverStop")) { + serverStop().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @LibCommon_Sync.SyncCmd.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + SyncCmd_template* precondition = new SyncCmd_template; + precondition->set_param(*m_p->get_elem(0)); + SyncCmd_template* implied_template = new SyncCmd_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = SyncCmd_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@LibCommon_Sync.SyncCmd"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* SyncCmd_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@LibCommon_Sync.SyncCmd'"); + } + if (strcmp("clientReady", param_field) == 0) { + return clientReady().get_param(param_name); + } else if (strcmp("serverReady", param_field) == 0) { + return serverReady().get_param(param_name); + } else if (strcmp("clientStop", param_field) == 0) { + return clientStop().get_param(param_name); + } else if (strcmp("serverStop", param_field) == 0) { + return serverStop().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `SyncCmd'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case SyncCmd::ALT_clientReady: + mp_field = single_value.field_clientReady->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("clientReady"))); + break; + case SyncCmd::ALT_serverReady: + mp_field = single_value.field_serverReady->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("serverReady"))); + break; + case SyncCmd::ALT_clientStop: + mp_field = single_value.field_clientStop->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("clientStop"))); + break; + case SyncCmd::ALT_serverStop: + mp_field = single_value.field_serverStop->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("serverStop"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void SyncCmd_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case SyncCmd::ALT_clientReady: +single_value.field_clientReady->check_restriction(t_res, t_name ? t_name : "@LibCommon_Sync.SyncCmd"); +return; +case SyncCmd::ALT_serverReady: +single_value.field_serverReady->check_restriction(t_res, t_name ? t_name : "@LibCommon_Sync.SyncCmd"); +return; +case SyncCmd::ALT_clientStop: +single_value.field_clientStop->check_restriction(t_res, t_name ? t_name : "@LibCommon_Sync.SyncCmd"); +return; +case SyncCmd::ALT_serverStop: +single_value.field_serverStop->check_restriction(t_res, t_name ? t_name : "@LibCommon_Sync.SyncCmd"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @LibCommon_Sync.SyncCmd."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@LibCommon_Sync.SyncCmd"); +} + +void ClientReady::init_vec() { fld_vec[0]=&field_syncPointId; } + +ClientReady::ClientReady() : Record_Type() { init_vec(); } + +ClientReady::ClientReady(const ClientReady& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_syncPointId.is_bound() ) + field_syncPointId = other_value.field_syncPointId; +init_vec(); +} + +ClientReady::ClientReady(const CHARSTRING& par_syncPointId) : field_syncPointId(par_syncPointId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ClientReady::get_descriptor() const { return &ClientReady_descr_; } +const TTCN_Typedescriptor_t* ClientReady::fld_descriptors[] = { &CHARSTRING_descr_ }; +const TTCN_Typedescriptor_t* ClientReady::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ClientReady::fld_names[] = { "syncPointId" }; +const char* ClientReady::fld_name(int p_index) const { return fld_names[p_index]; } + +void ClientReady_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +} +} + +ClientReady_template::ClientReady_template(ClientReady_template* p_precondition, ClientReady_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ClientReady_template::ClientReady_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ClientReady_template::~ClientReady_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ClientReady_template::match_dynamic(const Base_Type* match_value) const +{ +const ClientReady* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ClientReady_template& ClientReady_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ClientReady_template& ClientReady_template::operator=(const ClientReady& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ClientReady_template& ClientReady_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ClientReady_template& ClientReady_template::operator=(const ClientReady_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ClientReady ClientReady_template::valueof() const +{ +ClientReady ret_val; +valueofv(&ret_val); +return ret_val; +} + +CHARSTRING_template& ClientReady_template::syncPointId() { return *(static_cast(get_at(0))); } +const CHARSTRING_template& ClientReady_template::syncPointId() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* ClientReady_template::get_descriptor() const { return &ClientReady_descr_; } +const char* ClientReady_template::fld_name(int p_index) const { return ClientReady::fld_names[p_index]; } +void ServerReady::init_vec() { fld_vec[0]=&field_syncPointId; } + +ServerReady::ServerReady() : Record_Type() { init_vec(); } + +ServerReady::ServerReady(const ServerReady& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_syncPointId.is_bound() ) + field_syncPointId = other_value.field_syncPointId; +init_vec(); +} + +ServerReady::ServerReady(const CHARSTRING& par_syncPointId) : field_syncPointId(par_syncPointId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ServerReady::get_descriptor() const { return &ServerReady_descr_; } +const TTCN_Typedescriptor_t* ServerReady::fld_descriptors[] = { &CHARSTRING_descr_ }; +const TTCN_Typedescriptor_t* ServerReady::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ServerReady::fld_names[] = { "syncPointId" }; +const char* ServerReady::fld_name(int p_index) const { return fld_names[p_index]; } + +void ServerReady_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +} +} + +ServerReady_template::ServerReady_template(ServerReady_template* p_precondition, ServerReady_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ServerReady_template::ServerReady_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ServerReady_template::~ServerReady_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ServerReady_template::match_dynamic(const Base_Type* match_value) const +{ +const ServerReady* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ServerReady_template& ServerReady_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ServerReady_template& ServerReady_template::operator=(const ServerReady& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ServerReady_template& ServerReady_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ServerReady_template& ServerReady_template::operator=(const ServerReady_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ServerReady ServerReady_template::valueof() const +{ +ServerReady ret_val; +valueofv(&ret_val); +return ret_val; +} + +CHARSTRING_template& ServerReady_template::syncPointId() { return *(static_cast(get_at(0))); } +const CHARSTRING_template& ServerReady_template::syncPointId() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* ServerReady_template::get_descriptor() const { return &ServerReady_descr_; } +const char* ServerReady_template::fld_name(int p_index) const { return ServerReady::fld_names[p_index]; } +ClientStop::ClientStop() : Empty_Record_Type() {} + +const TTCN_Typedescriptor_t* ClientStop::get_descriptor() const { return &ClientStop_descr_; } +ClientStop_template::ClientStop_template(ClientStop_template* p_precondition, ClientStop_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ClientStop_template::ClientStop_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ClientStop_template::~ClientStop_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ClientStop_template::match_dynamic(const Base_Type* match_value) const +{ +const ClientStop* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ClientStop_template& ClientStop_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ClientStop_template& ClientStop_template::operator=(const ClientStop& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ClientStop_template& ClientStop_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ClientStop_template& ClientStop_template::operator=(const ClientStop_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ClientStop_template& ClientStop_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +return *this; +} + +ClientStop ClientStop_template::valueof() const +{ +ClientStop ret_val; +valueofv(&ret_val); +return ret_val; +} + +const TTCN_Typedescriptor_t* ClientStop_template::get_descriptor() const { return &ClientStop_descr_; } +ServerStop::ServerStop() : Empty_Record_Type() {} + +const TTCN_Typedescriptor_t* ServerStop::get_descriptor() const { return &ServerStop_descr_; } +ServerStop_template::ServerStop_template(ServerStop_template* p_precondition, ServerStop_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ServerStop_template::ServerStop_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ServerStop_template::~ServerStop_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ServerStop_template::match_dynamic(const Base_Type* match_value) const +{ +const ServerStop* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ServerStop_template& ServerStop_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ServerStop_template& ServerStop_template::operator=(const ServerStop& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ServerStop_template& ServerStop_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ServerStop_template& ServerStop_template::operator=(const ServerStop_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ServerStop_template& ServerStop_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +return *this; +} + +ServerStop ServerStop_template::valueof() const +{ +ServerStop ret_val; +valueofv(&ret_val); +return ret_val; +} + +const TTCN_Typedescriptor_t* ServerStop_template::get_descriptor() const { return &ServerStop_descr_; } + +/* Bodies of functions, altsteps and testcases */ + +void f__connect4SelfOrClientSync() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 194, TTCN_Location::LOCATION_FUNCTION, "f_connect4SelfOrClientSync"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_connect4SelfOrClientSync", "function", "LibCommon_Sync", no_params, no_params, "SelfSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(196); +ttcn3_debugger.breakpoint_entry(196); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 196 */ +if ((self == MTC_COMPREF)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(197); +ttcn3_debugger.breakpoint_entry(197); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 197 */ +f__connect4SelfSync(); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(199); +ttcn3_debugger.breakpoint_entry(199); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 199 */ +f__connect4ClientSync(); +} +} + +void start_f__connect4SelfOrClientSync(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_connect4SelfOrClientSync("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_connect4SelfOrClientSync", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__disconnect4SelfOrClientSync() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 216, TTCN_Location::LOCATION_FUNCTION, "f_disconnect4SelfOrClientSync"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_disconnect4SelfOrClientSync", "function", "LibCommon_Sync", no_params, no_params, "SelfSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(218); +ttcn3_debugger.breakpoint_entry(218); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 218 */ +if ((self == MTC_COMPREF)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(219); +ttcn3_debugger.breakpoint_entry(219); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 219 */ +f__disconnect4SelfSync(); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(221); +ttcn3_debugger.breakpoint_entry(221); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 221 */ +f__disconnect4ClientSync(); +} +} + +void start_f__disconnect4SelfOrClientSync(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_disconnect4SelfOrClientSync("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_disconnect4SelfOrClientSync", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverSync2ClientsAndStop(const SyncPointList& p__syncPointIds) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 249, TTCN_Location::LOCATION_FUNCTION, "f_serverSync2ClientsAndStop"); +charstring_list param_names; +param_names[0] = "p_syncPointIds"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSync2ClientsAndStop", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__syncPointIds, "p_syncPointIds", "SyncPointList", NULL, print_var_LibCommon_Sync); +debug_scope.initial_snapshot(); +current_location.update_lineno(251); +ttcn3_debugger.breakpoint_entry(251); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 251 */ +f__serverSyncNClientsAndStop(2, p__syncPointIds); +} + +void start_f__serverSync2ClientsAndStop(const COMPONENT& component_reference, const SyncPointList& p__syncPointIds) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSync2ClientsAndStop("); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSync2ClientsAndStop", text_buf); +p__syncPointIds.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverSync3ClientsAndStop(const SyncPointList& p__syncPointIds) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 274, TTCN_Location::LOCATION_FUNCTION, "f_serverSync3ClientsAndStop"); +charstring_list param_names; +param_names[0] = "p_syncPointIds"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSync3ClientsAndStop", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__syncPointIds, "p_syncPointIds", "SyncPointList", NULL, print_var_LibCommon_Sync); +debug_scope.initial_snapshot(); +current_location.update_lineno(276); +ttcn3_debugger.breakpoint_entry(276); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 276 */ +f__serverSyncNClientsAndStop(3, p__syncPointIds); +} + +void start_f__serverSync3ClientsAndStop(const COMPONENT& component_reference, const SyncPointList& p__syncPointIds) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSync3ClientsAndStop("); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSync3ClientsAndStop", text_buf); +p__syncPointIds.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverSync4ClientsAndStop(const SyncPointList& p__syncPointIds) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 299, TTCN_Location::LOCATION_FUNCTION, "f_serverSync4ClientsAndStop"); +charstring_list param_names; +param_names[0] = "p_syncPointIds"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSync4ClientsAndStop", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__syncPointIds, "p_syncPointIds", "SyncPointList", NULL, print_var_LibCommon_Sync); +debug_scope.initial_snapshot(); +current_location.update_lineno(301); +ttcn3_debugger.breakpoint_entry(301); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 301 */ +f__serverSyncNClientsAndStop(4, p__syncPointIds); +} + +void start_f__serverSync4ClientsAndStop(const COMPONENT& component_reference, const SyncPointList& p__syncPointIds) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSync4ClientsAndStop("); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSync4ClientsAndStop", text_buf); +p__syncPointIds.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverSyncNClientsAndStop(const INTEGER& p__numClients, const SyncPointList& p__syncPointIds) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 325, TTCN_Location::LOCATION_FUNCTION, "f_serverSyncNClientsAndStop"); +charstring_list param_names; +param_names[0] = "p_numClients"; +param_names[1] = "p_syncPointIds"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSyncNClientsAndStop", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__numClients, "p_numClients", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__syncPointIds, "p_syncPointIds", "SyncPointList", NULL, print_var_LibCommon_Sync); +debug_scope.initial_snapshot(); +current_location.update_lineno(329); +ttcn3_debugger.breakpoint_entry(329); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 329 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(329); +ttcn3_debugger.breakpoint_entry(329); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 329 */ +INTEGER v__noOfSyncIds(p__syncPointIds.size_of()); +debug_scope.add_variable(&v__noOfSyncIds, "v_noOfSyncIds", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(330); +ttcn3_debugger.breakpoint_entry(330); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 330 */ +i = 0; +current_location.update_lineno(330); +ttcn3_debugger.breakpoint_entry(330); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 330 */ +for ( ; ; ) { +current_location.update_lineno(330); +ttcn3_debugger.breakpoint_entry(330); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 330 */ +if (!(i < v__noOfSyncIds)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(331); +ttcn3_debugger.breakpoint_entry(331); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 331 */ +f__serverSyncClientsTimed(p__numClients, const_cast< const SyncPointList&>(p__syncPointIds)[i], PX__TSYNC__TIME__LIMIT); +current_location.update_lineno(330); +ttcn3_debugger.breakpoint_entry(330); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 330 */ +{ +INTEGER tmp_1; +++i; +} +} +current_location.update_lineno(336); +ttcn3_debugger.breakpoint_entry(336); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 336 */ +f__serverWaitForAllClientsToStop(); +} + +void start_f__serverSyncNClientsAndStop(const COMPONENT& component_reference, const INTEGER& p__numClients, const SyncPointList& p__syncPointIds) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncNClientsAndStop("); +p__numClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSyncNClientsAndStop", text_buf); +p__numClients.encode_text(text_buf); +p__syncPointIds.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverSync2ClientsUtAndStop(const SyncPointList& p__syncPointIds) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 359, TTCN_Location::LOCATION_FUNCTION, "f_serverSync2ClientsUtAndStop"); +charstring_list param_names; +param_names[0] = "p_syncPointIds"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSync2ClientsUtAndStop", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__syncPointIds, "p_syncPointIds", "SyncPointList", NULL, print_var_LibCommon_Sync); +debug_scope.initial_snapshot(); +current_location.update_lineno(361); +ttcn3_debugger.breakpoint_entry(361); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 361 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(361); +ttcn3_debugger.breakpoint_entry(361); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 361 */ +INTEGER v__noOfSyncIds(p__syncPointIds.size_of()); +debug_scope.add_variable(&v__noOfSyncIds, "v_noOfSyncIds", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(362); +ttcn3_debugger.breakpoint_entry(362); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 362 */ +i = 0; +current_location.update_lineno(362); +ttcn3_debugger.breakpoint_entry(362); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 362 */ +for ( ; ; ) { +current_location.update_lineno(362); +ttcn3_debugger.breakpoint_entry(362); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 362 */ +if (!(i < v__noOfSyncIds)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(363); +ttcn3_debugger.breakpoint_entry(363); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 363 */ +f__serverSyncClientsTimed(3, const_cast< const SyncPointList&>(p__syncPointIds)[i], PX__TSYNC__TIME__LIMIT); +current_location.update_lineno(362); +ttcn3_debugger.breakpoint_entry(362); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 362 */ +{ +INTEGER tmp_3; +++i; +} +} +current_location.update_lineno(365); +ttcn3_debugger.breakpoint_entry(365); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 365 */ +f__serverWaitForAllClientsToStop(); +} + +void start_f__serverSync2ClientsUtAndStop(const COMPONENT& component_reference, const SyncPointList& p__syncPointIds) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSync2ClientsUtAndStop("); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSync2ClientsUtAndStop", text_buf); +p__syncPointIds.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__selfOrClientSyncAndVerdict(const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 385, TTCN_Location::LOCATION_FUNCTION, "f_selfOrClientSyncAndVerdict"); +charstring_list param_names; +param_names[0] = "p_syncPoint"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_selfOrClientSyncAndVerdict", "function", "LibCommon_Sync", param_names, param_types, "SelfSyncComp"); +debug_scope.add_variable(&p__syncPoint, "p_syncPoint", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(388); +ttcn3_debugger.breakpoint_entry(388); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 388 */ +if ((self == MTC_COMPREF)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(390); +ttcn3_debugger.breakpoint_entry(390); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 390 */ +f__selfSyncAndVerdict(p__syncPoint, p__ret); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(392); +ttcn3_debugger.breakpoint_entry(392); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 392 */ +f__clientSyncAndVerdict(p__syncPoint, p__ret); +} +} + +void start_f__selfOrClientSyncAndVerdict(const COMPONENT& component_reference, const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfOrClientSyncAndVerdict("); +p__syncPoint.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfOrClientSyncAndVerdict", text_buf); +p__syncPoint.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__selfOrClientSyncAndVerdictPreamble(const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 414, TTCN_Location::LOCATION_FUNCTION, "f_selfOrClientSyncAndVerdictPreamble"); +charstring_list param_names; +param_names[0] = "p_syncPoint"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_selfOrClientSyncAndVerdictPreamble", "function", "LibCommon_Sync", param_names, param_types, "SelfSyncComp"); +debug_scope.add_variable(&p__syncPoint, "p_syncPoint", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(417); +ttcn3_debugger.breakpoint_entry(417); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 417 */ +if ((self == MTC_COMPREF)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(419); +ttcn3_debugger.breakpoint_entry(419); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 419 */ +f__selfSyncAndVerdictPreamble(p__syncPoint, p__ret); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(421); +ttcn3_debugger.breakpoint_entry(421); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 421 */ +f__clientSyncAndVerdictPreamble(p__syncPoint, p__ret); +} +} + +void start_f__selfOrClientSyncAndVerdictPreamble(const COMPONENT& component_reference, const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfOrClientSyncAndVerdictPreamble("); +p__syncPoint.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfOrClientSyncAndVerdictPreamble", text_buf); +p__syncPoint.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__selfOrClientSyncAndVerdictTestBody(const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 443, TTCN_Location::LOCATION_FUNCTION, "f_selfOrClientSyncAndVerdictTestBody"); +charstring_list param_names; +param_names[0] = "p_syncPoint"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_selfOrClientSyncAndVerdictTestBody", "function", "LibCommon_Sync", param_names, param_types, "SelfSyncComp"); +debug_scope.add_variable(&p__syncPoint, "p_syncPoint", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(446); +ttcn3_debugger.breakpoint_entry(446); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 446 */ +if ((self == MTC_COMPREF)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(448); +ttcn3_debugger.breakpoint_entry(448); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 448 */ +f__selfSyncAndVerdictTestBody(p__syncPoint, p__ret); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(450); +ttcn3_debugger.breakpoint_entry(450); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 450 */ +f__clientSyncAndVerdictTestBody(p__syncPoint, p__ret); +} +} + +void start_f__selfOrClientSyncAndVerdictTestBody(const COMPONENT& component_reference, const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfOrClientSyncAndVerdictTestBody("); +p__syncPoint.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfOrClientSyncAndVerdictTestBody", text_buf); +p__syncPoint.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__selfOrClientSyncAndVerdictPR(const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 459, TTCN_Location::LOCATION_FUNCTION, "f_selfOrClientSyncAndVerdictPR"); +charstring_list param_names; +param_names[0] = "p_syncPoint"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_selfOrClientSyncAndVerdictPR", "function", "LibCommon_Sync", param_names, param_types, "SelfSyncComp"); +debug_scope.add_variable(&p__syncPoint, "p_syncPoint", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(462); +ttcn3_debugger.breakpoint_entry(462); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 462 */ +f__selfOrClientSyncAndVerdictPreamble(p__syncPoint, p__ret); +} + +void start_f__selfOrClientSyncAndVerdictPR(const COMPONENT& component_reference, const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfOrClientSyncAndVerdictPR("); +p__syncPoint.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfOrClientSyncAndVerdictPR", text_buf); +p__syncPoint.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__addSyncCompState(const CHARSTRING& p__newSyncCompState, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 488, TTCN_Location::LOCATION_FUNCTION, "f_addSyncCompState"); +charstring_list param_names; +param_names[0] = "p_newSyncCompState"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_addSyncCompState", "function", "LibCommon_Sync", param_names, param_types, "ClientSyncComp"); +debug_scope.add_variable(&p__newSyncCompState, "p_newSyncCompState", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(491); +ttcn3_debugger.breakpoint_entry(491); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 491 */ +if ((p__ret == LibCommon__VerdictControl::FncRetCode::e__success)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(492); +ttcn3_debugger.breakpoint_entry(492); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 492 */ +if (LibCommon__AbstractData::f__isItemOnStringStack(ClientSyncComp_component_v__stateStack, p__newSyncCompState)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(493); +ttcn3_debugger.breakpoint_entry(493); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 493 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_addSyncCompState: WARNING: Attempt to add state which is already on sync state stack! No additition done.****"); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 495 */ +LibCommon__AbstractData::f__pushStringStack(ClientSyncComp_component_v__stateStack, p__newSyncCompState); +} +} +} + +void start_f__addSyncCompState(const COMPONENT& component_reference, const CHARSTRING& p__newSyncCompState, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_addSyncCompState("); +p__newSyncCompState.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_addSyncCompState", text_buf); +p__newSyncCompState.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +BOOLEAN f__getTopSyncCompState(CHARSTRING& p__state) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 512, TTCN_Location::LOCATION_FUNCTION, "f_getTopSyncCompState"); +p__state.clean_up(); +charstring_list param_names; +param_names[0] = "p_state"; +charstring_list param_types; +param_types[0] = "out"; +TTCN3_Debug_Function debug_scope("f_getTopSyncCompState", "function", "LibCommon_Sync", param_names, param_types, "ClientSyncComp"); +debug_scope.add_variable(&p__state, "p_state", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(515); +ttcn3_debugger.breakpoint_entry(515); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 515 */ +if ((!(LibCommon__AbstractData::f__peekStringStackTop(ClientSyncComp_component_v__stateStack, p__state)))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(516); +ttcn3_debugger.breakpoint_entry(516); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 516 */ +p__state = cs_4; +current_location.update_lineno(517); +ttcn3_debugger.breakpoint_entry(517); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 517 */ +{ +BOOLEAN tmp_5; +return DEBUGGER_STORE_RETURN_VALUE(tmp_5, FALSE); +} +} +current_location.update_lineno(519); +ttcn3_debugger.breakpoint_entry(519); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 519 */ +LibCommon__AbstractData::f__popStringStack(ClientSyncComp_component_v__stateStack); +current_location.update_lineno(520); +ttcn3_debugger.breakpoint_entry(520); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 520 */ +{ +BOOLEAN tmp_6; +return DEBUGGER_STORE_RETURN_VALUE(tmp_6, TRUE); +} +} + +void start_f__getTopSyncCompState(const COMPONENT& component_reference, CHARSTRING& p__state) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_getTopSyncCompState("); +p__state.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_getTopSyncCompState", text_buf); +p__state.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__popSyncCompState() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 530, TTCN_Location::LOCATION_FUNCTION, "f_popSyncCompState"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_popSyncCompState", "function", "LibCommon_Sync", no_params, no_params, "ClientSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(532); +ttcn3_debugger.breakpoint_entry(532); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 532 */ +LibCommon__AbstractData::f__popStringStack(ClientSyncComp_component_v__stateStack); +} + +void start_f__popSyncCompState(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_popSyncCompState("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_popSyncCompState", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +BOOLEAN f__peekTopSyncCompState(CHARSTRING& p__state) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 546, TTCN_Location::LOCATION_FUNCTION, "f_peekTopSyncCompState"); +p__state.clean_up(); +charstring_list param_names; +param_names[0] = "p_state"; +charstring_list param_types; +param_types[0] = "out"; +TTCN3_Debug_Function debug_scope("f_peekTopSyncCompState", "function", "LibCommon_Sync", param_names, param_types, "ClientSyncComp"); +debug_scope.add_variable(&p__state, "p_state", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(549); +ttcn3_debugger.breakpoint_entry(549); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 549 */ +{ +BOOLEAN tmp_7; +return DEBUGGER_STORE_RETURN_VALUE(tmp_7, LibCommon__AbstractData::f__peekStringStackTop(ClientSyncComp_component_v__stateStack, p__state)); +} +} + +void start_f__peekTopSyncCompState(const COMPONENT& component_reference, CHARSTRING& p__state) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_peekTopSyncCompState("); +p__state.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_peekTopSyncCompState", text_buf); +p__state.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +BOOLEAN f__isSyncCompStateStackEmpty() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 559, TTCN_Location::LOCATION_FUNCTION, "f_isSyncCompStateStackEmpty"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_isSyncCompStateStackEmpty", "function", "LibCommon_Sync", no_params, no_params, "ClientSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(562); +ttcn3_debugger.breakpoint_entry(562); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 562 */ +{ +BOOLEAN tmp_8; +return DEBUGGER_STORE_RETURN_VALUE(tmp_8, LibCommon__AbstractData::f__isStringStackEmpty(ClientSyncComp_component_v__stateStack)); +} +} + +void start_f__isSyncCompStateStackEmpty(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_isSyncCompStateStackEmpty("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_isSyncCompStateStackEmpty", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +alt_status a__dummyShutDown_instance() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 602, TTCN_Location::LOCATION_ALTSTEP, "a_dummyShutDown"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("a_dummyShutDown", "altstep", "LibCommon_Sync", no_params, no_params, "SelfSyncComp"); +debug_scope.initial_snapshot(); +alt_status ret_val = ALT_NO; +current_location.update_lineno(604); +ttcn3_debugger.breakpoint_entry(604); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 604 */ +switch (BaseSyncComp_component_syncPort.receive(m__syncServerStop, NULL, any_compref, NULL, NULL, NULL)) { +case ALT_YES: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(605); +ttcn3_debugger.breakpoint_entry(605); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 605 */ +CHARSTRING v__state(cs_5); +debug_scope.add_variable(&v__state, "v_state", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(606); +ttcn3_debugger.breakpoint_entry(606); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 606 */ +BaseSyncComp_component_tc__sync.stop(); +current_location.update_lineno(607); +ttcn3_debugger.breakpoint_entry(607); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 607 */ +TTCN_Logger::log_str(TTCN_USER, "**** a_dummyShutDown: Test component received STOP signal from sync server - going to IDLE state ****"); +for ( ; ; ) { +current_location.update_lineno(608); +ttcn3_debugger.breakpoint_entry(608); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 608 */ +if (!f__getTopSyncCompState(v__state)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(609); +ttcn3_debugger.breakpoint_entry(609); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 609 */ +if ((v__state == cs_6)) { +TTCN3_Debug_Scope debug_scope; +} +else { +current_location.update_lineno(611); +ttcn3_debugger.breakpoint_entry(611); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 611 */ +if ((v__state == cs_7)) { +TTCN3_Debug_Scope debug_scope; +} +} +} +current_location.update_lineno(615); +ttcn3_debugger.breakpoint_entry(615); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 615 */ +f__disconnect4SelfOrClientSync(); +current_location.update_lineno(617); +ttcn3_debugger.breakpoint_entry(617); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 617 */ +TTCN_Logger::log_str(TTCN_USER, "**** a_dummyShutDown: -> Test component stopping itself now! ****"); +current_location.update_lineno(618); +ttcn3_debugger.breakpoint_entry(618); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 618 */ +TTCN_Runtime::stop_execution(); +} +case ALT_MAYBE: +ret_val = ALT_MAYBE; +default: +break; +} +return ret_val; +} + +void a__dummyShutDown() +{ +altstep_begin: +boolean block_flag = FALSE; +alt_status altstep_flag = ALT_UNCHECKED, default_flag = ALT_UNCHECKED; +for ( ; ; ) { +TTCN_Snapshot::take_new(block_flag); +if (altstep_flag != ALT_NO) { +altstep_flag = a__dummyShutDown_instance(); +if (altstep_flag == ALT_YES || altstep_flag == ALT_BREAK) return; +else if (altstep_flag == ALT_REPEAT) goto altstep_begin; +} +if (default_flag != ALT_NO) { +default_flag = TTCN_Default::try_altsteps(); +if (default_flag == ALT_YES || default_flag == ALT_BREAK) return; +else if (default_flag == ALT_REPEAT) goto altstep_begin; +} +if (altstep_flag == ALT_NO && default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in altstep a_dummyShutDown."); +else block_flag = TRUE; +} +} + +Default_Base *activate_a__dummyShutDown() +{ +return new a__dummyShutDown_Default(); +} + +alt_status a__shutdown_instance() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 627, TTCN_Location::LOCATION_ALTSTEP, "a_shutdown"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("a_shutdown", "altstep", "LibCommon_Sync", no_params, no_params, "ClientSyncComp"); +debug_scope.initial_snapshot(); +alt_status ret_val = ALT_NO; +current_location.update_lineno(629); +ttcn3_debugger.breakpoint_entry(629); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 629 */ +switch (BaseSyncComp_component_syncPort.receive(m__syncServerStop, NULL, any_compref, NULL, NULL, NULL)) { +case ALT_YES: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(630); +ttcn3_debugger.breakpoint_entry(630); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 630 */ +BaseSyncComp_component_tc__sync.stop(); +current_location.update_lineno(631); +ttcn3_debugger.breakpoint_entry(631); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 631 */ +TTCN_Logger::log_str(TTCN_USER, "**** a_shutdown: Test component received STOP signal from MTC **** "); +} +return ALT_YES; +case ALT_MAYBE: +ret_val = ALT_MAYBE; +default: +break; +} +return ret_val; +} + +void a__shutdown() +{ +altstep_begin: +boolean block_flag = FALSE; +alt_status altstep_flag = ALT_UNCHECKED, default_flag = ALT_UNCHECKED; +for ( ; ; ) { +TTCN_Snapshot::take_new(block_flag); +if (altstep_flag != ALT_NO) { +altstep_flag = a__shutdown_instance(); +if (altstep_flag == ALT_YES || altstep_flag == ALT_BREAK) return; +else if (altstep_flag == ALT_REPEAT) goto altstep_begin; +} +if (default_flag != ALT_NO) { +default_flag = TTCN_Default::try_altsteps(); +if (default_flag == ALT_YES || default_flag == ALT_BREAK) return; +else if (default_flag == ALT_REPEAT) goto altstep_begin; +} +if (altstep_flag == ALT_NO && default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in altstep a_shutdown."); +else block_flag = TRUE; +} +} + +Default_Base *activate_a__shutdown() +{ +return new a__shutdown_Default(); +} + +void f__serverSyncClients(const INTEGER& p__noOfClients, const CHARSTRING& p__syncId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 659, TTCN_Location::LOCATION_FUNCTION, "f_serverSyncClients"); +charstring_list param_names; +param_names[0] = "p_noOfClients"; +param_names[1] = "p_syncId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSyncClients", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__noOfClients, "p_noOfClients", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(661); +ttcn3_debugger.breakpoint_entry(661); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 661 */ +f__serverSyncClientsTimed(p__noOfClients, p__syncId, PX__TSYNC__TIME__LIMIT); +} + +void start_f__serverSyncClients(const COMPONENT& component_reference, const INTEGER& p__noOfClients, const CHARSTRING& p__syncId) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncClients("); +p__noOfClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncId.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSyncClients", text_buf); +p__noOfClients.encode_text(text_buf); +p__syncId.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverSyncClientsIntermediateSync(const INTEGER& p__noOfClients, const CHARSTRING& p__syncId, const INTEGER& p__NoOfClientIntermediate, const CHARSTRING_template& p__syncIdIntermediate) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 681, TTCN_Location::LOCATION_FUNCTION, "f_serverSyncClientsIntermediateSync"); +charstring_list param_names; +param_names[0] = "p_noOfClients"; +param_names[1] = "p_syncId"; +param_names[2] = "p_NoOfClientIntermediate"; +param_names[3] = "p_syncIdIntermediate"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSyncClientsIntermediateSync", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__noOfClients, "p_noOfClients", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NoOfClientIntermediate, "p_NoOfClientIntermediate", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__syncIdIntermediate, "p_syncIdIntermediate", "charstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(683); +ttcn3_debugger.breakpoint_entry(683); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 683 */ +f__serverSyncClientsTimedIntermediateSync(p__noOfClients, p__syncId, p__NoOfClientIntermediate, p__syncIdIntermediate, PX__TSYNC__TIME__LIMIT); +} + +void start_f__serverSyncClientsIntermediateSync(const COMPONENT& component_reference, const INTEGER& p__noOfClients, const CHARSTRING& p__syncId, const INTEGER& p__NoOfClientIntermediate, const CHARSTRING_template& p__syncIdIntermediate) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncClientsIntermediateSync("); +p__noOfClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__NoOfClientIntermediate.log(); +TTCN_Logger::log_event_str(", "); +p__syncIdIntermediate.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSyncClientsIntermediateSync", text_buf); +p__noOfClients.encode_text(text_buf); +p__syncId.encode_text(text_buf); +p__NoOfClientIntermediate.encode_text(text_buf); +p__syncIdIntermediate.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverSyncClientsTimed(const INTEGER& p__NoOfClients, const CHARSTRING& p__syncId, const FLOAT& p__execTimeLimit) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 698, TTCN_Location::LOCATION_FUNCTION, "f_serverSyncClientsTimed"); +charstring_list param_names; +param_names[0] = "p_NoOfClients"; +param_names[1] = "p_syncId"; +param_names[2] = "p_execTimeLimit"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSyncClientsTimed", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__NoOfClients, "p_NoOfClients", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__execTimeLimit, "p_execTimeLimit", "float", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(702); +ttcn3_debugger.breakpoint_entry(702); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 702 */ +f__serverSyncClientsTimedIntermediateSync(p__NoOfClients, p__syncId, 0, CHARSTRING_template(ANY_VALUE), p__execTimeLimit); +} + +void start_f__serverSyncClientsTimed(const COMPONENT& component_reference, const INTEGER& p__NoOfClients, const CHARSTRING& p__syncId, const FLOAT& p__execTimeLimit) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncClientsTimed("); +p__NoOfClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__execTimeLimit.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSyncClientsTimed", text_buf); +p__NoOfClients.encode_text(text_buf); +p__syncId.encode_text(text_buf); +p__execTimeLimit.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverSyncClientsTimedIntermediateSync(const INTEGER& p__NoOfClients, const CHARSTRING& p__syncId, const INTEGER& p__NoOfClientIntermediate, const CHARSTRING_template& p__syncIdIntermediate, const FLOAT& p__execTimeLimit) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 718, TTCN_Location::LOCATION_FUNCTION, "f_serverSyncClientsTimedIntermediateSync"); +charstring_list param_names; +param_names[0] = "p_NoOfClients"; +param_names[1] = "p_syncId"; +param_names[2] = "p_NoOfClientIntermediate"; +param_names[3] = "p_syncIdIntermediate"; +param_names[4] = "p_execTimeLimit"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSyncClientsTimedIntermediateSync", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__NoOfClients, "p_NoOfClients", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NoOfClientIntermediate, "p_NoOfClientIntermediate", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__syncIdIntermediate, "p_syncIdIntermediate", "charstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__execTimeLimit, "p_execTimeLimit", "float", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(723); +ttcn3_debugger.breakpoint_entry(723); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 723 */ +INTEGER v__noOfRecvdSyncMsgs(0); +debug_scope.add_variable(&v__noOfRecvdSyncMsgs, "v_noOfRecvdSyncMsgs", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(723); +ttcn3_debugger.breakpoint_entry(723); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 723 */ +INTEGER v__noOfRecvdSyncMsgsIntermediate(0); +debug_scope.add_variable(&v__noOfRecvdSyncMsgsIntermediate, "v_noOfRecvdSyncMsgsIntermediate", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(724); +ttcn3_debugger.breakpoint_entry(724); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 724 */ +BOOLEAN v__stopClients(FALSE); +debug_scope.add_variable(&v__stopClients, "v_stopClients", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(725); +ttcn3_debugger.breakpoint_entry(725); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 725 */ +ClientSyncCompList v__clientRefs(NULL_VALUE); +debug_scope.add_variable(&v__clientRefs, "v_clientRefs", "ClientSyncCompList", NULL, print_var_LibCommon_Sync, set_var_LibCommon_Sync); +current_location.update_lineno(725); +ttcn3_debugger.breakpoint_entry(725); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 725 */ +ClientSyncCompList v__clientRefsIntermediate(NULL_VALUE); +debug_scope.add_variable(&v__clientRefsIntermediate, "v_clientRefsIntermediate", "ClientSyncCompList", NULL, print_var_LibCommon_Sync, set_var_LibCommon_Sync); +current_location.update_lineno(726); +ttcn3_debugger.breakpoint_entry(726); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 726 */ +COMPONENT v__clientRef; +debug_scope.add_variable(&v__clientRef, "v_clientRef", "component", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(728); +ttcn3_debugger.breakpoint_entry(728); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 728 */ +if ((p__syncId == cs_0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(729); +ttcn3_debugger.breakpoint_entry(729); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 729 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server now starting PREAMBLE synchronization ... ****"); +} +else { +current_location.update_lineno(730); +ttcn3_debugger.breakpoint_entry(730); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 730 */ +if ((p__syncId == cs_2)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(731); +ttcn3_debugger.breakpoint_entry(731); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 731 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server now starting TEST BODY synchronization ... ****"); +} +else { +current_location.update_lineno(732); +ttcn3_debugger.breakpoint_entry(732); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 732 */ +if ((p__syncId == cs_3)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(733); +ttcn3_debugger.breakpoint_entry(733); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 733 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server now starting UPPER TESTER synchronization ... ****"); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(735); +ttcn3_debugger.breakpoint_entry(735); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 735 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server now starting handling of next synchronization point ... ****"); +} +} +} +current_location.update_lineno(737); +ttcn3_debugger.breakpoint_entry(737); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 737 */ +BaseSyncComp_component_tc__sync.start(p__execTimeLimit); +current_location.update_lineno(738); +ttcn3_debugger.breakpoint_entry(738); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 738 */ +{ +tmp_9: +alt_status tmp_9_alt_flag_0 = ALT_UNCHECKED; +alt_status tmp_9_alt_flag_1 = ALT_MAYBE; +alt_status tmp_9_alt_flag_2 = ALT_MAYBE; +alt_status tmp_9_alt_flag_3 = ALT_MAYBE; +alt_status tmp_9_alt_flag_4 = ALT_MAYBE; +alt_status tmp_9_alt_flag_5 = ALT_MAYBE; +alt_status tmp_9_alt_flag_6 = ALT_MAYBE; +alt_status tmp_9_default_flag = ALT_MAYBE; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (tmp_9_alt_flag_0 == ALT_UNCHECKED) { +current_location.update_lineno(739); +ttcn3_debugger.breakpoint_entry(739); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 739 */ +if ((v__noOfRecvdSyncMsgsIntermediate != p__NoOfClientIntermediate)) tmp_9_alt_flag_0 = ALT_MAYBE; +else tmp_9_alt_flag_0 = ALT_NO; +} +if (tmp_9_alt_flag_0 == ALT_MAYBE) { +current_location.update_lineno(739); +ttcn3_debugger.breakpoint_entry(739); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 739 */ +tmp_9_alt_flag_0 = BaseSyncComp_component_syncPort.receive(m__syncClientReady(p__syncIdIntermediate), NULL, any_compref, &(v__clientRef), NULL, NULL); +if (tmp_9_alt_flag_0 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(740); +ttcn3_debugger.breakpoint_entry(740); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 740 */ +if ((!(f__isPresentInArray(v__clientRef, v__clientRefsIntermediate)))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(741); +ttcn3_debugger.breakpoint_entry(741); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 741 */ +v__clientRefsIntermediate[v__noOfRecvdSyncMsgsIntermediate] = v__clientRef; +current_location.update_lineno(742); +ttcn3_debugger.breakpoint_entry(742); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 742 */ +{ +INTEGER tmp_11; +++v__noOfRecvdSyncMsgsIntermediate; +} +current_location.update_lineno(743); +ttcn3_debugger.breakpoint_entry(743); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 743 */ +if ((v__noOfRecvdSyncMsgsIntermediate == p__NoOfClientIntermediate)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(744); +ttcn3_debugger.breakpoint_entry(744); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 744 */ +{ +SyncCmd_template tmp_12; +tmp_12 = m__syncServerReady(p__syncIdIntermediate); +tmp_12.check_restriction(TR_VALUE); +f__serverSendToAllClients(v__clientRefsIntermediate, tmp_12); +} +} +} +current_location.update_lineno(747); +ttcn3_debugger.breakpoint_entry(747); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 747 */ +goto tmp_9; +} +} +if (tmp_9_alt_flag_1 == ALT_MAYBE) { +current_location.update_lineno(749); +ttcn3_debugger.breakpoint_entry(749); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 749 */ +tmp_9_alt_flag_1 = BaseSyncComp_component_syncPort.receive(m__syncClientReady(CHARSTRING_template(p__syncId)), NULL, any_compref, &(v__clientRef), NULL, NULL); +if (tmp_9_alt_flag_1 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(750); +ttcn3_debugger.breakpoint_entry(750); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 750 */ +if ((!(f__isPresentInArray(v__clientRef, v__clientRefs)))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(751); +ttcn3_debugger.breakpoint_entry(751); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 751 */ +v__clientRefs[v__noOfRecvdSyncMsgs] = v__clientRef; +current_location.update_lineno(752); +ttcn3_debugger.breakpoint_entry(752); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 752 */ +{ +INTEGER tmp_14; +++v__noOfRecvdSyncMsgs; +} +} +current_location.update_lineno(754); +ttcn3_debugger.breakpoint_entry(754); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 754 */ +if ((v__noOfRecvdSyncMsgs != p__NoOfClients)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(754); +ttcn3_debugger.breakpoint_entry(754); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 754 */ +goto tmp_9; +} +break; +} +} +if (tmp_9_alt_flag_2 == ALT_MAYBE) { +current_location.update_lineno(756); +ttcn3_debugger.breakpoint_entry(756); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 756 */ +tmp_9_alt_flag_2 = BaseSyncComp_component_syncPort.receive(m__syncClientStop, NULL, any_compref, &(v__clientRef), NULL, NULL); +if (tmp_9_alt_flag_2 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(757); +ttcn3_debugger.breakpoint_entry(757); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 757 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server received STOP signal from a client - server will wait for all clients to reach their next synchronization point and then stop them! ****"); +current_location.update_lineno(758); +ttcn3_debugger.breakpoint_entry(758); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 758 */ +v__stopClients = TRUE; +current_location.update_lineno(759); +ttcn3_debugger.breakpoint_entry(759); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 759 */ +if ((!(f__isPresentInArray(v__clientRef, v__clientRefs)))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(760); +ttcn3_debugger.breakpoint_entry(760); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 760 */ +v__clientRefs[v__noOfRecvdSyncMsgs] = v__clientRef; +current_location.update_lineno(761); +ttcn3_debugger.breakpoint_entry(761); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 761 */ +{ +INTEGER tmp_17; +++v__noOfRecvdSyncMsgs; +} +} +current_location.update_lineno(763); +ttcn3_debugger.breakpoint_entry(763); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 763 */ +if ((v__noOfRecvdSyncMsgs != p__NoOfClients)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(763); +ttcn3_debugger.breakpoint_entry(763); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 763 */ +goto tmp_9; +} +break; +} +} +if (tmp_9_alt_flag_3 == ALT_MAYBE) { +current_location.update_lineno(766); +ttcn3_debugger.breakpoint_entry(766); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 766 */ +tmp_9_alt_flag_3 = BaseSyncComp_component_syncPort.receive(m__syncClientReady(CHARSTRING_template(ANY_VALUE)), NULL, any_compref, &(v__clientRef), NULL, NULL); +if (tmp_9_alt_flag_3 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(767); +ttcn3_debugger.breakpoint_entry(767); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 767 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server received client sync message with incorrect synchronization point id which is currently not handled - server will stop all clients! ****"); +current_location.update_lineno(768); +ttcn3_debugger.breakpoint_entry(768); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 768 */ +v__stopClients = TRUE; +current_location.update_lineno(769); +ttcn3_debugger.breakpoint_entry(769); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 769 */ +if ((!(f__isPresentInArray(v__clientRef, v__clientRefs)))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(770); +ttcn3_debugger.breakpoint_entry(770); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 770 */ +v__clientRefs[v__noOfRecvdSyncMsgs] = v__clientRef; +} +break; +} +} +if (tmp_9_alt_flag_4 == ALT_MAYBE) { +current_location.update_lineno(773); +ttcn3_debugger.breakpoint_entry(773); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 773 */ +tmp_9_alt_flag_4 = BaseSyncComp_component_syncPort.receive(SyncCmd_template(ANY_VALUE), NULL, any_compref, NULL, NULL, NULL); +if (tmp_9_alt_flag_4 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(774); +ttcn3_debugger.breakpoint_entry(774); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 774 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server received (invalid) sync message from other sync server - server will stop all clients! ****"); +current_location.update_lineno(775); +ttcn3_debugger.breakpoint_entry(775); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 775 */ +v__stopClients = TRUE; +break; +} +} +if (tmp_9_alt_flag_5 == ALT_MAYBE) { +current_location.update_lineno(776); +ttcn3_debugger.breakpoint_entry(776); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 776 */ +tmp_9_alt_flag_5 = PORT::any_receive(any_compref, NULL, NULL); +if (tmp_9_alt_flag_5 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(780); +ttcn3_debugger.breakpoint_entry(780); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 780 */ +goto tmp_9; +} +} +if (tmp_9_alt_flag_6 == ALT_MAYBE) { +current_location.update_lineno(782); +ttcn3_debugger.breakpoint_entry(782); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 782 */ +tmp_9_alt_flag_6 = BaseSyncComp_component_tc__sync.timeout(NULL); +if (tmp_9_alt_flag_6 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(783); +ttcn3_debugger.breakpoint_entry(783); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 783 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: A client is not responding within specified time limit - sync server is sending stop to all clients! ****"); +current_location.update_lineno(784); +ttcn3_debugger.breakpoint_entry(784); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 784 */ +v__stopClients = TRUE; +break; +} +} +if (tmp_9_default_flag == ALT_MAYBE) { +tmp_9_default_flag = TTCN_Default::try_altsteps(); +if (tmp_9_default_flag == ALT_YES || tmp_9_default_flag == ALT_BREAK) break; +else if (tmp_9_default_flag == ALT_REPEAT) goto tmp_9; +} +current_location.update_lineno(738); +ttcn3_debugger.breakpoint_entry(738); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 738 */ +if (tmp_9_alt_flag_0 == ALT_NO && tmp_9_alt_flag_1 == ALT_NO && tmp_9_alt_flag_2 == ALT_NO && tmp_9_alt_flag_3 == ALT_NO && tmp_9_alt_flag_4 == ALT_NO && tmp_9_alt_flag_5 == ALT_NO && tmp_9_alt_flag_6 == ALT_NO && tmp_9_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn between lines 738 and 785."); +TTCN_Snapshot::take_new(TRUE); +} +} +current_location.update_lineno(786); +ttcn3_debugger.breakpoint_entry(786); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 786 */ +if ((v__noOfRecvdSyncMsgsIntermediate != p__NoOfClientIntermediate)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(787); +ttcn3_debugger.breakpoint_entry(787); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 787 */ +v__stopClients = TRUE; +} +current_location.update_lineno(789); +ttcn3_debugger.breakpoint_entry(789); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 789 */ +BaseSyncComp_component_tc__sync.stop(); +current_location.update_lineno(790); +ttcn3_debugger.breakpoint_entry(790); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 790 */ +if (v__stopClients) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(791); +ttcn3_debugger.breakpoint_entry(791); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 791 */ +TTCN_Runtime::setverdict(INCONC); +current_location.update_lineno(793); +ttcn3_debugger.breakpoint_entry(793); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 793 */ +f__serverSendToAllClients(v__clientRefs, m__syncServerStop); +current_location.update_lineno(794); +ttcn3_debugger.breakpoint_entry(794); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 794 */ +f__serverWaitForAllClientsToShutDown(); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(796); +ttcn3_debugger.breakpoint_entry(796); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 796 */ +TTCN_Runtime::setverdict(PASS); +current_location.update_lineno(798); +ttcn3_debugger.breakpoint_entry(798); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 798 */ +{ +SyncCmd_template tmp_23; +tmp_23 = m__syncServerReady(CHARSTRING_template(p__syncId)); +tmp_23.check_restriction(TR_VALUE); +f__serverSendToAllClients(v__clientRefs, tmp_23); +} +current_location.update_lineno(799); +ttcn3_debugger.breakpoint_entry(799); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 799 */ +if ((p__syncId == cs_0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(800); +ttcn3_debugger.breakpoint_entry(800); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 800 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server successfully passed PREAMBLE synchronization point. ****"); +} +else { +current_location.update_lineno(801); +ttcn3_debugger.breakpoint_entry(801); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 801 */ +if ((p__syncId == cs_2)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(802); +ttcn3_debugger.breakpoint_entry(802); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 802 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server successfully passed TEST BODY synchronization point. ****"); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(804); +ttcn3_debugger.breakpoint_entry(804); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 804 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverSyncClientsTimed: Sync server successfully passed synchronization point. ****"); +} +} +} +} + +void start_f__serverSyncClientsTimedIntermediateSync(const COMPONENT& component_reference, const INTEGER& p__NoOfClients, const CHARSTRING& p__syncId, const INTEGER& p__NoOfClientIntermediate, const CHARSTRING_template& p__syncIdIntermediate, const FLOAT& p__execTimeLimit) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncClientsTimedIntermediateSync("); +p__NoOfClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__NoOfClientIntermediate.log(); +TTCN_Logger::log_event_str(", "); +p__syncIdIntermediate.log(); +TTCN_Logger::log_event_str(", "); +p__execTimeLimit.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSyncClientsTimedIntermediateSync", text_buf); +p__NoOfClients.encode_text(text_buf); +p__syncId.encode_text(text_buf); +p__NoOfClientIntermediate.encode_text(text_buf); +p__syncIdIntermediate.encode_text(text_buf); +p__execTimeLimit.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverWaitForAllClientsToStop() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 817, TTCN_Location::LOCATION_FUNCTION, "f_serverWaitForAllClientsToStop"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_serverWaitForAllClientsToStop", "function", "LibCommon_Sync", no_params, no_params, "ServerSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(819); +ttcn3_debugger.breakpoint_entry(819); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 819 */ +BaseSyncComp_component_tc__sync.start(); +current_location.update_lineno(820); +ttcn3_debugger.breakpoint_entry(820); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 820 */ +{ +tmp_24: +alt_status tmp_24_alt_flag_0 = ALT_MAYBE; +alt_status tmp_24_alt_flag_1 = ALT_MAYBE; +alt_status tmp_24_default_flag = ALT_MAYBE; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (tmp_24_alt_flag_0 == ALT_MAYBE) { +current_location.update_lineno(821); +ttcn3_debugger.breakpoint_entry(821); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 821 */ +tmp_24_alt_flag_0 = TTCN_Runtime::component_done(ALL_COMPREF); +if (tmp_24_alt_flag_0 == ALT_REPEAT) goto tmp_24; +if (tmp_24_alt_flag_0 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(822); +ttcn3_debugger.breakpoint_entry(822); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 822 */ +BaseSyncComp_component_tc__sync.stop(); +current_location.update_lineno(823); +ttcn3_debugger.breakpoint_entry(823); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 823 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverWaitForAllClientsToStop: All sync clients have finished their execution. Sync server now terminating test case. ****"); +break; +} +} +if (tmp_24_alt_flag_1 == ALT_MAYBE) { +current_location.update_lineno(825); +ttcn3_debugger.breakpoint_entry(825); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 825 */ +tmp_24_alt_flag_1 = BaseSyncComp_component_tc__sync.timeout(NULL); +if (tmp_24_alt_flag_1 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(826); +ttcn3_debugger.breakpoint_entry(826); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 826 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverWaitForAllClientsToStop: Not all sync clients have finshed execution within the sync time limit. Sync server will stop test case! ****"); +current_location.update_lineno(827); +ttcn3_debugger.breakpoint_entry(827); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 827 */ +TTCN_Runtime::stop_execution(); +} +} +if (tmp_24_default_flag == ALT_MAYBE) { +tmp_24_default_flag = TTCN_Default::try_altsteps(); +if (tmp_24_default_flag == ALT_YES || tmp_24_default_flag == ALT_BREAK) break; +else if (tmp_24_default_flag == ALT_REPEAT) goto tmp_24; +} +current_location.update_lineno(820); +ttcn3_debugger.breakpoint_entry(820); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 820 */ +if (tmp_24_alt_flag_0 == ALT_NO && tmp_24_alt_flag_1 == ALT_NO && tmp_24_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn between lines 820 and 829."); +TTCN_Snapshot::take_new(TRUE); +} +} +current_location.update_lineno(830); +ttcn3_debugger.breakpoint_entry(830); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 830 */ +TTCN_Runtime::setverdict(PASS); +} + +void start_f__serverWaitForAllClientsToStop(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverWaitForAllClientsToStop("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverWaitForAllClientsToStop", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__connect4ClientSync() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 843, TTCN_Location::LOCATION_FUNCTION, "f_connect4ClientSync"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_connect4ClientSync", "function", "LibCommon_Sync", no_params, no_params, "ClientSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(845); +ttcn3_debugger.breakpoint_entry(845); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 845 */ +TTCN_Runtime::connect_port(self, BaseSyncComp_component_syncPort.get_name(), MTC_COMPREF, "syncPort"); +} + +void start_f__connect4ClientSync(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_connect4ClientSync("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_connect4ClientSync", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__disconnect4ClientSync() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 854, TTCN_Location::LOCATION_FUNCTION, "f_disconnect4ClientSync"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_disconnect4ClientSync", "function", "LibCommon_Sync", no_params, no_params, "ClientSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(856); +ttcn3_debugger.breakpoint_entry(856); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 856 */ +TTCN_Runtime::disconnect_port(self, BaseSyncComp_component_syncPort.get_name(), MTC_COMPREF, "syncPort"); +} + +void start_f__disconnect4ClientSync(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_disconnect4ClientSync("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_disconnect4ClientSync", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__clientSyncAndVerdict(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 876, TTCN_Location::LOCATION_FUNCTION, "f_clientSyncAndVerdict"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_clientSyncAndVerdict", "function", "LibCommon_Sync", param_names, param_types, "ClientSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(879); +ttcn3_debugger.breakpoint_entry(879); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 879 */ +if ((ClientSyncComp_component_vc__testcaseStep == TestcaseStep::e__preamble)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(880); +ttcn3_debugger.breakpoint_entry(880); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 880 */ +f__clientSyncAndVerdictPreamble(p__syncId, p__ret); +} +else { +current_location.update_lineno(881); +ttcn3_debugger.breakpoint_entry(881); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 881 */ +if ((ClientSyncComp_component_vc__testcaseStep == TestcaseStep::e__testBody)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(882); +ttcn3_debugger.breakpoint_entry(882); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 882 */ +f__clientSyncAndVerdictTestBody(p__syncId, p__ret); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(885); +ttcn3_debugger.breakpoint_entry(885); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 885 */ +f__clientSyncAndVerdictPostamble(p__syncId, p__ret); +} +} +} + +void start_f__clientSyncAndVerdict(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSyncAndVerdict("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_clientSyncAndVerdict", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__clientSyncAndVerdictPreamble(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 904, TTCN_Location::LOCATION_FUNCTION, "f_clientSyncAndVerdictPreamble"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_clientSyncAndVerdictPreamble", "function", "LibCommon_Sync", param_names, param_types, "ClientSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(907); +ttcn3_debugger.breakpoint_entry(907); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 907 */ +LibCommon__VerdictControl::f__setVerdictPreamble(p__ret); +current_location.update_lineno(908); +ttcn3_debugger.breakpoint_entry(908); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 908 */ +f__clientSync(p__syncId, p__ret); +current_location.update_lineno(909); +ttcn3_debugger.breakpoint_entry(909); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 909 */ +ClientSyncComp_component_vc__testcaseStep = TestcaseStep::e__testBody; +} + +void start_f__clientSyncAndVerdictPreamble(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSyncAndVerdictPreamble("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_clientSyncAndVerdictPreamble", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__clientSyncAndVerdictTestBody(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 929, TTCN_Location::LOCATION_FUNCTION, "f_clientSyncAndVerdictTestBody"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_clientSyncAndVerdictTestBody", "function", "LibCommon_Sync", param_names, param_types, "ClientSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(932); +ttcn3_debugger.breakpoint_entry(932); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 932 */ +LibCommon__VerdictControl::f__setVerdict(p__ret); +current_location.update_lineno(933); +ttcn3_debugger.breakpoint_entry(933); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 933 */ +f__clientSync(p__syncId, p__ret); +current_location.update_lineno(934); +ttcn3_debugger.breakpoint_entry(934); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 934 */ +ClientSyncComp_component_vc__testcaseStep = TestcaseStep::e__postamble; +} + +void start_f__clientSyncAndVerdictTestBody(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSyncAndVerdictTestBody("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_clientSyncAndVerdictTestBody", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__clientSyncAndVerdictPostamble(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 952, TTCN_Location::LOCATION_FUNCTION, "f_clientSyncAndVerdictPostamble"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_clientSyncAndVerdictPostamble", "function", "LibCommon_Sync", param_names, param_types, "ClientSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(955); +ttcn3_debugger.breakpoint_entry(955); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 955 */ +LibCommon__VerdictControl::f__setVerdictPostamble(p__ret); +current_location.update_lineno(956); +ttcn3_debugger.breakpoint_entry(956); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 956 */ +f__clientSync(p__syncId, p__ret); +} + +void start_f__clientSyncAndVerdictPostamble(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSyncAndVerdictPostamble("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_clientSyncAndVerdictPostamble", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +LibCommon__VerdictControl::FncRetCode f__clientSync(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 985, TTCN_Location::LOCATION_FUNCTION, "f_clientSync"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_clientSync", "function", "LibCommon_Sync", param_names, param_types, "ClientSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(990); +ttcn3_debugger.breakpoint_entry(990); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 990 */ +if ((p__ret == LibCommon__VerdictControl::FncRetCode::e__success)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(991); +ttcn3_debugger.breakpoint_entry(991); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 991 */ +BaseSyncComp_component_syncPort.send(m__syncClientReady(CHARSTRING_template(p__syncId)), NULL); +current_location.update_lineno(992); +ttcn3_debugger.breakpoint_entry(992); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 992 */ +BaseSyncComp_component_tc__sync.start(); +current_location.update_lineno(993); +ttcn3_debugger.breakpoint_entry(993); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 993 */ +{ +tmp_27: +alt_status tmp_27_alt_flag_0 = ALT_MAYBE; +alt_status tmp_27_alt_flag_1 = ALT_MAYBE; +alt_status tmp_27_default_flag = ALT_MAYBE; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (tmp_27_alt_flag_0 == ALT_MAYBE) { +current_location.update_lineno(994); +ttcn3_debugger.breakpoint_entry(994); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 994 */ +tmp_27_alt_flag_0 = BaseSyncComp_component_syncPort.receive(m__syncServerReady(CHARSTRING_template(p__syncId)), NULL, any_compref, NULL, NULL, NULL); +if (tmp_27_alt_flag_0 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(995); +ttcn3_debugger.breakpoint_entry(995); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 995 */ +BaseSyncComp_component_tc__sync.stop(); +break; +} +} +if (tmp_27_alt_flag_1 == ALT_MAYBE) { +current_location.update_lineno(996); +ttcn3_debugger.breakpoint_entry(996); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 996 */ +tmp_27_alt_flag_1 = BaseSyncComp_component_tc__sync.timeout(NULL); +if (tmp_27_alt_flag_1 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(997); +ttcn3_debugger.breakpoint_entry(997); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 997 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_clientSync: Sync client did not receive message from sync server within the specified time limit - sync client will ask sync server to stop test case! ****"); +current_location.update_lineno(998); +ttcn3_debugger.breakpoint_entry(998); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 998 */ +f__clientSendStop(); +break; +} +} +if (tmp_27_default_flag == ALT_MAYBE) { +tmp_27_default_flag = TTCN_Default::try_altsteps(); +if (tmp_27_default_flag == ALT_YES || tmp_27_default_flag == ALT_BREAK) break; +else if (tmp_27_default_flag == ALT_REPEAT) goto tmp_27; +} +current_location.update_lineno(993); +ttcn3_debugger.breakpoint_entry(993); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 993 */ +if (tmp_27_alt_flag_0 == ALT_NO && tmp_27_alt_flag_1 == ALT_NO && tmp_27_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn between lines 993 and 999."); +TTCN_Snapshot::take_new(TRUE); +} +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1002); +ttcn3_debugger.breakpoint_entry(1002); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1002 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_clientSync: Execution status indicates that execution of test component behavior was not successful - sync client will ask sync server to stop test case! ****"); +current_location.update_lineno(1003); +ttcn3_debugger.breakpoint_entry(1003); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1003 */ +f__clientSendStop(); +} +current_location.update_lineno(1005); +ttcn3_debugger.breakpoint_entry(1005); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1005 */ +if ((p__syncId == cs_0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1006); +ttcn3_debugger.breakpoint_entry(1006); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1006 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_clientSync: Sync client successfully passed PREAMBLE synchronization point. ****"); +} +else { +current_location.update_lineno(1007); +ttcn3_debugger.breakpoint_entry(1007); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1007 */ +if ((p__syncId == cs_2)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1008); +ttcn3_debugger.breakpoint_entry(1008); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1008 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_clientSync: Sync client successfully passed TEST BODY synchronization point. ****"); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1010); +ttcn3_debugger.breakpoint_entry(1010); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1010 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_clientSync: Sync client successfully passed synchronization point. ****"); +} +} +current_location.update_lineno(1012); +ttcn3_debugger.breakpoint_entry(1012); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1012 */ +{ +LibCommon__VerdictControl::FncRetCode tmp_28; +return DEBUGGER_STORE_RETURN_VALUE(tmp_28, LibCommon__VerdictControl::FncRetCode::e__success); +} +} + +void start_f__clientSync(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSync("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_clientSync", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__clientSendStop() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1036, TTCN_Location::LOCATION_FUNCTION, "f_clientSendStop"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_clientSendStop", "function", "LibCommon_Sync", no_params, no_params, "ClientSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(1038); +ttcn3_debugger.breakpoint_entry(1038); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1038 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_clientSendStop: Sync client requesting from server to stop test case (including itself). ****"); +current_location.update_lineno(1039); +ttcn3_debugger.breakpoint_entry(1039); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1039 */ +BaseSyncComp_component_syncPort.send(m__syncClientStop, NULL); +current_location.update_lineno(1040); +ttcn3_debugger.breakpoint_entry(1040); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1040 */ +BaseSyncComp_component_tc__sync.start(); +current_location.update_lineno(1041); +ttcn3_debugger.breakpoint_entry(1041); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1041 */ +{ +tmp_29: +alt_status tmp_29_alt_flag_0 = ALT_MAYBE; +alt_status tmp_29_default_flag = ALT_MAYBE; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (tmp_29_alt_flag_0 == ALT_MAYBE) { +current_location.update_lineno(1042); +ttcn3_debugger.breakpoint_entry(1042); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1042 */ +tmp_29_alt_flag_0 = BaseSyncComp_component_tc__sync.timeout(NULL); +if (tmp_29_alt_flag_0 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1043); +ttcn3_debugger.breakpoint_entry(1043); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1043 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_clientSendStop: Stopping sync client without shutdown - either no shutdown default active or no stop received from server. ****"); +current_location.update_lineno(1044); +ttcn3_debugger.breakpoint_entry(1044); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1044 */ +TTCN_Runtime::setverdict(INCONC); +current_location.update_lineno(1045); +ttcn3_debugger.breakpoint_entry(1045); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1045 */ +TTCN_Runtime::stop_execution(); +} +} +if (tmp_29_default_flag == ALT_MAYBE) { +tmp_29_default_flag = TTCN_Default::try_altsteps(); +if (tmp_29_default_flag == ALT_YES || tmp_29_default_flag == ALT_BREAK) break; +else if (tmp_29_default_flag == ALT_REPEAT) goto tmp_29; +} +current_location.update_lineno(1041); +ttcn3_debugger.breakpoint_entry(1041); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1041 */ +if (tmp_29_alt_flag_0 == ALT_NO && tmp_29_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn between lines 1041 and 1047."); +TTCN_Snapshot::take_new(TRUE); +} +} +current_location.update_lineno(1048); +ttcn3_debugger.breakpoint_entry(1048); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1048 */ +BaseSyncComp_component_tc__sync.stop(); +current_location.update_lineno(1049); +ttcn3_debugger.breakpoint_entry(1049); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1049 */ +TTCN_Runtime::stop_execution(); +} + +void start_f__clientSendStop(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSendStop("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_clientSendStop", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +ClientSyncCompList_template operator+(template_sel left_template, const ClientSyncCompList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = ClientSyncCompList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return ClientSyncCompList_template(ANY_VALUE); +} +ClientSyncCompList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +ClientSyncCompList_template operator+(const ClientSyncCompList& left_value, const ClientSyncCompList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = ClientSyncCompList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +ClientSyncCompList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +ClientSyncCompList_template operator+(template_sel left_template, const ClientSyncCompList& right_value) +{ +int res_length = ClientSyncCompList_template::get_length_for_concat(left_template) + ClientSyncCompList_template::get_length_for_concat(right_value); +ClientSyncCompList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +ClientSyncCompList_template operator+(const ClientSyncCompList& left_value, template_sel right_template) +{ +int res_length = ClientSyncCompList_template::get_length_for_concat(left_value) + ClientSyncCompList_template::get_length_for_concat(right_template); +ClientSyncCompList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +void f__connect4SelfSync() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1089, TTCN_Location::LOCATION_FUNCTION, "f_connect4SelfSync"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_connect4SelfSync", "function", "LibCommon_Sync", no_params, no_params, "SelfSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(1091); +ttcn3_debugger.breakpoint_entry(1091); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1091 */ +TTCN_Runtime::connect_port(self, SelfSyncComp_component_syncSendPort.get_name(), self, BaseSyncComp_component_syncPort.get_name()); +} + +void start_f__connect4SelfSync(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_connect4SelfSync("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_connect4SelfSync", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__disconnect4SelfSync() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1100, TTCN_Location::LOCATION_FUNCTION, "f_disconnect4SelfSync"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_disconnect4SelfSync", "function", "LibCommon_Sync", no_params, no_params, "SelfSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(1102); +ttcn3_debugger.breakpoint_entry(1102); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1102 */ +TTCN_Runtime::disconnect_port(self, SelfSyncComp_component_syncSendPort.get_name(), self, BaseSyncComp_component_syncPort.get_name()); +} + +void start_f__disconnect4SelfSync(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_disconnect4SelfSync("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_disconnect4SelfSync", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__selfSyncAndVerdict(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1114, TTCN_Location::LOCATION_FUNCTION, "f_selfSyncAndVerdict"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_selfSyncAndVerdict", "function", "LibCommon_Sync", param_names, param_types, "SelfSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(1117); +ttcn3_debugger.breakpoint_entry(1117); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1117 */ +if ((ClientSyncComp_component_vc__testcaseStep == TestcaseStep::e__preamble)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1118); +ttcn3_debugger.breakpoint_entry(1118); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1118 */ +f__selfSyncAndVerdictPreamble(p__syncId, p__ret); +} +else { +current_location.update_lineno(1119); +ttcn3_debugger.breakpoint_entry(1119); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1119 */ +if ((ClientSyncComp_component_vc__testcaseStep == TestcaseStep::e__testBody)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1120); +ttcn3_debugger.breakpoint_entry(1120); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1120 */ +f__selfSyncAndVerdictTestBody(p__syncId, p__ret); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1123); +ttcn3_debugger.breakpoint_entry(1123); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1123 */ +f__selfSyncAndVerdictPostamble(p__syncId, p__ret); +} +} +} + +void start_f__selfSyncAndVerdict(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSyncAndVerdict("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfSyncAndVerdict", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__selfSyncAndVerdictPreamble(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1135, TTCN_Location::LOCATION_FUNCTION, "f_selfSyncAndVerdictPreamble"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_selfSyncAndVerdictPreamble", "function", "LibCommon_Sync", param_names, param_types, "SelfSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(1138); +ttcn3_debugger.breakpoint_entry(1138); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1138 */ +LibCommon__VerdictControl::f__setVerdictPreOrPostamble(p__ret); +current_location.update_lineno(1139); +ttcn3_debugger.breakpoint_entry(1139); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1139 */ +f__selfSync(p__syncId, p__ret); +current_location.update_lineno(1140); +ttcn3_debugger.breakpoint_entry(1140); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1140 */ +ClientSyncComp_component_vc__testcaseStep = TestcaseStep::e__testBody; +} + +void start_f__selfSyncAndVerdictPreamble(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSyncAndVerdictPreamble("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfSyncAndVerdictPreamble", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__selfSyncAndVerdictTestBody(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1151, TTCN_Location::LOCATION_FUNCTION, "f_selfSyncAndVerdictTestBody"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_selfSyncAndVerdictTestBody", "function", "LibCommon_Sync", param_names, param_types, "SelfSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(1154); +ttcn3_debugger.breakpoint_entry(1154); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1154 */ +LibCommon__VerdictControl::f__setVerdict(p__ret); +current_location.update_lineno(1155); +ttcn3_debugger.breakpoint_entry(1155); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1155 */ +f__selfSync(p__syncId, p__ret); +current_location.update_lineno(1156); +ttcn3_debugger.breakpoint_entry(1156); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1156 */ +ClientSyncComp_component_vc__testcaseStep = TestcaseStep::e__postamble; +} + +void start_f__selfSyncAndVerdictTestBody(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSyncAndVerdictTestBody("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfSyncAndVerdictTestBody", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__selfSyncAndVerdictPostamble(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1167, TTCN_Location::LOCATION_FUNCTION, "f_selfSyncAndVerdictPostamble"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_selfSyncAndVerdictPostamble", "function", "LibCommon_Sync", param_names, param_types, "SelfSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(1170); +ttcn3_debugger.breakpoint_entry(1170); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1170 */ +LibCommon__VerdictControl::f__setVerdictPreOrPostamble(p__ret); +current_location.update_lineno(1171); +ttcn3_debugger.breakpoint_entry(1171); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1171 */ +f__selfSync(p__syncId, p__ret); +} + +void start_f__selfSyncAndVerdictPostamble(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSyncAndVerdictPostamble("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfSyncAndVerdictPostamble", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +LibCommon__VerdictControl::FncRetCode f__selfSync(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1190, TTCN_Location::LOCATION_FUNCTION, "f_selfSync"); +charstring_list param_names; +param_names[0] = "p_syncId"; +param_names[1] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_selfSync", "function", "LibCommon_Sync", param_names, param_types, "SelfSyncComp"); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, LibCommon__VerdictControl::print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(1194); +ttcn3_debugger.breakpoint_entry(1194); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1194 */ +if ((p__ret != LibCommon__VerdictControl::FncRetCode::e__success)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1195); +ttcn3_debugger.breakpoint_entry(1195); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1195 */ +f__selfSyncStop(); +} +current_location.update_lineno(1197); +ttcn3_debugger.breakpoint_entry(1197); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1197 */ +if ((p__syncId == cs_0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1198); +ttcn3_debugger.breakpoint_entry(1198); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1198 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_selfSync: Successfully passed PREAMBLE synchronization point. ****"); +} +else { +current_location.update_lineno(1199); +ttcn3_debugger.breakpoint_entry(1199); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1199 */ +if ((p__syncId == cs_2)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1200); +ttcn3_debugger.breakpoint_entry(1200); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1200 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_selfSync: Successfully passed TEST BODY synchronization point. ****"); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1202); +ttcn3_debugger.breakpoint_entry(1202); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1202 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_selfSync: Successfully passed synchronization point. ****"); +} +} +current_location.update_lineno(1204); +ttcn3_debugger.breakpoint_entry(1204); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1204 */ +{ +LibCommon__VerdictControl::FncRetCode tmp_32; +return DEBUGGER_STORE_RETURN_VALUE(tmp_32, LibCommon__VerdictControl::FncRetCode::e__success); +} +} + +void start_f__selfSync(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSync("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfSync", text_buf); +p__syncId.encode_text(text_buf); +p__ret.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__selfSyncStop() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1219, TTCN_Location::LOCATION_FUNCTION, "f_selfSyncStop"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_selfSyncStop", "function", "LibCommon_Sync", no_params, no_params, "SelfSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(1222); +ttcn3_debugger.breakpoint_entry(1222); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1222 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_selfSyncStop: MTC requests to stop test case (itself). ****"); +current_location.update_lineno(1223); +ttcn3_debugger.breakpoint_entry(1223); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1223 */ +SelfSyncComp_component_syncSendPort.send(m__syncServerStop, NULL); +current_location.update_lineno(1224); +ttcn3_debugger.breakpoint_entry(1224); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1224 */ +BaseSyncComp_component_tc__sync.start(PX__TSYNC__TIME__LIMIT); +current_location.update_lineno(1225); +ttcn3_debugger.breakpoint_entry(1225); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1225 */ +{ +tmp_33: +alt_status tmp_33_alt_flag_0 = ALT_MAYBE; +alt_status tmp_33_default_flag = ALT_MAYBE; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (tmp_33_alt_flag_0 == ALT_MAYBE) { +current_location.update_lineno(1226); +ttcn3_debugger.breakpoint_entry(1226); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1226 */ +tmp_33_alt_flag_0 = BaseSyncComp_component_tc__sync.timeout(NULL); +if (tmp_33_alt_flag_0 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1227); +ttcn3_debugger.breakpoint_entry(1227); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1227 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_selfSyncStop: Stopping MTC without shutdown - either no shutdown default active or missing syncPort connection ****"); +current_location.update_lineno(1228); +ttcn3_debugger.breakpoint_entry(1228); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1228 */ +TTCN_Runtime::setverdict(INCONC); +current_location.update_lineno(1229); +ttcn3_debugger.breakpoint_entry(1229); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1229 */ +TTCN_Runtime::stop_execution(); +} +} +if (tmp_33_default_flag == ALT_MAYBE) { +tmp_33_default_flag = TTCN_Default::try_altsteps(); +if (tmp_33_default_flag == ALT_YES || tmp_33_default_flag == ALT_BREAK) break; +else if (tmp_33_default_flag == ALT_REPEAT) goto tmp_33; +} +current_location.update_lineno(1225); +ttcn3_debugger.breakpoint_entry(1225); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1225 */ +if (tmp_33_alt_flag_0 == ALT_NO && tmp_33_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn between lines 1225 and 1231."); +TTCN_Snapshot::take_new(TRUE); +} +} +current_location.update_lineno(1232); +ttcn3_debugger.breakpoint_entry(1232); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1232 */ +BaseSyncComp_component_tc__sync.stop(); +current_location.update_lineno(1233); +ttcn3_debugger.breakpoint_entry(1233); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1233 */ +TTCN_Runtime::stop_execution(); +} + +void start_f__selfSyncStop(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSyncStop("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_selfSyncStop", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +SyncCmd_template m__syncClientReady(const CHARSTRING_template& p__syncId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1271, TTCN_Location::LOCATION_TEMPLATE, "m_syncClientReady"); +charstring_list param_names; +param_names[0] = "p_syncId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("m_syncClientReady", "template", "LibCommon_Sync", param_names, param_types, NULL); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +SyncCmd_template ret_val; +ret_val.clientReady().syncPointId() = p__syncId; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_m__syncClientReady_err_descr_ptr); +return ret_val; +} + +SyncCmd_template m__syncServerReady(const CHARSTRING_template& p__syncId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1275, TTCN_Location::LOCATION_TEMPLATE, "m_syncServerReady"); +charstring_list param_names; +param_names[0] = "p_syncId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("m_syncServerReady", "template", "LibCommon_Sync", param_names, param_types, NULL); +debug_scope.add_variable(&p__syncId, "p_syncId", "charstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +SyncCmd_template ret_val; +ret_val.serverReady().syncPointId() = p__syncId; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_m__syncServerReady_err_descr_ptr); +return ret_val; +} + +void f__serverSendToAllClients(const ClientSyncCompList& p__clientRefs, const SyncCmd_template& p__syncCmd) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1296, TTCN_Location::LOCATION_FUNCTION, "f_serverSendToAllClients"); +charstring_list param_names; +param_names[0] = "p_clientRefs"; +param_names[1] = "p_syncCmd"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_serverSendToAllClients", "function", "LibCommon_Sync", param_names, param_types, "ServerSyncComp"); +debug_scope.add_variable(&p__clientRefs, "p_clientRefs", "ClientSyncCompList", NULL, print_var_LibCommon_Sync); +debug_scope.add_variable(&p__syncCmd, "p_syncCmd", "SyncCmd template", NULL, print_var_LibCommon_Sync); +debug_scope.initial_snapshot(); +current_location.update_lineno(1299); +ttcn3_debugger.breakpoint_entry(1299); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1299 */ +INTEGER i(0); +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1300); +ttcn3_debugger.breakpoint_entry(1300); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1300 */ +i = 0; +current_location.update_lineno(1300); +ttcn3_debugger.breakpoint_entry(1300); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1300 */ +for ( ; ; ) { +current_location.update_lineno(1300); +ttcn3_debugger.breakpoint_entry(1300); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1300 */ +if (!(i < p__clientRefs.size_of())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1301); +ttcn3_debugger.breakpoint_entry(1301); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1301 */ +BaseSyncComp_component_syncPort.send(p__syncCmd, const_cast< const ClientSyncCompList&>(p__clientRefs)[i], NULL); +current_location.update_lineno(1300); +ttcn3_debugger.breakpoint_entry(1300); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1300 */ +{ +INTEGER tmp_35; +++i; +} +} +} + +void start_f__serverSendToAllClients(const COMPONENT& component_reference, const ClientSyncCompList& p__clientRefs, const SyncCmd_template& p__syncCmd) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSendToAllClients("); +p__clientRefs.log(); +TTCN_Logger::log_event_str(", "); +p__syncCmd.log(); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverSendToAllClients", text_buf); +p__clientRefs.encode_text(text_buf); +p__syncCmd.encode_text(text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +void f__serverWaitForAllClientsToShutDown() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1313, TTCN_Location::LOCATION_FUNCTION, "f_serverWaitForAllClientsToShutDown"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_serverWaitForAllClientsToShutDown", "function", "LibCommon_Sync", no_params, no_params, "ServerSyncComp"); +debug_scope.initial_snapshot(); +current_location.update_lineno(1316); +ttcn3_debugger.breakpoint_entry(1316); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1316 */ +ServerSyncComp_component_tc__shutDown.start(PX__TSHUT__DOWN__TIME__LIMIT); +current_location.update_lineno(1317); +ttcn3_debugger.breakpoint_entry(1317); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1317 */ +{ +tmp_36: +alt_status tmp_36_alt_flag_0 = ALT_MAYBE; +alt_status tmp_36_alt_flag_1 = ALT_MAYBE; +alt_status tmp_36_alt_flag_2 = ALT_MAYBE; +alt_status tmp_36_default_flag = ALT_MAYBE; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (tmp_36_alt_flag_0 == ALT_MAYBE) { +current_location.update_lineno(1318); +ttcn3_debugger.breakpoint_entry(1318); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1318 */ +tmp_36_alt_flag_0 = BaseSyncComp_component_syncPort.receive(any_compref, NULL, NULL, NULL); +if (tmp_36_alt_flag_0 == ALT_YES) break; +} +if (tmp_36_alt_flag_1 == ALT_MAYBE) { +current_location.update_lineno(1321); +ttcn3_debugger.breakpoint_entry(1321); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1321 */ +tmp_36_alt_flag_1 = TTCN_Runtime::component_done(ALL_COMPREF); +if (tmp_36_alt_flag_1 == ALT_REPEAT) goto tmp_36; +if (tmp_36_alt_flag_1 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1322); +ttcn3_debugger.breakpoint_entry(1322); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1322 */ +ServerSyncComp_component_tc__shutDown.stop(); +current_location.update_lineno(1323); +ttcn3_debugger.breakpoint_entry(1323); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1323 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverWaitForAllClientsToShutDown: All components have properly shut down. Sync server will now terminate the test case. ****"); +break; +} +} +if (tmp_36_alt_flag_2 == ALT_MAYBE) { +current_location.update_lineno(1325); +ttcn3_debugger.breakpoint_entry(1325); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1325 */ +tmp_36_alt_flag_2 = ServerSyncComp_component_tc__shutDown.timeout(NULL); +if (tmp_36_alt_flag_2 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1326); +ttcn3_debugger.breakpoint_entry(1326); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1326 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_serverWaitForAllClientsToShutDown: Not all clients have properly shutdown within the shut down time limit. Sync server will now terminate test case! ****"); +break; +} +} +if (tmp_36_default_flag == ALT_MAYBE) { +tmp_36_default_flag = TTCN_Default::try_altsteps(); +if (tmp_36_default_flag == ALT_YES || tmp_36_default_flag == ALT_BREAK) break; +else if (tmp_36_default_flag == ALT_REPEAT) goto tmp_36; +} +current_location.update_lineno(1317); +ttcn3_debugger.breakpoint_entry(1317); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1317 */ +if (tmp_36_alt_flag_0 == ALT_NO && tmp_36_alt_flag_1 == ALT_NO && tmp_36_alt_flag_2 == ALT_NO && tmp_36_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn between lines 1317 and 1328."); +TTCN_Snapshot::take_new(TRUE); +} +} +current_location.update_lineno(1330); +ttcn3_debugger.breakpoint_entry(1330); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1330 */ +TTCN_Runtime::setverdict(INCONC); +current_location.update_lineno(1332); +ttcn3_debugger.breakpoint_entry(1332); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1332 */ +BaseSyncComp_component_syncPort.send(m__syncServerStop, self, NULL); +current_location.update_lineno(1333); +ttcn3_debugger.breakpoint_entry(1333); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1333 */ +BaseSyncComp_component_tc__sync.start(PX__TSYNC__TIME__LIMIT); +current_location.update_lineno(1334); +ttcn3_debugger.breakpoint_entry(1334); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1334 */ +{ +tmp_37: +alt_status tmp_37_alt_flag_0 = ALT_MAYBE; +alt_status tmp_37_default_flag = ALT_MAYBE; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (tmp_37_alt_flag_0 == ALT_MAYBE) { +current_location.update_lineno(1335); +ttcn3_debugger.breakpoint_entry(1335); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1335 */ +tmp_37_alt_flag_0 = BaseSyncComp_component_tc__sync.timeout(NULL); +if (tmp_37_alt_flag_0 == ALT_YES) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1336); +ttcn3_debugger.breakpoint_entry(1336); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1336 */ +TTCN_Logger::log_str(TTCN_USER, "**** f_selfSyncStop: Stopping MTC without shutdown - either no shutdown default active or missing syncPort connection ****"); +current_location.update_lineno(1337); +ttcn3_debugger.breakpoint_entry(1337); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1337 */ +TTCN_Runtime::setverdict(INCONC); +current_location.update_lineno(1338); +ttcn3_debugger.breakpoint_entry(1338); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1338 */ +TTCN_Runtime::stop_execution(); +} +} +if (tmp_37_default_flag == ALT_MAYBE) { +tmp_37_default_flag = TTCN_Default::try_altsteps(); +if (tmp_37_default_flag == ALT_YES || tmp_37_default_flag == ALT_BREAK) break; +else if (tmp_37_default_flag == ALT_REPEAT) goto tmp_37; +} +current_location.update_lineno(1334); +ttcn3_debugger.breakpoint_entry(1334); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1334 */ +if (tmp_37_alt_flag_0 == ALT_NO && tmp_37_default_flag == ALT_NO) TTCN_error("None of the branches can be chosen in the alt statement in file ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn between lines 1334 and 1340."); +TTCN_Snapshot::take_new(TRUE); +} +} +current_location.update_lineno(1341); +ttcn3_debugger.breakpoint_entry(1341); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1341 */ +BaseSyncComp_component_tc__sync.stop(); +current_location.update_lineno(1342); +ttcn3_debugger.breakpoint_entry(1342); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1342 */ +TTCN_Runtime::stop_execution(); +} + +void start_f__serverWaitForAllClientsToShutDown(const COMPONENT& component_reference) +{ +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverWaitForAllClientsToShutDown("); +TTCN_Logger::log_event_str(") on component "); +component_reference.log(); +TTCN_Logger::log_char('.'); +TTCN_Logger::end_event(); +Text_Buf text_buf; +TTCN_Runtime::prepare_start_component(component_reference, "LibCommon_Sync", "f_serverWaitForAllClientsToShutDown", text_buf); +TTCN_Runtime::send_start_component(text_buf); +} + +BOOLEAN f__isPresentInArray(const COMPONENT& p__clientRef, const ClientSyncCompList& p__clientRefs) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 1345, TTCN_Location::LOCATION_FUNCTION, "f_isPresentInArray"); +charstring_list param_names; +param_names[0] = "p_clientRef"; +param_names[1] = "p_clientRefs"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_isPresentInArray", "function", "LibCommon_Sync", param_names, param_types, NULL); +debug_scope.add_variable(&p__clientRef, "p_clientRef", "component", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__clientRefs, "p_clientRefs", "ClientSyncCompList", NULL, print_var_LibCommon_Sync); +debug_scope.initial_snapshot(); +current_location.update_lineno(1347); +ttcn3_debugger.breakpoint_entry(1347); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1347 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1348); +ttcn3_debugger.breakpoint_entry(1348); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1348 */ +i = 0; +current_location.update_lineno(1348); +ttcn3_debugger.breakpoint_entry(1348); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1348 */ +for ( ; ; ) { +current_location.update_lineno(1348); +ttcn3_debugger.breakpoint_entry(1348); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1348 */ +if (!(i < p__clientRefs.size_of())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1349); +ttcn3_debugger.breakpoint_entry(1349); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1349 */ +if ((const_cast< const ClientSyncCompList&>(p__clientRefs)[i] == p__clientRef)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1350); +ttcn3_debugger.breakpoint_entry(1350); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1350 */ +{ +BOOLEAN tmp_39; +return DEBUGGER_STORE_RETURN_VALUE(tmp_39, TRUE); +} +} +current_location.update_lineno(1348); +ttcn3_debugger.breakpoint_entry(1348); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1348 */ +{ +INTEGER tmp_40; +++i; +} +} +current_location.update_lineno(1353); +ttcn3_debugger.breakpoint_entry(1353); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1353 */ +{ +BOOLEAN tmp_41; +return DEBUGGER_STORE_RETURN_VALUE(tmp_41, FALSE); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_Sync"); +LibCommon__Sync::init_ttcn3_debugger(); +LibCommon__AbstractData::module_object.pre_init_module(); +LibCommon__VerdictControl::module_object.pre_init_module(); +current_location.update_lineno(170); +ttcn3_debugger.breakpoint_entry(170); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 170 */ +const_c__prDone = cs_0; +current_location.update_lineno(171); +ttcn3_debugger.breakpoint_entry(171); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 171 */ +const_c__poDone = cs_1; +current_location.update_lineno(172); +ttcn3_debugger.breakpoint_entry(172); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 172 */ +const_c__tbDone = cs_2; +current_location.update_lineno(173); +ttcn3_debugger.breakpoint_entry(173); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 173 */ +const_c__initDone = cs_3; +module_object.add_function("f_connect4SelfOrClientSync", (genericfunc_t)&f__connect4SelfOrClientSync, (genericfunc_t)&start_f__connect4SelfOrClientSync); +module_object.add_function("f_disconnect4SelfOrClientSync", (genericfunc_t)&f__disconnect4SelfOrClientSync, (genericfunc_t)&start_f__disconnect4SelfOrClientSync); +module_object.add_function("f_serverSync2ClientsAndStop", (genericfunc_t)&f__serverSync2ClientsAndStop, (genericfunc_t)&start_f__serverSync2ClientsAndStop); +module_object.add_function("f_serverSync3ClientsAndStop", (genericfunc_t)&f__serverSync3ClientsAndStop, (genericfunc_t)&start_f__serverSync3ClientsAndStop); +module_object.add_function("f_serverSync4ClientsAndStop", (genericfunc_t)&f__serverSync4ClientsAndStop, (genericfunc_t)&start_f__serverSync4ClientsAndStop); +module_object.add_function("f_serverSyncNClientsAndStop", (genericfunc_t)&f__serverSyncNClientsAndStop, (genericfunc_t)&start_f__serverSyncNClientsAndStop); +module_object.add_function("f_serverSync2ClientsUtAndStop", (genericfunc_t)&f__serverSync2ClientsUtAndStop, (genericfunc_t)&start_f__serverSync2ClientsUtAndStop); +module_object.add_function("f_selfOrClientSyncAndVerdict", (genericfunc_t)&f__selfOrClientSyncAndVerdict, (genericfunc_t)&start_f__selfOrClientSyncAndVerdict); +module_object.add_function("f_selfOrClientSyncAndVerdictPreamble", (genericfunc_t)&f__selfOrClientSyncAndVerdictPreamble, (genericfunc_t)&start_f__selfOrClientSyncAndVerdictPreamble); +module_object.add_function("f_selfOrClientSyncAndVerdictTestBody", (genericfunc_t)&f__selfOrClientSyncAndVerdictTestBody, (genericfunc_t)&start_f__selfOrClientSyncAndVerdictTestBody); +module_object.add_function("f_selfOrClientSyncAndVerdictPR", (genericfunc_t)&f__selfOrClientSyncAndVerdictPR, (genericfunc_t)&start_f__selfOrClientSyncAndVerdictPR); +module_object.add_function("f_addSyncCompState", (genericfunc_t)&f__addSyncCompState, (genericfunc_t)&start_f__addSyncCompState); +module_object.add_function("f_getTopSyncCompState", (genericfunc_t)&f__getTopSyncCompState, (genericfunc_t)&start_f__getTopSyncCompState); +module_object.add_function("f_popSyncCompState", (genericfunc_t)&f__popSyncCompState, (genericfunc_t)&start_f__popSyncCompState); +module_object.add_function("f_peekTopSyncCompState", (genericfunc_t)&f__peekTopSyncCompState, (genericfunc_t)&start_f__peekTopSyncCompState); +module_object.add_function("f_isSyncCompStateStackEmpty", (genericfunc_t)&f__isSyncCompStateStackEmpty, (genericfunc_t)&start_f__isSyncCompStateStackEmpty); +module_object.add_altstep("a_dummyShutDown", (genericfunc_t)&a__dummyShutDown_instance, (genericfunc_t )&activate_a__dummyShutDown, (genericfunc_t )&a__dummyShutDown); +module_object.add_altstep("a_shutdown", (genericfunc_t)&a__shutdown_instance, (genericfunc_t )&activate_a__shutdown, (genericfunc_t )&a__shutdown); +module_object.add_function("f_serverSyncClients", (genericfunc_t)&f__serverSyncClients, (genericfunc_t)&start_f__serverSyncClients); +module_object.add_function("f_serverSyncClientsIntermediateSync", (genericfunc_t)&f__serverSyncClientsIntermediateSync, (genericfunc_t)&start_f__serverSyncClientsIntermediateSync); +module_object.add_function("f_serverSyncClientsTimed", (genericfunc_t)&f__serverSyncClientsTimed, (genericfunc_t)&start_f__serverSyncClientsTimed); +module_object.add_function("f_serverSyncClientsTimedIntermediateSync", (genericfunc_t)&f__serverSyncClientsTimedIntermediateSync, (genericfunc_t)&start_f__serverSyncClientsTimedIntermediateSync); +module_object.add_function("f_serverWaitForAllClientsToStop", (genericfunc_t)&f__serverWaitForAllClientsToStop, (genericfunc_t)&start_f__serverWaitForAllClientsToStop); +module_object.add_function("f_connect4ClientSync", (genericfunc_t)&f__connect4ClientSync, (genericfunc_t)&start_f__connect4ClientSync); +module_object.add_function("f_disconnect4ClientSync", (genericfunc_t)&f__disconnect4ClientSync, (genericfunc_t)&start_f__disconnect4ClientSync); +module_object.add_function("f_clientSyncAndVerdict", (genericfunc_t)&f__clientSyncAndVerdict, (genericfunc_t)&start_f__clientSyncAndVerdict); +module_object.add_function("f_clientSyncAndVerdictPreamble", (genericfunc_t)&f__clientSyncAndVerdictPreamble, (genericfunc_t)&start_f__clientSyncAndVerdictPreamble); +module_object.add_function("f_clientSyncAndVerdictTestBody", (genericfunc_t)&f__clientSyncAndVerdictTestBody, (genericfunc_t)&start_f__clientSyncAndVerdictTestBody); +module_object.add_function("f_clientSyncAndVerdictPostamble", (genericfunc_t)&f__clientSyncAndVerdictPostamble, (genericfunc_t)&start_f__clientSyncAndVerdictPostamble); +module_object.add_function("f_clientSync", (genericfunc_t)&f__clientSync, (genericfunc_t)&start_f__clientSync); +module_object.add_function("f_clientSendStop", (genericfunc_t)&f__clientSendStop, (genericfunc_t)&start_f__clientSendStop); +current_location.update_lineno(1064); +ttcn3_debugger.breakpoint_entry(1064); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1064 */ +modulepar_PX__TSYNC__TIME__LIMIT = 1.2e2; +module_object.add_modulepar("PX_TSYNC_TIME_LIMIT"); +current_location.update_lineno(1070); +ttcn3_debugger.breakpoint_entry(1070); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1070 */ +modulepar_PX__TSHUT__DOWN__TIME__LIMIT = 1.2e2; +module_object.add_modulepar("PX_TSHUT_DOWN_TIME_LIMIT"); +module_object.add_function("f_connect4SelfSync", (genericfunc_t)&f__connect4SelfSync, (genericfunc_t)&start_f__connect4SelfSync); +module_object.add_function("f_disconnect4SelfSync", (genericfunc_t)&f__disconnect4SelfSync, (genericfunc_t)&start_f__disconnect4SelfSync); +module_object.add_function("f_selfSyncAndVerdict", (genericfunc_t)&f__selfSyncAndVerdict, (genericfunc_t)&start_f__selfSyncAndVerdict); +module_object.add_function("f_selfSyncAndVerdictPreamble", (genericfunc_t)&f__selfSyncAndVerdictPreamble, (genericfunc_t)&start_f__selfSyncAndVerdictPreamble); +module_object.add_function("f_selfSyncAndVerdictTestBody", (genericfunc_t)&f__selfSyncAndVerdictTestBody, (genericfunc_t)&start_f__selfSyncAndVerdictTestBody); +module_object.add_function("f_selfSyncAndVerdictPostamble", (genericfunc_t)&f__selfSyncAndVerdictPostamble, (genericfunc_t)&start_f__selfSyncAndVerdictPostamble); +module_object.add_function("f_selfSync", (genericfunc_t)&f__selfSync, (genericfunc_t)&start_f__selfSync); +module_object.add_function("f_selfSyncStop", (genericfunc_t)&f__selfSyncStop, (genericfunc_t)&start_f__selfSyncStop); +module_object.add_function("f_serverSendToAllClients", (genericfunc_t)&f__serverSendToAllClients, (genericfunc_t)&start_f__serverSendToAllClients); +module_object.add_function("f_serverWaitForAllClientsToShutDown", (genericfunc_t)&f__serverWaitForAllClientsToShutDown, (genericfunc_t)&start_f__serverWaitForAllClientsToShutDown); +module_object.add_function("f_isPresentInArray", (genericfunc_t)&f__isPresentInArray, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_Sync"); +LibCommon__AbstractData::module_object.post_init_module(); +LibCommon__VerdictControl::module_object.post_init_module(); +BaseSyncComp_component_tc__sync.set_default_duration(PX__TSYNC__TIME__LIMIT); +ServerSyncComp_component_tc__shutDown.set_default_duration(PX__TSHUT__DOWN__TIME__LIMIT); +current_location.update_lineno(1279); +ttcn3_debugger.breakpoint_entry(1279); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1279 */ +template_m__syncClientStop.clientStop() = NULL_VALUE; +current_location.update_lineno(1283); +ttcn3_debugger.breakpoint_entry(1283); +/* ./ttcn/Ats_NG_NAS/../LibCommon/../patch_lib_common_titan/ttcn/LibCommon_Sync.ttcn, line 1283 */ +template_m__syncServerStop.serverStop() = NULL_VALUE; +} + +static boolean set_module_param(Module_Param& param) +{ +const char* const par_name = param.get_id()->get_current_name(); +if (!strcmp(par_name, "PX_TSYNC_TIME_LIMIT")) { +modulepar_PX__TSYNC__TIME__LIMIT.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "PX_TSHUT_DOWN_TIME_LIMIT")) { +modulepar_PX__TSHUT__DOWN__TIME__LIMIT.set_param(param); +return TRUE; +} else return FALSE; +} + +static Module_Param* get_module_param(Module_Param_Name& param_name) +{ +const char* const par_name = param_name.get_current_name(); +if (!strcmp(par_name, "PX_TSYNC_TIME_LIMIT")) { +return modulepar_PX__TSYNC__TIME__LIMIT.get_param(param_name); +} else if (!strcmp(par_name, "PX_TSHUT_DOWN_TIME_LIMIT")) { +return modulepar_PX__TSHUT__DOWN__TIME__LIMIT.get_param(param_name); +} else return NULL; +} + +static void log_module_param() +{ +TTCN_Logger::log_event_str("PX_TSYNC_TIME_LIMIT := "); +PX__TSYNC__TIME__LIMIT.log(); +TTCN_Logger::log_event_str(", PX_TSHUT_DOWN_TIME_LIMIT := "); +PX__TSHUT__DOWN__TIME__LIMIT.log(); +} + +static boolean init_comp_type(const char *component_type, boolean init_base_comps) +{ +(void)init_base_comps; +if (!strcmp(component_type, "BaseSyncComp")) { +BaseSyncComp_component_syncPort.activate_port(); +return TRUE; +} else if (!strcmp(component_type, "ServerSyncComp")) { +if (init_base_comps) { +init_comp_type("BaseSyncComp", FALSE); +} +return TRUE; +} else if (!strcmp(component_type, "ClientSyncComp")) { +if (init_base_comps) { +init_comp_type("BaseSyncComp", FALSE); +} +ClientSyncComp_component_v__stateStack = LibCommon__AbstractData::c__initStringStack; +ClientSyncComp_component_vc__testcaseStep = TestcaseStep::e__preamble; +return TRUE; +} else if (!strcmp(component_type, "SelfSyncComp")) { +if (init_base_comps) { +init_comp_type("ClientSyncComp", FALSE); +init_comp_type("BaseSyncComp", FALSE); +} +SelfSyncComp_component_syncSendPort.activate_port(); +return TRUE; +} else return FALSE; +} + +static boolean init_system_port(const char* component_type, const char* port_name) +{ +if (!strcmp(component_type, "BaseSyncComp")) { +if (!strcmp(port_name, "syncPort")) { +BaseSyncComp_component_syncPort.safe_start(); +return TRUE; +} +} +else if (!strcmp(component_type, "ServerSyncComp")) { +if (!strcmp(port_name, "syncPort")) { +BaseSyncComp_component_syncPort.safe_start(); +return TRUE; +} +} +else if (!strcmp(component_type, "ClientSyncComp")) { +if (!strcmp(port_name, "syncPort")) { +BaseSyncComp_component_syncPort.safe_start(); +return TRUE; +} +} +else if (!strcmp(component_type, "SelfSyncComp")) { +if (!strcmp(port_name, "syncPort")) { +BaseSyncComp_component_syncPort.safe_start(); +return TRUE; +} +if (!strcmp(port_name, "syncSendPort")) { +SelfSyncComp_component_syncSendPort.safe_start(); +return TRUE; +} +} +return FALSE; +} + +static boolean start_ptc_function(const char *function_name, Text_Buf& function_arguments) +{ +if (!strcmp(function_name, "f_connect4SelfOrClientSync")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_connect4SelfOrClientSync()."); +TTCN_Runtime::function_started(function_arguments); +f__connect4SelfOrClientSync(); +TTCN_Runtime::function_finished("f_connect4SelfOrClientSync"); +return TRUE; +} else if (!strcmp(function_name, "f_disconnect4SelfOrClientSync")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_disconnect4SelfOrClientSync()."); +TTCN_Runtime::function_started(function_arguments); +f__disconnect4SelfOrClientSync(); +TTCN_Runtime::function_finished("f_disconnect4SelfOrClientSync"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSync2ClientsAndStop")) { +SyncPointList p__syncPointIds; +p__syncPointIds.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSync2ClientsAndStop("); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSync2ClientsAndStop(p__syncPointIds); +TTCN_Runtime::function_finished("f_serverSync2ClientsAndStop"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSync3ClientsAndStop")) { +SyncPointList p__syncPointIds; +p__syncPointIds.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSync3ClientsAndStop("); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSync3ClientsAndStop(p__syncPointIds); +TTCN_Runtime::function_finished("f_serverSync3ClientsAndStop"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSync4ClientsAndStop")) { +SyncPointList p__syncPointIds; +p__syncPointIds.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSync4ClientsAndStop("); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSync4ClientsAndStop(p__syncPointIds); +TTCN_Runtime::function_finished("f_serverSync4ClientsAndStop"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSyncNClientsAndStop")) { +INTEGER p__numClients; +SyncPointList p__syncPointIds; +p__numClients.decode_text(function_arguments); +p__syncPointIds.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncNClientsAndStop("); +p__numClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSyncNClientsAndStop(p__numClients, p__syncPointIds); +TTCN_Runtime::function_finished("f_serverSyncNClientsAndStop"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSync2ClientsUtAndStop")) { +SyncPointList p__syncPointIds; +p__syncPointIds.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSync2ClientsUtAndStop("); +p__syncPointIds.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSync2ClientsUtAndStop(p__syncPointIds); +TTCN_Runtime::function_finished("f_serverSync2ClientsUtAndStop"); +return TRUE; +} else if (!strcmp(function_name, "f_selfOrClientSyncAndVerdict")) { +CHARSTRING p__syncPoint; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncPoint.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfOrClientSyncAndVerdict("); +p__syncPoint.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__selfOrClientSyncAndVerdict(p__syncPoint, p__ret); +TTCN_Runtime::function_finished("f_selfOrClientSyncAndVerdict"); +return TRUE; +} else if (!strcmp(function_name, "f_selfOrClientSyncAndVerdictPreamble")) { +CHARSTRING p__syncPoint; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncPoint.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfOrClientSyncAndVerdictPreamble("); +p__syncPoint.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__selfOrClientSyncAndVerdictPreamble(p__syncPoint, p__ret); +TTCN_Runtime::function_finished("f_selfOrClientSyncAndVerdictPreamble"); +return TRUE; +} else if (!strcmp(function_name, "f_selfOrClientSyncAndVerdictTestBody")) { +CHARSTRING p__syncPoint; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncPoint.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfOrClientSyncAndVerdictTestBody("); +p__syncPoint.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__selfOrClientSyncAndVerdictTestBody(p__syncPoint, p__ret); +TTCN_Runtime::function_finished("f_selfOrClientSyncAndVerdictTestBody"); +return TRUE; +} else if (!strcmp(function_name, "f_selfOrClientSyncAndVerdictPR")) { +CHARSTRING p__syncPoint; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncPoint.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfOrClientSyncAndVerdictPR("); +p__syncPoint.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__selfOrClientSyncAndVerdictPR(p__syncPoint, p__ret); +TTCN_Runtime::function_finished("f_selfOrClientSyncAndVerdictPR"); +return TRUE; +} else if (!strcmp(function_name, "f_addSyncCompState")) { +CHARSTRING p__newSyncCompState; +LibCommon__VerdictControl::FncRetCode p__ret; +p__newSyncCompState.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_addSyncCompState("); +p__newSyncCompState.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__addSyncCompState(p__newSyncCompState, p__ret); +TTCN_Runtime::function_finished("f_addSyncCompState"); +return TRUE; +} else if (!strcmp(function_name, "f_getTopSyncCompState")) { +CHARSTRING p__state; +p__state.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_getTopSyncCompState("); +p__state.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__getTopSyncCompState(p__state); +TTCN_Runtime::function_finished("f_getTopSyncCompState"); +return TRUE; +} else if (!strcmp(function_name, "f_popSyncCompState")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_popSyncCompState()."); +TTCN_Runtime::function_started(function_arguments); +f__popSyncCompState(); +TTCN_Runtime::function_finished("f_popSyncCompState"); +return TRUE; +} else if (!strcmp(function_name, "f_peekTopSyncCompState")) { +CHARSTRING p__state; +p__state.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_peekTopSyncCompState("); +p__state.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__peekTopSyncCompState(p__state); +TTCN_Runtime::function_finished("f_peekTopSyncCompState"); +return TRUE; +} else if (!strcmp(function_name, "f_isSyncCompStateStackEmpty")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_isSyncCompStateStackEmpty()."); +TTCN_Runtime::function_started(function_arguments); +f__isSyncCompStateStackEmpty(); +TTCN_Runtime::function_finished("f_isSyncCompStateStackEmpty"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSyncClients")) { +INTEGER p__noOfClients; +CHARSTRING p__syncId; +p__noOfClients.decode_text(function_arguments); +p__syncId.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncClients("); +p__noOfClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncId.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSyncClients(p__noOfClients, p__syncId); +TTCN_Runtime::function_finished("f_serverSyncClients"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSyncClientsIntermediateSync")) { +INTEGER p__noOfClients; +CHARSTRING p__syncId; +INTEGER p__NoOfClientIntermediate; +CHARSTRING_template p__syncIdIntermediate; +p__noOfClients.decode_text(function_arguments); +p__syncId.decode_text(function_arguments); +p__NoOfClientIntermediate.decode_text(function_arguments); +p__syncIdIntermediate.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncClientsIntermediateSync("); +p__noOfClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__NoOfClientIntermediate.log(); +TTCN_Logger::log_event_str(", "); +p__syncIdIntermediate.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSyncClientsIntermediateSync(p__noOfClients, p__syncId, p__NoOfClientIntermediate, p__syncIdIntermediate); +TTCN_Runtime::function_finished("f_serverSyncClientsIntermediateSync"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSyncClientsTimed")) { +INTEGER p__NoOfClients; +CHARSTRING p__syncId; +FLOAT p__execTimeLimit; +p__NoOfClients.decode_text(function_arguments); +p__syncId.decode_text(function_arguments); +p__execTimeLimit.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncClientsTimed("); +p__NoOfClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__execTimeLimit.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSyncClientsTimed(p__NoOfClients, p__syncId, p__execTimeLimit); +TTCN_Runtime::function_finished("f_serverSyncClientsTimed"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSyncClientsTimedIntermediateSync")) { +INTEGER p__NoOfClients; +CHARSTRING p__syncId; +INTEGER p__NoOfClientIntermediate; +CHARSTRING_template p__syncIdIntermediate; +FLOAT p__execTimeLimit; +p__NoOfClients.decode_text(function_arguments); +p__syncId.decode_text(function_arguments); +p__NoOfClientIntermediate.decode_text(function_arguments); +p__syncIdIntermediate.decode_text(function_arguments); +p__execTimeLimit.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSyncClientsTimedIntermediateSync("); +p__NoOfClients.log(); +TTCN_Logger::log_event_str(", "); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__NoOfClientIntermediate.log(); +TTCN_Logger::log_event_str(", "); +p__syncIdIntermediate.log(); +TTCN_Logger::log_event_str(", "); +p__execTimeLimit.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSyncClientsTimedIntermediateSync(p__NoOfClients, p__syncId, p__NoOfClientIntermediate, p__syncIdIntermediate, p__execTimeLimit); +TTCN_Runtime::function_finished("f_serverSyncClientsTimedIntermediateSync"); +return TRUE; +} else if (!strcmp(function_name, "f_serverWaitForAllClientsToStop")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_serverWaitForAllClientsToStop()."); +TTCN_Runtime::function_started(function_arguments); +f__serverWaitForAllClientsToStop(); +TTCN_Runtime::function_finished("f_serverWaitForAllClientsToStop"); +return TRUE; +} else if (!strcmp(function_name, "f_connect4ClientSync")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_connect4ClientSync()."); +TTCN_Runtime::function_started(function_arguments); +f__connect4ClientSync(); +TTCN_Runtime::function_finished("f_connect4ClientSync"); +return TRUE; +} else if (!strcmp(function_name, "f_disconnect4ClientSync")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_disconnect4ClientSync()."); +TTCN_Runtime::function_started(function_arguments); +f__disconnect4ClientSync(); +TTCN_Runtime::function_finished("f_disconnect4ClientSync"); +return TRUE; +} else if (!strcmp(function_name, "f_clientSyncAndVerdict")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSyncAndVerdict("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__clientSyncAndVerdict(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_clientSyncAndVerdict"); +return TRUE; +} else if (!strcmp(function_name, "f_clientSyncAndVerdictPreamble")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSyncAndVerdictPreamble("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__clientSyncAndVerdictPreamble(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_clientSyncAndVerdictPreamble"); +return TRUE; +} else if (!strcmp(function_name, "f_clientSyncAndVerdictTestBody")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSyncAndVerdictTestBody("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__clientSyncAndVerdictTestBody(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_clientSyncAndVerdictTestBody"); +return TRUE; +} else if (!strcmp(function_name, "f_clientSyncAndVerdictPostamble")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSyncAndVerdictPostamble("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__clientSyncAndVerdictPostamble(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_clientSyncAndVerdictPostamble"); +return TRUE; +} else if (!strcmp(function_name, "f_clientSync")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_clientSync("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__clientSync(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_clientSync"); +return TRUE; +} else if (!strcmp(function_name, "f_clientSendStop")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_clientSendStop()."); +TTCN_Runtime::function_started(function_arguments); +f__clientSendStop(); +TTCN_Runtime::function_finished("f_clientSendStop"); +return TRUE; +} else if (!strcmp(function_name, "f_connect4SelfSync")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_connect4SelfSync()."); +TTCN_Runtime::function_started(function_arguments); +f__connect4SelfSync(); +TTCN_Runtime::function_finished("f_connect4SelfSync"); +return TRUE; +} else if (!strcmp(function_name, "f_disconnect4SelfSync")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_disconnect4SelfSync()."); +TTCN_Runtime::function_started(function_arguments); +f__disconnect4SelfSync(); +TTCN_Runtime::function_finished("f_disconnect4SelfSync"); +return TRUE; +} else if (!strcmp(function_name, "f_selfSyncAndVerdict")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSyncAndVerdict("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__selfSyncAndVerdict(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_selfSyncAndVerdict"); +return TRUE; +} else if (!strcmp(function_name, "f_selfSyncAndVerdictPreamble")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSyncAndVerdictPreamble("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__selfSyncAndVerdictPreamble(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_selfSyncAndVerdictPreamble"); +return TRUE; +} else if (!strcmp(function_name, "f_selfSyncAndVerdictTestBody")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSyncAndVerdictTestBody("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__selfSyncAndVerdictTestBody(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_selfSyncAndVerdictTestBody"); +return TRUE; +} else if (!strcmp(function_name, "f_selfSyncAndVerdictPostamble")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSyncAndVerdictPostamble("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__selfSyncAndVerdictPostamble(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_selfSyncAndVerdictPostamble"); +return TRUE; +} else if (!strcmp(function_name, "f_selfSync")) { +CHARSTRING p__syncId; +LibCommon__VerdictControl::FncRetCode p__ret; +p__syncId.decode_text(function_arguments); +p__ret.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_selfSync("); +p__syncId.log(); +TTCN_Logger::log_event_str(", "); +p__ret.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__selfSync(p__syncId, p__ret); +TTCN_Runtime::function_finished("f_selfSync"); +return TRUE; +} else if (!strcmp(function_name, "f_selfSyncStop")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_selfSyncStop()."); +TTCN_Runtime::function_started(function_arguments); +f__selfSyncStop(); +TTCN_Runtime::function_finished("f_selfSyncStop"); +return TRUE; +} else if (!strcmp(function_name, "f_serverSendToAllClients")) { +ClientSyncCompList p__clientRefs; +SyncCmd_template p__syncCmd; +p__clientRefs.decode_text(function_arguments); +p__syncCmd.decode_text(function_arguments); +TTCN_Logger::begin_event(TTCN_Logger::PARALLEL_PTC); +TTCN_Logger::log_event_str("Starting function f_serverSendToAllClients("); +p__clientRefs.log(); +TTCN_Logger::log_event_str(", "); +p__syncCmd.log(); +TTCN_Logger::log_event_str(")."); +TTCN_Logger::end_event(); +TTCN_Runtime::function_started(function_arguments); +f__serverSendToAllClients(p__clientRefs, p__syncCmd); +TTCN_Runtime::function_finished("f_serverSendToAllClients"); +return TRUE; +} else if (!strcmp(function_name, "f_serverWaitForAllClientsToShutDown")) { +TTCN_Logger::log_str(TTCN_Logger::PARALLEL_PTC, "Starting function f_serverWaitForAllClientsToShutDown()."); +TTCN_Runtime::function_started(function_arguments); +f__serverWaitForAllClientsToShutDown(); +TTCN_Runtime::function_finished("f_serverWaitForAllClientsToShutDown"); +return TRUE; +} else return FALSE; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/LibCommon_Sync.hh b/build/Ats_NG_NAS/LibCommon_Sync.hh new file mode 100644 index 0000000000000000000000000000000000000000..377c4dcacfc7ae08b3bfb839eb995f4f859c3587 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_Sync.hh @@ -0,0 +1,791 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef LibCommon__Sync_HH +#define LibCommon__Sync_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "LibCommon_AbstractData.hh" +#include "LibCommon_VerdictControl.hh" + +#if TTCN3_VERSION != 100000 +#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 LibCommon__Sync_HH +#endif + +namespace LibCommon__Sync { + +/* Forward declarations of classes */ + +class TestcaseStep; +class TestcaseStep_template; +class SyncPort; +typedef PreGenRecordOf::PREGEN__RECORD__OF__CHARSTRING SyncPointList; +typedef PreGenRecordOf::PREGEN__RECORD__OF__CHARSTRING_template SyncPointList_template; +class ClientSyncCompList; +class ClientSyncCompList_template; +class SyncCmd; +class SyncCmd_template; +class ClientReady; +class ClientReady_template; +class ServerReady; +class ServerReady_template; +class ClientStop; +class ClientStop_template; +class ServerStop; +class ServerStop_template; + +} /* end of namespace */ + +#ifndef LibCommon__Sync_HH +#define LibCommon__Sync_HH + +namespace LibCommon__Sync { + +/* Type definitions */ + +typedef COMPONENT BaseSyncComp; +typedef COMPONENT_template BaseSyncComp_template; +typedef COMPONENT ServerSyncComp; +typedef COMPONENT_template ServerSyncComp_template; +typedef COMPONENT ClientSyncComp; +typedef COMPONENT_template ClientSyncComp_template; +typedef COMPONENT SelfSyncComp; +typedef COMPONENT_template SelfSyncComp_template; + +/* Class definitions */ + +class TestcaseStep : public Enum_Type { // enum +friend class TestcaseStep_template; +public: +enum enum_type { e__preamble = 0, e__testBody = 1, e__postamble = 2, UNKNOWN_VALUE = 3, UNBOUND_VALUE = 4 }; +private: +enum_type enum_value; + +public: +TestcaseStep(); +TestcaseStep(int other_value); +TestcaseStep(enum_type other_value); +TestcaseStep(const TestcaseStep& other_value); + +TestcaseStep& operator=(int other_value); +TestcaseStep& operator=(enum_type other_value); +TestcaseStep& operator=(const TestcaseStep& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const TestcaseStep& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const TestcaseStep& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const TestcaseStep& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const TestcaseStep& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const TestcaseStep& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const TestcaseStep& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const TestcaseStep& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class TestcaseStep_template : public Base_Template { +union { +TestcaseStep::enum_type single_value; +struct { +unsigned int n_values; +TestcaseStep_template *list_value; +} value_list; +struct { +TestcaseStep_template* precondition; +TestcaseStep_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const TestcaseStep_template& other_value); + +public: +TestcaseStep_template(); +TestcaseStep_template(template_sel other_value); +TestcaseStep_template(int other_value); +TestcaseStep_template(TestcaseStep::enum_type other_value); +TestcaseStep_template(const TestcaseStep& other_value); +TestcaseStep_template(const OPTIONAL& other_value); +TestcaseStep_template(TestcaseStep_template* p_precondition, TestcaseStep_template* p_implied_template); +TestcaseStep_template(Dynamic_Match_Interface* p_dyn_match); +TestcaseStep_template(const TestcaseStep_template& other_value); +~TestcaseStep_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +TestcaseStep_template& operator=(template_sel other_value); +TestcaseStep_template& operator=(int other_value); +TestcaseStep_template& operator=(TestcaseStep::enum_type other_value); +TestcaseStep_template& operator=(const TestcaseStep& other_value); +TestcaseStep_template& operator=(const OPTIONAL& other_value); +TestcaseStep_template& operator=(const TestcaseStep_template& other_value); + +boolean match(TestcaseStep::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const TestcaseStep& other_value, boolean legacy = FALSE) const; +TestcaseStep::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +TestcaseStep_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const TestcaseStep& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class SyncPort : public PORT { +enum msg_selection { MESSAGE_0 }; +struct msg_queue_item : public msg_queue_item_base { +msg_selection item_selection; +union { +SyncCmd *message_0; +}; +component sender_component; +}; + +void remove_msg_queue_head(); +protected: +void clear_queue(); +public: +SyncPort(const char *par_port_name = NULL); +~SyncPort(); +void send(const SyncCmd& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const SyncCmd& send_par, FLOAT* timestamp_redirect = NULL); +void send(const SyncCmd_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const SyncCmd_template& send_par, FLOAT* timestamp_redirect = NULL); +public: +alt_status receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status receive(const SyncCmd_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const SyncCmd_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const SyncCmd_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +private: +void incoming_message(const SyncCmd& incoming_par, component sender_component); +protected: +boolean process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING& slider); +}; + +class ClientSyncCompList : public Record_Of_Type { + +static const COMPONENT UNBOUND_ELEM; + +public: +ClientSyncCompList(): Record_Of_Type() {} +ClientSyncCompList(null_type other_value): Record_Of_Type(other_value) {} +ClientSyncCompList(const ClientSyncCompList& other_value): Record_Of_Type(other_value) {} +~ClientSyncCompList() { clean_up(); } + +inline ClientSyncCompList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline ClientSyncCompList& operator=(const ClientSyncCompList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ClientSyncCompList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const ClientSyncCompList& other_value) const { return !is_equal(&other_value); } +COMPONENT& operator[](int index_value); +COMPONENT& operator[](const INTEGER& index_value); +const COMPONENT& operator[](int index_value) const; +const COMPONENT& operator[](const INTEGER& index_value) const; +ClientSyncCompList operator<<=(int rotate_count) const; +ClientSyncCompList operator<<=(const INTEGER& rotate_count) const; +ClientSyncCompList operator>>=(int rotate_count) const; +ClientSyncCompList operator>>=(const INTEGER& rotate_count) const; + +ClientSyncCompList operator+(const ClientSyncCompList& other_value) const; + +ClientSyncCompList operator+(const OPTIONAL& other_value) const; + +ClientSyncCompList operator+(null_type) const; + +ClientSyncCompList substr(int index, int returncount) const; + +ClientSyncCompList replace(int index, int len, const ClientSyncCompList& repl) const; + +ClientSyncCompList replace(int index, int len, const ClientSyncCompList_template& repl) const; + +Base_Type* clone() const { return new ClientSyncCompList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class ClientSyncCompList_template : public Record_Of_Template { +friend ClientSyncCompList_template operator+(template_sel left_template, const ClientSyncCompList_template& right_template); +friend ClientSyncCompList_template operator+(const ClientSyncCompList& left_value, const ClientSyncCompList_template& right_template); +friend ClientSyncCompList_template operator+(template_sel left_template, const ClientSyncCompList& right_value); +friend ClientSyncCompList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend ClientSyncCompList_template operator+(const ClientSyncCompList& left_value, template_sel right_template); + +public: +ClientSyncCompList_template() {} +ClientSyncCompList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +ClientSyncCompList_template(null_type other_value); +ClientSyncCompList_template(const ClientSyncCompList& other_value) { copy_value(&other_value); } +ClientSyncCompList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +ClientSyncCompList_template(ClientSyncCompList_template* p_precondition, ClientSyncCompList_template* p_implied_template); +ClientSyncCompList_template(Dynamic_Match_Interface* p_dyn_match); +ClientSyncCompList_template(const ClientSyncCompList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~ClientSyncCompList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ClientSyncCompList_template& operator=(template_sel other_value); +ClientSyncCompList_template& operator=(null_type other_value); +ClientSyncCompList_template& operator=(const ClientSyncCompList& other_value); +ClientSyncCompList_template& operator=(const OPTIONAL& other_value); +ClientSyncCompList_template& operator=(const ClientSyncCompList_template& other_value); + +ClientSyncCompList_template operator+(const ClientSyncCompList_template& other_value) const; +ClientSyncCompList_template operator+(const ClientSyncCompList& other_value) const; +ClientSyncCompList_template operator+(template_sel other_value) const; +ClientSyncCompList_template operator+(null_type) const; + +COMPONENT_template& operator[](int index_value); +COMPONENT_template& operator[](const INTEGER& index_value); +const COMPONENT_template& operator[](int index_value) const; +const COMPONENT_template& operator[](const INTEGER& index_value) const; +inline boolean match(const ClientSyncCompList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +ClientSyncCompList valueof() const; +ClientSyncCompList substr(int index, int returncount) const; + +ClientSyncCompList replace(int index, int len, const ClientSyncCompList_template& repl) const; + +ClientSyncCompList replace(int index, int len, const ClientSyncCompList& repl) const; + +inline ClientSyncCompList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const ClientSyncCompList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new ClientSyncCompList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class SyncCmd : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_clientReady = 1, ALT_serverReady = 2, ALT_clientStop = 3, ALT_serverStop = 4 }; +private: +union_selection_type union_selection; +union { +ClientReady *field_clientReady; +ServerReady *field_serverReady; +ClientStop *field_clientStop; +ServerStop *field_serverStop; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const SyncCmd& other_value); + +public: +SyncCmd(); +SyncCmd(const SyncCmd& other_value); +~SyncCmd(); +SyncCmd& operator=(const SyncCmd& other_value); +boolean operator==(const SyncCmd& other_value) const; +inline boolean operator!=(const SyncCmd& other_value) const { return !(*this == other_value); } +ClientReady& clientReady(); +const ClientReady& clientReady() const; +ServerReady& serverReady(); +const ServerReady& serverReady() const; +ClientStop& clientStop(); +const ClientStop& clientStop() const; +ServerStop& serverStop(); +const ServerStop& serverStop() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class SyncCmd_template : public Base_Template { +union { +struct { +SyncCmd::union_selection_type union_selection; +union { +ClientReady_template *field_clientReady; +ServerReady_template *field_serverReady; +ClientStop_template *field_clientStop; +ServerStop_template *field_serverStop; +}; +} single_value; +struct { +unsigned int n_values; +SyncCmd_template *list_value; +} value_list; +struct { +SyncCmd_template* precondition; +SyncCmd_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const SyncCmd& other_value); + +void copy_template(const SyncCmd_template& other_value); + +public: +SyncCmd_template(); +SyncCmd_template(template_sel other_value); +SyncCmd_template(const SyncCmd& other_value); +SyncCmd_template(const OPTIONAL& other_value); +SyncCmd_template(SyncCmd_template* p_precondition, SyncCmd_template* p_implied_template); +SyncCmd_template(Dynamic_Match_Interface* p_dyn_match); +SyncCmd_template(const SyncCmd_template& other_value); +~SyncCmd_template(); +void clean_up(); +SyncCmd_template& operator=(template_sel other_value); +SyncCmd_template& operator=(const SyncCmd& other_value); +SyncCmd_template& operator=(const OPTIONAL& other_value); +SyncCmd_template& operator=(const SyncCmd_template& other_value); +boolean match(const SyncCmd& other_value, boolean legacy = FALSE) const; +boolean is_value() const;SyncCmd valueof() const; +SyncCmd_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +SyncCmd::union_selection_type get_union_selection() const; +ClientReady_template& clientReady(); +const ClientReady_template& clientReady() const; +ServerReady_template& serverReady(); +const ServerReady_template& serverReady() const; +ClientStop_template& clientStop(); +const ClientStop_template& clientStop() const; +ServerStop_template& serverStop(); +const ServerStop_template& serverStop() const; +boolean ischosen(SyncCmd::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const SyncCmd& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class ClientReady : public Record_Type { + CHARSTRING field_syncPointId; + Base_Type* fld_vec[1]; + void init_vec(); +public: + ClientReady(); + ClientReady(const ClientReady& other_value); + ClientReady(const CHARSTRING& par_syncPointId); +inline ClientReady& operator=(const ClientReady& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ClientReady& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ClientReady& other_value) const + { return !is_equal(&other_value); } + + inline CHARSTRING& syncPointId() + {return field_syncPointId;} + inline const CHARSTRING& syncPointId() const + {return field_syncPointId;} +Base_Type* clone() const { return new ClientReady(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ClientReady_template : public Record_Template { +void set_specific(); +public: +ClientReady_template(): Record_Template() {} +ClientReady_template(template_sel other_value): Record_Template(other_value) {} +ClientReady_template(const ClientReady& other_value): Record_Template() { copy_value(&other_value); } +ClientReady_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ClientReady_template(ClientReady_template* p_precondition, ClientReady_template* p_implied_template); +ClientReady_template(Dynamic_Match_Interface* p_dyn_match); +ClientReady_template(const ClientReady_template& other_value): Record_Template() { copy_template(other_value); } +~ClientReady_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ClientReady_template& operator=(template_sel other_value); +ClientReady_template& operator=(const ClientReady& other_value); +ClientReady_template& operator=(const OPTIONAL& other_value); +ClientReady_template& operator=(const ClientReady_template& other_value); +inline boolean match(const ClientReady& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ClientReady& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ClientReady valueof() const; +inline ClientReady_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +CHARSTRING_template& syncPointId(); +const CHARSTRING_template& syncPointId() const; +Record_Template* create() const { return new ClientReady_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ServerReady : public Record_Type { + CHARSTRING field_syncPointId; + Base_Type* fld_vec[1]; + void init_vec(); +public: + ServerReady(); + ServerReady(const ServerReady& other_value); + ServerReady(const CHARSTRING& par_syncPointId); +inline ServerReady& operator=(const ServerReady& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ServerReady& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ServerReady& other_value) const + { return !is_equal(&other_value); } + + inline CHARSTRING& syncPointId() + {return field_syncPointId;} + inline const CHARSTRING& syncPointId() const + {return field_syncPointId;} +Base_Type* clone() const { return new ServerReady(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ServerReady_template : public Record_Template { +void set_specific(); +public: +ServerReady_template(): Record_Template() {} +ServerReady_template(template_sel other_value): Record_Template(other_value) {} +ServerReady_template(const ServerReady& other_value): Record_Template() { copy_value(&other_value); } +ServerReady_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ServerReady_template(ServerReady_template* p_precondition, ServerReady_template* p_implied_template); +ServerReady_template(Dynamic_Match_Interface* p_dyn_match); +ServerReady_template(const ServerReady_template& other_value): Record_Template() { copy_template(other_value); } +~ServerReady_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ServerReady_template& operator=(template_sel other_value); +ServerReady_template& operator=(const ServerReady& other_value); +ServerReady_template& operator=(const OPTIONAL& other_value); +ServerReady_template& operator=(const ServerReady_template& other_value); +inline boolean match(const ServerReady& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ServerReady& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ServerReady valueof() const; +inline ServerReady_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +CHARSTRING_template& syncPointId(); +const CHARSTRING_template& syncPointId() const; +Record_Template* create() const { return new ServerReady_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ClientStop : public Empty_Record_Type { +public: + ClientStop(); + ClientStop(const ClientStop& other_value): Empty_Record_Type(other_value) {} + ClientStop(null_type) {bound_flag = TRUE;} +inline ClientStop& operator=(const ClientStop& other_value) { set_value(&other_value); return *this; } + +inline ClientStop& operator=(null_type) { bound_flag = TRUE; return *this; } +inline boolean operator==(const ClientStop& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ClientStop& other_value) const + { return !is_equal(&other_value); } + +Base_Type* clone() const { return new ClientStop(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +}; + +class ClientStop_template : public Empty_Record_Template { +public: +ClientStop_template(): Empty_Record_Template() {} +ClientStop_template(null_type) : Empty_Record_Template() { set_selection(SPECIFIC_VALUE); } +ClientStop_template(template_sel other_value): Empty_Record_Template(other_value) {} +ClientStop_template(const ClientStop& other_value): Empty_Record_Template() { copy_value(&other_value); } +ClientStop_template(const OPTIONAL& other_value): Empty_Record_Template() { copy_optional(&other_value); } +ClientStop_template(ClientStop_template* p_precondition, ClientStop_template* p_implied_template); +ClientStop_template(Dynamic_Match_Interface* p_dyn_match); +ClientStop_template(const ClientStop_template& other_value): Empty_Record_Template() { copy_template(other_value); } +~ClientStop_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ClientStop_template& operator=(template_sel other_value); +ClientStop_template& operator=(const ClientStop& other_value); +ClientStop_template& operator=(const OPTIONAL& other_value); +ClientStop_template& operator=(const ClientStop_template& other_value); +ClientStop_template& operator=(null_type other_value); +inline boolean match(const ClientStop& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ClientStop& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ClientStop valueof() const; +inline ClientStop_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +Empty_Record_Template* create() const { return new ClientStop_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class ServerStop : public Empty_Record_Type { +public: + ServerStop(); + ServerStop(const ServerStop& other_value): Empty_Record_Type(other_value) {} + ServerStop(null_type) {bound_flag = TRUE;} +inline ServerStop& operator=(const ServerStop& other_value) { set_value(&other_value); return *this; } + +inline ServerStop& operator=(null_type) { bound_flag = TRUE; return *this; } +inline boolean operator==(const ServerStop& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ServerStop& other_value) const + { return !is_equal(&other_value); } + +Base_Type* clone() const { return new ServerStop(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +}; + +class ServerStop_template : public Empty_Record_Template { +public: +ServerStop_template(): Empty_Record_Template() {} +ServerStop_template(null_type) : Empty_Record_Template() { set_selection(SPECIFIC_VALUE); } +ServerStop_template(template_sel other_value): Empty_Record_Template(other_value) {} +ServerStop_template(const ServerStop& other_value): Empty_Record_Template() { copy_value(&other_value); } +ServerStop_template(const OPTIONAL& other_value): Empty_Record_Template() { copy_optional(&other_value); } +ServerStop_template(ServerStop_template* p_precondition, ServerStop_template* p_implied_template); +ServerStop_template(Dynamic_Match_Interface* p_dyn_match); +ServerStop_template(const ServerStop_template& other_value): Empty_Record_Template() { copy_template(other_value); } +~ServerStop_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ServerStop_template& operator=(template_sel other_value); +ServerStop_template& operator=(const ServerStop& other_value); +ServerStop_template& operator=(const OPTIONAL& other_value); +ServerStop_template& operator=(const ServerStop_template& other_value); +ServerStop_template& operator=(null_type other_value); +inline boolean match(const ServerStop& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ServerStop& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ServerStop valueof() const; +inline ServerStop_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +Empty_Record_Template* create() const { return new ServerStop_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_LibCommon_Sync(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_LibCommon_Sync(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern void f__connect4SelfOrClientSync(); +extern void start_f__connect4SelfOrClientSync(const COMPONENT& component_reference); +extern void f__disconnect4SelfOrClientSync(); +extern void start_f__disconnect4SelfOrClientSync(const COMPONENT& component_reference); +extern void f__serverSync2ClientsAndStop(const SyncPointList& p__syncPointIds); +extern void start_f__serverSync2ClientsAndStop(const COMPONENT& component_reference, const SyncPointList& p__syncPointIds); +extern void f__serverSync3ClientsAndStop(const SyncPointList& p__syncPointIds); +extern void start_f__serverSync3ClientsAndStop(const COMPONENT& component_reference, const SyncPointList& p__syncPointIds); +extern void f__serverSync4ClientsAndStop(const SyncPointList& p__syncPointIds); +extern void start_f__serverSync4ClientsAndStop(const COMPONENT& component_reference, const SyncPointList& p__syncPointIds); +extern void f__serverSyncNClientsAndStop(const INTEGER& p__numClients, const SyncPointList& p__syncPointIds); +extern void start_f__serverSyncNClientsAndStop(const COMPONENT& component_reference, const INTEGER& p__numClients, const SyncPointList& p__syncPointIds); +extern void f__serverSync2ClientsUtAndStop(const SyncPointList& p__syncPointIds); +extern void start_f__serverSync2ClientsUtAndStop(const COMPONENT& component_reference, const SyncPointList& p__syncPointIds); +extern void f__selfOrClientSyncAndVerdict(const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__selfOrClientSyncAndVerdict(const COMPONENT& component_reference, const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__selfOrClientSyncAndVerdictPreamble(const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__selfOrClientSyncAndVerdictPreamble(const COMPONENT& component_reference, const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__selfOrClientSyncAndVerdictTestBody(const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__selfOrClientSyncAndVerdictTestBody(const COMPONENT& component_reference, const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__selfOrClientSyncAndVerdictPR(const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__selfOrClientSyncAndVerdictPR(const COMPONENT& component_reference, const CHARSTRING& p__syncPoint, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__addSyncCompState(const CHARSTRING& p__newSyncCompState, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__addSyncCompState(const COMPONENT& component_reference, const CHARSTRING& p__newSyncCompState, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern BOOLEAN f__getTopSyncCompState(CHARSTRING& p__state); +extern void start_f__getTopSyncCompState(const COMPONENT& component_reference, CHARSTRING& p__state); +extern void f__popSyncCompState(); +extern void start_f__popSyncCompState(const COMPONENT& component_reference); +extern BOOLEAN f__peekTopSyncCompState(CHARSTRING& p__state); +extern void start_f__peekTopSyncCompState(const COMPONENT& component_reference, CHARSTRING& p__state); +extern BOOLEAN f__isSyncCompStateStackEmpty(); +extern void start_f__isSyncCompStateStackEmpty(const COMPONENT& component_reference); +extern alt_status a__dummyShutDown_instance(); +extern void a__dummyShutDown(); +extern Default_Base *activate_a__dummyShutDown(); +extern alt_status a__shutdown_instance(); +extern void a__shutdown(); +extern Default_Base *activate_a__shutdown(); +extern void f__serverSyncClients(const INTEGER& p__noOfClients, const CHARSTRING& p__syncId); +extern void start_f__serverSyncClients(const COMPONENT& component_reference, const INTEGER& p__noOfClients, const CHARSTRING& p__syncId); +extern void f__serverSyncClientsIntermediateSync(const INTEGER& p__noOfClients, const CHARSTRING& p__syncId, const INTEGER& p__NoOfClientIntermediate, const CHARSTRING_template& p__syncIdIntermediate); +extern void start_f__serverSyncClientsIntermediateSync(const COMPONENT& component_reference, const INTEGER& p__noOfClients, const CHARSTRING& p__syncId, const INTEGER& p__NoOfClientIntermediate, const CHARSTRING_template& p__syncIdIntermediate); +extern void f__serverSyncClientsTimed(const INTEGER& p__NoOfClients, const CHARSTRING& p__syncId, const FLOAT& p__execTimeLimit); +extern void start_f__serverSyncClientsTimed(const COMPONENT& component_reference, const INTEGER& p__NoOfClients, const CHARSTRING& p__syncId, const FLOAT& p__execTimeLimit); +extern void f__serverSyncClientsTimedIntermediateSync(const INTEGER& p__NoOfClients, const CHARSTRING& p__syncId, const INTEGER& p__NoOfClientIntermediate, const CHARSTRING_template& p__syncIdIntermediate, const FLOAT& p__execTimeLimit); +extern void start_f__serverSyncClientsTimedIntermediateSync(const COMPONENT& component_reference, const INTEGER& p__NoOfClients, const CHARSTRING& p__syncId, const INTEGER& p__NoOfClientIntermediate, const CHARSTRING_template& p__syncIdIntermediate, const FLOAT& p__execTimeLimit); +extern void f__serverWaitForAllClientsToStop(); +extern void start_f__serverWaitForAllClientsToStop(const COMPONENT& component_reference); +extern void f__connect4ClientSync(); +extern void start_f__connect4ClientSync(const COMPONENT& component_reference); +extern void f__disconnect4ClientSync(); +extern void start_f__disconnect4ClientSync(const COMPONENT& component_reference); +extern void f__clientSyncAndVerdict(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__clientSyncAndVerdict(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__clientSyncAndVerdictPreamble(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__clientSyncAndVerdictPreamble(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__clientSyncAndVerdictTestBody(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__clientSyncAndVerdictTestBody(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__clientSyncAndVerdictPostamble(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__clientSyncAndVerdictPostamble(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern LibCommon__VerdictControl::FncRetCode f__clientSync(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__clientSync(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__clientSendStop(); +extern void start_f__clientSendStop(const COMPONENT& component_reference); +extern ClientSyncCompList_template operator+(template_sel left_template, const ClientSyncCompList_template& right_template); +extern ClientSyncCompList_template operator+(template_sel left_template, const ClientSyncCompList& right_value); +extern ClientSyncCompList_template operator+(const ClientSyncCompList& left_value, template_sel right_template); +extern void f__connect4SelfSync(); +extern void start_f__connect4SelfSync(const COMPONENT& component_reference); +extern void f__disconnect4SelfSync(); +extern void start_f__disconnect4SelfSync(const COMPONENT& component_reference); +extern void f__selfSyncAndVerdict(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__selfSyncAndVerdict(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__selfSyncAndVerdictPreamble(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__selfSyncAndVerdictPreamble(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__selfSyncAndVerdictTestBody(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__selfSyncAndVerdictTestBody(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__selfSyncAndVerdictPostamble(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__selfSyncAndVerdictPostamble(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern LibCommon__VerdictControl::FncRetCode f__selfSync(const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void start_f__selfSync(const COMPONENT& component_reference, const CHARSTRING& p__syncId, const LibCommon__VerdictControl::FncRetCode& p__ret); +extern void f__selfSyncStop(); +extern void start_f__selfSyncStop(const COMPONENT& component_reference); +extern SyncCmd_template m__syncClientReady(const CHARSTRING_template& p__syncId); +extern SyncCmd_template m__syncServerReady(const CHARSTRING_template& p__syncId); +extern void f__serverSendToAllClients(const ClientSyncCompList& p__clientRefs, const SyncCmd_template& p__syncCmd); +extern void start_f__serverSendToAllClients(const COMPONENT& component_reference, const ClientSyncCompList& p__clientRefs, const SyncCmd_template& p__syncCmd); +extern void f__serverWaitForAllClientsToShutDown(); +extern void start_f__serverWaitForAllClientsToShutDown(const COMPONENT& component_reference); +extern BOOLEAN f__isPresentInArray(const COMPONENT& p__clientRef, const ClientSyncCompList& p__clientRefs); + +/* Global variable declarations */ + +extern const TTCN_Typedescriptor_t& BaseSyncComp_descr_; +extern SyncPort BaseSyncComp_component_syncPort; +extern TIMER BaseSyncComp_component_tc__sync; +extern const TTCN_Typedescriptor_t& ServerSyncComp_descr_; +extern TIMER ServerSyncComp_component_tc__shutDown; +extern const TTCN_Typedescriptor_t& ClientSyncComp_descr_; +extern LibCommon__AbstractData::StringStack ClientSyncComp_component_v__stateStack; +extern const TTCN_Typedescriptor_t TestcaseStep_descr_; +extern TestcaseStep ClientSyncComp_component_vc__testcaseStep; +extern const TTCN_Typedescriptor_t& SelfSyncComp_descr_; +extern SyncPort SelfSyncComp_component_syncSendPort; +extern const CHARSTRING& c__prDone; +extern CHARSTRING const_c__prDone; +extern const CHARSTRING& c__poDone; +extern CHARSTRING const_c__poDone; +extern const CHARSTRING& c__tbDone; +extern CHARSTRING const_c__tbDone; +extern const CHARSTRING& c__initDone; +extern CHARSTRING const_c__initDone; +extern const FLOAT& PX__TSYNC__TIME__LIMIT; +extern const FLOAT& PX__TSHUT__DOWN__TIME__LIMIT; +extern const TTCN_Typedescriptor_t SyncPointList_descr_; +extern const XERdescriptor_t SyncPointList_0_xer_; +extern const TTCN_Typedescriptor_t SyncPointList_0_descr_; +extern const TTCN_Typedescriptor_t ClientSyncCompList_descr_; +extern const TTCN_Typedescriptor_t SyncCmd_descr_; +extern const XERdescriptor_t ClientReady_syncPointId_xer_; +extern const TTCN_Typedescriptor_t ClientReady_syncPointId_descr_; +extern const TTCN_Typedescriptor_t ClientReady_descr_; +extern const XERdescriptor_t ServerReady_syncPointId_xer_; +extern const TTCN_Typedescriptor_t ServerReady_syncPointId_descr_; +extern const TTCN_Typedescriptor_t ServerReady_descr_; +extern const TTCN_Typedescriptor_t ClientStop_descr_; +extern const TTCN_Typedescriptor_t ServerStop_descr_; +extern Erroneous_descriptor_t* template_m__syncClientReady_err_descr_ptr; +extern Erroneous_descriptor_t* template_m__syncServerReady_err_descr_ptr; +extern const SyncCmd_template& m__syncClientStop; +extern SyncCmd_template template_m__syncClientStop; +extern const SyncCmd_template& m__syncServerStop; +extern SyncCmd_template template_m__syncServerStop; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/LibCommon_Sync.o b/build/Ats_NG_NAS/LibCommon_Sync.o new file mode 100644 index 0000000000000000000000000000000000000000..7271ab82be7e295f82084b0bd26e881197093cdb Binary files /dev/null and b/build/Ats_NG_NAS/LibCommon_Sync.o differ diff --git a/build/Ats_NG_NAS/LibCommon_TextStrings.cc b/build/Ats_NG_NAS/LibCommon_TextStrings.cc new file mode 100644 index 0000000000000000000000000000000000000000..1fca309b996d6439fd48823b46a6f6e07e0fec7d --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_TextStrings.cc @@ -0,0 +1,739 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "LibCommon_TextStrings.hh" + +namespace LibCommon__TextStrings { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const CHARSTRING cs_0('\0'), +cs_1('\1'), +cs_2('\2'), +cs_3('\3'), +cs_4('\4'), +cs_5('\5'), +cs_6('\6'), +cs_7('\a'), +cs_8('\b'), +cs_9('\t'), +cs_10('\n'), +cs_11('\v'), +cs_12('\f'), +cs_13('\r'), +cs_33(2, "\r\n"), +cs_14('\16'), +cs_15('\17'), +cs_16('\20'), +cs_17('\21'), +cs_18('\22'), +cs_19('\23'), +cs_20('\24'), +cs_21('\25'), +cs_22('\26'), +cs_23('\27'), +cs_24('\30'), +cs_25('\31'), +cs_26('\32'), +cs_27('\33'), +cs_28('\34'), +cs_29('\35'), +cs_30('\36'), +cs_31('\37'), +cs_34(20, "([0-9]|[a-z]|[A-Z])+"), +cs_32('\177'); +static const unsigned char module_checksum[] = { 0x12, 0xda, 0xba, 0x4d, 0xb2, 0x20, 0x42, 0xf9, 0x56, 0x5b, 0xbf, 0x39, 0x66, 0x97, 0x99, 0x7d }; + +/* Global variable definitions */ + +CHARSTRING const_c__NUL; +const CHARSTRING& c__NUL = const_c__NUL; +CHARSTRING const_c__SOH; +const CHARSTRING& c__SOH = const_c__SOH; +CHARSTRING const_c__STX; +const CHARSTRING& c__STX = const_c__STX; +CHARSTRING const_c__ETX; +const CHARSTRING& c__ETX = const_c__ETX; +CHARSTRING const_c__EOT; +const CHARSTRING& c__EOT = const_c__EOT; +CHARSTRING const_c__ENQ; +const CHARSTRING& c__ENQ = const_c__ENQ; +CHARSTRING const_c__ACK; +const CHARSTRING& c__ACK = const_c__ACK; +CHARSTRING const_c__BEL; +const CHARSTRING& c__BEL = const_c__BEL; +CHARSTRING const_c__BS; +const CHARSTRING& c__BS = const_c__BS; +CHARSTRING const_c__TAB; +const CHARSTRING& c__TAB = const_c__TAB; +CHARSTRING const_c__LF; +const CHARSTRING& c__LF = const_c__LF; +CHARSTRING const_c__VT; +const CHARSTRING& c__VT = const_c__VT; +CHARSTRING const_c__FF; +const CHARSTRING& c__FF = const_c__FF; +CHARSTRING const_c__CR; +const CHARSTRING& c__CR = const_c__CR; +CHARSTRING const_c__SO; +const CHARSTRING& c__SO = const_c__SO; +CHARSTRING const_c__SI; +const CHARSTRING& c__SI = const_c__SI; +CHARSTRING const_c__DLE; +const CHARSTRING& c__DLE = const_c__DLE; +CHARSTRING const_c__DC1; +const CHARSTRING& c__DC1 = const_c__DC1; +CHARSTRING const_c__DC2; +const CHARSTRING& c__DC2 = const_c__DC2; +CHARSTRING const_c__DC3; +const CHARSTRING& c__DC3 = const_c__DC3; +CHARSTRING const_c__DC4; +const CHARSTRING& c__DC4 = const_c__DC4; +CHARSTRING const_c__NAK; +const CHARSTRING& c__NAK = const_c__NAK; +CHARSTRING const_c__SYN; +const CHARSTRING& c__SYN = const_c__SYN; +CHARSTRING const_c__ETB; +const CHARSTRING& c__ETB = const_c__ETB; +CHARSTRING const_c__CAN; +const CHARSTRING& c__CAN = const_c__CAN; +CHARSTRING const_c__EM; +const CHARSTRING& c__EM = const_c__EM; +CHARSTRING const_c__SUB; +const CHARSTRING& c__SUB = const_c__SUB; +CHARSTRING const_c__ESC; +const CHARSTRING& c__ESC = const_c__ESC; +CHARSTRING const_c__FS; +const CHARSTRING& c__FS = const_c__FS; +CHARSTRING const_c__GS; +const CHARSTRING& c__GS = const_c__GS; +CHARSTRING const_c__RS; +const CHARSTRING& c__RS = const_c__RS; +CHARSTRING const_c__US; +const CHARSTRING& c__US = const_c__US; +CHARSTRING const_c__DEL; +const CHARSTRING& c__DEL = const_c__DEL; +CHARSTRING const_c__CRLF; +const CHARSTRING& c__CRLF = const_c__CRLF; +const TTCN_RAWdescriptor_t String1_raw_ = {8,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String1_xer_ = { {"String1>\n", "String1>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String1_descr_ = { "@LibCommon_TextStrings.String1", NULL, &String1_raw_, &CHARSTRING_text_, &String1_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String2_raw_ = {16,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String2_xer_ = { {"String2>\n", "String2>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String2_descr_ = { "@LibCommon_TextStrings.String2", NULL, &String2_raw_, &CHARSTRING_text_, &String2_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String3_raw_ = {24,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String3_xer_ = { {"String3>\n", "String3>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String3_descr_ = { "@LibCommon_TextStrings.String3", NULL, &String3_raw_, &CHARSTRING_text_, &String3_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String4_raw_ = {32,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String4_xer_ = { {"String4>\n", "String4>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String4_descr_ = { "@LibCommon_TextStrings.String4", NULL, &String4_raw_, &CHARSTRING_text_, &String4_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String5_raw_ = {40,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String5_xer_ = { {"String5>\n", "String5>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String5_descr_ = { "@LibCommon_TextStrings.String5", NULL, &String5_raw_, &CHARSTRING_text_, &String5_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String6_raw_ = {48,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String6_xer_ = { {"String6>\n", "String6>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String6_descr_ = { "@LibCommon_TextStrings.String6", NULL, &String6_raw_, &CHARSTRING_text_, &String6_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String7_raw_ = {56,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String7_xer_ = { {"String7>\n", "String7>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String7_descr_ = { "@LibCommon_TextStrings.String7", NULL, &String7_raw_, &CHARSTRING_text_, &String7_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String8_raw_ = {64,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String8_xer_ = { {"String8>\n", "String8>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String8_descr_ = { "@LibCommon_TextStrings.String8", NULL, &String8_raw_, &CHARSTRING_text_, &String8_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String9_raw_ = {72,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String9_xer_ = { {"String9>\n", "String9>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String9_descr_ = { "@LibCommon_TextStrings.String9", NULL, &String9_raw_, &CHARSTRING_text_, &String9_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String10_raw_ = {80,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String10_xer_ = { {"String10>\n", "String10>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String10_descr_ = { "@LibCommon_TextStrings.String10", NULL, &String10_raw_, &CHARSTRING_text_, &String10_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String11_raw_ = {88,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String11_xer_ = { {"String11>\n", "String11>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String11_descr_ = { "@LibCommon_TextStrings.String11", NULL, &String11_raw_, &CHARSTRING_text_, &String11_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String12_raw_ = {96,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String12_xer_ = { {"String12>\n", "String12>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String12_descr_ = { "@LibCommon_TextStrings.String12", NULL, &String12_raw_, &CHARSTRING_text_, &String12_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String13_raw_ = {104,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String13_xer_ = { {"String13>\n", "String13>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String13_descr_ = { "@LibCommon_TextStrings.String13", NULL, &String13_raw_, &CHARSTRING_text_, &String13_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String14_raw_ = {112,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String14_xer_ = { {"String14>\n", "String14>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String14_descr_ = { "@LibCommon_TextStrings.String14", NULL, &String14_raw_, &CHARSTRING_text_, &String14_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String15_raw_ = {120,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String15_xer_ = { {"String15>\n", "String15>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String15_descr_ = { "@LibCommon_TextStrings.String15", NULL, &String15_raw_, &CHARSTRING_text_, &String15_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t String16_raw_ = {128,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t String16_xer_ = { {"String16>\n", "String16>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String16_descr_ = { "@LibCommon_TextStrings.String16", NULL, &String16_raw_, &CHARSTRING_text_, &String16_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t String1To13_xer_ = { {"String1To13>\n", "String1To13>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String1To13_descr_ = { "@LibCommon_TextStrings.String1To13", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &String1To13_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t String1To63_xer_ = { {"String1To63>\n", "String1To63>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String1To63_descr_ = { "@LibCommon_TextStrings.String1To63", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &String1To63_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t String1To64_xer_ = { {"String1To64>\n", "String1To64>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String1To64_descr_ = { "@LibCommon_TextStrings.String1To64", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &String1To64_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t String1To127_xer_ = { {"String1To127>\n", "String1To127>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String1To127_descr_ = { "@LibCommon_TextStrings.String1To127", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &String1To127_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t String1To128_xer_ = { {"String1To128>\n", "String1To128>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String1To128_descr_ = { "@LibCommon_TextStrings.String1To128", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &String1To128_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t String1to255_xer_ = { {"String1to255>\n", "String1to255>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String1to255_descr_ = { "@LibCommon_TextStrings.String1to255", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &String1to255_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t String5to253_xer_ = { {"String5to253>\n", "String5to253>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t String5to253_descr_ = { "@LibCommon_TextStrings.String5to253", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &String5to253_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UnicodeText_xer_ = { {"UnicodeText>\n", "UnicodeText>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t UnicodeText_descr_ = { "@LibCommon_TextStrings.UnicodeText", NULL, &UNIVERSAL_CHARSTRING_raw_, &UNIVERSAL_CHARSTRING_text_, &UnicodeText_xer_, &UNIVERSAL_CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UnicodeText1to255_xer_ = { {"UnicodeText1to255>\n", "UnicodeText1to255>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t UnicodeText1to255_descr_ = { "@LibCommon_TextStrings.UnicodeText1to255", NULL, &UNIVERSAL_CHARSTRING_raw_, &UNIVERSAL_CHARSTRING_text_, &UnicodeText1to255_xer_, &UNIVERSAL_CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AlphaNum_xer_ = { {"AlphaNum>\n", "AlphaNum>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AlphaNum_descr_ = { "@LibCommon_TextStrings.AlphaNum", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &AlphaNum_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t AlphaNum2_raw_ = {16,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t AlphaNum2_xer_ = { {"AlphaNum2>\n", "AlphaNum2>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AlphaNum2_descr_ = { "@LibCommon_TextStrings.AlphaNum2", NULL, &AlphaNum2_raw_, &CHARSTRING_text_, &AlphaNum2_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AlphaNum1To32_xer_ = { {"AlphaNum1To32>\n", "AlphaNum1To32>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AlphaNum1To32_descr_ = { "@LibCommon_TextStrings.AlphaNum1To32", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &AlphaNum1To32_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +CHARSTRING_template template_mw__isAlphaNum; +const CHARSTRING_template& mw__isAlphaNum = template_mw__isAlphaNum; +TTCN_Module module_object("LibCommon_TextStrings", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_LibCommon_TextStrings(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "AlphaNum")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AlphaNum template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String10")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String10 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String11")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String11 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String12")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String12 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String13")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String13 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String14")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String14 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String15")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String15 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String16")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String16 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To127")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To127 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To128")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To128 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To13")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To13 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To63")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To63 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To64")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1To64 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1to255")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String1to255 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String2")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String2 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String3")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String3 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String4")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String4 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String5")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String5 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String5to253")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String5to253 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String6")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String6 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String7")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String7 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String8")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String8 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String9")) { + ((const CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "String9 template")) { + ((const CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UnicodeText")) { + ((const UNIVERSAL_CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UnicodeText template")) { + ((const UNIVERSAL_CHARSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UnicodeText1to255")) { + ((const UNIVERSAL_CHARSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UnicodeText1to255 template")) { + ((const UNIVERSAL_CHARSTRING_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_LibCommon_TextStrings(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "AlphaNum")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AlphaNum template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String10")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String10 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String11")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String11 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String12")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String12 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String13")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String13 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String14")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String14 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String15")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String15 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String16")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String16 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To127")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To127 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To128")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To128 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To13")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To13 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To63")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To63 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To64")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1To64 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1to255")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String1to255 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String2")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String2 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String3")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String3 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String4")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String4 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String5")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String5 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String5to253")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String5to253 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String6")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String6 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String7")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String7 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String8")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String8 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String9")) { + ((CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "String9 template")) { + ((CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UnicodeText")) { + ((UNIVERSAL_CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UnicodeText template")) { + ((UNIVERSAL_CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UnicodeText1to255")) { + ((UNIVERSAL_CHARSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UnicodeText1to255 template")) { + ((UNIVERSAL_CHARSTRING_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("LibCommon_TextStrings"); + global_scope->add_variable(&c__ACK, "c_ACK", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__BEL, "c_BEL", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__BS, "c_BS", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__CAN, "c_CAN", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__CR, "c_CR", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__CRLF, "c_CRLF", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__DC1, "c_DC1", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__DC2, "c_DC2", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__DC3, "c_DC3", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__DC4, "c_DC4", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__DEL, "c_DEL", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__DLE, "c_DLE", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__EM, "c_EM", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__ENQ, "c_ENQ", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__EOT, "c_EOT", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__ESC, "c_ESC", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__ETB, "c_ETB", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__ETX, "c_ETX", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__FF, "c_FF", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__FS, "c_FS", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__GS, "c_GS", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__LF, "c_LF", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__NAK, "c_NAK", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__NUL, "c_NUL", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__RS, "c_RS", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__SI, "c_SI", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__SO, "c_SO", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__SOH, "c_SOH", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__STX, "c_STX", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__SUB, "c_SUB", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__SYN, "c_SYN", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__TAB, "c_TAB", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__US, "c_US", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&c__VT, "c_VT", "charstring", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&mw__isAlphaNum, "mw_isAlphaNum", "charstring template", "LibCommon_TextStrings", TTCN3_Debugger::print_base_var); +} + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_TextStrings"); +LibCommon__TextStrings::init_ttcn3_debugger(); +current_location.update_lineno(30); +ttcn3_debugger.breakpoint_entry(30); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 30 */ +const_c__NUL = cs_0; +current_location.update_lineno(31); +ttcn3_debugger.breakpoint_entry(31); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 31 */ +const_c__SOH = cs_1; +current_location.update_lineno(32); +ttcn3_debugger.breakpoint_entry(32); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 32 */ +const_c__STX = cs_2; +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 33 */ +const_c__ETX = cs_3; +current_location.update_lineno(34); +ttcn3_debugger.breakpoint_entry(34); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 34 */ +const_c__EOT = cs_4; +current_location.update_lineno(35); +ttcn3_debugger.breakpoint_entry(35); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 35 */ +const_c__ENQ = cs_5; +current_location.update_lineno(36); +ttcn3_debugger.breakpoint_entry(36); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 36 */ +const_c__ACK = cs_6; +current_location.update_lineno(37); +ttcn3_debugger.breakpoint_entry(37); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 37 */ +const_c__BEL = cs_7; +current_location.update_lineno(38); +ttcn3_debugger.breakpoint_entry(38); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 38 */ +const_c__BS = cs_8; +current_location.update_lineno(39); +ttcn3_debugger.breakpoint_entry(39); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 39 */ +const_c__TAB = cs_9; +current_location.update_lineno(40); +ttcn3_debugger.breakpoint_entry(40); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 40 */ +const_c__LF = cs_10; +current_location.update_lineno(41); +ttcn3_debugger.breakpoint_entry(41); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 41 */ +const_c__VT = cs_11; +current_location.update_lineno(42); +ttcn3_debugger.breakpoint_entry(42); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 42 */ +const_c__FF = cs_12; +current_location.update_lineno(43); +ttcn3_debugger.breakpoint_entry(43); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 43 */ +const_c__CR = cs_13; +current_location.update_lineno(44); +ttcn3_debugger.breakpoint_entry(44); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 44 */ +const_c__SO = cs_14; +current_location.update_lineno(45); +ttcn3_debugger.breakpoint_entry(45); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 45 */ +const_c__SI = cs_15; +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 46 */ +const_c__DLE = cs_16; +current_location.update_lineno(47); +ttcn3_debugger.breakpoint_entry(47); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 47 */ +const_c__DC1 = cs_17; +current_location.update_lineno(48); +ttcn3_debugger.breakpoint_entry(48); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 48 */ +const_c__DC2 = cs_18; +current_location.update_lineno(49); +ttcn3_debugger.breakpoint_entry(49); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 49 */ +const_c__DC3 = cs_19; +current_location.update_lineno(50); +ttcn3_debugger.breakpoint_entry(50); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 50 */ +const_c__DC4 = cs_20; +current_location.update_lineno(51); +ttcn3_debugger.breakpoint_entry(51); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 51 */ +const_c__NAK = cs_21; +current_location.update_lineno(52); +ttcn3_debugger.breakpoint_entry(52); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 52 */ +const_c__SYN = cs_22; +current_location.update_lineno(53); +ttcn3_debugger.breakpoint_entry(53); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 53 */ +const_c__ETB = cs_23; +current_location.update_lineno(54); +ttcn3_debugger.breakpoint_entry(54); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 54 */ +const_c__CAN = cs_24; +current_location.update_lineno(55); +ttcn3_debugger.breakpoint_entry(55); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 55 */ +const_c__EM = cs_25; +current_location.update_lineno(56); +ttcn3_debugger.breakpoint_entry(56); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 56 */ +const_c__SUB = cs_26; +current_location.update_lineno(57); +ttcn3_debugger.breakpoint_entry(57); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 57 */ +const_c__ESC = cs_27; +current_location.update_lineno(58); +ttcn3_debugger.breakpoint_entry(58); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 58 */ +const_c__FS = cs_28; +current_location.update_lineno(59); +ttcn3_debugger.breakpoint_entry(59); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 59 */ +const_c__GS = cs_29; +current_location.update_lineno(60); +ttcn3_debugger.breakpoint_entry(60); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 60 */ +const_c__RS = cs_30; +current_location.update_lineno(61); +ttcn3_debugger.breakpoint_entry(61); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 61 */ +const_c__US = cs_31; +current_location.update_lineno(62); +ttcn3_debugger.breakpoint_entry(62); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 62 */ +const_c__DEL = cs_32; +current_location.update_lineno(64); +ttcn3_debugger.breakpoint_entry(64); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 64 */ +const_c__CRLF = cs_33; +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_TextStrings"); +current_location.update_lineno(124); +ttcn3_debugger.breakpoint_entry(124); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_TextStrings.ttcn, line 124 */ +template_mw__isAlphaNum = CHARSTRING_template(STRING_PATTERN, (CHARSTRING)cs_34, FALSE); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/LibCommon_TextStrings.hh b/build/Ats_NG_NAS/LibCommon_TextStrings.hh new file mode 100644 index 0000000000000000000000000000000000000000..0e831bfe0c5bcbe2707c6c05a2c9c4d9ccc2dec4 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_TextStrings.hh @@ -0,0 +1,248 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef LibCommon__TextStrings_HH +#define LibCommon__TextStrings_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include + +#if TTCN3_VERSION != 100000 +#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 + +namespace LibCommon__TextStrings { + +/* Type definitions */ + +typedef CHARSTRING String1; +typedef CHARSTRING_template String1_template; +typedef CHARSTRING String2; +typedef CHARSTRING_template String2_template; +typedef CHARSTRING String3; +typedef CHARSTRING_template String3_template; +typedef CHARSTRING String4; +typedef CHARSTRING_template String4_template; +typedef CHARSTRING String5; +typedef CHARSTRING_template String5_template; +typedef CHARSTRING String6; +typedef CHARSTRING_template String6_template; +typedef CHARSTRING String7; +typedef CHARSTRING_template String7_template; +typedef CHARSTRING String8; +typedef CHARSTRING_template String8_template; +typedef CHARSTRING String9; +typedef CHARSTRING_template String9_template; +typedef CHARSTRING String10; +typedef CHARSTRING_template String10_template; +typedef CHARSTRING String11; +typedef CHARSTRING_template String11_template; +typedef CHARSTRING String12; +typedef CHARSTRING_template String12_template; +typedef CHARSTRING String13; +typedef CHARSTRING_template String13_template; +typedef CHARSTRING String14; +typedef CHARSTRING_template String14_template; +typedef CHARSTRING String15; +typedef CHARSTRING_template String15_template; +typedef CHARSTRING String16; +typedef CHARSTRING_template String16_template; +typedef CHARSTRING String1To13; +typedef CHARSTRING_template String1To13_template; +typedef CHARSTRING String1To63; +typedef CHARSTRING_template String1To63_template; +typedef CHARSTRING String1To64; +typedef CHARSTRING_template String1To64_template; +typedef CHARSTRING String1To127; +typedef CHARSTRING_template String1To127_template; +typedef CHARSTRING String1To128; +typedef CHARSTRING_template String1To128_template; +typedef CHARSTRING String1to255; +typedef CHARSTRING_template String1to255_template; +typedef CHARSTRING String5to253; +typedef CHARSTRING_template String5to253_template; +typedef UNIVERSAL_CHARSTRING UnicodeText; +typedef UNIVERSAL_CHARSTRING_template UnicodeText_template; +typedef UNIVERSAL_CHARSTRING UnicodeText1to255; +typedef UNIVERSAL_CHARSTRING_template UnicodeText1to255_template; +typedef CHARSTRING AlphaNum; +typedef CHARSTRING_template AlphaNum_template; +typedef CHARSTRING AlphaNum2; +typedef CHARSTRING_template AlphaNum2_template; +typedef CHARSTRING AlphaNum1To32; +typedef CHARSTRING_template AlphaNum1To32_template; + +/* Class definitions */ + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_LibCommon_TextStrings(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_LibCommon_TextStrings(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Global variable declarations */ + +extern const CHARSTRING& c__NUL; +extern CHARSTRING const_c__NUL; +extern const CHARSTRING& c__SOH; +extern CHARSTRING const_c__SOH; +extern const CHARSTRING& c__STX; +extern CHARSTRING const_c__STX; +extern const CHARSTRING& c__ETX; +extern CHARSTRING const_c__ETX; +extern const CHARSTRING& c__EOT; +extern CHARSTRING const_c__EOT; +extern const CHARSTRING& c__ENQ; +extern CHARSTRING const_c__ENQ; +extern const CHARSTRING& c__ACK; +extern CHARSTRING const_c__ACK; +extern const CHARSTRING& c__BEL; +extern CHARSTRING const_c__BEL; +extern const CHARSTRING& c__BS; +extern CHARSTRING const_c__BS; +extern const CHARSTRING& c__TAB; +extern CHARSTRING const_c__TAB; +extern const CHARSTRING& c__LF; +extern CHARSTRING const_c__LF; +extern const CHARSTRING& c__VT; +extern CHARSTRING const_c__VT; +extern const CHARSTRING& c__FF; +extern CHARSTRING const_c__FF; +extern const CHARSTRING& c__CR; +extern CHARSTRING const_c__CR; +extern const CHARSTRING& c__SO; +extern CHARSTRING const_c__SO; +extern const CHARSTRING& c__SI; +extern CHARSTRING const_c__SI; +extern const CHARSTRING& c__DLE; +extern CHARSTRING const_c__DLE; +extern const CHARSTRING& c__DC1; +extern CHARSTRING const_c__DC1; +extern const CHARSTRING& c__DC2; +extern CHARSTRING const_c__DC2; +extern const CHARSTRING& c__DC3; +extern CHARSTRING const_c__DC3; +extern const CHARSTRING& c__DC4; +extern CHARSTRING const_c__DC4; +extern const CHARSTRING& c__NAK; +extern CHARSTRING const_c__NAK; +extern const CHARSTRING& c__SYN; +extern CHARSTRING const_c__SYN; +extern const CHARSTRING& c__ETB; +extern CHARSTRING const_c__ETB; +extern const CHARSTRING& c__CAN; +extern CHARSTRING const_c__CAN; +extern const CHARSTRING& c__EM; +extern CHARSTRING const_c__EM; +extern const CHARSTRING& c__SUB; +extern CHARSTRING const_c__SUB; +extern const CHARSTRING& c__ESC; +extern CHARSTRING const_c__ESC; +extern const CHARSTRING& c__FS; +extern CHARSTRING const_c__FS; +extern const CHARSTRING& c__GS; +extern CHARSTRING const_c__GS; +extern const CHARSTRING& c__RS; +extern CHARSTRING const_c__RS; +extern const CHARSTRING& c__US; +extern CHARSTRING const_c__US; +extern const CHARSTRING& c__DEL; +extern CHARSTRING const_c__DEL; +extern const CHARSTRING& c__CRLF; +extern CHARSTRING const_c__CRLF; +extern const TTCN_RAWdescriptor_t String1_raw_; +extern const XERdescriptor_t String1_xer_; +extern const TTCN_Typedescriptor_t String1_descr_; +extern const TTCN_RAWdescriptor_t String2_raw_; +extern const XERdescriptor_t String2_xer_; +extern const TTCN_Typedescriptor_t String2_descr_; +extern const TTCN_RAWdescriptor_t String3_raw_; +extern const XERdescriptor_t String3_xer_; +extern const TTCN_Typedescriptor_t String3_descr_; +extern const TTCN_RAWdescriptor_t String4_raw_; +extern const XERdescriptor_t String4_xer_; +extern const TTCN_Typedescriptor_t String4_descr_; +extern const TTCN_RAWdescriptor_t String5_raw_; +extern const XERdescriptor_t String5_xer_; +extern const TTCN_Typedescriptor_t String5_descr_; +extern const TTCN_RAWdescriptor_t String6_raw_; +extern const XERdescriptor_t String6_xer_; +extern const TTCN_Typedescriptor_t String6_descr_; +extern const TTCN_RAWdescriptor_t String7_raw_; +extern const XERdescriptor_t String7_xer_; +extern const TTCN_Typedescriptor_t String7_descr_; +extern const TTCN_RAWdescriptor_t String8_raw_; +extern const XERdescriptor_t String8_xer_; +extern const TTCN_Typedescriptor_t String8_descr_; +extern const TTCN_RAWdescriptor_t String9_raw_; +extern const XERdescriptor_t String9_xer_; +extern const TTCN_Typedescriptor_t String9_descr_; +extern const TTCN_RAWdescriptor_t String10_raw_; +extern const XERdescriptor_t String10_xer_; +extern const TTCN_Typedescriptor_t String10_descr_; +extern const TTCN_RAWdescriptor_t String11_raw_; +extern const XERdescriptor_t String11_xer_; +extern const TTCN_Typedescriptor_t String11_descr_; +extern const TTCN_RAWdescriptor_t String12_raw_; +extern const XERdescriptor_t String12_xer_; +extern const TTCN_Typedescriptor_t String12_descr_; +extern const TTCN_RAWdescriptor_t String13_raw_; +extern const XERdescriptor_t String13_xer_; +extern const TTCN_Typedescriptor_t String13_descr_; +extern const TTCN_RAWdescriptor_t String14_raw_; +extern const XERdescriptor_t String14_xer_; +extern const TTCN_Typedescriptor_t String14_descr_; +extern const TTCN_RAWdescriptor_t String15_raw_; +extern const XERdescriptor_t String15_xer_; +extern const TTCN_Typedescriptor_t String15_descr_; +extern const TTCN_RAWdescriptor_t String16_raw_; +extern const XERdescriptor_t String16_xer_; +extern const TTCN_Typedescriptor_t String16_descr_; +extern const XERdescriptor_t String1To13_xer_; +extern const TTCN_Typedescriptor_t String1To13_descr_; +extern const XERdescriptor_t String1To63_xer_; +extern const TTCN_Typedescriptor_t String1To63_descr_; +extern const XERdescriptor_t String1To64_xer_; +extern const TTCN_Typedescriptor_t String1To64_descr_; +extern const XERdescriptor_t String1To127_xer_; +extern const TTCN_Typedescriptor_t String1To127_descr_; +extern const XERdescriptor_t String1To128_xer_; +extern const TTCN_Typedescriptor_t String1To128_descr_; +extern const XERdescriptor_t String1to255_xer_; +extern const TTCN_Typedescriptor_t String1to255_descr_; +extern const XERdescriptor_t String5to253_xer_; +extern const TTCN_Typedescriptor_t String5to253_descr_; +extern const XERdescriptor_t UnicodeText_xer_; +extern const TTCN_Typedescriptor_t UnicodeText_descr_; +extern const XERdescriptor_t UnicodeText1to255_xer_; +extern const TTCN_Typedescriptor_t UnicodeText1to255_descr_; +extern const XERdescriptor_t AlphaNum_xer_; +extern const TTCN_Typedescriptor_t AlphaNum_descr_; +extern const TTCN_RAWdescriptor_t AlphaNum2_raw_; +extern const XERdescriptor_t AlphaNum2_xer_; +extern const TTCN_Typedescriptor_t AlphaNum2_descr_; +extern const XERdescriptor_t AlphaNum1To32_xer_; +extern const TTCN_Typedescriptor_t AlphaNum1To32_descr_; +extern const CHARSTRING_template& mw__isAlphaNum; +extern CHARSTRING_template template_mw__isAlphaNum; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/LibCommon_TextStrings.o b/build/Ats_NG_NAS/LibCommon_TextStrings.o new file mode 100644 index 0000000000000000000000000000000000000000..17a4efbc784c42847331e7102e032bf32bcf2dda Binary files /dev/null and b/build/Ats_NG_NAS/LibCommon_TextStrings.o differ diff --git a/build/Ats_NG_NAS/LibCommon_Time.cc b/build/Ats_NG_NAS/LibCommon_Time.cc new file mode 100644 index 0000000000000000000000000000000000000000..2f25f21a59a886551d8d629d5c262db26b7247c2 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_Time.cc @@ -0,0 +1,257 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "LibCommon_Time.hh" + +namespace LibCommon__Time { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static boolean set_module_param(Module_Param& param); +static Module_Param* get_module_param(Module_Param_Name& param_name); +static void log_module_param(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0x6e, 0x92, 0xb5, 0x8c, 0x75, 0xbb, 0x94, 0xba, 0x8e, 0x43, 0xc9, 0x3a, 0xcf, 0xfb, 0xae, 0x2d }; + +/* Global variable definitions */ + +static FLOAT modulepar_PX__TDONE; +const FLOAT& PX__TDONE = modulepar_PX__TDONE; +static FLOAT modulepar_PX__TAC; +const FLOAT& PX__TAC = modulepar_PX__TAC; +static FLOAT modulepar_PX__TNOAC; +const FLOAT& PX__TNOAC = modulepar_PX__TNOAC; +static FLOAT modulepar_PX__TWAIT; +const FLOAT& PX__TWAIT = modulepar_PX__TWAIT; +static FLOAT modulepar_PX__LOOP; +const FLOAT& PX__LOOP = modulepar_PX__LOOP; +TTCN_Module module_object("LibCommon_Time", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, NULL, set_module_param, get_module_param, log_module_param, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("LibCommon_Time"); + global_scope->add_variable(&PX__LOOP, "PX_LOOP", "float", "LibCommon_Time", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&PX__TAC, "PX_TAC", "float", "LibCommon_Time", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&PX__TDONE, "PX_TDONE", "float", "LibCommon_Time", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&PX__TNOAC, "PX_TNOAC", "float", "LibCommon_Time", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&PX__TWAIT, "PX_TWAIT", "float", "LibCommon_Time", TTCN3_Debugger::print_base_var); +} + +/* Bodies of functions, altsteps and testcases */ + +void f__sleep(const FLOAT& p__duration) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn", 63, TTCN_Location::LOCATION_FUNCTION, "f_sleep"); +charstring_list param_names; +param_names[0] = "p_duration"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_sleep", "function", "LibCommon_Time", param_names, param_types, NULL); +debug_scope.add_variable(&p__duration, "p_duration", "float", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(64); +ttcn3_debugger.breakpoint_entry(64); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 64 */ +TIMER t("t"); +debug_scope.add_variable(&t, "t", "timer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(65); +ttcn3_debugger.breakpoint_entry(65); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 65 */ +if ((p__duration <= 0.0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(65); +ttcn3_debugger.breakpoint_entry(65); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 65 */ +return; +} +current_location.update_lineno(66); +ttcn3_debugger.breakpoint_entry(66); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 66 */ +t.start(p__duration); +current_location.update_lineno(67); +ttcn3_debugger.breakpoint_entry(67); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 67 */ +{ +tmp_0: +alt_status alt_flag = ALT_UNCHECKED, default_flag = ALT_UNCHECKED; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (alt_flag != ALT_NO) { +alt_flag = t.timeout(NULL); +if (alt_flag == ALT_YES) break; +} +if (default_flag != ALT_NO) { +default_flag = TTCN_Default::try_altsteps(); +if (default_flag == ALT_YES || default_flag == ALT_BREAK) break; +else if (default_flag == ALT_REPEAT) goto tmp_0; +} +current_location.update_lineno(67); +ttcn3_debugger.breakpoint_entry(67); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 67 */ +if (alt_flag == ALT_NO && default_flag == ALT_NO) TTCN_error("Stand-alone timeout statement failed in file ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 67."); +TTCN_Snapshot::take_new(TRUE); +} +} +} + +void f__sleepIgnoreDef(const FLOAT& p__duration) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn", 77, TTCN_Location::LOCATION_FUNCTION, "f_sleepIgnoreDef"); +charstring_list param_names; +param_names[0] = "p_duration"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_sleepIgnoreDef", "function", "LibCommon_Time", param_names, param_types, NULL); +debug_scope.add_variable(&p__duration, "p_duration", "float", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(78); +ttcn3_debugger.breakpoint_entry(78); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 78 */ +TIMER t("t"); +debug_scope.add_variable(&t, "t", "timer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 79 */ +if ((p__duration <= 0.0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 79 */ +return; +} +current_location.update_lineno(80); +ttcn3_debugger.breakpoint_entry(80); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 80 */ +t.start(p__duration); +current_location.update_lineno(81); +ttcn3_debugger.breakpoint_entry(81); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 81 */ +{ +tmp_1: +alt_status tmp_1_alt_flag_0 = ALT_MAYBE; +TTCN_Snapshot::take_new(FALSE); +for ( ; ; ) { +if (tmp_1_alt_flag_0 == ALT_MAYBE) { +current_location.update_lineno(82); +ttcn3_debugger.breakpoint_entry(82); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 82 */ +tmp_1_alt_flag_0 = t.timeout(NULL); +if (tmp_1_alt_flag_0 == ALT_YES) break; +} +TTCN_Snapshot::else_branch_reached(); +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(83); +ttcn3_debugger.breakpoint_entry(83); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 83 */ +goto tmp_1; +} +} +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_Time"); +LibCommon__Time::init_ttcn3_debugger(); +current_location.update_lineno(26); +ttcn3_debugger.breakpoint_entry(26); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 26 */ +modulepar_PX__TDONE = 1.2e2; +module_object.add_modulepar("PX_TDONE"); +current_location.update_lineno(32); +ttcn3_debugger.breakpoint_entry(32); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 32 */ +modulepar_PX__TAC = 3.0e1; +module_object.add_modulepar("PX_TAC"); +current_location.update_lineno(38); +ttcn3_debugger.breakpoint_entry(38); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 38 */ +modulepar_PX__TNOAC = 1.0e1; +module_object.add_modulepar("PX_TNOAC"); +current_location.update_lineno(44); +ttcn3_debugger.breakpoint_entry(44); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 44 */ +modulepar_PX__TWAIT = 1.2e2; +module_object.add_modulepar("PX_TWAIT"); +current_location.update_lineno(50); +ttcn3_debugger.breakpoint_entry(50); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_Time.ttcn, line 50 */ +modulepar_PX__LOOP = 1.0; +module_object.add_modulepar("PX_LOOP"); +module_object.add_function("f_sleep", (genericfunc_t)&f__sleep, NULL); +module_object.add_function("f_sleepIgnoreDef", (genericfunc_t)&f__sleepIgnoreDef, NULL); +} + +static boolean set_module_param(Module_Param& param) +{ +const char* const par_name = param.get_id()->get_current_name(); +if (!strcmp(par_name, "PX_TDONE")) { +modulepar_PX__TDONE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "PX_TAC")) { +modulepar_PX__TAC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "PX_TNOAC")) { +modulepar_PX__TNOAC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "PX_TWAIT")) { +modulepar_PX__TWAIT.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "PX_LOOP")) { +modulepar_PX__LOOP.set_param(param); +return TRUE; +} else return FALSE; +} + +static Module_Param* get_module_param(Module_Param_Name& param_name) +{ +const char* const par_name = param_name.get_current_name(); +if (!strcmp(par_name, "PX_TDONE")) { +return modulepar_PX__TDONE.get_param(param_name); +} else if (!strcmp(par_name, "PX_TAC")) { +return modulepar_PX__TAC.get_param(param_name); +} else if (!strcmp(par_name, "PX_TNOAC")) { +return modulepar_PX__TNOAC.get_param(param_name); +} else if (!strcmp(par_name, "PX_TWAIT")) { +return modulepar_PX__TWAIT.get_param(param_name); +} else if (!strcmp(par_name, "PX_LOOP")) { +return modulepar_PX__LOOP.get_param(param_name); +} else return NULL; +} + +static void log_module_param() +{ +TTCN_Logger::log_event_str("PX_TDONE := "); +PX__TDONE.log(); +TTCN_Logger::log_event_str(", PX_TAC := "); +PX__TAC.log(); +TTCN_Logger::log_event_str(", PX_TNOAC := "); +PX__TNOAC.log(); +TTCN_Logger::log_event_str(", PX_TWAIT := "); +PX__TWAIT.log(); +TTCN_Logger::log_event_str(", PX_LOOP := "); +PX__LOOP.log(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/LibCommon_Time.hh b/build/Ats_NG_NAS/LibCommon_Time.hh new file mode 100644 index 0000000000000000000000000000000000000000..a4b511fc23ff24e840665e9a304322775beafff2 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_Time.hh @@ -0,0 +1,49 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef LibCommon__Time_HH +#define LibCommon__Time_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include + +#if TTCN3_VERSION != 100000 +#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 + +namespace LibCommon__Time { + +/* Function prototypes */ + +extern void f__sleep(const FLOAT& p__duration); +extern void f__sleepIgnoreDef(const FLOAT& p__duration); + +/* Global variable declarations */ + +extern const FLOAT& PX__TDONE; +extern const FLOAT& PX__TAC; +extern const FLOAT& PX__TNOAC; +extern const FLOAT& PX__TWAIT; +extern const FLOAT& PX__LOOP; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/LibCommon_Time.o b/build/Ats_NG_NAS/LibCommon_Time.o new file mode 100644 index 0000000000000000000000000000000000000000..af86d5e9182678a80ed3f79c45166118e28f317e Binary files /dev/null and b/build/Ats_NG_NAS/LibCommon_Time.o differ diff --git a/build/Ats_NG_NAS/LibCommon_VerdictControl.cc b/build/Ats_NG_NAS/LibCommon_VerdictControl.cc new file mode 100644 index 0000000000000000000000000000000000000000..a45008efbff4b245f6ce29d2522363e599e87cd0 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_VerdictControl.cc @@ -0,0 +1,865 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "LibCommon_VerdictControl.hh" + +namespace LibCommon__VerdictControl { + +/* Prototypes of static functions */ + +static void pre_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0x79, 0x41, 0xd2, 0x85, 0x94, 0x75, 0x91, 0xc2, 0x25, 0x74, 0x8a, 0xd6, 0x21, 0x36, 0x9d, 0x01 }; + +/* Global variable definitions */ + +// No XER for FncRetCode +const TTCN_Typedescriptor_t FncRetCode_descr_ = { "@LibCommon_VerdictControl.FncRetCode", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("LibCommon_VerdictControl", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_LibCommon_VerdictControl(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "FncRetCode")) { + ((const FncRetCode*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "FncRetCode template")) { + ((const FncRetCode_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_LibCommon_VerdictControl(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "FncRetCode")) { + ((FncRetCode*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "FncRetCode template")) { + ((FncRetCode_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ +} + +/* Member functions of C++ classes */ + +FncRetCode::FncRetCode() +{ +enum_value = UNBOUND_VALUE; +} + +FncRetCode::FncRetCode(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @LibCommon_VerdictControl.FncRetCode with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +FncRetCode::FncRetCode(enum_type other_value) +{ +enum_value = other_value; +} + +FncRetCode::FncRetCode(const FncRetCode& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +enum_value = other_value.enum_value; +} + +FncRetCode& FncRetCode::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @LibCommon_VerdictControl.FncRetCode.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +FncRetCode& FncRetCode::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +FncRetCode& FncRetCode::operator=(const FncRetCode& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +enum_value = other_value.enum_value; +return *this; +} + +boolean FncRetCode::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +return enum_value == other_value; +} + +boolean FncRetCode::operator==(const FncRetCode& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +return enum_value == other_value.enum_value; +} + +boolean FncRetCode::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +return enum_value < other_value; +} + +boolean FncRetCode::operator<(const FncRetCode& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +return enum_value < other_value.enum_value; +} + +boolean FncRetCode::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +return enum_value > other_value; +} + +boolean FncRetCode::operator>(const FncRetCode& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +return enum_value > other_value.enum_value; +} + +const char *FncRetCode::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case e__success: return "e_success"; +case e__error: return "e_error"; +case e__timeout: return "e_timeout"; +default: return ""; +} +} + +FncRetCode::enum_type FncRetCode::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "e_success")) return e__success; +else if (!strcmp(str_par, "e_error")) return e__error; +else if (!strcmp(str_par, "e_timeout")) return e__timeout; +else return UNKNOWN_VALUE; +} + +boolean FncRetCode::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +return TRUE; +default: +return FALSE; +} +} + +int FncRetCode::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @LibCommon_VerdictControl.FncRetCode.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int FncRetCode::enum2int(const FncRetCode& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @LibCommon_VerdictControl.FncRetCode.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void FncRetCode::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @LibCommon_VerdictControl.FncRetCode.", int_val); +enum_value = (enum_type)int_val; +} + +FncRetCode::operator FncRetCode::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @LibCommon_VerdictControl.FncRetCode."); +return enum_value; +} + +boolean FncRetCode::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void FncRetCode::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* FncRetCode::clone() const { return new FncRetCode(*this); } +const TTCN_Typedescriptor_t* FncRetCode::get_descriptor() const { return &FncRetCode_descr_; } +void FncRetCode::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void FncRetCode::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@LibCommon_VerdictControl.FncRetCode"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @LibCommon_VerdictControl.FncRetCode."); + } +} + +Module_Param* FncRetCode::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void FncRetCode::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +text_buf.push_int(enum_value); +} + +void FncRetCode::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @LibCommon_VerdictControl.FncRetCode.", enum_value); +} + +void FncRetCode_template::copy_template(const FncRetCode_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new FncRetCode_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new FncRetCode_template(*other_value.implication_.precondition); +implication_.implied_template = new FncRetCode_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @LibCommon_VerdictControl.FncRetCode."); +} +} + +FncRetCode_template::FncRetCode_template() +{ +} + +FncRetCode_template::FncRetCode_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +FncRetCode_template::FncRetCode_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!FncRetCode::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @LibCommon_VerdictControl.FncRetCode with unknown numeric value %d.", other_value); +single_value = (FncRetCode::enum_type)other_value; +} + +FncRetCode_template::FncRetCode_template(FncRetCode::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +FncRetCode_template::FncRetCode_template(const FncRetCode& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == FncRetCode::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode."); +single_value = other_value.enum_value; +} + +FncRetCode_template::FncRetCode_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (FncRetCode::enum_type)(const FncRetCode&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @LibCommon_VerdictControl.FncRetCode from an unbound optional field."); +} +} + +FncRetCode_template::FncRetCode_template(FncRetCode_template* p_precondition, FncRetCode_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +FncRetCode_template::FncRetCode_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +FncRetCode_template::FncRetCode_template(const FncRetCode_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +FncRetCode_template::~FncRetCode_template() +{ +clean_up(); +} + +boolean FncRetCode_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean FncRetCode_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != FncRetCode::UNBOUND_VALUE; +} + +void FncRetCode_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +FncRetCode_template& FncRetCode_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +FncRetCode_template& FncRetCode_template::operator=(int other_value) +{ +if (!FncRetCode::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @LibCommon_VerdictControl.FncRetCode.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (FncRetCode::enum_type)other_value; +return *this; +} + +FncRetCode_template& FncRetCode_template::operator=(FncRetCode::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +FncRetCode_template& FncRetCode_template::operator=(const FncRetCode& other_value) +{ +if (other_value.enum_value == FncRetCode::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @LibCommon_VerdictControl.FncRetCode to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +FncRetCode_template& FncRetCode_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (FncRetCode::enum_type)(const FncRetCode&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @LibCommon_VerdictControl.FncRetCode."); +} +return *this; +} + +FncRetCode_template& FncRetCode_template::operator=(const FncRetCode_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean FncRetCode_template::match(FncRetCode::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @LibCommon_VerdictControl.FncRetCode."); +} +return FALSE; +} + +boolean FncRetCode_template::match(const FncRetCode& other_value, boolean) const +{ +if (other_value.enum_value == FncRetCode::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @LibCommon_VerdictControl.FncRetCode with an unbound value."); +return match(other_value.enum_value); +} + +FncRetCode::enum_type FncRetCode_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @LibCommon_VerdictControl.FncRetCode."); +return single_value; +} + +void FncRetCode_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @LibCommon_VerdictControl.FncRetCode."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new FncRetCode_template[list_length]; +} + +FncRetCode_template& FncRetCode_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @LibCommon_VerdictControl.FncRetCode."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @LibCommon_VerdictControl.FncRetCode."); +return value_list.list_value[list_index]; +} + +void FncRetCode_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void FncRetCode_template::set_value(template_sel other_value) { *this = other_value; } +void FncRetCode_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* FncRetCode_template::clone() const { return new FncRetCode_template(*this); } +const TTCN_Typedescriptor_t* FncRetCode_template::get_descriptor() const { return &FncRetCode_descr_; } +boolean FncRetCode_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void FncRetCode_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void FncRetCode_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(FncRetCode::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void FncRetCode_template::log_match(const FncRetCode& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void FncRetCode_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @LibCommon_VerdictControl.FncRetCode."); +} +} + +void FncRetCode_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (FncRetCode::enum_type)text_buf.pull_int().get_val(); +if (!FncRetCode::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @LibCommon_VerdictControl.FncRetCode.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new FncRetCode_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @LibCommon_VerdictControl.FncRetCode."); +} +} + +boolean FncRetCode_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean FncRetCode_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + FncRetCode_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + FncRetCode::enum_type enum_val = FncRetCode::str_to_enum(m_p->get_enumerated()); + if (!FncRetCode::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @LibCommon_VerdictControl.FncRetCode."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + FncRetCode_template* precondition = new FncRetCode_template; + precondition->set_param(*m_p->get_elem(0)); + FncRetCode_template* implied_template = new FncRetCode_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = FncRetCode_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@LibCommon_VerdictControl.FncRetCode"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* FncRetCode_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(FncRetCode::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + + +/* Bodies of functions, altsteps and testcases */ + +void f__setVerdict(const FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn", 47, TTCN_Location::LOCATION_FUNCTION, "f_setVerdict"); +charstring_list param_names; +param_names[0] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_setVerdict", "function", "LibCommon_VerdictControl", param_names, param_types, NULL); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(48); +ttcn3_debugger.breakpoint_entry(48); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 48 */ +if ((p__ret == FncRetCode::e__success)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(49); +ttcn3_debugger.breakpoint_entry(49); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 49 */ +TTCN_Runtime::setverdict(PASS); +} +else { +current_location.update_lineno(50); +ttcn3_debugger.breakpoint_entry(50); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 50 */ +if ((p__ret == FncRetCode::e__timeout)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(51); +ttcn3_debugger.breakpoint_entry(51); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 51 */ +TTCN_Runtime::setverdict(INCONC); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(53); +ttcn3_debugger.breakpoint_entry(53); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 53 */ +TTCN_Runtime::setverdict(FAIL); +} +} +} + +void f__setVerdictPreamble(const FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn", 66, TTCN_Location::LOCATION_FUNCTION, "f_setVerdictPreamble"); +charstring_list param_names; +param_names[0] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_setVerdictPreamble", "function", "LibCommon_VerdictControl", param_names, param_types, NULL); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(67); +ttcn3_debugger.breakpoint_entry(67); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 67 */ +TTCN_Logger::log_str(TTCN_USER, "f_setVerdictPreamble: This function is deprecated. Use f_setVerdictPreOrPostamble instead. "); +current_location.update_lineno(68); +ttcn3_debugger.breakpoint_entry(68); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 68 */ +f__setVerdictPreOrPostamble(p__ret); +} + +void f__setVerdictPostamble(const FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn", 80, TTCN_Location::LOCATION_FUNCTION, "f_setVerdictPostamble"); +charstring_list param_names; +param_names[0] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_setVerdictPostamble", "function", "LibCommon_VerdictControl", param_names, param_types, NULL); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(81); +ttcn3_debugger.breakpoint_entry(81); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 81 */ +TTCN_Logger::log_str(TTCN_USER, "f_setVerdictPostamble: This function is deprecated. Use f_setVerdictPreOrPostamble instead. "); +current_location.update_lineno(82); +ttcn3_debugger.breakpoint_entry(82); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 82 */ +f__setVerdictPreOrPostamble(p__ret); +} + +void f__setVerdictPreOrPostamble(const FncRetCode& p__ret) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn", 92, TTCN_Location::LOCATION_FUNCTION, "f_setVerdictPreOrPostamble"); +charstring_list param_names; +param_names[0] = "p_ret"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_setVerdictPreOrPostamble", "function", "LibCommon_VerdictControl", param_names, param_types, NULL); +debug_scope.add_variable(&p__ret, "p_ret", "FncRetCode", NULL, print_var_LibCommon_VerdictControl); +debug_scope.initial_snapshot(); +current_location.update_lineno(93); +ttcn3_debugger.breakpoint_entry(93); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 93 */ +if ((p__ret != FncRetCode::e__success)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn, line 94 */ +TTCN_Runtime::setverdict(INCONC); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../LibCommon/ttcn/LibCommon_VerdictControl.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LibCommon_VerdictControl"); +LibCommon__VerdictControl::init_ttcn3_debugger(); +module_object.add_function("f_setVerdict", (genericfunc_t)&f__setVerdict, NULL); +module_object.add_function("f_setVerdictPreamble", (genericfunc_t)&f__setVerdictPreamble, NULL); +module_object.add_function("f_setVerdictPostamble", (genericfunc_t)&f__setVerdictPostamble, NULL); +module_object.add_function("f_setVerdictPreOrPostamble", (genericfunc_t)&f__setVerdictPreOrPostamble, NULL); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/LibCommon_VerdictControl.hh b/build/Ats_NG_NAS/LibCommon_VerdictControl.hh new file mode 100644 index 0000000000000000000000000000000000000000..04c3bd5c4c0be669759de439d8a01d545cac56a9 --- /dev/null +++ b/build/Ats_NG_NAS/LibCommon_VerdictControl.hh @@ -0,0 +1,183 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef LibCommon__VerdictControl_HH +#define LibCommon__VerdictControl_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include + +#if TTCN3_VERSION != 100000 +#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 LibCommon__VerdictControl_HH +#endif + +namespace LibCommon__VerdictControl { + +/* Forward declarations of classes */ + +class FncRetCode; +class FncRetCode_template; + +} /* end of namespace */ + +#ifndef LibCommon__VerdictControl_HH +#define LibCommon__VerdictControl_HH + +namespace LibCommon__VerdictControl { + +/* Class definitions */ + +class FncRetCode : public Enum_Type { // enum +friend class FncRetCode_template; +public: +enum enum_type { e__success = 0, e__error = 1, e__timeout = 2, UNKNOWN_VALUE = 3, UNBOUND_VALUE = 4 }; +private: +enum_type enum_value; + +public: +FncRetCode(); +FncRetCode(int other_value); +FncRetCode(enum_type other_value); +FncRetCode(const FncRetCode& other_value); + +FncRetCode& operator=(int other_value); +FncRetCode& operator=(enum_type other_value); +FncRetCode& operator=(const FncRetCode& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const FncRetCode& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const FncRetCode& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const FncRetCode& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const FncRetCode& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const FncRetCode& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const FncRetCode& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const FncRetCode& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class FncRetCode_template : public Base_Template { +union { +FncRetCode::enum_type single_value; +struct { +unsigned int n_values; +FncRetCode_template *list_value; +} value_list; +struct { +FncRetCode_template* precondition; +FncRetCode_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const FncRetCode_template& other_value); + +public: +FncRetCode_template(); +FncRetCode_template(template_sel other_value); +FncRetCode_template(int other_value); +FncRetCode_template(FncRetCode::enum_type other_value); +FncRetCode_template(const FncRetCode& other_value); +FncRetCode_template(const OPTIONAL& other_value); +FncRetCode_template(FncRetCode_template* p_precondition, FncRetCode_template* p_implied_template); +FncRetCode_template(Dynamic_Match_Interface* p_dyn_match); +FncRetCode_template(const FncRetCode_template& other_value); +~FncRetCode_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +FncRetCode_template& operator=(template_sel other_value); +FncRetCode_template& operator=(int other_value); +FncRetCode_template& operator=(FncRetCode::enum_type other_value); +FncRetCode_template& operator=(const FncRetCode& other_value); +FncRetCode_template& operator=(const OPTIONAL& other_value); +FncRetCode_template& operator=(const FncRetCode_template& other_value); + +boolean match(FncRetCode::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const FncRetCode& other_value, boolean legacy = FALSE) const; +FncRetCode::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +FncRetCode_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const FncRetCode& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_LibCommon_VerdictControl(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_LibCommon_VerdictControl(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern void f__setVerdict(const FncRetCode& p__ret); +extern void f__setVerdictPreamble(const FncRetCode& p__ret); +extern void f__setVerdictPostamble(const FncRetCode& p__ret); +extern void f__setVerdictPreOrPostamble(const FncRetCode& p__ret); + +/* Global variable declarations */ + +extern const TTCN_Typedescriptor_t FncRetCode_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/LibCommon_VerdictControl.o b/build/Ats_NG_NAS/LibCommon_VerdictControl.o new file mode 100644 index 0000000000000000000000000000000000000000..fb475ee4a05412878b55bf4ba0f2f9e85a04601f Binary files /dev/null and b/build/Ats_NG_NAS/LibCommon_VerdictControl.o differ diff --git a/build/Ats_NG_NAS/Lib_NG_NAS_Templates.cc b/build/Ats_NG_NAS/Lib_NG_NAS_Templates.cc new file mode 100644 index 0000000000000000000000000000000000000000..7a8eb2776f2e4ea805b831c9100f401cda98c52c --- /dev/null +++ b/build/Ats_NG_NAS/Lib_NG_NAS_Templates.cc @@ -0,0 +1,403 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "Lib_NG_NAS_Templates.hh" + +namespace Lib__NG__NAS__Templates { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0x95, 0x54, 0x07, 0xc4, 0x57, 0xd8, 0x8e, 0x6a, 0x45, 0xbc, 0xeb, 0x42, 0x4c, 0x5e, 0x2b, 0xe1 }; + +/* Global variable definitions */ + +Erroneous_descriptor_t* template_m__NG__AUTHENTICATION__REQUEST_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_mw__NG__AUTHENTICATION__REQUEST_err_descr_ptr = NULL; +TTCN_Module module_object("Lib_NG_NAS_Templates", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("Lib_NG_NAS_Templates"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Templates::cdr__NG__GMM__Cap__ERNSSAI, "cdr_NG_GMM_Cap_ERNSSAI", "NG_GMM_Cap template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cdr__NG__GMM__Cap__RACS, "cdr_NG_GMM_Cap_RACS", "NG_GMM_Cap template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cdr__NG__GMM__Cap__S1, "cdr_NG_GMM_Cap_S1", "NG_GMM_Cap template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cds__NG__NetworkFeatureSupport__NoImsVoPS__3GPP, "cds_NG_NetworkFeatureSupport_NoImsVoPS_3GPP", "NG_NetworkFeatureSupport template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cds__NG__NetworkFeatureSupport__NoN26, "cds_NG_NetworkFeatureSupport_NoN26", "NG_NetworkFeatureSupport template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cr__AlwaysOnRequested, "cr_AlwaysOnRequested", "AlwaysOnPDUSessionInd template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cr__NG__CONFIGURATION__UPDATE__COMPLETE, "cr_NG_CONFIGURATION_UPDATE_COMPLETE", "NG_NAS_UL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&NG__NAS__Templates::cr__NG__DEREGISTRATION__ACCEPT, "cr_NG_DEREGISTRATION_ACCEPT", "NG_NAS_UL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&NG__NAS__Templates::cr__NG__GMM__CapAny, "cr_NG_GMM_CapAny", "NG_GMM_Cap template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cr__NSSAI__DELETE__RESPONSE, "cr_NSSAI_DELETE_RESPONSE", "NG_NAS_UL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&NG__NAS__Templates::cr__SET__UAI__RESPONSE, "cr_SET_UAI_RESPONSE", "NG_NAS_UL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&NG__NAS__Templates::cs__AlwaysOnAllowed, "cs_AlwaysOnAllowed", "AlwaysOnPDUSessionInd template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__AlwaysOnNotAllowed, "cs_AlwaysOnNotAllowed", "AlwaysOnPDUSessionInd template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__DummyEAP__Message, "cs_DummyEAP_Message", "EAP_Message template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__DummyPayloadContainer, "cs_DummyPayloadContainer", "PayloadContainer template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__EmptyCAGInfoList, "cs_EmptyCAGInfoList", "CAGInfoList template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__NG__DEREGISTRATION__ACCEPT, "cs_NG_DEREGISTRATION_ACCEPT", "NG_NAS_DL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&NG__NAS__Templates::cs__NG__NetworkFeatureSupport__Def, "cs_NG_NetworkFeatureSupport_Def", "NG_NetworkFeatureSupport template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__NSSAI__Allowed__Def, "cs_NSSAI_Allowed_Def", "NSSAI template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__PacketFilterList__1MatchAll, "cs_PacketFilterList_1MatchAll", "NG_PacketFilterList template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__QoSFlowDescr1, "cs_QoSFlowDescr1", "QoSFlowDescr template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__QoSFlowDescr2, "cs_QoSFlowDescr2", "QoSFlowDescr template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__QoS__Flow2a, "cs_QoS_Flow2a", "QoS_Flow template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__QoS__Flow3, "cs_QoS_Flow3", "QoS_Flow template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__QoS__Flow4, "cs_QoS_Flow4", "QoS_Flow template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__S__NSSAI__SST1eMBB, "cs_S_NSSAI_SST1eMBB", "S_NSSAI_LV template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__S__NSSAI__SST1eMBB__WithIEI, "cs_S_NSSAI_SST1eMBB_WithIEI", "S_NSSAI_Type template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__S__NSSAI__SST2__URLLC, "cs_S_NSSAI_SST2_URLLC", "S_NSSAI_LV template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__S__NSSAI__SST3__MIoT, "cs_S_NSSAI_SST3_MIoT", "S_NSSAI_LV template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Templates::cs__S__NSSAI__SST4__V2X, "cs_S_NSSAI_SST4_V2X", "S_NSSAI_LV template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Common::cr__NG__MobileIdentityNoIdentity, "cr_NG_MobileIdentityNoIdentity", "NG_MobileIdentity template", "NG_NAS_Common", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Common::tsc__DeleteNSSAI__AllowedNSSAI, "tsc_DeleteNSSAI_AllowedNSSAI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__DeleteNSSAI__ConfiguredNSSAI, "tsc_DeleteNSSAI_ConfiguredNSSAI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__DeleteNSSAI__DefaultConfiguredNSSAI, "tsc_DeleteNSSAI_DefaultConfiguredNSSAI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__EPD__GMM, "tsc_EPD_GMM", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__EPD__GSM, "tsc_EPD_GSM", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__GUTI, "tsc_IdType_NG_GUTI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__IMEI, "tsc_IdType_NG_IMEI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__IMEISV, "tsc_IdType_NG_IMEISV", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__Noidentity, "tsc_IdType_NG_Noidentity", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__STMSI, "tsc_IdType_NG_STMSI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__SUCI, "tsc_IdType_NG_SUCI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationFailure, "tsc_MT_NG_AuthenticationFailure", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationReject, "tsc_MT_NG_AuthenticationReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationRequest, "tsc_MT_NG_AuthenticationRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationResponse, "tsc_MT_NG_AuthenticationResponse", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationResult, "tsc_MT_NG_AuthenticationResult", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__CP__Service__Request, "tsc_MT_NG_CP_Service_Request", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ConfigurationUpdateCommand, "tsc_MT_NG_ConfigurationUpdateCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ConfigurationUpdateComplete, "tsc_MT_NG_ConfigurationUpdateComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DL__NASTransport, "tsc_MT_NG_DL_NASTransport", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DeregistrationAccept__MO, "tsc_MT_NG_DeregistrationAccept_MO", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DeregistrationAccept__MT, "tsc_MT_NG_DeregistrationAccept_MT", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DeregistrationRequest__MO, "tsc_MT_NG_DeregistrationRequest_MO", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DeregistrationRequest__MT, "tsc_MT_NG_DeregistrationRequest_MT", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__GMM__Status, "tsc_MT_NG_GMM_Status", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__GSM__Status, "tsc_MT_NG_GSM_Status", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__IdentityRequest, "tsc_MT_NG_IdentityRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__IdentityResponse, "tsc_MT_NG_IdentityResponse", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__NetworkSliceSpecificAuthenticationCommand, "tsc_MT_NG_NetworkSliceSpecificAuthenticationCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__NetworkSliceSpecificAuthenticationComplete, "tsc_MT_NG_NetworkSliceSpecificAuthenticationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__NetworkSliceSpecificAuthenticationResult, "tsc_MT_NG_NetworkSliceSpecificAuthenticationResult", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__Notification, "tsc_MT_NG_Notification", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__NotificationResponse, "tsc_MT_NG_NotificationResponse", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionAuthenticationCommand, "tsc_MT_NG_PDUSessionAuthenticationCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionAuthenticationComplete, "tsc_MT_NG_PDUSessionAuthenticationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionAuthenticationResult, "tsc_MT_NG_PDUSessionAuthenticationResult", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionEstablishmentAccept, "tsc_MT_NG_PDUSessionEstablishmentAccept", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionEstablishmentReject, "tsc_MT_NG_PDUSessionEstablishmentReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionEstablishmentRequest, "tsc_MT_NG_PDUSessionEstablishmentRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationCommand, "tsc_MT_NG_PDUSessionModificationCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationCommandReject, "tsc_MT_NG_PDUSessionModificationCommandReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationComplete, "tsc_MT_NG_PDUSessionModificationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationReject, "tsc_MT_NG_PDUSessionModificationReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationRequest, "tsc_MT_NG_PDUSessionModificationRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseCommand, "tsc_MT_NG_PDUSessionReleaseCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseComplete, "tsc_MT_NG_PDUSessionReleaseComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseReject, "tsc_MT_NG_PDUSessionReleaseReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseRequest, "tsc_MT_NG_PDUSessionReleaseRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__RegistrationAccept, "tsc_MT_NG_RegistrationAccept", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__RegistrationComplete, "tsc_MT_NG_RegistrationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__RegistrationReject, "tsc_MT_NG_RegistrationReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__RegistrationRequest, "tsc_MT_NG_RegistrationRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__SecurityModeCommand, "tsc_MT_NG_SecurityModeCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__SecurityModeComplete, "tsc_MT_NG_SecurityModeComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__SecurityModeReject, "tsc_MT_NG_SecurityModeReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ServiceAccept, "tsc_MT_NG_ServiceAccept", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ServiceReject, "tsc_MT_NG_ServiceReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ServiceRequest, "tsc_MT_NG_ServiceRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__UL__NASTransport, "tsc_MT_NG_UL_NASTransport", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MsgType__NSSAI__DeleteReq, "tsc_MsgType_NSSAI_DeleteReq", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MsgType__NSSAI__DeleteResp, "tsc_MsgType_NSSAI_DeleteResp", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MsgType__SetUAIReq, "tsc_MsgType_SetUAIReq", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MsgType__SetUAIResp, "tsc_MsgType_SetUAIResp", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegResult__3GPP, "tsc_NG_RegResult_3GPP", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegResult__Both, "tsc_NG_RegResult_Both", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegResult__Non3GPP, "tsc_NG_RegResult_Non3GPP", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationEmergency, "tsc_NG_RegistrationEmergency", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationInitial, "tsc_NG_RegistrationInitial", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationMobility, "tsc_NG_RegistrationMobility", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationPeriodic, "tsc_NG_RegistrationPeriodic", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationSNPN, "tsc_NG_RegistrationSNPN", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__TMSI1, "tsc_NG_TMSI1", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NR5GCCause__Congestion, "tsc_NR5GCCause_Congestion", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NR5GCCause__InvalidPDUSessionIdentity, "tsc_NR5GCCause_InvalidPDUSessionIdentity", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NR5GCCause__NoSuitableCellsInTA, "tsc_NR5GCCause_NoSuitableCellsInTA", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NR5GCCause__ServNetNotAuthorized, "tsc_NR5GCCause_ServNetNotAuthorized", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerCIoTUserData, "tsc_PayloadContainerCIoTUserData", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerLPPMsg, "tsc_PayloadContainerLPPMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerSMSMsg, "tsc_PayloadContainerSMSMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerSORMsg, "tsc_PayloadContainerSORMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerUEPolicyMsg, "tsc_PayloadContainerUEPolicyMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__5QI, "tsc_QoSFlowParameter_5QI", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__AvWindow, "tsc_QoSFlowParameter_AvWindow", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__EPSBearerId, "tsc_QoSFlowParameter_EPSBearerId", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__GFBR__DL, "tsc_QoSFlowParameter_GFBR_DL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__GFBR__UL, "tsc_QoSFlowParameter_GFBR_UL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__MFBR__DL, "tsc_QoSFlowParameter_MFBR_DL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__MFBR__UL, "tsc_QoSFlowParameter_MFBR_UL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::cdr__AuthFailParamGSM__Any, "cdr_AuthFailParamGSM_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cdr__MS__NetworkCapAss__lv, "cdr_MS_NetworkCapAss_lv", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__1__tlv, "cds_508_EPS_QoS_Default_1_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__3, "cds_508_EPS_QoS_Default_3", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI, "cds_EPS_QoS_Def_nonGBR_QCI", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI__tlv, "cds_EPS_QoS_Def_nonGBR_QCI_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__2, "cds_QoS_Negotiated_2", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__3, "cds_QoS_Negotiated_3", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__8, "cds_QoS_Negotiated_8", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AccessPointName__Any, "cr_AccessPointName_Any", "AccessPointName template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AdditionalUpdateTypeAny, "cr_AdditionalUpdateTypeAny", "AdditionalUpdateType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AuthFailParam__Any, "cr_AuthFailParam_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecAny, "cr_CodecAny", "Codec template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecListAny, "cr_CodecListAny", "CodecList template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__DetachTypeOnSwitchOff, "cr_DetachTypeOnSwitchOff", "DetachType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__EDGE__Struct__Any, "cr_EDGE_Struct_Any", "EDGE_Struct template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdDRXParamsAny, "cr_ExtdDRXParamsAny", "ExtdDRXParams template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdPCOAny, "cr_ExtdPCOAny", "ExtdProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__Extd__EPS__QOS__Any, "cr_Extd_EPS_QOS_Any", "Extd_EPS_QOS template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any, "cr_LAI_Any", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any__v, "cr_LAI_Any_v", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MSCLSMK3__Any, "cr_MSCLSMK3_Any", "MS_Clsmk3 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__Clsmk2__Any, "cr_MS_Clsmk2_Any", "MS_Clsmk2 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__MeasCapability__Any, "cr_MS_MeasCapability_Any", "MS_MeasCapability template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__NetworkCap__Any, "cr_MS_NetworkCap_Any", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__NBIFOMContainerAny, "cr_NBIFOMContainerAny", "NBIFOMContainer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__Signature2Any, "cr_PTMSI_Signature2Any", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__SignatureAny, "cr_PTMSI_SignatureAny", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ProtocolConfigOptionsAny, "cr_ProtocolConfigOptionsAny", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__UEStatus__Any, "cr_UEStatus_Any", "UE_Status template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__VoiceDomainPref__Any, "cr_VoiceDomainPref_Any", "VoiceDomainPref template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WUSAssistInfoAny, "cr_WUSAssistInfoAny", "WUSAssistInfo template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WusInfoTypeAny, "cr_WusInfoTypeAny", "WusInfoType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__508__EPS__QoS__Default__1, "cs_508_EPS_QoS_Default_1", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__GprsTimer__v__deact, "cs_GprsTimer_v_deact", "GPRS_Timer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMP, "cs_PktFilterCompProtocolIdNextHeaderICMP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMPv6, "cs_PktFilterCompProtocolIdNextHeaderICMPv6", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderIPSec, "cs_PktFilterCompProtocolIdNextHeaderIPSec", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderTCP, "cs_PktFilterCompProtocolIdNextHeaderTCP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderUDP, "cs_PktFilterCompProtocolIdNextHeaderUDP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFlowId, "cs_PktFlowId", "PacketFlowIdentifier template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__ProtocolConfigOptions__PPP, "cs_ProtocolConfigOptions_PPP", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__QoS__Negotiated__1, "cs_QoS_Negotiated_1", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1, "tsc_APN1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1__String, "tsc_APN1_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2, "tsc_APN2", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2__String, "tsc_APN2_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3, "tsc_APN3", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3__String, "tsc_APN3_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__MAC__Failure, "tsc_Cause_MAC_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__NoNetworkSlices__Available, "tsc_Cause_NoNetworkSlices_Available", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowed, "tsc_Cause_PLMN_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation, "tsc_Cause_PLMN_NotAllowedToOperateAtPresentUELocation", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__Roaming__NotAllowed, "tsc_Cause_Roaming_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__SQN__Failure, "tsc_Cause_SQN_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__TA__NotAllowed, "tsc_Cause_TA_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__nonEPS__AuthUnacceptable, "tsc_Cause_nonEPS_AuthUnacceptable", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__ConsecutiveTacs, "tsc_ConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalMe, "tsc_EmmCause_IllegalMe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalUe, "tsc_EmmCause_IllegalUe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__SemanticallyIncorrect, "tsc_EmmCause_SemanticallyIncorrect", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__1min, "tsc_Gprs3TimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__30sec, "tsc_Gprs3TimerUnit_30sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__1min, "tsc_GprsTimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__2sec, "tsc_GprsTimerUnit_2sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__6min, "tsc_GprsTimerUnit_6min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__deact, "tsc_GprsTimerUnit_deact", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IMEISV__Requested, "tsc_IMEISV_Requested", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv4Mask, "tsc_IPv4Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv6Mask, "tsc_IPv6Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__GUTI, "tsc_IdType_GUTI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI, "tsc_IdType_IMEI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEISV, "tsc_IdType_IMEISV", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI__24301, "tsc_IdType_IMEI_24301", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMSI, "tsc_IdType_IMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__TMSI, "tsc_IdType_TMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__MultiplePlmns, "tsc_MultiplePlmns", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__MappedSecurityContext, "tsc_NasKsi_MappedSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NativeSecurityContext, "tsc_NasKsi_NativeSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NoKey, "tsc_NasKsi_NoKey", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NoValidTmsi, "tsc_NoValidTmsi", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NonConsecutiveTacs, "tsc_NonConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6, "tsc_PCO_Id_DSMIPv6", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6__IPv4, "tsc_PCO_Id_DSMIPv6_IPv4", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__1, "tsc_PTI_1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__Unassigned, "tsc_PTI_Unassigned", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PayloadContainerESMMsg, "tsc_PayloadContainerESMMsg", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4, "tsc_PdnType_IPv4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4v6, "tsc_PdnType_IPv4v6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv6, "tsc_PdnType_IPv6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected, "tsc_SHT_IntegrityProtected", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered, "tsc_SHT_IntegrityProtected_Ciphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext, "tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__NewSecurityContext, "tsc_SHT_IntegrityProtected_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__PartiallyCiphered, "tsc_SHT_IntegrityProtected_PartiallyCiphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__NoSecurityProtection, "tsc_SHT_NoSecurityProtection", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare1, "tsc_Spare1", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare2, "tsc_Spare2", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare3, "tsc_Spare3", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare4, "tsc_Spare4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare5, "tsc_Spare5", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare6, "tsc_Spare6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare7, "tsc_Spare7", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SpareHalfOctet, "tsc_SpareHalfOctet", "hexstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); +} + +/* Bodies of functions, altsteps and testcases */ + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template m__NG__AUTHENTICATION__REQUEST(const BITSTRING& p__KeySetId, const NG__NAS__TypeDefs::ABBA_template& p__ABBA, const NAS__CommonTypeDefs::RAND_template& p__RAND, const NAS__CommonTypeDefs::AUTN_template& p__AUTN, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib_NG_NAS/Lib_NG_NAS_Templates.ttcn", 16, TTCN_Location::LOCATION_TEMPLATE, "m_NG_AUTHENTICATION_REQUEST"); +charstring_list param_names; +param_names[0] = "p_KeySetId"; +param_names[1] = "p_ABBA"; +param_names[2] = "p_RAND"; +param_names[3] = "p_AUTN"; +param_names[4] = "p_EAP"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("m_NG_AUTHENTICATION_REQUEST", "template", "Lib_NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__KeySetId, "p_KeySetId", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ABBA, "p_ABBA", "ABBA template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RAND, "p_RAND", "RAND template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__AUTN, "p_AUTN", "AUTN template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val(NG__NAS__Templates::cs__NG__AUTHENTICATION__REQUEST(p__KeySetId, p__ABBA, p__RAND, p__AUTN, p__EAP)); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_m__NG__AUTHENTICATION__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template mw__NG__AUTHENTICATION__REQUEST(const BITSTRING_template& p__KeySetId, const NG__NAS__TypeDefs::ABBA_template& p__ABBA, const NAS__CommonTypeDefs::RAND_template& p__RAND, const NAS__CommonTypeDefs::AUTN_template& p__AUTN, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib_NG_NAS/Lib_NG_NAS_Templates.ttcn", 27, TTCN_Location::LOCATION_TEMPLATE, "mw_NG_AUTHENTICATION_REQUEST"); +charstring_list param_names; +param_names[0] = "p_KeySetId"; +param_names[1] = "p_ABBA"; +param_names[2] = "p_RAND"; +param_names[3] = "p_AUTN"; +param_names[4] = "p_EAP"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("mw_NG_AUTHENTICATION_REQUEST", "template", "Lib_NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__KeySetId, "p_KeySetId", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ABBA, "p_ABBA", "ABBA template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RAND, "p_RAND", "RAND template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__AUTN, "p_AUTN", "AUTN template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template& tmp_0 = ret_val.authentication__Request(); +tmp_0.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_0.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_0.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_0.messageType() = NG__NAS__Common::tsc__MT__NG__AuthenticationRequest; +tmp_0.spareHalfOctet2() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_0.ngNasKeySetId() = NAS__CommonTemplates::cr__NAS__KeySetIdentifier(p__KeySetId, BITSTRING_template(NAS__CommonTemplates::tsc__NasKsi__NativeSecurityContext)); +tmp_0.abba() = p__ABBA; +tmp_0.rand() = p__RAND; +tmp_0.autn() = p__AUTN; +tmp_0.eapMessage() = p__EAP; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_mw__NG__AUTHENTICATION__REQUEST_err_descr_ptr); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib_NG_NAS/Lib_NG_NAS_Templates.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Lib_NG_NAS_Templates"); +Lib__NG__NAS__Templates::init_ttcn3_debugger(); +NG__NAS__Templates::module_object.pre_init_module(); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib_NG_NAS/Lib_NG_NAS_Templates.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Lib_NG_NAS_Templates"); +NG__NAS__Templates::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/Lib_NG_NAS_Templates.hh b/build/Ats_NG_NAS/Lib_NG_NAS_Templates.hh new file mode 100644 index 0000000000000000000000000000000000000000..3987084c7e856600f3b11752d0d133c3079382fb --- /dev/null +++ b/build/Ats_NG_NAS/Lib_NG_NAS_Templates.hh @@ -0,0 +1,47 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef Lib__NG__NAS__Templates_HH +#define Lib__NG__NAS__Templates_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NG_NAS_Templates.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace Lib__NG__NAS__Templates { + +/* Function prototypes */ + +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template m__NG__AUTHENTICATION__REQUEST(const BITSTRING& p__KeySetId, const NG__NAS__TypeDefs::ABBA_template& p__ABBA, const NAS__CommonTypeDefs::RAND_template& p__RAND, const NAS__CommonTypeDefs::AUTN_template& p__AUTN, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template mw__NG__AUTHENTICATION__REQUEST(const BITSTRING_template& p__KeySetId, const NG__NAS__TypeDefs::ABBA_template& p__ABBA, const NAS__CommonTypeDefs::RAND_template& p__RAND, const NAS__CommonTypeDefs::AUTN_template& p__AUTN, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP); + +/* Global variable declarations */ + +extern Erroneous_descriptor_t* template_m__NG__AUTHENTICATION__REQUEST_err_descr_ptr; +extern Erroneous_descriptor_t* template_mw__NG__AUTHENTICATION__REQUEST_err_descr_ptr; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/Lib_NG_NAS_Templates.o b/build/Ats_NG_NAS/Lib_NG_NAS_Templates.o new file mode 100644 index 0000000000000000000000000000000000000000..a5bb4c3b0e86fd763f048294d6e949d06ce7003b Binary files /dev/null and b/build/Ats_NG_NAS/Lib_NG_NAS_Templates.o differ diff --git a/build/Ats_NG_NAS/LoopbackIP.cc b/build/Ats_NG_NAS/LoopbackIP.cc new file mode 100644 index 0000000000000000000000000000000000000000..de60a544ff35bff4ea0df48a28f5c19201eb55aa --- /dev/null +++ b/build/Ats_NG_NAS/LoopbackIP.cc @@ -0,0 +1,3350 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "LoopbackIP.hh" + +namespace LoopbackIP { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char bs_0_bits[] = { 2 }, +bs_1_bits[] = { 6 }; +static const BITSTRING bs_0(4, bs_0_bits), +bs_1(4, bs_1_bits); +static const unsigned char os_1_octets[] = { 0 }, +os_3_octets[] = { 0, 0 }, +os_7_octets[] = { 0, 0, 0 }, +os_9_octets[] = { 0, 0, 0, 0 }, +os_12_octets[] = { 0, 0, 0, 1 }, +os_11_octets[] = { 0, 0, 1, 0 }, +os_13_octets[] = { 0, 1 }, +os_8_octets[] = { 6 }, +os_14_octets[] = { 16 }, +os_5_octets[] = { 17 }, +os_2_octets[] = { 69 }, +os_10_octets[] = { 80, 17 }, +os_0_octets[] = { 109, 125 }, +os_4_octets[] = { 128 }; +static const OCTETSTRING os_6(0, NULL), +os_1(1, os_1_octets), +os_3(2, os_3_octets), +os_7(3, os_7_octets), +os_9(4, os_9_octets), +os_12(4, os_12_octets), +os_11(4, os_11_octets), +os_13(2, os_13_octets), +os_8(1, os_8_octets), +os_14(1, os_14_octets), +os_5(1, os_5_octets), +os_2(1, os_2_octets), +os_10(2, os_10_octets), +os_0(2, os_0_octets), +os_4(1, os_4_octets); +static const CHARSTRING cs_0(0, NULL); +static const unsigned char module_checksum[] = { 0x9f, 0x22, 0x6c, 0xdf, 0xea, 0x9d, 0x2a, 0xf3, 0x71, 0x64, 0x0b, 0x92, 0x84, 0x9e, 0xa0, 0x5e }; + +/* Global variable definitions */ + +// No XER for DataPathCheck__BearerType__Type +const TTCN_Typedescriptor_t DataPathCheck__BearerType__Type_descr_ = { "@LoopbackIP.DataPathCheck_BearerType_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +BOOLEAN const_f__LoopbackModeB__IP__Address__UE_p__UseIPv4_defval; +const BOOLEAN& f__LoopbackModeB__IP__Address__UE_p__UseIPv4_defval = const_f__LoopbackModeB__IP__Address__UE_p__UseIPv4_defval; +CommonDefs::PDN__Index__Type const_f__LoopbackModeB__IP__Address__UE_p__PdnIndex_defval; +const CommonDefs::PDN__Index__Type& f__LoopbackModeB__IP__Address__UE_p__PdnIndex_defval = const_f__LoopbackModeB__IP__Address__UE_p__PdnIndex_defval; +BOOLEAN const_f__LoopbackModeB__IP__Address__NW_p__UseIPv4_defval; +const BOOLEAN& f__LoopbackModeB__IP__Address__NW_p__UseIPv4_defval = const_f__LoopbackModeB__IP__Address__NW_p__UseIPv4_defval; +CommonDefs::PDN__Index__Type const_f__LoopbackModeB__IP__Address__NW_p__PdnIndex_defval; +const CommonDefs::PDN__Index__Type& f__LoopbackModeB__IP__Address__NW_p__PdnIndex_defval = const_f__LoopbackModeB__IP__Address__NW_p__PdnIndex_defval; +OCTETSTRING const_f__IPv4Packet__Create_p__Identification_defval; +const OCTETSTRING& f__IPv4Packet__Create_p__Identification_defval = const_f__IPv4Packet__Create_p__Identification_defval; +OCTETSTRING const_f__IPv4Packet__Create_p__TOS_defval; +const OCTETSTRING& f__IPv4Packet__Create_p__TOS_defval = const_f__IPv4Packet__Create_p__TOS_defval; +INTEGER const_fl__IPv4IPv6__IcmpEchoRequestReply_p__MaxPayloadSize_defval; +const INTEGER& fl__IPv4IPv6__IcmpEchoRequestReply_p__MaxPayloadSize_defval = const_fl__IPv4IPv6__IcmpEchoRequestReply_p__MaxPayloadSize_defval; +CHARSTRING const_f__IPv4IPv6__IcmpEchoReply_p__DestAddr_defval; +const CHARSTRING& f__IPv4IPv6__IcmpEchoReply_p__DestAddr_defval = const_f__IPv4IPv6__IcmpEchoReply_p__DestAddr_defval; +INTEGER const_f__IPv4IPv6__IcmpEchoReply_p__SequenceNumber_defval; +const INTEGER& f__IPv4IPv6__IcmpEchoReply_p__SequenceNumber_defval = const_f__IPv4IPv6__IcmpEchoReply_p__SequenceNumber_defval; +OCTETSTRING const_f__IPv4IPv6__AnyUdpPacket_p__Payload_defval; +const OCTETSTRING& f__IPv4IPv6__AnyUdpPacket_p__Payload_defval = const_f__IPv4IPv6__AnyUdpPacket_p__Payload_defval; +const XERdescriptor_t IPv4IPv6PacketInfo__Type_Protocol_xer_ = { {"Protocol>\n", "Protocol>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IPv4IPv6PacketInfo__Type_Protocol_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_Protocol_descr_ = { "@LoopbackIP.IPv4IPv6PacketInfo_Type.Protocol", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &IPv4IPv6PacketInfo__Type_Protocol_xer_, &INTEGER_json_, &IPv4IPv6PacketInfo__Type_Protocol_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPv4IPv6PacketInfo__Type_SourceAddr_xer_ = { {"SourceAddr>\n", "SourceAddr>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_SourceAddr_descr_ = { "@LoopbackIP.IPv4IPv6PacketInfo_Type.SourceAddr", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &IPv4IPv6PacketInfo__Type_SourceAddr_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPv4IPv6PacketInfo__Type_DestAddr_xer_ = { {"DestAddr>\n", "DestAddr>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_DestAddr_descr_ = { "@LoopbackIP.IPv4IPv6PacketInfo_Type.DestAddr", NULL, &CHARSTRING_raw_, &CHARSTRING_text_, &IPv4IPv6PacketInfo__Type_DestAddr_xer_, &CHARSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPv4IPv6PacketInfo__Type_Payload_xer_ = { {"Payload>\n", "Payload>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IPv4IPv6PacketInfo__Type_Payload_oer_ext_arr_[0] = {}; +const int IPv4IPv6PacketInfo__Type_Payload_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IPv4IPv6PacketInfo__Type_Payload_oer_ = { -1, TRUE, -1, FALSE, 0, 0, IPv4IPv6PacketInfo__Type_Payload_oer_ext_arr_, 0, IPv4IPv6PacketInfo__Type_Payload_oer_p_}; +const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_Payload_descr_ = { "@LoopbackIP.IPv4IPv6PacketInfo_Type.Payload", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &IPv4IPv6PacketInfo__Type_Payload_xer_, &OCTETSTRING_json_, &IPv4IPv6PacketInfo__Type_Payload_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IPv4IPv6PacketInfo__Type +const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_descr_ = { "@LoopbackIP.IPv4IPv6PacketInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +BOOLEAN const_f__LoopbackModeBorPing__CheckDataRX_p__CheckPING_defval; +const BOOLEAN& f__LoopbackModeBorPing__CheckDataRX_p__CheckPING_defval = const_f__LoopbackModeBorPing__CheckDataRX_p__CheckPING_defval; +BOOLEAN const_f__LoopbackModeBorPing__GetDataTX_p__CheckPING_defval; +const BOOLEAN& f__LoopbackModeBorPing__GetDataTX_p__CheckPING_defval = const_f__LoopbackModeBorPing__GetDataTX_p__CheckPING_defval; +TTCN_Module module_object("LoopbackIP", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_LoopbackIP(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "DataPathCheck_BearerType_Type")) { + ((const DataPathCheck__BearerType__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DataPathCheck_BearerType_Type template")) { + ((const DataPathCheck__BearerType__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IPv4IPv6PacketInfo_Type")) { + ((const IPv4IPv6PacketInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IPv4IPv6PacketInfo_Type template")) { + ((const IPv4IPv6PacketInfo__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_LoopbackIP(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "DataPathCheck_BearerType_Type")) { + ((DataPathCheck__BearerType__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DataPathCheck_BearerType_Type template")) { + ((DataPathCheck__BearerType__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IPv4IPv6PacketInfo_Type")) { + ((IPv4IPv6PacketInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IPv4IPv6PacketInfo_Type template")) { + ((IPv4IPv6PacketInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("LoopbackIP"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoReply, "tsc_ICMP_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoRequest, "tsc_ICMP_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoReply, "tsc_ICMPv6_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoRequest, "tsc_ICMPv6_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M1, "tsc_IMS_MediaPort_M1", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M2, "tsc_IMS_MediaPort_M2", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M3, "tsc_IMS_MediaPort_M3", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__PortNumber__5060, "tsc_IMS_PortNumber_5060", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__AnyData, "tsc_IP_AnyData", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMP, "tsc_IP_Protocol_ICMP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMPv6, "tsc_IP_Protocol_ICMPv6", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__IPSec, "tsc_IP_Protocol_IPSec", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__TCP, "tsc_IP_Protocol_TCP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__UDP, "tsc_IP_Protocol_UDP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__MulticastPrefix__FF02, "tsc_MulticastPrefix_FF02", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PDN1__AddressInfo, "tsc_PDN1_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN2__AddressInfo, "tsc_PDN2_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN3__AddressInfo, "tsc_PDN3_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN4__AddressInfo, "tsc_PDN4_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN5__AddressInfo, "tsc_PDN5_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN6__AddressInfo, "tsc_PDN6_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN__AddressInfo, "tsc_PDN_AddressInfo", "PDN_AddressInfo_Type[6]", "CommonIP", TTCN3_Debugger::print_value_array); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTP, "tsc_PortNumberHTTP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTPS, "tsc_PortNumberHTTPS", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xCSfallback, "pc_1xCSfallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xRTT, "pc_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__A5__4__CS, "pc_A5_4_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__Default__Configuration, "pc_APN_Default_Configuration", "APN_DefaultConfiguration_Type", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::pc__APN__ID__Ethernet, "pc_APN_ID_Ethernet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__IMS, "pc_APN_ID_IMS", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__Internet, "pc_APN_ID_Internet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__MIOT, "pc_APN_ID_MIOT", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__URLLC, "pc_APN_ID_URLLC", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__V2X, "pc_APN_ID_V2X", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Allowed__CSG__list, "pc_Allowed_CSG_list", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Attach, "pc_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Auto__PDN__Connectivity, "pc_Auto_PDN_Connectivity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__EPS__Re__Attach, "pc_Automatic_EPS_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__Re__Attach, "pc_Automatic_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Available__PLMNs__AcT__Ind, "pc_Available_PLMNs_AcT_Ind", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__BSRVCC, "pc_BSRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CMAS__Message, "pc_CMAS_Message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS, "pc_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__1xRTT, "pc_CS_Em_Call_in_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__GERAN, "pc_CS_Em_Call_in_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__UTRA, "pc_CS_Em_Call_in_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Fallback, "pc_CS_Fallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__data__centric, "pc_CS_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__voice__centric, "pc_CS_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Combined__Attach, "pc_Combined_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DSMIPv6, "pc_DSMIPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DaylightSavingTime, "pc_DaylightSavingTime", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DualRM__Coding, "pc_DualRM_Coding", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB, "pc_EAB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB__override, "pc_EAB_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EDTM, "pc_EDTM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EMM__Information, "pc_EMM_Information", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPC__RACS, "pc_EPC_RACS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__IMS__EmergencyCall, "pc_EPS_IMS_EmergencyCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__Services__Disable, "pc_EPS_Services_Disable", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Allocation, "pc_ESM_MO_Bearer_Allocation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Modification, "pc_ESM_MO_Bearer_Modification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__Notification, "pc_ESM_Notification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__UE__Modification__NW__TFT, "pc_ESM_UE_Modification_NW_TFT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ETWS__message, "pc_ETWS_message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRAN__2__GERAN__PSHO, "pc_E_UTRAN_2_GERAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRA__WLAN__offload, "pc_E_UTRA_WLAN_offload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EmergSpeech, "pc_EmergSpeech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FDD, "pc_FDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__F, "pc_FeatrGrp_101_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__T, "pc_FeatrGrp_101_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__F, "pc_FeatrGrp_102_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__T, "pc_FeatrGrp_102_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__F, "pc_FeatrGrp_103_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__T, "pc_FeatrGrp_103_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__F, "pc_FeatrGrp_104_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__T, "pc_FeatrGrp_104_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__F, "pc_FeatrGrp_105_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__T, "pc_FeatrGrp_105_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__F, "pc_FeatrGrp_106_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__T, "pc_FeatrGrp_106_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__F, "pc_FeatrGrp_107_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__T, "pc_FeatrGrp_107_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__F, "pc_FeatrGrp_108_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__T, "pc_FeatrGrp_108_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__F, "pc_FeatrGrp_109_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__T, "pc_FeatrGrp_109_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__F, "pc_FeatrGrp_10_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__T, "pc_FeatrGrp_10_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__F, "pc_FeatrGrp_110_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__T, "pc_FeatrGrp_110_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__F, "pc_FeatrGrp_111_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__T, "pc_FeatrGrp_111_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__F, "pc_FeatrGrp_112_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__T, "pc_FeatrGrp_112_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__F, "pc_FeatrGrp_113_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__T, "pc_FeatrGrp_113_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__F, "pc_FeatrGrp_114_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__T, "pc_FeatrGrp_114_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__F, "pc_FeatrGrp_115_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__T, "pc_FeatrGrp_115_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__F, "pc_FeatrGrp_116_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__T, "pc_FeatrGrp_116_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__F, "pc_FeatrGrp_11_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__T, "pc_FeatrGrp_11_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__F, "pc_FeatrGrp_12_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__T, "pc_FeatrGrp_12_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__F, "pc_FeatrGrp_13_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__T, "pc_FeatrGrp_13_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__F, "pc_FeatrGrp_14_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__T, "pc_FeatrGrp_14_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__F, "pc_FeatrGrp_15_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__T, "pc_FeatrGrp_15_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__F, "pc_FeatrGrp_16_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__T, "pc_FeatrGrp_16_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__F, "pc_FeatrGrp_17_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__T, "pc_FeatrGrp_17_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__F, "pc_FeatrGrp_18_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__T, "pc_FeatrGrp_18_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__F, "pc_FeatrGrp_19_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__T, "pc_FeatrGrp_19_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__F, "pc_FeatrGrp_1_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__T, "pc_FeatrGrp_1_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__F, "pc_FeatrGrp_20_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__T, "pc_FeatrGrp_20_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__F, "pc_FeatrGrp_21_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__T, "pc_FeatrGrp_21_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__F, "pc_FeatrGrp_22_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__T, "pc_FeatrGrp_22_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__F, "pc_FeatrGrp_23_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__T, "pc_FeatrGrp_23_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__F, "pc_FeatrGrp_24_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__T, "pc_FeatrGrp_24_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__F, "pc_FeatrGrp_25_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__T, "pc_FeatrGrp_25_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__F, "pc_FeatrGrp_26_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__T, "pc_FeatrGrp_26_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__F, "pc_FeatrGrp_27_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__T, "pc_FeatrGrp_27_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__F, "pc_FeatrGrp_28_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__T, "pc_FeatrGrp_28_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__F, "pc_FeatrGrp_29_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__T, "pc_FeatrGrp_29_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__F, "pc_FeatrGrp_2_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__T, "pc_FeatrGrp_2_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__F, "pc_FeatrGrp_30_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__T, "pc_FeatrGrp_30_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__F, "pc_FeatrGrp_31_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__T, "pc_FeatrGrp_31_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__F, "pc_FeatrGrp_33_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__T, "pc_FeatrGrp_33_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__F, "pc_FeatrGrp_34_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__T, "pc_FeatrGrp_34_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__F, "pc_FeatrGrp_35_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__T, "pc_FeatrGrp_35_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__F, "pc_FeatrGrp_36_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__T, "pc_FeatrGrp_36_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__F, "pc_FeatrGrp_37_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__T, "pc_FeatrGrp_37_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__F, "pc_FeatrGrp_38_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__T, "pc_FeatrGrp_38_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__F, "pc_FeatrGrp_39_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__T, "pc_FeatrGrp_39_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__F, "pc_FeatrGrp_3_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__T, "pc_FeatrGrp_3_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__F, "pc_FeatrGrp_40_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__T, "pc_FeatrGrp_40_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__F, "pc_FeatrGrp_41_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__T, "pc_FeatrGrp_41_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__F, "pc_FeatrGrp_42_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__T, "pc_FeatrGrp_42_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__F, "pc_FeatrGrp_4_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__T, "pc_FeatrGrp_4_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__F, "pc_FeatrGrp_5_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__T, "pc_FeatrGrp_5_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__F, "pc_FeatrGrp_6_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__T, "pc_FeatrGrp_6_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__F, "pc_FeatrGrp_7_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__T, "pc_FeatrGrp_7_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__F, "pc_FeatrGrp_8_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__T, "pc_FeatrGrp_8_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__F, "pc_FeatrGrp_9_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__T, "pc_FeatrGrp_9_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FullNameNetwork, "pc_FullNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN, "pc_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__PSHO, "pc_GERAN_2_E_UTRAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__meas, "pc_GERAN_2_E_UTRAN_meas", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__measreporting__CCN, "pc_GERAN_2_E_UTRAN_measreporting_CCN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eFDD, "pc_HO_from_UTRA_to_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eTDD, "pc_HO_from_UTRA_to_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HRPD, "pc_HRPD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS, "pc_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMSI__Detach, "pc_IMSI_Detach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__APN__default, "pc_IMS_APN_default", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCC, "pc_IMS_CS_PS_SRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCAlert, "pc_IMS_CS_PS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCMidCall, "pc_IMS_CS_PS_SRVCCMidCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__SRVCCAlert, "pc_IMS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__emergency__call, "pc_IMS_emergency_call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv4, "pc_IPv4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv6, "pc_IPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ISR, "pc_ISR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ImmConnect, "pc_ImmConnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__InterFreq__ProximityIndication, "pc_InterFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IntraFreq__ProximityIndication, "pc_IntraFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__KeepEpsBearerParametersAfterNormalDetach, "pc_KeepEpsBearerParametersAfterNormalDetach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP, "pc_LAP", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP__override, "pc_LAP_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LocalTimeZone, "pc_LocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LoggedMeasurementsIdle, "pc_LoggedMeasurementsIdle", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Manual__CSG__Selection, "pc_Manual_CSG_Selection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Multiple__PDN, "pc_Multiple_PDN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v1__0, "pc_NG114_v1_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v2__0, "pc_NG114_v2_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG__RAN__NR, "pc_NG_RAN_NR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NR__5GC__EmergencyServices, "pc_NR_5GC_EmergencyServices", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__No__USIM__TestExecution, "pc_No_USIM_TestExecution", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__Manual__Mode__Exception, "pc_PLMN_Manual_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS, "pc_PS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__data__centric, "pc_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__voice__centric, "pc_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PWS__UpperLayer, "pc_PWS_UpperLayer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ProvideDST__inUse, "pc_ProvideDST_inUse", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__APN, "pc_Provide_IMS_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__as__second__APN, "pc_Provide_IMS_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__Internet__as__second__APN, "pc_Provide_Internet_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RLF__ReportForInterRAT__MRO, "pc_RLF_ReportForInterRAT_MRO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0001, "pc_ROHC_profile0x0001", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0002, "pc_ROHC_profile0x0002", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0003, "pc_ROHC_profile0x0003", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0004, "pc_ROHC_profile0x0004", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0006, "pc_ROHC_profile0x0006", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0101, "pc_ROHC_profile0x0101", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0102, "pc_ROHC_profile0x0102", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0103, "pc_ROHC_profile0x0103", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0104, "pc_ROHC_profile0x0104", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Rach__Report, "pc_Rach_Report", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Re__Attach__AfterDetachColl, "pc_Re_Attach_AfterDetachColl", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv4HAAddress__DuringAttach, "pc_RequestIPv4HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv6HAAddress__DuringAttach, "pc_RequestIPv6HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__UMTS__Autonomous__Gaps, "pc_SI_Neighbour_UMTS_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__interFreq__Autonomous__Gaps, "pc_SI_Neighbour_interFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__intraFreq__Autonomous__Gaps, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs, "pc_SMS_SGs", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MO, "pc_SMS_SGs_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MT, "pc_SMS_SGs_MT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__Multi__MO, "pc_SMS_SGs_Multi_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SRVCC__GERAN__UTRAN, "pc_SRVCC_GERAN_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Semi__Persistence__Scheduling, "pc_Semi_Persistence_Scheduling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ShortNameNetwork, "pc_ShortNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Speech, "pc_Speech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__StandaloneGNSS__Location, "pc_StandaloneGNSS_Location", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SupportOpModeA, "pc_SupportOpModeA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SwitchOnOff, "pc_SwitchOnOff", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__connected__in__IMS, "pc_TAU_connected_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__idle__in__IMS, "pc_TAU_idle_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__HCR, "pc_TDD_HCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__LCR, "pc_TDD_LCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__VHCR, "pc_TDD_VHCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TTI__Bundling, "pc_TTI_Bundling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TestModeforCSGproximity, "pc_TestModeforCSGproximity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UE__supports__user__initiated__PDN__disconnect, "pc_UE_supports_user_initiated_PDN_disconnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UL__MIMO, "pc_UL_MIMO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMI__ProcNeeded__DuringCSFB, "pc_UMI_ProcNeeded_DuringCSFB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMTS__GSM, "pc_UMTS_GSM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__USIM__Removal, "pc_USIM_Removal", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA, "pc_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ANR, "pc_UTRAN_ANR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ProximityIndication, "pc_UTRAN_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__1, "pc_UTRA_FeatrGrp_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__2, "pc_UTRA_FeatrGrp_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__3, "pc_UTRA_FeatrGrp_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__4, "pc_UTRA_FeatrGrp_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeAssistedAgps, "pc_UeAssistedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeBasedAgps, "pc_UeBasedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UniversalAndLocalTimeZone, "pc_UniversalAndLocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UpdateUE__LocationInformation, "pc_UpdateUE_LocationInformation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UserInitiatedPLMN__Reselection, "pc_UserInitiatedPLMN_Reselection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__VoLTE, "pc_VoLTE", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__Imm__MDT, "pc_WLAN_Meas_Imm_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__logged__MDT, "pc_WLAN_Meas_logged_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__voice, "pc_WLAN_voice", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__only__APN, "pc_XCAP_only_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__over__Internet__APN, "pc_XCAP_over_Internet_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ZUC, "pc_ZUC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eCall__Test__Call, "pc_eCall_Test_Call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD, "pc_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD__MultiBand, "pc_eFDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS, "pc_eMBMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS__SC, "pc_eMBMS_SC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMinimumPeriodicSearchTimer, "pc_eMinimumPeriodicSearchTimer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eRedirectionUTRA, "pc_eRedirectionUTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD, "pc_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD__MultiBand, "pc_eTDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eWLAN, "pc_eWLAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__multipleTimingAdvance, "pc_multipleTimingAdvance", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__0, "pc_ue_CategoryDL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__10, "pc_ue_CategoryDL_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__11, "pc_ue_CategoryDL_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__12, "pc_ue_CategoryDL_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__13, "pc_ue_CategoryDL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__14, "pc_ue_CategoryDL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__15, "pc_ue_CategoryDL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__16, "pc_ue_CategoryDL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__17, "pc_ue_CategoryDL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__18, "pc_ue_CategoryDL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__19, "pc_ue_CategoryDL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__1bis, "pc_ue_CategoryDL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__20, "pc_ue_CategoryDL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__21, "pc_ue_CategoryDL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__22, "pc_ue_CategoryDL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__23, "pc_ue_CategoryDL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__24, "pc_ue_CategoryDL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__25, "pc_ue_CategoryDL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__26, "pc_ue_CategoryDL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__4, "pc_ue_CategoryDL_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__6, "pc_ue_CategoryDL_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__7, "pc_ue_CategoryDL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__9, "pc_ue_CategoryDL_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M1, "pc_ue_CategoryDL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M2, "pc_ue_CategoryDL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__0, "pc_ue_CategoryUL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__13, "pc_ue_CategoryUL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__14, "pc_ue_CategoryUL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__15, "pc_ue_CategoryUL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__16, "pc_ue_CategoryUL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__17, "pc_ue_CategoryUL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__18, "pc_ue_CategoryUL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__19, "pc_ue_CategoryUL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__1bis, "pc_ue_CategoryUL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__20, "pc_ue_CategoryUL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__21, "pc_ue_CategoryUL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__22, "pc_ue_CategoryUL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__23, "pc_ue_CategoryUL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__24, "pc_ue_CategoryUL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__25, "pc_ue_CategoryUL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__26, "pc_ue_CategoryUL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__3, "pc_ue_CategoryUL_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__5, "pc_ue_CategoryUL_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__7, "pc_ue_CategoryUL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__8, "pc_ue_CategoryUL_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M1, "pc_ue_CategoryUL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M2, "pc_ue_CategoryUL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__1, "pc_ue_Category_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__10, "pc_ue_Category_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__11, "pc_ue_Category_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__12, "pc_ue_Category_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__2, "pc_ue_Category_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__3, "pc_ue_Category_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__4, "pc_ue_Category_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__5, "pc_ue_Category_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__6, "pc_ue_Category_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__7, "pc_ue_Category_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__8, "pc_ue_Category_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__9, "pc_ue_Category_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voiceOverNR, "pc_voiceOverNR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voice__PS__1__CS__2, "pc_voice_PS_1_CS_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AccessPointName, "px_AccessPointName", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AquireGNSS__MaxTime, "px_AquireGNSS_MaxTime", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AttachTypeTested, "px_AttachTypeTested", "EUTRA_ATTACH_TESTED_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__AuthAMF, "px_AuthAMF", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AuthK, "px_AuthK", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EllipsoidPointWithAltitude, "px_EllipsoidPointWithAltitude", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EmergencyCallNumber, "px_EmergencyCallNumber", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__FDD__OperationBand, "px_FDD_OperationBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__HorizontalVelocity, "px_HorizontalVelocity", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEISV__Def, "px_IMEISV_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEI__Def, "px_IMEI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Def, "px_IMSI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Diff, "px_IMSI_Diff", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IP__MTU__Size, "px_IP_MTU_Size", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__NW, "px_IPv4_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__RemoteUE, "px_IPv4_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__UE, "px_IPv4_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__NW, "px_IPv4_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__RemoteUE, "px_IPv4_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__UE, "px_IPv4_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2a__UE, "px_IPv4_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__NW, "px_IPv4_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__RemoteUE, "px_IPv4_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__UE, "px_IPv4_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__NW, "px_IPv4_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__UE, "px_IPv4_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__NW, "px_IPv4_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__UE, "px_IPv4_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__NW, "px_IPv4_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__UE, "px_IPv4_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address__HomeAgent, "px_IPv4_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__NW, "px_IPv6_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__RemoteUE, "px_IPv6_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__UE, "px_IPv6_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__NW, "px_IPv6_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__RemoteUE, "px_IPv6_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__UE, "px_IPv6_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2a__UE, "px_IPv6_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__NW, "px_IPv6_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__RemoteUE, "px_IPv6_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__UE, "px_IPv6_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__NW, "px_IPv6_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__UE, "px_IPv6_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__NW, "px_IPv6_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__UE, "px_IPv6_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__NW, "px_IPv6_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__UE, "px_IPv6_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address__HomeAgent, "px_IPv6_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__MFBI__UTRAN__FrequencyBand, "px_MFBI_UTRAN_FrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__CipheringAlgorithm, "px_NAS_CipheringAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__IntegrityProtAlgorithm, "px_NAS_IntegrityProtAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__Def, "px_PTMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__SigDef, "px_PTMSI_SigDef", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataCodingScheme, "px_PWS_CB_DataCodingScheme", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage1, "px_PWS_CB_DataPage1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage2, "px_PWS_CB_DataPage2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage3, "px_PWS_CB_DataPage3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage4, "px_PWS_CB_DataPage4", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__RATComb__Tested, "px_RATComb_Tested", "RATComb_Tested_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__SMS__ChkMsgReceived, "px_SMS_ChkMsgReceived", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__IndexOffset, "px_SMS_IndexOffset", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__MsgFrmt, "px_SMS_MsgFrmt", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem1, "px_SMS_PrefMem1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem2, "px_SMS_PrefMem2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem3, "px_SMS_PrefMem3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__Service, "px_SMS_Service", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SinglePLMN__Tested, "px_SinglePLMN_Tested", "SinglePLMN_TestedType", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__TMSI__Def, "px_TMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__TestLoopModeB__Delay, "px_TestLoopModeB_Delay", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__UE__CS__PS__UsageSetting__Tested, "px_UE_CS_PS_UsageSetting_Tested", "CS_PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UE__PS__UsageSetting__Tested, "px_UE_PS_UsageSetting_Tested", "PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UTRAN__ModeUnderTest, "px_UTRAN_ModeUnderTest", "UTRAN_FDD_TDD_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__WLAN__PDN1__ToOffload, "px_WLAN_PDN1_ToOffload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eAuthRAND, "px_eAuthRAND", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eJapanMCC__Band6, "px_eJapanMCC_Band6", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__ePrimaryFrequencyBand, "px_ePrimaryFrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__5GCN, "pc_5GCN", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__EN__DC, "pc_EN_DC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__EPS__UPIP, "pc_EPS_UPIP", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__IP__Ping, "pc_IP_Ping", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__InterBand__CA__BetweenFR1__FR2, "pc_InterBand_CA_BetweenFR1_FR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__InterBand__CA__WithinFR1, "pc_InterBand_CA_WithinFR1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__InterBand__CA__WithinFR2, "pc_InterBand_CA_WithinFR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__InterBand__ENDC__IncludingFR1__FR2, "pc_InterBand_ENDC_IncludingFR1_FR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__InterBand__ENDC__IncludingFR2, "pc_InterBand_ENDC_IncludingFR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__InterBand__ENDC__WithinFR1, "pc_InterBand_ENDC_WithinFR1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__InterBand__NRDC__BetweenFR1__FR2, "pc_InterBand_NRDC_BetweenFR1_FR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__IntraBand__Contiguous__CA__WithinFR1, "pc_IntraBand_Contiguous_CA_WithinFR1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__IntraBand__Contiguous__CA__WithinFR2, "pc_IntraBand_Contiguous_CA_WithinFR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__IntraBand__Contiguous__ENDC, "pc_IntraBand_Contiguous_ENDC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__IntraBand__NonContiguous__CA__WithinFR1, "pc_IntraBand_NonContiguous_CA_WithinFR1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__IntraBand__NonContiguous__CA__WithinFR2, "pc_IntraBand_NonContiguous_CA_WithinFR2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__IntraBand__NonContiguous__ENDC, "pc_IntraBand_NonContiguous_ENDC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__TransferEmergencyPDUN1toS1noN26, "pc_TransferEmergencyPDUN1toS1noN26", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__TransferEmergencyPDUS1toN1noN26, "pc_TransferEmergencyPDUS1toN1noN26", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__configuredUL__GrantType1, "pc_configuredUL_GrantType1", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__configuredUL__GrantType2, "pc_configuredUL_GrantType2", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__data__centric, "pc_data_centric", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__dynamicPowerSharingENDC, "pc_dynamicPowerSharingENDC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__dynamicSwitchRA__Type0__1__PDSCH, "pc_dynamicSwitchRA_Type0_1_PDSCH", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__dynamicSwitchRA__Type0__1__PUSCH, "pc_dynamicSwitchRA_Type0_1_PUSCH", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__eutra__EPC__HO__ToNR__FDD__FR1__r15, "pc_eutra_EPC_HO_ToNR_FDD_FR1_r15", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__eutra__EPC__HO__ToNR__TDD__FR1__r15, "pc_eutra_EPC_HO_ToNR_TDD_FR1_r15", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__eutra__EPC__HO__ToNR__TDD__FR2__r15, "pc_eutra_EPC_HO_ToNR_TDD_FR2_r15", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__gp10__en__dc, "pc_gp10_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__gp11__en__dc, "pc_gp11_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__gp4__en__dc, "pc_gp4_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__gp5__en__dc, "pc_gp5_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__gp6__en__dc, "pc_gp6_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__gp7__en__dc, "pc_gp7_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__gp8__en__dc, "pc_gp8_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__gp9__en__dc, "pc_gp9_en_dc", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__idleInactiveEUTRA__MeasReport, "pc_idleInactiveEUTRA_MeasReport", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__inactiveState, "pc_inactiveState", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__interRAT__NR__ToENDC, "pc_interRAT_NR_ToENDC", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__noOf__PDNsNewConnection, "pc_noOf_PDNsNewConnection", "integer", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__noOf__PDNsSameConnection, "pc_noOf_PDNsSameConnection", "integer", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__ra__Type0__PUSCH, "pc_ra_Type0_PUSCH", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__srb3, "pc_srb3", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::pc__ss__SINR__Meas, "pc_ss_SINR_Meas", "boolean", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__Parameters::px__ENDC__BandCombination, "px_ENDC_BandCombination", "ENDC_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&EUTRA__NR__Parameters::px__ENDC__CA__BandCombination, "px_ENDC_CA_BandCombination", "ENDC_CA_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&EUTRA__NR__Parameters::px__ENDC__SecondaryBandCombination, "px_ENDC_SecondaryBandCombination", "ENDC_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&EUTRA__NR__Parameters::px__NEDC__BandCombination, "px_NEDC_BandCombination", "NEDC_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&EUTRA__NR__Parameters::px__NEDC__SecondaryBandCombination, "px_NEDC_SecondaryBandCombination", "NEDC_BandCombination_Type", "EUTRA_NR_Parameters", Common4G5G::print_var_Common4G5G); + global_scope->add_variable(&EUTRA__NR__Parameters::px__NR__PrimaryBand, "px_NR_PrimaryBand", "integer", "EUTRA_NR_Parameters", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +DataPathCheck__BearerType__Type::DataPathCheck__BearerType__Type() +{ +enum_value = UNBOUND_VALUE; +} + +DataPathCheck__BearerType__Type::DataPathCheck__BearerType__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +DataPathCheck__BearerType__Type::DataPathCheck__BearerType__Type(enum_type other_value) +{ +enum_value = other_value; +} + +DataPathCheck__BearerType__Type::DataPathCheck__BearerType__Type(const DataPathCheck__BearerType__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +enum_value = other_value.enum_value; +} + +DataPathCheck__BearerType__Type& DataPathCheck__BearerType__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +DataPathCheck__BearerType__Type& DataPathCheck__BearerType__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +DataPathCheck__BearerType__Type& DataPathCheck__BearerType__Type::operator=(const DataPathCheck__BearerType__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean DataPathCheck__BearerType__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +return enum_value == other_value; +} + +boolean DataPathCheck__BearerType__Type::operator==(const DataPathCheck__BearerType__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +return enum_value == other_value.enum_value; +} + +boolean DataPathCheck__BearerType__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +return enum_value < other_value; +} + +boolean DataPathCheck__BearerType__Type::operator<(const DataPathCheck__BearerType__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +return enum_value < other_value.enum_value; +} + +boolean DataPathCheck__BearerType__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +return enum_value > other_value; +} + +boolean DataPathCheck__BearerType__Type::operator>(const DataPathCheck__BearerType__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +return enum_value > other_value.enum_value; +} + +const char *DataPathCheck__BearerType__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case dedicatedBearer: return "dedicatedBearer"; +case defaultBearer: return "defaultBearer"; +default: return ""; +} +} + +DataPathCheck__BearerType__Type::enum_type DataPathCheck__BearerType__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "dedicatedBearer")) return dedicatedBearer; +else if (!strcmp(str_par, "defaultBearer")) return defaultBearer; +else return UNKNOWN_VALUE; +} + +boolean DataPathCheck__BearerType__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int DataPathCheck__BearerType__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int DataPathCheck__BearerType__Type::enum2int(const DataPathCheck__BearerType__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void DataPathCheck__BearerType__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type.", int_val); +enum_value = (enum_type)int_val; +} + +DataPathCheck__BearerType__Type::operator DataPathCheck__BearerType__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +return enum_value; +} + +boolean DataPathCheck__BearerType__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void DataPathCheck__BearerType__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* DataPathCheck__BearerType__Type::clone() const { return new DataPathCheck__BearerType__Type(*this); } +const TTCN_Typedescriptor_t* DataPathCheck__BearerType__Type::get_descriptor() const { return &DataPathCheck__BearerType__Type_descr_; } +void DataPathCheck__BearerType__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void DataPathCheck__BearerType__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@LoopbackIP.DataPathCheck_BearerType_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @LoopbackIP.DataPathCheck_BearerType_Type."); + } +} + +Module_Param* DataPathCheck__BearerType__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void DataPathCheck__BearerType__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +text_buf.push_int(enum_value); +} + +void DataPathCheck__BearerType__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @LoopbackIP.DataPathCheck_BearerType_Type.", enum_value); +} + +void DataPathCheck__BearerType__Type_template::copy_template(const DataPathCheck__BearerType__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new DataPathCheck__BearerType__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new DataPathCheck__BearerType__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new DataPathCheck__BearerType__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +} +} + +DataPathCheck__BearerType__Type_template::DataPathCheck__BearerType__Type_template() +{ +} + +DataPathCheck__BearerType__Type_template::DataPathCheck__BearerType__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +DataPathCheck__BearerType__Type_template::DataPathCheck__BearerType__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!DataPathCheck__BearerType__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type with unknown numeric value %d.", other_value); +single_value = (DataPathCheck__BearerType__Type::enum_type)other_value; +} + +DataPathCheck__BearerType__Type_template::DataPathCheck__BearerType__Type_template(DataPathCheck__BearerType__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +DataPathCheck__BearerType__Type_template::DataPathCheck__BearerType__Type_template(const DataPathCheck__BearerType__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == DataPathCheck__BearerType__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +single_value = other_value.enum_value; +} + +DataPathCheck__BearerType__Type_template::DataPathCheck__BearerType__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (DataPathCheck__BearerType__Type::enum_type)(const DataPathCheck__BearerType__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type from an unbound optional field."); +} +} + +DataPathCheck__BearerType__Type_template::DataPathCheck__BearerType__Type_template(DataPathCheck__BearerType__Type_template* p_precondition, DataPathCheck__BearerType__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +DataPathCheck__BearerType__Type_template::DataPathCheck__BearerType__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +DataPathCheck__BearerType__Type_template::DataPathCheck__BearerType__Type_template(const DataPathCheck__BearerType__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +DataPathCheck__BearerType__Type_template::~DataPathCheck__BearerType__Type_template() +{ +clean_up(); +} + +boolean DataPathCheck__BearerType__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean DataPathCheck__BearerType__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != DataPathCheck__BearerType__Type::UNBOUND_VALUE; +} + +void DataPathCheck__BearerType__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +DataPathCheck__BearerType__Type_template& DataPathCheck__BearerType__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DataPathCheck__BearerType__Type_template& DataPathCheck__BearerType__Type_template::operator=(int other_value) +{ +if (!DataPathCheck__BearerType__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (DataPathCheck__BearerType__Type::enum_type)other_value; +return *this; +} + +DataPathCheck__BearerType__Type_template& DataPathCheck__BearerType__Type_template::operator=(DataPathCheck__BearerType__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +DataPathCheck__BearerType__Type_template& DataPathCheck__BearerType__Type_template::operator=(const DataPathCheck__BearerType__Type& other_value) +{ +if (other_value.enum_value == DataPathCheck__BearerType__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +DataPathCheck__BearerType__Type_template& DataPathCheck__BearerType__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (DataPathCheck__BearerType__Type::enum_type)(const DataPathCheck__BearerType__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +} +return *this; +} + +DataPathCheck__BearerType__Type_template& DataPathCheck__BearerType__Type_template::operator=(const DataPathCheck__BearerType__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean DataPathCheck__BearerType__Type_template::match(DataPathCheck__BearerType__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +} +return FALSE; +} + +boolean DataPathCheck__BearerType__Type_template::match(const DataPathCheck__BearerType__Type& other_value, boolean) const +{ +if (other_value.enum_value == DataPathCheck__BearerType__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type with an unbound value."); +return match(other_value.enum_value); +} + +DataPathCheck__BearerType__Type::enum_type DataPathCheck__BearerType__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +return single_value; +} + +void DataPathCheck__BearerType__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new DataPathCheck__BearerType__Type_template[list_length]; +} + +DataPathCheck__BearerType__Type_template& DataPathCheck__BearerType__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +return value_list.list_value[list_index]; +} + +void DataPathCheck__BearerType__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void DataPathCheck__BearerType__Type_template::set_value(template_sel other_value) { *this = other_value; } +void DataPathCheck__BearerType__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* DataPathCheck__BearerType__Type_template::clone() const { return new DataPathCheck__BearerType__Type_template(*this); } +const TTCN_Typedescriptor_t* DataPathCheck__BearerType__Type_template::get_descriptor() const { return &DataPathCheck__BearerType__Type_descr_; } +boolean DataPathCheck__BearerType__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void DataPathCheck__BearerType__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void DataPathCheck__BearerType__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(DataPathCheck__BearerType__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void DataPathCheck__BearerType__Type_template::log_match(const DataPathCheck__BearerType__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void DataPathCheck__BearerType__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +} +} + +void DataPathCheck__BearerType__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (DataPathCheck__BearerType__Type::enum_type)text_buf.pull_int().get_val(); +if (!DataPathCheck__BearerType__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new DataPathCheck__BearerType__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @LoopbackIP.DataPathCheck_BearerType_Type."); +} +} + +boolean DataPathCheck__BearerType__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean DataPathCheck__BearerType__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + DataPathCheck__BearerType__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + DataPathCheck__BearerType__Type::enum_type enum_val = DataPathCheck__BearerType__Type::str_to_enum(m_p->get_enumerated()); + if (!DataPathCheck__BearerType__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @LoopbackIP.DataPathCheck_BearerType_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + DataPathCheck__BearerType__Type_template* precondition = new DataPathCheck__BearerType__Type_template; + precondition->set_param(*m_p->get_elem(0)); + DataPathCheck__BearerType__Type_template* implied_template = new DataPathCheck__BearerType__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = DataPathCheck__BearerType__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@LoopbackIP.DataPathCheck_BearerType_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* DataPathCheck__BearerType__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(DataPathCheck__BearerType__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void IPv4IPv6PacketInfo__Type::init_vec() { fld_vec[0]=&field_Protocol; fld_vec[1]=&field_SourceAddr; fld_vec[2]=&field_DestAddr; fld_vec[3]=&field_Payload; } + +IPv4IPv6PacketInfo__Type::IPv4IPv6PacketInfo__Type() : Record_Type() { init_vec(); } + +IPv4IPv6PacketInfo__Type::IPv4IPv6PacketInfo__Type(const IPv4IPv6PacketInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Protocol.is_bound() ) + field_Protocol = other_value.field_Protocol; +if (other_value.field_SourceAddr.is_bound() ) + field_SourceAddr = other_value.field_SourceAddr; +if (other_value.field_DestAddr.is_bound() ) + field_DestAddr = other_value.field_DestAddr; +if (other_value.field_Payload.is_bound() ) + field_Payload = other_value.field_Payload; +init_vec(); +} + +IPv4IPv6PacketInfo__Type::IPv4IPv6PacketInfo__Type(const INTEGER& par_Protocol, + const CHARSTRING& par_SourceAddr, + const CHARSTRING& par_DestAddr, + const OCTETSTRING& par_Payload) : field_Protocol(par_Protocol), + field_SourceAddr(par_SourceAddr), + field_DestAddr(par_DestAddr), + field_Payload(par_Payload) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IPv4IPv6PacketInfo__Type::get_descriptor() const { return &IPv4IPv6PacketInfo__Type_descr_; } +const TTCN_Typedescriptor_t* IPv4IPv6PacketInfo__Type::fld_descriptors[] = { &CommonDefs::UInt8__Type_descr_, &CHARSTRING_descr_, &CHARSTRING_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* IPv4IPv6PacketInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IPv4IPv6PacketInfo__Type::fld_names[] = { "Protocol", "SourceAddr", "DestAddr", "Payload" }; +const char* IPv4IPv6PacketInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void IPv4IPv6PacketInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[1] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[2] = was_any ? new CHARSTRING_template(ANY_VALUE) : new CHARSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +IPv4IPv6PacketInfo__Type_template::IPv4IPv6PacketInfo__Type_template(IPv4IPv6PacketInfo__Type_template* p_precondition, IPv4IPv6PacketInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IPv4IPv6PacketInfo__Type_template::IPv4IPv6PacketInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IPv4IPv6PacketInfo__Type_template::~IPv4IPv6PacketInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IPv4IPv6PacketInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const IPv4IPv6PacketInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IPv4IPv6PacketInfo__Type_template& IPv4IPv6PacketInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IPv4IPv6PacketInfo__Type_template& IPv4IPv6PacketInfo__Type_template::operator=(const IPv4IPv6PacketInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IPv4IPv6PacketInfo__Type_template& IPv4IPv6PacketInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IPv4IPv6PacketInfo__Type_template& IPv4IPv6PacketInfo__Type_template::operator=(const IPv4IPv6PacketInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IPv4IPv6PacketInfo__Type IPv4IPv6PacketInfo__Type_template::valueof() const +{ +IPv4IPv6PacketInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +INTEGER_template& IPv4IPv6PacketInfo__Type_template::Protocol() { return *(static_cast(get_at(0))); } +const INTEGER_template& IPv4IPv6PacketInfo__Type_template::Protocol() const { return *(static_cast(get_at(0))); } +CHARSTRING_template& IPv4IPv6PacketInfo__Type_template::SourceAddr() { return *(static_cast(get_at(1))); } +const CHARSTRING_template& IPv4IPv6PacketInfo__Type_template::SourceAddr() const { return *(static_cast(get_at(1))); } +CHARSTRING_template& IPv4IPv6PacketInfo__Type_template::DestAddr() { return *(static_cast(get_at(2))); } +const CHARSTRING_template& IPv4IPv6PacketInfo__Type_template::DestAddr() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& IPv4IPv6PacketInfo__Type_template::Payload() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& IPv4IPv6PacketInfo__Type_template::Payload() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* IPv4IPv6PacketInfo__Type_template::get_descriptor() const { return &IPv4IPv6PacketInfo__Type_descr_; } +const char* IPv4IPv6PacketInfo__Type_template::fld_name(int p_index) const { return IPv4IPv6PacketInfo__Type::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +CHARSTRING fl__LoopbackModeB__IPv4IPv6Address(const BOOLEAN& p__UseIPv4, const CHARSTRING& p__IPv4Addr, const CHARSTRING& p__IPv6Addr) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 30, TTCN_Location::LOCATION_FUNCTION, "fl_LoopbackModeB_IPv4IPv6Address"); +charstring_list param_names; +param_names[0] = "p_UseIPv4"; +param_names[1] = "p_IPv4Addr"; +param_names[2] = "p_IPv6Addr"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("fl_LoopbackModeB_IPv4IPv6Address", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__UseIPv4, "p_UseIPv4", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPv4Addr, "p_IPv4Addr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPv6Addr, "p_IPv6Addr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(34); +ttcn3_debugger.breakpoint_entry(34); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 34 */ +if (p__UseIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(34); +ttcn3_debugger.breakpoint_entry(34); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 34 */ +{ +CHARSTRING tmp_0; +return DEBUGGER_STORE_RETURN_VALUE(tmp_0, p__IPv4Addr); +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(35); +ttcn3_debugger.breakpoint_entry(35); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 35 */ +{ +CHARSTRING tmp_1; +return DEBUGGER_STORE_RETURN_VALUE(tmp_1, p__IPv6Addr); +} +} +} + +CHARSTRING f__LoopbackModeB__IP__Address__UE(const BOOLEAN& p__UseIPv4, const CommonDefs::PDN__Index__Type& p__PdnIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 45, TTCN_Location::LOCATION_FUNCTION, "f_LoopbackModeB_IP_Address_UE"); +charstring_list param_names; +param_names[0] = "p_UseIPv4"; +param_names[1] = "p_PdnIndex"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_LoopbackModeB_IP_Address_UE", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__UseIPv4, "p_UseIPv4", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(49); +ttcn3_debugger.breakpoint_entry(49); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 49 */ +CommonIP::PDN__AddressInfo__Type v__PDN__AddressInfo(CommonIP::f__PDN__AddressInfo__Get(p__PdnIndex)); +debug_scope.add_variable(&v__PDN__AddressInfo, "v_PDN_AddressInfo", "PDN_AddressInfo_Type", NULL, CommonIP::print_var_CommonIP, CommonIP::set_var_CommonIP); +current_location.update_lineno(50); +ttcn3_debugger.breakpoint_entry(50); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 50 */ +{ +CHARSTRING tmp_2; +return DEBUGGER_STORE_RETURN_VALUE(tmp_2, fl__LoopbackModeB__IPv4IPv6Address(p__UseIPv4, const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).UE__IPAddressIPv4(), const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).UE__IPAddressIPv6())); +} +} + +CHARSTRING f__LoopbackModeB__IP__Address__NW(const BOOLEAN& p__UseIPv4, const CommonDefs::PDN__Index__Type& p__PdnIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 60, TTCN_Location::LOCATION_FUNCTION, "f_LoopbackModeB_IP_Address_NW"); +charstring_list param_names; +param_names[0] = "p_UseIPv4"; +param_names[1] = "p_PdnIndex"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_LoopbackModeB_IP_Address_NW", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__UseIPv4, "p_UseIPv4", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(64); +ttcn3_debugger.breakpoint_entry(64); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 64 */ +CommonIP::PDN__AddressInfo__Type v__PDN__AddressInfo(CommonIP::f__PDN__AddressInfo__Get(p__PdnIndex)); +debug_scope.add_variable(&v__PDN__AddressInfo, "v_PDN_AddressInfo", "PDN_AddressInfo_Type", NULL, CommonIP::print_var_CommonIP, CommonIP::set_var_CommonIP); +current_location.update_lineno(65); +ttcn3_debugger.breakpoint_entry(65); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 65 */ +{ +CHARSTRING tmp_3; +return DEBUGGER_STORE_RETURN_VALUE(tmp_3, fl__LoopbackModeB__IPv4IPv6Address(p__UseIPv4, const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).PCSCF__IPAddressIPv4(), const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).PCSCF__IPAddressIPv6())); +} +} + +OCTETSTRING f__IPv4Packet__Create(const OCTETSTRING& p__Identification, const OCTETSTRING& p__TOS, const INTEGER& p__Protocol, const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const OCTETSTRING& p__IPPayload) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 80, TTCN_Location::LOCATION_FUNCTION, "f_IPv4Packet_Create"); +charstring_list param_names; +param_names[0] = "p_Identification"; +param_names[1] = "p_TOS"; +param_names[2] = "p_Protocol"; +param_names[3] = "p_SourceAddr"; +param_names[4] = "p_DestAddr"; +param_names[5] = "p_IPPayload"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv4Packet_Create", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__Identification, "p_Identification", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TOS, "p_TOS", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Protocol, "p_Protocol", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPPayload, "p_IPPayload", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(88); +ttcn3_debugger.breakpoint_entry(88); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 88 */ +INTEGER v__TotalLength((p__IPPayload.lengthof() + 20)); +debug_scope.add_variable(&v__TotalLength, "v_TotalLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(89); +ttcn3_debugger.breakpoint_entry(89); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 89 */ +OCTETSTRING v__SourceAddrStr(CommonIP::f__Convert__IPv4Addr2OctString(p__SourceAddr)); +debug_scope.add_variable(&v__SourceAddrStr, "v_SourceAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(90); +ttcn3_debugger.breakpoint_entry(90); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 90 */ +OCTETSTRING v__DestAddrStr(CommonIP::f__Convert__IPv4Addr2OctString(p__DestAddr)); +debug_scope.add_variable(&v__DestAddrStr, "v_DestAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(91); +ttcn3_debugger.breakpoint_entry(91); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 91 */ +OCTETSTRING v__OctetString; +debug_scope.add_variable(&v__OctetString, "v_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 94 */ +v__OctetString = os_2; +current_location.update_lineno(95); +ttcn3_debugger.breakpoint_entry(95); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 95 */ +{ +OCTETSTRING tmp_5; +tmp_5 = (v__OctetString + p__TOS); +v__OctetString = tmp_5; +} +current_location.update_lineno(96); +ttcn3_debugger.breakpoint_entry(96); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 96 */ +{ +OCTETSTRING tmp_6; +tmp_6 = (v__OctetString + int2oct(v__TotalLength, 2)); +v__OctetString = tmp_6; +} +current_location.update_lineno(97); +ttcn3_debugger.breakpoint_entry(97); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 97 */ +{ +OCTETSTRING tmp_7; +tmp_7 = (v__OctetString + p__Identification); +v__OctetString = tmp_7; +} +current_location.update_lineno(98); +ttcn3_debugger.breakpoint_entry(98); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 98 */ +{ +OCTETSTRING tmp_8; +tmp_8 = (v__OctetString + os_3); +v__OctetString = tmp_8; +} +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 99 */ +{ +OCTETSTRING tmp_9; +tmp_9 = (v__OctetString + os_4); +v__OctetString = tmp_9; +} +current_location.update_lineno(100); +ttcn3_debugger.breakpoint_entry(100); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 100 */ +{ +OCTETSTRING tmp_10; +tmp_10 = (v__OctetString + int2oct(p__Protocol, 1)); +v__OctetString = tmp_10; +} +current_location.update_lineno(101); +ttcn3_debugger.breakpoint_entry(101); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 101 */ +{ +OCTETSTRING tmp_11; +tmp_11 = (v__OctetString + CommonIP::f__IpChecksum((((v__OctetString + os_3) + v__SourceAddrStr) + v__DestAddrStr))); +v__OctetString = tmp_11; +} +current_location.update_lineno(102); +ttcn3_debugger.breakpoint_entry(102); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 102 */ +{ +OCTETSTRING tmp_12; +tmp_12 = (v__OctetString + v__SourceAddrStr); +v__OctetString = tmp_12; +} +current_location.update_lineno(103); +ttcn3_debugger.breakpoint_entry(103); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 103 */ +{ +OCTETSTRING tmp_13; +tmp_13 = (v__OctetString + v__DestAddrStr); +v__OctetString = tmp_13; +} +current_location.update_lineno(104); +ttcn3_debugger.breakpoint_entry(104); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 104 */ +{ +OCTETSTRING tmp_14; +tmp_14 = (v__OctetString + p__IPPayload); +v__OctetString = tmp_14; +} +current_location.update_lineno(106); +ttcn3_debugger.breakpoint_entry(106); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 106 */ +{ +OCTETSTRING tmp_15; +return DEBUGGER_STORE_RETURN_VALUE(tmp_15, v__OctetString); +} +} + +OCTETSTRING f__IPv4UdpDatagram__Create(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__UdpPayload) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 120, TTCN_Location::LOCATION_FUNCTION, "f_IPv4UdpDatagram_Create"); +charstring_list param_names; +param_names[0] = "p_SourceAddr"; +param_names[1] = "p_DestAddr"; +param_names[2] = "p_SourcePort"; +param_names[3] = "p_DestPort"; +param_names[4] = "p_UdpPayload"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv4UdpDatagram_Create", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SourcePort, "p_SourcePort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestPort, "p_DestPort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__UdpPayload, "p_UdpPayload", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(127); +ttcn3_debugger.breakpoint_entry(127); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 127 */ +INTEGER v__UdpDatagramLength((p__UdpPayload.lengthof() + 8)); +debug_scope.add_variable(&v__UdpDatagramLength, "v_UdpDatagramLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(129); +ttcn3_debugger.breakpoint_entry(129); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 129 */ +OCTETSTRING v__SourceAddrStr(CommonIP::f__Convert__IPv4Addr2OctString(p__SourceAddr)); +debug_scope.add_variable(&v__SourceAddrStr, "v_SourceAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(130); +ttcn3_debugger.breakpoint_entry(130); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 130 */ +OCTETSTRING v__DestAddrStr(CommonIP::f__Convert__IPv4Addr2OctString(p__DestAddr)); +debug_scope.add_variable(&v__DestAddrStr, "v_DestAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(131); +ttcn3_debugger.breakpoint_entry(131); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 131 */ +OCTETSTRING v__LengthStr(int2oct(v__UdpDatagramLength, 2)); +debug_scope.add_variable(&v__LengthStr, "v_LengthStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(132); +ttcn3_debugger.breakpoint_entry(132); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 132 */ +OCTETSTRING v__Protocol(os_5); +debug_scope.add_variable(&v__Protocol, "v_Protocol", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(133); +ttcn3_debugger.breakpoint_entry(133); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 133 */ +OCTETSTRING v__PseudoHeader(((((v__SourceAddrStr + v__DestAddrStr) + os_1) + v__Protocol) + v__LengthStr)); +debug_scope.add_variable(&v__PseudoHeader, "v_PseudoHeader", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(134); +ttcn3_debugger.breakpoint_entry(134); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 134 */ +OCTETSTRING v__ChecksumDummy(os_3); +debug_scope.add_variable(&v__ChecksumDummy, "v_ChecksumDummy", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(135); +ttcn3_debugger.breakpoint_entry(135); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 135 */ +OCTETSTRING v__OctetString(os_6); +debug_scope.add_variable(&v__OctetString, "v_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(137); +ttcn3_debugger.breakpoint_entry(137); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 137 */ +{ +OCTETSTRING tmp_16; +tmp_16 = (v__OctetString + int2oct(p__SourcePort, 2)); +v__OctetString = tmp_16; +} +current_location.update_lineno(138); +ttcn3_debugger.breakpoint_entry(138); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 138 */ +{ +OCTETSTRING tmp_17; +tmp_17 = (v__OctetString + int2oct(p__DestPort, 2)); +v__OctetString = tmp_17; +} +current_location.update_lineno(139); +ttcn3_debugger.breakpoint_entry(139); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 139 */ +{ +OCTETSTRING tmp_18; +tmp_18 = (v__OctetString + v__LengthStr); +v__OctetString = tmp_18; +} +current_location.update_lineno(140); +ttcn3_debugger.breakpoint_entry(140); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 140 */ +{ +OCTETSTRING tmp_19; +tmp_19 = (v__OctetString + CommonIP::f__IpChecksum((((v__PseudoHeader + v__OctetString) + v__ChecksumDummy) + p__UdpPayload))); +v__OctetString = tmp_19; +} +current_location.update_lineno(141); +ttcn3_debugger.breakpoint_entry(141); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 141 */ +{ +OCTETSTRING tmp_20; +tmp_20 = (v__OctetString + p__UdpPayload); +v__OctetString = tmp_20; +} +current_location.update_lineno(143); +ttcn3_debugger.breakpoint_entry(143); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 143 */ +{ +OCTETSTRING tmp_21; +return DEBUGGER_STORE_RETURN_VALUE(tmp_21, v__OctetString); +} +} + +OCTETSTRING f__IPv6UdpDatagram__Create(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__UdpPayload) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 157, TTCN_Location::LOCATION_FUNCTION, "f_IPv6UdpDatagram_Create"); +charstring_list param_names; +param_names[0] = "p_SourceAddr"; +param_names[1] = "p_DestAddr"; +param_names[2] = "p_SourcePort"; +param_names[3] = "p_DestPort"; +param_names[4] = "p_UdpPayload"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv6UdpDatagram_Create", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SourcePort, "p_SourcePort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestPort, "p_DestPort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__UdpPayload, "p_UdpPayload", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(164); +ttcn3_debugger.breakpoint_entry(164); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 164 */ +INTEGER v__UdpDatagramLength((p__UdpPayload.lengthof() + 8)); +debug_scope.add_variable(&v__UdpDatagramLength, "v_UdpDatagramLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(165); +ttcn3_debugger.breakpoint_entry(165); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 165 */ +OCTETSTRING v__SourceAddrStr(CommonIP::f__Convert__IPv6Addr2OctString(p__SourceAddr)); +debug_scope.add_variable(&v__SourceAddrStr, "v_SourceAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(166); +ttcn3_debugger.breakpoint_entry(166); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 166 */ +OCTETSTRING v__DestAddrStr(CommonIP::f__Convert__IPv6Addr2OctString(p__DestAddr)); +debug_scope.add_variable(&v__DestAddrStr, "v_DestAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(167); +ttcn3_debugger.breakpoint_entry(167); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 167 */ +OCTETSTRING v__LengthStr(int2oct(v__UdpDatagramLength, 4)); +debug_scope.add_variable(&v__LengthStr, "v_LengthStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(168); +ttcn3_debugger.breakpoint_entry(168); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 168 */ +OCTETSTRING v__PseudoHeader; +debug_scope.add_variable(&v__PseudoHeader, "v_PseudoHeader", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(169); +ttcn3_debugger.breakpoint_entry(169); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 169 */ +OCTETSTRING v__OctetString; +debug_scope.add_variable(&v__OctetString, "v_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(172); +ttcn3_debugger.breakpoint_entry(172); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 172 */ +v__PseudoHeader = ((v__SourceAddrStr + v__DestAddrStr) + v__LengthStr); +current_location.update_lineno(173); +ttcn3_debugger.breakpoint_entry(173); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 173 */ +{ +OCTETSTRING tmp_23; +tmp_23 = (v__PseudoHeader + v__LengthStr); +v__PseudoHeader = tmp_23; +} +current_location.update_lineno(174); +ttcn3_debugger.breakpoint_entry(174); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 174 */ +{ +OCTETSTRING tmp_24; +tmp_24 = ((v__PseudoHeader + os_7) + os_5); +v__PseudoHeader = tmp_24; +} +current_location.update_lineno(175); +ttcn3_debugger.breakpoint_entry(175); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 175 */ +{ +OCTETSTRING tmp_25; +tmp_25 = ((((v__PseudoHeader + int2oct(p__SourcePort, 2)) + int2oct(p__DestPort, 2)) + int2oct(v__UdpDatagramLength, 2)) + os_3); +v__PseudoHeader = tmp_25; +} +current_location.update_lineno(176); +ttcn3_debugger.breakpoint_entry(176); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 176 */ +{ +OCTETSTRING tmp_26; +tmp_26 = (v__PseudoHeader + p__UdpPayload); +v__PseudoHeader = tmp_26; +} +current_location.update_lineno(179); +ttcn3_debugger.breakpoint_entry(179); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 179 */ +v__OctetString = int2oct(p__SourcePort, 2); +current_location.update_lineno(180); +ttcn3_debugger.breakpoint_entry(180); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 180 */ +{ +OCTETSTRING tmp_28; +tmp_28 = (v__OctetString + int2oct(p__DestPort, 2)); +v__OctetString = tmp_28; +} +current_location.update_lineno(181); +ttcn3_debugger.breakpoint_entry(181); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 181 */ +{ +OCTETSTRING tmp_29; +tmp_29 = (v__OctetString + int2oct(v__UdpDatagramLength, 2)); +v__OctetString = tmp_29; +} +current_location.update_lineno(182); +ttcn3_debugger.breakpoint_entry(182); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 182 */ +{ +OCTETSTRING tmp_30; +tmp_30 = (v__OctetString + CommonIP::f__IpChecksum(v__PseudoHeader)); +v__OctetString = tmp_30; +} +current_location.update_lineno(183); +ttcn3_debugger.breakpoint_entry(183); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 183 */ +{ +OCTETSTRING tmp_31; +tmp_31 = (v__OctetString + p__UdpPayload); +v__OctetString = tmp_31; +} +current_location.update_lineno(185); +ttcn3_debugger.breakpoint_entry(185); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 185 */ +{ +OCTETSTRING tmp_32; +return DEBUGGER_STORE_RETURN_VALUE(tmp_32, v__OctetString); +} +} + +OCTETSTRING f__IPv4TcpDatagram__Create(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__TcpPayload) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 199, TTCN_Location::LOCATION_FUNCTION, "f_IPv4TcpDatagram_Create"); +charstring_list param_names; +param_names[0] = "p_SourceAddr"; +param_names[1] = "p_DestAddr"; +param_names[2] = "p_SourcePort"; +param_names[3] = "p_DestPort"; +param_names[4] = "p_TcpPayload"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv4TcpDatagram_Create", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SourcePort, "p_SourcePort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestPort, "p_DestPort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TcpPayload, "p_TcpPayload", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(206); +ttcn3_debugger.breakpoint_entry(206); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 206 */ +INTEGER v__TcpDatagramLength((p__TcpPayload.lengthof() + 20)); +debug_scope.add_variable(&v__TcpDatagramLength, "v_TcpDatagramLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(208); +ttcn3_debugger.breakpoint_entry(208); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 208 */ +OCTETSTRING v__SourceAddrStr(CommonIP::f__Convert__IPv4Addr2OctString(p__SourceAddr)); +debug_scope.add_variable(&v__SourceAddrStr, "v_SourceAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(209); +ttcn3_debugger.breakpoint_entry(209); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 209 */ +OCTETSTRING v__DestAddrStr(CommonIP::f__Convert__IPv4Addr2OctString(p__DestAddr)); +debug_scope.add_variable(&v__DestAddrStr, "v_DestAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(210); +ttcn3_debugger.breakpoint_entry(210); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 210 */ +OCTETSTRING v__LengthStr(int2oct(v__TcpDatagramLength, 2)); +debug_scope.add_variable(&v__LengthStr, "v_LengthStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(211); +ttcn3_debugger.breakpoint_entry(211); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 211 */ +OCTETSTRING v__Protocol(os_8); +debug_scope.add_variable(&v__Protocol, "v_Protocol", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(212); +ttcn3_debugger.breakpoint_entry(212); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 212 */ +OCTETSTRING v__PseudoHeader(((((v__SourceAddrStr + v__DestAddrStr) + os_1) + v__Protocol) + v__LengthStr)); +debug_scope.add_variable(&v__PseudoHeader, "v_PseudoHeader", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(213); +ttcn3_debugger.breakpoint_entry(213); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 213 */ +OCTETSTRING v__ChecksumDummy(os_3); +debug_scope.add_variable(&v__ChecksumDummy, "v_ChecksumDummy", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(214); +ttcn3_debugger.breakpoint_entry(214); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 214 */ +OCTETSTRING v__UrgPointer(os_3); +debug_scope.add_variable(&v__UrgPointer, "v_UrgPointer", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(215); +ttcn3_debugger.breakpoint_entry(215); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 215 */ +OCTETSTRING v__OctetString(os_6); +debug_scope.add_variable(&v__OctetString, "v_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(217); +ttcn3_debugger.breakpoint_entry(217); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 217 */ +{ +OCTETSTRING tmp_33; +tmp_33 = (v__OctetString + int2oct(p__SourcePort, 2)); +v__OctetString = tmp_33; +} +current_location.update_lineno(218); +ttcn3_debugger.breakpoint_entry(218); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 218 */ +{ +OCTETSTRING tmp_34; +tmp_34 = (v__OctetString + int2oct(p__DestPort, 2)); +v__OctetString = tmp_34; +} +current_location.update_lineno(219); +ttcn3_debugger.breakpoint_entry(219); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 219 */ +{ +OCTETSTRING tmp_35; +tmp_35 = (v__OctetString + os_9); +v__OctetString = tmp_35; +} +current_location.update_lineno(220); +ttcn3_debugger.breakpoint_entry(220); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 220 */ +{ +OCTETSTRING tmp_36; +tmp_36 = (v__OctetString + os_9); +v__OctetString = tmp_36; +} +current_location.update_lineno(221); +ttcn3_debugger.breakpoint_entry(221); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 221 */ +{ +OCTETSTRING tmp_37; +tmp_37 = (v__OctetString + os_10); +v__OctetString = tmp_37; +} +current_location.update_lineno(222); +ttcn3_debugger.breakpoint_entry(222); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 222 */ +{ +OCTETSTRING tmp_38; +tmp_38 = (v__OctetString + os_11); +v__OctetString = tmp_38; +} +current_location.update_lineno(223); +ttcn3_debugger.breakpoint_entry(223); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 223 */ +{ +OCTETSTRING tmp_39; +tmp_39 = (v__OctetString + CommonIP::f__IpChecksum(((((v__PseudoHeader + v__OctetString) + v__ChecksumDummy) + v__UrgPointer) + p__TcpPayload))); +v__OctetString = tmp_39; +} +current_location.update_lineno(224); +ttcn3_debugger.breakpoint_entry(224); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 224 */ +{ +OCTETSTRING tmp_40; +tmp_40 = (v__OctetString + v__UrgPointer); +v__OctetString = tmp_40; +} +current_location.update_lineno(225); +ttcn3_debugger.breakpoint_entry(225); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 225 */ +{ +OCTETSTRING tmp_41; +tmp_41 = (v__OctetString + p__TcpPayload); +v__OctetString = tmp_41; +} +current_location.update_lineno(227); +ttcn3_debugger.breakpoint_entry(227); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 227 */ +{ +OCTETSTRING tmp_42; +return DEBUGGER_STORE_RETURN_VALUE(tmp_42, v__OctetString); +} +} + +OCTETSTRING f__IPSecESPDatagram__Create(const INTEGER& p__NextHeader, const OCTETSTRING& p__SPI, const OCTETSTRING& p__Payload) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 239, TTCN_Location::LOCATION_FUNCTION, "f_IPSecESPDatagram_Create"); +charstring_list param_names; +param_names[0] = "p_NextHeader"; +param_names[1] = "p_SPI"; +param_names[2] = "p_Payload"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_IPSecESPDatagram_Create", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__NextHeader, "p_NextHeader", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SPI, "p_SPI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Payload, "p_Payload", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(244); +ttcn3_debugger.breakpoint_entry(244); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 244 */ +OCTETSTRING v__OctetString(os_6); +debug_scope.add_variable(&v__OctetString, "v_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(245); +ttcn3_debugger.breakpoint_entry(245); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 245 */ +OCTETSTRING v__SequenceNumber(os_12); +debug_scope.add_variable(&v__SequenceNumber, "v_SequenceNumber", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(246); +ttcn3_debugger.breakpoint_entry(246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 246 */ +INTEGER v__PayloadLen(p__Payload.lengthof()); +debug_scope.add_variable(&v__PayloadLen, "v_PayloadLen", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(247); +ttcn3_debugger.breakpoint_entry(247); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 247 */ +INTEGER v__PaddingLen(0); +debug_scope.add_variable(&v__PaddingLen, "v_PaddingLen", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(248); +ttcn3_debugger.breakpoint_entry(248); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 248 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(250); +ttcn3_debugger.breakpoint_entry(250); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 250 */ +{ +OCTETSTRING tmp_43; +tmp_43 = (v__OctetString + p__SPI); +v__OctetString = tmp_43; +} +current_location.update_lineno(251); +ttcn3_debugger.breakpoint_entry(251); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 251 */ +{ +OCTETSTRING tmp_44; +tmp_44 = (v__OctetString + v__SequenceNumber); +v__OctetString = tmp_44; +} +current_location.update_lineno(252); +ttcn3_debugger.breakpoint_entry(252); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 252 */ +{ +OCTETSTRING tmp_45; +tmp_45 = (v__OctetString + p__Payload); +v__OctetString = tmp_45; +} +{ +const INTEGER &tmp_47 = mod(v__PayloadLen, 4); +switch(tmp_47.get_long_long_val()) { +case(0): +{ +current_location.update_lineno(256); +ttcn3_debugger.breakpoint_entry(256); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 256 */ +v__PaddingLen = 2; +break; +} +case(1): +{ +current_location.update_lineno(257); +ttcn3_debugger.breakpoint_entry(257); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 257 */ +v__PaddingLen = 1; +break; +} +case(2): +{ +current_location.update_lineno(258); +ttcn3_debugger.breakpoint_entry(258); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 258 */ +v__PaddingLen = 0; +break; +} +case(3): +{ +current_location.update_lineno(259); +ttcn3_debugger.breakpoint_entry(259); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 259 */ +v__PaddingLen = 3; +break; +} +};} +current_location.update_lineno(261); +ttcn3_debugger.breakpoint_entry(261); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 261 */ +i = 0; +current_location.update_lineno(261); +ttcn3_debugger.breakpoint_entry(261); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 261 */ +for ( ; ; ) { +current_location.update_lineno(261); +ttcn3_debugger.breakpoint_entry(261); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 261 */ +if (!(i < v__PaddingLen)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(262); +ttcn3_debugger.breakpoint_entry(262); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 262 */ +{ +OCTETSTRING tmp_53; +tmp_53 = (v__OctetString + int2oct((i + 1), 1)); +v__OctetString = tmp_53; +} +current_location.update_lineno(261); +ttcn3_debugger.breakpoint_entry(261); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 261 */ +{ +INTEGER tmp_54; +++i; +} +} +current_location.update_lineno(265); +ttcn3_debugger.breakpoint_entry(265); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 265 */ +{ +OCTETSTRING tmp_55; +tmp_55 = (v__OctetString + int2oct(v__PaddingLen, 1)); +v__OctetString = tmp_55; +} +current_location.update_lineno(266); +ttcn3_debugger.breakpoint_entry(266); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 266 */ +{ +OCTETSTRING tmp_56; +tmp_56 = (v__OctetString + int2oct(p__NextHeader, 1)); +v__OctetString = tmp_56; +} +current_location.update_lineno(270); +ttcn3_debugger.breakpoint_entry(270); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 270 */ +{ +OCTETSTRING tmp_57; +return DEBUGGER_STORE_RETURN_VALUE(tmp_57, v__OctetString); +} +} + +OCTETSTRING f__IPv6TcpDatagram__Create(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__TcpPayload) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 284, TTCN_Location::LOCATION_FUNCTION, "f_IPv6TcpDatagram_Create"); +charstring_list param_names; +param_names[0] = "p_SourceAddr"; +param_names[1] = "p_DestAddr"; +param_names[2] = "p_SourcePort"; +param_names[3] = "p_DestPort"; +param_names[4] = "p_TcpPayload"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv6TcpDatagram_Create", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SourcePort, "p_SourcePort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestPort, "p_DestPort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TcpPayload, "p_TcpPayload", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(291); +ttcn3_debugger.breakpoint_entry(291); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 291 */ +INTEGER v__TcpDatagramLength((p__TcpPayload.lengthof() + 20)); +debug_scope.add_variable(&v__TcpDatagramLength, "v_TcpDatagramLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(293); +ttcn3_debugger.breakpoint_entry(293); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 293 */ +OCTETSTRING v__SourceAddrStr(CommonIP::f__Convert__IPv6Addr2OctString(p__SourceAddr)); +debug_scope.add_variable(&v__SourceAddrStr, "v_SourceAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(294); +ttcn3_debugger.breakpoint_entry(294); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 294 */ +OCTETSTRING v__DestAddrStr(CommonIP::f__Convert__IPv6Addr2OctString(p__DestAddr)); +debug_scope.add_variable(&v__DestAddrStr, "v_DestAddrStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(295); +ttcn3_debugger.breakpoint_entry(295); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 295 */ +OCTETSTRING v__LengthStr(int2oct(v__TcpDatagramLength, 4)); +debug_scope.add_variable(&v__LengthStr, "v_LengthStr", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(296); +ttcn3_debugger.breakpoint_entry(296); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 296 */ +OCTETSTRING v__Protocol(os_8); +debug_scope.add_variable(&v__Protocol, "v_Protocol", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(297); +ttcn3_debugger.breakpoint_entry(297); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 297 */ +OCTETSTRING v__PseudoHeader; +debug_scope.add_variable(&v__PseudoHeader, "v_PseudoHeader", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(298); +ttcn3_debugger.breakpoint_entry(298); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 298 */ +OCTETSTRING v__ChecksumDummy(os_3); +debug_scope.add_variable(&v__ChecksumDummy, "v_ChecksumDummy", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(299); +ttcn3_debugger.breakpoint_entry(299); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 299 */ +OCTETSTRING v__UrgPointer(os_3); +debug_scope.add_variable(&v__UrgPointer, "v_UrgPointer", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(300); +ttcn3_debugger.breakpoint_entry(300); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 300 */ +OCTETSTRING v__OctetString(os_6); +debug_scope.add_variable(&v__OctetString, "v_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(303); +ttcn3_debugger.breakpoint_entry(303); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 303 */ +v__PseudoHeader = ((v__SourceAddrStr + v__DestAddrStr) + v__LengthStr); +current_location.update_lineno(304); +ttcn3_debugger.breakpoint_entry(304); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 304 */ +{ +OCTETSTRING tmp_59; +tmp_59 = ((v__PseudoHeader + os_7) + v__Protocol); +v__PseudoHeader = tmp_59; +} +current_location.update_lineno(306); +ttcn3_debugger.breakpoint_entry(306); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 306 */ +{ +OCTETSTRING tmp_60; +tmp_60 = (v__OctetString + int2oct(p__SourcePort, 2)); +v__OctetString = tmp_60; +} +current_location.update_lineno(307); +ttcn3_debugger.breakpoint_entry(307); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 307 */ +{ +OCTETSTRING tmp_61; +tmp_61 = (v__OctetString + int2oct(p__DestPort, 2)); +v__OctetString = tmp_61; +} +current_location.update_lineno(308); +ttcn3_debugger.breakpoint_entry(308); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 308 */ +{ +OCTETSTRING tmp_62; +tmp_62 = (v__OctetString + os_9); +v__OctetString = tmp_62; +} +current_location.update_lineno(309); +ttcn3_debugger.breakpoint_entry(309); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 309 */ +{ +OCTETSTRING tmp_63; +tmp_63 = (v__OctetString + os_9); +v__OctetString = tmp_63; +} +current_location.update_lineno(310); +ttcn3_debugger.breakpoint_entry(310); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 310 */ +{ +OCTETSTRING tmp_64; +tmp_64 = (v__OctetString + os_10); +v__OctetString = tmp_64; +} +current_location.update_lineno(311); +ttcn3_debugger.breakpoint_entry(311); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 311 */ +{ +OCTETSTRING tmp_65; +tmp_65 = (v__OctetString + os_11); +v__OctetString = tmp_65; +} +current_location.update_lineno(312); +ttcn3_debugger.breakpoint_entry(312); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 312 */ +{ +OCTETSTRING tmp_66; +tmp_66 = (v__OctetString + CommonIP::f__IpChecksum(((((v__PseudoHeader + v__OctetString) + v__ChecksumDummy) + v__UrgPointer) + p__TcpPayload))); +v__OctetString = tmp_66; +} +current_location.update_lineno(313); +ttcn3_debugger.breakpoint_entry(313); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 313 */ +{ +OCTETSTRING tmp_67; +tmp_67 = (v__OctetString + v__UrgPointer); +v__OctetString = tmp_67; +} +current_location.update_lineno(314); +ttcn3_debugger.breakpoint_entry(314); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 314 */ +{ +OCTETSTRING tmp_68; +tmp_68 = (v__OctetString + p__TcpPayload); +v__OctetString = tmp_68; +} +current_location.update_lineno(316); +ttcn3_debugger.breakpoint_entry(316); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 316 */ +{ +OCTETSTRING tmp_69; +return DEBUGGER_STORE_RETURN_VALUE(tmp_69, v__OctetString); +} +} + +OCTETSTRING fl__IcmpDatagram__Create(const INTEGER& p__IcmpType, const OCTETSTRING& p__SequenceNumber, const OCTETSTRING& p__Data) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 329, TTCN_Location::LOCATION_FUNCTION, "fl_IcmpDatagram_Create"); +charstring_list param_names; +param_names[0] = "p_IcmpType"; +param_names[1] = "p_SequenceNumber"; +param_names[2] = "p_Data"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("fl_IcmpDatagram_Create", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IcmpType, "p_IcmpType", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SequenceNumber, "p_SequenceNumber", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Data, "p_Data", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(334); +ttcn3_debugger.breakpoint_entry(334); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 334 */ +OCTETSTRING v__ChecksumDummy(os_3); +debug_scope.add_variable(&v__ChecksumDummy, "v_ChecksumDummy", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(335); +ttcn3_debugger.breakpoint_entry(335); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 335 */ +OCTETSTRING v__Id(os_13); +debug_scope.add_variable(&v__Id, "v_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(336); +ttcn3_debugger.breakpoint_entry(336); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 336 */ +OCTETSTRING v__OctetString(os_6); +debug_scope.add_variable(&v__OctetString, "v_OctetString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(338); +ttcn3_debugger.breakpoint_entry(338); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 338 */ +{ +OCTETSTRING tmp_70; +tmp_70 = (v__OctetString + int2oct(p__IcmpType, 1)); +v__OctetString = tmp_70; +} +current_location.update_lineno(339); +ttcn3_debugger.breakpoint_entry(339); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 339 */ +{ +OCTETSTRING tmp_71; +tmp_71 = (v__OctetString + os_1); +v__OctetString = tmp_71; +} +current_location.update_lineno(340); +ttcn3_debugger.breakpoint_entry(340); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 340 */ +{ +OCTETSTRING tmp_72; +tmp_72 = (v__OctetString + CommonIP::f__IpChecksum(((((v__OctetString + v__ChecksumDummy) + v__Id) + p__SequenceNumber) + p__Data))); +v__OctetString = tmp_72; +} +current_location.update_lineno(341); +ttcn3_debugger.breakpoint_entry(341); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 341 */ +{ +OCTETSTRING tmp_73; +tmp_73 = (v__OctetString + v__Id); +v__OctetString = tmp_73; +} +current_location.update_lineno(342); +ttcn3_debugger.breakpoint_entry(342); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 342 */ +{ +OCTETSTRING tmp_74; +tmp_74 = (v__OctetString + p__SequenceNumber); +v__OctetString = tmp_74; +} +current_location.update_lineno(343); +ttcn3_debugger.breakpoint_entry(343); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 343 */ +{ +OCTETSTRING tmp_75; +tmp_75 = (v__OctetString + p__Data); +v__OctetString = tmp_75; +} +current_location.update_lineno(345); +ttcn3_debugger.breakpoint_entry(345); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 345 */ +{ +OCTETSTRING tmp_76; +return DEBUGGER_STORE_RETURN_VALUE(tmp_76, v__OctetString); +} +} + +OCTETSTRING fl__IPv4IPv6__IcmpEchoRequestReply(const INTEGER& p__IcmpMsgType, const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SequenceNumber, const INTEGER& p__MaxPayloadSize) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 359, TTCN_Location::LOCATION_FUNCTION, "fl_IPv4IPv6_IcmpEchoRequestReply"); +charstring_list param_names; +param_names[0] = "p_IcmpMsgType"; +param_names[1] = "p_SourceAddr"; +param_names[2] = "p_DestAddr"; +param_names[3] = "p_SequenceNumber"; +param_names[4] = "p_MaxPayloadSize"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("fl_IPv4IPv6_IcmpEchoRequestReply", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IcmpMsgType, "p_IcmpMsgType", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SequenceNumber, "p_SequenceNumber", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__MaxPayloadSize, "p_MaxPayloadSize", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(365); +ttcn3_debugger.breakpoint_entry(365); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 365 */ +OCTETSTRING v__IcmpSequenceNumber(int2oct(p__SequenceNumber, 2)); +debug_scope.add_variable(&v__IcmpSequenceNumber, "v_IcmpSequenceNumber", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(366); +ttcn3_debugger.breakpoint_entry(366); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 366 */ +OCTETSTRING v__IcmpPayload; +debug_scope.add_variable(&v__IcmpPayload, "v_IcmpPayload", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(367); +ttcn3_debugger.breakpoint_entry(367); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 367 */ +OCTETSTRING v__Data(os_6); +debug_scope.add_variable(&v__Data, "v_Data", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(368); +ttcn3_debugger.breakpoint_entry(368); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 368 */ +OCTETSTRING v__Payload; +debug_scope.add_variable(&v__Payload, "v_Payload", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(369); +ttcn3_debugger.breakpoint_entry(369); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 369 */ +OCTETSTRING v__IpPacket; +debug_scope.add_variable(&v__IpPacket, "v_IpPacket", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(370); +ttcn3_debugger.breakpoint_entry(370); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 370 */ +INTEGER i((p__SequenceNumber - 1)); +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(371); +ttcn3_debugger.breakpoint_entry(371); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 371 */ +INTEGER v__BlockSize(16); +debug_scope.add_variable(&v__BlockSize, "v_BlockSize", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(372); +ttcn3_debugger.breakpoint_entry(372); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 372 */ +INTEGER n(((p__MaxPayloadSize - v__BlockSize) + 1)); +debug_scope.add_variable(&n, "n", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(373); +ttcn3_debugger.breakpoint_entry(373); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 373 */ +INTEGER v__Start(mod((i / n), v__BlockSize)); +debug_scope.add_variable(&v__Start, "v_Start", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(374); +ttcn3_debugger.breakpoint_entry(374); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 374 */ +INTEGER v__Length((v__BlockSize + mod(i, n))); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +for ( ; ; ) { +current_location.update_lineno(376); +ttcn3_debugger.breakpoint_entry(376); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 376 */ +if (!(v__Data.lengthof() < (p__MaxPayloadSize + v__BlockSize))) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(377); +ttcn3_debugger.breakpoint_entry(377); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 377 */ +{ +OCTETSTRING tmp_77; +tmp_77 = (v__Data + CommonIP::tsc__IP__AnyData); +v__Data = tmp_77; +} +} +current_location.update_lineno(379); +ttcn3_debugger.breakpoint_entry(379); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 379 */ +v__IcmpPayload = substr(v__Data, v__Start, v__Length); +current_location.update_lineno(381); +ttcn3_debugger.breakpoint_entry(381); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 381 */ +v__Payload = fl__IcmpDatagram__Create(p__IcmpMsgType, v__IcmpSequenceNumber, v__IcmpPayload); +{ +const INTEGER &tmp_81 = p__IcmpMsgType; +switch(tmp_81.get_long_long_val()) { +case(8): +case(0): +{ +current_location.update_lineno(385); +ttcn3_debugger.breakpoint_entry(385); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 385 */ +v__IpPacket = f__IPv4Packet__Create((os_14 + int2oct(p__SequenceNumber, 1)), f__IPv4Packet__Create_p__TOS_defval, CommonIP::tsc__IP__Protocol__ICMP, p__SourceAddr, p__DestAddr, v__Payload); +break; +} +case(128): +case(129): +{ +current_location.update_lineno(388); +ttcn3_debugger.breakpoint_entry(388); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 388 */ +v__Payload = CommonIP::f__ICMPv6__UpdateCRCChecksum(p__SourceAddr, p__DestAddr, v__Payload); +current_location.update_lineno(389); +ttcn3_debugger.breakpoint_entry(389); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 389 */ +v__IpPacket = CommonIP::f__IPv6Packet__Create(CommonIP::f__IPv6Packet__Create_p__TrafficClass_defval, CommonIP::f__IPv6Packet__Create_p__FlowLabel_defval, CommonIP::tsc__IP__Protocol__ICMPv6, CommonIP::f__IPv6Packet__Create_p__HopCount_defval, p__SourceAddr, p__DestAddr, v__Payload); +break; +} +};} +current_location.update_lineno(392); +ttcn3_debugger.breakpoint_entry(392); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 392 */ +{ +OCTETSTRING tmp_85; +return DEBUGGER_STORE_RETURN_VALUE(tmp_85, v__IpPacket); +} +} + +OCTETSTRING f__IPv4IPv6__IcmpEchoReply(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SequenceNumber) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 404, TTCN_Location::LOCATION_FUNCTION, "f_IPv4IPv6_IcmpEchoReply"); +charstring_list param_names; +param_names[0] = "p_SourceAddr"; +param_names[1] = "p_DestAddr"; +param_names[2] = "p_SequenceNumber"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv4IPv6_IcmpEchoReply", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SequenceNumber, "p_SequenceNumber", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(408); +ttcn3_debugger.breakpoint_entry(408); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 408 */ +CHARSTRING v__DestAddr(p__DestAddr); +debug_scope.add_variable(&v__DestAddr, "v_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(409); +ttcn3_debugger.breakpoint_entry(409); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 409 */ +INTEGER v__IcmpMsgType; +debug_scope.add_variable(&v__IcmpMsgType, "v_IcmpMsgType", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(410); +ttcn3_debugger.breakpoint_entry(410); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 410 */ +OCTETSTRING v__IpPacket; +debug_scope.add_variable(&v__IpPacket, "v_IpPacket", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(412); +ttcn3_debugger.breakpoint_entry(412); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 412 */ +if ((v__DestAddr == cs_0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(412); +ttcn3_debugger.breakpoint_entry(412); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 412 */ +v__DestAddr = p__SourceAddr; +} +current_location.update_lineno(414); +ttcn3_debugger.breakpoint_entry(414); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 414 */ +if (CommonIP::f__IpAddressIsIPv4(p__SourceAddr)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(415); +ttcn3_debugger.breakpoint_entry(415); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 415 */ +v__IcmpMsgType = CommonIP::tsc__ICMP__Type__EchoReply; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(417); +ttcn3_debugger.breakpoint_entry(417); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 417 */ +v__IcmpMsgType = CommonIP::tsc__ICMPv6__Type__EchoReply; +} +current_location.update_lineno(419); +ttcn3_debugger.breakpoint_entry(419); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 419 */ +v__IpPacket = fl__IPv4IPv6__IcmpEchoRequestReply(v__IcmpMsgType, p__SourceAddr, v__DestAddr, p__SequenceNumber, fl__IPv4IPv6__IcmpEchoRequestReply_p__MaxPayloadSize_defval); +current_location.update_lineno(420); +ttcn3_debugger.breakpoint_entry(420); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 420 */ +{ +OCTETSTRING tmp_90; +return DEBUGGER_STORE_RETURN_VALUE(tmp_90, v__IpPacket); +} +} + +OCTETSTRING f__IPv4IPv6__IcmpEchoRequest(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SequenceNumber) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 431, TTCN_Location::LOCATION_FUNCTION, "f_IPv4IPv6_IcmpEchoRequest"); +charstring_list param_names; +param_names[0] = "p_SourceAddr"; +param_names[1] = "p_DestAddr"; +param_names[2] = "p_SequenceNumber"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv4IPv6_IcmpEchoRequest", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SequenceNumber, "p_SequenceNumber", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(435); +ttcn3_debugger.breakpoint_entry(435); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 435 */ +INTEGER v__IcmpMsgType; +debug_scope.add_variable(&v__IcmpMsgType, "v_IcmpMsgType", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(436); +ttcn3_debugger.breakpoint_entry(436); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 436 */ +OCTETSTRING v__IpPacket; +debug_scope.add_variable(&v__IpPacket, "v_IpPacket", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(438); +ttcn3_debugger.breakpoint_entry(438); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 438 */ +if (CommonIP::f__IpAddressIsIPv4(p__SourceAddr)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(439); +ttcn3_debugger.breakpoint_entry(439); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 439 */ +v__IcmpMsgType = CommonIP::tsc__ICMP__Type__EchoRequest; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(441); +ttcn3_debugger.breakpoint_entry(441); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 441 */ +v__IcmpMsgType = CommonIP::tsc__ICMPv6__Type__EchoRequest; +} +current_location.update_lineno(443); +ttcn3_debugger.breakpoint_entry(443); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 443 */ +v__IpPacket = fl__IPv4IPv6__IcmpEchoRequestReply(v__IcmpMsgType, p__SourceAddr, p__DestAddr, p__SequenceNumber, fl__IPv4IPv6__IcmpEchoRequestReply_p__MaxPayloadSize_defval); +current_location.update_lineno(444); +ttcn3_debugger.breakpoint_entry(444); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 444 */ +{ +OCTETSTRING tmp_94; +return DEBUGGER_STORE_RETURN_VALUE(tmp_94, v__IpPacket); +} +} + +OCTETSTRING f__IPv4IPv6__AnyUdpPacket(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__Payload) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 457, TTCN_Location::LOCATION_FUNCTION, "f_IPv4IPv6_AnyUdpPacket"); +charstring_list param_names; +param_names[0] = "p_SourceAddr"; +param_names[1] = "p_DestAddr"; +param_names[2] = "p_SourcePort"; +param_names[3] = "p_DestPort"; +param_names[4] = "p_Payload"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv4IPv6_AnyUdpPacket", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__SourceAddr, "p_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestAddr, "p_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SourcePort, "p_SourcePort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestPort, "p_DestPort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Payload, "p_Payload", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(463); +ttcn3_debugger.breakpoint_entry(463); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 463 */ +INTEGER v__Protocol(CommonIP::tsc__IP__Protocol__UDP); +debug_scope.add_variable(&v__Protocol, "v_Protocol", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(464); +ttcn3_debugger.breakpoint_entry(464); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 464 */ +OCTETSTRING v__IpPacket; +debug_scope.add_variable(&v__IpPacket, "v_IpPacket", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(466); +ttcn3_debugger.breakpoint_entry(466); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 466 */ +if (CommonIP::f__IpAddressIsIPv4(p__SourceAddr)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(467); +ttcn3_debugger.breakpoint_entry(467); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 467 */ +v__IpPacket = f__IPv4Packet__Create(f__IPv4Packet__Create_p__Identification_defval, f__IPv4Packet__Create_p__TOS_defval, v__Protocol, p__SourceAddr, p__DestAddr, f__IPv4UdpDatagram__Create(p__SourceAddr, p__DestAddr, p__SourcePort, p__DestPort, p__Payload)); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(469); +ttcn3_debugger.breakpoint_entry(469); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 469 */ +v__IpPacket = CommonIP::f__IPv6Packet__Create(CommonIP::f__IPv6Packet__Create_p__TrafficClass_defval, CommonIP::f__IPv6Packet__Create_p__FlowLabel_defval, v__Protocol, CommonIP::f__IPv6Packet__Create_p__HopCount_defval, p__SourceAddr, p__DestAddr, f__IPv6UdpDatagram__Create(p__SourceAddr, p__DestAddr, p__SourcePort, p__DestPort, p__Payload)); +} +current_location.update_lineno(471); +ttcn3_debugger.breakpoint_entry(471); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 471 */ +{ +OCTETSTRING tmp_97; +return DEBUGGER_STORE_RETURN_VALUE(tmp_97, v__IpPacket); +} +} + +IPv4IPv6PacketInfo__Type f__IPv4IPv6Packet__GetInfo(const OCTETSTRING& p__IpPacket) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 489, TTCN_Location::LOCATION_FUNCTION, "f_IPv4IPv6Packet_GetInfo"); +charstring_list param_names; +param_names[0] = "p_IpPacket"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_IPv4IPv6Packet_GetInfo", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IpPacket, "p_IpPacket", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(491); +ttcn3_debugger.breakpoint_entry(491); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 491 */ +IPv4IPv6PacketInfo__Type v__IPv4IPv6PacketInfo; +debug_scope.add_variable(&v__IPv4IPv6PacketInfo, "v_IPv4IPv6PacketInfo", "IPv4IPv6PacketInfo_Type", NULL, print_var_LoopbackIP, set_var_LoopbackIP); +current_location.update_lineno(492); +ttcn3_debugger.breakpoint_entry(492); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 492 */ +INTEGER v__Protocol; +debug_scope.add_variable(&v__Protocol, "v_Protocol", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(493); +ttcn3_debugger.breakpoint_entry(493); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 493 */ +BITSTRING v__IpVersion; +debug_scope.add_variable(&v__IpVersion, "v_IpVersion", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(494); +ttcn3_debugger.breakpoint_entry(494); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 494 */ +BITSTRING v__IHL; +debug_scope.add_variable(&v__IHL, "v_IHL", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 495 */ +INTEGER v__HeaderLength; +debug_scope.add_variable(&v__HeaderLength, "v_HeaderLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(496); +ttcn3_debugger.breakpoint_entry(496); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 496 */ +INTEGER v__PayloadLength; +debug_scope.add_variable(&v__PayloadLength, "v_PayloadLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(497); +ttcn3_debugger.breakpoint_entry(497); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 497 */ +OCTETSTRING v__SourceAddrString; +debug_scope.add_variable(&v__SourceAddrString, "v_SourceAddrString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(498); +ttcn3_debugger.breakpoint_entry(498); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 498 */ +OCTETSTRING v__DestAddrString; +debug_scope.add_variable(&v__DestAddrString, "v_DestAddrString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(499); +ttcn3_debugger.breakpoint_entry(499); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 499 */ +CHARSTRING v__SourceAddr; +debug_scope.add_variable(&v__SourceAddr, "v_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(500); +ttcn3_debugger.breakpoint_entry(500); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 500 */ +CHARSTRING v__DestAddr; +debug_scope.add_variable(&v__DestAddr, "v_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(502); +ttcn3_debugger.breakpoint_entry(502); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 502 */ +v__IpVersion = substr(oct2bit(substr(p__IpPacket, 0, 1)), 0, 4); +{ +const BITSTRING &tmp_100 = v__IpVersion; +current_location.update_lineno(504); +ttcn3_debugger.breakpoint_entry(504); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 504 */ +if(tmp_100 == bs_0) goto tmp_99_0; +current_location.update_lineno(513); +ttcn3_debugger.breakpoint_entry(513); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 513 */ +if(tmp_100 == bs_1) goto tmp_99_1; +goto tmp_99_end; +tmp_99_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(505); +ttcn3_debugger.breakpoint_entry(505); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 505 */ +v__IHL = substr(oct2bit(substr(p__IpPacket, 0, 1)), 4, 4); +current_location.update_lineno(506); +ttcn3_debugger.breakpoint_entry(506); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 506 */ +v__HeaderLength = (bit2int(v__IHL) * 4); +current_location.update_lineno(507); +ttcn3_debugger.breakpoint_entry(507); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 507 */ +v__Protocol = oct2int(substr(p__IpPacket, 9, 1)); +current_location.update_lineno(508); +ttcn3_debugger.breakpoint_entry(508); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 508 */ +v__SourceAddrString = substr(p__IpPacket, 12, 4); +current_location.update_lineno(509); +ttcn3_debugger.breakpoint_entry(509); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 509 */ +v__DestAddrString = substr(p__IpPacket, 16, 4); +current_location.update_lineno(510); +ttcn3_debugger.breakpoint_entry(510); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 510 */ +v__SourceAddr = CommonIP::f__Convert__OctString2IPv4Addr(v__SourceAddrString); +current_location.update_lineno(511); +ttcn3_debugger.breakpoint_entry(511); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 511 */ +v__DestAddr = CommonIP::f__Convert__OctString2IPv4Addr(v__DestAddrString); +goto tmp_99_end; +} +tmp_99_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(514); +ttcn3_debugger.breakpoint_entry(514); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 514 */ +v__HeaderLength = 40; +current_location.update_lineno(515); +ttcn3_debugger.breakpoint_entry(515); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 515 */ +v__Protocol = oct2int(substr(p__IpPacket, 6, 1)); +current_location.update_lineno(516); +ttcn3_debugger.breakpoint_entry(516); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 516 */ +v__SourceAddrString = substr(p__IpPacket, 8, 16); +current_location.update_lineno(517); +ttcn3_debugger.breakpoint_entry(517); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 517 */ +v__DestAddrString = substr(p__IpPacket, 24, 16); +current_location.update_lineno(518); +ttcn3_debugger.breakpoint_entry(518); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 518 */ +v__SourceAddr = CommonIP::f__Convert__OctString2IPv6Addr(v__SourceAddrString); +current_location.update_lineno(519); +ttcn3_debugger.breakpoint_entry(519); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 519 */ +v__DestAddr = CommonIP::f__Convert__OctString2IPv6Addr(v__DestAddrString); +goto tmp_99_end; +} +tmp_99_end: /* empty */; +} +current_location.update_lineno(522); +ttcn3_debugger.breakpoint_entry(522); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 522 */ +v__PayloadLength = (p__IpPacket.lengthof() - v__HeaderLength); +current_location.update_lineno(523); +ttcn3_debugger.breakpoint_entry(523); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 523 */ +v__IPv4IPv6PacketInfo.Protocol() = v__Protocol; +current_location.update_lineno(524); +ttcn3_debugger.breakpoint_entry(524); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 524 */ +v__IPv4IPv6PacketInfo.SourceAddr() = v__SourceAddr; +current_location.update_lineno(525); +ttcn3_debugger.breakpoint_entry(525); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 525 */ +v__IPv4IPv6PacketInfo.DestAddr() = v__DestAddr; +current_location.update_lineno(526); +ttcn3_debugger.breakpoint_entry(526); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 526 */ +v__IPv4IPv6PacketInfo.Payload() = substr(p__IpPacket, v__HeaderLength, v__PayloadLength); +current_location.update_lineno(527); +ttcn3_debugger.breakpoint_entry(527); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 527 */ +{ +IPv4IPv6PacketInfo__Type tmp_119; +return DEBUGGER_STORE_RETURN_VALUE(tmp_119, v__IPv4IPv6PacketInfo); +} +} + +BOOLEAN f__LoopbackModeBorPing__CheckDataRX(const OCTETSTRING& p__IpPacketTX, const OCTETSTRING& p__IpPacketRX, const BOOLEAN& p__CheckPING) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 539, TTCN_Location::LOCATION_FUNCTION, "f_LoopbackModeBorPing_CheckDataRX"); +charstring_list param_names; +param_names[0] = "p_IpPacketTX"; +param_names[1] = "p_IpPacketRX"; +param_names[2] = "p_CheckPING"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_LoopbackModeBorPing_CheckDataRX", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__IpPacketTX, "p_IpPacketTX", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IpPacketRX, "p_IpPacketRX", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__CheckPING, "p_CheckPING", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(543); +ttcn3_debugger.breakpoint_entry(543); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 543 */ +IPv4IPv6PacketInfo__Type v__PacketInfoTX; +debug_scope.add_variable(&v__PacketInfoTX, "v_PacketInfoTX", "IPv4IPv6PacketInfo_Type", NULL, print_var_LoopbackIP, set_var_LoopbackIP); +current_location.update_lineno(544); +ttcn3_debugger.breakpoint_entry(544); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 544 */ +IPv4IPv6PacketInfo__Type v__PacketInfoRX; +debug_scope.add_variable(&v__PacketInfoRX, "v_PacketInfoRX", "IPv4IPv6PacketInfo_Type", NULL, print_var_LoopbackIP, set_var_LoopbackIP); +current_location.update_lineno(545); +ttcn3_debugger.breakpoint_entry(545); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 545 */ +IPv4IPv6PacketInfo__Type v__PacketInfoExpected; +debug_scope.add_variable(&v__PacketInfoExpected, "v_PacketInfoExpected", "IPv4IPv6PacketInfo_Type", NULL, print_var_LoopbackIP, set_var_LoopbackIP); +current_location.update_lineno(546); +ttcn3_debugger.breakpoint_entry(546); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 546 */ +INTEGER v__SequenceNumber; +debug_scope.add_variable(&v__SequenceNumber, "v_SequenceNumber", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(547); +ttcn3_debugger.breakpoint_entry(547); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 547 */ +OCTETSTRING v__ExpectedIcmpEchoReplyPacket; +debug_scope.add_variable(&v__ExpectedIcmpEchoReplyPacket, "v_ExpectedIcmpEchoReplyPacket", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(548); +ttcn3_debugger.breakpoint_entry(548); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 548 */ +BOOLEAN v__UsePING((p__CheckPING && EUTRA__NR__Parameters::pc__IP__Ping)); +debug_scope.add_variable(&v__UsePING, "v_UsePING", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(550); +ttcn3_debugger.breakpoint_entry(550); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 550 */ +if (v__UsePING) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(551); +ttcn3_debugger.breakpoint_entry(551); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 551 */ +v__PacketInfoTX = f__IPv4IPv6Packet__GetInfo(p__IpPacketTX); +current_location.update_lineno(552); +ttcn3_debugger.breakpoint_entry(552); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 552 */ +v__PacketInfoRX = f__IPv4IPv6Packet__GetInfo(p__IpPacketRX); +current_location.update_lineno(553); +ttcn3_debugger.breakpoint_entry(553); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 553 */ +v__SequenceNumber = oct2int(substr(const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoTX).Payload(), 6, 2)); +current_location.update_lineno(555); +ttcn3_debugger.breakpoint_entry(555); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 555 */ +v__ExpectedIcmpEchoReplyPacket = f__IPv4IPv6__IcmpEchoReply(const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoTX).DestAddr(), const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoTX).SourceAddr(), v__SequenceNumber); +current_location.update_lineno(556); +ttcn3_debugger.breakpoint_entry(556); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 556 */ +v__PacketInfoExpected = f__IPv4IPv6Packet__GetInfo(v__ExpectedIcmpEchoReplyPacket); +current_location.update_lineno(558); +ttcn3_debugger.breakpoint_entry(558); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 558 */ +{ +BOOLEAN tmp_125; +boolean tmp_126; +{ +boolean tmp_127; +{ +boolean tmp_128; +tmp_128 = (const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoRX).Protocol() == const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoExpected).Protocol()); +if (tmp_128) tmp_128 = (const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoRX).SourceAddr() == const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoExpected).SourceAddr()); +tmp_127 = tmp_128; +} +if (tmp_127) tmp_127 = (const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoRX).DestAddr() == const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoExpected).DestAddr()); +tmp_126 = tmp_127; +} +if (tmp_126) tmp_126 = (const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoRX).Payload() == const_cast< const IPv4IPv6PacketInfo__Type&>(v__PacketInfoExpected).Payload()); +return DEBUGGER_STORE_RETURN_VALUE(tmp_125, tmp_126); +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(564); +ttcn3_debugger.breakpoint_entry(564); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 564 */ +{ +BOOLEAN tmp_129; +return DEBUGGER_STORE_RETURN_VALUE(tmp_129, (p__IpPacketTX == p__IpPacketRX)); +} +} +} + +OCTETSTRING f__LoopbackModeBorPing__GetDataTX(const CommonDefs::PDN__Index__Type& p__PdnType, const DataPathCheck__BearerType__Type& p__BearerType, const INTEGER& p__SequenceNumber, const BOOLEAN& p__CheckPING) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 578, TTCN_Location::LOCATION_FUNCTION, "f_LoopbackModeBorPing_GetDataTX"); +charstring_list param_names; +param_names[0] = "p_PdnType"; +param_names[1] = "p_BearerType"; +param_names[2] = "p_SequenceNumber"; +param_names[3] = "p_CheckPING"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_LoopbackModeBorPing_GetDataTX", "function", "LoopbackIP", param_names, param_types, NULL); +debug_scope.add_variable(&p__PdnType, "p_PdnType", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.add_variable(&p__BearerType, "p_BearerType", "DataPathCheck_BearerType_Type", NULL, print_var_LoopbackIP); +debug_scope.add_variable(&p__SequenceNumber, "p_SequenceNumber", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__CheckPING, "p_CheckPING", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(583); +ttcn3_debugger.breakpoint_entry(583); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 583 */ +CHARSTRING v__IP__AddressUE(f__LoopbackModeB__IP__Address__UE(f__LoopbackModeB__IP__Address__UE_p__UseIPv4_defval, p__PdnType)); +debug_scope.add_variable(&v__IP__AddressUE, "v_IP_AddressUE", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(584); +ttcn3_debugger.breakpoint_entry(584); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 584 */ +CommonDefs::PDN__Index__Type v__PdnIndex(p__PdnType); +debug_scope.add_variable(&v__PdnIndex, "v_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(585); +ttcn3_debugger.breakpoint_entry(585); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 585 */ +CHARSTRING v__SourceAddr; +debug_scope.add_variable(&v__SourceAddr, "v_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(586); +ttcn3_debugger.breakpoint_entry(586); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 586 */ +CHARSTRING v__DestAddr; +debug_scope.add_variable(&v__DestAddr, "v_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(587); +ttcn3_debugger.breakpoint_entry(587); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 587 */ +OCTETSTRING v__IpPacket; +debug_scope.add_variable(&v__IpPacket, "v_IpPacket", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(588); +ttcn3_debugger.breakpoint_entry(588); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 588 */ +BOOLEAN v__UsePING((p__CheckPING && EUTRA__NR__Parameters::pc__IP__Ping)); +debug_scope.add_variable(&v__UsePING, "v_UsePING", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const DataPathCheck__BearerType__Type &tmp_131 = p__BearerType; +current_location.update_lineno(591); +ttcn3_debugger.breakpoint_entry(591); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 591 */ +if(tmp_131 == DataPathCheck__BearerType__Type::dedicatedBearer) goto tmp_130_0; +current_location.update_lineno(599); +ttcn3_debugger.breakpoint_entry(599); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 599 */ +if(tmp_131 == DataPathCheck__BearerType__Type::defaultBearer) goto tmp_130_1; +goto tmp_130_end; +tmp_130_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(592); +ttcn3_debugger.breakpoint_entry(592); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 592 */ +v__SourceAddr = f__LoopbackModeB__IP__Address__NW(f__LoopbackModeB__IP__Address__NW_p__UseIPv4_defval, v__PdnIndex); +current_location.update_lineno(593); +ttcn3_debugger.breakpoint_entry(593); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 593 */ +if (v__UsePING) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(594); +ttcn3_debugger.breakpoint_entry(594); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 594 */ +v__DestAddr = v__IP__AddressUE; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(596); +ttcn3_debugger.breakpoint_entry(596); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 596 */ +v__DestAddr = v__SourceAddr; +} +goto tmp_130_end; +} +tmp_130_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(600); +ttcn3_debugger.breakpoint_entry(600); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 600 */ +v__DestAddr = v__IP__AddressUE; +current_location.update_lineno(601); +ttcn3_debugger.breakpoint_entry(601); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 601 */ +if (v__UsePING) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(602); +ttcn3_debugger.breakpoint_entry(602); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 602 */ +if ((p__PdnType == CommonDefs::PDN__Index__Type::PDN__1)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(603); +ttcn3_debugger.breakpoint_entry(603); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 603 */ +v__PdnIndex = CommonDefs::PDN__Index__Type::PDN__2; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(605); +ttcn3_debugger.breakpoint_entry(605); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 605 */ +v__PdnIndex = CommonDefs::PDN__Index__Type::PDN__1; +} +current_location.update_lineno(607); +ttcn3_debugger.breakpoint_entry(607); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 607 */ +v__SourceAddr = f__LoopbackModeB__IP__Address__NW(f__LoopbackModeB__IP__Address__NW_p__UseIPv4_defval, v__PdnIndex); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(610); +ttcn3_debugger.breakpoint_entry(610); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 610 */ +v__SourceAddr = v__DestAddr; +} +goto tmp_130_end; +} +tmp_130_end: /* empty */; +} +current_location.update_lineno(614); +ttcn3_debugger.breakpoint_entry(614); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 614 */ +if (v__UsePING) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(615); +ttcn3_debugger.breakpoint_entry(615); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 615 */ +v__IpPacket = f__IPv4IPv6__IcmpEchoRequest(v__SourceAddr, v__DestAddr, p__SequenceNumber); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(617); +ttcn3_debugger.breakpoint_entry(617); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 617 */ +v__IpPacket = f__IPv4IPv6__IcmpEchoReply(v__SourceAddr, v__DestAddr, p__SequenceNumber); +} +current_location.update_lineno(619); +ttcn3_debugger.breakpoint_entry(619); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 619 */ +{ +OCTETSTRING tmp_142; +return DEBUGGER_STORE_RETURN_VALUE(tmp_142, v__IpPacket); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LoopbackIP"); +LoopbackIP::init_ttcn3_debugger(); +CommonIP::module_object.pre_init_module(); +EUTRA__NR__Parameters::module_object.pre_init_module(); +module_object.add_function("fl_LoopbackModeB_IPv4IPv6Address", (genericfunc_t)&fl__LoopbackModeB__IPv4IPv6Address, NULL); +module_object.add_function("f_LoopbackModeB_IP_Address_UE", (genericfunc_t)&f__LoopbackModeB__IP__Address__UE, NULL); +module_object.add_function("f_LoopbackModeB_IP_Address_NW", (genericfunc_t)&f__LoopbackModeB__IP__Address__NW, NULL); +module_object.add_function("f_IPv4Packet_Create", (genericfunc_t)&f__IPv4Packet__Create, NULL); +module_object.add_function("f_IPv4UdpDatagram_Create", (genericfunc_t)&f__IPv4UdpDatagram__Create, NULL); +module_object.add_function("f_IPv6UdpDatagram_Create", (genericfunc_t)&f__IPv6UdpDatagram__Create, NULL); +module_object.add_function("f_IPv4TcpDatagram_Create", (genericfunc_t)&f__IPv4TcpDatagram__Create, NULL); +module_object.add_function("f_IPSecESPDatagram_Create", (genericfunc_t)&f__IPSecESPDatagram__Create, NULL); +module_object.add_function("f_IPv6TcpDatagram_Create", (genericfunc_t)&f__IPv6TcpDatagram__Create, NULL); +module_object.add_function("fl_IcmpDatagram_Create", (genericfunc_t)&fl__IcmpDatagram__Create, NULL); +module_object.add_function("fl_IPv4IPv6_IcmpEchoRequestReply", (genericfunc_t)&fl__IPv4IPv6__IcmpEchoRequestReply, NULL); +module_object.add_function("f_IPv4IPv6_IcmpEchoReply", (genericfunc_t)&f__IPv4IPv6__IcmpEchoReply, NULL); +module_object.add_function("f_IPv4IPv6_IcmpEchoRequest", (genericfunc_t)&f__IPv4IPv6__IcmpEchoRequest, NULL); +module_object.add_function("f_IPv4IPv6_AnyUdpPacket", (genericfunc_t)&f__IPv4IPv6__AnyUdpPacket, NULL); +module_object.add_function("f_IPv4IPv6Packet_GetInfo", (genericfunc_t)&f__IPv4IPv6Packet__GetInfo, NULL); +module_object.add_function("f_LoopbackModeBorPing_CheckDataRX", (genericfunc_t)&f__LoopbackModeBorPing__CheckDataRX, NULL); +module_object.add_function("f_LoopbackModeBorPing_GetDataTX", (genericfunc_t)&f__LoopbackModeBorPing__GetDataTX, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LoopbackIP"); +CommonIP::module_object.post_init_module(); +EUTRA__NR__Parameters::module_object.post_init_module(); +current_location.update_lineno(45); +ttcn3_debugger.breakpoint_entry(45); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 45 */ +const_f__LoopbackModeB__IP__Address__UE_p__UseIPv4_defval = (!(Parameters::pc__IPv6)); +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 46 */ +const_f__LoopbackModeB__IP__Address__UE_p__PdnIndex_defval = CommonDefs::PDN__Index__Type::PDN__1; +current_location.update_lineno(60); +ttcn3_debugger.breakpoint_entry(60); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 60 */ +const_f__LoopbackModeB__IP__Address__NW_p__UseIPv4_defval = (!(Parameters::pc__IPv6)); +current_location.update_lineno(61); +ttcn3_debugger.breakpoint_entry(61); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 61 */ +const_f__LoopbackModeB__IP__Address__NW_p__PdnIndex_defval = CommonDefs::PDN__Index__Type::PDN__1; +current_location.update_lineno(80); +ttcn3_debugger.breakpoint_entry(80); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 80 */ +const_f__IPv4Packet__Create_p__Identification_defval = os_0; +current_location.update_lineno(81); +ttcn3_debugger.breakpoint_entry(81); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 81 */ +const_f__IPv4Packet__Create_p__TOS_defval = os_1; +current_location.update_lineno(363); +ttcn3_debugger.breakpoint_entry(363); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 363 */ +const_fl__IPv4IPv6__IcmpEchoRequestReply_p__MaxPayloadSize_defval = 75; +current_location.update_lineno(405); +ttcn3_debugger.breakpoint_entry(405); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 405 */ +const_f__IPv4IPv6__IcmpEchoReply_p__DestAddr_defval = cs_0; +current_location.update_lineno(406); +ttcn3_debugger.breakpoint_entry(406); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 406 */ +const_f__IPv4IPv6__IcmpEchoReply_p__SequenceNumber_defval = 1; +current_location.update_lineno(461); +ttcn3_debugger.breakpoint_entry(461); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 461 */ +const_f__IPv4IPv6__AnyUdpPacket_p__Payload_defval = CommonIP::tsc__IP__AnyData; +current_location.update_lineno(541); +ttcn3_debugger.breakpoint_entry(541); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 541 */ +const_f__LoopbackModeBorPing__CheckDataRX_p__CheckPING_defval = TRUE; +current_location.update_lineno(581); +ttcn3_debugger.breakpoint_entry(581); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP.ttcn, line 581 */ +const_f__LoopbackModeBorPing__GetDataTX_p__CheckPING_defval = TRUE; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/LoopbackIP.hh b/build/Ats_NG_NAS/LoopbackIP.hh new file mode 100644 index 0000000000000000000000000000000000000000..c5304f1908410e84cc0075bdea4281ed82b0a91f --- /dev/null +++ b/build/Ats_NG_NAS/LoopbackIP.hh @@ -0,0 +1,321 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef LoopbackIP_HH +#define LoopbackIP_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "CommonIP.hh" +#include "EUTRA_NR_Parameters.hh" + +#if TTCN3_VERSION != 100000 +#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 LoopbackIP_HH +#endif + +namespace LoopbackIP { + +/* Forward declarations of classes */ + +class DataPathCheck__BearerType__Type; +class DataPathCheck__BearerType__Type_template; +class IPv4IPv6PacketInfo__Type; +class IPv4IPv6PacketInfo__Type_template; + +} /* end of namespace */ + +#ifndef LoopbackIP_HH +#define LoopbackIP_HH + +namespace LoopbackIP { + +/* Class definitions */ + +class DataPathCheck__BearerType__Type : public Enum_Type { // enum +friend class DataPathCheck__BearerType__Type_template; +public: +enum enum_type { dedicatedBearer = 0, defaultBearer = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +DataPathCheck__BearerType__Type(); +DataPathCheck__BearerType__Type(int other_value); +DataPathCheck__BearerType__Type(enum_type other_value); +DataPathCheck__BearerType__Type(const DataPathCheck__BearerType__Type& other_value); + +DataPathCheck__BearerType__Type& operator=(int other_value); +DataPathCheck__BearerType__Type& operator=(enum_type other_value); +DataPathCheck__BearerType__Type& operator=(const DataPathCheck__BearerType__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const DataPathCheck__BearerType__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const DataPathCheck__BearerType__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const DataPathCheck__BearerType__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const DataPathCheck__BearerType__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const DataPathCheck__BearerType__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const DataPathCheck__BearerType__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const DataPathCheck__BearerType__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class DataPathCheck__BearerType__Type_template : public Base_Template { +union { +DataPathCheck__BearerType__Type::enum_type single_value; +struct { +unsigned int n_values; +DataPathCheck__BearerType__Type_template *list_value; +} value_list; +struct { +DataPathCheck__BearerType__Type_template* precondition; +DataPathCheck__BearerType__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const DataPathCheck__BearerType__Type_template& other_value); + +public: +DataPathCheck__BearerType__Type_template(); +DataPathCheck__BearerType__Type_template(template_sel other_value); +DataPathCheck__BearerType__Type_template(int other_value); +DataPathCheck__BearerType__Type_template(DataPathCheck__BearerType__Type::enum_type other_value); +DataPathCheck__BearerType__Type_template(const DataPathCheck__BearerType__Type& other_value); +DataPathCheck__BearerType__Type_template(const OPTIONAL& other_value); +DataPathCheck__BearerType__Type_template(DataPathCheck__BearerType__Type_template* p_precondition, DataPathCheck__BearerType__Type_template* p_implied_template); +DataPathCheck__BearerType__Type_template(Dynamic_Match_Interface* p_dyn_match); +DataPathCheck__BearerType__Type_template(const DataPathCheck__BearerType__Type_template& other_value); +~DataPathCheck__BearerType__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +DataPathCheck__BearerType__Type_template& operator=(template_sel other_value); +DataPathCheck__BearerType__Type_template& operator=(int other_value); +DataPathCheck__BearerType__Type_template& operator=(DataPathCheck__BearerType__Type::enum_type other_value); +DataPathCheck__BearerType__Type_template& operator=(const DataPathCheck__BearerType__Type& other_value); +DataPathCheck__BearerType__Type_template& operator=(const OPTIONAL& other_value); +DataPathCheck__BearerType__Type_template& operator=(const DataPathCheck__BearerType__Type_template& other_value); + +boolean match(DataPathCheck__BearerType__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const DataPathCheck__BearerType__Type& other_value, boolean legacy = FALSE) const; +DataPathCheck__BearerType__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +DataPathCheck__BearerType__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const DataPathCheck__BearerType__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class IPv4IPv6PacketInfo__Type : public Record_Type { + INTEGER field_Protocol; + CHARSTRING field_SourceAddr; + CHARSTRING field_DestAddr; + OCTETSTRING field_Payload; + Base_Type* fld_vec[4]; + void init_vec(); +public: + IPv4IPv6PacketInfo__Type(); + IPv4IPv6PacketInfo__Type(const IPv4IPv6PacketInfo__Type& other_value); + IPv4IPv6PacketInfo__Type(const INTEGER& par_Protocol, + const CHARSTRING& par_SourceAddr, + const CHARSTRING& par_DestAddr, + const OCTETSTRING& par_Payload); +inline IPv4IPv6PacketInfo__Type& operator=(const IPv4IPv6PacketInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IPv4IPv6PacketInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IPv4IPv6PacketInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline INTEGER& Protocol() + {return field_Protocol;} + inline const INTEGER& Protocol() const + {return field_Protocol;} + inline CHARSTRING& SourceAddr() + {return field_SourceAddr;} + inline const CHARSTRING& SourceAddr() const + {return field_SourceAddr;} + inline CHARSTRING& DestAddr() + {return field_DestAddr;} + inline const CHARSTRING& DestAddr() const + {return field_DestAddr;} + inline OCTETSTRING& Payload() + {return field_Payload;} + inline const OCTETSTRING& Payload() const + {return field_Payload;} +Base_Type* clone() const { return new IPv4IPv6PacketInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IPv4IPv6PacketInfo__Type_template : public Record_Template { +void set_specific(); +public: +IPv4IPv6PacketInfo__Type_template(): Record_Template() {} +IPv4IPv6PacketInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +IPv4IPv6PacketInfo__Type_template(const IPv4IPv6PacketInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +IPv4IPv6PacketInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IPv4IPv6PacketInfo__Type_template(IPv4IPv6PacketInfo__Type_template* p_precondition, IPv4IPv6PacketInfo__Type_template* p_implied_template); +IPv4IPv6PacketInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +IPv4IPv6PacketInfo__Type_template(const IPv4IPv6PacketInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~IPv4IPv6PacketInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IPv4IPv6PacketInfo__Type_template& operator=(template_sel other_value); +IPv4IPv6PacketInfo__Type_template& operator=(const IPv4IPv6PacketInfo__Type& other_value); +IPv4IPv6PacketInfo__Type_template& operator=(const OPTIONAL& other_value); +IPv4IPv6PacketInfo__Type_template& operator=(const IPv4IPv6PacketInfo__Type_template& other_value); +inline boolean match(const IPv4IPv6PacketInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IPv4IPv6PacketInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IPv4IPv6PacketInfo__Type valueof() const; +inline IPv4IPv6PacketInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +INTEGER_template& Protocol(); +const INTEGER_template& Protocol() const; +CHARSTRING_template& SourceAddr(); +const CHARSTRING_template& SourceAddr() const; +CHARSTRING_template& DestAddr(); +const CHARSTRING_template& DestAddr() const; +OCTETSTRING_template& Payload(); +const OCTETSTRING_template& Payload() const; +Record_Template* create() const { return new IPv4IPv6PacketInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_LoopbackIP(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_LoopbackIP(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern CHARSTRING fl__LoopbackModeB__IPv4IPv6Address(const BOOLEAN& p__UseIPv4, const CHARSTRING& p__IPv4Addr, const CHARSTRING& p__IPv6Addr); +extern CHARSTRING f__LoopbackModeB__IP__Address__UE(const BOOLEAN& p__UseIPv4, const CommonDefs::PDN__Index__Type& p__PdnIndex); +extern CHARSTRING f__LoopbackModeB__IP__Address__NW(const BOOLEAN& p__UseIPv4, const CommonDefs::PDN__Index__Type& p__PdnIndex); +extern OCTETSTRING f__IPv4Packet__Create(const OCTETSTRING& p__Identification, const OCTETSTRING& p__TOS, const INTEGER& p__Protocol, const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const OCTETSTRING& p__IPPayload); +extern OCTETSTRING f__IPv4UdpDatagram__Create(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__UdpPayload); +extern OCTETSTRING f__IPv6UdpDatagram__Create(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__UdpPayload); +extern OCTETSTRING f__IPv4TcpDatagram__Create(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__TcpPayload); +extern OCTETSTRING f__IPSecESPDatagram__Create(const INTEGER& p__NextHeader, const OCTETSTRING& p__SPI, const OCTETSTRING& p__Payload); +extern OCTETSTRING f__IPv6TcpDatagram__Create(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__TcpPayload); +extern OCTETSTRING fl__IcmpDatagram__Create(const INTEGER& p__IcmpType, const OCTETSTRING& p__SequenceNumber, const OCTETSTRING& p__Data); +extern OCTETSTRING fl__IPv4IPv6__IcmpEchoRequestReply(const INTEGER& p__IcmpMsgType, const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SequenceNumber, const INTEGER& p__MaxPayloadSize); +extern OCTETSTRING f__IPv4IPv6__IcmpEchoReply(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SequenceNumber); +extern OCTETSTRING f__IPv4IPv6__IcmpEchoRequest(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SequenceNumber); +extern OCTETSTRING f__IPv4IPv6__AnyUdpPacket(const CHARSTRING& p__SourceAddr, const CHARSTRING& p__DestAddr, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__Payload); +extern IPv4IPv6PacketInfo__Type f__IPv4IPv6Packet__GetInfo(const OCTETSTRING& p__IpPacket); +extern BOOLEAN f__LoopbackModeBorPing__CheckDataRX(const OCTETSTRING& p__IpPacketTX, const OCTETSTRING& p__IpPacketRX, const BOOLEAN& p__CheckPING); +extern OCTETSTRING f__LoopbackModeBorPing__GetDataTX(const CommonDefs::PDN__Index__Type& p__PdnType, const DataPathCheck__BearerType__Type& p__BearerType, const INTEGER& p__SequenceNumber, const BOOLEAN& p__CheckPING); + +/* Global variable declarations */ + +extern const TTCN_Typedescriptor_t DataPathCheck__BearerType__Type_descr_; +extern const BOOLEAN& f__LoopbackModeB__IP__Address__UE_p__UseIPv4_defval; +extern BOOLEAN const_f__LoopbackModeB__IP__Address__UE_p__UseIPv4_defval; +extern const CommonDefs::PDN__Index__Type& f__LoopbackModeB__IP__Address__UE_p__PdnIndex_defval; +extern CommonDefs::PDN__Index__Type const_f__LoopbackModeB__IP__Address__UE_p__PdnIndex_defval; +extern const BOOLEAN& f__LoopbackModeB__IP__Address__NW_p__UseIPv4_defval; +extern BOOLEAN const_f__LoopbackModeB__IP__Address__NW_p__UseIPv4_defval; +extern const CommonDefs::PDN__Index__Type& f__LoopbackModeB__IP__Address__NW_p__PdnIndex_defval; +extern CommonDefs::PDN__Index__Type const_f__LoopbackModeB__IP__Address__NW_p__PdnIndex_defval; +extern const OCTETSTRING& f__IPv4Packet__Create_p__Identification_defval; +extern OCTETSTRING const_f__IPv4Packet__Create_p__Identification_defval; +extern const OCTETSTRING& f__IPv4Packet__Create_p__TOS_defval; +extern OCTETSTRING const_f__IPv4Packet__Create_p__TOS_defval; +extern const INTEGER& fl__IPv4IPv6__IcmpEchoRequestReply_p__MaxPayloadSize_defval; +extern INTEGER const_fl__IPv4IPv6__IcmpEchoRequestReply_p__MaxPayloadSize_defval; +extern const CHARSTRING& f__IPv4IPv6__IcmpEchoReply_p__DestAddr_defval; +extern CHARSTRING const_f__IPv4IPv6__IcmpEchoReply_p__DestAddr_defval; +extern const INTEGER& f__IPv4IPv6__IcmpEchoReply_p__SequenceNumber_defval; +extern INTEGER const_f__IPv4IPv6__IcmpEchoReply_p__SequenceNumber_defval; +extern const OCTETSTRING& f__IPv4IPv6__AnyUdpPacket_p__Payload_defval; +extern OCTETSTRING const_f__IPv4IPv6__AnyUdpPacket_p__Payload_defval; +extern const XERdescriptor_t IPv4IPv6PacketInfo__Type_Protocol_xer_; +extern const TTCN_OERdescriptor_t IPv4IPv6PacketInfo__Type_Protocol_oer_; +extern const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_Protocol_descr_; +extern const XERdescriptor_t IPv4IPv6PacketInfo__Type_SourceAddr_xer_; +extern const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_SourceAddr_descr_; +extern const XERdescriptor_t IPv4IPv6PacketInfo__Type_DestAddr_xer_; +extern const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_DestAddr_descr_; +extern const XERdescriptor_t IPv4IPv6PacketInfo__Type_Payload_xer_; +extern const TTCN_OERdescriptor_t IPv4IPv6PacketInfo__Type_Payload_oer_; +extern const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_Payload_descr_; +extern const TTCN_Typedescriptor_t IPv4IPv6PacketInfo__Type_descr_; +extern const BOOLEAN& f__LoopbackModeBorPing__CheckDataRX_p__CheckPING_defval; +extern BOOLEAN const_f__LoopbackModeBorPing__CheckDataRX_p__CheckPING_defval; +extern const BOOLEAN& f__LoopbackModeBorPing__GetDataTX_p__CheckPING_defval; +extern BOOLEAN const_f__LoopbackModeBorPing__GetDataTX_p__CheckPING_defval; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/LoopbackIP.o b/build/Ats_NG_NAS/LoopbackIP.o new file mode 100644 index 0000000000000000000000000000000000000000..f5e4888195f66468ae59a1619cedd5a9f5d41bb4 Binary files /dev/null and b/build/Ats_NG_NAS/LoopbackIP.o differ diff --git a/build/Ats_NG_NAS/LoopbackIP_PacketFilterTest.cc b/build/Ats_NG_NAS/LoopbackIP_PacketFilterTest.cc new file mode 100644 index 0000000000000000000000000000000000000000..dde9b09aeab87ade27968db7e487f025e78c45fd --- /dev/null +++ b/build/Ats_NG_NAS/LoopbackIP_PacketFilterTest.cc @@ -0,0 +1,844 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "LoopbackIP_PacketFilterTest.hh" + +namespace LoopbackIP__PacketFilterTest { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char os_0_octets[] = { 15, 128, 240, 0 }, +os_3_octets[] = { 162 }, +os_1_octets[] = { 169 }, +os_6_octets[] = { 170 }, +os_5_octets[] = { 179 }, +os_2_octets[] = { 233 }, +os_4_octets[] = { 249, 15, 0, 0 }; +static const OCTETSTRING os_0(4, os_0_octets), +os_3(1, os_3_octets), +os_1(1, os_1_octets), +os_6(1, os_6_octets), +os_5(1, os_5_octets), +os_2(1, os_2_octets), +os_4(4, os_4_octets); +static const CHARSTRING cs_6(74, "/home/yanng/dev/nas/ttcn/Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn"), +cs_1(11, "172.168.8.1"), +cs_4(11, "172.168.9.1"), +cs_0(11, "192.168.0.1"), +cs_3(20, "2001:0ba0::0001:0001"), +cs_11(20, "2001:0ba1::0001:0001"), +cs_5(20, "2001:0bb0::0001:0001"), +cs_2(9, "fe80::1:1"), +cs_7(28, "packet id 14 is not for IPv4"), +cs_8(28, "packet id 15 is not for IPv4"), +cs_9(28, "packet id 16 is not for IPv4"), +cs_10(28, "packet id 17 is not for IPv4"), +cs_12(21, "unsupported packet id"); +static const unsigned char module_checksum[] = { 0x30, 0xd5, 0xe8, 0x1b, 0xbd, 0x1a, 0x78, 0x26, 0x61, 0x35, 0x10, 0xf5, 0xea, 0x53, 0xfe, 0x04 }; + +/* Global variable definitions */ + +TTCN_Module module_object("LoopbackIP_PacketFilterTest", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("LoopbackIP_PacketFilterTest"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoReply, "tsc_ICMP_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoRequest, "tsc_ICMP_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoReply, "tsc_ICMPv6_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoRequest, "tsc_ICMPv6_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M1, "tsc_IMS_MediaPort_M1", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M2, "tsc_IMS_MediaPort_M2", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M3, "tsc_IMS_MediaPort_M3", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__PortNumber__5060, "tsc_IMS_PortNumber_5060", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__AnyData, "tsc_IP_AnyData", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMP, "tsc_IP_Protocol_ICMP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMPv6, "tsc_IP_Protocol_ICMPv6", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__IPSec, "tsc_IP_Protocol_IPSec", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__TCP, "tsc_IP_Protocol_TCP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__UDP, "tsc_IP_Protocol_UDP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__MulticastPrefix__FF02, "tsc_MulticastPrefix_FF02", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PDN1__AddressInfo, "tsc_PDN1_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN2__AddressInfo, "tsc_PDN2_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN3__AddressInfo, "tsc_PDN3_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN4__AddressInfo, "tsc_PDN4_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN5__AddressInfo, "tsc_PDN5_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN6__AddressInfo, "tsc_PDN6_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN__AddressInfo, "tsc_PDN_AddressInfo", "PDN_AddressInfo_Type[6]", "CommonIP", TTCN3_Debugger::print_value_array); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTP, "tsc_PortNumberHTTP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTPS, "tsc_PortNumberHTTPS", "integer", "CommonIP", TTCN3_Debugger::print_base_var); +} + +/* Bodies of functions, altsteps and testcases */ + +OCTETSTRING f__PacketFilterTest__CreateDatagram(const BOOLEAN& p__IpTypeIsIPv4, const INTEGER& p__Protocol, const CHARSTRING& p__IPv4__SourceAddr, const CHARSTRING& p__IPv4__DestAddr, const CHARSTRING& p__IPv6__SourceAddr, const CHARSTRING& p__IPv6__DestAddr, const INTEGER& p__IPv6__FlowLabel, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__IPSecSPI, const OCTETSTRING& p__TOS__TC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn", 35, TTCN_Location::LOCATION_FUNCTION, "f_PacketFilterTest_CreateDatagram"); +charstring_list param_names; +param_names[0] = "p_IpTypeIsIPv4"; +param_names[1] = "p_Protocol"; +param_names[2] = "p_IPv4_SourceAddr"; +param_names[3] = "p_IPv4_DestAddr"; +param_names[4] = "p_IPv6_SourceAddr"; +param_names[5] = "p_IPv6_DestAddr"; +param_names[6] = "p_IPv6_FlowLabel"; +param_names[7] = "p_SourcePort"; +param_names[8] = "p_DestPort"; +param_names[9] = "p_IPSecSPI"; +param_names[10] = "p_TOS_TC"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +TTCN3_Debug_Function debug_scope("f_PacketFilterTest_CreateDatagram", "function", "LoopbackIP_PacketFilterTest", param_names, param_types, NULL); +debug_scope.add_variable(&p__IpTypeIsIPv4, "p_IpTypeIsIPv4", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Protocol, "p_Protocol", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPv4__SourceAddr, "p_IPv4_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPv4__DestAddr, "p_IPv4_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPv6__SourceAddr, "p_IPv6_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPv6__DestAddr, "p_IPv6_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPv6__FlowLabel, "p_IPv6_FlowLabel", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SourcePort, "p_SourcePort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DestPort, "p_DestPort", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IPSecSPI, "p_IPSecSPI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TOS__TC, "p_TOS_TC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(47); +ttcn3_debugger.breakpoint_entry(47); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 47 */ +OCTETSTRING v__IpPacket; +debug_scope.add_variable(&v__IpPacket, "v_IpPacket", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(48); +ttcn3_debugger.breakpoint_entry(48); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 48 */ +OCTETSTRING v__IPPayload; +debug_scope.add_variable(&v__IPPayload, "v_IPPayload", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(50); +ttcn3_debugger.breakpoint_entry(50); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 50 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +{ +const INTEGER &tmp_1 = p__Protocol; +switch(tmp_1.get_long_long_val()) { +case(17): +{ +current_location.update_lineno(53); +ttcn3_debugger.breakpoint_entry(53); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 53 */ +v__IPPayload = LoopbackIP::f__IPv4UdpDatagram__Create(p__IPv4__SourceAddr, p__IPv4__DestAddr, p__SourcePort, p__DestPort, CommonIP::tsc__IP__AnyData); +break; +} +case(6): +{ +current_location.update_lineno(56); +ttcn3_debugger.breakpoint_entry(56); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 56 */ +v__IPPayload = LoopbackIP::f__IPv4TcpDatagram__Create(p__IPv4__SourceAddr, p__IPv4__DestAddr, p__SourcePort, p__DestPort, CommonIP::tsc__IP__AnyData); +break; +} +case(50): +{ +current_location.update_lineno(59); +ttcn3_debugger.breakpoint_entry(59); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 59 */ +v__IPPayload = LoopbackIP::f__IPSecESPDatagram__Create(p__Protocol, p__IPSecSPI, LoopbackIP::f__IPv4UdpDatagram__Create(p__IPv4__SourceAddr, p__IPv4__DestAddr, p__SourcePort, p__DestPort, CommonIP::tsc__IP__AnyData)); +break; +} +};} +current_location.update_lineno(64); +ttcn3_debugger.breakpoint_entry(64); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 64 */ +v__IpPacket = LoopbackIP::f__IPv4Packet__Create(LoopbackIP::f__IPv4Packet__Create_p__Identification_defval, p__TOS__TC, p__Protocol, p__IPv4__SourceAddr, p__IPv4__DestAddr, v__IPPayload); +} +else { +TTCN3_Debug_Scope debug_scope; +{ +const INTEGER &tmp_7 = p__Protocol; +switch(tmp_7.get_long_long_val()) { +case(17): +{ +current_location.update_lineno(69); +ttcn3_debugger.breakpoint_entry(69); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 69 */ +v__IPPayload = LoopbackIP::f__IPv6UdpDatagram__Create(p__IPv6__SourceAddr, p__IPv6__DestAddr, p__SourcePort, p__DestPort, CommonIP::tsc__IP__AnyData); +break; +} +case(6): +{ +current_location.update_lineno(72); +ttcn3_debugger.breakpoint_entry(72); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 72 */ +v__IPPayload = LoopbackIP::f__IPv6TcpDatagram__Create(p__IPv6__SourceAddr, p__IPv6__DestAddr, p__SourcePort, p__DestPort, CommonIP::tsc__IP__AnyData); +break; +} +case(50): +{ +current_location.update_lineno(75); +ttcn3_debugger.breakpoint_entry(75); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 75 */ +v__IPPayload = LoopbackIP::f__IPSecESPDatagram__Create(p__Protocol, p__IPSecSPI, LoopbackIP::f__IPv6UdpDatagram__Create(p__IPv6__SourceAddr, p__IPv6__DestAddr, p__SourcePort, p__DestPort, CommonIP::tsc__IP__AnyData)); +break; +} +};} +current_location.update_lineno(80); +ttcn3_debugger.breakpoint_entry(80); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 80 */ +v__IpPacket = CommonIP::f__IPv6Packet__Create(p__TOS__TC, p__IPv6__FlowLabel, p__Protocol, CommonIP::f__IPv6Packet__Create_p__HopCount_defval, p__IPv6__SourceAddr, p__IPv6__DestAddr, v__IPPayload); +} +current_location.update_lineno(83); +ttcn3_debugger.breakpoint_entry(83); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 83 */ +{ +OCTETSTRING tmp_12; +return DEBUGGER_STORE_RETURN_VALUE(tmp_12, v__IpPacket); +} +} + +OCTETSTRING f__PacketFilterTest__CreateDatagram__10__9__1(const BOOLEAN& p__IpTypeIsIPv4, const INTEGER& p__Index) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn", 94, TTCN_Location::LOCATION_FUNCTION, "f_PacketFilterTest_CreateDatagram_10_9_1"); +charstring_list param_names; +param_names[0] = "p_IpTypeIsIPv4"; +param_names[1] = "p_Index"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_PacketFilterTest_CreateDatagram_10_9_1", "function", "LoopbackIP_PacketFilterTest", param_names, param_types, NULL); +debug_scope.add_variable(&p__IpTypeIsIPv4, "p_IpTypeIsIPv4", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Index, "p_Index", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(97); +ttcn3_debugger.breakpoint_entry(97); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 97 */ +CHARSTRING v__IPv4__SourceAddr(cs_0); +debug_scope.add_variable(&v__IPv4__SourceAddr, "v_IPv4_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(98); +ttcn3_debugger.breakpoint_entry(98); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 98 */ +CHARSTRING v__IPv4__DestAddr(cs_1); +debug_scope.add_variable(&v__IPv4__DestAddr, "v_IPv4_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 99 */ +CHARSTRING v__IPv6__SourceAddr(cs_2); +debug_scope.add_variable(&v__IPv6__SourceAddr, "v_IPv6_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(100); +ttcn3_debugger.breakpoint_entry(100); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 100 */ +CHARSTRING v__IPv6__DestAddr(cs_3); +debug_scope.add_variable(&v__IPv6__DestAddr, "v_IPv6_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(101); +ttcn3_debugger.breakpoint_entry(101); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 101 */ +INTEGER v__IPv6__FlowLabel(10); +debug_scope.add_variable(&v__IPv6__FlowLabel, "v_IPv6_FlowLabel", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(102); +ttcn3_debugger.breakpoint_entry(102); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 102 */ +INTEGER v__SourcePort; +debug_scope.add_variable(&v__SourcePort, "v_SourcePort", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(103); +ttcn3_debugger.breakpoint_entry(103); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 103 */ +INTEGER v__DestPort; +debug_scope.add_variable(&v__DestPort, "v_DestPort", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(104); +ttcn3_debugger.breakpoint_entry(104); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 104 */ +OCTETSTRING v__TOS__TC; +debug_scope.add_variable(&v__TOS__TC, "v_TOS_TC", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(105); +ttcn3_debugger.breakpoint_entry(105); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 105 */ +INTEGER v__Protocol; +debug_scope.add_variable(&v__Protocol, "v_Protocol", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(106); +ttcn3_debugger.breakpoint_entry(106); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 106 */ +OCTETSTRING v__IPSecSPI(os_0); +debug_scope.add_variable(&v__IPSecSPI, "v_IPSecSPI", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const INTEGER &tmp_14 = p__Index; +switch(tmp_14.get_long_long_val()) { +case(1): +{ +current_location.update_lineno(110); +ttcn3_debugger.breakpoint_entry(110); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 110 */ +v__Protocol = CommonIP::tsc__IP__Protocol__UDP; +current_location.update_lineno(111); +ttcn3_debugger.breakpoint_entry(111); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 111 */ +v__SourcePort = 60001; +current_location.update_lineno(112); +ttcn3_debugger.breakpoint_entry(112); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 112 */ +v__DestPort = 60350; +current_location.update_lineno(113); +ttcn3_debugger.breakpoint_entry(113); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 113 */ +v__TOS__TC = os_1; +break; +} +case(2): +{ +current_location.update_lineno(116); +ttcn3_debugger.breakpoint_entry(116); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 116 */ +v__Protocol = CommonIP::tsc__IP__Protocol__UDP; +current_location.update_lineno(117); +ttcn3_debugger.breakpoint_entry(117); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 117 */ +v__SourcePort = 60001; +current_location.update_lineno(118); +ttcn3_debugger.breakpoint_entry(118); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 118 */ +v__DestPort = 60350; +current_location.update_lineno(119); +ttcn3_debugger.breakpoint_entry(119); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 119 */ +v__TOS__TC = os_1; +current_location.update_lineno(120); +ttcn3_debugger.breakpoint_entry(120); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 120 */ +v__IPv4__DestAddr = cs_4; +current_location.update_lineno(121); +ttcn3_debugger.breakpoint_entry(121); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 121 */ +v__IPv6__DestAddr = cs_5; +break; +} +case(3): +{ +current_location.update_lineno(124); +ttcn3_debugger.breakpoint_entry(124); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 124 */ +v__Protocol = CommonIP::tsc__IP__Protocol__TCP; +current_location.update_lineno(125); +ttcn3_debugger.breakpoint_entry(125); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 125 */ +v__SourcePort = 60001; +current_location.update_lineno(126); +ttcn3_debugger.breakpoint_entry(126); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 126 */ +v__DestPort = 60350; +current_location.update_lineno(127); +ttcn3_debugger.breakpoint_entry(127); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 127 */ +v__TOS__TC = os_1; +break; +} +case(4): +{ +current_location.update_lineno(130); +ttcn3_debugger.breakpoint_entry(130); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 130 */ +v__Protocol = CommonIP::tsc__IP__Protocol__UDP; +current_location.update_lineno(131); +ttcn3_debugger.breakpoint_entry(131); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 131 */ +v__SourcePort = 60002; +current_location.update_lineno(132); +ttcn3_debugger.breakpoint_entry(132); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 132 */ +v__DestPort = 60350; +current_location.update_lineno(133); +ttcn3_debugger.breakpoint_entry(133); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 133 */ +v__TOS__TC = os_1; +break; +} +case(5): +{ +current_location.update_lineno(136); +ttcn3_debugger.breakpoint_entry(136); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 136 */ +v__Protocol = CommonIP::tsc__IP__Protocol__UDP; +current_location.update_lineno(137); +ttcn3_debugger.breakpoint_entry(137); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 137 */ +v__SourcePort = 60101; +current_location.update_lineno(138); +ttcn3_debugger.breakpoint_entry(138); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 138 */ +v__DestPort = 60350; +current_location.update_lineno(139); +ttcn3_debugger.breakpoint_entry(139); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 139 */ +v__TOS__TC = os_1; +break; +} +case(6): +{ +current_location.update_lineno(142); +ttcn3_debugger.breakpoint_entry(142); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 142 */ +v__Protocol = CommonIP::tsc__IP__Protocol__UDP; +current_location.update_lineno(143); +ttcn3_debugger.breakpoint_entry(143); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 143 */ +v__SourcePort = 60001; +current_location.update_lineno(144); +ttcn3_debugger.breakpoint_entry(144); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 144 */ +v__DestPort = 60351; +current_location.update_lineno(145); +ttcn3_debugger.breakpoint_entry(145); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 145 */ +v__TOS__TC = os_1; +break; +} +case(7): +{ +current_location.update_lineno(148); +ttcn3_debugger.breakpoint_entry(148); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 148 */ +v__Protocol = CommonIP::tsc__IP__Protocol__UDP; +current_location.update_lineno(149); +ttcn3_debugger.breakpoint_entry(149); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 149 */ +v__SourcePort = 60001; +current_location.update_lineno(150); +ttcn3_debugger.breakpoint_entry(150); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 150 */ +v__DestPort = 60451; +current_location.update_lineno(151); +ttcn3_debugger.breakpoint_entry(151); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 151 */ +v__TOS__TC = os_1; +break; +} +case(8): +{ +current_location.update_lineno(154); +ttcn3_debugger.breakpoint_entry(154); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 154 */ +v__Protocol = CommonIP::tsc__IP__Protocol__UDP; +current_location.update_lineno(155); +ttcn3_debugger.breakpoint_entry(155); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 155 */ +v__SourcePort = 60001; +current_location.update_lineno(156); +ttcn3_debugger.breakpoint_entry(156); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 156 */ +v__DestPort = 60350; +current_location.update_lineno(157); +ttcn3_debugger.breakpoint_entry(157); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 157 */ +v__TOS__TC = os_2; +break; +} +case(9): +{ +current_location.update_lineno(160); +ttcn3_debugger.breakpoint_entry(160); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 160 */ +v__Protocol = CommonIP::tsc__IP__Protocol__IPSec; +current_location.update_lineno(161); +ttcn3_debugger.breakpoint_entry(161); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 161 */ +v__SourcePort = 60101; +current_location.update_lineno(162); +ttcn3_debugger.breakpoint_entry(162); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 162 */ +v__DestPort = 60451; +current_location.update_lineno(163); +ttcn3_debugger.breakpoint_entry(163); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 163 */ +v__TOS__TC = os_3; +break; +} +case(10): +{ +current_location.update_lineno(166); +ttcn3_debugger.breakpoint_entry(166); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 166 */ +v__Protocol = CommonIP::tsc__IP__Protocol__IPSec; +current_location.update_lineno(167); +ttcn3_debugger.breakpoint_entry(167); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 167 */ +v__SourcePort = 60101; +current_location.update_lineno(168); +ttcn3_debugger.breakpoint_entry(168); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 168 */ +v__DestPort = 60451; +current_location.update_lineno(169); +ttcn3_debugger.breakpoint_entry(169); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 169 */ +v__TOS__TC = os_3; +current_location.update_lineno(170); +ttcn3_debugger.breakpoint_entry(170); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 170 */ +v__IPv4__DestAddr = cs_4; +current_location.update_lineno(171); +ttcn3_debugger.breakpoint_entry(171); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 171 */ +v__IPv6__DestAddr = cs_5; +break; +} +case(11): +{ +current_location.update_lineno(174); +ttcn3_debugger.breakpoint_entry(174); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 174 */ +v__Protocol = CommonIP::tsc__IP__Protocol__TCP; +current_location.update_lineno(175); +ttcn3_debugger.breakpoint_entry(175); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 175 */ +v__SourcePort = 60101; +current_location.update_lineno(176); +ttcn3_debugger.breakpoint_entry(176); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 176 */ +v__DestPort = 60451; +current_location.update_lineno(177); +ttcn3_debugger.breakpoint_entry(177); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 177 */ +v__TOS__TC = os_3; +break; +} +case(12): +{ +current_location.update_lineno(180); +ttcn3_debugger.breakpoint_entry(180); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 180 */ +v__Protocol = CommonIP::tsc__IP__Protocol__IPSec; +current_location.update_lineno(181); +ttcn3_debugger.breakpoint_entry(181); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 181 */ +v__SourcePort = 60101; +current_location.update_lineno(182); +ttcn3_debugger.breakpoint_entry(182); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 182 */ +v__DestPort = 60451; +current_location.update_lineno(183); +ttcn3_debugger.breakpoint_entry(183); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 183 */ +v__TOS__TC = os_3; +current_location.update_lineno(184); +ttcn3_debugger.breakpoint_entry(184); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 184 */ +v__IPSecSPI = os_4; +break; +} +case(13): +{ +current_location.update_lineno(187); +ttcn3_debugger.breakpoint_entry(187); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 187 */ +v__Protocol = CommonIP::tsc__IP__Protocol__IPSec; +current_location.update_lineno(188); +ttcn3_debugger.breakpoint_entry(188); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 188 */ +v__SourcePort = 60101; +current_location.update_lineno(189); +ttcn3_debugger.breakpoint_entry(189); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 189 */ +v__DestPort = 60451; +current_location.update_lineno(190); +ttcn3_debugger.breakpoint_entry(190); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 190 */ +v__TOS__TC = os_2; +break; +} +case(14): +{ +current_location.update_lineno(193); +ttcn3_debugger.breakpoint_entry(193); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 193 */ +v__Protocol = CommonIP::tsc__IP__Protocol__TCP; +current_location.update_lineno(194); +ttcn3_debugger.breakpoint_entry(194); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 194 */ +v__SourcePort = 60101; +current_location.update_lineno(195); +ttcn3_debugger.breakpoint_entry(195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 195 */ +v__DestPort = 60451; +current_location.update_lineno(196); +ttcn3_debugger.breakpoint_entry(196); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 196 */ +v__TOS__TC = os_5; +current_location.update_lineno(197); +ttcn3_debugger.breakpoint_entry(197); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 197 */ +v__IPv6__FlowLabel = 5; +current_location.update_lineno(199); +ttcn3_debugger.breakpoint_entry(199); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 199 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(200); +ttcn3_debugger.breakpoint_entry(200); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 200 */ +CommonDefs::FatalError(cs_6, 200, cs_7); +} +break; +} +case(15): +{ +current_location.update_lineno(204); +ttcn3_debugger.breakpoint_entry(204); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 204 */ +v__Protocol = CommonIP::tsc__IP__Protocol__TCP; +current_location.update_lineno(205); +ttcn3_debugger.breakpoint_entry(205); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 205 */ +v__SourcePort = 60101; +current_location.update_lineno(206); +ttcn3_debugger.breakpoint_entry(206); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 206 */ +v__DestPort = 60451; +current_location.update_lineno(207); +ttcn3_debugger.breakpoint_entry(207); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 207 */ +v__TOS__TC = os_5; +current_location.update_lineno(208); +ttcn3_debugger.breakpoint_entry(208); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 208 */ +v__IPv6__FlowLabel = 5; +current_location.update_lineno(209); +ttcn3_debugger.breakpoint_entry(209); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 209 */ +v__IPv6__DestAddr = cs_5; +current_location.update_lineno(211); +ttcn3_debugger.breakpoint_entry(211); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 211 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(212); +ttcn3_debugger.breakpoint_entry(212); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 212 */ +CommonDefs::FatalError(cs_6, 212, cs_8); +} +break; +} +case(16): +{ +current_location.update_lineno(216); +ttcn3_debugger.breakpoint_entry(216); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 216 */ +v__Protocol = CommonIP::tsc__IP__Protocol__TCP; +current_location.update_lineno(217); +ttcn3_debugger.breakpoint_entry(217); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 217 */ +v__SourcePort = 60101; +current_location.update_lineno(218); +ttcn3_debugger.breakpoint_entry(218); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 218 */ +v__DestPort = 60451; +current_location.update_lineno(219); +ttcn3_debugger.breakpoint_entry(219); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 219 */ +v__TOS__TC = os_2; +current_location.update_lineno(220); +ttcn3_debugger.breakpoint_entry(220); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 220 */ +v__IPv6__FlowLabel = 5; +current_location.update_lineno(222); +ttcn3_debugger.breakpoint_entry(222); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 222 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(223); +ttcn3_debugger.breakpoint_entry(223); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 223 */ +CommonDefs::FatalError(cs_6, 223, cs_9); +} +break; +} +case(17): +{ +current_location.update_lineno(227); +ttcn3_debugger.breakpoint_entry(227); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 227 */ +v__Protocol = CommonIP::tsc__IP__Protocol__TCP; +current_location.update_lineno(228); +ttcn3_debugger.breakpoint_entry(228); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 228 */ +v__SourcePort = 60101; +current_location.update_lineno(229); +ttcn3_debugger.breakpoint_entry(229); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 229 */ +v__DestPort = 60451; +current_location.update_lineno(230); +ttcn3_debugger.breakpoint_entry(230); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 230 */ +v__TOS__TC = os_5; +current_location.update_lineno(231); +ttcn3_debugger.breakpoint_entry(231); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 231 */ +v__IPv6__FlowLabel = 10; +current_location.update_lineno(233); +ttcn3_debugger.breakpoint_entry(233); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 233 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(234); +ttcn3_debugger.breakpoint_entry(234); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 234 */ +CommonDefs::FatalError(cs_6, 234, cs_10); +} +break; +} +case(18): +{ +current_location.update_lineno(238); +ttcn3_debugger.breakpoint_entry(238); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 238 */ +v__Protocol = CommonIP::tsc__IP__Protocol__TCP; +current_location.update_lineno(239); +ttcn3_debugger.breakpoint_entry(239); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 239 */ +v__SourcePort = 60101; +current_location.update_lineno(240); +ttcn3_debugger.breakpoint_entry(240); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 240 */ +v__DestPort = 60451; +current_location.update_lineno(241); +ttcn3_debugger.breakpoint_entry(241); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 241 */ +v__TOS__TC = os_6; +break; +} +case(19): +{ +current_location.update_lineno(244); +ttcn3_debugger.breakpoint_entry(244); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 244 */ +v__Protocol = CommonIP::tsc__IP__Protocol__TCP; +current_location.update_lineno(245); +ttcn3_debugger.breakpoint_entry(245); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 245 */ +v__SourcePort = 60101; +current_location.update_lineno(246); +ttcn3_debugger.breakpoint_entry(246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 246 */ +v__DestPort = 60451; +current_location.update_lineno(247); +ttcn3_debugger.breakpoint_entry(247); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 247 */ +v__TOS__TC = os_6; +current_location.update_lineno(248); +ttcn3_debugger.breakpoint_entry(248); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 248 */ +v__IPv4__DestAddr = cs_4; +current_location.update_lineno(249); +ttcn3_debugger.breakpoint_entry(249); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 249 */ +v__IPv6__DestAddr = cs_11; +break; +} +default: +{ +current_location.update_lineno(253); +ttcn3_debugger.breakpoint_entry(253); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 253 */ +CommonDefs::FatalError(cs_6, 253, cs_12); +break; +} +};} +current_location.update_lineno(256); +ttcn3_debugger.breakpoint_entry(256); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn, line 256 */ +{ +OCTETSTRING tmp_103; +return DEBUGGER_STORE_RETURN_VALUE(tmp_103, f__PacketFilterTest__CreateDatagram(p__IpTypeIsIPv4, v__Protocol, v__IPv4__SourceAddr, v__IPv4__DestAddr, v__IPv6__SourceAddr, v__IPv6__DestAddr, v__IPv6__FlowLabel, v__SourcePort, v__DestPort, v__IPSecSPI, v__TOS__TC)); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LoopbackIP_PacketFilterTest"); +LoopbackIP__PacketFilterTest::init_ttcn3_debugger(); +LoopbackIP::module_object.pre_init_module(); +module_object.add_function("f_PacketFilterTest_CreateDatagram", (genericfunc_t)&f__PacketFilterTest__CreateDatagram, NULL); +module_object.add_function("f_PacketFilterTest_CreateDatagram_10_9_1", (genericfunc_t)&f__PacketFilterTest__CreateDatagram__10__9__1, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/CommonIP/LoopbackIP_PacketFilterTest.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "LoopbackIP_PacketFilterTest"); +LoopbackIP::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/LoopbackIP_PacketFilterTest.hh b/build/Ats_NG_NAS/LoopbackIP_PacketFilterTest.hh new file mode 100644 index 0000000000000000000000000000000000000000..93df6d91e2c0426ca49c6ed64152ba579b2a1c65 --- /dev/null +++ b/build/Ats_NG_NAS/LoopbackIP_PacketFilterTest.hh @@ -0,0 +1,45 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef LoopbackIP__PacketFilterTest_HH +#define LoopbackIP__PacketFilterTest_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "LoopbackIP.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace LoopbackIP__PacketFilterTest { + +/* Function prototypes */ + +extern OCTETSTRING f__PacketFilterTest__CreateDatagram(const BOOLEAN& p__IpTypeIsIPv4, const INTEGER& p__Protocol, const CHARSTRING& p__IPv4__SourceAddr, const CHARSTRING& p__IPv4__DestAddr, const CHARSTRING& p__IPv6__SourceAddr, const CHARSTRING& p__IPv6__DestAddr, const INTEGER& p__IPv6__FlowLabel, const INTEGER& p__SourcePort, const INTEGER& p__DestPort, const OCTETSTRING& p__IPSecSPI, const OCTETSTRING& p__TOS__TC); +extern OCTETSTRING f__PacketFilterTest__CreateDatagram__10__9__1(const BOOLEAN& p__IpTypeIsIPv4, const INTEGER& p__Index); + +/* Global variable declarations */ + +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/LoopbackIP_PacketFilterTest.o b/build/Ats_NG_NAS/LoopbackIP_PacketFilterTest.o new file mode 100644 index 0000000000000000000000000000000000000000..82a6ef02217a52fb78136d75aee237d4b15763cc Binary files /dev/null and b/build/Ats_NG_NAS/LoopbackIP_PacketFilterTest.o differ diff --git a/build/Ats_NG_NAS/NAS_5GC_Parameters.cc b/build/Ats_NG_NAS/NAS_5GC_Parameters.cc new file mode 100644 index 0000000000000000000000000000000000000000..146edc0fefc75376cd593524aa53d75d7286a0ae --- /dev/null +++ b/build/Ats_NG_NAS/NAS_5GC_Parameters.cc @@ -0,0 +1,462 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NAS_5GC_Parameters.hh" + +namespace NAS__5GC__Parameters { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); +static boolean set_module_param(Module_Param& param); +static Module_Param* get_module_param(Module_Param_Name& param_name); +static void log_module_param(); + +/* Literal string constants */ + +static const unsigned char bs_0_bits[] = { 4 }; +static const BITSTRING bs_0(4, bs_0_bits); +static const unsigned char module_checksum[] = { 0xe7, 0x1f, 0xc7, 0x74, 0xc4, 0xf8, 0xa0, 0x1f, 0x7e, 0xe8, 0x53, 0xd8, 0x9c, 0xef, 0x42, 0x54 }; + +/* Global variable definitions */ + +static INTEGER modulepar_pc__noOf__PDUsNewConnection; +const INTEGER& pc__noOf__PDUsNewConnection = modulepar_pc__noOf__PDUsNewConnection; +static INTEGER modulepar_pc__noOf__PDUsSameConnection; +const INTEGER& pc__noOf__PDUsSameConnection = modulepar_pc__noOf__PDUsSameConnection; +static NG__NAS__TypeDefs::NAS__5GC__AKA__Type modulepar_px__NAS__5GC__AuthenticationType; +const NG__NAS__TypeDefs::NAS__5GC__AKA__Type& px__NAS__5GC__AuthenticationType = modulepar_px__NAS__5GC__AuthenticationType; +static BITSTRING modulepar_px__NAS__5GC__CipheringAlgorithm; +const BITSTRING& px__NAS__5GC__CipheringAlgorithm = modulepar_px__NAS__5GC__CipheringAlgorithm; +static BITSTRING modulepar_px__NAS__5GC__IntegrityAlgorithm; +const BITSTRING& px__NAS__5GC__IntegrityAlgorithm = modulepar_px__NAS__5GC__IntegrityAlgorithm; +static INTEGER modulepar_px__NAS__5GC__XRES__Length; +const INTEGER& px__NAS__5GC__XRES__Length = modulepar_px__NAS__5GC__XRES__Length; +static BOOLEAN modulepar_pc__5GC__MUSIM; +const BOOLEAN& pc__5GC__MUSIM = modulepar_pc__5GC__MUSIM; +static BOOLEAN modulepar_pc__5GC__MUSIM__NCR; +const BOOLEAN& pc__5GC__MUSIM__NCR = modulepar_pc__5GC__MUSIM__NCR; +static BOOLEAN modulepar_pc__5GC__MUSIM__PIV; +const BOOLEAN& pc__5GC__MUSIM__PIV = modulepar_pc__5GC__MUSIM__PIV; +static BOOLEAN modulepar_pc__5GC__MUSIM__PR; +const BOOLEAN& pc__5GC__MUSIM__PR = modulepar_pc__5GC__MUSIM__PR; +static BOOLEAN modulepar_pc__5GC__MUSIM__RPR; +const BOOLEAN& pc__5GC__MUSIM__RPR = modulepar_pc__5GC__MUSIM__RPR; +static BOOLEAN modulepar_pc__5GC__RACS; +const BOOLEAN& pc__5GC__RACS = modulepar_pc__5GC__RACS; +static BOOLEAN modulepar_pc__5GC__RACS__Manufacturer__URCID; +const BOOLEAN& pc__5GC__RACS__Manufacturer__URCID = modulepar_pc__5GC__RACS__Manufacturer__URCID; +static BOOLEAN modulepar_pc__Additional__PDU__establishment; +const BOOLEAN& pc__Additional__PDU__establishment = modulepar_pc__Additional__PDU__establishment; +static BOOLEAN modulepar_pc__SNPN__EmergencyService; +const BOOLEAN& pc__SNPN__EmergencyService = modulepar_pc__SNPN__EmergencyService; +static BOOLEAN modulepar_pc__SNPN__PLMN; +const BOOLEAN& pc__SNPN__PLMN = modulepar_pc__SNPN__PLMN; +static BOOLEAN modulepar_pc__UserInitiated__SNPN__Reselection; +const BOOLEAN& pc__UserInitiated__SNPN__Reselection = modulepar_pc__UserInitiated__SNPN__Reselection; +static BOOLEAN modulepar_pc__V2XCNPC5; +const BOOLEAN& pc__V2XCNPC5 = modulepar_pc__V2XCNPC5; +static BOOLEAN modulepar_pc__accessing__SNPN__usingCH; +const BOOLEAN& pc__accessing__SNPN__usingCH = modulepar_pc__accessing__SNPN__usingCH; +static BOOLEAN modulepar_pc__musimLeaveConnected__r17; +const BOOLEAN& pc__musimLeaveConnected__r17 = modulepar_pc__musimLeaveConnected__r17; +static BOOLEAN modulepar_pc__musim__GapPreference__r17; +const BOOLEAN& pc__musim__GapPreference__r17 = modulepar_pc__musim__GapPreference__r17; +static BOOLEAN modulepar_pc__onboarding__SNPN; +const BOOLEAN& pc__onboarding__SNPN = modulepar_pc__onboarding__SNPN; +static BOOLEAN modulepar_pc__sms__over__NAS; +const BOOLEAN& pc__sms__over__NAS = modulepar_pc__sms__over__NAS; +TTCN_Module module_object("NAS_5GC_Parameters", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, set_module_param, get_module_param, log_module_param, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NAS_5GC_Parameters"); + global_scope->add_variable(&pc__5GC__MUSIM, "pc_5GC_MUSIM", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__5GC__MUSIM__NCR, "pc_5GC_MUSIM_NCR", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__5GC__MUSIM__PIV, "pc_5GC_MUSIM_PIV", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__5GC__MUSIM__PR, "pc_5GC_MUSIM_PR", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__5GC__MUSIM__RPR, "pc_5GC_MUSIM_RPR", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__5GC__RACS, "pc_5GC_RACS", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__5GC__RACS__Manufacturer__URCID, "pc_5GC_RACS_Manufacturer_URCID", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Additional__PDU__establishment, "pc_Additional_PDU_establishment", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SNPN__EmergencyService, "pc_SNPN_EmergencyService", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SNPN__PLMN, "pc_SNPN_PLMN", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UserInitiated__SNPN__Reselection, "pc_UserInitiated_SNPN_Reselection", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__V2XCNPC5, "pc_V2XCNPC5", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__accessing__SNPN__usingCH, "pc_accessing_SNPN_usingCH", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__musimLeaveConnected__r17, "pc_musimLeaveConnected_r17", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__musim__GapPreference__r17, "pc_musim_GapPreference_r17", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__noOf__PDUsNewConnection, "pc_noOf_PDUsNewConnection", "integer", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__noOf__PDUsSameConnection, "pc_noOf_PDUsSameConnection", "integer", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__onboarding__SNPN, "pc_onboarding_SNPN", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__sms__over__NAS, "pc_sms_over_NAS", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__NAS__5GC__AuthenticationType, "px_NAS_5GC_AuthenticationType", "NAS_5GC_AKA_Type", "NAS_5GC_Parameters", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&px__NAS__5GC__CipheringAlgorithm, "px_NAS_5GC_CipheringAlgorithm", "bitstring", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__NAS__5GC__IntegrityAlgorithm, "px_NAS_5GC_IntegrityAlgorithm", "bitstring", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__NAS__5GC__XRES__Length, "px_NAS_5GC_XRES_Length", "integer", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); +} + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_5GC_Parameters"); +NAS__5GC__Parameters::init_ttcn3_debugger(); +NG__NAS__TypeDefs::module_object.pre_init_module(); +module_object.add_modulepar("pc_noOf_PDUsNewConnection"); +module_object.add_modulepar("pc_noOf_PDUsSameConnection"); +current_location.update_lineno(27); +ttcn3_debugger.breakpoint_entry(27); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 27 */ +modulepar_px__NAS__5GC__AuthenticationType = NG__NAS__TypeDefs::NAS__5GC__AKA__Type::AKA__5G; +module_object.add_modulepar("px_NAS_5GC_AuthenticationType"); +current_location.update_lineno(30); +ttcn3_debugger.breakpoint_entry(30); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 30 */ +modulepar_px__NAS__5GC__CipheringAlgorithm = bs_0; +module_object.add_modulepar("px_NAS_5GC_CipheringAlgorithm"); +current_location.update_lineno(32); +ttcn3_debugger.breakpoint_entry(32); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 32 */ +modulepar_px__NAS__5GC__IntegrityAlgorithm = bs_0; +module_object.add_modulepar("px_NAS_5GC_IntegrityAlgorithm"); +current_location.update_lineno(34); +ttcn3_debugger.breakpoint_entry(34); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 34 */ +modulepar_px__NAS__5GC__XRES__Length = 16; +module_object.add_modulepar("px_NAS_5GC_XRES_Length"); +current_location.update_lineno(40); +ttcn3_debugger.breakpoint_entry(40); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 40 */ +modulepar_pc__5GC__MUSIM = FALSE; +module_object.add_modulepar("pc_5GC_MUSIM"); +current_location.update_lineno(43); +ttcn3_debugger.breakpoint_entry(43); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 43 */ +modulepar_pc__5GC__MUSIM__NCR = FALSE; +module_object.add_modulepar("pc_5GC_MUSIM_NCR"); +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 46 */ +modulepar_pc__5GC__MUSIM__PIV = FALSE; +module_object.add_modulepar("pc_5GC_MUSIM_PIV"); +current_location.update_lineno(49); +ttcn3_debugger.breakpoint_entry(49); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 49 */ +modulepar_pc__5GC__MUSIM__PR = FALSE; +module_object.add_modulepar("pc_5GC_MUSIM_PR"); +current_location.update_lineno(52); +ttcn3_debugger.breakpoint_entry(52); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 52 */ +modulepar_pc__5GC__MUSIM__RPR = FALSE; +module_object.add_modulepar("pc_5GC_MUSIM_RPR"); +current_location.update_lineno(55); +ttcn3_debugger.breakpoint_entry(55); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 55 */ +modulepar_pc__5GC__RACS = FALSE; +module_object.add_modulepar("pc_5GC_RACS"); +current_location.update_lineno(58); +ttcn3_debugger.breakpoint_entry(58); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 58 */ +modulepar_pc__5GC__RACS__Manufacturer__URCID = FALSE; +module_object.add_modulepar("pc_5GC_RACS_Manufacturer_URCID"); +current_location.update_lineno(61); +ttcn3_debugger.breakpoint_entry(61); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 61 */ +modulepar_pc__Additional__PDU__establishment = FALSE; +module_object.add_modulepar("pc_Additional_PDU_establishment"); +current_location.update_lineno(64); +ttcn3_debugger.breakpoint_entry(64); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 64 */ +modulepar_pc__SNPN__EmergencyService = FALSE; +module_object.add_modulepar("pc_SNPN_EmergencyService"); +current_location.update_lineno(67); +ttcn3_debugger.breakpoint_entry(67); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 67 */ +modulepar_pc__SNPN__PLMN = FALSE; +module_object.add_modulepar("pc_SNPN_PLMN"); +current_location.update_lineno(70); +ttcn3_debugger.breakpoint_entry(70); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 70 */ +modulepar_pc__UserInitiated__SNPN__Reselection = FALSE; +module_object.add_modulepar("pc_UserInitiated_SNPN_Reselection"); +current_location.update_lineno(73); +ttcn3_debugger.breakpoint_entry(73); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 73 */ +modulepar_pc__V2XCNPC5 = FALSE; +module_object.add_modulepar("pc_V2XCNPC5"); +current_location.update_lineno(76); +ttcn3_debugger.breakpoint_entry(76); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 76 */ +modulepar_pc__accessing__SNPN__usingCH = FALSE; +module_object.add_modulepar("pc_accessing_SNPN_usingCH"); +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 79 */ +modulepar_pc__musimLeaveConnected__r17 = FALSE; +module_object.add_modulepar("pc_musimLeaveConnected_r17"); +current_location.update_lineno(82); +ttcn3_debugger.breakpoint_entry(82); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 82 */ +modulepar_pc__musim__GapPreference__r17 = FALSE; +module_object.add_modulepar("pc_musim_GapPreference_r17"); +current_location.update_lineno(85); +ttcn3_debugger.breakpoint_entry(85); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 85 */ +modulepar_pc__onboarding__SNPN = FALSE; +module_object.add_modulepar("pc_onboarding_SNPN"); +current_location.update_lineno(88); +ttcn3_debugger.breakpoint_entry(88); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn, line 88 */ +modulepar_pc__sms__over__NAS = FALSE; +module_object.add_modulepar("pc_sms_over_NAS"); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/NAS_5GC_Parameters.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_5GC_Parameters"); +NG__NAS__TypeDefs::module_object.post_init_module(); +} + +static boolean set_module_param(Module_Param& param) +{ +const char* const par_name = param.get_id()->get_current_name(); +if (!strcmp(par_name, "pc_noOf_PDUsNewConnection")) { +modulepar_pc__noOf__PDUsNewConnection.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_noOf_PDUsSameConnection")) { +modulepar_pc__noOf__PDUsSameConnection.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_NAS_5GC_AuthenticationType")) { +modulepar_px__NAS__5GC__AuthenticationType.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_NAS_5GC_CipheringAlgorithm")) { +modulepar_px__NAS__5GC__CipheringAlgorithm.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_NAS_5GC_IntegrityAlgorithm")) { +modulepar_px__NAS__5GC__IntegrityAlgorithm.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_NAS_5GC_XRES_Length")) { +modulepar_px__NAS__5GC__XRES__Length.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_5GC_MUSIM")) { +modulepar_pc__5GC__MUSIM.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_5GC_MUSIM_NCR")) { +modulepar_pc__5GC__MUSIM__NCR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_5GC_MUSIM_PIV")) { +modulepar_pc__5GC__MUSIM__PIV.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_5GC_MUSIM_PR")) { +modulepar_pc__5GC__MUSIM__PR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_5GC_MUSIM_RPR")) { +modulepar_pc__5GC__MUSIM__RPR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_5GC_RACS")) { +modulepar_pc__5GC__RACS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_5GC_RACS_Manufacturer_URCID")) { +modulepar_pc__5GC__RACS__Manufacturer__URCID.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Additional_PDU_establishment")) { +modulepar_pc__Additional__PDU__establishment.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SNPN_EmergencyService")) { +modulepar_pc__SNPN__EmergencyService.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SNPN_PLMN")) { +modulepar_pc__SNPN__PLMN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UserInitiated_SNPN_Reselection")) { +modulepar_pc__UserInitiated__SNPN__Reselection.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_V2XCNPC5")) { +modulepar_pc__V2XCNPC5.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_accessing_SNPN_usingCH")) { +modulepar_pc__accessing__SNPN__usingCH.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_musimLeaveConnected_r17")) { +modulepar_pc__musimLeaveConnected__r17.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_musim_GapPreference_r17")) { +modulepar_pc__musim__GapPreference__r17.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_onboarding_SNPN")) { +modulepar_pc__onboarding__SNPN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_sms_over_NAS")) { +modulepar_pc__sms__over__NAS.set_param(param); +return TRUE; +} else return FALSE; +} + +static Module_Param* get_module_param(Module_Param_Name& param_name) +{ +const char* const par_name = param_name.get_current_name(); +if (!strcmp(par_name, "pc_noOf_PDUsNewConnection")) { +return modulepar_pc__noOf__PDUsNewConnection.get_param(param_name); +} else if (!strcmp(par_name, "pc_noOf_PDUsSameConnection")) { +return modulepar_pc__noOf__PDUsSameConnection.get_param(param_name); +} else if (!strcmp(par_name, "px_NAS_5GC_AuthenticationType")) { +return modulepar_px__NAS__5GC__AuthenticationType.get_param(param_name); +} else if (!strcmp(par_name, "px_NAS_5GC_CipheringAlgorithm")) { +return modulepar_px__NAS__5GC__CipheringAlgorithm.get_param(param_name); +} else if (!strcmp(par_name, "px_NAS_5GC_IntegrityAlgorithm")) { +return modulepar_px__NAS__5GC__IntegrityAlgorithm.get_param(param_name); +} else if (!strcmp(par_name, "px_NAS_5GC_XRES_Length")) { +return modulepar_px__NAS__5GC__XRES__Length.get_param(param_name); +} else if (!strcmp(par_name, "pc_5GC_MUSIM")) { +return modulepar_pc__5GC__MUSIM.get_param(param_name); +} else if (!strcmp(par_name, "pc_5GC_MUSIM_NCR")) { +return modulepar_pc__5GC__MUSIM__NCR.get_param(param_name); +} else if (!strcmp(par_name, "pc_5GC_MUSIM_PIV")) { +return modulepar_pc__5GC__MUSIM__PIV.get_param(param_name); +} else if (!strcmp(par_name, "pc_5GC_MUSIM_PR")) { +return modulepar_pc__5GC__MUSIM__PR.get_param(param_name); +} else if (!strcmp(par_name, "pc_5GC_MUSIM_RPR")) { +return modulepar_pc__5GC__MUSIM__RPR.get_param(param_name); +} else if (!strcmp(par_name, "pc_5GC_RACS")) { +return modulepar_pc__5GC__RACS.get_param(param_name); +} else if (!strcmp(par_name, "pc_5GC_RACS_Manufacturer_URCID")) { +return modulepar_pc__5GC__RACS__Manufacturer__URCID.get_param(param_name); +} else if (!strcmp(par_name, "pc_Additional_PDU_establishment")) { +return modulepar_pc__Additional__PDU__establishment.get_param(param_name); +} else if (!strcmp(par_name, "pc_SNPN_EmergencyService")) { +return modulepar_pc__SNPN__EmergencyService.get_param(param_name); +} else if (!strcmp(par_name, "pc_SNPN_PLMN")) { +return modulepar_pc__SNPN__PLMN.get_param(param_name); +} else if (!strcmp(par_name, "pc_UserInitiated_SNPN_Reselection")) { +return modulepar_pc__UserInitiated__SNPN__Reselection.get_param(param_name); +} else if (!strcmp(par_name, "pc_V2XCNPC5")) { +return modulepar_pc__V2XCNPC5.get_param(param_name); +} else if (!strcmp(par_name, "pc_accessing_SNPN_usingCH")) { +return modulepar_pc__accessing__SNPN__usingCH.get_param(param_name); +} else if (!strcmp(par_name, "pc_musimLeaveConnected_r17")) { +return modulepar_pc__musimLeaveConnected__r17.get_param(param_name); +} else if (!strcmp(par_name, "pc_musim_GapPreference_r17")) { +return modulepar_pc__musim__GapPreference__r17.get_param(param_name); +} else if (!strcmp(par_name, "pc_onboarding_SNPN")) { +return modulepar_pc__onboarding__SNPN.get_param(param_name); +} else if (!strcmp(par_name, "pc_sms_over_NAS")) { +return modulepar_pc__sms__over__NAS.get_param(param_name); +} else return NULL; +} + +static void log_module_param() +{ +TTCN_Logger::log_event_str("pc_noOf_PDUsNewConnection := "); +pc__noOf__PDUsNewConnection.log(); +TTCN_Logger::log_event_str(", pc_noOf_PDUsSameConnection := "); +pc__noOf__PDUsSameConnection.log(); +TTCN_Logger::log_event_str(", px_NAS_5GC_AuthenticationType := "); +px__NAS__5GC__AuthenticationType.log(); +TTCN_Logger::log_event_str(", px_NAS_5GC_CipheringAlgorithm := "); +px__NAS__5GC__CipheringAlgorithm.log(); +TTCN_Logger::log_event_str(", px_NAS_5GC_IntegrityAlgorithm := "); +px__NAS__5GC__IntegrityAlgorithm.log(); +TTCN_Logger::log_event_str(", px_NAS_5GC_XRES_Length := "); +px__NAS__5GC__XRES__Length.log(); +TTCN_Logger::log_event_str(", pc_5GC_MUSIM := "); +pc__5GC__MUSIM.log(); +TTCN_Logger::log_event_str(", pc_5GC_MUSIM_NCR := "); +pc__5GC__MUSIM__NCR.log(); +TTCN_Logger::log_event_str(", pc_5GC_MUSIM_PIV := "); +pc__5GC__MUSIM__PIV.log(); +TTCN_Logger::log_event_str(", pc_5GC_MUSIM_PR := "); +pc__5GC__MUSIM__PR.log(); +TTCN_Logger::log_event_str(", pc_5GC_MUSIM_RPR := "); +pc__5GC__MUSIM__RPR.log(); +TTCN_Logger::log_event_str(", pc_5GC_RACS := "); +pc__5GC__RACS.log(); +TTCN_Logger::log_event_str(", pc_5GC_RACS_Manufacturer_URCID := "); +pc__5GC__RACS__Manufacturer__URCID.log(); +TTCN_Logger::log_event_str(", pc_Additional_PDU_establishment := "); +pc__Additional__PDU__establishment.log(); +TTCN_Logger::log_event_str(", pc_SNPN_EmergencyService := "); +pc__SNPN__EmergencyService.log(); +TTCN_Logger::log_event_str(", pc_SNPN_PLMN := "); +pc__SNPN__PLMN.log(); +TTCN_Logger::log_event_str(", pc_UserInitiated_SNPN_Reselection := "); +pc__UserInitiated__SNPN__Reselection.log(); +TTCN_Logger::log_event_str(", pc_V2XCNPC5 := "); +pc__V2XCNPC5.log(); +TTCN_Logger::log_event_str(", pc_accessing_SNPN_usingCH := "); +pc__accessing__SNPN__usingCH.log(); +TTCN_Logger::log_event_str(", pc_musimLeaveConnected_r17 := "); +pc__musimLeaveConnected__r17.log(); +TTCN_Logger::log_event_str(", pc_musim_GapPreference_r17 := "); +pc__musim__GapPreference__r17.log(); +TTCN_Logger::log_event_str(", pc_onboarding_SNPN := "); +pc__onboarding__SNPN.log(); +TTCN_Logger::log_event_str(", pc_sms_over_NAS := "); +pc__sms__over__NAS.log(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NAS_5GC_Parameters.hh b/build/Ats_NG_NAS/NAS_5GC_Parameters.hh new file mode 100644 index 0000000000000000000000000000000000000000..052e9391e54cb810c631b0aef7324f3272d5f0c1 --- /dev/null +++ b/build/Ats_NG_NAS/NAS_5GC_Parameters.hh @@ -0,0 +1,63 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NAS__5GC__Parameters_HH +#define NAS__5GC__Parameters_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NG_NAS_TypeDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace NAS__5GC__Parameters { + +/* Global variable declarations */ + +extern const INTEGER& pc__noOf__PDUsNewConnection; +extern const INTEGER& pc__noOf__PDUsSameConnection; +extern const NG__NAS__TypeDefs::NAS__5GC__AKA__Type& px__NAS__5GC__AuthenticationType; +extern const BITSTRING& px__NAS__5GC__CipheringAlgorithm; +extern const BITSTRING& px__NAS__5GC__IntegrityAlgorithm; +extern const INTEGER& px__NAS__5GC__XRES__Length; +extern const BOOLEAN& pc__5GC__MUSIM; +extern const BOOLEAN& pc__5GC__MUSIM__NCR; +extern const BOOLEAN& pc__5GC__MUSIM__PIV; +extern const BOOLEAN& pc__5GC__MUSIM__PR; +extern const BOOLEAN& pc__5GC__MUSIM__RPR; +extern const BOOLEAN& pc__5GC__RACS; +extern const BOOLEAN& pc__5GC__RACS__Manufacturer__URCID; +extern const BOOLEAN& pc__Additional__PDU__establishment; +extern const BOOLEAN& pc__SNPN__EmergencyService; +extern const BOOLEAN& pc__SNPN__PLMN; +extern const BOOLEAN& pc__UserInitiated__SNPN__Reselection; +extern const BOOLEAN& pc__V2XCNPC5; +extern const BOOLEAN& pc__accessing__SNPN__usingCH; +extern const BOOLEAN& pc__musimLeaveConnected__r17; +extern const BOOLEAN& pc__musim__GapPreference__r17; +extern const BOOLEAN& pc__onboarding__SNPN; +extern const BOOLEAN& pc__sms__over__NAS; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NAS_5GC_Parameters.o b/build/Ats_NG_NAS/NAS_5GC_Parameters.o new file mode 100644 index 0000000000000000000000000000000000000000..01ad5de1af602f1973b7d68bda9a35eb7fee4179 Binary files /dev/null and b/build/Ats_NG_NAS/NAS_5GC_Parameters.o differ diff --git a/build/Ats_NG_NAS/NAS_AuthenticationCommon.cc b/build/Ats_NG_NAS/NAS_AuthenticationCommon.cc new file mode 100644 index 0000000000000000000000000000000000000000..c6400143f5ca5f027264fb028345241602463495 --- /dev/null +++ b/build/Ats_NG_NAS/NAS_AuthenticationCommon.cc @@ -0,0 +1,1756 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NAS_AuthenticationCommon.hh" + +namespace NAS__AuthenticationCommon { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char bs_5_bits[] = { 0 }, +bs_6_bits[] = { 0, 0, 0, 0, 0, 0 }, +bs_8_bits[] = { 254, 255 }, +bs_9_bits[] = { 1, 0 }, +bs_4_bits[] = { 7 }, +bs_7_bits[] = { 255, 255 }, +bs_0_bits[] = { 255, 255, 255, 255 }, +bs_10_bits[] = { 255, 255, 255, 255, 255, 255 }, +bs_3_bits[] = { 255, 255, 255, 255, 255, 255, 255, 255 }, +bs_1_bits[] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }, +bs_2_bits[] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }; +static const BITSTRING bs_5(3, bs_5_bits), +bs_6(48, bs_6_bits), +bs_8(16, bs_8_bits), +bs_9(16, bs_9_bits), +bs_4(3, bs_4_bits), +bs_7(16, bs_7_bits), +bs_0(32, bs_0_bits), +bs_10(48, bs_10_bits), +bs_3(64, bs_3_bits), +bs_1(128, bs_1_bits), +bs_2(256, bs_2_bits); +static const unsigned char os_0_octets[] = { 50 }; +static const OCTETSTRING os_0(1, os_0_octets); +static const unsigned char module_checksum[] = { 0x77, 0x20, 0x3e, 0xdd, 0x34, 0x76, 0x20, 0x52, 0xc4, 0xe1, 0x9d, 0x05, 0xc4, 0x21, 0xfb, 0x5d }; + +/* Global variable definitions */ + +const XERdescriptor_t Common__AuthenticationParams__Type_RandValue_xer_ = { {"RandValue>\n", "RandValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_RandValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_RandValue_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type.RandValue", &BITSTRING_ber_, &CommonDefs::B128__Type_raw_, NULL, &Common__AuthenticationParams__Type_RandValue_xer_, &BITSTRING_json_, &Common__AuthenticationParams__Type_RandValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Common__AuthenticationParams__Type_AUTN_xer_ = { {"AUTN>\n", "AUTN>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_AUTN_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_AUTN_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type.AUTN", &BITSTRING_ber_, &CommonDefs::B128__Type_raw_, NULL, &Common__AuthenticationParams__Type_AUTN_xer_, &BITSTRING_json_, &Common__AuthenticationParams__Type_AUTN_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Common__AuthenticationParams__Type_XRES_xer_ = { {"XRES>\n", "XRES>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_XRES_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_XRES_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type.XRES", &BITSTRING_ber_, &BITSTRING_raw_, NULL, &Common__AuthenticationParams__Type_XRES_xer_, &BITSTRING_json_, &Common__AuthenticationParams__Type_XRES_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Common__AuthenticationParams__Type_KcGSM_xer_ = { {"KcGSM>\n", "KcGSM>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_KcGSM_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_KcGSM_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type.KcGSM", &BITSTRING_ber_, &CommonDefs::B64__Type_raw_, NULL, &Common__AuthenticationParams__Type_KcGSM_xer_, &BITSTRING_json_, &Common__AuthenticationParams__Type_KcGSM_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Common__AuthenticationParams__Type_Kc128_xer_ = { {"Kc128>\n", "Kc128>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_Kc128_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_Kc128_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type.Kc128", &BITSTRING_ber_, &CommonDefs::B128__Type_raw_, NULL, &Common__AuthenticationParams__Type_Kc128_xer_, &BITSTRING_json_, &Common__AuthenticationParams__Type_Kc128_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Common__AuthenticationParams__Type_KeySeq_xer_ = { {"KeySeq>\n", "KeySeq>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_KeySeq_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_KeySeq_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type.KeySeq", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &Common__AuthenticationParams__Type_KeySeq_xer_, &BITSTRING_json_, &Common__AuthenticationParams__Type_KeySeq_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Common__AuthenticationParams__Type_CK_xer_ = { {"CK>\n", "CK>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_CK_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_CK_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type.CK", &BITSTRING_ber_, &CommonDefs::B128__Type_raw_, NULL, &Common__AuthenticationParams__Type_CK_xer_, &BITSTRING_json_, &Common__AuthenticationParams__Type_CK_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Common__AuthenticationParams__Type_IK_xer_ = { {"IK>\n", "IK>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_IK_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_IK_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type.IK", &BITSTRING_ber_, &CommonDefs::B128__Type_raw_, NULL, &Common__AuthenticationParams__Type_IK_xer_, &BITSTRING_json_, &Common__AuthenticationParams__Type_IK_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Common__AuthenticationParams__Type +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Common__AuthenticationParams__Type_XRESLength_xer_ = { {"XRESLength>\n", "XRESLength>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_XRESLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_XRESLength_descr_ = { "@NAS_AuthenticationCommon.Common_AuthenticationParams_Type.XRESLength", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Common__AuthenticationParams__Type_XRESLength_xer_, &INTEGER_json_, &Common__AuthenticationParams__Type_XRESLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AuthenticationError__Type +const TTCN_Typedescriptor_t AuthenticationError__Type_descr_ = { "@NAS_AuthenticationCommon.AuthenticationError_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +BITSTRING const_tsc__AuthUndefinedB32; +const BITSTRING& tsc__AuthUndefinedB32 = const_tsc__AuthUndefinedB32; +BITSTRING const_tsc__AuthUndefinedB128; +const BITSTRING& tsc__AuthUndefinedB128 = const_tsc__AuthUndefinedB128; +BITSTRING const_tsc__AuthUndefinedB256; +const BITSTRING& tsc__AuthUndefinedB256 = const_tsc__AuthUndefinedB256; +Erroneous_descriptor_t* template_cs__CommonAuthParams__Init_err_descr_ptr = NULL; +AuthenticationError__Type const_f__AuthenticationInit_p__AuthenticationError_defval; +const AuthenticationError__Type& f__AuthenticationInit_p__AuthenticationError_defval = const_f__AuthenticationInit_p__AuthenticationError_defval; +TTCN_Module module_object("NAS_AuthenticationCommon", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_NAS_AuthenticationCommon(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "AuthenticationError_Type")) { + ((const AuthenticationError__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AuthenticationError_Type template")) { + ((const AuthenticationError__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Common_AuthenticationParams_Type")) { + ((const Common__AuthenticationParams__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Common_AuthenticationParams_Type template")) { + ((const Common__AuthenticationParams__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_NAS_AuthenticationCommon(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "AuthenticationError_Type")) { + ((AuthenticationError__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AuthenticationError_Type template")) { + ((AuthenticationError__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Common_AuthenticationParams_Type")) { + ((Common__AuthenticationParams__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Common_AuthenticationParams_Type template")) { + ((Common__AuthenticationParams__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NAS_AuthenticationCommon"); + global_scope->add_variable(&tsc__AuthUndefinedB128, "tsc_AuthUndefinedB128", "bitstring", "NAS_AuthenticationCommon", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__AuthUndefinedB256, "tsc_AuthUndefinedB256", "bitstring", "NAS_AuthenticationCommon", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__AuthUndefinedB32, "tsc_AuthUndefinedB32", "bitstring", "NAS_AuthenticationCommon", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xCSfallback, "pc_1xCSfallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xRTT, "pc_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__A5__4__CS, "pc_A5_4_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__Default__Configuration, "pc_APN_Default_Configuration", "APN_DefaultConfiguration_Type", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::pc__APN__ID__Ethernet, "pc_APN_ID_Ethernet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__IMS, "pc_APN_ID_IMS", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__Internet, "pc_APN_ID_Internet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__MIOT, "pc_APN_ID_MIOT", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__URLLC, "pc_APN_ID_URLLC", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__V2X, "pc_APN_ID_V2X", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Allowed__CSG__list, "pc_Allowed_CSG_list", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Attach, "pc_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Auto__PDN__Connectivity, "pc_Auto_PDN_Connectivity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__EPS__Re__Attach, "pc_Automatic_EPS_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__Re__Attach, "pc_Automatic_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Available__PLMNs__AcT__Ind, "pc_Available_PLMNs_AcT_Ind", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__BSRVCC, "pc_BSRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CMAS__Message, "pc_CMAS_Message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS, "pc_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__1xRTT, "pc_CS_Em_Call_in_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__GERAN, "pc_CS_Em_Call_in_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__UTRA, "pc_CS_Em_Call_in_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Fallback, "pc_CS_Fallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__data__centric, "pc_CS_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__voice__centric, "pc_CS_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Combined__Attach, "pc_Combined_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DSMIPv6, "pc_DSMIPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DaylightSavingTime, "pc_DaylightSavingTime", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DualRM__Coding, "pc_DualRM_Coding", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB, "pc_EAB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB__override, "pc_EAB_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EDTM, "pc_EDTM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EMM__Information, "pc_EMM_Information", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPC__RACS, "pc_EPC_RACS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__IMS__EmergencyCall, "pc_EPS_IMS_EmergencyCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__Services__Disable, "pc_EPS_Services_Disable", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Allocation, "pc_ESM_MO_Bearer_Allocation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Modification, "pc_ESM_MO_Bearer_Modification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__Notification, "pc_ESM_Notification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__UE__Modification__NW__TFT, "pc_ESM_UE_Modification_NW_TFT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ETWS__message, "pc_ETWS_message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRAN__2__GERAN__PSHO, "pc_E_UTRAN_2_GERAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRA__WLAN__offload, "pc_E_UTRA_WLAN_offload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EmergSpeech, "pc_EmergSpeech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FDD, "pc_FDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__F, "pc_FeatrGrp_101_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__T, "pc_FeatrGrp_101_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__F, "pc_FeatrGrp_102_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__T, "pc_FeatrGrp_102_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__F, "pc_FeatrGrp_103_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__T, "pc_FeatrGrp_103_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__F, "pc_FeatrGrp_104_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__T, "pc_FeatrGrp_104_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__F, "pc_FeatrGrp_105_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__T, "pc_FeatrGrp_105_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__F, "pc_FeatrGrp_106_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__T, "pc_FeatrGrp_106_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__F, "pc_FeatrGrp_107_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__T, "pc_FeatrGrp_107_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__F, "pc_FeatrGrp_108_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__T, "pc_FeatrGrp_108_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__F, "pc_FeatrGrp_109_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__T, "pc_FeatrGrp_109_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__F, "pc_FeatrGrp_10_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__T, "pc_FeatrGrp_10_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__F, "pc_FeatrGrp_110_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__T, "pc_FeatrGrp_110_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__F, "pc_FeatrGrp_111_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__T, "pc_FeatrGrp_111_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__F, "pc_FeatrGrp_112_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__T, "pc_FeatrGrp_112_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__F, "pc_FeatrGrp_113_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__T, "pc_FeatrGrp_113_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__F, "pc_FeatrGrp_114_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__T, "pc_FeatrGrp_114_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__F, "pc_FeatrGrp_115_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__T, "pc_FeatrGrp_115_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__F, "pc_FeatrGrp_116_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__T, "pc_FeatrGrp_116_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__F, "pc_FeatrGrp_11_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__T, "pc_FeatrGrp_11_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__F, "pc_FeatrGrp_12_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__T, "pc_FeatrGrp_12_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__F, "pc_FeatrGrp_13_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__T, "pc_FeatrGrp_13_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__F, "pc_FeatrGrp_14_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__T, "pc_FeatrGrp_14_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__F, "pc_FeatrGrp_15_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__T, "pc_FeatrGrp_15_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__F, "pc_FeatrGrp_16_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__T, "pc_FeatrGrp_16_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__F, "pc_FeatrGrp_17_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__T, "pc_FeatrGrp_17_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__F, "pc_FeatrGrp_18_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__T, "pc_FeatrGrp_18_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__F, "pc_FeatrGrp_19_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__T, "pc_FeatrGrp_19_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__F, "pc_FeatrGrp_1_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__T, "pc_FeatrGrp_1_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__F, "pc_FeatrGrp_20_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__T, "pc_FeatrGrp_20_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__F, "pc_FeatrGrp_21_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__T, "pc_FeatrGrp_21_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__F, "pc_FeatrGrp_22_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__T, "pc_FeatrGrp_22_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__F, "pc_FeatrGrp_23_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__T, "pc_FeatrGrp_23_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__F, "pc_FeatrGrp_24_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__T, "pc_FeatrGrp_24_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__F, "pc_FeatrGrp_25_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__T, "pc_FeatrGrp_25_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__F, "pc_FeatrGrp_26_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__T, "pc_FeatrGrp_26_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__F, "pc_FeatrGrp_27_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__T, "pc_FeatrGrp_27_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__F, "pc_FeatrGrp_28_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__T, "pc_FeatrGrp_28_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__F, "pc_FeatrGrp_29_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__T, "pc_FeatrGrp_29_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__F, "pc_FeatrGrp_2_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__T, "pc_FeatrGrp_2_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__F, "pc_FeatrGrp_30_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__T, "pc_FeatrGrp_30_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__F, "pc_FeatrGrp_31_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__T, "pc_FeatrGrp_31_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__F, "pc_FeatrGrp_33_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__T, "pc_FeatrGrp_33_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__F, "pc_FeatrGrp_34_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__T, "pc_FeatrGrp_34_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__F, "pc_FeatrGrp_35_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__T, "pc_FeatrGrp_35_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__F, "pc_FeatrGrp_36_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__T, "pc_FeatrGrp_36_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__F, "pc_FeatrGrp_37_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__T, "pc_FeatrGrp_37_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__F, "pc_FeatrGrp_38_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__T, "pc_FeatrGrp_38_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__F, "pc_FeatrGrp_39_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__T, "pc_FeatrGrp_39_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__F, "pc_FeatrGrp_3_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__T, "pc_FeatrGrp_3_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__F, "pc_FeatrGrp_40_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__T, "pc_FeatrGrp_40_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__F, "pc_FeatrGrp_41_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__T, "pc_FeatrGrp_41_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__F, "pc_FeatrGrp_42_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__T, "pc_FeatrGrp_42_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__F, "pc_FeatrGrp_4_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__T, "pc_FeatrGrp_4_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__F, "pc_FeatrGrp_5_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__T, "pc_FeatrGrp_5_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__F, "pc_FeatrGrp_6_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__T, "pc_FeatrGrp_6_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__F, "pc_FeatrGrp_7_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__T, "pc_FeatrGrp_7_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__F, "pc_FeatrGrp_8_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__T, "pc_FeatrGrp_8_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__F, "pc_FeatrGrp_9_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__T, "pc_FeatrGrp_9_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FullNameNetwork, "pc_FullNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN, "pc_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__PSHO, "pc_GERAN_2_E_UTRAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__meas, "pc_GERAN_2_E_UTRAN_meas", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__measreporting__CCN, "pc_GERAN_2_E_UTRAN_measreporting_CCN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eFDD, "pc_HO_from_UTRA_to_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eTDD, "pc_HO_from_UTRA_to_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HRPD, "pc_HRPD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS, "pc_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMSI__Detach, "pc_IMSI_Detach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__APN__default, "pc_IMS_APN_default", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCC, "pc_IMS_CS_PS_SRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCAlert, "pc_IMS_CS_PS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCMidCall, "pc_IMS_CS_PS_SRVCCMidCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__SRVCCAlert, "pc_IMS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__emergency__call, "pc_IMS_emergency_call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv4, "pc_IPv4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv6, "pc_IPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ISR, "pc_ISR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ImmConnect, "pc_ImmConnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__InterFreq__ProximityIndication, "pc_InterFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IntraFreq__ProximityIndication, "pc_IntraFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__KeepEpsBearerParametersAfterNormalDetach, "pc_KeepEpsBearerParametersAfterNormalDetach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP, "pc_LAP", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP__override, "pc_LAP_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LocalTimeZone, "pc_LocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LoggedMeasurementsIdle, "pc_LoggedMeasurementsIdle", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Manual__CSG__Selection, "pc_Manual_CSG_Selection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Multiple__PDN, "pc_Multiple_PDN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v1__0, "pc_NG114_v1_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v2__0, "pc_NG114_v2_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG__RAN__NR, "pc_NG_RAN_NR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NR__5GC__EmergencyServices, "pc_NR_5GC_EmergencyServices", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__No__USIM__TestExecution, "pc_No_USIM_TestExecution", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__Manual__Mode__Exception, "pc_PLMN_Manual_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS, "pc_PS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__data__centric, "pc_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__voice__centric, "pc_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PWS__UpperLayer, "pc_PWS_UpperLayer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ProvideDST__inUse, "pc_ProvideDST_inUse", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__APN, "pc_Provide_IMS_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__as__second__APN, "pc_Provide_IMS_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__Internet__as__second__APN, "pc_Provide_Internet_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RLF__ReportForInterRAT__MRO, "pc_RLF_ReportForInterRAT_MRO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0001, "pc_ROHC_profile0x0001", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0002, "pc_ROHC_profile0x0002", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0003, "pc_ROHC_profile0x0003", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0004, "pc_ROHC_profile0x0004", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0006, "pc_ROHC_profile0x0006", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0101, "pc_ROHC_profile0x0101", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0102, "pc_ROHC_profile0x0102", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0103, "pc_ROHC_profile0x0103", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0104, "pc_ROHC_profile0x0104", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Rach__Report, "pc_Rach_Report", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Re__Attach__AfterDetachColl, "pc_Re_Attach_AfterDetachColl", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv4HAAddress__DuringAttach, "pc_RequestIPv4HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv6HAAddress__DuringAttach, "pc_RequestIPv6HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__UMTS__Autonomous__Gaps, "pc_SI_Neighbour_UMTS_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__interFreq__Autonomous__Gaps, "pc_SI_Neighbour_interFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__intraFreq__Autonomous__Gaps, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs, "pc_SMS_SGs", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MO, "pc_SMS_SGs_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MT, "pc_SMS_SGs_MT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__Multi__MO, "pc_SMS_SGs_Multi_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SRVCC__GERAN__UTRAN, "pc_SRVCC_GERAN_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Semi__Persistence__Scheduling, "pc_Semi_Persistence_Scheduling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ShortNameNetwork, "pc_ShortNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Speech, "pc_Speech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__StandaloneGNSS__Location, "pc_StandaloneGNSS_Location", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SupportOpModeA, "pc_SupportOpModeA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SwitchOnOff, "pc_SwitchOnOff", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__connected__in__IMS, "pc_TAU_connected_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__idle__in__IMS, "pc_TAU_idle_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__HCR, "pc_TDD_HCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__LCR, "pc_TDD_LCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__VHCR, "pc_TDD_VHCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TTI__Bundling, "pc_TTI_Bundling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TestModeforCSGproximity, "pc_TestModeforCSGproximity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UE__supports__user__initiated__PDN__disconnect, "pc_UE_supports_user_initiated_PDN_disconnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UL__MIMO, "pc_UL_MIMO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMI__ProcNeeded__DuringCSFB, "pc_UMI_ProcNeeded_DuringCSFB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMTS__GSM, "pc_UMTS_GSM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__USIM__Removal, "pc_USIM_Removal", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA, "pc_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ANR, "pc_UTRAN_ANR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ProximityIndication, "pc_UTRAN_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__1, "pc_UTRA_FeatrGrp_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__2, "pc_UTRA_FeatrGrp_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__3, "pc_UTRA_FeatrGrp_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__4, "pc_UTRA_FeatrGrp_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeAssistedAgps, "pc_UeAssistedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeBasedAgps, "pc_UeBasedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UniversalAndLocalTimeZone, "pc_UniversalAndLocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UpdateUE__LocationInformation, "pc_UpdateUE_LocationInformation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UserInitiatedPLMN__Reselection, "pc_UserInitiatedPLMN_Reselection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__VoLTE, "pc_VoLTE", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__Imm__MDT, "pc_WLAN_Meas_Imm_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__logged__MDT, "pc_WLAN_Meas_logged_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__voice, "pc_WLAN_voice", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__only__APN, "pc_XCAP_only_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__over__Internet__APN, "pc_XCAP_over_Internet_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ZUC, "pc_ZUC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eCall__Test__Call, "pc_eCall_Test_Call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD, "pc_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD__MultiBand, "pc_eFDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS, "pc_eMBMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS__SC, "pc_eMBMS_SC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMinimumPeriodicSearchTimer, "pc_eMinimumPeriodicSearchTimer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eRedirectionUTRA, "pc_eRedirectionUTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD, "pc_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD__MultiBand, "pc_eTDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eWLAN, "pc_eWLAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__multipleTimingAdvance, "pc_multipleTimingAdvance", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__0, "pc_ue_CategoryDL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__10, "pc_ue_CategoryDL_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__11, "pc_ue_CategoryDL_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__12, "pc_ue_CategoryDL_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__13, "pc_ue_CategoryDL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__14, "pc_ue_CategoryDL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__15, "pc_ue_CategoryDL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__16, "pc_ue_CategoryDL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__17, "pc_ue_CategoryDL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__18, "pc_ue_CategoryDL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__19, "pc_ue_CategoryDL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__1bis, "pc_ue_CategoryDL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__20, "pc_ue_CategoryDL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__21, "pc_ue_CategoryDL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__22, "pc_ue_CategoryDL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__23, "pc_ue_CategoryDL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__24, "pc_ue_CategoryDL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__25, "pc_ue_CategoryDL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__26, "pc_ue_CategoryDL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__4, "pc_ue_CategoryDL_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__6, "pc_ue_CategoryDL_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__7, "pc_ue_CategoryDL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__9, "pc_ue_CategoryDL_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M1, "pc_ue_CategoryDL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M2, "pc_ue_CategoryDL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__0, "pc_ue_CategoryUL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__13, "pc_ue_CategoryUL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__14, "pc_ue_CategoryUL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__15, "pc_ue_CategoryUL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__16, "pc_ue_CategoryUL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__17, "pc_ue_CategoryUL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__18, "pc_ue_CategoryUL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__19, "pc_ue_CategoryUL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__1bis, "pc_ue_CategoryUL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__20, "pc_ue_CategoryUL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__21, "pc_ue_CategoryUL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__22, "pc_ue_CategoryUL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__23, "pc_ue_CategoryUL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__24, "pc_ue_CategoryUL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__25, "pc_ue_CategoryUL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__26, "pc_ue_CategoryUL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__3, "pc_ue_CategoryUL_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__5, "pc_ue_CategoryUL_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__7, "pc_ue_CategoryUL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__8, "pc_ue_CategoryUL_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M1, "pc_ue_CategoryUL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M2, "pc_ue_CategoryUL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__1, "pc_ue_Category_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__10, "pc_ue_Category_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__11, "pc_ue_Category_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__12, "pc_ue_Category_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__2, "pc_ue_Category_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__3, "pc_ue_Category_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__4, "pc_ue_Category_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__5, "pc_ue_Category_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__6, "pc_ue_Category_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__7, "pc_ue_Category_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__8, "pc_ue_Category_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__9, "pc_ue_Category_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voiceOverNR, "pc_voiceOverNR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voice__PS__1__CS__2, "pc_voice_PS_1_CS_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AccessPointName, "px_AccessPointName", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AquireGNSS__MaxTime, "px_AquireGNSS_MaxTime", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AttachTypeTested, "px_AttachTypeTested", "EUTRA_ATTACH_TESTED_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__AuthAMF, "px_AuthAMF", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AuthK, "px_AuthK", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EllipsoidPointWithAltitude, "px_EllipsoidPointWithAltitude", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EmergencyCallNumber, "px_EmergencyCallNumber", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__FDD__OperationBand, "px_FDD_OperationBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__HorizontalVelocity, "px_HorizontalVelocity", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEISV__Def, "px_IMEISV_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEI__Def, "px_IMEI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Def, "px_IMSI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Diff, "px_IMSI_Diff", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IP__MTU__Size, "px_IP_MTU_Size", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__NW, "px_IPv4_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__RemoteUE, "px_IPv4_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__UE, "px_IPv4_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__NW, "px_IPv4_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__RemoteUE, "px_IPv4_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__UE, "px_IPv4_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2a__UE, "px_IPv4_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__NW, "px_IPv4_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__RemoteUE, "px_IPv4_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__UE, "px_IPv4_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__NW, "px_IPv4_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__UE, "px_IPv4_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__NW, "px_IPv4_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__UE, "px_IPv4_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__NW, "px_IPv4_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__UE, "px_IPv4_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address__HomeAgent, "px_IPv4_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__NW, "px_IPv6_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__RemoteUE, "px_IPv6_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__UE, "px_IPv6_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__NW, "px_IPv6_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__RemoteUE, "px_IPv6_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__UE, "px_IPv6_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2a__UE, "px_IPv6_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__NW, "px_IPv6_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__RemoteUE, "px_IPv6_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__UE, "px_IPv6_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__NW, "px_IPv6_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__UE, "px_IPv6_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__NW, "px_IPv6_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__UE, "px_IPv6_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__NW, "px_IPv6_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__UE, "px_IPv6_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address__HomeAgent, "px_IPv6_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__MFBI__UTRAN__FrequencyBand, "px_MFBI_UTRAN_FrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__CipheringAlgorithm, "px_NAS_CipheringAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__IntegrityProtAlgorithm, "px_NAS_IntegrityProtAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__Def, "px_PTMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__SigDef, "px_PTMSI_SigDef", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataCodingScheme, "px_PWS_CB_DataCodingScheme", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage1, "px_PWS_CB_DataPage1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage2, "px_PWS_CB_DataPage2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage3, "px_PWS_CB_DataPage3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage4, "px_PWS_CB_DataPage4", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__RATComb__Tested, "px_RATComb_Tested", "RATComb_Tested_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__SMS__ChkMsgReceived, "px_SMS_ChkMsgReceived", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__IndexOffset, "px_SMS_IndexOffset", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__MsgFrmt, "px_SMS_MsgFrmt", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem1, "px_SMS_PrefMem1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem2, "px_SMS_PrefMem2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem3, "px_SMS_PrefMem3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__Service, "px_SMS_Service", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SinglePLMN__Tested, "px_SinglePLMN_Tested", "SinglePLMN_TestedType", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__TMSI__Def, "px_TMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__TestLoopModeB__Delay, "px_TestLoopModeB_Delay", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__UE__CS__PS__UsageSetting__Tested, "px_UE_CS_PS_UsageSetting_Tested", "CS_PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UE__PS__UsageSetting__Tested, "px_UE_PS_UsageSetting_Tested", "PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UTRAN__ModeUnderTest, "px_UTRAN_ModeUnderTest", "UTRAN_FDD_TDD_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__WLAN__PDN1__ToOffload, "px_WLAN_PDN1_ToOffload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eAuthRAND, "px_eAuthRAND", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eJapanMCC__Band6, "px_eJapanMCC_Band6", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__ePrimaryFrequencyBand, "px_ePrimaryFrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void Common__AuthenticationParams__Type::init_vec() { fld_vec[0]=&field_RandValue; fld_vec[1]=&field_AUTN; fld_vec[2]=&field_XRES; fld_vec[3]=&field_KcGSM; fld_vec[4]=&field_Kc128; fld_vec[5]=&field_KeySeq; fld_vec[6]=&field_CK; fld_vec[7]=&field_IK; fld_vec[8]=&field_XRESLength; } + +Common__AuthenticationParams__Type::Common__AuthenticationParams__Type() : Record_Type() { init_vec(); } + +Common__AuthenticationParams__Type::Common__AuthenticationParams__Type(const Common__AuthenticationParams__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_RandValue.is_bound() ) + field_RandValue = other_value.field_RandValue; +if (other_value.field_AUTN.is_bound() ) + field_AUTN = other_value.field_AUTN; +if (other_value.field_XRES.is_bound() ) + field_XRES = other_value.field_XRES; +if (other_value.field_KcGSM.is_bound() ) + field_KcGSM = other_value.field_KcGSM; +if (other_value.field_Kc128.is_bound() ) + field_Kc128 = other_value.field_Kc128; +if (other_value.field_KeySeq.is_bound() ) + field_KeySeq = other_value.field_KeySeq; +if (other_value.field_CK.is_bound() ) + field_CK = other_value.field_CK; +if (other_value.field_IK.is_bound() ) + field_IK = other_value.field_IK; +if (other_value.field_XRESLength.is_bound() ) + field_XRESLength = other_value.field_XRESLength; +init_vec(); +} + +Common__AuthenticationParams__Type::Common__AuthenticationParams__Type(const BITSTRING& par_RandValue, + const BITSTRING& par_AUTN, + const BITSTRING& par_XRES, + const BITSTRING& par_KcGSM, + const BITSTRING& par_Kc128, + const BITSTRING& par_KeySeq, + const BITSTRING& par_CK, + const BITSTRING& par_IK, + const OPTIONAL& par_XRESLength) : field_RandValue(par_RandValue), + field_AUTN(par_AUTN), + field_XRES(par_XRES), + field_KcGSM(par_KcGSM), + field_Kc128(par_Kc128), + field_KeySeq(par_KeySeq), + field_CK(par_CK), + field_IK(par_IK), + field_XRESLength(par_XRESLength) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Common__AuthenticationParams__Type::get_descriptor() const { return &Common__AuthenticationParams__Type_descr_; } +const TTCN_Typedescriptor_t* Common__AuthenticationParams__Type::fld_descriptors[] = { &CommonDefs::B128__Type_descr_, &CommonDefs::B128__Type_descr_, &CommonDefs::B32__128__Type_descr_, &CommonDefs::B64__Type_descr_, &CommonDefs::B128__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B128__Type_descr_, &CommonDefs::B128__Type_descr_, &INTEGER_descr_ }; +const TTCN_Typedescriptor_t* Common__AuthenticationParams__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Common__AuthenticationParams__Type::fld_names[] = { "RandValue", "AUTN", "XRES", "KcGSM", "Kc128", "KeySeq", "CK", "IK", "XRESLength" }; +const char* Common__AuthenticationParams__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int Common__AuthenticationParams__Type::optional_indexes[] = { 8, -1 }; +const int* Common__AuthenticationParams__Type::get_optional_indexes() const { return optional_indexes; } + +const int Common__AuthenticationParams__Type::optional_indexes_asn[] = { 8, -1 }; +const int* Common__AuthenticationParams__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void Common__AuthenticationParams__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 9; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new INTEGER_template(ANY_OR_OMIT) : new INTEGER_template; +} +} + +Common__AuthenticationParams__Type_template::Common__AuthenticationParams__Type_template(Common__AuthenticationParams__Type_template* p_precondition, Common__AuthenticationParams__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Common__AuthenticationParams__Type_template::Common__AuthenticationParams__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Common__AuthenticationParams__Type_template::~Common__AuthenticationParams__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Common__AuthenticationParams__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const Common__AuthenticationParams__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Common__AuthenticationParams__Type_template& Common__AuthenticationParams__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Common__AuthenticationParams__Type_template& Common__AuthenticationParams__Type_template::operator=(const Common__AuthenticationParams__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Common__AuthenticationParams__Type_template& Common__AuthenticationParams__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Common__AuthenticationParams__Type_template& Common__AuthenticationParams__Type_template::operator=(const Common__AuthenticationParams__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Common__AuthenticationParams__Type Common__AuthenticationParams__Type_template::valueof() const +{ +Common__AuthenticationParams__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& Common__AuthenticationParams__Type_template::RandValue() { return *(static_cast(get_at(0))); } +const BITSTRING_template& Common__AuthenticationParams__Type_template::RandValue() const { return *(static_cast(get_at(0))); } +BITSTRING_template& Common__AuthenticationParams__Type_template::AUTN() { return *(static_cast(get_at(1))); } +const BITSTRING_template& Common__AuthenticationParams__Type_template::AUTN() const { return *(static_cast(get_at(1))); } +BITSTRING_template& Common__AuthenticationParams__Type_template::XRES() { return *(static_cast(get_at(2))); } +const BITSTRING_template& Common__AuthenticationParams__Type_template::XRES() const { return *(static_cast(get_at(2))); } +BITSTRING_template& Common__AuthenticationParams__Type_template::KcGSM() { return *(static_cast(get_at(3))); } +const BITSTRING_template& Common__AuthenticationParams__Type_template::KcGSM() const { return *(static_cast(get_at(3))); } +BITSTRING_template& Common__AuthenticationParams__Type_template::Kc128() { return *(static_cast(get_at(4))); } +const BITSTRING_template& Common__AuthenticationParams__Type_template::Kc128() const { return *(static_cast(get_at(4))); } +BITSTRING_template& Common__AuthenticationParams__Type_template::KeySeq() { return *(static_cast(get_at(5))); } +const BITSTRING_template& Common__AuthenticationParams__Type_template::KeySeq() const { return *(static_cast(get_at(5))); } +BITSTRING_template& Common__AuthenticationParams__Type_template::CK() { return *(static_cast(get_at(6))); } +const BITSTRING_template& Common__AuthenticationParams__Type_template::CK() const { return *(static_cast(get_at(6))); } +BITSTRING_template& Common__AuthenticationParams__Type_template::IK() { return *(static_cast(get_at(7))); } +const BITSTRING_template& Common__AuthenticationParams__Type_template::IK() const { return *(static_cast(get_at(7))); } +INTEGER_template& Common__AuthenticationParams__Type_template::XRESLength() { return *(static_cast(get_at(8))); } +const INTEGER_template& Common__AuthenticationParams__Type_template::XRESLength() const { return *(static_cast(get_at(8))); } +const TTCN_Typedescriptor_t* Common__AuthenticationParams__Type_template::get_descriptor() const { return &Common__AuthenticationParams__Type_descr_; } +const char* Common__AuthenticationParams__Type_template::fld_name(int p_index) const { return Common__AuthenticationParams__Type::fld_names[p_index]; } +AuthenticationError__Type::AuthenticationError__Type() +{ +enum_value = UNBOUND_VALUE; +} + +AuthenticationError__Type::AuthenticationError__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +AuthenticationError__Type::AuthenticationError__Type(enum_type other_value) +{ +enum_value = other_value; +} + +AuthenticationError__Type::AuthenticationError__Type(const AuthenticationError__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +enum_value = other_value.enum_value; +} + +AuthenticationError__Type& AuthenticationError__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +AuthenticationError__Type& AuthenticationError__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +AuthenticationError__Type& AuthenticationError__Type::operator=(const AuthenticationError__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean AuthenticationError__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +return enum_value == other_value; +} + +boolean AuthenticationError__Type::operator==(const AuthenticationError__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +return enum_value == other_value.enum_value; +} + +boolean AuthenticationError__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +return enum_value < other_value; +} + +boolean AuthenticationError__Type::operator<(const AuthenticationError__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +return enum_value < other_value.enum_value; +} + +boolean AuthenticationError__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +return enum_value > other_value; +} + +boolean AuthenticationError__Type::operator>(const AuthenticationError__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +return enum_value > other_value.enum_value; +} + +const char *AuthenticationError__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case noError: return "noError"; +case macError: return "macError"; +case sqnFailure: return "sqnFailure"; +case macErrorPlusSepBit: return "macErrorPlusSepBit"; +case sepBit0: return "sepBit0"; +default: return ""; +} +} + +AuthenticationError__Type::enum_type AuthenticationError__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "noError")) return noError; +else if (!strcmp(str_par, "macError")) return macError; +else if (!strcmp(str_par, "sqnFailure")) return sqnFailure; +else if (!strcmp(str_par, "macErrorPlusSepBit")) return macErrorPlusSepBit; +else if (!strcmp(str_par, "sepBit0")) return sepBit0; +else return UNKNOWN_VALUE; +} + +boolean AuthenticationError__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +return TRUE; +default: +return FALSE; +} +} + +int AuthenticationError__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int AuthenticationError__Type::enum2int(const AuthenticationError__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void AuthenticationError__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type.", int_val); +enum_value = (enum_type)int_val; +} + +AuthenticationError__Type::operator AuthenticationError__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +return enum_value; +} + +boolean AuthenticationError__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void AuthenticationError__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* AuthenticationError__Type::clone() const { return new AuthenticationError__Type(*this); } +const TTCN_Typedescriptor_t* AuthenticationError__Type::get_descriptor() const { return &AuthenticationError__Type_descr_; } +void AuthenticationError__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void AuthenticationError__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NAS_AuthenticationCommon.AuthenticationError_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NAS_AuthenticationCommon.AuthenticationError_Type."); + } +} + +Module_Param* AuthenticationError__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void AuthenticationError__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +text_buf.push_int(enum_value); +} + +void AuthenticationError__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type.", enum_value); +} + +void AuthenticationError__Type_template::copy_template(const AuthenticationError__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new AuthenticationError__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new AuthenticationError__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new AuthenticationError__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +} +} + +AuthenticationError__Type_template::AuthenticationError__Type_template() +{ +} + +AuthenticationError__Type_template::AuthenticationError__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +AuthenticationError__Type_template::AuthenticationError__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!AuthenticationError__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type with unknown numeric value %d.", other_value); +single_value = (AuthenticationError__Type::enum_type)other_value; +} + +AuthenticationError__Type_template::AuthenticationError__Type_template(AuthenticationError__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +AuthenticationError__Type_template::AuthenticationError__Type_template(const AuthenticationError__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == AuthenticationError__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +single_value = other_value.enum_value; +} + +AuthenticationError__Type_template::AuthenticationError__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (AuthenticationError__Type::enum_type)(const AuthenticationError__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type from an unbound optional field."); +} +} + +AuthenticationError__Type_template::AuthenticationError__Type_template(AuthenticationError__Type_template* p_precondition, AuthenticationError__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +AuthenticationError__Type_template::AuthenticationError__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +AuthenticationError__Type_template::AuthenticationError__Type_template(const AuthenticationError__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +AuthenticationError__Type_template::~AuthenticationError__Type_template() +{ +clean_up(); +} + +boolean AuthenticationError__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean AuthenticationError__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != AuthenticationError__Type::UNBOUND_VALUE; +} + +void AuthenticationError__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +AuthenticationError__Type_template& AuthenticationError__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AuthenticationError__Type_template& AuthenticationError__Type_template::operator=(int other_value) +{ +if (!AuthenticationError__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (AuthenticationError__Type::enum_type)other_value; +return *this; +} + +AuthenticationError__Type_template& AuthenticationError__Type_template::operator=(AuthenticationError__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +AuthenticationError__Type_template& AuthenticationError__Type_template::operator=(const AuthenticationError__Type& other_value) +{ +if (other_value.enum_value == AuthenticationError__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +AuthenticationError__Type_template& AuthenticationError__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (AuthenticationError__Type::enum_type)(const AuthenticationError__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +} +return *this; +} + +AuthenticationError__Type_template& AuthenticationError__Type_template::operator=(const AuthenticationError__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean AuthenticationError__Type_template::match(AuthenticationError__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +} +return FALSE; +} + +boolean AuthenticationError__Type_template::match(const AuthenticationError__Type& other_value, boolean) const +{ +if (other_value.enum_value == AuthenticationError__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type with an unbound value."); +return match(other_value.enum_value); +} + +AuthenticationError__Type::enum_type AuthenticationError__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +return single_value; +} + +void AuthenticationError__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new AuthenticationError__Type_template[list_length]; +} + +AuthenticationError__Type_template& AuthenticationError__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +return value_list.list_value[list_index]; +} + +void AuthenticationError__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void AuthenticationError__Type_template::set_value(template_sel other_value) { *this = other_value; } +void AuthenticationError__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* AuthenticationError__Type_template::clone() const { return new AuthenticationError__Type_template(*this); } +const TTCN_Typedescriptor_t* AuthenticationError__Type_template::get_descriptor() const { return &AuthenticationError__Type_descr_; } +boolean AuthenticationError__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void AuthenticationError__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void AuthenticationError__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(AuthenticationError__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void AuthenticationError__Type_template::log_match(const AuthenticationError__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void AuthenticationError__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +} +} + +void AuthenticationError__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (AuthenticationError__Type::enum_type)text_buf.pull_int().get_val(); +if (!AuthenticationError__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new AuthenticationError__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NAS_AuthenticationCommon.AuthenticationError_Type."); +} +} + +boolean AuthenticationError__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean AuthenticationError__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + AuthenticationError__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + AuthenticationError__Type::enum_type enum_val = AuthenticationError__Type::str_to_enum(m_p->get_enumerated()); + if (!AuthenticationError__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NAS_AuthenticationCommon.AuthenticationError_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + AuthenticationError__Type_template* precondition = new AuthenticationError__Type_template; + precondition->set_param(*m_p->get_elem(0)); + AuthenticationError__Type_template* implied_template = new AuthenticationError__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = AuthenticationError__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NAS_AuthenticationCommon.AuthenticationError_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* AuthenticationError__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(AuthenticationError__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + + +/* Bodies of functions, altsteps and testcases */ + +Common__AuthenticationParams__Type_template cs__CommonAuthParams__Init(const BITSTRING_template& p__Rand) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn", 35, TTCN_Location::LOCATION_TEMPLATE, "cs_CommonAuthParams_Init"); +charstring_list param_names; +param_names[0] = "p_Rand"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_CommonAuthParams_Init", "template", "NAS_AuthenticationCommon", param_names, param_types, NULL); +debug_scope.add_variable(&p__Rand, "p_Rand", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +Common__AuthenticationParams__Type_template ret_val; +ret_val.RandValue() = p__Rand; +ret_val.AUTN() = bs_1; +ret_val.XRES() = bs_1; +ret_val.KcGSM() = bs_3; +ret_val.Kc128() = bs_1; +ret_val.KeySeq() = bs_4; +ret_val.CK() = bs_1; +ret_val.IK() = bs_1; +ret_val.XRESLength() = OMIT_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__CommonAuthParams__Init_err_descr_ptr); +return ret_val; +} + +BITSTRING f__Authentication__IncrementKeySeq(const BITSTRING& p__KeySeq) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn", 55, TTCN_Location::LOCATION_FUNCTION, "f_Authentication_IncrementKeySeq"); +charstring_list param_names; +param_names[0] = "p_KeySeq"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Authentication_IncrementKeySeq", "function", "NAS_AuthenticationCommon", param_names, param_types, NULL); +debug_scope.add_variable(&p__KeySeq, "p_KeySeq", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(57); +ttcn3_debugger.breakpoint_entry(57); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 57 */ +BITSTRING v__KeySeq(int2bit(mod((bit2int(p__KeySeq) + 1), 8), 3)); +debug_scope.add_variable(&v__KeySeq, "v_KeySeq", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(60); +ttcn3_debugger.breakpoint_entry(60); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 60 */ +if ((v__KeySeq == bs_4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(61); +ttcn3_debugger.breakpoint_entry(61); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 61 */ +v__KeySeq = bs_5; +} +current_location.update_lineno(63); +ttcn3_debugger.breakpoint_entry(63); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 63 */ +{ +BITSTRING tmp_1; +return DEBUGGER_STORE_RETURN_VALUE(tmp_1, v__KeySeq); +} +} + +Common__AuthenticationParams__Type f__AuthenticationInit(const Common__AuthenticationParams__Type& p__Auth__Params, const AuthenticationError__Type& p__AuthenticationError) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn", 75, TTCN_Location::LOCATION_FUNCTION, "f_AuthenticationInit"); +charstring_list param_names; +param_names[0] = "p_Auth_Params"; +param_names[1] = "p_AuthenticationError"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_AuthenticationInit", "function", "NAS_AuthenticationCommon", param_names, param_types, NULL); +debug_scope.add_variable(&p__Auth__Params, "p_Auth_Params", "Common_AuthenticationParams_Type", NULL, print_var_NAS_AuthenticationCommon); +debug_scope.add_variable(&p__AuthenticationError, "p_AuthenticationError", "AuthenticationError_Type", NULL, print_var_NAS_AuthenticationCommon); +debug_scope.initial_snapshot(); +current_location.update_lineno(78); +ttcn3_debugger.breakpoint_entry(78); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 78 */ +Common__AuthenticationParams__Type v__Auth__Params(p__Auth__Params); +debug_scope.add_variable(&v__Auth__Params, "v_Auth_Params", "Common_AuthenticationParams_Type", NULL, print_var_NAS_AuthenticationCommon, set_var_NAS_AuthenticationCommon); +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 79 */ +BITSTRING v__XDOut; +debug_scope.add_variable(&v__XDOut, "v_XDOut", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(80); +ttcn3_debugger.breakpoint_entry(80); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 80 */ +BITSTRING v__AUTN__2; +debug_scope.add_variable(&v__AUTN__2, "v_AUTN_2", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(81); +ttcn3_debugger.breakpoint_entry(81); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 81 */ +BITSTRING v__CDOut; +debug_scope.add_variable(&v__CDOut, "v_CDOut", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(82); +ttcn3_debugger.breakpoint_entry(82); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 82 */ +BITSTRING v__XDOut__Half; +debug_scope.add_variable(&v__XDOut__Half, "v_XDOut_Half", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(83); +ttcn3_debugger.breakpoint_entry(83); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 83 */ +BITSTRING v__MAC; +debug_scope.add_variable(&v__MAC, "v_MAC", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(84); +ttcn3_debugger.breakpoint_entry(84); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 84 */ +BITSTRING v__AK; +debug_scope.add_variable(&v__AK, "v_AK", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(85); +ttcn3_debugger.breakpoint_entry(85); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 85 */ +BITSTRING v__AUTN__1; +debug_scope.add_variable(&v__AUTN__1, "v_AUTN_1", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(86); +ttcn3_debugger.breakpoint_entry(86); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 86 */ +BITSTRING v__AuthSQN(bs_6); +debug_scope.add_variable(&v__AuthSQN, "v_AuthSQN", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(87); +ttcn3_debugger.breakpoint_entry(87); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 87 */ +BITSTRING v__AuthAMF(Parameters::px__AuthAMF); +debug_scope.add_variable(&v__AuthAMF, "v_AuthAMF", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(89); +ttcn3_debugger.breakpoint_entry(89); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 89 */ +if ((p__AuthenticationError == AuthenticationError__Type::sqnFailure)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(90); +ttcn3_debugger.breakpoint_entry(90); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 90 */ +v__AuthAMF = bs_7; +} +current_location.update_lineno(93); +ttcn3_debugger.breakpoint_entry(93); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 93 */ +if ((p__AuthenticationError == AuthenticationError__Type::sepBit0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 94 */ +{ +BITSTRING tmp_3; +tmp_3 = (v__AuthAMF & bs_8); +v__AuthAMF = tmp_3; +} +} +current_location.update_lineno(97); +ttcn3_debugger.breakpoint_entry(97); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 97 */ +if ((p__AuthenticationError == AuthenticationError__Type::macErrorPlusSepBit)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(98); +ttcn3_debugger.breakpoint_entry(98); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 98 */ +{ +BITSTRING tmp_4; +tmp_4 = (v__AuthAMF | bs_9); +v__AuthAMF = tmp_4; +} +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 99 */ +v__AuthSQN = bs_10; +} +current_location.update_lineno(102); +ttcn3_debugger.breakpoint_entry(102); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 102 */ +v__XDOut = (const_cast< const Common__AuthenticationParams__Type&>(v__Auth__Params).RandValue() ^ Parameters::px__AuthK); +current_location.update_lineno(103); +ttcn3_debugger.breakpoint_entry(103); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 103 */ +v__CDOut = (v__AuthSQN + v__AuthAMF); +current_location.update_lineno(104); +ttcn3_debugger.breakpoint_entry(104); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 104 */ +v__XDOut__Half = substr(v__XDOut, 0, 64); +current_location.update_lineno(105); +ttcn3_debugger.breakpoint_entry(105); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 105 */ +v__AK = substr(v__XDOut, 24, 48); +current_location.update_lineno(106); +ttcn3_debugger.breakpoint_entry(106); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 106 */ +v__AUTN__1 = (v__AuthSQN ^ v__AK); +current_location.update_lineno(107); +ttcn3_debugger.breakpoint_entry(107); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 107 */ +v__MAC = (v__XDOut__Half ^ v__CDOut); +current_location.update_lineno(109); +ttcn3_debugger.breakpoint_entry(109); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 109 */ +{ +boolean tmp_12; +tmp_12 = (p__AuthenticationError == AuthenticationError__Type::macError); +if (!tmp_12) tmp_12 = (p__AuthenticationError == AuthenticationError__Type::macErrorPlusSepBit); +if (tmp_12) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(110); +ttcn3_debugger.breakpoint_entry(110); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 110 */ +{ +BITSTRING tmp_13; +tmp_13 = (~(v__MAC)); +v__MAC = tmp_13; +} +} +} +current_location.update_lineno(113); +ttcn3_debugger.breakpoint_entry(113); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 113 */ +v__AUTN__2 = (v__AuthAMF + v__MAC); +current_location.update_lineno(114); +ttcn3_debugger.breakpoint_entry(114); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 114 */ +v__Auth__Params.AUTN() = (v__AUTN__1 + v__AUTN__2); +current_location.update_lineno(116); +ttcn3_debugger.breakpoint_entry(116); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 116 */ +v__Auth__Params.IK() = (substr(v__XDOut, 16, 112) + substr(v__XDOut, 0, 16)); +current_location.update_lineno(118); +ttcn3_debugger.breakpoint_entry(118); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 118 */ +v__Auth__Params.CK() = (substr(v__XDOut, 8, 120) + substr(v__XDOut, 0, 8)); +current_location.update_lineno(119); +ttcn3_debugger.breakpoint_entry(119); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 119 */ +v__Auth__Params.XRES() = v__XDOut; +current_location.update_lineno(121); +ttcn3_debugger.breakpoint_entry(121); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 121 */ +if ((p__AuthenticationError == AuthenticationError__Type::noError)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(123); +ttcn3_debugger.breakpoint_entry(123); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 123 */ +{ +BITSTRING tmp_19; +tmp_19 = ((substr(const_cast< const Common__AuthenticationParams__Type&>(v__Auth__Params).CK(), 0, 64) ^ substr(const_cast< const Common__AuthenticationParams__Type&>(v__Auth__Params).CK(), 64, 64)) ^ (substr(const_cast< const Common__AuthenticationParams__Type&>(v__Auth__Params).IK(), 0, 64) ^ substr(const_cast< const Common__AuthenticationParams__Type&>(v__Auth__Params).IK(), 64, 64))); +v__Auth__Params.KcGSM() = tmp_19; +} +current_location.update_lineno(124); +ttcn3_debugger.breakpoint_entry(124); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 124 */ +v__Auth__Params.KeySeq() = f__Authentication__IncrementKeySeq(const_cast< const Common__AuthenticationParams__Type&>(v__Auth__Params).KeySeq()); +current_location.update_lineno(125); +ttcn3_debugger.breakpoint_entry(125); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 125 */ +v__Auth__Params.Kc128() = substr(CommonDefs::fx__KeyDerivationFunction(CommonDefs::tsc__KDF__HMAC__SHA__256, (const_cast< const Common__AuthenticationParams__Type&>(v__Auth__Params).CK() + const_cast< const Common__AuthenticationParams__Type&>(v__Auth__Params).IK()), os_0), 0, 128); +} +current_location.update_lineno(127); +ttcn3_debugger.breakpoint_entry(127); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 127 */ +{ +Common__AuthenticationParams__Type tmp_22; +return DEBUGGER_STORE_RETURN_VALUE(tmp_22, v__Auth__Params); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_AuthenticationCommon"); +NAS__AuthenticationCommon::init_ttcn3_debugger(); +Parameters::module_object.pre_init_module(); +current_location.update_lineno(31); +ttcn3_debugger.breakpoint_entry(31); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 31 */ +const_tsc__AuthUndefinedB32 = bs_0; +current_location.update_lineno(32); +ttcn3_debugger.breakpoint_entry(32); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 32 */ +const_tsc__AuthUndefinedB128 = bs_1; +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 33 */ +const_tsc__AuthUndefinedB256 = bs_2; +module_object.add_function("f_Authentication_IncrementKeySeq", (genericfunc_t)&f__Authentication__IncrementKeySeq, NULL); +module_object.add_function("f_AuthenticationInit", (genericfunc_t)&f__AuthenticationInit, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_AuthenticationCommon"); +Parameters::module_object.post_init_module(); +current_location.update_lineno(76); +ttcn3_debugger.breakpoint_entry(76); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuthenticationCommon.ttcn, line 76 */ +const_f__AuthenticationInit_p__AuthenticationError_defval = AuthenticationError__Type::noError; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NAS_AuthenticationCommon.hh b/build/Ats_NG_NAS/NAS_AuthenticationCommon.hh new file mode 100644 index 0000000000000000000000000000000000000000..7c4e3f1292e6ba48ded36c4eda2f6a72fac6ea92 --- /dev/null +++ b/build/Ats_NG_NAS/NAS_AuthenticationCommon.hh @@ -0,0 +1,355 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NAS__AuthenticationCommon_HH +#define NAS__AuthenticationCommon_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "Parameters.hh" + +#if TTCN3_VERSION != 100000 +#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 NAS__AuthenticationCommon_HH +#endif + +namespace NAS__AuthenticationCommon { + +/* Forward declarations of classes */ + +class Common__AuthenticationParams__Type; +class Common__AuthenticationParams__Type_template; +class AuthenticationError__Type; +class AuthenticationError__Type_template; + +} /* end of namespace */ + +#ifndef NAS__AuthenticationCommon_HH +#define NAS__AuthenticationCommon_HH + +namespace NAS__AuthenticationCommon { + +/* Class definitions */ + +class Common__AuthenticationParams__Type : public Record_Type { + BITSTRING field_RandValue; + BITSTRING field_AUTN; + BITSTRING field_XRES; + BITSTRING field_KcGSM; + BITSTRING field_Kc128; + BITSTRING field_KeySeq; + BITSTRING field_CK; + BITSTRING field_IK; + OPTIONAL field_XRESLength; + Base_Type* fld_vec[9]; + void init_vec(); +public: + Common__AuthenticationParams__Type(); + Common__AuthenticationParams__Type(const Common__AuthenticationParams__Type& other_value); + Common__AuthenticationParams__Type(const BITSTRING& par_RandValue, + const BITSTRING& par_AUTN, + const BITSTRING& par_XRES, + const BITSTRING& par_KcGSM, + const BITSTRING& par_Kc128, + const BITSTRING& par_KeySeq, + const BITSTRING& par_CK, + const BITSTRING& par_IK, + const OPTIONAL& par_XRESLength); +inline Common__AuthenticationParams__Type& operator=(const Common__AuthenticationParams__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Common__AuthenticationParams__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Common__AuthenticationParams__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& RandValue() + {return field_RandValue;} + inline const BITSTRING& RandValue() const + {return field_RandValue;} + inline BITSTRING& AUTN() + {return field_AUTN;} + inline const BITSTRING& AUTN() const + {return field_AUTN;} + inline BITSTRING& XRES() + {return field_XRES;} + inline const BITSTRING& XRES() const + {return field_XRES;} + inline BITSTRING& KcGSM() + {return field_KcGSM;} + inline const BITSTRING& KcGSM() const + {return field_KcGSM;} + inline BITSTRING& Kc128() + {return field_Kc128;} + inline const BITSTRING& Kc128() const + {return field_Kc128;} + inline BITSTRING& KeySeq() + {return field_KeySeq;} + inline const BITSTRING& KeySeq() const + {return field_KeySeq;} + inline BITSTRING& CK() + {return field_CK;} + inline const BITSTRING& CK() const + {return field_CK;} + inline BITSTRING& IK() + {return field_IK;} + inline const BITSTRING& IK() const + {return field_IK;} + inline OPTIONAL& XRESLength() + {return field_XRESLength;} + inline const OPTIONAL& XRESLength() const + {return field_XRESLength;} +Base_Type* clone() const { return new Common__AuthenticationParams__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 9; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Common__AuthenticationParams__Type_template : public Record_Template { +void set_specific(); +public: +Common__AuthenticationParams__Type_template(): Record_Template() {} +Common__AuthenticationParams__Type_template(template_sel other_value): Record_Template(other_value) {} +Common__AuthenticationParams__Type_template(const Common__AuthenticationParams__Type& other_value): Record_Template() { copy_value(&other_value); } +Common__AuthenticationParams__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Common__AuthenticationParams__Type_template(Common__AuthenticationParams__Type_template* p_precondition, Common__AuthenticationParams__Type_template* p_implied_template); +Common__AuthenticationParams__Type_template(Dynamic_Match_Interface* p_dyn_match); +Common__AuthenticationParams__Type_template(const Common__AuthenticationParams__Type_template& other_value): Record_Template() { copy_template(other_value); } +~Common__AuthenticationParams__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Common__AuthenticationParams__Type_template& operator=(template_sel other_value); +Common__AuthenticationParams__Type_template& operator=(const Common__AuthenticationParams__Type& other_value); +Common__AuthenticationParams__Type_template& operator=(const OPTIONAL& other_value); +Common__AuthenticationParams__Type_template& operator=(const Common__AuthenticationParams__Type_template& other_value); +inline boolean match(const Common__AuthenticationParams__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Common__AuthenticationParams__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Common__AuthenticationParams__Type valueof() const; +inline Common__AuthenticationParams__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& RandValue(); +const BITSTRING_template& RandValue() const; +BITSTRING_template& AUTN(); +const BITSTRING_template& AUTN() const; +BITSTRING_template& XRES(); +const BITSTRING_template& XRES() const; +BITSTRING_template& KcGSM(); +const BITSTRING_template& KcGSM() const; +BITSTRING_template& Kc128(); +const BITSTRING_template& Kc128() const; +BITSTRING_template& KeySeq(); +const BITSTRING_template& KeySeq() const; +BITSTRING_template& CK(); +const BITSTRING_template& CK() const; +BITSTRING_template& IK(); +const BITSTRING_template& IK() const; +INTEGER_template& XRESLength(); +const INTEGER_template& XRESLength() const; +Record_Template* create() const { return new Common__AuthenticationParams__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AuthenticationError__Type : public Enum_Type { // enum +friend class AuthenticationError__Type_template; +public: +enum enum_type { noError = 0, macError = 1, sqnFailure = 2, macErrorPlusSepBit = 3, sepBit0 = 4, UNKNOWN_VALUE = 5, UNBOUND_VALUE = 6 }; +private: +enum_type enum_value; + +public: +AuthenticationError__Type(); +AuthenticationError__Type(int other_value); +AuthenticationError__Type(enum_type other_value); +AuthenticationError__Type(const AuthenticationError__Type& other_value); + +AuthenticationError__Type& operator=(int other_value); +AuthenticationError__Type& operator=(enum_type other_value); +AuthenticationError__Type& operator=(const AuthenticationError__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const AuthenticationError__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const AuthenticationError__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const AuthenticationError__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const AuthenticationError__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const AuthenticationError__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const AuthenticationError__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const AuthenticationError__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class AuthenticationError__Type_template : public Base_Template { +union { +AuthenticationError__Type::enum_type single_value; +struct { +unsigned int n_values; +AuthenticationError__Type_template *list_value; +} value_list; +struct { +AuthenticationError__Type_template* precondition; +AuthenticationError__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const AuthenticationError__Type_template& other_value); + +public: +AuthenticationError__Type_template(); +AuthenticationError__Type_template(template_sel other_value); +AuthenticationError__Type_template(int other_value); +AuthenticationError__Type_template(AuthenticationError__Type::enum_type other_value); +AuthenticationError__Type_template(const AuthenticationError__Type& other_value); +AuthenticationError__Type_template(const OPTIONAL& other_value); +AuthenticationError__Type_template(AuthenticationError__Type_template* p_precondition, AuthenticationError__Type_template* p_implied_template); +AuthenticationError__Type_template(Dynamic_Match_Interface* p_dyn_match); +AuthenticationError__Type_template(const AuthenticationError__Type_template& other_value); +~AuthenticationError__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +AuthenticationError__Type_template& operator=(template_sel other_value); +AuthenticationError__Type_template& operator=(int other_value); +AuthenticationError__Type_template& operator=(AuthenticationError__Type::enum_type other_value); +AuthenticationError__Type_template& operator=(const AuthenticationError__Type& other_value); +AuthenticationError__Type_template& operator=(const OPTIONAL& other_value); +AuthenticationError__Type_template& operator=(const AuthenticationError__Type_template& other_value); + +boolean match(AuthenticationError__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const AuthenticationError__Type& other_value, boolean legacy = FALSE) const; +AuthenticationError__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +AuthenticationError__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const AuthenticationError__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_NAS_AuthenticationCommon(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_NAS_AuthenticationCommon(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern Common__AuthenticationParams__Type_template cs__CommonAuthParams__Init(const BITSTRING_template& p__Rand); +extern BITSTRING f__Authentication__IncrementKeySeq(const BITSTRING& p__KeySeq); +extern Common__AuthenticationParams__Type f__AuthenticationInit(const Common__AuthenticationParams__Type& p__Auth__Params, const AuthenticationError__Type& p__AuthenticationError); + +/* Global variable declarations */ + +extern const XERdescriptor_t Common__AuthenticationParams__Type_RandValue_xer_; +extern const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_RandValue_oer_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_RandValue_descr_; +extern const XERdescriptor_t Common__AuthenticationParams__Type_AUTN_xer_; +extern const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_AUTN_oer_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_AUTN_descr_; +extern const XERdescriptor_t Common__AuthenticationParams__Type_XRES_xer_; +extern const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_XRES_oer_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_XRES_descr_; +extern const XERdescriptor_t Common__AuthenticationParams__Type_KcGSM_xer_; +extern const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_KcGSM_oer_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_KcGSM_descr_; +extern const XERdescriptor_t Common__AuthenticationParams__Type_Kc128_xer_; +extern const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_Kc128_oer_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_Kc128_descr_; +extern const XERdescriptor_t Common__AuthenticationParams__Type_KeySeq_xer_; +extern const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_KeySeq_oer_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_KeySeq_descr_; +extern const XERdescriptor_t Common__AuthenticationParams__Type_CK_xer_; +extern const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_CK_oer_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_CK_descr_; +extern const XERdescriptor_t Common__AuthenticationParams__Type_IK_xer_; +extern const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_IK_oer_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_IK_descr_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_descr_; +extern const XERdescriptor_t Common__AuthenticationParams__Type_XRESLength_xer_; +extern const TTCN_OERdescriptor_t Common__AuthenticationParams__Type_XRESLength_oer_; +extern const TTCN_Typedescriptor_t Common__AuthenticationParams__Type_XRESLength_descr_; +extern const TTCN_Typedescriptor_t AuthenticationError__Type_descr_; +extern const BITSTRING& tsc__AuthUndefinedB32; +extern BITSTRING const_tsc__AuthUndefinedB32; +extern const BITSTRING& tsc__AuthUndefinedB128; +extern BITSTRING const_tsc__AuthUndefinedB128; +extern const BITSTRING& tsc__AuthUndefinedB256; +extern BITSTRING const_tsc__AuthUndefinedB256; +extern Erroneous_descriptor_t* template_cs__CommonAuthParams__Init_err_descr_ptr; +extern const AuthenticationError__Type& f__AuthenticationInit_p__AuthenticationError_defval; +extern AuthenticationError__Type const_f__AuthenticationInit_p__AuthenticationError_defval; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NAS_AuthenticationCommon.o b/build/Ats_NG_NAS/NAS_AuthenticationCommon.o new file mode 100644 index 0000000000000000000000000000000000000000..f6fa44fb2c17a6bcbeb1da89ae2ee9d70e39e62a Binary files /dev/null and b/build/Ats_NG_NAS/NAS_AuthenticationCommon.o differ diff --git a/build/Ats_NG_NAS/NAS_AuxiliaryDefsAndFunctions.cc b/build/Ats_NG_NAS/NAS_AuxiliaryDefsAndFunctions.cc new file mode 100644 index 0000000000000000000000000000000000000000..2bc3858b6af5cd41f25e7b3bdadd578e2d4c10a3 --- /dev/null +++ b/build/Ats_NG_NAS/NAS_AuxiliaryDefsAndFunctions.cc @@ -0,0 +1,4184 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NAS_AuxiliaryDefsAndFunctions.hh" + +namespace NAS__AuxiliaryDefsAndFunctions { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Prototypes of static conversion functions */ + +static boolean conv_NAS__CommonTypeDefs_ExtdProtocolConfigOptions_pco_NAS__CommonTypeDefs_ProtocolConfigOptions_pco(NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p_to_v, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco_template& p_from_v); +static boolean conv_NAS__CommonTypeDefs_ExtdProtocolConfigOptions_pco_NAS__CommonTypeDefs_NAS__ExtdProtocolConfigOptions__Type(NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type& p_to_v, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco& p_from_v); + +/* Literal string constants */ + +static const unsigned char bs_2_bits[] = { 0 }, +bs_0_bits[] = { 0 }, +bs_3_bits[] = { 0 }, +bs_11_bits[] = { 128 }, +bs_10_bits[] = { 64 }, +bs_9_bits[] = { 32 }, +bs_1_bits[] = { 16 }, +bs_8_bits[] = { 16 }, +bs_7_bits[] = { 8 }, +bs_6_bits[] = { 4 }, +bs_5_bits[] = { 2 }, +bs_4_bits[] = { 1 }; +static const BITSTRING bs_2(1, bs_2_bits), +bs_0(2, bs_0_bits), +bs_3(8, bs_3_bits), +bs_11(8, bs_11_bits), +bs_10(8, bs_10_bits), +bs_9(8, bs_9_bits), +bs_1(5, bs_1_bits), +bs_8(8, bs_8_bits), +bs_7(8, bs_7_bits), +bs_6(8, bs_6_bits), +bs_5(8, bs_5_bits), +bs_4(1, bs_4_bits); +static const unsigned char hs_1_nibbles[] = { 0 }, +hs_0_nibbles[] = { 15 }; +static const HEXSTRING hs_1(1, hs_1_nibbles), +hs_0(1, hs_0_nibbles); +static const unsigned char os_9_octets[] = { 0 }, +os_4_octets[] = { 0, 1 }, +os_5_octets[] = { 0, 2 }, +os_6_octets[] = { 0, 3 }, +os_1_octets[] = { 0, 11 }, +os_7_octets[] = { 0, 12 }, +os_8_octets[] = { 0, 13 }, +os_2_octets[] = { 0, 26 }, +os_3_octets[] = { 0, 31 }, +os_10_octets[] = { 52 }, +os_11_octets[] = { 122 }, +os_12_octets[] = { 127 }; +static const OCTETSTRING os_0(0, NULL), +os_9(1, os_9_octets), +os_4(2, os_4_octets), +os_5(2, os_5_octets), +os_6(2, os_6_octets), +os_1(2, os_1_octets), +os_7(2, os_7_octets), +os_8(2, os_8_octets), +os_2(2, os_2_octets), +os_3(2, os_3_octets), +os_10(1, os_10_octets), +os_11(1, os_11_octets), +os_12(1, os_12_octets); +static const CHARSTRING cs_3(0, NULL), +cs_8(2, "\r\n"), +cs_7(15, "*[\"]([^\"]+)[\"]*"), +cs_5('.'), +cs_0(71, "/home/yanng/dev/nas/ttcn/Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn"), +cs_4('0'), +cs_1(49, "Unexpected PICS setting in f_GetDNNStringFromPICS"), +cs_9(16, "Value expected: "), +cs_10(16, "Value received: "), +cs_2(3, "sos"), +cs_6(30, "unsupported number of emg nums"); +static const unsigned char module_checksum[] = { 0xc6, 0x5e, 0x5a, 0x17, 0x09, 0xf5, 0x43, 0x3d, 0x27, 0x72, 0x91, 0xf3, 0x40, 0x2d, 0x0d, 0x92 }; + +/* Global variable definitions */ + +Erroneous_descriptor_t* template_cs__ExtdEmergNum_err_descr_ptr = NULL; +OCTETSTRING const_cs__ExtdEmergNum_p__SubServices_defval; +const OCTETSTRING& cs__ExtdEmergNum_p__SubServices_defval = const_cs__ExtdEmergNum_p__SubServices_defval; +CommonDefs::PDN__Index__Type const_f__NAS__GetProtocolConfigOptionList_p__PdnIndex_defval; +const CommonDefs::PDN__Index__Type& f__NAS__GetProtocolConfigOptionList_p__PdnIndex_defval = const_f__NAS__GetProtocolConfigOptionList_p__PdnIndex_defval; +BOOLEAN const_f__NAS__GetProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval; +const BOOLEAN& f__NAS__GetProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval = const_f__NAS__GetProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval; +CommonDefs::PDN__Index__Type const_f__GetDefaultProtocolConfigOptions_p__PdnIndex_defval; +const CommonDefs::PDN__Index__Type& f__GetDefaultProtocolConfigOptions_p__PdnIndex_defval = const_f__GetDefaultProtocolConfigOptions_p__PdnIndex_defval; +CommonDefs::PDN__Index__Type const_f__GetDefaultExtdProtocolConfigOptions_p__PdnIndex_defval; +const CommonDefs::PDN__Index__Type& f__GetDefaultExtdProtocolConfigOptions_p__PdnIndex_defval = const_f__GetDefaultExtdProtocolConfigOptions_p__PdnIndex_defval; +BOOLEAN const_f__NAS__GetExtdProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval; +const BOOLEAN& f__NAS__GetExtdProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval = const_f__NAS__GetExtdProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval; +CommonDefs::PDN__Index__Type const_f__NAS__GetExtdProtocolConfigOptionList_p__PdnIndex_defval; +const CommonDefs::PDN__Index__Type& f__NAS__GetExtdProtocolConfigOptionList_p__PdnIndex_defval = const_f__NAS__GetExtdProtocolConfigOptionList_p__PdnIndex_defval; +BITSTRING const_f__Imei2MobileIdentity_p__NAS__IdType_defval; +const BITSTRING& f__Imei2MobileIdentity_p__NAS__IdType_defval = const_f__Imei2MobileIdentity_p__NAS__IdType_defval; +BITSTRING const_f__Build__ExtdEmergNumList_p__EENLV_defval; +const BITSTRING& f__Build__ExtdEmergNumList_p__EENLV_defval = const_f__Build__ExtdEmergNumList_p__EENLV_defval; +OCTETSTRING const_f__Build__ExtdEmergNumList_p__SubServices_defval; +const OCTETSTRING& f__Build__ExtdEmergNumList_p__SubServices_defval = const_f__Build__ExtdEmergNumList_p__SubServices_defval; +CHARSTRING const_f__AT__ResponseCheck_p__Text_defval; +const CHARSTRING& f__AT__ResponseCheck_p__Text_defval = const_f__AT__ResponseCheck_p__Text_defval; +CHARSTRING const_f__AT__ResponseCheck_p__Expression_defval; +const CHARSTRING& f__AT__ResponseCheck_p__Expression_defval = const_f__AT__ResponseCheck_p__Expression_defval; +INTEGER const_f__AT__ResponseCheck_p__Group_defval; +const INTEGER& f__AT__ResponseCheck_p__Group_defval = const_f__AT__ResponseCheck_p__Group_defval; +TTCN_Module module_object("NAS_AuxiliaryDefsAndFunctions", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NAS_AuxiliaryDefsAndFunctions"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xCSfallback, "pc_1xCSfallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xRTT, "pc_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__A5__4__CS, "pc_A5_4_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__Default__Configuration, "pc_APN_Default_Configuration", "APN_DefaultConfiguration_Type", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::pc__APN__ID__Ethernet, "pc_APN_ID_Ethernet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__IMS, "pc_APN_ID_IMS", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__Internet, "pc_APN_ID_Internet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__MIOT, "pc_APN_ID_MIOT", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__URLLC, "pc_APN_ID_URLLC", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__V2X, "pc_APN_ID_V2X", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Allowed__CSG__list, "pc_Allowed_CSG_list", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Attach, "pc_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Auto__PDN__Connectivity, "pc_Auto_PDN_Connectivity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__EPS__Re__Attach, "pc_Automatic_EPS_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__Re__Attach, "pc_Automatic_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Available__PLMNs__AcT__Ind, "pc_Available_PLMNs_AcT_Ind", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__BSRVCC, "pc_BSRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CMAS__Message, "pc_CMAS_Message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS, "pc_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__1xRTT, "pc_CS_Em_Call_in_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__GERAN, "pc_CS_Em_Call_in_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__UTRA, "pc_CS_Em_Call_in_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Fallback, "pc_CS_Fallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__data__centric, "pc_CS_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__voice__centric, "pc_CS_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Combined__Attach, "pc_Combined_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DSMIPv6, "pc_DSMIPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DaylightSavingTime, "pc_DaylightSavingTime", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DualRM__Coding, "pc_DualRM_Coding", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB, "pc_EAB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB__override, "pc_EAB_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EDTM, "pc_EDTM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EMM__Information, "pc_EMM_Information", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPC__RACS, "pc_EPC_RACS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__IMS__EmergencyCall, "pc_EPS_IMS_EmergencyCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__Services__Disable, "pc_EPS_Services_Disable", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Allocation, "pc_ESM_MO_Bearer_Allocation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Modification, "pc_ESM_MO_Bearer_Modification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__Notification, "pc_ESM_Notification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__UE__Modification__NW__TFT, "pc_ESM_UE_Modification_NW_TFT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ETWS__message, "pc_ETWS_message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRAN__2__GERAN__PSHO, "pc_E_UTRAN_2_GERAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRA__WLAN__offload, "pc_E_UTRA_WLAN_offload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EmergSpeech, "pc_EmergSpeech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FDD, "pc_FDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__F, "pc_FeatrGrp_101_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__T, "pc_FeatrGrp_101_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__F, "pc_FeatrGrp_102_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__T, "pc_FeatrGrp_102_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__F, "pc_FeatrGrp_103_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__T, "pc_FeatrGrp_103_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__F, "pc_FeatrGrp_104_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__T, "pc_FeatrGrp_104_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__F, "pc_FeatrGrp_105_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__T, "pc_FeatrGrp_105_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__F, "pc_FeatrGrp_106_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__T, "pc_FeatrGrp_106_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__F, "pc_FeatrGrp_107_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__T, "pc_FeatrGrp_107_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__F, "pc_FeatrGrp_108_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__T, "pc_FeatrGrp_108_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__F, "pc_FeatrGrp_109_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__T, "pc_FeatrGrp_109_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__F, "pc_FeatrGrp_10_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__T, "pc_FeatrGrp_10_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__F, "pc_FeatrGrp_110_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__T, "pc_FeatrGrp_110_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__F, "pc_FeatrGrp_111_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__T, "pc_FeatrGrp_111_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__F, "pc_FeatrGrp_112_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__T, "pc_FeatrGrp_112_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__F, "pc_FeatrGrp_113_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__T, "pc_FeatrGrp_113_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__F, "pc_FeatrGrp_114_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__T, "pc_FeatrGrp_114_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__F, "pc_FeatrGrp_115_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__T, "pc_FeatrGrp_115_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__F, "pc_FeatrGrp_116_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__T, "pc_FeatrGrp_116_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__F, "pc_FeatrGrp_11_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__T, "pc_FeatrGrp_11_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__F, "pc_FeatrGrp_12_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__T, "pc_FeatrGrp_12_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__F, "pc_FeatrGrp_13_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__T, "pc_FeatrGrp_13_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__F, "pc_FeatrGrp_14_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__T, "pc_FeatrGrp_14_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__F, "pc_FeatrGrp_15_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__T, "pc_FeatrGrp_15_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__F, "pc_FeatrGrp_16_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__T, "pc_FeatrGrp_16_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__F, "pc_FeatrGrp_17_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__T, "pc_FeatrGrp_17_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__F, "pc_FeatrGrp_18_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__T, "pc_FeatrGrp_18_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__F, "pc_FeatrGrp_19_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__T, "pc_FeatrGrp_19_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__F, "pc_FeatrGrp_1_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__T, "pc_FeatrGrp_1_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__F, "pc_FeatrGrp_20_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__T, "pc_FeatrGrp_20_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__F, "pc_FeatrGrp_21_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__T, "pc_FeatrGrp_21_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__F, "pc_FeatrGrp_22_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__T, "pc_FeatrGrp_22_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__F, "pc_FeatrGrp_23_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__T, "pc_FeatrGrp_23_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__F, "pc_FeatrGrp_24_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__T, "pc_FeatrGrp_24_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__F, "pc_FeatrGrp_25_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__T, "pc_FeatrGrp_25_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__F, "pc_FeatrGrp_26_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__T, "pc_FeatrGrp_26_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__F, "pc_FeatrGrp_27_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__T, "pc_FeatrGrp_27_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__F, "pc_FeatrGrp_28_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__T, "pc_FeatrGrp_28_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__F, "pc_FeatrGrp_29_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__T, "pc_FeatrGrp_29_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__F, "pc_FeatrGrp_2_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__T, "pc_FeatrGrp_2_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__F, "pc_FeatrGrp_30_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__T, "pc_FeatrGrp_30_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__F, "pc_FeatrGrp_31_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__T, "pc_FeatrGrp_31_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__F, "pc_FeatrGrp_33_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__T, "pc_FeatrGrp_33_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__F, "pc_FeatrGrp_34_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__T, "pc_FeatrGrp_34_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__F, "pc_FeatrGrp_35_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__T, "pc_FeatrGrp_35_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__F, "pc_FeatrGrp_36_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__T, "pc_FeatrGrp_36_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__F, "pc_FeatrGrp_37_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__T, "pc_FeatrGrp_37_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__F, "pc_FeatrGrp_38_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__T, "pc_FeatrGrp_38_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__F, "pc_FeatrGrp_39_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__T, "pc_FeatrGrp_39_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__F, "pc_FeatrGrp_3_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__T, "pc_FeatrGrp_3_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__F, "pc_FeatrGrp_40_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__T, "pc_FeatrGrp_40_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__F, "pc_FeatrGrp_41_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__T, "pc_FeatrGrp_41_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__F, "pc_FeatrGrp_42_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__T, "pc_FeatrGrp_42_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__F, "pc_FeatrGrp_4_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__T, "pc_FeatrGrp_4_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__F, "pc_FeatrGrp_5_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__T, "pc_FeatrGrp_5_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__F, "pc_FeatrGrp_6_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__T, "pc_FeatrGrp_6_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__F, "pc_FeatrGrp_7_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__T, "pc_FeatrGrp_7_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__F, "pc_FeatrGrp_8_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__T, "pc_FeatrGrp_8_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__F, "pc_FeatrGrp_9_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__T, "pc_FeatrGrp_9_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FullNameNetwork, "pc_FullNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN, "pc_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__PSHO, "pc_GERAN_2_E_UTRAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__meas, "pc_GERAN_2_E_UTRAN_meas", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__measreporting__CCN, "pc_GERAN_2_E_UTRAN_measreporting_CCN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eFDD, "pc_HO_from_UTRA_to_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eTDD, "pc_HO_from_UTRA_to_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HRPD, "pc_HRPD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS, "pc_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMSI__Detach, "pc_IMSI_Detach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__APN__default, "pc_IMS_APN_default", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCC, "pc_IMS_CS_PS_SRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCAlert, "pc_IMS_CS_PS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCMidCall, "pc_IMS_CS_PS_SRVCCMidCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__SRVCCAlert, "pc_IMS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__emergency__call, "pc_IMS_emergency_call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv4, "pc_IPv4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv6, "pc_IPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ISR, "pc_ISR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ImmConnect, "pc_ImmConnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__InterFreq__ProximityIndication, "pc_InterFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IntraFreq__ProximityIndication, "pc_IntraFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__KeepEpsBearerParametersAfterNormalDetach, "pc_KeepEpsBearerParametersAfterNormalDetach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP, "pc_LAP", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP__override, "pc_LAP_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LocalTimeZone, "pc_LocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LoggedMeasurementsIdle, "pc_LoggedMeasurementsIdle", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Manual__CSG__Selection, "pc_Manual_CSG_Selection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Multiple__PDN, "pc_Multiple_PDN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v1__0, "pc_NG114_v1_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v2__0, "pc_NG114_v2_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG__RAN__NR, "pc_NG_RAN_NR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NR__5GC__EmergencyServices, "pc_NR_5GC_EmergencyServices", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__No__USIM__TestExecution, "pc_No_USIM_TestExecution", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__Manual__Mode__Exception, "pc_PLMN_Manual_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS, "pc_PS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__data__centric, "pc_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__voice__centric, "pc_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PWS__UpperLayer, "pc_PWS_UpperLayer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ProvideDST__inUse, "pc_ProvideDST_inUse", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__APN, "pc_Provide_IMS_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__as__second__APN, "pc_Provide_IMS_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__Internet__as__second__APN, "pc_Provide_Internet_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RLF__ReportForInterRAT__MRO, "pc_RLF_ReportForInterRAT_MRO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0001, "pc_ROHC_profile0x0001", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0002, "pc_ROHC_profile0x0002", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0003, "pc_ROHC_profile0x0003", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0004, "pc_ROHC_profile0x0004", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0006, "pc_ROHC_profile0x0006", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0101, "pc_ROHC_profile0x0101", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0102, "pc_ROHC_profile0x0102", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0103, "pc_ROHC_profile0x0103", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0104, "pc_ROHC_profile0x0104", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Rach__Report, "pc_Rach_Report", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Re__Attach__AfterDetachColl, "pc_Re_Attach_AfterDetachColl", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv4HAAddress__DuringAttach, "pc_RequestIPv4HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv6HAAddress__DuringAttach, "pc_RequestIPv6HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__UMTS__Autonomous__Gaps, "pc_SI_Neighbour_UMTS_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__interFreq__Autonomous__Gaps, "pc_SI_Neighbour_interFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__intraFreq__Autonomous__Gaps, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs, "pc_SMS_SGs", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MO, "pc_SMS_SGs_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MT, "pc_SMS_SGs_MT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__Multi__MO, "pc_SMS_SGs_Multi_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SRVCC__GERAN__UTRAN, "pc_SRVCC_GERAN_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Semi__Persistence__Scheduling, "pc_Semi_Persistence_Scheduling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ShortNameNetwork, "pc_ShortNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Speech, "pc_Speech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__StandaloneGNSS__Location, "pc_StandaloneGNSS_Location", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SupportOpModeA, "pc_SupportOpModeA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SwitchOnOff, "pc_SwitchOnOff", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__connected__in__IMS, "pc_TAU_connected_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__idle__in__IMS, "pc_TAU_idle_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__HCR, "pc_TDD_HCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__LCR, "pc_TDD_LCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__VHCR, "pc_TDD_VHCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TTI__Bundling, "pc_TTI_Bundling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TestModeforCSGproximity, "pc_TestModeforCSGproximity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UE__supports__user__initiated__PDN__disconnect, "pc_UE_supports_user_initiated_PDN_disconnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UL__MIMO, "pc_UL_MIMO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMI__ProcNeeded__DuringCSFB, "pc_UMI_ProcNeeded_DuringCSFB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMTS__GSM, "pc_UMTS_GSM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__USIM__Removal, "pc_USIM_Removal", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA, "pc_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ANR, "pc_UTRAN_ANR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ProximityIndication, "pc_UTRAN_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__1, "pc_UTRA_FeatrGrp_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__2, "pc_UTRA_FeatrGrp_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__3, "pc_UTRA_FeatrGrp_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__4, "pc_UTRA_FeatrGrp_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeAssistedAgps, "pc_UeAssistedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeBasedAgps, "pc_UeBasedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UniversalAndLocalTimeZone, "pc_UniversalAndLocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UpdateUE__LocationInformation, "pc_UpdateUE_LocationInformation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UserInitiatedPLMN__Reselection, "pc_UserInitiatedPLMN_Reselection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__VoLTE, "pc_VoLTE", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__Imm__MDT, "pc_WLAN_Meas_Imm_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__logged__MDT, "pc_WLAN_Meas_logged_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__voice, "pc_WLAN_voice", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__only__APN, "pc_XCAP_only_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__over__Internet__APN, "pc_XCAP_over_Internet_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ZUC, "pc_ZUC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eCall__Test__Call, "pc_eCall_Test_Call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD, "pc_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD__MultiBand, "pc_eFDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS, "pc_eMBMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS__SC, "pc_eMBMS_SC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMinimumPeriodicSearchTimer, "pc_eMinimumPeriodicSearchTimer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eRedirectionUTRA, "pc_eRedirectionUTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD, "pc_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD__MultiBand, "pc_eTDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eWLAN, "pc_eWLAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__multipleTimingAdvance, "pc_multipleTimingAdvance", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__0, "pc_ue_CategoryDL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__10, "pc_ue_CategoryDL_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__11, "pc_ue_CategoryDL_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__12, "pc_ue_CategoryDL_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__13, "pc_ue_CategoryDL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__14, "pc_ue_CategoryDL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__15, "pc_ue_CategoryDL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__16, "pc_ue_CategoryDL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__17, "pc_ue_CategoryDL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__18, "pc_ue_CategoryDL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__19, "pc_ue_CategoryDL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__1bis, "pc_ue_CategoryDL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__20, "pc_ue_CategoryDL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__21, "pc_ue_CategoryDL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__22, "pc_ue_CategoryDL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__23, "pc_ue_CategoryDL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__24, "pc_ue_CategoryDL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__25, "pc_ue_CategoryDL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__26, "pc_ue_CategoryDL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__4, "pc_ue_CategoryDL_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__6, "pc_ue_CategoryDL_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__7, "pc_ue_CategoryDL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__9, "pc_ue_CategoryDL_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M1, "pc_ue_CategoryDL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M2, "pc_ue_CategoryDL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__0, "pc_ue_CategoryUL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__13, "pc_ue_CategoryUL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__14, "pc_ue_CategoryUL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__15, "pc_ue_CategoryUL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__16, "pc_ue_CategoryUL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__17, "pc_ue_CategoryUL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__18, "pc_ue_CategoryUL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__19, "pc_ue_CategoryUL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__1bis, "pc_ue_CategoryUL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__20, "pc_ue_CategoryUL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__21, "pc_ue_CategoryUL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__22, "pc_ue_CategoryUL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__23, "pc_ue_CategoryUL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__24, "pc_ue_CategoryUL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__25, "pc_ue_CategoryUL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__26, "pc_ue_CategoryUL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__3, "pc_ue_CategoryUL_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__5, "pc_ue_CategoryUL_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__7, "pc_ue_CategoryUL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__8, "pc_ue_CategoryUL_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M1, "pc_ue_CategoryUL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M2, "pc_ue_CategoryUL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__1, "pc_ue_Category_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__10, "pc_ue_Category_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__11, "pc_ue_Category_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__12, "pc_ue_Category_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__2, "pc_ue_Category_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__3, "pc_ue_Category_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__4, "pc_ue_Category_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__5, "pc_ue_Category_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__6, "pc_ue_Category_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__7, "pc_ue_Category_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__8, "pc_ue_Category_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__9, "pc_ue_Category_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voiceOverNR, "pc_voiceOverNR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voice__PS__1__CS__2, "pc_voice_PS_1_CS_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AccessPointName, "px_AccessPointName", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AquireGNSS__MaxTime, "px_AquireGNSS_MaxTime", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AttachTypeTested, "px_AttachTypeTested", "EUTRA_ATTACH_TESTED_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__AuthAMF, "px_AuthAMF", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AuthK, "px_AuthK", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EllipsoidPointWithAltitude, "px_EllipsoidPointWithAltitude", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EmergencyCallNumber, "px_EmergencyCallNumber", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__FDD__OperationBand, "px_FDD_OperationBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__HorizontalVelocity, "px_HorizontalVelocity", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEISV__Def, "px_IMEISV_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEI__Def, "px_IMEI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Def, "px_IMSI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Diff, "px_IMSI_Diff", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IP__MTU__Size, "px_IP_MTU_Size", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__NW, "px_IPv4_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__RemoteUE, "px_IPv4_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__UE, "px_IPv4_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__NW, "px_IPv4_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__RemoteUE, "px_IPv4_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__UE, "px_IPv4_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2a__UE, "px_IPv4_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__NW, "px_IPv4_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__RemoteUE, "px_IPv4_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__UE, "px_IPv4_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__NW, "px_IPv4_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__UE, "px_IPv4_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__NW, "px_IPv4_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__UE, "px_IPv4_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__NW, "px_IPv4_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__UE, "px_IPv4_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address__HomeAgent, "px_IPv4_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__NW, "px_IPv6_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__RemoteUE, "px_IPv6_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__UE, "px_IPv6_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__NW, "px_IPv6_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__RemoteUE, "px_IPv6_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__UE, "px_IPv6_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2a__UE, "px_IPv6_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__NW, "px_IPv6_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__RemoteUE, "px_IPv6_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__UE, "px_IPv6_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__NW, "px_IPv6_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__UE, "px_IPv6_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__NW, "px_IPv6_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__UE, "px_IPv6_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__NW, "px_IPv6_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__UE, "px_IPv6_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address__HomeAgent, "px_IPv6_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__MFBI__UTRAN__FrequencyBand, "px_MFBI_UTRAN_FrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__CipheringAlgorithm, "px_NAS_CipheringAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__IntegrityProtAlgorithm, "px_NAS_IntegrityProtAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__Def, "px_PTMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__SigDef, "px_PTMSI_SigDef", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataCodingScheme, "px_PWS_CB_DataCodingScheme", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage1, "px_PWS_CB_DataPage1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage2, "px_PWS_CB_DataPage2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage3, "px_PWS_CB_DataPage3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage4, "px_PWS_CB_DataPage4", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__RATComb__Tested, "px_RATComb_Tested", "RATComb_Tested_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__SMS__ChkMsgReceived, "px_SMS_ChkMsgReceived", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__IndexOffset, "px_SMS_IndexOffset", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__MsgFrmt, "px_SMS_MsgFrmt", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem1, "px_SMS_PrefMem1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem2, "px_SMS_PrefMem2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem3, "px_SMS_PrefMem3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__Service, "px_SMS_Service", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SinglePLMN__Tested, "px_SinglePLMN_Tested", "SinglePLMN_TestedType", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__TMSI__Def, "px_TMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__TestLoopModeB__Delay, "px_TestLoopModeB_Delay", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__UE__CS__PS__UsageSetting__Tested, "px_UE_CS_PS_UsageSetting_Tested", "CS_PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UE__PS__UsageSetting__Tested, "px_UE_PS_UsageSetting_Tested", "PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UTRAN__ModeUnderTest, "px_UTRAN_ModeUnderTest", "UTRAN_FDD_TDD_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__WLAN__PDN1__ToOffload, "px_WLAN_PDN1_ToOffload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eAuthRAND, "px_eAuthRAND", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eJapanMCC__Band6, "px_eJapanMCC_Band6", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__ePrimaryFrequencyBand, "px_ePrimaryFrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::cdr__AuthFailParamGSM__Any, "cdr_AuthFailParamGSM_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cdr__MS__NetworkCapAss__lv, "cdr_MS_NetworkCapAss_lv", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__1__tlv, "cds_508_EPS_QoS_Default_1_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__3, "cds_508_EPS_QoS_Default_3", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI, "cds_EPS_QoS_Def_nonGBR_QCI", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI__tlv, "cds_EPS_QoS_Def_nonGBR_QCI_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__2, "cds_QoS_Negotiated_2", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__3, "cds_QoS_Negotiated_3", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__8, "cds_QoS_Negotiated_8", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AccessPointName__Any, "cr_AccessPointName_Any", "AccessPointName template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AdditionalUpdateTypeAny, "cr_AdditionalUpdateTypeAny", "AdditionalUpdateType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AuthFailParam__Any, "cr_AuthFailParam_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecAny, "cr_CodecAny", "Codec template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecListAny, "cr_CodecListAny", "CodecList template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__DetachTypeOnSwitchOff, "cr_DetachTypeOnSwitchOff", "DetachType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__EDGE__Struct__Any, "cr_EDGE_Struct_Any", "EDGE_Struct template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdDRXParamsAny, "cr_ExtdDRXParamsAny", "ExtdDRXParams template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdPCOAny, "cr_ExtdPCOAny", "ExtdProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__Extd__EPS__QOS__Any, "cr_Extd_EPS_QOS_Any", "Extd_EPS_QOS template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any, "cr_LAI_Any", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any__v, "cr_LAI_Any_v", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MSCLSMK3__Any, "cr_MSCLSMK3_Any", "MS_Clsmk3 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__Clsmk2__Any, "cr_MS_Clsmk2_Any", "MS_Clsmk2 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__MeasCapability__Any, "cr_MS_MeasCapability_Any", "MS_MeasCapability template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__NetworkCap__Any, "cr_MS_NetworkCap_Any", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__NBIFOMContainerAny, "cr_NBIFOMContainerAny", "NBIFOMContainer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__Signature2Any, "cr_PTMSI_Signature2Any", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__SignatureAny, "cr_PTMSI_SignatureAny", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ProtocolConfigOptionsAny, "cr_ProtocolConfigOptionsAny", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__UEStatus__Any, "cr_UEStatus_Any", "UE_Status template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__VoiceDomainPref__Any, "cr_VoiceDomainPref_Any", "VoiceDomainPref template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WUSAssistInfoAny, "cr_WUSAssistInfoAny", "WUSAssistInfo template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WusInfoTypeAny, "cr_WusInfoTypeAny", "WusInfoType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__508__EPS__QoS__Default__1, "cs_508_EPS_QoS_Default_1", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__GprsTimer__v__deact, "cs_GprsTimer_v_deact", "GPRS_Timer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMP, "cs_PktFilterCompProtocolIdNextHeaderICMP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMPv6, "cs_PktFilterCompProtocolIdNextHeaderICMPv6", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderIPSec, "cs_PktFilterCompProtocolIdNextHeaderIPSec", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderTCP, "cs_PktFilterCompProtocolIdNextHeaderTCP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderUDP, "cs_PktFilterCompProtocolIdNextHeaderUDP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFlowId, "cs_PktFlowId", "PacketFlowIdentifier template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__ProtocolConfigOptions__PPP, "cs_ProtocolConfigOptions_PPP", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__QoS__Negotiated__1, "cs_QoS_Negotiated_1", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1, "tsc_APN1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1__String, "tsc_APN1_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2, "tsc_APN2", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2__String, "tsc_APN2_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3, "tsc_APN3", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3__String, "tsc_APN3_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__MAC__Failure, "tsc_Cause_MAC_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__NoNetworkSlices__Available, "tsc_Cause_NoNetworkSlices_Available", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowed, "tsc_Cause_PLMN_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation, "tsc_Cause_PLMN_NotAllowedToOperateAtPresentUELocation", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__Roaming__NotAllowed, "tsc_Cause_Roaming_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__SQN__Failure, "tsc_Cause_SQN_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__TA__NotAllowed, "tsc_Cause_TA_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__nonEPS__AuthUnacceptable, "tsc_Cause_nonEPS_AuthUnacceptable", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__ConsecutiveTacs, "tsc_ConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalMe, "tsc_EmmCause_IllegalMe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalUe, "tsc_EmmCause_IllegalUe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__SemanticallyIncorrect, "tsc_EmmCause_SemanticallyIncorrect", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__1min, "tsc_Gprs3TimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__30sec, "tsc_Gprs3TimerUnit_30sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__1min, "tsc_GprsTimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__2sec, "tsc_GprsTimerUnit_2sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__6min, "tsc_GprsTimerUnit_6min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__deact, "tsc_GprsTimerUnit_deact", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IMEISV__Requested, "tsc_IMEISV_Requested", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv4Mask, "tsc_IPv4Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv6Mask, "tsc_IPv6Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__GUTI, "tsc_IdType_GUTI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI, "tsc_IdType_IMEI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEISV, "tsc_IdType_IMEISV", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI__24301, "tsc_IdType_IMEI_24301", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMSI, "tsc_IdType_IMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__TMSI, "tsc_IdType_TMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__MultiplePlmns, "tsc_MultiplePlmns", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__MappedSecurityContext, "tsc_NasKsi_MappedSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NativeSecurityContext, "tsc_NasKsi_NativeSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NoKey, "tsc_NasKsi_NoKey", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NoValidTmsi, "tsc_NoValidTmsi", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NonConsecutiveTacs, "tsc_NonConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6, "tsc_PCO_Id_DSMIPv6", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6__IPv4, "tsc_PCO_Id_DSMIPv6_IPv4", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__1, "tsc_PTI_1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__Unassigned, "tsc_PTI_Unassigned", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PayloadContainerESMMsg, "tsc_PayloadContainerESMMsg", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4, "tsc_PdnType_IPv4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4v6, "tsc_PdnType_IPv4v6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv6, "tsc_PdnType_IPv6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected, "tsc_SHT_IntegrityProtected", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered, "tsc_SHT_IntegrityProtected_Ciphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext, "tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__NewSecurityContext, "tsc_SHT_IntegrityProtected_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__PartiallyCiphered, "tsc_SHT_IntegrityProtected_PartiallyCiphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__NoSecurityProtection, "tsc_SHT_NoSecurityProtection", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare1, "tsc_Spare1", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare2, "tsc_Spare2", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare3, "tsc_Spare3", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare4, "tsc_Spare4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare5, "tsc_Spare5", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare6, "tsc_Spare6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare7, "tsc_Spare7", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SpareHalfOctet, "tsc_SpareHalfOctet", "hexstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoReply, "tsc_ICMP_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoRequest, "tsc_ICMP_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoReply, "tsc_ICMPv6_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoRequest, "tsc_ICMPv6_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M1, "tsc_IMS_MediaPort_M1", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M2, "tsc_IMS_MediaPort_M2", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M3, "tsc_IMS_MediaPort_M3", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__PortNumber__5060, "tsc_IMS_PortNumber_5060", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__AnyData, "tsc_IP_AnyData", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMP, "tsc_IP_Protocol_ICMP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMPv6, "tsc_IP_Protocol_ICMPv6", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__IPSec, "tsc_IP_Protocol_IPSec", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__TCP, "tsc_IP_Protocol_TCP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__UDP, "tsc_IP_Protocol_UDP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__MulticastPrefix__FF02, "tsc_MulticastPrefix_FF02", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PDN1__AddressInfo, "tsc_PDN1_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN2__AddressInfo, "tsc_PDN2_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN3__AddressInfo, "tsc_PDN3_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN4__AddressInfo, "tsc_PDN4_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN5__AddressInfo, "tsc_PDN5_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN6__AddressInfo, "tsc_PDN6_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN__AddressInfo, "tsc_PDN_AddressInfo", "PDN_AddressInfo_Type[6]", "CommonIP", TTCN3_Debugger::print_value_array); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTP, "tsc_PortNumberHTTP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTPS, "tsc_PortNumberHTTPS", "integer", "CommonIP", TTCN3_Debugger::print_base_var); +} + +/* Bodies of functions, altsteps and testcases */ + +NAS__CommonTypeDefs::ExtdEmergNum_template cs__ExtdEmergNum(const OCTETSTRING& p__Digits, const OCTETSTRING& p__SubServices) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 20, TTCN_Location::LOCATION_TEMPLATE, "cs_ExtdEmergNum"); +charstring_list param_names; +param_names[0] = "p_Digits"; +param_names[1] = "p_SubServices"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_ExtdEmergNum", "template", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Digits, "p_Digits", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SubServices, "p_SubServices", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::ExtdEmergNum_template ret_val; +ret_val.len() = int2oct(p__Digits.lengthof(), 1); +ret_val.digits() = p__Digits; +ret_val.lengthOfSubService() = int2oct(p__SubServices.lengthof(), 1); +ret_val.subServices() = p__SubServices; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__ExtdEmergNum_err_descr_ptr); +return ret_val; +} + +BOOLEAN f__CheckPCOforIPallocationViaNas(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 39, TTCN_Location::LOCATION_FUNCTION, "f_CheckPCOforIPallocationViaNas"); +charstring_list param_names; +param_names[0] = "p_Pco"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_CheckPCOforIPallocationViaNas", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(41); +ttcn3_debugger.breakpoint_entry(41); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 41 */ +NAS__CommonTypeDefs::ProtocolConfigOptions_pco v__ProtocolContainerList; +debug_scope.add_variable(&v__ProtocolContainerList, "v_ProtocolContainerList", "ProtocolConfigOptions_pco", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(42); +ttcn3_debugger.breakpoint_entry(42); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 42 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(44); +ttcn3_debugger.breakpoint_entry(44); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 44 */ +{ +boolean tmp_3; +{ +boolean tmp_0 = p__Pco.is_bound(); +if(tmp_0) { +switch (p__Pco.get_selection()) { +case UNINITIALIZED_TEMPLATE: +tmp_0 = FALSE; +break; +case ANY_VALUE: +tmp_0 = FALSE; +break; +case SPECIFIC_VALUE: { +if(tmp_0) { +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& tmp_1 = p__Pco; +const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& tmp_2 = tmp_1.pco(); +tmp_0 = tmp_2.is_value(); +} +break;} +default: +tmp_0 = FALSE; +break; +} +} +tmp_3 = tmp_0; +} +if (tmp_3) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(45); +ttcn3_debugger.breakpoint_entry(45); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 45 */ +v__ProtocolContainerList = const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_template&>(p__Pco).pco().valueof(); +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 46 */ +i = 0; +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 46 */ +for ( ; ; ) { +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 46 */ +if (!(i < v__ProtocolContainerList.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(47); +ttcn3_debugger.breakpoint_entry(47); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 47 */ +if ((const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_pco&>(v__ProtocolContainerList)[i].protocolID() == os_1)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(48); +ttcn3_debugger.breakpoint_entry(48); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 48 */ +{ +BOOLEAN tmp_6; +return DEBUGGER_STORE_RETURN_VALUE(tmp_6, FALSE); +} +} +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 46 */ +{ +INTEGER tmp_7; +++i; +} +} +} +} +current_location.update_lineno(52); +ttcn3_debugger.breakpoint_entry(52); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 52 */ +{ +BOOLEAN tmp_8; +return DEBUGGER_STORE_RETURN_VALUE(tmp_8, TRUE); +} +} + +BOOLEAN f__CheckExtdPCOforIPallocationViaNas(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 63, TTCN_Location::LOCATION_FUNCTION, "f_CheckExtdPCOforIPallocationViaNas"); +charstring_list param_names; +param_names[0] = "p_Pco"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_CheckExtdPCOforIPallocationViaNas", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(65); +ttcn3_debugger.breakpoint_entry(65); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 65 */ +NAS__CommonTypeDefs::ExtdProtocolConfigOptions v__Pco; +debug_scope.add_variable(&v__Pco, "v_Pco", "ExtdProtocolConfigOptions", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(66); +ttcn3_debugger.breakpoint_entry(66); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 66 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(68); +ttcn3_debugger.breakpoint_entry(68); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 68 */ +if (p__Pco.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(69); +ttcn3_debugger.breakpoint_entry(69); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 69 */ +v__Pco = p__Pco.valueof(); +current_location.update_lineno(70); +ttcn3_debugger.breakpoint_entry(70); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 70 */ +{ +boolean tmp_13; +{ +boolean tmp_10 = v__Pco.is_bound(); +if(tmp_10) { +const OPTIONAL< NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco >& tmp_11 = v__Pco.pco(); +switch (tmp_11.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_10 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_10 = FALSE; +break; +default: +{ +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco& tmp_12 = (const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco&) tmp_11; +tmp_10 = tmp_12.is_present(); +break;} +} +} +tmp_13 = tmp_10; +} +if (tmp_13) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(71); +ttcn3_debugger.breakpoint_entry(71); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 71 */ +i = 0; +current_location.update_lineno(71); +ttcn3_debugger.breakpoint_entry(71); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 71 */ +for ( ; ; ) { +current_location.update_lineno(71); +ttcn3_debugger.breakpoint_entry(71); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 71 */ +if (!(i < const_cast< const NAS__CommonTypeDefs::ExtdProtocolConfigOptions&>(v__Pco).pco()().lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(72); +ttcn3_debugger.breakpoint_entry(72); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 72 */ +if ((const_cast< const NAS__CommonTypeDefs::ExtdProtocolConfigOptions&>(v__Pco).pco()()[i].protocolID() == os_1)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(73); +ttcn3_debugger.breakpoint_entry(73); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 73 */ +{ +BOOLEAN tmp_15; +return DEBUGGER_STORE_RETURN_VALUE(tmp_15, FALSE); +} +} +current_location.update_lineno(71); +ttcn3_debugger.breakpoint_entry(71); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 71 */ +{ +INTEGER tmp_16; +++i; +} +} +} +} +} +current_location.update_lineno(78); +ttcn3_debugger.breakpoint_entry(78); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 78 */ +{ +BOOLEAN tmp_17; +return DEBUGGER_STORE_RETURN_VALUE(tmp_17, TRUE); +} +} + +OCTETSTRING_template f__ProtocolConfigOptions__Get(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco, const OCTETSTRING& p__ProtocolID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 91, TTCN_Location::LOCATION_FUNCTION, "f_ProtocolConfigOptions_Get"); +charstring_list param_names; +param_names[0] = "p_Pco"; +param_names[1] = "p_ProtocolID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_ProtocolConfigOptions_Get", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ProtocolID, "p_ProtocolID", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 94 */ +NAS__CommonTypeDefs::ProtocolConfigOptions_pco v__ProtocolConfigOptions; +debug_scope.add_variable(&v__ProtocolConfigOptions, "v_ProtocolConfigOptions", "ProtocolConfigOptions_pco", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(95); +ttcn3_debugger.breakpoint_entry(95); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 95 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(97); +ttcn3_debugger.breakpoint_entry(97); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 97 */ +{ +boolean tmp_21; +{ +boolean tmp_18 = p__Pco.is_bound(); +if(tmp_18) { +switch (p__Pco.get_selection()) { +case UNINITIALIZED_TEMPLATE: +tmp_18 = FALSE; +break; +case ANY_VALUE: +tmp_18 = FALSE; +break; +case SPECIFIC_VALUE: { +if(tmp_18) { +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& tmp_19 = p__Pco; +const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& tmp_20 = tmp_19.pco(); +tmp_18 = tmp_20.is_value(); +} +break;} +default: +tmp_18 = FALSE; +break; +} +} +tmp_21 = tmp_18; +} +if (tmp_21) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(98); +ttcn3_debugger.breakpoint_entry(98); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 98 */ +v__ProtocolConfigOptions = const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_template&>(p__Pco).pco().valueof(); +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 99 */ +i = 0; +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 99 */ +for ( ; ; ) { +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 99 */ +if (!(i < v__ProtocolConfigOptions.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(100); +ttcn3_debugger.breakpoint_entry(100); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 100 */ +if ((const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_pco&>(v__ProtocolConfigOptions)[i].protocolID() == p__ProtocolID)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(101); +ttcn3_debugger.breakpoint_entry(101); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 101 */ +{ +OCTETSTRING_template tmp_24; +return DEBUGGER_STORE_RETURN_VALUE(tmp_24, OCTETSTRING_template(const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_pco&>(v__ProtocolConfigOptions)[i].content())); +} +} +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 99 */ +{ +INTEGER tmp_25; +++i; +} +} +} +} +current_location.update_lineno(105); +ttcn3_debugger.breakpoint_entry(105); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 105 */ +{ +OCTETSTRING_template tmp_26; +return DEBUGGER_STORE_RETURN_VALUE(tmp_26, OCTETSTRING_template(OMIT_VALUE)); +} +} + +OCTETSTRING_template f__ExtdProtocolConfigOptions__Get(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco, const OCTETSTRING& p__ProtocolID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 117, TTCN_Location::LOCATION_FUNCTION, "f_ExtdProtocolConfigOptions_Get"); +charstring_list param_names; +param_names[0] = "p_Pco"; +param_names[1] = "p_ProtocolID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_ExtdProtocolConfigOptions_Get", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ProtocolID, "p_ProtocolID", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(120); +ttcn3_debugger.breakpoint_entry(120); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 120 */ +NAS__CommonTypeDefs::ProtocolConfigOptions_pco v__ProtocolConfigOptions; +debug_scope.add_variable(&v__ProtocolConfigOptions, "v_ProtocolConfigOptions", "ProtocolConfigOptions_pco", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(121); +ttcn3_debugger.breakpoint_entry(121); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 121 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(123); +ttcn3_debugger.breakpoint_entry(123); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 123 */ +{ +boolean tmp_30; +{ +boolean tmp_27 = p__Pco.is_bound(); +if(tmp_27) { +switch (p__Pco.get_selection()) { +case UNINITIALIZED_TEMPLATE: +tmp_27 = FALSE; +break; +case ANY_VALUE: +tmp_27 = FALSE; +break; +case SPECIFIC_VALUE: { +if(tmp_27) { +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& tmp_28 = p__Pco; +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco_template& tmp_29 = tmp_28.pco(); +tmp_27 = tmp_29.is_value(); +} +break;} +default: +tmp_27 = FALSE; +break; +} +} +tmp_30 = tmp_27; +} +if (tmp_30) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(124); +ttcn3_debugger.breakpoint_entry(124); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 124 */ +{ +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco_template tmp_32; +tmp_32 = p__Pco.pco(); +NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template tmp_33; +if (!conv_NAS__CommonTypeDefs_ExtdProtocolConfigOptions_pco_NAS__CommonTypeDefs_ProtocolConfigOptions_pco(tmp_33, tmp_32)) TTCN_error("Values or templates of types `@NAS_CommonTypeDefs.ProtocolConfigOptions.pco' and `@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.pco' are not compatible at run-time"); +v__ProtocolConfigOptions = tmp_33.valueof(); +} +current_location.update_lineno(125); +ttcn3_debugger.breakpoint_entry(125); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 125 */ +i = 0; +current_location.update_lineno(125); +ttcn3_debugger.breakpoint_entry(125); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 125 */ +for ( ; ; ) { +current_location.update_lineno(125); +ttcn3_debugger.breakpoint_entry(125); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 125 */ +if (!(i < v__ProtocolConfigOptions.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(126); +ttcn3_debugger.breakpoint_entry(126); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 126 */ +if ((const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_pco&>(v__ProtocolConfigOptions)[i].protocolID() == p__ProtocolID)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(127); +ttcn3_debugger.breakpoint_entry(127); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 127 */ +{ +OCTETSTRING_template tmp_35; +return DEBUGGER_STORE_RETURN_VALUE(tmp_35, OCTETSTRING_template(const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_pco&>(v__ProtocolConfigOptions)[i].content())); +} +} +current_location.update_lineno(125); +ttcn3_debugger.breakpoint_entry(125); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 125 */ +{ +INTEGER tmp_36; +++i; +} +} +} +} +current_location.update_lineno(131); +ttcn3_debugger.breakpoint_entry(131); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 131 */ +{ +OCTETSTRING_template tmp_37; +return DEBUGGER_STORE_RETURN_VALUE(tmp_37, OCTETSTRING_template(OMIT_VALUE)); +} +} + +INTEGER_template f__ProtocolConfigOptions__GetSessionId(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 140, TTCN_Location::LOCATION_FUNCTION, "f_ProtocolConfigOptions_GetSessionId"); +charstring_list param_names; +param_names[0] = "p_Pco"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ProtocolConfigOptions_GetSessionId", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(142); +ttcn3_debugger.breakpoint_entry(142); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 142 */ +OCTETSTRING_template v__Content(f__ProtocolConfigOptions__Get(p__Pco, os_2)); +debug_scope.add_variable(&v__Content, "v_Content", "octetstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(143); +ttcn3_debugger.breakpoint_entry(143); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 143 */ +OCTETSTRING v__Octetstring; +debug_scope.add_variable(&v__Octetstring, "v_Octetstring", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(144); +ttcn3_debugger.breakpoint_entry(144); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 144 */ +if (v__Content.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(145); +ttcn3_debugger.breakpoint_entry(145); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 145 */ +v__Octetstring = v__Content.valueof(); +current_location.update_lineno(146); +ttcn3_debugger.breakpoint_entry(146); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 146 */ +if ((v__Octetstring.lengthof() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(147); +ttcn3_debugger.breakpoint_entry(147); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 147 */ +{ +INTEGER_template tmp_39; +return DEBUGGER_STORE_RETURN_VALUE(tmp_39, INTEGER_template(oct2int(v__Octetstring))); +} +} +} +current_location.update_lineno(150); +ttcn3_debugger.breakpoint_entry(150); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 150 */ +{ +INTEGER_template tmp_40; +return DEBUGGER_STORE_RETURN_VALUE(tmp_40, INTEGER_template(OMIT_VALUE)); +} +} + +INTEGER_template f__ProtocolConfigOptions__GetQosFlowId(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 159, TTCN_Location::LOCATION_FUNCTION, "f_ProtocolConfigOptions_GetQosFlowId"); +charstring_list param_names; +param_names[0] = "p_Pco"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ProtocolConfigOptions_GetQosFlowId", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(161); +ttcn3_debugger.breakpoint_entry(161); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 161 */ +OCTETSTRING_template v__Content(f__ProtocolConfigOptions__Get(p__Pco, os_3)); +debug_scope.add_variable(&v__Content, "v_Content", "octetstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(162); +ttcn3_debugger.breakpoint_entry(162); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 162 */ +OCTETSTRING v__Octetstring; +debug_scope.add_variable(&v__Octetstring, "v_Octetstring", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(163); +ttcn3_debugger.breakpoint_entry(163); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 163 */ +if (v__Content.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(164); +ttcn3_debugger.breakpoint_entry(164); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 164 */ +v__Octetstring = v__Content.valueof(); +current_location.update_lineno(165); +ttcn3_debugger.breakpoint_entry(165); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 165 */ +if ((v__Octetstring.lengthof() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(166); +ttcn3_debugger.breakpoint_entry(166); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 166 */ +{ +INTEGER_template tmp_42; +return DEBUGGER_STORE_RETURN_VALUE(tmp_42, INTEGER_template(mod(oct2int(const_cast< const OCTETSTRING&>(v__Octetstring)[0]), 64))); +} +} +} +current_location.update_lineno(169); +ttcn3_debugger.breakpoint_entry(169); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 169 */ +{ +INTEGER_template tmp_43; +return DEBUGGER_STORE_RETURN_VALUE(tmp_43, INTEGER_template(OMIT_VALUE)); +} +} + +INTEGER_template f__ExtdProtocolConfigOptions__GetSessionId(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 178, TTCN_Location::LOCATION_FUNCTION, "f_ExtdProtocolConfigOptions_GetSessionId"); +charstring_list param_names; +param_names[0] = "p_Pco"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ExtdProtocolConfigOptions_GetSessionId", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(180); +ttcn3_debugger.breakpoint_entry(180); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 180 */ +OCTETSTRING_template v__Content(f__ExtdProtocolConfigOptions__Get(p__Pco, os_2)); +debug_scope.add_variable(&v__Content, "v_Content", "octetstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(181); +ttcn3_debugger.breakpoint_entry(181); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 181 */ +OCTETSTRING v__Octetstring; +debug_scope.add_variable(&v__Octetstring, "v_Octetstring", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(182); +ttcn3_debugger.breakpoint_entry(182); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 182 */ +if (v__Content.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(183); +ttcn3_debugger.breakpoint_entry(183); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 183 */ +v__Octetstring = v__Content.valueof(); +current_location.update_lineno(184); +ttcn3_debugger.breakpoint_entry(184); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 184 */ +if ((v__Octetstring.lengthof() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(185); +ttcn3_debugger.breakpoint_entry(185); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 185 */ +{ +INTEGER_template tmp_45; +return DEBUGGER_STORE_RETURN_VALUE(tmp_45, INTEGER_template(oct2int(v__Octetstring))); +} +} +} +current_location.update_lineno(188); +ttcn3_debugger.breakpoint_entry(188); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 188 */ +{ +INTEGER_template tmp_46; +return DEBUGGER_STORE_RETURN_VALUE(tmp_46, INTEGER_template(OMIT_VALUE)); +} +} + +INTEGER_template f__ExtdProtocolConfigOptions__GetQosFlowId(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 197, TTCN_Location::LOCATION_FUNCTION, "f_ExtdProtocolConfigOptions_GetQosFlowId"); +charstring_list param_names; +param_names[0] = "p_Pco"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ExtdProtocolConfigOptions_GetQosFlowId", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(199); +ttcn3_debugger.breakpoint_entry(199); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 199 */ +OCTETSTRING_template v__Content(f__ExtdProtocolConfigOptions__Get(p__Pco, os_3)); +debug_scope.add_variable(&v__Content, "v_Content", "octetstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(200); +ttcn3_debugger.breakpoint_entry(200); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 200 */ +OCTETSTRING v__Octetstring; +debug_scope.add_variable(&v__Octetstring, "v_Octetstring", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(201); +ttcn3_debugger.breakpoint_entry(201); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 201 */ +if (v__Content.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(202); +ttcn3_debugger.breakpoint_entry(202); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 202 */ +v__Octetstring = v__Content.valueof(); +current_location.update_lineno(203); +ttcn3_debugger.breakpoint_entry(203); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 203 */ +if ((v__Octetstring.lengthof() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(204); +ttcn3_debugger.breakpoint_entry(204); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 204 */ +{ +INTEGER_template tmp_48; +return DEBUGGER_STORE_RETURN_VALUE(tmp_48, INTEGER_template(mod(oct2int(const_cast< const OCTETSTRING&>(v__Octetstring)[0]), 64))); +} +} +} +current_location.update_lineno(207); +ttcn3_debugger.breakpoint_entry(207); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 207 */ +{ +INTEGER_template tmp_49; +return DEBUGGER_STORE_RETURN_VALUE(tmp_49, INTEGER_template(OMIT_VALUE)); +} +} + +BOOLEAN f__CheckPCOforProtocolID(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco, const OCTETSTRING& p__ProtocolID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 218, TTCN_Location::LOCATION_FUNCTION, "f_CheckPCOforProtocolID"); +charstring_list param_names; +param_names[0] = "p_Pco"; +param_names[1] = "p_ProtocolID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_CheckPCOforProtocolID", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ProtocolID, "p_ProtocolID", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(221); +ttcn3_debugger.breakpoint_entry(221); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 221 */ +NAS__CommonTypeDefs::ProtocolConfigOptions v__Pco; +debug_scope.add_variable(&v__Pco, "v_Pco", "ProtocolConfigOptions", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(222); +ttcn3_debugger.breakpoint_entry(222); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 222 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(224); +ttcn3_debugger.breakpoint_entry(224); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 224 */ +if (p__Pco.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(225); +ttcn3_debugger.breakpoint_entry(225); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 225 */ +v__Pco = p__Pco.valueof(); +current_location.update_lineno(226); +ttcn3_debugger.breakpoint_entry(226); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 226 */ +i = 0; +current_location.update_lineno(226); +ttcn3_debugger.breakpoint_entry(226); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 226 */ +for ( ; ; ) { +current_location.update_lineno(226); +ttcn3_debugger.breakpoint_entry(226); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 226 */ +if (!(i < const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions&>(v__Pco).pco()().lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(227); +ttcn3_debugger.breakpoint_entry(227); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 227 */ +if ((const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions&>(v__Pco).pco()()[i].protocolID() == p__ProtocolID)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(228); +ttcn3_debugger.breakpoint_entry(228); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 228 */ +{ +BOOLEAN tmp_52; +return DEBUGGER_STORE_RETURN_VALUE(tmp_52, TRUE); +} +} +current_location.update_lineno(226); +ttcn3_debugger.breakpoint_entry(226); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 226 */ +{ +INTEGER tmp_53; +++i; +} +} +} +current_location.update_lineno(232); +ttcn3_debugger.breakpoint_entry(232); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 232 */ +{ +BOOLEAN tmp_54; +return DEBUGGER_STORE_RETURN_VALUE(tmp_54, FALSE); +} +} + +BOOLEAN f__CheckExtdPCOforProtocolID(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco, const OCTETSTRING& p__ProtocolID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 243, TTCN_Location::LOCATION_FUNCTION, "f_CheckExtdPCOforProtocolID"); +charstring_list param_names; +param_names[0] = "p_Pco"; +param_names[1] = "p_ProtocolID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_CheckExtdPCOforProtocolID", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ProtocolID, "p_ProtocolID", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(246); +ttcn3_debugger.breakpoint_entry(246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 246 */ +NAS__CommonTypeDefs::ExtdProtocolConfigOptions v__Pco; +debug_scope.add_variable(&v__Pco, "v_Pco", "ExtdProtocolConfigOptions", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(247); +ttcn3_debugger.breakpoint_entry(247); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 247 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(249); +ttcn3_debugger.breakpoint_entry(249); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 249 */ +if (p__Pco.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(250); +ttcn3_debugger.breakpoint_entry(250); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 250 */ +v__Pco = p__Pco.valueof(); +current_location.update_lineno(251); +ttcn3_debugger.breakpoint_entry(251); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 251 */ +i = 0; +current_location.update_lineno(251); +ttcn3_debugger.breakpoint_entry(251); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 251 */ +for ( ; ; ) { +current_location.update_lineno(251); +ttcn3_debugger.breakpoint_entry(251); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 251 */ +if (!(i < const_cast< const NAS__CommonTypeDefs::ExtdProtocolConfigOptions&>(v__Pco).pco()().lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(252); +ttcn3_debugger.breakpoint_entry(252); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 252 */ +if ((const_cast< const NAS__CommonTypeDefs::ExtdProtocolConfigOptions&>(v__Pco).pco()()[i].protocolID() == p__ProtocolID)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(253); +ttcn3_debugger.breakpoint_entry(253); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 253 */ +{ +BOOLEAN tmp_57; +return DEBUGGER_STORE_RETURN_VALUE(tmp_57, TRUE); +} +} +current_location.update_lineno(251); +ttcn3_debugger.breakpoint_entry(251); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 251 */ +{ +INTEGER tmp_58; +++i; +} +} +} +current_location.update_lineno(257); +ttcn3_debugger.breakpoint_entry(257); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 257 */ +{ +BOOLEAN tmp_59; +return DEBUGGER_STORE_RETURN_VALUE(tmp_59, FALSE); +} +} + +NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template f__NAS__GetProtocolConfigOptionList(const NAS__CommonTypeDefs::ProtocolConfigOptions_pco& p__ConfigOptionsRX, const CommonDefs::PDN__Index__Type& p__PdnIndex, const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p__AdditionalProtocolConfigOptions, const BOOLEAN& p__IgnoreIM__CN__SubsystemSignalingFlag) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 271, TTCN_Location::LOCATION_FUNCTION, "f_NAS_GetProtocolConfigOptionList"); +charstring_list param_names; +param_names[0] = "p_ConfigOptionsRX"; +param_names[1] = "p_PdnIndex"; +param_names[2] = "p_AdditionalProtocolConfigOptions"; +param_names[3] = "p_IgnoreIM_CN_SubsystemSignalingFlag"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_NAS_GetProtocolConfigOptionList", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__ConfigOptionsRX, "p_ConfigOptionsRX", "ProtocolConfigOptions_pco", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.add_variable(&p__AdditionalProtocolConfigOptions, "p_AdditionalProtocolConfigOptions", "ProtocolConfigOptions_pco template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__IgnoreIM__CN__SubsystemSignalingFlag, "p_IgnoreIM_CN_SubsystemSignalingFlag", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(276); +ttcn3_debugger.breakpoint_entry(276); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 276 */ +CommonIP::PDN__AddressInfo__Type v__PDN__AddressInfo(CommonIP::f__PDN__AddressInfo__Get(p__PdnIndex)); +debug_scope.add_variable(&v__PDN__AddressInfo, "v_PDN_AddressInfo", "PDN_AddressInfo_Type", NULL, CommonIP::print_var_CommonIP, CommonIP::set_var_CommonIP); +current_location.update_lineno(277); +ttcn3_debugger.breakpoint_entry(277); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 277 */ +NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template v__ProtocolContainerList(NULL_VALUE); +debug_scope.add_variable(&v__ProtocolContainerList, "v_ProtocolContainerList", "ProtocolConfigOptions_pco template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(278); +ttcn3_debugger.breakpoint_entry(278); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 278 */ +INTEGER v__PcoCnt(0); +debug_scope.add_variable(&v__PcoCnt, "v_PcoCnt", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(279); +ttcn3_debugger.breakpoint_entry(279); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 279 */ +OCTETSTRING v__ProtocolId; +debug_scope.add_variable(&v__ProtocolId, "v_ProtocolId", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(280); +ttcn3_debugger.breakpoint_entry(280); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 280 */ +OCTETSTRING v__Contents; +debug_scope.add_variable(&v__Contents, "v_Contents", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(281); +ttcn3_debugger.breakpoint_entry(281); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 281 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(283); +ttcn3_debugger.breakpoint_entry(283); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 283 */ +i = 0; +current_location.update_lineno(283); +ttcn3_debugger.breakpoint_entry(283); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 283 */ +for ( ; ; ) { +current_location.update_lineno(283); +ttcn3_debugger.breakpoint_entry(283); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 283 */ +if (!(i < p__ConfigOptionsRX.lengthof())) break; +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(285); +ttcn3_debugger.breakpoint_entry(285); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 285 */ +v__ProtocolId = const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_pco&>(p__ConfigOptionsRX)[i].protocolID(); +current_location.update_lineno(286); +ttcn3_debugger.breakpoint_entry(286); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 286 */ +v__Contents = os_0; +{ +const OCTETSTRING &tmp_65 = v__ProtocolId; +current_location.update_lineno(289); +ttcn3_debugger.breakpoint_entry(289); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 289 */ +if(tmp_65 == os_4) goto tmp_64_0; +current_location.update_lineno(294); +ttcn3_debugger.breakpoint_entry(294); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 294 */ +if(tmp_65 == os_5) goto tmp_64_1; +current_location.update_lineno(301); +ttcn3_debugger.breakpoint_entry(301); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 301 */ +if(tmp_65 == os_6) goto tmp_64_2; +current_location.update_lineno(304); +ttcn3_debugger.breakpoint_entry(304); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 304 */ +if(tmp_65 == os_7) goto tmp_64_3; +current_location.update_lineno(309); +ttcn3_debugger.breakpoint_entry(309); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 309 */ +if(tmp_65 == os_8) goto tmp_64_4; +goto tmp_64_end; +tmp_64_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(290); +ttcn3_debugger.breakpoint_entry(290); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 290 */ +if (Parameters::pc__IMS) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(291); +ttcn3_debugger.breakpoint_entry(291); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 291 */ +v__Contents = CommonIP::f__Convert__IPv6Addr2OctString(const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).PCSCF__IPAddressIPv6()); +} +goto tmp_64_end; +} +tmp_64_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(295); +ttcn3_debugger.breakpoint_entry(295); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 295 */ +if ((!(p__IgnoreIM__CN__SubsystemSignalingFlag))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(296); +ttcn3_debugger.breakpoint_entry(296); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 296 */ +{ +NAS__CommonTypeDefs::ProtocolContainer_template& tmp_68 = v__ProtocolContainerList[v__PcoCnt]; +{ +OCTETSTRING_template tmp_69; +tmp_69 = OMIT_VALUE; +tmp_68 = NAS__CommonTemplates::cs__ProtocolContainer__Common(v__ProtocolId, NAS__CommonTemplates::cs__ProtocolContainer__Common_p__ContainerLength_defval, tmp_69); +} +} +current_location.update_lineno(297); +ttcn3_debugger.breakpoint_entry(297); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 297 */ +{ +INTEGER tmp_70; +++v__PcoCnt; +} +current_location.update_lineno(298); +ttcn3_debugger.breakpoint_entry(298); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 298 */ +goto tmp_61; +} +goto tmp_64_end; +} +tmp_64_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(302); +ttcn3_debugger.breakpoint_entry(302); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 302 */ +v__Contents = CommonIP::f__Convert__IPv6Addr2OctString(const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).DNS__ServerAddressIPv6()); +goto tmp_64_end; +} +tmp_64_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(305); +ttcn3_debugger.breakpoint_entry(305); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 305 */ +if (Parameters::pc__IMS) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(306); +ttcn3_debugger.breakpoint_entry(306); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 306 */ +v__Contents = CommonIP::f__Convert__IPv4Addr2OctString(const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).PCSCF__IPAddressIPv4()); +} +goto tmp_64_end; +} +tmp_64_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(310); +ttcn3_debugger.breakpoint_entry(310); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 310 */ +v__Contents = CommonIP::f__Convert__IPv4Addr2OctString(const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).DNS__ServerAddressIPv4()); +goto tmp_64_end; +} +tmp_64_end: /* empty */; +} +current_location.update_lineno(314); +ttcn3_debugger.breakpoint_entry(314); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 314 */ +if ((v__Contents.lengthof() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(315); +ttcn3_debugger.breakpoint_entry(315); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 315 */ +v__ProtocolContainerList[v__PcoCnt] = NAS__CommonTemplates::cs__ProtocolContainer(v__ProtocolId, v__Contents); +current_location.update_lineno(316); +ttcn3_debugger.breakpoint_entry(316); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 316 */ +{ +INTEGER tmp_75; +++v__PcoCnt; +} +} +} +tmp_61: +current_location.update_lineno(283); +ttcn3_debugger.breakpoint_entry(283); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 283 */ +{ +INTEGER tmp_76; +++i; +} +} +current_location.update_lineno(319); +ttcn3_debugger.breakpoint_entry(319); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 319 */ +{ +NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template tmp_77; +return DEBUGGER_STORE_RETURN_VALUE(tmp_77, NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template(v__ProtocolContainerList + p__AdditionalProtocolConfigOptions)); +} +} + +NAS__CommonTypeDefs::ProtocolConfigOptions_template f__GetDefaultProtocolConfigOptions(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco, const CommonDefs::PDN__Index__Type& p__PdnIndex, const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p__AdditionalProtocolConfigOptions) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 330, TTCN_Location::LOCATION_FUNCTION, "f_GetDefaultProtocolConfigOptions"); +charstring_list param_names; +param_names[0] = "p_Pco"; +param_names[1] = "p_PdnIndex"; +param_names[2] = "p_AdditionalProtocolConfigOptions"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_GetDefaultProtocolConfigOptions", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.add_variable(&p__AdditionalProtocolConfigOptions, "p_AdditionalProtocolConfigOptions", "ProtocolConfigOptions_pco template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(336); +ttcn3_debugger.breakpoint_entry(336); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 336 */ +NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template v__ProtocolContainerListTX(NULL_VALUE); +debug_scope.add_variable(&v__ProtocolContainerListTX, "v_ProtocolContainerListTX", "ProtocolConfigOptions_pco template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(337); +ttcn3_debugger.breakpoint_entry(337); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 337 */ +NAS__CommonTypeDefs::ProtocolConfigOptions_pco v__ProtocolContainerListRX; +debug_scope.add_variable(&v__ProtocolContainerListRX, "v_ProtocolContainerListRX", "ProtocolConfigOptions_pco", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(339); +ttcn3_debugger.breakpoint_entry(339); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 339 */ +{ +boolean tmp_81; +{ +boolean tmp_78 = p__Pco.is_bound(); +if(tmp_78) { +switch (p__Pco.get_selection()) { +case UNINITIALIZED_TEMPLATE: +tmp_78 = FALSE; +break; +case ANY_VALUE: +tmp_78 = FALSE; +break; +case SPECIFIC_VALUE: { +if(tmp_78) { +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& tmp_79 = p__Pco; +const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& tmp_80 = tmp_79.pco(); +tmp_78 = tmp_80.is_value(); +} +break;} +default: +tmp_78 = FALSE; +break; +} +} +tmp_81 = tmp_78; +} +if (tmp_81) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(340); +ttcn3_debugger.breakpoint_entry(340); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 340 */ +v__ProtocolContainerListRX = const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_template&>(p__Pco).pco().valueof(); +current_location.update_lineno(341); +ttcn3_debugger.breakpoint_entry(341); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 341 */ +v__ProtocolContainerListTX = f__NAS__GetProtocolConfigOptionList(v__ProtocolContainerListRX, p__PdnIndex, p__AdditionalProtocolConfigOptions, f__NAS__GetProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval); +} +} +current_location.update_lineno(344); +ttcn3_debugger.breakpoint_entry(344); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 344 */ +{ +NAS__CommonTypeDefs::ProtocolConfigOptions_template tmp_84; +return DEBUGGER_STORE_RETURN_VALUE(tmp_84, NAS__CommonTemplates::f__NAS__ProtocolConfigOptionsTX(v__ProtocolContainerListTX)); +} +} + +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template f__NAS__ExtdProtocolConfigOptionsTX(const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template& p__ProtocolContainers) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 354, TTCN_Location::LOCATION_FUNCTION, "f_NAS_ExtdProtocolConfigOptionsTX"); +charstring_list param_names; +param_names[0] = "p_ProtocolContainers"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_NAS_ExtdProtocolConfigOptionsTX", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__ProtocolContainers, "p_ProtocolContainers", "NAS_ExtdProtocolConfigOptions_Type template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(356); +ttcn3_debugger.breakpoint_entry(356); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 356 */ +INTEGER v__Length(1); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(357); +ttcn3_debugger.breakpoint_entry(357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 357 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(359); +ttcn3_debugger.breakpoint_entry(359); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 359 */ +if (p__ProtocolContainers.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(360); +ttcn3_debugger.breakpoint_entry(360); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 360 */ +i = 0; +current_location.update_lineno(360); +ttcn3_debugger.breakpoint_entry(360); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 360 */ +for ( ; ; ) { +current_location.update_lineno(360); +ttcn3_debugger.breakpoint_entry(360); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 360 */ +if (!(i < p__ProtocolContainers.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(361); +ttcn3_debugger.breakpoint_entry(361); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 361 */ +{ +INTEGER tmp_86; +tmp_86 = ((v__Length + oct2int(const_cast< const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template&>(p__ProtocolContainers)[i].protocolLength().valueof())) + 3); +v__Length = tmp_86; +} +current_location.update_lineno(360); +ttcn3_debugger.breakpoint_entry(360); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 360 */ +{ +INTEGER tmp_87; +++i; +} +} +} +current_location.update_lineno(364); +ttcn3_debugger.breakpoint_entry(364); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 364 */ +{ +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template tmp_88; +return DEBUGGER_STORE_RETURN_VALUE(tmp_88, NAS__CommonTemplates::cs__ExtdPCO(int2oct(v__Length, 2), p__ProtocolContainers)); +} +} + +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template f__GetDefaultExtdProtocolConfigOptions(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco, const CommonDefs::PDN__Index__Type& p__PdnIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 374, TTCN_Location::LOCATION_FUNCTION, "f_GetDefaultExtdProtocolConfigOptions"); +charstring_list param_names; +param_names[0] = "p_Pco"; +param_names[1] = "p_PdnIndex"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_GetDefaultExtdProtocolConfigOptions", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Pco, "p_Pco", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(377); +ttcn3_debugger.breakpoint_entry(377); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 377 */ +NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template v__ProtocolContainerList(OMIT_VALUE); +debug_scope.add_variable(&v__ProtocolContainerList, "v_ProtocolContainerList", "NAS_ExtdProtocolConfigOptions_Type template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(378); +ttcn3_debugger.breakpoint_entry(378); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 378 */ +NAS__CommonTypeDefs::ExtdProtocolConfigOptions v__ProtocolConfigOptionsRX; +debug_scope.add_variable(&v__ProtocolConfigOptionsRX, "v_ProtocolConfigOptionsRX", "ExtdProtocolConfigOptions", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(380); +ttcn3_debugger.breakpoint_entry(380); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 380 */ +if (p__Pco.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(381); +ttcn3_debugger.breakpoint_entry(381); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 381 */ +v__ProtocolConfigOptionsRX = p__Pco.valueof(); +current_location.update_lineno(382); +ttcn3_debugger.breakpoint_entry(382); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 382 */ +{ +boolean tmp_93; +{ +boolean tmp_90 = p__Pco.is_bound(); +if(tmp_90) { +switch (p__Pco.get_selection()) { +case UNINITIALIZED_TEMPLATE: +tmp_90 = FALSE; +break; +case ANY_VALUE: +tmp_90 = FALSE; +break; +case SPECIFIC_VALUE: { +if(tmp_90) { +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& tmp_91 = p__Pco; +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco_template& tmp_92 = tmp_91.pco(); +tmp_90 = tmp_92.is_present(); +} +break;} +default: +tmp_90 = FALSE; +break; +} +} +tmp_93 = tmp_90; +} +if (tmp_93) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(383); +ttcn3_debugger.breakpoint_entry(383); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 383 */ +{ +NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type tmp_95; +NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type tmp_97; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco tmp_96; +tmp_96 = v__ProtocolConfigOptionsRX.pco(); +if (!conv_NAS__CommonTypeDefs_ExtdProtocolConfigOptions_pco_NAS__CommonTypeDefs_NAS__ExtdProtocolConfigOptions__Type(tmp_97, tmp_96)) TTCN_error("Values or templates of types `@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.pco' and `@NAS_CommonTypeDefs.NAS_ExtdProtocolConfigOptions_Type' are not compatible at run-time"); +tmp_95 = tmp_97; +v__ProtocolContainerList = f__NAS__GetExtdProtocolConfigOptionList(tmp_95, f__NAS__GetExtdProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval, p__PdnIndex); +} +} +} +} +current_location.update_lineno(387); +ttcn3_debugger.breakpoint_entry(387); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 387 */ +{ +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template tmp_98; +return DEBUGGER_STORE_RETURN_VALUE(tmp_98, f__NAS__ExtdProtocolConfigOptionsTX(v__ProtocolContainerList)); +} +} + +NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template f__NAS__GetExtdProtocolConfigOptionList(const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type& p__ConfigOptionsRX, const BOOLEAN& p__IgnoreIM__CN__SubsystemSignalingFlag, const CommonDefs::PDN__Index__Type& p__PdnIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 399, TTCN_Location::LOCATION_FUNCTION, "f_NAS_GetExtdProtocolConfigOptionList"); +charstring_list param_names; +param_names[0] = "p_ConfigOptionsRX"; +param_names[1] = "p_IgnoreIM_CN_SubsystemSignalingFlag"; +param_names[2] = "p_PdnIndex"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_NAS_GetExtdProtocolConfigOptionList", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__ConfigOptionsRX, "p_ConfigOptionsRX", "NAS_ExtdProtocolConfigOptions_Type", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__IgnoreIM__CN__SubsystemSignalingFlag, "p_IgnoreIM_CN_SubsystemSignalingFlag", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(404); +ttcn3_debugger.breakpoint_entry(404); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 404 */ +CommonIP::PDN__AddressInfo__Type v__PDN__AddressInfo(CommonIP::f__PDN__AddressInfo__Get(p__PdnIndex)); +debug_scope.add_variable(&v__PDN__AddressInfo, "v_PDN_AddressInfo", "PDN_AddressInfo_Type", NULL, CommonIP::print_var_CommonIP, CommonIP::set_var_CommonIP); +current_location.update_lineno(405); +ttcn3_debugger.breakpoint_entry(405); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 405 */ +NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template v__ProtocolContainerList(OMIT_VALUE); +debug_scope.add_variable(&v__ProtocolContainerList, "v_ProtocolContainerList", "NAS_ExtdProtocolConfigOptions_Type template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(406); +ttcn3_debugger.breakpoint_entry(406); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 406 */ +INTEGER v__PcoCnt(0); +debug_scope.add_variable(&v__PcoCnt, "v_PcoCnt", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(407); +ttcn3_debugger.breakpoint_entry(407); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 407 */ +OCTETSTRING v__ProtocolId; +debug_scope.add_variable(&v__ProtocolId, "v_ProtocolId", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(408); +ttcn3_debugger.breakpoint_entry(408); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 408 */ +OCTETSTRING v__Contents; +debug_scope.add_variable(&v__Contents, "v_Contents", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(409); +ttcn3_debugger.breakpoint_entry(409); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 409 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(411); +ttcn3_debugger.breakpoint_entry(411); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 411 */ +i = 0; +current_location.update_lineno(411); +ttcn3_debugger.breakpoint_entry(411); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 411 */ +for ( ; ; ) { +current_location.update_lineno(411); +ttcn3_debugger.breakpoint_entry(411); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 411 */ +if (!(i < p__ConfigOptionsRX.lengthof())) break; +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(413); +ttcn3_debugger.breakpoint_entry(413); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 413 */ +v__ProtocolId = const_cast< const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type&>(p__ConfigOptionsRX)[i].protocolID(); +current_location.update_lineno(414); +ttcn3_debugger.breakpoint_entry(414); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 414 */ +v__Contents = os_0; +{ +const OCTETSTRING &tmp_104 = v__ProtocolId; +current_location.update_lineno(417); +ttcn3_debugger.breakpoint_entry(417); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 417 */ +if(tmp_104 == os_5) goto tmp_103_0; +current_location.update_lineno(424); +ttcn3_debugger.breakpoint_entry(424); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 424 */ +if(tmp_104 == os_6) goto tmp_103_1; +current_location.update_lineno(427); +ttcn3_debugger.breakpoint_entry(427); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 427 */ +if(tmp_104 == os_8) goto tmp_103_2; +goto tmp_103_end; +tmp_103_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(418); +ttcn3_debugger.breakpoint_entry(418); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 418 */ +if ((!(p__IgnoreIM__CN__SubsystemSignalingFlag))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(419); +ttcn3_debugger.breakpoint_entry(419); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 419 */ +{ +NAS__CommonTypeDefs::ProtocolContainer_template& tmp_106 = v__ProtocolContainerList[v__PcoCnt]; +{ +OCTETSTRING_template tmp_107; +tmp_107 = OMIT_VALUE; +tmp_106 = NAS__CommonTemplates::cs__ProtocolContainer__Common(v__ProtocolId, NAS__CommonTemplates::cs__ProtocolContainer__Common_p__ContainerLength_defval, tmp_107); +} +} +current_location.update_lineno(420); +ttcn3_debugger.breakpoint_entry(420); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 420 */ +{ +INTEGER tmp_108; +++v__PcoCnt; +} +current_location.update_lineno(421); +ttcn3_debugger.breakpoint_entry(421); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 421 */ +goto tmp_100; +} +goto tmp_103_end; +} +tmp_103_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(425); +ttcn3_debugger.breakpoint_entry(425); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 425 */ +v__Contents = CommonIP::f__Convert__IPv6Addr2OctString(const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).DNS__ServerAddressIPv6()); +goto tmp_103_end; +} +tmp_103_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(428); +ttcn3_debugger.breakpoint_entry(428); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 428 */ +v__Contents = CommonIP::f__Convert__IPv4Addr2OctString(const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).DNS__ServerAddressIPv4()); +goto tmp_103_end; +} +tmp_103_end: /* empty */; +} +current_location.update_lineno(432); +ttcn3_debugger.breakpoint_entry(432); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 432 */ +if ((v__Contents.lengthof() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(433); +ttcn3_debugger.breakpoint_entry(433); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 433 */ +v__ProtocolContainerList[v__PcoCnt] = NAS__CommonTemplates::cs__ProtocolContainer(v__ProtocolId, v__Contents); +current_location.update_lineno(434); +ttcn3_debugger.breakpoint_entry(434); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 434 */ +{ +INTEGER tmp_112; +++v__PcoCnt; +} +} +} +tmp_100: +current_location.update_lineno(411); +ttcn3_debugger.breakpoint_entry(411); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 411 */ +{ +INTEGER tmp_113; +++i; +} +} +current_location.update_lineno(437); +ttcn3_debugger.breakpoint_entry(437); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 437 */ +{ +NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template tmp_114; +return DEBUGGER_STORE_RETURN_VALUE(tmp_114, v__ProtocolContainerList); +} +} + +CommonDefs::PDN__Index__Type f__GetMultiPdnIndex(const NAS__CommonTypeDefs::PDU__PDN__DNN__Type& p__DNNType) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 446, TTCN_Location::LOCATION_FUNCTION, "f_GetMultiPdnIndex"); +charstring_list param_names; +param_names[0] = "p_DNNType"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_GetMultiPdnIndex", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__DNNType, "p_DNNType", "PDU_PDN_DNN_Type", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(448); +ttcn3_debugger.breakpoint_entry(448); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 448 */ +CommonDefs::PDN__Index__Type v__PDN(CommonDefs::PDN__Index__Type::PDN__3); +debug_scope.add_variable(&v__PDN, "v_PDN", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +{ +const NAS__CommonTypeDefs::PDU__PDN__DNN__Type &tmp_116 = p__DNNType; +current_location.update_lineno(450); +ttcn3_debugger.breakpoint_entry(450); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 450 */ +if(tmp_116 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::IMS__DNN) goto tmp_115_0; +current_location.update_lineno(453); +ttcn3_debugger.breakpoint_entry(453); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 453 */ +if(tmp_116 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::Emergency__PDN) goto tmp_115_1; +current_location.update_lineno(456); +ttcn3_debugger.breakpoint_entry(456); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 456 */ +if(tmp_116 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::URLLC__DNN) goto tmp_115_2; +current_location.update_lineno(459); +ttcn3_debugger.breakpoint_entry(459); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 459 */ +if(tmp_116 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::MIOT__DNN) goto tmp_115_3; +current_location.update_lineno(462); +ttcn3_debugger.breakpoint_entry(462); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 462 */ +if(tmp_116 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::V2X__DNN) goto tmp_115_4; +goto tmp_115_end; +tmp_115_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(451); +ttcn3_debugger.breakpoint_entry(451); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 451 */ +v__PDN = CommonDefs::PDN__Index__Type::PDN__1; +goto tmp_115_end; +} +tmp_115_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(454); +ttcn3_debugger.breakpoint_entry(454); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 454 */ +v__PDN = CommonDefs::PDN__Index__Type::PDN__2; +goto tmp_115_end; +} +tmp_115_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(457); +ttcn3_debugger.breakpoint_entry(457); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 457 */ +v__PDN = CommonDefs::PDN__Index__Type::PDN__4; +goto tmp_115_end; +} +tmp_115_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(460); +ttcn3_debugger.breakpoint_entry(460); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 460 */ +v__PDN = CommonDefs::PDN__Index__Type::PDN__5; +goto tmp_115_end; +} +tmp_115_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(463); +ttcn3_debugger.breakpoint_entry(463); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 463 */ +v__PDN = CommonDefs::PDN__Index__Type::PDN__6; +goto tmp_115_end; +} +tmp_115_end: /* empty */; +} +current_location.update_lineno(466); +ttcn3_debugger.breakpoint_entry(466); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 466 */ +{ +CommonDefs::PDN__Index__Type tmp_122; +return DEBUGGER_STORE_RETURN_VALUE(tmp_122, v__PDN); +} +} + +NAS__CommonTypeDefs::PDU__PDN__DNN__Type f__GetMultiPdnTypeFromIndex(const CommonDefs::PDN__Index__Type& p__PDN__Index) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 475, TTCN_Location::LOCATION_FUNCTION, "f_GetMultiPdnTypeFromIndex"); +charstring_list param_names; +param_names[0] = "p_PDN_Index"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_GetMultiPdnTypeFromIndex", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDN__Index, "p_PDN_Index", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(477); +ttcn3_debugger.breakpoint_entry(477); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 477 */ +NAS__CommonTypeDefs::PDU__PDN__DNN__Type v__DNNType(NAS__CommonTypeDefs::PDU__PDN__DNN__Type::Internet__DNN); +debug_scope.add_variable(&v__DNNType, "v_DNNType", "PDU_PDN_DNN_Type", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +{ +const CommonDefs::PDN__Index__Type &tmp_124 = p__PDN__Index; +current_location.update_lineno(479); +ttcn3_debugger.breakpoint_entry(479); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 479 */ +if(tmp_124 == CommonDefs::PDN__Index__Type::PDN__1) goto tmp_123_0; +current_location.update_lineno(482); +ttcn3_debugger.breakpoint_entry(482); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 482 */ +if(tmp_124 == CommonDefs::PDN__Index__Type::PDN__2) goto tmp_123_1; +current_location.update_lineno(485); +ttcn3_debugger.breakpoint_entry(485); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 485 */ +if(tmp_124 == CommonDefs::PDN__Index__Type::PDN__4) goto tmp_123_2; +current_location.update_lineno(488); +ttcn3_debugger.breakpoint_entry(488); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 488 */ +if(tmp_124 == CommonDefs::PDN__Index__Type::PDN__5) goto tmp_123_3; +current_location.update_lineno(491); +ttcn3_debugger.breakpoint_entry(491); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 491 */ +if(tmp_124 == CommonDefs::PDN__Index__Type::PDN__6) goto tmp_123_4; +goto tmp_123_end; +tmp_123_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(480); +ttcn3_debugger.breakpoint_entry(480); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 480 */ +v__DNNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::IMS__DNN; +goto tmp_123_end; +} +tmp_123_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(483); +ttcn3_debugger.breakpoint_entry(483); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 483 */ +v__DNNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::Emergency__PDN; +goto tmp_123_end; +} +tmp_123_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(486); +ttcn3_debugger.breakpoint_entry(486); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 486 */ +v__DNNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::URLLC__DNN; +goto tmp_123_end; +} +tmp_123_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(489); +ttcn3_debugger.breakpoint_entry(489); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 489 */ +v__DNNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::MIOT__DNN; +goto tmp_123_end; +} +tmp_123_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(492); +ttcn3_debugger.breakpoint_entry(492); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 492 */ +v__DNNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::V2X__DNN; +goto tmp_123_end; +} +tmp_123_end: /* empty */; +} +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 495 */ +{ +NAS__CommonTypeDefs::PDU__PDN__DNN__Type tmp_130; +return DEBUGGER_STORE_RETURN_VALUE(tmp_130, v__DNNType); +} +} + +NAS__CommonTypeDefs::PDU__PDN__DNN__Type f__GetPDN__DNNTypeFromAPN(const OCTETSTRING& p__APN) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 504, TTCN_Location::LOCATION_FUNCTION, "f_GetPDN_DNNTypeFromAPN"); +charstring_list param_names; +param_names[0] = "p_APN"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_GetPDN_DNNTypeFromAPN", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__APN, "p_APN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(506); +ttcn3_debugger.breakpoint_entry(506); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 506 */ +NAS__CommonTypeDefs::PDU__PDN__DNN__Type v__PDNType(NAS__CommonTypeDefs::PDU__PDN__DNN__Type::None); +debug_scope.add_variable(&v__PDNType, "v_PDNType", "PDU_PDN_DNN_Type", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(508); +ttcn3_debugger.breakpoint_entry(508); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 508 */ +if (OCTETSTRING_template(f__DomainName__Encode(Parameters::pc__APN__ID__Internet)).match(p__APN)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(509); +ttcn3_debugger.breakpoint_entry(509); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 509 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::Internet__DNN; +} +else { +current_location.update_lineno(510); +ttcn3_debugger.breakpoint_entry(510); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 510 */ +if (OCTETSTRING_template(f__DomainName__Encode(Parameters::pc__APN__ID__IMS)).match(p__APN)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(511); +ttcn3_debugger.breakpoint_entry(511); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 511 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::IMS__DNN; +} +else { +current_location.update_lineno(512); +ttcn3_debugger.breakpoint_entry(512); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 512 */ +if (OCTETSTRING_template(f__DomainName__Encode(Parameters::pc__APN__ID__URLLC)).match(p__APN)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(513); +ttcn3_debugger.breakpoint_entry(513); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 513 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::URLLC__DNN; +} +else { +current_location.update_lineno(514); +ttcn3_debugger.breakpoint_entry(514); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 514 */ +if (OCTETSTRING_template(f__DomainName__Encode(Parameters::pc__APN__ID__MIOT)).match(p__APN)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(515); +ttcn3_debugger.breakpoint_entry(515); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 515 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::MIOT__DNN; +} +else { +current_location.update_lineno(516); +ttcn3_debugger.breakpoint_entry(516); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 516 */ +if (OCTETSTRING_template(f__DomainName__Encode(Parameters::pc__APN__ID__V2X)).match(p__APN)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(517); +ttcn3_debugger.breakpoint_entry(517); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 517 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::V2X__DNN; +} +else { +current_location.update_lineno(518); +ttcn3_debugger.breakpoint_entry(518); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 518 */ +if (f__IsDNNForEmergency(p__APN)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(519); +ttcn3_debugger.breakpoint_entry(519); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 519 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::Emergency__PDN; +} +} +} +} +} +} +current_location.update_lineno(522); +ttcn3_debugger.breakpoint_entry(522); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 522 */ +{ +NAS__CommonTypeDefs::PDU__PDN__DNN__Type tmp_137; +return DEBUGGER_STORE_RETURN_VALUE(tmp_137, v__PDNType); +} +} + +CHARSTRING f__GetDNNStringFromPICS(const NAS__CommonTypeDefs::PDU__PDN__DNN__Type& p__PDUType) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 531, TTCN_Location::LOCATION_FUNCTION, "f_GetDNNStringFromPICS"); +charstring_list param_names; +param_names[0] = "p_PDUType"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_GetDNNStringFromPICS", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDUType, "p_PDUType", "PDU_PDN_DNN_Type", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(533); +ttcn3_debugger.breakpoint_entry(533); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 533 */ +CHARSTRING v__DNN; +debug_scope.add_variable(&v__DNN, "v_DNN", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const NAS__CommonTypeDefs::PDU__PDN__DNN__Type &tmp_139 = p__PDUType; +current_location.update_lineno(536); +ttcn3_debugger.breakpoint_entry(536); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 536 */ +if(tmp_139 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::Internet__DNN) goto tmp_138_0; +current_location.update_lineno(539); +ttcn3_debugger.breakpoint_entry(539); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 539 */ +if(tmp_139 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::IMS__DNN) goto tmp_138_1; +current_location.update_lineno(542); +ttcn3_debugger.breakpoint_entry(542); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 542 */ +if(tmp_139 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::URLLC__DNN) goto tmp_138_2; +current_location.update_lineno(545); +ttcn3_debugger.breakpoint_entry(545); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 545 */ +if(tmp_139 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::MIOT__DNN) goto tmp_138_3; +current_location.update_lineno(548); +ttcn3_debugger.breakpoint_entry(548); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 548 */ +if(tmp_139 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::V2X__DNN) goto tmp_138_4; +current_location.update_lineno(551); +ttcn3_debugger.breakpoint_entry(551); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 551 */ +if(tmp_139 == NAS__CommonTypeDefs::PDU__PDN__DNN__Type::Ethernet__DNN) goto tmp_138_5; +goto tmp_138_6; +tmp_138_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(537); +ttcn3_debugger.breakpoint_entry(537); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 537 */ +v__DNN = Parameters::pc__APN__ID__Internet; +goto tmp_138_end; +} +tmp_138_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(540); +ttcn3_debugger.breakpoint_entry(540); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 540 */ +v__DNN = Parameters::pc__APN__ID__IMS; +goto tmp_138_end; +} +tmp_138_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(543); +ttcn3_debugger.breakpoint_entry(543); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 543 */ +v__DNN = Parameters::pc__APN__ID__URLLC; +goto tmp_138_end; +} +tmp_138_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(546); +ttcn3_debugger.breakpoint_entry(546); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 546 */ +v__DNN = Parameters::pc__APN__ID__MIOT; +goto tmp_138_end; +} +tmp_138_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(549); +ttcn3_debugger.breakpoint_entry(549); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 549 */ +v__DNN = Parameters::pc__APN__ID__V2X; +goto tmp_138_end; +} +tmp_138_5: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(552); +ttcn3_debugger.breakpoint_entry(552); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 552 */ +v__DNN = Parameters::pc__APN__ID__Ethernet; +goto tmp_138_end; +} +tmp_138_6: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(555); +ttcn3_debugger.breakpoint_entry(555); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 555 */ +CommonDefs::FatalError(cs_0, 555, cs_1); +goto tmp_138_end; +} +tmp_138_end: /* empty */; +} +current_location.update_lineno(557); +ttcn3_debugger.breakpoint_entry(557); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 557 */ +{ +CHARSTRING tmp_146; +return DEBUGGER_STORE_RETURN_VALUE(tmp_146, v__DNN); +} +} + +NAS__CommonTypeDefs::PDU__PDN__DNN__Type f__GetDefaultAPN__DNNType__FromPICS() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 565, TTCN_Location::LOCATION_FUNCTION, "f_GetDefaultAPN_DNNType_FromPICS"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_GetDefaultAPN_DNNType_FromPICS", "function", "NAS_AuxiliaryDefsAndFunctions", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(567); +ttcn3_debugger.breakpoint_entry(567); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 567 */ +NAS__CommonTypeDefs::PDU__PDN__DNN__Type v__PDNType(NAS__CommonTypeDefs::PDU__PDN__DNN__Type::None); +debug_scope.add_variable(&v__PDNType, "v_PDNType", "PDU_PDN_DNN_Type", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +{ +const NAS__CommonTypeDefs::APN__DefaultConfiguration__Type &tmp_148 = Parameters::pc__APN__Default__Configuration; +current_location.update_lineno(570); +ttcn3_debugger.breakpoint_entry(570); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 570 */ +if(tmp_148 == NAS__CommonTypeDefs::APN__DefaultConfiguration__Type::internet) goto tmp_147_0; +current_location.update_lineno(573); +ttcn3_debugger.breakpoint_entry(573); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 573 */ +if(tmp_148 == NAS__CommonTypeDefs::APN__DefaultConfiguration__Type::ims) goto tmp_147_1; +current_location.update_lineno(576); +ttcn3_debugger.breakpoint_entry(576); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 576 */ +if(tmp_148 == NAS__CommonTypeDefs::APN__DefaultConfiguration__Type::urllc) goto tmp_147_2; +current_location.update_lineno(579); +ttcn3_debugger.breakpoint_entry(579); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 579 */ +if(tmp_148 == NAS__CommonTypeDefs::APN__DefaultConfiguration__Type::miot) goto tmp_147_3; +current_location.update_lineno(582); +ttcn3_debugger.breakpoint_entry(582); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 582 */ +if(tmp_148 == NAS__CommonTypeDefs::APN__DefaultConfiguration__Type::v2x) goto tmp_147_4; +current_location.update_lineno(585); +ttcn3_debugger.breakpoint_entry(585); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 585 */ +if(tmp_148 == NAS__CommonTypeDefs::APN__DefaultConfiguration__Type::ethernet) goto tmp_147_5; +goto tmp_147_end; +tmp_147_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(571); +ttcn3_debugger.breakpoint_entry(571); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 571 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::Internet__DNN; +goto tmp_147_end; +} +tmp_147_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(574); +ttcn3_debugger.breakpoint_entry(574); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 574 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::IMS__DNN; +goto tmp_147_end; +} +tmp_147_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(577); +ttcn3_debugger.breakpoint_entry(577); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 577 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::URLLC__DNN; +goto tmp_147_end; +} +tmp_147_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(580); +ttcn3_debugger.breakpoint_entry(580); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 580 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::MIOT__DNN; +goto tmp_147_end; +} +tmp_147_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(583); +ttcn3_debugger.breakpoint_entry(583); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 583 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::V2X__DNN; +goto tmp_147_end; +} +tmp_147_5: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(586); +ttcn3_debugger.breakpoint_entry(586); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 586 */ +v__PDNType = NAS__CommonTypeDefs::PDU__PDN__DNN__Type::Ethernet__DNN; +goto tmp_147_end; +} +tmp_147_end: /* empty */; +} +current_location.update_lineno(589); +ttcn3_debugger.breakpoint_entry(589); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 589 */ +{ +NAS__CommonTypeDefs::PDU__PDN__DNN__Type tmp_155; +return DEBUGGER_STORE_RETURN_VALUE(tmp_155, v__PDNType); +} +} + +BOOLEAN f__IsDNNForEmergency(const OCTETSTRING& p__DNNFromReq) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 598, TTCN_Location::LOCATION_FUNCTION, "f_IsDNNForEmergency"); +charstring_list param_names; +param_names[0] = "p_DNNFromReq"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_IsDNNForEmergency", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__DNNFromReq, "p_DNNFromReq", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(600); +ttcn3_debugger.breakpoint_entry(600); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 600 */ +{ +BOOLEAN tmp_156; +CommonDefs::CharStringList__Type tmp_157; +tmp_157.set_size(1); +tmp_157[0] = cs_2; +return DEBUGGER_STORE_RETURN_VALUE(tmp_156, OCTETSTRING_template(f__DomainName__EncodeLabels(tmp_157)).match(p__DNNFromReq)); +} +} + +CHARSTRING f__APN__MccMncLabel(const CHARSTRING& p__MncMcc, const CHARSTRING& p__Digits) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 610, TTCN_Location::LOCATION_FUNCTION, "f_APN_MccMncLabel"); +charstring_list param_names; +param_names[0] = "p_MncMcc"; +param_names[1] = "p_Digits"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_APN_MccMncLabel", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__MncMcc, "p_MncMcc", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Digits, "p_Digits", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(613); +ttcn3_debugger.breakpoint_entry(613); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 613 */ +INTEGER v__DigitCnt(p__Digits.lengthof()); +debug_scope.add_variable(&v__DigitCnt, "v_DigitCnt", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(614); +ttcn3_debugger.breakpoint_entry(614); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 614 */ +CHARSTRING v__Label(cs_3); +debug_scope.add_variable(&v__Label, "v_Label", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const INTEGER &tmp_159 = v__DigitCnt; +switch(tmp_159.get_long_long_val()) { +case(2): +{ +current_location.update_lineno(617); +ttcn3_debugger.breakpoint_entry(617); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 617 */ +v__Label = ((p__MncMcc + cs_4) + p__Digits); +break; +} +case(3): +{ +current_location.update_lineno(618); +ttcn3_debugger.breakpoint_entry(618); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 618 */ +v__Label = (p__MncMcc + p__Digits); +break; +} +default: +{ +current_location.update_lineno(619); +ttcn3_debugger.breakpoint_entry(619); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 619 */ +CommonDefs::FatalError(cs_0, 619, cs_3); +break; +} +};} +current_location.update_lineno(621); +ttcn3_debugger.breakpoint_entry(621); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 621 */ +{ +CHARSTRING tmp_162; +return DEBUGGER_STORE_RETURN_VALUE(tmp_162, v__Label); +} +} + +OCTETSTRING f__DomainName__EncodeLabels(const CommonDefs::CharStringList__Type& p__LabelList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 629, TTCN_Location::LOCATION_FUNCTION, "f_DomainName_EncodeLabels"); +charstring_list param_names; +param_names[0] = "p_LabelList"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_DomainName_EncodeLabels", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__LabelList, "p_LabelList", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(631); +ttcn3_debugger.breakpoint_entry(631); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 631 */ +OCTETSTRING v__EncodedAPN(os_0); +debug_scope.add_variable(&v__EncodedAPN, "v_EncodedAPN", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(632); +ttcn3_debugger.breakpoint_entry(632); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 632 */ +OCTETSTRING v__LabelOctets; +debug_scope.add_variable(&v__LabelOctets, "v_LabelOctets", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(633); +ttcn3_debugger.breakpoint_entry(633); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 633 */ +INTEGER v__Length; +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(634); +ttcn3_debugger.breakpoint_entry(634); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 634 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(636); +ttcn3_debugger.breakpoint_entry(636); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 636 */ +i = 0; +current_location.update_lineno(636); +ttcn3_debugger.breakpoint_entry(636); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 636 */ +for ( ; ; ) { +current_location.update_lineno(636); +ttcn3_debugger.breakpoint_entry(636); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 636 */ +if (!(i < p__LabelList.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(637); +ttcn3_debugger.breakpoint_entry(637); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 637 */ +v__LabelOctets = char2oct(const_cast< const CommonDefs::CharStringList__Type&>(p__LabelList)[i]); +current_location.update_lineno(638); +ttcn3_debugger.breakpoint_entry(638); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 638 */ +v__Length = v__LabelOctets.lengthof(); +current_location.update_lineno(639); +ttcn3_debugger.breakpoint_entry(639); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 639 */ +{ +OCTETSTRING tmp_166; +tmp_166 = ((v__EncodedAPN + int2oct(v__Length, 1)) + v__LabelOctets); +v__EncodedAPN = tmp_166; +} +current_location.update_lineno(636); +ttcn3_debugger.breakpoint_entry(636); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 636 */ +{ +INTEGER tmp_167; +++i; +} +} +current_location.update_lineno(641); +ttcn3_debugger.breakpoint_entry(641); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 641 */ +{ +OCTETSTRING tmp_168; +return DEBUGGER_STORE_RETURN_VALUE(tmp_168, v__EncodedAPN); +} +} + +OCTETSTRING f__DomainName__Encode(const CHARSTRING& p__DomainName) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 650, TTCN_Location::LOCATION_FUNCTION, "f_DomainName_Encode"); +charstring_list param_names; +param_names[0] = "p_DomainName"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_DomainName_Encode", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__DomainName, "p_DomainName", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(652); +ttcn3_debugger.breakpoint_entry(652); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 652 */ +CommonDefs::CharStringList__Type v__LabelList; +{ +CommonDefs::Char1List__Type tmp_169; +tmp_169.set_size(1); +tmp_169[0] = cs_5; +v__LabelList = CommonDefs::f__StringSplit(p__DomainName, tmp_169); +} +debug_scope.add_variable(&v__LabelList, "v_LabelList", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(653); +ttcn3_debugger.breakpoint_entry(653); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 653 */ +{ +OCTETSTRING tmp_170; +return DEBUGGER_STORE_RETURN_VALUE(tmp_170, f__DomainName__EncodeLabels(v__LabelList)); +} +} + +OCTETSTRING f__ImsiImei2Octetstring(const HEXSTRING& p__MobileId) +{ +HEXSTRING p__MobileId_shadow(p__MobileId); +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 665, TTCN_Location::LOCATION_FUNCTION, "f_ImsiImei2Octetstring"); +charstring_list param_names; +param_names[0] = "p_MobileId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ImsiImei2Octetstring", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__MobileId_shadow, "p_MobileId", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(667); +ttcn3_debugger.breakpoint_entry(667); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 667 */ +INTEGER v__Length(p__MobileId_shadow.lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(668); +ttcn3_debugger.breakpoint_entry(668); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 668 */ +INTEGER v__Odd(rem(v__Length, 2)); +debug_scope.add_variable(&v__Odd, "v_Odd", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(669); +ttcn3_debugger.breakpoint_entry(669); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 669 */ +OCTETSTRING v__Other(os_9); +debug_scope.add_variable(&v__Other, "v_Other", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(670); +ttcn3_debugger.breakpoint_entry(670); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 670 */ +INTEGER I; +debug_scope.add_variable(&I, "I", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(671); +ttcn3_debugger.breakpoint_entry(671); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 671 */ +INTEGER K; +debug_scope.add_variable(&K, "K", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(673); +ttcn3_debugger.breakpoint_entry(673); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 673 */ +if ((v__Odd == 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(674); +ttcn3_debugger.breakpoint_entry(674); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 674 */ +{ +INTEGER tmp_171; +++v__Length; +} +current_location.update_lineno(675); +ttcn3_debugger.breakpoint_entry(675); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 675 */ +{ +HEXSTRING tmp_172; +tmp_172 = (p__MobileId_shadow + hs_0); +p__MobileId_shadow = tmp_172; +} +} +current_location.update_lineno(680); +ttcn3_debugger.breakpoint_entry(680); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 680 */ +K = 0; +current_location.update_lineno(681); +ttcn3_debugger.breakpoint_entry(681); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 681 */ +I = 1; +current_location.update_lineno(681); +ttcn3_debugger.breakpoint_entry(681); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 681 */ +for ( ; ; ) { +current_location.update_lineno(681); +ttcn3_debugger.breakpoint_entry(681); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 681 */ +if (!(I < (v__Length - 1))) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(682); +ttcn3_debugger.breakpoint_entry(682); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 682 */ +v__Other[K] = hex2oct((const_cast< const HEXSTRING&>(p__MobileId_shadow)[(I + 1)] + const_cast< const HEXSTRING&>(p__MobileId_shadow)[I])); +current_location.update_lineno(683); +ttcn3_debugger.breakpoint_entry(683); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 683 */ +{ +INTEGER tmp_176; +++K; +} +current_location.update_lineno(681); +ttcn3_debugger.breakpoint_entry(681); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 681 */ +{ +INTEGER tmp_177; +tmp_177 = (I + 2); +I = tmp_177; +} +} +current_location.update_lineno(686); +ttcn3_debugger.breakpoint_entry(686); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 686 */ +{ +OCTETSTRING tmp_178; +return DEBUGGER_STORE_RETURN_VALUE(tmp_178, v__Other); +} +} + +NAS__CommonTypeDefs::MobileIdentity_template f__Imsi2MobileIdentity(const HEXSTRING& p__IMSI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 696, TTCN_Location::LOCATION_FUNCTION, "f_Imsi2MobileIdentity"); +charstring_list param_names; +param_names[0] = "p_IMSI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Imsi2MobileIdentity", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__IMSI, "p_IMSI", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(698); +ttcn3_debugger.breakpoint_entry(698); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 698 */ +INTEGER v__ImsiLength(p__IMSI.lengthof()); +debug_scope.add_variable(&v__ImsiLength, "v_ImsiLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(699); +ttcn3_debugger.breakpoint_entry(699); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 699 */ +INTEGER v__Odd(rem(v__ImsiLength, 2)); +debug_scope.add_variable(&v__Odd, "v_Odd", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(700); +ttcn3_debugger.breakpoint_entry(700); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 700 */ +OCTETSTRING v__Other(f__ImsiImei2Octetstring(p__IMSI)); +debug_scope.add_variable(&v__Other, "v_Other", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(701); +ttcn3_debugger.breakpoint_entry(701); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 701 */ +BITSTRING v__FirstDigit(hex2bit(const_cast< const HEXSTRING&>(p__IMSI)[0])); +debug_scope.add_variable(&v__FirstDigit, "v_FirstDigit", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(702); +ttcn3_debugger.breakpoint_entry(702); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 702 */ +BITSTRING v__OddEvenInd(int2bit(v__Odd, 1)); +debug_scope.add_variable(&v__OddEvenInd, "v_OddEvenInd", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(704); +ttcn3_debugger.breakpoint_entry(704); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 704 */ +{ +NAS__CommonTypeDefs::MobileIdentity_template tmp_179; +return DEBUGGER_STORE_RETURN_VALUE(tmp_179, NAS__CommonTemplates::cds__MobileIdentityImsi__lv(v__FirstDigit, v__OddEvenInd, v__Other)); +} +} + +NAS__CommonTypeDefs::MobileIdentity_template f__Imei2MobileIdentity(const HEXSTRING& p__IMEI, const BITSTRING& p__NAS__IdType) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 716, TTCN_Location::LOCATION_FUNCTION, "f_Imei2MobileIdentity"); +charstring_list param_names; +param_names[0] = "p_IMEI"; +param_names[1] = "p_NAS_IdType"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_Imei2MobileIdentity", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__IMEI, "p_IMEI", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NAS__IdType, "p_NAS_IdType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(719); +ttcn3_debugger.breakpoint_entry(719); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 719 */ +INTEGER v__ImeiLength(p__IMEI.lengthof()); +debug_scope.add_variable(&v__ImeiLength, "v_ImeiLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(720); +ttcn3_debugger.breakpoint_entry(720); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 720 */ +INTEGER v__Odd(rem(v__ImeiLength, 2)); +debug_scope.add_variable(&v__Odd, "v_Odd", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(721); +ttcn3_debugger.breakpoint_entry(721); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 721 */ +OCTETSTRING v__Other(f__ImsiImei2Octetstring((substr(p__IMEI, 0, (v__ImeiLength - 1)) + hs_1))); +debug_scope.add_variable(&v__Other, "v_Other", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(722); +ttcn3_debugger.breakpoint_entry(722); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 722 */ +BITSTRING v__FirstDigit(hex2bit(const_cast< const HEXSTRING&>(p__IMEI)[0])); +debug_scope.add_variable(&v__FirstDigit, "v_FirstDigit", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(723); +ttcn3_debugger.breakpoint_entry(723); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 723 */ +BITSTRING v__OddEvenInd(int2bit(v__Odd, 1)); +debug_scope.add_variable(&v__OddEvenInd, "v_OddEvenInd", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(725); +ttcn3_debugger.breakpoint_entry(725); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 725 */ +{ +NAS__CommonTypeDefs::MobileIdentity_template tmp_180; +return DEBUGGER_STORE_RETURN_VALUE(tmp_180, NAS__CommonTemplates::cr__MobileIdentityImei(v__FirstDigit, v__OddEvenInd, v__Other, p__NAS__IdType)); +} +} + +NAS__CommonTypeDefs::MobileIdentity_template f__Imeisv2MobileIdentity(const HEXSTRING& p__IMEISV) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 735, TTCN_Location::LOCATION_FUNCTION, "f_Imeisv2MobileIdentity"); +charstring_list param_names; +param_names[0] = "p_IMEISV"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Imeisv2MobileIdentity", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__IMEISV, "p_IMEISV", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(737); +ttcn3_debugger.breakpoint_entry(737); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 737 */ +INTEGER v__ImeiLength(p__IMEISV.lengthof()); +debug_scope.add_variable(&v__ImeiLength, "v_ImeiLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(738); +ttcn3_debugger.breakpoint_entry(738); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 738 */ +INTEGER v__Odd(rem(v__ImeiLength, 2)); +debug_scope.add_variable(&v__Odd, "v_Odd", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(739); +ttcn3_debugger.breakpoint_entry(739); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 739 */ +OCTETSTRING v__Other(f__ImsiImei2Octetstring(p__IMEISV)); +debug_scope.add_variable(&v__Other, "v_Other", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(740); +ttcn3_debugger.breakpoint_entry(740); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 740 */ +BITSTRING v__FirstDigit(hex2bit(const_cast< const HEXSTRING&>(p__IMEISV)[0])); +debug_scope.add_variable(&v__FirstDigit, "v_FirstDigit", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(741); +ttcn3_debugger.breakpoint_entry(741); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 741 */ +BITSTRING v__OddEvenInd(int2bit(v__Odd, 1)); +debug_scope.add_variable(&v__OddEvenInd, "v_OddEvenInd", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(743); +ttcn3_debugger.breakpoint_entry(743); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 743 */ +{ +NAS__CommonTypeDefs::MobileIdentity_template tmp_181; +return DEBUGGER_STORE_RETURN_VALUE(tmp_181, NAS__CommonTemplates::cr__MobileIdentityImeisv(v__FirstDigit, v__OddEvenInd, v__Other)); +} +} + +OCTETSTRING fl__EmgNum2Octetstring(const HEXSTRING& p__EmgNum) +{ +HEXSTRING p__EmgNum_shadow(p__EmgNum); +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 753, TTCN_Location::LOCATION_FUNCTION, "fl_EmgNum2Octetstring"); +charstring_list param_names; +param_names[0] = "p_EmgNum"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_EmgNum2Octetstring", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__EmgNum_shadow, "p_EmgNum", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(755); +ttcn3_debugger.breakpoint_entry(755); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 755 */ +INTEGER v__Length(p__EmgNum_shadow.lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(756); +ttcn3_debugger.breakpoint_entry(756); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 756 */ +INTEGER v__Odd(rem(v__Length, 2)); +debug_scope.add_variable(&v__Odd, "v_Odd", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(757); +ttcn3_debugger.breakpoint_entry(757); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 757 */ +OCTETSTRING v__Result(os_9); +debug_scope.add_variable(&v__Result, "v_Result", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(758); +ttcn3_debugger.breakpoint_entry(758); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 758 */ +INTEGER I; +debug_scope.add_variable(&I, "I", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(759); +ttcn3_debugger.breakpoint_entry(759); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 759 */ +INTEGER K; +debug_scope.add_variable(&K, "K", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(761); +ttcn3_debugger.breakpoint_entry(761); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 761 */ +if ((v__Odd == 1)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(762); +ttcn3_debugger.breakpoint_entry(762); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 762 */ +{ +INTEGER tmp_182; +++v__Length; +} +current_location.update_lineno(763); +ttcn3_debugger.breakpoint_entry(763); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 763 */ +{ +HEXSTRING tmp_183; +tmp_183 = (p__EmgNum_shadow + hs_0); +p__EmgNum_shadow = tmp_183; +} +} +current_location.update_lineno(767); +ttcn3_debugger.breakpoint_entry(767); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 767 */ +K = 0; +current_location.update_lineno(768); +ttcn3_debugger.breakpoint_entry(768); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 768 */ +I = 0; +current_location.update_lineno(768); +ttcn3_debugger.breakpoint_entry(768); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 768 */ +for ( ; ; ) { +current_location.update_lineno(768); +ttcn3_debugger.breakpoint_entry(768); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 768 */ +if (!(I < (v__Length - 1))) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(769); +ttcn3_debugger.breakpoint_entry(769); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 769 */ +v__Result[K] = hex2oct((const_cast< const HEXSTRING&>(p__EmgNum_shadow)[(I + 1)] + const_cast< const HEXSTRING&>(p__EmgNum_shadow)[I])); +current_location.update_lineno(770); +ttcn3_debugger.breakpoint_entry(770); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 770 */ +{ +INTEGER tmp_187; +++K; +} +current_location.update_lineno(768); +ttcn3_debugger.breakpoint_entry(768); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 768 */ +{ +INTEGER tmp_188; +tmp_188 = (I + 2); +I = tmp_188; +} +} +current_location.update_lineno(773); +ttcn3_debugger.breakpoint_entry(773); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 773 */ +{ +OCTETSTRING tmp_189; +return DEBUGGER_STORE_RETURN_VALUE(tmp_189, v__Result); +} +} + +NAS__CommonTypeDefs::EmergNumList_template f__Build__EmergNumList(const INTEGER& p__NoOfNums, const NAS__CommonTypeDefs::EmergencyNumList& p__NumList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 783, TTCN_Location::LOCATION_FUNCTION, "f_Build_EmergNumList"); +charstring_list param_names; +param_names[0] = "p_NoOfNums"; +param_names[1] = "p_NumList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_Build_EmergNumList", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__NoOfNums, "p_NoOfNums", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NumList, "p_NumList", "EmergencyNumList", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(786); +ttcn3_debugger.breakpoint_entry(786); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 786 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(787); +ttcn3_debugger.breakpoint_entry(787); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 787 */ +NAS__CommonTypeDefs::EmergNumList_template v__EmergNum; +debug_scope.add_variable(&v__EmergNum, "v_EmergNum", "EmergNumList template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(788); +ttcn3_debugger.breakpoint_entry(788); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 788 */ +OCTETSTRING v__LocalNum; +debug_scope.add_variable(&v__LocalNum, "v_LocalNum", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(789); +ttcn3_debugger.breakpoint_entry(789); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 789 */ +INTEGER v__LocalLength(0); +debug_scope.add_variable(&v__LocalLength, "v_LocalLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(790); +ttcn3_debugger.breakpoint_entry(790); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 790 */ +INTEGER v__TotalLength(0); +debug_scope.add_variable(&v__TotalLength, "v_TotalLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(791); +ttcn3_debugger.breakpoint_entry(791); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 791 */ +BITSTRING v__ServCat; +debug_scope.add_variable(&v__ServCat, "v_ServCat", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(793); +ttcn3_debugger.breakpoint_entry(793); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 793 */ +v__EmergNum.iei() = os_10; +current_location.update_lineno(794); +ttcn3_debugger.breakpoint_entry(794); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 794 */ +i = 0; +current_location.update_lineno(794); +ttcn3_debugger.breakpoint_entry(794); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 794 */ +for ( ; ; ) { +current_location.update_lineno(794); +ttcn3_debugger.breakpoint_entry(794); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 794 */ +if (!(i < p__NoOfNums)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(795); +ttcn3_debugger.breakpoint_entry(795); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 795 */ +v__LocalNum = fl__EmgNum2Octetstring(const_cast< const NAS__CommonTypeDefs::EmergencyNumList&>(p__NumList)[i]); +current_location.update_lineno(796); +ttcn3_debugger.breakpoint_entry(796); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 796 */ +v__LocalLength = v__LocalNum.lengthof(); +current_location.update_lineno(797); +ttcn3_debugger.breakpoint_entry(797); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 797 */ +if (((i / 2) > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(798); +ttcn3_debugger.breakpoint_entry(798); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 798 */ +v__ServCat = (bs_0 + (bs_1 << i)); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(800); +ttcn3_debugger.breakpoint_entry(800); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 800 */ +v__ServCat = (bs_0 + (bs_1 << i)); +} +current_location.update_lineno(802); +ttcn3_debugger.breakpoint_entry(802); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 802 */ +v__EmergNum.emergNum()[i] = NAS__CommonTemplates::cs__EmergencyLocalNumber(int2oct((v__LocalLength + 1), 1), NAS__CommonTemplates::cs__EmergServCat(v__ServCat), v__LocalNum); +current_location.update_lineno(805); +ttcn3_debugger.breakpoint_entry(805); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 805 */ +{ +INTEGER tmp_197; +tmp_197 = ((v__TotalLength + 2) + v__LocalLength); +v__TotalLength = tmp_197; +} +current_location.update_lineno(794); +ttcn3_debugger.breakpoint_entry(794); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 794 */ +{ +INTEGER tmp_198; +++i; +} +} +current_location.update_lineno(807); +ttcn3_debugger.breakpoint_entry(807); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 807 */ +v__EmergNum.iel() = int2oct(v__TotalLength, 1); +current_location.update_lineno(808); +ttcn3_debugger.breakpoint_entry(808); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 808 */ +{ +NAS__CommonTypeDefs::EmergNumList_template tmp_200; +return DEBUGGER_STORE_RETURN_VALUE(tmp_200, v__EmergNum); +} +} + +NAS__CommonTypeDefs::ExtdEmergNumList_template f__Build__ExtdEmergNumList(const INTEGER& p__NoOfNums, const NAS__CommonTypeDefs::EmergencyNumList& p__NumList, const BITSTRING& p__EENLV, const OCTETSTRING& p__SubServices) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 820, TTCN_Location::LOCATION_FUNCTION, "f_Build_ExtdEmergNumList"); +charstring_list param_names; +param_names[0] = "p_NoOfNums"; +param_names[1] = "p_NumList"; +param_names[2] = "p_EENLV"; +param_names[3] = "p_SubServices"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_Build_ExtdEmergNumList", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__NoOfNums, "p_NoOfNums", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NumList, "p_NumList", "EmergencyNumList", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EENLV, "p_EENLV", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SubServices, "p_SubServices", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(825); +ttcn3_debugger.breakpoint_entry(825); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 825 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(826); +ttcn3_debugger.breakpoint_entry(826); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 826 */ +NAS__CommonTypeDefs::ExtdEmergNumList_template v__EmergNum; +debug_scope.add_variable(&v__EmergNum, "v_EmergNum", "ExtdEmergNumList template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(827); +ttcn3_debugger.breakpoint_entry(827); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 827 */ +OCTETSTRING v__LocalNum; +debug_scope.add_variable(&v__LocalNum, "v_LocalNum", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(828); +ttcn3_debugger.breakpoint_entry(828); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 828 */ +INTEGER v__LocalLength(0); +debug_scope.add_variable(&v__LocalLength, "v_LocalLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(829); +ttcn3_debugger.breakpoint_entry(829); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 829 */ +INTEGER v__TotalLength(0); +debug_scope.add_variable(&v__TotalLength, "v_TotalLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(831); +ttcn3_debugger.breakpoint_entry(831); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 831 */ +v__EmergNum.iei() = os_11; +current_location.update_lineno(832); +ttcn3_debugger.breakpoint_entry(832); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 832 */ +i = 0; +current_location.update_lineno(832); +ttcn3_debugger.breakpoint_entry(832); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 832 */ +for ( ; ; ) { +current_location.update_lineno(832); +ttcn3_debugger.breakpoint_entry(832); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 832 */ +if (!(i < p__NoOfNums)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(833); +ttcn3_debugger.breakpoint_entry(833); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 833 */ +v__LocalNum = fl__EmgNum2Octetstring(const_cast< const NAS__CommonTypeDefs::EmergencyNumList&>(p__NumList)[i]); +current_location.update_lineno(834); +ttcn3_debugger.breakpoint_entry(834); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 834 */ +v__EmergNum.emergNum()[i] = cs__ExtdEmergNum(v__LocalNum, p__SubServices); +current_location.update_lineno(835); +ttcn3_debugger.breakpoint_entry(835); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 835 */ +v__LocalLength = ((v__LocalNum.lengthof() + 2) + p__SubServices.lengthof()); +current_location.update_lineno(836); +ttcn3_debugger.breakpoint_entry(836); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 836 */ +{ +INTEGER tmp_206; +tmp_206 = (v__TotalLength + v__LocalLength); +v__TotalLength = tmp_206; +} +current_location.update_lineno(832); +ttcn3_debugger.breakpoint_entry(832); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 832 */ +{ +INTEGER tmp_207; +++i; +} +} +current_location.update_lineno(838); +ttcn3_debugger.breakpoint_entry(838); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 838 */ +v__EmergNum.spareBits() = NAS__CommonTemplates::tsc__Spare7; +current_location.update_lineno(839); +ttcn3_debugger.breakpoint_entry(839); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 839 */ +v__EmergNum.extdEmergNumListValidity() = p__EENLV; +current_location.update_lineno(840); +ttcn3_debugger.breakpoint_entry(840); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 840 */ +v__EmergNum.iel() = int2oct((v__TotalLength + 1), 2); +current_location.update_lineno(841); +ttcn3_debugger.breakpoint_entry(841); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 841 */ +{ +NAS__CommonTypeDefs::ExtdEmergNumList_template tmp_211; +return DEBUGGER_STORE_RETURN_VALUE(tmp_211, v__EmergNum); +} +} + +NAS__CommonTypeDefs::EmergencyNumList f__Get__EmergencyNumList(const INTEGER& p__NoOfNums, const NAS__CommonTypeDefs::EmergencyNumList& p__ExistingNums) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 851, TTCN_Location::LOCATION_FUNCTION, "f_Get_EmergencyNumList"); +charstring_list param_names; +param_names[0] = "p_NoOfNums"; +param_names[1] = "p_ExistingNums"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_Get_EmergencyNumList", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__NoOfNums, "p_NoOfNums", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ExistingNums, "p_ExistingNums", "EmergencyNumList", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(854); +ttcn3_debugger.breakpoint_entry(854); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 854 */ +NAS__CommonTypeDefs::EmergencyNumList v__NewNumbers; +debug_scope.add_variable(&v__NewNumbers, "v_NewNumbers", "EmergencyNumList", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(855); +ttcn3_debugger.breakpoint_entry(855); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 855 */ +INTEGER v__Number(115); +debug_scope.add_variable(&v__Number, "v_Number", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(856); +ttcn3_debugger.breakpoint_entry(856); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 856 */ +BOOLEAN v__NumberExists; +debug_scope.add_variable(&v__NumberExists, "v_NumberExists", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(857); +ttcn3_debugger.breakpoint_entry(857); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 857 */ +HEXSTRING v__NumberDigits; +debug_scope.add_variable(&v__NumberDigits, "v_NumberDigits", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(858); +ttcn3_debugger.breakpoint_entry(858); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 858 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(860); +ttcn3_debugger.breakpoint_entry(860); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 860 */ +if ((p__NoOfNums > 20)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(860); +ttcn3_debugger.breakpoint_entry(860); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 860 */ +CommonDefs::FatalError(cs_0, 860, cs_6); +} +current_location.update_lineno(862); +ttcn3_debugger.breakpoint_entry(862); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 862 */ +i = 0; +current_location.update_lineno(862); +ttcn3_debugger.breakpoint_entry(862); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 862 */ +for ( ; ; ) { +current_location.update_lineno(862); +ttcn3_debugger.breakpoint_entry(862); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 862 */ +if (!(i < p__NoOfNums)) break; +TTCN3_Debug_Scope debug_scope; +for ( ; ; ) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(864); +ttcn3_debugger.breakpoint_entry(864); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 864 */ +{ +INTEGER tmp_213; +tmp_213 = mod(v__Number, 1000); +v__Number = tmp_213; +} +current_location.update_lineno(865); +ttcn3_debugger.breakpoint_entry(865); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 865 */ +if ((v__Number < 100)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(865); +ttcn3_debugger.breakpoint_entry(865); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 865 */ +{ +INTEGER tmp_214; +tmp_214 = (v__Number + 100); +v__Number = tmp_214; +} +} +current_location.update_lineno(866); +ttcn3_debugger.breakpoint_entry(866); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 866 */ +v__NumberDigits = str2hex(int2str(v__Number)); +current_location.update_lineno(867); +ttcn3_debugger.breakpoint_entry(867); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 867 */ +v__NumberExists = fl__CheckEmergencyNum(p__ExistingNums, v__NumberDigits); +current_location.update_lineno(868); +ttcn3_debugger.breakpoint_entry(868); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 868 */ +if (v__NumberExists) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(869); +ttcn3_debugger.breakpoint_entry(869); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 869 */ +{ +INTEGER tmp_217; +++v__Number; +} +} +current_location.update_lineno(871); +ttcn3_debugger.breakpoint_entry(871); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 871 */ +if (!v__NumberExists) break; +} +current_location.update_lineno(872); +ttcn3_debugger.breakpoint_entry(872); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 872 */ +v__NewNumbers[i] = v__NumberDigits; +current_location.update_lineno(873); +ttcn3_debugger.breakpoint_entry(873); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 873 */ +{ +INTEGER tmp_219; +++v__Number; +} +current_location.update_lineno(862); +ttcn3_debugger.breakpoint_entry(862); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 862 */ +{ +INTEGER tmp_220; +++i; +} +} +current_location.update_lineno(875); +ttcn3_debugger.breakpoint_entry(875); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 875 */ +{ +NAS__CommonTypeDefs::EmergencyNumList tmp_221; +return DEBUGGER_STORE_RETURN_VALUE(tmp_221, v__NewNumbers); +} +} + +BOOLEAN fl__CheckEmergencyNum(const NAS__CommonTypeDefs::EmergencyNumList& p__ExistingNums, const HEXSTRING& p__NewNum) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 885, TTCN_Location::LOCATION_FUNCTION, "fl_CheckEmergencyNum"); +charstring_list param_names; +param_names[0] = "p_ExistingNums"; +param_names[1] = "p_NewNum"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("fl_CheckEmergencyNum", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__ExistingNums, "p_ExistingNums", "EmergencyNumList", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__NewNum, "p_NewNum", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(887); +ttcn3_debugger.breakpoint_entry(887); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 887 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(889); +ttcn3_debugger.breakpoint_entry(889); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 889 */ +i = 0; +current_location.update_lineno(889); +ttcn3_debugger.breakpoint_entry(889); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 889 */ +for ( ; ; ) { +current_location.update_lineno(889); +ttcn3_debugger.breakpoint_entry(889); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 889 */ +if (!(i < p__ExistingNums.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(890); +ttcn3_debugger.breakpoint_entry(890); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 890 */ +if ((const_cast< const NAS__CommonTypeDefs::EmergencyNumList&>(p__ExistingNums)[i] == p__NewNum)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(890); +ttcn3_debugger.breakpoint_entry(890); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 890 */ +{ +BOOLEAN tmp_223; +return DEBUGGER_STORE_RETURN_VALUE(tmp_223, TRUE); +} +} +current_location.update_lineno(889); +ttcn3_debugger.breakpoint_entry(889); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 889 */ +{ +INTEGER tmp_224; +++i; +} +} +current_location.update_lineno(892); +ttcn3_debugger.breakpoint_entry(892); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 892 */ +{ +BOOLEAN tmp_225; +return DEBUGGER_STORE_RETURN_VALUE(tmp_225, FALSE); +} +} + +void f__AT__ResponseCheck(const CHARSTRING& p__AT__Response, const CHARSTRING& p__ExpectedString, const CHARSTRING& p__Text, const CHARSTRING& p__Expression, const INTEGER& p__Group) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 905, TTCN_Location::LOCATION_FUNCTION, "f_AT_ResponseCheck"); +charstring_list param_names; +param_names[0] = "p_AT_Response"; +param_names[1] = "p_ExpectedString"; +param_names[2] = "p_Text"; +param_names[3] = "p_Expression"; +param_names[4] = "p_Group"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_AT_ResponseCheck", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__AT__Response, "p_AT_Response", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ExpectedString, "p_ExpectedString", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Text, "p_Text", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Expression, "p_Expression", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Group, "p_Group", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(912); +ttcn3_debugger.breakpoint_entry(912); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 912 */ +CHARSTRING v__Expression(p__Expression); +debug_scope.add_variable(&v__Expression, "v_Expression", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(913); +ttcn3_debugger.breakpoint_entry(913); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 913 */ +CHARSTRING v__Result; +debug_scope.add_variable(&v__Result, "v_Result", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(914); +ttcn3_debugger.breakpoint_entry(914); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 914 */ +CHARSTRING_template v__ExpectedString; +v__ExpectedString = CHARSTRING_template(STRING_PATTERN, (CHARSTRING)p__ExpectedString, FALSE); +debug_scope.add_variable(&v__ExpectedString, "v_ExpectedString", "charstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(915); +ttcn3_debugger.breakpoint_entry(915); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 915 */ +BOOLEAN v__MatchResult; +debug_scope.add_variable(&v__MatchResult, "v_MatchResult", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(916); +ttcn3_debugger.breakpoint_entry(916); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 916 */ +CHARSTRING v__CRLF(cs_8); +debug_scope.add_variable(&v__CRLF, "v_CRLF", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(918); +ttcn3_debugger.breakpoint_entry(918); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 918 */ +v__Result = regexp(p__AT__Response, v__Expression, p__Group, FALSE); +current_location.update_lineno(920); +ttcn3_debugger.breakpoint_entry(920); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 920 */ +v__MatchResult = v__ExpectedString.match(v__Result); +current_location.update_lineno(922); +ttcn3_debugger.breakpoint_entry(922); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 922 */ +if ((v__MatchResult == TRUE)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(923); +ttcn3_debugger.breakpoint_entry(923); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 923 */ +CommonDefs::f__SetVerdict(PASS, cs_0, 923, p__Text); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(925); +ttcn3_debugger.breakpoint_entry(925); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 925 */ +CommonDefs::f__ErrorLog(cs_0, 925, (((((v__CRLF + cs_9) + p__ExpectedString) + v__CRLF) + cs_10) + v__Result)); +current_location.update_lineno(926); +ttcn3_debugger.breakpoint_entry(926); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 926 */ +CommonDefs::f__SetVerdict(FAIL, cs_0, 926, p__Text); +} +} + +NAS__CommonTypeDefs::UE__SecurityCapability f__EPS__FillNAS__SecurityCapability__Common(const NAS__CommonTypeDefs::UE__NetworkCap& p__UeNetworkCapability, const NAS__CommonTypeDefs::MS__NetworkCap_template& p__MsNetworkCapability) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 937, TTCN_Location::LOCATION_FUNCTION, "f_EPS_FillNAS_SecurityCapability_Common"); +charstring_list param_names; +param_names[0] = "p_UeNetworkCapability"; +param_names[1] = "p_MsNetworkCapability"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_EPS_FillNAS_SecurityCapability_Common", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__UeNetworkCapability, "p_UeNetworkCapability", "UE_NetworkCap", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__MsNetworkCapability, "p_MsNetworkCapability", "MS_NetworkCap template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(940); +ttcn3_debugger.breakpoint_entry(940); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 940 */ +NAS__CommonTypeDefs::UE__SecurityCapability v__SecurityCapability; +debug_scope.add_variable(&v__SecurityCapability, "v_SecurityCapability", "UE_SecurityCapability", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(941); +ttcn3_debugger.breakpoint_entry(941); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 941 */ +NAS__CommonTypeDefs::MS__NetworkCap v__MS__NetworkCap; +debug_scope.add_variable(&v__MS__NetworkCap, "v_MS_NetworkCap", "MS_NetworkCap", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(942); +ttcn3_debugger.breakpoint_entry(942); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 942 */ +BITSTRING v__GEA(bs_3); +debug_scope.add_variable(&v__GEA, "v_GEA", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(943); +ttcn3_debugger.breakpoint_entry(943); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 943 */ +INTEGER v__Length(2); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(945); +ttcn3_debugger.breakpoint_entry(945); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 945 */ +v__SecurityCapability.eeaCap() = bit2oct(const_cast< const NAS__CommonTypeDefs::UE__NetworkCap&>(p__UeNetworkCapability).eeaCap()); +current_location.update_lineno(946); +ttcn3_debugger.breakpoint_entry(946); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 946 */ +v__SecurityCapability.eiaCap() = bit2oct(const_cast< const NAS__CommonTypeDefs::UE__NetworkCap&>(p__UeNetworkCapability).eiaCap()); +current_location.update_lineno(948); +ttcn3_debugger.breakpoint_entry(948); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 948 */ +{ +boolean tmp_233; +{ +boolean tmp_230 = p__UeNetworkCapability.is_bound(); +if(tmp_230) { +const OPTIONAL< BITSTRING >& tmp_231 = p__UeNetworkCapability.ueaCap(); +switch (tmp_231.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_230 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_230 = FALSE; +break; +default: +{ +const BITSTRING& tmp_232 = (const BITSTRING&) tmp_231; +tmp_230 = tmp_232.is_present(); +break;} +} +} +tmp_233 = tmp_230; +} +if (tmp_233) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(949); +ttcn3_debugger.breakpoint_entry(949); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 949 */ +v__SecurityCapability.ueaCap() = bit2oct(const_cast< const NAS__CommonTypeDefs::UE__NetworkCap&>(p__UeNetworkCapability).ueaCap()()); +current_location.update_lineno(950); +ttcn3_debugger.breakpoint_entry(950); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 950 */ +{ +INTEGER tmp_235; +tmp_235 = (v__Length + 2); +v__Length = tmp_235; +} +current_location.update_lineno(951); +ttcn3_debugger.breakpoint_entry(951); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 951 */ +{ +boolean tmp_239; +{ +boolean tmp_236 = p__UeNetworkCapability.is_bound(); +if(tmp_236) { +const OPTIONAL< BITSTRING >& tmp_237 = p__UeNetworkCapability.uiaCap(); +switch (tmp_237.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_236 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_236 = FALSE; +break; +default: +{ +const BITSTRING& tmp_238 = (const BITSTRING&) tmp_237; +tmp_236 = tmp_238.is_present(); +break;} +} +} +tmp_239 = tmp_236; +} +if (tmp_239) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(952); +ttcn3_debugger.breakpoint_entry(952); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 952 */ +v__SecurityCapability.uiaCap() = (bit2oct(const_cast< const NAS__CommonTypeDefs::UE__NetworkCap&>(p__UeNetworkCapability).uiaCap()()) & os_12); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(954); +ttcn3_debugger.breakpoint_entry(954); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 954 */ +v__SecurityCapability.uiaCap() = os_9; +} +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(957); +ttcn3_debugger.breakpoint_entry(957); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 957 */ +v__SecurityCapability.ueaCap() = OMIT_VALUE; +current_location.update_lineno(958); +ttcn3_debugger.breakpoint_entry(958); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 958 */ +v__SecurityCapability.uiaCap() = OMIT_VALUE; +} +} +current_location.update_lineno(961); +ttcn3_debugger.breakpoint_entry(961); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 961 */ +if (p__MsNetworkCapability.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(962); +ttcn3_debugger.breakpoint_entry(962); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 962 */ +v__MS__NetworkCap = p__MsNetworkCapability.valueof(); +current_location.update_lineno(963); +ttcn3_debugger.breakpoint_entry(963); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 963 */ +if ((const_cast< const NAS__CommonTypeDefs::MS__NetworkCap&>(v__MS__NetworkCap).gea1() == bs_4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(964); +ttcn3_debugger.breakpoint_entry(964); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 964 */ +{ +BITSTRING tmp_245; +tmp_245 = (v__GEA | bs_5); +v__GEA = tmp_245; +} +} +current_location.update_lineno(966); +ttcn3_debugger.breakpoint_entry(966); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 966 */ +if ((const_cast< const NAS__CommonTypeDefs::MS__NetworkCap&>(v__MS__NetworkCap).gea2() == bs_4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(967); +ttcn3_debugger.breakpoint_entry(967); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 967 */ +{ +BITSTRING tmp_246; +tmp_246 = (v__GEA | bs_6); +v__GEA = tmp_246; +} +} +current_location.update_lineno(969); +ttcn3_debugger.breakpoint_entry(969); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 969 */ +if ((const_cast< const NAS__CommonTypeDefs::MS__NetworkCap&>(v__MS__NetworkCap).gea3() == bs_4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(970); +ttcn3_debugger.breakpoint_entry(970); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 970 */ +{ +BITSTRING tmp_247; +tmp_247 = (v__GEA | bs_7); +v__GEA = tmp_247; +} +} +current_location.update_lineno(972); +ttcn3_debugger.breakpoint_entry(972); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 972 */ +if ((const_cast< const NAS__CommonTypeDefs::MS__NetworkCap&>(v__MS__NetworkCap).gea4() == bs_4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(973); +ttcn3_debugger.breakpoint_entry(973); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 973 */ +{ +BITSTRING tmp_248; +tmp_248 = (v__GEA | bs_8); +v__GEA = tmp_248; +} +} +current_location.update_lineno(975); +ttcn3_debugger.breakpoint_entry(975); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 975 */ +if ((const_cast< const NAS__CommonTypeDefs::MS__NetworkCap&>(v__MS__NetworkCap).gea5() == bs_4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(976); +ttcn3_debugger.breakpoint_entry(976); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 976 */ +{ +BITSTRING tmp_249; +tmp_249 = (v__GEA | bs_9); +v__GEA = tmp_249; +} +} +current_location.update_lineno(978); +ttcn3_debugger.breakpoint_entry(978); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 978 */ +if ((const_cast< const NAS__CommonTypeDefs::MS__NetworkCap&>(v__MS__NetworkCap).gea6() == bs_4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(979); +ttcn3_debugger.breakpoint_entry(979); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 979 */ +{ +BITSTRING tmp_250; +tmp_250 = (v__GEA | bs_10); +v__GEA = tmp_250; +} +} +current_location.update_lineno(981); +ttcn3_debugger.breakpoint_entry(981); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 981 */ +if ((const_cast< const NAS__CommonTypeDefs::MS__NetworkCap&>(v__MS__NetworkCap).gea7() == bs_4)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(982); +ttcn3_debugger.breakpoint_entry(982); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 982 */ +{ +BITSTRING tmp_251; +tmp_251 = (v__GEA | bs_11); +v__GEA = tmp_251; +} +} +current_location.update_lineno(984); +ttcn3_debugger.breakpoint_entry(984); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 984 */ +{ +INTEGER tmp_252; +++v__Length; +} +current_location.update_lineno(985); +ttcn3_debugger.breakpoint_entry(985); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 985 */ +v__SecurityCapability.geaCap() = bit2oct(v__GEA); +current_location.update_lineno(986); +ttcn3_debugger.breakpoint_entry(986); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 986 */ +if ((v__Length == 3)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(987); +ttcn3_debugger.breakpoint_entry(987); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 987 */ +v__Length = 5; +current_location.update_lineno(988); +ttcn3_debugger.breakpoint_entry(988); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 988 */ +v__SecurityCapability.ueaCap() = os_9; +current_location.update_lineno(989); +ttcn3_debugger.breakpoint_entry(989); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 989 */ +v__SecurityCapability.uiaCap() = os_9; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(992); +ttcn3_debugger.breakpoint_entry(992); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 992 */ +v__SecurityCapability.geaCap() = OMIT_VALUE; +current_location.update_lineno(994); +ttcn3_debugger.breakpoint_entry(994); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 994 */ +{ +boolean tmp_258; +tmp_258 = (const_cast< const NAS__CommonTypeDefs::UE__SecurityCapability&>(v__SecurityCapability).ueaCap() == os_9); +if (tmp_258) tmp_258 = (const_cast< const NAS__CommonTypeDefs::UE__SecurityCapability&>(v__SecurityCapability).uiaCap() == os_9); +if (tmp_258) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(995); +ttcn3_debugger.breakpoint_entry(995); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 995 */ +v__SecurityCapability.ueaCap() = OMIT_VALUE; +current_location.update_lineno(996); +ttcn3_debugger.breakpoint_entry(996); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 996 */ +v__SecurityCapability.uiaCap() = OMIT_VALUE; +current_location.update_lineno(997); +ttcn3_debugger.breakpoint_entry(997); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 997 */ +v__Length = 2; +} +} +} +current_location.update_lineno(1001); +ttcn3_debugger.breakpoint_entry(1001); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 1001 */ +v__SecurityCapability.iel() = int2oct(v__Length, 1); +current_location.update_lineno(1003); +ttcn3_debugger.breakpoint_entry(1003); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 1003 */ +{ +NAS__CommonTypeDefs::UE__SecurityCapability tmp_263; +return DEBUGGER_STORE_RETURN_VALUE(tmp_263, v__SecurityCapability); +} +} + +INTEGER f__NITZ__GetCurrentYear() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 1011, TTCN_Location::LOCATION_FUNCTION, "f_NITZ_GetCurrentYear"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_NITZ_GetCurrentYear", "function", "NAS_AuxiliaryDefsAndFunctions", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(1013); +ttcn3_debugger.breakpoint_entry(1013); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 1013 */ +CommonDefs::Struct__tm__Type v__LocalTime; +debug_scope.add_variable(&v__LocalTime, "v_LocalTime", "Struct_tm_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(1014); +ttcn3_debugger.breakpoint_entry(1014); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 1014 */ +INTEGER v__TimezoneSeconds; +debug_scope.add_variable(&v__TimezoneSeconds, "v_TimezoneSeconds", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1015); +ttcn3_debugger.breakpoint_entry(1015); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 1015 */ +CommonDefs::fx__GetSystemTime(v__LocalTime, v__TimezoneSeconds); +current_location.update_lineno(1016); +ttcn3_debugger.breakpoint_entry(1016); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 1016 */ +{ +INTEGER tmp_264; +return DEBUGGER_STORE_RETURN_VALUE(tmp_264, (const_cast< const CommonDefs::Struct__tm__Type&>(v__LocalTime).tm__year() + 1900)); +} +} + +OCTETSTRING f__NITZ__CurrentYear2Oct(const INTEGER& p__Year) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 1025, TTCN_Location::LOCATION_FUNCTION, "f_NITZ_CurrentYear2Oct"); +charstring_list param_names; +param_names[0] = "p_Year"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_NITZ_CurrentYear2Oct", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Year, "p_Year", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1027); +ttcn3_debugger.breakpoint_entry(1027); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 1027 */ +{ +OCTETSTRING tmp_265; +return DEBUGGER_STORE_RETURN_VALUE(tmp_265, hex2oct(CommonDefs::f__SwappedNibbles(p__Year))); +} +} + +CHARSTRING f__NITZ__CurrentYear2Str(const INTEGER& p__Year) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 1036, TTCN_Location::LOCATION_FUNCTION, "f_NITZ_CurrentYear2Str"); +charstring_list param_names; +param_names[0] = "p_Year"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_NITZ_CurrentYear2Str", "function", "NAS_AuxiliaryDefsAndFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Year, "p_Year", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1038); +ttcn3_debugger.breakpoint_entry(1038); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 1038 */ +{ +CHARSTRING tmp_266; +return DEBUGGER_STORE_RETURN_VALUE(tmp_266, int2str(mod(p__Year, 100))); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_AuxiliaryDefsAndFunctions"); +NAS__AuxiliaryDefsAndFunctions::init_ttcn3_debugger(); +NAS__CommonTemplates::module_object.pre_init_module(); +module_object.add_function("f_CheckPCOforIPallocationViaNas", (genericfunc_t)&f__CheckPCOforIPallocationViaNas, NULL); +module_object.add_function("f_CheckExtdPCOforIPallocationViaNas", (genericfunc_t)&f__CheckExtdPCOforIPallocationViaNas, NULL); +module_object.add_function("f_ProtocolConfigOptions_Get", (genericfunc_t)&f__ProtocolConfigOptions__Get, NULL); +module_object.add_function("f_ExtdProtocolConfigOptions_Get", (genericfunc_t)&f__ExtdProtocolConfigOptions__Get, NULL); +module_object.add_function("f_ProtocolConfigOptions_GetSessionId", (genericfunc_t)&f__ProtocolConfigOptions__GetSessionId, NULL); +module_object.add_function("f_ProtocolConfigOptions_GetQosFlowId", (genericfunc_t)&f__ProtocolConfigOptions__GetQosFlowId, NULL); +module_object.add_function("f_ExtdProtocolConfigOptions_GetSessionId", (genericfunc_t)&f__ExtdProtocolConfigOptions__GetSessionId, NULL); +module_object.add_function("f_ExtdProtocolConfigOptions_GetQosFlowId", (genericfunc_t)&f__ExtdProtocolConfigOptions__GetQosFlowId, NULL); +module_object.add_function("f_CheckPCOforProtocolID", (genericfunc_t)&f__CheckPCOforProtocolID, NULL); +module_object.add_function("f_CheckExtdPCOforProtocolID", (genericfunc_t)&f__CheckExtdPCOforProtocolID, NULL); +module_object.add_function("f_NAS_GetProtocolConfigOptionList", (genericfunc_t)&f__NAS__GetProtocolConfigOptionList, NULL); +module_object.add_function("f_GetDefaultProtocolConfigOptions", (genericfunc_t)&f__GetDefaultProtocolConfigOptions, NULL); +module_object.add_function("f_NAS_ExtdProtocolConfigOptionsTX", (genericfunc_t)&f__NAS__ExtdProtocolConfigOptionsTX, NULL); +module_object.add_function("f_GetDefaultExtdProtocolConfigOptions", (genericfunc_t)&f__GetDefaultExtdProtocolConfigOptions, NULL); +module_object.add_function("f_NAS_GetExtdProtocolConfigOptionList", (genericfunc_t)&f__NAS__GetExtdProtocolConfigOptionList, NULL); +module_object.add_function("f_GetMultiPdnIndex", (genericfunc_t)&f__GetMultiPdnIndex, NULL); +module_object.add_function("f_GetMultiPdnTypeFromIndex", (genericfunc_t)&f__GetMultiPdnTypeFromIndex, NULL); +module_object.add_function("f_GetPDN_DNNTypeFromAPN", (genericfunc_t)&f__GetPDN__DNNTypeFromAPN, NULL); +module_object.add_function("f_GetDNNStringFromPICS", (genericfunc_t)&f__GetDNNStringFromPICS, NULL); +module_object.add_function("f_GetDefaultAPN_DNNType_FromPICS", (genericfunc_t)&f__GetDefaultAPN__DNNType__FromPICS, NULL); +module_object.add_function("f_IsDNNForEmergency", (genericfunc_t)&f__IsDNNForEmergency, NULL); +module_object.add_function("f_APN_MccMncLabel", (genericfunc_t)&f__APN__MccMncLabel, NULL); +module_object.add_function("f_DomainName_EncodeLabels", (genericfunc_t)&f__DomainName__EncodeLabels, NULL); +module_object.add_function("f_DomainName_Encode", (genericfunc_t)&f__DomainName__Encode, NULL); +module_object.add_function("f_ImsiImei2Octetstring", (genericfunc_t)&f__ImsiImei2Octetstring, NULL); +module_object.add_function("f_Imsi2MobileIdentity", (genericfunc_t)&f__Imsi2MobileIdentity, NULL); +module_object.add_function("f_Imei2MobileIdentity", (genericfunc_t)&f__Imei2MobileIdentity, NULL); +module_object.add_function("f_Imeisv2MobileIdentity", (genericfunc_t)&f__Imeisv2MobileIdentity, NULL); +module_object.add_function("fl_EmgNum2Octetstring", (genericfunc_t)&fl__EmgNum2Octetstring, NULL); +module_object.add_function("f_Build_EmergNumList", (genericfunc_t)&f__Build__EmergNumList, NULL); +module_object.add_function("f_Build_ExtdEmergNumList", (genericfunc_t)&f__Build__ExtdEmergNumList, NULL); +module_object.add_function("f_Get_EmergencyNumList", (genericfunc_t)&f__Get__EmergencyNumList, NULL); +module_object.add_function("fl_CheckEmergencyNum", (genericfunc_t)&fl__CheckEmergencyNum, NULL); +module_object.add_function("f_AT_ResponseCheck", (genericfunc_t)&f__AT__ResponseCheck, NULL); +module_object.add_function("f_EPS_FillNAS_SecurityCapability_Common", (genericfunc_t)&f__EPS__FillNAS__SecurityCapability__Common, NULL); +module_object.add_function("f_NITZ_GetCurrentYear", (genericfunc_t)&f__NITZ__GetCurrentYear, NULL); +module_object.add_function("f_NITZ_CurrentYear2Oct", (genericfunc_t)&f__NITZ__CurrentYear2Oct, NULL); +module_object.add_function("f_NITZ_CurrentYear2Str", (genericfunc_t)&f__NITZ__CurrentYear2Str, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_AuxiliaryDefsAndFunctions"); +NAS__CommonTemplates::module_object.post_init_module(); +current_location.update_lineno(21); +ttcn3_debugger.breakpoint_entry(21); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 21 */ +const_cs__ExtdEmergNum_p__SubServices_defval = os_0; +current_location.update_lineno(272); +ttcn3_debugger.breakpoint_entry(272); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 272 */ +const_f__NAS__GetProtocolConfigOptionList_p__PdnIndex_defval = CommonDefs::PDN__Index__Type::PDN__1; +current_location.update_lineno(274); +ttcn3_debugger.breakpoint_entry(274); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 274 */ +const_f__NAS__GetProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval = TRUE; +current_location.update_lineno(331); +ttcn3_debugger.breakpoint_entry(331); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 331 */ +const_f__GetDefaultProtocolConfigOptions_p__PdnIndex_defval = CommonDefs::PDN__Index__Type::PDN__1; +current_location.update_lineno(375); +ttcn3_debugger.breakpoint_entry(375); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 375 */ +const_f__GetDefaultExtdProtocolConfigOptions_p__PdnIndex_defval = CommonDefs::PDN__Index__Type::PDN__1; +current_location.update_lineno(400); +ttcn3_debugger.breakpoint_entry(400); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 400 */ +const_f__NAS__GetExtdProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval = TRUE; +current_location.update_lineno(401); +ttcn3_debugger.breakpoint_entry(401); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 401 */ +const_f__NAS__GetExtdProtocolConfigOptionList_p__PdnIndex_defval = CommonDefs::PDN__Index__Type::PDN__1; +current_location.update_lineno(717); +ttcn3_debugger.breakpoint_entry(717); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 717 */ +const_f__Imei2MobileIdentity_p__NAS__IdType_defval = NAS__CommonTemplates::tsc__IdType__IMEI; +current_location.update_lineno(822); +ttcn3_debugger.breakpoint_entry(822); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 822 */ +const_f__Build__ExtdEmergNumList_p__EENLV_defval = bs_2; +current_location.update_lineno(823); +ttcn3_debugger.breakpoint_entry(823); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 823 */ +const_f__Build__ExtdEmergNumList_p__SubServices_defval = os_0; +current_location.update_lineno(907); +ttcn3_debugger.breakpoint_entry(907); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 907 */ +const_f__AT__ResponseCheck_p__Text_defval = cs_3; +current_location.update_lineno(908); +ttcn3_debugger.breakpoint_entry(908); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 908 */ +const_f__AT__ResponseCheck_p__Expression_defval = cs_7; +current_location.update_lineno(909); +ttcn3_debugger.breakpoint_entry(909); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_AuxiliaryDefsAndFunctions.ttcn, line 909 */ +const_f__AT__ResponseCheck_p__Group_defval = 0; +} + + +/* Bodies of static conversion functions */ + +static boolean conv_NAS__CommonTypeDefs_ExtdProtocolConfigOptions_pco_NAS__CommonTypeDefs_ProtocolConfigOptions_pco(NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p_to_v, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco_template& p_from_v) +{ +p_to_v.set_size(p_from_v.size_of()); +for (int i = 0; i < p_from_v.size_of(); i++) { +if (p_from_v[i].is_bound()) p_to_v[i] = p_from_v[i]; +} +return TRUE; +} + +static boolean conv_NAS__CommonTypeDefs_ExtdProtocolConfigOptions_pco_NAS__CommonTypeDefs_NAS__ExtdProtocolConfigOptions__Type(NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type& p_to_v, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco& p_from_v) +{ +p_to_v.set_size(p_from_v.size_of()); +for (int i = 0; i < p_from_v.size_of(); i++) { +if (p_from_v[i].is_bound()) p_to_v[i] = p_from_v[i]; +} +return TRUE; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NAS_AuxiliaryDefsAndFunctions.hh b/build/Ats_NG_NAS/NAS_AuxiliaryDefsAndFunctions.hh new file mode 100644 index 0000000000000000000000000000000000000000..89e4a7340057e8f532607bb78103f21ab95a0009 --- /dev/null +++ b/build/Ats_NG_NAS/NAS_AuxiliaryDefsAndFunctions.hh @@ -0,0 +1,109 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NAS__AuxiliaryDefsAndFunctions_HH +#define NAS__AuxiliaryDefsAndFunctions_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NAS_CommonTemplates.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace NAS__AuxiliaryDefsAndFunctions { + +/* Function prototypes */ + +extern NAS__CommonTypeDefs::ExtdEmergNum_template cs__ExtdEmergNum(const OCTETSTRING& p__Digits, const OCTETSTRING& p__SubServices); +extern BOOLEAN f__CheckPCOforIPallocationViaNas(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco); +extern BOOLEAN f__CheckExtdPCOforIPallocationViaNas(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco); +extern OCTETSTRING_template f__ProtocolConfigOptions__Get(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco, const OCTETSTRING& p__ProtocolID); +extern OCTETSTRING_template f__ExtdProtocolConfigOptions__Get(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco, const OCTETSTRING& p__ProtocolID); +extern INTEGER_template f__ProtocolConfigOptions__GetSessionId(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco); +extern INTEGER_template f__ProtocolConfigOptions__GetQosFlowId(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco); +extern INTEGER_template f__ExtdProtocolConfigOptions__GetSessionId(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco); +extern INTEGER_template f__ExtdProtocolConfigOptions__GetQosFlowId(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco); +extern BOOLEAN f__CheckPCOforProtocolID(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco, const OCTETSTRING& p__ProtocolID); +extern BOOLEAN f__CheckExtdPCOforProtocolID(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco, const OCTETSTRING& p__ProtocolID); +extern NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template f__NAS__GetProtocolConfigOptionList(const NAS__CommonTypeDefs::ProtocolConfigOptions_pco& p__ConfigOptionsRX, const CommonDefs::PDN__Index__Type& p__PdnIndex, const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p__AdditionalProtocolConfigOptions, const BOOLEAN& p__IgnoreIM__CN__SubsystemSignalingFlag); +extern NAS__CommonTypeDefs::ProtocolConfigOptions_template f__GetDefaultProtocolConfigOptions(const NAS__CommonTypeDefs::ProtocolConfigOptions_template& p__Pco, const CommonDefs::PDN__Index__Type& p__PdnIndex, const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p__AdditionalProtocolConfigOptions); +extern NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template f__NAS__ExtdProtocolConfigOptionsTX(const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template& p__ProtocolContainers); +extern NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template f__GetDefaultExtdProtocolConfigOptions(const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__Pco, const CommonDefs::PDN__Index__Type& p__PdnIndex); +extern NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template f__NAS__GetExtdProtocolConfigOptionList(const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type& p__ConfigOptionsRX, const BOOLEAN& p__IgnoreIM__CN__SubsystemSignalingFlag, const CommonDefs::PDN__Index__Type& p__PdnIndex); +extern CommonDefs::PDN__Index__Type f__GetMultiPdnIndex(const NAS__CommonTypeDefs::PDU__PDN__DNN__Type& p__DNNType); +extern NAS__CommonTypeDefs::PDU__PDN__DNN__Type f__GetMultiPdnTypeFromIndex(const CommonDefs::PDN__Index__Type& p__PDN__Index); +extern NAS__CommonTypeDefs::PDU__PDN__DNN__Type f__GetPDN__DNNTypeFromAPN(const OCTETSTRING& p__APN); +extern CHARSTRING f__GetDNNStringFromPICS(const NAS__CommonTypeDefs::PDU__PDN__DNN__Type& p__PDUType); +extern NAS__CommonTypeDefs::PDU__PDN__DNN__Type f__GetDefaultAPN__DNNType__FromPICS(); +extern BOOLEAN f__IsDNNForEmergency(const OCTETSTRING& p__DNNFromReq); +extern CHARSTRING f__APN__MccMncLabel(const CHARSTRING& p__MncMcc, const CHARSTRING& p__Digits); +extern OCTETSTRING f__DomainName__EncodeLabels(const CommonDefs::CharStringList__Type& p__LabelList); +extern OCTETSTRING f__DomainName__Encode(const CHARSTRING& p__DomainName); +extern OCTETSTRING f__ImsiImei2Octetstring(const HEXSTRING& p__MobileId); +extern NAS__CommonTypeDefs::MobileIdentity_template f__Imsi2MobileIdentity(const HEXSTRING& p__IMSI); +extern NAS__CommonTypeDefs::MobileIdentity_template f__Imei2MobileIdentity(const HEXSTRING& p__IMEI, const BITSTRING& p__NAS__IdType); +extern NAS__CommonTypeDefs::MobileIdentity_template f__Imeisv2MobileIdentity(const HEXSTRING& p__IMEISV); +extern OCTETSTRING fl__EmgNum2Octetstring(const HEXSTRING& p__EmgNum); +extern NAS__CommonTypeDefs::EmergNumList_template f__Build__EmergNumList(const INTEGER& p__NoOfNums, const NAS__CommonTypeDefs::EmergencyNumList& p__NumList); +extern NAS__CommonTypeDefs::ExtdEmergNumList_template f__Build__ExtdEmergNumList(const INTEGER& p__NoOfNums, const NAS__CommonTypeDefs::EmergencyNumList& p__NumList, const BITSTRING& p__EENLV, const OCTETSTRING& p__SubServices); +extern NAS__CommonTypeDefs::EmergencyNumList f__Get__EmergencyNumList(const INTEGER& p__NoOfNums, const NAS__CommonTypeDefs::EmergencyNumList& p__ExistingNums); +extern BOOLEAN fl__CheckEmergencyNum(const NAS__CommonTypeDefs::EmergencyNumList& p__ExistingNums, const HEXSTRING& p__NewNum); +extern void f__AT__ResponseCheck(const CHARSTRING& p__AT__Response, const CHARSTRING& p__ExpectedString, const CHARSTRING& p__Text, const CHARSTRING& p__Expression, const INTEGER& p__Group); +extern NAS__CommonTypeDefs::UE__SecurityCapability f__EPS__FillNAS__SecurityCapability__Common(const NAS__CommonTypeDefs::UE__NetworkCap& p__UeNetworkCapability, const NAS__CommonTypeDefs::MS__NetworkCap_template& p__MsNetworkCapability); +extern INTEGER f__NITZ__GetCurrentYear(); +extern OCTETSTRING f__NITZ__CurrentYear2Oct(const INTEGER& p__Year); +extern CHARSTRING f__NITZ__CurrentYear2Str(const INTEGER& p__Year); + +/* Global variable declarations */ + +extern Erroneous_descriptor_t* template_cs__ExtdEmergNum_err_descr_ptr; +extern const OCTETSTRING& cs__ExtdEmergNum_p__SubServices_defval; +extern OCTETSTRING const_cs__ExtdEmergNum_p__SubServices_defval; +extern const CommonDefs::PDN__Index__Type& f__NAS__GetProtocolConfigOptionList_p__PdnIndex_defval; +extern CommonDefs::PDN__Index__Type const_f__NAS__GetProtocolConfigOptionList_p__PdnIndex_defval; +extern const BOOLEAN& f__NAS__GetProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval; +extern BOOLEAN const_f__NAS__GetProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval; +extern const CommonDefs::PDN__Index__Type& f__GetDefaultProtocolConfigOptions_p__PdnIndex_defval; +extern CommonDefs::PDN__Index__Type const_f__GetDefaultProtocolConfigOptions_p__PdnIndex_defval; +extern const CommonDefs::PDN__Index__Type& f__GetDefaultExtdProtocolConfigOptions_p__PdnIndex_defval; +extern CommonDefs::PDN__Index__Type const_f__GetDefaultExtdProtocolConfigOptions_p__PdnIndex_defval; +extern const BOOLEAN& f__NAS__GetExtdProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval; +extern BOOLEAN const_f__NAS__GetExtdProtocolConfigOptionList_p__IgnoreIM__CN__SubsystemSignalingFlag_defval; +extern const CommonDefs::PDN__Index__Type& f__NAS__GetExtdProtocolConfigOptionList_p__PdnIndex_defval; +extern CommonDefs::PDN__Index__Type const_f__NAS__GetExtdProtocolConfigOptionList_p__PdnIndex_defval; +extern const BITSTRING& f__Imei2MobileIdentity_p__NAS__IdType_defval; +extern BITSTRING const_f__Imei2MobileIdentity_p__NAS__IdType_defval; +extern const BITSTRING& f__Build__ExtdEmergNumList_p__EENLV_defval; +extern BITSTRING const_f__Build__ExtdEmergNumList_p__EENLV_defval; +extern const OCTETSTRING& f__Build__ExtdEmergNumList_p__SubServices_defval; +extern OCTETSTRING const_f__Build__ExtdEmergNumList_p__SubServices_defval; +extern const CHARSTRING& f__AT__ResponseCheck_p__Text_defval; +extern CHARSTRING const_f__AT__ResponseCheck_p__Text_defval; +extern const CHARSTRING& f__AT__ResponseCheck_p__Expression_defval; +extern CHARSTRING const_f__AT__ResponseCheck_p__Expression_defval; +extern const INTEGER& f__AT__ResponseCheck_p__Group_defval; +extern INTEGER const_f__AT__ResponseCheck_p__Group_defval; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NAS_AuxiliaryDefsAndFunctions.o b/build/Ats_NG_NAS/NAS_AuxiliaryDefsAndFunctions.o new file mode 100644 index 0000000000000000000000000000000000000000..e083f6bcd690b59fc1248c409cd431c30fb19238 Binary files /dev/null and b/build/Ats_NG_NAS/NAS_AuxiliaryDefsAndFunctions.o differ diff --git a/build/Ats_NG_NAS/NAS_CommonTemplates.cc b/build/Ats_NG_NAS/NAS_CommonTemplates.cc new file mode 100644 index 0000000000000000000000000000000000000000..219766afa207a5ee6a4a5d54094d5f2214b40e91 --- /dev/null +++ b/build/Ats_NG_NAS/NAS_CommonTemplates.cc @@ -0,0 +1,7155 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NAS_CommonTemplates.hh" + +namespace NAS__CommonTemplates { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Prototypes of static conversion functions */ + +static boolean conv_NAS__CommonTypeDefs_NAS__ExtdProtocolConfigOptions__Type_NAS__CommonTypeDefs_ExtdProtocolConfigOptions_pco(NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco_template& p_to_v, const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template& p_from_v); + +/* Literal string constants */ + +static const unsigned char bs_0_bits[] = { 0 }, +bs_1_bits[] = { 0 }, +bs_2_bits[] = { 0 }, +bs_3_bits[] = { 0 }, +bs_4_bits[] = { 0 }, +bs_5_bits[] = { 0 }, +bs_6_bits[] = { 0 }, +bs_40_bits[] = { 0 }, +bs_53_bits[] = { 64 }, +bs_17_bits[] = { 192 }, +bs_52_bits[] = { 160 }, +bs_18_bits[] = { 96 }, +bs_51_bits[] = { 224 }, +bs_58_bits[] = { 144 }, +bs_25_bits[] = { 208 }, +bs_22_bits[] = { 48 }, +bs_24_bits[] = { 176 }, +bs_46_bits[] = { 240 }, +bs_7_bits[] = { 8 }, +bs_39_bits[] = { 8 }, +bs_19_bits[] = { 40 }, +bs_20_bits[] = { 168 }, +bs_21_bits[] = { 88 }, +bs_49_bits[] = { 56 }, +bs_12_bits[] = { 4 }, +bs_8_bits[] = { 4 }, +bs_48_bits[] = { 4 }, +bs_36_bits[] = { 4 }, +bs_9_bits[] = { 12 }, +bs_45_bits[] = { 44 }, +bs_26_bits[] = { 124 }, +bs_30_bits[] = { 2 }, +bs_13_bits[] = { 2 }, +bs_10_bits[] = { 2 }, +bs_37_bits[] = { 2 }, +bs_59_bits[] = { 162 }, +bs_42_bits[] = { 18 }, +bs_27_bits[] = { 114 }, +bs_11_bits[] = { 10 }, +bs_23_bits[] = { 250 }, +bs_14_bits[] = { 6 }, +bs_55_bits[] = { 6 }, +bs_47_bits[] = { 22 }, +bs_44_bits[] = { 118 }, +bs_38_bits[] = { 14 }, +bs_32_bits[] = { 1 }, +bs_31_bits[] = { 1 }, +bs_15_bits[] = { 1 }, +bs_56_bits[] = { 1 }, +bs_50_bits[] = { 1 }, +bs_43_bits[] = { 49 }, +bs_57_bits[] = { 9 }, +bs_41_bits[] = { 105 }, +bs_29_bits[] = { 5 }, +bs_33_bits[] = { 13 }, +bs_60_bits[] = { 3 }, +bs_16_bits[] = { 3 }, +bs_28_bits[] = { 7 }, +bs_34_bits[] = { 15 }, +bs_35_bits[] = { 31 }, +bs_54_bits[] = { 255 }; +static const BITSTRING bs_0(1, bs_0_bits), +bs_1(2, bs_1_bits), +bs_2(3, bs_2_bits), +bs_3(4, bs_3_bits), +bs_4(5, bs_4_bits), +bs_5(6, bs_5_bits), +bs_6(7, bs_6_bits), +bs_40(8, bs_40_bits), +bs_53(8, bs_53_bits), +bs_17(8, bs_17_bits), +bs_52(8, bs_52_bits), +bs_18(8, bs_18_bits), +bs_51(8, bs_51_bits), +bs_58(8, bs_58_bits), +bs_25(8, bs_25_bits), +bs_22(8, bs_22_bits), +bs_24(8, bs_24_bits), +bs_46(8, bs_46_bits), +bs_7(4, bs_7_bits), +bs_39(8, bs_39_bits), +bs_19(8, bs_19_bits), +bs_20(8, bs_20_bits), +bs_21(8, bs_21_bits), +bs_49(6, bs_49_bits), +bs_12(3, bs_12_bits), +bs_8(4, bs_8_bits), +bs_48(6, bs_48_bits), +bs_36(8, bs_36_bits), +bs_9(4, bs_9_bits), +bs_45(6, bs_45_bits), +bs_26(8, bs_26_bits), +bs_30(2, bs_30_bits), +bs_13(3, bs_13_bits), +bs_10(4, bs_10_bits), +bs_37(8, bs_37_bits), +bs_59(8, bs_59_bits), +bs_42(8, bs_42_bits), +bs_27(8, bs_27_bits), +bs_11(4, bs_11_bits), +bs_23(8, bs_23_bits), +bs_14(3, bs_14_bits), +bs_55(4, bs_55_bits), +bs_47(8, bs_47_bits), +bs_44(8, bs_44_bits), +bs_38(4, bs_38_bits), +bs_32(1, bs_32_bits), +bs_31(2, bs_31_bits), +bs_15(3, bs_15_bits), +bs_56(4, bs_56_bits), +bs_50(5, bs_50_bits), +bs_43(8, bs_43_bits), +bs_57(4, bs_57_bits), +bs_41(8, bs_41_bits), +bs_29(3, bs_29_bits), +bs_33(4, bs_33_bits), +bs_60(2, bs_60_bits), +bs_16(3, bs_16_bits), +bs_28(3, bs_28_bits), +bs_34(4, bs_34_bits), +bs_35(5, bs_35_bits), +bs_54(8, bs_54_bits); +static const unsigned char bp_0_elements[] = { 1, 2, 2, 2, 2, 2, 2, 2 }, +bp_1_elements[] = { 2, 2, 1, 2, 2, 2, 2, 2 }; +static const BITSTRING_template bp_0(8, bp_0_elements), +bp_1(8, bp_1_elements); +static const unsigned char hs_0_nibbles[] = { 0 }, +hs_3_nibbles[] = { 1 }, +hs_4_nibbles[] = { 2 }, +hs_5_nibbles[] = { 3 }, +hs_6_nibbles[] = { 4 }, +hs_7_nibbles[] = { 5 }, +hs_2_nibbles[] = { 9 }, +hs_8_nibbles[] = { 11 }, +hs_9_nibbles[] = { 12 }, +hs_1_nibbles[] = { 15 }; +static const HEXSTRING hs_0(1, hs_0_nibbles), +hs_3(1, hs_3_nibbles), +hs_4(1, hs_4_nibbles), +hs_5(1, hs_5_nibbles), +hs_6(1, hs_6_nibbles), +hs_7(1, hs_7_nibbles), +hs_2(1, hs_2_nibbles), +hs_8(1, hs_8_nibbles), +hs_9(1, hs_9_nibbles), +hs_1(1, hs_1_nibbles); +static const unsigned char os_4_octets[] = { 0 }, +os_51_octets[] = { 0, 0, 5 }, +os_0_octets[] = { 0, 7 }, +os_1_octets[] = { 0, 9 }, +os_5_octets[] = { 1 }, +os_18_octets[] = { 2 }, +os_24_octets[] = { 3 }, +os_22_octets[] = { 5 }, +os_6_octets[] = { 5, 65, 80, 78, 45, 49 }, +os_7_octets[] = { 5, 65, 80, 78, 45, 50 }, +os_8_octets[] = { 5, 65, 80, 78, 45, 51 }, +os_38_octets[] = { 6 }, +os_55_octets[] = { 9 }, +os_11_octets[] = { 14 }, +os_48_octets[] = { 15, 128, 240, 0 }, +os_14_octets[] = { 16 }, +os_37_octets[] = { 17 }, +os_20_octets[] = { 19 }, +os_21_octets[] = { 23 }, +os_23_octets[] = { 24 }, +os_31_octets[] = { 25 }, +os_15_octets[] = { 32 }, +os_13_octets[] = { 33 }, +os_12_octets[] = { 34 }, +os_29_octets[] = { 39 }, +os_9_octets[] = { 40 }, +os_54_octets[] = { 41 }, +os_10_octets[] = { 48 }, +os_25_octets[] = { 49 }, +os_39_octets[] = { 50 }, +os_26_octets[] = { 51 }, +os_27_octets[] = { 52 }, +os_53_octets[] = { 53 }, +os_36_octets[] = { 58 }, +os_16_octets[] = { 64 }, +os_17_octets[] = { 65 }, +os_34_octets[] = { 70 }, +os_33_octets[] = { 71 }, +os_35_octets[] = { 73 }, +os_28_octets[] = { 74 }, +os_40_octets[] = { 80 }, +os_41_octets[] = { 81 }, +os_56_octets[] = { 91 }, +os_52_octets[] = { 92 }, +os_43_octets[] = { 96 }, +os_32_octets[] = { 109 }, +os_19_octets[] = { 110 }, +os_42_octets[] = { 112 }, +os_30_octets[] = { 123 }, +os_44_octets[] = { 128 }, +os_49_octets[] = { 160, 252 }, +os_47_octets[] = { 168, 252 }, +os_50_octets[] = { 176, 252 }, +os_45_octets[] = { 255, 255, 255, 0 }, +os_2_octets[] = { 255, 255, 255, 255 }, +os_46_octets[] = { 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_3_octets[] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }; +static const OCTETSTRING os_4(1, os_4_octets), +os_51(3, os_51_octets), +os_0(2, os_0_octets), +os_1(2, os_1_octets), +os_5(1, os_5_octets), +os_18(1, os_18_octets), +os_24(1, os_24_octets), +os_22(1, os_22_octets), +os_6(6, os_6_octets), +os_7(6, os_7_octets), +os_8(6, os_8_octets), +os_38(1, os_38_octets), +os_55(1, os_55_octets), +os_11(1, os_11_octets), +os_48(4, os_48_octets), +os_14(1, os_14_octets), +os_37(1, os_37_octets), +os_20(1, os_20_octets), +os_21(1, os_21_octets), +os_23(1, os_23_octets), +os_31(1, os_31_octets), +os_15(1, os_15_octets), +os_13(1, os_13_octets), +os_12(1, os_12_octets), +os_29(1, os_29_octets), +os_9(1, os_9_octets), +os_54(1, os_54_octets), +os_10(1, os_10_octets), +os_25(1, os_25_octets), +os_39(1, os_39_octets), +os_26(1, os_26_octets), +os_27(1, os_27_octets), +os_53(1, os_53_octets), +os_36(1, os_36_octets), +os_16(1, os_16_octets), +os_17(1, os_17_octets), +os_34(1, os_34_octets), +os_33(1, os_33_octets), +os_35(1, os_35_octets), +os_28(1, os_28_octets), +os_40(1, os_40_octets), +os_41(1, os_41_octets), +os_56(1, os_56_octets), +os_52(1, os_52_octets), +os_43(1, os_43_octets), +os_32(1, os_32_octets), +os_19(1, os_19_octets), +os_42(1, os_42_octets), +os_30(1, os_30_octets), +os_44(1, os_44_octets), +os_49(2, os_49_octets), +os_47(2, os_47_octets), +os_50(2, os_50_octets), +os_45(4, os_45_octets), +os_2(4, os_2_octets), +os_46(16, os_46_octets), +os_3(16, os_3_octets); +static const CHARSTRING cs_15(0, NULL), +cs_22('"'), +cs_20(','), +cs_21(2, ",\""), +cs_3(61, "/home/yanng/dev/nas/ttcn/Lib3GPP/NAS/NAS_CommonTemplates.ttcn"), +cs_5(11, "172.168.8.0"), +cs_14(3, "1E1"), +cs_8(3, "1E2"), +cs_10(3, "1E3"), +cs_11(3, "1E4"), +cs_12(3, "1E5"), +cs_13(3, "1E6"), +cs_6(11, "2001:0ba0::"), +cs_18(3, "4E3"), +cs_16(3, "5E2"), +cs_17(3, "5E3"), +cs_19(3, "6E8"), +cs_9(3, "7E3"), +cs_0(5, "APN-1"), +cs_1(5, "APN-2"), +cs_2(5, "APN-3"), +cs_4(50, "Unexpected Packing for conversion to Coding Scheme"), +cs_23(22, "invalid bearer context"), +cs_7(28, "unsupported packet filter id"); +static const unsigned char module_checksum[] = { 0x68, 0xf8, 0xfe, 0xd4, 0xd0, 0xae, 0x77, 0x52, 0x5c, 0x2e, 0x2d, 0x44, 0x57, 0x4f, 0xa3, 0xc3 }; + +/* Global variable definitions */ + +BITSTRING const_tsc__Spare1; +const BITSTRING& tsc__Spare1 = const_tsc__Spare1; +BITSTRING const_tsc__Spare2; +const BITSTRING& tsc__Spare2 = const_tsc__Spare2; +BITSTRING const_tsc__Spare3; +const BITSTRING& tsc__Spare3 = const_tsc__Spare3; +BITSTRING const_tsc__Spare4; +const BITSTRING& tsc__Spare4 = const_tsc__Spare4; +BITSTRING const_tsc__Spare5; +const BITSTRING& tsc__Spare5 = const_tsc__Spare5; +BITSTRING const_tsc__Spare6; +const BITSTRING& tsc__Spare6 = const_tsc__Spare6; +BITSTRING const_tsc__Spare7; +const BITSTRING& tsc__Spare7 = const_tsc__Spare7; +HEXSTRING const_tsc__SpareHalfOctet; +const HEXSTRING& tsc__SpareHalfOctet = const_tsc__SpareHalfOctet; +BITSTRING const_tsc__SHT__NoSecurityProtection; +const BITSTRING& tsc__SHT__NoSecurityProtection = const_tsc__SHT__NoSecurityProtection; +BITSTRING const_tsc__SHT__IntegrityProtected; +const BITSTRING& tsc__SHT__IntegrityProtected = const_tsc__SHT__IntegrityProtected; +BITSTRING const_tsc__SHT__IntegrityProtected__Ciphered; +const BITSTRING& tsc__SHT__IntegrityProtected__Ciphered = const_tsc__SHT__IntegrityProtected__Ciphered; +BITSTRING const_tsc__SHT__IntegrityProtected__NewSecurityContext; +const BITSTRING& tsc__SHT__IntegrityProtected__NewSecurityContext = const_tsc__SHT__IntegrityProtected__NewSecurityContext; +BITSTRING const_tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext; +const BITSTRING& tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext = const_tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext; +BITSTRING const_tsc__SHT__IntegrityProtected__PartiallyCiphered; +const BITSTRING& tsc__SHT__IntegrityProtected__PartiallyCiphered = const_tsc__SHT__IntegrityProtected__PartiallyCiphered; +BITSTRING const_tsc__IdType__IMSI; +const BITSTRING& tsc__IdType__IMSI = const_tsc__IdType__IMSI; +BITSTRING const_tsc__IdType__IMEI; +const BITSTRING& tsc__IdType__IMEI = const_tsc__IdType__IMEI; +BITSTRING const_tsc__IdType__IMEI__24301; +const BITSTRING& tsc__IdType__IMEI__24301 = const_tsc__IdType__IMEI__24301; +BITSTRING const_tsc__IdType__IMEISV; +const BITSTRING& tsc__IdType__IMEISV = const_tsc__IdType__IMEISV; +BITSTRING const_tsc__IdType__TMSI; +const BITSTRING& tsc__IdType__TMSI = const_tsc__IdType__TMSI; +BITSTRING const_tsc__IdType__GUTI; +const BITSTRING& tsc__IdType__GUTI = const_tsc__IdType__GUTI; +BITSTRING const_tsc__IMEISV__Requested; +const BITSTRING& tsc__IMEISV__Requested = const_tsc__IMEISV__Requested; +BITSTRING const_tsc__EmmCause__IllegalUe; +const BITSTRING& tsc__EmmCause__IllegalUe = const_tsc__EmmCause__IllegalUe; +BITSTRING const_tsc__EmmCause__IllegalMe; +const BITSTRING& tsc__EmmCause__IllegalMe = const_tsc__EmmCause__IllegalMe; +BITSTRING const_tsc__Cause__MAC__Failure; +const BITSTRING& tsc__Cause__MAC__Failure = const_tsc__Cause__MAC__Failure; +BITSTRING const_tsc__Cause__SQN__Failure; +const BITSTRING& tsc__Cause__SQN__Failure = const_tsc__Cause__SQN__Failure; +BITSTRING const_tsc__Cause__nonEPS__AuthUnacceptable; +const BITSTRING& tsc__Cause__nonEPS__AuthUnacceptable = const_tsc__Cause__nonEPS__AuthUnacceptable; +BITSTRING const_tsc__Cause__TA__NotAllowed; +const BITSTRING& tsc__Cause__TA__NotAllowed = const_tsc__Cause__TA__NotAllowed; +BITSTRING const_tsc__EmmCause__SemanticallyIncorrect; +const BITSTRING& tsc__EmmCause__SemanticallyIncorrect = const_tsc__EmmCause__SemanticallyIncorrect; +BITSTRING const_tsc__Cause__Roaming__NotAllowed; +const BITSTRING& tsc__Cause__Roaming__NotAllowed = const_tsc__Cause__Roaming__NotAllowed; +BITSTRING const_tsc__Cause__PLMN__NotAllowed; +const BITSTRING& tsc__Cause__PLMN__NotAllowed = const_tsc__Cause__PLMN__NotAllowed; +BITSTRING const_tsc__Cause__NoNetworkSlices__Available; +const BITSTRING& tsc__Cause__NoNetworkSlices__Available = const_tsc__Cause__NoNetworkSlices__Available; +BITSTRING const_tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation; +const BITSTRING& tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation = const_tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation; +BITSTRING const_tsc__NasKsi__NoKey; +const BITSTRING& tsc__NasKsi__NoKey = const_tsc__NasKsi__NoKey; +BITSTRING const_tsc__NoValidTmsi; +const BITSTRING& tsc__NoValidTmsi = const_tsc__NoValidTmsi; +BITSTRING const_tsc__GprsTimerUnit__2sec; +const BITSTRING& tsc__GprsTimerUnit__2sec = const_tsc__GprsTimerUnit__2sec; +BITSTRING const_tsc__GprsTimerUnit__1min; +const BITSTRING& tsc__GprsTimerUnit__1min = const_tsc__GprsTimerUnit__1min; +BITSTRING const_tsc__Gprs3TimerUnit__1min; +const BITSTRING& tsc__Gprs3TimerUnit__1min = const_tsc__Gprs3TimerUnit__1min; +BITSTRING const_tsc__GprsTimerUnit__6min; +const BITSTRING& tsc__GprsTimerUnit__6min = const_tsc__GprsTimerUnit__6min; +BITSTRING const_tsc__Gprs3TimerUnit__30sec; +const BITSTRING& tsc__Gprs3TimerUnit__30sec = const_tsc__Gprs3TimerUnit__30sec; +BITSTRING const_tsc__GprsTimerUnit__deact; +const BITSTRING& tsc__GprsTimerUnit__deact = const_tsc__GprsTimerUnit__deact; +OCTETSTRING const_tsc__PCO__Id__DSMIPv6; +const OCTETSTRING& tsc__PCO__Id__DSMIPv6 = const_tsc__PCO__Id__DSMIPv6; +OCTETSTRING const_tsc__PCO__Id__DSMIPv6__IPv4; +const OCTETSTRING& tsc__PCO__Id__DSMIPv6__IPv4 = const_tsc__PCO__Id__DSMIPv6__IPv4; +OCTETSTRING const_tsc__IPv4Mask; +const OCTETSTRING& tsc__IPv4Mask = const_tsc__IPv4Mask; +OCTETSTRING const_tsc__IPv6Mask; +const OCTETSTRING& tsc__IPv6Mask = const_tsc__IPv6Mask; +BITSTRING const_tsc__NonConsecutiveTacs; +const BITSTRING& tsc__NonConsecutiveTacs = const_tsc__NonConsecutiveTacs; +BITSTRING const_tsc__ConsecutiveTacs; +const BITSTRING& tsc__ConsecutiveTacs = const_tsc__ConsecutiveTacs; +BITSTRING const_tsc__MultiplePlmns; +const BITSTRING& tsc__MultiplePlmns = const_tsc__MultiplePlmns; +BITSTRING const_tsc__PdnType__IPv4; +const BITSTRING& tsc__PdnType__IPv4 = const_tsc__PdnType__IPv4; +BITSTRING const_tsc__PdnType__IPv6; +const BITSTRING& tsc__PdnType__IPv6 = const_tsc__PdnType__IPv6; +BITSTRING const_tsc__PdnType__IPv4v6; +const BITSTRING& tsc__PdnType__IPv4v6 = const_tsc__PdnType__IPv4v6; +OCTETSTRING const_tsc__PTI__Unassigned; +const OCTETSTRING& tsc__PTI__Unassigned = const_tsc__PTI__Unassigned; +OCTETSTRING const_tsc__PTI__1; +const OCTETSTRING& tsc__PTI__1 = const_tsc__PTI__1; +BITSTRING const_tsc__PayloadContainerESMMsg; +const BITSTRING& tsc__PayloadContainerESMMsg = const_tsc__PayloadContainerESMMsg; +OCTETSTRING const_tsc__APN1; +const OCTETSTRING& tsc__APN1 = const_tsc__APN1; +CHARSTRING const_tsc__APN1__String; +const CHARSTRING& tsc__APN1__String = const_tsc__APN1__String; +OCTETSTRING const_tsc__APN2; +const OCTETSTRING& tsc__APN2 = const_tsc__APN2; +CHARSTRING const_tsc__APN2__String; +const CHARSTRING& tsc__APN2__String = const_tsc__APN2__String; +OCTETSTRING const_tsc__APN3; +const OCTETSTRING& tsc__APN3 = const_tsc__APN3; +CHARSTRING const_tsc__APN3__String; +const CHARSTRING& tsc__APN3__String = const_tsc__APN3__String; +Erroneous_descriptor_t* template_cs__AccessPointName_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__AccessPointName_err_descr_ptr = NULL; +NAS__CommonTypeDefs::AccessPointName_template template_cr__AccessPointName__Any; +const NAS__CommonTypeDefs::AccessPointName_template& cr__AccessPointName__Any = template_cr__AccessPointName__Any; +NAS__CommonTypeDefs::AdditionalUpdateType_template template_cr__AdditionalUpdateTypeAny; +const NAS__CommonTypeDefs::AdditionalUpdateType_template& cr__AdditionalUpdateTypeAny = template_cr__AdditionalUpdateTypeAny; +NAS__CommonTypeDefs::AuthenticationFailureParameter_template template_cr__AuthFailParam__Any; +const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& cr__AuthFailParam__Any = template_cr__AuthFailParam__Any; +NAS__CommonTypeDefs::AuthenticationFailureParameter_template template_cdr__AuthFailParamGSM__Any; +const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& cdr__AuthFailParamGSM__Any = template_cdr__AuthFailParamGSM__Any; +Erroneous_descriptor_t* template_cs__RAND__v_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__GMM__AuthRAND_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__AUTN__lv_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__GSM__AUTN_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__GMM__AUTN_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__CiphKeySeqNum_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__CiphKeySeqNum_err_descr_ptr = NULL; +NAS__CommonTypeDefs::Codec_template template_cr__CodecAny; +const NAS__CommonTypeDefs::Codec_template& cr__CodecAny = template_cr__CodecAny; +NAS__CommonTypeDefs::CodecList_template template_cr__CodecListAny; +const NAS__CommonTypeDefs::CodecList_template& cr__CodecListAny = template_cr__CodecListAny; +Erroneous_descriptor_t* template_cs__Dcn__Id_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__DetachType_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__DetachType_err_descr_ptr = NULL; +NAS__CommonTypeDefs::DetachType_template template_cr__DetachTypeOnSwitchOff; +const NAS__CommonTypeDefs::DetachType_template& cr__DetachTypeOnSwitchOff = template_cr__DetachTypeOnSwitchOff; +Erroneous_descriptor_t* template_cr__DeviceProperties_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__DRXparameter__Any_err_descr_ptr = NULL; +NAS__CommonTypeDefs::EDGE__Struct_template template_cr__EDGE__Struct__Any; +const NAS__CommonTypeDefs::EDGE__Struct_template& cr__EDGE__Struct__Any = template_cr__EDGE__Struct__Any; +Erroneous_descriptor_t* template_cr__EmergServCat_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__EmergServCat_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__EmergencyLocalNumber_err_descr_ptr = NULL; +NAS__CommonTypeDefs::ExtdDRXParams_template template_cr__ExtdDRXParamsAny; +const NAS__CommonTypeDefs::ExtdDRXParams_template& cr__ExtdDRXParamsAny = template_cr__ExtdDRXParamsAny; +Erroneous_descriptor_t* template_cs__GprsTimer__tv_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__GprsTimer__v_err_descr_ptr = NULL; +NAS__CommonTypeDefs::GPRS__Timer_template template_cs__GprsTimer__v__deact; +const NAS__CommonTypeDefs::GPRS__Timer_template& cs__GprsTimer__v__deact = template_cs__GprsTimer__v__deact; +Erroneous_descriptor_t* template_cs__IdentityType_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__LAI_err_descr_ptr = NULL; +NAS__CommonTypeDefs::LocAreaId_template template_cr__LAI__Any; +const NAS__CommonTypeDefs::LocAreaId_template& cr__LAI__Any = template_cr__LAI__Any; +NAS__CommonTypeDefs::LocAreaId_template template_cr__LAI__Any__v; +const NAS__CommonTypeDefs::LocAreaId_template& cr__LAI__Any__v = template_cr__LAI__Any__v; +Erroneous_descriptor_t* template_cs__LAI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__LLC__SAPI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__LLC__SAPI__11_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__LLC__SAPI__03_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__MobileIdAny_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__MobileIdentityGuti_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__MobileIdentityImsi_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cds__MobileIdentityImsi__lv_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__MobileIdTMSIorPTMSI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__MobileIdTMSI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__MobileIdTMSI__lv_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cdr__MobileIdTMSI__tlv_err_descr_ptr = NULL; +OCTETSTRING const_cdr__MobileIdTMSI__tlv_p__IEI_defval; +const OCTETSTRING& cdr__MobileIdTMSI__tlv_p__IEI_defval = const_cdr__MobileIdTMSI__tlv_p__IEI_defval; +Erroneous_descriptor_t* template_cr__MobileIdentityImei_err_descr_ptr = NULL; +BITSTRING const_cr__MobileIdentityImei_p__NAS__IdType_defval; +const BITSTRING& cr__MobileIdentityImei_p__NAS__IdType_defval = const_cr__MobileIdentityImei_p__NAS__IdType_defval; +Erroneous_descriptor_t* template_cr__MobileIdentityImeisv_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__MS__Clsmk2__Any__tlv_err_descr_ptr = NULL; +NAS__CommonTypeDefs::MS__Clsmk2_template template_cr__MS__Clsmk2__Any; +const NAS__CommonTypeDefs::MS__Clsmk2_template& cr__MS__Clsmk2__Any = template_cr__MS__Clsmk2__Any; +NAS__CommonTypeDefs::MS__Clsmk3_template template_cr__MSCLSMK3__Any; +const NAS__CommonTypeDefs::MS__Clsmk3_template& cr__MSCLSMK3__Any = template_cr__MSCLSMK3__Any; +Erroneous_descriptor_t* template_cdr__MSCLSMK3__EutraCheck_err_descr_ptr = NULL; +NAS__CommonTypeDefs::MS__MeasCapability_template template_cr__MS__MeasCapability__Any; +const NAS__CommonTypeDefs::MS__MeasCapability_template& cr__MS__MeasCapability__Any = template_cr__MS__MeasCapability__Any; +NAS__CommonTypeDefs::MS__NetworkCap_template template_cr__MS__NetworkCap__Any; +const NAS__CommonTypeDefs::MS__NetworkCap_template& cr__MS__NetworkCap__Any = template_cr__MS__NetworkCap__Any; +NAS__CommonTypeDefs::MS__NetworkCap_template template_cdr__MS__NetworkCapAss__lv; +const NAS__CommonTypeDefs::MS__NetworkCap_template& cdr__MS__NetworkCapAss__lv = template_cdr__MS__NetworkCapAss__lv; +Erroneous_descriptor_t* template_cr__MS__NetworkFeatureSupport_err_descr_ptr = NULL; +NAS__CommonTypeDefs::NBIFOMContainer_template template_cr__NBIFOMContainerAny; +const NAS__CommonTypeDefs::NBIFOMContainer_template& cr__NBIFOMContainerAny = template_cr__NBIFOMContainerAny; +Erroneous_descriptor_t* template_cr__NwkResourceIdAny_err_descr_ptr = NULL; +OCTETSTRING const_cr__NwkResourceIdAny_p__IEI_defval; +const OCTETSTRING& cr__NwkResourceIdAny_p__IEI_defval = const_cr__NwkResourceIdAny_p__IEI_defval; +NAS__CommonTypeDefs::PacketFlowIdentifier_template template_cs__PktFlowId; +const NAS__CommonTypeDefs::PacketFlowIdentifier_template& cs__PktFlowId = template_cs__PktFlowId; +Erroneous_descriptor_t* template_cs__PLMN__List_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PLMN__List__1PLMN_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PLMN__List__2PLMNs_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PLMN__List__3PLMNs_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PLMN__List__4PLMNs_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__ProtocolContainer__Common_err_descr_ptr = NULL; +INTEGER const_cs__ProtocolContainer__Common_p__ContainerLength_defval; +const INTEGER& cs__ProtocolContainer__Common_p__ContainerLength_defval = const_cs__ProtocolContainer__Common_p__ContainerLength_defval; +Erroneous_descriptor_t* template_cs__ProtocolContainer_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__ProtocolConfigOptions__Common_err_descr_ptr = NULL; +OCTETSTRING const_cs__ProtocolConfigOptions__Common_p__Type4Length_defval; +const OCTETSTRING& cs__ProtocolConfigOptions__Common_p__Type4Length_defval = const_cs__ProtocolConfigOptions__Common_p__Type4Length_defval; +NAS__CommonTypeDefs::ProtocolConfigOptions_template template_cs__ProtocolConfigOptions__PPP; +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& cs__ProtocolConfigOptions__PPP = template_cs__ProtocolConfigOptions__PPP; +Erroneous_descriptor_t* template_cs__ProtocolConfigOptions__OneOption_err_descr_ptr = NULL; +NAS__CommonTypeDefs::ProtocolConfigOptions_template template_cr__ProtocolConfigOptionsAny; +const NAS__CommonTypeDefs::ProtocolConfigOptions_template& cr__ProtocolConfigOptionsAny = template_cr__ProtocolConfigOptionsAny; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template template_cr__ExtdPCOAny; +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& cr__ExtdPCOAny = template_cr__ExtdPCOAny; +Erroneous_descriptor_t* template_cs__PTMSI__Signature_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__PTMSI__Signature_err_descr_ptr = NULL; +NAS__CommonTypeDefs::PTMSI__Signature_template template_cr__PTMSI__SignatureAny; +const NAS__CommonTypeDefs::PTMSI__Signature_template& cr__PTMSI__SignatureAny = template_cr__PTMSI__SignatureAny; +NAS__CommonTypeDefs::PTMSI__Signature_template template_cr__PTMSI__Signature2Any; +const NAS__CommonTypeDefs::PTMSI__Signature_template& cr__PTMSI__Signature2Any = template_cr__PTMSI__Signature2Any; +NAS__CommonTypeDefs::QualityOfService_template template_cs__QoS__Negotiated__1; +const NAS__CommonTypeDefs::QualityOfService_template& cs__QoS__Negotiated__1 = template_cs__QoS__Negotiated__1; +NAS__CommonTypeDefs::QualityOfService_template template_cds__QoS__Negotiated__2; +const NAS__CommonTypeDefs::QualityOfService_template& cds__QoS__Negotiated__2 = template_cds__QoS__Negotiated__2; +NAS__CommonTypeDefs::QualityOfService_template template_cds__QoS__Negotiated__3; +const NAS__CommonTypeDefs::QualityOfService_template& cds__QoS__Negotiated__3 = template_cds__QoS__Negotiated__3; +Erroneous_descriptor_t* template_cds__QoS__Negotiated__4_err_descr_ptr = NULL; +NAS__CommonTypeDefs::QualityOfService_template template_cds__QoS__Negotiated__8; +const NAS__CommonTypeDefs::QualityOfService_template& cds__QoS__Negotiated__8 = template_cds__QoS__Negotiated__8; +Erroneous_descriptor_t* template_cs__QoS__PDP2_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cds__QoS__PDP3_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cds__QoS__Converstational_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__Tft_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__TrafficFlowTemplate_err_descr_ptr = NULL; +NAS__CommonTypeDefs::UE__Status_template template_cr__UEStatus__Any; +const NAS__CommonTypeDefs::UE__Status_template& cr__UEStatus__Any = template_cr__UEStatus__Any; +Erroneous_descriptor_t* template_cs__RadioPriority_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__RadioPriorityHigh_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__RadioPriorityLow_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__TMSI__Status_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__UENetworkCap__Any_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cdr__NR5GC__UENetworkCap_err_descr_ptr = NULL; +NAS__CommonTypeDefs::VoiceDomainPref_template template_cr__VoiceDomainPref__Any; +const NAS__CommonTypeDefs::VoiceDomainPref_template& cr__VoiceDomainPref__Any = template_cr__VoiceDomainPref__Any; +Erroneous_descriptor_t* template_cs__GPRS__Timer2__3__IEI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__GprsTimer3_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__GPRS__Timer2__3_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__TimeZoneAndTime_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__TimeZone_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NetworkName_err_descr_ptr = NULL; +CommonDefs::Gsm7BitPacking__Type const_cs__NetworkName_p__Packing_defval; +const CommonDefs::Gsm7BitPacking__Type& cs__NetworkName_p__Packing_defval = const_cs__NetworkName_p__Packing_defval; +BITSTRING const_cs__NetworkName_p__AddCI_defval; +const BITSTRING& cs__NetworkName_p__AddCI_defval = const_cs__NetworkName_p__AddCI_defval; +Erroneous_descriptor_t* template_cs__DaylightSavingTime__tlv_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PktFilterCompIPv4RemoteAddress_err_descr_ptr = NULL; +OCTETSTRING const_cs__PktFilterCompIPv4RemoteAddress_p__Mask_defval; +const OCTETSTRING& cs__PktFilterCompIPv4RemoteAddress_p__Mask_defval = const_cs__PktFilterCompIPv4RemoteAddress_p__Mask_defval; +Erroneous_descriptor_t* template_cs__PktFilterCompIPv6RemoteAddress_err_descr_ptr = NULL; +OCTETSTRING const_cs__PktFilterCompIPv6RemoteAddress_p__Mask_defval; +const OCTETSTRING& cs__PktFilterCompIPv6RemoteAddress_p__Mask_defval = const_cs__PktFilterCompIPv6RemoteAddress_p__Mask_defval; +Erroneous_descriptor_t* template_cs__PktFilterCompProtocolIdNextHeader_err_descr_ptr = NULL; +NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderICMP; +const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderICMP = template_cs__PktFilterCompProtocolIdNextHeaderICMP; +NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderICMPv6; +const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderICMPv6 = template_cs__PktFilterCompProtocolIdNextHeaderICMPv6; +NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderUDP; +const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderUDP = template_cs__PktFilterCompProtocolIdNextHeaderUDP; +NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderTCP; +const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderTCP = template_cs__PktFilterCompProtocolIdNextHeaderTCP; +NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderIPSec; +const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderIPSec = template_cs__PktFilterCompProtocolIdNextHeaderIPSec; +Erroneous_descriptor_t* template_cs__PktFilterCompSingleLocalPort_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PktFilterCompLocalPortRange_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PktFilterCompSingleRemotePort_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PktFilterCompRemotePortRange_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PktFilterCompTOSTrafficClass_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PktFilterCompIPSecSPI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PktFilterCompFlowLabel_err_descr_ptr = NULL; +NAS__CommonTypeDefs::Extd__EPS__QOS_template template_cr__Extd__EPS__QOS__Any; +const NAS__CommonTypeDefs::Extd__EPS__QOS_template& cr__Extd__EPS__QOS__Any = template_cr__Extd__EPS__QOS__Any; +BITSTRING const_tsc__NasKsi__NativeSecurityContext; +const BITSTRING& tsc__NasKsi__NativeSecurityContext = const_tsc__NasKsi__NativeSecurityContext; +BITSTRING const_tsc__NasKsi__MappedSecurityContext; +const BITSTRING& tsc__NasKsi__MappedSecurityContext = const_tsc__NasKsi__MappedSecurityContext; +Erroneous_descriptor_t* template_cs__NAS__KeySetIdentifier__lv_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NAS__KeySetIdentifier_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cdr__NAS__KeySetIdentifier__tlv_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__AuthenticationResponseParameter__lv_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__IMEISV__Request__WithIEI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NAS__SecurityAlgorithms_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__ExtdPCO_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__DRXParamCommonAny_err_descr_ptr = NULL; +NAS__CommonTypeDefs::WUSAssistInfo_template template_cr__WUSAssistInfoAny; +const NAS__CommonTypeDefs::WUSAssistInfo_template& cr__WUSAssistInfoAny = template_cr__WUSAssistInfoAny; +NAS__CommonTypeDefs::WusInfoType_template template_cr__WusInfoTypeAny; +const NAS__CommonTypeDefs::WusInfoType_template& cr__WusInfoTypeAny = template_cr__WusInfoTypeAny; +Erroneous_descriptor_t* template_cs__UERadioCapIdDeletion_err_descr_ptr = NULL; +BITSTRING const_cs__UERadioCapIdDeletion_p__DeleteReq_defval; +const BITSTRING& cs__UERadioCapIdDeletion_p__DeleteReq_defval = const_cs__UERadioCapIdDeletion_p__DeleteReq_defval; +Erroneous_descriptor_t* template_cr__UE__RequestType_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__IP__QosFlowId_err_descr_ptr = NULL; +// No XER for BEARER__CONTEXT__TYPE +const TTCN_Typedescriptor_t BEARER__CONTEXT__TYPE_descr_ = { "@NAS_CommonTemplates.BEARER_CONTEXT_TYPE", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +NAS__CommonTypeDefs::EPS__QualityOfService_template template_cs__508__EPS__QoS__Default__1; +const NAS__CommonTypeDefs::EPS__QualityOfService_template& cs__508__EPS__QoS__Default__1 = template_cs__508__EPS__QoS__Default__1; +NAS__CommonTypeDefs::EPS__QualityOfService_template template_cds__508__EPS__QoS__Default__1__tlv; +const NAS__CommonTypeDefs::EPS__QualityOfService_template& cds__508__EPS__QoS__Default__1__tlv = template_cds__508__EPS__QoS__Default__1__tlv; +NAS__CommonTypeDefs::EPS__QualityOfService_template template_cds__EPS__QoS__Def__nonGBR__QCI; +const NAS__CommonTypeDefs::EPS__QualityOfService_template& cds__EPS__QoS__Def__nonGBR__QCI = template_cds__EPS__QoS__Def__nonGBR__QCI; +NAS__CommonTypeDefs::EPS__QualityOfService_template template_cds__EPS__QoS__Def__nonGBR__QCI__tlv; +const NAS__CommonTypeDefs::EPS__QualityOfService_template& cds__EPS__QoS__Def__nonGBR__QCI__tlv = template_cds__EPS__QoS__Def__nonGBR__QCI__tlv; +NAS__CommonTypeDefs::EPS__QualityOfService_template template_cds__508__EPS__QoS__Default__3; +const NAS__CommonTypeDefs::EPS__QualityOfService_template& cds__508__EPS__QoS__Default__3 = template_cds__508__EPS__QoS__Default__3; +Erroneous_descriptor_t* template_cs__UERadioCapId_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PktFilterCompSingleRemotePort61000_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PktFilterCompSingleRemotePort31160_err_descr_ptr = NULL; +CommonDefs::PDN__Index__Type const_f__EUTRA__NB__Get__508__TrafficFlowTemplate_p__PdnIndex_defval; +const CommonDefs::PDN__Index__Type& f__EUTRA__NB__Get__508__TrafficFlowTemplate_p__PdnIndex_defval = const_f__EUTRA__NB__Get__508__TrafficFlowTemplate_p__PdnIndex_defval; +TTCN_Module module_object("NAS_CommonTemplates", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_NAS_CommonTemplates(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "BEARER_CONTEXT_TYPE")) { + ((const BEARER__CONTEXT__TYPE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BEARER_CONTEXT_TYPE template")) { + ((const BEARER__CONTEXT__TYPE_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_NAS_CommonTemplates(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "BEARER_CONTEXT_TYPE")) { + ((BEARER__CONTEXT__TYPE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BEARER_CONTEXT_TYPE template")) { + ((BEARER__CONTEXT__TYPE_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NAS_CommonTemplates"); + global_scope->add_variable(&cdr__AuthFailParamGSM__Any, "cdr_AuthFailParamGSM_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cdr__MS__NetworkCapAss__lv, "cdr_MS_NetworkCapAss_lv", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cds__508__EPS__QoS__Default__1__tlv, "cds_508_EPS_QoS_Default_1_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cds__508__EPS__QoS__Default__3, "cds_508_EPS_QoS_Default_3", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cds__EPS__QoS__Def__nonGBR__QCI, "cds_EPS_QoS_Def_nonGBR_QCI", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cds__EPS__QoS__Def__nonGBR__QCI__tlv, "cds_EPS_QoS_Def_nonGBR_QCI_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cds__QoS__Negotiated__2, "cds_QoS_Negotiated_2", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cds__QoS__Negotiated__3, "cds_QoS_Negotiated_3", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cds__QoS__Negotiated__8, "cds_QoS_Negotiated_8", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__AccessPointName__Any, "cr_AccessPointName_Any", "AccessPointName template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__AdditionalUpdateTypeAny, "cr_AdditionalUpdateTypeAny", "AdditionalUpdateType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__AuthFailParam__Any, "cr_AuthFailParam_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__CodecAny, "cr_CodecAny", "Codec template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__CodecListAny, "cr_CodecListAny", "CodecList template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__DetachTypeOnSwitchOff, "cr_DetachTypeOnSwitchOff", "DetachType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__EDGE__Struct__Any, "cr_EDGE_Struct_Any", "EDGE_Struct template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__ExtdDRXParamsAny, "cr_ExtdDRXParamsAny", "ExtdDRXParams template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__ExtdPCOAny, "cr_ExtdPCOAny", "ExtdProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__Extd__EPS__QOS__Any, "cr_Extd_EPS_QOS_Any", "Extd_EPS_QOS template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__LAI__Any, "cr_LAI_Any", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__LAI__Any__v, "cr_LAI_Any_v", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__MSCLSMK3__Any, "cr_MSCLSMK3_Any", "MS_Clsmk3 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__MS__Clsmk2__Any, "cr_MS_Clsmk2_Any", "MS_Clsmk2 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__MS__MeasCapability__Any, "cr_MS_MeasCapability_Any", "MS_MeasCapability template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__MS__NetworkCap__Any, "cr_MS_NetworkCap_Any", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__NBIFOMContainerAny, "cr_NBIFOMContainerAny", "NBIFOMContainer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__PTMSI__Signature2Any, "cr_PTMSI_Signature2Any", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__PTMSI__SignatureAny, "cr_PTMSI_SignatureAny", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__ProtocolConfigOptionsAny, "cr_ProtocolConfigOptionsAny", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__UEStatus__Any, "cr_UEStatus_Any", "UE_Status template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__VoiceDomainPref__Any, "cr_VoiceDomainPref_Any", "VoiceDomainPref template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__WUSAssistInfoAny, "cr_WUSAssistInfoAny", "WUSAssistInfo template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cr__WusInfoTypeAny, "cr_WusInfoTypeAny", "WusInfoType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__508__EPS__QoS__Default__1, "cs_508_EPS_QoS_Default_1", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__GprsTimer__v__deact, "cs_GprsTimer_v_deact", "GPRS_Timer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__PktFilterCompProtocolIdNextHeaderICMP, "cs_PktFilterCompProtocolIdNextHeaderICMP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__PktFilterCompProtocolIdNextHeaderICMPv6, "cs_PktFilterCompProtocolIdNextHeaderICMPv6", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__PktFilterCompProtocolIdNextHeaderIPSec, "cs_PktFilterCompProtocolIdNextHeaderIPSec", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__PktFilterCompProtocolIdNextHeaderTCP, "cs_PktFilterCompProtocolIdNextHeaderTCP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__PktFilterCompProtocolIdNextHeaderUDP, "cs_PktFilterCompProtocolIdNextHeaderUDP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__PktFlowId, "cs_PktFlowId", "PacketFlowIdentifier template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__ProtocolConfigOptions__PPP, "cs_ProtocolConfigOptions_PPP", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&cs__QoS__Negotiated__1, "cs_QoS_Negotiated_1", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&tsc__APN1, "tsc_APN1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__APN1__String, "tsc_APN1_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__APN2, "tsc_APN2", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__APN2__String, "tsc_APN2_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__APN3, "tsc_APN3", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__APN3__String, "tsc_APN3_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Cause__MAC__Failure, "tsc_Cause_MAC_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Cause__NoNetworkSlices__Available, "tsc_Cause_NoNetworkSlices_Available", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Cause__PLMN__NotAllowed, "tsc_Cause_PLMN_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation, "tsc_Cause_PLMN_NotAllowedToOperateAtPresentUELocation", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Cause__Roaming__NotAllowed, "tsc_Cause_Roaming_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Cause__SQN__Failure, "tsc_Cause_SQN_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Cause__TA__NotAllowed, "tsc_Cause_TA_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Cause__nonEPS__AuthUnacceptable, "tsc_Cause_nonEPS_AuthUnacceptable", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__ConsecutiveTacs, "tsc_ConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__EmmCause__IllegalMe, "tsc_EmmCause_IllegalMe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__EmmCause__IllegalUe, "tsc_EmmCause_IllegalUe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__EmmCause__SemanticallyIncorrect, "tsc_EmmCause_SemanticallyIncorrect", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Gprs3TimerUnit__1min, "tsc_Gprs3TimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Gprs3TimerUnit__30sec, "tsc_Gprs3TimerUnit_30sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__GprsTimerUnit__1min, "tsc_GprsTimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__GprsTimerUnit__2sec, "tsc_GprsTimerUnit_2sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__GprsTimerUnit__6min, "tsc_GprsTimerUnit_6min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__GprsTimerUnit__deact, "tsc_GprsTimerUnit_deact", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IMEISV__Requested, "tsc_IMEISV_Requested", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IPv4Mask, "tsc_IPv4Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IPv6Mask, "tsc_IPv6Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__GUTI, "tsc_IdType_GUTI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__IMEI, "tsc_IdType_IMEI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__IMEISV, "tsc_IdType_IMEISV", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__IMEI__24301, "tsc_IdType_IMEI_24301", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__IMSI, "tsc_IdType_IMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__TMSI, "tsc_IdType_TMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MultiplePlmns, "tsc_MultiplePlmns", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NasKsi__MappedSecurityContext, "tsc_NasKsi_MappedSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NasKsi__NativeSecurityContext, "tsc_NasKsi_NativeSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NasKsi__NoKey, "tsc_NasKsi_NoKey", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NoValidTmsi, "tsc_NoValidTmsi", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NonConsecutiveTacs, "tsc_NonConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PCO__Id__DSMIPv6, "tsc_PCO_Id_DSMIPv6", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PCO__Id__DSMIPv6__IPv4, "tsc_PCO_Id_DSMIPv6_IPv4", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PTI__1, "tsc_PTI_1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PTI__Unassigned, "tsc_PTI_Unassigned", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PayloadContainerESMMsg, "tsc_PayloadContainerESMMsg", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PdnType__IPv4, "tsc_PdnType_IPv4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PdnType__IPv4v6, "tsc_PdnType_IPv4v6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PdnType__IPv6, "tsc_PdnType_IPv6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__SHT__IntegrityProtected, "tsc_SHT_IntegrityProtected", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__SHT__IntegrityProtected__Ciphered, "tsc_SHT_IntegrityProtected_Ciphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext, "tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__SHT__IntegrityProtected__NewSecurityContext, "tsc_SHT_IntegrityProtected_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__SHT__IntegrityProtected__PartiallyCiphered, "tsc_SHT_IntegrityProtected_PartiallyCiphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__SHT__NoSecurityProtection, "tsc_SHT_NoSecurityProtection", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Spare1, "tsc_Spare1", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Spare2, "tsc_Spare2", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Spare3, "tsc_Spare3", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Spare4, "tsc_Spare4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Spare5, "tsc_Spare5", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Spare6, "tsc_Spare6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__Spare7, "tsc_Spare7", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__SpareHalfOctet, "tsc_SpareHalfOctet", "hexstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoReply, "tsc_ICMP_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoRequest, "tsc_ICMP_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoReply, "tsc_ICMPv6_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoRequest, "tsc_ICMPv6_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M1, "tsc_IMS_MediaPort_M1", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M2, "tsc_IMS_MediaPort_M2", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M3, "tsc_IMS_MediaPort_M3", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__PortNumber__5060, "tsc_IMS_PortNumber_5060", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__AnyData, "tsc_IP_AnyData", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMP, "tsc_IP_Protocol_ICMP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMPv6, "tsc_IP_Protocol_ICMPv6", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__IPSec, "tsc_IP_Protocol_IPSec", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__TCP, "tsc_IP_Protocol_TCP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__UDP, "tsc_IP_Protocol_UDP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__MulticastPrefix__FF02, "tsc_MulticastPrefix_FF02", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PDN1__AddressInfo, "tsc_PDN1_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN2__AddressInfo, "tsc_PDN2_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN3__AddressInfo, "tsc_PDN3_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN4__AddressInfo, "tsc_PDN4_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN5__AddressInfo, "tsc_PDN5_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN6__AddressInfo, "tsc_PDN6_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN__AddressInfo, "tsc_PDN_AddressInfo", "PDN_AddressInfo_Type[6]", "CommonIP", TTCN3_Debugger::print_value_array); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTP, "tsc_PortNumberHTTP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTPS, "tsc_PortNumberHTTPS", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xCSfallback, "pc_1xCSfallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xRTT, "pc_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__A5__4__CS, "pc_A5_4_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__Default__Configuration, "pc_APN_Default_Configuration", "APN_DefaultConfiguration_Type", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::pc__APN__ID__Ethernet, "pc_APN_ID_Ethernet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__IMS, "pc_APN_ID_IMS", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__Internet, "pc_APN_ID_Internet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__MIOT, "pc_APN_ID_MIOT", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__URLLC, "pc_APN_ID_URLLC", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__V2X, "pc_APN_ID_V2X", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Allowed__CSG__list, "pc_Allowed_CSG_list", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Attach, "pc_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Auto__PDN__Connectivity, "pc_Auto_PDN_Connectivity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__EPS__Re__Attach, "pc_Automatic_EPS_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__Re__Attach, "pc_Automatic_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Available__PLMNs__AcT__Ind, "pc_Available_PLMNs_AcT_Ind", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__BSRVCC, "pc_BSRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CMAS__Message, "pc_CMAS_Message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS, "pc_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__1xRTT, "pc_CS_Em_Call_in_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__GERAN, "pc_CS_Em_Call_in_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__UTRA, "pc_CS_Em_Call_in_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Fallback, "pc_CS_Fallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__data__centric, "pc_CS_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__voice__centric, "pc_CS_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Combined__Attach, "pc_Combined_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DSMIPv6, "pc_DSMIPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DaylightSavingTime, "pc_DaylightSavingTime", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DualRM__Coding, "pc_DualRM_Coding", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB, "pc_EAB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB__override, "pc_EAB_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EDTM, "pc_EDTM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EMM__Information, "pc_EMM_Information", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPC__RACS, "pc_EPC_RACS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__IMS__EmergencyCall, "pc_EPS_IMS_EmergencyCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__Services__Disable, "pc_EPS_Services_Disable", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Allocation, "pc_ESM_MO_Bearer_Allocation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Modification, "pc_ESM_MO_Bearer_Modification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__Notification, "pc_ESM_Notification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__UE__Modification__NW__TFT, "pc_ESM_UE_Modification_NW_TFT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ETWS__message, "pc_ETWS_message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRAN__2__GERAN__PSHO, "pc_E_UTRAN_2_GERAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRA__WLAN__offload, "pc_E_UTRA_WLAN_offload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EmergSpeech, "pc_EmergSpeech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FDD, "pc_FDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__F, "pc_FeatrGrp_101_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__T, "pc_FeatrGrp_101_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__F, "pc_FeatrGrp_102_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__T, "pc_FeatrGrp_102_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__F, "pc_FeatrGrp_103_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__T, "pc_FeatrGrp_103_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__F, "pc_FeatrGrp_104_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__T, "pc_FeatrGrp_104_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__F, "pc_FeatrGrp_105_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__T, "pc_FeatrGrp_105_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__F, "pc_FeatrGrp_106_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__T, "pc_FeatrGrp_106_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__F, "pc_FeatrGrp_107_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__T, "pc_FeatrGrp_107_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__F, "pc_FeatrGrp_108_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__T, "pc_FeatrGrp_108_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__F, "pc_FeatrGrp_109_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__T, "pc_FeatrGrp_109_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__F, "pc_FeatrGrp_10_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__T, "pc_FeatrGrp_10_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__F, "pc_FeatrGrp_110_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__T, "pc_FeatrGrp_110_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__F, "pc_FeatrGrp_111_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__T, "pc_FeatrGrp_111_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__F, "pc_FeatrGrp_112_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__T, "pc_FeatrGrp_112_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__F, "pc_FeatrGrp_113_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__T, "pc_FeatrGrp_113_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__F, "pc_FeatrGrp_114_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__T, "pc_FeatrGrp_114_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__F, "pc_FeatrGrp_115_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__T, "pc_FeatrGrp_115_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__F, "pc_FeatrGrp_116_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__T, "pc_FeatrGrp_116_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__F, "pc_FeatrGrp_11_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__T, "pc_FeatrGrp_11_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__F, "pc_FeatrGrp_12_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__T, "pc_FeatrGrp_12_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__F, "pc_FeatrGrp_13_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__T, "pc_FeatrGrp_13_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__F, "pc_FeatrGrp_14_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__T, "pc_FeatrGrp_14_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__F, "pc_FeatrGrp_15_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__T, "pc_FeatrGrp_15_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__F, "pc_FeatrGrp_16_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__T, "pc_FeatrGrp_16_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__F, "pc_FeatrGrp_17_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__T, "pc_FeatrGrp_17_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__F, "pc_FeatrGrp_18_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__T, "pc_FeatrGrp_18_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__F, "pc_FeatrGrp_19_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__T, "pc_FeatrGrp_19_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__F, "pc_FeatrGrp_1_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__T, "pc_FeatrGrp_1_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__F, "pc_FeatrGrp_20_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__T, "pc_FeatrGrp_20_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__F, "pc_FeatrGrp_21_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__T, "pc_FeatrGrp_21_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__F, "pc_FeatrGrp_22_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__T, "pc_FeatrGrp_22_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__F, "pc_FeatrGrp_23_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__T, "pc_FeatrGrp_23_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__F, "pc_FeatrGrp_24_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__T, "pc_FeatrGrp_24_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__F, "pc_FeatrGrp_25_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__T, "pc_FeatrGrp_25_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__F, "pc_FeatrGrp_26_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__T, "pc_FeatrGrp_26_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__F, "pc_FeatrGrp_27_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__T, "pc_FeatrGrp_27_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__F, "pc_FeatrGrp_28_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__T, "pc_FeatrGrp_28_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__F, "pc_FeatrGrp_29_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__T, "pc_FeatrGrp_29_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__F, "pc_FeatrGrp_2_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__T, "pc_FeatrGrp_2_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__F, "pc_FeatrGrp_30_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__T, "pc_FeatrGrp_30_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__F, "pc_FeatrGrp_31_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__T, "pc_FeatrGrp_31_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__F, "pc_FeatrGrp_33_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__T, "pc_FeatrGrp_33_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__F, "pc_FeatrGrp_34_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__T, "pc_FeatrGrp_34_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__F, "pc_FeatrGrp_35_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__T, "pc_FeatrGrp_35_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__F, "pc_FeatrGrp_36_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__T, "pc_FeatrGrp_36_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__F, "pc_FeatrGrp_37_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__T, "pc_FeatrGrp_37_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__F, "pc_FeatrGrp_38_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__T, "pc_FeatrGrp_38_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__F, "pc_FeatrGrp_39_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__T, "pc_FeatrGrp_39_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__F, "pc_FeatrGrp_3_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__T, "pc_FeatrGrp_3_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__F, "pc_FeatrGrp_40_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__T, "pc_FeatrGrp_40_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__F, "pc_FeatrGrp_41_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__T, "pc_FeatrGrp_41_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__F, "pc_FeatrGrp_42_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__T, "pc_FeatrGrp_42_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__F, "pc_FeatrGrp_4_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__T, "pc_FeatrGrp_4_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__F, "pc_FeatrGrp_5_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__T, "pc_FeatrGrp_5_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__F, "pc_FeatrGrp_6_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__T, "pc_FeatrGrp_6_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__F, "pc_FeatrGrp_7_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__T, "pc_FeatrGrp_7_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__F, "pc_FeatrGrp_8_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__T, "pc_FeatrGrp_8_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__F, "pc_FeatrGrp_9_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__T, "pc_FeatrGrp_9_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FullNameNetwork, "pc_FullNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN, "pc_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__PSHO, "pc_GERAN_2_E_UTRAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__meas, "pc_GERAN_2_E_UTRAN_meas", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__measreporting__CCN, "pc_GERAN_2_E_UTRAN_measreporting_CCN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eFDD, "pc_HO_from_UTRA_to_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eTDD, "pc_HO_from_UTRA_to_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HRPD, "pc_HRPD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS, "pc_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMSI__Detach, "pc_IMSI_Detach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__APN__default, "pc_IMS_APN_default", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCC, "pc_IMS_CS_PS_SRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCAlert, "pc_IMS_CS_PS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCMidCall, "pc_IMS_CS_PS_SRVCCMidCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__SRVCCAlert, "pc_IMS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__emergency__call, "pc_IMS_emergency_call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv4, "pc_IPv4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv6, "pc_IPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ISR, "pc_ISR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ImmConnect, "pc_ImmConnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__InterFreq__ProximityIndication, "pc_InterFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IntraFreq__ProximityIndication, "pc_IntraFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__KeepEpsBearerParametersAfterNormalDetach, "pc_KeepEpsBearerParametersAfterNormalDetach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP, "pc_LAP", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP__override, "pc_LAP_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LocalTimeZone, "pc_LocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LoggedMeasurementsIdle, "pc_LoggedMeasurementsIdle", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Manual__CSG__Selection, "pc_Manual_CSG_Selection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Multiple__PDN, "pc_Multiple_PDN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v1__0, "pc_NG114_v1_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v2__0, "pc_NG114_v2_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG__RAN__NR, "pc_NG_RAN_NR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NR__5GC__EmergencyServices, "pc_NR_5GC_EmergencyServices", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__No__USIM__TestExecution, "pc_No_USIM_TestExecution", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__Manual__Mode__Exception, "pc_PLMN_Manual_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS, "pc_PS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__data__centric, "pc_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__voice__centric, "pc_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PWS__UpperLayer, "pc_PWS_UpperLayer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ProvideDST__inUse, "pc_ProvideDST_inUse", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__APN, "pc_Provide_IMS_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__as__second__APN, "pc_Provide_IMS_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__Internet__as__second__APN, "pc_Provide_Internet_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RLF__ReportForInterRAT__MRO, "pc_RLF_ReportForInterRAT_MRO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0001, "pc_ROHC_profile0x0001", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0002, "pc_ROHC_profile0x0002", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0003, "pc_ROHC_profile0x0003", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0004, "pc_ROHC_profile0x0004", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0006, "pc_ROHC_profile0x0006", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0101, "pc_ROHC_profile0x0101", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0102, "pc_ROHC_profile0x0102", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0103, "pc_ROHC_profile0x0103", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0104, "pc_ROHC_profile0x0104", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Rach__Report, "pc_Rach_Report", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Re__Attach__AfterDetachColl, "pc_Re_Attach_AfterDetachColl", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv4HAAddress__DuringAttach, "pc_RequestIPv4HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv6HAAddress__DuringAttach, "pc_RequestIPv6HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__UMTS__Autonomous__Gaps, "pc_SI_Neighbour_UMTS_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__interFreq__Autonomous__Gaps, "pc_SI_Neighbour_interFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__intraFreq__Autonomous__Gaps, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs, "pc_SMS_SGs", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MO, "pc_SMS_SGs_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MT, "pc_SMS_SGs_MT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__Multi__MO, "pc_SMS_SGs_Multi_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SRVCC__GERAN__UTRAN, "pc_SRVCC_GERAN_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Semi__Persistence__Scheduling, "pc_Semi_Persistence_Scheduling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ShortNameNetwork, "pc_ShortNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Speech, "pc_Speech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__StandaloneGNSS__Location, "pc_StandaloneGNSS_Location", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SupportOpModeA, "pc_SupportOpModeA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SwitchOnOff, "pc_SwitchOnOff", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__connected__in__IMS, "pc_TAU_connected_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__idle__in__IMS, "pc_TAU_idle_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__HCR, "pc_TDD_HCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__LCR, "pc_TDD_LCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__VHCR, "pc_TDD_VHCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TTI__Bundling, "pc_TTI_Bundling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TestModeforCSGproximity, "pc_TestModeforCSGproximity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UE__supports__user__initiated__PDN__disconnect, "pc_UE_supports_user_initiated_PDN_disconnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UL__MIMO, "pc_UL_MIMO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMI__ProcNeeded__DuringCSFB, "pc_UMI_ProcNeeded_DuringCSFB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMTS__GSM, "pc_UMTS_GSM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__USIM__Removal, "pc_USIM_Removal", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA, "pc_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ANR, "pc_UTRAN_ANR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ProximityIndication, "pc_UTRAN_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__1, "pc_UTRA_FeatrGrp_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__2, "pc_UTRA_FeatrGrp_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__3, "pc_UTRA_FeatrGrp_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__4, "pc_UTRA_FeatrGrp_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeAssistedAgps, "pc_UeAssistedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeBasedAgps, "pc_UeBasedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UniversalAndLocalTimeZone, "pc_UniversalAndLocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UpdateUE__LocationInformation, "pc_UpdateUE_LocationInformation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UserInitiatedPLMN__Reselection, "pc_UserInitiatedPLMN_Reselection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__VoLTE, "pc_VoLTE", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__Imm__MDT, "pc_WLAN_Meas_Imm_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__logged__MDT, "pc_WLAN_Meas_logged_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__voice, "pc_WLAN_voice", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__only__APN, "pc_XCAP_only_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__over__Internet__APN, "pc_XCAP_over_Internet_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ZUC, "pc_ZUC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eCall__Test__Call, "pc_eCall_Test_Call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD, "pc_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD__MultiBand, "pc_eFDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS, "pc_eMBMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS__SC, "pc_eMBMS_SC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMinimumPeriodicSearchTimer, "pc_eMinimumPeriodicSearchTimer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eRedirectionUTRA, "pc_eRedirectionUTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD, "pc_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD__MultiBand, "pc_eTDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eWLAN, "pc_eWLAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__multipleTimingAdvance, "pc_multipleTimingAdvance", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__0, "pc_ue_CategoryDL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__10, "pc_ue_CategoryDL_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__11, "pc_ue_CategoryDL_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__12, "pc_ue_CategoryDL_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__13, "pc_ue_CategoryDL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__14, "pc_ue_CategoryDL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__15, "pc_ue_CategoryDL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__16, "pc_ue_CategoryDL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__17, "pc_ue_CategoryDL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__18, "pc_ue_CategoryDL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__19, "pc_ue_CategoryDL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__1bis, "pc_ue_CategoryDL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__20, "pc_ue_CategoryDL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__21, "pc_ue_CategoryDL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__22, "pc_ue_CategoryDL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__23, "pc_ue_CategoryDL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__24, "pc_ue_CategoryDL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__25, "pc_ue_CategoryDL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__26, "pc_ue_CategoryDL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__4, "pc_ue_CategoryDL_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__6, "pc_ue_CategoryDL_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__7, "pc_ue_CategoryDL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__9, "pc_ue_CategoryDL_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M1, "pc_ue_CategoryDL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M2, "pc_ue_CategoryDL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__0, "pc_ue_CategoryUL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__13, "pc_ue_CategoryUL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__14, "pc_ue_CategoryUL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__15, "pc_ue_CategoryUL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__16, "pc_ue_CategoryUL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__17, "pc_ue_CategoryUL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__18, "pc_ue_CategoryUL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__19, "pc_ue_CategoryUL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__1bis, "pc_ue_CategoryUL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__20, "pc_ue_CategoryUL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__21, "pc_ue_CategoryUL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__22, "pc_ue_CategoryUL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__23, "pc_ue_CategoryUL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__24, "pc_ue_CategoryUL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__25, "pc_ue_CategoryUL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__26, "pc_ue_CategoryUL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__3, "pc_ue_CategoryUL_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__5, "pc_ue_CategoryUL_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__7, "pc_ue_CategoryUL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__8, "pc_ue_CategoryUL_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M1, "pc_ue_CategoryUL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M2, "pc_ue_CategoryUL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__1, "pc_ue_Category_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__10, "pc_ue_Category_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__11, "pc_ue_Category_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__12, "pc_ue_Category_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__2, "pc_ue_Category_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__3, "pc_ue_Category_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__4, "pc_ue_Category_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__5, "pc_ue_Category_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__6, "pc_ue_Category_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__7, "pc_ue_Category_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__8, "pc_ue_Category_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__9, "pc_ue_Category_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voiceOverNR, "pc_voiceOverNR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voice__PS__1__CS__2, "pc_voice_PS_1_CS_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AccessPointName, "px_AccessPointName", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AquireGNSS__MaxTime, "px_AquireGNSS_MaxTime", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AttachTypeTested, "px_AttachTypeTested", "EUTRA_ATTACH_TESTED_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__AuthAMF, "px_AuthAMF", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AuthK, "px_AuthK", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EllipsoidPointWithAltitude, "px_EllipsoidPointWithAltitude", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EmergencyCallNumber, "px_EmergencyCallNumber", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__FDD__OperationBand, "px_FDD_OperationBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__HorizontalVelocity, "px_HorizontalVelocity", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEISV__Def, "px_IMEISV_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEI__Def, "px_IMEI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Def, "px_IMSI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Diff, "px_IMSI_Diff", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IP__MTU__Size, "px_IP_MTU_Size", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__NW, "px_IPv4_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__RemoteUE, "px_IPv4_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__UE, "px_IPv4_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__NW, "px_IPv4_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__RemoteUE, "px_IPv4_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__UE, "px_IPv4_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2a__UE, "px_IPv4_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__NW, "px_IPv4_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__RemoteUE, "px_IPv4_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__UE, "px_IPv4_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__NW, "px_IPv4_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__UE, "px_IPv4_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__NW, "px_IPv4_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__UE, "px_IPv4_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__NW, "px_IPv4_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__UE, "px_IPv4_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address__HomeAgent, "px_IPv4_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__NW, "px_IPv6_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__RemoteUE, "px_IPv6_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__UE, "px_IPv6_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__NW, "px_IPv6_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__RemoteUE, "px_IPv6_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__UE, "px_IPv6_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2a__UE, "px_IPv6_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__NW, "px_IPv6_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__RemoteUE, "px_IPv6_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__UE, "px_IPv6_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__NW, "px_IPv6_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__UE, "px_IPv6_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__NW, "px_IPv6_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__UE, "px_IPv6_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__NW, "px_IPv6_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__UE, "px_IPv6_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address__HomeAgent, "px_IPv6_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__MFBI__UTRAN__FrequencyBand, "px_MFBI_UTRAN_FrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__CipheringAlgorithm, "px_NAS_CipheringAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__IntegrityProtAlgorithm, "px_NAS_IntegrityProtAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__Def, "px_PTMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__SigDef, "px_PTMSI_SigDef", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataCodingScheme, "px_PWS_CB_DataCodingScheme", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage1, "px_PWS_CB_DataPage1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage2, "px_PWS_CB_DataPage2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage3, "px_PWS_CB_DataPage3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage4, "px_PWS_CB_DataPage4", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__RATComb__Tested, "px_RATComb_Tested", "RATComb_Tested_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__SMS__ChkMsgReceived, "px_SMS_ChkMsgReceived", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__IndexOffset, "px_SMS_IndexOffset", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__MsgFrmt, "px_SMS_MsgFrmt", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem1, "px_SMS_PrefMem1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem2, "px_SMS_PrefMem2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem3, "px_SMS_PrefMem3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__Service, "px_SMS_Service", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SinglePLMN__Tested, "px_SinglePLMN_Tested", "SinglePLMN_TestedType", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__TMSI__Def, "px_TMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__TestLoopModeB__Delay, "px_TestLoopModeB_Delay", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__UE__CS__PS__UsageSetting__Tested, "px_UE_CS_PS_UsageSetting_Tested", "CS_PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UE__PS__UsageSetting__Tested, "px_UE_PS_UsageSetting_Tested", "PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UTRAN__ModeUnderTest, "px_UTRAN_ModeUnderTest", "UTRAN_FDD_TDD_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__WLAN__PDN1__ToOffload, "px_WLAN_PDN1_ToOffload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eAuthRAND, "px_eAuthRAND", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eJapanMCC__Band6, "px_eJapanMCC_Band6", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__ePrimaryFrequencyBand, "px_ePrimaryFrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +BEARER__CONTEXT__TYPE::BEARER__CONTEXT__TYPE() +{ +enum_value = UNBOUND_VALUE; +} + +BEARER__CONTEXT__TYPE::BEARER__CONTEXT__TYPE(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +BEARER__CONTEXT__TYPE::BEARER__CONTEXT__TYPE(enum_type other_value) +{ +enum_value = other_value; +} + +BEARER__CONTEXT__TYPE::BEARER__CONTEXT__TYPE(const BEARER__CONTEXT__TYPE& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +enum_value = other_value.enum_value; +} + +BEARER__CONTEXT__TYPE& BEARER__CONTEXT__TYPE::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +BEARER__CONTEXT__TYPE& BEARER__CONTEXT__TYPE::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +BEARER__CONTEXT__TYPE& BEARER__CONTEXT__TYPE::operator=(const BEARER__CONTEXT__TYPE& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +enum_value = other_value.enum_value; +return *this; +} + +boolean BEARER__CONTEXT__TYPE::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +return enum_value == other_value; +} + +boolean BEARER__CONTEXT__TYPE::operator==(const BEARER__CONTEXT__TYPE& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +return enum_value == other_value.enum_value; +} + +boolean BEARER__CONTEXT__TYPE::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +return enum_value < other_value; +} + +boolean BEARER__CONTEXT__TYPE::operator<(const BEARER__CONTEXT__TYPE& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +return enum_value < other_value.enum_value; +} + +boolean BEARER__CONTEXT__TYPE::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +return enum_value > other_value; +} + +boolean BEARER__CONTEXT__TYPE::operator>(const BEARER__CONTEXT__TYPE& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +return enum_value > other_value.enum_value; +} + +const char *BEARER__CONTEXT__TYPE::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case DEF__1: return "DEF_1"; +case DEF__2: return "DEF_2"; +case DEF__3: return "DEF_3"; +case DED__1: return "DED_1"; +case DED__2: return "DED_2"; +case DED__3: return "DED_3"; +case DED__4: return "DED_4"; +case DED__5: return "DED_5"; +default: return ""; +} +} + +BEARER__CONTEXT__TYPE::enum_type BEARER__CONTEXT__TYPE::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "DEF_1")) return DEF__1; +else if (!strcmp(str_par, "DEF_2")) return DEF__2; +else if (!strcmp(str_par, "DEF_3")) return DEF__3; +else if (!strcmp(str_par, "DED_1")) return DED__1; +else if (!strcmp(str_par, "DED_2")) return DED__2; +else if (!strcmp(str_par, "DED_3")) return DED__3; +else if (!strcmp(str_par, "DED_4")) return DED__4; +else if (!strcmp(str_par, "DED_5")) return DED__5; +else return UNKNOWN_VALUE; +} + +boolean BEARER__CONTEXT__TYPE::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +return TRUE; +default: +return FALSE; +} +} + +int BEARER__CONTEXT__TYPE::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int BEARER__CONTEXT__TYPE::enum2int(const BEARER__CONTEXT__TYPE& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void BEARER__CONTEXT__TYPE::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE.", int_val); +enum_value = (enum_type)int_val; +} + +BEARER__CONTEXT__TYPE::operator BEARER__CONTEXT__TYPE::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +return enum_value; +} + +boolean BEARER__CONTEXT__TYPE::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void BEARER__CONTEXT__TYPE::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* BEARER__CONTEXT__TYPE::clone() const { return new BEARER__CONTEXT__TYPE(*this); } +const TTCN_Typedescriptor_t* BEARER__CONTEXT__TYPE::get_descriptor() const { return &BEARER__CONTEXT__TYPE_descr_; } +void BEARER__CONTEXT__TYPE::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void BEARER__CONTEXT__TYPE::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NAS_CommonTemplates.BEARER_CONTEXT_TYPE"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); + } +} + +Module_Param* BEARER__CONTEXT__TYPE::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void BEARER__CONTEXT__TYPE::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +text_buf.push_int(enum_value); +} + +void BEARER__CONTEXT__TYPE::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE.", enum_value); +} + +void BEARER__CONTEXT__TYPE_template::copy_template(const BEARER__CONTEXT__TYPE_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new BEARER__CONTEXT__TYPE_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new BEARER__CONTEXT__TYPE_template(*other_value.implication_.precondition); +implication_.implied_template = new BEARER__CONTEXT__TYPE_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +} +} + +BEARER__CONTEXT__TYPE_template::BEARER__CONTEXT__TYPE_template() +{ +} + +BEARER__CONTEXT__TYPE_template::BEARER__CONTEXT__TYPE_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +BEARER__CONTEXT__TYPE_template::BEARER__CONTEXT__TYPE_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!BEARER__CONTEXT__TYPE::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE with unknown numeric value %d.", other_value); +single_value = (BEARER__CONTEXT__TYPE::enum_type)other_value; +} + +BEARER__CONTEXT__TYPE_template::BEARER__CONTEXT__TYPE_template(BEARER__CONTEXT__TYPE::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +BEARER__CONTEXT__TYPE_template::BEARER__CONTEXT__TYPE_template(const BEARER__CONTEXT__TYPE& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == BEARER__CONTEXT__TYPE::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +single_value = other_value.enum_value; +} + +BEARER__CONTEXT__TYPE_template::BEARER__CONTEXT__TYPE_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (BEARER__CONTEXT__TYPE::enum_type)(const BEARER__CONTEXT__TYPE&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE from an unbound optional field."); +} +} + +BEARER__CONTEXT__TYPE_template::BEARER__CONTEXT__TYPE_template(BEARER__CONTEXT__TYPE_template* p_precondition, BEARER__CONTEXT__TYPE_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +BEARER__CONTEXT__TYPE_template::BEARER__CONTEXT__TYPE_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +BEARER__CONTEXT__TYPE_template::BEARER__CONTEXT__TYPE_template(const BEARER__CONTEXT__TYPE_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +BEARER__CONTEXT__TYPE_template::~BEARER__CONTEXT__TYPE_template() +{ +clean_up(); +} + +boolean BEARER__CONTEXT__TYPE_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean BEARER__CONTEXT__TYPE_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != BEARER__CONTEXT__TYPE::UNBOUND_VALUE; +} + +void BEARER__CONTEXT__TYPE_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +BEARER__CONTEXT__TYPE_template& BEARER__CONTEXT__TYPE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +BEARER__CONTEXT__TYPE_template& BEARER__CONTEXT__TYPE_template::operator=(int other_value) +{ +if (!BEARER__CONTEXT__TYPE::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (BEARER__CONTEXT__TYPE::enum_type)other_value; +return *this; +} + +BEARER__CONTEXT__TYPE_template& BEARER__CONTEXT__TYPE_template::operator=(BEARER__CONTEXT__TYPE::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +BEARER__CONTEXT__TYPE_template& BEARER__CONTEXT__TYPE_template::operator=(const BEARER__CONTEXT__TYPE& other_value) +{ +if (other_value.enum_value == BEARER__CONTEXT__TYPE::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +BEARER__CONTEXT__TYPE_template& BEARER__CONTEXT__TYPE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (BEARER__CONTEXT__TYPE::enum_type)(const BEARER__CONTEXT__TYPE&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +} +return *this; +} + +BEARER__CONTEXT__TYPE_template& BEARER__CONTEXT__TYPE_template::operator=(const BEARER__CONTEXT__TYPE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean BEARER__CONTEXT__TYPE_template::match(BEARER__CONTEXT__TYPE::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +} +return FALSE; +} + +boolean BEARER__CONTEXT__TYPE_template::match(const BEARER__CONTEXT__TYPE& other_value, boolean) const +{ +if (other_value.enum_value == BEARER__CONTEXT__TYPE::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE with an unbound value."); +return match(other_value.enum_value); +} + +BEARER__CONTEXT__TYPE::enum_type BEARER__CONTEXT__TYPE_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +return single_value; +} + +void BEARER__CONTEXT__TYPE_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new BEARER__CONTEXT__TYPE_template[list_length]; +} + +BEARER__CONTEXT__TYPE_template& BEARER__CONTEXT__TYPE_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +return value_list.list_value[list_index]; +} + +void BEARER__CONTEXT__TYPE_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void BEARER__CONTEXT__TYPE_template::set_value(template_sel other_value) { *this = other_value; } +void BEARER__CONTEXT__TYPE_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* BEARER__CONTEXT__TYPE_template::clone() const { return new BEARER__CONTEXT__TYPE_template(*this); } +const TTCN_Typedescriptor_t* BEARER__CONTEXT__TYPE_template::get_descriptor() const { return &BEARER__CONTEXT__TYPE_descr_; } +boolean BEARER__CONTEXT__TYPE_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void BEARER__CONTEXT__TYPE_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void BEARER__CONTEXT__TYPE_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(BEARER__CONTEXT__TYPE::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void BEARER__CONTEXT__TYPE_template::log_match(const BEARER__CONTEXT__TYPE& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void BEARER__CONTEXT__TYPE_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +} +} + +void BEARER__CONTEXT__TYPE_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (BEARER__CONTEXT__TYPE::enum_type)text_buf.pull_int().get_val(); +if (!BEARER__CONTEXT__TYPE::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new BEARER__CONTEXT__TYPE_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); +} +} + +boolean BEARER__CONTEXT__TYPE_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean BEARER__CONTEXT__TYPE_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + BEARER__CONTEXT__TYPE_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + BEARER__CONTEXT__TYPE::enum_type enum_val = BEARER__CONTEXT__TYPE::str_to_enum(m_p->get_enumerated()); + if (!BEARER__CONTEXT__TYPE::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NAS_CommonTemplates.BEARER_CONTEXT_TYPE."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + BEARER__CONTEXT__TYPE_template* precondition = new BEARER__CONTEXT__TYPE_template; + precondition->set_param(*m_p->get_elem(0)); + BEARER__CONTEXT__TYPE_template* implied_template = new BEARER__CONTEXT__TYPE_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = BEARER__CONTEXT__TYPE_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NAS_CommonTemplates.BEARER_CONTEXT_TYPE"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* BEARER__CONTEXT__TYPE_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(BEARER__CONTEXT__TYPE::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + + +/* Bodies of functions, altsteps and testcases */ + +NAS__CommonTypeDefs::AccessPointName_template cs__AccessPointName(const OCTETSTRING& p__Name) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 112, TTCN_Location::LOCATION_TEMPLATE, "cs_AccessPointName"); +charstring_list param_names; +param_names[0] = "p_Name"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_AccessPointName", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Name, "p_Name", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::AccessPointName_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = int2oct(p__Name.lengthof(), 1); +ret_val.nameValue() = p__Name; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__AccessPointName_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::AccessPointName_template cr__AccessPointName(const OCTETSTRING& p__Name) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 119, TTCN_Location::LOCATION_TEMPLATE, "cr_AccessPointName"); +charstring_list param_names; +param_names[0] = "p_Name"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_AccessPointName", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Name, "p_Name", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::AccessPointName_template ret_val; +ret_val.iei() = os_9; +ret_val.iel() = int2oct(p__Name.lengthof(), 1); +ret_val.nameValue() = p__Name; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__AccessPointName_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::RAND_template cs__RAND__v(const BITSTRING& p__RAND) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 156, TTCN_Location::LOCATION_TEMPLATE, "cs_RAND_v"); +charstring_list param_names; +param_names[0] = "p_RAND"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_RAND_v", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__RAND, "p_RAND", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::RAND_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.randValue() = p__RAND; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__RAND__v_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::RAND_template cs__GMM__AuthRAND(const BITSTRING& p__Rand) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 162, TTCN_Location::LOCATION_TEMPLATE, "cs_GMM_AuthRAND"); +charstring_list param_names; +param_names[0] = "p_Rand"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_GMM_AuthRAND", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Rand, "p_Rand", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::RAND_template ret_val; +ret_val.iei() = os_13; +ret_val.randValue() = p__Rand; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__GMM__AuthRAND_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::AUTN_template cs__AUTN__lv(const BITSTRING& p__AUTN) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 168, TTCN_Location::LOCATION_TEMPLATE, "cs_AUTN_lv"); +charstring_list param_names; +param_names[0] = "p_AUTN"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_AUTN_lv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__AUTN, "p_AUTN", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::AUTN_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = os_14; +ret_val.aUTN() = p__AUTN; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__AUTN__lv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::AUTN_template cs__GSM__AUTN(const BITSTRING_template& p__AUTN) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 175, TTCN_Location::LOCATION_TEMPLATE, "cs_GSM_AUTN"); +charstring_list param_names; +param_names[0] = "p_AUTN"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_GSM_AUTN", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__AUTN, "p_AUTN", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::AUTN_template ret_val; +ret_val.iei() = os_15; +ret_val.iel() = os_14; +ret_val.aUTN() = p__AUTN; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__GSM__AUTN_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::AUTN_template cs__GMM__AUTN(const BITSTRING& p__Autn) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 182, TTCN_Location::LOCATION_TEMPLATE, "cs_GMM_AUTN"); +charstring_list param_names; +param_names[0] = "p_Autn"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_GMM_AUTN", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Autn, "p_Autn", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::AUTN_template ret_val; +ret_val.iei() = os_9; +ret_val.iel() = os_14; +ret_val.aUTN() = p__Autn; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__GMM__AUTN_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::CiphKeySeqNum_template cs__CiphKeySeqNum(const HEXSTRING_template& p__IEI, const BITSTRING_template& p__KeySeq) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 189, TTCN_Location::LOCATION_TEMPLATE, "cs_CiphKeySeqNum"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_KeySeq"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_CiphKeySeqNum", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KeySeq, "p_KeySeq", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::CiphKeySeqNum_template ret_val; +ret_val.iei() = p__IEI; +ret_val.spare1() = bs_0; +ret_val.keySeq() = p__KeySeq; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__CiphKeySeqNum_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::CiphKeySeqNum_template cr__CiphKeySeqNum(const HEXSTRING_template& p__IEI, const BITSTRING_template& p__KeySeq) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 197, TTCN_Location::LOCATION_TEMPLATE, "cr_CiphKeySeqNum"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_KeySeq"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_CiphKeySeqNum", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KeySeq, "p_KeySeq", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::CiphKeySeqNum_template ret_val; +ret_val.iei() = p__IEI; +ret_val.spare1() = bs_0; +ret_val.keySeq() = p__KeySeq; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__CiphKeySeqNum_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::DCN__ID_template cs__Dcn__Id(const OCTETSTRING& p__DCNIdValue) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 230, TTCN_Location::LOCATION_TEMPLATE, "cs_Dcn_Id"); +charstring_list param_names; +param_names[0] = "p_DCNIdValue"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_Dcn_Id", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__DCNIdValue, "p_DCNIdValue", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::DCN__ID_template ret_val; +ret_val.iei() = os_17; +ret_val.iel() = os_18; +ret_val.dcnIdValue() = p__DCNIdValue; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__Dcn__Id_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::DetachType_template cs__DetachType(const BITSTRING& p__TypeOfDetach) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 237, TTCN_Location::LOCATION_TEMPLATE, "cs_DetachType"); +charstring_list param_names; +param_names[0] = "p_TypeOfDetach"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_DetachType", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__TypeOfDetach, "p_TypeOfDetach", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::DetachType_template ret_val; +ret_val.switchOff() = bs_0; +ret_val.typeOfDetach() = p__TypeOfDetach; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__DetachType_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::DetachType_template cr__DetachType(const BITSTRING_template& p__SwitchOff, const BITSTRING_template& p__TypeOfDetach) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 243, TTCN_Location::LOCATION_TEMPLATE, "cr_DetachType"); +charstring_list param_names; +param_names[0] = "p_SwitchOff"; +param_names[1] = "p_TypeOfDetach"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_DetachType", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__SwitchOff, "p_SwitchOff", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TypeOfDetach, "p_TypeOfDetach", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::DetachType_template ret_val; +ret_val.switchOff() = p__SwitchOff; +ret_val.typeOfDetach() = p__TypeOfDetach; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__DetachType_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::DeviceProperties_template cr__DeviceProperties(const HEXSTRING& p__IEI, const BITSTRING_template& p__LowPriority) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 252, TTCN_Location::LOCATION_TEMPLATE, "cr_DeviceProperties"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_LowPriority"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_DeviceProperties", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LowPriority, "p_LowPriority", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::DeviceProperties_template ret_val; +ret_val.iei() = p__IEI; +ret_val.spare() = bs_2; +ret_val.lowPriority() = p__LowPriority; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__DeviceProperties_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::DRXparameter_template cr__DRXparameter__Any(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 260, TTCN_Location::LOCATION_TEMPLATE, "cr_DRXparameter_Any"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_DRXparameter_Any", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::DRXparameter_template ret_val; +ret_val.iei() = p__IEI; +ret_val.splitPGcycleCode() = ANY_VALUE; +ret_val.cnDRXcoef() = ANY_VALUE; +ret_val.splitOnCCCH() = ANY_VALUE; +ret_val.nonDRXtimer() = ANY_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__DRXparameter__Any_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::EmergServCat_template cr__EmergServCat(const BITSTRING_template& p__Cat) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 283, TTCN_Location::LOCATION_TEMPLATE, "cr_EmergServCat"); +charstring_list param_names; +param_names[0] = "p_Cat"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_EmergServCat", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Cat, "p_Cat", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::EmergServCat_template ret_val; +ret_val.spare() = bs_0; +ret_val.emergSCValue() = p__Cat; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__EmergServCat_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::EmergServCat_template cs__EmergServCat(const BITSTRING& p__EmergSCValue) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 289, TTCN_Location::LOCATION_TEMPLATE, "cs_EmergServCat"); +charstring_list param_names; +param_names[0] = "p_EmergSCValue"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_EmergServCat", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__EmergSCValue, "p_EmergSCValue", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::EmergServCat_template ret_val; +ret_val.spare() = bs_0; +ret_val.emergSCValue() = p__EmergSCValue; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EmergServCat_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::EmergNum_template cs__EmergencyLocalNumber(const OCTETSTRING& p__Length, const NAS__CommonTypeDefs::EmergServCat_template& p__EmergSCValue, const OCTETSTRING& p__Number) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 295, TTCN_Location::LOCATION_TEMPLATE, "cs_EmergencyLocalNumber"); +charstring_list param_names; +param_names[0] = "p_Length"; +param_names[1] = "p_EmergSCValue"; +param_names[2] = "p_Number"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_EmergencyLocalNumber", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EmergSCValue, "p_EmergSCValue", "EmergServCat template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__Number, "p_Number", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::EmergNum_template ret_val; +ret_val.len() = p__Length; +ret_val.emergServCat() = p__EmergSCValue; +ret_val.digits() = p__Number; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EmergencyLocalNumber_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::GPRS__Timer_template cs__GprsTimer__tv(const OCTETSTRING& p__IEI, const BITSTRING& p__Unit, const BITSTRING& p__Value) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 316, TTCN_Location::LOCATION_TEMPLATE, "cs_GprsTimer_tv"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Unit"; +param_names[2] = "p_Value"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_GprsTimer_tv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Unit, "p_Unit", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Value, "p_Value", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::GPRS__Timer_template ret_val; +ret_val.iei() = p__IEI; +ret_val.unit() = p__Unit; +ret_val.timerValue() = p__Value; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__GprsTimer__tv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::GPRS__Timer_template cs__GprsTimer__v(const BITSTRING& p__Unit, const BITSTRING& p__Value) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 325, TTCN_Location::LOCATION_TEMPLATE, "cs_GprsTimer_v"); +charstring_list param_names; +param_names[0] = "p_Unit"; +param_names[1] = "p_Value"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_GprsTimer_v", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Unit, "p_Unit", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Value, "p_Value", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::GPRS__Timer_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.unit() = p__Unit; +ret_val.timerValue() = p__Value; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__GprsTimer__v_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::IdentityType_template cs__IdentityType(const BITSTRING& p__NAS__IdType) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 335, TTCN_Location::LOCATION_TEMPLATE, "cs_IdentityType"); +charstring_list param_names; +param_names[0] = "p_NAS_IdType"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_IdentityType", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NAS__IdType, "p_NAS_IdType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::IdentityType_template ret_val; +ret_val.spare() = bs_0; +ret_val.typeOfId() = p__NAS__IdType; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__IdentityType_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::LocAreaId_template cr__LAI(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__PLMN, const OCTETSTRING_template& p__LAC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 341, TTCN_Location::LOCATION_TEMPLATE, "cr_LAI"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_PLMN"; +param_names[2] = "p_LAC"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cr_LAI", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LAC, "p_LAC", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::LocAreaId_template ret_val; +ret_val.iei() = p__IEI; +ret_val.plmn() = p__PLMN; +ret_val.lac() = p__LAC; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__LAI_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::LocAreaId_template cs__LAI(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__PLMN, const OCTETSTRING_template& p__LAC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 353, TTCN_Location::LOCATION_TEMPLATE, "cs_LAI"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_PLMN"; +param_names[2] = "p_LAC"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_LAI", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LAC, "p_LAC", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::LocAreaId_template ret_val; +ret_val.iei() = p__IEI; +ret_val.plmn() = p__PLMN; +ret_val.lac() = p__LAC; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__LAI_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::LLC__SAPI_template cs__LLC__SAPI(const OCTETSTRING_template& p__IEI, const BITSTRING& p__LlcSapiValue) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 362, TTCN_Location::LOCATION_TEMPLATE, "cs_LLC_SAPI"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_LlcSapiValue"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_LLC_SAPI", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LlcSapiValue, "p_LlcSapiValue", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::LLC__SAPI_template ret_val; +ret_val.iei() = p__IEI; +ret_val.spare() = bs_3; +ret_val.llcSapiValue() = p__LlcSapiValue; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__LLC__SAPI_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::LLC__SAPI_template cs__LLC__SAPI__11(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 370, TTCN_Location::LOCATION_TEMPLATE, "cs_LLC_SAPI_11"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_LLC_SAPI_11", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::LLC__SAPI_template ret_val; +ret_val = cs__LLC__SAPI(p__IEI, bs_33); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__LLC__SAPI__11_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::LLC__SAPI_template cs__LLC__SAPI__03(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 371, TTCN_Location::LOCATION_TEMPLATE, "cs_LLC_SAPI_03"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_LLC_SAPI_03", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::LLC__SAPI_template ret_val; +ret_val = cs__LLC__SAPI(p__IEI, bs_9); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__LLC__SAPI__03_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cr__MobileIdAny(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 373, TTCN_Location::LOCATION_TEMPLATE, "cr_MobileIdAny"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_MobileIdAny", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = ANY_VALUE; +ret_val.idDigit1() = ANY_VALUE; +ret_val.oddEvenInd() = ANY_VALUE; +ret_val.typeOfId() = ANY_VALUE; +ret_val.otherDigits() = ANY_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__MobileIdAny_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cs__MobileIdentityGuti(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Guti) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 383, TTCN_Location::LOCATION_TEMPLATE, "cs_MobileIdentityGuti"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Guti"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_MobileIdentityGuti", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Guti, "p_Guti", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = int2oct((p__Guti.lengthof() + 1), 1); +ret_val.idDigit1() = bs_34; +ret_val.oddEvenInd() = bs_0; +ret_val.typeOfId() = bs_16; +ret_val.otherDigits() = p__Guti; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__MobileIdentityGuti_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cs__MobileIdentityImsi(const BITSTRING& p__FirstDigit, const BITSTRING& p__OddEvenInd, const OCTETSTRING& p__OtherDigits) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 396, TTCN_Location::LOCATION_TEMPLATE, "cs_MobileIdentityImsi"); +charstring_list param_names; +param_names[0] = "p_FirstDigit"; +param_names[1] = "p_OddEvenInd"; +param_names[2] = "p_OtherDigits"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_MobileIdentityImsi", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__FirstDigit, "p_FirstDigit", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OddEvenInd, "p_OddEvenInd", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OtherDigits, "p_OtherDigits", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val; +ret_val.iei() = os_21; +ret_val.iel() = int2oct((p__OtherDigits.lengthof() + 1), 1); +ret_val.idDigit1() = p__FirstDigit; +ret_val.oddEvenInd() = p__OddEvenInd; +ret_val.typeOfId() = bs_12; +ret_val.otherDigits() = p__OtherDigits; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__MobileIdentityImsi_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cds__MobileIdentityImsi__lv(const BITSTRING& p__FirstDigit, const BITSTRING& p__OddEvenInd, const OCTETSTRING& p__OtherDigits) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 408, TTCN_Location::LOCATION_TEMPLATE, "cds_MobileIdentityImsi_lv"); +charstring_list param_names; +param_names[0] = "p_FirstDigit"; +param_names[1] = "p_OddEvenInd"; +param_names[2] = "p_OtherDigits"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cds_MobileIdentityImsi_lv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__FirstDigit, "p_FirstDigit", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OddEvenInd, "p_OddEvenInd", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OtherDigits, "p_OtherDigits", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val(cs__MobileIdentityImsi(p__FirstDigit, p__OddEvenInd, p__OtherDigits)); +ret_val.iei() = OMIT_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cds__MobileIdentityImsi__lv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cs__MobileIdTMSIorPTMSI(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__TmsiPtmsi) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 416, TTCN_Location::LOCATION_TEMPLATE, "cs_MobileIdTMSIorPTMSI"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_TmsiPtmsi"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_MobileIdTMSIorPTMSI", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TmsiPtmsi, "p_TmsiPtmsi", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = os_22; +ret_val.idDigit1() = bs_34; +ret_val.oddEvenInd() = bs_0; +ret_val.typeOfId() = bs_15; +ret_val.otherDigits() = p__TmsiPtmsi; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__MobileIdTMSIorPTMSI_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cs__MobileIdTMSI(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Tmsi) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 427, TTCN_Location::LOCATION_TEMPLATE, "cs_MobileIdTMSI"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Tmsi"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_MobileIdTMSI", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Tmsi, "p_Tmsi", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val; +ret_val = cs__MobileIdTMSIorPTMSI(p__IEI, p__Tmsi); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__MobileIdTMSI_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cr__MobileIdTMSI__lv(const OCTETSTRING_template& p__Tmsi) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 432, TTCN_Location::LOCATION_TEMPLATE, "cr_MobileIdTMSI_lv"); +charstring_list param_names; +param_names[0] = "p_Tmsi"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_MobileIdTMSI_lv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Tmsi, "p_Tmsi", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = os_22; +ret_val.idDigit1() = bs_34; +ret_val.oddEvenInd() = bs_0; +ret_val.typeOfId() = bs_15; +ret_val.otherDigits() = p__Tmsi; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__MobileIdTMSI__lv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cdr__MobileIdTMSI__tlv(const OCTETSTRING_template& p__Tmsi, const OCTETSTRING& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 442, TTCN_Location::LOCATION_TEMPLATE, "cdr_MobileIdTMSI_tlv"); +charstring_list param_names; +param_names[0] = "p_Tmsi"; +param_names[1] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cdr_MobileIdTMSI_tlv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Tmsi, "p_Tmsi", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val(cr__MobileIdTMSI__lv(p__Tmsi)); +ret_val.iei() = p__IEI; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cdr__MobileIdTMSI__tlv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cr__MobileIdentityImei(const BITSTRING& p__FirstDigit, const BITSTRING& p__OddEvenInd, const OCTETSTRING& p__OtherDigits, const BITSTRING& p__NAS__IdType) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 449, TTCN_Location::LOCATION_TEMPLATE, "cr_MobileIdentityImei"); +charstring_list param_names; +param_names[0] = "p_FirstDigit"; +param_names[1] = "p_OddEvenInd"; +param_names[2] = "p_OtherDigits"; +param_names[3] = "p_NAS_IdType"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cr_MobileIdentityImei", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__FirstDigit, "p_FirstDigit", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OddEvenInd, "p_OddEvenInd", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OtherDigits, "p_OtherDigits", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NAS__IdType, "p_NAS_IdType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = int2oct((p__OtherDigits.lengthof() + 1), 1); +ret_val.idDigit1() = p__FirstDigit; +ret_val.oddEvenInd() = p__OddEvenInd; +ret_val.typeOfId() = p__NAS__IdType; +ret_val.otherDigits() = p__OtherDigits; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__MobileIdentityImei_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MobileIdentity_template cr__MobileIdentityImeisv(const BITSTRING& p__FirstDigit, const BITSTRING& p__OddEvenInd, const OCTETSTRING& p__OtherDigits) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 462, TTCN_Location::LOCATION_TEMPLATE, "cr_MobileIdentityImeisv"); +charstring_list param_names; +param_names[0] = "p_FirstDigit"; +param_names[1] = "p_OddEvenInd"; +param_names[2] = "p_OtherDigits"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cr_MobileIdentityImeisv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__FirstDigit, "p_FirstDigit", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OddEvenInd, "p_OddEvenInd", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OtherDigits, "p_OtherDigits", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MobileIdentity_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = int2oct((p__OtherDigits.lengthof() + 1), 1); +ret_val.idDigit1() = p__FirstDigit; +ret_val.oddEvenInd() = p__OddEvenInd; +ret_val.typeOfId() = bs_14; +ret_val.otherDigits() = p__OtherDigits; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__MobileIdentityImeisv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MS__Clsmk2_template cr__MS__Clsmk2__Any__tlv(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 474, TTCN_Location::LOCATION_TEMPLATE, "cr_MS_Clsmk2_Any_tlv"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_MS_Clsmk2_Any_tlv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MS__Clsmk2_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = os_24; +ret_val.spare1__1() = bs_0; +ret_val.revLvl() = ANY_VALUE; +ret_val.eSIND() = ANY_VALUE; +ret_val.a5__1() = ANY_VALUE; +ret_val.rFPwrCap() = ANY_VALUE; +ret_val.spare1__2() = bs_0; +ret_val.pSCap() = ANY_VALUE; +ret_val.sSSI() = ANY_VALUE; +ret_val.sMCap() = ANY_VALUE; +ret_val.vBS() = ANY_VALUE; +ret_val.vGCS() = ANY_VALUE; +ret_val.fC() = ANY_VALUE; +ret_val.cM3() = ANY_VALUE; +ret_val.spare1__3() = bs_0; +ret_val.lCSVA() = ANY_VALUE; +ret_val.uCS2() = ANY_VALUE; +ret_val.soLSA() = ANY_VALUE; +ret_val.cMSP() = ANY_VALUE; +ret_val.a5__3() = ANY_VALUE; +ret_val.a5__2() = ANY_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__MS__Clsmk2__Any__tlv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MS__Clsmk3_template cdr__MSCLSMK3__EutraCheck(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 605, TTCN_Location::LOCATION_TEMPLATE, "cdr_MSCLSMK3_EutraCheck"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cdr_MSCLSMK3_EutraCheck", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MS__Clsmk3_template ret_val(cr__MSCLSMK3__Any); +ret_val.iei() = p__IEI; +ret_val.iel() = OMIT_VALUE; +ret_val.eutraFDDSupport() = ANY_VALUE; +ret_val.eutraTDDSupport() = ANY_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cdr__MSCLSMK3__EutraCheck_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template cr__MS__NetworkFeatureSupport(const HEXSTRING& p__IEI, const BITSTRING_template& p__ExtdPeriodicTimers) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 663, TTCN_Location::LOCATION_TEMPLATE, "cr_MS_NetworkFeatureSupport"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_ExtdPeriodicTimers"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_MS_NetworkFeatureSupport", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ExtdPeriodicTimers, "p_ExtdPeriodicTimers", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template ret_val; +ret_val.iei() = p__IEI; +ret_val.spare() = bs_2; +ret_val.extdPeriodicTimers() = p__ExtdPeriodicTimers; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__MS__NetworkFeatureSupport_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::NwkResourceId_template cr__NwkResourceIdAny(const OCTETSTRING& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 679, TTCN_Location::LOCATION_TEMPLATE, "cr_NwkResourceIdAny"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_NwkResourceIdAny", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::NwkResourceId_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = ANY_VALUE; +ret_val.nriContainerValue() = ANY_VALUE; +ret_val.spareBits() = bs_5; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NwkResourceIdAny_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List(const NAS__CommonTypeDefs::PLMN__List_plmnList& p__PlmnIdList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 695, TTCN_Location::LOCATION_TEMPLATE, "cs_PLMN_List"); +charstring_list param_names; +param_names[0] = "p_PlmnIdList"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PLMN_List", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PlmnIdList, "p_PlmnIdList", "PLMN_List_plmnList", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PLMN__List_template ret_val; +ret_val.iei() = os_28; +ret_val.iel() = int2oct((p__PlmnIdList.lengthof() * 3), 1); +ret_val.plmnList() = p__PlmnIdList; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PLMN__List_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List__1PLMN(const OCTETSTRING& p__Plmn1) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 702, TTCN_Location::LOCATION_TEMPLATE, "cs_PLMN_List_1PLMN"); +charstring_list param_names; +param_names[0] = "p_Plmn1"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PLMN_List_1PLMN", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Plmn1, "p_Plmn1", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PLMN__List_template ret_val; +{ +NAS__CommonTypeDefs::PLMN__List_plmnList tmp_10; +tmp_10.set_size(1); +tmp_10[0] = p__Plmn1; +ret_val = cs__PLMN__List(tmp_10); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PLMN__List__1PLMN_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List__2PLMNs(const OCTETSTRING& p__Plmn1, const OCTETSTRING& p__Plmn2) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 706, TTCN_Location::LOCATION_TEMPLATE, "cs_PLMN_List_2PLMNs"); +charstring_list param_names; +param_names[0] = "p_Plmn1"; +param_names[1] = "p_Plmn2"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_PLMN_List_2PLMNs", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Plmn1, "p_Plmn1", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Plmn2, "p_Plmn2", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PLMN__List_template ret_val; +{ +NAS__CommonTypeDefs::PLMN__List_plmnList tmp_11; +tmp_11.set_size(2); +tmp_11[0] = p__Plmn1; +tmp_11[1] = p__Plmn2; +ret_val = cs__PLMN__List(tmp_11); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PLMN__List__2PLMNs_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List__3PLMNs(const OCTETSTRING& p__Plmn1, const OCTETSTRING& p__Plmn2, const OCTETSTRING& p__Plmn3) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 711, TTCN_Location::LOCATION_TEMPLATE, "cs_PLMN_List_3PLMNs"); +charstring_list param_names; +param_names[0] = "p_Plmn1"; +param_names[1] = "p_Plmn2"; +param_names[2] = "p_Plmn3"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_PLMN_List_3PLMNs", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Plmn1, "p_Plmn1", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Plmn2, "p_Plmn2", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Plmn3, "p_Plmn3", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PLMN__List_template ret_val; +{ +NAS__CommonTypeDefs::PLMN__List_plmnList tmp_12; +tmp_12.set_size(3); +tmp_12[0] = p__Plmn1; +tmp_12[1] = p__Plmn2; +tmp_12[2] = p__Plmn3; +ret_val = cs__PLMN__List(tmp_12); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PLMN__List__3PLMNs_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List__4PLMNs(const OCTETSTRING& p__Plmn1, const OCTETSTRING& p__Plmn2, const OCTETSTRING& p__Plmn3, const OCTETSTRING& p__Plmn4) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 717, TTCN_Location::LOCATION_TEMPLATE, "cs_PLMN_List_4PLMNs"); +charstring_list param_names; +param_names[0] = "p_Plmn1"; +param_names[1] = "p_Plmn2"; +param_names[2] = "p_Plmn3"; +param_names[3] = "p_Plmn4"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_PLMN_List_4PLMNs", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Plmn1, "p_Plmn1", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Plmn2, "p_Plmn2", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Plmn3, "p_Plmn3", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Plmn4, "p_Plmn4", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PLMN__List_template ret_val; +{ +NAS__CommonTypeDefs::PLMN__List_plmnList tmp_13; +tmp_13.set_size(4); +tmp_13[0] = p__Plmn1; +tmp_13[1] = p__Plmn2; +tmp_13[2] = p__Plmn3; +tmp_13[3] = p__Plmn4; +ret_val = cs__PLMN__List(tmp_13); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PLMN__List__4PLMNs_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::ProtocolContainer_template cs__ProtocolContainer__Common(const OCTETSTRING& p__ContainerId, const INTEGER& p__ContainerLength, const OCTETSTRING_template& p__Content) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 724, TTCN_Location::LOCATION_TEMPLATE, "cs_ProtocolContainer_Common"); +charstring_list param_names; +param_names[0] = "p_ContainerId"; +param_names[1] = "p_ContainerLength"; +param_names[2] = "p_Content"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_ProtocolContainer_Common", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ContainerId, "p_ContainerId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ContainerLength, "p_ContainerLength", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Content, "p_Content", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::ProtocolContainer_template ret_val; +ret_val.protocolID() = p__ContainerId; +ret_val.protocolLength() = int2oct(p__ContainerLength, 1); +ret_val.protocolLongLength() = OMIT_VALUE; +ret_val.content() = p__Content; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__ProtocolContainer__Common_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::ProtocolContainer_template cs__ProtocolContainer(const OCTETSTRING& p__ProtocolId, const OCTETSTRING& p__Content) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 734, TTCN_Location::LOCATION_TEMPLATE, "cs_ProtocolContainer"); +charstring_list param_names; +param_names[0] = "p_ProtocolId"; +param_names[1] = "p_Content"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_ProtocolContainer", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ProtocolId, "p_ProtocolId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Content, "p_Content", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::ProtocolContainer_template ret_val; +ret_val = cs__ProtocolContainer__Common(p__ProtocolId, p__Content.lengthof(), OCTETSTRING_template(p__Content)); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__ProtocolContainer_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::ProtocolConfigOptions_template cs__ProtocolConfigOptions__Common(const OCTETSTRING& p__Type4Length, const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p__ProtocolContainers) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 740, TTCN_Location::LOCATION_TEMPLATE, "cs_ProtocolConfigOptions_Common"); +charstring_list param_names; +param_names[0] = "p_Type4Length"; +param_names[1] = "p_ProtocolContainers"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_ProtocolConfigOptions_Common", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Type4Length, "p_Type4Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ProtocolContainers, "p_ProtocolContainers", "ProtocolConfigOptions_pco template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::ProtocolConfigOptions_template ret_val; +ret_val.iei() = os_29; +ret_val.iel() = p__Type4Length; +ret_val.ext() = bs_32; +ret_val.spare() = bs_3; +ret_val.configProtocol() = bs_2; +ret_val.pco() = p__ProtocolContainers; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__ProtocolConfigOptions__Common_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::ProtocolConfigOptions_template f__NAS__ProtocolConfigOptionsTX(const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p__ProtocolContainers) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 759, TTCN_Location::LOCATION_FUNCTION, "f_NAS_ProtocolConfigOptionsTX"); +charstring_list param_names; +param_names[0] = "p_ProtocolContainers"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_NAS_ProtocolConfigOptionsTX", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ProtocolContainers, "p_ProtocolContainers", "ProtocolConfigOptions_pco template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(761); +ttcn3_debugger.breakpoint_entry(761); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 761 */ +INTEGER v__Length(1); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(762); +ttcn3_debugger.breakpoint_entry(762); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 762 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(764); +ttcn3_debugger.breakpoint_entry(764); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 764 */ +i = 0; +current_location.update_lineno(764); +ttcn3_debugger.breakpoint_entry(764); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 764 */ +for ( ; ; ) { +current_location.update_lineno(764); +ttcn3_debugger.breakpoint_entry(764); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 764 */ +if (!(i < p__ProtocolContainers.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(765); +ttcn3_debugger.breakpoint_entry(765); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 765 */ +{ +INTEGER tmp_16; +tmp_16 = ((v__Length + oct2int(const_cast< const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template&>(p__ProtocolContainers)[i].protocolLength().valueof())) + 3); +v__Length = tmp_16; +} +current_location.update_lineno(764); +ttcn3_debugger.breakpoint_entry(764); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 764 */ +{ +INTEGER tmp_17; +++i; +} +} +current_location.update_lineno(767); +ttcn3_debugger.breakpoint_entry(767); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 767 */ +{ +NAS__CommonTypeDefs::ProtocolConfigOptions_template tmp_18; +return DEBUGGER_STORE_RETURN_VALUE(tmp_18, cs__ProtocolConfigOptions__Common(int2oct(v__Length, 1), p__ProtocolContainers)); +} +} + +NAS__CommonTypeDefs::ProtocolConfigOptions_template cs__ProtocolConfigOptions__OneOption(const NAS__CommonTypeDefs::ProtocolContainer_template& p__ProtocolContainer) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 770, TTCN_Location::LOCATION_TEMPLATE, "cs_ProtocolConfigOptions_OneOption"); +charstring_list param_names; +param_names[0] = "p_ProtocolContainer"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_ProtocolConfigOptions_OneOption", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ProtocolContainer, "p_ProtocolContainer", "ProtocolContainer template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::ProtocolConfigOptions_template ret_val; +{ +NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template tmp_19; +tmp_19.set_size(1); +tmp_19[0] = p__ProtocolContainer; +ret_val = f__NAS__ProtocolConfigOptionsTX(tmp_19); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__ProtocolConfigOptions__OneOption_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PTMSI__Signature_template cs__PTMSI__Signature(const OCTETSTRING& p__Ptmsi) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 794, TTCN_Location::LOCATION_TEMPLATE, "cs_PTMSI_Signature"); +charstring_list param_names; +param_names[0] = "p_Ptmsi"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PTMSI_Signature", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Ptmsi, "p_Ptmsi", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PTMSI__Signature_template ret_val; +ret_val.iei() = os_31; +ret_val.iel() = OMIT_VALUE; +ret_val.signatureValue() = p__Ptmsi; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PTMSI__Signature_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PTMSI__Signature_template cr__PTMSI__Signature(const OCTETSTRING_template& p__PtmsiSig) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 801, TTCN_Location::LOCATION_TEMPLATE, "cr_PTMSI_Signature"); +charstring_list param_names; +param_names[0] = "p_PtmsiSig"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_PTMSI_Signature", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PtmsiSig, "p_PtmsiSig", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PTMSI__Signature_template ret_val; +ret_val.iei() = os_31; +ret_val.iel() = OMIT_VALUE; +ret_val.signatureValue() = p__PtmsiSig; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__PTMSI__Signature_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::QualityOfService_template cds__QoS__Negotiated__4(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 881, TTCN_Location::LOCATION_TEMPLATE, "cds_QoS_Negotiated_4"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cds_QoS_Negotiated_4", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::QualityOfService_template ret_val(cs__QoS__PDP2(p__IEI)); +ret_val.relabilityClass() = bs_29; +ret_val.trafficClass() = bs_12; +ret_val.deliveryOrder() = bs_31; +ret_val.maxSduSize() = bs_46; +ret_val.maxBitRateUL() = bs_47; +ret_val.maxBitRateDL() = bs_47; +ret_val.residualBER() = bs_7; +ret_val.sduErrorRatio() = bs_7; +ret_val.transferDelay() = bs_48; +ret_val.sourceStatisticsDescriptor() = bs_7; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cds__QoS__Negotiated__4_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::QualityOfService_template cs__QoS__PDP2(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 901, TTCN_Location::LOCATION_TEMPLATE, "cs_QoS_PDP2"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoS_PDP2", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::QualityOfService_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = os_14; +ret_val.spare1() = bs_1; +ret_val.delayClass() = bs_15; +ret_val.relabilityClass() = bs_14; +ret_val.peakThroughput() = bs_11; +ret_val.spare2() = bs_0; +ret_val.precedenceClass() = bs_13; +ret_val.spare3() = bs_2; +ret_val.meanThroughput() = bs_50; +ret_val.trafficClass() = bs_15; +ret_val.deliveryOrder() = bs_30; +ret_val.deliveryErrorSDU() = bs_14; +ret_val.maxSduSize() = bs_41; +ret_val.maxBitRateUL() = bs_42; +ret_val.maxBitRateDL() = bs_42; +ret_val.residualBER() = bs_38; +ret_val.sduErrorRatio() = bs_10; +ret_val.transferDelay() = bs_5; +ret_val.trafficHandlingPrio() = bs_1; +ret_val.guaranteedBitRateUL() = bs_40; +ret_val.guaranteedBitRateDL() = bs_40; +ret_val.spare4() = bs_2; +ret_val.signallingInd() = bs_0; +ret_val.sourceStatisticsDescriptor() = bs_3; +ret_val.maxBitRateDL__Ext() = bs_40; +ret_val.guaranteedBitRateDL__Ext() = bs_40; +ret_val.maxBitRateUL__Ext() = bs_40; +ret_val.guaranteedBitRateUL__Ext() = bs_40; +ret_val.maxBitRateDL__Ext2() = OMIT_VALUE; +ret_val.guaranteedBitRateDL__Ext2() = OMIT_VALUE; +ret_val.maxBitRateUL__Ext2() = OMIT_VALUE; +ret_val.guaranteedBitRateUL__Ext2() = OMIT_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoS__PDP2_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::QualityOfService_template cds__QoS__PDP3(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 940, TTCN_Location::LOCATION_TEMPLATE, "cds_QoS_PDP3"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cds_QoS_PDP3", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::QualityOfService_template ret_val(cs__QoS__PDP2(p__IEI)); +ret_val.relabilityClass() = bs_29; +ret_val.deliveryErrorSDU() = bs_13; +ret_val.residualBER() = bs_10; +ret_val.sduErrorRatio() = bs_9; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cds__QoS__PDP3_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::QualityOfService_template cds__QoS__Converstational(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 948, TTCN_Location::LOCATION_TEMPLATE, "cds_QoS_Converstational"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cds_QoS_Converstational", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::QualityOfService_template ret_val(cs__QoS__PDP2(p__IEI)); +ret_val.relabilityClass() = bs_29; +ret_val.trafficClass() = bs_12; +ret_val.deliveryOrder() = bs_31; +ret_val.maxSduSize() = bs_46; +ret_val.maxBitRateUL() = bs_47; +ret_val.maxBitRateDL() = bs_47; +ret_val.residualBER() = bs_7; +ret_val.sduErrorRatio() = bs_7; +ret_val.transferDelay() = bs_48; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cds__QoS__Converstational_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::TrafficFlowTemplate_template cr__Tft(const OCTETSTRING_template& p__IEI, const BITSTRING_template& p__Code) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 961, TTCN_Location::LOCATION_TEMPLATE, "cr_Tft"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Code"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_Tft", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Code, "p_Code", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::TrafficFlowTemplate_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = ANY_VALUE; +ret_val.tftOperationCode() = p__Code; +ret_val.eBit() = ANY_VALUE; +{ +BITSTRING_template& tmp_20 = ret_val.noOfPktFilter(); +tmp_20.set_type(COMPLEMENTED_LIST, 1); +tmp_20.list_item(0) = bs_3; +} +ret_val.packetFilterList() = ANY_VALUE; +ret_val.parameterList() = ANY_OR_OMIT; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__Tft_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::TrafficFlowTemplate_template cs__TrafficFlowTemplate(const INTEGER& p__IeLength, const NAS__CommonTypeDefs::TrafficFlowTemplate_packetFilterList_template& p__PacketFilterList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 974, TTCN_Location::LOCATION_TEMPLATE, "cs_TrafficFlowTemplate"); +charstring_list param_names; +param_names[0] = "p_IeLength"; +param_names[1] = "p_PacketFilterList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_TrafficFlowTemplate", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IeLength, "p_IeLength", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PacketFilterList, "p_PacketFilterList", "TrafficFlowTemplate_packetFilterList template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::TrafficFlowTemplate_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = int2oct(p__IeLength, 1); +ret_val.tftOperationCode() = bs_12; +ret_val.eBit() = bs_0; +ret_val.noOfPktFilter() = int2bit(p__PacketFilterList.lengthof(), 4); +ret_val.packetFilterList() = p__PacketFilterList; +ret_val.parameterList() = OMIT_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__TrafficFlowTemplate_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::RadioPriority_template cs__RadioPriority(const HEXSTRING_template& p__IEI, const BITSTRING& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 999, TTCN_Location::LOCATION_TEMPLATE, "cs_RadioPriority"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_RadioPriority", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Val, "p_Val", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::RadioPriority_template ret_val; +ret_val.iei() = p__IEI; +ret_val.spare() = bs_0; +ret_val.levelValue() = p__Val; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__RadioPriority_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::RadioPriority_template cs__RadioPriorityHigh(const HEXSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1007, TTCN_Location::LOCATION_TEMPLATE, "cs_RadioPriorityHigh"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_RadioPriorityHigh", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::RadioPriority_template ret_val; +ret_val = cs__RadioPriority(p__IEI, bs_12); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__RadioPriorityHigh_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::RadioPriority_template cs__RadioPriorityLow(const HEXSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1008, TTCN_Location::LOCATION_TEMPLATE, "cs_RadioPriorityLow"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_RadioPriorityLow", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::RadioPriority_template ret_val; +ret_val = cs__RadioPriority(p__IEI, bs_15); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__RadioPriorityLow_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::TMSI__Status_template cr__TMSI__Status(const BITSTRING_template& p__TmsiStatus) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1010, TTCN_Location::LOCATION_TEMPLATE, "cr_TMSI_Status"); +charstring_list param_names; +param_names[0] = "p_TmsiStatus"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_TMSI_Status", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__TmsiStatus, "p_TmsiStatus", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::TMSI__Status_template ret_val; +ret_val.iei() = hs_2; +ret_val.spare3() = bs_2; +ret_val.flag() = p__TmsiStatus; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__TMSI__Status_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::UE__NetworkCap_template cr__UENetworkCap__Any(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1017, TTCN_Location::LOCATION_TEMPLATE, "cr_UENetworkCap_Any"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_UENetworkCap_Any", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::UE__NetworkCap_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = ANY_VALUE; +ret_val.eeaCap() = ANY_VALUE; +ret_val.eiaCap() = ANY_VALUE; +ret_val.ueaCap() = ANY_OR_OMIT; +ret_val.uiaCap() = ANY_OR_OMIT; +ret_val.srvcc__LPP__ProSeCap() = ANY_OR_OMIT; +ret_val.cIoT__proSeCap() = ANY_OR_OMIT; +ret_val.cIoT__V2X() = ANY_OR_OMIT; +ret_val.edt__WUS() = ANY_OR_OMIT; +ret_val.musim() = ANY_OR_OMIT; +ret_val.spare() = ANY_OR_OMIT; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__UENetworkCap__Any_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::UE__NetworkCap_template cdr__NR5GC__UENetworkCap(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1034, TTCN_Location::LOCATION_TEMPLATE, "cdr_NR5GC_UENetworkCap"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cdr_NR5GC_UENetworkCap", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::UE__NetworkCap_template ret_val(cr__UENetworkCap__Any(p__IEI)); +ret_val.cIoT__proSeCap() = bp_0; +ret_val.cIoT__V2X() = bp_1; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cdr__NR5GC__UENetworkCap_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::GPRS__Timer2_template cs__GPRS__Timer2__3__IEI(const OCTETSTRING_template& p__IEI, const BITSTRING& p__Unit, const BITSTRING& p__Value) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1050, TTCN_Location::LOCATION_TEMPLATE, "cs_GPRS_Timer2_3_IEI"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Unit"; +param_names[2] = "p_Value"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_GPRS_Timer2_3_IEI", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Unit, "p_Unit", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Value, "p_Value", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::GPRS__Timer2_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = os_5; +ret_val.unit() = p__Unit; +ret_val.gprsTimerValue() = p__Value; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__GPRS__Timer2__3__IEI_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::GPRS__Timer2_template cs__GprsTimer3(const OCTETSTRING_template& p__IEI, const BITSTRING& p__Unit, const BITSTRING& p__Value) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1060, TTCN_Location::LOCATION_TEMPLATE, "cs_GprsTimer3"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Unit"; +param_names[2] = "p_Value"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_GprsTimer3", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Unit, "p_Unit", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Value, "p_Value", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::GPRS__Timer2_template ret_val; +ret_val = cs__GPRS__Timer2__3__IEI(p__IEI, p__Unit, p__Value); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__GprsTimer3_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::GPRS__Timer2_template cr__GPRS__Timer2__3(const OCTETSTRING& p__IEI, const BITSTRING_template& p__Unit, const BITSTRING_template& p__Value) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1064, TTCN_Location::LOCATION_TEMPLATE, "cr_GPRS_Timer2_3"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Unit"; +param_names[2] = "p_Value"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cr_GPRS_Timer2_3", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Unit, "p_Unit", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Value, "p_Value", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::GPRS__Timer2_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = os_5; +ret_val.unit() = p__Unit; +ret_val.gprsTimerValue() = p__Value; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__GPRS__Timer2__3_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::TimeZoneAndTime_template cs__TimeZoneAndTime(const OCTETSTRING& p__Year, const OCTETSTRING& p__Month, const OCTETSTRING& p__Day, const OCTETSTRING& p__Hour, const OCTETSTRING& p__Minute, const OCTETSTRING& p__Second, const OCTETSTRING& p__TimeZone) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1074, TTCN_Location::LOCATION_TEMPLATE, "cs_TimeZoneAndTime"); +charstring_list param_names; +param_names[0] = "p_Year"; +param_names[1] = "p_Month"; +param_names[2] = "p_Day"; +param_names[3] = "p_Hour"; +param_names[4] = "p_Minute"; +param_names[5] = "p_Second"; +param_names[6] = "p_TimeZone"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +TTCN3_Debug_Function debug_scope("cs_TimeZoneAndTime", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Year, "p_Year", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Month, "p_Month", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Day, "p_Day", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Hour, "p_Hour", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Minute, "p_Minute", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Second, "p_Second", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TimeZone, "p_TimeZone", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::TimeZoneAndTime_template ret_val; +ret_val.iei() = os_33; +ret_val.year() = p__Year; +ret_val.month() = p__Month; +ret_val.day() = p__Day; +ret_val.hour() = p__Hour; +ret_val.minute() = p__Minute; +ret_val.second() = p__Second; +ret_val.timeZone() = p__TimeZone; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__TimeZoneAndTime_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::TimeZone_template cs__TimeZone(const OCTETSTRING& p__TimeZone) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1092, TTCN_Location::LOCATION_TEMPLATE, "cs_TimeZone"); +charstring_list param_names; +param_names[0] = "p_TimeZone"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_TimeZone", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__TimeZone, "p_TimeZone", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::TimeZone_template ret_val; +ret_val.iei() = os_34; +ret_val.timeZone() = p__TimeZone; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__TimeZone_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::NetworkName_template cs__NetworkName(const OCTETSTRING& p__Iei, const CHARSTRING& p__Name, const CommonDefs::Gsm7BitPacking__Type& p__Packing, const BITSTRING& p__AddCI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1098, TTCN_Location::LOCATION_TEMPLATE, "cs_NetworkName"); +charstring_list param_names; +param_names[0] = "p_Iei"; +param_names[1] = "p_Name"; +param_names[2] = "p_Packing"; +param_names[3] = "p_AddCI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_NetworkName", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Iei, "p_Iei", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Name, "p_Name", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Packing, "p_Packing", "Gsm7BitPacking_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.add_variable(&p__AddCI, "p_AddCI", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::NetworkName_template ret_val; +ret_val.iei() = p__Iei; +ret_val.iel() = int2oct((CommonDefs::f__CharPacking__IA5toGsm7Bit(p__Name, p__Packing, CommonDefs::f__CharPacking__IA5toGsm7Bit_p__NumFillbits_defval).lengthof() + 1), 1); +ret_val.ext() = bs_32; +ret_val.codingScheme() = f__ConvertPackingToCodingScheme(p__Packing); +ret_val.addCI() = p__AddCI; +ret_val.spareBitCnt() = int2bit(mod(p__Name.lengthof(), 8), 3); +ret_val.text() = CommonDefs::f__CharPacking__IA5toGsm7Bit(p__Name, p__Packing, CommonDefs::f__CharPacking__IA5toGsm7Bit_p__NumFillbits_defval); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NetworkName_err_descr_ptr); +return ret_val; +} + +BITSTRING f__ConvertPackingToCodingScheme(const CommonDefs::Gsm7BitPacking__Type& p__Gsm7BitPacking__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1119, TTCN_Location::LOCATION_FUNCTION, "f_ConvertPackingToCodingScheme"); +charstring_list param_names; +param_names[0] = "p_Gsm7BitPacking_Type"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ConvertPackingToCodingScheme", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Gsm7BitPacking__Type, "p_Gsm7BitPacking_Type", "Gsm7BitPacking_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(1121); +ttcn3_debugger.breakpoint_entry(1121); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1121 */ +BITSTRING v__CodingScheme(bs_2); +debug_scope.add_variable(&v__CodingScheme, "v_CodingScheme", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1123); +ttcn3_debugger.breakpoint_entry(1123); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1123 */ +if ((p__Gsm7BitPacking__Type == CommonDefs::Gsm7BitPacking__Type::SMS__Packing)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1123); +ttcn3_debugger.breakpoint_entry(1123); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1123 */ +v__CodingScheme = bs_2; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1123); +ttcn3_debugger.breakpoint_entry(1123); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1123 */ +CommonDefs::FatalError(cs_3, 1123, cs_4); +} +current_location.update_lineno(1127); +ttcn3_debugger.breakpoint_entry(1127); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1127 */ +{ +BITSTRING tmp_22; +return DEBUGGER_STORE_RETURN_VALUE(tmp_22, v__CodingScheme); +} +} + +NAS__CommonTypeDefs::DaylightSavingTime_template cs__DaylightSavingTime__tlv(const BITSTRING& p__DaylightSavingTime) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1130, TTCN_Location::LOCATION_TEMPLATE, "cs_DaylightSavingTime_tlv"); +charstring_list param_names; +param_names[0] = "p_DaylightSavingTime"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_DaylightSavingTime_tlv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__DaylightSavingTime, "p_DaylightSavingTime", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::DaylightSavingTime_template ret_val; +ret_val.iei() = os_35; +ret_val.iel() = os_5; +ret_val.spare() = bs_5; +ret_val.val() = p__DaylightSavingTime; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__DaylightSavingTime__tlv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompIPv4RemoteAddress(const CHARSTRING& p__RemoteAddress, const OCTETSTRING& p__Mask) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1142, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompIPv4RemoteAddress"); +charstring_list param_names; +param_names[0] = "p_RemoteAddress"; +param_names[1] = "p_Mask"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompIPv4RemoteAddress", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__RemoteAddress, "p_RemoteAddress", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Mask, "p_Mask", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_14; +ret_val.packetFilterComponentValue().ipv4RemoteAddress() = (CommonIP::f__Convert__IPv4Addr2OctString(p__RemoteAddress) + p__Mask); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompIPv4RemoteAddress_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompIPv6RemoteAddress(const CHARSTRING& p__RemoteAddress, const OCTETSTRING& p__Mask) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1153, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompIPv6RemoteAddress"); +charstring_list param_names; +param_names[0] = "p_RemoteAddress"; +param_names[1] = "p_Mask"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompIPv6RemoteAddress", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__RemoteAddress, "p_RemoteAddress", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Mask, "p_Mask", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_15; +ret_val.packetFilterComponentValue().ipv6RemoteAddress() = (CommonIP::f__Convert__IPv6Addr2OctString(p__RemoteAddress) + p__Mask); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompIPv6RemoteAddress_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompProtocolIdNextHeader(const OCTETSTRING& p__ProtocolIdNextHeader) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1163, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompProtocolIdNextHeader"); +charstring_list param_names; +param_names[0] = "p_ProtocolIdNextHeader"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompProtocolIdNextHeader", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ProtocolIdNextHeader, "p_ProtocolIdNextHeader", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_10; +ret_val.packetFilterComponentValue().protocolIdNextHeader() = p__ProtocolIdNextHeader; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompProtocolIdNextHeader_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompSingleLocalPort(const INTEGER& p__PortNumber) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1178, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompSingleLocalPort"); +charstring_list param_names; +param_names[0] = "p_PortNumber"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompSingleLocalPort", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PortNumber, "p_PortNumber", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_16; +ret_val.packetFilterComponentValue().singleLocalPort() = int2oct(p__PortNumber, 2); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompSingleLocalPort_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompLocalPortRange(const INTEGER& p__PortLow, const INTEGER& p__PortHigh) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1187, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompLocalPortRange"); +charstring_list param_names; +param_names[0] = "p_PortLow"; +param_names[1] = "p_PortHigh"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompLocalPortRange", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PortLow, "p_PortLow", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PortHigh, "p_PortHigh", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_17; +ret_val.packetFilterComponentValue().localPortRange() = (int2oct(p__PortLow, 2) + int2oct(p__PortHigh, 2)); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompLocalPortRange_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompSingleRemotePort(const INTEGER& p__PortNumber) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1197, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompSingleRemotePort"); +charstring_list param_names; +param_names[0] = "p_PortNumber"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompSingleRemotePort", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PortNumber, "p_PortNumber", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_40; +ret_val.packetFilterComponentValue().singleRemotePort() = int2oct(p__PortNumber, 2); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompSingleRemotePort_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompRemotePortRange(const INTEGER& p__PortLow, const INTEGER& p__PortHigh) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1205, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompRemotePortRange"); +charstring_list param_names; +param_names[0] = "p_PortLow"; +param_names[1] = "p_PortHigh"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompRemotePortRange", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PortLow, "p_PortLow", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PortHigh, "p_PortHigh", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_41; +ret_val.packetFilterComponentValue().remotePortRange() = (int2oct(p__PortLow, 2) + int2oct(p__PortHigh, 2)); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompRemotePortRange_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompTOSTrafficClass(const OCTETSTRING& p__TOSTrafficClass) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1215, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompTOSTrafficClass"); +charstring_list param_names; +param_names[0] = "p_TOSTrafficClass"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompTOSTrafficClass", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__TOSTrafficClass, "p_TOSTrafficClass", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_42; +ret_val.packetFilterComponentValue().typeOfServiceTrafficClass() = p__TOSTrafficClass; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompTOSTrafficClass_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompIPSecSPI(const OCTETSTRING& p__IPSecSPI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1224, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompIPSecSPI"); +charstring_list param_names; +param_names[0] = "p_IPSecSPI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompIPSecSPI", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IPSecSPI, "p_IPSecSPI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_43; +ret_val.packetFilterComponentValue().securityParameterIndex() = p__IPSecSPI; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompIPSecSPI_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompFlowLabel(const OCTETSTRING& p__FlowLabel) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1233, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompFlowLabel"); +charstring_list param_names; +param_names[0] = "p_FlowLabel"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompFlowLabel", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__FlowLabel, "p_FlowLabel", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val.id() = os_44; +ret_val.packetFilterComponentValue().flowLabel() = p__FlowLabel; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompFlowLabel_err_descr_ptr); +return ret_val; +} + +void f__Get__PacketFilter__10__9__1(NAS__CommonTypeDefs::PacketFilter_template& p__PacketFilterByRef, INTEGER& p__PacketFilterLengthByRef, const BOOLEAN& p__IpTypeIsIPv4, const INTEGER& p__PacketFilterID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1250, TTCN_Location::LOCATION_FUNCTION, "f_Get_PacketFilter_10_9_1"); +p__PacketFilterByRef.clean_up(); +p__PacketFilterLengthByRef.clean_up(); +charstring_list param_names; +param_names[0] = "p_PacketFilterByRef"; +param_names[1] = "p_PacketFilterLengthByRef"; +param_names[2] = "p_IpTypeIsIPv4"; +param_names[3] = "p_PacketFilterID"; +charstring_list param_types; +param_types[0] = "out"; +param_types[1] = "out"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_Get_PacketFilter_10_9_1", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PacketFilterByRef, "p_PacketFilterByRef", "PacketFilter template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PacketFilterLengthByRef, "p_PacketFilterLengthByRef", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.add_variable(&p__IpTypeIsIPv4, "p_IpTypeIsIPv4", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PacketFilterID, "p_PacketFilterID", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1255); +ttcn3_debugger.breakpoint_entry(1255); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1255 */ +CHARSTRING v__IPv4RemoteAddress(cs_5); +debug_scope.add_variable(&v__IPv4RemoteAddress, "v_IPv4RemoteAddress", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1256); +ttcn3_debugger.breakpoint_entry(1256); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1256 */ +OCTETSTRING v__IPv4SubnetMask(os_45); +debug_scope.add_variable(&v__IPv4SubnetMask, "v_IPv4SubnetMask", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1257); +ttcn3_debugger.breakpoint_entry(1257); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1257 */ +CHARSTRING v__IPv6RemoteAddress(cs_6); +debug_scope.add_variable(&v__IPv6RemoteAddress, "v_IPv6RemoteAddress", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1258); +ttcn3_debugger.breakpoint_entry(1258); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1258 */ +OCTETSTRING v__IPv6SubnetMask(os_46); +debug_scope.add_variable(&v__IPv6SubnetMask, "v_IPv6SubnetMask", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1260); +ttcn3_debugger.breakpoint_entry(1260); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1260 */ +INTEGER v__FilterCount(0); +debug_scope.add_variable(&v__FilterCount, "v_FilterCount", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1261); +ttcn3_debugger.breakpoint_entry(1261); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1261 */ +NAS__CommonTypeDefs::PacketFilter_template v__Filter; +debug_scope.add_variable(&v__Filter, "v_Filter", "PacketFilter template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +{ +const INTEGER &tmp_24 = p__PacketFilterID; +switch(tmp_24.get_long_long_val()) { +case(1): +{ +current_location.update_lineno(1266); +ttcn3_debugger.breakpoint_entry(1266); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1266 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1267); +ttcn3_debugger.breakpoint_entry(1267); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1267 */ +v__Filter.direction() = bs_31; +current_location.update_lineno(1268); +ttcn3_debugger.breakpoint_entry(1268); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1268 */ +v__Filter.iei() = hs_3; +current_location.update_lineno(1269); +ttcn3_debugger.breakpoint_entry(1269); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1269 */ +v__Filter.precedence() = bs_18; +current_location.update_lineno(1270); +ttcn3_debugger.breakpoint_entry(1270); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1270 */ +v__Filter.contents()[0] = cs__PktFilterCompProtocolIdNextHeaderUDP; +current_location.update_lineno(1271); +ttcn3_debugger.breakpoint_entry(1271); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1271 */ +{ +INTEGER tmp_30; +tmp_30 = (v__FilterCount + 2); +v__FilterCount = tmp_30; +} +current_location.update_lineno(1272); +ttcn3_debugger.breakpoint_entry(1272); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1272 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1273); +ttcn3_debugger.breakpoint_entry(1273); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1273 */ +v__Filter.contents()[1] = cs__PktFilterCompIPv4RemoteAddress(v__IPv4RemoteAddress, v__IPv4SubnetMask); +current_location.update_lineno(1274); +ttcn3_debugger.breakpoint_entry(1274); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1274 */ +{ +INTEGER tmp_32; +tmp_32 = (v__FilterCount + 9); +v__FilterCount = tmp_32; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1277); +ttcn3_debugger.breakpoint_entry(1277); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1277 */ +v__Filter.contents()[1] = cs__PktFilterCompIPv6RemoteAddress(v__IPv6RemoteAddress, v__IPv6SubnetMask); +current_location.update_lineno(1278); +ttcn3_debugger.breakpoint_entry(1278); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1278 */ +{ +INTEGER tmp_34; +tmp_34 = (v__FilterCount + 33); +v__FilterCount = tmp_34; +} +} +current_location.update_lineno(1280); +ttcn3_debugger.breakpoint_entry(1280); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1280 */ +v__Filter.contents()[2] = cs__PktFilterCompSingleLocalPort(60001); +current_location.update_lineno(1281); +ttcn3_debugger.breakpoint_entry(1281); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1281 */ +{ +INTEGER tmp_36; +tmp_36 = (v__FilterCount + 3); +v__FilterCount = tmp_36; +} +current_location.update_lineno(1282); +ttcn3_debugger.breakpoint_entry(1282); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1282 */ +v__Filter.contents()[3] = cs__PktFilterCompRemotePortRange(60350, 60450); +current_location.update_lineno(1283); +ttcn3_debugger.breakpoint_entry(1283); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1283 */ +{ +INTEGER tmp_38; +tmp_38 = (v__FilterCount + 5); +v__FilterCount = tmp_38; +} +current_location.update_lineno(1284); +ttcn3_debugger.breakpoint_entry(1284); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1284 */ +v__Filter.contents()[4] = cs__PktFilterCompTOSTrafficClass(os_47); +current_location.update_lineno(1285); +ttcn3_debugger.breakpoint_entry(1285); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1285 */ +{ +INTEGER tmp_40; +tmp_40 = (v__FilterCount + 3); +v__FilterCount = tmp_40; +} +break; +} +case(2): +{ +current_location.update_lineno(1288); +ttcn3_debugger.breakpoint_entry(1288); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1288 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1289); +ttcn3_debugger.breakpoint_entry(1289); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1289 */ +v__Filter.direction() = bs_31; +current_location.update_lineno(1290); +ttcn3_debugger.breakpoint_entry(1290); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1290 */ +v__Filter.iei() = hs_4; +current_location.update_lineno(1291); +ttcn3_debugger.breakpoint_entry(1291); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1291 */ +v__Filter.precedence() = bs_51; +current_location.update_lineno(1292); +ttcn3_debugger.breakpoint_entry(1292); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1292 */ +v__Filter.contents()[0] = cs__PktFilterCompProtocolIdNextHeaderUDP; +current_location.update_lineno(1293); +ttcn3_debugger.breakpoint_entry(1293); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1293 */ +{ +INTEGER tmp_46; +tmp_46 = (v__FilterCount + 2); +v__FilterCount = tmp_46; +} +current_location.update_lineno(1294); +ttcn3_debugger.breakpoint_entry(1294); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1294 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1295); +ttcn3_debugger.breakpoint_entry(1295); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1295 */ +v__Filter.contents()[1] = cs__PktFilterCompIPv4RemoteAddress(v__IPv4RemoteAddress, v__IPv4SubnetMask); +current_location.update_lineno(1296); +ttcn3_debugger.breakpoint_entry(1296); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1296 */ +{ +INTEGER tmp_48; +tmp_48 = (v__FilterCount + 9); +v__FilterCount = tmp_48; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1299); +ttcn3_debugger.breakpoint_entry(1299); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1299 */ +v__Filter.contents()[1] = cs__PktFilterCompIPv6RemoteAddress(v__IPv6RemoteAddress, v__IPv6SubnetMask); +current_location.update_lineno(1300); +ttcn3_debugger.breakpoint_entry(1300); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1300 */ +{ +INTEGER tmp_50; +tmp_50 = (v__FilterCount + 33); +v__FilterCount = tmp_50; +} +} +current_location.update_lineno(1302); +ttcn3_debugger.breakpoint_entry(1302); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1302 */ +v__Filter.contents()[2] = cs__PktFilterCompLocalPortRange(60000, 60100); +current_location.update_lineno(1303); +ttcn3_debugger.breakpoint_entry(1303); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1303 */ +{ +INTEGER tmp_52; +tmp_52 = (v__FilterCount + 5); +v__FilterCount = tmp_52; +} +current_location.update_lineno(1304); +ttcn3_debugger.breakpoint_entry(1304); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1304 */ +v__Filter.contents()[3] = cs__PktFilterCompSingleRemotePort(60350); +current_location.update_lineno(1305); +ttcn3_debugger.breakpoint_entry(1305); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1305 */ +{ +INTEGER tmp_54; +tmp_54 = (v__FilterCount + 3); +v__FilterCount = tmp_54; +} +current_location.update_lineno(1306); +ttcn3_debugger.breakpoint_entry(1306); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1306 */ +v__Filter.contents()[4] = cs__PktFilterCompTOSTrafficClass(os_47); +current_location.update_lineno(1307); +ttcn3_debugger.breakpoint_entry(1307); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1307 */ +{ +INTEGER tmp_56; +tmp_56 = (v__FilterCount + 3); +v__FilterCount = tmp_56; +} +break; +} +case(3): +{ +current_location.update_lineno(1310); +ttcn3_debugger.breakpoint_entry(1310); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1310 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1311); +ttcn3_debugger.breakpoint_entry(1311); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1311 */ +v__Filter.direction() = bs_31; +current_location.update_lineno(1312); +ttcn3_debugger.breakpoint_entry(1312); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1312 */ +v__Filter.iei() = hs_5; +current_location.update_lineno(1313); +ttcn3_debugger.breakpoint_entry(1313); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1313 */ +v__Filter.precedence() = bs_52; +current_location.update_lineno(1314); +ttcn3_debugger.breakpoint_entry(1314); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1314 */ +v__Filter.contents()[0] = cs__PktFilterCompProtocolIdNextHeaderIPSec; +current_location.update_lineno(1315); +ttcn3_debugger.breakpoint_entry(1315); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1315 */ +{ +INTEGER tmp_62; +tmp_62 = (v__FilterCount + 2); +v__FilterCount = tmp_62; +} +current_location.update_lineno(1316); +ttcn3_debugger.breakpoint_entry(1316); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1316 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1317); +ttcn3_debugger.breakpoint_entry(1317); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1317 */ +v__Filter.contents()[1] = cs__PktFilterCompIPv4RemoteAddress(v__IPv4RemoteAddress, v__IPv4SubnetMask); +current_location.update_lineno(1318); +ttcn3_debugger.breakpoint_entry(1318); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1318 */ +{ +INTEGER tmp_64; +tmp_64 = (v__FilterCount + 9); +v__FilterCount = tmp_64; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1321); +ttcn3_debugger.breakpoint_entry(1321); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1321 */ +v__Filter.contents()[1] = cs__PktFilterCompIPv6RemoteAddress(v__IPv6RemoteAddress, v__IPv6SubnetMask); +current_location.update_lineno(1322); +ttcn3_debugger.breakpoint_entry(1322); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1322 */ +{ +INTEGER tmp_66; +tmp_66 = (v__FilterCount + 33); +v__FilterCount = tmp_66; +} +} +current_location.update_lineno(1324); +ttcn3_debugger.breakpoint_entry(1324); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1324 */ +v__Filter.contents()[2] = cs__PktFilterCompIPSecSPI(os_48); +current_location.update_lineno(1325); +ttcn3_debugger.breakpoint_entry(1325); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1325 */ +{ +INTEGER tmp_68; +tmp_68 = (v__FilterCount + 5); +v__FilterCount = tmp_68; +} +current_location.update_lineno(1326); +ttcn3_debugger.breakpoint_entry(1326); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1326 */ +v__Filter.contents()[3] = cs__PktFilterCompTOSTrafficClass(os_49); +current_location.update_lineno(1327); +ttcn3_debugger.breakpoint_entry(1327); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1327 */ +{ +INTEGER tmp_70; +tmp_70 = (v__FilterCount + 3); +v__FilterCount = tmp_70; +} +break; +} +case(4): +{ +current_location.update_lineno(1330); +ttcn3_debugger.breakpoint_entry(1330); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1330 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1331); +ttcn3_debugger.breakpoint_entry(1331); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1331 */ +v__Filter.direction() = bs_31; +current_location.update_lineno(1332); +ttcn3_debugger.breakpoint_entry(1332); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1332 */ +v__Filter.iei() = hs_6; +current_location.update_lineno(1333); +ttcn3_debugger.breakpoint_entry(1333); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1333 */ +v__Filter.precedence() = bs_53; +current_location.update_lineno(1334); +ttcn3_debugger.breakpoint_entry(1334); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1334 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1335); +ttcn3_debugger.breakpoint_entry(1335); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1335 */ +v__Filter.contents()[0] = cs__PktFilterCompIPv4RemoteAddress(v__IPv4RemoteAddress, v__IPv4SubnetMask); +current_location.update_lineno(1336); +ttcn3_debugger.breakpoint_entry(1336); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1336 */ +{ +INTEGER tmp_76; +tmp_76 = (v__FilterCount + 9); +v__FilterCount = tmp_76; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1339); +ttcn3_debugger.breakpoint_entry(1339); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1339 */ +v__Filter.contents()[0] = cs__PktFilterCompIPv6RemoteAddress(v__IPv6RemoteAddress, v__IPv6SubnetMask); +current_location.update_lineno(1340); +ttcn3_debugger.breakpoint_entry(1340); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1340 */ +{ +INTEGER tmp_78; +tmp_78 = (v__FilterCount + 33); +v__FilterCount = tmp_78; +} +} +current_location.update_lineno(1342); +ttcn3_debugger.breakpoint_entry(1342); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1342 */ +v__Filter.contents()[1] = cs__PktFilterCompTOSTrafficClass(os_50); +current_location.update_lineno(1343); +ttcn3_debugger.breakpoint_entry(1343); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1343 */ +{ +INTEGER tmp_80; +tmp_80 = (v__FilterCount + 3); +v__FilterCount = tmp_80; +} +current_location.update_lineno(1344); +ttcn3_debugger.breakpoint_entry(1344); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1344 */ +v__Filter.contents()[2] = cs__PktFilterCompFlowLabel(os_51); +current_location.update_lineno(1345); +ttcn3_debugger.breakpoint_entry(1345); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1345 */ +{ +INTEGER tmp_82; +tmp_82 = (v__FilterCount + 4); +v__FilterCount = tmp_82; +} +break; +} +case(5): +{ +current_location.update_lineno(1348); +ttcn3_debugger.breakpoint_entry(1348); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1348 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1349); +ttcn3_debugger.breakpoint_entry(1349); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1349 */ +v__Filter.direction() = bs_31; +current_location.update_lineno(1350); +ttcn3_debugger.breakpoint_entry(1350); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1350 */ +v__Filter.iei() = hs_7; +current_location.update_lineno(1351); +ttcn3_debugger.breakpoint_entry(1351); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1351 */ +v__Filter.precedence() = bs_54; +current_location.update_lineno(1352); +ttcn3_debugger.breakpoint_entry(1352); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1352 */ +if (p__IpTypeIsIPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1353); +ttcn3_debugger.breakpoint_entry(1353); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1353 */ +v__Filter.contents()[0] = cs__PktFilterCompIPv4RemoteAddress(v__IPv4RemoteAddress, v__IPv4SubnetMask); +current_location.update_lineno(1354); +ttcn3_debugger.breakpoint_entry(1354); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1354 */ +{ +INTEGER tmp_88; +tmp_88 = (v__FilterCount + 9); +v__FilterCount = tmp_88; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1357); +ttcn3_debugger.breakpoint_entry(1357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1357 */ +v__Filter.contents()[0] = cs__PktFilterCompIPv6RemoteAddress(v__IPv6RemoteAddress, v__IPv6SubnetMask); +current_location.update_lineno(1358); +ttcn3_debugger.breakpoint_entry(1358); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1358 */ +{ +INTEGER tmp_90; +tmp_90 = (v__FilterCount + 33); +v__FilterCount = tmp_90; +} +} +break; +} +default: +{ +current_location.update_lineno(1363); +ttcn3_debugger.breakpoint_entry(1363); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1363 */ +CommonDefs::FatalError(cs_3, 1363, cs_7); +break; +} +};} +current_location.update_lineno(1366); +ttcn3_debugger.breakpoint_entry(1366); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1366 */ +v__Filter.iel() = int2oct(v__FilterCount, 1); +current_location.update_lineno(1368); +ttcn3_debugger.breakpoint_entry(1368); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1368 */ +p__PacketFilterByRef = v__Filter; +current_location.update_lineno(1369); +ttcn3_debugger.breakpoint_entry(1369); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1369 */ +p__PacketFilterLengthByRef = (v__FilterCount + 3); +} + +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template cs__NAS__KeySetIdentifier__lv(const BITSTRING& p__NasKeySetId, const BITSTRING& p__Tsc) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1391, TTCN_Location::LOCATION_TEMPLATE, "cs_NAS_KeySetIdentifier_lv"); +charstring_list param_names; +param_names[0] = "p_NasKeySetId"; +param_names[1] = "p_Tsc"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NAS_KeySetIdentifier_lv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NasKeySetId, "p_NasKeySetId", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Tsc, "p_Tsc", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.tsc() = p__Tsc; +ret_val.nasKeySetId() = p__NasKeySetId; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NAS__KeySetIdentifier__lv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template cr__NAS__KeySetIdentifier(const BITSTRING_template& p__KsiValue, const BITSTRING_template& p__Tsc) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1399, TTCN_Location::LOCATION_TEMPLATE, "cr_NAS_KeySetIdentifier"); +charstring_list param_names; +param_names[0] = "p_KsiValue"; +param_names[1] = "p_Tsc"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_NAS_KeySetIdentifier", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__KsiValue, "p_KsiValue", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Tsc, "p_Tsc", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.tsc() = p__Tsc; +ret_val.nasKeySetId() = p__KsiValue; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NAS__KeySetIdentifier_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template cdr__NAS__KeySetIdentifier__tlv(const BITSTRING_template& p__KsiValue, const BITSTRING_template& p__Tsc) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1407, TTCN_Location::LOCATION_TEMPLATE, "cdr_NAS_KeySetIdentifier_tlv"); +charstring_list param_names; +param_names[0] = "p_KsiValue"; +param_names[1] = "p_Tsc"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cdr_NAS_KeySetIdentifier_tlv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__KsiValue, "p_KsiValue", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Tsc, "p_Tsc", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template ret_val(cr__NAS__KeySetIdentifier(p__KsiValue, p__Tsc)); +ret_val.iei() = hs_8; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cdr__NAS__KeySetIdentifier__tlv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::AuthenticationResponseParameter_template cr__AuthenticationResponseParameter__lv(const BITSTRING_template& p__ExpectedRES) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1414, TTCN_Location::LOCATION_TEMPLATE, "cr_AuthenticationResponseParameter_lv"); +charstring_list param_names; +param_names[0] = "p_ExpectedRES"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_AuthenticationResponseParameter_lv", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ExpectedRES, "p_ExpectedRES", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::AuthenticationResponseParameter_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = ANY_VALUE; +ret_val.res() = p__ExpectedRES; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__AuthenticationResponseParameter__lv_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::IMEISV__Request_template cs__IMEISV__Request__WithIEI(const BITSTRING& p__Value) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1421, TTCN_Location::LOCATION_TEMPLATE, "cs_IMEISV_Request_WithIEI"); +charstring_list param_names; +param_names[0] = "p_Value"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_IMEISV_Request_WithIEI", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Value, "p_Value", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::IMEISV__Request_template ret_val; +ret_val.iei() = hs_9; +ret_val.spare() = bs_0; +ret_val.requestValue() = p__Value; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__IMEISV__Request__WithIEI_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template cs__NAS__SecurityAlgorithms(const BITSTRING& p__CipheringType, const BITSTRING& p__IntegrityType, const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1428, TTCN_Location::LOCATION_TEMPLATE, "cs_NAS_SecurityAlgorithms"); +charstring_list param_names; +param_names[0] = "p_CipheringType"; +param_names[1] = "p_IntegrityType"; +param_names[2] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_NAS_SecurityAlgorithms", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__CipheringType, "p_CipheringType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IntegrityType, "p_IntegrityType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template ret_val; +ret_val.iei() = p__IEI; +ret_val.spare1() = bs_0; +ret_val.cipheringType() = p__CipheringType; +ret_val.spare2() = bs_0; +ret_val.integrityType() = p__IntegrityType; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NAS__SecurityAlgorithms_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template cs__ExtdPCO(const OCTETSTRING& p__Length, const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template& p__ProtocolContainers) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1439, TTCN_Location::LOCATION_TEMPLATE, "cs_ExtdPCO"); +charstring_list param_names; +param_names[0] = "p_Length"; +param_names[1] = "p_ProtocolContainers"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_ExtdPCO", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ProtocolContainers, "p_ProtocolContainers", "NAS_ExtdProtocolConfigOptions_Type template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template ret_val; +ret_val.iei() = os_30; +ret_val.iel() = p__Length; +ret_val.ext() = bs_32; +ret_val.spare() = bs_3; +ret_val.configProtocol() = bs_2; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco_template tmp_94; +if (!conv_NAS__CommonTypeDefs_NAS__ExtdProtocolConfigOptions__Type_NAS__CommonTypeDefs_ExtdProtocolConfigOptions_pco(tmp_94, p__ProtocolContainers)) TTCN_error("Values or templates of types `@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.pco' and `@NAS_CommonTypeDefs.NAS_ExtdProtocolConfigOptions_Type' are not compatible at run-time"); +ret_val.pco() = tmp_94; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__ExtdPCO_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::DRXParamCommon_template cr__DRXParamCommonAny(const OCTETSTRING& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1451, TTCN_Location::LOCATION_TEMPLATE, "cr_DRXParamCommonAny"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_DRXParamCommonAny", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::DRXParamCommon_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = ANY_VALUE; +ret_val.spare() = bs_3; +ret_val.drxValue() = ANY_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__DRXParamCommonAny_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::UERadioCapIdDeletion_template cs__UERadioCapIdDeletion(const HEXSTRING_template& p__IEI, const BITSTRING& p__DeleteReq) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1475, TTCN_Location::LOCATION_TEMPLATE, "cs_UERadioCapIdDeletion"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_DeleteReq"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_UERadioCapIdDeletion", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DeleteReq, "p_DeleteReq", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::UERadioCapIdDeletion_template ret_val; +ret_val.iei() = p__IEI; +ret_val.spare() = bs_0; +ret_val.deleteReq() = p__DeleteReq; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__UERadioCapIdDeletion_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::UE__RequestType_template cr__UE__RequestType(const BITSTRING_template& p__ReqType) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1483, TTCN_Location::LOCATION_TEMPLATE, "cr_UE_RequestType"); +charstring_list param_names; +param_names[0] = "p_ReqType"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_UE_RequestType", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ReqType, "p_ReqType", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::UE__RequestType_template ret_val; +ret_val.iei() = os_54; +ret_val.iel() = os_5; +ret_val.spare() = bs_3; +ret_val.requestType() = p__ReqType; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__UE__RequestType_err_descr_ptr); +return ret_val; +} + +CommonDefs::QosFlow__Identification__Type_template cs__IP__QosFlowId(const INTEGER& p__PDU__SessionId, const INTEGER& p__QFI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1494, TTCN_Location::LOCATION_TEMPLATE, "cs_IP_QosFlowId"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_QFI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_IP_QosFlowId", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__QFI, "p_QFI", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +CommonDefs::QosFlow__Identification__Type_template ret_val; +ret_val.PDU__SessionId() = p__PDU__SessionId; +ret_val.QFI() = p__QFI; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__IP__QosFlowId_err_descr_ptr); +return ret_val; +} + +INTEGER f__QoS__MaximumBitRate(const BITSTRING& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1507, TTCN_Location::LOCATION_FUNCTION, "f_QoS_MaximumBitRate"); +charstring_list param_names; +param_names[0] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_QoS_MaximumBitRate", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Val, "p_Val", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1509); +ttcn3_debugger.breakpoint_entry(1509); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1509 */ +INTEGER v__Val(bit2int(p__Val)); +debug_scope.add_variable(&v__Val, "v_Val", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1510); +ttcn3_debugger.breakpoint_entry(1510); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1510 */ +{ +boolean tmp_95; +tmp_95 = (v__Val >= 1); +if (tmp_95) tmp_95 = (v__Val <= 63); +if (tmp_95) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1511); +ttcn3_debugger.breakpoint_entry(1511); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1511 */ +{ +INTEGER tmp_96; +return DEBUGGER_STORE_RETURN_VALUE(tmp_96, v__Val); +} +} +} +current_location.update_lineno(1513); +ttcn3_debugger.breakpoint_entry(1513); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1513 */ +{ +boolean tmp_97; +tmp_97 = (v__Val >= 64); +if (tmp_97) tmp_97 = (v__Val <= 127); +if (tmp_97) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1514); +ttcn3_debugger.breakpoint_entry(1514); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1514 */ +{ +INTEGER tmp_98; +return DEBUGGER_STORE_RETURN_VALUE(tmp_98, (64 + ((v__Val - 64) * 8))); +} +} +} +current_location.update_lineno(1516); +ttcn3_debugger.breakpoint_entry(1516); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1516 */ +{ +boolean tmp_99; +tmp_99 = (v__Val >= 128); +if (tmp_99) tmp_99 = (v__Val <= 254); +if (tmp_99) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1517); +ttcn3_debugger.breakpoint_entry(1517); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1517 */ +{ +INTEGER tmp_100; +return DEBUGGER_STORE_RETURN_VALUE(tmp_100, (576 + ((v__Val - 128) * 64))); +} +} +} +current_location.update_lineno(1519); +ttcn3_debugger.breakpoint_entry(1519); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1519 */ +if ((v__Val == 255)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1520); +ttcn3_debugger.breakpoint_entry(1520); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1520 */ +{ +INTEGER tmp_101; +return DEBUGGER_STORE_RETURN_VALUE(tmp_101, 0); +} +} +current_location.update_lineno(1522); +ttcn3_debugger.breakpoint_entry(1522); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1522 */ +{ +INTEGER tmp_102; +return DEBUGGER_STORE_RETURN_VALUE(tmp_102, 0); +} +} + +INTEGER fl__QoS__TransferDelay(const BITSTRING& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1530, TTCN_Location::LOCATION_FUNCTION, "fl_QoS_TransferDelay"); +charstring_list param_names; +param_names[0] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_QoS_TransferDelay", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Val, "p_Val", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1532); +ttcn3_debugger.breakpoint_entry(1532); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1532 */ +INTEGER v__Val(bit2int(p__Val)); +debug_scope.add_variable(&v__Val, "v_Val", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1533); +ttcn3_debugger.breakpoint_entry(1533); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1533 */ +{ +boolean tmp_103; +tmp_103 = (v__Val >= 1); +if (tmp_103) tmp_103 = (v__Val <= 15); +if (tmp_103) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1534); +ttcn3_debugger.breakpoint_entry(1534); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1534 */ +{ +INTEGER tmp_104; +return DEBUGGER_STORE_RETURN_VALUE(tmp_104, (v__Val * 10)); +} +} +} +current_location.update_lineno(1536); +ttcn3_debugger.breakpoint_entry(1536); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1536 */ +{ +boolean tmp_105; +tmp_105 = (v__Val >= 16); +if (tmp_105) tmp_105 = (v__Val <= 31); +if (tmp_105) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1537); +ttcn3_debugger.breakpoint_entry(1537); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1537 */ +{ +INTEGER tmp_106; +return DEBUGGER_STORE_RETURN_VALUE(tmp_106, (200 + ((v__Val - 16) * 50))); +} +} +} +current_location.update_lineno(1539); +ttcn3_debugger.breakpoint_entry(1539); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1539 */ +{ +boolean tmp_107; +tmp_107 = (v__Val >= 32); +if (tmp_107) tmp_107 = (v__Val <= 62); +if (tmp_107) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1540); +ttcn3_debugger.breakpoint_entry(1540); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1540 */ +{ +INTEGER tmp_108; +return DEBUGGER_STORE_RETURN_VALUE(tmp_108, (1000 + ((v__Val - 32) * 100))); +} +} +} +current_location.update_lineno(1542); +ttcn3_debugger.breakpoint_entry(1542); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1542 */ +{ +INTEGER tmp_109; +return DEBUGGER_STORE_RETURN_VALUE(tmp_109, 0); +} +} + +CHARSTRING fl__QoS__SDUErrorRatio(const BITSTRING& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1551, TTCN_Location::LOCATION_FUNCTION, "fl_QoS_SDUErrorRatio"); +charstring_list param_names; +param_names[0] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_QoS_SDUErrorRatio", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Val, "p_Val", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +{ +const BITSTRING &tmp_111 = p__Val; +current_location.update_lineno(1554); +ttcn3_debugger.breakpoint_entry(1554); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1554 */ +if(tmp_111 == bs_7) goto tmp_110_0; +current_location.update_lineno(1555); +ttcn3_debugger.breakpoint_entry(1555); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1555 */ +if(tmp_111 == bs_8) goto tmp_110_1; +current_location.update_lineno(1556); +ttcn3_debugger.breakpoint_entry(1556); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1556 */ +if(tmp_111 == bs_9) goto tmp_110_2; +current_location.update_lineno(1557); +ttcn3_debugger.breakpoint_entry(1557); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1557 */ +if(tmp_111 == bs_10) goto tmp_110_3; +current_location.update_lineno(1558); +ttcn3_debugger.breakpoint_entry(1558); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1558 */ +if(tmp_111 == bs_11) goto tmp_110_4; +current_location.update_lineno(1559); +ttcn3_debugger.breakpoint_entry(1559); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1559 */ +if(tmp_111 == bs_55) goto tmp_110_5; +current_location.update_lineno(1560); +ttcn3_debugger.breakpoint_entry(1560); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1560 */ +if(tmp_111 == bs_38) goto tmp_110_6; +goto tmp_110_end; +tmp_110_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1554); +ttcn3_debugger.breakpoint_entry(1554); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1554 */ +{ +CHARSTRING tmp_112; +return DEBUGGER_STORE_RETURN_VALUE(tmp_112, cs_8); +} +} +tmp_110_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1555); +ttcn3_debugger.breakpoint_entry(1555); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1555 */ +{ +CHARSTRING tmp_113; +return DEBUGGER_STORE_RETURN_VALUE(tmp_113, cs_9); +} +} +tmp_110_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1556); +ttcn3_debugger.breakpoint_entry(1556); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1556 */ +{ +CHARSTRING tmp_114; +return DEBUGGER_STORE_RETURN_VALUE(tmp_114, cs_10); +} +} +tmp_110_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1557); +ttcn3_debugger.breakpoint_entry(1557); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1557 */ +{ +CHARSTRING tmp_115; +return DEBUGGER_STORE_RETURN_VALUE(tmp_115, cs_11); +} +} +tmp_110_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1558); +ttcn3_debugger.breakpoint_entry(1558); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1558 */ +{ +CHARSTRING tmp_116; +return DEBUGGER_STORE_RETURN_VALUE(tmp_116, cs_12); +} +} +tmp_110_5: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1559); +ttcn3_debugger.breakpoint_entry(1559); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1559 */ +{ +CHARSTRING tmp_117; +return DEBUGGER_STORE_RETURN_VALUE(tmp_117, cs_13); +} +} +tmp_110_6: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1560); +ttcn3_debugger.breakpoint_entry(1560); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1560 */ +{ +CHARSTRING tmp_118; +return DEBUGGER_STORE_RETURN_VALUE(tmp_118, cs_14); +} +} +tmp_110_end: /* empty */; +} +current_location.update_lineno(1562); +ttcn3_debugger.breakpoint_entry(1562); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1562 */ +{ +CHARSTRING tmp_119; +return DEBUGGER_STORE_RETURN_VALUE(tmp_119, cs_15); +} +} + +CHARSTRING fl__QoS__ResidualBER(const BITSTRING& p__Val) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1571, TTCN_Location::LOCATION_FUNCTION, "fl_QoS_ResidualBER"); +charstring_list param_names; +param_names[0] = "p_Val"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_QoS_ResidualBER", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Val, "p_Val", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +{ +const BITSTRING &tmp_121 = p__Val; +current_location.update_lineno(1574); +ttcn3_debugger.breakpoint_entry(1574); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1574 */ +if(tmp_121 == bs_7) goto tmp_120_0; +current_location.update_lineno(1575); +ttcn3_debugger.breakpoint_entry(1575); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1575 */ +if(tmp_121 == bs_8) goto tmp_120_1; +current_location.update_lineno(1576); +ttcn3_debugger.breakpoint_entry(1576); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1576 */ +if(tmp_121 == bs_9) goto tmp_120_2; +current_location.update_lineno(1577); +ttcn3_debugger.breakpoint_entry(1577); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1577 */ +if(tmp_121 == bs_10) goto tmp_120_3; +current_location.update_lineno(1578); +ttcn3_debugger.breakpoint_entry(1578); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1578 */ +if(tmp_121 == bs_11) goto tmp_120_4; +current_location.update_lineno(1579); +ttcn3_debugger.breakpoint_entry(1579); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1579 */ +if(tmp_121 == bs_55) goto tmp_120_5; +current_location.update_lineno(1580); +ttcn3_debugger.breakpoint_entry(1580); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1580 */ +if(tmp_121 == bs_38) goto tmp_120_6; +current_location.update_lineno(1581); +ttcn3_debugger.breakpoint_entry(1581); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1581 */ +if(tmp_121 == bs_56) goto tmp_120_7; +current_location.update_lineno(1582); +ttcn3_debugger.breakpoint_entry(1582); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1582 */ +if(tmp_121 == bs_57) goto tmp_120_8; +goto tmp_120_end; +tmp_120_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1574); +ttcn3_debugger.breakpoint_entry(1574); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1574 */ +{ +CHARSTRING tmp_122; +return DEBUGGER_STORE_RETURN_VALUE(tmp_122, cs_16); +} +} +tmp_120_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1575); +ttcn3_debugger.breakpoint_entry(1575); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1575 */ +{ +CHARSTRING tmp_123; +return DEBUGGER_STORE_RETURN_VALUE(tmp_123, cs_8); +} +} +tmp_120_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1576); +ttcn3_debugger.breakpoint_entry(1576); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1576 */ +{ +CHARSTRING tmp_124; +return DEBUGGER_STORE_RETURN_VALUE(tmp_124, cs_17); +} +} +tmp_120_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1577); +ttcn3_debugger.breakpoint_entry(1577); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1577 */ +{ +CHARSTRING tmp_125; +return DEBUGGER_STORE_RETURN_VALUE(tmp_125, cs_18); +} +} +tmp_120_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1578); +ttcn3_debugger.breakpoint_entry(1578); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1578 */ +{ +CHARSTRING tmp_126; +return DEBUGGER_STORE_RETURN_VALUE(tmp_126, cs_10); +} +} +tmp_120_5: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1579); +ttcn3_debugger.breakpoint_entry(1579); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1579 */ +{ +CHARSTRING tmp_127; +return DEBUGGER_STORE_RETURN_VALUE(tmp_127, cs_11); +} +} +tmp_120_6: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1580); +ttcn3_debugger.breakpoint_entry(1580); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1580 */ +{ +CHARSTRING tmp_128; +return DEBUGGER_STORE_RETURN_VALUE(tmp_128, cs_12); +} +} +tmp_120_7: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1581); +ttcn3_debugger.breakpoint_entry(1581); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1581 */ +{ +CHARSTRING tmp_129; +return DEBUGGER_STORE_RETURN_VALUE(tmp_129, cs_13); +} +} +tmp_120_8: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1582); +ttcn3_debugger.breakpoint_entry(1582); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1582 */ +{ +CHARSTRING tmp_130; +return DEBUGGER_STORE_RETURN_VALUE(tmp_130, cs_19); +} +} +tmp_120_end: /* empty */; +} +current_location.update_lineno(1584); +ttcn3_debugger.breakpoint_entry(1584); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1584 */ +{ +CHARSTRING tmp_131; +return DEBUGGER_STORE_RETURN_VALUE(tmp_131, cs_15); +} +} + +CHARSTRING f__ConvertQoS__ForATCommand(const NAS__CommonTypeDefs::QualityOfService_template& p__QoS) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1593, TTCN_Location::LOCATION_FUNCTION, "f_ConvertQoS_ForATCommand"); +charstring_list param_names; +param_names[0] = "p_QoS"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ConvertQoS_ForATCommand", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__QoS, "p_QoS", "QualityOfService template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(1595); +ttcn3_debugger.breakpoint_entry(1595); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1595 */ +NAS__CommonTypeDefs::QualityOfService v__QoS(p__QoS.valueof()); +debug_scope.add_variable(&v__QoS, "v_QoS", "QualityOfService", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(1596); +ttcn3_debugger.breakpoint_entry(1596); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1596 */ +CHARSTRING v__QoSstring(cs_15); +debug_scope.add_variable(&v__QoSstring, "v_QoSstring", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1597); +ttcn3_debugger.breakpoint_entry(1597); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1597 */ +INTEGER v__SSDesc(bit2int(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).sourceStatisticsDescriptor())); +debug_scope.add_variable(&v__SSDesc, "v_SSDesc", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1598); +ttcn3_debugger.breakpoint_entry(1598); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1598 */ +INTEGER v__TrafficClass(bit2int(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).trafficClass())); +debug_scope.add_variable(&v__TrafficClass, "v_TrafficClass", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1599); +ttcn3_debugger.breakpoint_entry(1599); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1599 */ +INTEGER v__DelOrder(bit2int(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).deliveryOrder())); +debug_scope.add_variable(&v__DelOrder, "v_DelOrder", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1600); +ttcn3_debugger.breakpoint_entry(1600); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1600 */ +INTEGER v__DeliveryErrorSDU(bit2int(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).deliveryErrorSDU())); +debug_scope.add_variable(&v__DeliveryErrorSDU, "v_DeliveryErrorSDU", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1602); +ttcn3_debugger.breakpoint_entry(1602); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1602 */ +if ((v__SSDesc > 1)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1603); +ttcn3_debugger.breakpoint_entry(1603); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1603 */ +v__SSDesc = 1; +} +current_location.update_lineno(1606); +ttcn3_debugger.breakpoint_entry(1606); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1606 */ +{ +INTEGER tmp_133; +--v__TrafficClass; +} +current_location.update_lineno(1607); +ttcn3_debugger.breakpoint_entry(1607); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1607 */ +if ((v__TrafficClass < 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1608); +ttcn3_debugger.breakpoint_entry(1608); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1608 */ +v__TrafficClass = 0; +} +{ +const INTEGER &tmp_136 = v__DelOrder; +switch(tmp_136.get_long_long_val()) { +case(1): +{ +current_location.update_lineno(1612); +ttcn3_debugger.breakpoint_entry(1612); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1612 */ +v__DelOrder = 1; +break; +} +case(2): +{ +current_location.update_lineno(1613); +ttcn3_debugger.breakpoint_entry(1613); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1613 */ +v__DelOrder = 0; +break; +} +default: +{ +current_location.update_lineno(1614); +ttcn3_debugger.breakpoint_entry(1614); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1614 */ +v__DelOrder = 2; +break; +} +};} +{ +const INTEGER &tmp_141 = v__DeliveryErrorSDU; +switch(tmp_141.get_long_long_val()) { +case(1): +{ +current_location.update_lineno(1618); +ttcn3_debugger.breakpoint_entry(1618); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1618 */ +v__DeliveryErrorSDU = 2; +break; +} +case(2): +{ +current_location.update_lineno(1619); +ttcn3_debugger.breakpoint_entry(1619); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1619 */ +v__DeliveryErrorSDU = 1; +break; +} +case(3): +{ +current_location.update_lineno(1620); +ttcn3_debugger.breakpoint_entry(1620); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1620 */ +v__DeliveryErrorSDU = 0; +break; +} +default: +{ +current_location.update_lineno(1621); +ttcn3_debugger.breakpoint_entry(1621); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1621 */ +v__DeliveryErrorSDU = 3; +break; +} +};} +current_location.update_lineno(1624); +ttcn3_debugger.breakpoint_entry(1624); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1624 */ +{ +CHARSTRING tmp_146; +tmp_146 = (v__QoSstring + int2str(v__TrafficClass)); +v__QoSstring = tmp_146; +} +current_location.update_lineno(1625); +ttcn3_debugger.breakpoint_entry(1625); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1625 */ +{ +CHARSTRING tmp_147; +tmp_147 = ((v__QoSstring + cs_20) + int2str(f__QoS__MaximumBitRate(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).maxBitRateUL()))); +v__QoSstring = tmp_147; +} +current_location.update_lineno(1626); +ttcn3_debugger.breakpoint_entry(1626); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1626 */ +{ +CHARSTRING tmp_148; +tmp_148 = ((v__QoSstring + cs_20) + int2str(f__QoS__MaximumBitRate(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).maxBitRateDL()))); +v__QoSstring = tmp_148; +} +current_location.update_lineno(1627); +ttcn3_debugger.breakpoint_entry(1627); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1627 */ +{ +CHARSTRING tmp_149; +tmp_149 = ((((v__QoSstring + cs_20) + cs_20) + cs_20) + int2str(v__DelOrder)); +v__QoSstring = tmp_149; +} +current_location.update_lineno(1628); +ttcn3_debugger.breakpoint_entry(1628); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1628 */ +{ +CHARSTRING tmp_150; +tmp_150 = ((v__QoSstring + cs_20) + int2str((bit2int(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).maxSduSize()) * 10))); +v__QoSstring = tmp_150; +} +current_location.update_lineno(1629); +ttcn3_debugger.breakpoint_entry(1629); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1629 */ +{ +CHARSTRING tmp_151; +tmp_151 = (((v__QoSstring + cs_21) + fl__QoS__SDUErrorRatio(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).sduErrorRatio())) + cs_22); +v__QoSstring = tmp_151; +} +current_location.update_lineno(1630); +ttcn3_debugger.breakpoint_entry(1630); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1630 */ +{ +CHARSTRING tmp_152; +tmp_152 = (((v__QoSstring + cs_21) + fl__QoS__ResidualBER(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).residualBER())) + cs_22); +v__QoSstring = tmp_152; +} +current_location.update_lineno(1631); +ttcn3_debugger.breakpoint_entry(1631); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1631 */ +{ +CHARSTRING tmp_153; +tmp_153 = ((v__QoSstring + cs_20) + int2str(v__DeliveryErrorSDU)); +v__QoSstring = tmp_153; +} +current_location.update_lineno(1632); +ttcn3_debugger.breakpoint_entry(1632); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1632 */ +{ +CHARSTRING tmp_154; +tmp_154 = ((v__QoSstring + cs_20) + int2str(fl__QoS__TransferDelay(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).transferDelay()))); +v__QoSstring = tmp_154; +} +current_location.update_lineno(1633); +ttcn3_debugger.breakpoint_entry(1633); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1633 */ +{ +CHARSTRING tmp_155; +tmp_155 = ((v__QoSstring + cs_20) + int2str(bit2int(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).trafficHandlingPrio()))); +v__QoSstring = tmp_155; +} +current_location.update_lineno(1634); +ttcn3_debugger.breakpoint_entry(1634); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1634 */ +{ +CHARSTRING tmp_156; +tmp_156 = ((v__QoSstring + cs_20) + int2str(v__SSDesc)); +v__QoSstring = tmp_156; +} +current_location.update_lineno(1635); +ttcn3_debugger.breakpoint_entry(1635); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1635 */ +{ +CHARSTRING tmp_157; +tmp_157 = ((v__QoSstring + cs_20) + int2str(bit2int(const_cast< const NAS__CommonTypeDefs::QualityOfService&>(v__QoS).signallingInd()))); +v__QoSstring = tmp_157; +} +current_location.update_lineno(1636); +ttcn3_debugger.breakpoint_entry(1636); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1636 */ +{ +CHARSTRING tmp_158; +return DEBUGGER_STORE_RETURN_VALUE(tmp_158, v__QoSstring); +} +} + +BEARER__CONTEXT__TYPE fl__BearerContextNumber__Def(const BEARER__CONTEXT__TYPE_template& p__BearerContextNumber) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1656, TTCN_Location::LOCATION_FUNCTION, "fl_BearerContextNumber_Def"); +charstring_list param_names; +param_names[0] = "p_BearerContextNumber"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_BearerContextNumber_Def", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__BearerContextNumber, "p_BearerContextNumber", "BEARER_CONTEXT_TYPE template", NULL, print_var_NAS_CommonTemplates); +debug_scope.initial_snapshot(); +current_location.update_lineno(1658); +ttcn3_debugger.breakpoint_entry(1658); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1658 */ +BEARER__CONTEXT__TYPE v__BearerContextNumber; +debug_scope.add_variable(&v__BearerContextNumber, "v_BearerContextNumber", "BEARER_CONTEXT_TYPE", NULL, print_var_NAS_CommonTemplates, set_var_NAS_CommonTemplates); +current_location.update_lineno(1660); +ttcn3_debugger.breakpoint_entry(1660); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1660 */ +if (p__BearerContextNumber.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1661); +ttcn3_debugger.breakpoint_entry(1661); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1661 */ +v__BearerContextNumber = p__BearerContextNumber.valueof(); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1663); +ttcn3_debugger.breakpoint_entry(1663); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1663 */ +if (Parameters::pc__IMS) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1664); +ttcn3_debugger.breakpoint_entry(1664); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1664 */ +v__BearerContextNumber = BEARER__CONTEXT__TYPE::DEF__2; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1666); +ttcn3_debugger.breakpoint_entry(1666); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1666 */ +v__BearerContextNumber = BEARER__CONTEXT__TYPE::DEF__1; +} +} +current_location.update_lineno(1669); +ttcn3_debugger.breakpoint_entry(1669); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1669 */ +{ +BEARER__CONTEXT__TYPE tmp_162; +return DEBUGGER_STORE_RETURN_VALUE(tmp_162, v__BearerContextNumber); +} +} + +NAS__CommonTypeDefs::EPS__QualityOfService_template f__Get__508__EPSQoS(const BEARER__CONTEXT__TYPE_template& p__BearerContextNumber) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1723, TTCN_Location::LOCATION_FUNCTION, "f_Get_508_EPSQoS"); +charstring_list param_names; +param_names[0] = "p_BearerContextNumber"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Get_508_EPSQoS", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__BearerContextNumber, "p_BearerContextNumber", "BEARER_CONTEXT_TYPE template", NULL, print_var_NAS_CommonTemplates); +debug_scope.initial_snapshot(); +current_location.update_lineno(1725); +ttcn3_debugger.breakpoint_entry(1725); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1725 */ +NAS__CommonTypeDefs::EPS__QualityOfService_template v__QoS; +debug_scope.add_variable(&v__QoS, "v_QoS", "EPS_QualityOfService template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(1726); +ttcn3_debugger.breakpoint_entry(1726); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1726 */ +BEARER__CONTEXT__TYPE v__BearerContextNumber(fl__BearerContextNumber__Def(p__BearerContextNumber)); +debug_scope.add_variable(&v__BearerContextNumber, "v_BearerContextNumber", "BEARER_CONTEXT_TYPE", NULL, print_var_NAS_CommonTemplates, set_var_NAS_CommonTemplates); +{ +const BEARER__CONTEXT__TYPE &tmp_164 = v__BearerContextNumber; +current_location.update_lineno(1729); +ttcn3_debugger.breakpoint_entry(1729); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1729 */ +if(tmp_164 == BEARER__CONTEXT__TYPE::DEF__1) goto tmp_163_0; +current_location.update_lineno(1732); +ttcn3_debugger.breakpoint_entry(1732); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1732 */ +if(tmp_164 == BEARER__CONTEXT__TYPE::DEF__3) goto tmp_163_1; +goto tmp_163_2; +tmp_163_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1730); +ttcn3_debugger.breakpoint_entry(1730); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1730 */ +v__QoS = cs__508__EPS__QoS__Default__1; +goto tmp_163_end; +} +tmp_163_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1733); +ttcn3_debugger.breakpoint_entry(1733); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1733 */ +v__QoS = cds__508__EPS__QoS__Default__3; +goto tmp_163_end; +} +tmp_163_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1736); +ttcn3_debugger.breakpoint_entry(1736); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1736 */ +v__QoS = cds__EPS__QoS__Def__nonGBR__QCI; +goto tmp_163_end; +} +tmp_163_end: /* empty */; +} +current_location.update_lineno(1739); +ttcn3_debugger.breakpoint_entry(1739); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1739 */ +{ +NAS__CommonTypeDefs::EPS__QualityOfService_template tmp_168; +return DEBUGGER_STORE_RETURN_VALUE(tmp_168, v__QoS); +} +} + +NAS__CommonTypeDefs::UERadioCapId_template cs__UERadioCapId(const OCTETSTRING& p__IEI, const OCTETSTRING& p__Id) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1742, TTCN_Location::LOCATION_TEMPLATE, "cs_UERadioCapId"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Id"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_UERadioCapId", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::UERadioCapId_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = int2oct(p__Id.lengthof(), 1); +ret_val.id() = p__Id; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__UERadioCapId_err_descr_ptr); +return ret_val; +} + +INTEGER fl__SingleRemoteport508(const INTEGER& p__PortNumber, const HEXSTRING& p__EPS__BearerId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1760, TTCN_Location::LOCATION_FUNCTION, "fl_SingleRemoteport508"); +charstring_list param_names; +param_names[0] = "p_PortNumber"; +param_names[1] = "p_EPS_BearerId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("fl_SingleRemoteport508", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PortNumber, "p_PortNumber", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPS__BearerId, "p_EPS_BearerId", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1763); +ttcn3_debugger.breakpoint_entry(1763); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1763 */ +{ +INTEGER tmp_169; +return DEBUGGER_STORE_RETURN_VALUE(tmp_169, ((p__PortNumber + hex2int(p__EPS__BearerId)) - 6)); +} +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompSingleRemotePort61000(const HEXSTRING& p__EPS__BearerId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1766, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompSingleRemotePort61000"); +charstring_list param_names; +param_names[0] = "p_EPS_BearerId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompSingleRemotePort61000", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__EPS__BearerId, "p_EPS_BearerId", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val = cs__PktFilterCompSingleRemotePort(fl__SingleRemoteport508(61000, p__EPS__BearerId)); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompSingleRemotePort61000_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompSingleRemotePort31160(const HEXSTRING& p__EPS__BearerId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1770, TTCN_Location::LOCATION_TEMPLATE, "cs_PktFilterCompSingleRemotePort31160"); +charstring_list param_names; +param_names[0] = "p_EPS_BearerId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PktFilterCompSingleRemotePort31160", "template", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__EPS__BearerId, "p_EPS_BearerId", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::PacketFilterComponent_template ret_val; +ret_val = cs__PktFilterCompSingleRemotePort(fl__SingleRemoteport508(31160, p__EPS__BearerId)); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PktFilterCompSingleRemotePort31160_err_descr_ptr); +return ret_val; +} + +void fl__Get__508__PacketFilter(NAS__CommonTypeDefs::PacketFilter_template& p__PacketFilterByRef, INTEGER& p__PacketFilterLengthByRef, const INTEGER& p__PacketFilterNumber, const HEXSTRING& p__EPS__BearerId, const BITSTRING& p__PdnTypeValue, const CommonDefs::PDN__Index__Type& p__PdnIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1784, TTCN_Location::LOCATION_FUNCTION, "fl_Get_508_PacketFilter"); +p__PacketFilterByRef.clean_up(); +p__PacketFilterLengthByRef.clean_up(); +charstring_list param_names; +param_names[0] = "p_PacketFilterByRef"; +param_names[1] = "p_PacketFilterLengthByRef"; +param_names[2] = "p_PacketFilterNumber"; +param_names[3] = "p_EPS_BearerId"; +param_names[4] = "p_PdnTypeValue"; +param_names[5] = "p_PdnIndex"; +charstring_list param_types; +param_types[0] = "out"; +param_types[1] = "out"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +TTCN3_Debug_Function debug_scope("fl_Get_508_PacketFilter", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PacketFilterByRef, "p_PacketFilterByRef", "PacketFilter template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PacketFilterLengthByRef, "p_PacketFilterLengthByRef", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.add_variable(&p__PacketFilterNumber, "p_PacketFilterNumber", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPS__BearerId, "p_EPS_BearerId", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PdnTypeValue, "p_PdnTypeValue", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(1792); +ttcn3_debugger.breakpoint_entry(1792); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1792 */ +INTEGER v__ContentsLength(0); +debug_scope.add_variable(&v__ContentsLength, "v_ContentsLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1793); +ttcn3_debugger.breakpoint_entry(1793); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1793 */ +NAS__CommonTypeDefs::PacketFilter_template v__Filter; +debug_scope.add_variable(&v__Filter, "v_Filter", "PacketFilter template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(1794); +ttcn3_debugger.breakpoint_entry(1794); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1794 */ +CommonIP::PDN__AddressInfo__Type v__PDN__AddressInfo(CommonIP::f__PDN__AddressInfo__Get(p__PdnIndex)); +debug_scope.add_variable(&v__PDN__AddressInfo, "v_PDN_AddressInfo", "PDN_AddressInfo_Type", NULL, CommonIP::print_var_CommonIP, CommonIP::set_var_CommonIP); +current_location.update_lineno(1795); +ttcn3_debugger.breakpoint_entry(1795); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1795 */ +CHARSTRING v__NetworkIpAddrv4(const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).PCSCF__IPAddressIPv4()); +debug_scope.add_variable(&v__NetworkIpAddrv4, "v_NetworkIpAddrv4", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1796); +ttcn3_debugger.breakpoint_entry(1796); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1796 */ +CHARSTRING v__NetworkIpAddrv6(const_cast< const CommonIP::PDN__AddressInfo__Type&>(v__PDN__AddressInfo).PCSCF__IPAddressIPv6()); +debug_scope.add_variable(&v__NetworkIpAddrv6, "v_NetworkIpAddrv6", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1797); +ttcn3_debugger.breakpoint_entry(1797); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1797 */ +NAS__CommonTypeDefs::PacketFilterComponent_template v__PacketFilterProtocolId; +debug_scope.add_variable(&v__PacketFilterProtocolId, "v_PacketFilterProtocolId", "PacketFilterComponent template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(1798); +ttcn3_debugger.breakpoint_entry(1798); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1798 */ +INTEGER v__PortNumber; +debug_scope.add_variable(&v__PortNumber, "v_PortNumber", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1800); +ttcn3_debugger.breakpoint_entry(1800); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1800 */ +{ +boolean tmp_170; +{ +boolean tmp_171; +tmp_171 = (p__PacketFilterNumber != 4); +if (tmp_171) tmp_171 = (p__PacketFilterNumber != 5); +tmp_170 = tmp_171; +} +if (tmp_170) tmp_170 = (p__PacketFilterNumber != 10); +if (tmp_170) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1801); +ttcn3_debugger.breakpoint_entry(1801); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1801 */ +if ((p__PdnTypeValue == bs_12)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1802); +ttcn3_debugger.breakpoint_entry(1802); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1802 */ +v__Filter.contents()[0] = cs__PktFilterCompIPv4RemoteAddress(v__NetworkIpAddrv4, cs__PktFilterCompIPv4RemoteAddress_p__Mask_defval); +current_location.update_lineno(1803); +ttcn3_debugger.breakpoint_entry(1803); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1803 */ +{ +INTEGER tmp_173; +tmp_173 = (v__ContentsLength + 9); +v__ContentsLength = tmp_173; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1806); +ttcn3_debugger.breakpoint_entry(1806); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1806 */ +v__Filter.contents()[0] = cs__PktFilterCompIPv6RemoteAddress(v__NetworkIpAddrv6, cs__PktFilterCompIPv6RemoteAddress_p__Mask_defval); +current_location.update_lineno(1807); +ttcn3_debugger.breakpoint_entry(1807); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1807 */ +{ +INTEGER tmp_175; +tmp_175 = (v__ContentsLength + 33); +v__ContentsLength = tmp_175; +} +} +} +} +{ +const INTEGER &tmp_177 = p__PacketFilterNumber; +switch(tmp_177.get_long_long_val()) { +case(1): +case(6): +{ +current_location.update_lineno(1813); +ttcn3_debugger.breakpoint_entry(1813); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1813 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1814); +ttcn3_debugger.breakpoint_entry(1814); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1814 */ +v__Filter.direction() = bs_30; +current_location.update_lineno(1815); +ttcn3_debugger.breakpoint_entry(1815); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1815 */ +v__Filter.iei() = hs_0; +current_location.update_lineno(1816); +ttcn3_debugger.breakpoint_entry(1816); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1816 */ +if ((hex2int(p__EPS__BearerId) > 5)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1817); +ttcn3_debugger.breakpoint_entry(1817); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1817 */ +v__Filter.precedence() = int2bit((hex2int(p__EPS__BearerId) - 6), 8); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1819); +ttcn3_debugger.breakpoint_entry(1819); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1819 */ +v__Filter.precedence() = bs_40; +} +current_location.update_lineno(1821); +ttcn3_debugger.breakpoint_entry(1821); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1821 */ +if ((p__PacketFilterNumber == 6)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1822); +ttcn3_debugger.breakpoint_entry(1822); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1822 */ +if ((p__PdnTypeValue == bs_12)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1823); +ttcn3_debugger.breakpoint_entry(1823); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1823 */ +v__Filter.contents()[1] = cs__PktFilterCompProtocolIdNextHeaderICMP; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1825); +ttcn3_debugger.breakpoint_entry(1825); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1825 */ +v__Filter.contents()[1] = cs__PktFilterCompProtocolIdNextHeaderICMPv6; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1828); +ttcn3_debugger.breakpoint_entry(1828); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1828 */ +v__Filter.contents()[1] = cs__PktFilterCompSingleRemotePort31160(p__EPS__BearerId); +current_location.update_lineno(1829); +ttcn3_debugger.breakpoint_entry(1829); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1829 */ +{ +INTEGER tmp_186; +tmp_186 = (v__ContentsLength + 3); +v__ContentsLength = tmp_186; +} +current_location.update_lineno(1830); +ttcn3_debugger.breakpoint_entry(1830); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1830 */ +v__Filter.contents()[2] = cs__PktFilterCompProtocolIdNextHeaderUDP; +} +current_location.update_lineno(1832); +ttcn3_debugger.breakpoint_entry(1832); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1832 */ +{ +INTEGER tmp_188; +tmp_188 = (v__ContentsLength + 2); +v__ContentsLength = tmp_188; +} +break; +} +case(2): +case(7): +{ +current_location.update_lineno(1837); +ttcn3_debugger.breakpoint_entry(1837); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1837 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1838); +ttcn3_debugger.breakpoint_entry(1838); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1838 */ +v__Filter.direction() = bs_31; +current_location.update_lineno(1839); +ttcn3_debugger.breakpoint_entry(1839); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1839 */ +v__Filter.iei() = hs_3; +current_location.update_lineno(1840); +ttcn3_debugger.breakpoint_entry(1840); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1840 */ +v__Filter.precedence() = int2bit(((hex2int(p__EPS__BearerId) - 6) + 8), 8); +current_location.update_lineno(1842); +ttcn3_debugger.breakpoint_entry(1842); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1842 */ +if ((p__PacketFilterNumber == 7)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1843); +ttcn3_debugger.breakpoint_entry(1843); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1843 */ +if ((p__PdnTypeValue == bs_12)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1844); +ttcn3_debugger.breakpoint_entry(1844); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1844 */ +v__Filter.contents()[1] = cs__PktFilterCompProtocolIdNextHeaderICMP; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1846); +ttcn3_debugger.breakpoint_entry(1846); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1846 */ +v__Filter.contents()[1] = cs__PktFilterCompProtocolIdNextHeaderICMPv6; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1849); +ttcn3_debugger.breakpoint_entry(1849); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1849 */ +v__Filter.contents()[1] = cs__PktFilterCompSingleRemotePort61000(p__EPS__BearerId); +current_location.update_lineno(1850); +ttcn3_debugger.breakpoint_entry(1850); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1850 */ +{ +INTEGER tmp_196; +tmp_196 = (v__ContentsLength + 3); +v__ContentsLength = tmp_196; +} +current_location.update_lineno(1851); +ttcn3_debugger.breakpoint_entry(1851); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1851 */ +v__Filter.contents()[2] = cs__PktFilterCompProtocolIdNextHeaderUDP; +} +current_location.update_lineno(1853); +ttcn3_debugger.breakpoint_entry(1853); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1853 */ +{ +INTEGER tmp_198; +tmp_198 = (v__ContentsLength + 2); +v__ContentsLength = tmp_198; +} +break; +} +case(3): +{ +current_location.update_lineno(1858); +ttcn3_debugger.breakpoint_entry(1858); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1858 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1859); +ttcn3_debugger.breakpoint_entry(1859); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1859 */ +v__Filter.direction() = bs_60; +current_location.update_lineno(1860); +ttcn3_debugger.breakpoint_entry(1860); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1860 */ +v__Filter.iei() = hs_4; +current_location.update_lineno(1861); +ttcn3_debugger.breakpoint_entry(1861); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1861 */ +v__Filter.precedence() = bs_46; +break; +} +case(4): +{ +current_location.update_lineno(1866); +ttcn3_debugger.breakpoint_entry(1866); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1866 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1867); +ttcn3_debugger.breakpoint_entry(1867); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1867 */ +v__Filter.direction() = bs_60; +current_location.update_lineno(1868); +ttcn3_debugger.breakpoint_entry(1868); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1868 */ +v__Filter.iei() = hs_5; +current_location.update_lineno(1869); +ttcn3_debugger.breakpoint_entry(1869); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1869 */ +if ((hex2int(p__EPS__BearerId) > 5)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1871); +ttcn3_debugger.breakpoint_entry(1871); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1871 */ +v__Filter.precedence() = int2bit((hex2int(p__EPS__BearerId) - 6), 8); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1873); +ttcn3_debugger.breakpoint_entry(1873); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1873 */ +v__Filter.precedence() = bs_40; +} +current_location.update_lineno(1875); +ttcn3_debugger.breakpoint_entry(1875); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1875 */ +v__Filter.contents()[0] = cs__PktFilterCompRemotePortRange(CommonIP::tsc__IMS__MediaPort__M1, 60351); +current_location.update_lineno(1876); +ttcn3_debugger.breakpoint_entry(1876); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1876 */ +{ +INTEGER tmp_209; +tmp_209 = (v__ContentsLength + 5); +v__ContentsLength = tmp_209; +} +current_location.update_lineno(1877); +ttcn3_debugger.breakpoint_entry(1877); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1877 */ +v__Filter.contents()[1] = cs__PktFilterCompProtocolIdNextHeaderUDP; +current_location.update_lineno(1878); +ttcn3_debugger.breakpoint_entry(1878); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1878 */ +{ +INTEGER tmp_211; +tmp_211 = (v__ContentsLength + 2); +v__ContentsLength = tmp_211; +} +break; +} +case(5): +{ +current_location.update_lineno(1883); +ttcn3_debugger.breakpoint_entry(1883); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1883 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1884); +ttcn3_debugger.breakpoint_entry(1884); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1884 */ +v__Filter.direction() = bs_60; +current_location.update_lineno(1885); +ttcn3_debugger.breakpoint_entry(1885); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1885 */ +v__Filter.iei() = hs_6; +current_location.update_lineno(1886); +ttcn3_debugger.breakpoint_entry(1886); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1886 */ +if ((hex2int(p__EPS__BearerId) > 5)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1888); +ttcn3_debugger.breakpoint_entry(1888); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1888 */ +v__Filter.precedence() = int2bit((hex2int(p__EPS__BearerId) - 6), 8); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1890); +ttcn3_debugger.breakpoint_entry(1890); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1890 */ +v__Filter.precedence() = bs_40; +} +current_location.update_lineno(1892); +ttcn3_debugger.breakpoint_entry(1892); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1892 */ +v__Filter.contents()[0] = cs__PktFilterCompRemotePortRange(CommonIP::tsc__IMS__MediaPort__M2, 60353); +current_location.update_lineno(1893); +ttcn3_debugger.breakpoint_entry(1893); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1893 */ +{ +INTEGER tmp_218; +tmp_218 = (v__ContentsLength + 5); +v__ContentsLength = tmp_218; +} +current_location.update_lineno(1894); +ttcn3_debugger.breakpoint_entry(1894); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1894 */ +v__Filter.contents()[1] = cs__PktFilterCompProtocolIdNextHeaderUDP; +current_location.update_lineno(1895); +ttcn3_debugger.breakpoint_entry(1895); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1895 */ +{ +INTEGER tmp_220; +tmp_220 = (v__ContentsLength + 2); +v__ContentsLength = tmp_220; +} +break; +} +case(8): +{ +current_location.update_lineno(1900); +ttcn3_debugger.breakpoint_entry(1900); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1900 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1901); +ttcn3_debugger.breakpoint_entry(1901); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1901 */ +v__Filter.direction() = bs_31; +current_location.update_lineno(1902); +ttcn3_debugger.breakpoint_entry(1902); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1902 */ +v__Filter.iei() = hs_3; +current_location.update_lineno(1903); +ttcn3_debugger.breakpoint_entry(1903); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1903 */ +v__Filter.precedence() = int2bit(((hex2int(p__EPS__BearerId) - 6) + 8), 8); +break; +} +case(9): +{ +current_location.update_lineno(1908); +ttcn3_debugger.breakpoint_entry(1908); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1908 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1909); +ttcn3_debugger.breakpoint_entry(1909); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1909 */ +v__Filter.direction() = bs_60; +current_location.update_lineno(1910); +ttcn3_debugger.breakpoint_entry(1910); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1910 */ +v__Filter.iei() = hs_7; +current_location.update_lineno(1911); +ttcn3_debugger.breakpoint_entry(1911); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1911 */ +if ((hex2int(p__EPS__BearerId) > 5)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1913); +ttcn3_debugger.breakpoint_entry(1913); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1913 */ +v__Filter.precedence() = int2bit((hex2int(p__EPS__BearerId) - 6), 8); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1915); +ttcn3_debugger.breakpoint_entry(1915); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1915 */ +v__Filter.precedence() = bs_40; +} +current_location.update_lineno(1917); +ttcn3_debugger.breakpoint_entry(1917); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1917 */ +v__Filter.contents()[0] = cs__PktFilterCompRemotePortRange(CommonIP::tsc__IMS__MediaPort__M2, 60353); +current_location.update_lineno(1918); +ttcn3_debugger.breakpoint_entry(1918); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1918 */ +{ +INTEGER tmp_231; +tmp_231 = (v__ContentsLength + 5); +v__ContentsLength = tmp_231; +} +current_location.update_lineno(1919); +ttcn3_debugger.breakpoint_entry(1919); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1919 */ +v__Filter.contents()[1] = cs__PktFilterCompProtocolIdNextHeaderUDP; +current_location.update_lineno(1920); +ttcn3_debugger.breakpoint_entry(1920); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1920 */ +{ +INTEGER tmp_233; +tmp_233 = (v__ContentsLength + 2); +v__ContentsLength = tmp_233; +} +break; +} +case(10): +case(11): +{ +current_location.update_lineno(1925); +ttcn3_debugger.breakpoint_entry(1925); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1925 */ +v__Filter.spare() = bs_1; +current_location.update_lineno(1926); +ttcn3_debugger.breakpoint_entry(1926); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1926 */ +v__Filter.direction() = bs_60; +current_location.update_lineno(1927); +ttcn3_debugger.breakpoint_entry(1927); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1927 */ +v__Filter.iei() = hs_6; +current_location.update_lineno(1928); +ttcn3_debugger.breakpoint_entry(1928); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1928 */ +if ((hex2int(p__EPS__BearerId) > 5)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1930); +ttcn3_debugger.breakpoint_entry(1930); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1930 */ +v__Filter.precedence() = int2bit((hex2int(p__EPS__BearerId) - 6), 8); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1932); +ttcn3_debugger.breakpoint_entry(1932); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1932 */ +v__Filter.precedence() = bs_40; +} +current_location.update_lineno(1934); +ttcn3_debugger.breakpoint_entry(1934); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1934 */ +if ((p__PacketFilterNumber == 10)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1935); +ttcn3_debugger.breakpoint_entry(1935); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1935 */ +v__PortNumber = CommonIP::tsc__IMS__MediaPort__M3; +current_location.update_lineno(1936); +ttcn3_debugger.breakpoint_entry(1936); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1936 */ +v__PacketFilterProtocolId = cs__PktFilterCompProtocolIdNextHeaderUDP; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1938); +ttcn3_debugger.breakpoint_entry(1938); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1938 */ +v__PortNumber = CommonIP::tsc__IMS__MediaPort__M1; +current_location.update_lineno(1939); +ttcn3_debugger.breakpoint_entry(1939); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1939 */ +v__PacketFilterProtocolId = cs__PktFilterCompProtocolIdNextHeaderTCP; +} +current_location.update_lineno(1941); +ttcn3_debugger.breakpoint_entry(1941); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1941 */ +v__Filter.contents()[0] = cs__PktFilterCompSingleRemotePort(CommonIP::tsc__IMS__MediaPort__M3); +current_location.update_lineno(1942); +ttcn3_debugger.breakpoint_entry(1942); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1942 */ +{ +INTEGER tmp_244; +tmp_244 = (v__ContentsLength + 3); +v__ContentsLength = tmp_244; +} +current_location.update_lineno(1943); +ttcn3_debugger.breakpoint_entry(1943); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1943 */ +v__Filter.contents()[1] = v__PacketFilterProtocolId; +current_location.update_lineno(1944); +ttcn3_debugger.breakpoint_entry(1944); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1944 */ +{ +INTEGER tmp_246; +tmp_246 = (v__ContentsLength + 2); +v__ContentsLength = tmp_246; +} +break; +} +};} +current_location.update_lineno(1947); +ttcn3_debugger.breakpoint_entry(1947); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1947 */ +v__Filter.iel() = int2oct(v__ContentsLength, 1); +current_location.update_lineno(1949); +ttcn3_debugger.breakpoint_entry(1949); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1949 */ +p__PacketFilterByRef = v__Filter; +current_location.update_lineno(1950); +ttcn3_debugger.breakpoint_entry(1950); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1950 */ +p__PacketFilterLengthByRef = (v__ContentsLength + 3); +} + +NAS__CommonTypeDefs::TrafficFlowTemplate_template f__EUTRA__NB__Get__508__TrafficFlowTemplate(const INTEGER& p__BearerContext, const HEXSTRING& p__EPS__BearerId, const BITSTRING& p__PdnTypeValue, const CommonDefs::PDN__Index__Type& p__PdnIndex) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 1963, TTCN_Location::LOCATION_FUNCTION, "f_EUTRA_NB_Get_508_TrafficFlowTemplate"); +charstring_list param_names; +param_names[0] = "p_BearerContext"; +param_names[1] = "p_EPS_BearerId"; +param_names[2] = "p_PdnTypeValue"; +param_names[3] = "p_PdnIndex"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_EUTRA_NB_Get_508_TrafficFlowTemplate", "function", "NAS_CommonTemplates", param_names, param_types, NULL); +debug_scope.add_variable(&p__BearerContext, "p_BearerContext", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPS__BearerId, "p_EPS_BearerId", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PdnTypeValue, "p_PdnTypeValue", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PdnIndex, "p_PdnIndex", "PDN_Index_Type", NULL, CommonDefs::print_var_CommonDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(1968); +ttcn3_debugger.breakpoint_entry(1968); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1968 */ +INTEGER v__PacketFilterLen1ByRef; +debug_scope.add_variable(&v__PacketFilterLen1ByRef, "v_PacketFilterLen1ByRef", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1969); +ttcn3_debugger.breakpoint_entry(1969); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1969 */ +INTEGER v__PacketFilterLen2ByRef; +debug_scope.add_variable(&v__PacketFilterLen2ByRef, "v_PacketFilterLen2ByRef", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1970); +ttcn3_debugger.breakpoint_entry(1970); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1970 */ +INTEGER v__PacketFilterLen3ByRef; +debug_scope.add_variable(&v__PacketFilterLen3ByRef, "v_PacketFilterLen3ByRef", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1971); +ttcn3_debugger.breakpoint_entry(1971); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1971 */ +NAS__CommonTypeDefs::PacketFilter_template v__PacketFilter1ByRef; +debug_scope.add_variable(&v__PacketFilter1ByRef, "v_PacketFilter1ByRef", "PacketFilter template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(1972); +ttcn3_debugger.breakpoint_entry(1972); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1972 */ +NAS__CommonTypeDefs::PacketFilter_template v__PacketFilter2ByRef; +debug_scope.add_variable(&v__PacketFilter2ByRef, "v_PacketFilter2ByRef", "PacketFilter template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(1973); +ttcn3_debugger.breakpoint_entry(1973); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1973 */ +NAS__CommonTypeDefs::PacketFilter_template v__PacketFilter3ByRef; +debug_scope.add_variable(&v__PacketFilter3ByRef, "v_PacketFilter3ByRef", "PacketFilter template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(1974); +ttcn3_debugger.breakpoint_entry(1974); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1974 */ +NAS__CommonTypeDefs::TrafficFlowTemplate_packetFilterList_template v__PacketFilterList; +debug_scope.add_variable(&v__PacketFilterList, "v_PacketFilterList", "TrafficFlowTemplate_packetFilterList template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(1975); +ttcn3_debugger.breakpoint_entry(1975); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1975 */ +INTEGER v__IeLength; +debug_scope.add_variable(&v__IeLength, "v_IeLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const INTEGER &tmp_251 = p__BearerContext; +switch(tmp_251.get_long_long_val()) { +case(1): +{ +current_location.update_lineno(1979); +ttcn3_debugger.breakpoint_entry(1979); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1979 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 1, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(1980); +ttcn3_debugger.breakpoint_entry(1980); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1980 */ +fl__Get__508__PacketFilter(v__PacketFilter2ByRef, v__PacketFilterLen2ByRef, 2, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(1982); +ttcn3_debugger.breakpoint_entry(1982); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1982 */ +v__IeLength = ((v__PacketFilterLen1ByRef + v__PacketFilterLen2ByRef) + 1); +current_location.update_lineno(1983); +ttcn3_debugger.breakpoint_entry(1983); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1983 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(2); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +v__PacketFilterList[1] = v__PacketFilter2ByRef; +break; +} +case(2): +{ +current_location.update_lineno(1986); +ttcn3_debugger.breakpoint_entry(1986); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1986 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 3, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(1988); +ttcn3_debugger.breakpoint_entry(1988); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1988 */ +v__IeLength = (v__PacketFilterLen1ByRef + 1); +current_location.update_lineno(1989); +ttcn3_debugger.breakpoint_entry(1989); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1989 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(1); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +break; +} +case(3): +{ +current_location.update_lineno(1992); +ttcn3_debugger.breakpoint_entry(1992); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1992 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 5, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(1994); +ttcn3_debugger.breakpoint_entry(1994); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1994 */ +v__IeLength = (v__PacketFilterLen1ByRef + 1); +current_location.update_lineno(1995); +ttcn3_debugger.breakpoint_entry(1995); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1995 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(1); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +break; +} +case(4): +{ +current_location.update_lineno(1998); +ttcn3_debugger.breakpoint_entry(1998); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1998 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 4, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2000); +ttcn3_debugger.breakpoint_entry(2000); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2000 */ +v__IeLength = (v__PacketFilterLen1ByRef + 1); +current_location.update_lineno(2001); +ttcn3_debugger.breakpoint_entry(2001); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2001 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(1); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +break; +} +case(5): +{ +current_location.update_lineno(2004); +ttcn3_debugger.breakpoint_entry(2004); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2004 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 4, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2005); +ttcn3_debugger.breakpoint_entry(2005); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2005 */ +fl__Get__508__PacketFilter(v__PacketFilter2ByRef, v__PacketFilterLen2ByRef, 10, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2007); +ttcn3_debugger.breakpoint_entry(2007); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2007 */ +v__IeLength = ((v__PacketFilterLen1ByRef + v__PacketFilterLen2ByRef) + 1); +current_location.update_lineno(2008); +ttcn3_debugger.breakpoint_entry(2008); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2008 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(2); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +v__PacketFilterList[1] = v__PacketFilter2ByRef; +break; +} +case(6): +{ +current_location.update_lineno(2011); +ttcn3_debugger.breakpoint_entry(2011); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2011 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 6, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2012); +ttcn3_debugger.breakpoint_entry(2012); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2012 */ +fl__Get__508__PacketFilter(v__PacketFilter2ByRef, v__PacketFilterLen2ByRef, 7, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2014); +ttcn3_debugger.breakpoint_entry(2014); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2014 */ +v__IeLength = ((v__PacketFilterLen1ByRef + v__PacketFilterLen2ByRef) + 1); +current_location.update_lineno(2015); +ttcn3_debugger.breakpoint_entry(2015); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2015 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(2); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +v__PacketFilterList[1] = v__PacketFilter2ByRef; +break; +} +case(7): +{ +current_location.update_lineno(2018); +ttcn3_debugger.breakpoint_entry(2018); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2018 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 8, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2020); +ttcn3_debugger.breakpoint_entry(2020); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2020 */ +v__IeLength = (v__PacketFilterLen1ByRef + 1); +current_location.update_lineno(2021); +ttcn3_debugger.breakpoint_entry(2021); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2021 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(1); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +break; +} +case(8): +{ +current_location.update_lineno(2024); +ttcn3_debugger.breakpoint_entry(2024); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2024 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 9, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2026); +ttcn3_debugger.breakpoint_entry(2026); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2026 */ +v__IeLength = (v__PacketFilterLen1ByRef + 1); +current_location.update_lineno(2027); +ttcn3_debugger.breakpoint_entry(2027); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2027 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(1); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +break; +} +case(9): +{ +current_location.update_lineno(2030); +ttcn3_debugger.breakpoint_entry(2030); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2030 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 11, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2032); +ttcn3_debugger.breakpoint_entry(2032); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2032 */ +v__IeLength = (v__PacketFilterLen1ByRef + 1); +current_location.update_lineno(2033); +ttcn3_debugger.breakpoint_entry(2033); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2033 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(1); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +break; +} +case(10): +{ +current_location.update_lineno(2036); +ttcn3_debugger.breakpoint_entry(2036); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2036 */ +fl__Get__508__PacketFilter(v__PacketFilter1ByRef, v__PacketFilterLen1ByRef, 4, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2037); +ttcn3_debugger.breakpoint_entry(2037); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2037 */ +fl__Get__508__PacketFilter(v__PacketFilter2ByRef, v__PacketFilterLen2ByRef, 5, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2038); +ttcn3_debugger.breakpoint_entry(2038); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2038 */ +fl__Get__508__PacketFilter(v__PacketFilter3ByRef, v__PacketFilterLen3ByRef, 10, p__EPS__BearerId, p__PdnTypeValue, p__PdnIndex); +current_location.update_lineno(2040); +ttcn3_debugger.breakpoint_entry(2040); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2040 */ +v__IeLength = (((v__PacketFilterLen1ByRef + v__PacketFilterLen2ByRef) + v__PacketFilterLen3ByRef) + 1); +current_location.update_lineno(2041); +ttcn3_debugger.breakpoint_entry(2041); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2041 */ +v__PacketFilterList.remove_all_permutations(); +v__PacketFilterList.set_size(3); +v__PacketFilterList[0] = v__PacketFilter1ByRef; +v__PacketFilterList[1] = v__PacketFilter2ByRef; +v__PacketFilterList[2] = v__PacketFilter3ByRef; +break; +} +default: +{ +current_location.update_lineno(2044); +ttcn3_debugger.breakpoint_entry(2044); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2044 */ +CommonDefs::FatalError(cs_3, 2044, cs_23); +break; +} +};} +current_location.update_lineno(2047); +ttcn3_debugger.breakpoint_entry(2047); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 2047 */ +{ +NAS__CommonTypeDefs::TrafficFlowTemplate_template tmp_272; +return DEBUGGER_STORE_RETURN_VALUE(tmp_272, cs__TrafficFlowTemplate(v__IeLength, v__PacketFilterList)); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_CommonTemplates"); +NAS__CommonTemplates::init_ttcn3_debugger(); +CommonIP::module_object.pre_init_module(); +current_location.update_lineno(22); +ttcn3_debugger.breakpoint_entry(22); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 22 */ +const_tsc__Spare1 = bs_0; +current_location.update_lineno(23); +ttcn3_debugger.breakpoint_entry(23); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 23 */ +const_tsc__Spare2 = bs_1; +current_location.update_lineno(24); +ttcn3_debugger.breakpoint_entry(24); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 24 */ +const_tsc__Spare3 = bs_2; +current_location.update_lineno(25); +ttcn3_debugger.breakpoint_entry(25); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 25 */ +const_tsc__Spare4 = bs_3; +current_location.update_lineno(26); +ttcn3_debugger.breakpoint_entry(26); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 26 */ +const_tsc__Spare5 = bs_4; +current_location.update_lineno(27); +ttcn3_debugger.breakpoint_entry(27); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 27 */ +const_tsc__Spare6 = bs_5; +current_location.update_lineno(28); +ttcn3_debugger.breakpoint_entry(28); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 28 */ +const_tsc__Spare7 = bs_6; +current_location.update_lineno(29); +ttcn3_debugger.breakpoint_entry(29); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 29 */ +const_tsc__SpareHalfOctet = hs_0; +current_location.update_lineno(31); +ttcn3_debugger.breakpoint_entry(31); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 31 */ +const_tsc__SHT__NoSecurityProtection = bs_3; +current_location.update_lineno(32); +ttcn3_debugger.breakpoint_entry(32); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 32 */ +const_tsc__SHT__IntegrityProtected = bs_7; +current_location.update_lineno(33); +ttcn3_debugger.breakpoint_entry(33); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 33 */ +const_tsc__SHT__IntegrityProtected__Ciphered = bs_8; +current_location.update_lineno(34); +ttcn3_debugger.breakpoint_entry(34); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 34 */ +const_tsc__SHT__IntegrityProtected__NewSecurityContext = bs_9; +current_location.update_lineno(35); +ttcn3_debugger.breakpoint_entry(35); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 35 */ +const_tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext = bs_10; +current_location.update_lineno(36); +ttcn3_debugger.breakpoint_entry(36); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 36 */ +const_tsc__SHT__IntegrityProtected__PartiallyCiphered = bs_11; +current_location.update_lineno(38); +ttcn3_debugger.breakpoint_entry(38); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 38 */ +const_tsc__IdType__IMSI = bs_12; +current_location.update_lineno(40); +ttcn3_debugger.breakpoint_entry(40); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 40 */ +const_tsc__IdType__IMEI = bs_13; +current_location.update_lineno(42); +ttcn3_debugger.breakpoint_entry(42); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 42 */ +const_tsc__IdType__IMEI__24301 = bs_14; +current_location.update_lineno(44); +ttcn3_debugger.breakpoint_entry(44); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 44 */ +const_tsc__IdType__IMEISV = bs_14; +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 46 */ +const_tsc__IdType__TMSI = bs_15; +current_location.update_lineno(48); +ttcn3_debugger.breakpoint_entry(48); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 48 */ +const_tsc__IdType__GUTI = bs_16; +current_location.update_lineno(50); +ttcn3_debugger.breakpoint_entry(50); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 50 */ +const_tsc__IMEISV__Requested = bs_12; +current_location.update_lineno(53); +ttcn3_debugger.breakpoint_entry(53); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 53 */ +const_tsc__EmmCause__IllegalUe = bs_17; +current_location.update_lineno(54); +ttcn3_debugger.breakpoint_entry(54); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 54 */ +const_tsc__EmmCause__IllegalMe = bs_18; +current_location.update_lineno(56); +ttcn3_debugger.breakpoint_entry(56); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 56 */ +const_tsc__Cause__MAC__Failure = bs_19; +current_location.update_lineno(57); +ttcn3_debugger.breakpoint_entry(57); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 57 */ +const_tsc__Cause__SQN__Failure = bs_20; +current_location.update_lineno(58); +ttcn3_debugger.breakpoint_entry(58); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 58 */ +const_tsc__Cause__nonEPS__AuthUnacceptable = bs_21; +current_location.update_lineno(59); +ttcn3_debugger.breakpoint_entry(59); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 59 */ +const_tsc__Cause__TA__NotAllowed = bs_22; +current_location.update_lineno(60); +ttcn3_debugger.breakpoint_entry(60); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 60 */ +const_tsc__EmmCause__SemanticallyIncorrect = bs_23; +current_location.update_lineno(61); +ttcn3_debugger.breakpoint_entry(61); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 61 */ +const_tsc__Cause__Roaming__NotAllowed = bs_24; +current_location.update_lineno(62); +ttcn3_debugger.breakpoint_entry(62); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 62 */ +const_tsc__Cause__PLMN__NotAllowed = bs_25; +current_location.update_lineno(63); +ttcn3_debugger.breakpoint_entry(63); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 63 */ +const_tsc__Cause__NoNetworkSlices__Available = bs_26; +current_location.update_lineno(64); +ttcn3_debugger.breakpoint_entry(64); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 64 */ +const_tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation = bs_27; +current_location.update_lineno(66); +ttcn3_debugger.breakpoint_entry(66); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 66 */ +const_tsc__NasKsi__NoKey = bs_28; +current_location.update_lineno(68); +ttcn3_debugger.breakpoint_entry(68); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 68 */ +const_tsc__NoValidTmsi = bs_0; +current_location.update_lineno(70); +ttcn3_debugger.breakpoint_entry(70); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 70 */ +const_tsc__GprsTimerUnit__2sec = bs_2; +current_location.update_lineno(71); +ttcn3_debugger.breakpoint_entry(71); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 71 */ +const_tsc__GprsTimerUnit__1min = bs_12; +current_location.update_lineno(72); +ttcn3_debugger.breakpoint_entry(72); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 72 */ +const_tsc__Gprs3TimerUnit__1min = bs_29; +current_location.update_lineno(73); +ttcn3_debugger.breakpoint_entry(73); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 73 */ +const_tsc__GprsTimerUnit__6min = bs_13; +current_location.update_lineno(74); +ttcn3_debugger.breakpoint_entry(74); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 74 */ +const_tsc__Gprs3TimerUnit__30sec = bs_15; +current_location.update_lineno(75); +ttcn3_debugger.breakpoint_entry(75); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 75 */ +const_tsc__GprsTimerUnit__deact = bs_28; +current_location.update_lineno(76); +ttcn3_debugger.breakpoint_entry(76); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 76 */ +const_tsc__PCO__Id__DSMIPv6 = os_0; +current_location.update_lineno(77); +ttcn3_debugger.breakpoint_entry(77); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 77 */ +const_tsc__PCO__Id__DSMIPv6__IPv4 = os_1; +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 79 */ +const_tsc__IPv4Mask = os_2; +current_location.update_lineno(80); +ttcn3_debugger.breakpoint_entry(80); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 80 */ +const_tsc__IPv6Mask = os_3; +current_location.update_lineno(82); +ttcn3_debugger.breakpoint_entry(82); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 82 */ +const_tsc__NonConsecutiveTacs = bs_1; +current_location.update_lineno(83); +ttcn3_debugger.breakpoint_entry(83); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 83 */ +const_tsc__ConsecutiveTacs = bs_30; +current_location.update_lineno(84); +ttcn3_debugger.breakpoint_entry(84); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 84 */ +const_tsc__MultiplePlmns = bs_31; +current_location.update_lineno(86); +ttcn3_debugger.breakpoint_entry(86); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 86 */ +const_tsc__PdnType__IPv4 = bs_12; +current_location.update_lineno(87); +ttcn3_debugger.breakpoint_entry(87); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 87 */ +const_tsc__PdnType__IPv6 = bs_13; +current_location.update_lineno(88); +ttcn3_debugger.breakpoint_entry(88); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 88 */ +const_tsc__PdnType__IPv4v6 = bs_14; +current_location.update_lineno(91); +ttcn3_debugger.breakpoint_entry(91); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 91 */ +const_tsc__PTI__Unassigned = os_4; +current_location.update_lineno(92); +ttcn3_debugger.breakpoint_entry(92); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 92 */ +const_tsc__PTI__1 = os_5; +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 94 */ +const_tsc__PayloadContainerESMMsg = bs_7; +current_location.update_lineno(96); +ttcn3_debugger.breakpoint_entry(96); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 96 */ +const_tsc__APN1 = os_6; +current_location.update_lineno(98); +ttcn3_debugger.breakpoint_entry(98); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 98 */ +const_tsc__APN1__String = cs_0; +current_location.update_lineno(100); +ttcn3_debugger.breakpoint_entry(100); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 100 */ +const_tsc__APN2 = os_7; +current_location.update_lineno(102); +ttcn3_debugger.breakpoint_entry(102); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 102 */ +const_tsc__APN2__String = cs_1; +current_location.update_lineno(104); +ttcn3_debugger.breakpoint_entry(104); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 104 */ +const_tsc__APN3 = os_8; +current_location.update_lineno(106); +ttcn3_debugger.breakpoint_entry(106); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 106 */ +const_tsc__APN3__String = cs_2; +module_object.add_function("f_NAS_ProtocolConfigOptionsTX", (genericfunc_t)&f__NAS__ProtocolConfigOptionsTX, NULL); +module_object.add_function("f_ConvertPackingToCodingScheme", (genericfunc_t)&f__ConvertPackingToCodingScheme, NULL); +module_object.add_function("f_Get_PacketFilter_10_9_1", (genericfunc_t)&f__Get__PacketFilter__10__9__1, NULL); +current_location.update_lineno(1388); +ttcn3_debugger.breakpoint_entry(1388); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1388 */ +const_tsc__NasKsi__NativeSecurityContext = bs_0; +current_location.update_lineno(1389); +ttcn3_debugger.breakpoint_entry(1389); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1389 */ +const_tsc__NasKsi__MappedSecurityContext = bs_32; +module_object.add_function("f_QoS_MaximumBitRate", (genericfunc_t)&f__QoS__MaximumBitRate, NULL); +module_object.add_function("fl_QoS_TransferDelay", (genericfunc_t)&fl__QoS__TransferDelay, NULL); +module_object.add_function("fl_QoS_SDUErrorRatio", (genericfunc_t)&fl__QoS__SDUErrorRatio, NULL); +module_object.add_function("fl_QoS_ResidualBER", (genericfunc_t)&fl__QoS__ResidualBER, NULL); +module_object.add_function("f_ConvertQoS_ForATCommand", (genericfunc_t)&f__ConvertQoS__ForATCommand, NULL); +module_object.add_function("fl_BearerContextNumber_Def", (genericfunc_t)&fl__BearerContextNumber__Def, NULL); +module_object.add_function("f_Get_508_EPSQoS", (genericfunc_t)&f__Get__508__EPSQoS, NULL); +module_object.add_function("fl_SingleRemoteport508", (genericfunc_t)&fl__SingleRemoteport508, NULL); +module_object.add_function("fl_Get_508_PacketFilter", (genericfunc_t)&fl__Get__508__PacketFilter, NULL); +module_object.add_function("f_EUTRA_NB_Get_508_TrafficFlowTemplate", (genericfunc_t)&f__EUTRA__NB__Get__508__TrafficFlowTemplate, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_CommonTemplates"); +CommonIP::module_object.post_init_module(); +current_location.update_lineno(126); +ttcn3_debugger.breakpoint_entry(126); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 126 */ +template_cr__AccessPointName__Any.iei() = os_9; +template_cr__AccessPointName__Any.iel() = ANY_VALUE; +template_cr__AccessPointName__Any.nameValue() = ANY_VALUE; +current_location.update_lineno(133); +ttcn3_debugger.breakpoint_entry(133); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 133 */ +template_cr__AdditionalUpdateTypeAny.iei() = hs_1; +template_cr__AdditionalUpdateTypeAny.pnb__CIOT() = ANY_VALUE; +template_cr__AdditionalUpdateTypeAny.signallingActiveFlag() = bs_0; +template_cr__AdditionalUpdateTypeAny.addUpdateTypeValue() = ANY_VALUE; +current_location.update_lineno(143); +ttcn3_debugger.breakpoint_entry(143); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 143 */ +template_cr__AuthFailParam__Any.iei() = os_10; +template_cr__AuthFailParam__Any.iel() = os_11; +template_cr__AuthFailParam__Any.auts() = ANY_VALUE; +current_location.update_lineno(151); +ttcn3_debugger.breakpoint_entry(151); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 151 */ +template_cdr__AuthFailParamGSM__Any = cr__AuthFailParam__Any; +template_cdr__AuthFailParamGSM__Any.iei() = os_12; +current_location.update_lineno(210); +ttcn3_debugger.breakpoint_entry(210); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 210 */ +template_cr__CodecAny.sysId() = ANY_VALUE; +template_cr__CodecAny.len() = ANY_VALUE; +template_cr__CodecAny.bitMap1to8() = ANY_VALUE; +template_cr__CodecAny.bitMap9to16() = ANY_OR_OMIT; +current_location.update_lineno(223); +ttcn3_debugger.breakpoint_entry(223); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 223 */ +template_cr__CodecListAny.iei() = os_16; +template_cr__CodecListAny.iel() = ANY_VALUE; +{ +NAS__CommonTypeDefs::CodecList_codec_template& tmp_0 = template_cr__CodecListAny.codec(); +tmp_0.set_type(VALUE_LIST, 3); +{ +NAS__CommonTypeDefs::CodecList_codec_template& tmp_1 = tmp_0.list_item(0); +tmp_1.set_size(4); +tmp_1[0] = cr__CodecAny; +tmp_1[1] = cr__CodecAny; +tmp_1[2] = cr__CodecAny; +tmp_1[3] = ANY_OR_OMIT; +} +{ +NAS__CommonTypeDefs::CodecList_codec_template& tmp_2 = tmp_0.list_item(1); +tmp_2.set_size(3); +tmp_2[0] = cr__CodecAny; +tmp_2[1] = cr__CodecAny; +tmp_2[2] = ANY_OR_OMIT; +} +{ +NAS__CommonTypeDefs::CodecList_codec_template& tmp_3 = tmp_0.list_item(2); +tmp_3.set_size(2); +tmp_3[0] = cr__CodecAny; +tmp_3[1] = ANY_OR_OMIT; +} +} +current_location.update_lineno(250); +ttcn3_debugger.breakpoint_entry(250); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 250 */ +template_cr__DetachTypeOnSwitchOff = cr__DetachType(BITSTRING_template(bs_32), BITSTRING_template(ANY_VALUE)); +current_location.update_lineno(269); +ttcn3_debugger.breakpoint_entry(269); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 269 */ +template_cr__EDGE__Struct__Any.modulationCapability() = ANY_VALUE; +template_cr__EDGE__Struct__Any.pwrMask1() = ANY_VALUE; +template_cr__EDGE__Struct__Any.eDGE__RF__PowerCapability1() = ANY_OR_OMIT; +template_cr__EDGE__Struct__Any.pwrMask2() = ANY_VALUE; +template_cr__EDGE__Struct__Any.eDGE__RF__PowerCapability2() = ANY_OR_OMIT; +current_location.update_lineno(307); +ttcn3_debugger.breakpoint_entry(307); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 307 */ +template_cr__ExtdDRXParamsAny.iei() = os_19; +template_cr__ExtdDRXParamsAny.iel() = ANY_VALUE; +template_cr__ExtdDRXParamsAny.pagingTimeWindow() = ANY_VALUE; +template_cr__ExtdDRXParamsAny.eDRXValue() = ANY_VALUE; +template_cr__ExtdDRXParamsAny.extdPTW() = ANY_OR_OMIT; +current_location.update_lineno(333); +ttcn3_debugger.breakpoint_entry(333); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 333 */ +template_cs__GprsTimer__v__deact = cs__GprsTimer__v(bs_28, bs_4); +current_location.update_lineno(350); +ttcn3_debugger.breakpoint_entry(350); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 350 */ +{ +OCTETSTRING_template tmp_4; +tmp_4 = ANY_VALUE; +OCTETSTRING_template tmp_5; +tmp_5 = ANY_VALUE; +template_cr__LAI__Any = cr__LAI(OCTETSTRING_template(os_20), tmp_4, tmp_5); +} +current_location.update_lineno(351); +ttcn3_debugger.breakpoint_entry(351); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 351 */ +{ +OCTETSTRING_template tmp_6; +tmp_6 = ANY_VALUE; +OCTETSTRING_template tmp_7; +tmp_7 = ANY_VALUE; +template_cr__LAI__Any__v = cr__LAI(OCTETSTRING_template(OMIT_VALUE), tmp_6, tmp_7); +} +current_location.update_lineno(443); +ttcn3_debugger.breakpoint_entry(443); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 443 */ +const_cdr__MobileIdTMSI__tlv_p__IEI_defval = os_23; +current_location.update_lineno(452); +ttcn3_debugger.breakpoint_entry(452); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 452 */ +const_cr__MobileIdentityImei_p__NAS__IdType_defval = bs_13; +current_location.update_lineno(500); +ttcn3_debugger.breakpoint_entry(500); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 500 */ +template_cr__MS__Clsmk2__Any = cr__MS__Clsmk2__Any__tlv(OCTETSTRING_template(OMIT_VALUE)); +current_location.update_lineno(504); +ttcn3_debugger.breakpoint_entry(504); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 504 */ +template_cr__MSCLSMK3__Any.iei() = os_15; +template_cr__MSCLSMK3__Any.iel() = ANY_VALUE; +template_cr__MSCLSMK3__Any.spareBit() = bs_0; +template_cr__MSCLSMK3__Any.multibandSupported() = ANY_VALUE; +template_cr__MSCLSMK3__Any.a5__7() = ANY_VALUE; +template_cr__MSCLSMK3__Any.a5__6() = ANY_VALUE; +template_cr__MSCLSMK3__Any.a5__5() = ANY_VALUE; +template_cr__MSCLSMK3__Any.a5__4() = ANY_VALUE; +template_cr__MSCLSMK3__Any.associatedRadioCapabilty2() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.spareBits1() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.associatedRadioCapabilty1() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.maskBit1() = ANY_VALUE; +template_cr__MSCLSMK3__Any.rGSM__RadioCapability() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.maskBit2() = ANY_VALUE; +template_cr__MSCLSMK3__Any.multiSlotClass() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.uCS2Treatment() = ANY_VALUE; +template_cr__MSCLSMK3__Any.extMeasurementCapability() = ANY_VALUE; +template_cr__MSCLSMK3__Any.maskBit3() = ANY_VALUE; +{ +NAS__CommonTypeDefs::MS__MeasCapability_template& tmp_8 = template_cr__MSCLSMK3__Any.msMeasurementCapability(); +template_cr__MS__MeasCapability__Any.sMS__VALUE() = ANY_VALUE; +template_cr__MS__MeasCapability__Any.sM__VALUE() = ANY_VALUE; +tmp_8 = cr__MS__MeasCapability__Any; +tmp_8.set_ifpresent(); +} +template_cr__MSCLSMK3__Any.maskBit4() = ANY_VALUE; +template_cr__MSCLSMK3__Any.msPositioningMethod() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.maskBit5() = ANY_VALUE; +template_cr__MSCLSMK3__Any.eDGE__MultiSlot() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.maskBit6() = ANY_VALUE; +{ +NAS__CommonTypeDefs::EDGE__Struct_template& tmp_9 = template_cr__MSCLSMK3__Any.psk8__Struct(); +tmp_9 = cr__EDGE__Struct__Any; +tmp_9.set_ifpresent(); +} +template_cr__MSCLSMK3__Any.maskBit7() = ANY_VALUE; +template_cr__MSCLSMK3__Any.gSM400BandsSupported() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.gSM400AssociatedRadioCapability() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.maskBit8() = ANY_VALUE; +template_cr__MSCLSMK3__Any.gSM850AssociatedRadiioCapability() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.maskBit9() = ANY_VALUE; +template_cr__MSCLSMK3__Any.pCS1900AssociatedRadiioCapability() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.uMTS__FDD__RAT__Capability() = ANY_VALUE; +template_cr__MSCLSMK3__Any.uMTS384TDD__RAT__Capability() = ANY_VALUE; +template_cr__MSCLSMK3__Any.cDMA2000__RAT__Capability() = ANY_VALUE; +template_cr__MSCLSMK3__Any.maskBit10() = ANY_VALUE; +template_cr__MSCLSMK3__Any.dTM__GPRS__MultiSlotSubclass() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.singleSlotDTM() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.maskBit11() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.dTM__EGPRS__MultiSlorSubclass() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.maskBit12() = ANY_VALUE; +template_cr__MSCLSMK3__Any.singleBandSupport() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.maskBit13() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.gSM700AssociatedRadioCapability() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.uMTS128TDD__RAT__Capability() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.gERANFeatPack1() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.mask14() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.extDTM__GPRS__MultiSlotSubclass() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.etxDTM__EGPRS__MultiSlotSubclass() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.mask15() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.highMultislotCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.spare2() = bs_0; +template_cr__MSCLSMK3__Any.gERANFeatPack2() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.gMSKMultislotPowerProfile() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.pSKMultislotPowerProfile() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.mask17() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.tGSM400BandsSupported() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.tGSM400AssocRadioCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.spare() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.dlAdvancedRxPerf() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.dTMEhancCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.mask19() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.dTMGPRSHighMultislotClass() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.offsetReq() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.mask20() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.dTMEGPRSHighMultislotClass() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.rptdACCHCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.mask21() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.gsm710AssocRadioCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.mask22() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.tgsm810AssocRadioCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.cipheringModeSettingCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.addPositionCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.eutraFDDSupport() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.eutraTDDSupport() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.eutraMeasAndReporting() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.priorityBasedReselection() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.utraCSGCellsReporting() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.vamosLevel() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.tighterCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.selectCipheringDLSACCH() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.csPS__SRVCC__G2U() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.csPS__SRVCC__G2E() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.geranNwkSharing() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.eutraWidebandRSRQMeas() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.erBandSupport() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.utraMultipleFreqBandInd() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.eutraMultipleFreqBandInd() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.xtdTSCSetCap() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.xtdEARFCNValueRange() = ANY_OR_OMIT; +template_cr__MSCLSMK3__Any.spareBits2() = ANY_OR_OMIT; +current_location.update_lineno(613); +ttcn3_debugger.breakpoint_entry(613); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 613 */ +current_location.update_lineno(619); +ttcn3_debugger.breakpoint_entry(619); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 619 */ +template_cr__MS__NetworkCap__Any.iei() = os_25; +template_cr__MS__NetworkCap__Any.iel() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.gea1() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.smCapDedicated() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.smCapGPRS() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.ucs2() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.ssScreeningIndicator() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.soLSACap() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.revLevelIndicator() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.pfcFeatureMode() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.gea2() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.gea3() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.gea4() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.gea5() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.gea6() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.gea7() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.lcsVACap() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.psHOtoUTRAN__IuModeCap() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.psHOtoEUTRAN__S1ModeCap() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.emmCombinedCap() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.isrSupport() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.srvccToGERAN__UTRANCap() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.epcCap() = ANY_VALUE; +template_cr__MS__NetworkCap__Any.nfCap() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.gERANNtwkShareCap() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.userPlaneIntegrityProtSupport() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.gia4() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.gia5() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.gia6() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.gia7() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.ePCOInd() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.restrictEnhancedCoverageCap() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.dualConnectivityEUTRA__NR() = ANY_OR_OMIT; +template_cr__MS__NetworkCap__Any.spareBits() = ANY_OR_OMIT; +current_location.update_lineno(658); +ttcn3_debugger.breakpoint_entry(658); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 658 */ +template_cdr__MS__NetworkCapAss__lv = cr__MS__NetworkCap__Any; +template_cdr__MS__NetworkCapAss__lv.iei() = OMIT_VALUE; +current_location.update_lineno(672); +ttcn3_debugger.breakpoint_entry(672); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 672 */ +template_cr__NBIFOMContainerAny.iei() = os_26; +template_cr__NBIFOMContainerAny.iel() = ANY_VALUE; +template_cr__NBIFOMContainerAny.containerContents() = ANY_VALUE; +current_location.update_lineno(679); +ttcn3_debugger.breakpoint_entry(679); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 679 */ +const_cr__NwkResourceIdAny_p__IEI_defval = os_14; +current_location.update_lineno(687); +ttcn3_debugger.breakpoint_entry(687); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 687 */ +template_cs__PktFlowId.iei() = os_27; +template_cs__PktFlowId.iel() = os_5; +template_cs__PktFlowId.spare() = bs_0; +template_cs__PktFlowId.idValue() = bs_6; +current_location.update_lineno(725); +ttcn3_debugger.breakpoint_entry(725); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 725 */ +const_cs__ProtocolContainer__Common_p__ContainerLength_defval = 0; +current_location.update_lineno(740); +ttcn3_debugger.breakpoint_entry(740); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 740 */ +const_cs__ProtocolConfigOptions__Common_p__Type4Length_defval = os_5; +current_location.update_lineno(751); +ttcn3_debugger.breakpoint_entry(751); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 751 */ +{ +NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template tmp_14; +tmp_14 = OMIT_VALUE; +template_cs__ProtocolConfigOptions__PPP = cs__ProtocolConfigOptions__Common(cs__ProtocolConfigOptions__Common_p__Type4Length_defval, tmp_14); +} +current_location.update_lineno(774); +ttcn3_debugger.breakpoint_entry(774); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 774 */ +template_cr__ProtocolConfigOptionsAny.iei() = os_29; +template_cr__ProtocolConfigOptionsAny.iel() = ANY_VALUE; +template_cr__ProtocolConfigOptionsAny.ext() = bs_32; +template_cr__ProtocolConfigOptionsAny.spare() = bs_3; +template_cr__ProtocolConfigOptionsAny.configProtocol() = ANY_VALUE; +template_cr__ProtocolConfigOptionsAny.pco() = ANY_OR_OMIT; +current_location.update_lineno(784); +ttcn3_debugger.breakpoint_entry(784); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 784 */ +template_cr__ExtdPCOAny.iei() = os_30; +template_cr__ExtdPCOAny.iel() = ANY_VALUE; +template_cr__ExtdPCOAny.ext() = ANY_VALUE; +template_cr__ExtdPCOAny.spare() = bs_3; +template_cr__ExtdPCOAny.configProtocol() = ANY_VALUE; +template_cr__ExtdPCOAny.pco() = ANY_OR_OMIT; +current_location.update_lineno(808); +ttcn3_debugger.breakpoint_entry(808); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 808 */ +template_cr__PTMSI__SignatureAny = cr__PTMSI__Signature(OCTETSTRING_template(ANY_VALUE)); +current_location.update_lineno(812); +ttcn3_debugger.breakpoint_entry(812); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 812 */ +template_cr__PTMSI__Signature2Any.iei() = os_31; +template_cr__PTMSI__Signature2Any.iel() = os_24; +template_cr__PTMSI__Signature2Any.signatureValue() = ANY_VALUE; +current_location.update_lineno(819); +ttcn3_debugger.breakpoint_entry(819); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 819 */ +template_cs__QoS__Negotiated__1.iei() = os_10; +template_cs__QoS__Negotiated__1.iel() = os_14; +template_cs__QoS__Negotiated__1.spare1() = bs_1; +template_cs__QoS__Negotiated__1.delayClass() = bs_15; +template_cs__QoS__Negotiated__1.relabilityClass() = bs_14; +template_cs__QoS__Negotiated__1.peakThroughput() = bs_10; +template_cs__QoS__Negotiated__1.spare2() = bs_0; +template_cs__QoS__Negotiated__1.precedenceClass() = bs_14; +template_cs__QoS__Negotiated__1.spare3() = bs_2; +template_cs__QoS__Negotiated__1.meanThroughput() = bs_35; +template_cs__QoS__Negotiated__1.trafficClass() = bs_15; +template_cs__QoS__Negotiated__1.deliveryOrder() = bs_31; +template_cs__QoS__Negotiated__1.deliveryErrorSDU() = bs_13; +template_cs__QoS__Negotiated__1.maxSduSize() = bs_36; +template_cs__QoS__Negotiated__1.maxBitRateUL() = bs_37; +template_cs__QoS__Negotiated__1.maxBitRateDL() = bs_37; +template_cs__QoS__Negotiated__1.residualBER() = bs_38; +template_cs__QoS__Negotiated__1.sduErrorRatio() = bs_10; +template_cs__QoS__Negotiated__1.transferDelay() = bs_5; +template_cs__QoS__Negotiated__1.trafficHandlingPrio() = bs_1; +template_cs__QoS__Negotiated__1.guaranteedBitRateUL() = bs_39; +template_cs__QoS__Negotiated__1.guaranteedBitRateDL() = bs_39; +template_cs__QoS__Negotiated__1.spare4() = bs_2; +template_cs__QoS__Negotiated__1.signallingInd() = bs_0; +template_cs__QoS__Negotiated__1.sourceStatisticsDescriptor() = bs_3; +template_cs__QoS__Negotiated__1.maxBitRateDL__Ext() = bs_40; +template_cs__QoS__Negotiated__1.guaranteedBitRateDL__Ext() = bs_40; +template_cs__QoS__Negotiated__1.maxBitRateUL__Ext() = bs_40; +template_cs__QoS__Negotiated__1.guaranteedBitRateUL__Ext() = bs_40; +template_cs__QoS__Negotiated__1.maxBitRateDL__Ext2() = OMIT_VALUE; +template_cs__QoS__Negotiated__1.guaranteedBitRateDL__Ext2() = OMIT_VALUE; +template_cs__QoS__Negotiated__1.maxBitRateUL__Ext2() = OMIT_VALUE; +template_cs__QoS__Negotiated__1.guaranteedBitRateUL__Ext2() = OMIT_VALUE; +current_location.update_lineno(857); +ttcn3_debugger.breakpoint_entry(857); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 857 */ +template_cds__QoS__Negotiated__2 = cs__QoS__Negotiated__1; +template_cds__QoS__Negotiated__2.maxSduSize() = bs_41; +template_cds__QoS__Negotiated__2.maxBitRateUL() = bs_42; +template_cds__QoS__Negotiated__2.maxBitRateDL() = bs_42; +template_cds__QoS__Negotiated__2.residualBER() = bs_10; +template_cds__QoS__Negotiated__2.sduErrorRatio() = bs_9; +current_location.update_lineno(867); +ttcn3_debugger.breakpoint_entry(867); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 867 */ +template_cds__QoS__Negotiated__3 = cs__QoS__Negotiated__1; +template_cds__QoS__Negotiated__3.trafficClass() = bs_12; +template_cds__QoS__Negotiated__3.deliveryErrorSDU() = bs_14; +template_cds__QoS__Negotiated__3.maxSduSize() = bs_43; +template_cds__QoS__Negotiated__3.maxBitRateUL() = bs_44; +template_cds__QoS__Negotiated__3.maxBitRateDL() = bs_44; +template_cds__QoS__Negotiated__3.sduErrorRatio() = bs_8; +template_cds__QoS__Negotiated__3.transferDelay() = bs_45; +template_cds__QoS__Negotiated__3.guaranteedBitRateUL() = bs_40; +template_cds__QoS__Negotiated__3.guaranteedBitRateDL() = bs_40; +current_location.update_lineno(895); +ttcn3_debugger.breakpoint_entry(895); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 895 */ +template_cds__QoS__Negotiated__8 = cs__QoS__Negotiated__1; +template_cds__QoS__Negotiated__8.transferDelay() = bs_49; +current_location.update_lineno(986); +ttcn3_debugger.breakpoint_entry(986); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 986 */ +template_cr__UEStatus__Any.iei() = os_32; +template_cr__UEStatus__Any.iel() = ANY_VALUE; +template_cr__UEStatus__Any.spare() = bs_5; +template_cr__UEStatus__Any.n1ModeRegistered() = ANY_VALUE; +template_cr__UEStatus__Any.s1ModeRegistered() = ANY_VALUE; +current_location.update_lineno(1041); +ttcn3_debugger.breakpoint_entry(1041); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1041 */ +template_cr__VoiceDomainPref__Any.iei() = ANY_VALUE; +template_cr__VoiceDomainPref__Any.iel() = ANY_VALUE; +template_cr__VoiceDomainPref__Any.spareBits() = ANY_VALUE; +template_cr__VoiceDomainPref__Any.ueUsageSetting() = ANY_VALUE; +template_cr__VoiceDomainPref__Any.voiceDomainPrefEUTRA() = ANY_VALUE; +current_location.update_lineno(1100); +ttcn3_debugger.breakpoint_entry(1100); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1100 */ +const_cs__NetworkName_p__Packing_defval = CommonDefs::Gsm7BitPacking__Type::SMS__Packing; +current_location.update_lineno(1101); +ttcn3_debugger.breakpoint_entry(1101); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1101 */ +const_cs__NetworkName_p__AddCI_defval = bs_0; +current_location.update_lineno(1143); +ttcn3_debugger.breakpoint_entry(1143); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1143 */ +const_cs__PktFilterCompIPv4RemoteAddress_p__Mask_defval = os_2; +current_location.update_lineno(1154); +ttcn3_debugger.breakpoint_entry(1154); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1154 */ +const_cs__PktFilterCompIPv6RemoteAddress_p__Mask_defval = os_3; +current_location.update_lineno(1172); +ttcn3_debugger.breakpoint_entry(1172); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1172 */ +template_cs__PktFilterCompProtocolIdNextHeaderICMP = cs__PktFilterCompProtocolIdNextHeader(os_5); +current_location.update_lineno(1173); +ttcn3_debugger.breakpoint_entry(1173); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1173 */ +template_cs__PktFilterCompProtocolIdNextHeaderICMPv6 = cs__PktFilterCompProtocolIdNextHeader(os_36); +current_location.update_lineno(1174); +ttcn3_debugger.breakpoint_entry(1174); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1174 */ +template_cs__PktFilterCompProtocolIdNextHeaderUDP = cs__PktFilterCompProtocolIdNextHeader(os_37); +current_location.update_lineno(1175); +ttcn3_debugger.breakpoint_entry(1175); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1175 */ +template_cs__PktFilterCompProtocolIdNextHeaderTCP = cs__PktFilterCompProtocolIdNextHeader(os_38); +current_location.update_lineno(1176); +ttcn3_debugger.breakpoint_entry(1176); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1176 */ +template_cs__PktFilterCompProtocolIdNextHeaderIPSec = cs__PktFilterCompProtocolIdNextHeader(os_39); +current_location.update_lineno(1372); +ttcn3_debugger.breakpoint_entry(1372); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1372 */ +template_cr__Extd__EPS__QOS__Any.iei() = os_52; +template_cr__Extd__EPS__QOS__Any.iel() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.unitMaxBitRate() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.maxBitRateUl__1() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.maxBitRateUl__2() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.maxBitRateDl__1() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.maxBitRateDl__2() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.unitGuaranteedBitRate() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.guaranteedBitRateUl__1() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.guaranteedBitRateUl__2() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.guaranteedBitRateDl__1() = ANY_VALUE; +template_cr__Extd__EPS__QOS__Any.guaranteedBitRateDl__2() = ANY_VALUE; +current_location.update_lineno(1460); +ttcn3_debugger.breakpoint_entry(1460); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1460 */ +template_cr__WUSAssistInfoAny.iei() = os_53; +template_cr__WUSAssistInfoAny.iel() = ANY_VALUE; +template_cr__WUSAssistInfoAny.infoType() = ANY_VALUE; +current_location.update_lineno(1468); +ttcn3_debugger.breakpoint_entry(1468); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1468 */ +template_cr__WusInfoTypeAny.wusType() = ANY_VALUE; +template_cr__WusInfoTypeAny.pagingProbability() = ANY_VALUE; +template_cr__WusInfoTypeAny.wusValue() = ANY_VALUE; +current_location.update_lineno(1475); +ttcn3_debugger.breakpoint_entry(1475); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1475 */ +const_cs__UERadioCapIdDeletion_p__DeleteReq_defval = bs_12; +current_location.update_lineno(1672); +ttcn3_debugger.breakpoint_entry(1672); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1672 */ +template_cs__508__EPS__QoS__Default__1.iei() = OMIT_VALUE; +template_cs__508__EPS__QoS__Default__1.iel() = os_55; +template_cs__508__EPS__QoS__Default__1.qci() = bs_58; +template_cs__508__EPS__QoS__Default__1.maxBitRateUl() = bs_37; +template_cs__508__EPS__QoS__Default__1.maxBitRateDl() = bs_37; +template_cs__508__EPS__QoS__Default__1.guaranteedBitRateUl() = bs_37; +template_cs__508__EPS__QoS__Default__1.guaranteedBitRateDl() = bs_37; +template_cs__508__EPS__QoS__Default__1.maxBitRateUlExt() = bs_40; +template_cs__508__EPS__QoS__Default__1.maxBitRateDlExt() = bs_40; +template_cs__508__EPS__QoS__Default__1.guaranteedBitRateUlExt() = bs_40; +template_cs__508__EPS__QoS__Default__1.guaranteedBitRateDlExt() = bs_40; +template_cs__508__EPS__QoS__Default__1.maxBitRateUL__Ext2() = OMIT_VALUE; +template_cs__508__EPS__QoS__Default__1.maxBitRateDL__Ext2() = OMIT_VALUE; +template_cs__508__EPS__QoS__Default__1.guaranteedBitRateUL__Ext2() = OMIT_VALUE; +template_cs__508__EPS__QoS__Default__1.guaranteedBitRateDL__Ext2() = OMIT_VALUE; +current_location.update_lineno(1691); +ttcn3_debugger.breakpoint_entry(1691); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1691 */ +template_cds__508__EPS__QoS__Default__1__tlv = cs__508__EPS__QoS__Default__1; +template_cds__508__EPS__QoS__Default__1__tlv.iei() = os_56; +current_location.update_lineno(1698); +ttcn3_debugger.breakpoint_entry(1698); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1698 */ +template_cds__EPS__QoS__Def__nonGBR__QCI = cs__508__EPS__QoS__Default__1; +template_cds__EPS__QoS__Def__nonGBR__QCI.qci() = bs_52; +current_location.update_lineno(1704); +ttcn3_debugger.breakpoint_entry(1704); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1704 */ +template_cds__EPS__QoS__Def__nonGBR__QCI__tlv = cs__508__EPS__QoS__Default__1; +template_cds__EPS__QoS__Def__nonGBR__QCI__tlv.iei() = os_56; +template_cds__EPS__QoS__Def__nonGBR__QCI__tlv.qci() = bs_52; +current_location.update_lineno(1711); +ttcn3_debugger.breakpoint_entry(1711); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1711 */ +template_cds__508__EPS__QoS__Default__3 = cs__508__EPS__QoS__Default__1; +template_cds__508__EPS__QoS__Default__3.qci() = bs_59; +current_location.update_lineno(1966); +ttcn3_debugger.breakpoint_entry(1966); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTemplates.ttcn, line 1966 */ +const_f__EUTRA__NB__Get__508__TrafficFlowTemplate_p__PdnIndex_defval = CommonDefs::PDN__Index__Type::PDN__1; +} + + +/* Bodies of static conversion functions */ + +static boolean conv_NAS__CommonTypeDefs_NAS__ExtdProtocolConfigOptions__Type_NAS__CommonTypeDefs_ExtdProtocolConfigOptions_pco(NAS__CommonTypeDefs::ExtdProtocolConfigOptions_pco_template& p_to_v, const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template& p_from_v) +{ +p_to_v.set_size(p_from_v.size_of()); +for (int i = 0; i < p_from_v.size_of(); i++) { +if (p_from_v[i].is_bound()) p_to_v[i] = p_from_v[i]; +} +return TRUE; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NAS_CommonTemplates.hh b/build/Ats_NG_NAS/NAS_CommonTemplates.hh new file mode 100644 index 0000000000000000000000000000000000000000..8fca2df67deec5f74ddc10ff7b121f750530687c --- /dev/null +++ b/build/Ats_NG_NAS/NAS_CommonTemplates.hh @@ -0,0 +1,609 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NAS__CommonTemplates_HH +#define NAS__CommonTemplates_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "CommonIP.hh" + +#if TTCN3_VERSION != 100000 +#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 NAS__CommonTemplates_HH +#endif + +namespace NAS__CommonTemplates { + +/* Forward declarations of classes */ + +class BEARER__CONTEXT__TYPE; +class BEARER__CONTEXT__TYPE_template; + +} /* end of namespace */ + +#ifndef NAS__CommonTemplates_HH +#define NAS__CommonTemplates_HH + +namespace NAS__CommonTemplates { + +/* Class definitions */ + +class BEARER__CONTEXT__TYPE : public Enum_Type { // enum +friend class BEARER__CONTEXT__TYPE_template; +public: +enum enum_type { DEF__1 = 0, DEF__2 = 1, DEF__3 = 2, DED__1 = 3, DED__2 = 4, DED__3 = 5, DED__4 = 6, DED__5 = 7, UNKNOWN_VALUE = 8, UNBOUND_VALUE = 9 }; +private: +enum_type enum_value; + +public: +BEARER__CONTEXT__TYPE(); +BEARER__CONTEXT__TYPE(int other_value); +BEARER__CONTEXT__TYPE(enum_type other_value); +BEARER__CONTEXT__TYPE(const BEARER__CONTEXT__TYPE& other_value); + +BEARER__CONTEXT__TYPE& operator=(int other_value); +BEARER__CONTEXT__TYPE& operator=(enum_type other_value); +BEARER__CONTEXT__TYPE& operator=(const BEARER__CONTEXT__TYPE& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const BEARER__CONTEXT__TYPE& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const BEARER__CONTEXT__TYPE& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const BEARER__CONTEXT__TYPE& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const BEARER__CONTEXT__TYPE& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const BEARER__CONTEXT__TYPE& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const BEARER__CONTEXT__TYPE& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const BEARER__CONTEXT__TYPE& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class BEARER__CONTEXT__TYPE_template : public Base_Template { +union { +BEARER__CONTEXT__TYPE::enum_type single_value; +struct { +unsigned int n_values; +BEARER__CONTEXT__TYPE_template *list_value; +} value_list; +struct { +BEARER__CONTEXT__TYPE_template* precondition; +BEARER__CONTEXT__TYPE_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const BEARER__CONTEXT__TYPE_template& other_value); + +public: +BEARER__CONTEXT__TYPE_template(); +BEARER__CONTEXT__TYPE_template(template_sel other_value); +BEARER__CONTEXT__TYPE_template(int other_value); +BEARER__CONTEXT__TYPE_template(BEARER__CONTEXT__TYPE::enum_type other_value); +BEARER__CONTEXT__TYPE_template(const BEARER__CONTEXT__TYPE& other_value); +BEARER__CONTEXT__TYPE_template(const OPTIONAL& other_value); +BEARER__CONTEXT__TYPE_template(BEARER__CONTEXT__TYPE_template* p_precondition, BEARER__CONTEXT__TYPE_template* p_implied_template); +BEARER__CONTEXT__TYPE_template(Dynamic_Match_Interface* p_dyn_match); +BEARER__CONTEXT__TYPE_template(const BEARER__CONTEXT__TYPE_template& other_value); +~BEARER__CONTEXT__TYPE_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +BEARER__CONTEXT__TYPE_template& operator=(template_sel other_value); +BEARER__CONTEXT__TYPE_template& operator=(int other_value); +BEARER__CONTEXT__TYPE_template& operator=(BEARER__CONTEXT__TYPE::enum_type other_value); +BEARER__CONTEXT__TYPE_template& operator=(const BEARER__CONTEXT__TYPE& other_value); +BEARER__CONTEXT__TYPE_template& operator=(const OPTIONAL& other_value); +BEARER__CONTEXT__TYPE_template& operator=(const BEARER__CONTEXT__TYPE_template& other_value); + +boolean match(BEARER__CONTEXT__TYPE::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const BEARER__CONTEXT__TYPE& other_value, boolean legacy = FALSE) const; +BEARER__CONTEXT__TYPE::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +BEARER__CONTEXT__TYPE_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const BEARER__CONTEXT__TYPE& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_NAS_CommonTemplates(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_NAS_CommonTemplates(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern NAS__CommonTypeDefs::AccessPointName_template cs__AccessPointName(const OCTETSTRING& p__Name); +extern NAS__CommonTypeDefs::AccessPointName_template cr__AccessPointName(const OCTETSTRING& p__Name); +extern NAS__CommonTypeDefs::RAND_template cs__RAND__v(const BITSTRING& p__RAND); +extern NAS__CommonTypeDefs::RAND_template cs__GMM__AuthRAND(const BITSTRING& p__Rand); +extern NAS__CommonTypeDefs::AUTN_template cs__AUTN__lv(const BITSTRING& p__AUTN); +extern NAS__CommonTypeDefs::AUTN_template cs__GSM__AUTN(const BITSTRING_template& p__AUTN); +extern NAS__CommonTypeDefs::AUTN_template cs__GMM__AUTN(const BITSTRING& p__Autn); +extern NAS__CommonTypeDefs::CiphKeySeqNum_template cs__CiphKeySeqNum(const HEXSTRING_template& p__IEI, const BITSTRING_template& p__KeySeq); +extern NAS__CommonTypeDefs::CiphKeySeqNum_template cr__CiphKeySeqNum(const HEXSTRING_template& p__IEI, const BITSTRING_template& p__KeySeq); +extern NAS__CommonTypeDefs::DCN__ID_template cs__Dcn__Id(const OCTETSTRING& p__DCNIdValue); +extern NAS__CommonTypeDefs::DetachType_template cs__DetachType(const BITSTRING& p__TypeOfDetach); +extern NAS__CommonTypeDefs::DetachType_template cr__DetachType(const BITSTRING_template& p__SwitchOff, const BITSTRING_template& p__TypeOfDetach); +extern NAS__CommonTypeDefs::DeviceProperties_template cr__DeviceProperties(const HEXSTRING& p__IEI, const BITSTRING_template& p__LowPriority); +extern NAS__CommonTypeDefs::DRXparameter_template cr__DRXparameter__Any(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::EmergServCat_template cr__EmergServCat(const BITSTRING_template& p__Cat); +extern NAS__CommonTypeDefs::EmergServCat_template cs__EmergServCat(const BITSTRING& p__EmergSCValue); +extern NAS__CommonTypeDefs::EmergNum_template cs__EmergencyLocalNumber(const OCTETSTRING& p__Length, const NAS__CommonTypeDefs::EmergServCat_template& p__EmergSCValue, const OCTETSTRING& p__Number); +extern NAS__CommonTypeDefs::GPRS__Timer_template cs__GprsTimer__tv(const OCTETSTRING& p__IEI, const BITSTRING& p__Unit, const BITSTRING& p__Value); +extern NAS__CommonTypeDefs::GPRS__Timer_template cs__GprsTimer__v(const BITSTRING& p__Unit, const BITSTRING& p__Value); +extern NAS__CommonTypeDefs::IdentityType_template cs__IdentityType(const BITSTRING& p__NAS__IdType); +extern NAS__CommonTypeDefs::LocAreaId_template cr__LAI(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__PLMN, const OCTETSTRING_template& p__LAC); +extern NAS__CommonTypeDefs::LocAreaId_template cs__LAI(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__PLMN, const OCTETSTRING_template& p__LAC); +extern NAS__CommonTypeDefs::LLC__SAPI_template cs__LLC__SAPI(const OCTETSTRING_template& p__IEI, const BITSTRING& p__LlcSapiValue); +extern NAS__CommonTypeDefs::LLC__SAPI_template cs__LLC__SAPI__11(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::LLC__SAPI_template cs__LLC__SAPI__03(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::MobileIdentity_template cr__MobileIdAny(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::MobileIdentity_template cs__MobileIdentityGuti(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Guti); +extern NAS__CommonTypeDefs::MobileIdentity_template cs__MobileIdentityImsi(const BITSTRING& p__FirstDigit, const BITSTRING& p__OddEvenInd, const OCTETSTRING& p__OtherDigits); +extern NAS__CommonTypeDefs::MobileIdentity_template cds__MobileIdentityImsi__lv(const BITSTRING& p__FirstDigit, const BITSTRING& p__OddEvenInd, const OCTETSTRING& p__OtherDigits); +extern NAS__CommonTypeDefs::MobileIdentity_template cs__MobileIdTMSIorPTMSI(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__TmsiPtmsi); +extern NAS__CommonTypeDefs::MobileIdentity_template cs__MobileIdTMSI(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Tmsi); +extern NAS__CommonTypeDefs::MobileIdentity_template cr__MobileIdTMSI__lv(const OCTETSTRING_template& p__Tmsi); +extern NAS__CommonTypeDefs::MobileIdentity_template cdr__MobileIdTMSI__tlv(const OCTETSTRING_template& p__Tmsi, const OCTETSTRING& p__IEI); +extern NAS__CommonTypeDefs::MobileIdentity_template cr__MobileIdentityImei(const BITSTRING& p__FirstDigit, const BITSTRING& p__OddEvenInd, const OCTETSTRING& p__OtherDigits, const BITSTRING& p__NAS__IdType); +extern NAS__CommonTypeDefs::MobileIdentity_template cr__MobileIdentityImeisv(const BITSTRING& p__FirstDigit, const BITSTRING& p__OddEvenInd, const OCTETSTRING& p__OtherDigits); +extern NAS__CommonTypeDefs::MS__Clsmk2_template cr__MS__Clsmk2__Any__tlv(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::MS__Clsmk3_template cdr__MSCLSMK3__EutraCheck(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::MS__NetworkFeatureSupport_template cr__MS__NetworkFeatureSupport(const HEXSTRING& p__IEI, const BITSTRING_template& p__ExtdPeriodicTimers); +extern NAS__CommonTypeDefs::NwkResourceId_template cr__NwkResourceIdAny(const OCTETSTRING& p__IEI); +extern NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List(const NAS__CommonTypeDefs::PLMN__List_plmnList& p__PlmnIdList); +extern NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List__1PLMN(const OCTETSTRING& p__Plmn1); +extern NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List__2PLMNs(const OCTETSTRING& p__Plmn1, const OCTETSTRING& p__Plmn2); +extern NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List__3PLMNs(const OCTETSTRING& p__Plmn1, const OCTETSTRING& p__Plmn2, const OCTETSTRING& p__Plmn3); +extern NAS__CommonTypeDefs::PLMN__List_template cs__PLMN__List__4PLMNs(const OCTETSTRING& p__Plmn1, const OCTETSTRING& p__Plmn2, const OCTETSTRING& p__Plmn3, const OCTETSTRING& p__Plmn4); +extern NAS__CommonTypeDefs::ProtocolContainer_template cs__ProtocolContainer__Common(const OCTETSTRING& p__ContainerId, const INTEGER& p__ContainerLength, const OCTETSTRING_template& p__Content); +extern NAS__CommonTypeDefs::ProtocolContainer_template cs__ProtocolContainer(const OCTETSTRING& p__ProtocolId, const OCTETSTRING& p__Content); +extern NAS__CommonTypeDefs::ProtocolConfigOptions_template cs__ProtocolConfigOptions__Common(const OCTETSTRING& p__Type4Length, const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p__ProtocolContainers); +extern NAS__CommonTypeDefs::ProtocolConfigOptions_template f__NAS__ProtocolConfigOptionsTX(const NAS__CommonTypeDefs::ProtocolConfigOptions_pco_template& p__ProtocolContainers); +extern NAS__CommonTypeDefs::ProtocolConfigOptions_template cs__ProtocolConfigOptions__OneOption(const NAS__CommonTypeDefs::ProtocolContainer_template& p__ProtocolContainer); +extern NAS__CommonTypeDefs::PTMSI__Signature_template cs__PTMSI__Signature(const OCTETSTRING& p__Ptmsi); +extern NAS__CommonTypeDefs::PTMSI__Signature_template cr__PTMSI__Signature(const OCTETSTRING_template& p__PtmsiSig); +extern NAS__CommonTypeDefs::QualityOfService_template cds__QoS__Negotiated__4(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::QualityOfService_template cs__QoS__PDP2(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::QualityOfService_template cds__QoS__PDP3(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::QualityOfService_template cds__QoS__Converstational(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::TrafficFlowTemplate_template cr__Tft(const OCTETSTRING_template& p__IEI, const BITSTRING_template& p__Code); +extern NAS__CommonTypeDefs::TrafficFlowTemplate_template cs__TrafficFlowTemplate(const INTEGER& p__IeLength, const NAS__CommonTypeDefs::TrafficFlowTemplate_packetFilterList_template& p__PacketFilterList); +extern NAS__CommonTypeDefs::RadioPriority_template cs__RadioPriority(const HEXSTRING_template& p__IEI, const BITSTRING& p__Val); +extern NAS__CommonTypeDefs::RadioPriority_template cs__RadioPriorityHigh(const HEXSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::RadioPriority_template cs__RadioPriorityLow(const HEXSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::TMSI__Status_template cr__TMSI__Status(const BITSTRING_template& p__TmsiStatus); +extern NAS__CommonTypeDefs::UE__NetworkCap_template cr__UENetworkCap__Any(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::UE__NetworkCap_template cdr__NR5GC__UENetworkCap(const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::GPRS__Timer2_template cs__GPRS__Timer2__3__IEI(const OCTETSTRING_template& p__IEI, const BITSTRING& p__Unit, const BITSTRING& p__Value); +extern NAS__CommonTypeDefs::GPRS__Timer2_template cs__GprsTimer3(const OCTETSTRING_template& p__IEI, const BITSTRING& p__Unit, const BITSTRING& p__Value); +extern NAS__CommonTypeDefs::GPRS__Timer2_template cr__GPRS__Timer2__3(const OCTETSTRING& p__IEI, const BITSTRING_template& p__Unit, const BITSTRING_template& p__Value); +extern NAS__CommonTypeDefs::TimeZoneAndTime_template cs__TimeZoneAndTime(const OCTETSTRING& p__Year, const OCTETSTRING& p__Month, const OCTETSTRING& p__Day, const OCTETSTRING& p__Hour, const OCTETSTRING& p__Minute, const OCTETSTRING& p__Second, const OCTETSTRING& p__TimeZone); +extern NAS__CommonTypeDefs::TimeZone_template cs__TimeZone(const OCTETSTRING& p__TimeZone); +extern NAS__CommonTypeDefs::NetworkName_template cs__NetworkName(const OCTETSTRING& p__Iei, const CHARSTRING& p__Name, const CommonDefs::Gsm7BitPacking__Type& p__Packing, const BITSTRING& p__AddCI); +extern BITSTRING f__ConvertPackingToCodingScheme(const CommonDefs::Gsm7BitPacking__Type& p__Gsm7BitPacking__Type); +extern NAS__CommonTypeDefs::DaylightSavingTime_template cs__DaylightSavingTime__tlv(const BITSTRING& p__DaylightSavingTime); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompIPv4RemoteAddress(const CHARSTRING& p__RemoteAddress, const OCTETSTRING& p__Mask); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompIPv6RemoteAddress(const CHARSTRING& p__RemoteAddress, const OCTETSTRING& p__Mask); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompProtocolIdNextHeader(const OCTETSTRING& p__ProtocolIdNextHeader); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompSingleLocalPort(const INTEGER& p__PortNumber); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompLocalPortRange(const INTEGER& p__PortLow, const INTEGER& p__PortHigh); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompSingleRemotePort(const INTEGER& p__PortNumber); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompRemotePortRange(const INTEGER& p__PortLow, const INTEGER& p__PortHigh); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompTOSTrafficClass(const OCTETSTRING& p__TOSTrafficClass); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompIPSecSPI(const OCTETSTRING& p__IPSecSPI); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompFlowLabel(const OCTETSTRING& p__FlowLabel); +extern void f__Get__PacketFilter__10__9__1(NAS__CommonTypeDefs::PacketFilter_template& p__PacketFilterByRef, INTEGER& p__PacketFilterLengthByRef, const BOOLEAN& p__IpTypeIsIPv4, const INTEGER& p__PacketFilterID); +extern NAS__CommonTypeDefs::NAS__KeySetIdentifier_template cs__NAS__KeySetIdentifier__lv(const BITSTRING& p__NasKeySetId, const BITSTRING& p__Tsc); +extern NAS__CommonTypeDefs::NAS__KeySetIdentifier_template cr__NAS__KeySetIdentifier(const BITSTRING_template& p__KsiValue, const BITSTRING_template& p__Tsc); +extern NAS__CommonTypeDefs::NAS__KeySetIdentifier_template cdr__NAS__KeySetIdentifier__tlv(const BITSTRING_template& p__KsiValue, const BITSTRING_template& p__Tsc); +extern NAS__CommonTypeDefs::AuthenticationResponseParameter_template cr__AuthenticationResponseParameter__lv(const BITSTRING_template& p__ExpectedRES); +extern NAS__CommonTypeDefs::IMEISV__Request_template cs__IMEISV__Request__WithIEI(const BITSTRING& p__Value); +extern NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template cs__NAS__SecurityAlgorithms(const BITSTRING& p__CipheringType, const BITSTRING& p__IntegrityType, const OCTETSTRING_template& p__IEI); +extern NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template cs__ExtdPCO(const OCTETSTRING& p__Length, const NAS__CommonTypeDefs::NAS__ExtdProtocolConfigOptions__Type_template& p__ProtocolContainers); +extern NAS__CommonTypeDefs::DRXParamCommon_template cr__DRXParamCommonAny(const OCTETSTRING& p__IEI); +extern NAS__CommonTypeDefs::UERadioCapIdDeletion_template cs__UERadioCapIdDeletion(const HEXSTRING_template& p__IEI, const BITSTRING& p__DeleteReq); +extern NAS__CommonTypeDefs::UE__RequestType_template cr__UE__RequestType(const BITSTRING_template& p__ReqType); +extern CommonDefs::QosFlow__Identification__Type_template cs__IP__QosFlowId(const INTEGER& p__PDU__SessionId, const INTEGER& p__QFI); +extern INTEGER f__QoS__MaximumBitRate(const BITSTRING& p__Val); +extern INTEGER fl__QoS__TransferDelay(const BITSTRING& p__Val); +extern CHARSTRING fl__QoS__SDUErrorRatio(const BITSTRING& p__Val); +extern CHARSTRING fl__QoS__ResidualBER(const BITSTRING& p__Val); +extern CHARSTRING f__ConvertQoS__ForATCommand(const NAS__CommonTypeDefs::QualityOfService_template& p__QoS); +extern BEARER__CONTEXT__TYPE fl__BearerContextNumber__Def(const BEARER__CONTEXT__TYPE_template& p__BearerContextNumber); +extern NAS__CommonTypeDefs::EPS__QualityOfService_template f__Get__508__EPSQoS(const BEARER__CONTEXT__TYPE_template& p__BearerContextNumber); +extern NAS__CommonTypeDefs::UERadioCapId_template cs__UERadioCapId(const OCTETSTRING& p__IEI, const OCTETSTRING& p__Id); +extern INTEGER fl__SingleRemoteport508(const INTEGER& p__PortNumber, const HEXSTRING& p__EPS__BearerId); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompSingleRemotePort61000(const HEXSTRING& p__EPS__BearerId); +extern NAS__CommonTypeDefs::PacketFilterComponent_template cs__PktFilterCompSingleRemotePort31160(const HEXSTRING& p__EPS__BearerId); +extern void fl__Get__508__PacketFilter(NAS__CommonTypeDefs::PacketFilter_template& p__PacketFilterByRef, INTEGER& p__PacketFilterLengthByRef, const INTEGER& p__PacketFilterNumber, const HEXSTRING& p__EPS__BearerId, const BITSTRING& p__PdnTypeValue, const CommonDefs::PDN__Index__Type& p__PdnIndex); +extern NAS__CommonTypeDefs::TrafficFlowTemplate_template f__EUTRA__NB__Get__508__TrafficFlowTemplate(const INTEGER& p__BearerContext, const HEXSTRING& p__EPS__BearerId, const BITSTRING& p__PdnTypeValue, const CommonDefs::PDN__Index__Type& p__PdnIndex); + +/* Global variable declarations */ + +extern const BITSTRING& tsc__Spare1; +extern BITSTRING const_tsc__Spare1; +extern const BITSTRING& tsc__Spare2; +extern BITSTRING const_tsc__Spare2; +extern const BITSTRING& tsc__Spare3; +extern BITSTRING const_tsc__Spare3; +extern const BITSTRING& tsc__Spare4; +extern BITSTRING const_tsc__Spare4; +extern const BITSTRING& tsc__Spare5; +extern BITSTRING const_tsc__Spare5; +extern const BITSTRING& tsc__Spare6; +extern BITSTRING const_tsc__Spare6; +extern const BITSTRING& tsc__Spare7; +extern BITSTRING const_tsc__Spare7; +extern const HEXSTRING& tsc__SpareHalfOctet; +extern HEXSTRING const_tsc__SpareHalfOctet; +extern const BITSTRING& tsc__SHT__NoSecurityProtection; +extern BITSTRING const_tsc__SHT__NoSecurityProtection; +extern const BITSTRING& tsc__SHT__IntegrityProtected; +extern BITSTRING const_tsc__SHT__IntegrityProtected; +extern const BITSTRING& tsc__SHT__IntegrityProtected__Ciphered; +extern BITSTRING const_tsc__SHT__IntegrityProtected__Ciphered; +extern const BITSTRING& tsc__SHT__IntegrityProtected__NewSecurityContext; +extern BITSTRING const_tsc__SHT__IntegrityProtected__NewSecurityContext; +extern const BITSTRING& tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext; +extern BITSTRING const_tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext; +extern const BITSTRING& tsc__SHT__IntegrityProtected__PartiallyCiphered; +extern BITSTRING const_tsc__SHT__IntegrityProtected__PartiallyCiphered; +extern const BITSTRING& tsc__IdType__IMSI; +extern BITSTRING const_tsc__IdType__IMSI; +extern const BITSTRING& tsc__IdType__IMEI; +extern BITSTRING const_tsc__IdType__IMEI; +extern const BITSTRING& tsc__IdType__IMEI__24301; +extern BITSTRING const_tsc__IdType__IMEI__24301; +extern const BITSTRING& tsc__IdType__IMEISV; +extern BITSTRING const_tsc__IdType__IMEISV; +extern const BITSTRING& tsc__IdType__TMSI; +extern BITSTRING const_tsc__IdType__TMSI; +extern const BITSTRING& tsc__IdType__GUTI; +extern BITSTRING const_tsc__IdType__GUTI; +extern const BITSTRING& tsc__IMEISV__Requested; +extern BITSTRING const_tsc__IMEISV__Requested; +extern const BITSTRING& tsc__EmmCause__IllegalUe; +extern BITSTRING const_tsc__EmmCause__IllegalUe; +extern const BITSTRING& tsc__EmmCause__IllegalMe; +extern BITSTRING const_tsc__EmmCause__IllegalMe; +extern const BITSTRING& tsc__Cause__MAC__Failure; +extern BITSTRING const_tsc__Cause__MAC__Failure; +extern const BITSTRING& tsc__Cause__SQN__Failure; +extern BITSTRING const_tsc__Cause__SQN__Failure; +extern const BITSTRING& tsc__Cause__nonEPS__AuthUnacceptable; +extern BITSTRING const_tsc__Cause__nonEPS__AuthUnacceptable; +extern const BITSTRING& tsc__Cause__TA__NotAllowed; +extern BITSTRING const_tsc__Cause__TA__NotAllowed; +extern const BITSTRING& tsc__EmmCause__SemanticallyIncorrect; +extern BITSTRING const_tsc__EmmCause__SemanticallyIncorrect; +extern const BITSTRING& tsc__Cause__Roaming__NotAllowed; +extern BITSTRING const_tsc__Cause__Roaming__NotAllowed; +extern const BITSTRING& tsc__Cause__PLMN__NotAllowed; +extern BITSTRING const_tsc__Cause__PLMN__NotAllowed; +extern const BITSTRING& tsc__Cause__NoNetworkSlices__Available; +extern BITSTRING const_tsc__Cause__NoNetworkSlices__Available; +extern const BITSTRING& tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation; +extern BITSTRING const_tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation; +extern const BITSTRING& tsc__NasKsi__NoKey; +extern BITSTRING const_tsc__NasKsi__NoKey; +extern const BITSTRING& tsc__NoValidTmsi; +extern BITSTRING const_tsc__NoValidTmsi; +extern const BITSTRING& tsc__GprsTimerUnit__2sec; +extern BITSTRING const_tsc__GprsTimerUnit__2sec; +extern const BITSTRING& tsc__GprsTimerUnit__1min; +extern BITSTRING const_tsc__GprsTimerUnit__1min; +extern const BITSTRING& tsc__Gprs3TimerUnit__1min; +extern BITSTRING const_tsc__Gprs3TimerUnit__1min; +extern const BITSTRING& tsc__GprsTimerUnit__6min; +extern BITSTRING const_tsc__GprsTimerUnit__6min; +extern const BITSTRING& tsc__Gprs3TimerUnit__30sec; +extern BITSTRING const_tsc__Gprs3TimerUnit__30sec; +extern const BITSTRING& tsc__GprsTimerUnit__deact; +extern BITSTRING const_tsc__GprsTimerUnit__deact; +extern const OCTETSTRING& tsc__PCO__Id__DSMIPv6; +extern OCTETSTRING const_tsc__PCO__Id__DSMIPv6; +extern const OCTETSTRING& tsc__PCO__Id__DSMIPv6__IPv4; +extern OCTETSTRING const_tsc__PCO__Id__DSMIPv6__IPv4; +extern const OCTETSTRING& tsc__IPv4Mask; +extern OCTETSTRING const_tsc__IPv4Mask; +extern const OCTETSTRING& tsc__IPv6Mask; +extern OCTETSTRING const_tsc__IPv6Mask; +extern const BITSTRING& tsc__NonConsecutiveTacs; +extern BITSTRING const_tsc__NonConsecutiveTacs; +extern const BITSTRING& tsc__ConsecutiveTacs; +extern BITSTRING const_tsc__ConsecutiveTacs; +extern const BITSTRING& tsc__MultiplePlmns; +extern BITSTRING const_tsc__MultiplePlmns; +extern const BITSTRING& tsc__PdnType__IPv4; +extern BITSTRING const_tsc__PdnType__IPv4; +extern const BITSTRING& tsc__PdnType__IPv6; +extern BITSTRING const_tsc__PdnType__IPv6; +extern const BITSTRING& tsc__PdnType__IPv4v6; +extern BITSTRING const_tsc__PdnType__IPv4v6; +extern const OCTETSTRING& tsc__PTI__Unassigned; +extern OCTETSTRING const_tsc__PTI__Unassigned; +extern const OCTETSTRING& tsc__PTI__1; +extern OCTETSTRING const_tsc__PTI__1; +extern const BITSTRING& tsc__PayloadContainerESMMsg; +extern BITSTRING const_tsc__PayloadContainerESMMsg; +extern const OCTETSTRING& tsc__APN1; +extern OCTETSTRING const_tsc__APN1; +extern const CHARSTRING& tsc__APN1__String; +extern CHARSTRING const_tsc__APN1__String; +extern const OCTETSTRING& tsc__APN2; +extern OCTETSTRING const_tsc__APN2; +extern const CHARSTRING& tsc__APN2__String; +extern CHARSTRING const_tsc__APN2__String; +extern const OCTETSTRING& tsc__APN3; +extern OCTETSTRING const_tsc__APN3; +extern const CHARSTRING& tsc__APN3__String; +extern CHARSTRING const_tsc__APN3__String; +extern Erroneous_descriptor_t* template_cs__AccessPointName_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__AccessPointName_err_descr_ptr; +extern const NAS__CommonTypeDefs::AccessPointName_template& cr__AccessPointName__Any; +extern NAS__CommonTypeDefs::AccessPointName_template template_cr__AccessPointName__Any; +extern const NAS__CommonTypeDefs::AdditionalUpdateType_template& cr__AdditionalUpdateTypeAny; +extern NAS__CommonTypeDefs::AdditionalUpdateType_template template_cr__AdditionalUpdateTypeAny; +extern const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& cr__AuthFailParam__Any; +extern NAS__CommonTypeDefs::AuthenticationFailureParameter_template template_cr__AuthFailParam__Any; +extern const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& cdr__AuthFailParamGSM__Any; +extern NAS__CommonTypeDefs::AuthenticationFailureParameter_template template_cdr__AuthFailParamGSM__Any; +extern Erroneous_descriptor_t* template_cs__RAND__v_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__GMM__AuthRAND_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__AUTN__lv_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__GSM__AUTN_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__GMM__AUTN_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__CiphKeySeqNum_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__CiphKeySeqNum_err_descr_ptr; +extern const NAS__CommonTypeDefs::Codec_template& cr__CodecAny; +extern NAS__CommonTypeDefs::Codec_template template_cr__CodecAny; +extern const NAS__CommonTypeDefs::CodecList_template& cr__CodecListAny; +extern NAS__CommonTypeDefs::CodecList_template template_cr__CodecListAny; +extern Erroneous_descriptor_t* template_cs__Dcn__Id_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__DetachType_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__DetachType_err_descr_ptr; +extern const NAS__CommonTypeDefs::DetachType_template& cr__DetachTypeOnSwitchOff; +extern NAS__CommonTypeDefs::DetachType_template template_cr__DetachTypeOnSwitchOff; +extern Erroneous_descriptor_t* template_cr__DeviceProperties_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__DRXparameter__Any_err_descr_ptr; +extern const NAS__CommonTypeDefs::EDGE__Struct_template& cr__EDGE__Struct__Any; +extern NAS__CommonTypeDefs::EDGE__Struct_template template_cr__EDGE__Struct__Any; +extern Erroneous_descriptor_t* template_cr__EmergServCat_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__EmergServCat_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__EmergencyLocalNumber_err_descr_ptr; +extern const NAS__CommonTypeDefs::ExtdDRXParams_template& cr__ExtdDRXParamsAny; +extern NAS__CommonTypeDefs::ExtdDRXParams_template template_cr__ExtdDRXParamsAny; +extern Erroneous_descriptor_t* template_cs__GprsTimer__tv_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__GprsTimer__v_err_descr_ptr; +extern const NAS__CommonTypeDefs::GPRS__Timer_template& cs__GprsTimer__v__deact; +extern NAS__CommonTypeDefs::GPRS__Timer_template template_cs__GprsTimer__v__deact; +extern Erroneous_descriptor_t* template_cs__IdentityType_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__LAI_err_descr_ptr; +extern const NAS__CommonTypeDefs::LocAreaId_template& cr__LAI__Any; +extern NAS__CommonTypeDefs::LocAreaId_template template_cr__LAI__Any; +extern const NAS__CommonTypeDefs::LocAreaId_template& cr__LAI__Any__v; +extern NAS__CommonTypeDefs::LocAreaId_template template_cr__LAI__Any__v; +extern Erroneous_descriptor_t* template_cs__LAI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__LLC__SAPI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__LLC__SAPI__11_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__LLC__SAPI__03_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__MobileIdAny_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__MobileIdentityGuti_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__MobileIdentityImsi_err_descr_ptr; +extern Erroneous_descriptor_t* template_cds__MobileIdentityImsi__lv_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__MobileIdTMSIorPTMSI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__MobileIdTMSI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__MobileIdTMSI__lv_err_descr_ptr; +extern Erroneous_descriptor_t* template_cdr__MobileIdTMSI__tlv_err_descr_ptr; +extern const OCTETSTRING& cdr__MobileIdTMSI__tlv_p__IEI_defval; +extern OCTETSTRING const_cdr__MobileIdTMSI__tlv_p__IEI_defval; +extern Erroneous_descriptor_t* template_cr__MobileIdentityImei_err_descr_ptr; +extern const BITSTRING& cr__MobileIdentityImei_p__NAS__IdType_defval; +extern BITSTRING const_cr__MobileIdentityImei_p__NAS__IdType_defval; +extern Erroneous_descriptor_t* template_cr__MobileIdentityImeisv_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__MS__Clsmk2__Any__tlv_err_descr_ptr; +extern const NAS__CommonTypeDefs::MS__Clsmk2_template& cr__MS__Clsmk2__Any; +extern NAS__CommonTypeDefs::MS__Clsmk2_template template_cr__MS__Clsmk2__Any; +extern const NAS__CommonTypeDefs::MS__Clsmk3_template& cr__MSCLSMK3__Any; +extern NAS__CommonTypeDefs::MS__Clsmk3_template template_cr__MSCLSMK3__Any; +extern Erroneous_descriptor_t* template_cdr__MSCLSMK3__EutraCheck_err_descr_ptr; +extern const NAS__CommonTypeDefs::MS__MeasCapability_template& cr__MS__MeasCapability__Any; +extern NAS__CommonTypeDefs::MS__MeasCapability_template template_cr__MS__MeasCapability__Any; +extern const NAS__CommonTypeDefs::MS__NetworkCap_template& cr__MS__NetworkCap__Any; +extern NAS__CommonTypeDefs::MS__NetworkCap_template template_cr__MS__NetworkCap__Any; +extern const NAS__CommonTypeDefs::MS__NetworkCap_template& cdr__MS__NetworkCapAss__lv; +extern NAS__CommonTypeDefs::MS__NetworkCap_template template_cdr__MS__NetworkCapAss__lv; +extern Erroneous_descriptor_t* template_cr__MS__NetworkFeatureSupport_err_descr_ptr; +extern const NAS__CommonTypeDefs::NBIFOMContainer_template& cr__NBIFOMContainerAny; +extern NAS__CommonTypeDefs::NBIFOMContainer_template template_cr__NBIFOMContainerAny; +extern Erroneous_descriptor_t* template_cr__NwkResourceIdAny_err_descr_ptr; +extern const OCTETSTRING& cr__NwkResourceIdAny_p__IEI_defval; +extern OCTETSTRING const_cr__NwkResourceIdAny_p__IEI_defval; +extern const NAS__CommonTypeDefs::PacketFlowIdentifier_template& cs__PktFlowId; +extern NAS__CommonTypeDefs::PacketFlowIdentifier_template template_cs__PktFlowId; +extern Erroneous_descriptor_t* template_cs__PLMN__List_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PLMN__List__1PLMN_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PLMN__List__2PLMNs_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PLMN__List__3PLMNs_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PLMN__List__4PLMNs_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__ProtocolContainer__Common_err_descr_ptr; +extern const INTEGER& cs__ProtocolContainer__Common_p__ContainerLength_defval; +extern INTEGER const_cs__ProtocolContainer__Common_p__ContainerLength_defval; +extern Erroneous_descriptor_t* template_cs__ProtocolContainer_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__ProtocolConfigOptions__Common_err_descr_ptr; +extern const OCTETSTRING& cs__ProtocolConfigOptions__Common_p__Type4Length_defval; +extern OCTETSTRING const_cs__ProtocolConfigOptions__Common_p__Type4Length_defval; +extern const NAS__CommonTypeDefs::ProtocolConfigOptions_template& cs__ProtocolConfigOptions__PPP; +extern NAS__CommonTypeDefs::ProtocolConfigOptions_template template_cs__ProtocolConfigOptions__PPP; +extern Erroneous_descriptor_t* template_cs__ProtocolConfigOptions__OneOption_err_descr_ptr; +extern const NAS__CommonTypeDefs::ProtocolConfigOptions_template& cr__ProtocolConfigOptionsAny; +extern NAS__CommonTypeDefs::ProtocolConfigOptions_template template_cr__ProtocolConfigOptionsAny; +extern const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& cr__ExtdPCOAny; +extern NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template template_cr__ExtdPCOAny; +extern Erroneous_descriptor_t* template_cs__PTMSI__Signature_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__PTMSI__Signature_err_descr_ptr; +extern const NAS__CommonTypeDefs::PTMSI__Signature_template& cr__PTMSI__SignatureAny; +extern NAS__CommonTypeDefs::PTMSI__Signature_template template_cr__PTMSI__SignatureAny; +extern const NAS__CommonTypeDefs::PTMSI__Signature_template& cr__PTMSI__Signature2Any; +extern NAS__CommonTypeDefs::PTMSI__Signature_template template_cr__PTMSI__Signature2Any; +extern const NAS__CommonTypeDefs::QualityOfService_template& cs__QoS__Negotiated__1; +extern NAS__CommonTypeDefs::QualityOfService_template template_cs__QoS__Negotiated__1; +extern const NAS__CommonTypeDefs::QualityOfService_template& cds__QoS__Negotiated__2; +extern NAS__CommonTypeDefs::QualityOfService_template template_cds__QoS__Negotiated__2; +extern const NAS__CommonTypeDefs::QualityOfService_template& cds__QoS__Negotiated__3; +extern NAS__CommonTypeDefs::QualityOfService_template template_cds__QoS__Negotiated__3; +extern Erroneous_descriptor_t* template_cds__QoS__Negotiated__4_err_descr_ptr; +extern const NAS__CommonTypeDefs::QualityOfService_template& cds__QoS__Negotiated__8; +extern NAS__CommonTypeDefs::QualityOfService_template template_cds__QoS__Negotiated__8; +extern Erroneous_descriptor_t* template_cs__QoS__PDP2_err_descr_ptr; +extern Erroneous_descriptor_t* template_cds__QoS__PDP3_err_descr_ptr; +extern Erroneous_descriptor_t* template_cds__QoS__Converstational_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__Tft_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__TrafficFlowTemplate_err_descr_ptr; +extern const NAS__CommonTypeDefs::UE__Status_template& cr__UEStatus__Any; +extern NAS__CommonTypeDefs::UE__Status_template template_cr__UEStatus__Any; +extern Erroneous_descriptor_t* template_cs__RadioPriority_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__RadioPriorityHigh_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__RadioPriorityLow_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__TMSI__Status_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__UENetworkCap__Any_err_descr_ptr; +extern Erroneous_descriptor_t* template_cdr__NR5GC__UENetworkCap_err_descr_ptr; +extern const NAS__CommonTypeDefs::VoiceDomainPref_template& cr__VoiceDomainPref__Any; +extern NAS__CommonTypeDefs::VoiceDomainPref_template template_cr__VoiceDomainPref__Any; +extern Erroneous_descriptor_t* template_cs__GPRS__Timer2__3__IEI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__GprsTimer3_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__GPRS__Timer2__3_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__TimeZoneAndTime_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__TimeZone_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NetworkName_err_descr_ptr; +extern const CommonDefs::Gsm7BitPacking__Type& cs__NetworkName_p__Packing_defval; +extern CommonDefs::Gsm7BitPacking__Type const_cs__NetworkName_p__Packing_defval; +extern const BITSTRING& cs__NetworkName_p__AddCI_defval; +extern BITSTRING const_cs__NetworkName_p__AddCI_defval; +extern Erroneous_descriptor_t* template_cs__DaylightSavingTime__tlv_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PktFilterCompIPv4RemoteAddress_err_descr_ptr; +extern const OCTETSTRING& cs__PktFilterCompIPv4RemoteAddress_p__Mask_defval; +extern OCTETSTRING const_cs__PktFilterCompIPv4RemoteAddress_p__Mask_defval; +extern Erroneous_descriptor_t* template_cs__PktFilterCompIPv6RemoteAddress_err_descr_ptr; +extern const OCTETSTRING& cs__PktFilterCompIPv6RemoteAddress_p__Mask_defval; +extern OCTETSTRING const_cs__PktFilterCompIPv6RemoteAddress_p__Mask_defval; +extern Erroneous_descriptor_t* template_cs__PktFilterCompProtocolIdNextHeader_err_descr_ptr; +extern const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderICMP; +extern NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderICMP; +extern const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderICMPv6; +extern NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderICMPv6; +extern const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderUDP; +extern NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderUDP; +extern const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderTCP; +extern NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderTCP; +extern const NAS__CommonTypeDefs::PacketFilterComponent_template& cs__PktFilterCompProtocolIdNextHeaderIPSec; +extern NAS__CommonTypeDefs::PacketFilterComponent_template template_cs__PktFilterCompProtocolIdNextHeaderIPSec; +extern Erroneous_descriptor_t* template_cs__PktFilterCompSingleLocalPort_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PktFilterCompLocalPortRange_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PktFilterCompSingleRemotePort_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PktFilterCompRemotePortRange_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PktFilterCompTOSTrafficClass_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PktFilterCompIPSecSPI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PktFilterCompFlowLabel_err_descr_ptr; +extern const NAS__CommonTypeDefs::Extd__EPS__QOS_template& cr__Extd__EPS__QOS__Any; +extern NAS__CommonTypeDefs::Extd__EPS__QOS_template template_cr__Extd__EPS__QOS__Any; +extern const BITSTRING& tsc__NasKsi__NativeSecurityContext; +extern BITSTRING const_tsc__NasKsi__NativeSecurityContext; +extern const BITSTRING& tsc__NasKsi__MappedSecurityContext; +extern BITSTRING const_tsc__NasKsi__MappedSecurityContext; +extern Erroneous_descriptor_t* template_cs__NAS__KeySetIdentifier__lv_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NAS__KeySetIdentifier_err_descr_ptr; +extern Erroneous_descriptor_t* template_cdr__NAS__KeySetIdentifier__tlv_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__AuthenticationResponseParameter__lv_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__IMEISV__Request__WithIEI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NAS__SecurityAlgorithms_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__ExtdPCO_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__DRXParamCommonAny_err_descr_ptr; +extern const NAS__CommonTypeDefs::WUSAssistInfo_template& cr__WUSAssistInfoAny; +extern NAS__CommonTypeDefs::WUSAssistInfo_template template_cr__WUSAssistInfoAny; +extern const NAS__CommonTypeDefs::WusInfoType_template& cr__WusInfoTypeAny; +extern NAS__CommonTypeDefs::WusInfoType_template template_cr__WusInfoTypeAny; +extern Erroneous_descriptor_t* template_cs__UERadioCapIdDeletion_err_descr_ptr; +extern const BITSTRING& cs__UERadioCapIdDeletion_p__DeleteReq_defval; +extern BITSTRING const_cs__UERadioCapIdDeletion_p__DeleteReq_defval; +extern Erroneous_descriptor_t* template_cr__UE__RequestType_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__IP__QosFlowId_err_descr_ptr; +extern const TTCN_Typedescriptor_t BEARER__CONTEXT__TYPE_descr_; +extern const NAS__CommonTypeDefs::EPS__QualityOfService_template& cs__508__EPS__QoS__Default__1; +extern NAS__CommonTypeDefs::EPS__QualityOfService_template template_cs__508__EPS__QoS__Default__1; +extern const NAS__CommonTypeDefs::EPS__QualityOfService_template& cds__508__EPS__QoS__Default__1__tlv; +extern NAS__CommonTypeDefs::EPS__QualityOfService_template template_cds__508__EPS__QoS__Default__1__tlv; +extern const NAS__CommonTypeDefs::EPS__QualityOfService_template& cds__EPS__QoS__Def__nonGBR__QCI; +extern NAS__CommonTypeDefs::EPS__QualityOfService_template template_cds__EPS__QoS__Def__nonGBR__QCI; +extern const NAS__CommonTypeDefs::EPS__QualityOfService_template& cds__EPS__QoS__Def__nonGBR__QCI__tlv; +extern NAS__CommonTypeDefs::EPS__QualityOfService_template template_cds__EPS__QoS__Def__nonGBR__QCI__tlv; +extern const NAS__CommonTypeDefs::EPS__QualityOfService_template& cds__508__EPS__QoS__Default__3; +extern NAS__CommonTypeDefs::EPS__QualityOfService_template template_cds__508__EPS__QoS__Default__3; +extern Erroneous_descriptor_t* template_cs__UERadioCapId_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PktFilterCompSingleRemotePort61000_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PktFilterCompSingleRemotePort31160_err_descr_ptr; +extern const CommonDefs::PDN__Index__Type& f__EUTRA__NB__Get__508__TrafficFlowTemplate_p__PdnIndex_defval; +extern CommonDefs::PDN__Index__Type const_f__EUTRA__NB__Get__508__TrafficFlowTemplate_p__PdnIndex_defval; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NAS_CommonTemplates.o b/build/Ats_NG_NAS/NAS_CommonTemplates.o new file mode 100644 index 0000000000000000000000000000000000000000..d6bbeaedce434ca335d7471374c47aefc8f51fab Binary files /dev/null and b/build/Ats_NG_NAS/NAS_CommonTemplates.o differ diff --git a/build/Ats_NG_NAS/NAS_CommonTypeDefs.cc b/build/Ats_NG_NAS/NAS_CommonTypeDefs.cc new file mode 100644 index 0000000000000000000000000000000000000000..be72e9b6d740f288953d959b5cc49600b22f2415 --- /dev/null +++ b/build/Ats_NG_NAS/NAS_CommonTypeDefs.cc @@ -0,0 +1,25610 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NAS_CommonTypeDefs.hh" + +namespace NAS__CommonTypeDefs { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char os_0_octets[] = { 0, 1 }, +os_1_octets[] = { 255, 254 }; +static const OCTETSTRING os_0(2, os_0_octets), +os_1(2, os_1_octets); +static const unsigned char module_checksum[] = { 0x91, 0xde, 0x01, 0x5f, 0x6a, 0x86, 0x94, 0xd4, 0x6f, 0x05, 0x77, 0xab, 0x20, 0x45, 0xa1, 0x99 }; + +/* Global variable definitions */ + +const XERdescriptor_t IEI4__Type_xer_ = { {"IEI4_Type>\n", "IEI4_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t IEI4__Type_descr_ = { "@NAS_CommonTypeDefs.IEI4_Type", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &IEI4__Type_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IEI8__Type_xer_ = { {"IEI8_Type>\n", "IEI8_Type>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IEI8__Type_oer_ext_arr_[0] = {}; +const int IEI8__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IEI8__Type_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IEI8__Type_oer_ext_arr_, 0, IEI8__Type_oer_p_}; +const TTCN_Typedescriptor_t IEI8__Type_descr_ = { "@NAS_CommonTypeDefs.IEI8_Type", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IEI8__Type_xer_, &OCTETSTRING_json_, &IEI8__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Type4Length__Type_xer_ = { {"Type4Length_Type>\n", "Type4Length_Type>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Type4Length__Type_oer_ext_arr_[0] = {}; +const int Type4Length__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Type4Length__Type_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Type4Length__Type_oer_ext_arr_, 0, Type4Length__Type_oer_p_}; +const TTCN_Typedescriptor_t Type4Length__Type_descr_ = { "@NAS_CommonTypeDefs.Type4Length_Type", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Type4Length__Type_xer_, &OCTETSTRING_json_, &Type4Length__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Type6Length__Type_xer_ = { {"Type6Length_Type>\n", "Type6Length_Type>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Type6Length__Type_oer_ext_arr_[0] = {}; +const int Type6Length__Type_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Type6Length__Type_oer_ = { -1, TRUE, 2, FALSE, 0, 0, Type6Length__Type_oer_ext_arr_, 0, Type6Length__Type_oer_p_}; +const TTCN_Typedescriptor_t Type6Length__Type_descr_ = { "@NAS_CommonTypeDefs.Type6Length_Type", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &Type6Length__Type_xer_, &OCTETSTRING_json_, &Type6Length__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SpareHalfOctet_xer_ = { {"SpareHalfOctet>\n", "SpareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t SpareHalfOctet_descr_ = { "@NAS_CommonTypeDefs.SpareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &SpareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t NAS__Mcc_raw_ = {12,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t NAS__Mcc_xer_ = { {"NAS_Mcc>\n", "NAS_Mcc>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NAS__Mcc_descr_ = { "@NAS_CommonTypeDefs.NAS_Mcc", NULL, &NAS__Mcc_raw_, NULL, &NAS__Mcc_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EmergencyNumList +const TTCN_Typedescriptor_t EmergencyNumList_descr_ = { "@NAS_CommonTypeDefs.EmergencyNumList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &HEXSTRING_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EmergencyNumList_0_xer_ = { {"HEXSTRING>\n", "HEXSTRING>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t EmergencyNumList_0_descr_ = { "@NAS_CommonTypeDefs.EmergencyNumList.", NULL, &HEXSTRING_raw_, NULL, &EmergencyNumList_0_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDU__PDN__DNN__Type +const TTCN_Typedescriptor_t PDU__PDN__DNN__Type_descr_ = { "@NAS_CommonTypeDefs.PDU_PDN_DNN_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for APN__DefaultConfiguration__Type +const TTCN_Typedescriptor_t APN__DefaultConfiguration__Type_descr_ = { "@NAS_CommonTypeDefs.APN_DefaultConfiguration_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for InterworkWithoutN26 +const TTCN_Typedescriptor_t InterworkWithoutN26_descr_ = { "@NAS_CommonTypeDefs.InterworkWithoutN26", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SecurityHeaderType_xer_ = { {"SecurityHeaderType>\n", "SecurityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SecurityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SecurityHeaderType_descr_ = { "@NAS_CommonTypeDefs.SecurityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SecurityHeaderType_xer_, &BITSTRING_json_, &SecurityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProtocolDiscriminator_xer_ = { {"ProtocolDiscriminator>\n", "ProtocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProtocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProtocolDiscriminator_descr_ = { "@NAS_CommonTypeDefs.ProtocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ProtocolDiscriminator_xer_, &BITSTRING_json_, &ProtocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProcedureTransactionIdentifier_xer_ = { {"ProcedureTransactionIdentifier>\n", "ProcedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProcedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int ProcedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProcedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ProcedureTransactionIdentifier_oer_ext_arr_, 0, ProcedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t ProcedureTransactionIdentifier_descr_ = { "@NAS_CommonTypeDefs.ProcedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ProcedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &ProcedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SkipIndicator_xer_ = { {"SkipIndicator>\n", "SkipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SkipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SkipIndicator_descr_ = { "@NAS_CommonTypeDefs.SkipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SkipIndicator_xer_, &BITSTRING_json_, &SkipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MessageType_xer_ = { {"MessageType>\n", "MessageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MessageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MessageType_descr_ = { "@NAS_CommonTypeDefs.MessageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &MessageType_xer_, &BITSTRING_json_, &MessageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SequenceNumber_xer_ = { {"NAS_SequenceNumber>\n", "NAS_SequenceNumber>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__SequenceNumber_oer_ext_arr_[0] = {}; +const int NAS__SequenceNumber_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__SequenceNumber_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NAS__SequenceNumber_oer_ext_arr_, 0, NAS__SequenceNumber_oer_p_}; +const TTCN_Typedescriptor_t NAS__SequenceNumber_descr_ = { "@NAS_CommonTypeDefs.NAS_SequenceNumber", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NAS__SequenceNumber_xer_, &OCTETSTRING_json_, &NAS__SequenceNumber_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__AttDetValue__Type_xer_ = { {"NAS_AttDetValue_Type>\n", "NAS_AttDetValue_Type>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__AttDetValue__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__AttDetValue__Type_descr_ = { "@NAS_CommonTypeDefs.NAS_AttDetValue_Type", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NAS__AttDetValue__Type_xer_, &BITSTRING_json_, &NAS__AttDetValue__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t KeySeq_xer_ = { {"KeySeq>\n", "KeySeq>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t KeySeq_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t KeySeq_descr_ = { "@NAS_CommonTypeDefs.KeySeq", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &KeySeq_xer_, &BITSTRING_json_, &KeySeq_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__KsiValue_xer_ = { {"NAS_KsiValue>\n", "NAS_KsiValue>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__KsiValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__KsiValue_descr_ = { "@NAS_CommonTypeDefs.NAS_KsiValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NAS__KsiValue_xer_, &BITSTRING_json_, &NAS__KsiValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__PlmnId_xer_ = { {"NAS_PlmnId>\n", "NAS_PlmnId>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__PlmnId_oer_ext_arr_[0] = {}; +const int NAS__PlmnId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__PlmnId_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NAS__PlmnId_oer_ext_arr_, 0, NAS__PlmnId_oer_p_}; +const TTCN_Typedescriptor_t NAS__PlmnId_descr_ = { "@NAS_CommonTypeDefs.NAS_PlmnId", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NAS__PlmnId_xer_, &OCTETSTRING_json_, &NAS__PlmnId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__Tmsi_xer_ = { {"NAS_Tmsi>\n", "NAS_Tmsi>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__Tmsi_oer_ext_arr_[0] = {}; +const int NAS__Tmsi_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__Tmsi_oer_ = { -1, TRUE, 4, FALSE, 0, 0, NAS__Tmsi_oer_ext_arr_, 0, NAS__Tmsi_oer_p_}; +const TTCN_Typedescriptor_t NAS__Tmsi_descr_ = { "@NAS_CommonTypeDefs.NAS_Tmsi", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &NAS__Tmsi_xer_, &OCTETSTRING_json_, &NAS__Tmsi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__P__Tmsi_xer_ = { {"NAS_P_Tmsi>\n", "NAS_P_Tmsi>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__P__Tmsi_oer_ext_arr_[0] = {}; +const int NAS__P__Tmsi_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__P__Tmsi_oer_ = { -1, TRUE, 4, FALSE, 0, 0, NAS__P__Tmsi_oer_ext_arr_, 0, NAS__P__Tmsi_oer_p_}; +const TTCN_Typedescriptor_t NAS__P__Tmsi_descr_ = { "@NAS_CommonTypeDefs.NAS_P_Tmsi", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &NAS__P__Tmsi_xer_, &OCTETSTRING_json_, &NAS__P__Tmsi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__Lac_xer_ = { {"NAS_Lac>\n", "NAS_Lac>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__Lac_oer_ext_arr_[0] = {}; +const int NAS__Lac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__Lac_oer_ = { -1, TRUE, 2, FALSE, 0, 0, NAS__Lac_oer_ext_arr_, 0, NAS__Lac_oer_p_}; +const TTCN_Typedescriptor_t NAS__Lac_descr_ = { "@NAS_CommonTypeDefs.NAS_Lac", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &NAS__Lac_xer_, &OCTETSTRING_json_, &NAS__Lac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__Rac_xer_ = { {"NAS_Rac>\n", "NAS_Rac>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__Rac_oer_ext_arr_[0] = {}; +const int NAS__Rac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__Rac_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NAS__Rac_oer_ext_arr_, 0, NAS__Rac_oer_p_}; +const TTCN_Typedescriptor_t NAS__Rac_descr_ = { "@NAS_CommonTypeDefs.NAS_Rac", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NAS__Rac_xer_, &OCTETSTRING_json_, &NAS__Rac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PdnTypeValue_xer_ = { {"PdnTypeValue>\n", "PdnTypeValue>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PdnTypeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PdnTypeValue_descr_ = { "@NAS_CommonTypeDefs.PdnTypeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &PdnTypeValue_xer_, &BITSTRING_json_, &PdnTypeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t BcdDigit__Bit_raw_ = {4,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t BcdDigit__Bit_xer_ = { {"BcdDigit_Bit>\n", "BcdDigit_Bit>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t BcdDigit__Bit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t BcdDigit__Bit_descr_ = { "@NAS_CommonTypeDefs.BcdDigit_Bit", &BITSTRING_ber_, &BcdDigit__Bit_raw_, NULL, &BcdDigit__Bit_xer_, &BITSTRING_json_, &BcdDigit__Bit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__IdType_xer_ = { {"NAS_IdType>\n", "NAS_IdType>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__IdType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__IdType_descr_ = { "@NAS_CommonTypeDefs.NAS_IdType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NAS__IdType_xer_, &BITSTRING_json_, &NAS__IdType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__CauseValue__Type_xer_ = { {"NAS_CauseValue_Type>\n", "NAS_CauseValue_Type>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__CauseValue__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__CauseValue__Type_descr_ = { "@NAS_CommonTypeDefs.NAS_CauseValue_Type", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NAS__CauseValue__Type_xer_, &BITSTRING_json_, &NAS__CauseValue__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TmsiStatusValue_xer_ = { {"TmsiStatusValue>\n", "TmsiStatusValue>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TmsiStatusValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TmsiStatusValue_descr_ = { "@NAS_CommonTypeDefs.TmsiStatusValue", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &TmsiStatusValue_xer_, &BITSTRING_json_, &TmsiStatusValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PS__MODE +const TTCN_Typedescriptor_t PS__MODE_descr_ = { "@NAS_CommonTypeDefs.PS_MODE", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CS__PS__MODE +const TTCN_Typedescriptor_t CS__PS__MODE_descr_ = { "@NAS_CommonTypeDefs.CS_PS_MODE", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +OCTETSTRING const_tsc__LAC__Def; +const OCTETSTRING& tsc__LAC__Def = const_tsc__LAC__Def; +OCTETSTRING const_tsc__LAC__Deleted; +const OCTETSTRING& tsc__LAC__Deleted = const_tsc__LAC__Deleted; +const XERdescriptor_t AccessPointName_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AccessPointName_iel_oer_ext_arr_[0] = {}; +const int AccessPointName_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AccessPointName_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AccessPointName_iel_oer_ext_arr_, 0, AccessPointName_iel_oer_p_}; +const TTCN_Typedescriptor_t AccessPointName_iel_descr_ = { "@NAS_CommonTypeDefs.AccessPointName.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AccessPointName_iel_xer_, &OCTETSTRING_json_, &AccessPointName_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessPointName_nameValue_xer_ = { {"nameValue>\n", "nameValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AccessPointName_nameValue_oer_ext_arr_[0] = {}; +const int AccessPointName_nameValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AccessPointName_nameValue_oer_ = { -1, TRUE, -1, FALSE, 0, 0, AccessPointName_nameValue_oer_ext_arr_, 0, AccessPointName_nameValue_oer_p_}; +const TTCN_Typedescriptor_t AccessPointName_nameValue_descr_ = { "@NAS_CommonTypeDefs.AccessPointName.nameValue", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &AccessPointName_nameValue_xer_, &OCTETSTRING_json_, &AccessPointName_nameValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AccessPointName +const TTCN_Typedescriptor_t AccessPointName_descr_ = { "@NAS_CommonTypeDefs.AccessPointName", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessPointName_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AccessPointName_iei_oer_ext_arr_[0] = {}; +const int AccessPointName_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AccessPointName_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AccessPointName_iei_oer_ext_arr_, 0, AccessPointName_iei_oer_p_}; +const TTCN_Typedescriptor_t AccessPointName_iei_descr_ = { "@NAS_CommonTypeDefs.AccessPointName.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AccessPointName_iei_xer_, &OCTETSTRING_json_, &AccessPointName_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalUpdateType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AdditionalUpdateType_iei_descr_ = { "@NAS_CommonTypeDefs.AdditionalUpdateType.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &AdditionalUpdateType_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalUpdateType_pnb__CIOT_xer_ = { {"pnb_CIOT>\n", "pnb_CIOT>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalUpdateType_pnb__CIOT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalUpdateType_pnb__CIOT_descr_ = { "@NAS_CommonTypeDefs.AdditionalUpdateType.pnb_CIOT", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &AdditionalUpdateType_pnb__CIOT_xer_, &BITSTRING_json_, &AdditionalUpdateType_pnb__CIOT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalUpdateType_signallingActiveFlag_xer_ = { {"signallingActiveFlag>\n", "signallingActiveFlag>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalUpdateType_signallingActiveFlag_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalUpdateType_signallingActiveFlag_descr_ = { "@NAS_CommonTypeDefs.AdditionalUpdateType.signallingActiveFlag", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AdditionalUpdateType_signallingActiveFlag_xer_, &BITSTRING_json_, &AdditionalUpdateType_signallingActiveFlag_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalUpdateType_addUpdateTypeValue_xer_ = { {"addUpdateTypeValue>\n", "addUpdateTypeValue>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalUpdateType_addUpdateTypeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalUpdateType_addUpdateTypeValue_descr_ = { "@NAS_CommonTypeDefs.AdditionalUpdateType.addUpdateTypeValue", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AdditionalUpdateType_addUpdateTypeValue_xer_, &BITSTRING_json_, &AdditionalUpdateType_addUpdateTypeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AdditionalUpdateType +const TTCN_Typedescriptor_t AdditionalUpdateType_descr_ = { "@NAS_CommonTypeDefs.AdditionalUpdateType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CiphKeySeqNum_spare1_xer_ = { {"spare1>\n", "spare1>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CiphKeySeqNum_spare1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CiphKeySeqNum_spare1_descr_ = { "@NAS_CommonTypeDefs.CiphKeySeqNum.spare1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &CiphKeySeqNum_spare1_xer_, &BITSTRING_json_, &CiphKeySeqNum_spare1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CiphKeySeqNum_keySeq_xer_ = { {"keySeq>\n", "keySeq>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CiphKeySeqNum_keySeq_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CiphKeySeqNum_keySeq_descr_ = { "@NAS_CommonTypeDefs.CiphKeySeqNum.keySeq", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &CiphKeySeqNum_keySeq_xer_, &BITSTRING_json_, &CiphKeySeqNum_keySeq_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CiphKeySeqNum +const TTCN_Typedescriptor_t CiphKeySeqNum_descr_ = { "@NAS_CommonTypeDefs.CiphKeySeqNum", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CiphKeySeqNum_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t CiphKeySeqNum_iei_descr_ = { "@NAS_CommonTypeDefs.CiphKeySeqNum.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &CiphKeySeqNum_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ConnectivityType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ConnectivityType_iei_descr_ = { "@NAS_CommonTypeDefs.ConnectivityType.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ConnectivityType_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ConnectivityType_connectivityValue_xer_ = { {"connectivityValue>\n", "connectivityValue>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ConnectivityType_connectivityValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ConnectivityType_connectivityValue_descr_ = { "@NAS_CommonTypeDefs.ConnectivityType.connectivityValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ConnectivityType_connectivityValue_xer_, &BITSTRING_json_, &ConnectivityType_connectivityValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ConnectivityType +const TTCN_Typedescriptor_t ConnectivityType_descr_ = { "@NAS_CommonTypeDefs.ConnectivityType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DetachType_switchOff_xer_ = { {"switchOff>\n", "switchOff>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DetachType_switchOff_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DetachType_switchOff_descr_ = { "@NAS_CommonTypeDefs.DetachType.switchOff", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DetachType_switchOff_xer_, &BITSTRING_json_, &DetachType_switchOff_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DetachType_typeOfDetach_xer_ = { {"typeOfDetach>\n", "typeOfDetach>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DetachType_typeOfDetach_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DetachType_typeOfDetach_descr_ = { "@NAS_CommonTypeDefs.DetachType.typeOfDetach", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &DetachType_typeOfDetach_xer_, &BITSTRING_json_, &DetachType_typeOfDetach_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DetachType +const TTCN_Typedescriptor_t DetachType_descr_ = { "@NAS_CommonTypeDefs.DetachType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeviceProperties_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t DeviceProperties_iei_descr_ = { "@NAS_CommonTypeDefs.DeviceProperties.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &DeviceProperties_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeviceProperties_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DeviceProperties_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DeviceProperties_spare_descr_ = { "@NAS_CommonTypeDefs.DeviceProperties.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &DeviceProperties_spare_xer_, &BITSTRING_json_, &DeviceProperties_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeviceProperties_lowPriority_xer_ = { {"lowPriority>\n", "lowPriority>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DeviceProperties_lowPriority_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DeviceProperties_lowPriority_descr_ = { "@NAS_CommonTypeDefs.DeviceProperties.lowPriority", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DeviceProperties_lowPriority_xer_, &BITSTRING_json_, &DeviceProperties_lowPriority_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DeviceProperties +const TTCN_Typedescriptor_t DeviceProperties_descr_ = { "@NAS_CommonTypeDefs.DeviceProperties", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DRXparameter_splitPGcycleCode_xer_ = { {"splitPGcycleCode>\n", "splitPGcycleCode>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DRXparameter_splitPGcycleCode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DRXparameter_splitPGcycleCode_descr_ = { "@NAS_CommonTypeDefs.DRXparameter.splitPGcycleCode", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &DRXparameter_splitPGcycleCode_xer_, &BITSTRING_json_, &DRXparameter_splitPGcycleCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DRXparameter_cnDRXcoef_xer_ = { {"cnDRXcoef>\n", "cnDRXcoef>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DRXparameter_cnDRXcoef_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DRXparameter_cnDRXcoef_descr_ = { "@NAS_CommonTypeDefs.DRXparameter.cnDRXcoef", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DRXparameter_cnDRXcoef_xer_, &BITSTRING_json_, &DRXparameter_cnDRXcoef_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DRXparameter_splitOnCCCH_xer_ = { {"splitOnCCCH>\n", "splitOnCCCH>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DRXparameter_splitOnCCCH_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DRXparameter_splitOnCCCH_descr_ = { "@NAS_CommonTypeDefs.DRXparameter.splitOnCCCH", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DRXparameter_splitOnCCCH_xer_, &BITSTRING_json_, &DRXparameter_splitOnCCCH_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DRXparameter_nonDRXtimer_xer_ = { {"nonDRXtimer>\n", "nonDRXtimer>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DRXparameter_nonDRXtimer_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DRXparameter_nonDRXtimer_descr_ = { "@NAS_CommonTypeDefs.DRXparameter.nonDRXtimer", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &DRXparameter_nonDRXtimer_xer_, &BITSTRING_json_, &DRXparameter_nonDRXtimer_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DRXparameter +const TTCN_Typedescriptor_t DRXparameter_descr_ = { "@NAS_CommonTypeDefs.DRXparameter", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DRXparameter_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DRXparameter_iei_oer_ext_arr_[0] = {}; +const int DRXparameter_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DRXparameter_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DRXparameter_iei_oer_ext_arr_, 0, DRXparameter_iei_oer_p_}; +const TTCN_Typedescriptor_t DRXparameter_iei_descr_ = { "@NAS_CommonTypeDefs.DRXparameter.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DRXparameter_iei_xer_, &OCTETSTRING_json_, &DRXparameter_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EmergServCat_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EmergServCat_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EmergServCat_spare_descr_ = { "@NAS_CommonTypeDefs.EmergServCat.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EmergServCat_spare_xer_, &BITSTRING_json_, &EmergServCat_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EmergServCat_emergSCValue_xer_ = { {"emergSCValue>\n", "emergSCValue>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EmergServCat_emergSCValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EmergServCat_emergSCValue_descr_ = { "@NAS_CommonTypeDefs.EmergServCat.emergSCValue", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &EmergServCat_emergSCValue_xer_, &BITSTRING_json_, &EmergServCat_emergSCValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EmergServCat +const TTCN_Typedescriptor_t EmergServCat_descr_ = { "@NAS_CommonTypeDefs.EmergServCat", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EmergNum_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EmergNum_len_oer_ext_arr_[0] = {}; +const int EmergNum_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EmergNum_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EmergNum_len_oer_ext_arr_, 0, EmergNum_len_oer_p_}; +const TTCN_Typedescriptor_t EmergNum_len_descr_ = { "@NAS_CommonTypeDefs.EmergNum.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EmergNum_len_xer_, &OCTETSTRING_json_, &EmergNum_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EmergNum_digits_xer_ = { {"digits>\n", "digits>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EmergNum_digits_oer_ext_arr_[0] = {}; +const int EmergNum_digits_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EmergNum_digits_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EmergNum_digits_oer_ext_arr_, 0, EmergNum_digits_oer_p_}; +const TTCN_Typedescriptor_t EmergNum_digits_descr_ = { "@NAS_CommonTypeDefs.EmergNum.digits", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EmergNum_digits_xer_, &OCTETSTRING_json_, &EmergNum_digits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EmergNum +const TTCN_Typedescriptor_t EmergNum_descr_ = { "@NAS_CommonTypeDefs.EmergNum", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EmergNumList_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EmergNumList_iei_oer_ext_arr_[0] = {}; +const int EmergNumList_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EmergNumList_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EmergNumList_iei_oer_ext_arr_, 0, EmergNumList_iei_oer_p_}; +const TTCN_Typedescriptor_t EmergNumList_iei_descr_ = { "@NAS_CommonTypeDefs.EmergNumList.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EmergNumList_iei_xer_, &OCTETSTRING_json_, &EmergNumList_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EmergNumList_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EmergNumList_iel_oer_ext_arr_[0] = {}; +const int EmergNumList_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EmergNumList_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EmergNumList_iel_oer_ext_arr_, 0, EmergNumList_iel_oer_p_}; +const TTCN_Typedescriptor_t EmergNumList_iel_descr_ = { "@NAS_CommonTypeDefs.EmergNumList.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EmergNumList_iel_xer_, &OCTETSTRING_json_, &EmergNumList_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EmergNumList_emergNum +const TTCN_Typedescriptor_t EmergNumList_emergNum_descr_ = { "@NAS_CommonTypeDefs.EmergNumList.emergNum", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &EmergNum_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EmergNumList +const TTCN_Typedescriptor_t EmergNumList_descr_ = { "@NAS_CommonTypeDefs.EmergNumList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GprsTimerUnit_xer_ = { {"GprsTimerUnit>\n", "GprsTimerUnit>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GprsTimerUnit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GprsTimerUnit_descr_ = { "@NAS_CommonTypeDefs.GprsTimerUnit", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &GprsTimerUnit_xer_, &BITSTRING_json_, &GprsTimerUnit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GPRS__Timer_unit_xer_ = { {"unit>\n", "unit>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GPRS__Timer_unit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GPRS__Timer_unit_descr_ = { "@NAS_CommonTypeDefs.GPRS_Timer.unit", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &GPRS__Timer_unit_xer_, &BITSTRING_json_, &GPRS__Timer_unit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GPRS__Timer_timerValue_xer_ = { {"timerValue>\n", "timerValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GPRS__Timer_timerValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GPRS__Timer_timerValue_descr_ = { "@NAS_CommonTypeDefs.GPRS_Timer.timerValue", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &GPRS__Timer_timerValue_xer_, &BITSTRING_json_, &GPRS__Timer_timerValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for GPRS__Timer +const TTCN_Typedescriptor_t GPRS__Timer_descr_ = { "@NAS_CommonTypeDefs.GPRS_Timer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GPRS__Timer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int GPRS__Timer_iei_oer_ext_arr_[0] = {}; +const int GPRS__Timer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t GPRS__Timer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, GPRS__Timer_iei_oer_ext_arr_, 0, GPRS__Timer_iei_oer_p_}; +const TTCN_Typedescriptor_t GPRS__Timer_iei_descr_ = { "@NAS_CommonTypeDefs.GPRS_Timer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &GPRS__Timer_iei_xer_, &OCTETSTRING_json_, &GPRS__Timer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GPRS__Timer2_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int GPRS__Timer2_iei_oer_ext_arr_[0] = {}; +const int GPRS__Timer2_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t GPRS__Timer2_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, GPRS__Timer2_iei_oer_ext_arr_, 0, GPRS__Timer2_iei_oer_p_}; +const TTCN_Typedescriptor_t GPRS__Timer2_iei_descr_ = { "@NAS_CommonTypeDefs.GPRS_Timer2.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &GPRS__Timer2_iei_xer_, &OCTETSTRING_json_, &GPRS__Timer2_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GPRS__Timer2_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int GPRS__Timer2_iel_oer_ext_arr_[0] = {}; +const int GPRS__Timer2_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t GPRS__Timer2_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, GPRS__Timer2_iel_oer_ext_arr_, 0, GPRS__Timer2_iel_oer_p_}; +const TTCN_Typedescriptor_t GPRS__Timer2_iel_descr_ = { "@NAS_CommonTypeDefs.GPRS_Timer2.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &GPRS__Timer2_iel_xer_, &OCTETSTRING_json_, &GPRS__Timer2_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GPRS__Timer2_unit_xer_ = { {"unit>\n", "unit>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GPRS__Timer2_unit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GPRS__Timer2_unit_descr_ = { "@NAS_CommonTypeDefs.GPRS_Timer2.unit", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &GPRS__Timer2_unit_xer_, &BITSTRING_json_, &GPRS__Timer2_unit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GPRS__Timer2_gprsTimerValue_xer_ = { {"gprsTimerValue>\n", "gprsTimerValue>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GPRS__Timer2_gprsTimerValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GPRS__Timer2_gprsTimerValue_descr_ = { "@NAS_CommonTypeDefs.GPRS_Timer2.gprsTimerValue", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &GPRS__Timer2_gprsTimerValue_xer_, &BITSTRING_json_, &GPRS__Timer2_gprsTimerValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for GPRS__Timer2 +const TTCN_Typedescriptor_t GPRS__Timer2_descr_ = { "@NAS_CommonTypeDefs.GPRS_Timer2", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& GPRS__Timer3_descr_ = GPRS__Timer2_descr_; +const XERdescriptor_t IMEISV__Request_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IMEISV__Request_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IMEISV__Request_spare_descr_ = { "@NAS_CommonTypeDefs.IMEISV_Request.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IMEISV__Request_spare_xer_, &BITSTRING_json_, &IMEISV__Request_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IMEISV__Request_requestValue_xer_ = { {"requestValue>\n", "requestValue>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IMEISV__Request_requestValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IMEISV__Request_requestValue_descr_ = { "@NAS_CommonTypeDefs.IMEISV_Request.requestValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &IMEISV__Request_requestValue_xer_, &BITSTRING_json_, &IMEISV__Request_requestValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IMEISV__Request +const TTCN_Typedescriptor_t IMEISV__Request_descr_ = { "@NAS_CommonTypeDefs.IMEISV_Request", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IMEISV__Request_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t IMEISV__Request_iei_descr_ = { "@NAS_CommonTypeDefs.IMEISV_Request.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &IMEISV__Request_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LocAreaId_plmn_xer_ = { {"plmn>\n", "plmn>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LocAreaId_plmn_oer_ext_arr_[0] = {}; +const int LocAreaId_plmn_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LocAreaId_plmn_oer_ = { -1, TRUE, 3, FALSE, 0, 0, LocAreaId_plmn_oer_ext_arr_, 0, LocAreaId_plmn_oer_p_}; +const TTCN_Typedescriptor_t LocAreaId_plmn_descr_ = { "@NAS_CommonTypeDefs.LocAreaId.plmn", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &LocAreaId_plmn_xer_, &OCTETSTRING_json_, &LocAreaId_plmn_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LocAreaId_lac_xer_ = { {"lac>\n", "lac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LocAreaId_lac_oer_ext_arr_[0] = {}; +const int LocAreaId_lac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LocAreaId_lac_oer_ = { -1, TRUE, 2, FALSE, 0, 0, LocAreaId_lac_oer_ext_arr_, 0, LocAreaId_lac_oer_p_}; +const TTCN_Typedescriptor_t LocAreaId_lac_descr_ = { "@NAS_CommonTypeDefs.LocAreaId.lac", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &LocAreaId_lac_xer_, &OCTETSTRING_json_, &LocAreaId_lac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LocAreaId +const TTCN_Typedescriptor_t LocAreaId_descr_ = { "@NAS_CommonTypeDefs.LocAreaId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LocAreaId_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LocAreaId_iei_oer_ext_arr_[0] = {}; +const int LocAreaId_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LocAreaId_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, LocAreaId_iei_oer_ext_arr_, 0, LocAreaId_iei_oer_p_}; +const TTCN_Typedescriptor_t LocAreaId_iei_descr_ = { "@NAS_CommonTypeDefs.LocAreaId.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &LocAreaId_iei_xer_, &OCTETSTRING_json_, &LocAreaId_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RoutingAreaId_rac_xer_ = { {"rac>\n", "rac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RoutingAreaId_rac_oer_ext_arr_[0] = {}; +const int RoutingAreaId_rac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RoutingAreaId_rac_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RoutingAreaId_rac_oer_ext_arr_, 0, RoutingAreaId_rac_oer_p_}; +const TTCN_Typedescriptor_t RoutingAreaId_rac_descr_ = { "@NAS_CommonTypeDefs.RoutingAreaId.rac", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RoutingAreaId_rac_xer_, &OCTETSTRING_json_, &RoutingAreaId_rac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RoutingAreaId +const TTCN_Typedescriptor_t RoutingAreaId_descr_ = { "@NAS_CommonTypeDefs.RoutingAreaId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RoutingAreaId_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RoutingAreaId_iei_oer_ext_arr_[0] = {}; +const int RoutingAreaId_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RoutingAreaId_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RoutingAreaId_iei_oer_ext_arr_, 0, RoutingAreaId_iei_oer_p_}; +const TTCN_Typedescriptor_t RoutingAreaId_iei_descr_ = { "@NAS_CommonTypeDefs.RoutingAreaId.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RoutingAreaId_iei_xer_, &OCTETSTRING_json_, &RoutingAreaId_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LLC__SAPI_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t LLC__SAPI_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t LLC__SAPI_spare_descr_ = { "@NAS_CommonTypeDefs.LLC_SAPI.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &LLC__SAPI_spare_xer_, &BITSTRING_json_, &LLC__SAPI_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LLC__SAPI_llcSapiValue_xer_ = { {"llcSapiValue>\n", "llcSapiValue>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t LLC__SAPI_llcSapiValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t LLC__SAPI_llcSapiValue_descr_ = { "@NAS_CommonTypeDefs.LLC_SAPI.llcSapiValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &LLC__SAPI_llcSapiValue_xer_, &BITSTRING_json_, &LLC__SAPI_llcSapiValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LLC__SAPI +const TTCN_Typedescriptor_t LLC__SAPI_descr_ = { "@NAS_CommonTypeDefs.LLC_SAPI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LLC__SAPI_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LLC__SAPI_iei_oer_ext_arr_[0] = {}; +const int LLC__SAPI_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LLC__SAPI_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, LLC__SAPI_iei_oer_ext_arr_, 0, LLC__SAPI_iei_oer_p_}; +const TTCN_Typedescriptor_t LLC__SAPI_iei_descr_ = { "@NAS_CommonTypeDefs.LLC_SAPI.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &LLC__SAPI_iei_xer_, &OCTETSTRING_json_, &LLC__SAPI_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MobileIdentity_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MobileIdentity_iel_oer_ext_arr_[0] = {}; +const int MobileIdentity_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MobileIdentity_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MobileIdentity_iel_oer_ext_arr_, 0, MobileIdentity_iel_oer_p_}; +const TTCN_Typedescriptor_t MobileIdentity_iel_descr_ = { "@NAS_CommonTypeDefs.MobileIdentity.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MobileIdentity_iel_xer_, &OCTETSTRING_json_, &MobileIdentity_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MobileIdentity_idDigit1_xer_ = { {"idDigit1>\n", "idDigit1>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MobileIdentity_idDigit1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MobileIdentity_idDigit1_descr_ = { "@NAS_CommonTypeDefs.MobileIdentity.idDigit1", &BITSTRING_ber_, &BcdDigit__Bit_raw_, NULL, &MobileIdentity_idDigit1_xer_, &BITSTRING_json_, &MobileIdentity_idDigit1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MobileIdentity_oddEvenInd_xer_ = { {"oddEvenInd>\n", "oddEvenInd>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MobileIdentity_oddEvenInd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MobileIdentity_oddEvenInd_descr_ = { "@NAS_CommonTypeDefs.MobileIdentity.oddEvenInd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MobileIdentity_oddEvenInd_xer_, &BITSTRING_json_, &MobileIdentity_oddEvenInd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MobileIdentity_typeOfId_xer_ = { {"typeOfId>\n", "typeOfId>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MobileIdentity_typeOfId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MobileIdentity_typeOfId_descr_ = { "@NAS_CommonTypeDefs.MobileIdentity.typeOfId", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &MobileIdentity_typeOfId_xer_, &BITSTRING_json_, &MobileIdentity_typeOfId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MobileIdentity_otherDigits_xer_ = { {"otherDigits>\n", "otherDigits>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MobileIdentity_otherDigits_oer_ext_arr_[0] = {}; +const int MobileIdentity_otherDigits_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MobileIdentity_otherDigits_oer_ = { -1, TRUE, -1, FALSE, 0, 0, MobileIdentity_otherDigits_oer_ext_arr_, 0, MobileIdentity_otherDigits_oer_p_}; +const TTCN_Typedescriptor_t MobileIdentity_otherDigits_descr_ = { "@NAS_CommonTypeDefs.MobileIdentity.otherDigits", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &MobileIdentity_otherDigits_xer_, &OCTETSTRING_json_, &MobileIdentity_otherDigits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MobileIdentity +const TTCN_Typedescriptor_t MobileIdentity_descr_ = { "@NAS_CommonTypeDefs.MobileIdentity", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MobileIdentity_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MobileIdentity_iei_oer_ext_arr_[0] = {}; +const int MobileIdentity_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MobileIdentity_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MobileIdentity_iei_oer_ext_arr_, 0, MobileIdentity_iei_oer_p_}; +const TTCN_Typedescriptor_t MobileIdentity_iei_descr_ = { "@NAS_CommonTypeDefs.MobileIdentity.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MobileIdentity_iei_xer_, &OCTETSTRING_json_, &MobileIdentity_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MS__Clsmk2_iel_oer_ext_arr_[0] = {}; +const int MS__Clsmk2_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MS__Clsmk2_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MS__Clsmk2_iel_oer_ext_arr_, 0, MS__Clsmk2_iel_oer_p_}; +const TTCN_Typedescriptor_t MS__Clsmk2_iel_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MS__Clsmk2_iel_xer_, &OCTETSTRING_json_, &MS__Clsmk2_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_spare1__1_xer_ = { {"spare1_1>\n", "spare1_1>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_spare1__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_spare1__1_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.spare1_1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_spare1__1_xer_, &BITSTRING_json_, &MS__Clsmk2_spare1__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_revLvl_xer_ = { {"revLvl>\n", "revLvl>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_revLvl_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_revLvl_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.revLvl", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk2_revLvl_xer_, &BITSTRING_json_, &MS__Clsmk2_revLvl_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_eSIND_xer_ = { {"eSIND>\n", "eSIND>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_eSIND_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_eSIND_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.eSIND", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_eSIND_xer_, &BITSTRING_json_, &MS__Clsmk2_eSIND_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_a5__1_xer_ = { {"a5_1>\n", "a5_1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_a5__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_a5__1_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.a5_1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_a5__1_xer_, &BITSTRING_json_, &MS__Clsmk2_a5__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_rFPwrCap_xer_ = { {"rFPwrCap>\n", "rFPwrCap>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_rFPwrCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_rFPwrCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.rFPwrCap", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &MS__Clsmk2_rFPwrCap_xer_, &BITSTRING_json_, &MS__Clsmk2_rFPwrCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_spare1__2_xer_ = { {"spare1_2>\n", "spare1_2>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_spare1__2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_spare1__2_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.spare1_2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_spare1__2_xer_, &BITSTRING_json_, &MS__Clsmk2_spare1__2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_pSCap_xer_ = { {"pSCap>\n", "pSCap>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_pSCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_pSCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.pSCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_pSCap_xer_, &BITSTRING_json_, &MS__Clsmk2_pSCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_sSSI_xer_ = { {"sSSI>\n", "sSSI>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_sSSI_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_sSSI_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.sSSI", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk2_sSSI_xer_, &BITSTRING_json_, &MS__Clsmk2_sSSI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_sMCap_xer_ = { {"sMCap>\n", "sMCap>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_sMCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_sMCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.sMCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_sMCap_xer_, &BITSTRING_json_, &MS__Clsmk2_sMCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_vBS_xer_ = { {"vBS>\n", "vBS>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_vBS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_vBS_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.vBS", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_vBS_xer_, &BITSTRING_json_, &MS__Clsmk2_vBS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_vGCS_xer_ = { {"vGCS>\n", "vGCS>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_vGCS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_vGCS_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.vGCS", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_vGCS_xer_, &BITSTRING_json_, &MS__Clsmk2_vGCS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_fC_xer_ = { {"fC>\n", "fC>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_fC_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_fC_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.fC", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_fC_xer_, &BITSTRING_json_, &MS__Clsmk2_fC_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_cM3_xer_ = { {"cM3>\n", "cM3>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_cM3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_cM3_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.cM3", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_cM3_xer_, &BITSTRING_json_, &MS__Clsmk2_cM3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_spare1__3_xer_ = { {"spare1_3>\n", "spare1_3>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_spare1__3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_spare1__3_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.spare1_3", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_spare1__3_xer_, &BITSTRING_json_, &MS__Clsmk2_spare1__3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_lCSVA_xer_ = { {"lCSVA>\n", "lCSVA>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_lCSVA_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_lCSVA_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.lCSVA", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_lCSVA_xer_, &BITSTRING_json_, &MS__Clsmk2_lCSVA_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_uCS2_xer_ = { {"uCS2>\n", "uCS2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_uCS2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_uCS2_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.uCS2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_uCS2_xer_, &BITSTRING_json_, &MS__Clsmk2_uCS2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_soLSA_xer_ = { {"soLSA>\n", "soLSA>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_soLSA_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_soLSA_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.soLSA", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_soLSA_xer_, &BITSTRING_json_, &MS__Clsmk2_soLSA_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_cMSP_xer_ = { {"cMSP>\n", "cMSP>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_cMSP_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_cMSP_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.cMSP", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_cMSP_xer_, &BITSTRING_json_, &MS__Clsmk2_cMSP_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_a5__3_xer_ = { {"a5_3>\n", "a5_3>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_a5__3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_a5__3_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.a5_3", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_a5__3_xer_, &BITSTRING_json_, &MS__Clsmk2_a5__3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_a5__2_xer_ = { {"a5_2>\n", "a5_2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk2_a5__2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk2_a5__2_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.a5_2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk2_a5__2_xer_, &BITSTRING_json_, &MS__Clsmk2_a5__2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MS__Clsmk2 +const TTCN_Typedescriptor_t MS__Clsmk2_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk2_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MS__Clsmk2_iei_oer_ext_arr_[0] = {}; +const int MS__Clsmk2_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MS__Clsmk2_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MS__Clsmk2_iei_oer_ext_arr_, 0, MS__Clsmk2_iei_oer_p_}; +const TTCN_Typedescriptor_t MS__Clsmk2_iei_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk2.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MS__Clsmk2_iei_xer_, &OCTETSTRING_json_, &MS__Clsmk2_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_spareBit_xer_ = { {"spareBit>\n", "spareBit>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_spareBit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_spareBit_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.spareBit", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_spareBit_xer_, &BITSTRING_json_, &MS__Clsmk3_spareBit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_multibandSupported_xer_ = { {"multibandSupported>\n", "multibandSupported>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_multibandSupported_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_multibandSupported_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.multibandSupported", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &MS__Clsmk3_multibandSupported_xer_, &BITSTRING_json_, &MS__Clsmk3_multibandSupported_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_a5__7_xer_ = { {"a5_7>\n", "a5_7>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_a5__7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_a5__7_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.a5_7", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_a5__7_xer_, &BITSTRING_json_, &MS__Clsmk3_a5__7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_a5__6_xer_ = { {"a5_6>\n", "a5_6>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_a5__6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_a5__6_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.a5_6", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_a5__6_xer_, &BITSTRING_json_, &MS__Clsmk3_a5__6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_a5__5_xer_ = { {"a5_5>\n", "a5_5>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_a5__5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_a5__5_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.a5_5", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_a5__5_xer_, &BITSTRING_json_, &MS__Clsmk3_a5__5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_a5__4_xer_ = { {"a5_4>\n", "a5_4>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_a5__4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_a5__4_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.a5_4", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_a5__4_xer_, &BITSTRING_json_, &MS__Clsmk3_a5__4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MS__Clsmk3 +const TTCN_Typedescriptor_t MS__Clsmk3_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MS__Clsmk3_iei_oer_ext_arr_[0] = {}; +const int MS__Clsmk3_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MS__Clsmk3_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MS__Clsmk3_iei_oer_ext_arr_, 0, MS__Clsmk3_iei_oer_p_}; +const TTCN_Typedescriptor_t MS__Clsmk3_iei_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MS__Clsmk3_iei_xer_, &OCTETSTRING_json_, &MS__Clsmk3_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MS__Clsmk3_iel_oer_ext_arr_[0] = {}; +const int MS__Clsmk3_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MS__Clsmk3_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MS__Clsmk3_iel_oer_ext_arr_, 0, MS__Clsmk3_iel_oer_p_}; +const TTCN_Typedescriptor_t MS__Clsmk3_iel_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MS__Clsmk3_iel_xer_, &OCTETSTRING_json_, &MS__Clsmk3_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_associatedRadioCapabilty2_xer_ = { {"associatedRadioCapabilty2>\n", "associatedRadioCapabilty2>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_associatedRadioCapabilty2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_associatedRadioCapabilty2_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.associatedRadioCapabilty2", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_associatedRadioCapabilty2_xer_, &BITSTRING_json_, &MS__Clsmk3_associatedRadioCapabilty2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_spareBits1_xer_ = { {"spareBits1>\n", "spareBits1>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_spareBits1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_spareBits1_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.spareBits1", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_spareBits1_xer_, &BITSTRING_json_, &MS__Clsmk3_spareBits1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_associatedRadioCapabilty1_xer_ = { {"associatedRadioCapabilty1>\n", "associatedRadioCapabilty1>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_associatedRadioCapabilty1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_associatedRadioCapabilty1_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.associatedRadioCapabilty1", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_associatedRadioCapabilty1_xer_, &BITSTRING_json_, &MS__Clsmk3_associatedRadioCapabilty1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit1_xer_ = { {"maskBit1>\n", "maskBit1>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit1_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit1_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_rGSM__RadioCapability_xer_ = { {"rGSM_RadioCapability>\n", "rGSM_RadioCapability>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_rGSM__RadioCapability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_rGSM__RadioCapability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.rGSM_RadioCapability", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &MS__Clsmk3_rGSM__RadioCapability_xer_, &BITSTRING_json_, &MS__Clsmk3_rGSM__RadioCapability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit2_xer_ = { {"maskBit2>\n", "maskBit2>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit2_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit2_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_multiSlotClass_xer_ = { {"multiSlotClass>\n", "multiSlotClass>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_multiSlotClass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_multiSlotClass_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.multiSlotClass", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &MS__Clsmk3_multiSlotClass_xer_, &BITSTRING_json_, &MS__Clsmk3_multiSlotClass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_uCS2Treatment_xer_ = { {"uCS2Treatment>\n", "uCS2Treatment>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_uCS2Treatment_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_uCS2Treatment_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.uCS2Treatment", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_uCS2Treatment_xer_, &BITSTRING_json_, &MS__Clsmk3_uCS2Treatment_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_extMeasurementCapability_xer_ = { {"extMeasurementCapability>\n", "extMeasurementCapability>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_extMeasurementCapability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_extMeasurementCapability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.extMeasurementCapability", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_extMeasurementCapability_xer_, &BITSTRING_json_, &MS__Clsmk3_extMeasurementCapability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit3_xer_ = { {"maskBit3>\n", "maskBit3>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit3_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit3", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit3_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__MeasCapability_sMS__VALUE_xer_ = { {"sMS_VALUE>\n", "sMS_VALUE>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__MeasCapability_sMS__VALUE_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__MeasCapability_sMS__VALUE_descr_ = { "@NAS_CommonTypeDefs.MS_MeasCapability.sMS_VALUE", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__MeasCapability_sMS__VALUE_xer_, &BITSTRING_json_, &MS__MeasCapability_sMS__VALUE_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__MeasCapability_sM__VALUE_xer_ = { {"sM_VALUE>\n", "sM_VALUE>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__MeasCapability_sM__VALUE_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__MeasCapability_sM__VALUE_descr_ = { "@NAS_CommonTypeDefs.MS_MeasCapability.sM_VALUE", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__MeasCapability_sM__VALUE_xer_, &BITSTRING_json_, &MS__MeasCapability_sM__VALUE_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MS__MeasCapability +const TTCN_Typedescriptor_t MS__MeasCapability_descr_ = { "@NAS_CommonTypeDefs.MS_MeasCapability", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit4_xer_ = { {"maskBit4>\n", "maskBit4>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit4_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit4", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit4_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_msPositioningMethod_xer_ = { {"msPositioningMethod>\n", "msPositioningMethod>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_msPositioningMethod_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_msPositioningMethod_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.msPositioningMethod", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &MS__Clsmk3_msPositioningMethod_xer_, &BITSTRING_json_, &MS__Clsmk3_msPositioningMethod_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit5_xer_ = { {"maskBit5>\n", "maskBit5>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit5_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit5", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit5_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_eDGE__MultiSlot_xer_ = { {"eDGE_MultiSlot>\n", "eDGE_MultiSlot>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_eDGE__MultiSlot_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_eDGE__MultiSlot_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.eDGE_MultiSlot", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &MS__Clsmk3_eDGE__MultiSlot_xer_, &BITSTRING_json_, &MS__Clsmk3_eDGE__MultiSlot_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit6_xer_ = { {"maskBit6>\n", "maskBit6>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit6_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit6", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit6_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EDGE__Struct_modulationCapability_xer_ = { {"modulationCapability>\n", "modulationCapability>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EDGE__Struct_modulationCapability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EDGE__Struct_modulationCapability_descr_ = { "@NAS_CommonTypeDefs.EDGE_Struct.modulationCapability", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EDGE__Struct_modulationCapability_xer_, &BITSTRING_json_, &EDGE__Struct_modulationCapability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EDGE__Struct_pwrMask1_xer_ = { {"pwrMask1>\n", "pwrMask1>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EDGE__Struct_pwrMask1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EDGE__Struct_pwrMask1_descr_ = { "@NAS_CommonTypeDefs.EDGE_Struct.pwrMask1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EDGE__Struct_pwrMask1_xer_, &BITSTRING_json_, &EDGE__Struct_pwrMask1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EDGE__Struct_pwrMask2_xer_ = { {"pwrMask2>\n", "pwrMask2>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EDGE__Struct_pwrMask2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EDGE__Struct_pwrMask2_descr_ = { "@NAS_CommonTypeDefs.EDGE_Struct.pwrMask2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EDGE__Struct_pwrMask2_xer_, &BITSTRING_json_, &EDGE__Struct_pwrMask2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EDGE__Struct +const TTCN_Typedescriptor_t EDGE__Struct_descr_ = { "@NAS_CommonTypeDefs.EDGE_Struct", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EDGE__Struct_eDGE__RF__PowerCapability1_xer_ = { {"eDGE_RF_PowerCapability1>\n", "eDGE_RF_PowerCapability1>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EDGE__Struct_eDGE__RF__PowerCapability1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EDGE__Struct_eDGE__RF__PowerCapability1_descr_ = { "@NAS_CommonTypeDefs.EDGE_Struct.eDGE_RF_PowerCapability1", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &EDGE__Struct_eDGE__RF__PowerCapability1_xer_, &BITSTRING_json_, &EDGE__Struct_eDGE__RF__PowerCapability1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EDGE__Struct_eDGE__RF__PowerCapability2_xer_ = { {"eDGE_RF_PowerCapability2>\n", "eDGE_RF_PowerCapability2>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EDGE__Struct_eDGE__RF__PowerCapability2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EDGE__Struct_eDGE__RF__PowerCapability2_descr_ = { "@NAS_CommonTypeDefs.EDGE_Struct.eDGE_RF_PowerCapability2", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &EDGE__Struct_eDGE__RF__PowerCapability2_xer_, &BITSTRING_json_, &EDGE__Struct_eDGE__RF__PowerCapability2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit7_xer_ = { {"maskBit7>\n", "maskBit7>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit7_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit7", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit7_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_gSM400BandsSupported_xer_ = { {"gSM400BandsSupported>\n", "gSM400BandsSupported>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_gSM400BandsSupported_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_gSM400BandsSupported_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.gSM400BandsSupported", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_gSM400BandsSupported_xer_, &BITSTRING_json_, &MS__Clsmk3_gSM400BandsSupported_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_gSM400AssociatedRadioCapability_xer_ = { {"gSM400AssociatedRadioCapability>\n", "gSM400AssociatedRadioCapability>\n"}, {33, 33}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_gSM400AssociatedRadioCapability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_gSM400AssociatedRadioCapability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.gSM400AssociatedRadioCapability", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_gSM400AssociatedRadioCapability_xer_, &BITSTRING_json_, &MS__Clsmk3_gSM400AssociatedRadioCapability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit8_xer_ = { {"maskBit8>\n", "maskBit8>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit8_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit8", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit8_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_gSM850AssociatedRadiioCapability_xer_ = { {"gSM850AssociatedRadiioCapability>\n", "gSM850AssociatedRadiioCapability>\n"}, {34, 34}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_gSM850AssociatedRadiioCapability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_gSM850AssociatedRadiioCapability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.gSM850AssociatedRadiioCapability", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_gSM850AssociatedRadiioCapability_xer_, &BITSTRING_json_, &MS__Clsmk3_gSM850AssociatedRadiioCapability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit9_xer_ = { {"maskBit9>\n", "maskBit9>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit9_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit9_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit9", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit9_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit9_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_pCS1900AssociatedRadiioCapability_xer_ = { {"pCS1900AssociatedRadiioCapability>\n", "pCS1900AssociatedRadiioCapability>\n"}, {35, 35}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_pCS1900AssociatedRadiioCapability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_pCS1900AssociatedRadiioCapability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.pCS1900AssociatedRadiioCapability", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_pCS1900AssociatedRadiioCapability_xer_, &BITSTRING_json_, &MS__Clsmk3_pCS1900AssociatedRadiioCapability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_uMTS__FDD__RAT__Capability_xer_ = { {"uMTS_FDD_RAT_Capability>\n", "uMTS_FDD_RAT_Capability>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_uMTS__FDD__RAT__Capability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_uMTS__FDD__RAT__Capability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.uMTS_FDD_RAT_Capability", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_uMTS__FDD__RAT__Capability_xer_, &BITSTRING_json_, &MS__Clsmk3_uMTS__FDD__RAT__Capability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_uMTS384TDD__RAT__Capability_xer_ = { {"uMTS384TDD_RAT_Capability>\n", "uMTS384TDD_RAT_Capability>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_uMTS384TDD__RAT__Capability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_uMTS384TDD__RAT__Capability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.uMTS384TDD_RAT_Capability", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_uMTS384TDD__RAT__Capability_xer_, &BITSTRING_json_, &MS__Clsmk3_uMTS384TDD__RAT__Capability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_cDMA2000__RAT__Capability_xer_ = { {"cDMA2000_RAT_Capability>\n", "cDMA2000_RAT_Capability>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_cDMA2000__RAT__Capability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_cDMA2000__RAT__Capability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.cDMA2000_RAT_Capability", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_cDMA2000__RAT__Capability_xer_, &BITSTRING_json_, &MS__Clsmk3_cDMA2000__RAT__Capability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit10_xer_ = { {"maskBit10>\n", "maskBit10>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit10_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit10_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit10", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit10_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit10_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_dTM__GPRS__MultiSlotSubclass_xer_ = { {"dTM_GPRS_MultiSlotSubclass>\n", "dTM_GPRS_MultiSlotSubclass>\n"}, {28, 28}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_dTM__GPRS__MultiSlotSubclass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_dTM__GPRS__MultiSlotSubclass_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.dTM_GPRS_MultiSlotSubclass", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_dTM__GPRS__MultiSlotSubclass_xer_, &BITSTRING_json_, &MS__Clsmk3_dTM__GPRS__MultiSlotSubclass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_singleSlotDTM_xer_ = { {"singleSlotDTM>\n", "singleSlotDTM>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_singleSlotDTM_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_singleSlotDTM_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.singleSlotDTM", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_singleSlotDTM_xer_, &BITSTRING_json_, &MS__Clsmk3_singleSlotDTM_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit11_xer_ = { {"maskBit11>\n", "maskBit11>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit11_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit11_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit11", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit11_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit11_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_dTM__EGPRS__MultiSlorSubclass_xer_ = { {"dTM_EGPRS_MultiSlorSubclass>\n", "dTM_EGPRS_MultiSlorSubclass>\n"}, {29, 29}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_dTM__EGPRS__MultiSlorSubclass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_dTM__EGPRS__MultiSlorSubclass_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.dTM_EGPRS_MultiSlorSubclass", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_dTM__EGPRS__MultiSlorSubclass_xer_, &BITSTRING_json_, &MS__Clsmk3_dTM__EGPRS__MultiSlorSubclass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit12_xer_ = { {"maskBit12>\n", "maskBit12>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit12_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit12_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit12", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit12_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit12_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_singleBandSupport_xer_ = { {"singleBandSupport>\n", "singleBandSupport>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_singleBandSupport_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_singleBandSupport_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.singleBandSupport", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_singleBandSupport_xer_, &BITSTRING_json_, &MS__Clsmk3_singleBandSupport_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_maskBit13_xer_ = { {"maskBit13>\n", "maskBit13>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_maskBit13_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_maskBit13_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.maskBit13", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_maskBit13_xer_, &BITSTRING_json_, &MS__Clsmk3_maskBit13_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_gSM700AssociatedRadioCapability_xer_ = { {"gSM700AssociatedRadioCapability>\n", "gSM700AssociatedRadioCapability>\n"}, {33, 33}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_gSM700AssociatedRadioCapability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_gSM700AssociatedRadioCapability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.gSM700AssociatedRadioCapability", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_gSM700AssociatedRadioCapability_xer_, &BITSTRING_json_, &MS__Clsmk3_gSM700AssociatedRadioCapability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_uMTS128TDD__RAT__Capability_xer_ = { {"uMTS128TDD_RAT_Capability>\n", "uMTS128TDD_RAT_Capability>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_uMTS128TDD__RAT__Capability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_uMTS128TDD__RAT__Capability_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.uMTS128TDD_RAT_Capability", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_uMTS128TDD__RAT__Capability_xer_, &BITSTRING_json_, &MS__Clsmk3_uMTS128TDD__RAT__Capability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_gERANFeatPack1_xer_ = { {"gERANFeatPack1>\n", "gERANFeatPack1>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_gERANFeatPack1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_gERANFeatPack1_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.gERANFeatPack1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_gERANFeatPack1_xer_, &BITSTRING_json_, &MS__Clsmk3_gERANFeatPack1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_mask14_xer_ = { {"mask14>\n", "mask14>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_mask14_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_mask14_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.mask14", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_mask14_xer_, &BITSTRING_json_, &MS__Clsmk3_mask14_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_extDTM__GPRS__MultiSlotSubclass_xer_ = { {"extDTM_GPRS_MultiSlotSubclass>\n", "extDTM_GPRS_MultiSlotSubclass>\n"}, {31, 31}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_extDTM__GPRS__MultiSlotSubclass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_extDTM__GPRS__MultiSlotSubclass_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.extDTM_GPRS_MultiSlotSubclass", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_extDTM__GPRS__MultiSlotSubclass_xer_, &BITSTRING_json_, &MS__Clsmk3_extDTM__GPRS__MultiSlotSubclass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_etxDTM__EGPRS__MultiSlotSubclass_xer_ = { {"etxDTM_EGPRS_MultiSlotSubclass>\n", "etxDTM_EGPRS_MultiSlotSubclass>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_etxDTM__EGPRS__MultiSlotSubclass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_etxDTM__EGPRS__MultiSlotSubclass_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.etxDTM_EGPRS_MultiSlotSubclass", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_etxDTM__EGPRS__MultiSlotSubclass_xer_, &BITSTRING_json_, &MS__Clsmk3_etxDTM__EGPRS__MultiSlotSubclass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_mask15_xer_ = { {"mask15>\n", "mask15>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_mask15_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_mask15_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.mask15", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_mask15_xer_, &BITSTRING_json_, &MS__Clsmk3_mask15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_highMultislotCap_xer_ = { {"highMultislotCap>\n", "highMultislotCap>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_highMultislotCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_highMultislotCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.highMultislotCap", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_highMultislotCap_xer_, &BITSTRING_json_, &MS__Clsmk3_highMultislotCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_spare2_xer_ = { {"spare2>\n", "spare2>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_spare2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_spare2_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.spare2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_spare2_xer_, &BITSTRING_json_, &MS__Clsmk3_spare2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_gERANFeatPack2_xer_ = { {"gERANFeatPack2>\n", "gERANFeatPack2>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_gERANFeatPack2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_gERANFeatPack2_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.gERANFeatPack2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_gERANFeatPack2_xer_, &BITSTRING_json_, &MS__Clsmk3_gERANFeatPack2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_gMSKMultislotPowerProfile_xer_ = { {"gMSKMultislotPowerProfile>\n", "gMSKMultislotPowerProfile>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_gMSKMultislotPowerProfile_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_gMSKMultislotPowerProfile_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.gMSKMultislotPowerProfile", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_gMSKMultislotPowerProfile_xer_, &BITSTRING_json_, &MS__Clsmk3_gMSKMultislotPowerProfile_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_pSKMultislotPowerProfile_xer_ = { {"pSKMultislotPowerProfile>\n", "pSKMultislotPowerProfile>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_pSKMultislotPowerProfile_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_pSKMultislotPowerProfile_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.pSKMultislotPowerProfile", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_pSKMultislotPowerProfile_xer_, &BITSTRING_json_, &MS__Clsmk3_pSKMultislotPowerProfile_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_mask17_xer_ = { {"mask17>\n", "mask17>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_mask17_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_mask17_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.mask17", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_mask17_xer_, &BITSTRING_json_, &MS__Clsmk3_mask17_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_tGSM400BandsSupported_xer_ = { {"tGSM400BandsSupported>\n", "tGSM400BandsSupported>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_tGSM400BandsSupported_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_tGSM400BandsSupported_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.tGSM400BandsSupported", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_tGSM400BandsSupported_xer_, &BITSTRING_json_, &MS__Clsmk3_tGSM400BandsSupported_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_tGSM400AssocRadioCap_xer_ = { {"tGSM400AssocRadioCap>\n", "tGSM400AssocRadioCap>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_tGSM400AssocRadioCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_tGSM400AssocRadioCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.tGSM400AssocRadioCap", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_tGSM400AssocRadioCap_xer_, &BITSTRING_json_, &MS__Clsmk3_tGSM400AssocRadioCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_spare_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_spare_xer_, &BITSTRING_json_, &MS__Clsmk3_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_dlAdvancedRxPerf_xer_ = { {"dlAdvancedRxPerf>\n", "dlAdvancedRxPerf>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_dlAdvancedRxPerf_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_dlAdvancedRxPerf_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.dlAdvancedRxPerf", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_dlAdvancedRxPerf_xer_, &BITSTRING_json_, &MS__Clsmk3_dlAdvancedRxPerf_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_dTMEhancCap_xer_ = { {"dTMEhancCap>\n", "dTMEhancCap>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_dTMEhancCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_dTMEhancCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.dTMEhancCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_dTMEhancCap_xer_, &BITSTRING_json_, &MS__Clsmk3_dTMEhancCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_mask19_xer_ = { {"mask19>\n", "mask19>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_mask19_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_mask19_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.mask19", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_mask19_xer_, &BITSTRING_json_, &MS__Clsmk3_mask19_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_dTMGPRSHighMultislotClass_xer_ = { {"dTMGPRSHighMultislotClass>\n", "dTMGPRSHighMultislotClass>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_dTMGPRSHighMultislotClass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_dTMGPRSHighMultislotClass_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.dTMGPRSHighMultislotClass", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &MS__Clsmk3_dTMGPRSHighMultislotClass_xer_, &BITSTRING_json_, &MS__Clsmk3_dTMGPRSHighMultislotClass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_offsetReq_xer_ = { {"offsetReq>\n", "offsetReq>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_offsetReq_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_offsetReq_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.offsetReq", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_offsetReq_xer_, &BITSTRING_json_, &MS__Clsmk3_offsetReq_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_mask20_xer_ = { {"mask20>\n", "mask20>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_mask20_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_mask20_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.mask20", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_mask20_xer_, &BITSTRING_json_, &MS__Clsmk3_mask20_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_dTMEGPRSHighMultislotClass_xer_ = { {"dTMEGPRSHighMultislotClass>\n", "dTMEGPRSHighMultislotClass>\n"}, {28, 28}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_dTMEGPRSHighMultislotClass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_dTMEGPRSHighMultislotClass_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.dTMEGPRSHighMultislotClass", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &MS__Clsmk3_dTMEGPRSHighMultislotClass_xer_, &BITSTRING_json_, &MS__Clsmk3_dTMEGPRSHighMultislotClass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_rptdACCHCap_xer_ = { {"rptdACCHCap>\n", "rptdACCHCap>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_rptdACCHCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_rptdACCHCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.rptdACCHCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_rptdACCHCap_xer_, &BITSTRING_json_, &MS__Clsmk3_rptdACCHCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_mask21_xer_ = { {"mask21>\n", "mask21>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_mask21_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_mask21_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.mask21", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_mask21_xer_, &BITSTRING_json_, &MS__Clsmk3_mask21_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_gsm710AssocRadioCap_xer_ = { {"gsm710AssocRadioCap>\n", "gsm710AssocRadioCap>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_gsm710AssocRadioCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_gsm710AssocRadioCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.gsm710AssocRadioCap", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_gsm710AssocRadioCap_xer_, &BITSTRING_json_, &MS__Clsmk3_gsm710AssocRadioCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_mask22_xer_ = { {"mask22>\n", "mask22>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_mask22_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_mask22_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.mask22", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_mask22_xer_, &BITSTRING_json_, &MS__Clsmk3_mask22_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_tgsm810AssocRadioCap_xer_ = { {"tgsm810AssocRadioCap>\n", "tgsm810AssocRadioCap>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_tgsm810AssocRadioCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_tgsm810AssocRadioCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.tgsm810AssocRadioCap", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MS__Clsmk3_tgsm810AssocRadioCap_xer_, &BITSTRING_json_, &MS__Clsmk3_tgsm810AssocRadioCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_cipheringModeSettingCap_xer_ = { {"cipheringModeSettingCap>\n", "cipheringModeSettingCap>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_cipheringModeSettingCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_cipheringModeSettingCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.cipheringModeSettingCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_cipheringModeSettingCap_xer_, &BITSTRING_json_, &MS__Clsmk3_cipheringModeSettingCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_addPositionCap_xer_ = { {"addPositionCap>\n", "addPositionCap>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_addPositionCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_addPositionCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.addPositionCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_addPositionCap_xer_, &BITSTRING_json_, &MS__Clsmk3_addPositionCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_eutraFDDSupport_xer_ = { {"eutraFDDSupport>\n", "eutraFDDSupport>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_eutraFDDSupport_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_eutraFDDSupport_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.eutraFDDSupport", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_eutraFDDSupport_xer_, &BITSTRING_json_, &MS__Clsmk3_eutraFDDSupport_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_eutraTDDSupport_xer_ = { {"eutraTDDSupport>\n", "eutraTDDSupport>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_eutraTDDSupport_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_eutraTDDSupport_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.eutraTDDSupport", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_eutraTDDSupport_xer_, &BITSTRING_json_, &MS__Clsmk3_eutraTDDSupport_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_eutraMeasAndReporting_xer_ = { {"eutraMeasAndReporting>\n", "eutraMeasAndReporting>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_eutraMeasAndReporting_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_eutraMeasAndReporting_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.eutraMeasAndReporting", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_eutraMeasAndReporting_xer_, &BITSTRING_json_, &MS__Clsmk3_eutraMeasAndReporting_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_priorityBasedReselection_xer_ = { {"priorityBasedReselection>\n", "priorityBasedReselection>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_priorityBasedReselection_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_priorityBasedReselection_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.priorityBasedReselection", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_priorityBasedReselection_xer_, &BITSTRING_json_, &MS__Clsmk3_priorityBasedReselection_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_utraCSGCellsReporting_xer_ = { {"utraCSGCellsReporting>\n", "utraCSGCellsReporting>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_utraCSGCellsReporting_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_utraCSGCellsReporting_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.utraCSGCellsReporting", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_utraCSGCellsReporting_xer_, &BITSTRING_json_, &MS__Clsmk3_utraCSGCellsReporting_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_vamosLevel_xer_ = { {"vamosLevel>\n", "vamosLevel>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_vamosLevel_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_vamosLevel_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.vamosLevel", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_vamosLevel_xer_, &BITSTRING_json_, &MS__Clsmk3_vamosLevel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_tighterCap_xer_ = { {"tighterCap>\n", "tighterCap>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_tighterCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_tighterCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.tighterCap", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_tighterCap_xer_, &BITSTRING_json_, &MS__Clsmk3_tighterCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_selectCipheringDLSACCH_xer_ = { {"selectCipheringDLSACCH>\n", "selectCipheringDLSACCH>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_selectCipheringDLSACCH_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_selectCipheringDLSACCH_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.selectCipheringDLSACCH", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_selectCipheringDLSACCH_xer_, &BITSTRING_json_, &MS__Clsmk3_selectCipheringDLSACCH_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_csPS__SRVCC__G2U_xer_ = { {"csPS_SRVCC_G2U>\n", "csPS_SRVCC_G2U>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_csPS__SRVCC__G2U_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_csPS__SRVCC__G2U_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.csPS_SRVCC_G2U", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_csPS__SRVCC__G2U_xer_, &BITSTRING_json_, &MS__Clsmk3_csPS__SRVCC__G2U_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_csPS__SRVCC__G2E_xer_ = { {"csPS_SRVCC_G2E>\n", "csPS_SRVCC_G2E>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_csPS__SRVCC__G2E_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_csPS__SRVCC__G2E_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.csPS_SRVCC_G2E", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__Clsmk3_csPS__SRVCC__G2E_xer_, &BITSTRING_json_, &MS__Clsmk3_csPS__SRVCC__G2E_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_geranNwkSharing_xer_ = { {"geranNwkSharing>\n", "geranNwkSharing>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_geranNwkSharing_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_geranNwkSharing_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.geranNwkSharing", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_geranNwkSharing_xer_, &BITSTRING_json_, &MS__Clsmk3_geranNwkSharing_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_eutraWidebandRSRQMeas_xer_ = { {"eutraWidebandRSRQMeas>\n", "eutraWidebandRSRQMeas>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_eutraWidebandRSRQMeas_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_eutraWidebandRSRQMeas_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.eutraWidebandRSRQMeas", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_eutraWidebandRSRQMeas_xer_, &BITSTRING_json_, &MS__Clsmk3_eutraWidebandRSRQMeas_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_erBandSupport_xer_ = { {"erBandSupport>\n", "erBandSupport>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_erBandSupport_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_erBandSupport_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.erBandSupport", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_erBandSupport_xer_, &BITSTRING_json_, &MS__Clsmk3_erBandSupport_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_utraMultipleFreqBandInd_xer_ = { {"utraMultipleFreqBandInd>\n", "utraMultipleFreqBandInd>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_utraMultipleFreqBandInd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_utraMultipleFreqBandInd_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.utraMultipleFreqBandInd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_utraMultipleFreqBandInd_xer_, &BITSTRING_json_, &MS__Clsmk3_utraMultipleFreqBandInd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_eutraMultipleFreqBandInd_xer_ = { {"eutraMultipleFreqBandInd>\n", "eutraMultipleFreqBandInd>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_eutraMultipleFreqBandInd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_eutraMultipleFreqBandInd_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.eutraMultipleFreqBandInd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_eutraMultipleFreqBandInd_xer_, &BITSTRING_json_, &MS__Clsmk3_eutraMultipleFreqBandInd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_xtdTSCSetCap_xer_ = { {"xtdTSCSetCap>\n", "xtdTSCSetCap>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_xtdTSCSetCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_xtdTSCSetCap_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.xtdTSCSetCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_xtdTSCSetCap_xer_, &BITSTRING_json_, &MS__Clsmk3_xtdTSCSetCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_xtdEARFCNValueRange_xer_ = { {"xtdEARFCNValueRange>\n", "xtdEARFCNValueRange>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_xtdEARFCNValueRange_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_xtdEARFCNValueRange_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.xtdEARFCNValueRange", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__Clsmk3_xtdEARFCNValueRange_xer_, &BITSTRING_json_, &MS__Clsmk3_xtdEARFCNValueRange_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__Clsmk3_spareBits2_xer_ = { {"spareBits2>\n", "spareBits2>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__Clsmk3_spareBits2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__Clsmk3_spareBits2_descr_ = { "@NAS_CommonTypeDefs.MS_Clsmk3.spareBits2", &BITSTRING_ber_, &BITSTRING_raw_, NULL, &MS__Clsmk3_spareBits2_xer_, &BITSTRING_json_, &MS__Clsmk3_spareBits2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MS__NetworkCap_iel_oer_ext_arr_[0] = {}; +const int MS__NetworkCap_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MS__NetworkCap_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MS__NetworkCap_iel_oer_ext_arr_, 0, MS__NetworkCap_iel_oer_p_}; +const TTCN_Typedescriptor_t MS__NetworkCap_iel_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MS__NetworkCap_iel_xer_, &OCTETSTRING_json_, &MS__NetworkCap_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gea1_xer_ = { {"gea1>\n", "gea1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gea1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gea1_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gea1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gea1_xer_, &BITSTRING_json_, &MS__NetworkCap_gea1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_smCapDedicated_xer_ = { {"smCapDedicated>\n", "smCapDedicated>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_smCapDedicated_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_smCapDedicated_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.smCapDedicated", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_smCapDedicated_xer_, &BITSTRING_json_, &MS__NetworkCap_smCapDedicated_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_smCapGPRS_xer_ = { {"smCapGPRS>\n", "smCapGPRS>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_smCapGPRS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_smCapGPRS_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.smCapGPRS", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_smCapGPRS_xer_, &BITSTRING_json_, &MS__NetworkCap_smCapGPRS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_ucs2_xer_ = { {"ucs2>\n", "ucs2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_ucs2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_ucs2_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.ucs2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_ucs2_xer_, &BITSTRING_json_, &MS__NetworkCap_ucs2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_ssScreeningIndicator_xer_ = { {"ssScreeningIndicator>\n", "ssScreeningIndicator>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_ssScreeningIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_ssScreeningIndicator_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.ssScreeningIndicator", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MS__NetworkCap_ssScreeningIndicator_xer_, &BITSTRING_json_, &MS__NetworkCap_ssScreeningIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_soLSACap_xer_ = { {"soLSACap>\n", "soLSACap>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_soLSACap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_soLSACap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.soLSACap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_soLSACap_xer_, &BITSTRING_json_, &MS__NetworkCap_soLSACap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_revLevelIndicator_xer_ = { {"revLevelIndicator>\n", "revLevelIndicator>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_revLevelIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_revLevelIndicator_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.revLevelIndicator", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_revLevelIndicator_xer_, &BITSTRING_json_, &MS__NetworkCap_revLevelIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_pfcFeatureMode_xer_ = { {"pfcFeatureMode>\n", "pfcFeatureMode>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_pfcFeatureMode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_pfcFeatureMode_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.pfcFeatureMode", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_pfcFeatureMode_xer_, &BITSTRING_json_, &MS__NetworkCap_pfcFeatureMode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gea2_xer_ = { {"gea2>\n", "gea2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gea2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gea2_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gea2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gea2_xer_, &BITSTRING_json_, &MS__NetworkCap_gea2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gea3_xer_ = { {"gea3>\n", "gea3>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gea3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gea3_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gea3", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gea3_xer_, &BITSTRING_json_, &MS__NetworkCap_gea3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gea4_xer_ = { {"gea4>\n", "gea4>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gea4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gea4_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gea4", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gea4_xer_, &BITSTRING_json_, &MS__NetworkCap_gea4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gea5_xer_ = { {"gea5>\n", "gea5>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gea5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gea5_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gea5", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gea5_xer_, &BITSTRING_json_, &MS__NetworkCap_gea5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gea6_xer_ = { {"gea6>\n", "gea6>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gea6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gea6_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gea6", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gea6_xer_, &BITSTRING_json_, &MS__NetworkCap_gea6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gea7_xer_ = { {"gea7>\n", "gea7>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gea7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gea7_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gea7", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gea7_xer_, &BITSTRING_json_, &MS__NetworkCap_gea7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MS__NetworkCap +const TTCN_Typedescriptor_t MS__NetworkCap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MS__NetworkCap_iei_oer_ext_arr_[0] = {}; +const int MS__NetworkCap_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MS__NetworkCap_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MS__NetworkCap_iei_oer_ext_arr_, 0, MS__NetworkCap_iei_oer_p_}; +const TTCN_Typedescriptor_t MS__NetworkCap_iei_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MS__NetworkCap_iei_xer_, &OCTETSTRING_json_, &MS__NetworkCap_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_lcsVACap_xer_ = { {"lcsVACap>\n", "lcsVACap>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_lcsVACap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_lcsVACap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.lcsVACap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_lcsVACap_xer_, &BITSTRING_json_, &MS__NetworkCap_lcsVACap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_psHOtoUTRAN__IuModeCap_xer_ = { {"psHOtoUTRAN_IuModeCap>\n", "psHOtoUTRAN_IuModeCap>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_psHOtoUTRAN__IuModeCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_psHOtoUTRAN__IuModeCap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.psHOtoUTRAN_IuModeCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_psHOtoUTRAN__IuModeCap_xer_, &BITSTRING_json_, &MS__NetworkCap_psHOtoUTRAN__IuModeCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_psHOtoEUTRAN__S1ModeCap_xer_ = { {"psHOtoEUTRAN_S1ModeCap>\n", "psHOtoEUTRAN_S1ModeCap>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_psHOtoEUTRAN__S1ModeCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_psHOtoEUTRAN__S1ModeCap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.psHOtoEUTRAN_S1ModeCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_psHOtoEUTRAN__S1ModeCap_xer_, &BITSTRING_json_, &MS__NetworkCap_psHOtoEUTRAN__S1ModeCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_emmCombinedCap_xer_ = { {"emmCombinedCap>\n", "emmCombinedCap>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_emmCombinedCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_emmCombinedCap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.emmCombinedCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_emmCombinedCap_xer_, &BITSTRING_json_, &MS__NetworkCap_emmCombinedCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_isrSupport_xer_ = { {"isrSupport>\n", "isrSupport>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_isrSupport_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_isrSupport_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.isrSupport", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_isrSupport_xer_, &BITSTRING_json_, &MS__NetworkCap_isrSupport_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_srvccToGERAN__UTRANCap_xer_ = { {"srvccToGERAN_UTRANCap>\n", "srvccToGERAN_UTRANCap>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_srvccToGERAN__UTRANCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_srvccToGERAN__UTRANCap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.srvccToGERAN_UTRANCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_srvccToGERAN__UTRANCap_xer_, &BITSTRING_json_, &MS__NetworkCap_srvccToGERAN__UTRANCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_epcCap_xer_ = { {"epcCap>\n", "epcCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_epcCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_epcCap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.epcCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_epcCap_xer_, &BITSTRING_json_, &MS__NetworkCap_epcCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_nfCap_xer_ = { {"nfCap>\n", "nfCap>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_nfCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_nfCap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.nfCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_nfCap_xer_, &BITSTRING_json_, &MS__NetworkCap_nfCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gERANNtwkShareCap_xer_ = { {"gERANNtwkShareCap>\n", "gERANNtwkShareCap>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gERANNtwkShareCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gERANNtwkShareCap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gERANNtwkShareCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gERANNtwkShareCap_xer_, &BITSTRING_json_, &MS__NetworkCap_gERANNtwkShareCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_userPlaneIntegrityProtSupport_xer_ = { {"userPlaneIntegrityProtSupport>\n", "userPlaneIntegrityProtSupport>\n"}, {31, 31}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_userPlaneIntegrityProtSupport_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_userPlaneIntegrityProtSupport_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.userPlaneIntegrityProtSupport", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_userPlaneIntegrityProtSupport_xer_, &BITSTRING_json_, &MS__NetworkCap_userPlaneIntegrityProtSupport_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gia4_xer_ = { {"gia4>\n", "gia4>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gia4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gia4_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gia4", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gia4_xer_, &BITSTRING_json_, &MS__NetworkCap_gia4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gia5_xer_ = { {"gia5>\n", "gia5>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gia5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gia5_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gia5", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gia5_xer_, &BITSTRING_json_, &MS__NetworkCap_gia5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gia6_xer_ = { {"gia6>\n", "gia6>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gia6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gia6_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gia6", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gia6_xer_, &BITSTRING_json_, &MS__NetworkCap_gia6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_gia7_xer_ = { {"gia7>\n", "gia7>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_gia7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_gia7_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.gia7", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_gia7_xer_, &BITSTRING_json_, &MS__NetworkCap_gia7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_ePCOInd_xer_ = { {"ePCOInd>\n", "ePCOInd>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_ePCOInd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_ePCOInd_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.ePCOInd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_ePCOInd_xer_, &BITSTRING_json_, &MS__NetworkCap_ePCOInd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_restrictEnhancedCoverageCap_xer_ = { {"restrictEnhancedCoverageCap>\n", "restrictEnhancedCoverageCap>\n"}, {29, 29}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_restrictEnhancedCoverageCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_restrictEnhancedCoverageCap_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.restrictEnhancedCoverageCap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_restrictEnhancedCoverageCap_xer_, &BITSTRING_json_, &MS__NetworkCap_restrictEnhancedCoverageCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_dualConnectivityEUTRA__NR_xer_ = { {"dualConnectivityEUTRA_NR>\n", "dualConnectivityEUTRA_NR>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_dualConnectivityEUTRA__NR_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_dualConnectivityEUTRA__NR_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.dualConnectivityEUTRA_NR", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkCap_dualConnectivityEUTRA__NR_xer_, &BITSTRING_json_, &MS__NetworkCap_dualConnectivityEUTRA__NR_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkCap_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkCap_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkCap_spareBits_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkCap.spareBits", &BITSTRING_ber_, &BITSTRING_raw_, NULL, &MS__NetworkCap_spareBits_xer_, &BITSTRING_json_, &MS__NetworkCap_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Non3GPP__NW__ProvidedPolicies_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t Non3GPP__NW__ProvidedPolicies_iei_descr_ = { "@NAS_CommonTypeDefs.Non3GPP_NW_ProvidedPolicies.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &Non3GPP__NW__ProvidedPolicies_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Non3GPP__NW__ProvidedPolicies_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Non3GPP__NW__ProvidedPolicies_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Non3GPP__NW__ProvidedPolicies_spareBits_descr_ = { "@NAS_CommonTypeDefs.Non3GPP_NW_ProvidedPolicies.spareBits", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &Non3GPP__NW__ProvidedPolicies_spareBits_xer_, &BITSTRING_json_, &Non3GPP__NW__ProvidedPolicies_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Non3GPP__NW__ProvidedPolicies_n3ENInd_xer_ = { {"n3ENInd>\n", "n3ENInd>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Non3GPP__NW__ProvidedPolicies_n3ENInd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Non3GPP__NW__ProvidedPolicies_n3ENInd_descr_ = { "@NAS_CommonTypeDefs.Non3GPP_NW_ProvidedPolicies.n3ENInd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &Non3GPP__NW__ProvidedPolicies_n3ENInd_xer_, &BITSTRING_json_, &Non3GPP__NW__ProvidedPolicies_n3ENInd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Non3GPP__NW__ProvidedPolicies +const TTCN_Typedescriptor_t Non3GPP__NW__ProvidedPolicies_descr_ = { "@NAS_CommonTypeDefs.Non3GPP_NW_ProvidedPolicies", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NwkResourceId_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NwkResourceId_iei_oer_ext_arr_[0] = {}; +const int NwkResourceId_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NwkResourceId_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NwkResourceId_iei_oer_ext_arr_, 0, NwkResourceId_iei_oer_p_}; +const TTCN_Typedescriptor_t NwkResourceId_iei_descr_ = { "@NAS_CommonTypeDefs.NwkResourceId.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NwkResourceId_iei_xer_, &OCTETSTRING_json_, &NwkResourceId_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NwkResourceId_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NwkResourceId_iel_oer_ext_arr_[0] = {}; +const int NwkResourceId_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NwkResourceId_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NwkResourceId_iel_oer_ext_arr_, 0, NwkResourceId_iel_oer_p_}; +const TTCN_Typedescriptor_t NwkResourceId_iel_descr_ = { "@NAS_CommonTypeDefs.NwkResourceId.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NwkResourceId_iel_xer_, &OCTETSTRING_json_, &NwkResourceId_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NwkResourceId_nriContainerValue_xer_ = { {"nriContainerValue>\n", "nriContainerValue>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NwkResourceId_nriContainerValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NwkResourceId_nriContainerValue_descr_ = { "@NAS_CommonTypeDefs.NwkResourceId.nriContainerValue", &BITSTRING_ber_, &CommonDefs::B10__Type_raw_, NULL, &NwkResourceId_nriContainerValue_xer_, &BITSTRING_json_, &NwkResourceId_nriContainerValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NwkResourceId_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NwkResourceId_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NwkResourceId_spareBits_descr_ = { "@NAS_CommonTypeDefs.NwkResourceId.spareBits", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &NwkResourceId_spareBits_xer_, &BITSTRING_json_, &NwkResourceId_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NwkResourceId +const TTCN_Typedescriptor_t NwkResourceId_descr_ = { "@NAS_CommonTypeDefs.NwkResourceId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFlowIdentifier_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFlowIdentifier_iei_oer_ext_arr_[0] = {}; +const int PacketFlowIdentifier_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFlowIdentifier_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PacketFlowIdentifier_iei_oer_ext_arr_, 0, PacketFlowIdentifier_iei_oer_p_}; +const TTCN_Typedescriptor_t PacketFlowIdentifier_iei_descr_ = { "@NAS_CommonTypeDefs.PacketFlowIdentifier.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PacketFlowIdentifier_iei_xer_, &OCTETSTRING_json_, &PacketFlowIdentifier_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFlowIdentifier_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFlowIdentifier_iel_oer_ext_arr_[0] = {}; +const int PacketFlowIdentifier_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFlowIdentifier_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PacketFlowIdentifier_iel_oer_ext_arr_, 0, PacketFlowIdentifier_iel_oer_p_}; +const TTCN_Typedescriptor_t PacketFlowIdentifier_iel_descr_ = { "@NAS_CommonTypeDefs.PacketFlowIdentifier.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PacketFlowIdentifier_iel_xer_, &OCTETSTRING_json_, &PacketFlowIdentifier_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFlowIdentifier_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PacketFlowIdentifier_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PacketFlowIdentifier_spare_descr_ = { "@NAS_CommonTypeDefs.PacketFlowIdentifier.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &PacketFlowIdentifier_spare_xer_, &BITSTRING_json_, &PacketFlowIdentifier_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFlowIdentifier_idValue_xer_ = { {"idValue>\n", "idValue>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PacketFlowIdentifier_idValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PacketFlowIdentifier_idValue_descr_ = { "@NAS_CommonTypeDefs.PacketFlowIdentifier.idValue", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &PacketFlowIdentifier_idValue_xer_, &BITSTRING_json_, &PacketFlowIdentifier_idValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PacketFlowIdentifier +const TTCN_Typedescriptor_t PacketFlowIdentifier_descr_ = { "@NAS_CommonTypeDefs.PacketFlowIdentifier", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PLMN__IdIE_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PLMN__IdIE_iei_oer_ext_arr_[0] = {}; +const int PLMN__IdIE_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PLMN__IdIE_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PLMN__IdIE_iei_oer_ext_arr_, 0, PLMN__IdIE_iei_oer_p_}; +const TTCN_Typedescriptor_t PLMN__IdIE_iei_descr_ = { "@NAS_CommonTypeDefs.PLMN_IdIE.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PLMN__IdIE_iei_xer_, &OCTETSTRING_json_, &PLMN__IdIE_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PLMN__IdIE_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PLMN__IdIE_iel_oer_ext_arr_[0] = {}; +const int PLMN__IdIE_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PLMN__IdIE_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PLMN__IdIE_iel_oer_ext_arr_, 0, PLMN__IdIE_iel_oer_p_}; +const TTCN_Typedescriptor_t PLMN__IdIE_iel_descr_ = { "@NAS_CommonTypeDefs.PLMN_IdIE.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PLMN__IdIE_iel_xer_, &OCTETSTRING_json_, &PLMN__IdIE_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PLMN__IdIE_plmn_xer_ = { {"plmn>\n", "plmn>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PLMN__IdIE_plmn_oer_ext_arr_[0] = {}; +const int PLMN__IdIE_plmn_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PLMN__IdIE_plmn_oer_ = { -1, TRUE, 3, FALSE, 0, 0, PLMN__IdIE_plmn_oer_ext_arr_, 0, PLMN__IdIE_plmn_oer_p_}; +const TTCN_Typedescriptor_t PLMN__IdIE_plmn_descr_ = { "@NAS_CommonTypeDefs.PLMN_IdIE.plmn", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &PLMN__IdIE_plmn_xer_, &OCTETSTRING_json_, &PLMN__IdIE_plmn_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PLMN__IdIE +const TTCN_Typedescriptor_t PLMN__IdIE_descr_ = { "@NAS_CommonTypeDefs.PLMN_IdIE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PLMN__List_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PLMN__List_iei_oer_ext_arr_[0] = {}; +const int PLMN__List_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PLMN__List_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PLMN__List_iei_oer_ext_arr_, 0, PLMN__List_iei_oer_p_}; +const TTCN_Typedescriptor_t PLMN__List_iei_descr_ = { "@NAS_CommonTypeDefs.PLMN_List.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PLMN__List_iei_xer_, &OCTETSTRING_json_, &PLMN__List_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PLMN__List_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PLMN__List_iel_oer_ext_arr_[0] = {}; +const int PLMN__List_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PLMN__List_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PLMN__List_iel_oer_ext_arr_, 0, PLMN__List_iel_oer_p_}; +const TTCN_Typedescriptor_t PLMN__List_iel_descr_ = { "@NAS_CommonTypeDefs.PLMN_List.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PLMN__List_iel_xer_, &OCTETSTRING_json_, &PLMN__List_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PLMN__List_plmnList +const TTCN_Typedescriptor_t PLMN__List_plmnList_descr_ = { "@NAS_CommonTypeDefs.PLMN_List.plmnList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NAS__PlmnId_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PLMN__List_plmnList_0_xer_ = { {"NAS_PlmnId>\n", "NAS_PlmnId>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PLMN__List_plmnList_0_oer_ext_arr_[0] = {}; +const int PLMN__List_plmnList_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PLMN__List_plmnList_0_oer_ = { -1, TRUE, 3, FALSE, 0, 0, PLMN__List_plmnList_0_oer_ext_arr_, 0, PLMN__List_plmnList_0_oer_p_}; +const TTCN_Typedescriptor_t PLMN__List_plmnList_0_descr_ = { "@NAS_CommonTypeDefs.PLMN_List.plmnList.", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &PLMN__List_plmnList_0_xer_, &OCTETSTRING_json_, &PLMN__List_plmnList_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PLMN__List +const TTCN_Typedescriptor_t PLMN__List_descr_ = { "@NAS_CommonTypeDefs.PLMN_List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkFeatureSupport_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t MS__NetworkFeatureSupport_iei_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkFeatureSupport.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &MS__NetworkFeatureSupport_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkFeatureSupport_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkFeatureSupport_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkFeatureSupport_spare_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkFeatureSupport.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &MS__NetworkFeatureSupport_spare_xer_, &BITSTRING_json_, &MS__NetworkFeatureSupport_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MS__NetworkFeatureSupport_extdPeriodicTimers_xer_ = { {"extdPeriodicTimers>\n", "extdPeriodicTimers>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MS__NetworkFeatureSupport_extdPeriodicTimers_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MS__NetworkFeatureSupport_extdPeriodicTimers_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkFeatureSupport.extdPeriodicTimers", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MS__NetworkFeatureSupport_extdPeriodicTimers_xer_, &BITSTRING_json_, &MS__NetworkFeatureSupport_extdPeriodicTimers_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MS__NetworkFeatureSupport +const TTCN_Typedescriptor_t MS__NetworkFeatureSupport_descr_ = { "@NAS_CommonTypeDefs.MS_NetworkFeatureSupport", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& NAS__PlmnIdList__Type_descr_ = PLMN__List_plmnList_descr_; +const XERdescriptor_t ProtocolConfigOptions_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProtocolConfigOptions_iei_oer_ext_arr_[0] = {}; +const int ProtocolConfigOptions_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProtocolConfigOptions_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ProtocolConfigOptions_iei_oer_ext_arr_, 0, ProtocolConfigOptions_iei_oer_p_}; +const TTCN_Typedescriptor_t ProtocolConfigOptions_iei_descr_ = { "@NAS_CommonTypeDefs.ProtocolConfigOptions.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ProtocolConfigOptions_iei_xer_, &OCTETSTRING_json_, &ProtocolConfigOptions_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProtocolConfigOptions_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProtocolConfigOptions_iel_oer_ext_arr_[0] = {}; +const int ProtocolConfigOptions_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProtocolConfigOptions_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ProtocolConfigOptions_iel_oer_ext_arr_, 0, ProtocolConfigOptions_iel_oer_p_}; +const TTCN_Typedescriptor_t ProtocolConfigOptions_iel_descr_ = { "@NAS_CommonTypeDefs.ProtocolConfigOptions.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ProtocolConfigOptions_iel_xer_, &OCTETSTRING_json_, &ProtocolConfigOptions_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProtocolConfigOptions_ext_xer_ = { {"ext>\n", "ext>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProtocolConfigOptions_ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProtocolConfigOptions_ext_descr_ = { "@NAS_CommonTypeDefs.ProtocolConfigOptions.ext", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ProtocolConfigOptions_ext_xer_, &BITSTRING_json_, &ProtocolConfigOptions_ext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProtocolConfigOptions_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProtocolConfigOptions_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProtocolConfigOptions_spare_descr_ = { "@NAS_CommonTypeDefs.ProtocolConfigOptions.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ProtocolConfigOptions_spare_xer_, &BITSTRING_json_, &ProtocolConfigOptions_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProtocolConfigOptions_configProtocol_xer_ = { {"configProtocol>\n", "configProtocol>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ProtocolConfigOptions_configProtocol_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ProtocolConfigOptions_configProtocol_descr_ = { "@NAS_CommonTypeDefs.ProtocolConfigOptions.configProtocol", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &ProtocolConfigOptions_configProtocol_xer_, &BITSTRING_json_, &ProtocolConfigOptions_configProtocol_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProtocolConfigOptions +const TTCN_Typedescriptor_t ProtocolConfigOptions_descr_ = { "@NAS_CommonTypeDefs.ProtocolConfigOptions", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProtocolConfigOptions_pco +const TTCN_Typedescriptor_t ProtocolConfigOptions_pco_descr_ = { "@NAS_CommonTypeDefs.ProtocolConfigOptions.pco", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &ProtocolContainer_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProtocolContainer_protocolID_xer_ = { {"protocolID>\n", "protocolID>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProtocolContainer_protocolID_oer_ext_arr_[0] = {}; +const int ProtocolContainer_protocolID_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProtocolContainer_protocolID_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ProtocolContainer_protocolID_oer_ext_arr_, 0, ProtocolContainer_protocolID_oer_p_}; +const TTCN_Typedescriptor_t ProtocolContainer_protocolID_descr_ = { "@NAS_CommonTypeDefs.ProtocolContainer.protocolID", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ProtocolContainer_protocolID_xer_, &OCTETSTRING_json_, &ProtocolContainer_protocolID_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ProtocolContainer +const TTCN_Typedescriptor_t ProtocolContainer_descr_ = { "@NAS_CommonTypeDefs.ProtocolContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProtocolContainer_protocolLength_xer_ = { {"protocolLength>\n", "protocolLength>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProtocolContainer_protocolLength_oer_ext_arr_[0] = {}; +const int ProtocolContainer_protocolLength_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProtocolContainer_protocolLength_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ProtocolContainer_protocolLength_oer_ext_arr_, 0, ProtocolContainer_protocolLength_oer_p_}; +const TTCN_Typedescriptor_t ProtocolContainer_protocolLength_descr_ = { "@NAS_CommonTypeDefs.ProtocolContainer.protocolLength", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ProtocolContainer_protocolLength_xer_, &OCTETSTRING_json_, &ProtocolContainer_protocolLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProtocolContainer_protocolLongLength_xer_ = { {"protocolLongLength>\n", "protocolLongLength>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProtocolContainer_protocolLongLength_oer_ext_arr_[0] = {}; +const int ProtocolContainer_protocolLongLength_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProtocolContainer_protocolLongLength_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ProtocolContainer_protocolLongLength_oer_ext_arr_, 0, ProtocolContainer_protocolLongLength_oer_p_}; +const TTCN_Typedescriptor_t ProtocolContainer_protocolLongLength_descr_ = { "@NAS_CommonTypeDefs.ProtocolContainer.protocolLongLength", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ProtocolContainer_protocolLongLength_xer_, &OCTETSTRING_json_, &ProtocolContainer_protocolLongLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ProtocolContainer_content_xer_ = { {"content>\n", "content>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ProtocolContainer_content_oer_ext_arr_[0] = {}; +const int ProtocolContainer_content_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ProtocolContainer_content_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ProtocolContainer_content_oer_ext_arr_, 0, ProtocolContainer_content_oer_p_}; +const TTCN_Typedescriptor_t ProtocolContainer_content_descr_ = { "@NAS_CommonTypeDefs.ProtocolContainer.content", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ProtocolContainer_content_xer_, &OCTETSTRING_json_, &ProtocolContainer_content_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& NAS__ProtocolConfigOptions__Type_descr_ = ProtocolConfigOptions_pco_descr_; +const XERdescriptor_t APNRateControlParams_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t APNRateControlParams_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t APNRateControlParams_spare_descr_ = { "@NAS_CommonTypeDefs.APNRateControlParams.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &APNRateControlParams_spare_xer_, &BITSTRING_json_, &APNRateControlParams_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APNRateControlParams_aer_xer_ = { {"aer>\n", "aer>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t APNRateControlParams_aer_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t APNRateControlParams_aer_descr_ = { "@NAS_CommonTypeDefs.APNRateControlParams.aer", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &APNRateControlParams_aer_xer_, &BITSTRING_json_, &APNRateControlParams_aer_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APNRateControlParams_uplinkTimeUnit_xer_ = { {"uplinkTimeUnit>\n", "uplinkTimeUnit>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t APNRateControlParams_uplinkTimeUnit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t APNRateControlParams_uplinkTimeUnit_descr_ = { "@NAS_CommonTypeDefs.APNRateControlParams.uplinkTimeUnit", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &APNRateControlParams_uplinkTimeUnit_xer_, &BITSTRING_json_, &APNRateControlParams_uplinkTimeUnit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for APNRateControlParams +const TTCN_Typedescriptor_t APNRateControlParams_descr_ = { "@NAS_CommonTypeDefs.APNRateControlParams", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t APNRateControlParams_maxUplinkRate_xer_ = { {"maxUplinkRate>\n", "maxUplinkRate>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int APNRateControlParams_maxUplinkRate_oer_ext_arr_[0] = {}; +const int APNRateControlParams_maxUplinkRate_oer_p_[0] = {}; +const TTCN_OERdescriptor_t APNRateControlParams_maxUplinkRate_oer_ = { -1, TRUE, 3, FALSE, 0, 0, APNRateControlParams_maxUplinkRate_oer_ext_arr_, 0, APNRateControlParams_maxUplinkRate_oer_p_}; +const TTCN_Typedescriptor_t APNRateControlParams_maxUplinkRate_descr_ = { "@NAS_CommonTypeDefs.APNRateControlParams.maxUplinkRate", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &APNRateControlParams_maxUplinkRate_xer_, &OCTETSTRING_json_, &APNRateControlParams_maxUplinkRate_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PTMSI__Signature_signatureValue_xer_ = { {"signatureValue>\n", "signatureValue>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PTMSI__Signature_signatureValue_oer_ext_arr_[0] = {}; +const int PTMSI__Signature_signatureValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PTMSI__Signature_signatureValue_oer_ = { -1, TRUE, 3, FALSE, 0, 0, PTMSI__Signature_signatureValue_oer_ext_arr_, 0, PTMSI__Signature_signatureValue_oer_p_}; +const TTCN_Typedescriptor_t PTMSI__Signature_signatureValue_descr_ = { "@NAS_CommonTypeDefs.PTMSI_Signature.signatureValue", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &PTMSI__Signature_signatureValue_xer_, &OCTETSTRING_json_, &PTMSI__Signature_signatureValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PTMSI__Signature +const TTCN_Typedescriptor_t PTMSI__Signature_descr_ = { "@NAS_CommonTypeDefs.PTMSI_Signature", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PTMSI__Signature_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PTMSI__Signature_iei_oer_ext_arr_[0] = {}; +const int PTMSI__Signature_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PTMSI__Signature_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PTMSI__Signature_iei_oer_ext_arr_, 0, PTMSI__Signature_iei_oer_p_}; +const TTCN_Typedescriptor_t PTMSI__Signature_iei_descr_ = { "@NAS_CommonTypeDefs.PTMSI_Signature.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PTMSI__Signature_iei_xer_, &OCTETSTRING_json_, &PTMSI__Signature_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PTMSI__Signature_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PTMSI__Signature_iel_oer_ext_arr_[0] = {}; +const int PTMSI__Signature_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PTMSI__Signature_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PTMSI__Signature_iel_oer_ext_arr_, 0, PTMSI__Signature_iel_oer_p_}; +const TTCN_Typedescriptor_t PTMSI__Signature_iel_descr_ = { "@NAS_CommonTypeDefs.PTMSI_Signature.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PTMSI__Signature_iel_xer_, &OCTETSTRING_json_, &PTMSI__Signature_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QualityOfService_iel_oer_ext_arr_[0] = {}; +const int QualityOfService_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QualityOfService_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, QualityOfService_iel_oer_ext_arr_, 0, QualityOfService_iel_oer_p_}; +const TTCN_Typedescriptor_t QualityOfService_iel_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &QualityOfService_iel_xer_, &OCTETSTRING_json_, &QualityOfService_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_spare1_xer_ = { {"spare1>\n", "spare1>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_spare1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_spare1_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.spare1", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &QualityOfService_spare1_xer_, &BITSTRING_json_, &QualityOfService_spare1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_delayClass_xer_ = { {"delayClass>\n", "delayClass>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_delayClass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_delayClass_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.delayClass", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &QualityOfService_delayClass_xer_, &BITSTRING_json_, &QualityOfService_delayClass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_relabilityClass_xer_ = { {"relabilityClass>\n", "relabilityClass>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_relabilityClass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_relabilityClass_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.relabilityClass", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &QualityOfService_relabilityClass_xer_, &BITSTRING_json_, &QualityOfService_relabilityClass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_peakThroughput_xer_ = { {"peakThroughput>\n", "peakThroughput>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_peakThroughput_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_peakThroughput_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.peakThroughput", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &QualityOfService_peakThroughput_xer_, &BITSTRING_json_, &QualityOfService_peakThroughput_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_spare2_xer_ = { {"spare2>\n", "spare2>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_spare2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_spare2_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.spare2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &QualityOfService_spare2_xer_, &BITSTRING_json_, &QualityOfService_spare2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_precedenceClass_xer_ = { {"precedenceClass>\n", "precedenceClass>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_precedenceClass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_precedenceClass_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.precedenceClass", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &QualityOfService_precedenceClass_xer_, &BITSTRING_json_, &QualityOfService_precedenceClass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_spare3_xer_ = { {"spare3>\n", "spare3>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_spare3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_spare3_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.spare3", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &QualityOfService_spare3_xer_, &BITSTRING_json_, &QualityOfService_spare3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_meanThroughput_xer_ = { {"meanThroughput>\n", "meanThroughput>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_meanThroughput_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_meanThroughput_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.meanThroughput", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &QualityOfService_meanThroughput_xer_, &BITSTRING_json_, &QualityOfService_meanThroughput_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_trafficClass_xer_ = { {"trafficClass>\n", "trafficClass>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_trafficClass_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_trafficClass_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.trafficClass", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &QualityOfService_trafficClass_xer_, &BITSTRING_json_, &QualityOfService_trafficClass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_deliveryOrder_xer_ = { {"deliveryOrder>\n", "deliveryOrder>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_deliveryOrder_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_deliveryOrder_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.deliveryOrder", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &QualityOfService_deliveryOrder_xer_, &BITSTRING_json_, &QualityOfService_deliveryOrder_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_deliveryErrorSDU_xer_ = { {"deliveryErrorSDU>\n", "deliveryErrorSDU>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_deliveryErrorSDU_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_deliveryErrorSDU_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.deliveryErrorSDU", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &QualityOfService_deliveryErrorSDU_xer_, &BITSTRING_json_, &QualityOfService_deliveryErrorSDU_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_maxSduSize_xer_ = { {"maxSduSize>\n", "maxSduSize>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_maxSduSize_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_maxSduSize_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.maxSduSize", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_maxSduSize_xer_, &BITSTRING_json_, &QualityOfService_maxSduSize_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_maxBitRateUL_xer_ = { {"maxBitRateUL>\n", "maxBitRateUL>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_maxBitRateUL_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_maxBitRateUL_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.maxBitRateUL", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_maxBitRateUL_xer_, &BITSTRING_json_, &QualityOfService_maxBitRateUL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_maxBitRateDL_xer_ = { {"maxBitRateDL>\n", "maxBitRateDL>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_maxBitRateDL_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_maxBitRateDL_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.maxBitRateDL", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_maxBitRateDL_xer_, &BITSTRING_json_, &QualityOfService_maxBitRateDL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_residualBER_xer_ = { {"residualBER>\n", "residualBER>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_residualBER_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_residualBER_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.residualBER", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &QualityOfService_residualBER_xer_, &BITSTRING_json_, &QualityOfService_residualBER_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_sduErrorRatio_xer_ = { {"sduErrorRatio>\n", "sduErrorRatio>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_sduErrorRatio_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_sduErrorRatio_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.sduErrorRatio", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &QualityOfService_sduErrorRatio_xer_, &BITSTRING_json_, &QualityOfService_sduErrorRatio_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_transferDelay_xer_ = { {"transferDelay>\n", "transferDelay>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_transferDelay_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_transferDelay_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.transferDelay", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &QualityOfService_transferDelay_xer_, &BITSTRING_json_, &QualityOfService_transferDelay_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_trafficHandlingPrio_xer_ = { {"trafficHandlingPrio>\n", "trafficHandlingPrio>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_trafficHandlingPrio_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_trafficHandlingPrio_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.trafficHandlingPrio", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &QualityOfService_trafficHandlingPrio_xer_, &BITSTRING_json_, &QualityOfService_trafficHandlingPrio_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_guaranteedBitRateUL_xer_ = { {"guaranteedBitRateUL>\n", "guaranteedBitRateUL>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateUL_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateUL_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.guaranteedBitRateUL", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_guaranteedBitRateUL_xer_, &BITSTRING_json_, &QualityOfService_guaranteedBitRateUL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_guaranteedBitRateDL_xer_ = { {"guaranteedBitRateDL>\n", "guaranteedBitRateDL>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateDL_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateDL_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.guaranteedBitRateDL", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_guaranteedBitRateDL_xer_, &BITSTRING_json_, &QualityOfService_guaranteedBitRateDL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_spare4_xer_ = { {"spare4>\n", "spare4>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_spare4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_spare4_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.spare4", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &QualityOfService_spare4_xer_, &BITSTRING_json_, &QualityOfService_spare4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_signallingInd_xer_ = { {"signallingInd>\n", "signallingInd>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_signallingInd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_signallingInd_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.signallingInd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &QualityOfService_signallingInd_xer_, &BITSTRING_json_, &QualityOfService_signallingInd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_sourceStatisticsDescriptor_xer_ = { {"sourceStatisticsDescriptor>\n", "sourceStatisticsDescriptor>\n"}, {28, 28}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_sourceStatisticsDescriptor_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_sourceStatisticsDescriptor_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.sourceStatisticsDescriptor", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &QualityOfService_sourceStatisticsDescriptor_xer_, &BITSTRING_json_, &QualityOfService_sourceStatisticsDescriptor_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QualityOfService +const TTCN_Typedescriptor_t QualityOfService_descr_ = { "@NAS_CommonTypeDefs.QualityOfService", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QualityOfService_iei_oer_ext_arr_[0] = {}; +const int QualityOfService_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QualityOfService_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, QualityOfService_iei_oer_ext_arr_, 0, QualityOfService_iei_oer_p_}; +const TTCN_Typedescriptor_t QualityOfService_iei_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &QualityOfService_iei_xer_, &OCTETSTRING_json_, &QualityOfService_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_maxBitRateDL__Ext_xer_ = { {"maxBitRateDL_Ext>\n", "maxBitRateDL_Ext>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_maxBitRateDL__Ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_maxBitRateDL__Ext_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.maxBitRateDL_Ext", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_maxBitRateDL__Ext_xer_, &BITSTRING_json_, &QualityOfService_maxBitRateDL__Ext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_guaranteedBitRateDL__Ext_xer_ = { {"guaranteedBitRateDL_Ext>\n", "guaranteedBitRateDL_Ext>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateDL__Ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateDL__Ext_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.guaranteedBitRateDL_Ext", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_guaranteedBitRateDL__Ext_xer_, &BITSTRING_json_, &QualityOfService_guaranteedBitRateDL__Ext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_maxBitRateUL__Ext_xer_ = { {"maxBitRateUL_Ext>\n", "maxBitRateUL_Ext>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_maxBitRateUL__Ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_maxBitRateUL__Ext_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.maxBitRateUL_Ext", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_maxBitRateUL__Ext_xer_, &BITSTRING_json_, &QualityOfService_maxBitRateUL__Ext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_guaranteedBitRateUL__Ext_xer_ = { {"guaranteedBitRateUL_Ext>\n", "guaranteedBitRateUL_Ext>\n"}, {25, 25}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateUL__Ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateUL__Ext_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.guaranteedBitRateUL_Ext", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_guaranteedBitRateUL__Ext_xer_, &BITSTRING_json_, &QualityOfService_guaranteedBitRateUL__Ext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_maxBitRateDL__Ext2_xer_ = { {"maxBitRateDL_Ext2>\n", "maxBitRateDL_Ext2>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_maxBitRateDL__Ext2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_maxBitRateDL__Ext2_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.maxBitRateDL_Ext2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_maxBitRateDL__Ext2_xer_, &BITSTRING_json_, &QualityOfService_maxBitRateDL__Ext2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_guaranteedBitRateDL__Ext2_xer_ = { {"guaranteedBitRateDL_Ext2>\n", "guaranteedBitRateDL_Ext2>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateDL__Ext2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateDL__Ext2_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.guaranteedBitRateDL_Ext2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_guaranteedBitRateDL__Ext2_xer_, &BITSTRING_json_, &QualityOfService_guaranteedBitRateDL__Ext2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_maxBitRateUL__Ext2_xer_ = { {"maxBitRateUL_Ext2>\n", "maxBitRateUL_Ext2>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_maxBitRateUL__Ext2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_maxBitRateUL__Ext2_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.maxBitRateUL_Ext2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_maxBitRateUL__Ext2_xer_, &BITSTRING_json_, &QualityOfService_maxBitRateUL__Ext2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QualityOfService_guaranteedBitRateUL__Ext2_xer_ = { {"guaranteedBitRateUL_Ext2>\n", "guaranteedBitRateUL_Ext2>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateUL__Ext2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateUL__Ext2_descr_ = { "@NAS_CommonTypeDefs.QualityOfService.guaranteedBitRateUL_Ext2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &QualityOfService_guaranteedBitRateUL__Ext2_xer_, &BITSTRING_json_, &QualityOfService_guaranteedBitRateUL__Ext2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RadioPriority_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RadioPriority_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RadioPriority_spare_descr_ = { "@NAS_CommonTypeDefs.RadioPriority.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &RadioPriority_spare_xer_, &BITSTRING_json_, &RadioPriority_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RadioPriority_levelValue_xer_ = { {"levelValue>\n", "levelValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RadioPriority_levelValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RadioPriority_levelValue_descr_ = { "@NAS_CommonTypeDefs.RadioPriority.levelValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &RadioPriority_levelValue_xer_, &BITSTRING_json_, &RadioPriority_levelValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RadioPriority +const TTCN_Typedescriptor_t RadioPriority_descr_ = { "@NAS_CommonTypeDefs.RadioPriority", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RadioPriority_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t RadioPriority_iei_descr_ = { "@NAS_CommonTypeDefs.RadioPriority.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &RadioPriority_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Codec_sysId_xer_ = { {"sysId>\n", "sysId>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Codec_sysId_oer_ext_arr_[0] = {}; +const int Codec_sysId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Codec_sysId_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Codec_sysId_oer_ext_arr_, 0, Codec_sysId_oer_p_}; +const TTCN_Typedescriptor_t Codec_sysId_descr_ = { "@NAS_CommonTypeDefs.Codec.sysId", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Codec_sysId_xer_, &OCTETSTRING_json_, &Codec_sysId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Codec_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Codec_len_oer_ext_arr_[0] = {}; +const int Codec_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Codec_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Codec_len_oer_ext_arr_, 0, Codec_len_oer_p_}; +const TTCN_Typedescriptor_t Codec_len_descr_ = { "@NAS_CommonTypeDefs.Codec.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Codec_len_xer_, &OCTETSTRING_json_, &Codec_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Codec_bitMap1to8_xer_ = { {"bitMap1to8>\n", "bitMap1to8>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Codec_bitMap1to8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Codec_bitMap1to8_descr_ = { "@NAS_CommonTypeDefs.Codec.bitMap1to8", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Codec_bitMap1to8_xer_, &BITSTRING_json_, &Codec_bitMap1to8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Codec +const TTCN_Typedescriptor_t Codec_descr_ = { "@NAS_CommonTypeDefs.Codec", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Codec_bitMap9to16_xer_ = { {"bitMap9to16>\n", "bitMap9to16>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Codec_bitMap9to16_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Codec_bitMap9to16_descr_ = { "@NAS_CommonTypeDefs.Codec.bitMap9to16", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Codec_bitMap9to16_xer_, &BITSTRING_json_, &Codec_bitMap9to16_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CodecList_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CodecList_iei_oer_ext_arr_[0] = {}; +const int CodecList_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CodecList_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CodecList_iei_oer_ext_arr_, 0, CodecList_iei_oer_p_}; +const TTCN_Typedescriptor_t CodecList_iei_descr_ = { "@NAS_CommonTypeDefs.CodecList.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CodecList_iei_xer_, &OCTETSTRING_json_, &CodecList_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CodecList_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CodecList_iel_oer_ext_arr_[0] = {}; +const int CodecList_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CodecList_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CodecList_iel_oer_ext_arr_, 0, CodecList_iel_oer_p_}; +const TTCN_Typedescriptor_t CodecList_iel_descr_ = { "@NAS_CommonTypeDefs.CodecList.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CodecList_iel_xer_, &OCTETSTRING_json_, &CodecList_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CodecList_codec +const TTCN_Typedescriptor_t CodecList_codec_descr_ = { "@NAS_CommonTypeDefs.CodecList.codec", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &Codec_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CodecList +const TTCN_Typedescriptor_t CodecList_descr_ = { "@NAS_CommonTypeDefs.CodecList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Request__Type_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Request__Type_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Request__Type_spare_descr_ = { "@NAS_CommonTypeDefs.Request_Type.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &Request__Type_spare_xer_, &BITSTRING_json_, &Request__Type_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Request__Type_typeValue_xer_ = { {"typeValue>\n", "typeValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Request__Type_typeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Request__Type_typeValue_descr_ = { "@NAS_CommonTypeDefs.Request_Type.typeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &Request__Type_typeValue_xer_, &BITSTRING_json_, &Request__Type_typeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Request__Type +const TTCN_Typedescriptor_t Request__Type_descr_ = { "@NAS_CommonTypeDefs.Request_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TMSI__Status_spare3_xer_ = { {"spare3>\n", "spare3>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TMSI__Status_spare3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TMSI__Status_spare3_descr_ = { "@NAS_CommonTypeDefs.TMSI_Status.spare3", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &TMSI__Status_spare3_xer_, &BITSTRING_json_, &TMSI__Status_spare3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TMSI__Status_flag_xer_ = { {"flag>\n", "flag>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TMSI__Status_flag_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TMSI__Status_flag_descr_ = { "@NAS_CommonTypeDefs.TMSI_Status.flag", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &TMSI__Status_flag_xer_, &BITSTRING_json_, &TMSI__Status_flag_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TMSI__Status +const TTCN_Typedescriptor_t TMSI__Status_descr_ = { "@NAS_CommonTypeDefs.TMSI_Status", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TMSI__Status_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t TMSI__Status_iei_descr_ = { "@NAS_CommonTypeDefs.TMSI_Status.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &TMSI__Status_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrafficFlowTemplate_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TrafficFlowTemplate_iel_oer_ext_arr_[0] = {}; +const int TrafficFlowTemplate_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TrafficFlowTemplate_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TrafficFlowTemplate_iel_oer_ext_arr_, 0, TrafficFlowTemplate_iel_oer_p_}; +const TTCN_Typedescriptor_t TrafficFlowTemplate_iel_descr_ = { "@NAS_CommonTypeDefs.TrafficFlowTemplate.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TrafficFlowTemplate_iel_xer_, &OCTETSTRING_json_, &TrafficFlowTemplate_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrafficFlowTemplate_tftOperationCode_xer_ = { {"tftOperationCode>\n", "tftOperationCode>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TrafficFlowTemplate_tftOperationCode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TrafficFlowTemplate_tftOperationCode_descr_ = { "@NAS_CommonTypeDefs.TrafficFlowTemplate.tftOperationCode", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &TrafficFlowTemplate_tftOperationCode_xer_, &BITSTRING_json_, &TrafficFlowTemplate_tftOperationCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrafficFlowTemplate_eBit_xer_ = { {"eBit>\n", "eBit>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TrafficFlowTemplate_eBit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TrafficFlowTemplate_eBit_descr_ = { "@NAS_CommonTypeDefs.TrafficFlowTemplate.eBit", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &TrafficFlowTemplate_eBit_xer_, &BITSTRING_json_, &TrafficFlowTemplate_eBit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrafficFlowTemplate_noOfPktFilter_xer_ = { {"noOfPktFilter>\n", "noOfPktFilter>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TrafficFlowTemplate_noOfPktFilter_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TrafficFlowTemplate_noOfPktFilter_descr_ = { "@NAS_CommonTypeDefs.TrafficFlowTemplate.noOfPktFilter", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TrafficFlowTemplate_noOfPktFilter_xer_, &BITSTRING_json_, &TrafficFlowTemplate_noOfPktFilter_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TrafficFlowTemplate +const TTCN_Typedescriptor_t TrafficFlowTemplate_descr_ = { "@NAS_CommonTypeDefs.TrafficFlowTemplate", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TrafficFlowTemplate_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TrafficFlowTemplate_iei_oer_ext_arr_[0] = {}; +const int TrafficFlowTemplate_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TrafficFlowTemplate_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TrafficFlowTemplate_iei_oer_ext_arr_, 0, TrafficFlowTemplate_iei_oer_p_}; +const TTCN_Typedescriptor_t TrafficFlowTemplate_iei_descr_ = { "@NAS_CommonTypeDefs.TrafficFlowTemplate.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TrafficFlowTemplate_iei_xer_, &OCTETSTRING_json_, &TrafficFlowTemplate_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TrafficFlowTemplate_packetFilterList +const TTCN_Typedescriptor_t TrafficFlowTemplate_packetFilterList_descr_ = { "@NAS_CommonTypeDefs.TrafficFlowTemplate.packetFilterList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &PacketFilter_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilter_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PacketFilter_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PacketFilter_spare_descr_ = { "@NAS_CommonTypeDefs.PacketFilter.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &PacketFilter_spare_xer_, &BITSTRING_json_, &PacketFilter_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilter_direction_xer_ = { {"direction>\n", "direction>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PacketFilter_direction_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PacketFilter_direction_descr_ = { "@NAS_CommonTypeDefs.PacketFilter.direction", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &PacketFilter_direction_xer_, &BITSTRING_json_, &PacketFilter_direction_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilter_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PacketFilter_iei_descr_ = { "@NAS_CommonTypeDefs.PacketFilter.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &PacketFilter_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PacketFilter +const TTCN_Typedescriptor_t PacketFilter_descr_ = { "@NAS_CommonTypeDefs.PacketFilter", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilter_precedence_xer_ = { {"precedence>\n", "precedence>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PacketFilter_precedence_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PacketFilter_precedence_descr_ = { "@NAS_CommonTypeDefs.PacketFilter.precedence", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &PacketFilter_precedence_xer_, &BITSTRING_json_, &PacketFilter_precedence_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilter_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilter_iel_oer_ext_arr_[0] = {}; +const int PacketFilter_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilter_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PacketFilter_iel_oer_ext_arr_, 0, PacketFilter_iel_oer_p_}; +const TTCN_Typedescriptor_t PacketFilter_iel_descr_ = { "@NAS_CommonTypeDefs.PacketFilter.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PacketFilter_iel_xer_, &OCTETSTRING_json_, &PacketFilter_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PacketFilterContents +const TTCN_Typedescriptor_t PacketFilterContents_descr_ = { "@NAS_CommonTypeDefs.PacketFilterContents", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &PacketFilterComponent_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t PacketFilterComponent_id_raw_ = {64,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t PacketFilterComponent_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponent_id_oer_ext_arr_[0] = {}; +const int PacketFilterComponent_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponent_id_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PacketFilterComponent_id_oer_ext_arr_, 0, PacketFilterComponent_id_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponent_id_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponent.id", &OCTETSTRING_ber_, &PacketFilterComponent_id_raw_, &OCTETSTRING_text_, &PacketFilterComponent_id_xer_, &OCTETSTRING_json_, &PacketFilterComponent_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t PacketFilterComponentValue_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +// No XER for PacketFilterComponentValue +const TTCN_Typedescriptor_t PacketFilterComponentValue_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue", NULL, &PacketFilterComponentValue_raw_, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_ipv4RemoteAddress_xer_ = { {"ipv4RemoteAddress>\n", "ipv4RemoteAddress>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_ipv4RemoteAddress_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_ipv4RemoteAddress_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_ipv4RemoteAddress_oer_ = { -1, TRUE, 8, FALSE, 0, 0, PacketFilterComponentValue_ipv4RemoteAddress_oer_ext_arr_, 0, PacketFilterComponentValue_ipv4RemoteAddress_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_ipv4RemoteAddress_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.ipv4RemoteAddress", &OCTETSTRING_ber_, &CommonDefs::O8__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_ipv4RemoteAddress_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_ipv4RemoteAddress_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_ipv6RemoteAddress_xer_ = { {"ipv6RemoteAddress>\n", "ipv6RemoteAddress>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_ipv6RemoteAddress_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_ipv6RemoteAddress_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_ipv6RemoteAddress_oer_ = { -1, TRUE, 32, FALSE, 0, 0, PacketFilterComponentValue_ipv6RemoteAddress_oer_ext_arr_, 0, PacketFilterComponentValue_ipv6RemoteAddress_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_ipv6RemoteAddress_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.ipv6RemoteAddress", &OCTETSTRING_ber_, &CommonDefs::O32__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_ipv6RemoteAddress_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_ipv6RemoteAddress_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_protocolIdNextHeader_xer_ = { {"protocolIdNextHeader>\n", "protocolIdNextHeader>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_protocolIdNextHeader_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_protocolIdNextHeader_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_protocolIdNextHeader_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PacketFilterComponentValue_protocolIdNextHeader_oer_ext_arr_, 0, PacketFilterComponentValue_protocolIdNextHeader_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_protocolIdNextHeader_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.protocolIdNextHeader", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_protocolIdNextHeader_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_protocolIdNextHeader_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_singleLocalPort_xer_ = { {"singleLocalPort>\n", "singleLocalPort>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_singleLocalPort_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_singleLocalPort_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_singleLocalPort_oer_ = { -1, TRUE, 2, FALSE, 0, 0, PacketFilterComponentValue_singleLocalPort_oer_ext_arr_, 0, PacketFilterComponentValue_singleLocalPort_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_singleLocalPort_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.singleLocalPort", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_singleLocalPort_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_singleLocalPort_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_localPortRange_xer_ = { {"localPortRange>\n", "localPortRange>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_localPortRange_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_localPortRange_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_localPortRange_oer_ = { -1, TRUE, 4, FALSE, 0, 0, PacketFilterComponentValue_localPortRange_oer_ext_arr_, 0, PacketFilterComponentValue_localPortRange_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_localPortRange_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.localPortRange", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_localPortRange_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_localPortRange_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_singleRemotePort_xer_ = { {"singleRemotePort>\n", "singleRemotePort>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_singleRemotePort_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_singleRemotePort_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_singleRemotePort_oer_ = { -1, TRUE, 2, FALSE, 0, 0, PacketFilterComponentValue_singleRemotePort_oer_ext_arr_, 0, PacketFilterComponentValue_singleRemotePort_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_singleRemotePort_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.singleRemotePort", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_singleRemotePort_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_singleRemotePort_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_remotePortRange_xer_ = { {"remotePortRange>\n", "remotePortRange>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_remotePortRange_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_remotePortRange_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_remotePortRange_oer_ = { -1, TRUE, 4, FALSE, 0, 0, PacketFilterComponentValue_remotePortRange_oer_ext_arr_, 0, PacketFilterComponentValue_remotePortRange_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_remotePortRange_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.remotePortRange", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_remotePortRange_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_remotePortRange_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_securityParameterIndex_xer_ = { {"securityParameterIndex>\n", "securityParameterIndex>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_securityParameterIndex_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_securityParameterIndex_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_securityParameterIndex_oer_ = { -1, TRUE, 4, FALSE, 0, 0, PacketFilterComponentValue_securityParameterIndex_oer_ext_arr_, 0, PacketFilterComponentValue_securityParameterIndex_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_securityParameterIndex_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.securityParameterIndex", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_securityParameterIndex_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_securityParameterIndex_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_typeOfServiceTrafficClass_xer_ = { {"typeOfServiceTrafficClass>\n", "typeOfServiceTrafficClass>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_typeOfServiceTrafficClass_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_typeOfServiceTrafficClass_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_typeOfServiceTrafficClass_oer_ = { -1, TRUE, 2, FALSE, 0, 0, PacketFilterComponentValue_typeOfServiceTrafficClass_oer_ext_arr_, 0, PacketFilterComponentValue_typeOfServiceTrafficClass_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_typeOfServiceTrafficClass_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.typeOfServiceTrafficClass", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_typeOfServiceTrafficClass_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_typeOfServiceTrafficClass_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketFilterComponentValue_flowLabel_xer_ = { {"flowLabel>\n", "flowLabel>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketFilterComponentValue_flowLabel_oer_ext_arr_[0] = {}; +const int PacketFilterComponentValue_flowLabel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketFilterComponentValue_flowLabel_oer_ = { -1, TRUE, 3, FALSE, 0, 0, PacketFilterComponentValue_flowLabel_oer_ext_arr_, 0, PacketFilterComponentValue_flowLabel_oer_p_}; +const TTCN_Typedescriptor_t PacketFilterComponentValue_flowLabel_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponentValue.flowLabel", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &PacketFilterComponentValue_flowLabel_xer_, &OCTETSTRING_json_, &PacketFilterComponentValue_flowLabel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t PacketFilterComponent_raw_ = {0,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +// No XER for PacketFilterComponent +const TTCN_Typedescriptor_t PacketFilterComponent_descr_ = { "@NAS_CommonTypeDefs.PacketFilterComponent", NULL, &PacketFilterComponent_raw_, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TrafficFlowTemplate_parameterList +const TTCN_Typedescriptor_t TrafficFlowTemplate_parameterList_descr_ = { "@NAS_CommonTypeDefs.TrafficFlowTemplate.parameterList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &TftParameter_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TftParameter_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TftParameter_iei_oer_ext_arr_[0] = {}; +const int TftParameter_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TftParameter_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TftParameter_iei_oer_ext_arr_, 0, TftParameter_iei_oer_p_}; +const TTCN_Typedescriptor_t TftParameter_iei_descr_ = { "@NAS_CommonTypeDefs.TftParameter.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TftParameter_iei_xer_, &OCTETSTRING_json_, &TftParameter_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TftParameter_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TftParameter_iel_oer_ext_arr_[0] = {}; +const int TftParameter_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TftParameter_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TftParameter_iel_oer_ext_arr_, 0, TftParameter_iel_oer_p_}; +const TTCN_Typedescriptor_t TftParameter_iel_descr_ = { "@NAS_CommonTypeDefs.TftParameter.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TftParameter_iel_xer_, &OCTETSTRING_json_, &TftParameter_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TftParameter_contents_xer_ = { {"contents>\n", "contents>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TftParameter_contents_oer_ext_arr_[0] = {}; +const int TftParameter_contents_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TftParameter_contents_oer_ = { -1, TRUE, -1, FALSE, 0, 0, TftParameter_contents_oer_ext_arr_, 0, TftParameter_contents_oer_p_}; +const TTCN_Typedescriptor_t TftParameter_contents_descr_ = { "@NAS_CommonTypeDefs.TftParameter.contents", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &TftParameter_contents_xer_, &OCTETSTRING_json_, &TftParameter_contents_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TftParameter +const TTCN_Typedescriptor_t TftParameter_descr_ = { "@NAS_CommonTypeDefs.TftParameter", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_eeaCap_xer_ = { {"eeaCap>\n", "eeaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__NetworkCap_eeaCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__NetworkCap_eeaCap_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.eeaCap", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__NetworkCap_eeaCap_xer_, &BITSTRING_json_, &UE__NetworkCap_eeaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_eiaCap_xer_ = { {"eiaCap>\n", "eiaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__NetworkCap_eiaCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__NetworkCap_eiaCap_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.eiaCap", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__NetworkCap_eiaCap_xer_, &BITSTRING_json_, &UE__NetworkCap_eiaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__NetworkCap +const TTCN_Typedescriptor_t UE__NetworkCap_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__NetworkCap_iei_oer_ext_arr_[0] = {}; +const int UE__NetworkCap_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__NetworkCap_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__NetworkCap_iei_oer_ext_arr_, 0, UE__NetworkCap_iei_oer_p_}; +const TTCN_Typedescriptor_t UE__NetworkCap_iei_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__NetworkCap_iei_xer_, &OCTETSTRING_json_, &UE__NetworkCap_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__NetworkCap_iel_oer_ext_arr_[0] = {}; +const int UE__NetworkCap_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__NetworkCap_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__NetworkCap_iel_oer_ext_arr_, 0, UE__NetworkCap_iel_oer_p_}; +const TTCN_Typedescriptor_t UE__NetworkCap_iel_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__NetworkCap_iel_xer_, &OCTETSTRING_json_, &UE__NetworkCap_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_ueaCap_xer_ = { {"ueaCap>\n", "ueaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__NetworkCap_ueaCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__NetworkCap_ueaCap_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.ueaCap", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__NetworkCap_ueaCap_xer_, &BITSTRING_json_, &UE__NetworkCap_ueaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_uiaCap_xer_ = { {"uiaCap>\n", "uiaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__NetworkCap_uiaCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__NetworkCap_uiaCap_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.uiaCap", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__NetworkCap_uiaCap_xer_, &BITSTRING_json_, &UE__NetworkCap_uiaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_srvcc__LPP__ProSeCap_xer_ = { {"srvcc_LPP_ProSeCap>\n", "srvcc_LPP_ProSeCap>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__NetworkCap_srvcc__LPP__ProSeCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__NetworkCap_srvcc__LPP__ProSeCap_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.srvcc_LPP_ProSeCap", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__NetworkCap_srvcc__LPP__ProSeCap_xer_, &BITSTRING_json_, &UE__NetworkCap_srvcc__LPP__ProSeCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_cIoT__proSeCap_xer_ = { {"cIoT_proSeCap>\n", "cIoT_proSeCap>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__NetworkCap_cIoT__proSeCap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__NetworkCap_cIoT__proSeCap_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.cIoT_proSeCap", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__NetworkCap_cIoT__proSeCap_xer_, &BITSTRING_json_, &UE__NetworkCap_cIoT__proSeCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_cIoT__V2X_xer_ = { {"cIoT_V2X>\n", "cIoT_V2X>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__NetworkCap_cIoT__V2X_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__NetworkCap_cIoT__V2X_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.cIoT_V2X", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__NetworkCap_cIoT__V2X_xer_, &BITSTRING_json_, &UE__NetworkCap_cIoT__V2X_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_edt__WUS_xer_ = { {"edt_WUS>\n", "edt_WUS>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__NetworkCap_edt__WUS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__NetworkCap_edt__WUS_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.edt_WUS", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__NetworkCap_edt__WUS_xer_, &BITSTRING_json_, &UE__NetworkCap_edt__WUS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_musim_xer_ = { {"musim>\n", "musim>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__NetworkCap_musim_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__NetworkCap_musim_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.musim", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__NetworkCap_musim_xer_, &BITSTRING_json_, &UE__NetworkCap_musim_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__NetworkCap_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__NetworkCap_spare_oer_ext_arr_[0] = {}; +const int UE__NetworkCap_spare_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__NetworkCap_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, UE__NetworkCap_spare_oer_ext_arr_, 0, UE__NetworkCap_spare_oer_p_}; +const TTCN_Typedescriptor_t UE__NetworkCap_spare_descr_ = { "@NAS_CommonTypeDefs.UE_NetworkCap.spare", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &UE__NetworkCap_spare_xer_, &OCTETSTRING_json_, &UE__NetworkCap_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReAttemptIndicator_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReAttemptIndicator_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReAttemptIndicator_spare_descr_ = { "@NAS_CommonTypeDefs.ReAttemptIndicator.spare", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &ReAttemptIndicator_spare_xer_, &BITSTRING_json_, &ReAttemptIndicator_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReAttemptIndicator_eplmncValue_xer_ = { {"eplmncValue>\n", "eplmncValue>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReAttemptIndicator_eplmncValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReAttemptIndicator_eplmncValue_descr_ = { "@NAS_CommonTypeDefs.ReAttemptIndicator.eplmncValue", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ReAttemptIndicator_eplmncValue_xer_, &BITSTRING_json_, &ReAttemptIndicator_eplmncValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReAttemptIndicator_ratcValue_xer_ = { {"ratcValue>\n", "ratcValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReAttemptIndicator_ratcValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReAttemptIndicator_ratcValue_descr_ = { "@NAS_CommonTypeDefs.ReAttemptIndicator.ratcValue", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ReAttemptIndicator_ratcValue_xer_, &BITSTRING_json_, &ReAttemptIndicator_ratcValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ReAttemptIndicator +const TTCN_Typedescriptor_t ReAttemptIndicator_descr_ = { "@NAS_CommonTypeDefs.ReAttemptIndicator", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReAttemptIndicator_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReAttemptIndicator_iei_oer_ext_arr_[0] = {}; +const int ReAttemptIndicator_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReAttemptIndicator_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ReAttemptIndicator_iei_oer_ext_arr_, 0, ReAttemptIndicator_iei_oer_p_}; +const TTCN_Typedescriptor_t ReAttemptIndicator_iei_descr_ = { "@NAS_CommonTypeDefs.ReAttemptIndicator.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ReAttemptIndicator_iei_xer_, &OCTETSTRING_json_, &ReAttemptIndicator_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReAttemptIndicator_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReAttemptIndicator_iel_oer_ext_arr_[0] = {}; +const int ReAttemptIndicator_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReAttemptIndicator_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ReAttemptIndicator_iel_oer_ext_arr_, 0, ReAttemptIndicator_iel_oer_p_}; +const TTCN_Typedescriptor_t ReAttemptIndicator_iel_descr_ = { "@NAS_CommonTypeDefs.ReAttemptIndicator.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ReAttemptIndicator_iel_xer_, &OCTETSTRING_json_, &ReAttemptIndicator_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTN_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AUTN_iel_oer_ext_arr_[0] = {}; +const int AUTN_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AUTN_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AUTN_iel_oer_ext_arr_, 0, AUTN_iel_oer_p_}; +const TTCN_Typedescriptor_t AUTN_iel_descr_ = { "@NAS_CommonTypeDefs.AUTN.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AUTN_iel_xer_, &OCTETSTRING_json_, &AUTN_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTN_aUTN_xer_ = { {"aUTN>\n", "aUTN>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AUTN_aUTN_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AUTN_aUTN_descr_ = { "@NAS_CommonTypeDefs.AUTN.aUTN", &BITSTRING_ber_, &CommonDefs::B128__Type_raw_, NULL, &AUTN_aUTN_xer_, &BITSTRING_json_, &AUTN_aUTN_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AUTN +const TTCN_Typedescriptor_t AUTN_descr_ = { "@NAS_CommonTypeDefs.AUTN", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AUTN_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AUTN_iei_oer_ext_arr_[0] = {}; +const int AUTN_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AUTN_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AUTN_iei_oer_ext_arr_, 0, AUTN_iei_oer_p_}; +const TTCN_Typedescriptor_t AUTN_iei_descr_ = { "@NAS_CommonTypeDefs.AUTN.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AUTN_iei_xer_, &OCTETSTRING_json_, &AUTN_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AuthenticationFailureParameter_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AuthenticationFailureParameter_iei_oer_ext_arr_[0] = {}; +const int AuthenticationFailureParameter_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AuthenticationFailureParameter_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AuthenticationFailureParameter_iei_oer_ext_arr_, 0, AuthenticationFailureParameter_iei_oer_p_}; +const TTCN_Typedescriptor_t AuthenticationFailureParameter_iei_descr_ = { "@NAS_CommonTypeDefs.AuthenticationFailureParameter.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AuthenticationFailureParameter_iei_xer_, &OCTETSTRING_json_, &AuthenticationFailureParameter_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AuthenticationFailureParameter_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AuthenticationFailureParameter_iel_oer_ext_arr_[0] = {}; +const int AuthenticationFailureParameter_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AuthenticationFailureParameter_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AuthenticationFailureParameter_iel_oer_ext_arr_, 0, AuthenticationFailureParameter_iel_oer_p_}; +const TTCN_Typedescriptor_t AuthenticationFailureParameter_iel_descr_ = { "@NAS_CommonTypeDefs.AuthenticationFailureParameter.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AuthenticationFailureParameter_iel_xer_, &OCTETSTRING_json_, &AuthenticationFailureParameter_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AuthenticationFailureParameter_auts_xer_ = { {"auts>\n", "auts>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AuthenticationFailureParameter_auts_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AuthenticationFailureParameter_auts_descr_ = { "@NAS_CommonTypeDefs.AuthenticationFailureParameter.auts", &BITSTRING_ber_, &CommonDefs::B112__Type_raw_, NULL, &AuthenticationFailureParameter_auts_xer_, &BITSTRING_json_, &AuthenticationFailureParameter_auts_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AuthenticationFailureParameter +const TTCN_Typedescriptor_t AuthenticationFailureParameter_descr_ = { "@NAS_CommonTypeDefs.AuthenticationFailureParameter", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RAND_randValue_xer_ = { {"randValue>\n", "randValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RAND_randValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RAND_randValue_descr_ = { "@NAS_CommonTypeDefs.RAND.randValue", &BITSTRING_ber_, &CommonDefs::B128__Type_raw_, NULL, &RAND_randValue_xer_, &BITSTRING_json_, &RAND_randValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RAND +const TTCN_Typedescriptor_t RAND_descr_ = { "@NAS_CommonTypeDefs.RAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RAND_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RAND_iei_oer_ext_arr_[0] = {}; +const int RAND_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RAND_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RAND_iei_oer_ext_arr_, 0, RAND_iei_oer_p_}; +const TTCN_Typedescriptor_t RAND_iei_descr_ = { "@NAS_CommonTypeDefs.RAND.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RAND_iei_xer_, &OCTETSTRING_json_, &RAND_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DaylightSavingTime_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DaylightSavingTime_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DaylightSavingTime_spare_descr_ = { "@NAS_CommonTypeDefs.DaylightSavingTime.spare", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &DaylightSavingTime_spare_xer_, &BITSTRING_json_, &DaylightSavingTime_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DaylightSavingTime_val_xer_ = { {"val>\n", "val>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DaylightSavingTime_val_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DaylightSavingTime_val_descr_ = { "@NAS_CommonTypeDefs.DaylightSavingTime.val", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &DaylightSavingTime_val_xer_, &BITSTRING_json_, &DaylightSavingTime_val_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DaylightSavingTime +const TTCN_Typedescriptor_t DaylightSavingTime_descr_ = { "@NAS_CommonTypeDefs.DaylightSavingTime", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DaylightSavingTime_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DaylightSavingTime_iei_oer_ext_arr_[0] = {}; +const int DaylightSavingTime_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DaylightSavingTime_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DaylightSavingTime_iei_oer_ext_arr_, 0, DaylightSavingTime_iei_oer_p_}; +const TTCN_Typedescriptor_t DaylightSavingTime_iei_descr_ = { "@NAS_CommonTypeDefs.DaylightSavingTime.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DaylightSavingTime_iei_xer_, &OCTETSTRING_json_, &DaylightSavingTime_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DaylightSavingTime_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DaylightSavingTime_iel_oer_ext_arr_[0] = {}; +const int DaylightSavingTime_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DaylightSavingTime_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DaylightSavingTime_iel_oer_ext_arr_, 0, DaylightSavingTime_iel_oer_p_}; +const TTCN_Typedescriptor_t DaylightSavingTime_iel_descr_ = { "@NAS_CommonTypeDefs.DaylightSavingTime.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DaylightSavingTime_iel_xer_, &OCTETSTRING_json_, &DaylightSavingTime_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkName_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NetworkName_iel_oer_ext_arr_[0] = {}; +const int NetworkName_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NetworkName_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NetworkName_iel_oer_ext_arr_, 0, NetworkName_iel_oer_p_}; +const TTCN_Typedescriptor_t NetworkName_iel_descr_ = { "@NAS_CommonTypeDefs.NetworkName.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NetworkName_iel_xer_, &OCTETSTRING_json_, &NetworkName_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkName_ext_xer_ = { {"ext>\n", "ext>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NetworkName_ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NetworkName_ext_descr_ = { "@NAS_CommonTypeDefs.NetworkName.ext", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NetworkName_ext_xer_, &BITSTRING_json_, &NetworkName_ext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkName_codingScheme_xer_ = { {"codingScheme>\n", "codingScheme>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NetworkName_codingScheme_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NetworkName_codingScheme_descr_ = { "@NAS_CommonTypeDefs.NetworkName.codingScheme", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NetworkName_codingScheme_xer_, &BITSTRING_json_, &NetworkName_codingScheme_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkName_addCI_xer_ = { {"addCI>\n", "addCI>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NetworkName_addCI_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NetworkName_addCI_descr_ = { "@NAS_CommonTypeDefs.NetworkName.addCI", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NetworkName_addCI_xer_, &BITSTRING_json_, &NetworkName_addCI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkName_spareBitCnt_xer_ = { {"spareBitCnt>\n", "spareBitCnt>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NetworkName_spareBitCnt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NetworkName_spareBitCnt_descr_ = { "@NAS_CommonTypeDefs.NetworkName.spareBitCnt", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NetworkName_spareBitCnt_xer_, &BITSTRING_json_, &NetworkName_spareBitCnt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkName_text_xer_ = { {"text>\n", "text>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NetworkName_text_oer_ext_arr_[0] = {}; +const int NetworkName_text_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NetworkName_text_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NetworkName_text_oer_ext_arr_, 0, NetworkName_text_oer_p_}; +const TTCN_Typedescriptor_t NetworkName_text_descr_ = { "@NAS_CommonTypeDefs.NetworkName.text", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NetworkName_text_xer_, &OCTETSTRING_json_, &NetworkName_text_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NetworkName +const TTCN_Typedescriptor_t NetworkName_descr_ = { "@NAS_CommonTypeDefs.NetworkName", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkName_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NetworkName_iei_oer_ext_arr_[0] = {}; +const int NetworkName_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NetworkName_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NetworkName_iei_oer_ext_arr_, 0, NetworkName_iei_oer_p_}; +const TTCN_Typedescriptor_t NetworkName_iei_descr_ = { "@NAS_CommonTypeDefs.NetworkName.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NetworkName_iei_xer_, &OCTETSTRING_json_, &NetworkName_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZone_timeZone_xer_ = { {"timeZone>\n", "timeZone>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZone_timeZone_oer_ext_arr_[0] = {}; +const int TimeZone_timeZone_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZone_timeZone_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZone_timeZone_oer_ext_arr_, 0, TimeZone_timeZone_oer_p_}; +const TTCN_Typedescriptor_t TimeZone_timeZone_descr_ = { "@NAS_CommonTypeDefs.TimeZone.timeZone", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZone_timeZone_xer_, &OCTETSTRING_json_, &TimeZone_timeZone_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TimeZone +const TTCN_Typedescriptor_t TimeZone_descr_ = { "@NAS_CommonTypeDefs.TimeZone", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZone_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZone_iei_oer_ext_arr_[0] = {}; +const int TimeZone_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZone_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZone_iei_oer_ext_arr_, 0, TimeZone_iei_oer_p_}; +const TTCN_Typedescriptor_t TimeZone_iei_descr_ = { "@NAS_CommonTypeDefs.TimeZone.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZone_iei_xer_, &OCTETSTRING_json_, &TimeZone_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZoneAndTime_year_xer_ = { {"year>\n", "year>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZoneAndTime_year_oer_ext_arr_[0] = {}; +const int TimeZoneAndTime_year_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZoneAndTime_year_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZoneAndTime_year_oer_ext_arr_, 0, TimeZoneAndTime_year_oer_p_}; +const TTCN_Typedescriptor_t TimeZoneAndTime_year_descr_ = { "@NAS_CommonTypeDefs.TimeZoneAndTime.year", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZoneAndTime_year_xer_, &OCTETSTRING_json_, &TimeZoneAndTime_year_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZoneAndTime_month_xer_ = { {"month>\n", "month>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZoneAndTime_month_oer_ext_arr_[0] = {}; +const int TimeZoneAndTime_month_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZoneAndTime_month_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZoneAndTime_month_oer_ext_arr_, 0, TimeZoneAndTime_month_oer_p_}; +const TTCN_Typedescriptor_t TimeZoneAndTime_month_descr_ = { "@NAS_CommonTypeDefs.TimeZoneAndTime.month", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZoneAndTime_month_xer_, &OCTETSTRING_json_, &TimeZoneAndTime_month_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZoneAndTime_day_xer_ = { {"day>\n", "day>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZoneAndTime_day_oer_ext_arr_[0] = {}; +const int TimeZoneAndTime_day_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZoneAndTime_day_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZoneAndTime_day_oer_ext_arr_, 0, TimeZoneAndTime_day_oer_p_}; +const TTCN_Typedescriptor_t TimeZoneAndTime_day_descr_ = { "@NAS_CommonTypeDefs.TimeZoneAndTime.day", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZoneAndTime_day_xer_, &OCTETSTRING_json_, &TimeZoneAndTime_day_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZoneAndTime_hour_xer_ = { {"hour>\n", "hour>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZoneAndTime_hour_oer_ext_arr_[0] = {}; +const int TimeZoneAndTime_hour_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZoneAndTime_hour_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZoneAndTime_hour_oer_ext_arr_, 0, TimeZoneAndTime_hour_oer_p_}; +const TTCN_Typedescriptor_t TimeZoneAndTime_hour_descr_ = { "@NAS_CommonTypeDefs.TimeZoneAndTime.hour", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZoneAndTime_hour_xer_, &OCTETSTRING_json_, &TimeZoneAndTime_hour_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZoneAndTime_minute_xer_ = { {"minute>\n", "minute>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZoneAndTime_minute_oer_ext_arr_[0] = {}; +const int TimeZoneAndTime_minute_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZoneAndTime_minute_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZoneAndTime_minute_oer_ext_arr_, 0, TimeZoneAndTime_minute_oer_p_}; +const TTCN_Typedescriptor_t TimeZoneAndTime_minute_descr_ = { "@NAS_CommonTypeDefs.TimeZoneAndTime.minute", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZoneAndTime_minute_xer_, &OCTETSTRING_json_, &TimeZoneAndTime_minute_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZoneAndTime_second_xer_ = { {"second>\n", "second>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZoneAndTime_second_oer_ext_arr_[0] = {}; +const int TimeZoneAndTime_second_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZoneAndTime_second_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZoneAndTime_second_oer_ext_arr_, 0, TimeZoneAndTime_second_oer_p_}; +const TTCN_Typedescriptor_t TimeZoneAndTime_second_descr_ = { "@NAS_CommonTypeDefs.TimeZoneAndTime.second", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZoneAndTime_second_xer_, &OCTETSTRING_json_, &TimeZoneAndTime_second_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZoneAndTime_timeZone_xer_ = { {"timeZone>\n", "timeZone>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZoneAndTime_timeZone_oer_ext_arr_[0] = {}; +const int TimeZoneAndTime_timeZone_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZoneAndTime_timeZone_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZoneAndTime_timeZone_oer_ext_arr_, 0, TimeZoneAndTime_timeZone_oer_p_}; +const TTCN_Typedescriptor_t TimeZoneAndTime_timeZone_descr_ = { "@NAS_CommonTypeDefs.TimeZoneAndTime.timeZone", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZoneAndTime_timeZone_xer_, &OCTETSTRING_json_, &TimeZoneAndTime_timeZone_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TimeZoneAndTime +const TTCN_Typedescriptor_t TimeZoneAndTime_descr_ = { "@NAS_CommonTypeDefs.TimeZoneAndTime", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TimeZoneAndTime_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TimeZoneAndTime_iei_oer_ext_arr_[0] = {}; +const int TimeZoneAndTime_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TimeZoneAndTime_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TimeZoneAndTime_iei_oer_ext_arr_, 0, TimeZoneAndTime_iei_oer_p_}; +const TTCN_Typedescriptor_t TimeZoneAndTime_iei_descr_ = { "@NAS_CommonTypeDefs.TimeZoneAndTime.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TimeZoneAndTime_iei_xer_, &OCTETSTRING_json_, &TimeZoneAndTime_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t VoiceDomainPref_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t VoiceDomainPref_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t VoiceDomainPref_spareBits_descr_ = { "@NAS_CommonTypeDefs.VoiceDomainPref.spareBits", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &VoiceDomainPref_spareBits_xer_, &BITSTRING_json_, &VoiceDomainPref_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t VoiceDomainPref_ueUsageSetting_xer_ = { {"ueUsageSetting>\n", "ueUsageSetting>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t VoiceDomainPref_ueUsageSetting_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t VoiceDomainPref_ueUsageSetting_descr_ = { "@NAS_CommonTypeDefs.VoiceDomainPref.ueUsageSetting", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &VoiceDomainPref_ueUsageSetting_xer_, &BITSTRING_json_, &VoiceDomainPref_ueUsageSetting_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t VoiceDomainPref_voiceDomainPrefEUTRA_xer_ = { {"voiceDomainPrefEUTRA>\n", "voiceDomainPrefEUTRA>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t VoiceDomainPref_voiceDomainPrefEUTRA_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t VoiceDomainPref_voiceDomainPrefEUTRA_descr_ = { "@NAS_CommonTypeDefs.VoiceDomainPref.voiceDomainPrefEUTRA", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &VoiceDomainPref_voiceDomainPrefEUTRA_xer_, &BITSTRING_json_, &VoiceDomainPref_voiceDomainPrefEUTRA_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for VoiceDomainPref +const TTCN_Typedescriptor_t VoiceDomainPref_descr_ = { "@NAS_CommonTypeDefs.VoiceDomainPref", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t VoiceDomainPref_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int VoiceDomainPref_iei_oer_ext_arr_[0] = {}; +const int VoiceDomainPref_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t VoiceDomainPref_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, VoiceDomainPref_iei_oer_ext_arr_, 0, VoiceDomainPref_iei_oer_p_}; +const TTCN_Typedescriptor_t VoiceDomainPref_iei_descr_ = { "@NAS_CommonTypeDefs.VoiceDomainPref.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &VoiceDomainPref_iei_xer_, &OCTETSTRING_json_, &VoiceDomainPref_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t VoiceDomainPref_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int VoiceDomainPref_iel_oer_ext_arr_[0] = {}; +const int VoiceDomainPref_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t VoiceDomainPref_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, VoiceDomainPref_iel_oer_ext_arr_, 0, VoiceDomainPref_iel_oer_p_}; +const TTCN_Typedescriptor_t VoiceDomainPref_iel_descr_ = { "@NAS_CommonTypeDefs.VoiceDomainPref.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &VoiceDomainPref_iel_xer_, &OCTETSTRING_json_, &VoiceDomainPref_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IdentityType_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IdentityType_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IdentityType_spare_descr_ = { "@NAS_CommonTypeDefs.IdentityType.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IdentityType_spare_xer_, &BITSTRING_json_, &IdentityType_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IdentityType_typeOfId_xer_ = { {"typeOfId>\n", "typeOfId>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IdentityType_typeOfId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IdentityType_typeOfId_descr_ = { "@NAS_CommonTypeDefs.IdentityType.typeOfId", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &IdentityType_typeOfId_xer_, &BITSTRING_json_, &IdentityType_typeOfId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IdentityType +const TTCN_Typedescriptor_t IdentityType_descr_ = { "@NAS_CommonTypeDefs.IdentityType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TI_tiFlag_xer_ = { {"tiFlag>\n", "tiFlag>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TI_tiFlag_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TI_tiFlag_descr_ = { "@NAS_CommonTypeDefs.TI.tiFlag", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &TI_tiFlag_xer_, &BITSTRING_json_, &TI_tiFlag_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TI_tiVal_xer_ = { {"tiVal>\n", "tiVal>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TI_tiVal_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TI_tiVal_descr_ = { "@NAS_CommonTypeDefs.TI.tiVal", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &TI_tiVal_xer_, &BITSTRING_json_, &TI_tiVal_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TI +const TTCN_Typedescriptor_t TI_descr_ = { "@NAS_CommonTypeDefs.TI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REGISTER_sS__ProtocolDiscriminator_xer_ = { {"sS_ProtocolDiscriminator>\n", "sS_ProtocolDiscriminator>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t REGISTER_sS__ProtocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t REGISTER_sS__ProtocolDiscriminator_descr_ = { "@NAS_CommonTypeDefs.REGISTER.sS_ProtocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, ®ISTER_sS__ProtocolDiscriminator_xer_, &BITSTRING_json_, ®ISTER_sS__ProtocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t REGISTER_msgType_xer_ = { {"msgType>\n", "msgType>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t REGISTER_msgType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t REGISTER_msgType_descr_ = { "@NAS_CommonTypeDefs.REGISTER.msgType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, ®ISTER_msgType_xer_, &BITSTRING_json_, ®ISTER_msgType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t FacilityIE_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int FacilityIE_iel_oer_ext_arr_[0] = {}; +const int FacilityIE_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t FacilityIE_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, FacilityIE_iel_oer_ext_arr_, 0, FacilityIE_iel_oer_p_}; +const TTCN_Typedescriptor_t FacilityIE_iel_descr_ = { "@NAS_CommonTypeDefs.FacilityIE.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &FacilityIE_iel_xer_, &OCTETSTRING_json_, &FacilityIE_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t FacilityIE_components_xer_ = { {"components>\n", "components>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int FacilityIE_components_oer_ext_arr_[0] = {}; +const int FacilityIE_components_oer_p_[0] = {}; +const TTCN_OERdescriptor_t FacilityIE_components_oer_ = { -1, TRUE, -1, FALSE, 0, 0, FacilityIE_components_oer_ext_arr_, 0, FacilityIE_components_oer_p_}; +const TTCN_Typedescriptor_t FacilityIE_components_descr_ = { "@NAS_CommonTypeDefs.FacilityIE.components", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &FacilityIE_components_xer_, &OCTETSTRING_json_, &FacilityIE_components_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for FacilityIE +const TTCN_Typedescriptor_t FacilityIE_descr_ = { "@NAS_CommonTypeDefs.FacilityIE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t FacilityIE_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int FacilityIE_iei_oer_ext_arr_[0] = {}; +const int FacilityIE_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t FacilityIE_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, FacilityIE_iei_oer_ext_arr_, 0, FacilityIE_iei_oer_p_}; +const TTCN_Typedescriptor_t FacilityIE_iei_descr_ = { "@NAS_CommonTypeDefs.FacilityIE.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &FacilityIE_iei_xer_, &OCTETSTRING_json_, &FacilityIE_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for REGISTER +const TTCN_Typedescriptor_t REGISTER_descr_ = { "@NAS_CommonTypeDefs.REGISTER", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SS__VersionInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SS__VersionInd_iei_oer_ext_arr_[0] = {}; +const int SS__VersionInd_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SS__VersionInd_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SS__VersionInd_iei_oer_ext_arr_, 0, SS__VersionInd_iei_oer_p_}; +const TTCN_Typedescriptor_t SS__VersionInd_iei_descr_ = { "@NAS_CommonTypeDefs.SS_VersionInd.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SS__VersionInd_iei_xer_, &OCTETSTRING_json_, &SS__VersionInd_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SS__VersionInd_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SS__VersionInd_iel_oer_ext_arr_[0] = {}; +const int SS__VersionInd_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SS__VersionInd_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SS__VersionInd_iel_oer_ext_arr_, 0, SS__VersionInd_iel_oer_p_}; +const TTCN_Typedescriptor_t SS__VersionInd_iel_descr_ = { "@NAS_CommonTypeDefs.SS_VersionInd.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SS__VersionInd_iel_xer_, &OCTETSTRING_json_, &SS__VersionInd_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SS__VersionInd_sS__VersionInfo_xer_ = { {"sS_VersionInfo>\n", "sS_VersionInfo>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SS__VersionInd_sS__VersionInfo_oer_ext_arr_[0] = {}; +const int SS__VersionInd_sS__VersionInfo_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SS__VersionInd_sS__VersionInfo_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SS__VersionInd_sS__VersionInfo_oer_ext_arr_, 0, SS__VersionInd_sS__VersionInfo_oer_p_}; +const TTCN_Typedescriptor_t SS__VersionInd_sS__VersionInfo_descr_ = { "@NAS_CommonTypeDefs.SS_VersionInd.sS_VersionInfo", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SS__VersionInd_sS__VersionInfo_xer_, &OCTETSTRING_json_, &SS__VersionInd_sS__VersionInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SS__VersionInd +const TTCN_Typedescriptor_t SS__VersionInd_descr_ = { "@NAS_CommonTypeDefs.SS_VersionInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t FACILITY_sS__ProtocolDiscriminator_xer_ = { {"sS_ProtocolDiscriminator>\n", "sS_ProtocolDiscriminator>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t FACILITY_sS__ProtocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t FACILITY_sS__ProtocolDiscriminator_descr_ = { "@NAS_CommonTypeDefs.FACILITY.sS_ProtocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &FACILITY_sS__ProtocolDiscriminator_xer_, &BITSTRING_json_, &FACILITY_sS__ProtocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t FACILITY_msgType_xer_ = { {"msgType>\n", "msgType>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t FACILITY_msgType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t FACILITY_msgType_descr_ = { "@NAS_CommonTypeDefs.FACILITY.msgType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &FACILITY_msgType_xer_, &BITSTRING_json_, &FACILITY_msgType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for FACILITY +const TTCN_Typedescriptor_t FACILITY_descr_ = { "@NAS_CommonTypeDefs.FACILITY", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t FACILITYul_sS__ProtocolDiscriminator_xer_ = { {"sS_ProtocolDiscriminator>\n", "sS_ProtocolDiscriminator>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t FACILITYul_sS__ProtocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t FACILITYul_sS__ProtocolDiscriminator_descr_ = { "@NAS_CommonTypeDefs.FACILITYul.sS_ProtocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &FACILITYul_sS__ProtocolDiscriminator_xer_, &BITSTRING_json_, &FACILITYul_sS__ProtocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t FACILITYul_msgType_xer_ = { {"msgType>\n", "msgType>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t FACILITYul_msgType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t FACILITYul_msgType_descr_ = { "@NAS_CommonTypeDefs.FACILITYul.msgType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &FACILITYul_msgType_xer_, &BITSTRING_json_, &FACILITYul_msgType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for FACILITYul +const TTCN_Typedescriptor_t FACILITYul_descr_ = { "@NAS_CommonTypeDefs.FACILITYul", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_skipIndicator_descr_ = { "@NAS_CommonTypeDefs.RESETUEPOSITIONINGSTOREDINFORMATION.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &RESETUEPOSITIONINGSTOREDINFORMATION_skipIndicator_xer_, &BITSTRING_json_, &RESETUEPOSITIONINGSTOREDINFORMATION_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_protocolDiscriminator_descr_ = { "@NAS_CommonTypeDefs.RESETUEPOSITIONINGSTOREDINFORMATION.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &RESETUEPOSITIONINGSTOREDINFORMATION_protocolDiscriminator_xer_, &BITSTRING_json_, &RESETUEPOSITIONINGSTOREDINFORMATION_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_msgType_xer_ = { {"msgType>\n", "msgType>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_msgType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_msgType_descr_ = { "@NAS_CommonTypeDefs.RESETUEPOSITIONINGSTOREDINFORMATION.msgType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &RESETUEPOSITIONINGSTOREDINFORMATION_msgType_xer_, &BITSTRING_json_, &RESETUEPOSITIONINGSTOREDINFORMATION_msgType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_uePositioningTech_xer_ = { {"uePositioningTech>\n", "uePositioningTech>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_uePositioningTech_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_uePositioningTech_descr_ = { "@NAS_CommonTypeDefs.RESETUEPOSITIONINGSTOREDINFORMATION.uePositioningTech", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &RESETUEPOSITIONINGSTOREDINFORMATION_uePositioningTech_xer_, &BITSTRING_json_, &RESETUEPOSITIONINGSTOREDINFORMATION_uePositioningTech_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RESETUEPOSITIONINGSTOREDINFORMATION +const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_descr_ = { "@NAS_CommonTypeDefs.RESETUEPOSITIONINGSTOREDINFORMATION", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLANOffloadAcceptability_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t WLANOffloadAcceptability_iei_descr_ = { "@NAS_CommonTypeDefs.WLANOffloadAcceptability.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &WLANOffloadAcceptability_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLANOffloadAcceptability_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t WLANOffloadAcceptability_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t WLANOffloadAcceptability_spare_descr_ = { "@NAS_CommonTypeDefs.WLANOffloadAcceptability.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &WLANOffloadAcceptability_spare_xer_, &BITSTRING_json_, &WLANOffloadAcceptability_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLANOffloadAcceptability_utranOffload_xer_ = { {"utranOffload>\n", "utranOffload>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t WLANOffloadAcceptability_utranOffload_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t WLANOffloadAcceptability_utranOffload_descr_ = { "@NAS_CommonTypeDefs.WLANOffloadAcceptability.utranOffload", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &WLANOffloadAcceptability_utranOffload_xer_, &BITSTRING_json_, &WLANOffloadAcceptability_utranOffload_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WLANOffloadAcceptability_eutranOffload_xer_ = { {"eutranOffload>\n", "eutranOffload>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t WLANOffloadAcceptability_eutranOffload_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t WLANOffloadAcceptability_eutranOffload_descr_ = { "@NAS_CommonTypeDefs.WLANOffloadAcceptability.eutranOffload", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &WLANOffloadAcceptability_eutranOffload_xer_, &BITSTRING_json_, &WLANOffloadAcceptability_eutranOffload_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for WLANOffloadAcceptability +const TTCN_Typedescriptor_t WLANOffloadAcceptability_descr_ = { "@NAS_CommonTypeDefs.WLANOffloadAcceptability", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdDRXParams_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdDRXParams_iei_oer_ext_arr_[0] = {}; +const int ExtdDRXParams_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdDRXParams_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtdDRXParams_iei_oer_ext_arr_, 0, ExtdDRXParams_iei_oer_p_}; +const TTCN_Typedescriptor_t ExtdDRXParams_iei_descr_ = { "@NAS_CommonTypeDefs.ExtdDRXParams.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ExtdDRXParams_iei_xer_, &OCTETSTRING_json_, &ExtdDRXParams_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdDRXParams_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdDRXParams_iel_oer_ext_arr_[0] = {}; +const int ExtdDRXParams_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdDRXParams_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtdDRXParams_iel_oer_ext_arr_, 0, ExtdDRXParams_iel_oer_p_}; +const TTCN_Typedescriptor_t ExtdDRXParams_iel_descr_ = { "@NAS_CommonTypeDefs.ExtdDRXParams.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ExtdDRXParams_iel_xer_, &OCTETSTRING_json_, &ExtdDRXParams_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdDRXParams_pagingTimeWindow_xer_ = { {"pagingTimeWindow>\n", "pagingTimeWindow>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ExtdDRXParams_pagingTimeWindow_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ExtdDRXParams_pagingTimeWindow_descr_ = { "@NAS_CommonTypeDefs.ExtdDRXParams.pagingTimeWindow", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ExtdDRXParams_pagingTimeWindow_xer_, &BITSTRING_json_, &ExtdDRXParams_pagingTimeWindow_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdDRXParams_eDRXValue_xer_ = { {"eDRXValue>\n", "eDRXValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ExtdDRXParams_eDRXValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ExtdDRXParams_eDRXValue_descr_ = { "@NAS_CommonTypeDefs.ExtdDRXParams.eDRXValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ExtdDRXParams_eDRXValue_xer_, &BITSTRING_json_, &ExtdDRXParams_eDRXValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdDRXParams +const TTCN_Typedescriptor_t ExtdDRXParams_descr_ = { "@NAS_CommonTypeDefs.ExtdDRXParams", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdDRXParams_extdPTW_xer_ = { {"extdPTW>\n", "extdPTW>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ExtdDRXParams_extdPTW_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ExtdDRXParams_extdPTW_descr_ = { "@NAS_CommonTypeDefs.ExtdDRXParams.extdPTW", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ExtdDRXParams_extdPTW_xer_, &BITSTRING_json_, &ExtdDRXParams_extdPTW_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NBIFOMContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NBIFOMContainer_iei_oer_ext_arr_[0] = {}; +const int NBIFOMContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NBIFOMContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NBIFOMContainer_iei_oer_ext_arr_, 0, NBIFOMContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t NBIFOMContainer_iei_descr_ = { "@NAS_CommonTypeDefs.NBIFOMContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NBIFOMContainer_iei_xer_, &OCTETSTRING_json_, &NBIFOMContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NBIFOMContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NBIFOMContainer_iel_oer_ext_arr_[0] = {}; +const int NBIFOMContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NBIFOMContainer_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NBIFOMContainer_iel_oer_ext_arr_, 0, NBIFOMContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t NBIFOMContainer_iel_descr_ = { "@NAS_CommonTypeDefs.NBIFOMContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NBIFOMContainer_iel_xer_, &OCTETSTRING_json_, &NBIFOMContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NBIFOMContainer_containerContents_xer_ = { {"containerContents>\n", "containerContents>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NBIFOMContainer_containerContents_oer_ext_arr_[0] = {}; +const int NBIFOMContainer_containerContents_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NBIFOMContainer_containerContents_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NBIFOMContainer_containerContents_oer_ext_arr_, 0, NBIFOMContainer_containerContents_oer_p_}; +const TTCN_Typedescriptor_t NBIFOMContainer_containerContents_descr_ = { "@NAS_CommonTypeDefs.NBIFOMContainer.containerContents", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NBIFOMContainer_containerContents_xer_, &OCTETSTRING_json_, &NBIFOMContainer_containerContents_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NBIFOMContainer +const TTCN_Typedescriptor_t NBIFOMContainer_descr_ = { "@NAS_CommonTypeDefs.NBIFOMContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DCN__ID_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DCN__ID_iei_oer_ext_arr_[0] = {}; +const int DCN__ID_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DCN__ID_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DCN__ID_iei_oer_ext_arr_, 0, DCN__ID_iei_oer_p_}; +const TTCN_Typedescriptor_t DCN__ID_iei_descr_ = { "@NAS_CommonTypeDefs.DCN_ID.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DCN__ID_iei_xer_, &OCTETSTRING_json_, &DCN__ID_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DCN__ID_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DCN__ID_iel_oer_ext_arr_[0] = {}; +const int DCN__ID_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DCN__ID_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DCN__ID_iel_oer_ext_arr_, 0, DCN__ID_iel_oer_p_}; +const TTCN_Typedescriptor_t DCN__ID_iel_descr_ = { "@NAS_CommonTypeDefs.DCN_ID.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DCN__ID_iel_xer_, &OCTETSTRING_json_, &DCN__ID_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DCN__ID_dcnIdValue_xer_ = { {"dcnIdValue>\n", "dcnIdValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DCN__ID_dcnIdValue_oer_ext_arr_[0] = {}; +const int DCN__ID_dcnIdValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DCN__ID_dcnIdValue_oer_ = { -1, TRUE, 2, FALSE, 0, 0, DCN__ID_dcnIdValue_oer_ext_arr_, 0, DCN__ID_dcnIdValue_oer_p_}; +const TTCN_Typedescriptor_t DCN__ID_dcnIdValue_descr_ = { "@NAS_CommonTypeDefs.DCN_ID.dcnIdValue", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &DCN__ID_dcnIdValue_xer_, &OCTETSTRING_json_, &DCN__ID_dcnIdValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DCN__ID +const TTCN_Typedescriptor_t DCN__ID_descr_ = { "@NAS_CommonTypeDefs.DCN_ID", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdProtocolConfigOptions_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdProtocolConfigOptions_iei_oer_ext_arr_[0] = {}; +const int ExtdProtocolConfigOptions_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtdProtocolConfigOptions_iei_oer_ext_arr_, 0, ExtdProtocolConfigOptions_iei_oer_p_}; +const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_iei_descr_ = { "@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ExtdProtocolConfigOptions_iei_xer_, &OCTETSTRING_json_, &ExtdProtocolConfigOptions_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdProtocolConfigOptions_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdProtocolConfigOptions_iel_oer_ext_arr_[0] = {}; +const int ExtdProtocolConfigOptions_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ExtdProtocolConfigOptions_iel_oer_ext_arr_, 0, ExtdProtocolConfigOptions_iel_oer_p_}; +const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_iel_descr_ = { "@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ExtdProtocolConfigOptions_iel_xer_, &OCTETSTRING_json_, &ExtdProtocolConfigOptions_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdProtocolConfigOptions_ext_xer_ = { {"ext>\n", "ext>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_ext_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_ext_descr_ = { "@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.ext", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ExtdProtocolConfigOptions_ext_xer_, &BITSTRING_json_, &ExtdProtocolConfigOptions_ext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdProtocolConfigOptions_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_spare_descr_ = { "@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &ExtdProtocolConfigOptions_spare_xer_, &BITSTRING_json_, &ExtdProtocolConfigOptions_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdProtocolConfigOptions_configProtocol_xer_ = { {"configProtocol>\n", "configProtocol>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_configProtocol_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_configProtocol_descr_ = { "@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.configProtocol", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &ExtdProtocolConfigOptions_configProtocol_xer_, &BITSTRING_json_, &ExtdProtocolConfigOptions_configProtocol_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdProtocolConfigOptions +const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_descr_ = { "@NAS_CommonTypeDefs.ExtdProtocolConfigOptions", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdProtocolConfigOptions_pco +const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_pco_descr_ = { "@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.pco", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &ProtocolContainer_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NAS__ExtdProtocolConfigOptions__Type +const TTCN_Typedescriptor_t NAS__ExtdProtocolConfigOptions__Type_descr_ = { "@NAS_CommonTypeDefs.NAS_ExtdProtocolConfigOptions_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &ProtocolContainer_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalInformation_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AdditionalInformation_iei_oer_ext_arr_[0] = {}; +const int AdditionalInformation_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AdditionalInformation_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AdditionalInformation_iei_oer_ext_arr_, 0, AdditionalInformation_iei_oer_p_}; +const TTCN_Typedescriptor_t AdditionalInformation_iei_descr_ = { "@NAS_CommonTypeDefs.AdditionalInformation.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AdditionalInformation_iei_xer_, &OCTETSTRING_json_, &AdditionalInformation_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalInformation_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AdditionalInformation_iel_oer_ext_arr_[0] = {}; +const int AdditionalInformation_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AdditionalInformation_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AdditionalInformation_iel_oer_ext_arr_, 0, AdditionalInformation_iel_oer_p_}; +const TTCN_Typedescriptor_t AdditionalInformation_iel_descr_ = { "@NAS_CommonTypeDefs.AdditionalInformation.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AdditionalInformation_iel_xer_, &OCTETSTRING_json_, &AdditionalInformation_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalInformation_additionalInfo_xer_ = { {"additionalInfo>\n", "additionalInfo>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AdditionalInformation_additionalInfo_oer_ext_arr_[0] = {}; +const int AdditionalInformation_additionalInfo_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AdditionalInformation_additionalInfo_oer_ = { -1, TRUE, -1, FALSE, 0, 0, AdditionalInformation_additionalInfo_oer_ext_arr_, 0, AdditionalInformation_additionalInfo_oer_p_}; +const TTCN_Typedescriptor_t AdditionalInformation_additionalInfo_descr_ = { "@NAS_CommonTypeDefs.AdditionalInformation.additionalInfo", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &AdditionalInformation_additionalInfo_xer_, &OCTETSTRING_json_, &AdditionalInformation_additionalInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AdditionalInformation +const TTCN_Typedescriptor_t AdditionalInformation_descr_ = { "@NAS_CommonTypeDefs.AdditionalInformation", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AuthenticationResponseParameter_res_xer_ = { {"res>\n", "res>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AuthenticationResponseParameter_res_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AuthenticationResponseParameter_res_descr_ = { "@NAS_CommonTypeDefs.AuthenticationResponseParameter.res", &BITSTRING_ber_, &BITSTRING_raw_, NULL, &AuthenticationResponseParameter_res_xer_, &BITSTRING_json_, &AuthenticationResponseParameter_res_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AuthenticationResponseParameter +const TTCN_Typedescriptor_t AuthenticationResponseParameter_descr_ = { "@NAS_CommonTypeDefs.AuthenticationResponseParameter", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AuthenticationResponseParameter_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AuthenticationResponseParameter_iei_oer_ext_arr_[0] = {}; +const int AuthenticationResponseParameter_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AuthenticationResponseParameter_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AuthenticationResponseParameter_iei_oer_ext_arr_, 0, AuthenticationResponseParameter_iei_oer_p_}; +const TTCN_Typedescriptor_t AuthenticationResponseParameter_iei_descr_ = { "@NAS_CommonTypeDefs.AuthenticationResponseParameter.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AuthenticationResponseParameter_iei_xer_, &OCTETSTRING_json_, &AuthenticationResponseParameter_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AuthenticationResponseParameter_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AuthenticationResponseParameter_iel_oer_ext_arr_[0] = {}; +const int AuthenticationResponseParameter_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AuthenticationResponseParameter_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AuthenticationResponseParameter_iel_oer_ext_arr_, 0, AuthenticationResponseParameter_iel_oer_p_}; +const TTCN_Typedescriptor_t AuthenticationResponseParameter_iel_descr_ = { "@NAS_CommonTypeDefs.AuthenticationResponseParameter.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AuthenticationResponseParameter_iel_xer_, &OCTETSTRING_json_, &AuthenticationResponseParameter_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__KeySetIdentifier_tsc_xer_ = { {"tsc>\n", "tsc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__KeySetIdentifier_tsc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__KeySetIdentifier_tsc_descr_ = { "@NAS_CommonTypeDefs.NAS_KeySetIdentifier.tsc", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NAS__KeySetIdentifier_tsc_xer_, &BITSTRING_json_, &NAS__KeySetIdentifier_tsc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__KeySetIdentifier_nasKeySetId_xer_ = { {"nasKeySetId>\n", "nasKeySetId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__KeySetIdentifier_nasKeySetId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__KeySetIdentifier_nasKeySetId_descr_ = { "@NAS_CommonTypeDefs.NAS_KeySetIdentifier.nasKeySetId", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NAS__KeySetIdentifier_nasKeySetId_xer_, &BITSTRING_json_, &NAS__KeySetIdentifier_nasKeySetId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NAS__KeySetIdentifier +const TTCN_Typedescriptor_t NAS__KeySetIdentifier_descr_ = { "@NAS_CommonTypeDefs.NAS_KeySetIdentifier", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__KeySetIdentifier_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NAS__KeySetIdentifier_iei_descr_ = { "@NAS_CommonTypeDefs.NAS_KeySetIdentifier.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NAS__KeySetIdentifier_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HashMME_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HashMME_iel_oer_ext_arr_[0] = {}; +const int HashMME_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HashMME_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, HashMME_iel_oer_ext_arr_, 0, HashMME_iel_oer_p_}; +const TTCN_Typedescriptor_t HashMME_iel_descr_ = { "@NAS_CommonTypeDefs.HashMME.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &HashMME_iel_xer_, &OCTETSTRING_json_, &HashMME_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HashMME_hashMME_xer_ = { {"hashMME>\n", "hashMME>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HashMME_hashMME_oer_ext_arr_[0] = {}; +const int HashMME_hashMME_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HashMME_hashMME_oer_ = { -1, TRUE, 8, FALSE, 0, 0, HashMME_hashMME_oer_ext_arr_, 0, HashMME_hashMME_oer_p_}; +const TTCN_Typedescriptor_t HashMME_hashMME_descr_ = { "@NAS_CommonTypeDefs.HashMME.hashMME", &OCTETSTRING_ber_, &CommonDefs::O8__Type_raw_, &OCTETSTRING_text_, &HashMME_hashMME_xer_, &OCTETSTRING_json_, &HashMME_hashMME_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for HashMME +const TTCN_Typedescriptor_t HashMME_descr_ = { "@NAS_CommonTypeDefs.HashMME", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t HashMME_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int HashMME_iei_oer_ext_arr_[0] = {}; +const int HashMME_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t HashMME_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, HashMME_iei_oer_ext_arr_, 0, HashMME_iei_oer_p_}; +const TTCN_Typedescriptor_t HashMME_iei_descr_ = { "@NAS_CommonTypeDefs.HashMME.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &HashMME_iei_xer_, &OCTETSTRING_json_, &HashMME_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__Address_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__Address_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__Address_spare_descr_ = { "@NAS_CommonTypeDefs.PDN_Address.spare", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &PDN__Address_spare_xer_, &BITSTRING_json_, &PDN__Address_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__Address_typeValue_xer_ = { {"typeValue>\n", "typeValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDN__Address_typeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDN__Address_typeValue_descr_ = { "@NAS_CommonTypeDefs.PDN_Address.typeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &PDN__Address_typeValue_xer_, &BITSTRING_json_, &PDN__Address_typeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__Address_adressInfo_xer_ = { {"adressInfo>\n", "adressInfo>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDN__Address_adressInfo_oer_ext_arr_[0] = {}; +const int PDN__Address_adressInfo_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDN__Address_adressInfo_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PDN__Address_adressInfo_oer_ext_arr_, 0, PDN__Address_adressInfo_oer_p_}; +const TTCN_Typedescriptor_t PDN__Address_adressInfo_descr_ = { "@NAS_CommonTypeDefs.PDN_Address.adressInfo", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &PDN__Address_adressInfo_xer_, &OCTETSTRING_json_, &PDN__Address_adressInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDN__Address +const TTCN_Typedescriptor_t PDN__Address_descr_ = { "@NAS_CommonTypeDefs.PDN_Address", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__Address_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDN__Address_iei_oer_ext_arr_[0] = {}; +const int PDN__Address_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDN__Address_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDN__Address_iei_oer_ext_arr_, 0, PDN__Address_iei_oer_p_}; +const TTCN_Typedescriptor_t PDN__Address_iei_descr_ = { "@NAS_CommonTypeDefs.PDN_Address.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDN__Address_iei_xer_, &OCTETSTRING_json_, &PDN__Address_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDN__Address_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDN__Address_iel_oer_ext_arr_[0] = {}; +const int PDN__Address_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDN__Address_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDN__Address_iel_oer_ext_arr_, 0, PDN__Address_iel_oer_p_}; +const TTCN_Typedescriptor_t PDN__Address_iel_descr_ = { "@NAS_CommonTypeDefs.PDN_Address.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDN__Address_iel_xer_, &OCTETSTRING_json_, &PDN__Address_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReplayedNASMessageContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReplayedNASMessageContainer_iel_oer_ext_arr_[0] = {}; +const int ReplayedNASMessageContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReplayedNASMessageContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ReplayedNASMessageContainer_iel_oer_ext_arr_, 0, ReplayedNASMessageContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t ReplayedNASMessageContainer_iel_descr_ = { "@NAS_CommonTypeDefs.ReplayedNASMessageContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ReplayedNASMessageContainer_iel_xer_, &OCTETSTRING_json_, &ReplayedNASMessageContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReplayedNASMessageContainer_replayedNASMsgContainerValue_xer_ = { {"replayedNASMsgContainerValue>\n", "replayedNASMsgContainerValue>\n"}, {30, 30}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReplayedNASMessageContainer_replayedNASMsgContainerValue_oer_ext_arr_[0] = {}; +const int ReplayedNASMessageContainer_replayedNASMsgContainerValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReplayedNASMessageContainer_replayedNASMsgContainerValue_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ReplayedNASMessageContainer_replayedNASMsgContainerValue_oer_ext_arr_, 0, ReplayedNASMessageContainer_replayedNASMsgContainerValue_oer_p_}; +const TTCN_Typedescriptor_t ReplayedNASMessageContainer_replayedNASMsgContainerValue_descr_ = { "@NAS_CommonTypeDefs.ReplayedNASMessageContainer.replayedNASMsgContainerValue", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ReplayedNASMessageContainer_replayedNASMsgContainerValue_xer_, &OCTETSTRING_json_, &ReplayedNASMessageContainer_replayedNASMsgContainerValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ReplayedNASMessageContainer +const TTCN_Typedescriptor_t ReplayedNASMessageContainer_descr_ = { "@NAS_CommonTypeDefs.ReplayedNASMessageContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReplayedNASMessageContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReplayedNASMessageContainer_iei_oer_ext_arr_[0] = {}; +const int ReplayedNASMessageContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReplayedNASMessageContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ReplayedNASMessageContainer_iei_oer_ext_arr_, 0, ReplayedNASMessageContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t ReplayedNASMessageContainer_iei_descr_ = { "@NAS_CommonTypeDefs.ReplayedNASMessageContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ReplayedNASMessageContainer_iei_xer_, &OCTETSTRING_json_, &ReplayedNASMessageContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityAlgorithms_spare1_xer_ = { {"spare1>\n", "spare1>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_spare1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_spare1_descr_ = { "@NAS_CommonTypeDefs.NAS_SecurityAlgorithms.spare1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NAS__SecurityAlgorithms_spare1_xer_, &BITSTRING_json_, &NAS__SecurityAlgorithms_spare1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityAlgorithms_cipheringType_xer_ = { {"cipheringType>\n", "cipheringType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_cipheringType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_cipheringType_descr_ = { "@NAS_CommonTypeDefs.NAS_SecurityAlgorithms.cipheringType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NAS__SecurityAlgorithms_cipheringType_xer_, &BITSTRING_json_, &NAS__SecurityAlgorithms_cipheringType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityAlgorithms_spare2_xer_ = { {"spare2>\n", "spare2>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_spare2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_spare2_descr_ = { "@NAS_CommonTypeDefs.NAS_SecurityAlgorithms.spare2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NAS__SecurityAlgorithms_spare2_xer_, &BITSTRING_json_, &NAS__SecurityAlgorithms_spare2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityAlgorithms_integrityType_xer_ = { {"integrityType>\n", "integrityType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_integrityType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_integrityType_descr_ = { "@NAS_CommonTypeDefs.NAS_SecurityAlgorithms.integrityType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NAS__SecurityAlgorithms_integrityType_xer_, &BITSTRING_json_, &NAS__SecurityAlgorithms_integrityType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NAS__SecurityAlgorithms +const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_descr_ = { "@NAS_CommonTypeDefs.NAS_SecurityAlgorithms", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__SecurityAlgorithms_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__SecurityAlgorithms_iei_oer_ext_arr_[0] = {}; +const int NAS__SecurityAlgorithms_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NAS__SecurityAlgorithms_iei_oer_ext_arr_, 0, NAS__SecurityAlgorithms_iei_oer_p_}; +const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_iei_descr_ = { "@NAS_CommonTypeDefs.NAS_SecurityAlgorithms.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NAS__SecurityAlgorithms_iei_xer_, &OCTETSTRING_json_, &NAS__SecurityAlgorithms_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Extd__EPS__QOS_iel_oer_ext_arr_[0] = {}; +const int Extd__EPS__QOS_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Extd__EPS__QOS_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Extd__EPS__QOS_iel_oer_ext_arr_, 0, Extd__EPS__QOS_iel_oer_p_}; +const TTCN_Typedescriptor_t Extd__EPS__QOS_iel_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Extd__EPS__QOS_iel_xer_, &OCTETSTRING_json_, &Extd__EPS__QOS_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_unitMaxBitRate_xer_ = { {"unitMaxBitRate>\n", "unitMaxBitRate>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_unitMaxBitRate_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_unitMaxBitRate_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.unitMaxBitRate", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_unitMaxBitRate_xer_, &BITSTRING_json_, &Extd__EPS__QOS_unitMaxBitRate_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_maxBitRateUl__1_xer_ = { {"maxBitRateUl_1>\n", "maxBitRateUl_1>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_maxBitRateUl__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_maxBitRateUl__1_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.maxBitRateUl_1", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_maxBitRateUl__1_xer_, &BITSTRING_json_, &Extd__EPS__QOS_maxBitRateUl__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_maxBitRateUl__2_xer_ = { {"maxBitRateUl_2>\n", "maxBitRateUl_2>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_maxBitRateUl__2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_maxBitRateUl__2_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.maxBitRateUl_2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_maxBitRateUl__2_xer_, &BITSTRING_json_, &Extd__EPS__QOS_maxBitRateUl__2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_maxBitRateDl__1_xer_ = { {"maxBitRateDl_1>\n", "maxBitRateDl_1>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_maxBitRateDl__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_maxBitRateDl__1_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.maxBitRateDl_1", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_maxBitRateDl__1_xer_, &BITSTRING_json_, &Extd__EPS__QOS_maxBitRateDl__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_maxBitRateDl__2_xer_ = { {"maxBitRateDl_2>\n", "maxBitRateDl_2>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_maxBitRateDl__2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_maxBitRateDl__2_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.maxBitRateDl_2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_maxBitRateDl__2_xer_, &BITSTRING_json_, &Extd__EPS__QOS_maxBitRateDl__2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_unitGuaranteedBitRate_xer_ = { {"unitGuaranteedBitRate>\n", "unitGuaranteedBitRate>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_unitGuaranteedBitRate_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_unitGuaranteedBitRate_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.unitGuaranteedBitRate", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_unitGuaranteedBitRate_xer_, &BITSTRING_json_, &Extd__EPS__QOS_unitGuaranteedBitRate_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__1_xer_ = { {"guaranteedBitRateUl_1>\n", "guaranteedBitRateUl_1>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__1_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.guaranteedBitRateUl_1", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_guaranteedBitRateUl__1_xer_, &BITSTRING_json_, &Extd__EPS__QOS_guaranteedBitRateUl__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__2_xer_ = { {"guaranteedBitRateUl_2>\n", "guaranteedBitRateUl_2>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__2_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.guaranteedBitRateUl_2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_guaranteedBitRateUl__2_xer_, &BITSTRING_json_, &Extd__EPS__QOS_guaranteedBitRateUl__2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__1_xer_ = { {"guaranteedBitRateDl_1>\n", "guaranteedBitRateDl_1>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__1_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.guaranteedBitRateDl_1", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_guaranteedBitRateDl__1_xer_, &BITSTRING_json_, &Extd__EPS__QOS_guaranteedBitRateDl__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__2_xer_ = { {"guaranteedBitRateDl_2>\n", "guaranteedBitRateDl_2>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__2_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.guaranteedBitRateDl_2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &Extd__EPS__QOS_guaranteedBitRateDl__2_xer_, &BITSTRING_json_, &Extd__EPS__QOS_guaranteedBitRateDl__2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Extd__EPS__QOS +const TTCN_Typedescriptor_t Extd__EPS__QOS_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Extd__EPS__QOS_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Extd__EPS__QOS_iei_oer_ext_arr_[0] = {}; +const int Extd__EPS__QOS_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Extd__EPS__QOS_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Extd__EPS__QOS_iei_oer_ext_arr_, 0, Extd__EPS__QOS_iei_oer_p_}; +const TTCN_Typedescriptor_t Extd__EPS__QOS_iei_descr_ = { "@NAS_CommonTypeDefs.Extd_EPS_QOS.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Extd__EPS__QOS_iei_xer_, &OCTETSTRING_json_, &Extd__EPS__QOS_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__Status_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__Status_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__Status_spare_descr_ = { "@NAS_CommonTypeDefs.UE_Status.spare", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &UE__Status_spare_xer_, &BITSTRING_json_, &UE__Status_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__Status_n1ModeRegistered_xer_ = { {"n1ModeRegistered>\n", "n1ModeRegistered>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__Status_n1ModeRegistered_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__Status_n1ModeRegistered_descr_ = { "@NAS_CommonTypeDefs.UE_Status.n1ModeRegistered", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UE__Status_n1ModeRegistered_xer_, &BITSTRING_json_, &UE__Status_n1ModeRegistered_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__Status_s1ModeRegistered_xer_ = { {"s1ModeRegistered>\n", "s1ModeRegistered>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__Status_s1ModeRegistered_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__Status_s1ModeRegistered_descr_ = { "@NAS_CommonTypeDefs.UE_Status.s1ModeRegistered", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UE__Status_s1ModeRegistered_xer_, &BITSTRING_json_, &UE__Status_s1ModeRegistered_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__Status +const TTCN_Typedescriptor_t UE__Status_descr_ = { "@NAS_CommonTypeDefs.UE_Status", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__Status_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__Status_iei_oer_ext_arr_[0] = {}; +const int UE__Status_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__Status_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__Status_iei_oer_ext_arr_, 0, UE__Status_iei_oer_p_}; +const TTCN_Typedescriptor_t UE__Status_iei_descr_ = { "@NAS_CommonTypeDefs.UE_Status.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__Status_iei_xer_, &OCTETSTRING_json_, &UE__Status_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__Status_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__Status_iel_oer_ext_arr_[0] = {}; +const int UE__Status_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__Status_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__Status_iel_oer_ext_arr_, 0, UE__Status_iel_oer_p_}; +const TTCN_Typedescriptor_t UE__Status_iel_descr_ = { "@NAS_CommonTypeDefs.UE_Status.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__Status_iel_xer_, &OCTETSTRING_json_, &UE__Status_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdEmergNumList_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdEmergNumList_iei_oer_ext_arr_[0] = {}; +const int ExtdEmergNumList_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdEmergNumList_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtdEmergNumList_iei_oer_ext_arr_, 0, ExtdEmergNumList_iei_oer_p_}; +const TTCN_Typedescriptor_t ExtdEmergNumList_iei_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNumList.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ExtdEmergNumList_iei_xer_, &OCTETSTRING_json_, &ExtdEmergNumList_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdEmergNumList_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdEmergNumList_iel_oer_ext_arr_[0] = {}; +const int ExtdEmergNumList_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdEmergNumList_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ExtdEmergNumList_iel_oer_ext_arr_, 0, ExtdEmergNumList_iel_oer_p_}; +const TTCN_Typedescriptor_t ExtdEmergNumList_iel_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNumList.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ExtdEmergNumList_iel_xer_, &OCTETSTRING_json_, &ExtdEmergNumList_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdEmergNumList_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ExtdEmergNumList_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ExtdEmergNumList_spareBits_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNumList.spareBits", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &ExtdEmergNumList_spareBits_xer_, &BITSTRING_json_, &ExtdEmergNumList_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdEmergNumList_extdEmergNumListValidity_xer_ = { {"extdEmergNumListValidity>\n", "extdEmergNumListValidity>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ExtdEmergNumList_extdEmergNumListValidity_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ExtdEmergNumList_extdEmergNumListValidity_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNumList.extdEmergNumListValidity", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ExtdEmergNumList_extdEmergNumListValidity_xer_, &BITSTRING_json_, &ExtdEmergNumList_extdEmergNumListValidity_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdEmergNumList_emergNum +const TTCN_Typedescriptor_t ExtdEmergNumList_emergNum_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNumList.emergNum", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &ExtdEmergNum_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdEmergNum_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdEmergNum_len_oer_ext_arr_[0] = {}; +const int ExtdEmergNum_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdEmergNum_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtdEmergNum_len_oer_ext_arr_, 0, ExtdEmergNum_len_oer_p_}; +const TTCN_Typedescriptor_t ExtdEmergNum_len_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNum.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ExtdEmergNum_len_xer_, &OCTETSTRING_json_, &ExtdEmergNum_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdEmergNum_digits_xer_ = { {"digits>\n", "digits>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdEmergNum_digits_oer_ext_arr_[0] = {}; +const int ExtdEmergNum_digits_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdEmergNum_digits_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ExtdEmergNum_digits_oer_ext_arr_, 0, ExtdEmergNum_digits_oer_p_}; +const TTCN_Typedescriptor_t ExtdEmergNum_digits_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNum.digits", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ExtdEmergNum_digits_xer_, &OCTETSTRING_json_, &ExtdEmergNum_digits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdEmergNum_lengthOfSubService_xer_ = { {"lengthOfSubService>\n", "lengthOfSubService>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdEmergNum_lengthOfSubService_oer_ext_arr_[0] = {}; +const int ExtdEmergNum_lengthOfSubService_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdEmergNum_lengthOfSubService_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtdEmergNum_lengthOfSubService_oer_ext_arr_, 0, ExtdEmergNum_lengthOfSubService_oer_p_}; +const TTCN_Typedescriptor_t ExtdEmergNum_lengthOfSubService_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNum.lengthOfSubService", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ExtdEmergNum_lengthOfSubService_xer_, &OCTETSTRING_json_, &ExtdEmergNum_lengthOfSubService_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdEmergNum_subServices_xer_ = { {"subServices>\n", "subServices>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdEmergNum_subServices_oer_ext_arr_[0] = {}; +const int ExtdEmergNum_subServices_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdEmergNum_subServices_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ExtdEmergNum_subServices_oer_ext_arr_, 0, ExtdEmergNum_subServices_oer_p_}; +const TTCN_Typedescriptor_t ExtdEmergNum_subServices_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNum.subServices", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ExtdEmergNum_subServices_xer_, &OCTETSTRING_json_, &ExtdEmergNum_subServices_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdEmergNum +const TTCN_Typedescriptor_t ExtdEmergNum_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNum", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdEmergNumList +const TTCN_Typedescriptor_t ExtdEmergNumList_descr_ = { "@NAS_CommonTypeDefs.ExtdEmergNumList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__SecurityCapability_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__SecurityCapability_iel_oer_ext_arr_[0] = {}; +const int UE__SecurityCapability_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__SecurityCapability_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__SecurityCapability_iel_oer_ext_arr_, 0, UE__SecurityCapability_iel_oer_p_}; +const TTCN_Typedescriptor_t UE__SecurityCapability_iel_descr_ = { "@NAS_CommonTypeDefs.UE_SecurityCapability.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__SecurityCapability_iel_xer_, &OCTETSTRING_json_, &UE__SecurityCapability_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__SecurityCapability_eeaCap_xer_ = { {"eeaCap>\n", "eeaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__SecurityCapability_eeaCap_oer_ext_arr_[0] = {}; +const int UE__SecurityCapability_eeaCap_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__SecurityCapability_eeaCap_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__SecurityCapability_eeaCap_oer_ext_arr_, 0, UE__SecurityCapability_eeaCap_oer_p_}; +const TTCN_Typedescriptor_t UE__SecurityCapability_eeaCap_descr_ = { "@NAS_CommonTypeDefs.UE_SecurityCapability.eeaCap", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__SecurityCapability_eeaCap_xer_, &OCTETSTRING_json_, &UE__SecurityCapability_eeaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__SecurityCapability_eiaCap_xer_ = { {"eiaCap>\n", "eiaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__SecurityCapability_eiaCap_oer_ext_arr_[0] = {}; +const int UE__SecurityCapability_eiaCap_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__SecurityCapability_eiaCap_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__SecurityCapability_eiaCap_oer_ext_arr_, 0, UE__SecurityCapability_eiaCap_oer_p_}; +const TTCN_Typedescriptor_t UE__SecurityCapability_eiaCap_descr_ = { "@NAS_CommonTypeDefs.UE_SecurityCapability.eiaCap", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__SecurityCapability_eiaCap_xer_, &OCTETSTRING_json_, &UE__SecurityCapability_eiaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__SecurityCapability +const TTCN_Typedescriptor_t UE__SecurityCapability_descr_ = { "@NAS_CommonTypeDefs.UE_SecurityCapability", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__SecurityCapability_ueaCap_xer_ = { {"ueaCap>\n", "ueaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__SecurityCapability_ueaCap_oer_ext_arr_[0] = {}; +const int UE__SecurityCapability_ueaCap_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__SecurityCapability_ueaCap_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__SecurityCapability_ueaCap_oer_ext_arr_, 0, UE__SecurityCapability_ueaCap_oer_p_}; +const TTCN_Typedescriptor_t UE__SecurityCapability_ueaCap_descr_ = { "@NAS_CommonTypeDefs.UE_SecurityCapability.ueaCap", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__SecurityCapability_ueaCap_xer_, &OCTETSTRING_json_, &UE__SecurityCapability_ueaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__SecurityCapability_uiaCap_xer_ = { {"uiaCap>\n", "uiaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__SecurityCapability_uiaCap_oer_ext_arr_[0] = {}; +const int UE__SecurityCapability_uiaCap_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__SecurityCapability_uiaCap_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__SecurityCapability_uiaCap_oer_ext_arr_, 0, UE__SecurityCapability_uiaCap_oer_p_}; +const TTCN_Typedescriptor_t UE__SecurityCapability_uiaCap_descr_ = { "@NAS_CommonTypeDefs.UE_SecurityCapability.uiaCap", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__SecurityCapability_uiaCap_xer_, &OCTETSTRING_json_, &UE__SecurityCapability_uiaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__SecurityCapability_geaCap_xer_ = { {"geaCap>\n", "geaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__SecurityCapability_geaCap_oer_ext_arr_[0] = {}; +const int UE__SecurityCapability_geaCap_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__SecurityCapability_geaCap_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__SecurityCapability_geaCap_oer_ext_arr_, 0, UE__SecurityCapability_geaCap_oer_p_}; +const TTCN_Typedescriptor_t UE__SecurityCapability_geaCap_descr_ = { "@NAS_CommonTypeDefs.UE_SecurityCapability.geaCap", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__SecurityCapability_geaCap_xer_, &OCTETSTRING_json_, &UE__SecurityCapability_geaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__QualityOfService_iel_oer_ext_arr_[0] = {}; +const int EPS__QualityOfService_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__QualityOfService_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__QualityOfService_iel_oer_ext_arr_, 0, EPS__QualityOfService_iel_oer_p_}; +const TTCN_Typedescriptor_t EPS__QualityOfService_iel_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__QualityOfService_iel_xer_, &OCTETSTRING_json_, &EPS__QualityOfService_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_qci_xer_ = { {"qci>\n", "qci>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_qci_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_qci_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.qci", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_qci_xer_, &BITSTRING_json_, &EPS__QualityOfService_qci_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__QualityOfService +const TTCN_Typedescriptor_t EPS__QualityOfService_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__QualityOfService_iei_oer_ext_arr_[0] = {}; +const int EPS__QualityOfService_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__QualityOfService_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__QualityOfService_iei_oer_ext_arr_, 0, EPS__QualityOfService_iei_oer_p_}; +const TTCN_Typedescriptor_t EPS__QualityOfService_iei_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__QualityOfService_iei_xer_, &OCTETSTRING_json_, &EPS__QualityOfService_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_maxBitRateUl_xer_ = { {"maxBitRateUl>\n", "maxBitRateUl>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateUl_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateUl_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.maxBitRateUl", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_maxBitRateUl_xer_, &BITSTRING_json_, &EPS__QualityOfService_maxBitRateUl_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_maxBitRateDl_xer_ = { {"maxBitRateDl>\n", "maxBitRateDl>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateDl_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateDl_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.maxBitRateDl", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_maxBitRateDl_xer_, &BITSTRING_json_, &EPS__QualityOfService_maxBitRateDl_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateUl_xer_ = { {"guaranteedBitRateUl>\n", "guaranteedBitRateUl>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateUl_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateUl_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.guaranteedBitRateUl", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_guaranteedBitRateUl_xer_, &BITSTRING_json_, &EPS__QualityOfService_guaranteedBitRateUl_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateDl_xer_ = { {"guaranteedBitRateDl>\n", "guaranteedBitRateDl>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateDl_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateDl_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.guaranteedBitRateDl", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_guaranteedBitRateDl_xer_, &BITSTRING_json_, &EPS__QualityOfService_guaranteedBitRateDl_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_maxBitRateUlExt_xer_ = { {"maxBitRateUlExt>\n", "maxBitRateUlExt>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateUlExt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateUlExt_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.maxBitRateUlExt", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_maxBitRateUlExt_xer_, &BITSTRING_json_, &EPS__QualityOfService_maxBitRateUlExt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_maxBitRateDlExt_xer_ = { {"maxBitRateDlExt>\n", "maxBitRateDlExt>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateDlExt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateDlExt_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.maxBitRateDlExt", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_maxBitRateDlExt_xer_, &BITSTRING_json_, &EPS__QualityOfService_maxBitRateDlExt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateUlExt_xer_ = { {"guaranteedBitRateUlExt>\n", "guaranteedBitRateUlExt>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateUlExt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateUlExt_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.guaranteedBitRateUlExt", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_guaranteedBitRateUlExt_xer_, &BITSTRING_json_, &EPS__QualityOfService_guaranteedBitRateUlExt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateDlExt_xer_ = { {"guaranteedBitRateDlExt>\n", "guaranteedBitRateDlExt>\n"}, {24, 24}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateDlExt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateDlExt_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.guaranteedBitRateDlExt", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_guaranteedBitRateDlExt_xer_, &BITSTRING_json_, &EPS__QualityOfService_guaranteedBitRateDlExt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_maxBitRateUL__Ext2_xer_ = { {"maxBitRateUL_Ext2>\n", "maxBitRateUL_Ext2>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateUL__Ext2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateUL__Ext2_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.maxBitRateUL_Ext2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_maxBitRateUL__Ext2_xer_, &BITSTRING_json_, &EPS__QualityOfService_maxBitRateUL__Ext2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_maxBitRateDL__Ext2_xer_ = { {"maxBitRateDL_Ext2>\n", "maxBitRateDL_Ext2>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateDL__Ext2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateDL__Ext2_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.maxBitRateDL_Ext2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_maxBitRateDL__Ext2_xer_, &BITSTRING_json_, &EPS__QualityOfService_maxBitRateDL__Ext2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateUL__Ext2_xer_ = { {"guaranteedBitRateUL_Ext2>\n", "guaranteedBitRateUL_Ext2>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateUL__Ext2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateUL__Ext2_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.guaranteedBitRateUL_Ext2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_guaranteedBitRateUL__Ext2_xer_, &BITSTRING_json_, &EPS__QualityOfService_guaranteedBitRateUL__Ext2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateDL__Ext2_xer_ = { {"guaranteedBitRateDL_Ext2>\n", "guaranteedBitRateDL_Ext2>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateDL__Ext2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateDL__Ext2_descr_ = { "@NAS_CommonTypeDefs.EPS_QualityOfService.guaranteedBitRateDL_Ext2", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__QualityOfService_guaranteedBitRateDL__Ext2_xer_, &BITSTRING_json_, &EPS__QualityOfService_guaranteedBitRateDL__Ext2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__BearerContextStatus_ebi5__7_xer_ = { {"ebi5_7>\n", "ebi5_7>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__BearerContextStatus_ebi5__7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__BearerContextStatus_ebi5__7_descr_ = { "@NAS_CommonTypeDefs.EPS_BearerContextStatus.ebi5_7", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &EPS__BearerContextStatus_ebi5__7_xer_, &BITSTRING_json_, &EPS__BearerContextStatus_ebi5__7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__BearerContextStatus_ebi4__1_xer_ = { {"ebi4_1>\n", "ebi4_1>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__BearerContextStatus_ebi4__1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__BearerContextStatus_ebi4__1_descr_ = { "@NAS_CommonTypeDefs.EPS_BearerContextStatus.ebi4_1", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &EPS__BearerContextStatus_ebi4__1_xer_, &BITSTRING_json_, &EPS__BearerContextStatus_ebi4__1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__BearerContextStatus_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__BearerContextStatus_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__BearerContextStatus_spare_descr_ = { "@NAS_CommonTypeDefs.EPS_BearerContextStatus.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &EPS__BearerContextStatus_spare_xer_, &BITSTRING_json_, &EPS__BearerContextStatus_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__BearerContextStatus_ebi8__15_xer_ = { {"ebi8_15>\n", "ebi8_15>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EPS__BearerContextStatus_ebi8__15_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EPS__BearerContextStatus_ebi8__15_descr_ = { "@NAS_CommonTypeDefs.EPS_BearerContextStatus.ebi8_15", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &EPS__BearerContextStatus_ebi8__15_xer_, &BITSTRING_json_, &EPS__BearerContextStatus_ebi8__15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__BearerContextStatus +const TTCN_Typedescriptor_t EPS__BearerContextStatus_descr_ = { "@NAS_CommonTypeDefs.EPS_BearerContextStatus", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__BearerContextStatus_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__BearerContextStatus_iei_oer_ext_arr_[0] = {}; +const int EPS__BearerContextStatus_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__BearerContextStatus_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__BearerContextStatus_iei_oer_ext_arr_, 0, EPS__BearerContextStatus_iei_oer_p_}; +const TTCN_Typedescriptor_t EPS__BearerContextStatus_iei_descr_ = { "@NAS_CommonTypeDefs.EPS_BearerContextStatus.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__BearerContextStatus_iei_xer_, &OCTETSTRING_json_, &EPS__BearerContextStatus_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__BearerContextStatus_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__BearerContextStatus_iel_oer_ext_arr_[0] = {}; +const int EPS__BearerContextStatus_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__BearerContextStatus_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__BearerContextStatus_iel_oer_ext_arr_, 0, EPS__BearerContextStatus_iel_oer_p_}; +const TTCN_Typedescriptor_t EPS__BearerContextStatus_iel_descr_ = { "@NAS_CommonTypeDefs.EPS_BearerContextStatus.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__BearerContextStatus_iel_xer_, &OCTETSTRING_json_, &EPS__BearerContextStatus_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapId_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UERadioCapId_id_oer_ext_arr_[0] = {}; +const int UERadioCapId_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UERadioCapId_id_oer_ = { -1, TRUE, -1, FALSE, 0, 0, UERadioCapId_id_oer_ext_arr_, 0, UERadioCapId_id_oer_p_}; +const TTCN_Typedescriptor_t UERadioCapId_id_descr_ = { "@NAS_CommonTypeDefs.UERadioCapId.id", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &UERadioCapId_id_xer_, &OCTETSTRING_json_, &UERadioCapId_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UERadioCapId +const TTCN_Typedescriptor_t UERadioCapId_descr_ = { "@NAS_CommonTypeDefs.UERadioCapId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapId_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UERadioCapId_iei_oer_ext_arr_[0] = {}; +const int UERadioCapId_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UERadioCapId_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UERadioCapId_iei_oer_ext_arr_, 0, UERadioCapId_iei_oer_p_}; +const TTCN_Typedescriptor_t UERadioCapId_iei_descr_ = { "@NAS_CommonTypeDefs.UERadioCapId.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UERadioCapId_iei_xer_, &OCTETSTRING_json_, &UERadioCapId_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapId_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UERadioCapId_iel_oer_ext_arr_[0] = {}; +const int UERadioCapId_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UERadioCapId_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UERadioCapId_iel_oer_ext_arr_, 0, UERadioCapId_iel_oer_p_}; +const TTCN_Typedescriptor_t UERadioCapId_iel_descr_ = { "@NAS_CommonTypeDefs.UERadioCapId.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UERadioCapId_iel_xer_, &OCTETSTRING_json_, &UERadioCapId_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdDeletion_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UERadioCapIdDeletion_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UERadioCapIdDeletion_spare_descr_ = { "@NAS_CommonTypeDefs.UERadioCapIdDeletion.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UERadioCapIdDeletion_spare_xer_, &BITSTRING_json_, &UERadioCapIdDeletion_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdDeletion_deleteReq_xer_ = { {"deleteReq>\n", "deleteReq>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UERadioCapIdDeletion_deleteReq_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UERadioCapIdDeletion_deleteReq_descr_ = { "@NAS_CommonTypeDefs.UERadioCapIdDeletion.deleteReq", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &UERadioCapIdDeletion_deleteReq_xer_, &BITSTRING_json_, &UERadioCapIdDeletion_deleteReq_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UERadioCapIdDeletion +const TTCN_Typedescriptor_t UERadioCapIdDeletion_descr_ = { "@NAS_CommonTypeDefs.UERadioCapIdDeletion", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UERadioCapIdDeletion_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t UERadioCapIdDeletion_iei_descr_ = { "@NAS_CommonTypeDefs.UERadioCapIdDeletion.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &UERadioCapIdDeletion_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DRXParamCommon_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DRXParamCommon_iel_oer_ext_arr_[0] = {}; +const int DRXParamCommon_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DRXParamCommon_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DRXParamCommon_iel_oer_ext_arr_, 0, DRXParamCommon_iel_oer_p_}; +const TTCN_Typedescriptor_t DRXParamCommon_iel_descr_ = { "@NAS_CommonTypeDefs.DRXParamCommon.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DRXParamCommon_iel_xer_, &OCTETSTRING_json_, &DRXParamCommon_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DRXParamCommon_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DRXParamCommon_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DRXParamCommon_spare_descr_ = { "@NAS_CommonTypeDefs.DRXParamCommon.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DRXParamCommon_spare_xer_, &BITSTRING_json_, &DRXParamCommon_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DRXParamCommon_drxValue_xer_ = { {"drxValue>\n", "drxValue>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DRXParamCommon_drxValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DRXParamCommon_drxValue_descr_ = { "@NAS_CommonTypeDefs.DRXParamCommon.drxValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &DRXParamCommon_drxValue_xer_, &BITSTRING_json_, &DRXParamCommon_drxValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DRXParamCommon +const TTCN_Typedescriptor_t DRXParamCommon_descr_ = { "@NAS_CommonTypeDefs.DRXParamCommon", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DRXParamCommon_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DRXParamCommon_iei_oer_ext_arr_[0] = {}; +const int DRXParamCommon_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DRXParamCommon_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DRXParamCommon_iei_oer_ext_arr_, 0, DRXParamCommon_iei_oer_p_}; +const TTCN_Typedescriptor_t DRXParamCommon_iei_descr_ = { "@NAS_CommonTypeDefs.DRXParamCommon.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DRXParamCommon_iei_xer_, &OCTETSTRING_json_, &DRXParamCommon_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReleaseAssistanceInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReleaseAssistanceInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReleaseAssistanceInd_spare_descr_ = { "@NAS_CommonTypeDefs.ReleaseAssistanceInd.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &ReleaseAssistanceInd_spare_xer_, &BITSTRING_json_, &ReleaseAssistanceInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReleaseAssistanceInd_dlDataExpected_xer_ = { {"dlDataExpected>\n", "dlDataExpected>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReleaseAssistanceInd_dlDataExpected_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReleaseAssistanceInd_dlDataExpected_descr_ = { "@NAS_CommonTypeDefs.ReleaseAssistanceInd.dlDataExpected", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &ReleaseAssistanceInd_dlDataExpected_xer_, &BITSTRING_json_, &ReleaseAssistanceInd_dlDataExpected_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ReleaseAssistanceInd +const TTCN_Typedescriptor_t ReleaseAssistanceInd_descr_ = { "@NAS_CommonTypeDefs.ReleaseAssistanceInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReleaseAssistanceInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ReleaseAssistanceInd_iei_descr_ = { "@NAS_CommonTypeDefs.ReleaseAssistanceInd.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ReleaseAssistanceInd_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WUSAssistInfo_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int WUSAssistInfo_iel_oer_ext_arr_[0] = {}; +const int WUSAssistInfo_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t WUSAssistInfo_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, WUSAssistInfo_iel_oer_ext_arr_, 0, WUSAssistInfo_iel_oer_p_}; +const TTCN_Typedescriptor_t WUSAssistInfo_iel_descr_ = { "@NAS_CommonTypeDefs.WUSAssistInfo.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &WUSAssistInfo_iel_xer_, &OCTETSTRING_json_, &WUSAssistInfo_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for WUSAssistInfo_infoType +const TTCN_Typedescriptor_t WUSAssistInfo_infoType_descr_ = { "@NAS_CommonTypeDefs.WUSAssistInfo.infoType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &WusInfoType_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WusInfoType_wusType_xer_ = { {"wusType>\n", "wusType>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t WusInfoType_wusType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t WusInfoType_wusType_descr_ = { "@NAS_CommonTypeDefs.WusInfoType.wusType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &WusInfoType_wusType_xer_, &BITSTRING_json_, &WusInfoType_wusType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WusInfoType_pagingProbability_xer_ = { {"pagingProbability>\n", "pagingProbability>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t WusInfoType_pagingProbability_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t WusInfoType_pagingProbability_descr_ = { "@NAS_CommonTypeDefs.WusInfoType.pagingProbability", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &WusInfoType_pagingProbability_xer_, &BITSTRING_json_, &WusInfoType_pagingProbability_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for WusInfoType +const TTCN_Typedescriptor_t WusInfoType_descr_ = { "@NAS_CommonTypeDefs.WusInfoType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WusInfoType_wusValue_xer_ = { {"wusValue>\n", "wusValue>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int WusInfoType_wusValue_oer_ext_arr_[0] = {}; +const int WusInfoType_wusValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t WusInfoType_wusValue_oer_ = { -1, TRUE, -1, FALSE, 0, 0, WusInfoType_wusValue_oer_ext_arr_, 0, WusInfoType_wusValue_oer_p_}; +const TTCN_Typedescriptor_t WusInfoType_wusValue_descr_ = { "@NAS_CommonTypeDefs.WusInfoType.wusValue", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &WusInfoType_wusValue_xer_, &OCTETSTRING_json_, &WusInfoType_wusValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for WUSAssistInfo +const TTCN_Typedescriptor_t WUSAssistInfo_descr_ = { "@NAS_CommonTypeDefs.WUSAssistInfo", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t WUSAssistInfo_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int WUSAssistInfo_iei_oer_ext_arr_[0] = {}; +const int WUSAssistInfo_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t WUSAssistInfo_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, WUSAssistInfo_iei_oer_ext_arr_, 0, WUSAssistInfo_iei_oer_p_}; +const TTCN_Typedescriptor_t WUSAssistInfo_iei_descr_ = { "@NAS_CommonTypeDefs.WUSAssistInfo.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &WUSAssistInfo_iei_xer_, &OCTETSTRING_json_, &WUSAssistInfo_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ServingPLMNRateControl_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ServingPLMNRateControl_iel_oer_ext_arr_[0] = {}; +const int ServingPLMNRateControl_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ServingPLMNRateControl_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ServingPLMNRateControl_iel_oer_ext_arr_, 0, ServingPLMNRateControl_iel_oer_p_}; +const TTCN_Typedescriptor_t ServingPLMNRateControl_iel_descr_ = { "@NAS_CommonTypeDefs.ServingPLMNRateControl.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ServingPLMNRateControl_iel_xer_, &OCTETSTRING_json_, &ServingPLMNRateControl_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ServingPLMNRateControl_servingPLMNRate_xer_ = { {"servingPLMNRate>\n", "servingPLMNRate>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ServingPLMNRateControl_servingPLMNRate_oer_ext_arr_[0] = {}; +const int ServingPLMNRateControl_servingPLMNRate_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ServingPLMNRateControl_servingPLMNRate_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ServingPLMNRateControl_servingPLMNRate_oer_ext_arr_, 0, ServingPLMNRateControl_servingPLMNRate_oer_p_}; +const TTCN_Typedescriptor_t ServingPLMNRateControl_servingPLMNRate_descr_ = { "@NAS_CommonTypeDefs.ServingPLMNRateControl.servingPLMNRate", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ServingPLMNRateControl_servingPLMNRate_xer_, &OCTETSTRING_json_, &ServingPLMNRateControl_servingPLMNRate_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ServingPLMNRateControl +const TTCN_Typedescriptor_t ServingPLMNRateControl_descr_ = { "@NAS_CommonTypeDefs.ServingPLMNRateControl", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ServingPLMNRateControl_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ServingPLMNRateControl_iei_oer_ext_arr_[0] = {}; +const int ServingPLMNRateControl_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ServingPLMNRateControl_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ServingPLMNRateControl_iei_oer_ext_arr_, 0, ServingPLMNRateControl_iei_oer_p_}; +const TTCN_Typedescriptor_t ServingPLMNRateControl_iei_descr_ = { "@NAS_CommonTypeDefs.ServingPLMNRateControl.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ServingPLMNRateControl_iei_xer_, &OCTETSTRING_json_, &ServingPLMNRateControl_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ControlPlaneInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ControlPlaneInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ControlPlaneInd_spare_descr_ = { "@NAS_CommonTypeDefs.ControlPlaneInd.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &ControlPlaneInd_spare_xer_, &BITSTRING_json_, &ControlPlaneInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ControlPlaneInd_cpIndValue_xer_ = { {"cpIndValue>\n", "cpIndValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ControlPlaneInd_cpIndValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ControlPlaneInd_cpIndValue_descr_ = { "@NAS_CommonTypeDefs.ControlPlaneInd.cpIndValue", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ControlPlaneInd_cpIndValue_xer_, &BITSTRING_json_, &ControlPlaneInd_cpIndValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ControlPlaneInd +const TTCN_Typedescriptor_t ControlPlaneInd_descr_ = { "@NAS_CommonTypeDefs.ControlPlaneInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ControlPlaneInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ControlPlaneInd_iei_descr_ = { "@NAS_CommonTypeDefs.ControlPlaneInd.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ControlPlaneInd_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoSParameters_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoSParameters_id_oer_ext_arr_[0] = {}; +const int QoSParameters_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoSParameters_id_oer_ = { -1, TRUE, 1, FALSE, 0, 0, QoSParameters_id_oer_ext_arr_, 0, QoSParameters_id_oer_p_}; +const TTCN_Typedescriptor_t QoSParameters_id_descr_ = { "@NAS_CommonTypeDefs.QoSParameters.id", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &QoSParameters_id_xer_, &OCTETSTRING_json_, &QoSParameters_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoSParameters_lenOfContent_xer_ = { {"lenOfContent>\n", "lenOfContent>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoSParameters_lenOfContent_oer_ext_arr_[0] = {}; +const int QoSParameters_lenOfContent_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoSParameters_lenOfContent_oer_ = { -1, TRUE, 1, FALSE, 0, 0, QoSParameters_lenOfContent_oer_ext_arr_, 0, QoSParameters_lenOfContent_oer_p_}; +const TTCN_Typedescriptor_t QoSParameters_lenOfContent_descr_ = { "@NAS_CommonTypeDefs.QoSParameters.lenOfContent", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &QoSParameters_lenOfContent_xer_, &OCTETSTRING_json_, &QoSParameters_lenOfContent_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoSParameters_qosParam_xer_ = { {"qosParam>\n", "qosParam>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoSParameters_qosParam_oer_ext_arr_[0] = {}; +const int QoSParameters_qosParam_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoSParameters_qosParam_oer_ = { -1, TRUE, -1, FALSE, 0, 0, QoSParameters_qosParam_oer_ext_arr_, 0, QoSParameters_qosParam_oer_p_}; +const TTCN_Typedescriptor_t QoSParameters_qosParam_descr_ = { "@NAS_CommonTypeDefs.QoSParameters.qosParam", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &QoSParameters_qosParam_xer_, &OCTETSTRING_json_, &QoSParameters_qosParam_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoSParameters +const TTCN_Typedescriptor_t QoSParameters_descr_ = { "@NAS_CommonTypeDefs.QoSParameters", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoSParametersList +const TTCN_Typedescriptor_t QoSParametersList_descr_ = { "@NAS_CommonTypeDefs.QoSParametersList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &QoSParameters_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__RequestType_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__RequestType_iel_oer_ext_arr_[0] = {}; +const int UE__RequestType_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__RequestType_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__RequestType_iel_oer_ext_arr_, 0, UE__RequestType_iel_oer_p_}; +const TTCN_Typedescriptor_t UE__RequestType_iel_descr_ = { "@NAS_CommonTypeDefs.UE_RequestType.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__RequestType_iel_xer_, &OCTETSTRING_json_, &UE__RequestType_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__RequestType_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__RequestType_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__RequestType_spare_descr_ = { "@NAS_CommonTypeDefs.UE_RequestType.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__RequestType_spare_xer_, &BITSTRING_json_, &UE__RequestType_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__RequestType_requestType_xer_ = { {"requestType>\n", "requestType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__RequestType_requestType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__RequestType_requestType_descr_ = { "@NAS_CommonTypeDefs.UE_RequestType.requestType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__RequestType_requestType_xer_, &BITSTRING_json_, &UE__RequestType_requestType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__RequestType +const TTCN_Typedescriptor_t UE__RequestType_descr_ = { "@NAS_CommonTypeDefs.UE_RequestType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__RequestType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__RequestType_iei_oer_ext_arr_[0] = {}; +const int UE__RequestType_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__RequestType_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__RequestType_iei_oer_ext_arr_, 0, UE__RequestType_iei_oer_p_}; +const TTCN_Typedescriptor_t UE__RequestType_iei_descr_ = { "@NAS_CommonTypeDefs.UE_RequestType.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__RequestType_iei_xer_, &OCTETSTRING_json_, &UE__RequestType_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("NAS_CommonTypeDefs", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_NAS_CommonTypeDefs(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "APNRateControlParams")) { + ((const APNRateControlParams*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "APNRateControlParams template")) { + ((const APNRateControlParams_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "APN_DefaultConfiguration_Type")) { + ((const APN__DefaultConfiguration__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "APN_DefaultConfiguration_Type template")) { + ((const APN__DefaultConfiguration__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTN")) { + ((const AUTN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AUTN template")) { + ((const AUTN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AccessPointName")) { + ((const AccessPointName*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AccessPointName template")) { + ((const AccessPointName_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalInformation")) { + ((const AdditionalInformation*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalInformation template")) { + ((const AdditionalInformation_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalUpdateType")) { + ((const AdditionalUpdateType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalUpdateType template")) { + ((const AdditionalUpdateType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AuthenticationFailureParameter")) { + ((const AuthenticationFailureParameter*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AuthenticationFailureParameter template")) { + ((const AuthenticationFailureParameter_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AuthenticationResponseParameter")) { + ((const AuthenticationResponseParameter*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AuthenticationResponseParameter template")) { + ((const AuthenticationResponseParameter_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BcdDigit_Bit")) { + ((const BITSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "BcdDigit_Bit template")) { + ((const BITSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CS_PS_MODE")) { + ((const CS__PS__MODE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CS_PS_MODE template")) { + ((const CS__PS__MODE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CiphKeySeqNum")) { + ((const CiphKeySeqNum*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CiphKeySeqNum template")) { + ((const CiphKeySeqNum_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Codec")) { + ((const Codec*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Codec template")) { + ((const Codec_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CodecList")) { + ((const CodecList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CodecList template")) { + ((const CodecList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ConnectivityType")) { + ((const ConnectivityType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ConnectivityType template")) { + ((const ConnectivityType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ControlPlaneInd")) { + ((const ControlPlaneInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ControlPlaneInd template")) { + ((const ControlPlaneInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DCN_ID")) { + ((const DCN__ID*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DCN_ID template")) { + ((const DCN__ID_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DRXParamCommon")) { + ((const DRXParamCommon*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DRXParamCommon template")) { + ((const DRXParamCommon_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DRXparameter")) { + ((const DRXparameter*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DRXparameter template")) { + ((const DRXparameter_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DaylightSavingTime")) { + ((const DaylightSavingTime*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DaylightSavingTime template")) { + ((const DaylightSavingTime_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DetachType")) { + ((const DetachType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DetachType template")) { + ((const DetachType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DeviceProperties")) { + ((const DeviceProperties*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DeviceProperties template")) { + ((const DeviceProperties_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EDGE_Struct")) { + ((const EDGE__Struct*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EDGE_Struct template")) { + ((const EDGE__Struct_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_BearerContextStatus")) { + ((const EPS__BearerContextStatus*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_BearerContextStatus template")) { + ((const EPS__BearerContextStatus_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_QualityOfService")) { + ((const EPS__QualityOfService*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_QualityOfService template")) { + ((const EPS__QualityOfService_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EmergNum")) { + ((const EmergNum*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EmergNum template")) { + ((const EmergNum_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EmergNumList")) { + ((const EmergNumList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EmergNumList template")) { + ((const EmergNumList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EmergServCat")) { + ((const EmergServCat*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EmergServCat template")) { + ((const EmergServCat_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EmergencyNumList")) { + ((const EmergencyNumList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EmergencyNumList template")) { + ((const EmergencyNumList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdDRXParams")) { + ((const ExtdDRXParams*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdDRXParams template")) { + ((const ExtdDRXParams_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdEmergNum")) { + ((const ExtdEmergNum*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdEmergNum template")) { + ((const ExtdEmergNum_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdEmergNumList")) { + ((const ExtdEmergNumList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdEmergNumList template")) { + ((const ExtdEmergNumList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdProtocolConfigOptions")) { + ((const ExtdProtocolConfigOptions*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdProtocolConfigOptions template")) { + ((const ExtdProtocolConfigOptions_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Extd_EPS_QOS")) { + ((const Extd__EPS__QOS*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Extd_EPS_QOS template")) { + ((const Extd__EPS__QOS_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "FACILITY")) { + ((const FACILITY*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "FACILITY template")) { + ((const FACILITY_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "FACILITYul")) { + ((const FACILITYul*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "FACILITYul template")) { + ((const FACILITYul_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "FacilityIE")) { + ((const FacilityIE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "FacilityIE template")) { + ((const FacilityIE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GPRS_Timer")) { + ((const GPRS__Timer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GPRS_Timer template")) { + ((const GPRS__Timer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GPRS_Timer2")) { + ((const GPRS__Timer2*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GPRS_Timer2 template")) { + ((const GPRS__Timer2_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HashMME")) { + ((const HashMME*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "HashMME template")) { + ((const HashMME_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IMEISV_Request")) { + ((const IMEISV__Request*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IMEISV_Request template")) { + ((const IMEISV__Request_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IdentityType")) { + ((const IdentityType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IdentityType template")) { + ((const IdentityType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "InterworkWithoutN26")) { + ((const InterworkWithoutN26*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "InterworkWithoutN26 template")) { + ((const InterworkWithoutN26_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LLC_SAPI")) { + ((const LLC__SAPI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LLC_SAPI template")) { + ((const LLC__SAPI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LocAreaId")) { + ((const LocAreaId*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LocAreaId template")) { + ((const LocAreaId_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_Clsmk2")) { + ((const MS__Clsmk2*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_Clsmk2 template")) { + ((const MS__Clsmk2_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_Clsmk3")) { + ((const MS__Clsmk3*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_Clsmk3 template")) { + ((const MS__Clsmk3_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_MeasCapability")) { + ((const MS__MeasCapability*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_MeasCapability template")) { + ((const MS__MeasCapability_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_NetworkCap")) { + ((const MS__NetworkCap*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_NetworkCap template")) { + ((const MS__NetworkCap_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_NetworkFeatureSupport")) { + ((const MS__NetworkFeatureSupport*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MS_NetworkFeatureSupport template")) { + ((const MS__NetworkFeatureSupport_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MobileIdentity")) { + ((const MobileIdentity*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MobileIdentity template")) { + ((const MobileIdentity_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_ExtdProtocolConfigOptions_Type")) { + ((const NAS__ExtdProtocolConfigOptions__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_ExtdProtocolConfigOptions_Type template")) { + ((const NAS__ExtdProtocolConfigOptions__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_KeySetIdentifier")) { + ((const NAS__KeySetIdentifier*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_KeySetIdentifier template")) { + ((const NAS__KeySetIdentifier_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_Mcc")) { + ((const HEXSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_Mcc template")) { + ((const HEXSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityAlgorithms")) { + ((const NAS__SecurityAlgorithms*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityAlgorithms template")) { + ((const NAS__SecurityAlgorithms_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NBIFOMContainer")) { + ((const NBIFOMContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NBIFOMContainer template")) { + ((const NBIFOMContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NetworkName")) { + ((const NetworkName*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NetworkName template")) { + ((const NetworkName_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Non3GPP_NW_ProvidedPolicies")) { + ((const Non3GPP__NW__ProvidedPolicies*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Non3GPP_NW_ProvidedPolicies template")) { + ((const Non3GPP__NW__ProvidedPolicies_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NwkResourceId")) { + ((const NwkResourceId*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NwkResourceId template")) { + ((const NwkResourceId_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_Address")) { + ((const PDN__Address*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDN_Address template")) { + ((const PDN__Address_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_PDN_DNN_Type")) { + ((const PDU__PDN__DNN__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_PDN_DNN_Type template")) { + ((const PDU__PDN__DNN__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PLMN_IdIE")) { + ((const PLMN__IdIE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PLMN_IdIE template")) { + ((const PLMN__IdIE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PLMN_List")) { + ((const PLMN__List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PLMN_List template")) { + ((const PLMN__List_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PS_MODE")) { + ((const PS__MODE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PS_MODE template")) { + ((const PS__MODE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PTMSI_Signature")) { + ((const PTMSI__Signature*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PTMSI_Signature template")) { + ((const PTMSI__Signature_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFilter")) { + ((const PacketFilter*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFilter template")) { + ((const PacketFilter_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFilterComponent")) { + ((const PacketFilterComponent*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFilterComponent template")) { + ((const PacketFilterComponent_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFilterComponentValue")) { + ((const PacketFilterComponentValue*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFilterComponentValue template")) { + ((const PacketFilterComponentValue_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFilterContents")) { + ((const PacketFilterContents*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFilterContents template")) { + ((const PacketFilterContents_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFlowIdentifier")) { + ((const PacketFlowIdentifier*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketFlowIdentifier template")) { + ((const PacketFlowIdentifier_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProtocolConfigOptions")) { + ((const ProtocolConfigOptions*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProtocolConfigOptions template")) { + ((const ProtocolConfigOptions_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProtocolContainer")) { + ((const ProtocolContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ProtocolContainer template")) { + ((const ProtocolContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoSParameters")) { + ((const QoSParameters*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoSParameters template")) { + ((const QoSParameters_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoSParametersList")) { + ((const QoSParametersList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoSParametersList template")) { + ((const QoSParametersList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QualityOfService")) { + ((const QualityOfService*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QualityOfService template")) { + ((const QualityOfService_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RAND")) { + ((const RAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RAND template")) { + ((const RAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "REGISTER")) { + ((const REGISTER*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "REGISTER template")) { + ((const REGISTER_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RESETUEPOSITIONINGSTOREDINFORMATION")) { + ((const RESETUEPOSITIONINGSTOREDINFORMATION*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RESETUEPOSITIONINGSTOREDINFORMATION template")) { + ((const RESETUEPOSITIONINGSTOREDINFORMATION_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RadioPriority")) { + ((const RadioPriority*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RadioPriority template")) { + ((const RadioPriority_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReAttemptIndicator")) { + ((const ReAttemptIndicator*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReAttemptIndicator template")) { + ((const ReAttemptIndicator_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReleaseAssistanceInd")) { + ((const ReleaseAssistanceInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReleaseAssistanceInd template")) { + ((const ReleaseAssistanceInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReplayedNASMessageContainer")) { + ((const ReplayedNASMessageContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReplayedNASMessageContainer template")) { + ((const ReplayedNASMessageContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Request_Type")) { + ((const Request__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Request_Type template")) { + ((const Request__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RoutingAreaId")) { + ((const RoutingAreaId*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RoutingAreaId template")) { + ((const RoutingAreaId_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SS_VersionInd")) { + ((const SS__VersionInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SS_VersionInd template")) { + ((const SS__VersionInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServingPLMNRateControl")) { + ((const ServingPLMNRateControl*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServingPLMNRateControl template")) { + ((const ServingPLMNRateControl_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TI")) { + ((const TI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TI template")) { + ((const TI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TMSI_Status")) { + ((const TMSI__Status*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TMSI_Status template")) { + ((const TMSI__Status_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TftParameter")) { + ((const TftParameter*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TftParameter template")) { + ((const TftParameter_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TimeZone")) { + ((const TimeZone*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TimeZone template")) { + ((const TimeZone_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TimeZoneAndTime")) { + ((const TimeZoneAndTime*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TimeZoneAndTime template")) { + ((const TimeZoneAndTime_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TrafficFlowTemplate")) { + ((const TrafficFlowTemplate*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TrafficFlowTemplate template")) { + ((const TrafficFlowTemplate_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapId")) { + ((const UERadioCapId*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapId template")) { + ((const UERadioCapId_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdDeletion")) { + ((const UERadioCapIdDeletion*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdDeletion template")) { + ((const UERadioCapIdDeletion_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_NetworkCap")) { + ((const UE__NetworkCap*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_NetworkCap template")) { + ((const UE__NetworkCap_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_RequestType")) { + ((const UE__RequestType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_RequestType template")) { + ((const UE__RequestType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_SecurityCapability")) { + ((const UE__SecurityCapability*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_SecurityCapability template")) { + ((const UE__SecurityCapability_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_Status")) { + ((const UE__Status*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_Status template")) { + ((const UE__Status_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "VoiceDomainPref")) { + ((const VoiceDomainPref*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "VoiceDomainPref template")) { + ((const VoiceDomainPref_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WLANOffloadAcceptability")) { + ((const WLANOffloadAcceptability*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WLANOffloadAcceptability template")) { + ((const WLANOffloadAcceptability_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WUSAssistInfo")) { + ((const WUSAssistInfo*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WUSAssistInfo template")) { + ((const WUSAssistInfo_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WusInfoType")) { + ((const WusInfoType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "WusInfoType template")) { + ((const WusInfoType_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_NAS_CommonTypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "APNRateControlParams")) { + ((APNRateControlParams*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "APNRateControlParams template")) { + ((APNRateControlParams_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "APN_DefaultConfiguration_Type")) { + ((APN__DefaultConfiguration__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "APN_DefaultConfiguration_Type template")) { + ((APN__DefaultConfiguration__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTN")) { + ((AUTN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AUTN template")) { + ((AUTN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AccessPointName")) { + ((AccessPointName*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AccessPointName template")) { + ((AccessPointName_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalInformation")) { + ((AdditionalInformation*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalInformation template")) { + ((AdditionalInformation_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalUpdateType")) { + ((AdditionalUpdateType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalUpdateType template")) { + ((AdditionalUpdateType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AuthenticationFailureParameter")) { + ((AuthenticationFailureParameter*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AuthenticationFailureParameter template")) { + ((AuthenticationFailureParameter_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AuthenticationResponseParameter")) { + ((AuthenticationResponseParameter*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AuthenticationResponseParameter template")) { + ((AuthenticationResponseParameter_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BcdDigit_Bit")) { + ((BITSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "BcdDigit_Bit template")) { + ((BITSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CS_PS_MODE")) { + ((CS__PS__MODE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CS_PS_MODE template")) { + ((CS__PS__MODE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CiphKeySeqNum")) { + ((CiphKeySeqNum*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CiphKeySeqNum template")) { + ((CiphKeySeqNum_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Codec")) { + ((Codec*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Codec template")) { + ((Codec_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CodecList")) { + ((CodecList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CodecList template")) { + ((CodecList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ConnectivityType")) { + ((ConnectivityType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ConnectivityType template")) { + ((ConnectivityType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ControlPlaneInd")) { + ((ControlPlaneInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ControlPlaneInd template")) { + ((ControlPlaneInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DCN_ID")) { + ((DCN__ID*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DCN_ID template")) { + ((DCN__ID_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DRXParamCommon")) { + ((DRXParamCommon*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DRXParamCommon template")) { + ((DRXParamCommon_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DRXparameter")) { + ((DRXparameter*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DRXparameter template")) { + ((DRXparameter_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DaylightSavingTime")) { + ((DaylightSavingTime*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DaylightSavingTime template")) { + ((DaylightSavingTime_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DetachType")) { + ((DetachType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DetachType template")) { + ((DetachType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DeviceProperties")) { + ((DeviceProperties*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DeviceProperties template")) { + ((DeviceProperties_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EDGE_Struct")) { + ((EDGE__Struct*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EDGE_Struct template")) { + ((EDGE__Struct_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_BearerContextStatus")) { + ((EPS__BearerContextStatus*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_BearerContextStatus template")) { + ((EPS__BearerContextStatus_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_QualityOfService")) { + ((EPS__QualityOfService*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_QualityOfService template")) { + ((EPS__QualityOfService_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EmergNum")) { + ((EmergNum*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EmergNum template")) { + ((EmergNum_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EmergNumList")) { + ((EmergNumList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EmergNumList template")) { + ((EmergNumList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EmergServCat")) { + ((EmergServCat*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EmergServCat template")) { + ((EmergServCat_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EmergencyNumList")) { + ((EmergencyNumList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EmergencyNumList template")) { + ((EmergencyNumList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdDRXParams")) { + ((ExtdDRXParams*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdDRXParams template")) { + ((ExtdDRXParams_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdEmergNum")) { + ((ExtdEmergNum*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdEmergNum template")) { + ((ExtdEmergNum_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdEmergNumList")) { + ((ExtdEmergNumList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdEmergNumList template")) { + ((ExtdEmergNumList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdProtocolConfigOptions")) { + ((ExtdProtocolConfigOptions*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdProtocolConfigOptions template")) { + ((ExtdProtocolConfigOptions_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Extd_EPS_QOS")) { + ((Extd__EPS__QOS*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Extd_EPS_QOS template")) { + ((Extd__EPS__QOS_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "FACILITY")) { + ((FACILITY*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "FACILITY template")) { + ((FACILITY_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "FACILITYul")) { + ((FACILITYul*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "FACILITYul template")) { + ((FACILITYul_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "FacilityIE")) { + ((FacilityIE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "FacilityIE template")) { + ((FacilityIE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GPRS_Timer")) { + ((GPRS__Timer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GPRS_Timer template")) { + ((GPRS__Timer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GPRS_Timer2")) { + ((GPRS__Timer2*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GPRS_Timer2 template")) { + ((GPRS__Timer2_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HashMME")) { + ((HashMME*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "HashMME template")) { + ((HashMME_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IMEISV_Request")) { + ((IMEISV__Request*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IMEISV_Request template")) { + ((IMEISV__Request_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IdentityType")) { + ((IdentityType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IdentityType template")) { + ((IdentityType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "InterworkWithoutN26")) { + ((InterworkWithoutN26*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "InterworkWithoutN26 template")) { + ((InterworkWithoutN26_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LLC_SAPI")) { + ((LLC__SAPI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LLC_SAPI template")) { + ((LLC__SAPI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LocAreaId")) { + ((LocAreaId*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LocAreaId template")) { + ((LocAreaId_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_Clsmk2")) { + ((MS__Clsmk2*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_Clsmk2 template")) { + ((MS__Clsmk2_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_Clsmk3")) { + ((MS__Clsmk3*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_Clsmk3 template")) { + ((MS__Clsmk3_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_MeasCapability")) { + ((MS__MeasCapability*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_MeasCapability template")) { + ((MS__MeasCapability_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_NetworkCap")) { + ((MS__NetworkCap*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_NetworkCap template")) { + ((MS__NetworkCap_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_NetworkFeatureSupport")) { + ((MS__NetworkFeatureSupport*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MS_NetworkFeatureSupport template")) { + ((MS__NetworkFeatureSupport_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MobileIdentity")) { + ((MobileIdentity*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MobileIdentity template")) { + ((MobileIdentity_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_ExtdProtocolConfigOptions_Type")) { + ((NAS__ExtdProtocolConfigOptions__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_ExtdProtocolConfigOptions_Type template")) { + ((NAS__ExtdProtocolConfigOptions__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_KeySetIdentifier")) { + ((NAS__KeySetIdentifier*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_KeySetIdentifier template")) { + ((NAS__KeySetIdentifier_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_Mcc")) { + ((HEXSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_Mcc template")) { + ((HEXSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityAlgorithms")) { + ((NAS__SecurityAlgorithms*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_SecurityAlgorithms template")) { + ((NAS__SecurityAlgorithms_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NBIFOMContainer")) { + ((NBIFOMContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NBIFOMContainer template")) { + ((NBIFOMContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NetworkName")) { + ((NetworkName*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NetworkName template")) { + ((NetworkName_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Non3GPP_NW_ProvidedPolicies")) { + ((Non3GPP__NW__ProvidedPolicies*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Non3GPP_NW_ProvidedPolicies template")) { + ((Non3GPP__NW__ProvidedPolicies_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NwkResourceId")) { + ((NwkResourceId*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NwkResourceId template")) { + ((NwkResourceId_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_Address")) { + ((PDN__Address*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDN_Address template")) { + ((PDN__Address_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_PDN_DNN_Type")) { + ((PDU__PDN__DNN__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_PDN_DNN_Type template")) { + ((PDU__PDN__DNN__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PLMN_IdIE")) { + ((PLMN__IdIE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PLMN_IdIE template")) { + ((PLMN__IdIE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PLMN_List")) { + ((PLMN__List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PLMN_List template")) { + ((PLMN__List_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PS_MODE")) { + ((PS__MODE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PS_MODE template")) { + ((PS__MODE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PTMSI_Signature")) { + ((PTMSI__Signature*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PTMSI_Signature template")) { + ((PTMSI__Signature_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFilter")) { + ((PacketFilter*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFilter template")) { + ((PacketFilter_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFilterComponent")) { + ((PacketFilterComponent*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFilterComponent template")) { + ((PacketFilterComponent_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFilterComponentValue")) { + ((PacketFilterComponentValue*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFilterComponentValue template")) { + ((PacketFilterComponentValue_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFilterContents")) { + ((PacketFilterContents*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFilterContents template")) { + ((PacketFilterContents_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFlowIdentifier")) { + ((PacketFlowIdentifier*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketFlowIdentifier template")) { + ((PacketFlowIdentifier_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProtocolConfigOptions")) { + ((ProtocolConfigOptions*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProtocolConfigOptions template")) { + ((ProtocolConfigOptions_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProtocolContainer")) { + ((ProtocolContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ProtocolContainer template")) { + ((ProtocolContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoSParameters")) { + ((QoSParameters*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoSParameters template")) { + ((QoSParameters_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoSParametersList")) { + ((QoSParametersList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoSParametersList template")) { + ((QoSParametersList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QualityOfService")) { + ((QualityOfService*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QualityOfService template")) { + ((QualityOfService_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RAND")) { + ((RAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RAND template")) { + ((RAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "REGISTER")) { + ((REGISTER*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "REGISTER template")) { + ((REGISTER_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RESETUEPOSITIONINGSTOREDINFORMATION")) { + ((RESETUEPOSITIONINGSTOREDINFORMATION*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RESETUEPOSITIONINGSTOREDINFORMATION template")) { + ((RESETUEPOSITIONINGSTOREDINFORMATION_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RadioPriority")) { + ((RadioPriority*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RadioPriority template")) { + ((RadioPriority_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReAttemptIndicator")) { + ((ReAttemptIndicator*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReAttemptIndicator template")) { + ((ReAttemptIndicator_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReleaseAssistanceInd")) { + ((ReleaseAssistanceInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReleaseAssistanceInd template")) { + ((ReleaseAssistanceInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReplayedNASMessageContainer")) { + ((ReplayedNASMessageContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReplayedNASMessageContainer template")) { + ((ReplayedNASMessageContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Request_Type")) { + ((Request__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Request_Type template")) { + ((Request__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RoutingAreaId")) { + ((RoutingAreaId*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RoutingAreaId template")) { + ((RoutingAreaId_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SS_VersionInd")) { + ((SS__VersionInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SS_VersionInd template")) { + ((SS__VersionInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServingPLMNRateControl")) { + ((ServingPLMNRateControl*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServingPLMNRateControl template")) { + ((ServingPLMNRateControl_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TI")) { + ((TI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TI template")) { + ((TI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TMSI_Status")) { + ((TMSI__Status*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TMSI_Status template")) { + ((TMSI__Status_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TftParameter")) { + ((TftParameter*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TftParameter template")) { + ((TftParameter_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TimeZone")) { + ((TimeZone*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TimeZone template")) { + ((TimeZone_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TimeZoneAndTime")) { + ((TimeZoneAndTime*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TimeZoneAndTime template")) { + ((TimeZoneAndTime_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TrafficFlowTemplate")) { + ((TrafficFlowTemplate*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TrafficFlowTemplate template")) { + ((TrafficFlowTemplate_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapId")) { + ((UERadioCapId*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapId template")) { + ((UERadioCapId_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdDeletion")) { + ((UERadioCapIdDeletion*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UERadioCapIdDeletion template")) { + ((UERadioCapIdDeletion_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_NetworkCap")) { + ((UE__NetworkCap*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_NetworkCap template")) { + ((UE__NetworkCap_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_RequestType")) { + ((UE__RequestType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_RequestType template")) { + ((UE__RequestType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_SecurityCapability")) { + ((UE__SecurityCapability*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_SecurityCapability template")) { + ((UE__SecurityCapability_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_Status")) { + ((UE__Status*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_Status template")) { + ((UE__Status_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "VoiceDomainPref")) { + ((VoiceDomainPref*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "VoiceDomainPref template")) { + ((VoiceDomainPref_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WLANOffloadAcceptability")) { + ((WLANOffloadAcceptability*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WLANOffloadAcceptability template")) { + ((WLANOffloadAcceptability_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WUSAssistInfo")) { + ((WUSAssistInfo*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WUSAssistInfo template")) { + ((WUSAssistInfo_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WusInfoType")) { + ((WusInfoType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "WusInfoType template")) { + ((WusInfoType_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NAS_CommonTypeDefs"); + global_scope->add_variable(&tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +PDU__PDN__DNN__Type::PDU__PDN__DNN__Type() +{ +enum_value = UNBOUND_VALUE; +} + +PDU__PDN__DNN__Type::PDU__PDN__DNN__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +PDU__PDN__DNN__Type::PDU__PDN__DNN__Type(enum_type other_value) +{ +enum_value = other_value; +} + +PDU__PDN__DNN__Type::PDU__PDN__DNN__Type(const PDU__PDN__DNN__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +enum_value = other_value.enum_value; +} + +PDU__PDN__DNN__Type& PDU__PDN__DNN__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +PDU__PDN__DNN__Type& PDU__PDN__DNN__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +PDU__PDN__DNN__Type& PDU__PDN__DNN__Type::operator=(const PDU__PDN__DNN__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean PDU__PDN__DNN__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +return enum_value == other_value; +} + +boolean PDU__PDN__DNN__Type::operator==(const PDU__PDN__DNN__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +return enum_value == other_value.enum_value; +} + +boolean PDU__PDN__DNN__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +return enum_value < other_value; +} + +boolean PDU__PDN__DNN__Type::operator<(const PDU__PDN__DNN__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +return enum_value < other_value.enum_value; +} + +boolean PDU__PDN__DNN__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +return enum_value > other_value; +} + +boolean PDU__PDN__DNN__Type::operator>(const PDU__PDN__DNN__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +return enum_value > other_value.enum_value; +} + +const char *PDU__PDN__DNN__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case V2X__DNN: return "V2X_DNN"; +case MIOT__DNN: return "MIOT_DNN"; +case URLLC__DNN: return "URLLC_DNN"; +case IMS__DNN: return "IMS_DNN"; +case Internet__DNN: return "Internet_DNN"; +case Emergency__PDN: return "Emergency_PDN"; +case Ethernet__DNN: return "Ethernet_DNN"; +case None: return "None"; +default: return ""; +} +} + +PDU__PDN__DNN__Type::enum_type PDU__PDN__DNN__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "V2X_DNN")) return V2X__DNN; +else if (!strcmp(str_par, "MIOT_DNN")) return MIOT__DNN; +else if (!strcmp(str_par, "URLLC_DNN")) return URLLC__DNN; +else if (!strcmp(str_par, "IMS_DNN")) return IMS__DNN; +else if (!strcmp(str_par, "Internet_DNN")) return Internet__DNN; +else if (!strcmp(str_par, "Emergency_PDN")) return Emergency__PDN; +else if (!strcmp(str_par, "Ethernet_DNN")) return Ethernet__DNN; +else if (!strcmp(str_par, "None")) return None; +else return UNKNOWN_VALUE; +} + +boolean PDU__PDN__DNN__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +return TRUE; +default: +return FALSE; +} +} + +int PDU__PDN__DNN__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int PDU__PDN__DNN__Type::enum2int(const PDU__PDN__DNN__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void PDU__PDN__DNN__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type.", int_val); +enum_value = (enum_type)int_val; +} + +PDU__PDN__DNN__Type::operator PDU__PDN__DNN__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +return enum_value; +} + +boolean PDU__PDN__DNN__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void PDU__PDN__DNN__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* PDU__PDN__DNN__Type::clone() const { return new PDU__PDN__DNN__Type(*this); } +const TTCN_Typedescriptor_t* PDU__PDN__DNN__Type::get_descriptor() const { return &PDU__PDN__DNN__Type_descr_; } +void PDU__PDN__DNN__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void PDU__PDN__DNN__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NAS_CommonTypeDefs.PDU_PDN_DNN_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); + } +} + +Module_Param* PDU__PDN__DNN__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void PDU__PDN__DNN__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +text_buf.push_int(enum_value); +} + +void PDU__PDN__DNN__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type.", enum_value); +} + +void PDU__PDN__DNN__Type_template::copy_template(const PDU__PDN__DNN__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new PDU__PDN__DNN__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new PDU__PDN__DNN__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new PDU__PDN__DNN__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +} +} + +PDU__PDN__DNN__Type_template::PDU__PDN__DNN__Type_template() +{ +} + +PDU__PDN__DNN__Type_template::PDU__PDN__DNN__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +PDU__PDN__DNN__Type_template::PDU__PDN__DNN__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!PDU__PDN__DNN__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type with unknown numeric value %d.", other_value); +single_value = (PDU__PDN__DNN__Type::enum_type)other_value; +} + +PDU__PDN__DNN__Type_template::PDU__PDN__DNN__Type_template(PDU__PDN__DNN__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +PDU__PDN__DNN__Type_template::PDU__PDN__DNN__Type_template(const PDU__PDN__DNN__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == PDU__PDN__DNN__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +single_value = other_value.enum_value; +} + +PDU__PDN__DNN__Type_template::PDU__PDN__DNN__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (PDU__PDN__DNN__Type::enum_type)(const PDU__PDN__DNN__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type from an unbound optional field."); +} +} + +PDU__PDN__DNN__Type_template::PDU__PDN__DNN__Type_template(PDU__PDN__DNN__Type_template* p_precondition, PDU__PDN__DNN__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +PDU__PDN__DNN__Type_template::PDU__PDN__DNN__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +PDU__PDN__DNN__Type_template::PDU__PDN__DNN__Type_template(const PDU__PDN__DNN__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +PDU__PDN__DNN__Type_template::~PDU__PDN__DNN__Type_template() +{ +clean_up(); +} + +boolean PDU__PDN__DNN__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean PDU__PDN__DNN__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != PDU__PDN__DNN__Type::UNBOUND_VALUE; +} + +void PDU__PDN__DNN__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +PDU__PDN__DNN__Type_template& PDU__PDN__DNN__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDU__PDN__DNN__Type_template& PDU__PDN__DNN__Type_template::operator=(int other_value) +{ +if (!PDU__PDN__DNN__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (PDU__PDN__DNN__Type::enum_type)other_value; +return *this; +} + +PDU__PDN__DNN__Type_template& PDU__PDN__DNN__Type_template::operator=(PDU__PDN__DNN__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +PDU__PDN__DNN__Type_template& PDU__PDN__DNN__Type_template::operator=(const PDU__PDN__DNN__Type& other_value) +{ +if (other_value.enum_value == PDU__PDN__DNN__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +PDU__PDN__DNN__Type_template& PDU__PDN__DNN__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (PDU__PDN__DNN__Type::enum_type)(const PDU__PDN__DNN__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +} +return *this; +} + +PDU__PDN__DNN__Type_template& PDU__PDN__DNN__Type_template::operator=(const PDU__PDN__DNN__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean PDU__PDN__DNN__Type_template::match(PDU__PDN__DNN__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +} +return FALSE; +} + +boolean PDU__PDN__DNN__Type_template::match(const PDU__PDN__DNN__Type& other_value, boolean) const +{ +if (other_value.enum_value == PDU__PDN__DNN__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type with an unbound value."); +return match(other_value.enum_value); +} + +PDU__PDN__DNN__Type::enum_type PDU__PDN__DNN__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +return single_value; +} + +void PDU__PDN__DNN__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new PDU__PDN__DNN__Type_template[list_length]; +} + +PDU__PDN__DNN__Type_template& PDU__PDN__DNN__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +return value_list.list_value[list_index]; +} + +void PDU__PDN__DNN__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void PDU__PDN__DNN__Type_template::set_value(template_sel other_value) { *this = other_value; } +void PDU__PDN__DNN__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* PDU__PDN__DNN__Type_template::clone() const { return new PDU__PDN__DNN__Type_template(*this); } +const TTCN_Typedescriptor_t* PDU__PDN__DNN__Type_template::get_descriptor() const { return &PDU__PDN__DNN__Type_descr_; } +boolean PDU__PDN__DNN__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void PDU__PDN__DNN__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void PDU__PDN__DNN__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(PDU__PDN__DNN__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void PDU__PDN__DNN__Type_template::log_match(const PDU__PDN__DNN__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void PDU__PDN__DNN__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +} +} + +void PDU__PDN__DNN__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (PDU__PDN__DNN__Type::enum_type)text_buf.pull_int().get_val(); +if (!PDU__PDN__DNN__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new PDU__PDN__DNN__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); +} +} + +boolean PDU__PDN__DNN__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean PDU__PDN__DNN__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + PDU__PDN__DNN__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + PDU__PDN__DNN__Type::enum_type enum_val = PDU__PDN__DNN__Type::str_to_enum(m_p->get_enumerated()); + if (!PDU__PDN__DNN__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.PDU_PDN_DNN_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + PDU__PDN__DNN__Type_template* precondition = new PDU__PDN__DNN__Type_template; + precondition->set_param(*m_p->get_elem(0)); + PDU__PDN__DNN__Type_template* implied_template = new PDU__PDN__DNN__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = PDU__PDN__DNN__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NAS_CommonTypeDefs.PDU_PDN_DNN_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* PDU__PDN__DNN__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(PDU__PDN__DNN__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +APN__DefaultConfiguration__Type::APN__DefaultConfiguration__Type() +{ +enum_value = UNBOUND_VALUE; +} + +APN__DefaultConfiguration__Type::APN__DefaultConfiguration__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +APN__DefaultConfiguration__Type::APN__DefaultConfiguration__Type(enum_type other_value) +{ +enum_value = other_value; +} + +APN__DefaultConfiguration__Type::APN__DefaultConfiguration__Type(const APN__DefaultConfiguration__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +enum_value = other_value.enum_value; +} + +APN__DefaultConfiguration__Type& APN__DefaultConfiguration__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +APN__DefaultConfiguration__Type& APN__DefaultConfiguration__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +APN__DefaultConfiguration__Type& APN__DefaultConfiguration__Type::operator=(const APN__DefaultConfiguration__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean APN__DefaultConfiguration__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +return enum_value == other_value; +} + +boolean APN__DefaultConfiguration__Type::operator==(const APN__DefaultConfiguration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +return enum_value == other_value.enum_value; +} + +boolean APN__DefaultConfiguration__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +return enum_value < other_value; +} + +boolean APN__DefaultConfiguration__Type::operator<(const APN__DefaultConfiguration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +return enum_value < other_value.enum_value; +} + +boolean APN__DefaultConfiguration__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +return enum_value > other_value; +} + +boolean APN__DefaultConfiguration__Type::operator>(const APN__DefaultConfiguration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +return enum_value > other_value.enum_value; +} + +const char *APN__DefaultConfiguration__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case None: return "None"; +case internet: return "internet"; +case ims: return "ims"; +case urllc: return "urllc"; +case miot: return "miot"; +case v2x: return "v2x"; +case ethernet: return "ethernet"; +default: return ""; +} +} + +APN__DefaultConfiguration__Type::enum_type APN__DefaultConfiguration__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "None")) return None; +else if (!strcmp(str_par, "internet")) return internet; +else if (!strcmp(str_par, "ims")) return ims; +else if (!strcmp(str_par, "urllc")) return urllc; +else if (!strcmp(str_par, "miot")) return miot; +else if (!strcmp(str_par, "v2x")) return v2x; +else if (!strcmp(str_par, "ethernet")) return ethernet; +else return UNKNOWN_VALUE; +} + +boolean APN__DefaultConfiguration__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +return TRUE; +default: +return FALSE; +} +} + +int APN__DefaultConfiguration__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int APN__DefaultConfiguration__Type::enum2int(const APN__DefaultConfiguration__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void APN__DefaultConfiguration__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type.", int_val); +enum_value = (enum_type)int_val; +} + +APN__DefaultConfiguration__Type::operator APN__DefaultConfiguration__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +return enum_value; +} + +boolean APN__DefaultConfiguration__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void APN__DefaultConfiguration__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* APN__DefaultConfiguration__Type::clone() const { return new APN__DefaultConfiguration__Type(*this); } +const TTCN_Typedescriptor_t* APN__DefaultConfiguration__Type::get_descriptor() const { return &APN__DefaultConfiguration__Type_descr_; } +void APN__DefaultConfiguration__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void APN__DefaultConfiguration__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NAS_CommonTypeDefs.APN_DefaultConfiguration_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); + } +} + +Module_Param* APN__DefaultConfiguration__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void APN__DefaultConfiguration__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +text_buf.push_int(enum_value); +} + +void APN__DefaultConfiguration__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type.", enum_value); +} + +void APN__DefaultConfiguration__Type_template::copy_template(const APN__DefaultConfiguration__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new APN__DefaultConfiguration__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new APN__DefaultConfiguration__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new APN__DefaultConfiguration__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +} +} + +APN__DefaultConfiguration__Type_template::APN__DefaultConfiguration__Type_template() +{ +} + +APN__DefaultConfiguration__Type_template::APN__DefaultConfiguration__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +APN__DefaultConfiguration__Type_template::APN__DefaultConfiguration__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!APN__DefaultConfiguration__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type with unknown numeric value %d.", other_value); +single_value = (APN__DefaultConfiguration__Type::enum_type)other_value; +} + +APN__DefaultConfiguration__Type_template::APN__DefaultConfiguration__Type_template(APN__DefaultConfiguration__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +APN__DefaultConfiguration__Type_template::APN__DefaultConfiguration__Type_template(const APN__DefaultConfiguration__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == APN__DefaultConfiguration__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +single_value = other_value.enum_value; +} + +APN__DefaultConfiguration__Type_template::APN__DefaultConfiguration__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (APN__DefaultConfiguration__Type::enum_type)(const APN__DefaultConfiguration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type from an unbound optional field."); +} +} + +APN__DefaultConfiguration__Type_template::APN__DefaultConfiguration__Type_template(APN__DefaultConfiguration__Type_template* p_precondition, APN__DefaultConfiguration__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +APN__DefaultConfiguration__Type_template::APN__DefaultConfiguration__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +APN__DefaultConfiguration__Type_template::APN__DefaultConfiguration__Type_template(const APN__DefaultConfiguration__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +APN__DefaultConfiguration__Type_template::~APN__DefaultConfiguration__Type_template() +{ +clean_up(); +} + +boolean APN__DefaultConfiguration__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean APN__DefaultConfiguration__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != APN__DefaultConfiguration__Type::UNBOUND_VALUE; +} + +void APN__DefaultConfiguration__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +APN__DefaultConfiguration__Type_template& APN__DefaultConfiguration__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +APN__DefaultConfiguration__Type_template& APN__DefaultConfiguration__Type_template::operator=(int other_value) +{ +if (!APN__DefaultConfiguration__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (APN__DefaultConfiguration__Type::enum_type)other_value; +return *this; +} + +APN__DefaultConfiguration__Type_template& APN__DefaultConfiguration__Type_template::operator=(APN__DefaultConfiguration__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +APN__DefaultConfiguration__Type_template& APN__DefaultConfiguration__Type_template::operator=(const APN__DefaultConfiguration__Type& other_value) +{ +if (other_value.enum_value == APN__DefaultConfiguration__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +APN__DefaultConfiguration__Type_template& APN__DefaultConfiguration__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (APN__DefaultConfiguration__Type::enum_type)(const APN__DefaultConfiguration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +} +return *this; +} + +APN__DefaultConfiguration__Type_template& APN__DefaultConfiguration__Type_template::operator=(const APN__DefaultConfiguration__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean APN__DefaultConfiguration__Type_template::match(APN__DefaultConfiguration__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +} +return FALSE; +} + +boolean APN__DefaultConfiguration__Type_template::match(const APN__DefaultConfiguration__Type& other_value, boolean) const +{ +if (other_value.enum_value == APN__DefaultConfiguration__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type with an unbound value."); +return match(other_value.enum_value); +} + +APN__DefaultConfiguration__Type::enum_type APN__DefaultConfiguration__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +return single_value; +} + +void APN__DefaultConfiguration__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new APN__DefaultConfiguration__Type_template[list_length]; +} + +APN__DefaultConfiguration__Type_template& APN__DefaultConfiguration__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +return value_list.list_value[list_index]; +} + +void APN__DefaultConfiguration__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void APN__DefaultConfiguration__Type_template::set_value(template_sel other_value) { *this = other_value; } +void APN__DefaultConfiguration__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* APN__DefaultConfiguration__Type_template::clone() const { return new APN__DefaultConfiguration__Type_template(*this); } +const TTCN_Typedescriptor_t* APN__DefaultConfiguration__Type_template::get_descriptor() const { return &APN__DefaultConfiguration__Type_descr_; } +boolean APN__DefaultConfiguration__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void APN__DefaultConfiguration__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void APN__DefaultConfiguration__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(APN__DefaultConfiguration__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void APN__DefaultConfiguration__Type_template::log_match(const APN__DefaultConfiguration__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void APN__DefaultConfiguration__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +} +} + +void APN__DefaultConfiguration__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (APN__DefaultConfiguration__Type::enum_type)text_buf.pull_int().get_val(); +if (!APN__DefaultConfiguration__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new APN__DefaultConfiguration__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); +} +} + +boolean APN__DefaultConfiguration__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean APN__DefaultConfiguration__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + APN__DefaultConfiguration__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + APN__DefaultConfiguration__Type::enum_type enum_val = APN__DefaultConfiguration__Type::str_to_enum(m_p->get_enumerated()); + if (!APN__DefaultConfiguration__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.APN_DefaultConfiguration_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + APN__DefaultConfiguration__Type_template* precondition = new APN__DefaultConfiguration__Type_template; + precondition->set_param(*m_p->get_elem(0)); + APN__DefaultConfiguration__Type_template* implied_template = new APN__DefaultConfiguration__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = APN__DefaultConfiguration__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NAS_CommonTypeDefs.APN_DefaultConfiguration_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* APN__DefaultConfiguration__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(APN__DefaultConfiguration__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +InterworkWithoutN26::InterworkWithoutN26() +{ +enum_value = UNBOUND_VALUE; +} + +InterworkWithoutN26::InterworkWithoutN26(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26 with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +InterworkWithoutN26::InterworkWithoutN26(enum_type other_value) +{ +enum_value = other_value; +} + +InterworkWithoutN26::InterworkWithoutN26(const InterworkWithoutN26& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +enum_value = other_value.enum_value; +} + +InterworkWithoutN26& InterworkWithoutN26::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +InterworkWithoutN26& InterworkWithoutN26::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +InterworkWithoutN26& InterworkWithoutN26::operator=(const InterworkWithoutN26& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +enum_value = other_value.enum_value; +return *this; +} + +boolean InterworkWithoutN26::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +return enum_value == other_value; +} + +boolean InterworkWithoutN26::operator==(const InterworkWithoutN26& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +return enum_value == other_value.enum_value; +} + +boolean InterworkWithoutN26::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +return enum_value < other_value; +} + +boolean InterworkWithoutN26::operator<(const InterworkWithoutN26& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +return enum_value < other_value.enum_value; +} + +boolean InterworkWithoutN26::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +return enum_value > other_value; +} + +boolean InterworkWithoutN26::operator>(const InterworkWithoutN26& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +return enum_value > other_value.enum_value; +} + +const char *InterworkWithoutN26::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case NOT__SUPPORTED: return "NOT_SUPPORTED"; +case SUPPORTED: return "SUPPORTED"; +default: return ""; +} +} + +InterworkWithoutN26::enum_type InterworkWithoutN26::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "NOT_SUPPORTED")) return NOT__SUPPORTED; +else if (!strcmp(str_par, "SUPPORTED")) return SUPPORTED; +else return UNKNOWN_VALUE; +} + +boolean InterworkWithoutN26::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int InterworkWithoutN26::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int InterworkWithoutN26::enum2int(const InterworkWithoutN26& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void InterworkWithoutN26::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26.", int_val); +enum_value = (enum_type)int_val; +} + +InterworkWithoutN26::operator InterworkWithoutN26::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +return enum_value; +} + +boolean InterworkWithoutN26::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void InterworkWithoutN26::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* InterworkWithoutN26::clone() const { return new InterworkWithoutN26(*this); } +const TTCN_Typedescriptor_t* InterworkWithoutN26::get_descriptor() const { return &InterworkWithoutN26_descr_; } +void InterworkWithoutN26::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void InterworkWithoutN26::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NAS_CommonTypeDefs.InterworkWithoutN26"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.InterworkWithoutN26."); + } +} + +Module_Param* InterworkWithoutN26::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void InterworkWithoutN26::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +text_buf.push_int(enum_value); +} + +void InterworkWithoutN26::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26.", enum_value); +} + +void InterworkWithoutN26_template::copy_template(const InterworkWithoutN26_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new InterworkWithoutN26_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new InterworkWithoutN26_template(*other_value.implication_.precondition); +implication_.implied_template = new InterworkWithoutN26_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +} +} + +InterworkWithoutN26_template::InterworkWithoutN26_template() +{ +} + +InterworkWithoutN26_template::InterworkWithoutN26_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +InterworkWithoutN26_template::InterworkWithoutN26_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!InterworkWithoutN26::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26 with unknown numeric value %d.", other_value); +single_value = (InterworkWithoutN26::enum_type)other_value; +} + +InterworkWithoutN26_template::InterworkWithoutN26_template(InterworkWithoutN26::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +InterworkWithoutN26_template::InterworkWithoutN26_template(const InterworkWithoutN26& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == InterworkWithoutN26::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +single_value = other_value.enum_value; +} + +InterworkWithoutN26_template::InterworkWithoutN26_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (InterworkWithoutN26::enum_type)(const InterworkWithoutN26&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26 from an unbound optional field."); +} +} + +InterworkWithoutN26_template::InterworkWithoutN26_template(InterworkWithoutN26_template* p_precondition, InterworkWithoutN26_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +InterworkWithoutN26_template::InterworkWithoutN26_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +InterworkWithoutN26_template::InterworkWithoutN26_template(const InterworkWithoutN26_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +InterworkWithoutN26_template::~InterworkWithoutN26_template() +{ +clean_up(); +} + +boolean InterworkWithoutN26_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean InterworkWithoutN26_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != InterworkWithoutN26::UNBOUND_VALUE; +} + +void InterworkWithoutN26_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +InterworkWithoutN26_template& InterworkWithoutN26_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +InterworkWithoutN26_template& InterworkWithoutN26_template::operator=(int other_value) +{ +if (!InterworkWithoutN26::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (InterworkWithoutN26::enum_type)other_value; +return *this; +} + +InterworkWithoutN26_template& InterworkWithoutN26_template::operator=(InterworkWithoutN26::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +InterworkWithoutN26_template& InterworkWithoutN26_template::operator=(const InterworkWithoutN26& other_value) +{ +if (other_value.enum_value == InterworkWithoutN26::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26 to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +InterworkWithoutN26_template& InterworkWithoutN26_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (InterworkWithoutN26::enum_type)(const InterworkWithoutN26&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +} +return *this; +} + +InterworkWithoutN26_template& InterworkWithoutN26_template::operator=(const InterworkWithoutN26_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean InterworkWithoutN26_template::match(InterworkWithoutN26::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +} +return FALSE; +} + +boolean InterworkWithoutN26_template::match(const InterworkWithoutN26& other_value, boolean) const +{ +if (other_value.enum_value == InterworkWithoutN26::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26 with an unbound value."); +return match(other_value.enum_value); +} + +InterworkWithoutN26::enum_type InterworkWithoutN26_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +return single_value; +} + +void InterworkWithoutN26_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new InterworkWithoutN26_template[list_length]; +} + +InterworkWithoutN26_template& InterworkWithoutN26_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +return value_list.list_value[list_index]; +} + +void InterworkWithoutN26_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void InterworkWithoutN26_template::set_value(template_sel other_value) { *this = other_value; } +void InterworkWithoutN26_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* InterworkWithoutN26_template::clone() const { return new InterworkWithoutN26_template(*this); } +const TTCN_Typedescriptor_t* InterworkWithoutN26_template::get_descriptor() const { return &InterworkWithoutN26_descr_; } +boolean InterworkWithoutN26_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void InterworkWithoutN26_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void InterworkWithoutN26_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(InterworkWithoutN26::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void InterworkWithoutN26_template::log_match(const InterworkWithoutN26& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void InterworkWithoutN26_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +} +} + +void InterworkWithoutN26_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (InterworkWithoutN26::enum_type)text_buf.pull_int().get_val(); +if (!InterworkWithoutN26::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new InterworkWithoutN26_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NAS_CommonTypeDefs.InterworkWithoutN26."); +} +} + +boolean InterworkWithoutN26_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean InterworkWithoutN26_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + InterworkWithoutN26_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + InterworkWithoutN26::enum_type enum_val = InterworkWithoutN26::str_to_enum(m_p->get_enumerated()); + if (!InterworkWithoutN26::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.InterworkWithoutN26."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + InterworkWithoutN26_template* precondition = new InterworkWithoutN26_template; + precondition->set_param(*m_p->get_elem(0)); + InterworkWithoutN26_template* implied_template = new InterworkWithoutN26_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = InterworkWithoutN26_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NAS_CommonTypeDefs.InterworkWithoutN26"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* InterworkWithoutN26_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(InterworkWithoutN26::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +PS__MODE::PS__MODE() +{ +enum_value = UNBOUND_VALUE; +} + +PS__MODE::PS__MODE(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NAS_CommonTypeDefs.PS_MODE with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +PS__MODE::PS__MODE(enum_type other_value) +{ +enum_value = other_value; +} + +PS__MODE::PS__MODE(const PS__MODE& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +enum_value = other_value.enum_value; +} + +PS__MODE& PS__MODE::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.PS_MODE.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +PS__MODE& PS__MODE::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +PS__MODE& PS__MODE::operator=(const PS__MODE& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +enum_value = other_value.enum_value; +return *this; +} + +boolean PS__MODE::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +return enum_value == other_value; +} + +boolean PS__MODE::operator==(const PS__MODE& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +return enum_value == other_value.enum_value; +} + +boolean PS__MODE::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +return enum_value < other_value; +} + +boolean PS__MODE::operator<(const PS__MODE& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +return enum_value < other_value.enum_value; +} + +boolean PS__MODE::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +return enum_value > other_value; +} + +boolean PS__MODE::operator>(const PS__MODE& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +return enum_value > other_value.enum_value; +} + +const char *PS__MODE::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case VOICE__CENTRIC: return "VOICE_CENTRIC"; +case DATA__CENTRIC: return "DATA_CENTRIC"; +default: return ""; +} +} + +PS__MODE::enum_type PS__MODE::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "VOICE_CENTRIC")) return VOICE__CENTRIC; +else if (!strcmp(str_par, "DATA_CENTRIC")) return DATA__CENTRIC; +else return UNKNOWN_VALUE; +} + +boolean PS__MODE::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int PS__MODE::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.PS_MODE.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int PS__MODE::enum2int(const PS__MODE& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.PS_MODE.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void PS__MODE::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.PS_MODE.", int_val); +enum_value = (enum_type)int_val; +} + +PS__MODE::operator PS__MODE::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +return enum_value; +} + +boolean PS__MODE::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void PS__MODE::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* PS__MODE::clone() const { return new PS__MODE(*this); } +const TTCN_Typedescriptor_t* PS__MODE::get_descriptor() const { return &PS__MODE_descr_; } +void PS__MODE::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void PS__MODE::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NAS_CommonTypeDefs.PS_MODE"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.PS_MODE."); + } +} + +Module_Param* PS__MODE::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void PS__MODE::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +text_buf.push_int(enum_value); +} + +void PS__MODE::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NAS_CommonTypeDefs.PS_MODE.", enum_value); +} + +void PS__MODE_template::copy_template(const PS__MODE_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new PS__MODE_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new PS__MODE_template(*other_value.implication_.precondition); +implication_.implied_template = new PS__MODE_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +} +} + +PS__MODE_template::PS__MODE_template() +{ +} + +PS__MODE_template::PS__MODE_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +PS__MODE_template::PS__MODE_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!PS__MODE::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NAS_CommonTypeDefs.PS_MODE with unknown numeric value %d.", other_value); +single_value = (PS__MODE::enum_type)other_value; +} + +PS__MODE_template::PS__MODE_template(PS__MODE::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +PS__MODE_template::PS__MODE_template(const PS__MODE& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == PS__MODE::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +single_value = other_value.enum_value; +} + +PS__MODE_template::PS__MODE_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (PS__MODE::enum_type)(const PS__MODE&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NAS_CommonTypeDefs.PS_MODE from an unbound optional field."); +} +} + +PS__MODE_template::PS__MODE_template(PS__MODE_template* p_precondition, PS__MODE_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +PS__MODE_template::PS__MODE_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +PS__MODE_template::PS__MODE_template(const PS__MODE_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +PS__MODE_template::~PS__MODE_template() +{ +clean_up(); +} + +boolean PS__MODE_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean PS__MODE_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != PS__MODE::UNBOUND_VALUE; +} + +void PS__MODE_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +PS__MODE_template& PS__MODE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PS__MODE_template& PS__MODE_template::operator=(int other_value) +{ +if (!PS__MODE::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NAS_CommonTypeDefs.PS_MODE.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (PS__MODE::enum_type)other_value; +return *this; +} + +PS__MODE_template& PS__MODE_template::operator=(PS__MODE::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +PS__MODE_template& PS__MODE_template::operator=(const PS__MODE& other_value) +{ +if (other_value.enum_value == PS__MODE::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.PS_MODE to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +PS__MODE_template& PS__MODE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (PS__MODE::enum_type)(const PS__MODE&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +} +return *this; +} + +PS__MODE_template& PS__MODE_template::operator=(const PS__MODE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean PS__MODE_template::match(PS__MODE::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +} +return FALSE; +} + +boolean PS__MODE_template::match(const PS__MODE& other_value, boolean) const +{ +if (other_value.enum_value == PS__MODE::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NAS_CommonTypeDefs.PS_MODE with an unbound value."); +return match(other_value.enum_value); +} + +PS__MODE::enum_type PS__MODE_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +return single_value; +} + +void PS__MODE_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new PS__MODE_template[list_length]; +} + +PS__MODE_template& PS__MODE_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +return value_list.list_value[list_index]; +} + +void PS__MODE_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void PS__MODE_template::set_value(template_sel other_value) { *this = other_value; } +void PS__MODE_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* PS__MODE_template::clone() const { return new PS__MODE_template(*this); } +const TTCN_Typedescriptor_t* PS__MODE_template::get_descriptor() const { return &PS__MODE_descr_; } +boolean PS__MODE_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void PS__MODE_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void PS__MODE_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(PS__MODE::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void PS__MODE_template::log_match(const PS__MODE& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void PS__MODE_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +} +} + +void PS__MODE_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (PS__MODE::enum_type)text_buf.pull_int().get_val(); +if (!PS__MODE::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NAS_CommonTypeDefs.PS_MODE.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new PS__MODE_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NAS_CommonTypeDefs.PS_MODE."); +} +} + +boolean PS__MODE_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean PS__MODE_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + PS__MODE_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + PS__MODE::enum_type enum_val = PS__MODE::str_to_enum(m_p->get_enumerated()); + if (!PS__MODE::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.PS_MODE."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + PS__MODE_template* precondition = new PS__MODE_template; + precondition->set_param(*m_p->get_elem(0)); + PS__MODE_template* implied_template = new PS__MODE_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = PS__MODE_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NAS_CommonTypeDefs.PS_MODE"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* PS__MODE_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(PS__MODE::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +CS__PS__MODE::CS__PS__MODE() +{ +enum_value = UNBOUND_VALUE; +} + +CS__PS__MODE::CS__PS__MODE(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +CS__PS__MODE::CS__PS__MODE(enum_type other_value) +{ +enum_value = other_value; +} + +CS__PS__MODE::CS__PS__MODE(const CS__PS__MODE& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +enum_value = other_value.enum_value; +} + +CS__PS__MODE& CS__PS__MODE::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +CS__PS__MODE& CS__PS__MODE::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +CS__PS__MODE& CS__PS__MODE::operator=(const CS__PS__MODE& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +enum_value = other_value.enum_value; +return *this; +} + +boolean CS__PS__MODE::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +return enum_value == other_value; +} + +boolean CS__PS__MODE::operator==(const CS__PS__MODE& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +return enum_value == other_value.enum_value; +} + +boolean CS__PS__MODE::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +return enum_value < other_value; +} + +boolean CS__PS__MODE::operator<(const CS__PS__MODE& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +return enum_value < other_value.enum_value; +} + +boolean CS__PS__MODE::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +return enum_value > other_value; +} + +boolean CS__PS__MODE::operator>(const CS__PS__MODE& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +return enum_value > other_value.enum_value; +} + +const char *CS__PS__MODE::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case VOICE__CENTRIC: return "VOICE_CENTRIC"; +case DATA__CENTRIC: return "DATA_CENTRIC"; +default: return ""; +} +} + +CS__PS__MODE::enum_type CS__PS__MODE::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "VOICE_CENTRIC")) return VOICE__CENTRIC; +else if (!strcmp(str_par, "DATA_CENTRIC")) return DATA__CENTRIC; +else return UNKNOWN_VALUE; +} + +boolean CS__PS__MODE::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int CS__PS__MODE::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int CS__PS__MODE::enum2int(const CS__PS__MODE& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void CS__PS__MODE::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE.", int_val); +enum_value = (enum_type)int_val; +} + +CS__PS__MODE::operator CS__PS__MODE::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +return enum_value; +} + +boolean CS__PS__MODE::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void CS__PS__MODE::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* CS__PS__MODE::clone() const { return new CS__PS__MODE(*this); } +const TTCN_Typedescriptor_t* CS__PS__MODE::get_descriptor() const { return &CS__PS__MODE_descr_; } +void CS__PS__MODE::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void CS__PS__MODE::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NAS_CommonTypeDefs.CS_PS_MODE"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.CS_PS_MODE."); + } +} + +Module_Param* CS__PS__MODE::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void CS__PS__MODE::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +text_buf.push_int(enum_value); +} + +void CS__PS__MODE::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NAS_CommonTypeDefs.CS_PS_MODE.", enum_value); +} + +void CS__PS__MODE_template::copy_template(const CS__PS__MODE_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new CS__PS__MODE_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new CS__PS__MODE_template(*other_value.implication_.precondition); +implication_.implied_template = new CS__PS__MODE_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +} +} + +CS__PS__MODE_template::CS__PS__MODE_template() +{ +} + +CS__PS__MODE_template::CS__PS__MODE_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +CS__PS__MODE_template::CS__PS__MODE_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!CS__PS__MODE::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE with unknown numeric value %d.", other_value); +single_value = (CS__PS__MODE::enum_type)other_value; +} + +CS__PS__MODE_template::CS__PS__MODE_template(CS__PS__MODE::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +CS__PS__MODE_template::CS__PS__MODE_template(const CS__PS__MODE& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == CS__PS__MODE::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +single_value = other_value.enum_value; +} + +CS__PS__MODE_template::CS__PS__MODE_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (CS__PS__MODE::enum_type)(const CS__PS__MODE&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE from an unbound optional field."); +} +} + +CS__PS__MODE_template::CS__PS__MODE_template(CS__PS__MODE_template* p_precondition, CS__PS__MODE_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +CS__PS__MODE_template::CS__PS__MODE_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +CS__PS__MODE_template::CS__PS__MODE_template(const CS__PS__MODE_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +CS__PS__MODE_template::~CS__PS__MODE_template() +{ +clean_up(); +} + +boolean CS__PS__MODE_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean CS__PS__MODE_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != CS__PS__MODE::UNBOUND_VALUE; +} + +void CS__PS__MODE_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +CS__PS__MODE_template& CS__PS__MODE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CS__PS__MODE_template& CS__PS__MODE_template::operator=(int other_value) +{ +if (!CS__PS__MODE::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (CS__PS__MODE::enum_type)other_value; +return *this; +} + +CS__PS__MODE_template& CS__PS__MODE_template::operator=(CS__PS__MODE::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +CS__PS__MODE_template& CS__PS__MODE_template::operator=(const CS__PS__MODE& other_value) +{ +if (other_value.enum_value == CS__PS__MODE::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +CS__PS__MODE_template& CS__PS__MODE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (CS__PS__MODE::enum_type)(const CS__PS__MODE&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +} +return *this; +} + +CS__PS__MODE_template& CS__PS__MODE_template::operator=(const CS__PS__MODE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean CS__PS__MODE_template::match(CS__PS__MODE::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +} +return FALSE; +} + +boolean CS__PS__MODE_template::match(const CS__PS__MODE& other_value, boolean) const +{ +if (other_value.enum_value == CS__PS__MODE::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE with an unbound value."); +return match(other_value.enum_value); +} + +CS__PS__MODE::enum_type CS__PS__MODE_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +return single_value; +} + +void CS__PS__MODE_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new CS__PS__MODE_template[list_length]; +} + +CS__PS__MODE_template& CS__PS__MODE_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +return value_list.list_value[list_index]; +} + +void CS__PS__MODE_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void CS__PS__MODE_template::set_value(template_sel other_value) { *this = other_value; } +void CS__PS__MODE_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* CS__PS__MODE_template::clone() const { return new CS__PS__MODE_template(*this); } +const TTCN_Typedescriptor_t* CS__PS__MODE_template::get_descriptor() const { return &CS__PS__MODE_descr_; } +boolean CS__PS__MODE_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void CS__PS__MODE_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void CS__PS__MODE_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(CS__PS__MODE::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void CS__PS__MODE_template::log_match(const CS__PS__MODE& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void CS__PS__MODE_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +} +} + +void CS__PS__MODE_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (CS__PS__MODE::enum_type)text_buf.pull_int().get_val(); +if (!CS__PS__MODE::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new CS__PS__MODE_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NAS_CommonTypeDefs.CS_PS_MODE."); +} +} + +boolean CS__PS__MODE_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean CS__PS__MODE_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + CS__PS__MODE_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + CS__PS__MODE::enum_type enum_val = CS__PS__MODE::str_to_enum(m_p->get_enumerated()); + if (!CS__PS__MODE::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NAS_CommonTypeDefs.CS_PS_MODE."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + CS__PS__MODE_template* precondition = new CS__PS__MODE_template; + precondition->set_param(*m_p->get_elem(0)); + CS__PS__MODE_template* implied_template = new CS__PS__MODE_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = CS__PS__MODE_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NAS_CommonTypeDefs.CS_PS_MODE"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* CS__PS__MODE_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(CS__PS__MODE::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void AccessPointName::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_nameValue; } + +AccessPointName::AccessPointName() : Record_Type() { init_vec(); } + +AccessPointName::AccessPointName(const AccessPointName& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_nameValue.is_bound() ) + field_nameValue = other_value.field_nameValue; +init_vec(); +} + +AccessPointName::AccessPointName(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_nameValue) : field_iei(par_iei), + field_iel(par_iel), + field_nameValue(par_nameValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AccessPointName::get_descriptor() const { return &AccessPointName_descr_; } +const TTCN_Typedescriptor_t* AccessPointName::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* AccessPointName::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AccessPointName::fld_names[] = { "iei", "iel", "nameValue" }; +const char* AccessPointName::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AccessPointName::optional_indexes[] = { 0, -1 }; +const int* AccessPointName::get_optional_indexes() const { return optional_indexes; } + +const int AccessPointName::optional_indexes_asn[] = { 0, -1 }; +const int* AccessPointName::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AccessPointName_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +AccessPointName_template::AccessPointName_template(AccessPointName_template* p_precondition, AccessPointName_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AccessPointName_template::AccessPointName_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AccessPointName_template::~AccessPointName_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AccessPointName_template::match_dynamic(const Base_Type* match_value) const +{ +const AccessPointName* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AccessPointName_template& AccessPointName_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AccessPointName_template& AccessPointName_template::operator=(const AccessPointName& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AccessPointName_template& AccessPointName_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AccessPointName_template& AccessPointName_template::operator=(const AccessPointName_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AccessPointName AccessPointName_template::valueof() const +{ +AccessPointName ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AccessPointName_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AccessPointName_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& AccessPointName_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& AccessPointName_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& AccessPointName_template::nameValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& AccessPointName_template::nameValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AccessPointName_template::get_descriptor() const { return &AccessPointName_descr_; } +const char* AccessPointName_template::fld_name(int p_index) const { return AccessPointName::fld_names[p_index]; } +void AdditionalUpdateType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_pnb__CIOT; fld_vec[2]=&field_signallingActiveFlag; fld_vec[3]=&field_addUpdateTypeValue; } + +AdditionalUpdateType::AdditionalUpdateType() : Record_Type() { init_vec(); } + +AdditionalUpdateType::AdditionalUpdateType(const AdditionalUpdateType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_pnb__CIOT.is_bound() ) + field_pnb__CIOT = other_value.field_pnb__CIOT; +if (other_value.field_signallingActiveFlag.is_bound() ) + field_signallingActiveFlag = other_value.field_signallingActiveFlag; +if (other_value.field_addUpdateTypeValue.is_bound() ) + field_addUpdateTypeValue = other_value.field_addUpdateTypeValue; +init_vec(); +} + +AdditionalUpdateType::AdditionalUpdateType(const HEXSTRING& par_iei, + const BITSTRING& par_pnb__CIOT, + const BITSTRING& par_signallingActiveFlag, + const BITSTRING& par_addUpdateTypeValue) : field_iei(par_iei), + field_pnb__CIOT(par_pnb__CIOT), + field_signallingActiveFlag(par_signallingActiveFlag), + field_addUpdateTypeValue(par_addUpdateTypeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AdditionalUpdateType::get_descriptor() const { return &AdditionalUpdateType_descr_; } +const TTCN_Typedescriptor_t* AdditionalUpdateType::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* AdditionalUpdateType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AdditionalUpdateType::fld_names[] = { "iei", "pnb_CIOT", "signallingActiveFlag", "addUpdateTypeValue" }; +const char* AdditionalUpdateType::fld_name(int p_index) const { return fld_names[p_index]; } + +void AdditionalUpdateType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AdditionalUpdateType_template::AdditionalUpdateType_template(AdditionalUpdateType_template* p_precondition, AdditionalUpdateType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AdditionalUpdateType_template::AdditionalUpdateType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AdditionalUpdateType_template::~AdditionalUpdateType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AdditionalUpdateType_template::match_dynamic(const Base_Type* match_value) const +{ +const AdditionalUpdateType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AdditionalUpdateType_template& AdditionalUpdateType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AdditionalUpdateType_template& AdditionalUpdateType_template::operator=(const AdditionalUpdateType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AdditionalUpdateType_template& AdditionalUpdateType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AdditionalUpdateType_template& AdditionalUpdateType_template::operator=(const AdditionalUpdateType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AdditionalUpdateType AdditionalUpdateType_template::valueof() const +{ +AdditionalUpdateType ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& AdditionalUpdateType_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& AdditionalUpdateType_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AdditionalUpdateType_template::pnb__CIOT() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AdditionalUpdateType_template::pnb__CIOT() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AdditionalUpdateType_template::signallingActiveFlag() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AdditionalUpdateType_template::signallingActiveFlag() const { return *(static_cast(get_at(2))); } +BITSTRING_template& AdditionalUpdateType_template::addUpdateTypeValue() { return *(static_cast(get_at(3))); } +const BITSTRING_template& AdditionalUpdateType_template::addUpdateTypeValue() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* AdditionalUpdateType_template::get_descriptor() const { return &AdditionalUpdateType_descr_; } +const char* AdditionalUpdateType_template::fld_name(int p_index) const { return AdditionalUpdateType::fld_names[p_index]; } +void CiphKeySeqNum::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare1; fld_vec[2]=&field_keySeq; } + +CiphKeySeqNum::CiphKeySeqNum() : Record_Type() { init_vec(); } + +CiphKeySeqNum::CiphKeySeqNum(const CiphKeySeqNum& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare1.is_bound() ) + field_spare1 = other_value.field_spare1; +if (other_value.field_keySeq.is_bound() ) + field_keySeq = other_value.field_keySeq; +init_vec(); +} + +CiphKeySeqNum::CiphKeySeqNum(const OPTIONAL& par_iei, + const BITSTRING& par_spare1, + const BITSTRING& par_keySeq) : field_iei(par_iei), + field_spare1(par_spare1), + field_keySeq(par_keySeq) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CiphKeySeqNum::get_descriptor() const { return &CiphKeySeqNum_descr_; } +const TTCN_Typedescriptor_t* CiphKeySeqNum::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &KeySeq_descr_ }; +const TTCN_Typedescriptor_t* CiphKeySeqNum::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CiphKeySeqNum::fld_names[] = { "iei", "spare1", "keySeq" }; +const char* CiphKeySeqNum::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CiphKeySeqNum::optional_indexes[] = { 0, -1 }; +const int* CiphKeySeqNum::get_optional_indexes() const { return optional_indexes; } + +const int CiphKeySeqNum::optional_indexes_asn[] = { 0, -1 }; +const int* CiphKeySeqNum::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CiphKeySeqNum_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +CiphKeySeqNum_template::CiphKeySeqNum_template(CiphKeySeqNum_template* p_precondition, CiphKeySeqNum_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CiphKeySeqNum_template::CiphKeySeqNum_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CiphKeySeqNum_template::~CiphKeySeqNum_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CiphKeySeqNum_template::match_dynamic(const Base_Type* match_value) const +{ +const CiphKeySeqNum* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CiphKeySeqNum_template& CiphKeySeqNum_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CiphKeySeqNum_template& CiphKeySeqNum_template::operator=(const CiphKeySeqNum& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CiphKeySeqNum_template& CiphKeySeqNum_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CiphKeySeqNum_template& CiphKeySeqNum_template::operator=(const CiphKeySeqNum_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CiphKeySeqNum CiphKeySeqNum_template::valueof() const +{ +CiphKeySeqNum ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& CiphKeySeqNum_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& CiphKeySeqNum_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& CiphKeySeqNum_template::spare1() { return *(static_cast(get_at(1))); } +const BITSTRING_template& CiphKeySeqNum_template::spare1() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CiphKeySeqNum_template::keySeq() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CiphKeySeqNum_template::keySeq() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* CiphKeySeqNum_template::get_descriptor() const { return &CiphKeySeqNum_descr_; } +const char* CiphKeySeqNum_template::fld_name(int p_index) const { return CiphKeySeqNum::fld_names[p_index]; } +void ConnectivityType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_connectivityValue; } + +ConnectivityType::ConnectivityType() : Record_Type() { init_vec(); } + +ConnectivityType::ConnectivityType(const ConnectivityType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_connectivityValue.is_bound() ) + field_connectivityValue = other_value.field_connectivityValue; +init_vec(); +} + +ConnectivityType::ConnectivityType(const HEXSTRING& par_iei, + const BITSTRING& par_connectivityValue) : field_iei(par_iei), + field_connectivityValue(par_connectivityValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ConnectivityType::get_descriptor() const { return &ConnectivityType_descr_; } +const TTCN_Typedescriptor_t* ConnectivityType::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* ConnectivityType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ConnectivityType::fld_names[] = { "iei", "connectivityValue" }; +const char* ConnectivityType::fld_name(int p_index) const { return fld_names[p_index]; } + +void ConnectivityType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ConnectivityType_template::ConnectivityType_template(ConnectivityType_template* p_precondition, ConnectivityType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ConnectivityType_template::ConnectivityType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ConnectivityType_template::~ConnectivityType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ConnectivityType_template::match_dynamic(const Base_Type* match_value) const +{ +const ConnectivityType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ConnectivityType_template& ConnectivityType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ConnectivityType_template& ConnectivityType_template::operator=(const ConnectivityType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ConnectivityType_template& ConnectivityType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ConnectivityType_template& ConnectivityType_template::operator=(const ConnectivityType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ConnectivityType ConnectivityType_template::valueof() const +{ +ConnectivityType ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ConnectivityType_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ConnectivityType_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ConnectivityType_template::connectivityValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ConnectivityType_template::connectivityValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* ConnectivityType_template::get_descriptor() const { return &ConnectivityType_descr_; } +const char* ConnectivityType_template::fld_name(int p_index) const { return ConnectivityType::fld_names[p_index]; } +void DetachType::init_vec() { fld_vec[0]=&field_switchOff; fld_vec[1]=&field_typeOfDetach; } + +DetachType::DetachType() : Record_Type() { init_vec(); } + +DetachType::DetachType(const DetachType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_switchOff.is_bound() ) + field_switchOff = other_value.field_switchOff; +if (other_value.field_typeOfDetach.is_bound() ) + field_typeOfDetach = other_value.field_typeOfDetach; +init_vec(); +} + +DetachType::DetachType(const BITSTRING& par_switchOff, + const BITSTRING& par_typeOfDetach) : field_switchOff(par_switchOff), + field_typeOfDetach(par_typeOfDetach) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DetachType::get_descriptor() const { return &DetachType_descr_; } +const TTCN_Typedescriptor_t* DetachType::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &NAS__AttDetValue__Type_descr_ }; +const TTCN_Typedescriptor_t* DetachType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DetachType::fld_names[] = { "switchOff", "typeOfDetach" }; +const char* DetachType::fld_name(int p_index) const { return fld_names[p_index]; } + +void DetachType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DetachType_template::DetachType_template(DetachType_template* p_precondition, DetachType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DetachType_template::DetachType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DetachType_template::~DetachType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DetachType_template::match_dynamic(const Base_Type* match_value) const +{ +const DetachType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DetachType_template& DetachType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DetachType_template& DetachType_template::operator=(const DetachType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DetachType_template& DetachType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DetachType_template& DetachType_template::operator=(const DetachType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DetachType DetachType_template::valueof() const +{ +DetachType ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DetachType_template::switchOff() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DetachType_template::switchOff() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DetachType_template::typeOfDetach() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DetachType_template::typeOfDetach() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* DetachType_template::get_descriptor() const { return &DetachType_descr_; } +const char* DetachType_template::fld_name(int p_index) const { return DetachType::fld_names[p_index]; } +void DeviceProperties::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_lowPriority; } + +DeviceProperties::DeviceProperties() : Record_Type() { init_vec(); } + +DeviceProperties::DeviceProperties(const DeviceProperties& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_lowPriority.is_bound() ) + field_lowPriority = other_value.field_lowPriority; +init_vec(); +} + +DeviceProperties::DeviceProperties(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_lowPriority) : field_iei(par_iei), + field_spare(par_spare), + field_lowPriority(par_lowPriority) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DeviceProperties::get_descriptor() const { return &DeviceProperties_descr_; } +const TTCN_Typedescriptor_t* DeviceProperties::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* DeviceProperties::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DeviceProperties::fld_names[] = { "iei", "spare", "lowPriority" }; +const char* DeviceProperties::fld_name(int p_index) const { return fld_names[p_index]; } + +void DeviceProperties_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DeviceProperties_template::DeviceProperties_template(DeviceProperties_template* p_precondition, DeviceProperties_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DeviceProperties_template::DeviceProperties_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DeviceProperties_template::~DeviceProperties_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DeviceProperties_template::match_dynamic(const Base_Type* match_value) const +{ +const DeviceProperties* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DeviceProperties_template& DeviceProperties_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DeviceProperties_template& DeviceProperties_template::operator=(const DeviceProperties& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DeviceProperties_template& DeviceProperties_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DeviceProperties_template& DeviceProperties_template::operator=(const DeviceProperties_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DeviceProperties DeviceProperties_template::valueof() const +{ +DeviceProperties ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& DeviceProperties_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& DeviceProperties_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DeviceProperties_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DeviceProperties_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DeviceProperties_template::lowPriority() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DeviceProperties_template::lowPriority() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* DeviceProperties_template::get_descriptor() const { return &DeviceProperties_descr_; } +const char* DeviceProperties_template::fld_name(int p_index) const { return DeviceProperties::fld_names[p_index]; } +void DRXparameter::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_splitPGcycleCode; fld_vec[2]=&field_cnDRXcoef; fld_vec[3]=&field_splitOnCCCH; fld_vec[4]=&field_nonDRXtimer; } + +DRXparameter::DRXparameter() : Record_Type() { init_vec(); } + +DRXparameter::DRXparameter(const DRXparameter& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_splitPGcycleCode.is_bound() ) + field_splitPGcycleCode = other_value.field_splitPGcycleCode; +if (other_value.field_cnDRXcoef.is_bound() ) + field_cnDRXcoef = other_value.field_cnDRXcoef; +if (other_value.field_splitOnCCCH.is_bound() ) + field_splitOnCCCH = other_value.field_splitOnCCCH; +if (other_value.field_nonDRXtimer.is_bound() ) + field_nonDRXtimer = other_value.field_nonDRXtimer; +init_vec(); +} + +DRXparameter::DRXparameter(const OPTIONAL& par_iei, + const BITSTRING& par_splitPGcycleCode, + const BITSTRING& par_cnDRXcoef, + const BITSTRING& par_splitOnCCCH, + const BITSTRING& par_nonDRXtimer) : field_iei(par_iei), + field_splitPGcycleCode(par_splitPGcycleCode), + field_cnDRXcoef(par_cnDRXcoef), + field_splitOnCCCH(par_splitOnCCCH), + field_nonDRXtimer(par_nonDRXtimer) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DRXparameter::get_descriptor() const { return &DRXparameter_descr_; } +const TTCN_Typedescriptor_t* DRXparameter::fld_descriptors[] = { &IEI8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* DRXparameter::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DRXparameter::fld_names[] = { "iei", "splitPGcycleCode", "cnDRXcoef", "splitOnCCCH", "nonDRXtimer" }; +const char* DRXparameter::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DRXparameter::optional_indexes[] = { 0, -1 }; +const int* DRXparameter::get_optional_indexes() const { return optional_indexes; } + +const int DRXparameter::optional_indexes_asn[] = { 0, -1 }; +const int* DRXparameter::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DRXparameter_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DRXparameter_template::DRXparameter_template(DRXparameter_template* p_precondition, DRXparameter_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DRXparameter_template::DRXparameter_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DRXparameter_template::~DRXparameter_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DRXparameter_template::match_dynamic(const Base_Type* match_value) const +{ +const DRXparameter* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DRXparameter_template& DRXparameter_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DRXparameter_template& DRXparameter_template::operator=(const DRXparameter& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DRXparameter_template& DRXparameter_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DRXparameter_template& DRXparameter_template::operator=(const DRXparameter_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DRXparameter DRXparameter_template::valueof() const +{ +DRXparameter ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& DRXparameter_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& DRXparameter_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DRXparameter_template::splitPGcycleCode() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DRXparameter_template::splitPGcycleCode() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DRXparameter_template::cnDRXcoef() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DRXparameter_template::cnDRXcoef() const { return *(static_cast(get_at(2))); } +BITSTRING_template& DRXparameter_template::splitOnCCCH() { return *(static_cast(get_at(3))); } +const BITSTRING_template& DRXparameter_template::splitOnCCCH() const { return *(static_cast(get_at(3))); } +BITSTRING_template& DRXparameter_template::nonDRXtimer() { return *(static_cast(get_at(4))); } +const BITSTRING_template& DRXparameter_template::nonDRXtimer() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* DRXparameter_template::get_descriptor() const { return &DRXparameter_descr_; } +const char* DRXparameter_template::fld_name(int p_index) const { return DRXparameter::fld_names[p_index]; } +void EmergServCat::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_emergSCValue; } + +EmergServCat::EmergServCat() : Record_Type() { init_vec(); } + +EmergServCat::EmergServCat(const EmergServCat& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_emergSCValue.is_bound() ) + field_emergSCValue = other_value.field_emergSCValue; +init_vec(); +} + +EmergServCat::EmergServCat(const BITSTRING& par_spare, + const BITSTRING& par_emergSCValue) : field_spare(par_spare), + field_emergSCValue(par_emergSCValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EmergServCat::get_descriptor() const { return &EmergServCat_descr_; } +const TTCN_Typedescriptor_t* EmergServCat::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &CommonDefs::B7__Type_descr_ }; +const TTCN_Typedescriptor_t* EmergServCat::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EmergServCat::fld_names[] = { "spare", "emergSCValue" }; +const char* EmergServCat::fld_name(int p_index) const { return fld_names[p_index]; } + +void EmergServCat_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EmergServCat_template::EmergServCat_template(EmergServCat_template* p_precondition, EmergServCat_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EmergServCat_template::EmergServCat_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EmergServCat_template::~EmergServCat_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EmergServCat_template::match_dynamic(const Base_Type* match_value) const +{ +const EmergServCat* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EmergServCat_template& EmergServCat_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EmergServCat_template& EmergServCat_template::operator=(const EmergServCat& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EmergServCat_template& EmergServCat_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EmergServCat_template& EmergServCat_template::operator=(const EmergServCat_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EmergServCat EmergServCat_template::valueof() const +{ +EmergServCat ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& EmergServCat_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& EmergServCat_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EmergServCat_template::emergSCValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EmergServCat_template::emergSCValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* EmergServCat_template::get_descriptor() const { return &EmergServCat_descr_; } +const char* EmergServCat_template::fld_name(int p_index) const { return EmergServCat::fld_names[p_index]; } +void EmergNum::init_vec() { fld_vec[0]=&field_len; fld_vec[1]=&field_emergServCat; fld_vec[2]=&field_digits; } + +EmergNum::EmergNum() : Record_Type() { init_vec(); } + +EmergNum::EmergNum(const EmergNum& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_emergServCat.is_bound() ) + field_emergServCat = other_value.field_emergServCat; +if (other_value.field_digits.is_bound() ) + field_digits = other_value.field_digits; +init_vec(); +} + +EmergNum::EmergNum(const OCTETSTRING& par_len, + const EmergServCat& par_emergServCat, + const OCTETSTRING& par_digits) : field_len(par_len), + field_emergServCat(par_emergServCat), + field_digits(par_digits) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EmergNum::get_descriptor() const { return &EmergNum_descr_; } +const TTCN_Typedescriptor_t* EmergNum::fld_descriptors[] = { &Type4Length__Type_descr_, &EmergServCat_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EmergNum::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EmergNum::fld_names[] = { "len", "emergServCat", "digits" }; +const char* EmergNum::fld_name(int p_index) const { return fld_names[p_index]; } + +void EmergNum_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new EmergServCat_template(ANY_VALUE) : new EmergServCat_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EmergNum_template::EmergNum_template(EmergNum_template* p_precondition, EmergNum_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EmergNum_template::EmergNum_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EmergNum_template::~EmergNum_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EmergNum_template::match_dynamic(const Base_Type* match_value) const +{ +const EmergNum* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EmergNum_template& EmergNum_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EmergNum_template& EmergNum_template::operator=(const EmergNum& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EmergNum_template& EmergNum_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EmergNum_template& EmergNum_template::operator=(const EmergNum_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EmergNum EmergNum_template::valueof() const +{ +EmergNum ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EmergNum_template::len() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EmergNum_template::len() const { return *(static_cast(get_at(0))); } +EmergServCat_template& EmergNum_template::emergServCat() { return *(static_cast(get_at(1))); } +const EmergServCat_template& EmergNum_template::emergServCat() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EmergNum_template::digits() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EmergNum_template::digits() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EmergNum_template::get_descriptor() const { return &EmergNum_descr_; } +const char* EmergNum_template::fld_name(int p_index) const { return EmergNum::fld_names[p_index]; } + +const EmergNum EmergNumList_emergNum::UNBOUND_ELEM; +EmergNum& EmergNumList_emergNum::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +EmergNum& EmergNumList_emergNum::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const EmergNum& EmergNumList_emergNum::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const EmergNum& EmergNumList_emergNum::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +EmergNumList_emergNum EmergNumList_emergNum::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +EmergNumList_emergNum EmergNumList_emergNum::operator<<=(const INTEGER& rotate_count) const +{ +EmergNumList_emergNum rec_of; +return *((EmergNumList_emergNum*)rotl(rotate_count, &rec_of)); +} + +EmergNumList_emergNum EmergNumList_emergNum::operator>>=(const INTEGER& rotate_count) const +{ +EmergNumList_emergNum rec_of; +return *((EmergNumList_emergNum*)rotr(rotate_count, &rec_of)); +} + +EmergNumList_emergNum EmergNumList_emergNum::operator>>=(int rotate_count) const +{ +EmergNumList_emergNum rec_of; +return *((EmergNumList_emergNum*)rotr(rotate_count, &rec_of)); +} + +EmergNumList_emergNum EmergNumList_emergNum::operator+(const EmergNumList_emergNum& other_value) const +{ +EmergNumList_emergNum rec_of; +return *((EmergNumList_emergNum*)concat(&other_value, &rec_of)); +} + +EmergNumList_emergNum EmergNumList_emergNum::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const EmergNumList_emergNum&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.EmergNumList.emergNum concatenation."); +} + +EmergNumList_emergNum EmergNumList_emergNum::operator+(null_type) const +{ +return *this; +} + +EmergNumList_emergNum EmergNumList_emergNum::substr(int index, int returncount) const +{ +EmergNumList_emergNum rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +EmergNumList_emergNum EmergNumList_emergNum::replace(int index, int len, const EmergNumList_emergNum& repl) const +{ +EmergNumList_emergNum rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +EmergNumList_emergNum EmergNumList_emergNum::replace(int index, int len, const EmergNumList_emergNum_template& repl) const +{ +EmergNumList_emergNum rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* EmergNumList_emergNum::create_elem() const { return new EmergNum; } +const Base_Type* EmergNumList_emergNum::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* EmergNumList_emergNum::get_descriptor() const { return &EmergNumList_emergNum_descr_; } +EmergNumList_emergNum_template::EmergNumList_emergNum_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +EmergNumList_emergNum_template::EmergNumList_emergNum_template(EmergNumList_emergNum_template* p_precondition, EmergNumList_emergNum_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EmergNumList_emergNum_template::EmergNumList_emergNum_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EmergNumList_emergNum_template::~EmergNumList_emergNum_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EmergNumList_emergNum_template::match_dynamic(const Base_Type* match_value) const +{ +const EmergNumList_emergNum* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +EmergNumList_emergNum_template& EmergNumList_emergNum_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EmergNumList_emergNum_template& EmergNumList_emergNum_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +EmergNumList_emergNum_template& EmergNumList_emergNum_template::operator=(const EmergNumList_emergNum& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EmergNumList_emergNum_template& EmergNumList_emergNum_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EmergNumList_emergNum_template& EmergNumList_emergNum_template::operator=(const EmergNumList_emergNum_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EmergNumList_emergNum_template EmergNumList_emergNum_template::operator+(const EmergNumList_emergNum_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return EmergNumList_emergNum_template(ANY_VALUE); +} +EmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +EmergNumList_emergNum_template EmergNumList_emergNum_template::operator+(const EmergNumList_emergNum& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +EmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +EmergNumList_emergNum_template EmergNumList_emergNum_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return EmergNumList_emergNum_template(ANY_VALUE); +} +EmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +EmergNumList_emergNum_template EmergNumList_emergNum_template::operator+(null_type) const +{ +return *this; +} + +EmergNum_template& EmergNumList_emergNum_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +EmergNum_template& EmergNumList_emergNum_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const EmergNum_template& EmergNumList_emergNum_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const EmergNum_template& EmergNumList_emergNum_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +EmergNumList_emergNum EmergNumList_emergNum_template::valueof() const +{ +EmergNumList_emergNum ret_val; +valueofv(&ret_val); +return ret_val; +} + +EmergNumList_emergNum EmergNumList_emergNum_template::substr(int index, int returncount) const +{ +EmergNumList_emergNum rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +EmergNumList_emergNum EmergNumList_emergNum_template::replace(int index, int len, const EmergNumList_emergNum_template& repl) const +{ +EmergNumList_emergNum rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +EmergNumList_emergNum EmergNumList_emergNum_template::replace(int index, int len, const EmergNumList_emergNum& repl) const +{ +EmergNumList_emergNum rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* EmergNumList_emergNum_template::create_elem() const { return new EmergNum_template; } +const TTCN_Typedescriptor_t* EmergNumList_emergNum_template::get_descriptor() const { return &EmergNumList_emergNum_descr_; } +void EmergNumList::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_emergNum; } + +EmergNumList::EmergNumList() : Record_Type() { init_vec(); } + +EmergNumList::EmergNumList(const EmergNumList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_emergNum.is_bound() ) + field_emergNum = other_value.field_emergNum; +init_vec(); +} + +EmergNumList::EmergNumList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const EmergNumList_emergNum& par_emergNum) : field_iei(par_iei), + field_iel(par_iel), + field_emergNum(par_emergNum) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EmergNumList::get_descriptor() const { return &EmergNumList_descr_; } +const TTCN_Typedescriptor_t* EmergNumList::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &EmergNumList_emergNum_descr_ }; +const TTCN_Typedescriptor_t* EmergNumList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EmergNumList::fld_names[] = { "iei", "iel", "emergNum" }; +const char* EmergNumList::fld_name(int p_index) const { return fld_names[p_index]; } + +void EmergNumList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new EmergNumList_emergNum_template(ANY_VALUE) : new EmergNumList_emergNum_template; +} +} + +EmergNumList_template::EmergNumList_template(EmergNumList_template* p_precondition, EmergNumList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EmergNumList_template::EmergNumList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EmergNumList_template::~EmergNumList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EmergNumList_template::match_dynamic(const Base_Type* match_value) const +{ +const EmergNumList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EmergNumList_template& EmergNumList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EmergNumList_template& EmergNumList_template::operator=(const EmergNumList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EmergNumList_template& EmergNumList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EmergNumList_template& EmergNumList_template::operator=(const EmergNumList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EmergNumList EmergNumList_template::valueof() const +{ +EmergNumList ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EmergNumList_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EmergNumList_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EmergNumList_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EmergNumList_template::iel() const { return *(static_cast(get_at(1))); } +EmergNumList_emergNum_template& EmergNumList_template::emergNum() { return *(static_cast(get_at(2))); } +const EmergNumList_emergNum_template& EmergNumList_template::emergNum() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EmergNumList_template::get_descriptor() const { return &EmergNumList_descr_; } +const char* EmergNumList_template::fld_name(int p_index) const { return EmergNumList::fld_names[p_index]; } +void GPRS__Timer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_unit; fld_vec[2]=&field_timerValue; } + +GPRS__Timer::GPRS__Timer() : Record_Type() { init_vec(); } + +GPRS__Timer::GPRS__Timer(const GPRS__Timer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_unit.is_bound() ) + field_unit = other_value.field_unit; +if (other_value.field_timerValue.is_bound() ) + field_timerValue = other_value.field_timerValue; +init_vec(); +} + +GPRS__Timer::GPRS__Timer(const OPTIONAL& par_iei, + const BITSTRING& par_unit, + const BITSTRING& par_timerValue) : field_iei(par_iei), + field_unit(par_unit), + field_timerValue(par_timerValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* GPRS__Timer::get_descriptor() const { return &GPRS__Timer_descr_; } +const TTCN_Typedescriptor_t* GPRS__Timer::fld_descriptors[] = { &IEI8__Type_descr_, &GprsTimerUnit_descr_, &CommonDefs::B5__Type_descr_ }; +const TTCN_Typedescriptor_t* GPRS__Timer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* GPRS__Timer::fld_names[] = { "iei", "unit", "timerValue" }; +const char* GPRS__Timer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int GPRS__Timer::optional_indexes[] = { 0, -1 }; +const int* GPRS__Timer::get_optional_indexes() const { return optional_indexes; } + +const int GPRS__Timer::optional_indexes_asn[] = { 0, -1 }; +const int* GPRS__Timer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void GPRS__Timer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +GPRS__Timer_template::GPRS__Timer_template(GPRS__Timer_template* p_precondition, GPRS__Timer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +GPRS__Timer_template::GPRS__Timer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +GPRS__Timer_template::~GPRS__Timer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean GPRS__Timer_template::match_dynamic(const Base_Type* match_value) const +{ +const GPRS__Timer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +GPRS__Timer_template& GPRS__Timer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GPRS__Timer_template& GPRS__Timer_template::operator=(const GPRS__Timer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +GPRS__Timer_template& GPRS__Timer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +GPRS__Timer_template& GPRS__Timer_template::operator=(const GPRS__Timer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +GPRS__Timer GPRS__Timer_template::valueof() const +{ +GPRS__Timer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& GPRS__Timer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& GPRS__Timer_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& GPRS__Timer_template::unit() { return *(static_cast(get_at(1))); } +const BITSTRING_template& GPRS__Timer_template::unit() const { return *(static_cast(get_at(1))); } +BITSTRING_template& GPRS__Timer_template::timerValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& GPRS__Timer_template::timerValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* GPRS__Timer_template::get_descriptor() const { return &GPRS__Timer_descr_; } +const char* GPRS__Timer_template::fld_name(int p_index) const { return GPRS__Timer::fld_names[p_index]; } +void GPRS__Timer2::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_unit; fld_vec[3]=&field_gprsTimerValue; } + +GPRS__Timer2::GPRS__Timer2() : Record_Type() { init_vec(); } + +GPRS__Timer2::GPRS__Timer2(const GPRS__Timer2& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_unit.is_bound() ) + field_unit = other_value.field_unit; +if (other_value.field_gprsTimerValue.is_bound() ) + field_gprsTimerValue = other_value.field_gprsTimerValue; +init_vec(); +} + +GPRS__Timer2::GPRS__Timer2(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_unit, + const BITSTRING& par_gprsTimerValue) : field_iei(par_iei), + field_iel(par_iel), + field_unit(par_unit), + field_gprsTimerValue(par_gprsTimerValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* GPRS__Timer2::get_descriptor() const { return &GPRS__Timer2_descr_; } +const TTCN_Typedescriptor_t* GPRS__Timer2::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &GprsTimerUnit_descr_, &CommonDefs::B5__Type_descr_ }; +const TTCN_Typedescriptor_t* GPRS__Timer2::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* GPRS__Timer2::fld_names[] = { "iei", "iel", "unit", "gprsTimerValue" }; +const char* GPRS__Timer2::fld_name(int p_index) const { return fld_names[p_index]; } + +void GPRS__Timer2_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +GPRS__Timer2_template::GPRS__Timer2_template(GPRS__Timer2_template* p_precondition, GPRS__Timer2_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +GPRS__Timer2_template::GPRS__Timer2_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +GPRS__Timer2_template::~GPRS__Timer2_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean GPRS__Timer2_template::match_dynamic(const Base_Type* match_value) const +{ +const GPRS__Timer2* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +GPRS__Timer2_template& GPRS__Timer2_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GPRS__Timer2_template& GPRS__Timer2_template::operator=(const GPRS__Timer2& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +GPRS__Timer2_template& GPRS__Timer2_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +GPRS__Timer2_template& GPRS__Timer2_template::operator=(const GPRS__Timer2_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +GPRS__Timer2 GPRS__Timer2_template::valueof() const +{ +GPRS__Timer2 ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& GPRS__Timer2_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& GPRS__Timer2_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& GPRS__Timer2_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& GPRS__Timer2_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& GPRS__Timer2_template::unit() { return *(static_cast(get_at(2))); } +const BITSTRING_template& GPRS__Timer2_template::unit() const { return *(static_cast(get_at(2))); } +BITSTRING_template& GPRS__Timer2_template::gprsTimerValue() { return *(static_cast(get_at(3))); } +const BITSTRING_template& GPRS__Timer2_template::gprsTimerValue() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* GPRS__Timer2_template::get_descriptor() const { return &GPRS__Timer2_descr_; } +const char* GPRS__Timer2_template::fld_name(int p_index) const { return GPRS__Timer2::fld_names[p_index]; } +void IMEISV__Request::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_requestValue; } + +IMEISV__Request::IMEISV__Request() : Record_Type() { init_vec(); } + +IMEISV__Request::IMEISV__Request(const IMEISV__Request& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_requestValue.is_bound() ) + field_requestValue = other_value.field_requestValue; +init_vec(); +} + +IMEISV__Request::IMEISV__Request(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_requestValue) : field_iei(par_iei), + field_spare(par_spare), + field_requestValue(par_requestValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IMEISV__Request::get_descriptor() const { return &IMEISV__Request_descr_; } +const TTCN_Typedescriptor_t* IMEISV__Request::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* IMEISV__Request::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IMEISV__Request::fld_names[] = { "iei", "spare", "requestValue" }; +const char* IMEISV__Request::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IMEISV__Request::optional_indexes[] = { 0, -1 }; +const int* IMEISV__Request::get_optional_indexes() const { return optional_indexes; } + +const int IMEISV__Request::optional_indexes_asn[] = { 0, -1 }; +const int* IMEISV__Request::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IMEISV__Request_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +IMEISV__Request_template::IMEISV__Request_template(IMEISV__Request_template* p_precondition, IMEISV__Request_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IMEISV__Request_template::IMEISV__Request_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IMEISV__Request_template::~IMEISV__Request_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IMEISV__Request_template::match_dynamic(const Base_Type* match_value) const +{ +const IMEISV__Request* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IMEISV__Request_template& IMEISV__Request_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IMEISV__Request_template& IMEISV__Request_template::operator=(const IMEISV__Request& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IMEISV__Request_template& IMEISV__Request_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IMEISV__Request_template& IMEISV__Request_template::operator=(const IMEISV__Request_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IMEISV__Request IMEISV__Request_template::valueof() const +{ +IMEISV__Request ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& IMEISV__Request_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& IMEISV__Request_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& IMEISV__Request_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& IMEISV__Request_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& IMEISV__Request_template::requestValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& IMEISV__Request_template::requestValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* IMEISV__Request_template::get_descriptor() const { return &IMEISV__Request_descr_; } +const char* IMEISV__Request_template::fld_name(int p_index) const { return IMEISV__Request::fld_names[p_index]; } +void LocAreaId::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_plmn; fld_vec[2]=&field_lac; } + +LocAreaId::LocAreaId() : Record_Type() { init_vec(); } + +LocAreaId::LocAreaId(const LocAreaId& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_plmn.is_bound() ) + field_plmn = other_value.field_plmn; +if (other_value.field_lac.is_bound() ) + field_lac = other_value.field_lac; +init_vec(); +} + +LocAreaId::LocAreaId(const OPTIONAL& par_iei, + const OCTETSTRING& par_plmn, + const OCTETSTRING& par_lac) : field_iei(par_iei), + field_plmn(par_plmn), + field_lac(par_lac) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* LocAreaId::get_descriptor() const { return &LocAreaId_descr_; } +const TTCN_Typedescriptor_t* LocAreaId::fld_descriptors[] = { &IEI8__Type_descr_, &NAS__PlmnId_descr_, &NAS__Lac_descr_ }; +const TTCN_Typedescriptor_t* LocAreaId::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* LocAreaId::fld_names[] = { "iei", "plmn", "lac" }; +const char* LocAreaId::fld_name(int p_index) const { return fld_names[p_index]; } + +const int LocAreaId::optional_indexes[] = { 0, -1 }; +const int* LocAreaId::get_optional_indexes() const { return optional_indexes; } + +const int LocAreaId::optional_indexes_asn[] = { 0, -1 }; +const int* LocAreaId::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void LocAreaId_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +LocAreaId_template::LocAreaId_template(LocAreaId_template* p_precondition, LocAreaId_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LocAreaId_template::LocAreaId_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LocAreaId_template::~LocAreaId_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LocAreaId_template::match_dynamic(const Base_Type* match_value) const +{ +const LocAreaId* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +LocAreaId_template& LocAreaId_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LocAreaId_template& LocAreaId_template::operator=(const LocAreaId& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LocAreaId_template& LocAreaId_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LocAreaId_template& LocAreaId_template::operator=(const LocAreaId_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LocAreaId LocAreaId_template::valueof() const +{ +LocAreaId ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& LocAreaId_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& LocAreaId_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& LocAreaId_template::plmn() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& LocAreaId_template::plmn() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& LocAreaId_template::lac() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& LocAreaId_template::lac() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* LocAreaId_template::get_descriptor() const { return &LocAreaId_descr_; } +const char* LocAreaId_template::fld_name(int p_index) const { return LocAreaId::fld_names[p_index]; } +void RoutingAreaId::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_lai; fld_vec[2]=&field_rac; } + +RoutingAreaId::RoutingAreaId() : Record_Type() { init_vec(); } + +RoutingAreaId::RoutingAreaId(const RoutingAreaId& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_lai.is_bound() ) + field_lai = other_value.field_lai; +if (other_value.field_rac.is_bound() ) + field_rac = other_value.field_rac; +init_vec(); +} + +RoutingAreaId::RoutingAreaId(const OPTIONAL& par_iei, + const LocAreaId& par_lai, + const OCTETSTRING& par_rac) : field_iei(par_iei), + field_lai(par_lai), + field_rac(par_rac) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RoutingAreaId::get_descriptor() const { return &RoutingAreaId_descr_; } +const TTCN_Typedescriptor_t* RoutingAreaId::fld_descriptors[] = { &IEI8__Type_descr_, &LocAreaId_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* RoutingAreaId::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RoutingAreaId::fld_names[] = { "iei", "lai", "rac" }; +const char* RoutingAreaId::fld_name(int p_index) const { return fld_names[p_index]; } + +const int RoutingAreaId::optional_indexes[] = { 0, -1 }; +const int* RoutingAreaId::get_optional_indexes() const { return optional_indexes; } + +const int RoutingAreaId::optional_indexes_asn[] = { 0, -1 }; +const int* RoutingAreaId::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void RoutingAreaId_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new LocAreaId_template(ANY_VALUE) : new LocAreaId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +RoutingAreaId_template::RoutingAreaId_template(RoutingAreaId_template* p_precondition, RoutingAreaId_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RoutingAreaId_template::RoutingAreaId_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RoutingAreaId_template::~RoutingAreaId_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RoutingAreaId_template::match_dynamic(const Base_Type* match_value) const +{ +const RoutingAreaId* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RoutingAreaId_template& RoutingAreaId_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RoutingAreaId_template& RoutingAreaId_template::operator=(const RoutingAreaId& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RoutingAreaId_template& RoutingAreaId_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RoutingAreaId_template& RoutingAreaId_template::operator=(const RoutingAreaId_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RoutingAreaId RoutingAreaId_template::valueof() const +{ +RoutingAreaId ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& RoutingAreaId_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& RoutingAreaId_template::iei() const { return *(static_cast(get_at(0))); } +LocAreaId_template& RoutingAreaId_template::lai() { return *(static_cast(get_at(1))); } +const LocAreaId_template& RoutingAreaId_template::lai() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& RoutingAreaId_template::rac() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& RoutingAreaId_template::rac() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* RoutingAreaId_template::get_descriptor() const { return &RoutingAreaId_descr_; } +const char* RoutingAreaId_template::fld_name(int p_index) const { return RoutingAreaId::fld_names[p_index]; } +void LLC__SAPI::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_llcSapiValue; } + +LLC__SAPI::LLC__SAPI() : Record_Type() { init_vec(); } + +LLC__SAPI::LLC__SAPI(const LLC__SAPI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_llcSapiValue.is_bound() ) + field_llcSapiValue = other_value.field_llcSapiValue; +init_vec(); +} + +LLC__SAPI::LLC__SAPI(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_llcSapiValue) : field_iei(par_iei), + field_spare(par_spare), + field_llcSapiValue(par_llcSapiValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* LLC__SAPI::get_descriptor() const { return &LLC__SAPI_descr_; } +const TTCN_Typedescriptor_t* LLC__SAPI::fld_descriptors[] = { &IEI8__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* LLC__SAPI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* LLC__SAPI::fld_names[] = { "iei", "spare", "llcSapiValue" }; +const char* LLC__SAPI::fld_name(int p_index) const { return fld_names[p_index]; } + +const int LLC__SAPI::optional_indexes[] = { 0, -1 }; +const int* LLC__SAPI::get_optional_indexes() const { return optional_indexes; } + +const int LLC__SAPI::optional_indexes_asn[] = { 0, -1 }; +const int* LLC__SAPI::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void LLC__SAPI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +LLC__SAPI_template::LLC__SAPI_template(LLC__SAPI_template* p_precondition, LLC__SAPI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LLC__SAPI_template::LLC__SAPI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LLC__SAPI_template::~LLC__SAPI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LLC__SAPI_template::match_dynamic(const Base_Type* match_value) const +{ +const LLC__SAPI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +LLC__SAPI_template& LLC__SAPI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LLC__SAPI_template& LLC__SAPI_template::operator=(const LLC__SAPI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LLC__SAPI_template& LLC__SAPI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LLC__SAPI_template& LLC__SAPI_template::operator=(const LLC__SAPI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LLC__SAPI LLC__SAPI_template::valueof() const +{ +LLC__SAPI ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& LLC__SAPI_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& LLC__SAPI_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& LLC__SAPI_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& LLC__SAPI_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& LLC__SAPI_template::llcSapiValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& LLC__SAPI_template::llcSapiValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* LLC__SAPI_template::get_descriptor() const { return &LLC__SAPI_descr_; } +const char* LLC__SAPI_template::fld_name(int p_index) const { return LLC__SAPI::fld_names[p_index]; } +void MobileIdentity::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_idDigit1; fld_vec[3]=&field_oddEvenInd; fld_vec[4]=&field_typeOfId; fld_vec[5]=&field_otherDigits; } + +MobileIdentity::MobileIdentity() : Record_Type() { init_vec(); } + +MobileIdentity::MobileIdentity(const MobileIdentity& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_idDigit1.is_bound() ) + field_idDigit1 = other_value.field_idDigit1; +if (other_value.field_oddEvenInd.is_bound() ) + field_oddEvenInd = other_value.field_oddEvenInd; +if (other_value.field_typeOfId.is_bound() ) + field_typeOfId = other_value.field_typeOfId; +if (other_value.field_otherDigits.is_bound() ) + field_otherDigits = other_value.field_otherDigits; +init_vec(); +} + +MobileIdentity::MobileIdentity(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_idDigit1, + const BITSTRING& par_oddEvenInd, + const BITSTRING& par_typeOfId, + const OCTETSTRING& par_otherDigits) : field_iei(par_iei), + field_iel(par_iel), + field_idDigit1(par_idDigit1), + field_oddEvenInd(par_oddEvenInd), + field_typeOfId(par_typeOfId), + field_otherDigits(par_otherDigits) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MobileIdentity::get_descriptor() const { return &MobileIdentity_descr_; } +const TTCN_Typedescriptor_t* MobileIdentity::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &BcdDigit__Bit_descr_, &CommonDefs::B1__Type_descr_, &NAS__IdType_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* MobileIdentity::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MobileIdentity::fld_names[] = { "iei", "iel", "idDigit1", "oddEvenInd", "typeOfId", "otherDigits" }; +const char* MobileIdentity::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MobileIdentity::optional_indexes[] = { 0, -1 }; +const int* MobileIdentity::get_optional_indexes() const { return optional_indexes; } + +const int MobileIdentity::optional_indexes_asn[] = { 0, -1 }; +const int* MobileIdentity::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MobileIdentity_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +MobileIdentity_template::MobileIdentity_template(MobileIdentity_template* p_precondition, MobileIdentity_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MobileIdentity_template::MobileIdentity_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MobileIdentity_template::~MobileIdentity_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MobileIdentity_template::match_dynamic(const Base_Type* match_value) const +{ +const MobileIdentity* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MobileIdentity_template& MobileIdentity_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MobileIdentity_template& MobileIdentity_template::operator=(const MobileIdentity& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MobileIdentity_template& MobileIdentity_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MobileIdentity_template& MobileIdentity_template::operator=(const MobileIdentity_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MobileIdentity MobileIdentity_template::valueof() const +{ +MobileIdentity ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& MobileIdentity_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& MobileIdentity_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& MobileIdentity_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& MobileIdentity_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& MobileIdentity_template::idDigit1() { return *(static_cast(get_at(2))); } +const BITSTRING_template& MobileIdentity_template::idDigit1() const { return *(static_cast(get_at(2))); } +BITSTRING_template& MobileIdentity_template::oddEvenInd() { return *(static_cast(get_at(3))); } +const BITSTRING_template& MobileIdentity_template::oddEvenInd() const { return *(static_cast(get_at(3))); } +BITSTRING_template& MobileIdentity_template::typeOfId() { return *(static_cast(get_at(4))); } +const BITSTRING_template& MobileIdentity_template::typeOfId() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& MobileIdentity_template::otherDigits() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& MobileIdentity_template::otherDigits() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* MobileIdentity_template::get_descriptor() const { return &MobileIdentity_descr_; } +const char* MobileIdentity_template::fld_name(int p_index) const { return MobileIdentity::fld_names[p_index]; } +void MS__Clsmk2::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare1__1; fld_vec[3]=&field_revLvl; fld_vec[4]=&field_eSIND; fld_vec[5]=&field_a5__1; fld_vec[6]=&field_rFPwrCap; fld_vec[7]=&field_spare1__2; fld_vec[8]=&field_pSCap; fld_vec[9]=&field_sSSI; fld_vec[10]=&field_sMCap; fld_vec[11]=&field_vBS; fld_vec[12]=&field_vGCS; fld_vec[13]=&field_fC; fld_vec[14]=&field_cM3; fld_vec[15]=&field_spare1__3; fld_vec[16]=&field_lCSVA; fld_vec[17]=&field_uCS2; fld_vec[18]=&field_soLSA; fld_vec[19]=&field_cMSP; fld_vec[20]=&field_a5__3; fld_vec[21]=&field_a5__2; } + +MS__Clsmk2::MS__Clsmk2() : Record_Type() { init_vec(); } + +MS__Clsmk2::MS__Clsmk2(const MS__Clsmk2& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare1__1.is_bound() ) + field_spare1__1 = other_value.field_spare1__1; +if (other_value.field_revLvl.is_bound() ) + field_revLvl = other_value.field_revLvl; +if (other_value.field_eSIND.is_bound() ) + field_eSIND = other_value.field_eSIND; +if (other_value.field_a5__1.is_bound() ) + field_a5__1 = other_value.field_a5__1; +if (other_value.field_rFPwrCap.is_bound() ) + field_rFPwrCap = other_value.field_rFPwrCap; +if (other_value.field_spare1__2.is_bound() ) + field_spare1__2 = other_value.field_spare1__2; +if (other_value.field_pSCap.is_bound() ) + field_pSCap = other_value.field_pSCap; +if (other_value.field_sSSI.is_bound() ) + field_sSSI = other_value.field_sSSI; +if (other_value.field_sMCap.is_bound() ) + field_sMCap = other_value.field_sMCap; +if (other_value.field_vBS.is_bound() ) + field_vBS = other_value.field_vBS; +if (other_value.field_vGCS.is_bound() ) + field_vGCS = other_value.field_vGCS; +if (other_value.field_fC.is_bound() ) + field_fC = other_value.field_fC; +if (other_value.field_cM3.is_bound() ) + field_cM3 = other_value.field_cM3; +if (other_value.field_spare1__3.is_bound() ) + field_spare1__3 = other_value.field_spare1__3; +if (other_value.field_lCSVA.is_bound() ) + field_lCSVA = other_value.field_lCSVA; +if (other_value.field_uCS2.is_bound() ) + field_uCS2 = other_value.field_uCS2; +if (other_value.field_soLSA.is_bound() ) + field_soLSA = other_value.field_soLSA; +if (other_value.field_cMSP.is_bound() ) + field_cMSP = other_value.field_cMSP; +if (other_value.field_a5__3.is_bound() ) + field_a5__3 = other_value.field_a5__3; +if (other_value.field_a5__2.is_bound() ) + field_a5__2 = other_value.field_a5__2; +init_vec(); +} + +MS__Clsmk2::MS__Clsmk2(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare1__1, + const BITSTRING& par_revLvl, + const BITSTRING& par_eSIND, + const BITSTRING& par_a5__1, + const BITSTRING& par_rFPwrCap, + const BITSTRING& par_spare1__2, + const BITSTRING& par_pSCap, + const BITSTRING& par_sSSI, + const BITSTRING& par_sMCap, + const BITSTRING& par_vBS, + const BITSTRING& par_vGCS, + const BITSTRING& par_fC, + const BITSTRING& par_cM3, + const BITSTRING& par_spare1__3, + const BITSTRING& par_lCSVA, + const BITSTRING& par_uCS2, + const BITSTRING& par_soLSA, + const BITSTRING& par_cMSP, + const BITSTRING& par_a5__3, + const BITSTRING& par_a5__2) : field_iei(par_iei), + field_iel(par_iel), + field_spare1__1(par_spare1__1), + field_revLvl(par_revLvl), + field_eSIND(par_eSIND), + field_a5__1(par_a5__1), + field_rFPwrCap(par_rFPwrCap), + field_spare1__2(par_spare1__2), + field_pSCap(par_pSCap), + field_sSSI(par_sSSI), + field_sMCap(par_sMCap), + field_vBS(par_vBS), + field_vGCS(par_vGCS), + field_fC(par_fC), + field_cM3(par_cM3), + field_spare1__3(par_spare1__3), + field_lCSVA(par_lCSVA), + field_uCS2(par_uCS2), + field_soLSA(par_soLSA), + field_cMSP(par_cMSP), + field_a5__3(par_a5__3), + field_a5__2(par_a5__2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MS__Clsmk2::get_descriptor() const { return &MS__Clsmk2_descr_; } +const TTCN_Typedescriptor_t* MS__Clsmk2::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* MS__Clsmk2::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MS__Clsmk2::fld_names[] = { "iei", "iel", "spare1_1", "revLvl", "eSIND", "a5_1", "rFPwrCap", "spare1_2", "pSCap", "sSSI", "sMCap", "vBS", "vGCS", "fC", "cM3", "spare1_3", "lCSVA", "uCS2", "soLSA", "cMSP", "a5_3", "a5_2" }; +const char* MS__Clsmk2::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MS__Clsmk2::optional_indexes[] = { 0, -1 }; +const int* MS__Clsmk2::get_optional_indexes() const { return optional_indexes; } + +const int MS__Clsmk2::optional_indexes_asn[] = { 0, -1 }; +const int* MS__Clsmk2::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MS__Clsmk2_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 22; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[12] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[13] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[14] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[15] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[16] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[17] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[18] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[19] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[20] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[21] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +MS__Clsmk2_template::MS__Clsmk2_template(MS__Clsmk2_template* p_precondition, MS__Clsmk2_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MS__Clsmk2_template::MS__Clsmk2_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MS__Clsmk2_template::~MS__Clsmk2_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MS__Clsmk2_template::match_dynamic(const Base_Type* match_value) const +{ +const MS__Clsmk2* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MS__Clsmk2_template& MS__Clsmk2_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MS__Clsmk2_template& MS__Clsmk2_template::operator=(const MS__Clsmk2& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MS__Clsmk2_template& MS__Clsmk2_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MS__Clsmk2_template& MS__Clsmk2_template::operator=(const MS__Clsmk2_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MS__Clsmk2 MS__Clsmk2_template::valueof() const +{ +MS__Clsmk2 ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& MS__Clsmk2_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& MS__Clsmk2_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& MS__Clsmk2_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& MS__Clsmk2_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& MS__Clsmk2_template::spare1__1() { return *(static_cast(get_at(2))); } +const BITSTRING_template& MS__Clsmk2_template::spare1__1() const { return *(static_cast(get_at(2))); } +BITSTRING_template& MS__Clsmk2_template::revLvl() { return *(static_cast(get_at(3))); } +const BITSTRING_template& MS__Clsmk2_template::revLvl() const { return *(static_cast(get_at(3))); } +BITSTRING_template& MS__Clsmk2_template::eSIND() { return *(static_cast(get_at(4))); } +const BITSTRING_template& MS__Clsmk2_template::eSIND() const { return *(static_cast(get_at(4))); } +BITSTRING_template& MS__Clsmk2_template::a5__1() { return *(static_cast(get_at(5))); } +const BITSTRING_template& MS__Clsmk2_template::a5__1() const { return *(static_cast(get_at(5))); } +BITSTRING_template& MS__Clsmk2_template::rFPwrCap() { return *(static_cast(get_at(6))); } +const BITSTRING_template& MS__Clsmk2_template::rFPwrCap() const { return *(static_cast(get_at(6))); } +BITSTRING_template& MS__Clsmk2_template::spare1__2() { return *(static_cast(get_at(7))); } +const BITSTRING_template& MS__Clsmk2_template::spare1__2() const { return *(static_cast(get_at(7))); } +BITSTRING_template& MS__Clsmk2_template::pSCap() { return *(static_cast(get_at(8))); } +const BITSTRING_template& MS__Clsmk2_template::pSCap() const { return *(static_cast(get_at(8))); } +BITSTRING_template& MS__Clsmk2_template::sSSI() { return *(static_cast(get_at(9))); } +const BITSTRING_template& MS__Clsmk2_template::sSSI() const { return *(static_cast(get_at(9))); } +BITSTRING_template& MS__Clsmk2_template::sMCap() { return *(static_cast(get_at(10))); } +const BITSTRING_template& MS__Clsmk2_template::sMCap() const { return *(static_cast(get_at(10))); } +BITSTRING_template& MS__Clsmk2_template::vBS() { return *(static_cast(get_at(11))); } +const BITSTRING_template& MS__Clsmk2_template::vBS() const { return *(static_cast(get_at(11))); } +BITSTRING_template& MS__Clsmk2_template::vGCS() { return *(static_cast(get_at(12))); } +const BITSTRING_template& MS__Clsmk2_template::vGCS() const { return *(static_cast(get_at(12))); } +BITSTRING_template& MS__Clsmk2_template::fC() { return *(static_cast(get_at(13))); } +const BITSTRING_template& MS__Clsmk2_template::fC() const { return *(static_cast(get_at(13))); } +BITSTRING_template& MS__Clsmk2_template::cM3() { return *(static_cast(get_at(14))); } +const BITSTRING_template& MS__Clsmk2_template::cM3() const { return *(static_cast(get_at(14))); } +BITSTRING_template& MS__Clsmk2_template::spare1__3() { return *(static_cast(get_at(15))); } +const BITSTRING_template& MS__Clsmk2_template::spare1__3() const { return *(static_cast(get_at(15))); } +BITSTRING_template& MS__Clsmk2_template::lCSVA() { return *(static_cast(get_at(16))); } +const BITSTRING_template& MS__Clsmk2_template::lCSVA() const { return *(static_cast(get_at(16))); } +BITSTRING_template& MS__Clsmk2_template::uCS2() { return *(static_cast(get_at(17))); } +const BITSTRING_template& MS__Clsmk2_template::uCS2() const { return *(static_cast(get_at(17))); } +BITSTRING_template& MS__Clsmk2_template::soLSA() { return *(static_cast(get_at(18))); } +const BITSTRING_template& MS__Clsmk2_template::soLSA() const { return *(static_cast(get_at(18))); } +BITSTRING_template& MS__Clsmk2_template::cMSP() { return *(static_cast(get_at(19))); } +const BITSTRING_template& MS__Clsmk2_template::cMSP() const { return *(static_cast(get_at(19))); } +BITSTRING_template& MS__Clsmk2_template::a5__3() { return *(static_cast(get_at(20))); } +const BITSTRING_template& MS__Clsmk2_template::a5__3() const { return *(static_cast(get_at(20))); } +BITSTRING_template& MS__Clsmk2_template::a5__2() { return *(static_cast(get_at(21))); } +const BITSTRING_template& MS__Clsmk2_template::a5__2() const { return *(static_cast(get_at(21))); } +const TTCN_Typedescriptor_t* MS__Clsmk2_template::get_descriptor() const { return &MS__Clsmk2_descr_; } +const char* MS__Clsmk2_template::fld_name(int p_index) const { return MS__Clsmk2::fld_names[p_index]; } +void MS__Clsmk3::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spareBit; fld_vec[3]=&field_multibandSupported; fld_vec[4]=&field_a5__7; fld_vec[5]=&field_a5__6; fld_vec[6]=&field_a5__5; fld_vec[7]=&field_a5__4; fld_vec[8]=&field_associatedRadioCapabilty2; fld_vec[9]=&field_spareBits1; fld_vec[10]=&field_associatedRadioCapabilty1; fld_vec[11]=&field_maskBit1; fld_vec[12]=&field_rGSM__RadioCapability; fld_vec[13]=&field_maskBit2; fld_vec[14]=&field_multiSlotClass; fld_vec[15]=&field_uCS2Treatment; fld_vec[16]=&field_extMeasurementCapability; fld_vec[17]=&field_maskBit3; fld_vec[18]=&field_msMeasurementCapability; fld_vec[19]=&field_maskBit4; fld_vec[20]=&field_msPositioningMethod; fld_vec[21]=&field_maskBit5; fld_vec[22]=&field_eDGE__MultiSlot; fld_vec[23]=&field_maskBit6; fld_vec[24]=&field_psk8__Struct; fld_vec[25]=&field_maskBit7; fld_vec[26]=&field_gSM400BandsSupported; fld_vec[27]=&field_gSM400AssociatedRadioCapability; fld_vec[28]=&field_maskBit8; fld_vec[29]=&field_gSM850AssociatedRadiioCapability; fld_vec[30]=&field_maskBit9; fld_vec[31]=&field_pCS1900AssociatedRadiioCapability; fld_vec[32]=&field_uMTS__FDD__RAT__Capability; fld_vec[33]=&field_uMTS384TDD__RAT__Capability; fld_vec[34]=&field_cDMA2000__RAT__Capability; fld_vec[35]=&field_maskBit10; fld_vec[36]=&field_dTM__GPRS__MultiSlotSubclass; fld_vec[37]=&field_singleSlotDTM; fld_vec[38]=&field_maskBit11; fld_vec[39]=&field_dTM__EGPRS__MultiSlorSubclass; fld_vec[40]=&field_maskBit12; fld_vec[41]=&field_singleBandSupport; fld_vec[42]=&field_maskBit13; fld_vec[43]=&field_gSM700AssociatedRadioCapability; fld_vec[44]=&field_uMTS128TDD__RAT__Capability; fld_vec[45]=&field_gERANFeatPack1; fld_vec[46]=&field_mask14; fld_vec[47]=&field_extDTM__GPRS__MultiSlotSubclass; fld_vec[48]=&field_etxDTM__EGPRS__MultiSlotSubclass; fld_vec[49]=&field_mask15; fld_vec[50]=&field_highMultislotCap; fld_vec[51]=&field_spare2; fld_vec[52]=&field_gERANFeatPack2; fld_vec[53]=&field_gMSKMultislotPowerProfile; fld_vec[54]=&field_pSKMultislotPowerProfile; fld_vec[55]=&field_mask17; fld_vec[56]=&field_tGSM400BandsSupported; fld_vec[57]=&field_tGSM400AssocRadioCap; fld_vec[58]=&field_spare; fld_vec[59]=&field_dlAdvancedRxPerf; fld_vec[60]=&field_dTMEhancCap; fld_vec[61]=&field_mask19; fld_vec[62]=&field_dTMGPRSHighMultislotClass; fld_vec[63]=&field_offsetReq; fld_vec[64]=&field_mask20; fld_vec[65]=&field_dTMEGPRSHighMultislotClass; fld_vec[66]=&field_rptdACCHCap; fld_vec[67]=&field_mask21; fld_vec[68]=&field_gsm710AssocRadioCap; fld_vec[69]=&field_mask22; fld_vec[70]=&field_tgsm810AssocRadioCap; fld_vec[71]=&field_cipheringModeSettingCap; fld_vec[72]=&field_addPositionCap; fld_vec[73]=&field_eutraFDDSupport; fld_vec[74]=&field_eutraTDDSupport; fld_vec[75]=&field_eutraMeasAndReporting; fld_vec[76]=&field_priorityBasedReselection; fld_vec[77]=&field_utraCSGCellsReporting; fld_vec[78]=&field_vamosLevel; fld_vec[79]=&field_tighterCap; fld_vec[80]=&field_selectCipheringDLSACCH; fld_vec[81]=&field_csPS__SRVCC__G2U; fld_vec[82]=&field_csPS__SRVCC__G2E; fld_vec[83]=&field_geranNwkSharing; fld_vec[84]=&field_eutraWidebandRSRQMeas; fld_vec[85]=&field_erBandSupport; fld_vec[86]=&field_utraMultipleFreqBandInd; fld_vec[87]=&field_eutraMultipleFreqBandInd; fld_vec[88]=&field_xtdTSCSetCap; fld_vec[89]=&field_xtdEARFCNValueRange; fld_vec[90]=&field_spareBits2; } + +MS__Clsmk3::MS__Clsmk3() : Record_Type() { init_vec(); } + +MS__Clsmk3::MS__Clsmk3(const MS__Clsmk3& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spareBit.is_bound() ) + field_spareBit = other_value.field_spareBit; +if (other_value.field_multibandSupported.is_bound() ) + field_multibandSupported = other_value.field_multibandSupported; +if (other_value.field_a5__7.is_bound() ) + field_a5__7 = other_value.field_a5__7; +if (other_value.field_a5__6.is_bound() ) + field_a5__6 = other_value.field_a5__6; +if (other_value.field_a5__5.is_bound() ) + field_a5__5 = other_value.field_a5__5; +if (other_value.field_a5__4.is_bound() ) + field_a5__4 = other_value.field_a5__4; +if (other_value.field_associatedRadioCapabilty2.is_bound() ) + field_associatedRadioCapabilty2 = other_value.field_associatedRadioCapabilty2; +if (other_value.field_spareBits1.is_bound() ) + field_spareBits1 = other_value.field_spareBits1; +if (other_value.field_associatedRadioCapabilty1.is_bound() ) + field_associatedRadioCapabilty1 = other_value.field_associatedRadioCapabilty1; +if (other_value.field_maskBit1.is_bound() ) + field_maskBit1 = other_value.field_maskBit1; +if (other_value.field_rGSM__RadioCapability.is_bound() ) + field_rGSM__RadioCapability = other_value.field_rGSM__RadioCapability; +if (other_value.field_maskBit2.is_bound() ) + field_maskBit2 = other_value.field_maskBit2; +if (other_value.field_multiSlotClass.is_bound() ) + field_multiSlotClass = other_value.field_multiSlotClass; +if (other_value.field_uCS2Treatment.is_bound() ) + field_uCS2Treatment = other_value.field_uCS2Treatment; +if (other_value.field_extMeasurementCapability.is_bound() ) + field_extMeasurementCapability = other_value.field_extMeasurementCapability; +if (other_value.field_maskBit3.is_bound() ) + field_maskBit3 = other_value.field_maskBit3; +if (other_value.field_msMeasurementCapability.is_bound() ) + field_msMeasurementCapability = other_value.field_msMeasurementCapability; +if (other_value.field_maskBit4.is_bound() ) + field_maskBit4 = other_value.field_maskBit4; +if (other_value.field_msPositioningMethod.is_bound() ) + field_msPositioningMethod = other_value.field_msPositioningMethod; +if (other_value.field_maskBit5.is_bound() ) + field_maskBit5 = other_value.field_maskBit5; +if (other_value.field_eDGE__MultiSlot.is_bound() ) + field_eDGE__MultiSlot = other_value.field_eDGE__MultiSlot; +if (other_value.field_maskBit6.is_bound() ) + field_maskBit6 = other_value.field_maskBit6; +if (other_value.field_psk8__Struct.is_bound() ) + field_psk8__Struct = other_value.field_psk8__Struct; +if (other_value.field_maskBit7.is_bound() ) + field_maskBit7 = other_value.field_maskBit7; +if (other_value.field_gSM400BandsSupported.is_bound() ) + field_gSM400BandsSupported = other_value.field_gSM400BandsSupported; +if (other_value.field_gSM400AssociatedRadioCapability.is_bound() ) + field_gSM400AssociatedRadioCapability = other_value.field_gSM400AssociatedRadioCapability; +if (other_value.field_maskBit8.is_bound() ) + field_maskBit8 = other_value.field_maskBit8; +if (other_value.field_gSM850AssociatedRadiioCapability.is_bound() ) + field_gSM850AssociatedRadiioCapability = other_value.field_gSM850AssociatedRadiioCapability; +if (other_value.field_maskBit9.is_bound() ) + field_maskBit9 = other_value.field_maskBit9; +if (other_value.field_pCS1900AssociatedRadiioCapability.is_bound() ) + field_pCS1900AssociatedRadiioCapability = other_value.field_pCS1900AssociatedRadiioCapability; +if (other_value.field_uMTS__FDD__RAT__Capability.is_bound() ) + field_uMTS__FDD__RAT__Capability = other_value.field_uMTS__FDD__RAT__Capability; +if (other_value.field_uMTS384TDD__RAT__Capability.is_bound() ) + field_uMTS384TDD__RAT__Capability = other_value.field_uMTS384TDD__RAT__Capability; +if (other_value.field_cDMA2000__RAT__Capability.is_bound() ) + field_cDMA2000__RAT__Capability = other_value.field_cDMA2000__RAT__Capability; +if (other_value.field_maskBit10.is_bound() ) + field_maskBit10 = other_value.field_maskBit10; +if (other_value.field_dTM__GPRS__MultiSlotSubclass.is_bound() ) + field_dTM__GPRS__MultiSlotSubclass = other_value.field_dTM__GPRS__MultiSlotSubclass; +if (other_value.field_singleSlotDTM.is_bound() ) + field_singleSlotDTM = other_value.field_singleSlotDTM; +if (other_value.field_maskBit11.is_bound() ) + field_maskBit11 = other_value.field_maskBit11; +if (other_value.field_dTM__EGPRS__MultiSlorSubclass.is_bound() ) + field_dTM__EGPRS__MultiSlorSubclass = other_value.field_dTM__EGPRS__MultiSlorSubclass; +if (other_value.field_maskBit12.is_bound() ) + field_maskBit12 = other_value.field_maskBit12; +if (other_value.field_singleBandSupport.is_bound() ) + field_singleBandSupport = other_value.field_singleBandSupport; +if (other_value.field_maskBit13.is_bound() ) + field_maskBit13 = other_value.field_maskBit13; +if (other_value.field_gSM700AssociatedRadioCapability.is_bound() ) + field_gSM700AssociatedRadioCapability = other_value.field_gSM700AssociatedRadioCapability; +if (other_value.field_uMTS128TDD__RAT__Capability.is_bound() ) + field_uMTS128TDD__RAT__Capability = other_value.field_uMTS128TDD__RAT__Capability; +if (other_value.field_gERANFeatPack1.is_bound() ) + field_gERANFeatPack1 = other_value.field_gERANFeatPack1; +if (other_value.field_mask14.is_bound() ) + field_mask14 = other_value.field_mask14; +if (other_value.field_extDTM__GPRS__MultiSlotSubclass.is_bound() ) + field_extDTM__GPRS__MultiSlotSubclass = other_value.field_extDTM__GPRS__MultiSlotSubclass; +if (other_value.field_etxDTM__EGPRS__MultiSlotSubclass.is_bound() ) + field_etxDTM__EGPRS__MultiSlotSubclass = other_value.field_etxDTM__EGPRS__MultiSlotSubclass; +if (other_value.field_mask15.is_bound() ) + field_mask15 = other_value.field_mask15; +if (other_value.field_highMultislotCap.is_bound() ) + field_highMultislotCap = other_value.field_highMultislotCap; +if (other_value.field_spare2.is_bound() ) + field_spare2 = other_value.field_spare2; +if (other_value.field_gERANFeatPack2.is_bound() ) + field_gERANFeatPack2 = other_value.field_gERANFeatPack2; +if (other_value.field_gMSKMultislotPowerProfile.is_bound() ) + field_gMSKMultislotPowerProfile = other_value.field_gMSKMultislotPowerProfile; +if (other_value.field_pSKMultislotPowerProfile.is_bound() ) + field_pSKMultislotPowerProfile = other_value.field_pSKMultislotPowerProfile; +if (other_value.field_mask17.is_bound() ) + field_mask17 = other_value.field_mask17; +if (other_value.field_tGSM400BandsSupported.is_bound() ) + field_tGSM400BandsSupported = other_value.field_tGSM400BandsSupported; +if (other_value.field_tGSM400AssocRadioCap.is_bound() ) + field_tGSM400AssocRadioCap = other_value.field_tGSM400AssocRadioCap; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_dlAdvancedRxPerf.is_bound() ) + field_dlAdvancedRxPerf = other_value.field_dlAdvancedRxPerf; +if (other_value.field_dTMEhancCap.is_bound() ) + field_dTMEhancCap = other_value.field_dTMEhancCap; +if (other_value.field_mask19.is_bound() ) + field_mask19 = other_value.field_mask19; +if (other_value.field_dTMGPRSHighMultislotClass.is_bound() ) + field_dTMGPRSHighMultislotClass = other_value.field_dTMGPRSHighMultislotClass; +if (other_value.field_offsetReq.is_bound() ) + field_offsetReq = other_value.field_offsetReq; +if (other_value.field_mask20.is_bound() ) + field_mask20 = other_value.field_mask20; +if (other_value.field_dTMEGPRSHighMultislotClass.is_bound() ) + field_dTMEGPRSHighMultislotClass = other_value.field_dTMEGPRSHighMultislotClass; +if (other_value.field_rptdACCHCap.is_bound() ) + field_rptdACCHCap = other_value.field_rptdACCHCap; +if (other_value.field_mask21.is_bound() ) + field_mask21 = other_value.field_mask21; +if (other_value.field_gsm710AssocRadioCap.is_bound() ) + field_gsm710AssocRadioCap = other_value.field_gsm710AssocRadioCap; +if (other_value.field_mask22.is_bound() ) + field_mask22 = other_value.field_mask22; +if (other_value.field_tgsm810AssocRadioCap.is_bound() ) + field_tgsm810AssocRadioCap = other_value.field_tgsm810AssocRadioCap; +if (other_value.field_cipheringModeSettingCap.is_bound() ) + field_cipheringModeSettingCap = other_value.field_cipheringModeSettingCap; +if (other_value.field_addPositionCap.is_bound() ) + field_addPositionCap = other_value.field_addPositionCap; +if (other_value.field_eutraFDDSupport.is_bound() ) + field_eutraFDDSupport = other_value.field_eutraFDDSupport; +if (other_value.field_eutraTDDSupport.is_bound() ) + field_eutraTDDSupport = other_value.field_eutraTDDSupport; +if (other_value.field_eutraMeasAndReporting.is_bound() ) + field_eutraMeasAndReporting = other_value.field_eutraMeasAndReporting; +if (other_value.field_priorityBasedReselection.is_bound() ) + field_priorityBasedReselection = other_value.field_priorityBasedReselection; +if (other_value.field_utraCSGCellsReporting.is_bound() ) + field_utraCSGCellsReporting = other_value.field_utraCSGCellsReporting; +if (other_value.field_vamosLevel.is_bound() ) + field_vamosLevel = other_value.field_vamosLevel; +if (other_value.field_tighterCap.is_bound() ) + field_tighterCap = other_value.field_tighterCap; +if (other_value.field_selectCipheringDLSACCH.is_bound() ) + field_selectCipheringDLSACCH = other_value.field_selectCipheringDLSACCH; +if (other_value.field_csPS__SRVCC__G2U.is_bound() ) + field_csPS__SRVCC__G2U = other_value.field_csPS__SRVCC__G2U; +if (other_value.field_csPS__SRVCC__G2E.is_bound() ) + field_csPS__SRVCC__G2E = other_value.field_csPS__SRVCC__G2E; +if (other_value.field_geranNwkSharing.is_bound() ) + field_geranNwkSharing = other_value.field_geranNwkSharing; +if (other_value.field_eutraWidebandRSRQMeas.is_bound() ) + field_eutraWidebandRSRQMeas = other_value.field_eutraWidebandRSRQMeas; +if (other_value.field_erBandSupport.is_bound() ) + field_erBandSupport = other_value.field_erBandSupport; +if (other_value.field_utraMultipleFreqBandInd.is_bound() ) + field_utraMultipleFreqBandInd = other_value.field_utraMultipleFreqBandInd; +if (other_value.field_eutraMultipleFreqBandInd.is_bound() ) + field_eutraMultipleFreqBandInd = other_value.field_eutraMultipleFreqBandInd; +if (other_value.field_xtdTSCSetCap.is_bound() ) + field_xtdTSCSetCap = other_value.field_xtdTSCSetCap; +if (other_value.field_xtdEARFCNValueRange.is_bound() ) + field_xtdEARFCNValueRange = other_value.field_xtdEARFCNValueRange; +if (other_value.field_spareBits2.is_bound() ) + field_spareBits2 = other_value.field_spareBits2; +init_vec(); +} + +MS__Clsmk3::MS__Clsmk3(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBit, + const BITSTRING& par_multibandSupported, + const BITSTRING& par_a5__7, + const BITSTRING& par_a5__6, + const BITSTRING& par_a5__5, + const BITSTRING& par_a5__4, + const OPTIONAL& par_associatedRadioCapabilty2, + const OPTIONAL& par_spareBits1, + const OPTIONAL& par_associatedRadioCapabilty1, + const OPTIONAL& par_maskBit1, + const OPTIONAL& par_rGSM__RadioCapability, + const OPTIONAL& par_maskBit2, + const OPTIONAL& par_multiSlotClass, + const OPTIONAL& par_uCS2Treatment, + const OPTIONAL& par_extMeasurementCapability, + const OPTIONAL& par_maskBit3, + const OPTIONAL& par_msMeasurementCapability, + const OPTIONAL& par_maskBit4, + const OPTIONAL& par_msPositioningMethod, + const OPTIONAL& par_maskBit5, + const OPTIONAL& par_eDGE__MultiSlot, + const OPTIONAL& par_maskBit6, + const OPTIONAL& par_psk8__Struct, + const OPTIONAL& par_maskBit7, + const OPTIONAL& par_gSM400BandsSupported, + const OPTIONAL& par_gSM400AssociatedRadioCapability, + const OPTIONAL& par_maskBit8, + const OPTIONAL& par_gSM850AssociatedRadiioCapability, + const OPTIONAL& par_maskBit9, + const OPTIONAL& par_pCS1900AssociatedRadiioCapability, + const OPTIONAL& par_uMTS__FDD__RAT__Capability, + const OPTIONAL& par_uMTS384TDD__RAT__Capability, + const OPTIONAL& par_cDMA2000__RAT__Capability, + const OPTIONAL& par_maskBit10, + const OPTIONAL& par_dTM__GPRS__MultiSlotSubclass, + const OPTIONAL& par_singleSlotDTM, + const OPTIONAL& par_maskBit11, + const OPTIONAL& par_dTM__EGPRS__MultiSlorSubclass, + const OPTIONAL& par_maskBit12, + const OPTIONAL& par_singleBandSupport, + const OPTIONAL& par_maskBit13, + const OPTIONAL& par_gSM700AssociatedRadioCapability, + const OPTIONAL& par_uMTS128TDD__RAT__Capability, + const OPTIONAL& par_gERANFeatPack1, + const OPTIONAL& par_mask14, + const OPTIONAL& par_extDTM__GPRS__MultiSlotSubclass, + const OPTIONAL& par_etxDTM__EGPRS__MultiSlotSubclass, + const OPTIONAL& par_mask15, + const OPTIONAL& par_highMultislotCap, + const OPTIONAL& par_spare2, + const OPTIONAL& par_gERANFeatPack2, + const OPTIONAL& par_gMSKMultislotPowerProfile, + const OPTIONAL& par_pSKMultislotPowerProfile, + const OPTIONAL& par_mask17, + const OPTIONAL& par_tGSM400BandsSupported, + const OPTIONAL& par_tGSM400AssocRadioCap, + const OPTIONAL& par_spare, + const OPTIONAL& par_dlAdvancedRxPerf, + const OPTIONAL& par_dTMEhancCap, + const OPTIONAL& par_mask19, + const OPTIONAL& par_dTMGPRSHighMultislotClass, + const OPTIONAL& par_offsetReq, + const OPTIONAL& par_mask20, + const OPTIONAL& par_dTMEGPRSHighMultislotClass, + const OPTIONAL& par_rptdACCHCap, + const OPTIONAL& par_mask21, + const OPTIONAL& par_gsm710AssocRadioCap, + const OPTIONAL& par_mask22, + const OPTIONAL& par_tgsm810AssocRadioCap, + const OPTIONAL& par_cipheringModeSettingCap, + const OPTIONAL& par_addPositionCap, + const OPTIONAL& par_eutraFDDSupport, + const OPTIONAL& par_eutraTDDSupport, + const OPTIONAL& par_eutraMeasAndReporting, + const OPTIONAL& par_priorityBasedReselection, + const OPTIONAL& par_utraCSGCellsReporting, + const OPTIONAL& par_vamosLevel, + const OPTIONAL& par_tighterCap, + const OPTIONAL& par_selectCipheringDLSACCH, + const OPTIONAL& par_csPS__SRVCC__G2U, + const OPTIONAL& par_csPS__SRVCC__G2E, + const OPTIONAL& par_geranNwkSharing, + const OPTIONAL& par_eutraWidebandRSRQMeas, + const OPTIONAL& par_erBandSupport, + const OPTIONAL& par_utraMultipleFreqBandInd, + const OPTIONAL& par_eutraMultipleFreqBandInd, + const OPTIONAL& par_xtdTSCSetCap, + const OPTIONAL& par_xtdEARFCNValueRange, + const OPTIONAL& par_spareBits2) : field_iei(par_iei), + field_iel(par_iel), + field_spareBit(par_spareBit), + field_multibandSupported(par_multibandSupported), + field_a5__7(par_a5__7), + field_a5__6(par_a5__6), + field_a5__5(par_a5__5), + field_a5__4(par_a5__4), + field_associatedRadioCapabilty2(par_associatedRadioCapabilty2), + field_spareBits1(par_spareBits1), + field_associatedRadioCapabilty1(par_associatedRadioCapabilty1), + field_maskBit1(par_maskBit1), + field_rGSM__RadioCapability(par_rGSM__RadioCapability), + field_maskBit2(par_maskBit2), + field_multiSlotClass(par_multiSlotClass), + field_uCS2Treatment(par_uCS2Treatment), + field_extMeasurementCapability(par_extMeasurementCapability), + field_maskBit3(par_maskBit3), + field_msMeasurementCapability(par_msMeasurementCapability), + field_maskBit4(par_maskBit4), + field_msPositioningMethod(par_msPositioningMethod), + field_maskBit5(par_maskBit5), + field_eDGE__MultiSlot(par_eDGE__MultiSlot), + field_maskBit6(par_maskBit6), + field_psk8__Struct(par_psk8__Struct), + field_maskBit7(par_maskBit7), + field_gSM400BandsSupported(par_gSM400BandsSupported), + field_gSM400AssociatedRadioCapability(par_gSM400AssociatedRadioCapability), + field_maskBit8(par_maskBit8), + field_gSM850AssociatedRadiioCapability(par_gSM850AssociatedRadiioCapability), + field_maskBit9(par_maskBit9), + field_pCS1900AssociatedRadiioCapability(par_pCS1900AssociatedRadiioCapability), + field_uMTS__FDD__RAT__Capability(par_uMTS__FDD__RAT__Capability), + field_uMTS384TDD__RAT__Capability(par_uMTS384TDD__RAT__Capability), + field_cDMA2000__RAT__Capability(par_cDMA2000__RAT__Capability), + field_maskBit10(par_maskBit10), + field_dTM__GPRS__MultiSlotSubclass(par_dTM__GPRS__MultiSlotSubclass), + field_singleSlotDTM(par_singleSlotDTM), + field_maskBit11(par_maskBit11), + field_dTM__EGPRS__MultiSlorSubclass(par_dTM__EGPRS__MultiSlorSubclass), + field_maskBit12(par_maskBit12), + field_singleBandSupport(par_singleBandSupport), + field_maskBit13(par_maskBit13), + field_gSM700AssociatedRadioCapability(par_gSM700AssociatedRadioCapability), + field_uMTS128TDD__RAT__Capability(par_uMTS128TDD__RAT__Capability), + field_gERANFeatPack1(par_gERANFeatPack1), + field_mask14(par_mask14), + field_extDTM__GPRS__MultiSlotSubclass(par_extDTM__GPRS__MultiSlotSubclass), + field_etxDTM__EGPRS__MultiSlotSubclass(par_etxDTM__EGPRS__MultiSlotSubclass), + field_mask15(par_mask15), + field_highMultislotCap(par_highMultislotCap), + field_spare2(par_spare2), + field_gERANFeatPack2(par_gERANFeatPack2), + field_gMSKMultislotPowerProfile(par_gMSKMultislotPowerProfile), + field_pSKMultislotPowerProfile(par_pSKMultislotPowerProfile), + field_mask17(par_mask17), + field_tGSM400BandsSupported(par_tGSM400BandsSupported), + field_tGSM400AssocRadioCap(par_tGSM400AssocRadioCap), + field_spare(par_spare), + field_dlAdvancedRxPerf(par_dlAdvancedRxPerf), + field_dTMEhancCap(par_dTMEhancCap), + field_mask19(par_mask19), + field_dTMGPRSHighMultislotClass(par_dTMGPRSHighMultislotClass), + field_offsetReq(par_offsetReq), + field_mask20(par_mask20), + field_dTMEGPRSHighMultislotClass(par_dTMEGPRSHighMultislotClass), + field_rptdACCHCap(par_rptdACCHCap), + field_mask21(par_mask21), + field_gsm710AssocRadioCap(par_gsm710AssocRadioCap), + field_mask22(par_mask22), + field_tgsm810AssocRadioCap(par_tgsm810AssocRadioCap), + field_cipheringModeSettingCap(par_cipheringModeSettingCap), + field_addPositionCap(par_addPositionCap), + field_eutraFDDSupport(par_eutraFDDSupport), + field_eutraTDDSupport(par_eutraTDDSupport), + field_eutraMeasAndReporting(par_eutraMeasAndReporting), + field_priorityBasedReselection(par_priorityBasedReselection), + field_utraCSGCellsReporting(par_utraCSGCellsReporting), + field_vamosLevel(par_vamosLevel), + field_tighterCap(par_tighterCap), + field_selectCipheringDLSACCH(par_selectCipheringDLSACCH), + field_csPS__SRVCC__G2U(par_csPS__SRVCC__G2U), + field_csPS__SRVCC__G2E(par_csPS__SRVCC__G2E), + field_geranNwkSharing(par_geranNwkSharing), + field_eutraWidebandRSRQMeas(par_eutraWidebandRSRQMeas), + field_erBandSupport(par_erBandSupport), + field_utraMultipleFreqBandInd(par_utraMultipleFreqBandInd), + field_eutraMultipleFreqBandInd(par_eutraMultipleFreqBandInd), + field_xtdTSCSetCap(par_xtdTSCSetCap), + field_xtdEARFCNValueRange(par_xtdEARFCNValueRange), + field_spareBits2(par_spareBits2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MS__Clsmk3::get_descriptor() const { return &MS__Clsmk3_descr_; } +const TTCN_Typedescriptor_t* MS__Clsmk3::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B5__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &MS__MeasCapability_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B5__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B5__Type_descr_, &CommonDefs::B1__Type_descr_, &EDGE__Struct_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &BITSTRING_descr_ }; +const TTCN_Typedescriptor_t* MS__Clsmk3::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MS__Clsmk3::fld_names[] = { "iei", "iel", "spareBit", "multibandSupported", "a5_7", "a5_6", "a5_5", "a5_4", "associatedRadioCapabilty2", "spareBits1", "associatedRadioCapabilty1", "maskBit1", "rGSM_RadioCapability", "maskBit2", "multiSlotClass", "uCS2Treatment", "extMeasurementCapability", "maskBit3", "msMeasurementCapability", "maskBit4", "msPositioningMethod", "maskBit5", "eDGE_MultiSlot", "maskBit6", "psk8_Struct", "maskBit7", "gSM400BandsSupported", "gSM400AssociatedRadioCapability", "maskBit8", "gSM850AssociatedRadiioCapability", "maskBit9", "pCS1900AssociatedRadiioCapability", "uMTS_FDD_RAT_Capability", "uMTS384TDD_RAT_Capability", "cDMA2000_RAT_Capability", "maskBit10", "dTM_GPRS_MultiSlotSubclass", "singleSlotDTM", "maskBit11", "dTM_EGPRS_MultiSlorSubclass", "maskBit12", "singleBandSupport", "maskBit13", "gSM700AssociatedRadioCapability", "uMTS128TDD_RAT_Capability", "gERANFeatPack1", "mask14", "extDTM_GPRS_MultiSlotSubclass", "etxDTM_EGPRS_MultiSlotSubclass", "mask15", "highMultislotCap", "spare2", "gERANFeatPack2", "gMSKMultislotPowerProfile", "pSKMultislotPowerProfile", "mask17", "tGSM400BandsSupported", "tGSM400AssocRadioCap", "spare", "dlAdvancedRxPerf", "dTMEhancCap", "mask19", "dTMGPRSHighMultislotClass", "offsetReq", "mask20", "dTMEGPRSHighMultislotClass", "rptdACCHCap", "mask21", "gsm710AssocRadioCap", "mask22", "tgsm810AssocRadioCap", "cipheringModeSettingCap", "addPositionCap", "eutraFDDSupport", "eutraTDDSupport", "eutraMeasAndReporting", "priorityBasedReselection", "utraCSGCellsReporting", "vamosLevel", "tighterCap", "selectCipheringDLSACCH", "csPS_SRVCC_G2U", "csPS_SRVCC_G2E", "geranNwkSharing", "eutraWidebandRSRQMeas", "erBandSupport", "utraMultipleFreqBandInd", "eutraMultipleFreqBandInd", "xtdTSCSetCap", "xtdEARFCNValueRange", "spareBits2" }; +const char* MS__Clsmk3::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MS__Clsmk3::optional_indexes[] = { 0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, -1 }; +const int* MS__Clsmk3::get_optional_indexes() const { return optional_indexes; } + +const int MS__Clsmk3::optional_indexes_asn[] = { 0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, -1 }; +const int* MS__Clsmk3::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MS__Clsmk3_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 91; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[12] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[13] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[14] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[15] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[16] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[17] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[18] = was_any ? new MS__MeasCapability_template(ANY_OR_OMIT) : new MS__MeasCapability_template; +single_value.value_elements[19] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[20] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[21] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[22] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[23] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[24] = was_any ? new EDGE__Struct_template(ANY_OR_OMIT) : new EDGE__Struct_template; +single_value.value_elements[25] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[26] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[27] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[28] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[29] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[30] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[31] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[32] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[33] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[34] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[35] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[36] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[37] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[38] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[39] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[40] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[41] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[42] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[43] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[44] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[45] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[46] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[47] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[48] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[49] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[50] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[51] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[52] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[53] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[54] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[55] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[56] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[57] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[58] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[59] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[60] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[61] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[62] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[63] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[64] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[65] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[66] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[67] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[68] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[69] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[70] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[71] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[72] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[73] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[74] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[75] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[76] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[77] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[78] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[79] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[80] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[81] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[82] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[83] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[84] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[85] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[86] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[87] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[88] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[89] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[90] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +MS__Clsmk3_template::MS__Clsmk3_template(MS__Clsmk3_template* p_precondition, MS__Clsmk3_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MS__Clsmk3_template::MS__Clsmk3_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MS__Clsmk3_template::~MS__Clsmk3_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MS__Clsmk3_template::match_dynamic(const Base_Type* match_value) const +{ +const MS__Clsmk3* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MS__Clsmk3_template& MS__Clsmk3_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MS__Clsmk3_template& MS__Clsmk3_template::operator=(const MS__Clsmk3& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MS__Clsmk3_template& MS__Clsmk3_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MS__Clsmk3_template& MS__Clsmk3_template::operator=(const MS__Clsmk3_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MS__Clsmk3 MS__Clsmk3_template::valueof() const +{ +MS__Clsmk3 ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& MS__Clsmk3_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& MS__Clsmk3_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& MS__Clsmk3_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& MS__Clsmk3_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& MS__Clsmk3_template::spareBit() { return *(static_cast(get_at(2))); } +const BITSTRING_template& MS__Clsmk3_template::spareBit() const { return *(static_cast(get_at(2))); } +BITSTRING_template& MS__Clsmk3_template::multibandSupported() { return *(static_cast(get_at(3))); } +const BITSTRING_template& MS__Clsmk3_template::multibandSupported() const { return *(static_cast(get_at(3))); } +BITSTRING_template& MS__Clsmk3_template::a5__7() { return *(static_cast(get_at(4))); } +const BITSTRING_template& MS__Clsmk3_template::a5__7() const { return *(static_cast(get_at(4))); } +BITSTRING_template& MS__Clsmk3_template::a5__6() { return *(static_cast(get_at(5))); } +const BITSTRING_template& MS__Clsmk3_template::a5__6() const { return *(static_cast(get_at(5))); } +BITSTRING_template& MS__Clsmk3_template::a5__5() { return *(static_cast(get_at(6))); } +const BITSTRING_template& MS__Clsmk3_template::a5__5() const { return *(static_cast(get_at(6))); } +BITSTRING_template& MS__Clsmk3_template::a5__4() { return *(static_cast(get_at(7))); } +const BITSTRING_template& MS__Clsmk3_template::a5__4() const { return *(static_cast(get_at(7))); } +BITSTRING_template& MS__Clsmk3_template::associatedRadioCapabilty2() { return *(static_cast(get_at(8))); } +const BITSTRING_template& MS__Clsmk3_template::associatedRadioCapabilty2() const { return *(static_cast(get_at(8))); } +BITSTRING_template& MS__Clsmk3_template::spareBits1() { return *(static_cast(get_at(9))); } +const BITSTRING_template& MS__Clsmk3_template::spareBits1() const { return *(static_cast(get_at(9))); } +BITSTRING_template& MS__Clsmk3_template::associatedRadioCapabilty1() { return *(static_cast(get_at(10))); } +const BITSTRING_template& MS__Clsmk3_template::associatedRadioCapabilty1() const { return *(static_cast(get_at(10))); } +BITSTRING_template& MS__Clsmk3_template::maskBit1() { return *(static_cast(get_at(11))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit1() const { return *(static_cast(get_at(11))); } +BITSTRING_template& MS__Clsmk3_template::rGSM__RadioCapability() { return *(static_cast(get_at(12))); } +const BITSTRING_template& MS__Clsmk3_template::rGSM__RadioCapability() const { return *(static_cast(get_at(12))); } +BITSTRING_template& MS__Clsmk3_template::maskBit2() { return *(static_cast(get_at(13))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit2() const { return *(static_cast(get_at(13))); } +BITSTRING_template& MS__Clsmk3_template::multiSlotClass() { return *(static_cast(get_at(14))); } +const BITSTRING_template& MS__Clsmk3_template::multiSlotClass() const { return *(static_cast(get_at(14))); } +BITSTRING_template& MS__Clsmk3_template::uCS2Treatment() { return *(static_cast(get_at(15))); } +const BITSTRING_template& MS__Clsmk3_template::uCS2Treatment() const { return *(static_cast(get_at(15))); } +BITSTRING_template& MS__Clsmk3_template::extMeasurementCapability() { return *(static_cast(get_at(16))); } +const BITSTRING_template& MS__Clsmk3_template::extMeasurementCapability() const { return *(static_cast(get_at(16))); } +BITSTRING_template& MS__Clsmk3_template::maskBit3() { return *(static_cast(get_at(17))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit3() const { return *(static_cast(get_at(17))); } +MS__MeasCapability_template& MS__Clsmk3_template::msMeasurementCapability() { return *(static_cast(get_at(18))); } +const MS__MeasCapability_template& MS__Clsmk3_template::msMeasurementCapability() const { return *(static_cast(get_at(18))); } +BITSTRING_template& MS__Clsmk3_template::maskBit4() { return *(static_cast(get_at(19))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit4() const { return *(static_cast(get_at(19))); } +BITSTRING_template& MS__Clsmk3_template::msPositioningMethod() { return *(static_cast(get_at(20))); } +const BITSTRING_template& MS__Clsmk3_template::msPositioningMethod() const { return *(static_cast(get_at(20))); } +BITSTRING_template& MS__Clsmk3_template::maskBit5() { return *(static_cast(get_at(21))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit5() const { return *(static_cast(get_at(21))); } +BITSTRING_template& MS__Clsmk3_template::eDGE__MultiSlot() { return *(static_cast(get_at(22))); } +const BITSTRING_template& MS__Clsmk3_template::eDGE__MultiSlot() const { return *(static_cast(get_at(22))); } +BITSTRING_template& MS__Clsmk3_template::maskBit6() { return *(static_cast(get_at(23))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit6() const { return *(static_cast(get_at(23))); } +EDGE__Struct_template& MS__Clsmk3_template::psk8__Struct() { return *(static_cast(get_at(24))); } +const EDGE__Struct_template& MS__Clsmk3_template::psk8__Struct() const { return *(static_cast(get_at(24))); } +BITSTRING_template& MS__Clsmk3_template::maskBit7() { return *(static_cast(get_at(25))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit7() const { return *(static_cast(get_at(25))); } +BITSTRING_template& MS__Clsmk3_template::gSM400BandsSupported() { return *(static_cast(get_at(26))); } +const BITSTRING_template& MS__Clsmk3_template::gSM400BandsSupported() const { return *(static_cast(get_at(26))); } +BITSTRING_template& MS__Clsmk3_template::gSM400AssociatedRadioCapability() { return *(static_cast(get_at(27))); } +const BITSTRING_template& MS__Clsmk3_template::gSM400AssociatedRadioCapability() const { return *(static_cast(get_at(27))); } +BITSTRING_template& MS__Clsmk3_template::maskBit8() { return *(static_cast(get_at(28))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit8() const { return *(static_cast(get_at(28))); } +BITSTRING_template& MS__Clsmk3_template::gSM850AssociatedRadiioCapability() { return *(static_cast(get_at(29))); } +const BITSTRING_template& MS__Clsmk3_template::gSM850AssociatedRadiioCapability() const { return *(static_cast(get_at(29))); } +BITSTRING_template& MS__Clsmk3_template::maskBit9() { return *(static_cast(get_at(30))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit9() const { return *(static_cast(get_at(30))); } +BITSTRING_template& MS__Clsmk3_template::pCS1900AssociatedRadiioCapability() { return *(static_cast(get_at(31))); } +const BITSTRING_template& MS__Clsmk3_template::pCS1900AssociatedRadiioCapability() const { return *(static_cast(get_at(31))); } +BITSTRING_template& MS__Clsmk3_template::uMTS__FDD__RAT__Capability() { return *(static_cast(get_at(32))); } +const BITSTRING_template& MS__Clsmk3_template::uMTS__FDD__RAT__Capability() const { return *(static_cast(get_at(32))); } +BITSTRING_template& MS__Clsmk3_template::uMTS384TDD__RAT__Capability() { return *(static_cast(get_at(33))); } +const BITSTRING_template& MS__Clsmk3_template::uMTS384TDD__RAT__Capability() const { return *(static_cast(get_at(33))); } +BITSTRING_template& MS__Clsmk3_template::cDMA2000__RAT__Capability() { return *(static_cast(get_at(34))); } +const BITSTRING_template& MS__Clsmk3_template::cDMA2000__RAT__Capability() const { return *(static_cast(get_at(34))); } +BITSTRING_template& MS__Clsmk3_template::maskBit10() { return *(static_cast(get_at(35))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit10() const { return *(static_cast(get_at(35))); } +BITSTRING_template& MS__Clsmk3_template::dTM__GPRS__MultiSlotSubclass() { return *(static_cast(get_at(36))); } +const BITSTRING_template& MS__Clsmk3_template::dTM__GPRS__MultiSlotSubclass() const { return *(static_cast(get_at(36))); } +BITSTRING_template& MS__Clsmk3_template::singleSlotDTM() { return *(static_cast(get_at(37))); } +const BITSTRING_template& MS__Clsmk3_template::singleSlotDTM() const { return *(static_cast(get_at(37))); } +BITSTRING_template& MS__Clsmk3_template::maskBit11() { return *(static_cast(get_at(38))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit11() const { return *(static_cast(get_at(38))); } +BITSTRING_template& MS__Clsmk3_template::dTM__EGPRS__MultiSlorSubclass() { return *(static_cast(get_at(39))); } +const BITSTRING_template& MS__Clsmk3_template::dTM__EGPRS__MultiSlorSubclass() const { return *(static_cast(get_at(39))); } +BITSTRING_template& MS__Clsmk3_template::maskBit12() { return *(static_cast(get_at(40))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit12() const { return *(static_cast(get_at(40))); } +BITSTRING_template& MS__Clsmk3_template::singleBandSupport() { return *(static_cast(get_at(41))); } +const BITSTRING_template& MS__Clsmk3_template::singleBandSupport() const { return *(static_cast(get_at(41))); } +BITSTRING_template& MS__Clsmk3_template::maskBit13() { return *(static_cast(get_at(42))); } +const BITSTRING_template& MS__Clsmk3_template::maskBit13() const { return *(static_cast(get_at(42))); } +BITSTRING_template& MS__Clsmk3_template::gSM700AssociatedRadioCapability() { return *(static_cast(get_at(43))); } +const BITSTRING_template& MS__Clsmk3_template::gSM700AssociatedRadioCapability() const { return *(static_cast(get_at(43))); } +BITSTRING_template& MS__Clsmk3_template::uMTS128TDD__RAT__Capability() { return *(static_cast(get_at(44))); } +const BITSTRING_template& MS__Clsmk3_template::uMTS128TDD__RAT__Capability() const { return *(static_cast(get_at(44))); } +BITSTRING_template& MS__Clsmk3_template::gERANFeatPack1() { return *(static_cast(get_at(45))); } +const BITSTRING_template& MS__Clsmk3_template::gERANFeatPack1() const { return *(static_cast(get_at(45))); } +BITSTRING_template& MS__Clsmk3_template::mask14() { return *(static_cast(get_at(46))); } +const BITSTRING_template& MS__Clsmk3_template::mask14() const { return *(static_cast(get_at(46))); } +BITSTRING_template& MS__Clsmk3_template::extDTM__GPRS__MultiSlotSubclass() { return *(static_cast(get_at(47))); } +const BITSTRING_template& MS__Clsmk3_template::extDTM__GPRS__MultiSlotSubclass() const { return *(static_cast(get_at(47))); } +BITSTRING_template& MS__Clsmk3_template::etxDTM__EGPRS__MultiSlotSubclass() { return *(static_cast(get_at(48))); } +const BITSTRING_template& MS__Clsmk3_template::etxDTM__EGPRS__MultiSlotSubclass() const { return *(static_cast(get_at(48))); } +BITSTRING_template& MS__Clsmk3_template::mask15() { return *(static_cast(get_at(49))); } +const BITSTRING_template& MS__Clsmk3_template::mask15() const { return *(static_cast(get_at(49))); } +BITSTRING_template& MS__Clsmk3_template::highMultislotCap() { return *(static_cast(get_at(50))); } +const BITSTRING_template& MS__Clsmk3_template::highMultislotCap() const { return *(static_cast(get_at(50))); } +BITSTRING_template& MS__Clsmk3_template::spare2() { return *(static_cast(get_at(51))); } +const BITSTRING_template& MS__Clsmk3_template::spare2() const { return *(static_cast(get_at(51))); } +BITSTRING_template& MS__Clsmk3_template::gERANFeatPack2() { return *(static_cast(get_at(52))); } +const BITSTRING_template& MS__Clsmk3_template::gERANFeatPack2() const { return *(static_cast(get_at(52))); } +BITSTRING_template& MS__Clsmk3_template::gMSKMultislotPowerProfile() { return *(static_cast(get_at(53))); } +const BITSTRING_template& MS__Clsmk3_template::gMSKMultislotPowerProfile() const { return *(static_cast(get_at(53))); } +BITSTRING_template& MS__Clsmk3_template::pSKMultislotPowerProfile() { return *(static_cast(get_at(54))); } +const BITSTRING_template& MS__Clsmk3_template::pSKMultislotPowerProfile() const { return *(static_cast(get_at(54))); } +BITSTRING_template& MS__Clsmk3_template::mask17() { return *(static_cast(get_at(55))); } +const BITSTRING_template& MS__Clsmk3_template::mask17() const { return *(static_cast(get_at(55))); } +BITSTRING_template& MS__Clsmk3_template::tGSM400BandsSupported() { return *(static_cast(get_at(56))); } +const BITSTRING_template& MS__Clsmk3_template::tGSM400BandsSupported() const { return *(static_cast(get_at(56))); } +BITSTRING_template& MS__Clsmk3_template::tGSM400AssocRadioCap() { return *(static_cast(get_at(57))); } +const BITSTRING_template& MS__Clsmk3_template::tGSM400AssocRadioCap() const { return *(static_cast(get_at(57))); } +BITSTRING_template& MS__Clsmk3_template::spare() { return *(static_cast(get_at(58))); } +const BITSTRING_template& MS__Clsmk3_template::spare() const { return *(static_cast(get_at(58))); } +BITSTRING_template& MS__Clsmk3_template::dlAdvancedRxPerf() { return *(static_cast(get_at(59))); } +const BITSTRING_template& MS__Clsmk3_template::dlAdvancedRxPerf() const { return *(static_cast(get_at(59))); } +BITSTRING_template& MS__Clsmk3_template::dTMEhancCap() { return *(static_cast(get_at(60))); } +const BITSTRING_template& MS__Clsmk3_template::dTMEhancCap() const { return *(static_cast(get_at(60))); } +BITSTRING_template& MS__Clsmk3_template::mask19() { return *(static_cast(get_at(61))); } +const BITSTRING_template& MS__Clsmk3_template::mask19() const { return *(static_cast(get_at(61))); } +BITSTRING_template& MS__Clsmk3_template::dTMGPRSHighMultislotClass() { return *(static_cast(get_at(62))); } +const BITSTRING_template& MS__Clsmk3_template::dTMGPRSHighMultislotClass() const { return *(static_cast(get_at(62))); } +BITSTRING_template& MS__Clsmk3_template::offsetReq() { return *(static_cast(get_at(63))); } +const BITSTRING_template& MS__Clsmk3_template::offsetReq() const { return *(static_cast(get_at(63))); } +BITSTRING_template& MS__Clsmk3_template::mask20() { return *(static_cast(get_at(64))); } +const BITSTRING_template& MS__Clsmk3_template::mask20() const { return *(static_cast(get_at(64))); } +BITSTRING_template& MS__Clsmk3_template::dTMEGPRSHighMultislotClass() { return *(static_cast(get_at(65))); } +const BITSTRING_template& MS__Clsmk3_template::dTMEGPRSHighMultislotClass() const { return *(static_cast(get_at(65))); } +BITSTRING_template& MS__Clsmk3_template::rptdACCHCap() { return *(static_cast(get_at(66))); } +const BITSTRING_template& MS__Clsmk3_template::rptdACCHCap() const { return *(static_cast(get_at(66))); } +BITSTRING_template& MS__Clsmk3_template::mask21() { return *(static_cast(get_at(67))); } +const BITSTRING_template& MS__Clsmk3_template::mask21() const { return *(static_cast(get_at(67))); } +BITSTRING_template& MS__Clsmk3_template::gsm710AssocRadioCap() { return *(static_cast(get_at(68))); } +const BITSTRING_template& MS__Clsmk3_template::gsm710AssocRadioCap() const { return *(static_cast(get_at(68))); } +BITSTRING_template& MS__Clsmk3_template::mask22() { return *(static_cast(get_at(69))); } +const BITSTRING_template& MS__Clsmk3_template::mask22() const { return *(static_cast(get_at(69))); } +BITSTRING_template& MS__Clsmk3_template::tgsm810AssocRadioCap() { return *(static_cast(get_at(70))); } +const BITSTRING_template& MS__Clsmk3_template::tgsm810AssocRadioCap() const { return *(static_cast(get_at(70))); } +BITSTRING_template& MS__Clsmk3_template::cipheringModeSettingCap() { return *(static_cast(get_at(71))); } +const BITSTRING_template& MS__Clsmk3_template::cipheringModeSettingCap() const { return *(static_cast(get_at(71))); } +BITSTRING_template& MS__Clsmk3_template::addPositionCap() { return *(static_cast(get_at(72))); } +const BITSTRING_template& MS__Clsmk3_template::addPositionCap() const { return *(static_cast(get_at(72))); } +BITSTRING_template& MS__Clsmk3_template::eutraFDDSupport() { return *(static_cast(get_at(73))); } +const BITSTRING_template& MS__Clsmk3_template::eutraFDDSupport() const { return *(static_cast(get_at(73))); } +BITSTRING_template& MS__Clsmk3_template::eutraTDDSupport() { return *(static_cast(get_at(74))); } +const BITSTRING_template& MS__Clsmk3_template::eutraTDDSupport() const { return *(static_cast(get_at(74))); } +BITSTRING_template& MS__Clsmk3_template::eutraMeasAndReporting() { return *(static_cast(get_at(75))); } +const BITSTRING_template& MS__Clsmk3_template::eutraMeasAndReporting() const { return *(static_cast(get_at(75))); } +BITSTRING_template& MS__Clsmk3_template::priorityBasedReselection() { return *(static_cast(get_at(76))); } +const BITSTRING_template& MS__Clsmk3_template::priorityBasedReselection() const { return *(static_cast(get_at(76))); } +BITSTRING_template& MS__Clsmk3_template::utraCSGCellsReporting() { return *(static_cast(get_at(77))); } +const BITSTRING_template& MS__Clsmk3_template::utraCSGCellsReporting() const { return *(static_cast(get_at(77))); } +BITSTRING_template& MS__Clsmk3_template::vamosLevel() { return *(static_cast(get_at(78))); } +const BITSTRING_template& MS__Clsmk3_template::vamosLevel() const { return *(static_cast(get_at(78))); } +BITSTRING_template& MS__Clsmk3_template::tighterCap() { return *(static_cast(get_at(79))); } +const BITSTRING_template& MS__Clsmk3_template::tighterCap() const { return *(static_cast(get_at(79))); } +BITSTRING_template& MS__Clsmk3_template::selectCipheringDLSACCH() { return *(static_cast(get_at(80))); } +const BITSTRING_template& MS__Clsmk3_template::selectCipheringDLSACCH() const { return *(static_cast(get_at(80))); } +BITSTRING_template& MS__Clsmk3_template::csPS__SRVCC__G2U() { return *(static_cast(get_at(81))); } +const BITSTRING_template& MS__Clsmk3_template::csPS__SRVCC__G2U() const { return *(static_cast(get_at(81))); } +BITSTRING_template& MS__Clsmk3_template::csPS__SRVCC__G2E() { return *(static_cast(get_at(82))); } +const BITSTRING_template& MS__Clsmk3_template::csPS__SRVCC__G2E() const { return *(static_cast(get_at(82))); } +BITSTRING_template& MS__Clsmk3_template::geranNwkSharing() { return *(static_cast(get_at(83))); } +const BITSTRING_template& MS__Clsmk3_template::geranNwkSharing() const { return *(static_cast(get_at(83))); } +BITSTRING_template& MS__Clsmk3_template::eutraWidebandRSRQMeas() { return *(static_cast(get_at(84))); } +const BITSTRING_template& MS__Clsmk3_template::eutraWidebandRSRQMeas() const { return *(static_cast(get_at(84))); } +BITSTRING_template& MS__Clsmk3_template::erBandSupport() { return *(static_cast(get_at(85))); } +const BITSTRING_template& MS__Clsmk3_template::erBandSupport() const { return *(static_cast(get_at(85))); } +BITSTRING_template& MS__Clsmk3_template::utraMultipleFreqBandInd() { return *(static_cast(get_at(86))); } +const BITSTRING_template& MS__Clsmk3_template::utraMultipleFreqBandInd() const { return *(static_cast(get_at(86))); } +BITSTRING_template& MS__Clsmk3_template::eutraMultipleFreqBandInd() { return *(static_cast(get_at(87))); } +const BITSTRING_template& MS__Clsmk3_template::eutraMultipleFreqBandInd() const { return *(static_cast(get_at(87))); } +BITSTRING_template& MS__Clsmk3_template::xtdTSCSetCap() { return *(static_cast(get_at(88))); } +const BITSTRING_template& MS__Clsmk3_template::xtdTSCSetCap() const { return *(static_cast(get_at(88))); } +BITSTRING_template& MS__Clsmk3_template::xtdEARFCNValueRange() { return *(static_cast(get_at(89))); } +const BITSTRING_template& MS__Clsmk3_template::xtdEARFCNValueRange() const { return *(static_cast(get_at(89))); } +BITSTRING_template& MS__Clsmk3_template::spareBits2() { return *(static_cast(get_at(90))); } +const BITSTRING_template& MS__Clsmk3_template::spareBits2() const { return *(static_cast(get_at(90))); } +const TTCN_Typedescriptor_t* MS__Clsmk3_template::get_descriptor() const { return &MS__Clsmk3_descr_; } +const char* MS__Clsmk3_template::fld_name(int p_index) const { return MS__Clsmk3::fld_names[p_index]; } +void MS__MeasCapability::init_vec() { fld_vec[0]=&field_sMS__VALUE; fld_vec[1]=&field_sM__VALUE; } + +MS__MeasCapability::MS__MeasCapability() : Record_Type() { init_vec(); } + +MS__MeasCapability::MS__MeasCapability(const MS__MeasCapability& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_sMS__VALUE.is_bound() ) + field_sMS__VALUE = other_value.field_sMS__VALUE; +if (other_value.field_sM__VALUE.is_bound() ) + field_sM__VALUE = other_value.field_sM__VALUE; +init_vec(); +} + +MS__MeasCapability::MS__MeasCapability(const BITSTRING& par_sMS__VALUE, + const BITSTRING& par_sM__VALUE) : field_sMS__VALUE(par_sMS__VALUE), + field_sM__VALUE(par_sM__VALUE) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MS__MeasCapability::get_descriptor() const { return &MS__MeasCapability_descr_; } +const TTCN_Typedescriptor_t* MS__MeasCapability::fld_descriptors[] = { &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* MS__MeasCapability::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MS__MeasCapability::fld_names[] = { "sMS_VALUE", "sM_VALUE" }; +const char* MS__MeasCapability::fld_name(int p_index) const { return fld_names[p_index]; } + +void MS__MeasCapability_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +MS__MeasCapability_template::MS__MeasCapability_template(MS__MeasCapability_template* p_precondition, MS__MeasCapability_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MS__MeasCapability_template::MS__MeasCapability_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MS__MeasCapability_template::~MS__MeasCapability_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MS__MeasCapability_template::match_dynamic(const Base_Type* match_value) const +{ +const MS__MeasCapability* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MS__MeasCapability_template& MS__MeasCapability_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MS__MeasCapability_template& MS__MeasCapability_template::operator=(const MS__MeasCapability& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MS__MeasCapability_template& MS__MeasCapability_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MS__MeasCapability_template& MS__MeasCapability_template::operator=(const MS__MeasCapability_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MS__MeasCapability MS__MeasCapability_template::valueof() const +{ +MS__MeasCapability ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& MS__MeasCapability_template::sMS__VALUE() { return *(static_cast(get_at(0))); } +const BITSTRING_template& MS__MeasCapability_template::sMS__VALUE() const { return *(static_cast(get_at(0))); } +BITSTRING_template& MS__MeasCapability_template::sM__VALUE() { return *(static_cast(get_at(1))); } +const BITSTRING_template& MS__MeasCapability_template::sM__VALUE() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* MS__MeasCapability_template::get_descriptor() const { return &MS__MeasCapability_descr_; } +const char* MS__MeasCapability_template::fld_name(int p_index) const { return MS__MeasCapability::fld_names[p_index]; } +void EDGE__Struct::init_vec() { fld_vec[0]=&field_modulationCapability; fld_vec[1]=&field_pwrMask1; fld_vec[2]=&field_eDGE__RF__PowerCapability1; fld_vec[3]=&field_pwrMask2; fld_vec[4]=&field_eDGE__RF__PowerCapability2; } + +EDGE__Struct::EDGE__Struct() : Record_Type() { init_vec(); } + +EDGE__Struct::EDGE__Struct(const EDGE__Struct& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_modulationCapability.is_bound() ) + field_modulationCapability = other_value.field_modulationCapability; +if (other_value.field_pwrMask1.is_bound() ) + field_pwrMask1 = other_value.field_pwrMask1; +if (other_value.field_eDGE__RF__PowerCapability1.is_bound() ) + field_eDGE__RF__PowerCapability1 = other_value.field_eDGE__RF__PowerCapability1; +if (other_value.field_pwrMask2.is_bound() ) + field_pwrMask2 = other_value.field_pwrMask2; +if (other_value.field_eDGE__RF__PowerCapability2.is_bound() ) + field_eDGE__RF__PowerCapability2 = other_value.field_eDGE__RF__PowerCapability2; +init_vec(); +} + +EDGE__Struct::EDGE__Struct(const BITSTRING& par_modulationCapability, + const BITSTRING& par_pwrMask1, + const OPTIONAL& par_eDGE__RF__PowerCapability1, + const BITSTRING& par_pwrMask2, + const OPTIONAL& par_eDGE__RF__PowerCapability2) : field_modulationCapability(par_modulationCapability), + field_pwrMask1(par_pwrMask1), + field_eDGE__RF__PowerCapability1(par_eDGE__RF__PowerCapability1), + field_pwrMask2(par_pwrMask2), + field_eDGE__RF__PowerCapability2(par_eDGE__RF__PowerCapability2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EDGE__Struct::get_descriptor() const { return &EDGE__Struct_descr_; } +const TTCN_Typedescriptor_t* EDGE__Struct::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* EDGE__Struct::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EDGE__Struct::fld_names[] = { "modulationCapability", "pwrMask1", "eDGE_RF_PowerCapability1", "pwrMask2", "eDGE_RF_PowerCapability2" }; +const char* EDGE__Struct::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EDGE__Struct::optional_indexes[] = { 2, 4, -1 }; +const int* EDGE__Struct::get_optional_indexes() const { return optional_indexes; } + +const int EDGE__Struct::optional_indexes_asn[] = { 2, 4, -1 }; +const int* EDGE__Struct::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EDGE__Struct_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +EDGE__Struct_template::EDGE__Struct_template(EDGE__Struct_template* p_precondition, EDGE__Struct_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EDGE__Struct_template::EDGE__Struct_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EDGE__Struct_template::~EDGE__Struct_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EDGE__Struct_template::match_dynamic(const Base_Type* match_value) const +{ +const EDGE__Struct* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EDGE__Struct_template& EDGE__Struct_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EDGE__Struct_template& EDGE__Struct_template::operator=(const EDGE__Struct& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EDGE__Struct_template& EDGE__Struct_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EDGE__Struct_template& EDGE__Struct_template::operator=(const EDGE__Struct_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EDGE__Struct EDGE__Struct_template::valueof() const +{ +EDGE__Struct ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& EDGE__Struct_template::modulationCapability() { return *(static_cast(get_at(0))); } +const BITSTRING_template& EDGE__Struct_template::modulationCapability() const { return *(static_cast(get_at(0))); } +BITSTRING_template& EDGE__Struct_template::pwrMask1() { return *(static_cast(get_at(1))); } +const BITSTRING_template& EDGE__Struct_template::pwrMask1() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EDGE__Struct_template::eDGE__RF__PowerCapability1() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EDGE__Struct_template::eDGE__RF__PowerCapability1() const { return *(static_cast(get_at(2))); } +BITSTRING_template& EDGE__Struct_template::pwrMask2() { return *(static_cast(get_at(3))); } +const BITSTRING_template& EDGE__Struct_template::pwrMask2() const { return *(static_cast(get_at(3))); } +BITSTRING_template& EDGE__Struct_template::eDGE__RF__PowerCapability2() { return *(static_cast(get_at(4))); } +const BITSTRING_template& EDGE__Struct_template::eDGE__RF__PowerCapability2() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* EDGE__Struct_template::get_descriptor() const { return &EDGE__Struct_descr_; } +const char* EDGE__Struct_template::fld_name(int p_index) const { return EDGE__Struct::fld_names[p_index]; } +void MS__NetworkCap::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_gea1; fld_vec[3]=&field_smCapDedicated; fld_vec[4]=&field_smCapGPRS; fld_vec[5]=&field_ucs2; fld_vec[6]=&field_ssScreeningIndicator; fld_vec[7]=&field_soLSACap; fld_vec[8]=&field_revLevelIndicator; fld_vec[9]=&field_pfcFeatureMode; fld_vec[10]=&field_gea2; fld_vec[11]=&field_gea3; fld_vec[12]=&field_gea4; fld_vec[13]=&field_gea5; fld_vec[14]=&field_gea6; fld_vec[15]=&field_gea7; fld_vec[16]=&field_lcsVACap; fld_vec[17]=&field_psHOtoUTRAN__IuModeCap; fld_vec[18]=&field_psHOtoEUTRAN__S1ModeCap; fld_vec[19]=&field_emmCombinedCap; fld_vec[20]=&field_isrSupport; fld_vec[21]=&field_srvccToGERAN__UTRANCap; fld_vec[22]=&field_epcCap; fld_vec[23]=&field_nfCap; fld_vec[24]=&field_gERANNtwkShareCap; fld_vec[25]=&field_userPlaneIntegrityProtSupport; fld_vec[26]=&field_gia4; fld_vec[27]=&field_gia5; fld_vec[28]=&field_gia6; fld_vec[29]=&field_gia7; fld_vec[30]=&field_ePCOInd; fld_vec[31]=&field_restrictEnhancedCoverageCap; fld_vec[32]=&field_dualConnectivityEUTRA__NR; fld_vec[33]=&field_spareBits; } + +MS__NetworkCap::MS__NetworkCap() : Record_Type() { init_vec(); } + +MS__NetworkCap::MS__NetworkCap(const MS__NetworkCap& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_gea1.is_bound() ) + field_gea1 = other_value.field_gea1; +if (other_value.field_smCapDedicated.is_bound() ) + field_smCapDedicated = other_value.field_smCapDedicated; +if (other_value.field_smCapGPRS.is_bound() ) + field_smCapGPRS = other_value.field_smCapGPRS; +if (other_value.field_ucs2.is_bound() ) + field_ucs2 = other_value.field_ucs2; +if (other_value.field_ssScreeningIndicator.is_bound() ) + field_ssScreeningIndicator = other_value.field_ssScreeningIndicator; +if (other_value.field_soLSACap.is_bound() ) + field_soLSACap = other_value.field_soLSACap; +if (other_value.field_revLevelIndicator.is_bound() ) + field_revLevelIndicator = other_value.field_revLevelIndicator; +if (other_value.field_pfcFeatureMode.is_bound() ) + field_pfcFeatureMode = other_value.field_pfcFeatureMode; +if (other_value.field_gea2.is_bound() ) + field_gea2 = other_value.field_gea2; +if (other_value.field_gea3.is_bound() ) + field_gea3 = other_value.field_gea3; +if (other_value.field_gea4.is_bound() ) + field_gea4 = other_value.field_gea4; +if (other_value.field_gea5.is_bound() ) + field_gea5 = other_value.field_gea5; +if (other_value.field_gea6.is_bound() ) + field_gea6 = other_value.field_gea6; +if (other_value.field_gea7.is_bound() ) + field_gea7 = other_value.field_gea7; +if (other_value.field_lcsVACap.is_bound() ) + field_lcsVACap = other_value.field_lcsVACap; +if (other_value.field_psHOtoUTRAN__IuModeCap.is_bound() ) + field_psHOtoUTRAN__IuModeCap = other_value.field_psHOtoUTRAN__IuModeCap; +if (other_value.field_psHOtoEUTRAN__S1ModeCap.is_bound() ) + field_psHOtoEUTRAN__S1ModeCap = other_value.field_psHOtoEUTRAN__S1ModeCap; +if (other_value.field_emmCombinedCap.is_bound() ) + field_emmCombinedCap = other_value.field_emmCombinedCap; +if (other_value.field_isrSupport.is_bound() ) + field_isrSupport = other_value.field_isrSupport; +if (other_value.field_srvccToGERAN__UTRANCap.is_bound() ) + field_srvccToGERAN__UTRANCap = other_value.field_srvccToGERAN__UTRANCap; +if (other_value.field_epcCap.is_bound() ) + field_epcCap = other_value.field_epcCap; +if (other_value.field_nfCap.is_bound() ) + field_nfCap = other_value.field_nfCap; +if (other_value.field_gERANNtwkShareCap.is_bound() ) + field_gERANNtwkShareCap = other_value.field_gERANNtwkShareCap; +if (other_value.field_userPlaneIntegrityProtSupport.is_bound() ) + field_userPlaneIntegrityProtSupport = other_value.field_userPlaneIntegrityProtSupport; +if (other_value.field_gia4.is_bound() ) + field_gia4 = other_value.field_gia4; +if (other_value.field_gia5.is_bound() ) + field_gia5 = other_value.field_gia5; +if (other_value.field_gia6.is_bound() ) + field_gia6 = other_value.field_gia6; +if (other_value.field_gia7.is_bound() ) + field_gia7 = other_value.field_gia7; +if (other_value.field_ePCOInd.is_bound() ) + field_ePCOInd = other_value.field_ePCOInd; +if (other_value.field_restrictEnhancedCoverageCap.is_bound() ) + field_restrictEnhancedCoverageCap = other_value.field_restrictEnhancedCoverageCap; +if (other_value.field_dualConnectivityEUTRA__NR.is_bound() ) + field_dualConnectivityEUTRA__NR = other_value.field_dualConnectivityEUTRA__NR; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +init_vec(); +} + +MS__NetworkCap::MS__NetworkCap(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_gea1, + const BITSTRING& par_smCapDedicated, + const BITSTRING& par_smCapGPRS, + const BITSTRING& par_ucs2, + const BITSTRING& par_ssScreeningIndicator, + const BITSTRING& par_soLSACap, + const BITSTRING& par_revLevelIndicator, + const BITSTRING& par_pfcFeatureMode, + const BITSTRING& par_gea2, + const BITSTRING& par_gea3, + const BITSTRING& par_gea4, + const BITSTRING& par_gea5, + const BITSTRING& par_gea6, + const BITSTRING& par_gea7, + const OPTIONAL& par_lcsVACap, + const OPTIONAL& par_psHOtoUTRAN__IuModeCap, + const OPTIONAL& par_psHOtoEUTRAN__S1ModeCap, + const OPTIONAL& par_emmCombinedCap, + const OPTIONAL& par_isrSupport, + const OPTIONAL& par_srvccToGERAN__UTRANCap, + const OPTIONAL& par_epcCap, + const OPTIONAL& par_nfCap, + const OPTIONAL& par_gERANNtwkShareCap, + const OPTIONAL& par_userPlaneIntegrityProtSupport, + const OPTIONAL& par_gia4, + const OPTIONAL& par_gia5, + const OPTIONAL& par_gia6, + const OPTIONAL& par_gia7, + const OPTIONAL& par_ePCOInd, + const OPTIONAL& par_restrictEnhancedCoverageCap, + const OPTIONAL& par_dualConnectivityEUTRA__NR, + const OPTIONAL& par_spareBits) : field_iei(par_iei), + field_iel(par_iel), + field_gea1(par_gea1), + field_smCapDedicated(par_smCapDedicated), + field_smCapGPRS(par_smCapGPRS), + field_ucs2(par_ucs2), + field_ssScreeningIndicator(par_ssScreeningIndicator), + field_soLSACap(par_soLSACap), + field_revLevelIndicator(par_revLevelIndicator), + field_pfcFeatureMode(par_pfcFeatureMode), + field_gea2(par_gea2), + field_gea3(par_gea3), + field_gea4(par_gea4), + field_gea5(par_gea5), + field_gea6(par_gea6), + field_gea7(par_gea7), + field_lcsVACap(par_lcsVACap), + field_psHOtoUTRAN__IuModeCap(par_psHOtoUTRAN__IuModeCap), + field_psHOtoEUTRAN__S1ModeCap(par_psHOtoEUTRAN__S1ModeCap), + field_emmCombinedCap(par_emmCombinedCap), + field_isrSupport(par_isrSupport), + field_srvccToGERAN__UTRANCap(par_srvccToGERAN__UTRANCap), + field_epcCap(par_epcCap), + field_nfCap(par_nfCap), + field_gERANNtwkShareCap(par_gERANNtwkShareCap), + field_userPlaneIntegrityProtSupport(par_userPlaneIntegrityProtSupport), + field_gia4(par_gia4), + field_gia5(par_gia5), + field_gia6(par_gia6), + field_gia7(par_gia7), + field_ePCOInd(par_ePCOInd), + field_restrictEnhancedCoverageCap(par_restrictEnhancedCoverageCap), + field_dualConnectivityEUTRA__NR(par_dualConnectivityEUTRA__NR), + field_spareBits(par_spareBits) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MS__NetworkCap::get_descriptor() const { return &MS__NetworkCap_descr_; } +const TTCN_Typedescriptor_t* MS__NetworkCap::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &BITSTRING_descr_ }; +const TTCN_Typedescriptor_t* MS__NetworkCap::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MS__NetworkCap::fld_names[] = { "iei", "iel", "gea1", "smCapDedicated", "smCapGPRS", "ucs2", "ssScreeningIndicator", "soLSACap", "revLevelIndicator", "pfcFeatureMode", "gea2", "gea3", "gea4", "gea5", "gea6", "gea7", "lcsVACap", "psHOtoUTRAN_IuModeCap", "psHOtoEUTRAN_S1ModeCap", "emmCombinedCap", "isrSupport", "srvccToGERAN_UTRANCap", "epcCap", "nfCap", "gERANNtwkShareCap", "userPlaneIntegrityProtSupport", "gia4", "gia5", "gia6", "gia7", "ePCOInd", "restrictEnhancedCoverageCap", "dualConnectivityEUTRA_NR", "spareBits" }; +const char* MS__NetworkCap::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MS__NetworkCap::optional_indexes[] = { 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, -1 }; +const int* MS__NetworkCap::get_optional_indexes() const { return optional_indexes; } + +const int MS__NetworkCap::optional_indexes_asn[] = { 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, -1 }; +const int* MS__NetworkCap::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MS__NetworkCap_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 34; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[12] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[13] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[14] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[15] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[16] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[17] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[18] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[19] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[20] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[21] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[22] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[23] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[24] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[25] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[26] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[27] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[28] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[29] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[30] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[31] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[32] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[33] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +MS__NetworkCap_template::MS__NetworkCap_template(MS__NetworkCap_template* p_precondition, MS__NetworkCap_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MS__NetworkCap_template::MS__NetworkCap_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MS__NetworkCap_template::~MS__NetworkCap_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MS__NetworkCap_template::match_dynamic(const Base_Type* match_value) const +{ +const MS__NetworkCap* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MS__NetworkCap_template& MS__NetworkCap_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MS__NetworkCap_template& MS__NetworkCap_template::operator=(const MS__NetworkCap& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MS__NetworkCap_template& MS__NetworkCap_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MS__NetworkCap_template& MS__NetworkCap_template::operator=(const MS__NetworkCap_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MS__NetworkCap MS__NetworkCap_template::valueof() const +{ +MS__NetworkCap ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& MS__NetworkCap_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& MS__NetworkCap_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& MS__NetworkCap_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& MS__NetworkCap_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& MS__NetworkCap_template::gea1() { return *(static_cast(get_at(2))); } +const BITSTRING_template& MS__NetworkCap_template::gea1() const { return *(static_cast(get_at(2))); } +BITSTRING_template& MS__NetworkCap_template::smCapDedicated() { return *(static_cast(get_at(3))); } +const BITSTRING_template& MS__NetworkCap_template::smCapDedicated() const { return *(static_cast(get_at(3))); } +BITSTRING_template& MS__NetworkCap_template::smCapGPRS() { return *(static_cast(get_at(4))); } +const BITSTRING_template& MS__NetworkCap_template::smCapGPRS() const { return *(static_cast(get_at(4))); } +BITSTRING_template& MS__NetworkCap_template::ucs2() { return *(static_cast(get_at(5))); } +const BITSTRING_template& MS__NetworkCap_template::ucs2() const { return *(static_cast(get_at(5))); } +BITSTRING_template& MS__NetworkCap_template::ssScreeningIndicator() { return *(static_cast(get_at(6))); } +const BITSTRING_template& MS__NetworkCap_template::ssScreeningIndicator() const { return *(static_cast(get_at(6))); } +BITSTRING_template& MS__NetworkCap_template::soLSACap() { return *(static_cast(get_at(7))); } +const BITSTRING_template& MS__NetworkCap_template::soLSACap() const { return *(static_cast(get_at(7))); } +BITSTRING_template& MS__NetworkCap_template::revLevelIndicator() { return *(static_cast(get_at(8))); } +const BITSTRING_template& MS__NetworkCap_template::revLevelIndicator() const { return *(static_cast(get_at(8))); } +BITSTRING_template& MS__NetworkCap_template::pfcFeatureMode() { return *(static_cast(get_at(9))); } +const BITSTRING_template& MS__NetworkCap_template::pfcFeatureMode() const { return *(static_cast(get_at(9))); } +BITSTRING_template& MS__NetworkCap_template::gea2() { return *(static_cast(get_at(10))); } +const BITSTRING_template& MS__NetworkCap_template::gea2() const { return *(static_cast(get_at(10))); } +BITSTRING_template& MS__NetworkCap_template::gea3() { return *(static_cast(get_at(11))); } +const BITSTRING_template& MS__NetworkCap_template::gea3() const { return *(static_cast(get_at(11))); } +BITSTRING_template& MS__NetworkCap_template::gea4() { return *(static_cast(get_at(12))); } +const BITSTRING_template& MS__NetworkCap_template::gea4() const { return *(static_cast(get_at(12))); } +BITSTRING_template& MS__NetworkCap_template::gea5() { return *(static_cast(get_at(13))); } +const BITSTRING_template& MS__NetworkCap_template::gea5() const { return *(static_cast(get_at(13))); } +BITSTRING_template& MS__NetworkCap_template::gea6() { return *(static_cast(get_at(14))); } +const BITSTRING_template& MS__NetworkCap_template::gea6() const { return *(static_cast(get_at(14))); } +BITSTRING_template& MS__NetworkCap_template::gea7() { return *(static_cast(get_at(15))); } +const BITSTRING_template& MS__NetworkCap_template::gea7() const { return *(static_cast(get_at(15))); } +BITSTRING_template& MS__NetworkCap_template::lcsVACap() { return *(static_cast(get_at(16))); } +const BITSTRING_template& MS__NetworkCap_template::lcsVACap() const { return *(static_cast(get_at(16))); } +BITSTRING_template& MS__NetworkCap_template::psHOtoUTRAN__IuModeCap() { return *(static_cast(get_at(17))); } +const BITSTRING_template& MS__NetworkCap_template::psHOtoUTRAN__IuModeCap() const { return *(static_cast(get_at(17))); } +BITSTRING_template& MS__NetworkCap_template::psHOtoEUTRAN__S1ModeCap() { return *(static_cast(get_at(18))); } +const BITSTRING_template& MS__NetworkCap_template::psHOtoEUTRAN__S1ModeCap() const { return *(static_cast(get_at(18))); } +BITSTRING_template& MS__NetworkCap_template::emmCombinedCap() { return *(static_cast(get_at(19))); } +const BITSTRING_template& MS__NetworkCap_template::emmCombinedCap() const { return *(static_cast(get_at(19))); } +BITSTRING_template& MS__NetworkCap_template::isrSupport() { return *(static_cast(get_at(20))); } +const BITSTRING_template& MS__NetworkCap_template::isrSupport() const { return *(static_cast(get_at(20))); } +BITSTRING_template& MS__NetworkCap_template::srvccToGERAN__UTRANCap() { return *(static_cast(get_at(21))); } +const BITSTRING_template& MS__NetworkCap_template::srvccToGERAN__UTRANCap() const { return *(static_cast(get_at(21))); } +BITSTRING_template& MS__NetworkCap_template::epcCap() { return *(static_cast(get_at(22))); } +const BITSTRING_template& MS__NetworkCap_template::epcCap() const { return *(static_cast(get_at(22))); } +BITSTRING_template& MS__NetworkCap_template::nfCap() { return *(static_cast(get_at(23))); } +const BITSTRING_template& MS__NetworkCap_template::nfCap() const { return *(static_cast(get_at(23))); } +BITSTRING_template& MS__NetworkCap_template::gERANNtwkShareCap() { return *(static_cast(get_at(24))); } +const BITSTRING_template& MS__NetworkCap_template::gERANNtwkShareCap() const { return *(static_cast(get_at(24))); } +BITSTRING_template& MS__NetworkCap_template::userPlaneIntegrityProtSupport() { return *(static_cast(get_at(25))); } +const BITSTRING_template& MS__NetworkCap_template::userPlaneIntegrityProtSupport() const { return *(static_cast(get_at(25))); } +BITSTRING_template& MS__NetworkCap_template::gia4() { return *(static_cast(get_at(26))); } +const BITSTRING_template& MS__NetworkCap_template::gia4() const { return *(static_cast(get_at(26))); } +BITSTRING_template& MS__NetworkCap_template::gia5() { return *(static_cast(get_at(27))); } +const BITSTRING_template& MS__NetworkCap_template::gia5() const { return *(static_cast(get_at(27))); } +BITSTRING_template& MS__NetworkCap_template::gia6() { return *(static_cast(get_at(28))); } +const BITSTRING_template& MS__NetworkCap_template::gia6() const { return *(static_cast(get_at(28))); } +BITSTRING_template& MS__NetworkCap_template::gia7() { return *(static_cast(get_at(29))); } +const BITSTRING_template& MS__NetworkCap_template::gia7() const { return *(static_cast(get_at(29))); } +BITSTRING_template& MS__NetworkCap_template::ePCOInd() { return *(static_cast(get_at(30))); } +const BITSTRING_template& MS__NetworkCap_template::ePCOInd() const { return *(static_cast(get_at(30))); } +BITSTRING_template& MS__NetworkCap_template::restrictEnhancedCoverageCap() { return *(static_cast(get_at(31))); } +const BITSTRING_template& MS__NetworkCap_template::restrictEnhancedCoverageCap() const { return *(static_cast(get_at(31))); } +BITSTRING_template& MS__NetworkCap_template::dualConnectivityEUTRA__NR() { return *(static_cast(get_at(32))); } +const BITSTRING_template& MS__NetworkCap_template::dualConnectivityEUTRA__NR() const { return *(static_cast(get_at(32))); } +BITSTRING_template& MS__NetworkCap_template::spareBits() { return *(static_cast(get_at(33))); } +const BITSTRING_template& MS__NetworkCap_template::spareBits() const { return *(static_cast(get_at(33))); } +const TTCN_Typedescriptor_t* MS__NetworkCap_template::get_descriptor() const { return &MS__NetworkCap_descr_; } +const char* MS__NetworkCap_template::fld_name(int p_index) const { return MS__NetworkCap::fld_names[p_index]; } +void Non3GPP__NW__ProvidedPolicies::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spareBits; fld_vec[2]=&field_n3ENInd; } + +Non3GPP__NW__ProvidedPolicies::Non3GPP__NW__ProvidedPolicies() : Record_Type() { init_vec(); } + +Non3GPP__NW__ProvidedPolicies::Non3GPP__NW__ProvidedPolicies(const Non3GPP__NW__ProvidedPolicies& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_n3ENInd.is_bound() ) + field_n3ENInd = other_value.field_n3ENInd; +init_vec(); +} + +Non3GPP__NW__ProvidedPolicies::Non3GPP__NW__ProvidedPolicies(const HEXSTRING& par_iei, + const BITSTRING& par_spareBits, + const BITSTRING& par_n3ENInd) : field_iei(par_iei), + field_spareBits(par_spareBits), + field_n3ENInd(par_n3ENInd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Non3GPP__NW__ProvidedPolicies::get_descriptor() const { return &Non3GPP__NW__ProvidedPolicies_descr_; } +const TTCN_Typedescriptor_t* Non3GPP__NW__ProvidedPolicies::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* Non3GPP__NW__ProvidedPolicies::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Non3GPP__NW__ProvidedPolicies::fld_names[] = { "iei", "spareBits", "n3ENInd" }; +const char* Non3GPP__NW__ProvidedPolicies::fld_name(int p_index) const { return fld_names[p_index]; } + +void Non3GPP__NW__ProvidedPolicies_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +Non3GPP__NW__ProvidedPolicies_template::Non3GPP__NW__ProvidedPolicies_template(Non3GPP__NW__ProvidedPolicies_template* p_precondition, Non3GPP__NW__ProvidedPolicies_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Non3GPP__NW__ProvidedPolicies_template::Non3GPP__NW__ProvidedPolicies_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Non3GPP__NW__ProvidedPolicies_template::~Non3GPP__NW__ProvidedPolicies_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Non3GPP__NW__ProvidedPolicies_template::match_dynamic(const Base_Type* match_value) const +{ +const Non3GPP__NW__ProvidedPolicies* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Non3GPP__NW__ProvidedPolicies_template& Non3GPP__NW__ProvidedPolicies_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Non3GPP__NW__ProvidedPolicies_template& Non3GPP__NW__ProvidedPolicies_template::operator=(const Non3GPP__NW__ProvidedPolicies& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Non3GPP__NW__ProvidedPolicies_template& Non3GPP__NW__ProvidedPolicies_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Non3GPP__NW__ProvidedPolicies_template& Non3GPP__NW__ProvidedPolicies_template::operator=(const Non3GPP__NW__ProvidedPolicies_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Non3GPP__NW__ProvidedPolicies Non3GPP__NW__ProvidedPolicies_template::valueof() const +{ +Non3GPP__NW__ProvidedPolicies ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& Non3GPP__NW__ProvidedPolicies_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& Non3GPP__NW__ProvidedPolicies_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& Non3GPP__NW__ProvidedPolicies_template::spareBits() { return *(static_cast(get_at(1))); } +const BITSTRING_template& Non3GPP__NW__ProvidedPolicies_template::spareBits() const { return *(static_cast(get_at(1))); } +BITSTRING_template& Non3GPP__NW__ProvidedPolicies_template::n3ENInd() { return *(static_cast(get_at(2))); } +const BITSTRING_template& Non3GPP__NW__ProvidedPolicies_template::n3ENInd() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* Non3GPP__NW__ProvidedPolicies_template::get_descriptor() const { return &Non3GPP__NW__ProvidedPolicies_descr_; } +const char* Non3GPP__NW__ProvidedPolicies_template::fld_name(int p_index) const { return Non3GPP__NW__ProvidedPolicies::fld_names[p_index]; } +void NwkResourceId::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_nriContainerValue; fld_vec[3]=&field_spareBits; } + +NwkResourceId::NwkResourceId() : Record_Type() { init_vec(); } + +NwkResourceId::NwkResourceId(const NwkResourceId& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_nriContainerValue.is_bound() ) + field_nriContainerValue = other_value.field_nriContainerValue; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +init_vec(); +} + +NwkResourceId::NwkResourceId(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_nriContainerValue, + const BITSTRING& par_spareBits) : field_iei(par_iei), + field_iel(par_iel), + field_nriContainerValue(par_nriContainerValue), + field_spareBits(par_spareBits) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NwkResourceId::get_descriptor() const { return &NwkResourceId_descr_; } +const TTCN_Typedescriptor_t* NwkResourceId::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B10__Type_descr_, &CommonDefs::B6__Type_descr_ }; +const TTCN_Typedescriptor_t* NwkResourceId::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NwkResourceId::fld_names[] = { "iei", "iel", "nriContainerValue", "spareBits" }; +const char* NwkResourceId::fld_name(int p_index) const { return fld_names[p_index]; } + +void NwkResourceId_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NwkResourceId_template::NwkResourceId_template(NwkResourceId_template* p_precondition, NwkResourceId_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NwkResourceId_template::NwkResourceId_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NwkResourceId_template::~NwkResourceId_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NwkResourceId_template::match_dynamic(const Base_Type* match_value) const +{ +const NwkResourceId* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NwkResourceId_template& NwkResourceId_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NwkResourceId_template& NwkResourceId_template::operator=(const NwkResourceId& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NwkResourceId_template& NwkResourceId_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NwkResourceId_template& NwkResourceId_template::operator=(const NwkResourceId_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NwkResourceId NwkResourceId_template::valueof() const +{ +NwkResourceId ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NwkResourceId_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NwkResourceId_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NwkResourceId_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NwkResourceId_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NwkResourceId_template::nriContainerValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NwkResourceId_template::nriContainerValue() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NwkResourceId_template::spareBits() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NwkResourceId_template::spareBits() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* NwkResourceId_template::get_descriptor() const { return &NwkResourceId_descr_; } +const char* NwkResourceId_template::fld_name(int p_index) const { return NwkResourceId::fld_names[p_index]; } +void PacketFlowIdentifier::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_idValue; } + +PacketFlowIdentifier::PacketFlowIdentifier() : Record_Type() { init_vec(); } + +PacketFlowIdentifier::PacketFlowIdentifier(const PacketFlowIdentifier& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_idValue.is_bound() ) + field_idValue = other_value.field_idValue; +init_vec(); +} + +PacketFlowIdentifier::PacketFlowIdentifier(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_idValue) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_idValue(par_idValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PacketFlowIdentifier::get_descriptor() const { return &PacketFlowIdentifier_descr_; } +const TTCN_Typedescriptor_t* PacketFlowIdentifier::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B7__Type_descr_ }; +const TTCN_Typedescriptor_t* PacketFlowIdentifier::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PacketFlowIdentifier::fld_names[] = { "iei", "iel", "spare", "idValue" }; +const char* PacketFlowIdentifier::fld_name(int p_index) const { return fld_names[p_index]; } + +void PacketFlowIdentifier_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +PacketFlowIdentifier_template::PacketFlowIdentifier_template(PacketFlowIdentifier_template* p_precondition, PacketFlowIdentifier_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PacketFlowIdentifier_template::PacketFlowIdentifier_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PacketFlowIdentifier_template::~PacketFlowIdentifier_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PacketFlowIdentifier_template::match_dynamic(const Base_Type* match_value) const +{ +const PacketFlowIdentifier* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PacketFlowIdentifier_template& PacketFlowIdentifier_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PacketFlowIdentifier_template& PacketFlowIdentifier_template::operator=(const PacketFlowIdentifier& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PacketFlowIdentifier_template& PacketFlowIdentifier_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PacketFlowIdentifier_template& PacketFlowIdentifier_template::operator=(const PacketFlowIdentifier_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PacketFlowIdentifier PacketFlowIdentifier_template::valueof() const +{ +PacketFlowIdentifier ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PacketFlowIdentifier_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PacketFlowIdentifier_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PacketFlowIdentifier_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PacketFlowIdentifier_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PacketFlowIdentifier_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PacketFlowIdentifier_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PacketFlowIdentifier_template::idValue() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PacketFlowIdentifier_template::idValue() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* PacketFlowIdentifier_template::get_descriptor() const { return &PacketFlowIdentifier_descr_; } +const char* PacketFlowIdentifier_template::fld_name(int p_index) const { return PacketFlowIdentifier::fld_names[p_index]; } +void PLMN__IdIE::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_plmn; } + +PLMN__IdIE::PLMN__IdIE() : Record_Type() { init_vec(); } + +PLMN__IdIE::PLMN__IdIE(const PLMN__IdIE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_plmn.is_bound() ) + field_plmn = other_value.field_plmn; +init_vec(); +} + +PLMN__IdIE::PLMN__IdIE(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_plmn) : field_iei(par_iei), + field_iel(par_iel), + field_plmn(par_plmn) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PLMN__IdIE::get_descriptor() const { return &PLMN__IdIE_descr_; } +const TTCN_Typedescriptor_t* PLMN__IdIE::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &NAS__PlmnId_descr_ }; +const TTCN_Typedescriptor_t* PLMN__IdIE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PLMN__IdIE::fld_names[] = { "iei", "iel", "plmn" }; +const char* PLMN__IdIE::fld_name(int p_index) const { return fld_names[p_index]; } + +void PLMN__IdIE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +PLMN__IdIE_template::PLMN__IdIE_template(PLMN__IdIE_template* p_precondition, PLMN__IdIE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PLMN__IdIE_template::PLMN__IdIE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PLMN__IdIE_template::~PLMN__IdIE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PLMN__IdIE_template::match_dynamic(const Base_Type* match_value) const +{ +const PLMN__IdIE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PLMN__IdIE_template& PLMN__IdIE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PLMN__IdIE_template& PLMN__IdIE_template::operator=(const PLMN__IdIE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PLMN__IdIE_template& PLMN__IdIE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PLMN__IdIE_template& PLMN__IdIE_template::operator=(const PLMN__IdIE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PLMN__IdIE PLMN__IdIE_template::valueof() const +{ +PLMN__IdIE ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PLMN__IdIE_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PLMN__IdIE_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PLMN__IdIE_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PLMN__IdIE_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& PLMN__IdIE_template::plmn() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& PLMN__IdIE_template::plmn() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PLMN__IdIE_template::get_descriptor() const { return &PLMN__IdIE_descr_; } +const char* PLMN__IdIE_template::fld_name(int p_index) const { return PLMN__IdIE::fld_names[p_index]; } +void PLMN__List::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_plmnList; } + +PLMN__List::PLMN__List() : Record_Type() { init_vec(); } + +PLMN__List::PLMN__List(const PLMN__List& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_plmnList.is_bound() ) + field_plmnList = other_value.field_plmnList; +init_vec(); +} + +PLMN__List::PLMN__List(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const PLMN__List_plmnList& par_plmnList) : field_iei(par_iei), + field_iel(par_iel), + field_plmnList(par_plmnList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PLMN__List::get_descriptor() const { return &PLMN__List_descr_; } +const TTCN_Typedescriptor_t* PLMN__List::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &PLMN__List_plmnList_descr_ }; +const TTCN_Typedescriptor_t* PLMN__List::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PLMN__List::fld_names[] = { "iei", "iel", "plmnList" }; +const char* PLMN__List::fld_name(int p_index) const { return fld_names[p_index]; } + +void PLMN__List_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new PLMN__List_plmnList_template(ANY_VALUE) : new PLMN__List_plmnList_template; +} +} + +PLMN__List_template::PLMN__List_template(PLMN__List_template* p_precondition, PLMN__List_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PLMN__List_template::PLMN__List_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PLMN__List_template::~PLMN__List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PLMN__List_template::match_dynamic(const Base_Type* match_value) const +{ +const PLMN__List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PLMN__List_template& PLMN__List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PLMN__List_template& PLMN__List_template::operator=(const PLMN__List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PLMN__List_template& PLMN__List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PLMN__List_template& PLMN__List_template::operator=(const PLMN__List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PLMN__List PLMN__List_template::valueof() const +{ +PLMN__List ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PLMN__List_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PLMN__List_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PLMN__List_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PLMN__List_template::iel() const { return *(static_cast(get_at(1))); } +PLMN__List_plmnList_template& PLMN__List_template::plmnList() { return *(static_cast(get_at(2))); } +const PLMN__List_plmnList_template& PLMN__List_template::plmnList() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PLMN__List_template::get_descriptor() const { return &PLMN__List_descr_; } +const char* PLMN__List_template::fld_name(int p_index) const { return PLMN__List::fld_names[p_index]; } +void MS__NetworkFeatureSupport::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_extdPeriodicTimers; } + +MS__NetworkFeatureSupport::MS__NetworkFeatureSupport() : Record_Type() { init_vec(); } + +MS__NetworkFeatureSupport::MS__NetworkFeatureSupport(const MS__NetworkFeatureSupport& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_extdPeriodicTimers.is_bound() ) + field_extdPeriodicTimers = other_value.field_extdPeriodicTimers; +init_vec(); +} + +MS__NetworkFeatureSupport::MS__NetworkFeatureSupport(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_extdPeriodicTimers) : field_iei(par_iei), + field_spare(par_spare), + field_extdPeriodicTimers(par_extdPeriodicTimers) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MS__NetworkFeatureSupport::get_descriptor() const { return &MS__NetworkFeatureSupport_descr_; } +const TTCN_Typedescriptor_t* MS__NetworkFeatureSupport::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* MS__NetworkFeatureSupport::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MS__NetworkFeatureSupport::fld_names[] = { "iei", "spare", "extdPeriodicTimers" }; +const char* MS__NetworkFeatureSupport::fld_name(int p_index) const { return fld_names[p_index]; } + +void MS__NetworkFeatureSupport_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +MS__NetworkFeatureSupport_template::MS__NetworkFeatureSupport_template(MS__NetworkFeatureSupport_template* p_precondition, MS__NetworkFeatureSupport_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MS__NetworkFeatureSupport_template::MS__NetworkFeatureSupport_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MS__NetworkFeatureSupport_template::~MS__NetworkFeatureSupport_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MS__NetworkFeatureSupport_template::match_dynamic(const Base_Type* match_value) const +{ +const MS__NetworkFeatureSupport* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MS__NetworkFeatureSupport_template& MS__NetworkFeatureSupport_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MS__NetworkFeatureSupport_template& MS__NetworkFeatureSupport_template::operator=(const MS__NetworkFeatureSupport& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MS__NetworkFeatureSupport_template& MS__NetworkFeatureSupport_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MS__NetworkFeatureSupport_template& MS__NetworkFeatureSupport_template::operator=(const MS__NetworkFeatureSupport_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MS__NetworkFeatureSupport MS__NetworkFeatureSupport_template::valueof() const +{ +MS__NetworkFeatureSupport ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& MS__NetworkFeatureSupport_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& MS__NetworkFeatureSupport_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& MS__NetworkFeatureSupport_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& MS__NetworkFeatureSupport_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& MS__NetworkFeatureSupport_template::extdPeriodicTimers() { return *(static_cast(get_at(2))); } +const BITSTRING_template& MS__NetworkFeatureSupport_template::extdPeriodicTimers() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* MS__NetworkFeatureSupport_template::get_descriptor() const { return &MS__NetworkFeatureSupport_descr_; } +const char* MS__NetworkFeatureSupport_template::fld_name(int p_index) const { return MS__NetworkFeatureSupport::fld_names[p_index]; } +void ProtocolConfigOptions::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_ext; fld_vec[3]=&field_spare; fld_vec[4]=&field_configProtocol; fld_vec[5]=&field_pco; } + +ProtocolConfigOptions::ProtocolConfigOptions() : Record_Type() { init_vec(); } + +ProtocolConfigOptions::ProtocolConfigOptions(const ProtocolConfigOptions& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_ext.is_bound() ) + field_ext = other_value.field_ext; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_configProtocol.is_bound() ) + field_configProtocol = other_value.field_configProtocol; +if (other_value.field_pco.is_bound() ) + field_pco = other_value.field_pco; +init_vec(); +} + +ProtocolConfigOptions::ProtocolConfigOptions(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_ext, + const BITSTRING& par_spare, + const BITSTRING& par_configProtocol, + const OPTIONAL& par_pco) : field_iei(par_iei), + field_iel(par_iel), + field_ext(par_ext), + field_spare(par_spare), + field_configProtocol(par_configProtocol), + field_pco(par_pco) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ProtocolConfigOptions::get_descriptor() const { return &ProtocolConfigOptions_descr_; } +const TTCN_Typedescriptor_t* ProtocolConfigOptions::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B3__Type_descr_, &ProtocolConfigOptions_pco_descr_ }; +const TTCN_Typedescriptor_t* ProtocolConfigOptions::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ProtocolConfigOptions::fld_names[] = { "iei", "iel", "ext", "spare", "configProtocol", "pco" }; +const char* ProtocolConfigOptions::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ProtocolConfigOptions::optional_indexes[] = { 5, -1 }; +const int* ProtocolConfigOptions::get_optional_indexes() const { return optional_indexes; } + +const int ProtocolConfigOptions::optional_indexes_asn[] = { 5, -1 }; +const int* ProtocolConfigOptions::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ProtocolConfigOptions_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new ProtocolConfigOptions_pco_template(ANY_OR_OMIT) : new ProtocolConfigOptions_pco_template; +} +} + +ProtocolConfigOptions_template::ProtocolConfigOptions_template(ProtocolConfigOptions_template* p_precondition, ProtocolConfigOptions_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ProtocolConfigOptions_template::ProtocolConfigOptions_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ProtocolConfigOptions_template::~ProtocolConfigOptions_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ProtocolConfigOptions_template::match_dynamic(const Base_Type* match_value) const +{ +const ProtocolConfigOptions* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ProtocolConfigOptions_template& ProtocolConfigOptions_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ProtocolConfigOptions_template& ProtocolConfigOptions_template::operator=(const ProtocolConfigOptions& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ProtocolConfigOptions_template& ProtocolConfigOptions_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ProtocolConfigOptions_template& ProtocolConfigOptions_template::operator=(const ProtocolConfigOptions_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ProtocolConfigOptions ProtocolConfigOptions_template::valueof() const +{ +ProtocolConfigOptions ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ProtocolConfigOptions_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ProtocolConfigOptions_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ProtocolConfigOptions_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ProtocolConfigOptions_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ProtocolConfigOptions_template::ext() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ProtocolConfigOptions_template::ext() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ProtocolConfigOptions_template::spare() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ProtocolConfigOptions_template::spare() const { return *(static_cast(get_at(3))); } +BITSTRING_template& ProtocolConfigOptions_template::configProtocol() { return *(static_cast(get_at(4))); } +const BITSTRING_template& ProtocolConfigOptions_template::configProtocol() const { return *(static_cast(get_at(4))); } +ProtocolConfigOptions_pco_template& ProtocolConfigOptions_template::pco() { return *(static_cast(get_at(5))); } +const ProtocolConfigOptions_pco_template& ProtocolConfigOptions_template::pco() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* ProtocolConfigOptions_template::get_descriptor() const { return &ProtocolConfigOptions_descr_; } +const char* ProtocolConfigOptions_template::fld_name(int p_index) const { return ProtocolConfigOptions::fld_names[p_index]; } + +const ProtocolContainer ProtocolConfigOptions_pco::UNBOUND_ELEM; +ProtocolContainer& ProtocolConfigOptions_pco::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ProtocolContainer& ProtocolConfigOptions_pco::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ProtocolContainer& ProtocolConfigOptions_pco::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ProtocolContainer& ProtocolConfigOptions_pco::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::operator<<=(const INTEGER& rotate_count) const +{ +ProtocolConfigOptions_pco rec_of; +return *((ProtocolConfigOptions_pco*)rotl(rotate_count, &rec_of)); +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::operator>>=(const INTEGER& rotate_count) const +{ +ProtocolConfigOptions_pco rec_of; +return *((ProtocolConfigOptions_pco*)rotr(rotate_count, &rec_of)); +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::operator>>=(int rotate_count) const +{ +ProtocolConfigOptions_pco rec_of; +return *((ProtocolConfigOptions_pco*)rotr(rotate_count, &rec_of)); +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::operator+(const ProtocolConfigOptions_pco& other_value) const +{ +ProtocolConfigOptions_pco rec_of; +return *((ProtocolConfigOptions_pco*)concat(&other_value, &rec_of)); +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const ProtocolConfigOptions_pco&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.ProtocolConfigOptions.pco concatenation."); +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::operator+(null_type) const +{ +return *this; +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::substr(int index, int returncount) const +{ +ProtocolConfigOptions_pco rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::replace(int index, int len, const ProtocolConfigOptions_pco& repl) const +{ +ProtocolConfigOptions_pco rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco::replace(int index, int len, const ProtocolConfigOptions_pco_template& repl) const +{ +ProtocolConfigOptions_pco rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* ProtocolConfigOptions_pco::create_elem() const { return new ProtocolContainer; } +const Base_Type* ProtocolConfigOptions_pco::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* ProtocolConfigOptions_pco::get_descriptor() const { return &ProtocolConfigOptions_pco_descr_; } +ProtocolConfigOptions_pco_template::ProtocolConfigOptions_pco_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +ProtocolConfigOptions_pco_template::ProtocolConfigOptions_pco_template(ProtocolConfigOptions_pco_template* p_precondition, ProtocolConfigOptions_pco_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ProtocolConfigOptions_pco_template::ProtocolConfigOptions_pco_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ProtocolConfigOptions_pco_template::~ProtocolConfigOptions_pco_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ProtocolConfigOptions_pco_template::match_dynamic(const Base_Type* match_value) const +{ +const ProtocolConfigOptions_pco* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +ProtocolConfigOptions_pco_template& ProtocolConfigOptions_pco_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ProtocolConfigOptions_pco_template& ProtocolConfigOptions_pco_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +ProtocolConfigOptions_pco_template& ProtocolConfigOptions_pco_template::operator=(const ProtocolConfigOptions_pco& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ProtocolConfigOptions_pco_template& ProtocolConfigOptions_pco_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ProtocolConfigOptions_pco_template& ProtocolConfigOptions_pco_template::operator=(const ProtocolConfigOptions_pco_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ProtocolConfigOptions_pco_template ProtocolConfigOptions_pco_template::operator+(const ProtocolConfigOptions_pco_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return ProtocolConfigOptions_pco_template(ANY_VALUE); +} +ProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ProtocolConfigOptions_pco_template ProtocolConfigOptions_pco_template::operator+(const ProtocolConfigOptions_pco& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +ProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ProtocolConfigOptions_pco_template ProtocolConfigOptions_pco_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return ProtocolConfigOptions_pco_template(ANY_VALUE); +} +ProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +ProtocolConfigOptions_pco_template ProtocolConfigOptions_pco_template::operator+(null_type) const +{ +return *this; +} + +ProtocolContainer_template& ProtocolConfigOptions_pco_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ProtocolContainer_template& ProtocolConfigOptions_pco_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ProtocolContainer_template& ProtocolConfigOptions_pco_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ProtocolContainer_template& ProtocolConfigOptions_pco_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco_template::valueof() const +{ +ProtocolConfigOptions_pco ret_val; +valueofv(&ret_val); +return ret_val; +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco_template::substr(int index, int returncount) const +{ +ProtocolConfigOptions_pco rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco_template::replace(int index, int len, const ProtocolConfigOptions_pco_template& repl) const +{ +ProtocolConfigOptions_pco rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ProtocolConfigOptions_pco ProtocolConfigOptions_pco_template::replace(int index, int len, const ProtocolConfigOptions_pco& repl) const +{ +ProtocolConfigOptions_pco rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* ProtocolConfigOptions_pco_template::create_elem() const { return new ProtocolContainer_template; } +const TTCN_Typedescriptor_t* ProtocolConfigOptions_pco_template::get_descriptor() const { return &ProtocolConfigOptions_pco_descr_; } +void ProtocolContainer::init_vec() { fld_vec[0]=&field_protocolID; fld_vec[1]=&field_protocolLength; fld_vec[2]=&field_protocolLongLength; fld_vec[3]=&field_content; } + +ProtocolContainer::ProtocolContainer() : Record_Type() { init_vec(); } + +ProtocolContainer::ProtocolContainer(const ProtocolContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolID.is_bound() ) + field_protocolID = other_value.field_protocolID; +if (other_value.field_protocolLength.is_bound() ) + field_protocolLength = other_value.field_protocolLength; +if (other_value.field_protocolLongLength.is_bound() ) + field_protocolLongLength = other_value.field_protocolLongLength; +if (other_value.field_content.is_bound() ) + field_content = other_value.field_content; +init_vec(); +} + +ProtocolContainer::ProtocolContainer(const OCTETSTRING& par_protocolID, + const OPTIONAL& par_protocolLength, + const OPTIONAL& par_protocolLongLength, + const OPTIONAL& par_content) : field_protocolID(par_protocolID), + field_protocolLength(par_protocolLength), + field_protocolLongLength(par_protocolLongLength), + field_content(par_content) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ProtocolContainer::get_descriptor() const { return &ProtocolContainer_descr_; } +const TTCN_Typedescriptor_t* ProtocolContainer::fld_descriptors[] = { &CommonDefs::O2__Type_descr_, &Type4Length__Type_descr_, &Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* ProtocolContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ProtocolContainer::fld_names[] = { "protocolID", "protocolLength", "protocolLongLength", "content" }; +const char* ProtocolContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ProtocolContainer::optional_indexes[] = { 1, 2, 3, -1 }; +const int* ProtocolContainer::get_optional_indexes() const { return optional_indexes; } + +const int ProtocolContainer::optional_indexes_asn[] = { 1, 2, 3, -1 }; +const int* ProtocolContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ProtocolContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +ProtocolContainer_template::ProtocolContainer_template(ProtocolContainer_template* p_precondition, ProtocolContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ProtocolContainer_template::ProtocolContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ProtocolContainer_template::~ProtocolContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ProtocolContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const ProtocolContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ProtocolContainer_template& ProtocolContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ProtocolContainer_template& ProtocolContainer_template::operator=(const ProtocolContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ProtocolContainer_template& ProtocolContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ProtocolContainer_template& ProtocolContainer_template::operator=(const ProtocolContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ProtocolContainer ProtocolContainer_template::valueof() const +{ +ProtocolContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ProtocolContainer_template::protocolID() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ProtocolContainer_template::protocolID() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ProtocolContainer_template::protocolLength() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ProtocolContainer_template::protocolLength() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ProtocolContainer_template::protocolLongLength() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ProtocolContainer_template::protocolLongLength() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& ProtocolContainer_template::content() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& ProtocolContainer_template::content() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* ProtocolContainer_template::get_descriptor() const { return &ProtocolContainer_descr_; } +const char* ProtocolContainer_template::fld_name(int p_index) const { return ProtocolContainer::fld_names[p_index]; } +void APNRateControlParams::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_aer; fld_vec[2]=&field_uplinkTimeUnit; fld_vec[3]=&field_maxUplinkRate; } + +APNRateControlParams::APNRateControlParams() : Record_Type() { init_vec(); } + +APNRateControlParams::APNRateControlParams(const APNRateControlParams& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_aer.is_bound() ) + field_aer = other_value.field_aer; +if (other_value.field_uplinkTimeUnit.is_bound() ) + field_uplinkTimeUnit = other_value.field_uplinkTimeUnit; +if (other_value.field_maxUplinkRate.is_bound() ) + field_maxUplinkRate = other_value.field_maxUplinkRate; +init_vec(); +} + +APNRateControlParams::APNRateControlParams(const BITSTRING& par_spare, + const BITSTRING& par_aer, + const BITSTRING& par_uplinkTimeUnit, + const OPTIONAL& par_maxUplinkRate) : field_spare(par_spare), + field_aer(par_aer), + field_uplinkTimeUnit(par_uplinkTimeUnit), + field_maxUplinkRate(par_maxUplinkRate) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* APNRateControlParams::get_descriptor() const { return &APNRateControlParams_descr_; } +const TTCN_Typedescriptor_t* APNRateControlParams::fld_descriptors[] = { &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::O3__Type_descr_ }; +const TTCN_Typedescriptor_t* APNRateControlParams::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* APNRateControlParams::fld_names[] = { "spare", "aer", "uplinkTimeUnit", "maxUplinkRate" }; +const char* APNRateControlParams::fld_name(int p_index) const { return fld_names[p_index]; } + +const int APNRateControlParams::optional_indexes[] = { 3, -1 }; +const int* APNRateControlParams::get_optional_indexes() const { return optional_indexes; } + +const int APNRateControlParams::optional_indexes_asn[] = { 3, -1 }; +const int* APNRateControlParams::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void APNRateControlParams_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +APNRateControlParams_template::APNRateControlParams_template(APNRateControlParams_template* p_precondition, APNRateControlParams_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +APNRateControlParams_template::APNRateControlParams_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +APNRateControlParams_template::~APNRateControlParams_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean APNRateControlParams_template::match_dynamic(const Base_Type* match_value) const +{ +const APNRateControlParams* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +APNRateControlParams_template& APNRateControlParams_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +APNRateControlParams_template& APNRateControlParams_template::operator=(const APNRateControlParams& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +APNRateControlParams_template& APNRateControlParams_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +APNRateControlParams_template& APNRateControlParams_template::operator=(const APNRateControlParams_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +APNRateControlParams APNRateControlParams_template::valueof() const +{ +APNRateControlParams ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& APNRateControlParams_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& APNRateControlParams_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& APNRateControlParams_template::aer() { return *(static_cast(get_at(1))); } +const BITSTRING_template& APNRateControlParams_template::aer() const { return *(static_cast(get_at(1))); } +BITSTRING_template& APNRateControlParams_template::uplinkTimeUnit() { return *(static_cast(get_at(2))); } +const BITSTRING_template& APNRateControlParams_template::uplinkTimeUnit() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& APNRateControlParams_template::maxUplinkRate() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& APNRateControlParams_template::maxUplinkRate() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* APNRateControlParams_template::get_descriptor() const { return &APNRateControlParams_descr_; } +const char* APNRateControlParams_template::fld_name(int p_index) const { return APNRateControlParams::fld_names[p_index]; } +void PTMSI__Signature::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_signatureValue; } + +PTMSI__Signature::PTMSI__Signature() : Record_Type() { init_vec(); } + +PTMSI__Signature::PTMSI__Signature(const PTMSI__Signature& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_signatureValue.is_bound() ) + field_signatureValue = other_value.field_signatureValue; +init_vec(); +} + +PTMSI__Signature::PTMSI__Signature(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_signatureValue) : field_iei(par_iei), + field_iel(par_iel), + field_signatureValue(par_signatureValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PTMSI__Signature::get_descriptor() const { return &PTMSI__Signature_descr_; } +const TTCN_Typedescriptor_t* PTMSI__Signature::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::O3__Type_descr_ }; +const TTCN_Typedescriptor_t* PTMSI__Signature::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PTMSI__Signature::fld_names[] = { "iei", "iel", "signatureValue" }; +const char* PTMSI__Signature::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PTMSI__Signature::optional_indexes[] = { 0, 1, -1 }; +const int* PTMSI__Signature::get_optional_indexes() const { return optional_indexes; } + +const int PTMSI__Signature::optional_indexes_asn[] = { 0, 1, -1 }; +const int* PTMSI__Signature::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PTMSI__Signature_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +PTMSI__Signature_template::PTMSI__Signature_template(PTMSI__Signature_template* p_precondition, PTMSI__Signature_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PTMSI__Signature_template::PTMSI__Signature_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PTMSI__Signature_template::~PTMSI__Signature_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PTMSI__Signature_template::match_dynamic(const Base_Type* match_value) const +{ +const PTMSI__Signature* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PTMSI__Signature_template& PTMSI__Signature_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PTMSI__Signature_template& PTMSI__Signature_template::operator=(const PTMSI__Signature& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PTMSI__Signature_template& PTMSI__Signature_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PTMSI__Signature_template& PTMSI__Signature_template::operator=(const PTMSI__Signature_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PTMSI__Signature PTMSI__Signature_template::valueof() const +{ +PTMSI__Signature ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PTMSI__Signature_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PTMSI__Signature_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PTMSI__Signature_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PTMSI__Signature_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& PTMSI__Signature_template::signatureValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& PTMSI__Signature_template::signatureValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PTMSI__Signature_template::get_descriptor() const { return &PTMSI__Signature_descr_; } +const char* PTMSI__Signature_template::fld_name(int p_index) const { return PTMSI__Signature::fld_names[p_index]; } +void QualityOfService::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare1; fld_vec[3]=&field_delayClass; fld_vec[4]=&field_relabilityClass; fld_vec[5]=&field_peakThroughput; fld_vec[6]=&field_spare2; fld_vec[7]=&field_precedenceClass; fld_vec[8]=&field_spare3; fld_vec[9]=&field_meanThroughput; fld_vec[10]=&field_trafficClass; fld_vec[11]=&field_deliveryOrder; fld_vec[12]=&field_deliveryErrorSDU; fld_vec[13]=&field_maxSduSize; fld_vec[14]=&field_maxBitRateUL; fld_vec[15]=&field_maxBitRateDL; fld_vec[16]=&field_residualBER; fld_vec[17]=&field_sduErrorRatio; fld_vec[18]=&field_transferDelay; fld_vec[19]=&field_trafficHandlingPrio; fld_vec[20]=&field_guaranteedBitRateUL; fld_vec[21]=&field_guaranteedBitRateDL; fld_vec[22]=&field_spare4; fld_vec[23]=&field_signallingInd; fld_vec[24]=&field_sourceStatisticsDescriptor; fld_vec[25]=&field_maxBitRateDL__Ext; fld_vec[26]=&field_guaranteedBitRateDL__Ext; fld_vec[27]=&field_maxBitRateUL__Ext; fld_vec[28]=&field_guaranteedBitRateUL__Ext; fld_vec[29]=&field_maxBitRateDL__Ext2; fld_vec[30]=&field_guaranteedBitRateDL__Ext2; fld_vec[31]=&field_maxBitRateUL__Ext2; fld_vec[32]=&field_guaranteedBitRateUL__Ext2; } + +QualityOfService::QualityOfService() : Record_Type() { init_vec(); } + +QualityOfService::QualityOfService(const QualityOfService& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare1.is_bound() ) + field_spare1 = other_value.field_spare1; +if (other_value.field_delayClass.is_bound() ) + field_delayClass = other_value.field_delayClass; +if (other_value.field_relabilityClass.is_bound() ) + field_relabilityClass = other_value.field_relabilityClass; +if (other_value.field_peakThroughput.is_bound() ) + field_peakThroughput = other_value.field_peakThroughput; +if (other_value.field_spare2.is_bound() ) + field_spare2 = other_value.field_spare2; +if (other_value.field_precedenceClass.is_bound() ) + field_precedenceClass = other_value.field_precedenceClass; +if (other_value.field_spare3.is_bound() ) + field_spare3 = other_value.field_spare3; +if (other_value.field_meanThroughput.is_bound() ) + field_meanThroughput = other_value.field_meanThroughput; +if (other_value.field_trafficClass.is_bound() ) + field_trafficClass = other_value.field_trafficClass; +if (other_value.field_deliveryOrder.is_bound() ) + field_deliveryOrder = other_value.field_deliveryOrder; +if (other_value.field_deliveryErrorSDU.is_bound() ) + field_deliveryErrorSDU = other_value.field_deliveryErrorSDU; +if (other_value.field_maxSduSize.is_bound() ) + field_maxSduSize = other_value.field_maxSduSize; +if (other_value.field_maxBitRateUL.is_bound() ) + field_maxBitRateUL = other_value.field_maxBitRateUL; +if (other_value.field_maxBitRateDL.is_bound() ) + field_maxBitRateDL = other_value.field_maxBitRateDL; +if (other_value.field_residualBER.is_bound() ) + field_residualBER = other_value.field_residualBER; +if (other_value.field_sduErrorRatio.is_bound() ) + field_sduErrorRatio = other_value.field_sduErrorRatio; +if (other_value.field_transferDelay.is_bound() ) + field_transferDelay = other_value.field_transferDelay; +if (other_value.field_trafficHandlingPrio.is_bound() ) + field_trafficHandlingPrio = other_value.field_trafficHandlingPrio; +if (other_value.field_guaranteedBitRateUL.is_bound() ) + field_guaranteedBitRateUL = other_value.field_guaranteedBitRateUL; +if (other_value.field_guaranteedBitRateDL.is_bound() ) + field_guaranteedBitRateDL = other_value.field_guaranteedBitRateDL; +if (other_value.field_spare4.is_bound() ) + field_spare4 = other_value.field_spare4; +if (other_value.field_signallingInd.is_bound() ) + field_signallingInd = other_value.field_signallingInd; +if (other_value.field_sourceStatisticsDescriptor.is_bound() ) + field_sourceStatisticsDescriptor = other_value.field_sourceStatisticsDescriptor; +if (other_value.field_maxBitRateDL__Ext.is_bound() ) + field_maxBitRateDL__Ext = other_value.field_maxBitRateDL__Ext; +if (other_value.field_guaranteedBitRateDL__Ext.is_bound() ) + field_guaranteedBitRateDL__Ext = other_value.field_guaranteedBitRateDL__Ext; +if (other_value.field_maxBitRateUL__Ext.is_bound() ) + field_maxBitRateUL__Ext = other_value.field_maxBitRateUL__Ext; +if (other_value.field_guaranteedBitRateUL__Ext.is_bound() ) + field_guaranteedBitRateUL__Ext = other_value.field_guaranteedBitRateUL__Ext; +if (other_value.field_maxBitRateDL__Ext2.is_bound() ) + field_maxBitRateDL__Ext2 = other_value.field_maxBitRateDL__Ext2; +if (other_value.field_guaranteedBitRateDL__Ext2.is_bound() ) + field_guaranteedBitRateDL__Ext2 = other_value.field_guaranteedBitRateDL__Ext2; +if (other_value.field_maxBitRateUL__Ext2.is_bound() ) + field_maxBitRateUL__Ext2 = other_value.field_maxBitRateUL__Ext2; +if (other_value.field_guaranteedBitRateUL__Ext2.is_bound() ) + field_guaranteedBitRateUL__Ext2 = other_value.field_guaranteedBitRateUL__Ext2; +init_vec(); +} + +QualityOfService::QualityOfService(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare1, + const BITSTRING& par_delayClass, + const BITSTRING& par_relabilityClass, + const BITSTRING& par_peakThroughput, + const BITSTRING& par_spare2, + const BITSTRING& par_precedenceClass, + const BITSTRING& par_spare3, + const BITSTRING& par_meanThroughput, + const BITSTRING& par_trafficClass, + const BITSTRING& par_deliveryOrder, + const BITSTRING& par_deliveryErrorSDU, + const BITSTRING& par_maxSduSize, + const BITSTRING& par_maxBitRateUL, + const BITSTRING& par_maxBitRateDL, + const BITSTRING& par_residualBER, + const BITSTRING& par_sduErrorRatio, + const BITSTRING& par_transferDelay, + const BITSTRING& par_trafficHandlingPrio, + const BITSTRING& par_guaranteedBitRateUL, + const BITSTRING& par_guaranteedBitRateDL, + const BITSTRING& par_spare4, + const BITSTRING& par_signallingInd, + const BITSTRING& par_sourceStatisticsDescriptor, + const OPTIONAL& par_maxBitRateDL__Ext, + const OPTIONAL& par_guaranteedBitRateDL__Ext, + const OPTIONAL& par_maxBitRateUL__Ext, + const OPTIONAL& par_guaranteedBitRateUL__Ext, + const OPTIONAL& par_maxBitRateDL__Ext2, + const OPTIONAL& par_guaranteedBitRateDL__Ext2, + const OPTIONAL& par_maxBitRateUL__Ext2, + const OPTIONAL& par_guaranteedBitRateUL__Ext2) : field_iei(par_iei), + field_iel(par_iel), + field_spare1(par_spare1), + field_delayClass(par_delayClass), + field_relabilityClass(par_relabilityClass), + field_peakThroughput(par_peakThroughput), + field_spare2(par_spare2), + field_precedenceClass(par_precedenceClass), + field_spare3(par_spare3), + field_meanThroughput(par_meanThroughput), + field_trafficClass(par_trafficClass), + field_deliveryOrder(par_deliveryOrder), + field_deliveryErrorSDU(par_deliveryErrorSDU), + field_maxSduSize(par_maxSduSize), + field_maxBitRateUL(par_maxBitRateUL), + field_maxBitRateDL(par_maxBitRateDL), + field_residualBER(par_residualBER), + field_sduErrorRatio(par_sduErrorRatio), + field_transferDelay(par_transferDelay), + field_trafficHandlingPrio(par_trafficHandlingPrio), + field_guaranteedBitRateUL(par_guaranteedBitRateUL), + field_guaranteedBitRateDL(par_guaranteedBitRateDL), + field_spare4(par_spare4), + field_signallingInd(par_signallingInd), + field_sourceStatisticsDescriptor(par_sourceStatisticsDescriptor), + field_maxBitRateDL__Ext(par_maxBitRateDL__Ext), + field_guaranteedBitRateDL__Ext(par_guaranteedBitRateDL__Ext), + field_maxBitRateUL__Ext(par_maxBitRateUL__Ext), + field_guaranteedBitRateUL__Ext(par_guaranteedBitRateUL__Ext), + field_maxBitRateDL__Ext2(par_maxBitRateDL__Ext2), + field_guaranteedBitRateDL__Ext2(par_guaranteedBitRateDL__Ext2), + field_maxBitRateUL__Ext2(par_maxBitRateUL__Ext2), + field_guaranteedBitRateUL__Ext2(par_guaranteedBitRateUL__Ext2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* QualityOfService::get_descriptor() const { return &QualityOfService_descr_; } +const TTCN_Typedescriptor_t* QualityOfService::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B5__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* QualityOfService::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* QualityOfService::fld_names[] = { "iei", "iel", "spare1", "delayClass", "relabilityClass", "peakThroughput", "spare2", "precedenceClass", "spare3", "meanThroughput", "trafficClass", "deliveryOrder", "deliveryErrorSDU", "maxSduSize", "maxBitRateUL", "maxBitRateDL", "residualBER", "sduErrorRatio", "transferDelay", "trafficHandlingPrio", "guaranteedBitRateUL", "guaranteedBitRateDL", "spare4", "signallingInd", "sourceStatisticsDescriptor", "maxBitRateDL_Ext", "guaranteedBitRateDL_Ext", "maxBitRateUL_Ext", "guaranteedBitRateUL_Ext", "maxBitRateDL_Ext2", "guaranteedBitRateDL_Ext2", "maxBitRateUL_Ext2", "guaranteedBitRateUL_Ext2" }; +const char* QualityOfService::fld_name(int p_index) const { return fld_names[p_index]; } + +const int QualityOfService::optional_indexes[] = { 0, 25, 26, 27, 28, 29, 30, 31, 32, -1 }; +const int* QualityOfService::get_optional_indexes() const { return optional_indexes; } + +const int QualityOfService::optional_indexes_asn[] = { 0, 25, 26, 27, 28, 29, 30, 31, 32, -1 }; +const int* QualityOfService::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void QualityOfService_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 33; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[12] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[13] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[14] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[15] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[16] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[17] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[18] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[19] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[20] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[21] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[22] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[23] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[24] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[25] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[26] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[27] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[28] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[29] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[30] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[31] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[32] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +QualityOfService_template::QualityOfService_template(QualityOfService_template* p_precondition, QualityOfService_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QualityOfService_template::QualityOfService_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QualityOfService_template::~QualityOfService_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QualityOfService_template::match_dynamic(const Base_Type* match_value) const +{ +const QualityOfService* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +QualityOfService_template& QualityOfService_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QualityOfService_template& QualityOfService_template::operator=(const QualityOfService& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QualityOfService_template& QualityOfService_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QualityOfService_template& QualityOfService_template::operator=(const QualityOfService_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QualityOfService QualityOfService_template::valueof() const +{ +QualityOfService ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& QualityOfService_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& QualityOfService_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& QualityOfService_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& QualityOfService_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& QualityOfService_template::spare1() { return *(static_cast(get_at(2))); } +const BITSTRING_template& QualityOfService_template::spare1() const { return *(static_cast(get_at(2))); } +BITSTRING_template& QualityOfService_template::delayClass() { return *(static_cast(get_at(3))); } +const BITSTRING_template& QualityOfService_template::delayClass() const { return *(static_cast(get_at(3))); } +BITSTRING_template& QualityOfService_template::relabilityClass() { return *(static_cast(get_at(4))); } +const BITSTRING_template& QualityOfService_template::relabilityClass() const { return *(static_cast(get_at(4))); } +BITSTRING_template& QualityOfService_template::peakThroughput() { return *(static_cast(get_at(5))); } +const BITSTRING_template& QualityOfService_template::peakThroughput() const { return *(static_cast(get_at(5))); } +BITSTRING_template& QualityOfService_template::spare2() { return *(static_cast(get_at(6))); } +const BITSTRING_template& QualityOfService_template::spare2() const { return *(static_cast(get_at(6))); } +BITSTRING_template& QualityOfService_template::precedenceClass() { return *(static_cast(get_at(7))); } +const BITSTRING_template& QualityOfService_template::precedenceClass() const { return *(static_cast(get_at(7))); } +BITSTRING_template& QualityOfService_template::spare3() { return *(static_cast(get_at(8))); } +const BITSTRING_template& QualityOfService_template::spare3() const { return *(static_cast(get_at(8))); } +BITSTRING_template& QualityOfService_template::meanThroughput() { return *(static_cast(get_at(9))); } +const BITSTRING_template& QualityOfService_template::meanThroughput() const { return *(static_cast(get_at(9))); } +BITSTRING_template& QualityOfService_template::trafficClass() { return *(static_cast(get_at(10))); } +const BITSTRING_template& QualityOfService_template::trafficClass() const { return *(static_cast(get_at(10))); } +BITSTRING_template& QualityOfService_template::deliveryOrder() { return *(static_cast(get_at(11))); } +const BITSTRING_template& QualityOfService_template::deliveryOrder() const { return *(static_cast(get_at(11))); } +BITSTRING_template& QualityOfService_template::deliveryErrorSDU() { return *(static_cast(get_at(12))); } +const BITSTRING_template& QualityOfService_template::deliveryErrorSDU() const { return *(static_cast(get_at(12))); } +BITSTRING_template& QualityOfService_template::maxSduSize() { return *(static_cast(get_at(13))); } +const BITSTRING_template& QualityOfService_template::maxSduSize() const { return *(static_cast(get_at(13))); } +BITSTRING_template& QualityOfService_template::maxBitRateUL() { return *(static_cast(get_at(14))); } +const BITSTRING_template& QualityOfService_template::maxBitRateUL() const { return *(static_cast(get_at(14))); } +BITSTRING_template& QualityOfService_template::maxBitRateDL() { return *(static_cast(get_at(15))); } +const BITSTRING_template& QualityOfService_template::maxBitRateDL() const { return *(static_cast(get_at(15))); } +BITSTRING_template& QualityOfService_template::residualBER() { return *(static_cast(get_at(16))); } +const BITSTRING_template& QualityOfService_template::residualBER() const { return *(static_cast(get_at(16))); } +BITSTRING_template& QualityOfService_template::sduErrorRatio() { return *(static_cast(get_at(17))); } +const BITSTRING_template& QualityOfService_template::sduErrorRatio() const { return *(static_cast(get_at(17))); } +BITSTRING_template& QualityOfService_template::transferDelay() { return *(static_cast(get_at(18))); } +const BITSTRING_template& QualityOfService_template::transferDelay() const { return *(static_cast(get_at(18))); } +BITSTRING_template& QualityOfService_template::trafficHandlingPrio() { return *(static_cast(get_at(19))); } +const BITSTRING_template& QualityOfService_template::trafficHandlingPrio() const { return *(static_cast(get_at(19))); } +BITSTRING_template& QualityOfService_template::guaranteedBitRateUL() { return *(static_cast(get_at(20))); } +const BITSTRING_template& QualityOfService_template::guaranteedBitRateUL() const { return *(static_cast(get_at(20))); } +BITSTRING_template& QualityOfService_template::guaranteedBitRateDL() { return *(static_cast(get_at(21))); } +const BITSTRING_template& QualityOfService_template::guaranteedBitRateDL() const { return *(static_cast(get_at(21))); } +BITSTRING_template& QualityOfService_template::spare4() { return *(static_cast(get_at(22))); } +const BITSTRING_template& QualityOfService_template::spare4() const { return *(static_cast(get_at(22))); } +BITSTRING_template& QualityOfService_template::signallingInd() { return *(static_cast(get_at(23))); } +const BITSTRING_template& QualityOfService_template::signallingInd() const { return *(static_cast(get_at(23))); } +BITSTRING_template& QualityOfService_template::sourceStatisticsDescriptor() { return *(static_cast(get_at(24))); } +const BITSTRING_template& QualityOfService_template::sourceStatisticsDescriptor() const { return *(static_cast(get_at(24))); } +BITSTRING_template& QualityOfService_template::maxBitRateDL__Ext() { return *(static_cast(get_at(25))); } +const BITSTRING_template& QualityOfService_template::maxBitRateDL__Ext() const { return *(static_cast(get_at(25))); } +BITSTRING_template& QualityOfService_template::guaranteedBitRateDL__Ext() { return *(static_cast(get_at(26))); } +const BITSTRING_template& QualityOfService_template::guaranteedBitRateDL__Ext() const { return *(static_cast(get_at(26))); } +BITSTRING_template& QualityOfService_template::maxBitRateUL__Ext() { return *(static_cast(get_at(27))); } +const BITSTRING_template& QualityOfService_template::maxBitRateUL__Ext() const { return *(static_cast(get_at(27))); } +BITSTRING_template& QualityOfService_template::guaranteedBitRateUL__Ext() { return *(static_cast(get_at(28))); } +const BITSTRING_template& QualityOfService_template::guaranteedBitRateUL__Ext() const { return *(static_cast(get_at(28))); } +BITSTRING_template& QualityOfService_template::maxBitRateDL__Ext2() { return *(static_cast(get_at(29))); } +const BITSTRING_template& QualityOfService_template::maxBitRateDL__Ext2() const { return *(static_cast(get_at(29))); } +BITSTRING_template& QualityOfService_template::guaranteedBitRateDL__Ext2() { return *(static_cast(get_at(30))); } +const BITSTRING_template& QualityOfService_template::guaranteedBitRateDL__Ext2() const { return *(static_cast(get_at(30))); } +BITSTRING_template& QualityOfService_template::maxBitRateUL__Ext2() { return *(static_cast(get_at(31))); } +const BITSTRING_template& QualityOfService_template::maxBitRateUL__Ext2() const { return *(static_cast(get_at(31))); } +BITSTRING_template& QualityOfService_template::guaranteedBitRateUL__Ext2() { return *(static_cast(get_at(32))); } +const BITSTRING_template& QualityOfService_template::guaranteedBitRateUL__Ext2() const { return *(static_cast(get_at(32))); } +const TTCN_Typedescriptor_t* QualityOfService_template::get_descriptor() const { return &QualityOfService_descr_; } +const char* QualityOfService_template::fld_name(int p_index) const { return QualityOfService::fld_names[p_index]; } +void RadioPriority::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_levelValue; } + +RadioPriority::RadioPriority() : Record_Type() { init_vec(); } + +RadioPriority::RadioPriority(const RadioPriority& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_levelValue.is_bound() ) + field_levelValue = other_value.field_levelValue; +init_vec(); +} + +RadioPriority::RadioPriority(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_levelValue) : field_iei(par_iei), + field_spare(par_spare), + field_levelValue(par_levelValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RadioPriority::get_descriptor() const { return &RadioPriority_descr_; } +const TTCN_Typedescriptor_t* RadioPriority::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* RadioPriority::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RadioPriority::fld_names[] = { "iei", "spare", "levelValue" }; +const char* RadioPriority::fld_name(int p_index) const { return fld_names[p_index]; } + +const int RadioPriority::optional_indexes[] = { 0, -1 }; +const int* RadioPriority::get_optional_indexes() const { return optional_indexes; } + +const int RadioPriority::optional_indexes_asn[] = { 0, -1 }; +const int* RadioPriority::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void RadioPriority_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +RadioPriority_template::RadioPriority_template(RadioPriority_template* p_precondition, RadioPriority_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RadioPriority_template::RadioPriority_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RadioPriority_template::~RadioPriority_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RadioPriority_template::match_dynamic(const Base_Type* match_value) const +{ +const RadioPriority* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RadioPriority_template& RadioPriority_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RadioPriority_template& RadioPriority_template::operator=(const RadioPriority& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RadioPriority_template& RadioPriority_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RadioPriority_template& RadioPriority_template::operator=(const RadioPriority_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RadioPriority RadioPriority_template::valueof() const +{ +RadioPriority ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& RadioPriority_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& RadioPriority_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& RadioPriority_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& RadioPriority_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& RadioPriority_template::levelValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& RadioPriority_template::levelValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* RadioPriority_template::get_descriptor() const { return &RadioPriority_descr_; } +const char* RadioPriority_template::fld_name(int p_index) const { return RadioPriority::fld_names[p_index]; } +void Codec::init_vec() { fld_vec[0]=&field_sysId; fld_vec[1]=&field_len; fld_vec[2]=&field_bitMap1to8; fld_vec[3]=&field_bitMap9to16; } + +Codec::Codec() : Record_Type() { init_vec(); } + +Codec::Codec(const Codec& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_sysId.is_bound() ) + field_sysId = other_value.field_sysId; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_bitMap1to8.is_bound() ) + field_bitMap1to8 = other_value.field_bitMap1to8; +if (other_value.field_bitMap9to16.is_bound() ) + field_bitMap9to16 = other_value.field_bitMap9to16; +init_vec(); +} + +Codec::Codec(const OCTETSTRING& par_sysId, + const OCTETSTRING& par_len, + const BITSTRING& par_bitMap1to8, + const OPTIONAL& par_bitMap9to16) : field_sysId(par_sysId), + field_len(par_len), + field_bitMap1to8(par_bitMap1to8), + field_bitMap9to16(par_bitMap9to16) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Codec::get_descriptor() const { return &Codec_descr_; } +const TTCN_Typedescriptor_t* Codec::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* Codec::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Codec::fld_names[] = { "sysId", "len", "bitMap1to8", "bitMap9to16" }; +const char* Codec::fld_name(int p_index) const { return fld_names[p_index]; } + +const int Codec::optional_indexes[] = { 3, -1 }; +const int* Codec::get_optional_indexes() const { return optional_indexes; } + +const int Codec::optional_indexes_asn[] = { 3, -1 }; +const int* Codec::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void Codec_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +Codec_template::Codec_template(Codec_template* p_precondition, Codec_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Codec_template::Codec_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Codec_template::~Codec_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Codec_template::match_dynamic(const Base_Type* match_value) const +{ +const Codec* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Codec_template& Codec_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Codec_template& Codec_template::operator=(const Codec& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Codec_template& Codec_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Codec_template& Codec_template::operator=(const Codec_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Codec Codec_template::valueof() const +{ +Codec ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& Codec_template::sysId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& Codec_template::sysId() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& Codec_template::len() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& Codec_template::len() const { return *(static_cast(get_at(1))); } +BITSTRING_template& Codec_template::bitMap1to8() { return *(static_cast(get_at(2))); } +const BITSTRING_template& Codec_template::bitMap1to8() const { return *(static_cast(get_at(2))); } +BITSTRING_template& Codec_template::bitMap9to16() { return *(static_cast(get_at(3))); } +const BITSTRING_template& Codec_template::bitMap9to16() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* Codec_template::get_descriptor() const { return &Codec_descr_; } +const char* Codec_template::fld_name(int p_index) const { return Codec::fld_names[p_index]; } + +const Codec CodecList_codec::UNBOUND_ELEM; +Codec& CodecList_codec::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Codec& CodecList_codec::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Codec& CodecList_codec::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Codec& CodecList_codec::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +CodecList_codec CodecList_codec::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +CodecList_codec CodecList_codec::operator<<=(const INTEGER& rotate_count) const +{ +CodecList_codec rec_of; +return *((CodecList_codec*)rotl(rotate_count, &rec_of)); +} + +CodecList_codec CodecList_codec::operator>>=(const INTEGER& rotate_count) const +{ +CodecList_codec rec_of; +return *((CodecList_codec*)rotr(rotate_count, &rec_of)); +} + +CodecList_codec CodecList_codec::operator>>=(int rotate_count) const +{ +CodecList_codec rec_of; +return *((CodecList_codec*)rotr(rotate_count, &rec_of)); +} + +CodecList_codec CodecList_codec::operator+(const CodecList_codec& other_value) const +{ +CodecList_codec rec_of; +return *((CodecList_codec*)concat(&other_value, &rec_of)); +} + +CodecList_codec CodecList_codec::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const CodecList_codec&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.CodecList.codec concatenation."); +} + +CodecList_codec CodecList_codec::operator+(null_type) const +{ +return *this; +} + +CodecList_codec CodecList_codec::substr(int index, int returncount) const +{ +CodecList_codec rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +CodecList_codec CodecList_codec::replace(int index, int len, const CodecList_codec& repl) const +{ +CodecList_codec rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +CodecList_codec CodecList_codec::replace(int index, int len, const CodecList_codec_template& repl) const +{ +CodecList_codec rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* CodecList_codec::create_elem() const { return new Codec; } +const Base_Type* CodecList_codec::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* CodecList_codec::get_descriptor() const { return &CodecList_codec_descr_; } +CodecList_codec_template::CodecList_codec_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +CodecList_codec_template::CodecList_codec_template(CodecList_codec_template* p_precondition, CodecList_codec_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CodecList_codec_template::CodecList_codec_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CodecList_codec_template::~CodecList_codec_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CodecList_codec_template::match_dynamic(const Base_Type* match_value) const +{ +const CodecList_codec* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +CodecList_codec_template& CodecList_codec_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CodecList_codec_template& CodecList_codec_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +CodecList_codec_template& CodecList_codec_template::operator=(const CodecList_codec& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CodecList_codec_template& CodecList_codec_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CodecList_codec_template& CodecList_codec_template::operator=(const CodecList_codec_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CodecList_codec_template CodecList_codec_template::operator+(const CodecList_codec_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return CodecList_codec_template(ANY_VALUE); +} +CodecList_codec_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +CodecList_codec_template CodecList_codec_template::operator+(const CodecList_codec& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +CodecList_codec_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +CodecList_codec_template CodecList_codec_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return CodecList_codec_template(ANY_VALUE); +} +CodecList_codec_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +CodecList_codec_template CodecList_codec_template::operator+(null_type) const +{ +return *this; +} + +Codec_template& CodecList_codec_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Codec_template& CodecList_codec_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Codec_template& CodecList_codec_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Codec_template& CodecList_codec_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +CodecList_codec CodecList_codec_template::valueof() const +{ +CodecList_codec ret_val; +valueofv(&ret_val); +return ret_val; +} + +CodecList_codec CodecList_codec_template::substr(int index, int returncount) const +{ +CodecList_codec rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +CodecList_codec CodecList_codec_template::replace(int index, int len, const CodecList_codec_template& repl) const +{ +CodecList_codec rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +CodecList_codec CodecList_codec_template::replace(int index, int len, const CodecList_codec& repl) const +{ +CodecList_codec rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* CodecList_codec_template::create_elem() const { return new Codec_template; } +const TTCN_Typedescriptor_t* CodecList_codec_template::get_descriptor() const { return &CodecList_codec_descr_; } +void CodecList::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_codec; } + +CodecList::CodecList() : Record_Type() { init_vec(); } + +CodecList::CodecList(const CodecList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_codec.is_bound() ) + field_codec = other_value.field_codec; +init_vec(); +} + +CodecList::CodecList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const CodecList_codec& par_codec) : field_iei(par_iei), + field_iel(par_iel), + field_codec(par_codec) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CodecList::get_descriptor() const { return &CodecList_descr_; } +const TTCN_Typedescriptor_t* CodecList::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CodecList_codec_descr_ }; +const TTCN_Typedescriptor_t* CodecList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CodecList::fld_names[] = { "iei", "iel", "codec" }; +const char* CodecList::fld_name(int p_index) const { return fld_names[p_index]; } + +void CodecList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new CodecList_codec_template(ANY_VALUE) : new CodecList_codec_template; +} +} + +CodecList_template::CodecList_template(CodecList_template* p_precondition, CodecList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CodecList_template::CodecList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CodecList_template::~CodecList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CodecList_template::match_dynamic(const Base_Type* match_value) const +{ +const CodecList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CodecList_template& CodecList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CodecList_template& CodecList_template::operator=(const CodecList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CodecList_template& CodecList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CodecList_template& CodecList_template::operator=(const CodecList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CodecList CodecList_template::valueof() const +{ +CodecList ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& CodecList_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& CodecList_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& CodecList_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& CodecList_template::iel() const { return *(static_cast(get_at(1))); } +CodecList_codec_template& CodecList_template::codec() { return *(static_cast(get_at(2))); } +const CodecList_codec_template& CodecList_template::codec() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* CodecList_template::get_descriptor() const { return &CodecList_descr_; } +const char* CodecList_template::fld_name(int p_index) const { return CodecList::fld_names[p_index]; } +void Request__Type::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_typeValue; } + +Request__Type::Request__Type() : Record_Type() { init_vec(); } + +Request__Type::Request__Type(const Request__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_typeValue.is_bound() ) + field_typeValue = other_value.field_typeValue; +init_vec(); +} + +Request__Type::Request__Type(const BITSTRING& par_spare, + const BITSTRING& par_typeValue) : field_spare(par_spare), + field_typeValue(par_typeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Request__Type::get_descriptor() const { return &Request__Type_descr_; } +const TTCN_Typedescriptor_t* Request__Type::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* Request__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Request__Type::fld_names[] = { "spare", "typeValue" }; +const char* Request__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void Request__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +Request__Type_template::Request__Type_template(Request__Type_template* p_precondition, Request__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Request__Type_template::Request__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Request__Type_template::~Request__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Request__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const Request__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Request__Type_template& Request__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Request__Type_template& Request__Type_template::operator=(const Request__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Request__Type_template& Request__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Request__Type_template& Request__Type_template::operator=(const Request__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Request__Type Request__Type_template::valueof() const +{ +Request__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& Request__Type_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& Request__Type_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& Request__Type_template::typeValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& Request__Type_template::typeValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* Request__Type_template::get_descriptor() const { return &Request__Type_descr_; } +const char* Request__Type_template::fld_name(int p_index) const { return Request__Type::fld_names[p_index]; } +void TMSI__Status::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare3; fld_vec[2]=&field_flag; } + +TMSI__Status::TMSI__Status() : Record_Type() { init_vec(); } + +TMSI__Status::TMSI__Status(const TMSI__Status& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare3.is_bound() ) + field_spare3 = other_value.field_spare3; +if (other_value.field_flag.is_bound() ) + field_flag = other_value.field_flag; +init_vec(); +} + +TMSI__Status::TMSI__Status(const OPTIONAL& par_iei, + const BITSTRING& par_spare3, + const BITSTRING& par_flag) : field_iei(par_iei), + field_spare3(par_spare3), + field_flag(par_flag) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TMSI__Status::get_descriptor() const { return &TMSI__Status_descr_; } +const TTCN_Typedescriptor_t* TMSI__Status::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &TmsiStatusValue_descr_ }; +const TTCN_Typedescriptor_t* TMSI__Status::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TMSI__Status::fld_names[] = { "iei", "spare3", "flag" }; +const char* TMSI__Status::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TMSI__Status::optional_indexes[] = { 0, -1 }; +const int* TMSI__Status::get_optional_indexes() const { return optional_indexes; } + +const int TMSI__Status::optional_indexes_asn[] = { 0, -1 }; +const int* TMSI__Status::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TMSI__Status_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +TMSI__Status_template::TMSI__Status_template(TMSI__Status_template* p_precondition, TMSI__Status_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TMSI__Status_template::TMSI__Status_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TMSI__Status_template::~TMSI__Status_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TMSI__Status_template::match_dynamic(const Base_Type* match_value) const +{ +const TMSI__Status* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TMSI__Status_template& TMSI__Status_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TMSI__Status_template& TMSI__Status_template::operator=(const TMSI__Status& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TMSI__Status_template& TMSI__Status_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TMSI__Status_template& TMSI__Status_template::operator=(const TMSI__Status_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TMSI__Status TMSI__Status_template::valueof() const +{ +TMSI__Status ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& TMSI__Status_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& TMSI__Status_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& TMSI__Status_template::spare3() { return *(static_cast(get_at(1))); } +const BITSTRING_template& TMSI__Status_template::spare3() const { return *(static_cast(get_at(1))); } +BITSTRING_template& TMSI__Status_template::flag() { return *(static_cast(get_at(2))); } +const BITSTRING_template& TMSI__Status_template::flag() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* TMSI__Status_template::get_descriptor() const { return &TMSI__Status_descr_; } +const char* TMSI__Status_template::fld_name(int p_index) const { return TMSI__Status::fld_names[p_index]; } +void TrafficFlowTemplate::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_tftOperationCode; fld_vec[3]=&field_eBit; fld_vec[4]=&field_noOfPktFilter; fld_vec[5]=&field_packetFilterList; fld_vec[6]=&field_parameterList; } + +TrafficFlowTemplate::TrafficFlowTemplate() : Record_Type() { init_vec(); } + +TrafficFlowTemplate::TrafficFlowTemplate(const TrafficFlowTemplate& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_tftOperationCode.is_bound() ) + field_tftOperationCode = other_value.field_tftOperationCode; +if (other_value.field_eBit.is_bound() ) + field_eBit = other_value.field_eBit; +if (other_value.field_noOfPktFilter.is_bound() ) + field_noOfPktFilter = other_value.field_noOfPktFilter; +if (other_value.field_packetFilterList.is_bound() ) + field_packetFilterList = other_value.field_packetFilterList; +if (other_value.field_parameterList.is_bound() ) + field_parameterList = other_value.field_parameterList; +init_vec(); +} + +TrafficFlowTemplate::TrafficFlowTemplate(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_tftOperationCode, + const BITSTRING& par_eBit, + const BITSTRING& par_noOfPktFilter, + const OPTIONAL& par_packetFilterList, + const OPTIONAL& par_parameterList) : field_iei(par_iei), + field_iel(par_iel), + field_tftOperationCode(par_tftOperationCode), + field_eBit(par_eBit), + field_noOfPktFilter(par_noOfPktFilter), + field_packetFilterList(par_packetFilterList), + field_parameterList(par_parameterList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TrafficFlowTemplate::get_descriptor() const { return &TrafficFlowTemplate_descr_; } +const TTCN_Typedescriptor_t* TrafficFlowTemplate::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &TrafficFlowTemplate_packetFilterList_descr_, &TrafficFlowTemplate_parameterList_descr_ }; +const TTCN_Typedescriptor_t* TrafficFlowTemplate::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TrafficFlowTemplate::fld_names[] = { "iei", "iel", "tftOperationCode", "eBit", "noOfPktFilter", "packetFilterList", "parameterList" }; +const char* TrafficFlowTemplate::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TrafficFlowTemplate::optional_indexes[] = { 0, 5, 6, -1 }; +const int* TrafficFlowTemplate::get_optional_indexes() const { return optional_indexes; } + +const int TrafficFlowTemplate::optional_indexes_asn[] = { 0, 5, 6, -1 }; +const int* TrafficFlowTemplate::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TrafficFlowTemplate_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new TrafficFlowTemplate_packetFilterList_template(ANY_OR_OMIT) : new TrafficFlowTemplate_packetFilterList_template; +single_value.value_elements[6] = was_any ? new TrafficFlowTemplate_parameterList_template(ANY_OR_OMIT) : new TrafficFlowTemplate_parameterList_template; +} +} + +TrafficFlowTemplate_template::TrafficFlowTemplate_template(TrafficFlowTemplate_template* p_precondition, TrafficFlowTemplate_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TrafficFlowTemplate_template::TrafficFlowTemplate_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TrafficFlowTemplate_template::~TrafficFlowTemplate_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TrafficFlowTemplate_template::match_dynamic(const Base_Type* match_value) const +{ +const TrafficFlowTemplate* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TrafficFlowTemplate_template& TrafficFlowTemplate_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TrafficFlowTemplate_template& TrafficFlowTemplate_template::operator=(const TrafficFlowTemplate& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TrafficFlowTemplate_template& TrafficFlowTemplate_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TrafficFlowTemplate_template& TrafficFlowTemplate_template::operator=(const TrafficFlowTemplate_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TrafficFlowTemplate TrafficFlowTemplate_template::valueof() const +{ +TrafficFlowTemplate ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& TrafficFlowTemplate_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& TrafficFlowTemplate_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& TrafficFlowTemplate_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& TrafficFlowTemplate_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& TrafficFlowTemplate_template::tftOperationCode() { return *(static_cast(get_at(2))); } +const BITSTRING_template& TrafficFlowTemplate_template::tftOperationCode() const { return *(static_cast(get_at(2))); } +BITSTRING_template& TrafficFlowTemplate_template::eBit() { return *(static_cast(get_at(3))); } +const BITSTRING_template& TrafficFlowTemplate_template::eBit() const { return *(static_cast(get_at(3))); } +BITSTRING_template& TrafficFlowTemplate_template::noOfPktFilter() { return *(static_cast(get_at(4))); } +const BITSTRING_template& TrafficFlowTemplate_template::noOfPktFilter() const { return *(static_cast(get_at(4))); } +TrafficFlowTemplate_packetFilterList_template& TrafficFlowTemplate_template::packetFilterList() { return *(static_cast(get_at(5))); } +const TrafficFlowTemplate_packetFilterList_template& TrafficFlowTemplate_template::packetFilterList() const { return *(static_cast(get_at(5))); } +TrafficFlowTemplate_parameterList_template& TrafficFlowTemplate_template::parameterList() { return *(static_cast(get_at(6))); } +const TrafficFlowTemplate_parameterList_template& TrafficFlowTemplate_template::parameterList() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* TrafficFlowTemplate_template::get_descriptor() const { return &TrafficFlowTemplate_descr_; } +const char* TrafficFlowTemplate_template::fld_name(int p_index) const { return TrafficFlowTemplate::fld_names[p_index]; } + +const PacketFilter TrafficFlowTemplate_packetFilterList::UNBOUND_ELEM; +PacketFilter& TrafficFlowTemplate_packetFilterList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PacketFilter& TrafficFlowTemplate_packetFilterList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PacketFilter& TrafficFlowTemplate_packetFilterList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PacketFilter& TrafficFlowTemplate_packetFilterList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::operator<<=(const INTEGER& rotate_count) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +return *((TrafficFlowTemplate_packetFilterList*)rotl(rotate_count, &rec_of)); +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::operator>>=(const INTEGER& rotate_count) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +return *((TrafficFlowTemplate_packetFilterList*)rotr(rotate_count, &rec_of)); +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::operator>>=(int rotate_count) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +return *((TrafficFlowTemplate_packetFilterList*)rotr(rotate_count, &rec_of)); +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::operator+(const TrafficFlowTemplate_packetFilterList& other_value) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +return *((TrafficFlowTemplate_packetFilterList*)concat(&other_value, &rec_of)); +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const TrafficFlowTemplate_packetFilterList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.TrafficFlowTemplate.packetFilterList concatenation."); +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::operator+(null_type) const +{ +return *this; +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::substr(int index, int returncount) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::replace(int index, int len, const TrafficFlowTemplate_packetFilterList& repl) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList::replace(int index, int len, const TrafficFlowTemplate_packetFilterList_template& repl) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* TrafficFlowTemplate_packetFilterList::create_elem() const { return new PacketFilter; } +const Base_Type* TrafficFlowTemplate_packetFilterList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* TrafficFlowTemplate_packetFilterList::get_descriptor() const { return &TrafficFlowTemplate_packetFilterList_descr_; } +TrafficFlowTemplate_packetFilterList_template::TrafficFlowTemplate_packetFilterList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +TrafficFlowTemplate_packetFilterList_template::TrafficFlowTemplate_packetFilterList_template(TrafficFlowTemplate_packetFilterList_template* p_precondition, TrafficFlowTemplate_packetFilterList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TrafficFlowTemplate_packetFilterList_template::TrafficFlowTemplate_packetFilterList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TrafficFlowTemplate_packetFilterList_template::~TrafficFlowTemplate_packetFilterList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TrafficFlowTemplate_packetFilterList_template::match_dynamic(const Base_Type* match_value) const +{ +const TrafficFlowTemplate_packetFilterList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +TrafficFlowTemplate_packetFilterList_template& TrafficFlowTemplate_packetFilterList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TrafficFlowTemplate_packetFilterList_template& TrafficFlowTemplate_packetFilterList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +TrafficFlowTemplate_packetFilterList_template& TrafficFlowTemplate_packetFilterList_template::operator=(const TrafficFlowTemplate_packetFilterList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TrafficFlowTemplate_packetFilterList_template& TrafficFlowTemplate_packetFilterList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TrafficFlowTemplate_packetFilterList_template& TrafficFlowTemplate_packetFilterList_template::operator=(const TrafficFlowTemplate_packetFilterList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TrafficFlowTemplate_packetFilterList_template TrafficFlowTemplate_packetFilterList_template::operator+(const TrafficFlowTemplate_packetFilterList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return TrafficFlowTemplate_packetFilterList_template(ANY_VALUE); +} +TrafficFlowTemplate_packetFilterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +TrafficFlowTemplate_packetFilterList_template TrafficFlowTemplate_packetFilterList_template::operator+(const TrafficFlowTemplate_packetFilterList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +TrafficFlowTemplate_packetFilterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +TrafficFlowTemplate_packetFilterList_template TrafficFlowTemplate_packetFilterList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return TrafficFlowTemplate_packetFilterList_template(ANY_VALUE); +} +TrafficFlowTemplate_packetFilterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +TrafficFlowTemplate_packetFilterList_template TrafficFlowTemplate_packetFilterList_template::operator+(null_type) const +{ +return *this; +} + +PacketFilter_template& TrafficFlowTemplate_packetFilterList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PacketFilter_template& TrafficFlowTemplate_packetFilterList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PacketFilter_template& TrafficFlowTemplate_packetFilterList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PacketFilter_template& TrafficFlowTemplate_packetFilterList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList_template::valueof() const +{ +TrafficFlowTemplate_packetFilterList ret_val; +valueofv(&ret_val); +return ret_val; +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList_template::substr(int index, int returncount) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList_template::replace(int index, int len, const TrafficFlowTemplate_packetFilterList_template& repl) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +TrafficFlowTemplate_packetFilterList TrafficFlowTemplate_packetFilterList_template::replace(int index, int len, const TrafficFlowTemplate_packetFilterList& repl) const +{ +TrafficFlowTemplate_packetFilterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* TrafficFlowTemplate_packetFilterList_template::create_elem() const { return new PacketFilter_template; } +const TTCN_Typedescriptor_t* TrafficFlowTemplate_packetFilterList_template::get_descriptor() const { return &TrafficFlowTemplate_packetFilterList_descr_; } +void PacketFilter::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_direction; fld_vec[2]=&field_iei; fld_vec[3]=&field_precedence; fld_vec[4]=&field_iel; fld_vec[5]=&field_contents; } + +PacketFilter::PacketFilter() : Record_Type() { init_vec(); } + +PacketFilter::PacketFilter(const PacketFilter& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_direction.is_bound() ) + field_direction = other_value.field_direction; +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_precedence.is_bound() ) + field_precedence = other_value.field_precedence; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_contents.is_bound() ) + field_contents = other_value.field_contents; +init_vec(); +} + +PacketFilter::PacketFilter(const BITSTRING& par_spare, + const BITSTRING& par_direction, + const HEXSTRING& par_iei, + const OPTIONAL& par_precedence, + const OPTIONAL& par_iel, + const OPTIONAL& par_contents) : field_spare(par_spare), + field_direction(par_direction), + field_iei(par_iei), + field_precedence(par_precedence), + field_iel(par_iel), + field_contents(par_contents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PacketFilter::get_descriptor() const { return &PacketFilter_descr_; } +const TTCN_Typedescriptor_t* PacketFilter::fld_descriptors[] = { &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &IEI4__Type_descr_, &CommonDefs::B8__Type_descr_, &Type4Length__Type_descr_, &PacketFilterContents_descr_ }; +const TTCN_Typedescriptor_t* PacketFilter::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PacketFilter::fld_names[] = { "spare", "direction", "iei", "precedence", "iel", "contents" }; +const char* PacketFilter::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PacketFilter::optional_indexes[] = { 3, 4, 5, -1 }; +const int* PacketFilter::get_optional_indexes() const { return optional_indexes; } + +const int PacketFilter::optional_indexes_asn[] = { 3, 4, 5, -1 }; +const int* PacketFilter::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PacketFilter_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new PacketFilterContents_template(ANY_OR_OMIT) : new PacketFilterContents_template; +} +} + +PacketFilter_template::PacketFilter_template(PacketFilter_template* p_precondition, PacketFilter_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PacketFilter_template::PacketFilter_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PacketFilter_template::~PacketFilter_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PacketFilter_template::match_dynamic(const Base_Type* match_value) const +{ +const PacketFilter* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PacketFilter_template& PacketFilter_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PacketFilter_template& PacketFilter_template::operator=(const PacketFilter& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PacketFilter_template& PacketFilter_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PacketFilter_template& PacketFilter_template::operator=(const PacketFilter_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PacketFilter PacketFilter_template::valueof() const +{ +PacketFilter ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& PacketFilter_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& PacketFilter_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PacketFilter_template::direction() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PacketFilter_template::direction() const { return *(static_cast(get_at(1))); } +HEXSTRING_template& PacketFilter_template::iei() { return *(static_cast(get_at(2))); } +const HEXSTRING_template& PacketFilter_template::iei() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PacketFilter_template::precedence() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PacketFilter_template::precedence() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& PacketFilter_template::iel() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& PacketFilter_template::iel() const { return *(static_cast(get_at(4))); } +PacketFilterContents_template& PacketFilter_template::contents() { return *(static_cast(get_at(5))); } +const PacketFilterContents_template& PacketFilter_template::contents() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* PacketFilter_template::get_descriptor() const { return &PacketFilter_descr_; } +const char* PacketFilter_template::fld_name(int p_index) const { return PacketFilter::fld_names[p_index]; } + +const PacketFilterComponent PacketFilterContents::UNBOUND_ELEM; +PacketFilterComponent& PacketFilterContents::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PacketFilterComponent& PacketFilterContents::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PacketFilterComponent& PacketFilterContents::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PacketFilterComponent& PacketFilterContents::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PacketFilterContents PacketFilterContents::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +PacketFilterContents PacketFilterContents::operator<<=(const INTEGER& rotate_count) const +{ +PacketFilterContents rec_of; +return *((PacketFilterContents*)rotl(rotate_count, &rec_of)); +} + +PacketFilterContents PacketFilterContents::operator>>=(const INTEGER& rotate_count) const +{ +PacketFilterContents rec_of; +return *((PacketFilterContents*)rotr(rotate_count, &rec_of)); +} + +PacketFilterContents PacketFilterContents::operator>>=(int rotate_count) const +{ +PacketFilterContents rec_of; +return *((PacketFilterContents*)rotr(rotate_count, &rec_of)); +} + +PacketFilterContents PacketFilterContents::operator+(const PacketFilterContents& other_value) const +{ +PacketFilterContents rec_of; +return *((PacketFilterContents*)concat(&other_value, &rec_of)); +} + +PacketFilterContents PacketFilterContents::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const PacketFilterContents&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.PacketFilterContents concatenation."); +} + +PacketFilterContents PacketFilterContents::operator+(null_type) const +{ +return *this; +} + +PacketFilterContents PacketFilterContents::substr(int index, int returncount) const +{ +PacketFilterContents rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PacketFilterContents PacketFilterContents::replace(int index, int len, const PacketFilterContents& repl) const +{ +PacketFilterContents rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PacketFilterContents PacketFilterContents::replace(int index, int len, const PacketFilterContents_template& repl) const +{ +PacketFilterContents rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* PacketFilterContents::create_elem() const { return new PacketFilterComponent; } +const Base_Type* PacketFilterContents::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* PacketFilterContents::get_descriptor() const { return &PacketFilterContents_descr_; } +PacketFilterContents_template::PacketFilterContents_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +PacketFilterContents_template::PacketFilterContents_template(PacketFilterContents_template* p_precondition, PacketFilterContents_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PacketFilterContents_template::PacketFilterContents_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PacketFilterContents_template::~PacketFilterContents_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PacketFilterContents_template::match_dynamic(const Base_Type* match_value) const +{ +const PacketFilterContents* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +PacketFilterContents_template& PacketFilterContents_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PacketFilterContents_template& PacketFilterContents_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +PacketFilterContents_template& PacketFilterContents_template::operator=(const PacketFilterContents& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PacketFilterContents_template& PacketFilterContents_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PacketFilterContents_template& PacketFilterContents_template::operator=(const PacketFilterContents_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PacketFilterContents_template PacketFilterContents_template::operator+(const PacketFilterContents_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return PacketFilterContents_template(ANY_VALUE); +} +PacketFilterContents_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PacketFilterContents_template PacketFilterContents_template::operator+(const PacketFilterContents& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +PacketFilterContents_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PacketFilterContents_template PacketFilterContents_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return PacketFilterContents_template(ANY_VALUE); +} +PacketFilterContents_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +PacketFilterContents_template PacketFilterContents_template::operator+(null_type) const +{ +return *this; +} + +PacketFilterComponent_template& PacketFilterContents_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PacketFilterComponent_template& PacketFilterContents_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PacketFilterComponent_template& PacketFilterContents_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PacketFilterComponent_template& PacketFilterContents_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PacketFilterContents PacketFilterContents_template::valueof() const +{ +PacketFilterContents ret_val; +valueofv(&ret_val); +return ret_val; +} + +PacketFilterContents PacketFilterContents_template::substr(int index, int returncount) const +{ +PacketFilterContents rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PacketFilterContents PacketFilterContents_template::replace(int index, int len, const PacketFilterContents_template& repl) const +{ +PacketFilterContents rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PacketFilterContents PacketFilterContents_template::replace(int index, int len, const PacketFilterContents& repl) const +{ +PacketFilterContents rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* PacketFilterContents_template::create_elem() const { return new PacketFilterComponent_template; } +const TTCN_Typedescriptor_t* PacketFilterContents_template::get_descriptor() const { return &PacketFilterContents_descr_; } +void PacketFilterComponentValue::copy_value(const PacketFilterComponentValue& other_value) +{ +switch (other_value.union_selection) { +case ALT_ipv4RemoteAddress: +field_ipv4RemoteAddress = new OCTETSTRING(*other_value.field_ipv4RemoteAddress); +break; +case ALT_ipv6RemoteAddress: +field_ipv6RemoteAddress = new OCTETSTRING(*other_value.field_ipv6RemoteAddress); +break; +case ALT_protocolIdNextHeader: +field_protocolIdNextHeader = new OCTETSTRING(*other_value.field_protocolIdNextHeader); +break; +case ALT_singleLocalPort: +field_singleLocalPort = new OCTETSTRING(*other_value.field_singleLocalPort); +break; +case ALT_localPortRange: +field_localPortRange = new OCTETSTRING(*other_value.field_localPortRange); +break; +case ALT_singleRemotePort: +field_singleRemotePort = new OCTETSTRING(*other_value.field_singleRemotePort); +break; +case ALT_remotePortRange: +field_remotePortRange = new OCTETSTRING(*other_value.field_remotePortRange); +break; +case ALT_securityParameterIndex: +field_securityParameterIndex = new OCTETSTRING(*other_value.field_securityParameterIndex); +break; +case ALT_typeOfServiceTrafficClass: +field_typeOfServiceTrafficClass = new OCTETSTRING(*other_value.field_typeOfServiceTrafficClass); +break; +case ALT_flowLabel: +field_flowLabel = new OCTETSTRING(*other_value.field_flowLabel); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +PacketFilterComponentValue::PacketFilterComponentValue(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +PacketFilterComponentValue::PacketFilterComponentValue(const PacketFilterComponentValue& other_value) +: Base_Type(){ +copy_value(other_value); +} + +PacketFilterComponentValue::~PacketFilterComponentValue() +{ +clean_up(); +} + +PacketFilterComponentValue& PacketFilterComponentValue::operator=(const PacketFilterComponentValue& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean PacketFilterComponentValue::operator==(const PacketFilterComponentValue& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_ipv4RemoteAddress: +return *field_ipv4RemoteAddress == *other_value.field_ipv4RemoteAddress; +case ALT_ipv6RemoteAddress: +return *field_ipv6RemoteAddress == *other_value.field_ipv6RemoteAddress; +case ALT_protocolIdNextHeader: +return *field_protocolIdNextHeader == *other_value.field_protocolIdNextHeader; +case ALT_singleLocalPort: +return *field_singleLocalPort == *other_value.field_singleLocalPort; +case ALT_localPortRange: +return *field_localPortRange == *other_value.field_localPortRange; +case ALT_singleRemotePort: +return *field_singleRemotePort == *other_value.field_singleRemotePort; +case ALT_remotePortRange: +return *field_remotePortRange == *other_value.field_remotePortRange; +case ALT_securityParameterIndex: +return *field_securityParameterIndex == *other_value.field_securityParameterIndex; +case ALT_typeOfServiceTrafficClass: +return *field_typeOfServiceTrafficClass == *other_value.field_typeOfServiceTrafficClass; +case ALT_flowLabel: +return *field_flowLabel == *other_value.field_flowLabel; +default: +return FALSE; +} +} + +OCTETSTRING& PacketFilterComponentValue::ipv4RemoteAddress() +{ +if (union_selection != ALT_ipv4RemoteAddress) { +clean_up(); +field_ipv4RemoteAddress = new OCTETSTRING; +union_selection = ALT_ipv4RemoteAddress; +} +return *field_ipv4RemoteAddress; +} + +const OCTETSTRING& PacketFilterComponentValue::ipv4RemoteAddress() const +{ +if (union_selection != ALT_ipv4RemoteAddress) TTCN_error("Using non-selected field ipv4RemoteAddress in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_ipv4RemoteAddress; +} + +OCTETSTRING& PacketFilterComponentValue::ipv6RemoteAddress() +{ +if (union_selection != ALT_ipv6RemoteAddress) { +clean_up(); +field_ipv6RemoteAddress = new OCTETSTRING; +union_selection = ALT_ipv6RemoteAddress; +} +return *field_ipv6RemoteAddress; +} + +const OCTETSTRING& PacketFilterComponentValue::ipv6RemoteAddress() const +{ +if (union_selection != ALT_ipv6RemoteAddress) TTCN_error("Using non-selected field ipv6RemoteAddress in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_ipv6RemoteAddress; +} + +OCTETSTRING& PacketFilterComponentValue::protocolIdNextHeader() +{ +if (union_selection != ALT_protocolIdNextHeader) { +clean_up(); +field_protocolIdNextHeader = new OCTETSTRING; +union_selection = ALT_protocolIdNextHeader; +} +return *field_protocolIdNextHeader; +} + +const OCTETSTRING& PacketFilterComponentValue::protocolIdNextHeader() const +{ +if (union_selection != ALT_protocolIdNextHeader) TTCN_error("Using non-selected field protocolIdNextHeader in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_protocolIdNextHeader; +} + +OCTETSTRING& PacketFilterComponentValue::singleLocalPort() +{ +if (union_selection != ALT_singleLocalPort) { +clean_up(); +field_singleLocalPort = new OCTETSTRING; +union_selection = ALT_singleLocalPort; +} +return *field_singleLocalPort; +} + +const OCTETSTRING& PacketFilterComponentValue::singleLocalPort() const +{ +if (union_selection != ALT_singleLocalPort) TTCN_error("Using non-selected field singleLocalPort in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_singleLocalPort; +} + +OCTETSTRING& PacketFilterComponentValue::localPortRange() +{ +if (union_selection != ALT_localPortRange) { +clean_up(); +field_localPortRange = new OCTETSTRING; +union_selection = ALT_localPortRange; +} +return *field_localPortRange; +} + +const OCTETSTRING& PacketFilterComponentValue::localPortRange() const +{ +if (union_selection != ALT_localPortRange) TTCN_error("Using non-selected field localPortRange in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_localPortRange; +} + +OCTETSTRING& PacketFilterComponentValue::singleRemotePort() +{ +if (union_selection != ALT_singleRemotePort) { +clean_up(); +field_singleRemotePort = new OCTETSTRING; +union_selection = ALT_singleRemotePort; +} +return *field_singleRemotePort; +} + +const OCTETSTRING& PacketFilterComponentValue::singleRemotePort() const +{ +if (union_selection != ALT_singleRemotePort) TTCN_error("Using non-selected field singleRemotePort in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_singleRemotePort; +} + +OCTETSTRING& PacketFilterComponentValue::remotePortRange() +{ +if (union_selection != ALT_remotePortRange) { +clean_up(); +field_remotePortRange = new OCTETSTRING; +union_selection = ALT_remotePortRange; +} +return *field_remotePortRange; +} + +const OCTETSTRING& PacketFilterComponentValue::remotePortRange() const +{ +if (union_selection != ALT_remotePortRange) TTCN_error("Using non-selected field remotePortRange in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_remotePortRange; +} + +OCTETSTRING& PacketFilterComponentValue::securityParameterIndex() +{ +if (union_selection != ALT_securityParameterIndex) { +clean_up(); +field_securityParameterIndex = new OCTETSTRING; +union_selection = ALT_securityParameterIndex; +} +return *field_securityParameterIndex; +} + +const OCTETSTRING& PacketFilterComponentValue::securityParameterIndex() const +{ +if (union_selection != ALT_securityParameterIndex) TTCN_error("Using non-selected field securityParameterIndex in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_securityParameterIndex; +} + +OCTETSTRING& PacketFilterComponentValue::typeOfServiceTrafficClass() +{ +if (union_selection != ALT_typeOfServiceTrafficClass) { +clean_up(); +field_typeOfServiceTrafficClass = new OCTETSTRING; +union_selection = ALT_typeOfServiceTrafficClass; +} +return *field_typeOfServiceTrafficClass; +} + +const OCTETSTRING& PacketFilterComponentValue::typeOfServiceTrafficClass() const +{ +if (union_selection != ALT_typeOfServiceTrafficClass) TTCN_error("Using non-selected field typeOfServiceTrafficClass in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_typeOfServiceTrafficClass; +} + +OCTETSTRING& PacketFilterComponentValue::flowLabel() +{ +if (union_selection != ALT_flowLabel) { +clean_up(); +field_flowLabel = new OCTETSTRING; +union_selection = ALT_flowLabel; +} +return *field_flowLabel; +} + +const OCTETSTRING& PacketFilterComponentValue::flowLabel() const +{ +if (union_selection != ALT_flowLabel) TTCN_error("Using non-selected field flowLabel in a value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *field_flowLabel; +} + +boolean PacketFilterComponentValue::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return union_selection == checked_selection; +} + +boolean PacketFilterComponentValue::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean PacketFilterComponentValue::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_ipv4RemoteAddress: return field_ipv4RemoteAddress->is_value(); +case ALT_ipv6RemoteAddress: return field_ipv6RemoteAddress->is_value(); +case ALT_protocolIdNextHeader: return field_protocolIdNextHeader->is_value(); +case ALT_singleLocalPort: return field_singleLocalPort->is_value(); +case ALT_localPortRange: return field_localPortRange->is_value(); +case ALT_singleRemotePort: return field_singleRemotePort->is_value(); +case ALT_remotePortRange: return field_remotePortRange->is_value(); +case ALT_securityParameterIndex: return field_securityParameterIndex->is_value(); +case ALT_typeOfServiceTrafficClass: return field_typeOfServiceTrafficClass->is_value(); +case ALT_flowLabel: return field_flowLabel->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void PacketFilterComponentValue::clean_up() +{ +switch (union_selection) { +case ALT_ipv4RemoteAddress: + delete field_ipv4RemoteAddress; + break; +case ALT_ipv6RemoteAddress: + delete field_ipv6RemoteAddress; + break; +case ALT_protocolIdNextHeader: + delete field_protocolIdNextHeader; + break; +case ALT_singleLocalPort: + delete field_singleLocalPort; + break; +case ALT_localPortRange: + delete field_localPortRange; + break; +case ALT_singleRemotePort: + delete field_singleRemotePort; + break; +case ALT_remotePortRange: + delete field_remotePortRange; + break; +case ALT_securityParameterIndex: + delete field_securityParameterIndex; + break; +case ALT_typeOfServiceTrafficClass: + delete field_typeOfServiceTrafficClass; + break; +case ALT_flowLabel: + delete field_flowLabel; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean PacketFilterComponentValue::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void PacketFilterComponentValue::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* PacketFilterComponentValue::clone() const { return new PacketFilterComponentValue(*this); } +const TTCN_Typedescriptor_t* PacketFilterComponentValue::get_descriptor() const { return &PacketFilterComponentValue_descr_; } +void PacketFilterComponentValue::log() const +{ +switch (union_selection) { +case ALT_ipv4RemoteAddress: +TTCN_Logger::log_event_str("{ ipv4RemoteAddress := "); +field_ipv4RemoteAddress->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_ipv6RemoteAddress: +TTCN_Logger::log_event_str("{ ipv6RemoteAddress := "); +field_ipv6RemoteAddress->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_protocolIdNextHeader: +TTCN_Logger::log_event_str("{ protocolIdNextHeader := "); +field_protocolIdNextHeader->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_singleLocalPort: +TTCN_Logger::log_event_str("{ singleLocalPort := "); +field_singleLocalPort->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_localPortRange: +TTCN_Logger::log_event_str("{ localPortRange := "); +field_localPortRange->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_singleRemotePort: +TTCN_Logger::log_event_str("{ singleRemotePort := "); +field_singleRemotePort->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_remotePortRange: +TTCN_Logger::log_event_str("{ remotePortRange := "); +field_remotePortRange->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_securityParameterIndex: +TTCN_Logger::log_event_str("{ securityParameterIndex := "); +field_securityParameterIndex->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_typeOfServiceTrafficClass: +TTCN_Logger::log_event_str("{ typeOfServiceTrafficClass := "); +field_typeOfServiceTrafficClass->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_flowLabel: +TTCN_Logger::log_event_str("{ flowLabel := "); +field_flowLabel->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void PacketFilterComponentValue::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NAS_CommonTypeDefs.PacketFilterComponentValue'"); + } + if (strcmp("ipv4RemoteAddress", param_field) == 0) { + ipv4RemoteAddress().set_param(param); + return; + } else if (strcmp("ipv6RemoteAddress", param_field) == 0) { + ipv6RemoteAddress().set_param(param); + return; + } else if (strcmp("protocolIdNextHeader", param_field) == 0) { + protocolIdNextHeader().set_param(param); + return; + } else if (strcmp("singleLocalPort", param_field) == 0) { + singleLocalPort().set_param(param); + return; + } else if (strcmp("localPortRange", param_field) == 0) { + localPortRange().set_param(param); + return; + } else if (strcmp("singleRemotePort", param_field) == 0) { + singleRemotePort().set_param(param); + return; + } else if (strcmp("remotePortRange", param_field) == 0) { + remotePortRange().set_param(param); + return; + } else if (strcmp("securityParameterIndex", param_field) == 0) { + securityParameterIndex().set_param(param); + return; + } else if (strcmp("typeOfServiceTrafficClass", param_field) == 0) { + typeOfServiceTrafficClass().set_param(param); + return; + } else if (strcmp("flowLabel", param_field) == 0) { + flowLabel().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NAS_CommonTypeDefs.PacketFilterComponentValue'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "ipv4RemoteAddress")) { + ipv4RemoteAddress().set_param(*mp_last); + if (!ipv4RemoteAddress().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "ipv6RemoteAddress")) { + ipv6RemoteAddress().set_param(*mp_last); + if (!ipv6RemoteAddress().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "protocolIdNextHeader")) { + protocolIdNextHeader().set_param(*mp_last); + if (!protocolIdNextHeader().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "singleLocalPort")) { + singleLocalPort().set_param(*mp_last); + if (!singleLocalPort().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "localPortRange")) { + localPortRange().set_param(*mp_last); + if (!localPortRange().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "singleRemotePort")) { + singleRemotePort().set_param(*mp_last); + if (!singleRemotePort().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "remotePortRange")) { + remotePortRange().set_param(*mp_last); + if (!remotePortRange().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "securityParameterIndex")) { + securityParameterIndex().set_param(*mp_last); + if (!securityParameterIndex().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "typeOfServiceTrafficClass")) { + typeOfServiceTrafficClass().set_param(*mp_last); + if (!typeOfServiceTrafficClass().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "flowLabel")) { + flowLabel().set_param(*mp_last); + if (!flowLabel().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NAS_CommonTypeDefs.PacketFilterComponentValue.", last_name); +} + +Module_Param* PacketFilterComponentValue::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NAS_CommonTypeDefs.PacketFilterComponentValue'"); + } + if (strcmp("ipv4RemoteAddress", param_field) == 0) { + return ipv4RemoteAddress().get_param(param_name); + } else if (strcmp("ipv6RemoteAddress", param_field) == 0) { + return ipv6RemoteAddress().get_param(param_name); + } else if (strcmp("protocolIdNextHeader", param_field) == 0) { + return protocolIdNextHeader().get_param(param_name); + } else if (strcmp("singleLocalPort", param_field) == 0) { + return singleLocalPort().get_param(param_name); + } else if (strcmp("localPortRange", param_field) == 0) { + return localPortRange().get_param(param_name); + } else if (strcmp("singleRemotePort", param_field) == 0) { + return singleRemotePort().get_param(param_name); + } else if (strcmp("remotePortRange", param_field) == 0) { + return remotePortRange().get_param(param_name); + } else if (strcmp("securityParameterIndex", param_field) == 0) { + return securityParameterIndex().get_param(param_name); + } else if (strcmp("typeOfServiceTrafficClass", param_field) == 0) { + return typeOfServiceTrafficClass().get_param(param_name); + } else if (strcmp("flowLabel", param_field) == 0) { + return flowLabel().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `PacketFilterComponentValue'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_ipv4RemoteAddress: + mp_field = field_ipv4RemoteAddress->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("ipv4RemoteAddress"))); + break; + case ALT_ipv6RemoteAddress: + mp_field = field_ipv6RemoteAddress->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("ipv6RemoteAddress"))); + break; + case ALT_protocolIdNextHeader: + mp_field = field_protocolIdNextHeader->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("protocolIdNextHeader"))); + break; + case ALT_singleLocalPort: + mp_field = field_singleLocalPort->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("singleLocalPort"))); + break; + case ALT_localPortRange: + mp_field = field_localPortRange->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("localPortRange"))); + break; + case ALT_singleRemotePort: + mp_field = field_singleRemotePort->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("singleRemotePort"))); + break; + case ALT_remotePortRange: + mp_field = field_remotePortRange->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("remotePortRange"))); + break; + case ALT_securityParameterIndex: + mp_field = field_securityParameterIndex->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("securityParameterIndex"))); + break; + case ALT_typeOfServiceTrafficClass: + mp_field = field_typeOfServiceTrafficClass->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("typeOfServiceTrafficClass"))); + break; + case ALT_flowLabel: + mp_field = field_flowLabel->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("flowLabel"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void PacketFilterComponentValue::set_implicit_omit() +{ +switch (union_selection) { +case ALT_ipv4RemoteAddress: +field_ipv4RemoteAddress->set_implicit_omit(); break; +case ALT_ipv6RemoteAddress: +field_ipv6RemoteAddress->set_implicit_omit(); break; +case ALT_protocolIdNextHeader: +field_protocolIdNextHeader->set_implicit_omit(); break; +case ALT_singleLocalPort: +field_singleLocalPort->set_implicit_omit(); break; +case ALT_localPortRange: +field_localPortRange->set_implicit_omit(); break; +case ALT_singleRemotePort: +field_singleRemotePort->set_implicit_omit(); break; +case ALT_remotePortRange: +field_remotePortRange->set_implicit_omit(); break; +case ALT_securityParameterIndex: +field_securityParameterIndex->set_implicit_omit(); break; +case ALT_typeOfServiceTrafficClass: +field_typeOfServiceTrafficClass->set_implicit_omit(); break; +case ALT_flowLabel: +field_flowLabel->set_implicit_omit(); break; +default: break; +} +} + +void PacketFilterComponentValue::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_ipv4RemoteAddress: +field_ipv4RemoteAddress->encode_text(text_buf); +break; +case ALT_ipv6RemoteAddress: +field_ipv6RemoteAddress->encode_text(text_buf); +break; +case ALT_protocolIdNextHeader: +field_protocolIdNextHeader->encode_text(text_buf); +break; +case ALT_singleLocalPort: +field_singleLocalPort->encode_text(text_buf); +break; +case ALT_localPortRange: +field_localPortRange->encode_text(text_buf); +break; +case ALT_singleRemotePort: +field_singleRemotePort->encode_text(text_buf); +break; +case ALT_remotePortRange: +field_remotePortRange->encode_text(text_buf); +break; +case ALT_securityParameterIndex: +field_securityParameterIndex->encode_text(text_buf); +break; +case ALT_typeOfServiceTrafficClass: +field_typeOfServiceTrafficClass->encode_text(text_buf); +break; +case ALT_flowLabel: +field_flowLabel->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +} + +void PacketFilterComponentValue::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_ipv4RemoteAddress: +ipv4RemoteAddress().decode_text(text_buf); +break; +case ALT_ipv6RemoteAddress: +ipv6RemoteAddress().decode_text(text_buf); +break; +case ALT_protocolIdNextHeader: +protocolIdNextHeader().decode_text(text_buf); +break; +case ALT_singleLocalPort: +singleLocalPort().decode_text(text_buf); +break; +case ALT_localPortRange: +localPortRange().decode_text(text_buf); +break; +case ALT_singleRemotePort: +singleRemotePort().decode_text(text_buf); +break; +case ALT_remotePortRange: +remotePortRange().decode_text(text_buf); +break; +case ALT_securityParameterIndex: +securityParameterIndex().decode_text(text_buf); +break; +case ALT_typeOfServiceTrafficClass: +typeOfServiceTrafficClass().decode_text(text_buf); +break; +case ALT_flowLabel: +flowLabel().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +} + +void PacketFilterComponentValue::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const +{ + va_list pvar; + va_start(pvar, p_coding); + switch(p_coding) { + case TTCN_EncDec::CT_BER: { + TTCN_EncDec_ErrorContext ec("While BER-encoding type '%s': ", p_td.name); + unsigned BER_coding=va_arg(pvar, unsigned); + BER_encode_chk_coding(BER_coding); + ASN_BER_TLV_t *tlv=BER_encode_TLV(p_td, BER_coding); + tlv->put_in_buffer(p_buf); + ASN_BER_TLV_t::destruct(tlv); + break;} + case TTCN_EncDec::CT_RAW: { + TTCN_EncDec_ErrorContext ec("While RAW-encoding type '%s': ", p_td.name); + if(!p_td.raw) + TTCN_EncDec_ErrorContext::error_internal + ("No RAW descriptor available for type '%s'.", p_td.name); + RAW_enc_tr_pos rp; + rp.level=0; + rp.pos=NULL; + RAW_enc_tree root(TRUE, NULL, &rp, 1, p_td.raw); + RAW_encode(p_td, root); + root.put_to_buf(p_buf); + break;} + case TTCN_EncDec::CT_TEXT: { + TTCN_EncDec_ErrorContext ec("While TEXT-encoding type '%s': ", p_td.name); + if(!p_td.text) + TTCN_EncDec_ErrorContext::error_internal + ("No TEXT descriptor available for type '%s'.", p_td.name); + TEXT_encode(p_td,p_buf); + break;} + case TTCN_EncDec::CT_XER: { + TTCN_EncDec_ErrorContext ec("While XER-encoding type '%s': ", p_td.name); + unsigned XER_coding=va_arg(pvar, unsigned); + XER_encode_chk_coding(XER_coding, p_td); + XER_encode(*(p_td.xer),p_buf, XER_coding, 0, 0, 0); + p_buf.put_c('\n'); + break;} + case TTCN_EncDec::CT_JSON: { + TTCN_EncDec_ErrorContext ec("While JSON-encoding type '%s': ", p_td.name); + if(!p_td.json) + TTCN_EncDec_ErrorContext::error_internal + ("No JSON descriptor available for type '%s'.", p_td.name); + JSON_Tokenizer tok(va_arg(pvar, int) != 0); + JSON_encode(p_td, tok, FALSE); + p_buf.put_s(tok.get_buffer_length(), (const unsigned char*)tok.get_buffer()); + break;} + case TTCN_EncDec::CT_OER: { + TTCN_EncDec_ErrorContext ec("While OER-encoding type '%s': ", p_td.name); + if(!p_td.oer) + TTCN_EncDec_ErrorContext::error_internal + ("No OER descriptor available for type '%s'.", p_td.name); + OER_encode(p_td, p_buf); + break;} + case TTCN_EncDec::CT_PER: { + TTCN_EncDec_ErrorContext ec("While PER-encoding type '%s': ", p_td.name); + if (!p_td.per) TTCN_EncDec_ErrorContext::error_internal( + "No PER descriptor available for type '%s'.", p_td.name); + int opt = va_arg(pvar, int); + PER_encode(p_td, p_buf, opt); + break; } + default: + TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name); + } + va_end(pvar); +} + +void PacketFilterComponentValue::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) +{ + va_list pvar; + va_start(pvar, p_coding); + switch(p_coding) { + case TTCN_EncDec::CT_BER: { + TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name); + unsigned L_form=va_arg(pvar, unsigned); + ASN_BER_TLV_t tlv; + BER_decode_str2TLV(p_buf, tlv, L_form); + BER_decode_TLV(p_td, tlv, L_form); + if(tlv.isComplete) p_buf.increase_pos(tlv.get_len()); + break;} + case TTCN_EncDec::CT_RAW: { + TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name); + if(!p_td.raw) + TTCN_EncDec_ErrorContext::error_internal + ("No RAW descriptor available for type '%s'.", p_td.name); + raw_order_t r_order; + switch(p_td.raw->top_bit_order) { + case TOP_BIT_LEFT: + r_order=ORDER_LSB; + break; + case TOP_BIT_RIGHT: + default: + r_order=ORDER_MSB; + } + int rawr = RAW_decode(p_td, p_buf, p_buf.get_len()*8, r_order); + if(rawr<0) switch (-rawr) { + case TTCN_EncDec::ET_INCOMPL_MSG: + case TTCN_EncDec::ET_LEN_ERR: + ec.error((TTCN_EncDec::error_type_t)-rawr, "Can not decode type '%s', because incomplete message was received", p_td.name); + break; + case 1: + default: + ec.error(TTCN_EncDec::ET_INVAL_MSG, "Can not decode type '%s', because invalid message was received", p_td.name); + break; + } + break;} + case TTCN_EncDec::CT_TEXT: { + Limit_Token_List limit; + TTCN_EncDec_ErrorContext ec("While TEXT-decoding type '%s': ", p_td.name); + if(!p_td.text) + TTCN_EncDec_ErrorContext::error_internal + ("No TEXT descriptor available for type '%s'.", p_td.name); + const unsigned char *b_data=p_buf.get_data(); + int null_added=0; + if(b_data[p_buf.get_len()-1]!='\0'){ + null_added=1; + p_buf.set_pos(p_buf.get_len()); + p_buf.put_zero(8,ORDER_LSB); + p_buf.rewind(); + } + if(TEXT_decode(p_td,p_buf,limit)<0) + ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name); + if(null_added){ + size_t actpos=p_buf.get_pos(); + p_buf.set_pos(p_buf.get_len()-1); + p_buf.cut_end(); + p_buf.set_pos(actpos); + } + break;} + case TTCN_EncDec::CT_XER: { + TTCN_EncDec_ErrorContext ec("While XER-decoding type '%s': ", p_td.name); + unsigned XER_coding=va_arg(pvar, unsigned); + XER_encode_chk_coding(XER_coding, p_td); + XmlReaderWrap reader(p_buf); + for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) { + if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break; + } + XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0); + size_t bytes = reader.ByteConsumed(); + p_buf.set_pos(bytes); + break;} + case TTCN_EncDec::CT_JSON: { + TTCN_EncDec_ErrorContext ec("While JSON-decoding type '%s': ", p_td.name); + if(!p_td.json) + TTCN_EncDec_ErrorContext::error_internal + ("No JSON descriptor available for type '%s'.", p_td.name); + JSON_Tokenizer tok((const char*)p_buf.get_data(), p_buf.get_len()); + if(JSON_decode(p_td, tok, FALSE, FALSE)<0) + ec.error(TTCN_EncDec::ET_INCOMPL_MSG,"Can not decode type '%s', because invalid or incomplete message was received", p_td.name); + p_buf.set_pos(tok.get_buf_pos()); + break;} + case TTCN_EncDec::CT_OER: { + TTCN_EncDec_ErrorContext ec("While OER-decoding type '%s': ", p_td.name); + if(!p_td.oer) + TTCN_EncDec_ErrorContext::error_internal + ("No OER descriptor available for type '%s'.", p_td.name); + OER_struct p_oer; + OER_decode(p_td, p_buf, p_oer); + break;} + case TTCN_EncDec::CT_PER: { + TTCN_EncDec_ErrorContext ec("While PER-decoding type '%s': ", p_td.name); + if(!p_td.per) TTCN_EncDec_ErrorContext::error_internal( + "No PER descriptor available for type '%s'.", p_td.name); + int opt = va_arg(pvar, int); + PER_decode(p_td, p_buf, opt); + p_buf.PER_octet_align(FALSE); + break; } + default: + TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name); + } + va_end(pvar); +} + +int PacketFilterComponentValue::RAW_decode( +const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, +raw_order_t top_bit_ord, boolean no_err, int sel_field, boolean, const RAW_Force_Omit* force_omit) +{ + int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding); + limit-=prepaddlength; + int decoded_length=0; + int starting_pos=p_buf.get_pos_bit(); + if(sel_field!=-1){ + switch(sel_field){ + case 0: { + RAW_Force_Omit field_force_omit(0, force_omit, CommonDefs::O8__Type_descr_.raw->forceomit); + decoded_length = ipv4RemoteAddress().RAW_decode(CommonDefs::O8__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + case 1: { + RAW_Force_Omit field_force_omit(1, force_omit, CommonDefs::O32__Type_descr_.raw->forceomit); + decoded_length = ipv6RemoteAddress().RAW_decode(CommonDefs::O32__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + case 2: { + RAW_Force_Omit field_force_omit(2, force_omit, CommonDefs::O1__Type_descr_.raw->forceomit); + decoded_length = protocolIdNextHeader().RAW_decode(CommonDefs::O1__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + case 3: { + RAW_Force_Omit field_force_omit(3, force_omit, CommonDefs::O2__Type_descr_.raw->forceomit); + decoded_length = singleLocalPort().RAW_decode(CommonDefs::O2__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + case 4: { + RAW_Force_Omit field_force_omit(4, force_omit, CommonDefs::O4__Type_descr_.raw->forceomit); + decoded_length = localPortRange().RAW_decode(CommonDefs::O4__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + case 5: { + RAW_Force_Omit field_force_omit(5, force_omit, CommonDefs::O2__Type_descr_.raw->forceomit); + decoded_length = singleRemotePort().RAW_decode(CommonDefs::O2__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + case 6: { + RAW_Force_Omit field_force_omit(6, force_omit, CommonDefs::O4__Type_descr_.raw->forceomit); + decoded_length = remotePortRange().RAW_decode(CommonDefs::O4__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + case 7: { + RAW_Force_Omit field_force_omit(7, force_omit, CommonDefs::O4__Type_descr_.raw->forceomit); + decoded_length = securityParameterIndex().RAW_decode(CommonDefs::O4__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + case 8: { + RAW_Force_Omit field_force_omit(8, force_omit, CommonDefs::O2__Type_descr_.raw->forceomit); + decoded_length = typeOfServiceTrafficClass().RAW_decode(CommonDefs::O2__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + case 9: { + RAW_Force_Omit field_force_omit(9, force_omit, CommonDefs::O3__Type_descr_.raw->forceomit); + decoded_length = flowLabel().RAW_decode(CommonDefs::O3__Type_descr_, p_buf, limit, top_bit_ord, no_err, -1, TRUE, &field_force_omit); + break; } + default: break; + } + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } else { + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_0_force_omit(0, force_omit, CommonDefs::O8__Type_descr_.raw->forceomit); + decoded_length = ipv4RemoteAddress().RAW_decode(CommonDefs::O8__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_0_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_1_force_omit(1, force_omit, CommonDefs::O32__Type_descr_.raw->forceomit); + decoded_length = ipv6RemoteAddress().RAW_decode(CommonDefs::O32__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_1_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_2_force_omit(2, force_omit, CommonDefs::O1__Type_descr_.raw->forceomit); + decoded_length = protocolIdNextHeader().RAW_decode(CommonDefs::O1__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_2_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_3_force_omit(3, force_omit, CommonDefs::O2__Type_descr_.raw->forceomit); + decoded_length = singleLocalPort().RAW_decode(CommonDefs::O2__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_3_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_4_force_omit(4, force_omit, CommonDefs::O4__Type_descr_.raw->forceomit); + decoded_length = localPortRange().RAW_decode(CommonDefs::O4__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_4_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_5_force_omit(5, force_omit, CommonDefs::O2__Type_descr_.raw->forceomit); + decoded_length = singleRemotePort().RAW_decode(CommonDefs::O2__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_5_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_6_force_omit(6, force_omit, CommonDefs::O4__Type_descr_.raw->forceomit); + decoded_length = remotePortRange().RAW_decode(CommonDefs::O4__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_6_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_7_force_omit(7, force_omit, CommonDefs::O4__Type_descr_.raw->forceomit); + decoded_length = securityParameterIndex().RAW_decode(CommonDefs::O4__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_7_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_8_force_omit(8, force_omit, CommonDefs::O2__Type_descr_.raw->forceomit); + decoded_length = typeOfServiceTrafficClass().RAW_decode(CommonDefs::O2__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_8_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + p_buf.set_pos_bit(starting_pos); + RAW_Force_Omit field_9_force_omit(9, force_omit, CommonDefs::O3__Type_descr_.raw->forceomit); + decoded_length = flowLabel().RAW_decode(CommonDefs::O3__Type_descr_, p_buf, limit, top_bit_ord, TRUE, -1, TRUE, &field_9_force_omit); + if (decoded_length >= 0) { + return decoded_length + p_buf.increase_pos_padd(p_td.raw->padding) + prepaddlength; + } + } + clean_up(); + return -1; +} + +int PacketFilterComponentValue::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf) const +{ + if (err_descr) return RAW_encode_negtest(err_descr, p_td, myleaf); + int encoded_length = 0; + myleaf.isleaf = FALSE; + myleaf.body.node.num_of_nodes = 10; myleaf.body.node.nodes = init_nodes_of_enc_tree(10); + memset(myleaf.body.node.nodes, 0, 10 * sizeof(RAW_enc_tree *)); + switch (union_selection) { + case ALT_ipv4RemoteAddress: + myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 0, CommonDefs::O8__Type_descr_.raw); + encoded_length = field_ipv4RemoteAddress->RAW_encode(CommonDefs::O8__Type_descr_, *myleaf.body.node.nodes[0]); + myleaf.body.node.nodes[0]->coding_descr = &CommonDefs::O8__Type_descr_; + break; + case ALT_ipv6RemoteAddress: + myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 1, CommonDefs::O32__Type_descr_.raw); + encoded_length = field_ipv6RemoteAddress->RAW_encode(CommonDefs::O32__Type_descr_, *myleaf.body.node.nodes[1]); + myleaf.body.node.nodes[1]->coding_descr = &CommonDefs::O32__Type_descr_; + break; + case ALT_protocolIdNextHeader: + myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 2, CommonDefs::O1__Type_descr_.raw); + encoded_length = field_protocolIdNextHeader->RAW_encode(CommonDefs::O1__Type_descr_, *myleaf.body.node.nodes[2]); + myleaf.body.node.nodes[2]->coding_descr = &CommonDefs::O1__Type_descr_; + break; + case ALT_singleLocalPort: + myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 3, CommonDefs::O2__Type_descr_.raw); + encoded_length = field_singleLocalPort->RAW_encode(CommonDefs::O2__Type_descr_, *myleaf.body.node.nodes[3]); + myleaf.body.node.nodes[3]->coding_descr = &CommonDefs::O2__Type_descr_; + break; + case ALT_localPortRange: + myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 4, CommonDefs::O4__Type_descr_.raw); + encoded_length = field_localPortRange->RAW_encode(CommonDefs::O4__Type_descr_, *myleaf.body.node.nodes[4]); + myleaf.body.node.nodes[4]->coding_descr = &CommonDefs::O4__Type_descr_; + break; + case ALT_singleRemotePort: + myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 5, CommonDefs::O2__Type_descr_.raw); + encoded_length = field_singleRemotePort->RAW_encode(CommonDefs::O2__Type_descr_, *myleaf.body.node.nodes[5]); + myleaf.body.node.nodes[5]->coding_descr = &CommonDefs::O2__Type_descr_; + break; + case ALT_remotePortRange: + myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 6, CommonDefs::O4__Type_descr_.raw); + encoded_length = field_remotePortRange->RAW_encode(CommonDefs::O4__Type_descr_, *myleaf.body.node.nodes[6]); + myleaf.body.node.nodes[6]->coding_descr = &CommonDefs::O4__Type_descr_; + break; + case ALT_securityParameterIndex: + myleaf.body.node.nodes[7] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 7, CommonDefs::O4__Type_descr_.raw); + encoded_length = field_securityParameterIndex->RAW_encode(CommonDefs::O4__Type_descr_, *myleaf.body.node.nodes[7]); + myleaf.body.node.nodes[7]->coding_descr = &CommonDefs::O4__Type_descr_; + break; + case ALT_typeOfServiceTrafficClass: + myleaf.body.node.nodes[8] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 8, CommonDefs::O2__Type_descr_.raw); + encoded_length = field_typeOfServiceTrafficClass->RAW_encode(CommonDefs::O2__Type_descr_, *myleaf.body.node.nodes[8]); + myleaf.body.node.nodes[8]->coding_descr = &CommonDefs::O2__Type_descr_; + break; + case ALT_flowLabel: + myleaf.body.node.nodes[9] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 9, CommonDefs::O3__Type_descr_.raw); + encoded_length = field_flowLabel->RAW_encode(CommonDefs::O3__Type_descr_, *myleaf.body.node.nodes[9]); + myleaf.body.node.nodes[9]->coding_descr = &CommonDefs::O3__Type_descr_; + break; + default: + TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value."); + } + return encoded_length; +} + +int PacketFilterComponentValue::RAW_encode_negtest(const Erroneous_descriptor_t *p_err_descr, const TTCN_Typedescriptor_t& /*p_td*/, RAW_enc_tree& myleaf) const +{ + const Erroneous_values_t *err_vals = NULL; + const Erroneous_descriptor_t *emb_descr = NULL; + int encoded_length = 0; + myleaf.isleaf = FALSE; + myleaf.body.node.num_of_nodes = 10; + myleaf.body.node.nodes = init_nodes_of_enc_tree(10); + memset(myleaf.body.node.nodes, 0, 10 * sizeof(RAW_enc_tree *)); + switch (union_selection) { + case ALT_ipv4RemoteAddress: { + err_vals = p_err_descr->get_field_err_values(0); + emb_descr = p_err_descr->get_field_emb_descr(0); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[0] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 0, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[0]); + myleaf.body.node.nodes[0]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 0, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[0]); + myleaf.body.node.nodes[0]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 0, CommonDefs::O8__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_ipv4RemoteAddress->RAW_encode_negtest(emb_descr, CommonDefs::O8__Type_descr_, *myleaf.body.node.nodes[0]); + } else encoded_length = field_ipv4RemoteAddress->RAW_encode(CommonDefs::O8__Type_descr_, *myleaf.body.node.nodes[0]); + myleaf.body.node.nodes[0]->coding_descr = &CommonDefs::O8__Type_descr_; + } + break; } + case ALT_ipv6RemoteAddress: { + err_vals = p_err_descr->get_field_err_values(1); + emb_descr = p_err_descr->get_field_emb_descr(1); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[1] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 1, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[1]); + myleaf.body.node.nodes[1]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 1, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[1]); + myleaf.body.node.nodes[1]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 1, CommonDefs::O32__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_ipv6RemoteAddress->RAW_encode_negtest(emb_descr, CommonDefs::O32__Type_descr_, *myleaf.body.node.nodes[1]); + } else encoded_length = field_ipv6RemoteAddress->RAW_encode(CommonDefs::O32__Type_descr_, *myleaf.body.node.nodes[1]); + myleaf.body.node.nodes[1]->coding_descr = &CommonDefs::O32__Type_descr_; + } + break; } + case ALT_protocolIdNextHeader: { + err_vals = p_err_descr->get_field_err_values(2); + emb_descr = p_err_descr->get_field_emb_descr(2); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[2] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 2, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[2]); + myleaf.body.node.nodes[2]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 2, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[2]); + myleaf.body.node.nodes[2]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[2] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 2, CommonDefs::O1__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_protocolIdNextHeader->RAW_encode_negtest(emb_descr, CommonDefs::O1__Type_descr_, *myleaf.body.node.nodes[2]); + } else encoded_length = field_protocolIdNextHeader->RAW_encode(CommonDefs::O1__Type_descr_, *myleaf.body.node.nodes[2]); + myleaf.body.node.nodes[2]->coding_descr = &CommonDefs::O1__Type_descr_; + } + break; } + case ALT_singleLocalPort: { + err_vals = p_err_descr->get_field_err_values(3); + emb_descr = p_err_descr->get_field_emb_descr(3); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[3] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 3, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[3]); + myleaf.body.node.nodes[3]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 3, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[3]); + myleaf.body.node.nodes[3]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[3] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 3, CommonDefs::O2__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_singleLocalPort->RAW_encode_negtest(emb_descr, CommonDefs::O2__Type_descr_, *myleaf.body.node.nodes[3]); + } else encoded_length = field_singleLocalPort->RAW_encode(CommonDefs::O2__Type_descr_, *myleaf.body.node.nodes[3]); + myleaf.body.node.nodes[3]->coding_descr = &CommonDefs::O2__Type_descr_; + } + break; } + case ALT_localPortRange: { + err_vals = p_err_descr->get_field_err_values(4); + emb_descr = p_err_descr->get_field_emb_descr(4); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[4] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 4, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[4]); + myleaf.body.node.nodes[4]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 4, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[4]); + myleaf.body.node.nodes[4]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[4] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 4, CommonDefs::O4__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_localPortRange->RAW_encode_negtest(emb_descr, CommonDefs::O4__Type_descr_, *myleaf.body.node.nodes[4]); + } else encoded_length = field_localPortRange->RAW_encode(CommonDefs::O4__Type_descr_, *myleaf.body.node.nodes[4]); + myleaf.body.node.nodes[4]->coding_descr = &CommonDefs::O4__Type_descr_; + } + break; } + case ALT_singleRemotePort: { + err_vals = p_err_descr->get_field_err_values(5); + emb_descr = p_err_descr->get_field_emb_descr(5); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[5] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 5, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[5]); + myleaf.body.node.nodes[5]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 5, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[5]); + myleaf.body.node.nodes[5]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[5] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 5, CommonDefs::O2__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_singleRemotePort->RAW_encode_negtest(emb_descr, CommonDefs::O2__Type_descr_, *myleaf.body.node.nodes[5]); + } else encoded_length = field_singleRemotePort->RAW_encode(CommonDefs::O2__Type_descr_, *myleaf.body.node.nodes[5]); + myleaf.body.node.nodes[5]->coding_descr = &CommonDefs::O2__Type_descr_; + } + break; } + case ALT_remotePortRange: { + err_vals = p_err_descr->get_field_err_values(6); + emb_descr = p_err_descr->get_field_emb_descr(6); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[6] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 6, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[6]); + myleaf.body.node.nodes[6]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 6, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[6]); + myleaf.body.node.nodes[6]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[6] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 6, CommonDefs::O4__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_remotePortRange->RAW_encode_negtest(emb_descr, CommonDefs::O4__Type_descr_, *myleaf.body.node.nodes[6]); + } else encoded_length = field_remotePortRange->RAW_encode(CommonDefs::O4__Type_descr_, *myleaf.body.node.nodes[6]); + myleaf.body.node.nodes[6]->coding_descr = &CommonDefs::O4__Type_descr_; + } + break; } + case ALT_securityParameterIndex: { + err_vals = p_err_descr->get_field_err_values(7); + emb_descr = p_err_descr->get_field_emb_descr(7); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[7] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 7, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[7]); + myleaf.body.node.nodes[7]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[7] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 7, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[7]); + myleaf.body.node.nodes[7]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[7] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 7, CommonDefs::O4__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_securityParameterIndex->RAW_encode_negtest(emb_descr, CommonDefs::O4__Type_descr_, *myleaf.body.node.nodes[7]); + } else encoded_length = field_securityParameterIndex->RAW_encode(CommonDefs::O4__Type_descr_, *myleaf.body.node.nodes[7]); + myleaf.body.node.nodes[7]->coding_descr = &CommonDefs::O4__Type_descr_; + } + break; } + case ALT_typeOfServiceTrafficClass: { + err_vals = p_err_descr->get_field_err_values(8); + emb_descr = p_err_descr->get_field_emb_descr(8); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[8] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 8, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[8]); + myleaf.body.node.nodes[8]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[8] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 8, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[8]); + myleaf.body.node.nodes[8]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[8] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 8, CommonDefs::O2__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_typeOfServiceTrafficClass->RAW_encode_negtest(emb_descr, CommonDefs::O2__Type_descr_, *myleaf.body.node.nodes[8]); + } else encoded_length = field_typeOfServiceTrafficClass->RAW_encode(CommonDefs::O2__Type_descr_, *myleaf.body.node.nodes[8]); + myleaf.body.node.nodes[8]->coding_descr = &CommonDefs::O2__Type_descr_; + } + break; } + case ALT_flowLabel: { + err_vals = p_err_descr->get_field_err_values(9); + emb_descr = p_err_descr->get_field_emb_descr(9); + if (err_vals && err_vals->value) { + if (err_vals->value->raw) { + myleaf.body.node.nodes[9] = + new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 9, err_vals->value->errval->get_descriptor()->raw); + encoded_length = err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[9]); + myleaf.body.node.nodes[9]->coding_descr = err_vals->value->errval->get_descriptor(); + } else { + if (err_vals->value->errval) { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[9] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 9, err_vals->value->type_descr->raw); + encoded_length = err_vals->value->errval->RAW_encode(*err_vals->value->type_descr, *myleaf.body.node.nodes[9]); + myleaf.body.node.nodes[9]->coding_descr = err_vals->value->type_descr; + } + } + } else { + myleaf.body.node.nodes[9] = new RAW_enc_tree(TRUE, &myleaf, &myleaf.curr_pos, 9, CommonDefs::O3__Type_descr_.raw); + if (emb_descr) { + encoded_length = field_flowLabel->RAW_encode_negtest(emb_descr, CommonDefs::O3__Type_descr_, *myleaf.body.node.nodes[9]); + } else encoded_length = field_flowLabel->RAW_encode(CommonDefs::O3__Type_descr_, *myleaf.body.node.nodes[9]); + myleaf.body.node.nodes[9]->coding_descr = &CommonDefs::O3__Type_descr_; + } + break; } + default: + TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value."); + } + return encoded_length; +} + +void PacketFilterComponentValue_template::copy_value(const PacketFilterComponentValue& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +single_value.field_ipv4RemoteAddress = new OCTETSTRING_template(other_value.ipv4RemoteAddress()); +break; +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +single_value.field_ipv6RemoteAddress = new OCTETSTRING_template(other_value.ipv6RemoteAddress()); +break; +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +single_value.field_protocolIdNextHeader = new OCTETSTRING_template(other_value.protocolIdNextHeader()); +break; +case PacketFilterComponentValue::ALT_singleLocalPort: +single_value.field_singleLocalPort = new OCTETSTRING_template(other_value.singleLocalPort()); +break; +case PacketFilterComponentValue::ALT_localPortRange: +single_value.field_localPortRange = new OCTETSTRING_template(other_value.localPortRange()); +break; +case PacketFilterComponentValue::ALT_singleRemotePort: +single_value.field_singleRemotePort = new OCTETSTRING_template(other_value.singleRemotePort()); +break; +case PacketFilterComponentValue::ALT_remotePortRange: +single_value.field_remotePortRange = new OCTETSTRING_template(other_value.remotePortRange()); +break; +case PacketFilterComponentValue::ALT_securityParameterIndex: +single_value.field_securityParameterIndex = new OCTETSTRING_template(other_value.securityParameterIndex()); +break; +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +single_value.field_typeOfServiceTrafficClass = new OCTETSTRING_template(other_value.typeOfServiceTrafficClass()); +break; +case PacketFilterComponentValue::ALT_flowLabel: +single_value.field_flowLabel = new OCTETSTRING_template(other_value.flowLabel()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void PacketFilterComponentValue_template::copy_template(const PacketFilterComponentValue_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +single_value.field_ipv4RemoteAddress = new OCTETSTRING_template(*other_value.single_value.field_ipv4RemoteAddress); +break; +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +single_value.field_ipv6RemoteAddress = new OCTETSTRING_template(*other_value.single_value.field_ipv6RemoteAddress); +break; +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +single_value.field_protocolIdNextHeader = new OCTETSTRING_template(*other_value.single_value.field_protocolIdNextHeader); +break; +case PacketFilterComponentValue::ALT_singleLocalPort: +single_value.field_singleLocalPort = new OCTETSTRING_template(*other_value.single_value.field_singleLocalPort); +break; +case PacketFilterComponentValue::ALT_localPortRange: +single_value.field_localPortRange = new OCTETSTRING_template(*other_value.single_value.field_localPortRange); +break; +case PacketFilterComponentValue::ALT_singleRemotePort: +single_value.field_singleRemotePort = new OCTETSTRING_template(*other_value.single_value.field_singleRemotePort); +break; +case PacketFilterComponentValue::ALT_remotePortRange: +single_value.field_remotePortRange = new OCTETSTRING_template(*other_value.single_value.field_remotePortRange); +break; +case PacketFilterComponentValue::ALT_securityParameterIndex: +single_value.field_securityParameterIndex = new OCTETSTRING_template(*other_value.single_value.field_securityParameterIndex); +break; +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +single_value.field_typeOfServiceTrafficClass = new OCTETSTRING_template(*other_value.single_value.field_typeOfServiceTrafficClass); +break; +case PacketFilterComponentValue::ALT_flowLabel: +single_value.field_flowLabel = new OCTETSTRING_template(*other_value.single_value.field_flowLabel); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new PacketFilterComponentValue_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new PacketFilterComponentValue_template(*other_value.implication_.precondition); +implication_.implied_template = new PacketFilterComponentValue_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +PacketFilterComponentValue_template::PacketFilterComponentValue_template(): err_descr(NULL) +{ +} + +PacketFilterComponentValue_template::PacketFilterComponentValue_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +PacketFilterComponentValue_template::PacketFilterComponentValue_template(const PacketFilterComponentValue& other_value) +{ +copy_value(other_value); +} + +PacketFilterComponentValue_template::PacketFilterComponentValue_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const PacketFilterComponentValue&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue from an unbound optional field."); +} +} + +PacketFilterComponentValue_template::PacketFilterComponentValue_template(PacketFilterComponentValue_template* p_precondition, PacketFilterComponentValue_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +PacketFilterComponentValue_template::PacketFilterComponentValue_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +PacketFilterComponentValue_template::PacketFilterComponentValue_template(const PacketFilterComponentValue_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +PacketFilterComponentValue_template::~PacketFilterComponentValue_template() +{ +clean_up(); +} + +void PacketFilterComponentValue_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +delete single_value.field_ipv4RemoteAddress; +break; +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +delete single_value.field_ipv6RemoteAddress; +break; +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +delete single_value.field_protocolIdNextHeader; +break; +case PacketFilterComponentValue::ALT_singleLocalPort: +delete single_value.field_singleLocalPort; +break; +case PacketFilterComponentValue::ALT_localPortRange: +delete single_value.field_localPortRange; +break; +case PacketFilterComponentValue::ALT_singleRemotePort: +delete single_value.field_singleRemotePort; +break; +case PacketFilterComponentValue::ALT_remotePortRange: +delete single_value.field_remotePortRange; +break; +case PacketFilterComponentValue::ALT_securityParameterIndex: +delete single_value.field_securityParameterIndex; +break; +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +delete single_value.field_typeOfServiceTrafficClass; +break; +case PacketFilterComponentValue::ALT_flowLabel: +delete single_value.field_flowLabel; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +PacketFilterComponentValue_template& PacketFilterComponentValue_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +PacketFilterComponentValue_template& PacketFilterComponentValue_template::operator=(const PacketFilterComponentValue& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +PacketFilterComponentValue_template& PacketFilterComponentValue_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const PacketFilterComponentValue&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +return *this; +} + +PacketFilterComponentValue_template& PacketFilterComponentValue_template::operator=(const PacketFilterComponentValue_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean PacketFilterComponentValue_template::match(const PacketFilterComponentValue& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +PacketFilterComponentValue::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == PacketFilterComponentValue::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +return single_value.field_ipv4RemoteAddress->match(other_value.ipv4RemoteAddress(), legacy); +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +return single_value.field_ipv6RemoteAddress->match(other_value.ipv6RemoteAddress(), legacy); +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +return single_value.field_protocolIdNextHeader->match(other_value.protocolIdNextHeader(), legacy); +case PacketFilterComponentValue::ALT_singleLocalPort: +return single_value.field_singleLocalPort->match(other_value.singleLocalPort(), legacy); +case PacketFilterComponentValue::ALT_localPortRange: +return single_value.field_localPortRange->match(other_value.localPortRange(), legacy); +case PacketFilterComponentValue::ALT_singleRemotePort: +return single_value.field_singleRemotePort->match(other_value.singleRemotePort(), legacy); +case PacketFilterComponentValue::ALT_remotePortRange: +return single_value.field_remotePortRange->match(other_value.remotePortRange(), legacy); +case PacketFilterComponentValue::ALT_securityParameterIndex: +return single_value.field_securityParameterIndex->match(other_value.securityParameterIndex(), legacy); +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +return single_value.field_typeOfServiceTrafficClass->match(other_value.typeOfServiceTrafficClass(), legacy); +case PacketFilterComponentValue::ALT_flowLabel: +return single_value.field_flowLabel->match(other_value.flowLabel(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +return FALSE; +} + +boolean PacketFilterComponentValue_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +return single_value.field_ipv4RemoteAddress->is_value(); +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +return single_value.field_ipv6RemoteAddress->is_value(); +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +return single_value.field_protocolIdNextHeader->is_value(); +case PacketFilterComponentValue::ALT_singleLocalPort: +return single_value.field_singleLocalPort->is_value(); +case PacketFilterComponentValue::ALT_localPortRange: +return single_value.field_localPortRange->is_value(); +case PacketFilterComponentValue::ALT_singleRemotePort: +return single_value.field_singleRemotePort->is_value(); +case PacketFilterComponentValue::ALT_remotePortRange: +return single_value.field_remotePortRange->is_value(); +case PacketFilterComponentValue::ALT_securityParameterIndex: +return single_value.field_securityParameterIndex->is_value(); +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +return single_value.field_typeOfServiceTrafficClass->is_value(); +case PacketFilterComponentValue::ALT_flowLabel: +return single_value.field_flowLabel->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +} + +PacketFilterComponentValue PacketFilterComponentValue_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +PacketFilterComponentValue ret_val; +switch (single_value.union_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +ret_val.ipv4RemoteAddress() = single_value.field_ipv4RemoteAddress->valueof(); +break; +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +ret_val.ipv6RemoteAddress() = single_value.field_ipv6RemoteAddress->valueof(); +break; +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +ret_val.protocolIdNextHeader() = single_value.field_protocolIdNextHeader->valueof(); +break; +case PacketFilterComponentValue::ALT_singleLocalPort: +ret_val.singleLocalPort() = single_value.field_singleLocalPort->valueof(); +break; +case PacketFilterComponentValue::ALT_localPortRange: +ret_val.localPortRange() = single_value.field_localPortRange->valueof(); +break; +case PacketFilterComponentValue::ALT_singleRemotePort: +ret_val.singleRemotePort() = single_value.field_singleRemotePort->valueof(); +break; +case PacketFilterComponentValue::ALT_remotePortRange: +ret_val.remotePortRange() = single_value.field_remotePortRange->valueof(); +break; +case PacketFilterComponentValue::ALT_securityParameterIndex: +ret_val.securityParameterIndex() = single_value.field_securityParameterIndex->valueof(); +break; +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +ret_val.typeOfServiceTrafficClass() = single_value.field_typeOfServiceTrafficClass->valueof(); +break; +case PacketFilterComponentValue::ALT_flowLabel: +ret_val.flowLabel() = single_value.field_flowLabel->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +PacketFilterComponentValue_template& PacketFilterComponentValue_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return value_list.list_value[list_index]; +} +void PacketFilterComponentValue_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new PacketFilterComponentValue_template[list_length]; +} + +PacketFilterComponentValue::union_selection_type PacketFilterComponentValue_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue"); +return single_value.union_selection; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::ipv4RemoteAddress() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_ipv4RemoteAddress) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_ipv4RemoteAddress = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_ipv4RemoteAddress = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_ipv4RemoteAddress; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_ipv4RemoteAddress; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::ipv4RemoteAddress() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ipv4RemoteAddress in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_ipv4RemoteAddress) TTCN_error("Accessing non-selected field ipv4RemoteAddress in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_ipv4RemoteAddress; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::ipv6RemoteAddress() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_ipv6RemoteAddress) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_ipv6RemoteAddress = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_ipv6RemoteAddress = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_ipv6RemoteAddress; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_ipv6RemoteAddress; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::ipv6RemoteAddress() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ipv6RemoteAddress in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_ipv6RemoteAddress) TTCN_error("Accessing non-selected field ipv6RemoteAddress in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_ipv6RemoteAddress; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::protocolIdNextHeader() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_protocolIdNextHeader) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_protocolIdNextHeader = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_protocolIdNextHeader = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_protocolIdNextHeader; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_protocolIdNextHeader; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::protocolIdNextHeader() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field protocolIdNextHeader in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_protocolIdNextHeader) TTCN_error("Accessing non-selected field protocolIdNextHeader in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_protocolIdNextHeader; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::singleLocalPort() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_singleLocalPort) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_singleLocalPort = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_singleLocalPort = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_singleLocalPort; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_singleLocalPort; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::singleLocalPort() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field singleLocalPort in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_singleLocalPort) TTCN_error("Accessing non-selected field singleLocalPort in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_singleLocalPort; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::localPortRange() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_localPortRange) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_localPortRange = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_localPortRange = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_localPortRange; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_localPortRange; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::localPortRange() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field localPortRange in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_localPortRange) TTCN_error("Accessing non-selected field localPortRange in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_localPortRange; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::singleRemotePort() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_singleRemotePort) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_singleRemotePort = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_singleRemotePort = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_singleRemotePort; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_singleRemotePort; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::singleRemotePort() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field singleRemotePort in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_singleRemotePort) TTCN_error("Accessing non-selected field singleRemotePort in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_singleRemotePort; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::remotePortRange() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_remotePortRange) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_remotePortRange = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_remotePortRange = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_remotePortRange; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_remotePortRange; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::remotePortRange() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field remotePortRange in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_remotePortRange) TTCN_error("Accessing non-selected field remotePortRange in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_remotePortRange; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::securityParameterIndex() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_securityParameterIndex) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_securityParameterIndex = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_securityParameterIndex = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_securityParameterIndex; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_securityParameterIndex; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::securityParameterIndex() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field securityParameterIndex in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_securityParameterIndex) TTCN_error("Accessing non-selected field securityParameterIndex in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_securityParameterIndex; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::typeOfServiceTrafficClass() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_typeOfServiceTrafficClass) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_typeOfServiceTrafficClass = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_typeOfServiceTrafficClass = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_typeOfServiceTrafficClass; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_typeOfServiceTrafficClass; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::typeOfServiceTrafficClass() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field typeOfServiceTrafficClass in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_typeOfServiceTrafficClass) TTCN_error("Accessing non-selected field typeOfServiceTrafficClass in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_typeOfServiceTrafficClass; +} + +OCTETSTRING_template& PacketFilterComponentValue_template::flowLabel() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PacketFilterComponentValue::ALT_flowLabel) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_flowLabel = new OCTETSTRING_template(ANY_VALUE); +else single_value.field_flowLabel = new OCTETSTRING_template; +single_value.union_selection = PacketFilterComponentValue::ALT_flowLabel; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_flowLabel; +} + +const OCTETSTRING_template& PacketFilterComponentValue_template::flowLabel() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field flowLabel in a non-specific template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +if (single_value.union_selection != PacketFilterComponentValue::ALT_flowLabel) TTCN_error("Accessing non-selected field flowLabel in a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return *single_value.field_flowLabel; +} + +boolean PacketFilterComponentValue_template::ischosen(PacketFilterComponentValue::union_selection_type checked_selection) const +{ +if (checked_selection == PacketFilterComponentValue::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == PacketFilterComponentValue::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void PacketFilterComponentValue_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void PacketFilterComponentValue_template::set_value(template_sel other_value) { *this = other_value; } +void PacketFilterComponentValue_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* PacketFilterComponentValue_template::clone() const { return new PacketFilterComponentValue_template(*this); } +const TTCN_Typedescriptor_t* PacketFilterComponentValue_template::get_descriptor() const { return &PacketFilterComponentValue_descr_; } +boolean PacketFilterComponentValue_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void PacketFilterComponentValue_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void PacketFilterComponentValue_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +TTCN_Logger::log_event_str("{ ipv4RemoteAddress := "); +single_value.field_ipv4RemoteAddress->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +TTCN_Logger::log_event_str("{ ipv6RemoteAddress := "); +single_value.field_ipv6RemoteAddress->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +TTCN_Logger::log_event_str("{ protocolIdNextHeader := "); +single_value.field_protocolIdNextHeader->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PacketFilterComponentValue::ALT_singleLocalPort: +TTCN_Logger::log_event_str("{ singleLocalPort := "); +single_value.field_singleLocalPort->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PacketFilterComponentValue::ALT_localPortRange: +TTCN_Logger::log_event_str("{ localPortRange := "); +single_value.field_localPortRange->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PacketFilterComponentValue::ALT_singleRemotePort: +TTCN_Logger::log_event_str("{ singleRemotePort := "); +single_value.field_singleRemotePort->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PacketFilterComponentValue::ALT_remotePortRange: +TTCN_Logger::log_event_str("{ remotePortRange := "); +single_value.field_remotePortRange->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PacketFilterComponentValue::ALT_securityParameterIndex: +TTCN_Logger::log_event_str("{ securityParameterIndex := "); +single_value.field_securityParameterIndex->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +TTCN_Logger::log_event_str("{ typeOfServiceTrafficClass := "); +single_value.field_typeOfServiceTrafficClass->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PacketFilterComponentValue::ALT_flowLabel: +TTCN_Logger::log_event_str("{ flowLabel := "); +single_value.field_flowLabel->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void PacketFilterComponentValue_template::log_match(const PacketFilterComponentValue& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".ipv4RemoteAddress"); +single_value.field_ipv4RemoteAddress->log_match(match_value.ipv4RemoteAddress(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ ipv4RemoteAddress := "); +single_value.field_ipv4RemoteAddress->log_match(match_value.ipv4RemoteAddress(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".ipv6RemoteAddress"); +single_value.field_ipv6RemoteAddress->log_match(match_value.ipv6RemoteAddress(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ ipv6RemoteAddress := "); +single_value.field_ipv6RemoteAddress->log_match(match_value.ipv6RemoteAddress(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".protocolIdNextHeader"); +single_value.field_protocolIdNextHeader->log_match(match_value.protocolIdNextHeader(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ protocolIdNextHeader := "); +single_value.field_protocolIdNextHeader->log_match(match_value.protocolIdNextHeader(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PacketFilterComponentValue::ALT_singleLocalPort: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".singleLocalPort"); +single_value.field_singleLocalPort->log_match(match_value.singleLocalPort(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ singleLocalPort := "); +single_value.field_singleLocalPort->log_match(match_value.singleLocalPort(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PacketFilterComponentValue::ALT_localPortRange: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".localPortRange"); +single_value.field_localPortRange->log_match(match_value.localPortRange(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ localPortRange := "); +single_value.field_localPortRange->log_match(match_value.localPortRange(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PacketFilterComponentValue::ALT_singleRemotePort: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".singleRemotePort"); +single_value.field_singleRemotePort->log_match(match_value.singleRemotePort(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ singleRemotePort := "); +single_value.field_singleRemotePort->log_match(match_value.singleRemotePort(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PacketFilterComponentValue::ALT_remotePortRange: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".remotePortRange"); +single_value.field_remotePortRange->log_match(match_value.remotePortRange(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ remotePortRange := "); +single_value.field_remotePortRange->log_match(match_value.remotePortRange(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PacketFilterComponentValue::ALT_securityParameterIndex: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".securityParameterIndex"); +single_value.field_securityParameterIndex->log_match(match_value.securityParameterIndex(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ securityParameterIndex := "); +single_value.field_securityParameterIndex->log_match(match_value.securityParameterIndex(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".typeOfServiceTrafficClass"); +single_value.field_typeOfServiceTrafficClass->log_match(match_value.typeOfServiceTrafficClass(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ typeOfServiceTrafficClass := "); +single_value.field_typeOfServiceTrafficClass->log_match(match_value.typeOfServiceTrafficClass(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PacketFilterComponentValue::ALT_flowLabel: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".flowLabel"); +single_value.field_flowLabel->log_match(match_value.flowLabel(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ flowLabel := "); +single_value.field_flowLabel->log_match(match_value.flowLabel(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void PacketFilterComponentValue_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +single_value.field_ipv4RemoteAddress->encode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +single_value.field_ipv6RemoteAddress->encode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +single_value.field_protocolIdNextHeader->encode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_singleLocalPort: +single_value.field_singleLocalPort->encode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_localPortRange: +single_value.field_localPortRange->encode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_singleRemotePort: +single_value.field_singleRemotePort->encode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_remotePortRange: +single_value.field_remotePortRange->encode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_securityParameterIndex: +single_value.field_securityParameterIndex->encode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +single_value.field_typeOfServiceTrafficClass->encode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_flowLabel: +single_value.field_flowLabel->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +} + +void PacketFilterComponentValue_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = PacketFilterComponentValue::UNBOUND_VALUE; +PacketFilterComponentValue::union_selection_type new_selection = (PacketFilterComponentValue::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +single_value.field_ipv4RemoteAddress = new OCTETSTRING_template; +single_value.field_ipv4RemoteAddress->decode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +single_value.field_ipv6RemoteAddress = new OCTETSTRING_template; +single_value.field_ipv6RemoteAddress->decode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +single_value.field_protocolIdNextHeader = new OCTETSTRING_template; +single_value.field_protocolIdNextHeader->decode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_singleLocalPort: +single_value.field_singleLocalPort = new OCTETSTRING_template; +single_value.field_singleLocalPort->decode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_localPortRange: +single_value.field_localPortRange = new OCTETSTRING_template; +single_value.field_localPortRange->decode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_singleRemotePort: +single_value.field_singleRemotePort = new OCTETSTRING_template; +single_value.field_singleRemotePort->decode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_remotePortRange: +single_value.field_remotePortRange = new OCTETSTRING_template; +single_value.field_remotePortRange->decode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_securityParameterIndex: +single_value.field_securityParameterIndex = new OCTETSTRING_template; +single_value.field_securityParameterIndex->decode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +single_value.field_typeOfServiceTrafficClass = new OCTETSTRING_template; +single_value.field_typeOfServiceTrafficClass->decode_text(text_buf); +break; +case PacketFilterComponentValue::ALT_flowLabel: +single_value.field_flowLabel = new OCTETSTRING_template; +single_value.field_flowLabel->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new PacketFilterComponentValue_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +} + +boolean PacketFilterComponentValue_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean PacketFilterComponentValue_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NAS_CommonTypeDefs.PacketFilterComponentValue'"); + } + if (strcmp("ipv4RemoteAddress", param_field) == 0) { + ipv4RemoteAddress().set_param(param); + return; + } else if (strcmp("ipv6RemoteAddress", param_field) == 0) { + ipv6RemoteAddress().set_param(param); + return; + } else if (strcmp("protocolIdNextHeader", param_field) == 0) { + protocolIdNextHeader().set_param(param); + return; + } else if (strcmp("singleLocalPort", param_field) == 0) { + singleLocalPort().set_param(param); + return; + } else if (strcmp("localPortRange", param_field) == 0) { + localPortRange().set_param(param); + return; + } else if (strcmp("singleRemotePort", param_field) == 0) { + singleRemotePort().set_param(param); + return; + } else if (strcmp("remotePortRange", param_field) == 0) { + remotePortRange().set_param(param); + return; + } else if (strcmp("securityParameterIndex", param_field) == 0) { + securityParameterIndex().set_param(param); + return; + } else if (strcmp("typeOfServiceTrafficClass", param_field) == 0) { + typeOfServiceTrafficClass().set_param(param); + return; + } else if (strcmp("flowLabel", param_field) == 0) { + flowLabel().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NAS_CommonTypeDefs.PacketFilterComponentValue'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + PacketFilterComponentValue_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NAS_CommonTypeDefs.PacketFilterComponentValue"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "ipv4RemoteAddress")) { + ipv4RemoteAddress().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "ipv6RemoteAddress")) { + ipv6RemoteAddress().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "protocolIdNextHeader")) { + protocolIdNextHeader().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "singleLocalPort")) { + singleLocalPort().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "localPortRange")) { + localPortRange().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "singleRemotePort")) { + singleRemotePort().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "remotePortRange")) { + remotePortRange().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "securityParameterIndex")) { + securityParameterIndex().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "typeOfServiceTrafficClass")) { + typeOfServiceTrafficClass().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "flowLabel")) { + flowLabel().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NAS_CommonTypeDefs.PacketFilterComponentValue.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + PacketFilterComponentValue_template* precondition = new PacketFilterComponentValue_template; + precondition->set_param(*m_p->get_elem(0)); + PacketFilterComponentValue_template* implied_template = new PacketFilterComponentValue_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = PacketFilterComponentValue_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NAS_CommonTypeDefs.PacketFilterComponentValue"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* PacketFilterComponentValue_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NAS_CommonTypeDefs.PacketFilterComponentValue'"); + } + if (strcmp("ipv4RemoteAddress", param_field) == 0) { + return ipv4RemoteAddress().get_param(param_name); + } else if (strcmp("ipv6RemoteAddress", param_field) == 0) { + return ipv6RemoteAddress().get_param(param_name); + } else if (strcmp("protocolIdNextHeader", param_field) == 0) { + return protocolIdNextHeader().get_param(param_name); + } else if (strcmp("singleLocalPort", param_field) == 0) { + return singleLocalPort().get_param(param_name); + } else if (strcmp("localPortRange", param_field) == 0) { + return localPortRange().get_param(param_name); + } else if (strcmp("singleRemotePort", param_field) == 0) { + return singleRemotePort().get_param(param_name); + } else if (strcmp("remotePortRange", param_field) == 0) { + return remotePortRange().get_param(param_name); + } else if (strcmp("securityParameterIndex", param_field) == 0) { + return securityParameterIndex().get_param(param_name); + } else if (strcmp("typeOfServiceTrafficClass", param_field) == 0) { + return typeOfServiceTrafficClass().get_param(param_name); + } else if (strcmp("flowLabel", param_field) == 0) { + return flowLabel().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `PacketFilterComponentValue'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case PacketFilterComponentValue::ALT_ipv4RemoteAddress: + mp_field = single_value.field_ipv4RemoteAddress->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("ipv4RemoteAddress"))); + break; + case PacketFilterComponentValue::ALT_ipv6RemoteAddress: + mp_field = single_value.field_ipv6RemoteAddress->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("ipv6RemoteAddress"))); + break; + case PacketFilterComponentValue::ALT_protocolIdNextHeader: + mp_field = single_value.field_protocolIdNextHeader->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("protocolIdNextHeader"))); + break; + case PacketFilterComponentValue::ALT_singleLocalPort: + mp_field = single_value.field_singleLocalPort->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("singleLocalPort"))); + break; + case PacketFilterComponentValue::ALT_localPortRange: + mp_field = single_value.field_localPortRange->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("localPortRange"))); + break; + case PacketFilterComponentValue::ALT_singleRemotePort: + mp_field = single_value.field_singleRemotePort->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("singleRemotePort"))); + break; + case PacketFilterComponentValue::ALT_remotePortRange: + mp_field = single_value.field_remotePortRange->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("remotePortRange"))); + break; + case PacketFilterComponentValue::ALT_securityParameterIndex: + mp_field = single_value.field_securityParameterIndex->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("securityParameterIndex"))); + break; + case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: + mp_field = single_value.field_typeOfServiceTrafficClass->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("typeOfServiceTrafficClass"))); + break; + case PacketFilterComponentValue::ALT_flowLabel: + mp_field = single_value.field_flowLabel->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("flowLabel"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void PacketFilterComponentValue_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case PacketFilterComponentValue::ALT_ipv4RemoteAddress: +single_value.field_ipv4RemoteAddress->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +case PacketFilterComponentValue::ALT_ipv6RemoteAddress: +single_value.field_ipv6RemoteAddress->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +case PacketFilterComponentValue::ALT_protocolIdNextHeader: +single_value.field_protocolIdNextHeader->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +case PacketFilterComponentValue::ALT_singleLocalPort: +single_value.field_singleLocalPort->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +case PacketFilterComponentValue::ALT_localPortRange: +single_value.field_localPortRange->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +case PacketFilterComponentValue::ALT_singleRemotePort: +single_value.field_singleRemotePort->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +case PacketFilterComponentValue::ALT_remotePortRange: +single_value.field_remotePortRange->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +case PacketFilterComponentValue::ALT_securityParameterIndex: +single_value.field_securityParameterIndex->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +case PacketFilterComponentValue::ALT_typeOfServiceTrafficClass: +single_value.field_typeOfServiceTrafficClass->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +case PacketFilterComponentValue::ALT_flowLabel: +single_value.field_flowLabel->check_restriction(t_res, t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NAS_CommonTypeDefs.PacketFilterComponentValue."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NAS_CommonTypeDefs.PacketFilterComponentValue"); +} + +void PacketFilterComponent::init_vec() { fld_vec[0]=&field_id; fld_vec[1]=&field_packetFilterComponentValue; } + +PacketFilterComponent::PacketFilterComponent() : Record_Type() { init_vec(); } + +PacketFilterComponent::PacketFilterComponent(const PacketFilterComponent& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_packetFilterComponentValue.is_bound() ) + field_packetFilterComponentValue = other_value.field_packetFilterComponentValue; +init_vec(); +} + +PacketFilterComponent::PacketFilterComponent(const OCTETSTRING& par_id, + const PacketFilterComponentValue& par_packetFilterComponentValue) : field_id(par_id), + field_packetFilterComponentValue(par_packetFilterComponentValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PacketFilterComponent::get_descriptor() const { return &PacketFilterComponent_descr_; } +const TTCN_Typedescriptor_t* PacketFilterComponent::fld_descriptors[] = { &PacketFilterComponent_id_descr_, &PacketFilterComponentValue_descr_ }; +const TTCN_Typedescriptor_t* PacketFilterComponent::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PacketFilterComponent::fld_names[] = { "id", "packetFilterComponentValue" }; +const char* PacketFilterComponent::fld_name(int p_index) const { return fld_names[p_index]; } + +int PacketFilterComponent::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, boolean no_err, int, boolean, const RAW_Force_Omit* force_omit) +{ (void)no_err; + int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding); + limit-=prepaddlength; + size_t last_decoded_pos = p_buf.get_pos_bit(); + int decoded_length = 0; + int decoded_field_length = 0; + raw_order_t local_top_order; + if(p_td.raw->top_bit_order==TOP_BIT_INHERITED)local_top_order=top_bit_ord; + else if(p_td.raw->top_bit_order==TOP_BIT_RIGHT)local_top_order=ORDER_MSB; + else local_top_order=ORDER_LSB; + RAW_Force_Omit field_0_force_omit(0, force_omit, PacketFilterComponent_id_descr_.raw->forceomit); + decoded_field_length = field_id.RAW_decode(PacketFilterComponent_id_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_0_force_omit); + if (decoded_field_length < 0) return decoded_field_length; + decoded_length+=decoded_field_length; + limit-=decoded_field_length; + last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit()); + RAW_Force_Omit field_1_force_omit(1, force_omit, PacketFilterComponentValue_descr_.raw->forceomit); + decoded_field_length = field_packetFilterComponentValue.RAW_decode(PacketFilterComponentValue_descr_, p_buf, limit, local_top_order, no_err, -1, TRUE, &field_1_force_omit); + if (decoded_field_length < 0) return decoded_field_length; + decoded_length+=decoded_field_length; + limit-=decoded_field_length; + last_decoded_pos=bigger(last_decoded_pos, p_buf.get_pos_bit()); + p_buf.set_pos_bit(last_decoded_pos); + return decoded_length+prepaddlength+p_buf.increase_pos_padd(p_td.raw->padding); +} + +int PacketFilterComponent::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf) const { + if (err_descr) return RAW_encode_negtest(err_descr, p_td, myleaf); + if (!is_bound()) TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value."); + int encoded_length = 0; + myleaf.isleaf = FALSE; + myleaf.body.node.num_of_nodes = 2; + myleaf.body.node.nodes = init_nodes_of_enc_tree(2); + myleaf.body.node.nodes[0] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 0, PacketFilterComponent_id_descr_.raw); + myleaf.body.node.nodes[1] = new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), 1, PacketFilterComponentValue_descr_.raw); + encoded_length += field_id.RAW_encode(PacketFilterComponent_id_descr_, *myleaf.body.node.nodes[0]); + encoded_length += field_packetFilterComponentValue.RAW_encode(PacketFilterComponentValue_descr_, *myleaf.body.node.nodes[1]); + return myleaf.length = encoded_length; +} + +int PacketFilterComponent::RAW_encode_negtest(const Erroneous_descriptor_t *p_err_descr, const TTCN_Typedescriptor_t& /*p_td*/, RAW_enc_tree& myleaf) const +{ + if (!is_bound()) TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND, "Encoding an unbound value."); + int idx_map[2]; + int idx_map_before[2]; + int idx_map_after[2]; + bool altered_[2]; + for (int idx_map_idx = 0; idx_map_idx < 2; ++idx_map_idx) { + idx_map[idx_map_idx] = -1; + idx_map_before[idx_map_idx] = -1; + idx_map_after[idx_map_idx] = -1; + altered_[idx_map_idx] = false; + }; + (void)idx_map; + (void)idx_map_before; + (void)idx_map_after; + (void)altered_; + int encoded_length = 0; + int num_fields = get_count(); + myleaf.isleaf = FALSE; + myleaf.body.node.num_of_nodes = 0; + for (int field_idx = 0; field_idx < num_fields; ++field_idx) { + if ((p_err_descr->omit_before != -1) && + (field_idx < p_err_descr->omit_before)) { + altered_[field_idx] = true; + continue; + } + const Erroneous_values_t *err_vals = p_err_descr->get_field_err_values(field_idx); + const Erroneous_descriptor_t *emb_descr = p_err_descr->get_field_emb_descr(field_idx); + if (err_vals && err_vals->before) { + idx_map_before[field_idx] = myleaf.body.node.num_of_nodes; + ++myleaf.body.node.num_of_nodes; + } + if (err_vals && err_vals->value) { + if (err_vals->value->errval) { + idx_map[field_idx] = myleaf.body.node.num_of_nodes; + ++myleaf.body.node.num_of_nodes; + } + altered_[field_idx] = true; + } else { + if (emb_descr) altered_[field_idx] = true; + idx_map[field_idx] = myleaf.body.node.num_of_nodes; + ++myleaf.body.node.num_of_nodes; + } + if (err_vals && err_vals->after) { + idx_map_after[field_idx] = myleaf.body.node.num_of_nodes; + ++myleaf.body.node.num_of_nodes; + } + if ((p_err_descr->omit_after != -1) && + (field_idx >= p_err_descr->omit_after)) { + ++field_idx; + while (field_idx < num_fields) { + altered_[field_idx] = true; + ++field_idx; + } + break; + } + } + myleaf.body.node.nodes = + init_nodes_of_enc_tree(myleaf.body.node.num_of_nodes); + TTCN_EncDec_ErrorContext e_c; + int node_pos = 0; + int next_optional_idx = 0; + const int *my_optional_indexes = get_optional_indexes(); + for (int field_idx = 0; field_idx < num_fields; ++field_idx) { + boolean is_optional_field = my_optional_indexes && + (my_optional_indexes[next_optional_idx] == field_idx); + if ((p_err_descr->omit_before != -1) && + (field_idx < p_err_descr->omit_before)) { + if (is_optional_field) ++next_optional_idx; + continue; + } + const Erroneous_values_t *err_vals = + p_err_descr->get_field_err_values(field_idx); + if (err_vals && err_vals->before) { + if (err_vals->before->errval == NULL) + TTCN_error("internal error: erroneous before value missing"); + if (err_vals->before->raw) { + myleaf.body.node.nodes[node_pos] = + new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), + node_pos, err_vals->before->errval->get_descriptor()->raw); + } else { + if (err_vals->before->type_descr == NULL) + TTCN_error("internal error: erroneous before typedescriptor missing"); + myleaf.body.node.nodes[node_pos] = + new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), + node_pos, err_vals->before->type_descr->raw); + } + ++node_pos; + } + if (err_vals && err_vals->value) { + if (err_vals->value->errval) { + e_c.set_msg("'%s'(erroneous value): ", fld_name(field_idx)); + if (err_vals->value->raw) { + myleaf.body.node.nodes[node_pos] = + new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), + node_pos, err_vals->value->errval->get_descriptor()->raw); + } else { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + myleaf.body.node.nodes[node_pos] = + new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), + node_pos, err_vals->value->type_descr->raw); + } + ++node_pos; + } + } else { + e_c.set_msg("'%s': ", fld_name(field_idx)); + if (!is_optional_field || get_at(field_idx)->ispresent()) { + myleaf.body.node.nodes[node_pos] = + new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), + node_pos, fld_descr(field_idx)->raw); + } else { + // `omitted' field. + myleaf.body.node.nodes[node_pos] = NULL; + } + ++node_pos; + } + if (err_vals && err_vals->after) { + if (err_vals->after->errval == NULL) + TTCN_error("internal error: erroneous before value missing"); + if (err_vals->after->raw) { + myleaf.body.node.nodes[node_pos] = + new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), + node_pos, err_vals->after->errval->get_descriptor()->raw); + } else { + if (err_vals->after->type_descr == NULL) + TTCN_error("internal error: erroneous after typedescriptor missing"); + myleaf.body.node.nodes[node_pos] = + new RAW_enc_tree(TRUE, &myleaf, &(myleaf.curr_pos), + node_pos, err_vals->after->type_descr->raw); + } + ++node_pos; + } + if (is_optional_field) ++next_optional_idx; + if ((p_err_descr->omit_after != -1) && + (field_idx >= p_err_descr->omit_after)) + break; + } + if (!altered_[0] && idx_map[0] >= 0) encoded_length += field_id.RAW_encode(PacketFilterComponent_id_descr_, *myleaf.body.node.nodes[idx_map[0]]); + if (!altered_[1] && idx_map[1] >= 0) encoded_length += field_packetFilterComponentValue.RAW_encode(PacketFilterComponentValue_descr_, *myleaf.body.node.nodes[idx_map[1]]); + node_pos = 0; + next_optional_idx = 0; + for (int field_idx = 0; field_idx < num_fields; ++field_idx) { + boolean is_optional_field = my_optional_indexes && + (my_optional_indexes[next_optional_idx] == field_idx); + if ((p_err_descr->omit_before != -1) && + (field_idx < p_err_descr->omit_before)) { + if (is_optional_field) ++next_optional_idx; + continue; + } + const Erroneous_values_t *err_vals = p_err_descr->get_field_err_values(field_idx); + const Erroneous_descriptor_t *emb_descr = p_err_descr->get_field_emb_descr(field_idx); + if (err_vals && err_vals->before) { + if (err_vals->before->errval == NULL) + TTCN_error("internal error: erroneous before value missing"); + if (err_vals->before->raw) { + encoded_length += err_vals->before->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[node_pos++]); + } else { + if (err_vals->before->type_descr == NULL) + TTCN_error("internal error: erroneous before typedescriptor missing"); + encoded_length += err_vals->before->errval->RAW_encode(*(err_vals->before->type_descr), + *myleaf.body.node.nodes[node_pos++]); + } + } + if (err_vals && err_vals->value) { + if (err_vals->value->errval) { + e_c.set_msg("'%s'(erroneous value): ", fld_name(field_idx)); + if (err_vals->value->raw) { + encoded_length += err_vals->value->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[node_pos++]); + } else { + if (err_vals->value->type_descr == NULL) + TTCN_error("internal error: erroneous value typedescriptor missing"); + encoded_length += err_vals->value->errval->RAW_encode(*(err_vals->value->type_descr), *myleaf.body.node.nodes[node_pos++]); + } + } + } else { + e_c.set_msg("'%s': ", fld_name(field_idx)); + if (!is_optional_field || get_at(field_idx)->ispresent()) { + const Base_Type *curr_field = is_optional_field ? get_at(field_idx)->get_opt_value() : get_at(field_idx); + if (emb_descr) { + encoded_length += curr_field + ->RAW_encode_negtest(emb_descr, *fld_descr(field_idx), + *myleaf.body.node.nodes[node_pos]); + } + } else { + // `omitted' field. + myleaf.body.node.nodes[node_pos] = NULL; + } + ++node_pos; + } + if (err_vals && err_vals->after) { + if (err_vals->after->errval == NULL) + TTCN_error("internal error: erroneous before value missing"); + if (err_vals->after->raw) { + encoded_length += err_vals->after->errval->RAW_encode_negtest_raw(*myleaf.body.node.nodes[node_pos++]); + } else { + if (err_vals->after->type_descr == NULL) + TTCN_error("internal error: erroneous after typedescriptor missing"); + encoded_length += err_vals->after->errval->RAW_encode(*(err_vals->after->type_descr), *myleaf.body.node.nodes[node_pos++]); + } + } + if (is_optional_field) ++next_optional_idx; + if ((p_err_descr->omit_after != -1) && + (field_idx >= p_err_descr->omit_after)) + break; + } + return myleaf.length = encoded_length; +} + +void PacketFilterComponent_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new PacketFilterComponentValue_template(ANY_VALUE) : new PacketFilterComponentValue_template; +} +} + +PacketFilterComponent_template::PacketFilterComponent_template(PacketFilterComponent_template* p_precondition, PacketFilterComponent_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PacketFilterComponent_template::PacketFilterComponent_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PacketFilterComponent_template::~PacketFilterComponent_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PacketFilterComponent_template::match_dynamic(const Base_Type* match_value) const +{ +const PacketFilterComponent* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PacketFilterComponent_template& PacketFilterComponent_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PacketFilterComponent_template& PacketFilterComponent_template::operator=(const PacketFilterComponent& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PacketFilterComponent_template& PacketFilterComponent_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PacketFilterComponent_template& PacketFilterComponent_template::operator=(const PacketFilterComponent_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PacketFilterComponent PacketFilterComponent_template::valueof() const +{ +PacketFilterComponent ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PacketFilterComponent_template::id() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PacketFilterComponent_template::id() const { return *(static_cast(get_at(0))); } +PacketFilterComponentValue_template& PacketFilterComponent_template::packetFilterComponentValue() { return *(static_cast(get_at(1))); } +const PacketFilterComponentValue_template& PacketFilterComponent_template::packetFilterComponentValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* PacketFilterComponent_template::get_descriptor() const { return &PacketFilterComponent_descr_; } +const char* PacketFilterComponent_template::fld_name(int p_index) const { return PacketFilterComponent::fld_names[p_index]; } + +const TftParameter TrafficFlowTemplate_parameterList::UNBOUND_ELEM; +TftParameter& TrafficFlowTemplate_parameterList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +TftParameter& TrafficFlowTemplate_parameterList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const TftParameter& TrafficFlowTemplate_parameterList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const TftParameter& TrafficFlowTemplate_parameterList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::operator<<=(const INTEGER& rotate_count) const +{ +TrafficFlowTemplate_parameterList rec_of; +return *((TrafficFlowTemplate_parameterList*)rotl(rotate_count, &rec_of)); +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::operator>>=(const INTEGER& rotate_count) const +{ +TrafficFlowTemplate_parameterList rec_of; +return *((TrafficFlowTemplate_parameterList*)rotr(rotate_count, &rec_of)); +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::operator>>=(int rotate_count) const +{ +TrafficFlowTemplate_parameterList rec_of; +return *((TrafficFlowTemplate_parameterList*)rotr(rotate_count, &rec_of)); +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::operator+(const TrafficFlowTemplate_parameterList& other_value) const +{ +TrafficFlowTemplate_parameterList rec_of; +return *((TrafficFlowTemplate_parameterList*)concat(&other_value, &rec_of)); +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const TrafficFlowTemplate_parameterList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.TrafficFlowTemplate.parameterList concatenation."); +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::operator+(null_type) const +{ +return *this; +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::substr(int index, int returncount) const +{ +TrafficFlowTemplate_parameterList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::replace(int index, int len, const TrafficFlowTemplate_parameterList& repl) const +{ +TrafficFlowTemplate_parameterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList::replace(int index, int len, const TrafficFlowTemplate_parameterList_template& repl) const +{ +TrafficFlowTemplate_parameterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* TrafficFlowTemplate_parameterList::create_elem() const { return new TftParameter; } +const Base_Type* TrafficFlowTemplate_parameterList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* TrafficFlowTemplate_parameterList::get_descriptor() const { return &TrafficFlowTemplate_parameterList_descr_; } +TrafficFlowTemplate_parameterList_template::TrafficFlowTemplate_parameterList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +TrafficFlowTemplate_parameterList_template::TrafficFlowTemplate_parameterList_template(TrafficFlowTemplate_parameterList_template* p_precondition, TrafficFlowTemplate_parameterList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TrafficFlowTemplate_parameterList_template::TrafficFlowTemplate_parameterList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TrafficFlowTemplate_parameterList_template::~TrafficFlowTemplate_parameterList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TrafficFlowTemplate_parameterList_template::match_dynamic(const Base_Type* match_value) const +{ +const TrafficFlowTemplate_parameterList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +TrafficFlowTemplate_parameterList_template& TrafficFlowTemplate_parameterList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TrafficFlowTemplate_parameterList_template& TrafficFlowTemplate_parameterList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +TrafficFlowTemplate_parameterList_template& TrafficFlowTemplate_parameterList_template::operator=(const TrafficFlowTemplate_parameterList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TrafficFlowTemplate_parameterList_template& TrafficFlowTemplate_parameterList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TrafficFlowTemplate_parameterList_template& TrafficFlowTemplate_parameterList_template::operator=(const TrafficFlowTemplate_parameterList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TrafficFlowTemplate_parameterList_template TrafficFlowTemplate_parameterList_template::operator+(const TrafficFlowTemplate_parameterList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return TrafficFlowTemplate_parameterList_template(ANY_VALUE); +} +TrafficFlowTemplate_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +TrafficFlowTemplate_parameterList_template TrafficFlowTemplate_parameterList_template::operator+(const TrafficFlowTemplate_parameterList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +TrafficFlowTemplate_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +TrafficFlowTemplate_parameterList_template TrafficFlowTemplate_parameterList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return TrafficFlowTemplate_parameterList_template(ANY_VALUE); +} +TrafficFlowTemplate_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +TrafficFlowTemplate_parameterList_template TrafficFlowTemplate_parameterList_template::operator+(null_type) const +{ +return *this; +} + +TftParameter_template& TrafficFlowTemplate_parameterList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +TftParameter_template& TrafficFlowTemplate_parameterList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const TftParameter_template& TrafficFlowTemplate_parameterList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const TftParameter_template& TrafficFlowTemplate_parameterList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList_template::valueof() const +{ +TrafficFlowTemplate_parameterList ret_val; +valueofv(&ret_val); +return ret_val; +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList_template::substr(int index, int returncount) const +{ +TrafficFlowTemplate_parameterList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList_template::replace(int index, int len, const TrafficFlowTemplate_parameterList_template& repl) const +{ +TrafficFlowTemplate_parameterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +TrafficFlowTemplate_parameterList TrafficFlowTemplate_parameterList_template::replace(int index, int len, const TrafficFlowTemplate_parameterList& repl) const +{ +TrafficFlowTemplate_parameterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* TrafficFlowTemplate_parameterList_template::create_elem() const { return new TftParameter_template; } +const TTCN_Typedescriptor_t* TrafficFlowTemplate_parameterList_template::get_descriptor() const { return &TrafficFlowTemplate_parameterList_descr_; } +void TftParameter::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_contents; } + +TftParameter::TftParameter() : Record_Type() { init_vec(); } + +TftParameter::TftParameter(const TftParameter& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_contents.is_bound() ) + field_contents = other_value.field_contents; +init_vec(); +} + +TftParameter::TftParameter(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_contents) : field_iei(par_iei), + field_iel(par_iel), + field_contents(par_contents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TftParameter::get_descriptor() const { return &TftParameter_descr_; } +const TTCN_Typedescriptor_t* TftParameter::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* TftParameter::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TftParameter::fld_names[] = { "iei", "iel", "contents" }; +const char* TftParameter::fld_name(int p_index) const { return fld_names[p_index]; } + +void TftParameter_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +TftParameter_template::TftParameter_template(TftParameter_template* p_precondition, TftParameter_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TftParameter_template::TftParameter_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TftParameter_template::~TftParameter_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TftParameter_template::match_dynamic(const Base_Type* match_value) const +{ +const TftParameter* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TftParameter_template& TftParameter_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TftParameter_template& TftParameter_template::operator=(const TftParameter& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TftParameter_template& TftParameter_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TftParameter_template& TftParameter_template::operator=(const TftParameter_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TftParameter TftParameter_template::valueof() const +{ +TftParameter ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& TftParameter_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& TftParameter_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& TftParameter_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& TftParameter_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& TftParameter_template::contents() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& TftParameter_template::contents() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* TftParameter_template::get_descriptor() const { return &TftParameter_descr_; } +const char* TftParameter_template::fld_name(int p_index) const { return TftParameter::fld_names[p_index]; } +void UE__NetworkCap::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_eeaCap; fld_vec[3]=&field_eiaCap; fld_vec[4]=&field_ueaCap; fld_vec[5]=&field_uiaCap; fld_vec[6]=&field_srvcc__LPP__ProSeCap; fld_vec[7]=&field_cIoT__proSeCap; fld_vec[8]=&field_cIoT__V2X; fld_vec[9]=&field_edt__WUS; fld_vec[10]=&field_musim; fld_vec[11]=&field_spare; } + +UE__NetworkCap::UE__NetworkCap() : Record_Type() { init_vec(); } + +UE__NetworkCap::UE__NetworkCap(const UE__NetworkCap& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_eeaCap.is_bound() ) + field_eeaCap = other_value.field_eeaCap; +if (other_value.field_eiaCap.is_bound() ) + field_eiaCap = other_value.field_eiaCap; +if (other_value.field_ueaCap.is_bound() ) + field_ueaCap = other_value.field_ueaCap; +if (other_value.field_uiaCap.is_bound() ) + field_uiaCap = other_value.field_uiaCap; +if (other_value.field_srvcc__LPP__ProSeCap.is_bound() ) + field_srvcc__LPP__ProSeCap = other_value.field_srvcc__LPP__ProSeCap; +if (other_value.field_cIoT__proSeCap.is_bound() ) + field_cIoT__proSeCap = other_value.field_cIoT__proSeCap; +if (other_value.field_cIoT__V2X.is_bound() ) + field_cIoT__V2X = other_value.field_cIoT__V2X; +if (other_value.field_edt__WUS.is_bound() ) + field_edt__WUS = other_value.field_edt__WUS; +if (other_value.field_musim.is_bound() ) + field_musim = other_value.field_musim; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +init_vec(); +} + +UE__NetworkCap::UE__NetworkCap(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_eeaCap, + const BITSTRING& par_eiaCap, + const OPTIONAL& par_ueaCap, + const OPTIONAL& par_uiaCap, + const OPTIONAL& par_srvcc__LPP__ProSeCap, + const OPTIONAL& par_cIoT__proSeCap, + const OPTIONAL& par_cIoT__V2X, + const OPTIONAL& par_edt__WUS, + const OPTIONAL& par_musim, + const OPTIONAL& par_spare) : field_iei(par_iei), + field_iel(par_iel), + field_eeaCap(par_eeaCap), + field_eiaCap(par_eiaCap), + field_ueaCap(par_ueaCap), + field_uiaCap(par_uiaCap), + field_srvcc__LPP__ProSeCap(par_srvcc__LPP__ProSeCap), + field_cIoT__proSeCap(par_cIoT__proSeCap), + field_cIoT__V2X(par_cIoT__V2X), + field_edt__WUS(par_edt__WUS), + field_musim(par_musim), + field_spare(par_spare) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__NetworkCap::get_descriptor() const { return &UE__NetworkCap_descr_; } +const TTCN_Typedescriptor_t* UE__NetworkCap::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* UE__NetworkCap::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__NetworkCap::fld_names[] = { "iei", "iel", "eeaCap", "eiaCap", "ueaCap", "uiaCap", "srvcc_LPP_ProSeCap", "cIoT_proSeCap", "cIoT_V2X", "edt_WUS", "musim", "spare" }; +const char* UE__NetworkCap::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__NetworkCap::optional_indexes[] = { 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, -1 }; +const int* UE__NetworkCap::get_optional_indexes() const { return optional_indexes; } + +const int UE__NetworkCap::optional_indexes_asn[] = { 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, -1 }; +const int* UE__NetworkCap::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__NetworkCap_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 12; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +UE__NetworkCap_template::UE__NetworkCap_template(UE__NetworkCap_template* p_precondition, UE__NetworkCap_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__NetworkCap_template::UE__NetworkCap_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__NetworkCap_template::~UE__NetworkCap_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__NetworkCap_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__NetworkCap* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__NetworkCap_template& UE__NetworkCap_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__NetworkCap_template& UE__NetworkCap_template::operator=(const UE__NetworkCap& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__NetworkCap_template& UE__NetworkCap_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__NetworkCap_template& UE__NetworkCap_template::operator=(const UE__NetworkCap_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__NetworkCap UE__NetworkCap_template::valueof() const +{ +UE__NetworkCap ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UE__NetworkCap_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UE__NetworkCap_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UE__NetworkCap_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UE__NetworkCap_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__NetworkCap_template::eeaCap() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__NetworkCap_template::eeaCap() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UE__NetworkCap_template::eiaCap() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UE__NetworkCap_template::eiaCap() const { return *(static_cast(get_at(3))); } +BITSTRING_template& UE__NetworkCap_template::ueaCap() { return *(static_cast(get_at(4))); } +const BITSTRING_template& UE__NetworkCap_template::ueaCap() const { return *(static_cast(get_at(4))); } +BITSTRING_template& UE__NetworkCap_template::uiaCap() { return *(static_cast(get_at(5))); } +const BITSTRING_template& UE__NetworkCap_template::uiaCap() const { return *(static_cast(get_at(5))); } +BITSTRING_template& UE__NetworkCap_template::srvcc__LPP__ProSeCap() { return *(static_cast(get_at(6))); } +const BITSTRING_template& UE__NetworkCap_template::srvcc__LPP__ProSeCap() const { return *(static_cast(get_at(6))); } +BITSTRING_template& UE__NetworkCap_template::cIoT__proSeCap() { return *(static_cast(get_at(7))); } +const BITSTRING_template& UE__NetworkCap_template::cIoT__proSeCap() const { return *(static_cast(get_at(7))); } +BITSTRING_template& UE__NetworkCap_template::cIoT__V2X() { return *(static_cast(get_at(8))); } +const BITSTRING_template& UE__NetworkCap_template::cIoT__V2X() const { return *(static_cast(get_at(8))); } +BITSTRING_template& UE__NetworkCap_template::edt__WUS() { return *(static_cast(get_at(9))); } +const BITSTRING_template& UE__NetworkCap_template::edt__WUS() const { return *(static_cast(get_at(9))); } +BITSTRING_template& UE__NetworkCap_template::musim() { return *(static_cast(get_at(10))); } +const BITSTRING_template& UE__NetworkCap_template::musim() const { return *(static_cast(get_at(10))); } +OCTETSTRING_template& UE__NetworkCap_template::spare() { return *(static_cast(get_at(11))); } +const OCTETSTRING_template& UE__NetworkCap_template::spare() const { return *(static_cast(get_at(11))); } +const TTCN_Typedescriptor_t* UE__NetworkCap_template::get_descriptor() const { return &UE__NetworkCap_descr_; } +const char* UE__NetworkCap_template::fld_name(int p_index) const { return UE__NetworkCap::fld_names[p_index]; } +void ReAttemptIndicator::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_eplmncValue; fld_vec[4]=&field_ratcValue; } + +ReAttemptIndicator::ReAttemptIndicator() : Record_Type() { init_vec(); } + +ReAttemptIndicator::ReAttemptIndicator(const ReAttemptIndicator& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_eplmncValue.is_bound() ) + field_eplmncValue = other_value.field_eplmncValue; +if (other_value.field_ratcValue.is_bound() ) + field_ratcValue = other_value.field_ratcValue; +init_vec(); +} + +ReAttemptIndicator::ReAttemptIndicator(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_eplmncValue, + const BITSTRING& par_ratcValue) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_eplmncValue(par_eplmncValue), + field_ratcValue(par_ratcValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ReAttemptIndicator::get_descriptor() const { return &ReAttemptIndicator_descr_; } +const TTCN_Typedescriptor_t* ReAttemptIndicator::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* ReAttemptIndicator::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ReAttemptIndicator::fld_names[] = { "iei", "iel", "spare", "eplmncValue", "ratcValue" }; +const char* ReAttemptIndicator::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ReAttemptIndicator::optional_indexes[] = { 0, 1, -1 }; +const int* ReAttemptIndicator::get_optional_indexes() const { return optional_indexes; } + +const int ReAttemptIndicator::optional_indexes_asn[] = { 0, 1, -1 }; +const int* ReAttemptIndicator::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ReAttemptIndicator_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ReAttemptIndicator_template::ReAttemptIndicator_template(ReAttemptIndicator_template* p_precondition, ReAttemptIndicator_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ReAttemptIndicator_template::ReAttemptIndicator_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ReAttemptIndicator_template::~ReAttemptIndicator_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ReAttemptIndicator_template::match_dynamic(const Base_Type* match_value) const +{ +const ReAttemptIndicator* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ReAttemptIndicator_template& ReAttemptIndicator_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ReAttemptIndicator_template& ReAttemptIndicator_template::operator=(const ReAttemptIndicator& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ReAttemptIndicator_template& ReAttemptIndicator_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ReAttemptIndicator_template& ReAttemptIndicator_template::operator=(const ReAttemptIndicator_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ReAttemptIndicator ReAttemptIndicator_template::valueof() const +{ +ReAttemptIndicator ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ReAttemptIndicator_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ReAttemptIndicator_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ReAttemptIndicator_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ReAttemptIndicator_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ReAttemptIndicator_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ReAttemptIndicator_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ReAttemptIndicator_template::eplmncValue() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ReAttemptIndicator_template::eplmncValue() const { return *(static_cast(get_at(3))); } +BITSTRING_template& ReAttemptIndicator_template::ratcValue() { return *(static_cast(get_at(4))); } +const BITSTRING_template& ReAttemptIndicator_template::ratcValue() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* ReAttemptIndicator_template::get_descriptor() const { return &ReAttemptIndicator_descr_; } +const char* ReAttemptIndicator_template::fld_name(int p_index) const { return ReAttemptIndicator::fld_names[p_index]; } +void AUTN::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_aUTN; } + +AUTN::AUTN() : Record_Type() { init_vec(); } + +AUTN::AUTN(const AUTN& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_aUTN.is_bound() ) + field_aUTN = other_value.field_aUTN; +init_vec(); +} + +AUTN::AUTN(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_aUTN) : field_iei(par_iei), + field_iel(par_iel), + field_aUTN(par_aUTN) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AUTN::get_descriptor() const { return &AUTN_descr_; } +const TTCN_Typedescriptor_t* AUTN::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B128__Type_descr_ }; +const TTCN_Typedescriptor_t* AUTN::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AUTN::fld_names[] = { "iei", "iel", "aUTN" }; +const char* AUTN::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AUTN::optional_indexes[] = { 0, -1 }; +const int* AUTN::get_optional_indexes() const { return optional_indexes; } + +const int AUTN::optional_indexes_asn[] = { 0, -1 }; +const int* AUTN::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AUTN_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AUTN_template::AUTN_template(AUTN_template* p_precondition, AUTN_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AUTN_template::AUTN_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AUTN_template::~AUTN_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AUTN_template::match_dynamic(const Base_Type* match_value) const +{ +const AUTN* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AUTN_template& AUTN_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AUTN_template& AUTN_template::operator=(const AUTN& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AUTN_template& AUTN_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AUTN_template& AUTN_template::operator=(const AUTN_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AUTN AUTN_template::valueof() const +{ +AUTN ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AUTN_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AUTN_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& AUTN_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& AUTN_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AUTN_template::aUTN() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AUTN_template::aUTN() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AUTN_template::get_descriptor() const { return &AUTN_descr_; } +const char* AUTN_template::fld_name(int p_index) const { return AUTN::fld_names[p_index]; } +void AuthenticationFailureParameter::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_auts; } + +AuthenticationFailureParameter::AuthenticationFailureParameter() : Record_Type() { init_vec(); } + +AuthenticationFailureParameter::AuthenticationFailureParameter(const AuthenticationFailureParameter& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_auts.is_bound() ) + field_auts = other_value.field_auts; +init_vec(); +} + +AuthenticationFailureParameter::AuthenticationFailureParameter(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_auts) : field_iei(par_iei), + field_iel(par_iel), + field_auts(par_auts) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AuthenticationFailureParameter::get_descriptor() const { return &AuthenticationFailureParameter_descr_; } +const TTCN_Typedescriptor_t* AuthenticationFailureParameter::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B112__Type_descr_ }; +const TTCN_Typedescriptor_t* AuthenticationFailureParameter::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AuthenticationFailureParameter::fld_names[] = { "iei", "iel", "auts" }; +const char* AuthenticationFailureParameter::fld_name(int p_index) const { return fld_names[p_index]; } + +void AuthenticationFailureParameter_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AuthenticationFailureParameter_template::AuthenticationFailureParameter_template(AuthenticationFailureParameter_template* p_precondition, AuthenticationFailureParameter_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AuthenticationFailureParameter_template::AuthenticationFailureParameter_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AuthenticationFailureParameter_template::~AuthenticationFailureParameter_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AuthenticationFailureParameter_template::match_dynamic(const Base_Type* match_value) const +{ +const AuthenticationFailureParameter* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AuthenticationFailureParameter_template& AuthenticationFailureParameter_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AuthenticationFailureParameter_template& AuthenticationFailureParameter_template::operator=(const AuthenticationFailureParameter& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AuthenticationFailureParameter_template& AuthenticationFailureParameter_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AuthenticationFailureParameter_template& AuthenticationFailureParameter_template::operator=(const AuthenticationFailureParameter_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AuthenticationFailureParameter AuthenticationFailureParameter_template::valueof() const +{ +AuthenticationFailureParameter ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AuthenticationFailureParameter_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AuthenticationFailureParameter_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& AuthenticationFailureParameter_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& AuthenticationFailureParameter_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AuthenticationFailureParameter_template::auts() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AuthenticationFailureParameter_template::auts() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AuthenticationFailureParameter_template::get_descriptor() const { return &AuthenticationFailureParameter_descr_; } +const char* AuthenticationFailureParameter_template::fld_name(int p_index) const { return AuthenticationFailureParameter::fld_names[p_index]; } +void RAND::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_randValue; } + +RAND::RAND() : Record_Type() { init_vec(); } + +RAND::RAND(const RAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_randValue.is_bound() ) + field_randValue = other_value.field_randValue; +init_vec(); +} + +RAND::RAND(const OPTIONAL& par_iei, + const BITSTRING& par_randValue) : field_iei(par_iei), + field_randValue(par_randValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RAND::get_descriptor() const { return &RAND_descr_; } +const TTCN_Typedescriptor_t* RAND::fld_descriptors[] = { &IEI8__Type_descr_, &CommonDefs::B128__Type_descr_ }; +const TTCN_Typedescriptor_t* RAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RAND::fld_names[] = { "iei", "randValue" }; +const char* RAND::fld_name(int p_index) const { return fld_names[p_index]; } + +const int RAND::optional_indexes[] = { 0, -1 }; +const int* RAND::get_optional_indexes() const { return optional_indexes; } + +const int RAND::optional_indexes_asn[] = { 0, -1 }; +const int* RAND::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void RAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +RAND_template::RAND_template(RAND_template* p_precondition, RAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RAND_template::RAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RAND_template::~RAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RAND_template::match_dynamic(const Base_Type* match_value) const +{ +const RAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RAND_template& RAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RAND_template& RAND_template::operator=(const RAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RAND_template& RAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RAND_template& RAND_template::operator=(const RAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RAND RAND_template::valueof() const +{ +RAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& RAND_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& RAND_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& RAND_template::randValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& RAND_template::randValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* RAND_template::get_descriptor() const { return &RAND_descr_; } +const char* RAND_template::fld_name(int p_index) const { return RAND::fld_names[p_index]; } +void DaylightSavingTime::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_val; } + +DaylightSavingTime::DaylightSavingTime() : Record_Type() { init_vec(); } + +DaylightSavingTime::DaylightSavingTime(const DaylightSavingTime& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_val.is_bound() ) + field_val = other_value.field_val; +init_vec(); +} + +DaylightSavingTime::DaylightSavingTime(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_val) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_val(par_val) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DaylightSavingTime::get_descriptor() const { return &DaylightSavingTime_descr_; } +const TTCN_Typedescriptor_t* DaylightSavingTime::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* DaylightSavingTime::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DaylightSavingTime::fld_names[] = { "iei", "iel", "spare", "val" }; +const char* DaylightSavingTime::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DaylightSavingTime::optional_indexes[] = { 0, 1, -1 }; +const int* DaylightSavingTime::get_optional_indexes() const { return optional_indexes; } + +const int DaylightSavingTime::optional_indexes_asn[] = { 0, 1, -1 }; +const int* DaylightSavingTime::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DaylightSavingTime_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DaylightSavingTime_template::DaylightSavingTime_template(DaylightSavingTime_template* p_precondition, DaylightSavingTime_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DaylightSavingTime_template::DaylightSavingTime_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DaylightSavingTime_template::~DaylightSavingTime_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DaylightSavingTime_template::match_dynamic(const Base_Type* match_value) const +{ +const DaylightSavingTime* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DaylightSavingTime_template& DaylightSavingTime_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DaylightSavingTime_template& DaylightSavingTime_template::operator=(const DaylightSavingTime& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DaylightSavingTime_template& DaylightSavingTime_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DaylightSavingTime_template& DaylightSavingTime_template::operator=(const DaylightSavingTime_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DaylightSavingTime DaylightSavingTime_template::valueof() const +{ +DaylightSavingTime ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& DaylightSavingTime_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& DaylightSavingTime_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& DaylightSavingTime_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& DaylightSavingTime_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DaylightSavingTime_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DaylightSavingTime_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& DaylightSavingTime_template::val() { return *(static_cast(get_at(3))); } +const BITSTRING_template& DaylightSavingTime_template::val() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* DaylightSavingTime_template::get_descriptor() const { return &DaylightSavingTime_descr_; } +const char* DaylightSavingTime_template::fld_name(int p_index) const { return DaylightSavingTime::fld_names[p_index]; } +void NetworkName::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_ext; fld_vec[3]=&field_codingScheme; fld_vec[4]=&field_addCI; fld_vec[5]=&field_spareBitCnt; fld_vec[6]=&field_text; } + +NetworkName::NetworkName() : Record_Type() { init_vec(); } + +NetworkName::NetworkName(const NetworkName& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_ext.is_bound() ) + field_ext = other_value.field_ext; +if (other_value.field_codingScheme.is_bound() ) + field_codingScheme = other_value.field_codingScheme; +if (other_value.field_addCI.is_bound() ) + field_addCI = other_value.field_addCI; +if (other_value.field_spareBitCnt.is_bound() ) + field_spareBitCnt = other_value.field_spareBitCnt; +if (other_value.field_text.is_bound() ) + field_text = other_value.field_text; +init_vec(); +} + +NetworkName::NetworkName(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_ext, + const BITSTRING& par_codingScheme, + const BITSTRING& par_addCI, + const BITSTRING& par_spareBitCnt, + const OCTETSTRING& par_text) : field_iei(par_iei), + field_iel(par_iel), + field_ext(par_ext), + field_codingScheme(par_codingScheme), + field_addCI(par_addCI), + field_spareBitCnt(par_spareBitCnt), + field_text(par_text) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NetworkName::get_descriptor() const { return &NetworkName_descr_; } +const TTCN_Typedescriptor_t* NetworkName::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NetworkName::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NetworkName::fld_names[] = { "iei", "iel", "ext", "codingScheme", "addCI", "spareBitCnt", "text" }; +const char* NetworkName::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NetworkName::optional_indexes[] = { 0, -1 }; +const int* NetworkName::get_optional_indexes() const { return optional_indexes; } + +const int NetworkName::optional_indexes_asn[] = { 0, -1 }; +const int* NetworkName::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NetworkName_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NetworkName_template::NetworkName_template(NetworkName_template* p_precondition, NetworkName_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NetworkName_template::NetworkName_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NetworkName_template::~NetworkName_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NetworkName_template::match_dynamic(const Base_Type* match_value) const +{ +const NetworkName* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NetworkName_template& NetworkName_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NetworkName_template& NetworkName_template::operator=(const NetworkName& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NetworkName_template& NetworkName_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NetworkName_template& NetworkName_template::operator=(const NetworkName_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NetworkName NetworkName_template::valueof() const +{ +NetworkName ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NetworkName_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NetworkName_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NetworkName_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NetworkName_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NetworkName_template::ext() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NetworkName_template::ext() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NetworkName_template::codingScheme() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NetworkName_template::codingScheme() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NetworkName_template::addCI() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NetworkName_template::addCI() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NetworkName_template::spareBitCnt() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NetworkName_template::spareBitCnt() const { return *(static_cast(get_at(5))); } +OCTETSTRING_template& NetworkName_template::text() { return *(static_cast(get_at(6))); } +const OCTETSTRING_template& NetworkName_template::text() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* NetworkName_template::get_descriptor() const { return &NetworkName_descr_; } +const char* NetworkName_template::fld_name(int p_index) const { return NetworkName::fld_names[p_index]; } +void TimeZone::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_timeZone; } + +TimeZone::TimeZone() : Record_Type() { init_vec(); } + +TimeZone::TimeZone(const TimeZone& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_timeZone.is_bound() ) + field_timeZone = other_value.field_timeZone; +init_vec(); +} + +TimeZone::TimeZone(const OPTIONAL& par_iei, + const OCTETSTRING& par_timeZone) : field_iei(par_iei), + field_timeZone(par_timeZone) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TimeZone::get_descriptor() const { return &TimeZone_descr_; } +const TTCN_Typedescriptor_t* TimeZone::fld_descriptors[] = { &IEI8__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* TimeZone::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TimeZone::fld_names[] = { "iei", "timeZone" }; +const char* TimeZone::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TimeZone::optional_indexes[] = { 0, -1 }; +const int* TimeZone::get_optional_indexes() const { return optional_indexes; } + +const int TimeZone::optional_indexes_asn[] = { 0, -1 }; +const int* TimeZone::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TimeZone_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +TimeZone_template::TimeZone_template(TimeZone_template* p_precondition, TimeZone_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TimeZone_template::TimeZone_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TimeZone_template::~TimeZone_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TimeZone_template::match_dynamic(const Base_Type* match_value) const +{ +const TimeZone* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TimeZone_template& TimeZone_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TimeZone_template& TimeZone_template::operator=(const TimeZone& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TimeZone_template& TimeZone_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TimeZone_template& TimeZone_template::operator=(const TimeZone_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TimeZone TimeZone_template::valueof() const +{ +TimeZone ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& TimeZone_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& TimeZone_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& TimeZone_template::timeZone() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& TimeZone_template::timeZone() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* TimeZone_template::get_descriptor() const { return &TimeZone_descr_; } +const char* TimeZone_template::fld_name(int p_index) const { return TimeZone::fld_names[p_index]; } +void TimeZoneAndTime::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_year; fld_vec[2]=&field_month; fld_vec[3]=&field_day; fld_vec[4]=&field_hour; fld_vec[5]=&field_minute; fld_vec[6]=&field_second; fld_vec[7]=&field_timeZone; } + +TimeZoneAndTime::TimeZoneAndTime() : Record_Type() { init_vec(); } + +TimeZoneAndTime::TimeZoneAndTime(const TimeZoneAndTime& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_year.is_bound() ) + field_year = other_value.field_year; +if (other_value.field_month.is_bound() ) + field_month = other_value.field_month; +if (other_value.field_day.is_bound() ) + field_day = other_value.field_day; +if (other_value.field_hour.is_bound() ) + field_hour = other_value.field_hour; +if (other_value.field_minute.is_bound() ) + field_minute = other_value.field_minute; +if (other_value.field_second.is_bound() ) + field_second = other_value.field_second; +if (other_value.field_timeZone.is_bound() ) + field_timeZone = other_value.field_timeZone; +init_vec(); +} + +TimeZoneAndTime::TimeZoneAndTime(const OPTIONAL& par_iei, + const OCTETSTRING& par_year, + const OCTETSTRING& par_month, + const OCTETSTRING& par_day, + const OCTETSTRING& par_hour, + const OCTETSTRING& par_minute, + const OCTETSTRING& par_second, + const OCTETSTRING& par_timeZone) : field_iei(par_iei), + field_year(par_year), + field_month(par_month), + field_day(par_day), + field_hour(par_hour), + field_minute(par_minute), + field_second(par_second), + field_timeZone(par_timeZone) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TimeZoneAndTime::get_descriptor() const { return &TimeZoneAndTime_descr_; } +const TTCN_Typedescriptor_t* TimeZoneAndTime::fld_descriptors[] = { &IEI8__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* TimeZoneAndTime::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TimeZoneAndTime::fld_names[] = { "iei", "year", "month", "day", "hour", "minute", "second", "timeZone" }; +const char* TimeZoneAndTime::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TimeZoneAndTime::optional_indexes[] = { 0, -1 }; +const int* TimeZoneAndTime::get_optional_indexes() const { return optional_indexes; } + +const int TimeZoneAndTime::optional_indexes_asn[] = { 0, -1 }; +const int* TimeZoneAndTime::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TimeZoneAndTime_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[6] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[7] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +TimeZoneAndTime_template::TimeZoneAndTime_template(TimeZoneAndTime_template* p_precondition, TimeZoneAndTime_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TimeZoneAndTime_template::TimeZoneAndTime_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TimeZoneAndTime_template::~TimeZoneAndTime_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TimeZoneAndTime_template::match_dynamic(const Base_Type* match_value) const +{ +const TimeZoneAndTime* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TimeZoneAndTime_template& TimeZoneAndTime_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TimeZoneAndTime_template& TimeZoneAndTime_template::operator=(const TimeZoneAndTime& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TimeZoneAndTime_template& TimeZoneAndTime_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TimeZoneAndTime_template& TimeZoneAndTime_template::operator=(const TimeZoneAndTime_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TimeZoneAndTime TimeZoneAndTime_template::valueof() const +{ +TimeZoneAndTime ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& TimeZoneAndTime_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& TimeZoneAndTime_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& TimeZoneAndTime_template::year() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& TimeZoneAndTime_template::year() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& TimeZoneAndTime_template::month() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& TimeZoneAndTime_template::month() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& TimeZoneAndTime_template::day() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& TimeZoneAndTime_template::day() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& TimeZoneAndTime_template::hour() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& TimeZoneAndTime_template::hour() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& TimeZoneAndTime_template::minute() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& TimeZoneAndTime_template::minute() const { return *(static_cast(get_at(5))); } +OCTETSTRING_template& TimeZoneAndTime_template::second() { return *(static_cast(get_at(6))); } +const OCTETSTRING_template& TimeZoneAndTime_template::second() const { return *(static_cast(get_at(6))); } +OCTETSTRING_template& TimeZoneAndTime_template::timeZone() { return *(static_cast(get_at(7))); } +const OCTETSTRING_template& TimeZoneAndTime_template::timeZone() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* TimeZoneAndTime_template::get_descriptor() const { return &TimeZoneAndTime_descr_; } +const char* TimeZoneAndTime_template::fld_name(int p_index) const { return TimeZoneAndTime::fld_names[p_index]; } +void VoiceDomainPref::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spareBits; fld_vec[3]=&field_ueUsageSetting; fld_vec[4]=&field_voiceDomainPrefEUTRA; } + +VoiceDomainPref::VoiceDomainPref() : Record_Type() { init_vec(); } + +VoiceDomainPref::VoiceDomainPref(const VoiceDomainPref& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_ueUsageSetting.is_bound() ) + field_ueUsageSetting = other_value.field_ueUsageSetting; +if (other_value.field_voiceDomainPrefEUTRA.is_bound() ) + field_voiceDomainPrefEUTRA = other_value.field_voiceDomainPrefEUTRA; +init_vec(); +} + +VoiceDomainPref::VoiceDomainPref(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_ueUsageSetting, + const BITSTRING& par_voiceDomainPrefEUTRA) : field_iei(par_iei), + field_iel(par_iel), + field_spareBits(par_spareBits), + field_ueUsageSetting(par_ueUsageSetting), + field_voiceDomainPrefEUTRA(par_voiceDomainPrefEUTRA) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* VoiceDomainPref::get_descriptor() const { return &VoiceDomainPref_descr_; } +const TTCN_Typedescriptor_t* VoiceDomainPref::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B5__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* VoiceDomainPref::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* VoiceDomainPref::fld_names[] = { "iei", "iel", "spareBits", "ueUsageSetting", "voiceDomainPrefEUTRA" }; +const char* VoiceDomainPref::fld_name(int p_index) const { return fld_names[p_index]; } + +const int VoiceDomainPref::optional_indexes[] = { 0, 1, -1 }; +const int* VoiceDomainPref::get_optional_indexes() const { return optional_indexes; } + +const int VoiceDomainPref::optional_indexes_asn[] = { 0, 1, -1 }; +const int* VoiceDomainPref::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void VoiceDomainPref_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +VoiceDomainPref_template::VoiceDomainPref_template(VoiceDomainPref_template* p_precondition, VoiceDomainPref_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +VoiceDomainPref_template::VoiceDomainPref_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +VoiceDomainPref_template::~VoiceDomainPref_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean VoiceDomainPref_template::match_dynamic(const Base_Type* match_value) const +{ +const VoiceDomainPref* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +VoiceDomainPref_template& VoiceDomainPref_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +VoiceDomainPref_template& VoiceDomainPref_template::operator=(const VoiceDomainPref& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +VoiceDomainPref_template& VoiceDomainPref_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +VoiceDomainPref_template& VoiceDomainPref_template::operator=(const VoiceDomainPref_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +VoiceDomainPref VoiceDomainPref_template::valueof() const +{ +VoiceDomainPref ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& VoiceDomainPref_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& VoiceDomainPref_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& VoiceDomainPref_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& VoiceDomainPref_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& VoiceDomainPref_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& VoiceDomainPref_template::spareBits() const { return *(static_cast(get_at(2))); } +BITSTRING_template& VoiceDomainPref_template::ueUsageSetting() { return *(static_cast(get_at(3))); } +const BITSTRING_template& VoiceDomainPref_template::ueUsageSetting() const { return *(static_cast(get_at(3))); } +BITSTRING_template& VoiceDomainPref_template::voiceDomainPrefEUTRA() { return *(static_cast(get_at(4))); } +const BITSTRING_template& VoiceDomainPref_template::voiceDomainPrefEUTRA() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* VoiceDomainPref_template::get_descriptor() const { return &VoiceDomainPref_descr_; } +const char* VoiceDomainPref_template::fld_name(int p_index) const { return VoiceDomainPref::fld_names[p_index]; } +void IdentityType::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_typeOfId; } + +IdentityType::IdentityType() : Record_Type() { init_vec(); } + +IdentityType::IdentityType(const IdentityType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_typeOfId.is_bound() ) + field_typeOfId = other_value.field_typeOfId; +init_vec(); +} + +IdentityType::IdentityType(const BITSTRING& par_spare, + const BITSTRING& par_typeOfId) : field_spare(par_spare), + field_typeOfId(par_typeOfId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IdentityType::get_descriptor() const { return &IdentityType_descr_; } +const TTCN_Typedescriptor_t* IdentityType::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &NAS__IdType_descr_ }; +const TTCN_Typedescriptor_t* IdentityType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IdentityType::fld_names[] = { "spare", "typeOfId" }; +const char* IdentityType::fld_name(int p_index) const { return fld_names[p_index]; } + +void IdentityType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +IdentityType_template::IdentityType_template(IdentityType_template* p_precondition, IdentityType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IdentityType_template::IdentityType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IdentityType_template::~IdentityType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IdentityType_template::match_dynamic(const Base_Type* match_value) const +{ +const IdentityType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IdentityType_template& IdentityType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IdentityType_template& IdentityType_template::operator=(const IdentityType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IdentityType_template& IdentityType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IdentityType_template& IdentityType_template::operator=(const IdentityType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IdentityType IdentityType_template::valueof() const +{ +IdentityType ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& IdentityType_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& IdentityType_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& IdentityType_template::typeOfId() { return *(static_cast(get_at(1))); } +const BITSTRING_template& IdentityType_template::typeOfId() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* IdentityType_template::get_descriptor() const { return &IdentityType_descr_; } +const char* IdentityType_template::fld_name(int p_index) const { return IdentityType::fld_names[p_index]; } +void TI::init_vec() { fld_vec[0]=&field_tiFlag; fld_vec[1]=&field_tiVal; } + +TI::TI() : Record_Type() { init_vec(); } + +TI::TI(const TI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_tiFlag.is_bound() ) + field_tiFlag = other_value.field_tiFlag; +if (other_value.field_tiVal.is_bound() ) + field_tiVal = other_value.field_tiVal; +init_vec(); +} + +TI::TI(const BITSTRING& par_tiFlag, + const BITSTRING& par_tiVal) : field_tiFlag(par_tiFlag), + field_tiVal(par_tiVal) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TI::get_descriptor() const { return &TI_descr_; } +const TTCN_Typedescriptor_t* TI::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* TI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TI::fld_names[] = { "tiFlag", "tiVal" }; +const char* TI::fld_name(int p_index) const { return fld_names[p_index]; } + +void TI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +TI_template::TI_template(TI_template* p_precondition, TI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TI_template::TI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TI_template::~TI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TI_template::match_dynamic(const Base_Type* match_value) const +{ +const TI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TI_template& TI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TI_template& TI_template::operator=(const TI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TI_template& TI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TI_template& TI_template::operator=(const TI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TI TI_template::valueof() const +{ +TI ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& TI_template::tiFlag() { return *(static_cast(get_at(0))); } +const BITSTRING_template& TI_template::tiFlag() const { return *(static_cast(get_at(0))); } +BITSTRING_template& TI_template::tiVal() { return *(static_cast(get_at(1))); } +const BITSTRING_template& TI_template::tiVal() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* TI_template::get_descriptor() const { return &TI_descr_; } +const char* TI_template::fld_name(int p_index) const { return TI::fld_names[p_index]; } +void FacilityIE::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_components; } + +FacilityIE::FacilityIE() : Record_Type() { init_vec(); } + +FacilityIE::FacilityIE(const FacilityIE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_components.is_bound() ) + field_components = other_value.field_components; +init_vec(); +} + +FacilityIE::FacilityIE(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_components) : field_iei(par_iei), + field_iel(par_iel), + field_components(par_components) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* FacilityIE::get_descriptor() const { return &FacilityIE_descr_; } +const TTCN_Typedescriptor_t* FacilityIE::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* FacilityIE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* FacilityIE::fld_names[] = { "iei", "iel", "components" }; +const char* FacilityIE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int FacilityIE::optional_indexes[] = { 0, -1 }; +const int* FacilityIE::get_optional_indexes() const { return optional_indexes; } + +const int FacilityIE::optional_indexes_asn[] = { 0, -1 }; +const int* FacilityIE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void FacilityIE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +FacilityIE_template::FacilityIE_template(FacilityIE_template* p_precondition, FacilityIE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +FacilityIE_template::FacilityIE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +FacilityIE_template::~FacilityIE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean FacilityIE_template::match_dynamic(const Base_Type* match_value) const +{ +const FacilityIE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +FacilityIE_template& FacilityIE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +FacilityIE_template& FacilityIE_template::operator=(const FacilityIE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +FacilityIE_template& FacilityIE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +FacilityIE_template& FacilityIE_template::operator=(const FacilityIE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +FacilityIE FacilityIE_template::valueof() const +{ +FacilityIE ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& FacilityIE_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& FacilityIE_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& FacilityIE_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& FacilityIE_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& FacilityIE_template::components() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& FacilityIE_template::components() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* FacilityIE_template::get_descriptor() const { return &FacilityIE_descr_; } +const char* FacilityIE_template::fld_name(int p_index) const { return FacilityIE::fld_names[p_index]; } +void REGISTER::init_vec() { fld_vec[0]=&field_ti; fld_vec[1]=&field_sS__ProtocolDiscriminator; fld_vec[2]=&field_msgType; fld_vec[3]=&field_facility__Str; fld_vec[4]=&field_sS__VersionInd; } + +REGISTER::REGISTER() : Record_Type() { init_vec(); } + +REGISTER::REGISTER(const REGISTER& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_ti.is_bound() ) + field_ti = other_value.field_ti; +if (other_value.field_sS__ProtocolDiscriminator.is_bound() ) + field_sS__ProtocolDiscriminator = other_value.field_sS__ProtocolDiscriminator; +if (other_value.field_msgType.is_bound() ) + field_msgType = other_value.field_msgType; +if (other_value.field_facility__Str.is_bound() ) + field_facility__Str = other_value.field_facility__Str; +if (other_value.field_sS__VersionInd.is_bound() ) + field_sS__VersionInd = other_value.field_sS__VersionInd; +init_vec(); +} + +REGISTER::REGISTER(const TI& par_ti, + const BITSTRING& par_sS__ProtocolDiscriminator, + const BITSTRING& par_msgType, + const FacilityIE& par_facility__Str, + const OPTIONAL& par_sS__VersionInd) : field_ti(par_ti), + field_sS__ProtocolDiscriminator(par_sS__ProtocolDiscriminator), + field_msgType(par_msgType), + field_facility__Str(par_facility__Str), + field_sS__VersionInd(par_sS__VersionInd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* REGISTER::get_descriptor() const { return ®ISTER_descr_; } +const TTCN_Typedescriptor_t* REGISTER::fld_descriptors[] = { &TI_descr_, &ProtocolDiscriminator_descr_, &MessageType_descr_, &FacilityIE_descr_, &SS__VersionInd_descr_ }; +const TTCN_Typedescriptor_t* REGISTER::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* REGISTER::fld_names[] = { "ti", "sS_ProtocolDiscriminator", "msgType", "facility_Str", "sS_VersionInd" }; +const char* REGISTER::fld_name(int p_index) const { return fld_names[p_index]; } + +const int REGISTER::optional_indexes[] = { 4, -1 }; +const int* REGISTER::get_optional_indexes() const { return optional_indexes; } + +const int REGISTER::optional_indexes_asn[] = { 4, -1 }; +const int* REGISTER::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void REGISTER_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new TI_template(ANY_VALUE) : new TI_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new FacilityIE_template(ANY_VALUE) : new FacilityIE_template; +single_value.value_elements[4] = was_any ? new SS__VersionInd_template(ANY_OR_OMIT) : new SS__VersionInd_template; +} +} + +REGISTER_template::REGISTER_template(REGISTER_template* p_precondition, REGISTER_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +REGISTER_template::REGISTER_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +REGISTER_template::~REGISTER_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean REGISTER_template::match_dynamic(const Base_Type* match_value) const +{ +const REGISTER* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +REGISTER_template& REGISTER_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +REGISTER_template& REGISTER_template::operator=(const REGISTER& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +REGISTER_template& REGISTER_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +REGISTER_template& REGISTER_template::operator=(const REGISTER_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +REGISTER REGISTER_template::valueof() const +{ +REGISTER ret_val; +valueofv(&ret_val); +return ret_val; +} + +TI_template& REGISTER_template::ti() { return *(static_cast(get_at(0))); } +const TI_template& REGISTER_template::ti() const { return *(static_cast(get_at(0))); } +BITSTRING_template& REGISTER_template::sS__ProtocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& REGISTER_template::sS__ProtocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& REGISTER_template::msgType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& REGISTER_template::msgType() const { return *(static_cast(get_at(2))); } +FacilityIE_template& REGISTER_template::facility__Str() { return *(static_cast(get_at(3))); } +const FacilityIE_template& REGISTER_template::facility__Str() const { return *(static_cast(get_at(3))); } +SS__VersionInd_template& REGISTER_template::sS__VersionInd() { return *(static_cast(get_at(4))); } +const SS__VersionInd_template& REGISTER_template::sS__VersionInd() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* REGISTER_template::get_descriptor() const { return ®ISTER_descr_; } +const char* REGISTER_template::fld_name(int p_index) const { return REGISTER::fld_names[p_index]; } +void SS__VersionInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_sS__VersionInfo; } + +SS__VersionInd::SS__VersionInd() : Record_Type() { init_vec(); } + +SS__VersionInd::SS__VersionInd(const SS__VersionInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_sS__VersionInfo.is_bound() ) + field_sS__VersionInfo = other_value.field_sS__VersionInfo; +init_vec(); +} + +SS__VersionInd::SS__VersionInd(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_sS__VersionInfo) : field_iei(par_iei), + field_iel(par_iel), + field_sS__VersionInfo(par_sS__VersionInfo) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SS__VersionInd::get_descriptor() const { return &SS__VersionInd_descr_; } +const TTCN_Typedescriptor_t* SS__VersionInd::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* SS__VersionInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SS__VersionInd::fld_names[] = { "iei", "iel", "sS_VersionInfo" }; +const char* SS__VersionInd::fld_name(int p_index) const { return fld_names[p_index]; } + +void SS__VersionInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +SS__VersionInd_template::SS__VersionInd_template(SS__VersionInd_template* p_precondition, SS__VersionInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SS__VersionInd_template::SS__VersionInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SS__VersionInd_template::~SS__VersionInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SS__VersionInd_template::match_dynamic(const Base_Type* match_value) const +{ +const SS__VersionInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SS__VersionInd_template& SS__VersionInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SS__VersionInd_template& SS__VersionInd_template::operator=(const SS__VersionInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SS__VersionInd_template& SS__VersionInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SS__VersionInd_template& SS__VersionInd_template::operator=(const SS__VersionInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SS__VersionInd SS__VersionInd_template::valueof() const +{ +SS__VersionInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SS__VersionInd_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SS__VersionInd_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SS__VersionInd_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SS__VersionInd_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& SS__VersionInd_template::sS__VersionInfo() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& SS__VersionInd_template::sS__VersionInfo() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SS__VersionInd_template::get_descriptor() const { return &SS__VersionInd_descr_; } +const char* SS__VersionInd_template::fld_name(int p_index) const { return SS__VersionInd::fld_names[p_index]; } +void FACILITY::init_vec() { fld_vec[0]=&field_ti; fld_vec[1]=&field_sS__ProtocolDiscriminator; fld_vec[2]=&field_msgType; fld_vec[3]=&field_facility__Str; } + +FACILITY::FACILITY() : Record_Type() { init_vec(); } + +FACILITY::FACILITY(const FACILITY& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_ti.is_bound() ) + field_ti = other_value.field_ti; +if (other_value.field_sS__ProtocolDiscriminator.is_bound() ) + field_sS__ProtocolDiscriminator = other_value.field_sS__ProtocolDiscriminator; +if (other_value.field_msgType.is_bound() ) + field_msgType = other_value.field_msgType; +if (other_value.field_facility__Str.is_bound() ) + field_facility__Str = other_value.field_facility__Str; +init_vec(); +} + +FACILITY::FACILITY(const TI& par_ti, + const BITSTRING& par_sS__ProtocolDiscriminator, + const BITSTRING& par_msgType, + const FacilityIE& par_facility__Str) : field_ti(par_ti), + field_sS__ProtocolDiscriminator(par_sS__ProtocolDiscriminator), + field_msgType(par_msgType), + field_facility__Str(par_facility__Str) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* FACILITY::get_descriptor() const { return &FACILITY_descr_; } +const TTCN_Typedescriptor_t* FACILITY::fld_descriptors[] = { &TI_descr_, &ProtocolDiscriminator_descr_, &MessageType_descr_, &FacilityIE_descr_ }; +const TTCN_Typedescriptor_t* FACILITY::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* FACILITY::fld_names[] = { "ti", "sS_ProtocolDiscriminator", "msgType", "facility_Str" }; +const char* FACILITY::fld_name(int p_index) const { return fld_names[p_index]; } + +void FACILITY_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new TI_template(ANY_VALUE) : new TI_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new FacilityIE_template(ANY_VALUE) : new FacilityIE_template; +} +} + +FACILITY_template::FACILITY_template(FACILITY_template* p_precondition, FACILITY_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +FACILITY_template::FACILITY_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +FACILITY_template::~FACILITY_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean FACILITY_template::match_dynamic(const Base_Type* match_value) const +{ +const FACILITY* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +FACILITY_template& FACILITY_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +FACILITY_template& FACILITY_template::operator=(const FACILITY& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +FACILITY_template& FACILITY_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +FACILITY_template& FACILITY_template::operator=(const FACILITY_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +FACILITY FACILITY_template::valueof() const +{ +FACILITY ret_val; +valueofv(&ret_val); +return ret_val; +} + +TI_template& FACILITY_template::ti() { return *(static_cast(get_at(0))); } +const TI_template& FACILITY_template::ti() const { return *(static_cast(get_at(0))); } +BITSTRING_template& FACILITY_template::sS__ProtocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& FACILITY_template::sS__ProtocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& FACILITY_template::msgType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& FACILITY_template::msgType() const { return *(static_cast(get_at(2))); } +FacilityIE_template& FACILITY_template::facility__Str() { return *(static_cast(get_at(3))); } +const FacilityIE_template& FACILITY_template::facility__Str() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* FACILITY_template::get_descriptor() const { return &FACILITY_descr_; } +const char* FACILITY_template::fld_name(int p_index) const { return FACILITY::fld_names[p_index]; } +void FACILITYul::init_vec() { fld_vec[0]=&field_ti; fld_vec[1]=&field_sS__ProtocolDiscriminator; fld_vec[2]=&field_msgType; fld_vec[3]=&field_facility__Str; fld_vec[4]=&field_sS__VersionInd; } + +FACILITYul::FACILITYul() : Record_Type() { init_vec(); } + +FACILITYul::FACILITYul(const FACILITYul& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_ti.is_bound() ) + field_ti = other_value.field_ti; +if (other_value.field_sS__ProtocolDiscriminator.is_bound() ) + field_sS__ProtocolDiscriminator = other_value.field_sS__ProtocolDiscriminator; +if (other_value.field_msgType.is_bound() ) + field_msgType = other_value.field_msgType; +if (other_value.field_facility__Str.is_bound() ) + field_facility__Str = other_value.field_facility__Str; +if (other_value.field_sS__VersionInd.is_bound() ) + field_sS__VersionInd = other_value.field_sS__VersionInd; +init_vec(); +} + +FACILITYul::FACILITYul(const TI& par_ti, + const BITSTRING& par_sS__ProtocolDiscriminator, + const BITSTRING& par_msgType, + const FacilityIE& par_facility__Str, + const OPTIONAL& par_sS__VersionInd) : field_ti(par_ti), + field_sS__ProtocolDiscriminator(par_sS__ProtocolDiscriminator), + field_msgType(par_msgType), + field_facility__Str(par_facility__Str), + field_sS__VersionInd(par_sS__VersionInd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* FACILITYul::get_descriptor() const { return &FACILITYul_descr_; } +const TTCN_Typedescriptor_t* FACILITYul::fld_descriptors[] = { &TI_descr_, &ProtocolDiscriminator_descr_, &MessageType_descr_, &FacilityIE_descr_, &SS__VersionInd_descr_ }; +const TTCN_Typedescriptor_t* FACILITYul::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* FACILITYul::fld_names[] = { "ti", "sS_ProtocolDiscriminator", "msgType", "facility_Str", "sS_VersionInd" }; +const char* FACILITYul::fld_name(int p_index) const { return fld_names[p_index]; } + +const int FACILITYul::optional_indexes[] = { 4, -1 }; +const int* FACILITYul::get_optional_indexes() const { return optional_indexes; } + +const int FACILITYul::optional_indexes_asn[] = { 4, -1 }; +const int* FACILITYul::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void FACILITYul_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new TI_template(ANY_VALUE) : new TI_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new FacilityIE_template(ANY_VALUE) : new FacilityIE_template; +single_value.value_elements[4] = was_any ? new SS__VersionInd_template(ANY_OR_OMIT) : new SS__VersionInd_template; +} +} + +FACILITYul_template::FACILITYul_template(FACILITYul_template* p_precondition, FACILITYul_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +FACILITYul_template::FACILITYul_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +FACILITYul_template::~FACILITYul_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean FACILITYul_template::match_dynamic(const Base_Type* match_value) const +{ +const FACILITYul* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +FACILITYul_template& FACILITYul_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +FACILITYul_template& FACILITYul_template::operator=(const FACILITYul& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +FACILITYul_template& FACILITYul_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +FACILITYul_template& FACILITYul_template::operator=(const FACILITYul_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +FACILITYul FACILITYul_template::valueof() const +{ +FACILITYul ret_val; +valueofv(&ret_val); +return ret_val; +} + +TI_template& FACILITYul_template::ti() { return *(static_cast(get_at(0))); } +const TI_template& FACILITYul_template::ti() const { return *(static_cast(get_at(0))); } +BITSTRING_template& FACILITYul_template::sS__ProtocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& FACILITYul_template::sS__ProtocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& FACILITYul_template::msgType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& FACILITYul_template::msgType() const { return *(static_cast(get_at(2))); } +FacilityIE_template& FACILITYul_template::facility__Str() { return *(static_cast(get_at(3))); } +const FacilityIE_template& FACILITYul_template::facility__Str() const { return *(static_cast(get_at(3))); } +SS__VersionInd_template& FACILITYul_template::sS__VersionInd() { return *(static_cast(get_at(4))); } +const SS__VersionInd_template& FACILITYul_template::sS__VersionInd() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* FACILITYul_template::get_descriptor() const { return &FACILITYul_descr_; } +const char* FACILITYul_template::fld_name(int p_index) const { return FACILITYul::fld_names[p_index]; } +void RESETUEPOSITIONINGSTOREDINFORMATION::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_msgType; fld_vec[3]=&field_uePositioningTech; } + +RESETUEPOSITIONINGSTOREDINFORMATION::RESETUEPOSITIONINGSTOREDINFORMATION() : Record_Type() { init_vec(); } + +RESETUEPOSITIONINGSTOREDINFORMATION::RESETUEPOSITIONINGSTOREDINFORMATION(const RESETUEPOSITIONINGSTOREDINFORMATION& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_msgType.is_bound() ) + field_msgType = other_value.field_msgType; +if (other_value.field_uePositioningTech.is_bound() ) + field_uePositioningTech = other_value.field_uePositioningTech; +init_vec(); +} + +RESETUEPOSITIONINGSTOREDINFORMATION::RESETUEPOSITIONINGSTOREDINFORMATION(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_msgType, + const BITSTRING& par_uePositioningTech) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_msgType(par_msgType), + field_uePositioningTech(par_uePositioningTech) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RESETUEPOSITIONINGSTOREDINFORMATION::get_descriptor() const { return &RESETUEPOSITIONINGSTOREDINFORMATION_descr_; } +const TTCN_Typedescriptor_t* RESETUEPOSITIONINGSTOREDINFORMATION::fld_descriptors[] = { &SkipIndicator_descr_, &ProtocolDiscriminator_descr_, &MessageType_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* RESETUEPOSITIONINGSTOREDINFORMATION::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RESETUEPOSITIONINGSTOREDINFORMATION::fld_names[] = { "skipIndicator", "protocolDiscriminator", "msgType", "uePositioningTech" }; +const char* RESETUEPOSITIONINGSTOREDINFORMATION::fld_name(int p_index) const { return fld_names[p_index]; } + +void RESETUEPOSITIONINGSTOREDINFORMATION_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +RESETUEPOSITIONINGSTOREDINFORMATION_template::RESETUEPOSITIONINGSTOREDINFORMATION_template(RESETUEPOSITIONINGSTOREDINFORMATION_template* p_precondition, RESETUEPOSITIONINGSTOREDINFORMATION_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RESETUEPOSITIONINGSTOREDINFORMATION_template::RESETUEPOSITIONINGSTOREDINFORMATION_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RESETUEPOSITIONINGSTOREDINFORMATION_template::~RESETUEPOSITIONINGSTOREDINFORMATION_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RESETUEPOSITIONINGSTOREDINFORMATION_template::match_dynamic(const Base_Type* match_value) const +{ +const RESETUEPOSITIONINGSTOREDINFORMATION* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RESETUEPOSITIONINGSTOREDINFORMATION_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RESETUEPOSITIONINGSTOREDINFORMATION_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::operator=(const RESETUEPOSITIONINGSTOREDINFORMATION& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RESETUEPOSITIONINGSTOREDINFORMATION_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RESETUEPOSITIONINGSTOREDINFORMATION_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::operator=(const RESETUEPOSITIONINGSTOREDINFORMATION_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RESETUEPOSITIONINGSTOREDINFORMATION RESETUEPOSITIONINGSTOREDINFORMATION_template::valueof() const +{ +RESETUEPOSITIONINGSTOREDINFORMATION ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::msgType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::msgType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::uePositioningTech() { return *(static_cast(get_at(3))); } +const BITSTRING_template& RESETUEPOSITIONINGSTOREDINFORMATION_template::uePositioningTech() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* RESETUEPOSITIONINGSTOREDINFORMATION_template::get_descriptor() const { return &RESETUEPOSITIONINGSTOREDINFORMATION_descr_; } +const char* RESETUEPOSITIONINGSTOREDINFORMATION_template::fld_name(int p_index) const { return RESETUEPOSITIONINGSTOREDINFORMATION::fld_names[p_index]; } +void WLANOffloadAcceptability::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_utranOffload; fld_vec[3]=&field_eutranOffload; } + +WLANOffloadAcceptability::WLANOffloadAcceptability() : Record_Type() { init_vec(); } + +WLANOffloadAcceptability::WLANOffloadAcceptability(const WLANOffloadAcceptability& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_utranOffload.is_bound() ) + field_utranOffload = other_value.field_utranOffload; +if (other_value.field_eutranOffload.is_bound() ) + field_eutranOffload = other_value.field_eutranOffload; +init_vec(); +} + +WLANOffloadAcceptability::WLANOffloadAcceptability(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_utranOffload, + const BITSTRING& par_eutranOffload) : field_iei(par_iei), + field_spare(par_spare), + field_utranOffload(par_utranOffload), + field_eutranOffload(par_eutranOffload) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* WLANOffloadAcceptability::get_descriptor() const { return &WLANOffloadAcceptability_descr_; } +const TTCN_Typedescriptor_t* WLANOffloadAcceptability::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* WLANOffloadAcceptability::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* WLANOffloadAcceptability::fld_names[] = { "iei", "spare", "utranOffload", "eutranOffload" }; +const char* WLANOffloadAcceptability::fld_name(int p_index) const { return fld_names[p_index]; } + +void WLANOffloadAcceptability_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +WLANOffloadAcceptability_template::WLANOffloadAcceptability_template(WLANOffloadAcceptability_template* p_precondition, WLANOffloadAcceptability_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +WLANOffloadAcceptability_template::WLANOffloadAcceptability_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +WLANOffloadAcceptability_template::~WLANOffloadAcceptability_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean WLANOffloadAcceptability_template::match_dynamic(const Base_Type* match_value) const +{ +const WLANOffloadAcceptability* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +WLANOffloadAcceptability_template& WLANOffloadAcceptability_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +WLANOffloadAcceptability_template& WLANOffloadAcceptability_template::operator=(const WLANOffloadAcceptability& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +WLANOffloadAcceptability_template& WLANOffloadAcceptability_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +WLANOffloadAcceptability_template& WLANOffloadAcceptability_template::operator=(const WLANOffloadAcceptability_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +WLANOffloadAcceptability WLANOffloadAcceptability_template::valueof() const +{ +WLANOffloadAcceptability ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& WLANOffloadAcceptability_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& WLANOffloadAcceptability_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& WLANOffloadAcceptability_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& WLANOffloadAcceptability_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& WLANOffloadAcceptability_template::utranOffload() { return *(static_cast(get_at(2))); } +const BITSTRING_template& WLANOffloadAcceptability_template::utranOffload() const { return *(static_cast(get_at(2))); } +BITSTRING_template& WLANOffloadAcceptability_template::eutranOffload() { return *(static_cast(get_at(3))); } +const BITSTRING_template& WLANOffloadAcceptability_template::eutranOffload() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* WLANOffloadAcceptability_template::get_descriptor() const { return &WLANOffloadAcceptability_descr_; } +const char* WLANOffloadAcceptability_template::fld_name(int p_index) const { return WLANOffloadAcceptability::fld_names[p_index]; } +void ExtdDRXParams::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_pagingTimeWindow; fld_vec[3]=&field_eDRXValue; fld_vec[4]=&field_extdPTW; } + +ExtdDRXParams::ExtdDRXParams() : Record_Type() { init_vec(); } + +ExtdDRXParams::ExtdDRXParams(const ExtdDRXParams& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_pagingTimeWindow.is_bound() ) + field_pagingTimeWindow = other_value.field_pagingTimeWindow; +if (other_value.field_eDRXValue.is_bound() ) + field_eDRXValue = other_value.field_eDRXValue; +if (other_value.field_extdPTW.is_bound() ) + field_extdPTW = other_value.field_extdPTW; +init_vec(); +} + +ExtdDRXParams::ExtdDRXParams(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_pagingTimeWindow, + const BITSTRING& par_eDRXValue, + const OPTIONAL& par_extdPTW) : field_iei(par_iei), + field_iel(par_iel), + field_pagingTimeWindow(par_pagingTimeWindow), + field_eDRXValue(par_eDRXValue), + field_extdPTW(par_extdPTW) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ExtdDRXParams::get_descriptor() const { return &ExtdDRXParams_descr_; } +const TTCN_Typedescriptor_t* ExtdDRXParams::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* ExtdDRXParams::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ExtdDRXParams::fld_names[] = { "iei", "iel", "pagingTimeWindow", "eDRXValue", "extdPTW" }; +const char* ExtdDRXParams::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ExtdDRXParams::optional_indexes[] = { 4, -1 }; +const int* ExtdDRXParams::get_optional_indexes() const { return optional_indexes; } + +const int ExtdDRXParams::optional_indexes_asn[] = { 4, -1 }; +const int* ExtdDRXParams::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ExtdDRXParams_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +ExtdDRXParams_template::ExtdDRXParams_template(ExtdDRXParams_template* p_precondition, ExtdDRXParams_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdDRXParams_template::ExtdDRXParams_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdDRXParams_template::~ExtdDRXParams_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdDRXParams_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdDRXParams* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ExtdDRXParams_template& ExtdDRXParams_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdDRXParams_template& ExtdDRXParams_template::operator=(const ExtdDRXParams& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdDRXParams_template& ExtdDRXParams_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdDRXParams_template& ExtdDRXParams_template::operator=(const ExtdDRXParams_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdDRXParams ExtdDRXParams_template::valueof() const +{ +ExtdDRXParams ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ExtdDRXParams_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ExtdDRXParams_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ExtdDRXParams_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ExtdDRXParams_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ExtdDRXParams_template::pagingTimeWindow() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ExtdDRXParams_template::pagingTimeWindow() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ExtdDRXParams_template::eDRXValue() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ExtdDRXParams_template::eDRXValue() const { return *(static_cast(get_at(3))); } +BITSTRING_template& ExtdDRXParams_template::extdPTW() { return *(static_cast(get_at(4))); } +const BITSTRING_template& ExtdDRXParams_template::extdPTW() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* ExtdDRXParams_template::get_descriptor() const { return &ExtdDRXParams_descr_; } +const char* ExtdDRXParams_template::fld_name(int p_index) const { return ExtdDRXParams::fld_names[p_index]; } +void NBIFOMContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_containerContents; } + +NBIFOMContainer::NBIFOMContainer() : Record_Type() { init_vec(); } + +NBIFOMContainer::NBIFOMContainer(const NBIFOMContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_containerContents.is_bound() ) + field_containerContents = other_value.field_containerContents; +init_vec(); +} + +NBIFOMContainer::NBIFOMContainer(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_containerContents) : field_iei(par_iei), + field_iel(par_iel), + field_containerContents(par_containerContents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NBIFOMContainer::get_descriptor() const { return &NBIFOMContainer_descr_; } +const TTCN_Typedescriptor_t* NBIFOMContainer::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NBIFOMContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NBIFOMContainer::fld_names[] = { "iei", "iel", "containerContents" }; +const char* NBIFOMContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +void NBIFOMContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NBIFOMContainer_template::NBIFOMContainer_template(NBIFOMContainer_template* p_precondition, NBIFOMContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NBIFOMContainer_template::NBIFOMContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NBIFOMContainer_template::~NBIFOMContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NBIFOMContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const NBIFOMContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NBIFOMContainer_template& NBIFOMContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NBIFOMContainer_template& NBIFOMContainer_template::operator=(const NBIFOMContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NBIFOMContainer_template& NBIFOMContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NBIFOMContainer_template& NBIFOMContainer_template::operator=(const NBIFOMContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NBIFOMContainer NBIFOMContainer_template::valueof() const +{ +NBIFOMContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NBIFOMContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NBIFOMContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NBIFOMContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NBIFOMContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NBIFOMContainer_template::containerContents() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NBIFOMContainer_template::containerContents() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NBIFOMContainer_template::get_descriptor() const { return &NBIFOMContainer_descr_; } +const char* NBIFOMContainer_template::fld_name(int p_index) const { return NBIFOMContainer::fld_names[p_index]; } +void DCN__ID::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_dcnIdValue; } + +DCN__ID::DCN__ID() : Record_Type() { init_vec(); } + +DCN__ID::DCN__ID(const DCN__ID& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_dcnIdValue.is_bound() ) + field_dcnIdValue = other_value.field_dcnIdValue; +init_vec(); +} + +DCN__ID::DCN__ID(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_dcnIdValue) : field_iei(par_iei), + field_iel(par_iel), + field_dcnIdValue(par_dcnIdValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DCN__ID::get_descriptor() const { return &DCN__ID_descr_; } +const TTCN_Typedescriptor_t* DCN__ID::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* DCN__ID::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DCN__ID::fld_names[] = { "iei", "iel", "dcnIdValue" }; +const char* DCN__ID::fld_name(int p_index) const { return fld_names[p_index]; } + +void DCN__ID_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +DCN__ID_template::DCN__ID_template(DCN__ID_template* p_precondition, DCN__ID_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DCN__ID_template::DCN__ID_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DCN__ID_template::~DCN__ID_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DCN__ID_template::match_dynamic(const Base_Type* match_value) const +{ +const DCN__ID* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DCN__ID_template& DCN__ID_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DCN__ID_template& DCN__ID_template::operator=(const DCN__ID& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DCN__ID_template& DCN__ID_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DCN__ID_template& DCN__ID_template::operator=(const DCN__ID_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DCN__ID DCN__ID_template::valueof() const +{ +DCN__ID ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& DCN__ID_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& DCN__ID_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& DCN__ID_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& DCN__ID_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& DCN__ID_template::dcnIdValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& DCN__ID_template::dcnIdValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* DCN__ID_template::get_descriptor() const { return &DCN__ID_descr_; } +const char* DCN__ID_template::fld_name(int p_index) const { return DCN__ID::fld_names[p_index]; } +void ExtdProtocolConfigOptions::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_ext; fld_vec[3]=&field_spare; fld_vec[4]=&field_configProtocol; fld_vec[5]=&field_pco; } + +ExtdProtocolConfigOptions::ExtdProtocolConfigOptions() : Record_Type() { init_vec(); } + +ExtdProtocolConfigOptions::ExtdProtocolConfigOptions(const ExtdProtocolConfigOptions& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_ext.is_bound() ) + field_ext = other_value.field_ext; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_configProtocol.is_bound() ) + field_configProtocol = other_value.field_configProtocol; +if (other_value.field_pco.is_bound() ) + field_pco = other_value.field_pco; +init_vec(); +} + +ExtdProtocolConfigOptions::ExtdProtocolConfigOptions(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_ext, + const BITSTRING& par_spare, + const BITSTRING& par_configProtocol, + const OPTIONAL& par_pco) : field_iei(par_iei), + field_iel(par_iel), + field_ext(par_ext), + field_spare(par_spare), + field_configProtocol(par_configProtocol), + field_pco(par_pco) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ExtdProtocolConfigOptions::get_descriptor() const { return &ExtdProtocolConfigOptions_descr_; } +const TTCN_Typedescriptor_t* ExtdProtocolConfigOptions::fld_descriptors[] = { &IEI8__Type_descr_, &Type6Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B3__Type_descr_, &ExtdProtocolConfigOptions_pco_descr_ }; +const TTCN_Typedescriptor_t* ExtdProtocolConfigOptions::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ExtdProtocolConfigOptions::fld_names[] = { "iei", "iel", "ext", "spare", "configProtocol", "pco" }; +const char* ExtdProtocolConfigOptions::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ExtdProtocolConfigOptions::optional_indexes[] = { 5, -1 }; +const int* ExtdProtocolConfigOptions::get_optional_indexes() const { return optional_indexes; } + +const int ExtdProtocolConfigOptions::optional_indexes_asn[] = { 5, -1 }; +const int* ExtdProtocolConfigOptions::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ExtdProtocolConfigOptions_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new ExtdProtocolConfigOptions_pco_template(ANY_OR_OMIT) : new ExtdProtocolConfigOptions_pco_template; +} +} + +ExtdProtocolConfigOptions_template::ExtdProtocolConfigOptions_template(ExtdProtocolConfigOptions_template* p_precondition, ExtdProtocolConfigOptions_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdProtocolConfigOptions_template::ExtdProtocolConfigOptions_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdProtocolConfigOptions_template::~ExtdProtocolConfigOptions_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdProtocolConfigOptions_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdProtocolConfigOptions* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ExtdProtocolConfigOptions_template& ExtdProtocolConfigOptions_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdProtocolConfigOptions_template& ExtdProtocolConfigOptions_template::operator=(const ExtdProtocolConfigOptions& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdProtocolConfigOptions_template& ExtdProtocolConfigOptions_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdProtocolConfigOptions_template& ExtdProtocolConfigOptions_template::operator=(const ExtdProtocolConfigOptions_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdProtocolConfigOptions ExtdProtocolConfigOptions_template::valueof() const +{ +ExtdProtocolConfigOptions ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ExtdProtocolConfigOptions_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ExtdProtocolConfigOptions_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ExtdProtocolConfigOptions_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ExtdProtocolConfigOptions_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ExtdProtocolConfigOptions_template::ext() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ExtdProtocolConfigOptions_template::ext() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ExtdProtocolConfigOptions_template::spare() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ExtdProtocolConfigOptions_template::spare() const { return *(static_cast(get_at(3))); } +BITSTRING_template& ExtdProtocolConfigOptions_template::configProtocol() { return *(static_cast(get_at(4))); } +const BITSTRING_template& ExtdProtocolConfigOptions_template::configProtocol() const { return *(static_cast(get_at(4))); } +ExtdProtocolConfigOptions_pco_template& ExtdProtocolConfigOptions_template::pco() { return *(static_cast(get_at(5))); } +const ExtdProtocolConfigOptions_pco_template& ExtdProtocolConfigOptions_template::pco() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* ExtdProtocolConfigOptions_template::get_descriptor() const { return &ExtdProtocolConfigOptions_descr_; } +const char* ExtdProtocolConfigOptions_template::fld_name(int p_index) const { return ExtdProtocolConfigOptions::fld_names[p_index]; } + +const ProtocolContainer ExtdProtocolConfigOptions_pco::UNBOUND_ELEM; +ProtocolContainer& ExtdProtocolConfigOptions_pco::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ProtocolContainer& ExtdProtocolConfigOptions_pco::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ProtocolContainer& ExtdProtocolConfigOptions_pco::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ProtocolContainer& ExtdProtocolConfigOptions_pco::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::operator<<=(const INTEGER& rotate_count) const +{ +ExtdProtocolConfigOptions_pco rec_of; +return *((ExtdProtocolConfigOptions_pco*)rotl(rotate_count, &rec_of)); +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::operator>>=(const INTEGER& rotate_count) const +{ +ExtdProtocolConfigOptions_pco rec_of; +return *((ExtdProtocolConfigOptions_pco*)rotr(rotate_count, &rec_of)); +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::operator>>=(int rotate_count) const +{ +ExtdProtocolConfigOptions_pco rec_of; +return *((ExtdProtocolConfigOptions_pco*)rotr(rotate_count, &rec_of)); +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::operator+(const ExtdProtocolConfigOptions_pco& other_value) const +{ +ExtdProtocolConfigOptions_pco rec_of; +return *((ExtdProtocolConfigOptions_pco*)concat(&other_value, &rec_of)); +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const ExtdProtocolConfigOptions_pco&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.ExtdProtocolConfigOptions.pco concatenation."); +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::operator+(null_type) const +{ +return *this; +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::substr(int index, int returncount) const +{ +ExtdProtocolConfigOptions_pco rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::replace(int index, int len, const ExtdProtocolConfigOptions_pco& repl) const +{ +ExtdProtocolConfigOptions_pco rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco::replace(int index, int len, const ExtdProtocolConfigOptions_pco_template& repl) const +{ +ExtdProtocolConfigOptions_pco rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* ExtdProtocolConfigOptions_pco::create_elem() const { return new ProtocolContainer; } +const Base_Type* ExtdProtocolConfigOptions_pco::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* ExtdProtocolConfigOptions_pco::get_descriptor() const { return &ExtdProtocolConfigOptions_pco_descr_; } +ExtdProtocolConfigOptions_pco_template::ExtdProtocolConfigOptions_pco_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +ExtdProtocolConfigOptions_pco_template::ExtdProtocolConfigOptions_pco_template(ExtdProtocolConfigOptions_pco_template* p_precondition, ExtdProtocolConfigOptions_pco_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdProtocolConfigOptions_pco_template::ExtdProtocolConfigOptions_pco_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdProtocolConfigOptions_pco_template::~ExtdProtocolConfigOptions_pco_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdProtocolConfigOptions_pco_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdProtocolConfigOptions_pco* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +ExtdProtocolConfigOptions_pco_template& ExtdProtocolConfigOptions_pco_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdProtocolConfigOptions_pco_template& ExtdProtocolConfigOptions_pco_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +ExtdProtocolConfigOptions_pco_template& ExtdProtocolConfigOptions_pco_template::operator=(const ExtdProtocolConfigOptions_pco& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdProtocolConfigOptions_pco_template& ExtdProtocolConfigOptions_pco_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdProtocolConfigOptions_pco_template& ExtdProtocolConfigOptions_pco_template::operator=(const ExtdProtocolConfigOptions_pco_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdProtocolConfigOptions_pco_template ExtdProtocolConfigOptions_pco_template::operator+(const ExtdProtocolConfigOptions_pco_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return ExtdProtocolConfigOptions_pco_template(ANY_VALUE); +} +ExtdProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ExtdProtocolConfigOptions_pco_template ExtdProtocolConfigOptions_pco_template::operator+(const ExtdProtocolConfigOptions_pco& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +ExtdProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ExtdProtocolConfigOptions_pco_template ExtdProtocolConfigOptions_pco_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return ExtdProtocolConfigOptions_pco_template(ANY_VALUE); +} +ExtdProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +ExtdProtocolConfigOptions_pco_template ExtdProtocolConfigOptions_pco_template::operator+(null_type) const +{ +return *this; +} + +ProtocolContainer_template& ExtdProtocolConfigOptions_pco_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ProtocolContainer_template& ExtdProtocolConfigOptions_pco_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ProtocolContainer_template& ExtdProtocolConfigOptions_pco_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ProtocolContainer_template& ExtdProtocolConfigOptions_pco_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco_template::valueof() const +{ +ExtdProtocolConfigOptions_pco ret_val; +valueofv(&ret_val); +return ret_val; +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco_template::substr(int index, int returncount) const +{ +ExtdProtocolConfigOptions_pco rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco_template::replace(int index, int len, const ExtdProtocolConfigOptions_pco_template& repl) const +{ +ExtdProtocolConfigOptions_pco rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ExtdProtocolConfigOptions_pco ExtdProtocolConfigOptions_pco_template::replace(int index, int len, const ExtdProtocolConfigOptions_pco& repl) const +{ +ExtdProtocolConfigOptions_pco rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* ExtdProtocolConfigOptions_pco_template::create_elem() const { return new ProtocolContainer_template; } +const TTCN_Typedescriptor_t* ExtdProtocolConfigOptions_pco_template::get_descriptor() const { return &ExtdProtocolConfigOptions_pco_descr_; } + +const ProtocolContainer NAS__ExtdProtocolConfigOptions__Type::UNBOUND_ELEM; +ProtocolContainer& NAS__ExtdProtocolConfigOptions__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ProtocolContainer& NAS__ExtdProtocolConfigOptions__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ProtocolContainer& NAS__ExtdProtocolConfigOptions__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ProtocolContainer& NAS__ExtdProtocolConfigOptions__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::operator<<=(const INTEGER& rotate_count) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +return *((NAS__ExtdProtocolConfigOptions__Type*)rotl(rotate_count, &rec_of)); +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::operator>>=(const INTEGER& rotate_count) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +return *((NAS__ExtdProtocolConfigOptions__Type*)rotr(rotate_count, &rec_of)); +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::operator>>=(int rotate_count) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +return *((NAS__ExtdProtocolConfigOptions__Type*)rotr(rotate_count, &rec_of)); +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::operator+(const NAS__ExtdProtocolConfigOptions__Type& other_value) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +return *((NAS__ExtdProtocolConfigOptions__Type*)concat(&other_value, &rec_of)); +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NAS__ExtdProtocolConfigOptions__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.NAS_ExtdProtocolConfigOptions_Type concatenation."); +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::operator+(null_type) const +{ +return *this; +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::substr(int index, int returncount) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::replace(int index, int len, const NAS__ExtdProtocolConfigOptions__Type& repl) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type::replace(int index, int len, const NAS__ExtdProtocolConfigOptions__Type_template& repl) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NAS__ExtdProtocolConfigOptions__Type::create_elem() const { return new ProtocolContainer; } +const Base_Type* NAS__ExtdProtocolConfigOptions__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NAS__ExtdProtocolConfigOptions__Type::get_descriptor() const { return &NAS__ExtdProtocolConfigOptions__Type_descr_; } +NAS__ExtdProtocolConfigOptions__Type_template::NAS__ExtdProtocolConfigOptions__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NAS__ExtdProtocolConfigOptions__Type_template::NAS__ExtdProtocolConfigOptions__Type_template(NAS__ExtdProtocolConfigOptions__Type_template* p_precondition, NAS__ExtdProtocolConfigOptions__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NAS__ExtdProtocolConfigOptions__Type_template::NAS__ExtdProtocolConfigOptions__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NAS__ExtdProtocolConfigOptions__Type_template::~NAS__ExtdProtocolConfigOptions__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NAS__ExtdProtocolConfigOptions__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NAS__ExtdProtocolConfigOptions__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NAS__ExtdProtocolConfigOptions__Type_template& NAS__ExtdProtocolConfigOptions__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NAS__ExtdProtocolConfigOptions__Type_template& NAS__ExtdProtocolConfigOptions__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NAS__ExtdProtocolConfigOptions__Type_template& NAS__ExtdProtocolConfigOptions__Type_template::operator=(const NAS__ExtdProtocolConfigOptions__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NAS__ExtdProtocolConfigOptions__Type_template& NAS__ExtdProtocolConfigOptions__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NAS__ExtdProtocolConfigOptions__Type_template& NAS__ExtdProtocolConfigOptions__Type_template::operator=(const NAS__ExtdProtocolConfigOptions__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NAS__ExtdProtocolConfigOptions__Type_template NAS__ExtdProtocolConfigOptions__Type_template::operator+(const NAS__ExtdProtocolConfigOptions__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NAS__ExtdProtocolConfigOptions__Type_template(ANY_VALUE); +} +NAS__ExtdProtocolConfigOptions__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NAS__ExtdProtocolConfigOptions__Type_template NAS__ExtdProtocolConfigOptions__Type_template::operator+(const NAS__ExtdProtocolConfigOptions__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NAS__ExtdProtocolConfigOptions__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NAS__ExtdProtocolConfigOptions__Type_template NAS__ExtdProtocolConfigOptions__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NAS__ExtdProtocolConfigOptions__Type_template(ANY_VALUE); +} +NAS__ExtdProtocolConfigOptions__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NAS__ExtdProtocolConfigOptions__Type_template NAS__ExtdProtocolConfigOptions__Type_template::operator+(null_type) const +{ +return *this; +} + +ProtocolContainer_template& NAS__ExtdProtocolConfigOptions__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ProtocolContainer_template& NAS__ExtdProtocolConfigOptions__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ProtocolContainer_template& NAS__ExtdProtocolConfigOptions__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ProtocolContainer_template& NAS__ExtdProtocolConfigOptions__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type_template::valueof() const +{ +NAS__ExtdProtocolConfigOptions__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type_template::substr(int index, int returncount) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type_template::replace(int index, int len, const NAS__ExtdProtocolConfigOptions__Type_template& repl) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NAS__ExtdProtocolConfigOptions__Type NAS__ExtdProtocolConfigOptions__Type_template::replace(int index, int len, const NAS__ExtdProtocolConfigOptions__Type& repl) const +{ +NAS__ExtdProtocolConfigOptions__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NAS__ExtdProtocolConfigOptions__Type_template::create_elem() const { return new ProtocolContainer_template; } +const TTCN_Typedescriptor_t* NAS__ExtdProtocolConfigOptions__Type_template::get_descriptor() const { return &NAS__ExtdProtocolConfigOptions__Type_descr_; } +void AdditionalInformation::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_additionalInfo; } + +AdditionalInformation::AdditionalInformation() : Record_Type() { init_vec(); } + +AdditionalInformation::AdditionalInformation(const AdditionalInformation& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_additionalInfo.is_bound() ) + field_additionalInfo = other_value.field_additionalInfo; +init_vec(); +} + +AdditionalInformation::AdditionalInformation(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_additionalInfo) : field_iei(par_iei), + field_iel(par_iel), + field_additionalInfo(par_additionalInfo) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AdditionalInformation::get_descriptor() const { return &AdditionalInformation_descr_; } +const TTCN_Typedescriptor_t* AdditionalInformation::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* AdditionalInformation::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AdditionalInformation::fld_names[] = { "iei", "iel", "additionalInfo" }; +const char* AdditionalInformation::fld_name(int p_index) const { return fld_names[p_index]; } + +void AdditionalInformation_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +AdditionalInformation_template::AdditionalInformation_template(AdditionalInformation_template* p_precondition, AdditionalInformation_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AdditionalInformation_template::AdditionalInformation_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AdditionalInformation_template::~AdditionalInformation_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AdditionalInformation_template::match_dynamic(const Base_Type* match_value) const +{ +const AdditionalInformation* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AdditionalInformation_template& AdditionalInformation_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AdditionalInformation_template& AdditionalInformation_template::operator=(const AdditionalInformation& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AdditionalInformation_template& AdditionalInformation_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AdditionalInformation_template& AdditionalInformation_template::operator=(const AdditionalInformation_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AdditionalInformation AdditionalInformation_template::valueof() const +{ +AdditionalInformation ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AdditionalInformation_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AdditionalInformation_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& AdditionalInformation_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& AdditionalInformation_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& AdditionalInformation_template::additionalInfo() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& AdditionalInformation_template::additionalInfo() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AdditionalInformation_template::get_descriptor() const { return &AdditionalInformation_descr_; } +const char* AdditionalInformation_template::fld_name(int p_index) const { return AdditionalInformation::fld_names[p_index]; } +void AuthenticationResponseParameter::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_res; } + +AuthenticationResponseParameter::AuthenticationResponseParameter() : Record_Type() { init_vec(); } + +AuthenticationResponseParameter::AuthenticationResponseParameter(const AuthenticationResponseParameter& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_res.is_bound() ) + field_res = other_value.field_res; +init_vec(); +} + +AuthenticationResponseParameter::AuthenticationResponseParameter(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_res) : field_iei(par_iei), + field_iel(par_iel), + field_res(par_res) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AuthenticationResponseParameter::get_descriptor() const { return &AuthenticationResponseParameter_descr_; } +const TTCN_Typedescriptor_t* AuthenticationResponseParameter::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B32__128__Type_descr_ }; +const TTCN_Typedescriptor_t* AuthenticationResponseParameter::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AuthenticationResponseParameter::fld_names[] = { "iei", "iel", "res" }; +const char* AuthenticationResponseParameter::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AuthenticationResponseParameter::optional_indexes[] = { 0, 1, -1 }; +const int* AuthenticationResponseParameter::get_optional_indexes() const { return optional_indexes; } + +const int AuthenticationResponseParameter::optional_indexes_asn[] = { 0, 1, -1 }; +const int* AuthenticationResponseParameter::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AuthenticationResponseParameter_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AuthenticationResponseParameter_template::AuthenticationResponseParameter_template(AuthenticationResponseParameter_template* p_precondition, AuthenticationResponseParameter_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AuthenticationResponseParameter_template::AuthenticationResponseParameter_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AuthenticationResponseParameter_template::~AuthenticationResponseParameter_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AuthenticationResponseParameter_template::match_dynamic(const Base_Type* match_value) const +{ +const AuthenticationResponseParameter* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AuthenticationResponseParameter_template& AuthenticationResponseParameter_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AuthenticationResponseParameter_template& AuthenticationResponseParameter_template::operator=(const AuthenticationResponseParameter& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AuthenticationResponseParameter_template& AuthenticationResponseParameter_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AuthenticationResponseParameter_template& AuthenticationResponseParameter_template::operator=(const AuthenticationResponseParameter_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AuthenticationResponseParameter AuthenticationResponseParameter_template::valueof() const +{ +AuthenticationResponseParameter ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AuthenticationResponseParameter_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AuthenticationResponseParameter_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& AuthenticationResponseParameter_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& AuthenticationResponseParameter_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AuthenticationResponseParameter_template::res() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AuthenticationResponseParameter_template::res() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AuthenticationResponseParameter_template::get_descriptor() const { return &AuthenticationResponseParameter_descr_; } +const char* AuthenticationResponseParameter_template::fld_name(int p_index) const { return AuthenticationResponseParameter::fld_names[p_index]; } +void NAS__KeySetIdentifier::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_tsc; fld_vec[2]=&field_nasKeySetId; } + +NAS__KeySetIdentifier::NAS__KeySetIdentifier() : Record_Type() { init_vec(); } + +NAS__KeySetIdentifier::NAS__KeySetIdentifier(const NAS__KeySetIdentifier& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_tsc.is_bound() ) + field_tsc = other_value.field_tsc; +if (other_value.field_nasKeySetId.is_bound() ) + field_nasKeySetId = other_value.field_nasKeySetId; +init_vec(); +} + +NAS__KeySetIdentifier::NAS__KeySetIdentifier(const OPTIONAL& par_iei, + const BITSTRING& par_tsc, + const BITSTRING& par_nasKeySetId) : field_iei(par_iei), + field_tsc(par_tsc), + field_nasKeySetId(par_nasKeySetId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NAS__KeySetIdentifier::get_descriptor() const { return &NAS__KeySetIdentifier_descr_; } +const TTCN_Typedescriptor_t* NAS__KeySetIdentifier::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &NAS__KsiValue_descr_ }; +const TTCN_Typedescriptor_t* NAS__KeySetIdentifier::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NAS__KeySetIdentifier::fld_names[] = { "iei", "tsc", "nasKeySetId" }; +const char* NAS__KeySetIdentifier::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NAS__KeySetIdentifier::optional_indexes[] = { 0, -1 }; +const int* NAS__KeySetIdentifier::get_optional_indexes() const { return optional_indexes; } + +const int NAS__KeySetIdentifier::optional_indexes_asn[] = { 0, -1 }; +const int* NAS__KeySetIdentifier::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NAS__KeySetIdentifier_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NAS__KeySetIdentifier_template::NAS__KeySetIdentifier_template(NAS__KeySetIdentifier_template* p_precondition, NAS__KeySetIdentifier_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NAS__KeySetIdentifier_template::NAS__KeySetIdentifier_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NAS__KeySetIdentifier_template::~NAS__KeySetIdentifier_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NAS__KeySetIdentifier_template::match_dynamic(const Base_Type* match_value) const +{ +const NAS__KeySetIdentifier* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NAS__KeySetIdentifier_template& NAS__KeySetIdentifier_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NAS__KeySetIdentifier_template& NAS__KeySetIdentifier_template::operator=(const NAS__KeySetIdentifier& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NAS__KeySetIdentifier_template& NAS__KeySetIdentifier_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NAS__KeySetIdentifier_template& NAS__KeySetIdentifier_template::operator=(const NAS__KeySetIdentifier_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NAS__KeySetIdentifier NAS__KeySetIdentifier_template::valueof() const +{ +NAS__KeySetIdentifier ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& NAS__KeySetIdentifier_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& NAS__KeySetIdentifier_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NAS__KeySetIdentifier_template::tsc() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NAS__KeySetIdentifier_template::tsc() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NAS__KeySetIdentifier_template::nasKeySetId() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NAS__KeySetIdentifier_template::nasKeySetId() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NAS__KeySetIdentifier_template::get_descriptor() const { return &NAS__KeySetIdentifier_descr_; } +const char* NAS__KeySetIdentifier_template::fld_name(int p_index) const { return NAS__KeySetIdentifier::fld_names[p_index]; } +void HashMME::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_hashMME; } + +HashMME::HashMME() : Record_Type() { init_vec(); } + +HashMME::HashMME(const HashMME& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_hashMME.is_bound() ) + field_hashMME = other_value.field_hashMME; +init_vec(); +} + +HashMME::HashMME(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_hashMME) : field_iei(par_iei), + field_iel(par_iel), + field_hashMME(par_hashMME) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* HashMME::get_descriptor() const { return &HashMME_descr_; } +const TTCN_Typedescriptor_t* HashMME::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::O8__Type_descr_ }; +const TTCN_Typedescriptor_t* HashMME::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* HashMME::fld_names[] = { "iei", "iel", "hashMME" }; +const char* HashMME::fld_name(int p_index) const { return fld_names[p_index]; } + +const int HashMME::optional_indexes[] = { 0, -1 }; +const int* HashMME::get_optional_indexes() const { return optional_indexes; } + +const int HashMME::optional_indexes_asn[] = { 0, -1 }; +const int* HashMME::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void HashMME_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +HashMME_template::HashMME_template(HashMME_template* p_precondition, HashMME_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +HashMME_template::HashMME_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +HashMME_template::~HashMME_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean HashMME_template::match_dynamic(const Base_Type* match_value) const +{ +const HashMME* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +HashMME_template& HashMME_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +HashMME_template& HashMME_template::operator=(const HashMME& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +HashMME_template& HashMME_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +HashMME_template& HashMME_template::operator=(const HashMME_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +HashMME HashMME_template::valueof() const +{ +HashMME ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& HashMME_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& HashMME_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& HashMME_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& HashMME_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& HashMME_template::hashMME() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& HashMME_template::hashMME() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* HashMME_template::get_descriptor() const { return &HashMME_descr_; } +const char* HashMME_template::fld_name(int p_index) const { return HashMME::fld_names[p_index]; } +void PDN__Address::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_typeValue; fld_vec[4]=&field_adressInfo; } + +PDN__Address::PDN__Address() : Record_Type() { init_vec(); } + +PDN__Address::PDN__Address(const PDN__Address& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_typeValue.is_bound() ) + field_typeValue = other_value.field_typeValue; +if (other_value.field_adressInfo.is_bound() ) + field_adressInfo = other_value.field_adressInfo; +init_vec(); +} + +PDN__Address::PDN__Address(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_typeValue, + const OCTETSTRING& par_adressInfo) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_typeValue(par_typeValue), + field_adressInfo(par_adressInfo) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDN__Address::get_descriptor() const { return &PDN__Address_descr_; } +const TTCN_Typedescriptor_t* PDN__Address::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B5__Type_descr_, &CommonDefs::B3__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* PDN__Address::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDN__Address::fld_names[] = { "iei", "iel", "spare", "typeValue", "adressInfo" }; +const char* PDN__Address::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PDN__Address::optional_indexes[] = { 0, 1, -1 }; +const int* PDN__Address::get_optional_indexes() const { return optional_indexes; } + +const int PDN__Address::optional_indexes_asn[] = { 0, 1, -1 }; +const int* PDN__Address::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PDN__Address_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +PDN__Address_template::PDN__Address_template(PDN__Address_template* p_precondition, PDN__Address_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDN__Address_template::PDN__Address_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDN__Address_template::~PDN__Address_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDN__Address_template::match_dynamic(const Base_Type* match_value) const +{ +const PDN__Address* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDN__Address_template& PDN__Address_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDN__Address_template& PDN__Address_template::operator=(const PDN__Address& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDN__Address_template& PDN__Address_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDN__Address_template& PDN__Address_template::operator=(const PDN__Address_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDN__Address PDN__Address_template::valueof() const +{ +PDN__Address ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PDN__Address_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PDN__Address_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PDN__Address_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PDN__Address_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PDN__Address_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PDN__Address_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PDN__Address_template::typeValue() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PDN__Address_template::typeValue() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& PDN__Address_template::adressInfo() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& PDN__Address_template::adressInfo() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* PDN__Address_template::get_descriptor() const { return &PDN__Address_descr_; } +const char* PDN__Address_template::fld_name(int p_index) const { return PDN__Address::fld_names[p_index]; } +void ReplayedNASMessageContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_replayedNASMsgContainerValue; } + +ReplayedNASMessageContainer::ReplayedNASMessageContainer() : Record_Type() { init_vec(); } + +ReplayedNASMessageContainer::ReplayedNASMessageContainer(const ReplayedNASMessageContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_replayedNASMsgContainerValue.is_bound() ) + field_replayedNASMsgContainerValue = other_value.field_replayedNASMsgContainerValue; +init_vec(); +} + +ReplayedNASMessageContainer::ReplayedNASMessageContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_replayedNASMsgContainerValue) : field_iei(par_iei), + field_iel(par_iel), + field_replayedNASMsgContainerValue(par_replayedNASMsgContainerValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ReplayedNASMessageContainer::get_descriptor() const { return &ReplayedNASMessageContainer_descr_; } +const TTCN_Typedescriptor_t* ReplayedNASMessageContainer::fld_descriptors[] = { &IEI8__Type_descr_, &Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* ReplayedNASMessageContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ReplayedNASMessageContainer::fld_names[] = { "iei", "iel", "replayedNASMsgContainerValue" }; +const char* ReplayedNASMessageContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ReplayedNASMessageContainer::optional_indexes[] = { 0, -1 }; +const int* ReplayedNASMessageContainer::get_optional_indexes() const { return optional_indexes; } + +const int ReplayedNASMessageContainer::optional_indexes_asn[] = { 0, -1 }; +const int* ReplayedNASMessageContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ReplayedNASMessageContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +ReplayedNASMessageContainer_template::ReplayedNASMessageContainer_template(ReplayedNASMessageContainer_template* p_precondition, ReplayedNASMessageContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ReplayedNASMessageContainer_template::ReplayedNASMessageContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ReplayedNASMessageContainer_template::~ReplayedNASMessageContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ReplayedNASMessageContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const ReplayedNASMessageContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ReplayedNASMessageContainer_template& ReplayedNASMessageContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ReplayedNASMessageContainer_template& ReplayedNASMessageContainer_template::operator=(const ReplayedNASMessageContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ReplayedNASMessageContainer_template& ReplayedNASMessageContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ReplayedNASMessageContainer_template& ReplayedNASMessageContainer_template::operator=(const ReplayedNASMessageContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ReplayedNASMessageContainer ReplayedNASMessageContainer_template::valueof() const +{ +ReplayedNASMessageContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ReplayedNASMessageContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ReplayedNASMessageContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ReplayedNASMessageContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ReplayedNASMessageContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ReplayedNASMessageContainer_template::replayedNASMsgContainerValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ReplayedNASMessageContainer_template::replayedNASMsgContainerValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ReplayedNASMessageContainer_template::get_descriptor() const { return &ReplayedNASMessageContainer_descr_; } +const char* ReplayedNASMessageContainer_template::fld_name(int p_index) const { return ReplayedNASMessageContainer::fld_names[p_index]; } +void NAS__SecurityAlgorithms::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare1; fld_vec[2]=&field_cipheringType; fld_vec[3]=&field_spare2; fld_vec[4]=&field_integrityType; } + +NAS__SecurityAlgorithms::NAS__SecurityAlgorithms() : Record_Type() { init_vec(); } + +NAS__SecurityAlgorithms::NAS__SecurityAlgorithms(const NAS__SecurityAlgorithms& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare1.is_bound() ) + field_spare1 = other_value.field_spare1; +if (other_value.field_cipheringType.is_bound() ) + field_cipheringType = other_value.field_cipheringType; +if (other_value.field_spare2.is_bound() ) + field_spare2 = other_value.field_spare2; +if (other_value.field_integrityType.is_bound() ) + field_integrityType = other_value.field_integrityType; +init_vec(); +} + +NAS__SecurityAlgorithms::NAS__SecurityAlgorithms(const OPTIONAL& par_iei, + const BITSTRING& par_spare1, + const BITSTRING& par_cipheringType, + const BITSTRING& par_spare2, + const BITSTRING& par_integrityType) : field_iei(par_iei), + field_spare1(par_spare1), + field_cipheringType(par_cipheringType), + field_spare2(par_spare2), + field_integrityType(par_integrityType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NAS__SecurityAlgorithms::get_descriptor() const { return &NAS__SecurityAlgorithms_descr_; } +const TTCN_Typedescriptor_t* NAS__SecurityAlgorithms::fld_descriptors[] = { &IEI8__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* NAS__SecurityAlgorithms::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NAS__SecurityAlgorithms::fld_names[] = { "iei", "spare1", "cipheringType", "spare2", "integrityType" }; +const char* NAS__SecurityAlgorithms::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NAS__SecurityAlgorithms::optional_indexes[] = { 0, -1 }; +const int* NAS__SecurityAlgorithms::get_optional_indexes() const { return optional_indexes; } + +const int NAS__SecurityAlgorithms::optional_indexes_asn[] = { 0, -1 }; +const int* NAS__SecurityAlgorithms::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NAS__SecurityAlgorithms_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NAS__SecurityAlgorithms_template::NAS__SecurityAlgorithms_template(NAS__SecurityAlgorithms_template* p_precondition, NAS__SecurityAlgorithms_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NAS__SecurityAlgorithms_template::NAS__SecurityAlgorithms_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NAS__SecurityAlgorithms_template::~NAS__SecurityAlgorithms_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NAS__SecurityAlgorithms_template::match_dynamic(const Base_Type* match_value) const +{ +const NAS__SecurityAlgorithms* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NAS__SecurityAlgorithms_template& NAS__SecurityAlgorithms_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NAS__SecurityAlgorithms_template& NAS__SecurityAlgorithms_template::operator=(const NAS__SecurityAlgorithms& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NAS__SecurityAlgorithms_template& NAS__SecurityAlgorithms_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NAS__SecurityAlgorithms_template& NAS__SecurityAlgorithms_template::operator=(const NAS__SecurityAlgorithms_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NAS__SecurityAlgorithms NAS__SecurityAlgorithms_template::valueof() const +{ +NAS__SecurityAlgorithms ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NAS__SecurityAlgorithms_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NAS__SecurityAlgorithms_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NAS__SecurityAlgorithms_template::spare1() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NAS__SecurityAlgorithms_template::spare1() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NAS__SecurityAlgorithms_template::cipheringType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NAS__SecurityAlgorithms_template::cipheringType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NAS__SecurityAlgorithms_template::spare2() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NAS__SecurityAlgorithms_template::spare2() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NAS__SecurityAlgorithms_template::integrityType() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NAS__SecurityAlgorithms_template::integrityType() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NAS__SecurityAlgorithms_template::get_descriptor() const { return &NAS__SecurityAlgorithms_descr_; } +const char* NAS__SecurityAlgorithms_template::fld_name(int p_index) const { return NAS__SecurityAlgorithms::fld_names[p_index]; } +void Extd__EPS__QOS::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_unitMaxBitRate; fld_vec[3]=&field_maxBitRateUl__1; fld_vec[4]=&field_maxBitRateUl__2; fld_vec[5]=&field_maxBitRateDl__1; fld_vec[6]=&field_maxBitRateDl__2; fld_vec[7]=&field_unitGuaranteedBitRate; fld_vec[8]=&field_guaranteedBitRateUl__1; fld_vec[9]=&field_guaranteedBitRateUl__2; fld_vec[10]=&field_guaranteedBitRateDl__1; fld_vec[11]=&field_guaranteedBitRateDl__2; } + +Extd__EPS__QOS::Extd__EPS__QOS() : Record_Type() { init_vec(); } + +Extd__EPS__QOS::Extd__EPS__QOS(const Extd__EPS__QOS& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_unitMaxBitRate.is_bound() ) + field_unitMaxBitRate = other_value.field_unitMaxBitRate; +if (other_value.field_maxBitRateUl__1.is_bound() ) + field_maxBitRateUl__1 = other_value.field_maxBitRateUl__1; +if (other_value.field_maxBitRateUl__2.is_bound() ) + field_maxBitRateUl__2 = other_value.field_maxBitRateUl__2; +if (other_value.field_maxBitRateDl__1.is_bound() ) + field_maxBitRateDl__1 = other_value.field_maxBitRateDl__1; +if (other_value.field_maxBitRateDl__2.is_bound() ) + field_maxBitRateDl__2 = other_value.field_maxBitRateDl__2; +if (other_value.field_unitGuaranteedBitRate.is_bound() ) + field_unitGuaranteedBitRate = other_value.field_unitGuaranteedBitRate; +if (other_value.field_guaranteedBitRateUl__1.is_bound() ) + field_guaranteedBitRateUl__1 = other_value.field_guaranteedBitRateUl__1; +if (other_value.field_guaranteedBitRateUl__2.is_bound() ) + field_guaranteedBitRateUl__2 = other_value.field_guaranteedBitRateUl__2; +if (other_value.field_guaranteedBitRateDl__1.is_bound() ) + field_guaranteedBitRateDl__1 = other_value.field_guaranteedBitRateDl__1; +if (other_value.field_guaranteedBitRateDl__2.is_bound() ) + field_guaranteedBitRateDl__2 = other_value.field_guaranteedBitRateDl__2; +init_vec(); +} + +Extd__EPS__QOS::Extd__EPS__QOS(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_unitMaxBitRate, + const BITSTRING& par_maxBitRateUl__1, + const BITSTRING& par_maxBitRateUl__2, + const BITSTRING& par_maxBitRateDl__1, + const BITSTRING& par_maxBitRateDl__2, + const BITSTRING& par_unitGuaranteedBitRate, + const BITSTRING& par_guaranteedBitRateUl__1, + const BITSTRING& par_guaranteedBitRateUl__2, + const BITSTRING& par_guaranteedBitRateDl__1, + const BITSTRING& par_guaranteedBitRateDl__2) : field_iei(par_iei), + field_iel(par_iel), + field_unitMaxBitRate(par_unitMaxBitRate), + field_maxBitRateUl__1(par_maxBitRateUl__1), + field_maxBitRateUl__2(par_maxBitRateUl__2), + field_maxBitRateDl__1(par_maxBitRateDl__1), + field_maxBitRateDl__2(par_maxBitRateDl__2), + field_unitGuaranteedBitRate(par_unitGuaranteedBitRate), + field_guaranteedBitRateUl__1(par_guaranteedBitRateUl__1), + field_guaranteedBitRateUl__2(par_guaranteedBitRateUl__2), + field_guaranteedBitRateDl__1(par_guaranteedBitRateDl__1), + field_guaranteedBitRateDl__2(par_guaranteedBitRateDl__2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Extd__EPS__QOS::get_descriptor() const { return &Extd__EPS__QOS_descr_; } +const TTCN_Typedescriptor_t* Extd__EPS__QOS::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* Extd__EPS__QOS::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Extd__EPS__QOS::fld_names[] = { "iei", "iel", "unitMaxBitRate", "maxBitRateUl_1", "maxBitRateUl_2", "maxBitRateDl_1", "maxBitRateDl_2", "unitGuaranteedBitRate", "guaranteedBitRateUl_1", "guaranteedBitRateUl_2", "guaranteedBitRateDl_1", "guaranteedBitRateDl_2" }; +const char* Extd__EPS__QOS::fld_name(int p_index) const { return fld_names[p_index]; } + +const int Extd__EPS__QOS::optional_indexes[] = { 0, -1 }; +const int* Extd__EPS__QOS::get_optional_indexes() const { return optional_indexes; } + +const int Extd__EPS__QOS::optional_indexes_asn[] = { 0, -1 }; +const int* Extd__EPS__QOS::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void Extd__EPS__QOS_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 12; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +Extd__EPS__QOS_template::Extd__EPS__QOS_template(Extd__EPS__QOS_template* p_precondition, Extd__EPS__QOS_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Extd__EPS__QOS_template::Extd__EPS__QOS_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Extd__EPS__QOS_template::~Extd__EPS__QOS_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Extd__EPS__QOS_template::match_dynamic(const Base_Type* match_value) const +{ +const Extd__EPS__QOS* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Extd__EPS__QOS_template& Extd__EPS__QOS_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Extd__EPS__QOS_template& Extd__EPS__QOS_template::operator=(const Extd__EPS__QOS& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Extd__EPS__QOS_template& Extd__EPS__QOS_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Extd__EPS__QOS_template& Extd__EPS__QOS_template::operator=(const Extd__EPS__QOS_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Extd__EPS__QOS Extd__EPS__QOS_template::valueof() const +{ +Extd__EPS__QOS ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& Extd__EPS__QOS_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& Extd__EPS__QOS_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& Extd__EPS__QOS_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& Extd__EPS__QOS_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& Extd__EPS__QOS_template::unitMaxBitRate() { return *(static_cast(get_at(2))); } +const BITSTRING_template& Extd__EPS__QOS_template::unitMaxBitRate() const { return *(static_cast(get_at(2))); } +BITSTRING_template& Extd__EPS__QOS_template::maxBitRateUl__1() { return *(static_cast(get_at(3))); } +const BITSTRING_template& Extd__EPS__QOS_template::maxBitRateUl__1() const { return *(static_cast(get_at(3))); } +BITSTRING_template& Extd__EPS__QOS_template::maxBitRateUl__2() { return *(static_cast(get_at(4))); } +const BITSTRING_template& Extd__EPS__QOS_template::maxBitRateUl__2() const { return *(static_cast(get_at(4))); } +BITSTRING_template& Extd__EPS__QOS_template::maxBitRateDl__1() { return *(static_cast(get_at(5))); } +const BITSTRING_template& Extd__EPS__QOS_template::maxBitRateDl__1() const { return *(static_cast(get_at(5))); } +BITSTRING_template& Extd__EPS__QOS_template::maxBitRateDl__2() { return *(static_cast(get_at(6))); } +const BITSTRING_template& Extd__EPS__QOS_template::maxBitRateDl__2() const { return *(static_cast(get_at(6))); } +BITSTRING_template& Extd__EPS__QOS_template::unitGuaranteedBitRate() { return *(static_cast(get_at(7))); } +const BITSTRING_template& Extd__EPS__QOS_template::unitGuaranteedBitRate() const { return *(static_cast(get_at(7))); } +BITSTRING_template& Extd__EPS__QOS_template::guaranteedBitRateUl__1() { return *(static_cast(get_at(8))); } +const BITSTRING_template& Extd__EPS__QOS_template::guaranteedBitRateUl__1() const { return *(static_cast(get_at(8))); } +BITSTRING_template& Extd__EPS__QOS_template::guaranteedBitRateUl__2() { return *(static_cast(get_at(9))); } +const BITSTRING_template& Extd__EPS__QOS_template::guaranteedBitRateUl__2() const { return *(static_cast(get_at(9))); } +BITSTRING_template& Extd__EPS__QOS_template::guaranteedBitRateDl__1() { return *(static_cast(get_at(10))); } +const BITSTRING_template& Extd__EPS__QOS_template::guaranteedBitRateDl__1() const { return *(static_cast(get_at(10))); } +BITSTRING_template& Extd__EPS__QOS_template::guaranteedBitRateDl__2() { return *(static_cast(get_at(11))); } +const BITSTRING_template& Extd__EPS__QOS_template::guaranteedBitRateDl__2() const { return *(static_cast(get_at(11))); } +const TTCN_Typedescriptor_t* Extd__EPS__QOS_template::get_descriptor() const { return &Extd__EPS__QOS_descr_; } +const char* Extd__EPS__QOS_template::fld_name(int p_index) const { return Extd__EPS__QOS::fld_names[p_index]; } +void UE__Status::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_n1ModeRegistered; fld_vec[4]=&field_s1ModeRegistered; } + +UE__Status::UE__Status() : Record_Type() { init_vec(); } + +UE__Status::UE__Status(const UE__Status& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_n1ModeRegistered.is_bound() ) + field_n1ModeRegistered = other_value.field_n1ModeRegistered; +if (other_value.field_s1ModeRegistered.is_bound() ) + field_s1ModeRegistered = other_value.field_s1ModeRegistered; +init_vec(); +} + +UE__Status::UE__Status(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_n1ModeRegistered, + const BITSTRING& par_s1ModeRegistered) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_n1ModeRegistered(par_n1ModeRegistered), + field_s1ModeRegistered(par_s1ModeRegistered) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__Status::get_descriptor() const { return &UE__Status_descr_; } +const TTCN_Typedescriptor_t* UE__Status::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__Status::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__Status::fld_names[] = { "iei", "iel", "spare", "n1ModeRegistered", "s1ModeRegistered" }; +const char* UE__Status::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__Status::optional_indexes[] = { 0, 1, -1 }; +const int* UE__Status::get_optional_indexes() const { return optional_indexes; } + +const int UE__Status::optional_indexes_asn[] = { 0, 1, -1 }; +const int* UE__Status::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__Status_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__Status_template::UE__Status_template(UE__Status_template* p_precondition, UE__Status_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__Status_template::UE__Status_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__Status_template::~UE__Status_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__Status_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__Status* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__Status_template& UE__Status_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__Status_template& UE__Status_template::operator=(const UE__Status& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__Status_template& UE__Status_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__Status_template& UE__Status_template::operator=(const UE__Status_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__Status UE__Status_template::valueof() const +{ +UE__Status ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UE__Status_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UE__Status_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UE__Status_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UE__Status_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__Status_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__Status_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UE__Status_template::n1ModeRegistered() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UE__Status_template::n1ModeRegistered() const { return *(static_cast(get_at(3))); } +BITSTRING_template& UE__Status_template::s1ModeRegistered() { return *(static_cast(get_at(4))); } +const BITSTRING_template& UE__Status_template::s1ModeRegistered() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* UE__Status_template::get_descriptor() const { return &UE__Status_descr_; } +const char* UE__Status_template::fld_name(int p_index) const { return UE__Status::fld_names[p_index]; } + +const ExtdEmergNum ExtdEmergNumList_emergNum::UNBOUND_ELEM; +ExtdEmergNum& ExtdEmergNumList_emergNum::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ExtdEmergNum& ExtdEmergNumList_emergNum::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ExtdEmergNum& ExtdEmergNumList_emergNum::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ExtdEmergNum& ExtdEmergNumList_emergNum::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::operator<<=(const INTEGER& rotate_count) const +{ +ExtdEmergNumList_emergNum rec_of; +return *((ExtdEmergNumList_emergNum*)rotl(rotate_count, &rec_of)); +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::operator>>=(const INTEGER& rotate_count) const +{ +ExtdEmergNumList_emergNum rec_of; +return *((ExtdEmergNumList_emergNum*)rotr(rotate_count, &rec_of)); +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::operator>>=(int rotate_count) const +{ +ExtdEmergNumList_emergNum rec_of; +return *((ExtdEmergNumList_emergNum*)rotr(rotate_count, &rec_of)); +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::operator+(const ExtdEmergNumList_emergNum& other_value) const +{ +ExtdEmergNumList_emergNum rec_of; +return *((ExtdEmergNumList_emergNum*)concat(&other_value, &rec_of)); +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const ExtdEmergNumList_emergNum&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.ExtdEmergNumList.emergNum concatenation."); +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::operator+(null_type) const +{ +return *this; +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::substr(int index, int returncount) const +{ +ExtdEmergNumList_emergNum rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::replace(int index, int len, const ExtdEmergNumList_emergNum& repl) const +{ +ExtdEmergNumList_emergNum rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum::replace(int index, int len, const ExtdEmergNumList_emergNum_template& repl) const +{ +ExtdEmergNumList_emergNum rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* ExtdEmergNumList_emergNum::create_elem() const { return new ExtdEmergNum; } +const Base_Type* ExtdEmergNumList_emergNum::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* ExtdEmergNumList_emergNum::get_descriptor() const { return &ExtdEmergNumList_emergNum_descr_; } +ExtdEmergNumList_emergNum_template::ExtdEmergNumList_emergNum_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +ExtdEmergNumList_emergNum_template::ExtdEmergNumList_emergNum_template(ExtdEmergNumList_emergNum_template* p_precondition, ExtdEmergNumList_emergNum_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdEmergNumList_emergNum_template::ExtdEmergNumList_emergNum_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdEmergNumList_emergNum_template::~ExtdEmergNumList_emergNum_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdEmergNumList_emergNum_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdEmergNumList_emergNum* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +ExtdEmergNumList_emergNum_template& ExtdEmergNumList_emergNum_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdEmergNumList_emergNum_template& ExtdEmergNumList_emergNum_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +ExtdEmergNumList_emergNum_template& ExtdEmergNumList_emergNum_template::operator=(const ExtdEmergNumList_emergNum& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdEmergNumList_emergNum_template& ExtdEmergNumList_emergNum_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdEmergNumList_emergNum_template& ExtdEmergNumList_emergNum_template::operator=(const ExtdEmergNumList_emergNum_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdEmergNumList_emergNum_template ExtdEmergNumList_emergNum_template::operator+(const ExtdEmergNumList_emergNum_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return ExtdEmergNumList_emergNum_template(ANY_VALUE); +} +ExtdEmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ExtdEmergNumList_emergNum_template ExtdEmergNumList_emergNum_template::operator+(const ExtdEmergNumList_emergNum& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +ExtdEmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ExtdEmergNumList_emergNum_template ExtdEmergNumList_emergNum_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return ExtdEmergNumList_emergNum_template(ANY_VALUE); +} +ExtdEmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +ExtdEmergNumList_emergNum_template ExtdEmergNumList_emergNum_template::operator+(null_type) const +{ +return *this; +} + +ExtdEmergNum_template& ExtdEmergNumList_emergNum_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ExtdEmergNum_template& ExtdEmergNumList_emergNum_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ExtdEmergNum_template& ExtdEmergNumList_emergNum_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ExtdEmergNum_template& ExtdEmergNumList_emergNum_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum_template::valueof() const +{ +ExtdEmergNumList_emergNum ret_val; +valueofv(&ret_val); +return ret_val; +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum_template::substr(int index, int returncount) const +{ +ExtdEmergNumList_emergNum rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum_template::replace(int index, int len, const ExtdEmergNumList_emergNum_template& repl) const +{ +ExtdEmergNumList_emergNum rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ExtdEmergNumList_emergNum ExtdEmergNumList_emergNum_template::replace(int index, int len, const ExtdEmergNumList_emergNum& repl) const +{ +ExtdEmergNumList_emergNum rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* ExtdEmergNumList_emergNum_template::create_elem() const { return new ExtdEmergNum_template; } +const TTCN_Typedescriptor_t* ExtdEmergNumList_emergNum_template::get_descriptor() const { return &ExtdEmergNumList_emergNum_descr_; } +void ExtdEmergNum::init_vec() { fld_vec[0]=&field_len; fld_vec[1]=&field_digits; fld_vec[2]=&field_lengthOfSubService; fld_vec[3]=&field_subServices; } + +ExtdEmergNum::ExtdEmergNum() : Record_Type() { init_vec(); } + +ExtdEmergNum::ExtdEmergNum(const ExtdEmergNum& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_digits.is_bound() ) + field_digits = other_value.field_digits; +if (other_value.field_lengthOfSubService.is_bound() ) + field_lengthOfSubService = other_value.field_lengthOfSubService; +if (other_value.field_subServices.is_bound() ) + field_subServices = other_value.field_subServices; +init_vec(); +} + +ExtdEmergNum::ExtdEmergNum(const OCTETSTRING& par_len, + const OCTETSTRING& par_digits, + const OCTETSTRING& par_lengthOfSubService, + const OCTETSTRING& par_subServices) : field_len(par_len), + field_digits(par_digits), + field_lengthOfSubService(par_lengthOfSubService), + field_subServices(par_subServices) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ExtdEmergNum::get_descriptor() const { return &ExtdEmergNum_descr_; } +const TTCN_Typedescriptor_t* ExtdEmergNum::fld_descriptors[] = { &Type4Length__Type_descr_, &OCTETSTRING_descr_, &Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* ExtdEmergNum::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ExtdEmergNum::fld_names[] = { "len", "digits", "lengthOfSubService", "subServices" }; +const char* ExtdEmergNum::fld_name(int p_index) const { return fld_names[p_index]; } + +void ExtdEmergNum_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +ExtdEmergNum_template::ExtdEmergNum_template(ExtdEmergNum_template* p_precondition, ExtdEmergNum_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdEmergNum_template::ExtdEmergNum_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdEmergNum_template::~ExtdEmergNum_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdEmergNum_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdEmergNum* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ExtdEmergNum_template& ExtdEmergNum_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdEmergNum_template& ExtdEmergNum_template::operator=(const ExtdEmergNum& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdEmergNum_template& ExtdEmergNum_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdEmergNum_template& ExtdEmergNum_template::operator=(const ExtdEmergNum_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdEmergNum ExtdEmergNum_template::valueof() const +{ +ExtdEmergNum ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ExtdEmergNum_template::len() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ExtdEmergNum_template::len() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ExtdEmergNum_template::digits() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ExtdEmergNum_template::digits() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ExtdEmergNum_template::lengthOfSubService() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ExtdEmergNum_template::lengthOfSubService() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& ExtdEmergNum_template::subServices() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& ExtdEmergNum_template::subServices() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* ExtdEmergNum_template::get_descriptor() const { return &ExtdEmergNum_descr_; } +const char* ExtdEmergNum_template::fld_name(int p_index) const { return ExtdEmergNum::fld_names[p_index]; } +void ExtdEmergNumList::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spareBits; fld_vec[3]=&field_extdEmergNumListValidity; fld_vec[4]=&field_emergNum; } + +ExtdEmergNumList::ExtdEmergNumList() : Record_Type() { init_vec(); } + +ExtdEmergNumList::ExtdEmergNumList(const ExtdEmergNumList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_extdEmergNumListValidity.is_bound() ) + field_extdEmergNumListValidity = other_value.field_extdEmergNumListValidity; +if (other_value.field_emergNum.is_bound() ) + field_emergNum = other_value.field_emergNum; +init_vec(); +} + +ExtdEmergNumList::ExtdEmergNumList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_extdEmergNumListValidity, + const ExtdEmergNumList_emergNum& par_emergNum) : field_iei(par_iei), + field_iel(par_iel), + field_spareBits(par_spareBits), + field_extdEmergNumListValidity(par_extdEmergNumListValidity), + field_emergNum(par_emergNum) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ExtdEmergNumList::get_descriptor() const { return &ExtdEmergNumList_descr_; } +const TTCN_Typedescriptor_t* ExtdEmergNumList::fld_descriptors[] = { &IEI8__Type_descr_, &Type6Length__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_, &ExtdEmergNumList_emergNum_descr_ }; +const TTCN_Typedescriptor_t* ExtdEmergNumList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ExtdEmergNumList::fld_names[] = { "iei", "iel", "spareBits", "extdEmergNumListValidity", "emergNum" }; +const char* ExtdEmergNumList::fld_name(int p_index) const { return fld_names[p_index]; } + +void ExtdEmergNumList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ExtdEmergNumList_emergNum_template(ANY_VALUE) : new ExtdEmergNumList_emergNum_template; +} +} + +ExtdEmergNumList_template::ExtdEmergNumList_template(ExtdEmergNumList_template* p_precondition, ExtdEmergNumList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdEmergNumList_template::ExtdEmergNumList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdEmergNumList_template::~ExtdEmergNumList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdEmergNumList_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdEmergNumList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ExtdEmergNumList_template& ExtdEmergNumList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdEmergNumList_template& ExtdEmergNumList_template::operator=(const ExtdEmergNumList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdEmergNumList_template& ExtdEmergNumList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdEmergNumList_template& ExtdEmergNumList_template::operator=(const ExtdEmergNumList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdEmergNumList ExtdEmergNumList_template::valueof() const +{ +ExtdEmergNumList ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ExtdEmergNumList_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ExtdEmergNumList_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ExtdEmergNumList_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ExtdEmergNumList_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ExtdEmergNumList_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ExtdEmergNumList_template::spareBits() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ExtdEmergNumList_template::extdEmergNumListValidity() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ExtdEmergNumList_template::extdEmergNumListValidity() const { return *(static_cast(get_at(3))); } +ExtdEmergNumList_emergNum_template& ExtdEmergNumList_template::emergNum() { return *(static_cast(get_at(4))); } +const ExtdEmergNumList_emergNum_template& ExtdEmergNumList_template::emergNum() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* ExtdEmergNumList_template::get_descriptor() const { return &ExtdEmergNumList_descr_; } +const char* ExtdEmergNumList_template::fld_name(int p_index) const { return ExtdEmergNumList::fld_names[p_index]; } +void UE__SecurityCapability::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_eeaCap; fld_vec[2]=&field_eiaCap; fld_vec[3]=&field_ueaCap; fld_vec[4]=&field_uiaCap; fld_vec[5]=&field_geaCap; } + +UE__SecurityCapability::UE__SecurityCapability() : Record_Type() { init_vec(); } + +UE__SecurityCapability::UE__SecurityCapability(const UE__SecurityCapability& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_eeaCap.is_bound() ) + field_eeaCap = other_value.field_eeaCap; +if (other_value.field_eiaCap.is_bound() ) + field_eiaCap = other_value.field_eiaCap; +if (other_value.field_ueaCap.is_bound() ) + field_ueaCap = other_value.field_ueaCap; +if (other_value.field_uiaCap.is_bound() ) + field_uiaCap = other_value.field_uiaCap; +if (other_value.field_geaCap.is_bound() ) + field_geaCap = other_value.field_geaCap; +init_vec(); +} + +UE__SecurityCapability::UE__SecurityCapability(const OCTETSTRING& par_iel, + const OCTETSTRING& par_eeaCap, + const OCTETSTRING& par_eiaCap, + const OPTIONAL& par_ueaCap, + const OPTIONAL& par_uiaCap, + const OPTIONAL& par_geaCap) : field_iel(par_iel), + field_eeaCap(par_eeaCap), + field_eiaCap(par_eiaCap), + field_ueaCap(par_ueaCap), + field_uiaCap(par_uiaCap), + field_geaCap(par_geaCap) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__SecurityCapability::get_descriptor() const { return &UE__SecurityCapability_descr_; } +const TTCN_Typedescriptor_t* UE__SecurityCapability::fld_descriptors[] = { &Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__SecurityCapability::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__SecurityCapability::fld_names[] = { "iel", "eeaCap", "eiaCap", "ueaCap", "uiaCap", "geaCap" }; +const char* UE__SecurityCapability::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__SecurityCapability::optional_indexes[] = { 3, 4, 5, -1 }; +const int* UE__SecurityCapability::get_optional_indexes() const { return optional_indexes; } + +const int UE__SecurityCapability::optional_indexes_asn[] = { 3, 4, 5, -1 }; +const int* UE__SecurityCapability::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__SecurityCapability_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +UE__SecurityCapability_template::UE__SecurityCapability_template(UE__SecurityCapability_template* p_precondition, UE__SecurityCapability_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__SecurityCapability_template::UE__SecurityCapability_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__SecurityCapability_template::~UE__SecurityCapability_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__SecurityCapability_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__SecurityCapability* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__SecurityCapability_template& UE__SecurityCapability_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__SecurityCapability_template& UE__SecurityCapability_template::operator=(const UE__SecurityCapability& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__SecurityCapability_template& UE__SecurityCapability_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__SecurityCapability_template& UE__SecurityCapability_template::operator=(const UE__SecurityCapability_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__SecurityCapability UE__SecurityCapability_template::valueof() const +{ +UE__SecurityCapability ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UE__SecurityCapability_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UE__SecurityCapability_template::iel() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UE__SecurityCapability_template::eeaCap() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UE__SecurityCapability_template::eeaCap() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& UE__SecurityCapability_template::eiaCap() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& UE__SecurityCapability_template::eiaCap() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& UE__SecurityCapability_template::ueaCap() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& UE__SecurityCapability_template::ueaCap() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& UE__SecurityCapability_template::uiaCap() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& UE__SecurityCapability_template::uiaCap() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& UE__SecurityCapability_template::geaCap() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& UE__SecurityCapability_template::geaCap() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* UE__SecurityCapability_template::get_descriptor() const { return &UE__SecurityCapability_descr_; } +const char* UE__SecurityCapability_template::fld_name(int p_index) const { return UE__SecurityCapability::fld_names[p_index]; } +void EPS__QualityOfService::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_qci; fld_vec[3]=&field_maxBitRateUl; fld_vec[4]=&field_maxBitRateDl; fld_vec[5]=&field_guaranteedBitRateUl; fld_vec[6]=&field_guaranteedBitRateDl; fld_vec[7]=&field_maxBitRateUlExt; fld_vec[8]=&field_maxBitRateDlExt; fld_vec[9]=&field_guaranteedBitRateUlExt; fld_vec[10]=&field_guaranteedBitRateDlExt; fld_vec[11]=&field_maxBitRateUL__Ext2; fld_vec[12]=&field_maxBitRateDL__Ext2; fld_vec[13]=&field_guaranteedBitRateUL__Ext2; fld_vec[14]=&field_guaranteedBitRateDL__Ext2; } + +EPS__QualityOfService::EPS__QualityOfService() : Record_Type() { init_vec(); } + +EPS__QualityOfService::EPS__QualityOfService(const EPS__QualityOfService& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_qci.is_bound() ) + field_qci = other_value.field_qci; +if (other_value.field_maxBitRateUl.is_bound() ) + field_maxBitRateUl = other_value.field_maxBitRateUl; +if (other_value.field_maxBitRateDl.is_bound() ) + field_maxBitRateDl = other_value.field_maxBitRateDl; +if (other_value.field_guaranteedBitRateUl.is_bound() ) + field_guaranteedBitRateUl = other_value.field_guaranteedBitRateUl; +if (other_value.field_guaranteedBitRateDl.is_bound() ) + field_guaranteedBitRateDl = other_value.field_guaranteedBitRateDl; +if (other_value.field_maxBitRateUlExt.is_bound() ) + field_maxBitRateUlExt = other_value.field_maxBitRateUlExt; +if (other_value.field_maxBitRateDlExt.is_bound() ) + field_maxBitRateDlExt = other_value.field_maxBitRateDlExt; +if (other_value.field_guaranteedBitRateUlExt.is_bound() ) + field_guaranteedBitRateUlExt = other_value.field_guaranteedBitRateUlExt; +if (other_value.field_guaranteedBitRateDlExt.is_bound() ) + field_guaranteedBitRateDlExt = other_value.field_guaranteedBitRateDlExt; +if (other_value.field_maxBitRateUL__Ext2.is_bound() ) + field_maxBitRateUL__Ext2 = other_value.field_maxBitRateUL__Ext2; +if (other_value.field_maxBitRateDL__Ext2.is_bound() ) + field_maxBitRateDL__Ext2 = other_value.field_maxBitRateDL__Ext2; +if (other_value.field_guaranteedBitRateUL__Ext2.is_bound() ) + field_guaranteedBitRateUL__Ext2 = other_value.field_guaranteedBitRateUL__Ext2; +if (other_value.field_guaranteedBitRateDL__Ext2.is_bound() ) + field_guaranteedBitRateDL__Ext2 = other_value.field_guaranteedBitRateDL__Ext2; +init_vec(); +} + +EPS__QualityOfService::EPS__QualityOfService(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_qci, + const OPTIONAL& par_maxBitRateUl, + const OPTIONAL& par_maxBitRateDl, + const OPTIONAL& par_guaranteedBitRateUl, + const OPTIONAL& par_guaranteedBitRateDl, + const OPTIONAL& par_maxBitRateUlExt, + const OPTIONAL& par_maxBitRateDlExt, + const OPTIONAL& par_guaranteedBitRateUlExt, + const OPTIONAL& par_guaranteedBitRateDlExt, + const OPTIONAL& par_maxBitRateUL__Ext2, + const OPTIONAL& par_maxBitRateDL__Ext2, + const OPTIONAL& par_guaranteedBitRateUL__Ext2, + const OPTIONAL& par_guaranteedBitRateDL__Ext2) : field_iei(par_iei), + field_iel(par_iel), + field_qci(par_qci), + field_maxBitRateUl(par_maxBitRateUl), + field_maxBitRateDl(par_maxBitRateDl), + field_guaranteedBitRateUl(par_guaranteedBitRateUl), + field_guaranteedBitRateDl(par_guaranteedBitRateDl), + field_maxBitRateUlExt(par_maxBitRateUlExt), + field_maxBitRateDlExt(par_maxBitRateDlExt), + field_guaranteedBitRateUlExt(par_guaranteedBitRateUlExt), + field_guaranteedBitRateDlExt(par_guaranteedBitRateDlExt), + field_maxBitRateUL__Ext2(par_maxBitRateUL__Ext2), + field_maxBitRateDL__Ext2(par_maxBitRateDL__Ext2), + field_guaranteedBitRateUL__Ext2(par_guaranteedBitRateUL__Ext2), + field_guaranteedBitRateDL__Ext2(par_guaranteedBitRateDL__Ext2) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__QualityOfService::get_descriptor() const { return &EPS__QualityOfService_descr_; } +const TTCN_Typedescriptor_t* EPS__QualityOfService::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* EPS__QualityOfService::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__QualityOfService::fld_names[] = { "iei", "iel", "qci", "maxBitRateUl", "maxBitRateDl", "guaranteedBitRateUl", "guaranteedBitRateDl", "maxBitRateUlExt", "maxBitRateDlExt", "guaranteedBitRateUlExt", "guaranteedBitRateDlExt", "maxBitRateUL_Ext2", "maxBitRateDL_Ext2", "guaranteedBitRateUL_Ext2", "guaranteedBitRateDL_Ext2" }; +const char* EPS__QualityOfService::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EPS__QualityOfService::optional_indexes[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1 }; +const int* EPS__QualityOfService::get_optional_indexes() const { return optional_indexes; } + +const int EPS__QualityOfService::optional_indexes_asn[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1 }; +const int* EPS__QualityOfService::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EPS__QualityOfService_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 15; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[12] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[13] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[14] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +EPS__QualityOfService_template::EPS__QualityOfService_template(EPS__QualityOfService_template* p_precondition, EPS__QualityOfService_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__QualityOfService_template::EPS__QualityOfService_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__QualityOfService_template::~EPS__QualityOfService_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__QualityOfService_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__QualityOfService* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__QualityOfService_template& EPS__QualityOfService_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__QualityOfService_template& EPS__QualityOfService_template::operator=(const EPS__QualityOfService& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__QualityOfService_template& EPS__QualityOfService_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__QualityOfService_template& EPS__QualityOfService_template::operator=(const EPS__QualityOfService_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__QualityOfService EPS__QualityOfService_template::valueof() const +{ +EPS__QualityOfService ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EPS__QualityOfService_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EPS__QualityOfService_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EPS__QualityOfService_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EPS__QualityOfService_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EPS__QualityOfService_template::qci() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EPS__QualityOfService_template::qci() const { return *(static_cast(get_at(2))); } +BITSTRING_template& EPS__QualityOfService_template::maxBitRateUl() { return *(static_cast(get_at(3))); } +const BITSTRING_template& EPS__QualityOfService_template::maxBitRateUl() const { return *(static_cast(get_at(3))); } +BITSTRING_template& EPS__QualityOfService_template::maxBitRateDl() { return *(static_cast(get_at(4))); } +const BITSTRING_template& EPS__QualityOfService_template::maxBitRateDl() const { return *(static_cast(get_at(4))); } +BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateUl() { return *(static_cast(get_at(5))); } +const BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateUl() const { return *(static_cast(get_at(5))); } +BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateDl() { return *(static_cast(get_at(6))); } +const BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateDl() const { return *(static_cast(get_at(6))); } +BITSTRING_template& EPS__QualityOfService_template::maxBitRateUlExt() { return *(static_cast(get_at(7))); } +const BITSTRING_template& EPS__QualityOfService_template::maxBitRateUlExt() const { return *(static_cast(get_at(7))); } +BITSTRING_template& EPS__QualityOfService_template::maxBitRateDlExt() { return *(static_cast(get_at(8))); } +const BITSTRING_template& EPS__QualityOfService_template::maxBitRateDlExt() const { return *(static_cast(get_at(8))); } +BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateUlExt() { return *(static_cast(get_at(9))); } +const BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateUlExt() const { return *(static_cast(get_at(9))); } +BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateDlExt() { return *(static_cast(get_at(10))); } +const BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateDlExt() const { return *(static_cast(get_at(10))); } +BITSTRING_template& EPS__QualityOfService_template::maxBitRateUL__Ext2() { return *(static_cast(get_at(11))); } +const BITSTRING_template& EPS__QualityOfService_template::maxBitRateUL__Ext2() const { return *(static_cast(get_at(11))); } +BITSTRING_template& EPS__QualityOfService_template::maxBitRateDL__Ext2() { return *(static_cast(get_at(12))); } +const BITSTRING_template& EPS__QualityOfService_template::maxBitRateDL__Ext2() const { return *(static_cast(get_at(12))); } +BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateUL__Ext2() { return *(static_cast(get_at(13))); } +const BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateUL__Ext2() const { return *(static_cast(get_at(13))); } +BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateDL__Ext2() { return *(static_cast(get_at(14))); } +const BITSTRING_template& EPS__QualityOfService_template::guaranteedBitRateDL__Ext2() const { return *(static_cast(get_at(14))); } +const TTCN_Typedescriptor_t* EPS__QualityOfService_template::get_descriptor() const { return &EPS__QualityOfService_descr_; } +const char* EPS__QualityOfService_template::fld_name(int p_index) const { return EPS__QualityOfService::fld_names[p_index]; } +void EPS__BearerContextStatus::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_ebi5__7; fld_vec[3]=&field_ebi4__1; fld_vec[4]=&field_spare; fld_vec[5]=&field_ebi8__15; } + +EPS__BearerContextStatus::EPS__BearerContextStatus() : Record_Type() { init_vec(); } + +EPS__BearerContextStatus::EPS__BearerContextStatus(const EPS__BearerContextStatus& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_ebi5__7.is_bound() ) + field_ebi5__7 = other_value.field_ebi5__7; +if (other_value.field_ebi4__1.is_bound() ) + field_ebi4__1 = other_value.field_ebi4__1; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_ebi8__15.is_bound() ) + field_ebi8__15 = other_value.field_ebi8__15; +init_vec(); +} + +EPS__BearerContextStatus::EPS__BearerContextStatus(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_ebi5__7, + const BITSTRING& par_ebi4__1, + const BITSTRING& par_spare, + const BITSTRING& par_ebi8__15) : field_iei(par_iei), + field_iel(par_iel), + field_ebi5__7(par_ebi5__7), + field_ebi4__1(par_ebi4__1), + field_spare(par_spare), + field_ebi8__15(par_ebi8__15) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__BearerContextStatus::get_descriptor() const { return &EPS__BearerContextStatus_descr_; } +const TTCN_Typedescriptor_t* EPS__BearerContextStatus::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B8__Type_descr_ }; +const TTCN_Typedescriptor_t* EPS__BearerContextStatus::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__BearerContextStatus::fld_names[] = { "iei", "iel", "ebi5_7", "ebi4_1", "spare", "ebi8_15" }; +const char* EPS__BearerContextStatus::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EPS__BearerContextStatus::optional_indexes[] = { 0, 1, -1 }; +const int* EPS__BearerContextStatus::get_optional_indexes() const { return optional_indexes; } + +const int EPS__BearerContextStatus::optional_indexes_asn[] = { 0, 1, -1 }; +const int* EPS__BearerContextStatus::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EPS__BearerContextStatus_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EPS__BearerContextStatus_template::EPS__BearerContextStatus_template(EPS__BearerContextStatus_template* p_precondition, EPS__BearerContextStatus_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__BearerContextStatus_template::EPS__BearerContextStatus_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__BearerContextStatus_template::~EPS__BearerContextStatus_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__BearerContextStatus_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__BearerContextStatus* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__BearerContextStatus_template& EPS__BearerContextStatus_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__BearerContextStatus_template& EPS__BearerContextStatus_template::operator=(const EPS__BearerContextStatus& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__BearerContextStatus_template& EPS__BearerContextStatus_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__BearerContextStatus_template& EPS__BearerContextStatus_template::operator=(const EPS__BearerContextStatus_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__BearerContextStatus EPS__BearerContextStatus_template::valueof() const +{ +EPS__BearerContextStatus ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EPS__BearerContextStatus_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EPS__BearerContextStatus_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EPS__BearerContextStatus_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EPS__BearerContextStatus_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EPS__BearerContextStatus_template::ebi5__7() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EPS__BearerContextStatus_template::ebi5__7() const { return *(static_cast(get_at(2))); } +BITSTRING_template& EPS__BearerContextStatus_template::ebi4__1() { return *(static_cast(get_at(3))); } +const BITSTRING_template& EPS__BearerContextStatus_template::ebi4__1() const { return *(static_cast(get_at(3))); } +BITSTRING_template& EPS__BearerContextStatus_template::spare() { return *(static_cast(get_at(4))); } +const BITSTRING_template& EPS__BearerContextStatus_template::spare() const { return *(static_cast(get_at(4))); } +BITSTRING_template& EPS__BearerContextStatus_template::ebi8__15() { return *(static_cast(get_at(5))); } +const BITSTRING_template& EPS__BearerContextStatus_template::ebi8__15() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* EPS__BearerContextStatus_template::get_descriptor() const { return &EPS__BearerContextStatus_descr_; } +const char* EPS__BearerContextStatus_template::fld_name(int p_index) const { return EPS__BearerContextStatus::fld_names[p_index]; } +void UERadioCapId::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_id; } + +UERadioCapId::UERadioCapId() : Record_Type() { init_vec(); } + +UERadioCapId::UERadioCapId(const UERadioCapId& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +init_vec(); +} + +UERadioCapId::UERadioCapId(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_id) : field_iei(par_iei), + field_iel(par_iel), + field_id(par_id) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UERadioCapId::get_descriptor() const { return &UERadioCapId_descr_; } +const TTCN_Typedescriptor_t* UERadioCapId::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* UERadioCapId::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UERadioCapId::fld_names[] = { "iei", "iel", "id" }; +const char* UERadioCapId::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UERadioCapId::optional_indexes[] = { 0, 1, -1 }; +const int* UERadioCapId::get_optional_indexes() const { return optional_indexes; } + +const int UERadioCapId::optional_indexes_asn[] = { 0, 1, -1 }; +const int* UERadioCapId::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UERadioCapId_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +UERadioCapId_template::UERadioCapId_template(UERadioCapId_template* p_precondition, UERadioCapId_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UERadioCapId_template::UERadioCapId_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UERadioCapId_template::~UERadioCapId_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UERadioCapId_template::match_dynamic(const Base_Type* match_value) const +{ +const UERadioCapId* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UERadioCapId_template& UERadioCapId_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UERadioCapId_template& UERadioCapId_template::operator=(const UERadioCapId& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UERadioCapId_template& UERadioCapId_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UERadioCapId_template& UERadioCapId_template::operator=(const UERadioCapId_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UERadioCapId UERadioCapId_template::valueof() const +{ +UERadioCapId ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UERadioCapId_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UERadioCapId_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UERadioCapId_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UERadioCapId_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& UERadioCapId_template::id() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& UERadioCapId_template::id() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UERadioCapId_template::get_descriptor() const { return &UERadioCapId_descr_; } +const char* UERadioCapId_template::fld_name(int p_index) const { return UERadioCapId::fld_names[p_index]; } +void UERadioCapIdDeletion::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_deleteReq; } + +UERadioCapIdDeletion::UERadioCapIdDeletion() : Record_Type() { init_vec(); } + +UERadioCapIdDeletion::UERadioCapIdDeletion(const UERadioCapIdDeletion& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_deleteReq.is_bound() ) + field_deleteReq = other_value.field_deleteReq; +init_vec(); +} + +UERadioCapIdDeletion::UERadioCapIdDeletion(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_deleteReq) : field_iei(par_iei), + field_spare(par_spare), + field_deleteReq(par_deleteReq) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UERadioCapIdDeletion::get_descriptor() const { return &UERadioCapIdDeletion_descr_; } +const TTCN_Typedescriptor_t* UERadioCapIdDeletion::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* UERadioCapIdDeletion::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UERadioCapIdDeletion::fld_names[] = { "iei", "spare", "deleteReq" }; +const char* UERadioCapIdDeletion::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UERadioCapIdDeletion::optional_indexes[] = { 0, -1 }; +const int* UERadioCapIdDeletion::get_optional_indexes() const { return optional_indexes; } + +const int UERadioCapIdDeletion::optional_indexes_asn[] = { 0, -1 }; +const int* UERadioCapIdDeletion::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UERadioCapIdDeletion_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UERadioCapIdDeletion_template::UERadioCapIdDeletion_template(UERadioCapIdDeletion_template* p_precondition, UERadioCapIdDeletion_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UERadioCapIdDeletion_template::UERadioCapIdDeletion_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UERadioCapIdDeletion_template::~UERadioCapIdDeletion_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UERadioCapIdDeletion_template::match_dynamic(const Base_Type* match_value) const +{ +const UERadioCapIdDeletion* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UERadioCapIdDeletion_template& UERadioCapIdDeletion_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UERadioCapIdDeletion_template& UERadioCapIdDeletion_template::operator=(const UERadioCapIdDeletion& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UERadioCapIdDeletion_template& UERadioCapIdDeletion_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UERadioCapIdDeletion_template& UERadioCapIdDeletion_template::operator=(const UERadioCapIdDeletion_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UERadioCapIdDeletion UERadioCapIdDeletion_template::valueof() const +{ +UERadioCapIdDeletion ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& UERadioCapIdDeletion_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& UERadioCapIdDeletion_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UERadioCapIdDeletion_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UERadioCapIdDeletion_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UERadioCapIdDeletion_template::deleteReq() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UERadioCapIdDeletion_template::deleteReq() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UERadioCapIdDeletion_template::get_descriptor() const { return &UERadioCapIdDeletion_descr_; } +const char* UERadioCapIdDeletion_template::fld_name(int p_index) const { return UERadioCapIdDeletion::fld_names[p_index]; } +void DRXParamCommon::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_drxValue; } + +DRXParamCommon::DRXParamCommon() : Record_Type() { init_vec(); } + +DRXParamCommon::DRXParamCommon(const DRXParamCommon& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_drxValue.is_bound() ) + field_drxValue = other_value.field_drxValue; +init_vec(); +} + +DRXParamCommon::DRXParamCommon(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_drxValue) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_drxValue(par_drxValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DRXParamCommon::get_descriptor() const { return &DRXParamCommon_descr_; } +const TTCN_Typedescriptor_t* DRXParamCommon::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* DRXParamCommon::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DRXParamCommon::fld_names[] = { "iei", "iel", "spare", "drxValue" }; +const char* DRXParamCommon::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DRXParamCommon::optional_indexes[] = { 0, -1 }; +const int* DRXParamCommon::get_optional_indexes() const { return optional_indexes; } + +const int DRXParamCommon::optional_indexes_asn[] = { 0, -1 }; +const int* DRXParamCommon::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DRXParamCommon_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DRXParamCommon_template::DRXParamCommon_template(DRXParamCommon_template* p_precondition, DRXParamCommon_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DRXParamCommon_template::DRXParamCommon_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DRXParamCommon_template::~DRXParamCommon_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DRXParamCommon_template::match_dynamic(const Base_Type* match_value) const +{ +const DRXParamCommon* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DRXParamCommon_template& DRXParamCommon_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DRXParamCommon_template& DRXParamCommon_template::operator=(const DRXParamCommon& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DRXParamCommon_template& DRXParamCommon_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DRXParamCommon_template& DRXParamCommon_template::operator=(const DRXParamCommon_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DRXParamCommon DRXParamCommon_template::valueof() const +{ +DRXParamCommon ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& DRXParamCommon_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& DRXParamCommon_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& DRXParamCommon_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& DRXParamCommon_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DRXParamCommon_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DRXParamCommon_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& DRXParamCommon_template::drxValue() { return *(static_cast(get_at(3))); } +const BITSTRING_template& DRXParamCommon_template::drxValue() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* DRXParamCommon_template::get_descriptor() const { return &DRXParamCommon_descr_; } +const char* DRXParamCommon_template::fld_name(int p_index) const { return DRXParamCommon::fld_names[p_index]; } +void ReleaseAssistanceInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_dlDataExpected; } + +ReleaseAssistanceInd::ReleaseAssistanceInd() : Record_Type() { init_vec(); } + +ReleaseAssistanceInd::ReleaseAssistanceInd(const ReleaseAssistanceInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_dlDataExpected.is_bound() ) + field_dlDataExpected = other_value.field_dlDataExpected; +init_vec(); +} + +ReleaseAssistanceInd::ReleaseAssistanceInd(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_dlDataExpected) : field_iei(par_iei), + field_spare(par_spare), + field_dlDataExpected(par_dlDataExpected) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ReleaseAssistanceInd::get_descriptor() const { return &ReleaseAssistanceInd_descr_; } +const TTCN_Typedescriptor_t* ReleaseAssistanceInd::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* ReleaseAssistanceInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ReleaseAssistanceInd::fld_names[] = { "iei", "spare", "dlDataExpected" }; +const char* ReleaseAssistanceInd::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ReleaseAssistanceInd::optional_indexes[] = { 0, -1 }; +const int* ReleaseAssistanceInd::get_optional_indexes() const { return optional_indexes; } + +const int ReleaseAssistanceInd::optional_indexes_asn[] = { 0, -1 }; +const int* ReleaseAssistanceInd::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ReleaseAssistanceInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ReleaseAssistanceInd_template::ReleaseAssistanceInd_template(ReleaseAssistanceInd_template* p_precondition, ReleaseAssistanceInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ReleaseAssistanceInd_template::ReleaseAssistanceInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ReleaseAssistanceInd_template::~ReleaseAssistanceInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ReleaseAssistanceInd_template::match_dynamic(const Base_Type* match_value) const +{ +const ReleaseAssistanceInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ReleaseAssistanceInd_template& ReleaseAssistanceInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ReleaseAssistanceInd_template& ReleaseAssistanceInd_template::operator=(const ReleaseAssistanceInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ReleaseAssistanceInd_template& ReleaseAssistanceInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ReleaseAssistanceInd_template& ReleaseAssistanceInd_template::operator=(const ReleaseAssistanceInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ReleaseAssistanceInd ReleaseAssistanceInd_template::valueof() const +{ +ReleaseAssistanceInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ReleaseAssistanceInd_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ReleaseAssistanceInd_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ReleaseAssistanceInd_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ReleaseAssistanceInd_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ReleaseAssistanceInd_template::dlDataExpected() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ReleaseAssistanceInd_template::dlDataExpected() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ReleaseAssistanceInd_template::get_descriptor() const { return &ReleaseAssistanceInd_descr_; } +const char* ReleaseAssistanceInd_template::fld_name(int p_index) const { return ReleaseAssistanceInd::fld_names[p_index]; } + +const WusInfoType WUSAssistInfo_infoType::UNBOUND_ELEM; +WusInfoType& WUSAssistInfo_infoType::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +WusInfoType& WUSAssistInfo_infoType::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const WusInfoType& WUSAssistInfo_infoType::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const WusInfoType& WUSAssistInfo_infoType::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +WUSAssistInfo_infoType WUSAssistInfo_infoType::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType::operator<<=(const INTEGER& rotate_count) const +{ +WUSAssistInfo_infoType rec_of; +return *((WUSAssistInfo_infoType*)rotl(rotate_count, &rec_of)); +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType::operator>>=(const INTEGER& rotate_count) const +{ +WUSAssistInfo_infoType rec_of; +return *((WUSAssistInfo_infoType*)rotr(rotate_count, &rec_of)); +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType::operator>>=(int rotate_count) const +{ +WUSAssistInfo_infoType rec_of; +return *((WUSAssistInfo_infoType*)rotr(rotate_count, &rec_of)); +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType::operator+(const WUSAssistInfo_infoType& other_value) const +{ +WUSAssistInfo_infoType rec_of; +return *((WUSAssistInfo_infoType*)concat(&other_value, &rec_of)); +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const WUSAssistInfo_infoType&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.WUSAssistInfo.infoType concatenation."); +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType::operator+(null_type) const +{ +return *this; +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType::substr(int index, int returncount) const +{ +WUSAssistInfo_infoType rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType::replace(int index, int len, const WUSAssistInfo_infoType& repl) const +{ +WUSAssistInfo_infoType rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType::replace(int index, int len, const WUSAssistInfo_infoType_template& repl) const +{ +WUSAssistInfo_infoType rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* WUSAssistInfo_infoType::create_elem() const { return new WusInfoType; } +const Base_Type* WUSAssistInfo_infoType::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* WUSAssistInfo_infoType::get_descriptor() const { return &WUSAssistInfo_infoType_descr_; } +WUSAssistInfo_infoType_template::WUSAssistInfo_infoType_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +WUSAssistInfo_infoType_template::WUSAssistInfo_infoType_template(WUSAssistInfo_infoType_template* p_precondition, WUSAssistInfo_infoType_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +WUSAssistInfo_infoType_template::WUSAssistInfo_infoType_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +WUSAssistInfo_infoType_template::~WUSAssistInfo_infoType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean WUSAssistInfo_infoType_template::match_dynamic(const Base_Type* match_value) const +{ +const WUSAssistInfo_infoType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +WUSAssistInfo_infoType_template& WUSAssistInfo_infoType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +WUSAssistInfo_infoType_template& WUSAssistInfo_infoType_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +WUSAssistInfo_infoType_template& WUSAssistInfo_infoType_template::operator=(const WUSAssistInfo_infoType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +WUSAssistInfo_infoType_template& WUSAssistInfo_infoType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +WUSAssistInfo_infoType_template& WUSAssistInfo_infoType_template::operator=(const WUSAssistInfo_infoType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +WUSAssistInfo_infoType_template WUSAssistInfo_infoType_template::operator+(const WUSAssistInfo_infoType_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return WUSAssistInfo_infoType_template(ANY_VALUE); +} +WUSAssistInfo_infoType_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +WUSAssistInfo_infoType_template WUSAssistInfo_infoType_template::operator+(const WUSAssistInfo_infoType& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +WUSAssistInfo_infoType_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +WUSAssistInfo_infoType_template WUSAssistInfo_infoType_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return WUSAssistInfo_infoType_template(ANY_VALUE); +} +WUSAssistInfo_infoType_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +WUSAssistInfo_infoType_template WUSAssistInfo_infoType_template::operator+(null_type) const +{ +return *this; +} + +WusInfoType_template& WUSAssistInfo_infoType_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +WusInfoType_template& WUSAssistInfo_infoType_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const WusInfoType_template& WUSAssistInfo_infoType_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const WusInfoType_template& WUSAssistInfo_infoType_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +WUSAssistInfo_infoType WUSAssistInfo_infoType_template::valueof() const +{ +WUSAssistInfo_infoType ret_val; +valueofv(&ret_val); +return ret_val; +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType_template::substr(int index, int returncount) const +{ +WUSAssistInfo_infoType rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType_template::replace(int index, int len, const WUSAssistInfo_infoType_template& repl) const +{ +WUSAssistInfo_infoType rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +WUSAssistInfo_infoType WUSAssistInfo_infoType_template::replace(int index, int len, const WUSAssistInfo_infoType& repl) const +{ +WUSAssistInfo_infoType rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* WUSAssistInfo_infoType_template::create_elem() const { return new WusInfoType_template; } +const TTCN_Typedescriptor_t* WUSAssistInfo_infoType_template::get_descriptor() const { return &WUSAssistInfo_infoType_descr_; } +void WusInfoType::init_vec() { fld_vec[0]=&field_wusType; fld_vec[1]=&field_pagingProbability; fld_vec[2]=&field_wusValue; } + +WusInfoType::WusInfoType() : Record_Type() { init_vec(); } + +WusInfoType::WusInfoType(const WusInfoType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_wusType.is_bound() ) + field_wusType = other_value.field_wusType; +if (other_value.field_pagingProbability.is_bound() ) + field_pagingProbability = other_value.field_pagingProbability; +if (other_value.field_wusValue.is_bound() ) + field_wusValue = other_value.field_wusValue; +init_vec(); +} + +WusInfoType::WusInfoType(const BITSTRING& par_wusType, + const BITSTRING& par_pagingProbability, + const OPTIONAL& par_wusValue) : field_wusType(par_wusType), + field_pagingProbability(par_pagingProbability), + field_wusValue(par_wusValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* WusInfoType::get_descriptor() const { return &WusInfoType_descr_; } +const TTCN_Typedescriptor_t* WusInfoType::fld_descriptors[] = { &CommonDefs::B3__Type_descr_, &CommonDefs::B5__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* WusInfoType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* WusInfoType::fld_names[] = { "wusType", "pagingProbability", "wusValue" }; +const char* WusInfoType::fld_name(int p_index) const { return fld_names[p_index]; } + +const int WusInfoType::optional_indexes[] = { 2, -1 }; +const int* WusInfoType::get_optional_indexes() const { return optional_indexes; } + +const int WusInfoType::optional_indexes_asn[] = { 2, -1 }; +const int* WusInfoType::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void WusInfoType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +WusInfoType_template::WusInfoType_template(WusInfoType_template* p_precondition, WusInfoType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +WusInfoType_template::WusInfoType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +WusInfoType_template::~WusInfoType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean WusInfoType_template::match_dynamic(const Base_Type* match_value) const +{ +const WusInfoType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +WusInfoType_template& WusInfoType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +WusInfoType_template& WusInfoType_template::operator=(const WusInfoType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +WusInfoType_template& WusInfoType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +WusInfoType_template& WusInfoType_template::operator=(const WusInfoType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +WusInfoType WusInfoType_template::valueof() const +{ +WusInfoType ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& WusInfoType_template::wusType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& WusInfoType_template::wusType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& WusInfoType_template::pagingProbability() { return *(static_cast(get_at(1))); } +const BITSTRING_template& WusInfoType_template::pagingProbability() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& WusInfoType_template::wusValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& WusInfoType_template::wusValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* WusInfoType_template::get_descriptor() const { return &WusInfoType_descr_; } +const char* WusInfoType_template::fld_name(int p_index) const { return WusInfoType::fld_names[p_index]; } +void WUSAssistInfo::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_infoType; } + +WUSAssistInfo::WUSAssistInfo() : Record_Type() { init_vec(); } + +WUSAssistInfo::WUSAssistInfo(const WUSAssistInfo& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_infoType.is_bound() ) + field_infoType = other_value.field_infoType; +init_vec(); +} + +WUSAssistInfo::WUSAssistInfo(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const WUSAssistInfo_infoType& par_infoType) : field_iei(par_iei), + field_iel(par_iel), + field_infoType(par_infoType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* WUSAssistInfo::get_descriptor() const { return &WUSAssistInfo_descr_; } +const TTCN_Typedescriptor_t* WUSAssistInfo::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &WUSAssistInfo_infoType_descr_ }; +const TTCN_Typedescriptor_t* WUSAssistInfo::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* WUSAssistInfo::fld_names[] = { "iei", "iel", "infoType" }; +const char* WUSAssistInfo::fld_name(int p_index) const { return fld_names[p_index]; } + +const int WUSAssistInfo::optional_indexes[] = { 0, -1 }; +const int* WUSAssistInfo::get_optional_indexes() const { return optional_indexes; } + +const int WUSAssistInfo::optional_indexes_asn[] = { 0, -1 }; +const int* WUSAssistInfo::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void WUSAssistInfo_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new WUSAssistInfo_infoType_template(ANY_VALUE) : new WUSAssistInfo_infoType_template; +} +} + +WUSAssistInfo_template::WUSAssistInfo_template(WUSAssistInfo_template* p_precondition, WUSAssistInfo_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +WUSAssistInfo_template::WUSAssistInfo_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +WUSAssistInfo_template::~WUSAssistInfo_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean WUSAssistInfo_template::match_dynamic(const Base_Type* match_value) const +{ +const WUSAssistInfo* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +WUSAssistInfo_template& WUSAssistInfo_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +WUSAssistInfo_template& WUSAssistInfo_template::operator=(const WUSAssistInfo& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +WUSAssistInfo_template& WUSAssistInfo_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +WUSAssistInfo_template& WUSAssistInfo_template::operator=(const WUSAssistInfo_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +WUSAssistInfo WUSAssistInfo_template::valueof() const +{ +WUSAssistInfo ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& WUSAssistInfo_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& WUSAssistInfo_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& WUSAssistInfo_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& WUSAssistInfo_template::iel() const { return *(static_cast(get_at(1))); } +WUSAssistInfo_infoType_template& WUSAssistInfo_template::infoType() { return *(static_cast(get_at(2))); } +const WUSAssistInfo_infoType_template& WUSAssistInfo_template::infoType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* WUSAssistInfo_template::get_descriptor() const { return &WUSAssistInfo_descr_; } +const char* WUSAssistInfo_template::fld_name(int p_index) const { return WUSAssistInfo::fld_names[p_index]; } +void ServingPLMNRateControl::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_servingPLMNRate; } + +ServingPLMNRateControl::ServingPLMNRateControl() : Record_Type() { init_vec(); } + +ServingPLMNRateControl::ServingPLMNRateControl(const ServingPLMNRateControl& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_servingPLMNRate.is_bound() ) + field_servingPLMNRate = other_value.field_servingPLMNRate; +init_vec(); +} + +ServingPLMNRateControl::ServingPLMNRateControl(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_servingPLMNRate) : field_iei(par_iei), + field_iel(par_iel), + field_servingPLMNRate(par_servingPLMNRate) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ServingPLMNRateControl::get_descriptor() const { return &ServingPLMNRateControl_descr_; } +const TTCN_Typedescriptor_t* ServingPLMNRateControl::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* ServingPLMNRateControl::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ServingPLMNRateControl::fld_names[] = { "iei", "iel", "servingPLMNRate" }; +const char* ServingPLMNRateControl::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ServingPLMNRateControl::optional_indexes[] = { 0, -1 }; +const int* ServingPLMNRateControl::get_optional_indexes() const { return optional_indexes; } + +const int ServingPLMNRateControl::optional_indexes_asn[] = { 0, -1 }; +const int* ServingPLMNRateControl::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ServingPLMNRateControl_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +ServingPLMNRateControl_template::ServingPLMNRateControl_template(ServingPLMNRateControl_template* p_precondition, ServingPLMNRateControl_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ServingPLMNRateControl_template::ServingPLMNRateControl_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ServingPLMNRateControl_template::~ServingPLMNRateControl_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ServingPLMNRateControl_template::match_dynamic(const Base_Type* match_value) const +{ +const ServingPLMNRateControl* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ServingPLMNRateControl_template& ServingPLMNRateControl_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ServingPLMNRateControl_template& ServingPLMNRateControl_template::operator=(const ServingPLMNRateControl& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ServingPLMNRateControl_template& ServingPLMNRateControl_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ServingPLMNRateControl_template& ServingPLMNRateControl_template::operator=(const ServingPLMNRateControl_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ServingPLMNRateControl ServingPLMNRateControl_template::valueof() const +{ +ServingPLMNRateControl ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ServingPLMNRateControl_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ServingPLMNRateControl_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ServingPLMNRateControl_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ServingPLMNRateControl_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ServingPLMNRateControl_template::servingPLMNRate() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ServingPLMNRateControl_template::servingPLMNRate() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ServingPLMNRateControl_template::get_descriptor() const { return &ServingPLMNRateControl_descr_; } +const char* ServingPLMNRateControl_template::fld_name(int p_index) const { return ServingPLMNRateControl::fld_names[p_index]; } +void ControlPlaneInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_cpIndValue; } + +ControlPlaneInd::ControlPlaneInd() : Record_Type() { init_vec(); } + +ControlPlaneInd::ControlPlaneInd(const ControlPlaneInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_cpIndValue.is_bound() ) + field_cpIndValue = other_value.field_cpIndValue; +init_vec(); +} + +ControlPlaneInd::ControlPlaneInd(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_cpIndValue) : field_iei(par_iei), + field_spare(par_spare), + field_cpIndValue(par_cpIndValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ControlPlaneInd::get_descriptor() const { return &ControlPlaneInd_descr_; } +const TTCN_Typedescriptor_t* ControlPlaneInd::fld_descriptors[] = { &IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* ControlPlaneInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ControlPlaneInd::fld_names[] = { "iei", "spare", "cpIndValue" }; +const char* ControlPlaneInd::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ControlPlaneInd::optional_indexes[] = { 0, -1 }; +const int* ControlPlaneInd::get_optional_indexes() const { return optional_indexes; } + +const int ControlPlaneInd::optional_indexes_asn[] = { 0, -1 }; +const int* ControlPlaneInd::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ControlPlaneInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ControlPlaneInd_template::ControlPlaneInd_template(ControlPlaneInd_template* p_precondition, ControlPlaneInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ControlPlaneInd_template::ControlPlaneInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ControlPlaneInd_template::~ControlPlaneInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ControlPlaneInd_template::match_dynamic(const Base_Type* match_value) const +{ +const ControlPlaneInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ControlPlaneInd_template& ControlPlaneInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ControlPlaneInd_template& ControlPlaneInd_template::operator=(const ControlPlaneInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ControlPlaneInd_template& ControlPlaneInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ControlPlaneInd_template& ControlPlaneInd_template::operator=(const ControlPlaneInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ControlPlaneInd ControlPlaneInd_template::valueof() const +{ +ControlPlaneInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ControlPlaneInd_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ControlPlaneInd_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ControlPlaneInd_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ControlPlaneInd_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ControlPlaneInd_template::cpIndValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ControlPlaneInd_template::cpIndValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ControlPlaneInd_template::get_descriptor() const { return &ControlPlaneInd_descr_; } +const char* ControlPlaneInd_template::fld_name(int p_index) const { return ControlPlaneInd::fld_names[p_index]; } +void QoSParameters::init_vec() { fld_vec[0]=&field_id; fld_vec[1]=&field_lenOfContent; fld_vec[2]=&field_qosParam; } + +QoSParameters::QoSParameters() : Record_Type() { init_vec(); } + +QoSParameters::QoSParameters(const QoSParameters& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_lenOfContent.is_bound() ) + field_lenOfContent = other_value.field_lenOfContent; +if (other_value.field_qosParam.is_bound() ) + field_qosParam = other_value.field_qosParam; +init_vec(); +} + +QoSParameters::QoSParameters(const OCTETSTRING& par_id, + const OCTETSTRING& par_lenOfContent, + const OCTETSTRING& par_qosParam) : field_id(par_id), + field_lenOfContent(par_lenOfContent), + field_qosParam(par_qosParam) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* QoSParameters::get_descriptor() const { return &QoSParameters_descr_; } +const TTCN_Typedescriptor_t* QoSParameters::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* QoSParameters::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* QoSParameters::fld_names[] = { "id", "lenOfContent", "qosParam" }; +const char* QoSParameters::fld_name(int p_index) const { return fld_names[p_index]; } + +void QoSParameters_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +QoSParameters_template::QoSParameters_template(QoSParameters_template* p_precondition, QoSParameters_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoSParameters_template::QoSParameters_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoSParameters_template::~QoSParameters_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoSParameters_template::match_dynamic(const Base_Type* match_value) const +{ +const QoSParameters* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +QoSParameters_template& QoSParameters_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoSParameters_template& QoSParameters_template::operator=(const QoSParameters& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoSParameters_template& QoSParameters_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoSParameters_template& QoSParameters_template::operator=(const QoSParameters_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoSParameters QoSParameters_template::valueof() const +{ +QoSParameters ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& QoSParameters_template::id() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& QoSParameters_template::id() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& QoSParameters_template::lenOfContent() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& QoSParameters_template::lenOfContent() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& QoSParameters_template::qosParam() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& QoSParameters_template::qosParam() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* QoSParameters_template::get_descriptor() const { return &QoSParameters_descr_; } +const char* QoSParameters_template::fld_name(int p_index) const { return QoSParameters::fld_names[p_index]; } + +const QoSParameters QoSParametersList::UNBOUND_ELEM; +QoSParameters& QoSParametersList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +QoSParameters& QoSParametersList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const QoSParameters& QoSParametersList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const QoSParameters& QoSParametersList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoSParametersList QoSParametersList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +QoSParametersList QoSParametersList::operator<<=(const INTEGER& rotate_count) const +{ +QoSParametersList rec_of; +return *((QoSParametersList*)rotl(rotate_count, &rec_of)); +} + +QoSParametersList QoSParametersList::operator>>=(const INTEGER& rotate_count) const +{ +QoSParametersList rec_of; +return *((QoSParametersList*)rotr(rotate_count, &rec_of)); +} + +QoSParametersList QoSParametersList::operator>>=(int rotate_count) const +{ +QoSParametersList rec_of; +return *((QoSParametersList*)rotr(rotate_count, &rec_of)); +} + +QoSParametersList QoSParametersList::operator+(const QoSParametersList& other_value) const +{ +QoSParametersList rec_of; +return *((QoSParametersList*)concat(&other_value, &rec_of)); +} + +QoSParametersList QoSParametersList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const QoSParametersList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NAS_CommonTypeDefs.QoSParametersList concatenation."); +} + +QoSParametersList QoSParametersList::operator+(null_type) const +{ +return *this; +} + +QoSParametersList QoSParametersList::substr(int index, int returncount) const +{ +QoSParametersList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoSParametersList QoSParametersList::replace(int index, int len, const QoSParametersList& repl) const +{ +QoSParametersList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoSParametersList QoSParametersList::replace(int index, int len, const QoSParametersList_template& repl) const +{ +QoSParametersList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* QoSParametersList::create_elem() const { return new QoSParameters; } +const Base_Type* QoSParametersList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* QoSParametersList::get_descriptor() const { return &QoSParametersList_descr_; } +QoSParametersList_template::QoSParametersList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +QoSParametersList_template::QoSParametersList_template(QoSParametersList_template* p_precondition, QoSParametersList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoSParametersList_template::QoSParametersList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoSParametersList_template::~QoSParametersList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoSParametersList_template::match_dynamic(const Base_Type* match_value) const +{ +const QoSParametersList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +QoSParametersList_template& QoSParametersList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoSParametersList_template& QoSParametersList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +QoSParametersList_template& QoSParametersList_template::operator=(const QoSParametersList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoSParametersList_template& QoSParametersList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoSParametersList_template& QoSParametersList_template::operator=(const QoSParametersList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoSParametersList_template QoSParametersList_template::operator+(const QoSParametersList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return QoSParametersList_template(ANY_VALUE); +} +QoSParametersList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoSParametersList_template QoSParametersList_template::operator+(const QoSParametersList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +QoSParametersList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoSParametersList_template QoSParametersList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return QoSParametersList_template(ANY_VALUE); +} +QoSParametersList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +QoSParametersList_template QoSParametersList_template::operator+(null_type) const +{ +return *this; +} + +QoSParameters_template& QoSParametersList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +QoSParameters_template& QoSParametersList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const QoSParameters_template& QoSParametersList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const QoSParameters_template& QoSParametersList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoSParametersList QoSParametersList_template::valueof() const +{ +QoSParametersList ret_val; +valueofv(&ret_val); +return ret_val; +} + +QoSParametersList QoSParametersList_template::substr(int index, int returncount) const +{ +QoSParametersList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoSParametersList QoSParametersList_template::replace(int index, int len, const QoSParametersList_template& repl) const +{ +QoSParametersList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoSParametersList QoSParametersList_template::replace(int index, int len, const QoSParametersList& repl) const +{ +QoSParametersList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* QoSParametersList_template::create_elem() const { return new QoSParameters_template; } +const TTCN_Typedescriptor_t* QoSParametersList_template::get_descriptor() const { return &QoSParametersList_descr_; } +void UE__RequestType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_requestType; } + +UE__RequestType::UE__RequestType() : Record_Type() { init_vec(); } + +UE__RequestType::UE__RequestType(const UE__RequestType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_requestType.is_bound() ) + field_requestType = other_value.field_requestType; +init_vec(); +} + +UE__RequestType::UE__RequestType(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_requestType) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_requestType(par_requestType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__RequestType::get_descriptor() const { return &UE__RequestType_descr_; } +const TTCN_Typedescriptor_t* UE__RequestType::fld_descriptors[] = { &IEI8__Type_descr_, &Type4Length__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__RequestType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__RequestType::fld_names[] = { "iei", "iel", "spare", "requestType" }; +const char* UE__RequestType::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__RequestType::optional_indexes[] = { 0, -1 }; +const int* UE__RequestType::get_optional_indexes() const { return optional_indexes; } + +const int UE__RequestType::optional_indexes_asn[] = { 0, -1 }; +const int* UE__RequestType::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__RequestType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__RequestType_template::UE__RequestType_template(UE__RequestType_template* p_precondition, UE__RequestType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__RequestType_template::UE__RequestType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__RequestType_template::~UE__RequestType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__RequestType_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__RequestType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__RequestType_template& UE__RequestType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__RequestType_template& UE__RequestType_template::operator=(const UE__RequestType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__RequestType_template& UE__RequestType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__RequestType_template& UE__RequestType_template::operator=(const UE__RequestType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__RequestType UE__RequestType_template::valueof() const +{ +UE__RequestType ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UE__RequestType_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UE__RequestType_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UE__RequestType_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UE__RequestType_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__RequestType_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__RequestType_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UE__RequestType_template::requestType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UE__RequestType_template::requestType() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UE__RequestType_template::get_descriptor() const { return &UE__RequestType_descr_; } +const char* UE__RequestType_template::fld_name(int p_index) const { return UE__RequestType::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +EmergNumList_emergNum_template operator+(template_sel left_template, const EmergNumList_emergNum_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = EmergNumList_emergNum_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return EmergNumList_emergNum_template(ANY_VALUE); +} +EmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +EmergNumList_emergNum_template operator+(const EmergNumList_emergNum& left_value, const EmergNumList_emergNum_template& right_template) +{ +boolean dummy = FALSE; +int res_length = EmergNumList_emergNum_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +EmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +EmergNumList_emergNum_template operator+(template_sel left_template, const EmergNumList_emergNum& right_value) +{ +int res_length = EmergNumList_emergNum_template::get_length_for_concat(left_template) + EmergNumList_emergNum_template::get_length_for_concat(right_value); +EmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +EmergNumList_emergNum_template operator+(const EmergNumList_emergNum& left_value, template_sel right_template) +{ +int res_length = EmergNumList_emergNum_template::get_length_for_concat(left_value) + EmergNumList_emergNum_template::get_length_for_concat(right_template); +EmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +ProtocolConfigOptions_pco_template operator+(template_sel left_template, const ProtocolConfigOptions_pco_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = ProtocolConfigOptions_pco_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return ProtocolConfigOptions_pco_template(ANY_VALUE); +} +ProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +ProtocolConfigOptions_pco_template operator+(const ProtocolConfigOptions_pco& left_value, const ProtocolConfigOptions_pco_template& right_template) +{ +boolean dummy = FALSE; +int res_length = ProtocolConfigOptions_pco_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +ProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +ProtocolConfigOptions_pco_template operator+(template_sel left_template, const ProtocolConfigOptions_pco& right_value) +{ +int res_length = ProtocolConfigOptions_pco_template::get_length_for_concat(left_template) + ProtocolConfigOptions_pco_template::get_length_for_concat(right_value); +ProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +ProtocolConfigOptions_pco_template operator+(const ProtocolConfigOptions_pco& left_value, template_sel right_template) +{ +int res_length = ProtocolConfigOptions_pco_template::get_length_for_concat(left_value) + ProtocolConfigOptions_pco_template::get_length_for_concat(right_template); +ProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +CodecList_codec_template operator+(template_sel left_template, const CodecList_codec_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = CodecList_codec_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return CodecList_codec_template(ANY_VALUE); +} +CodecList_codec_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +CodecList_codec_template operator+(const CodecList_codec& left_value, const CodecList_codec_template& right_template) +{ +boolean dummy = FALSE; +int res_length = CodecList_codec_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +CodecList_codec_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +CodecList_codec_template operator+(template_sel left_template, const CodecList_codec& right_value) +{ +int res_length = CodecList_codec_template::get_length_for_concat(left_template) + CodecList_codec_template::get_length_for_concat(right_value); +CodecList_codec_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +CodecList_codec_template operator+(const CodecList_codec& left_value, template_sel right_template) +{ +int res_length = CodecList_codec_template::get_length_for_concat(left_value) + CodecList_codec_template::get_length_for_concat(right_template); +CodecList_codec_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +TrafficFlowTemplate_packetFilterList_template operator+(template_sel left_template, const TrafficFlowTemplate_packetFilterList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = TrafficFlowTemplate_packetFilterList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return TrafficFlowTemplate_packetFilterList_template(ANY_VALUE); +} +TrafficFlowTemplate_packetFilterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +TrafficFlowTemplate_packetFilterList_template operator+(const TrafficFlowTemplate_packetFilterList& left_value, const TrafficFlowTemplate_packetFilterList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = TrafficFlowTemplate_packetFilterList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +TrafficFlowTemplate_packetFilterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +TrafficFlowTemplate_packetFilterList_template operator+(template_sel left_template, const TrafficFlowTemplate_packetFilterList& right_value) +{ +int res_length = TrafficFlowTemplate_packetFilterList_template::get_length_for_concat(left_template) + TrafficFlowTemplate_packetFilterList_template::get_length_for_concat(right_value); +TrafficFlowTemplate_packetFilterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +TrafficFlowTemplate_packetFilterList_template operator+(const TrafficFlowTemplate_packetFilterList& left_value, template_sel right_template) +{ +int res_length = TrafficFlowTemplate_packetFilterList_template::get_length_for_concat(left_value) + TrafficFlowTemplate_packetFilterList_template::get_length_for_concat(right_template); +TrafficFlowTemplate_packetFilterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +PacketFilterContents_template operator+(template_sel left_template, const PacketFilterContents_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = PacketFilterContents_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return PacketFilterContents_template(ANY_VALUE); +} +PacketFilterContents_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +PacketFilterContents_template operator+(const PacketFilterContents& left_value, const PacketFilterContents_template& right_template) +{ +boolean dummy = FALSE; +int res_length = PacketFilterContents_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +PacketFilterContents_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +PacketFilterContents_template operator+(template_sel left_template, const PacketFilterContents& right_value) +{ +int res_length = PacketFilterContents_template::get_length_for_concat(left_template) + PacketFilterContents_template::get_length_for_concat(right_value); +PacketFilterContents_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +PacketFilterContents_template operator+(const PacketFilterContents& left_value, template_sel right_template) +{ +int res_length = PacketFilterContents_template::get_length_for_concat(left_value) + PacketFilterContents_template::get_length_for_concat(right_template); +PacketFilterContents_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +TrafficFlowTemplate_parameterList_template operator+(template_sel left_template, const TrafficFlowTemplate_parameterList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = TrafficFlowTemplate_parameterList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return TrafficFlowTemplate_parameterList_template(ANY_VALUE); +} +TrafficFlowTemplate_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +TrafficFlowTemplate_parameterList_template operator+(const TrafficFlowTemplate_parameterList& left_value, const TrafficFlowTemplate_parameterList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = TrafficFlowTemplate_parameterList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +TrafficFlowTemplate_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +TrafficFlowTemplate_parameterList_template operator+(template_sel left_template, const TrafficFlowTemplate_parameterList& right_value) +{ +int res_length = TrafficFlowTemplate_parameterList_template::get_length_for_concat(left_template) + TrafficFlowTemplate_parameterList_template::get_length_for_concat(right_value); +TrafficFlowTemplate_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +TrafficFlowTemplate_parameterList_template operator+(const TrafficFlowTemplate_parameterList& left_value, template_sel right_template) +{ +int res_length = TrafficFlowTemplate_parameterList_template::get_length_for_concat(left_value) + TrafficFlowTemplate_parameterList_template::get_length_for_concat(right_template); +TrafficFlowTemplate_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +ExtdProtocolConfigOptions_pco_template operator+(template_sel left_template, const ExtdProtocolConfigOptions_pco_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = ExtdProtocolConfigOptions_pco_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return ExtdProtocolConfigOptions_pco_template(ANY_VALUE); +} +ExtdProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +ExtdProtocolConfigOptions_pco_template operator+(const ExtdProtocolConfigOptions_pco& left_value, const ExtdProtocolConfigOptions_pco_template& right_template) +{ +boolean dummy = FALSE; +int res_length = ExtdProtocolConfigOptions_pco_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +ExtdProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +ExtdProtocolConfigOptions_pco_template operator+(template_sel left_template, const ExtdProtocolConfigOptions_pco& right_value) +{ +int res_length = ExtdProtocolConfigOptions_pco_template::get_length_for_concat(left_template) + ExtdProtocolConfigOptions_pco_template::get_length_for_concat(right_value); +ExtdProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +ExtdProtocolConfigOptions_pco_template operator+(const ExtdProtocolConfigOptions_pco& left_value, template_sel right_template) +{ +int res_length = ExtdProtocolConfigOptions_pco_template::get_length_for_concat(left_value) + ExtdProtocolConfigOptions_pco_template::get_length_for_concat(right_template); +ExtdProtocolConfigOptions_pco_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NAS__ExtdProtocolConfigOptions__Type_template operator+(template_sel left_template, const NAS__ExtdProtocolConfigOptions__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NAS__ExtdProtocolConfigOptions__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NAS__ExtdProtocolConfigOptions__Type_template(ANY_VALUE); +} +NAS__ExtdProtocolConfigOptions__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NAS__ExtdProtocolConfigOptions__Type_template operator+(const NAS__ExtdProtocolConfigOptions__Type& left_value, const NAS__ExtdProtocolConfigOptions__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NAS__ExtdProtocolConfigOptions__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NAS__ExtdProtocolConfigOptions__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NAS__ExtdProtocolConfigOptions__Type_template operator+(template_sel left_template, const NAS__ExtdProtocolConfigOptions__Type& right_value) +{ +int res_length = NAS__ExtdProtocolConfigOptions__Type_template::get_length_for_concat(left_template) + NAS__ExtdProtocolConfigOptions__Type_template::get_length_for_concat(right_value); +NAS__ExtdProtocolConfigOptions__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NAS__ExtdProtocolConfigOptions__Type_template operator+(const NAS__ExtdProtocolConfigOptions__Type& left_value, template_sel right_template) +{ +int res_length = NAS__ExtdProtocolConfigOptions__Type_template::get_length_for_concat(left_value) + NAS__ExtdProtocolConfigOptions__Type_template::get_length_for_concat(right_template); +NAS__ExtdProtocolConfigOptions__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +ExtdEmergNumList_emergNum_template operator+(template_sel left_template, const ExtdEmergNumList_emergNum_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = ExtdEmergNumList_emergNum_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return ExtdEmergNumList_emergNum_template(ANY_VALUE); +} +ExtdEmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +ExtdEmergNumList_emergNum_template operator+(const ExtdEmergNumList_emergNum& left_value, const ExtdEmergNumList_emergNum_template& right_template) +{ +boolean dummy = FALSE; +int res_length = ExtdEmergNumList_emergNum_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +ExtdEmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +ExtdEmergNumList_emergNum_template operator+(template_sel left_template, const ExtdEmergNumList_emergNum& right_value) +{ +int res_length = ExtdEmergNumList_emergNum_template::get_length_for_concat(left_template) + ExtdEmergNumList_emergNum_template::get_length_for_concat(right_value); +ExtdEmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +ExtdEmergNumList_emergNum_template operator+(const ExtdEmergNumList_emergNum& left_value, template_sel right_template) +{ +int res_length = ExtdEmergNumList_emergNum_template::get_length_for_concat(left_value) + ExtdEmergNumList_emergNum_template::get_length_for_concat(right_template); +ExtdEmergNumList_emergNum_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +WUSAssistInfo_infoType_template operator+(template_sel left_template, const WUSAssistInfo_infoType_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = WUSAssistInfo_infoType_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return WUSAssistInfo_infoType_template(ANY_VALUE); +} +WUSAssistInfo_infoType_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +WUSAssistInfo_infoType_template operator+(const WUSAssistInfo_infoType& left_value, const WUSAssistInfo_infoType_template& right_template) +{ +boolean dummy = FALSE; +int res_length = WUSAssistInfo_infoType_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +WUSAssistInfo_infoType_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +WUSAssistInfo_infoType_template operator+(template_sel left_template, const WUSAssistInfo_infoType& right_value) +{ +int res_length = WUSAssistInfo_infoType_template::get_length_for_concat(left_template) + WUSAssistInfo_infoType_template::get_length_for_concat(right_value); +WUSAssistInfo_infoType_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +WUSAssistInfo_infoType_template operator+(const WUSAssistInfo_infoType& left_value, template_sel right_template) +{ +int res_length = WUSAssistInfo_infoType_template::get_length_for_concat(left_value) + WUSAssistInfo_infoType_template::get_length_for_concat(right_template); +WUSAssistInfo_infoType_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +QoSParametersList_template operator+(template_sel left_template, const QoSParametersList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = QoSParametersList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return QoSParametersList_template(ANY_VALUE); +} +QoSParametersList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoSParametersList_template operator+(const QoSParametersList& left_value, const QoSParametersList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = QoSParametersList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +QoSParametersList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoSParametersList_template operator+(template_sel left_template, const QoSParametersList& right_value) +{ +int res_length = QoSParametersList_template::get_length_for_concat(left_template) + QoSParametersList_template::get_length_for_concat(right_value); +QoSParametersList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +QoSParametersList_template operator+(const QoSParametersList& left_value, template_sel right_template) +{ +int res_length = QoSParametersList_template::get_length_for_concat(left_value) + QoSParametersList_template::get_length_for_concat(right_template); +QoSParametersList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_CommonTypeDefs"); +NAS__CommonTypeDefs::init_ttcn3_debugger(); +CommonDefs::module_object.pre_init_module(); +current_location.update_lineno(78); +ttcn3_debugger.breakpoint_entry(78); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTypeDefs.ttcn, line 78 */ +const_tsc__LAC__Def = os_0; +current_location.update_lineno(81); +ttcn3_debugger.breakpoint_entry(81); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTypeDefs.ttcn, line 81 */ +const_tsc__LAC__Deleted = os_1; +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_CommonTypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_CommonTypeDefs"); +CommonDefs::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NAS_CommonTypeDefs.hh b/build/Ats_NG_NAS/NAS_CommonTypeDefs.hh new file mode 100644 index 0000000000000000000000000000000000000000..df5927db86b69a58248870ab01df807872fc95de --- /dev/null +++ b/build/Ats_NG_NAS/NAS_CommonTypeDefs.hh @@ -0,0 +1,13224 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NAS__CommonTypeDefs_HH +#define NAS__CommonTypeDefs_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "CommonDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 NAS__CommonTypeDefs_HH +#endif + +namespace NAS__CommonTypeDefs { + +/* Forward declarations of classes */ + +typedef PreGenRecordOf::PREGEN__RECORD__OF__HEXSTRING EmergencyNumList; +typedef PreGenRecordOf::PREGEN__RECORD__OF__HEXSTRING_template EmergencyNumList_template; +class PDU__PDN__DNN__Type; +class PDU__PDN__DNN__Type_template; +class APN__DefaultConfiguration__Type; +class APN__DefaultConfiguration__Type_template; +class InterworkWithoutN26; +class InterworkWithoutN26_template; +class PS__MODE; +class PS__MODE_template; +class CS__PS__MODE; +class CS__PS__MODE_template; +class AccessPointName; +class AccessPointName_template; +class AdditionalUpdateType; +class AdditionalUpdateType_template; +class CiphKeySeqNum; +class CiphKeySeqNum_template; +class ConnectivityType; +class ConnectivityType_template; +class DetachType; +class DetachType_template; +class DeviceProperties; +class DeviceProperties_template; +class DRXparameter; +class DRXparameter_template; +class EmergServCat; +class EmergServCat_template; +class EmergNum; +class EmergNum_template; +class EmergNumList_emergNum; +class EmergNumList_emergNum_template; +class EmergNumList; +class EmergNumList_template; +class GPRS__Timer; +class GPRS__Timer_template; +class GPRS__Timer2; +class GPRS__Timer2_template; +class IMEISV__Request; +class IMEISV__Request_template; +class LocAreaId; +class LocAreaId_template; +class RoutingAreaId; +class RoutingAreaId_template; +class LLC__SAPI; +class LLC__SAPI_template; +class MobileIdentity; +class MobileIdentity_template; +class MS__Clsmk2; +class MS__Clsmk2_template; +class MS__Clsmk3; +class MS__Clsmk3_template; +class MS__MeasCapability; +class MS__MeasCapability_template; +class EDGE__Struct; +class EDGE__Struct_template; +class MS__NetworkCap; +class MS__NetworkCap_template; +class Non3GPP__NW__ProvidedPolicies; +class Non3GPP__NW__ProvidedPolicies_template; +class NwkResourceId; +class NwkResourceId_template; +class PacketFlowIdentifier; +class PacketFlowIdentifier_template; +class PLMN__IdIE; +class PLMN__IdIE_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING PLMN__List_plmnList; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template PLMN__List_plmnList_template; +class PLMN__List; +class PLMN__List_template; +class MS__NetworkFeatureSupport; +class MS__NetworkFeatureSupport_template; +class ProtocolConfigOptions; +class ProtocolConfigOptions_template; +class ProtocolConfigOptions_pco; +class ProtocolConfigOptions_pco_template; +class ProtocolContainer; +class ProtocolContainer_template; +class APNRateControlParams; +class APNRateControlParams_template; +class PTMSI__Signature; +class PTMSI__Signature_template; +class QualityOfService; +class QualityOfService_template; +class RadioPriority; +class RadioPriority_template; +class Codec; +class Codec_template; +class CodecList_codec; +class CodecList_codec_template; +class CodecList; +class CodecList_template; +class Request__Type; +class Request__Type_template; +class TMSI__Status; +class TMSI__Status_template; +class TrafficFlowTemplate; +class TrafficFlowTemplate_template; +class TrafficFlowTemplate_packetFilterList; +class TrafficFlowTemplate_packetFilterList_template; +class PacketFilter; +class PacketFilter_template; +class PacketFilterContents; +class PacketFilterContents_template; +class PacketFilterComponentValue; +class PacketFilterComponentValue_template; +class PacketFilterComponent; +class PacketFilterComponent_template; +class TrafficFlowTemplate_parameterList; +class TrafficFlowTemplate_parameterList_template; +class TftParameter; +class TftParameter_template; +class UE__NetworkCap; +class UE__NetworkCap_template; +class ReAttemptIndicator; +class ReAttemptIndicator_template; +class AUTN; +class AUTN_template; +class AuthenticationFailureParameter; +class AuthenticationFailureParameter_template; +class RAND; +class RAND_template; +class DaylightSavingTime; +class DaylightSavingTime_template; +class NetworkName; +class NetworkName_template; +class TimeZone; +class TimeZone_template; +class TimeZoneAndTime; +class TimeZoneAndTime_template; +class VoiceDomainPref; +class VoiceDomainPref_template; +class IdentityType; +class IdentityType_template; +class TI; +class TI_template; +class FacilityIE; +class FacilityIE_template; +class REGISTER; +class REGISTER_template; +class SS__VersionInd; +class SS__VersionInd_template; +class FACILITY; +class FACILITY_template; +class FACILITYul; +class FACILITYul_template; +class RESETUEPOSITIONINGSTOREDINFORMATION; +class RESETUEPOSITIONINGSTOREDINFORMATION_template; +class WLANOffloadAcceptability; +class WLANOffloadAcceptability_template; +class ExtdDRXParams; +class ExtdDRXParams_template; +class NBIFOMContainer; +class NBIFOMContainer_template; +class DCN__ID; +class DCN__ID_template; +class ExtdProtocolConfigOptions; +class ExtdProtocolConfigOptions_template; +class ExtdProtocolConfigOptions_pco; +class ExtdProtocolConfigOptions_pco_template; +class NAS__ExtdProtocolConfigOptions__Type; +class NAS__ExtdProtocolConfigOptions__Type_template; +class AdditionalInformation; +class AdditionalInformation_template; +class AuthenticationResponseParameter; +class AuthenticationResponseParameter_template; +class NAS__KeySetIdentifier; +class NAS__KeySetIdentifier_template; +class HashMME; +class HashMME_template; +class PDN__Address; +class PDN__Address_template; +class ReplayedNASMessageContainer; +class ReplayedNASMessageContainer_template; +class NAS__SecurityAlgorithms; +class NAS__SecurityAlgorithms_template; +class Extd__EPS__QOS; +class Extd__EPS__QOS_template; +class UE__Status; +class UE__Status_template; +class ExtdEmergNumList_emergNum; +class ExtdEmergNumList_emergNum_template; +class ExtdEmergNum; +class ExtdEmergNum_template; +class ExtdEmergNumList; +class ExtdEmergNumList_template; +class UE__SecurityCapability; +class UE__SecurityCapability_template; +class EPS__QualityOfService; +class EPS__QualityOfService_template; +class EPS__BearerContextStatus; +class EPS__BearerContextStatus_template; +class UERadioCapId; +class UERadioCapId_template; +class UERadioCapIdDeletion; +class UERadioCapIdDeletion_template; +class DRXParamCommon; +class DRXParamCommon_template; +class ReleaseAssistanceInd; +class ReleaseAssistanceInd_template; +class WUSAssistInfo_infoType; +class WUSAssistInfo_infoType_template; +class WusInfoType; +class WusInfoType_template; +class WUSAssistInfo; +class WUSAssistInfo_template; +class ServingPLMNRateControl; +class ServingPLMNRateControl_template; +class ControlPlaneInd; +class ControlPlaneInd_template; +class QoSParameters; +class QoSParameters_template; +class QoSParametersList; +class QoSParametersList_template; +class UE__RequestType; +class UE__RequestType_template; + +} /* end of namespace */ + +#ifndef NAS__CommonTypeDefs_HH +#define NAS__CommonTypeDefs_HH + +namespace NAS__CommonTypeDefs { + +/* Type definitions */ + +typedef HEXSTRING IEI4__Type; +typedef HEXSTRING_template IEI4__Type_template; +typedef OCTETSTRING IEI8__Type; +typedef OCTETSTRING_template IEI8__Type_template; +typedef OCTETSTRING Type4Length__Type; +typedef OCTETSTRING_template Type4Length__Type_template; +typedef OCTETSTRING Type6Length__Type; +typedef OCTETSTRING_template Type6Length__Type_template; +typedef HEXSTRING SpareHalfOctet; +typedef HEXSTRING_template SpareHalfOctet_template; +typedef HEXSTRING NAS__Mcc; +typedef HEXSTRING_template NAS__Mcc_template; +typedef BITSTRING SecurityHeaderType; +typedef BITSTRING_template SecurityHeaderType_template; +typedef BITSTRING ProtocolDiscriminator; +typedef BITSTRING_template ProtocolDiscriminator_template; +typedef OCTETSTRING ProcedureTransactionIdentifier; +typedef OCTETSTRING_template ProcedureTransactionIdentifier_template; +typedef BITSTRING SkipIndicator; +typedef BITSTRING_template SkipIndicator_template; +typedef BITSTRING MessageType; +typedef BITSTRING_template MessageType_template; +typedef OCTETSTRING NAS__SequenceNumber; +typedef OCTETSTRING_template NAS__SequenceNumber_template; +typedef BITSTRING NAS__AttDetValue__Type; +typedef BITSTRING_template NAS__AttDetValue__Type_template; +typedef BITSTRING KeySeq; +typedef BITSTRING_template KeySeq_template; +typedef BITSTRING NAS__KsiValue; +typedef BITSTRING_template NAS__KsiValue_template; +typedef OCTETSTRING NAS__PlmnId; +typedef OCTETSTRING_template NAS__PlmnId_template; +typedef OCTETSTRING NAS__Tmsi; +typedef OCTETSTRING_template NAS__Tmsi_template; +typedef OCTETSTRING NAS__P__Tmsi; +typedef OCTETSTRING_template NAS__P__Tmsi_template; +typedef OCTETSTRING NAS__Lac; +typedef OCTETSTRING_template NAS__Lac_template; +typedef OCTETSTRING NAS__Rac; +typedef OCTETSTRING_template NAS__Rac_template; +typedef BITSTRING PdnTypeValue; +typedef BITSTRING_template PdnTypeValue_template; +typedef BITSTRING BcdDigit__Bit; +typedef BITSTRING_template BcdDigit__Bit_template; +typedef BITSTRING NAS__IdType; +typedef BITSTRING_template NAS__IdType_template; +typedef BITSTRING NAS__CauseValue__Type; +typedef BITSTRING_template NAS__CauseValue__Type_template; +typedef BITSTRING TmsiStatusValue; +typedef BITSTRING_template TmsiStatusValue_template; +typedef BITSTRING GprsTimerUnit; +typedef BITSTRING_template GprsTimerUnit_template; +typedef GPRS__Timer2 GPRS__Timer3; +typedef GPRS__Timer2_template GPRS__Timer3_template; +typedef PLMN__List_plmnList NAS__PlmnIdList__Type; +typedef PLMN__List_plmnList_template NAS__PlmnIdList__Type_template; +typedef ProtocolConfigOptions_pco NAS__ProtocolConfigOptions__Type; +typedef ProtocolConfigOptions_pco_template NAS__ProtocolConfigOptions__Type_template; + +/* Class definitions */ + +class PDU__PDN__DNN__Type : public Enum_Type { // enum +friend class PDU__PDN__DNN__Type_template; +public: +enum enum_type { V2X__DNN = 0, MIOT__DNN = 1, URLLC__DNN = 2, IMS__DNN = 3, Internet__DNN = 4, Emergency__PDN = 5, Ethernet__DNN = 6, None = 7, UNKNOWN_VALUE = 8, UNBOUND_VALUE = 9 }; +private: +enum_type enum_value; + +public: +PDU__PDN__DNN__Type(); +PDU__PDN__DNN__Type(int other_value); +PDU__PDN__DNN__Type(enum_type other_value); +PDU__PDN__DNN__Type(const PDU__PDN__DNN__Type& other_value); + +PDU__PDN__DNN__Type& operator=(int other_value); +PDU__PDN__DNN__Type& operator=(enum_type other_value); +PDU__PDN__DNN__Type& operator=(const PDU__PDN__DNN__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const PDU__PDN__DNN__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const PDU__PDN__DNN__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const PDU__PDN__DNN__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const PDU__PDN__DNN__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const PDU__PDN__DNN__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const PDU__PDN__DNN__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const PDU__PDN__DNN__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class PDU__PDN__DNN__Type_template : public Base_Template { +union { +PDU__PDN__DNN__Type::enum_type single_value; +struct { +unsigned int n_values; +PDU__PDN__DNN__Type_template *list_value; +} value_list; +struct { +PDU__PDN__DNN__Type_template* precondition; +PDU__PDN__DNN__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const PDU__PDN__DNN__Type_template& other_value); + +public: +PDU__PDN__DNN__Type_template(); +PDU__PDN__DNN__Type_template(template_sel other_value); +PDU__PDN__DNN__Type_template(int other_value); +PDU__PDN__DNN__Type_template(PDU__PDN__DNN__Type::enum_type other_value); +PDU__PDN__DNN__Type_template(const PDU__PDN__DNN__Type& other_value); +PDU__PDN__DNN__Type_template(const OPTIONAL& other_value); +PDU__PDN__DNN__Type_template(PDU__PDN__DNN__Type_template* p_precondition, PDU__PDN__DNN__Type_template* p_implied_template); +PDU__PDN__DNN__Type_template(Dynamic_Match_Interface* p_dyn_match); +PDU__PDN__DNN__Type_template(const PDU__PDN__DNN__Type_template& other_value); +~PDU__PDN__DNN__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +PDU__PDN__DNN__Type_template& operator=(template_sel other_value); +PDU__PDN__DNN__Type_template& operator=(int other_value); +PDU__PDN__DNN__Type_template& operator=(PDU__PDN__DNN__Type::enum_type other_value); +PDU__PDN__DNN__Type_template& operator=(const PDU__PDN__DNN__Type& other_value); +PDU__PDN__DNN__Type_template& operator=(const OPTIONAL& other_value); +PDU__PDN__DNN__Type_template& operator=(const PDU__PDN__DNN__Type_template& other_value); + +boolean match(PDU__PDN__DNN__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const PDU__PDN__DNN__Type& other_value, boolean legacy = FALSE) const; +PDU__PDN__DNN__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +PDU__PDN__DNN__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const PDU__PDN__DNN__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class APN__DefaultConfiguration__Type : public Enum_Type { // enum +friend class APN__DefaultConfiguration__Type_template; +public: +enum enum_type { None = 0, internet = 1, ims = 2, urllc = 3, miot = 4, v2x = 5, ethernet = 6, UNKNOWN_VALUE = 7, UNBOUND_VALUE = 8 }; +private: +enum_type enum_value; + +public: +APN__DefaultConfiguration__Type(); +APN__DefaultConfiguration__Type(int other_value); +APN__DefaultConfiguration__Type(enum_type other_value); +APN__DefaultConfiguration__Type(const APN__DefaultConfiguration__Type& other_value); + +APN__DefaultConfiguration__Type& operator=(int other_value); +APN__DefaultConfiguration__Type& operator=(enum_type other_value); +APN__DefaultConfiguration__Type& operator=(const APN__DefaultConfiguration__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const APN__DefaultConfiguration__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const APN__DefaultConfiguration__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const APN__DefaultConfiguration__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const APN__DefaultConfiguration__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const APN__DefaultConfiguration__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const APN__DefaultConfiguration__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const APN__DefaultConfiguration__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class APN__DefaultConfiguration__Type_template : public Base_Template { +union { +APN__DefaultConfiguration__Type::enum_type single_value; +struct { +unsigned int n_values; +APN__DefaultConfiguration__Type_template *list_value; +} value_list; +struct { +APN__DefaultConfiguration__Type_template* precondition; +APN__DefaultConfiguration__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const APN__DefaultConfiguration__Type_template& other_value); + +public: +APN__DefaultConfiguration__Type_template(); +APN__DefaultConfiguration__Type_template(template_sel other_value); +APN__DefaultConfiguration__Type_template(int other_value); +APN__DefaultConfiguration__Type_template(APN__DefaultConfiguration__Type::enum_type other_value); +APN__DefaultConfiguration__Type_template(const APN__DefaultConfiguration__Type& other_value); +APN__DefaultConfiguration__Type_template(const OPTIONAL& other_value); +APN__DefaultConfiguration__Type_template(APN__DefaultConfiguration__Type_template* p_precondition, APN__DefaultConfiguration__Type_template* p_implied_template); +APN__DefaultConfiguration__Type_template(Dynamic_Match_Interface* p_dyn_match); +APN__DefaultConfiguration__Type_template(const APN__DefaultConfiguration__Type_template& other_value); +~APN__DefaultConfiguration__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +APN__DefaultConfiguration__Type_template& operator=(template_sel other_value); +APN__DefaultConfiguration__Type_template& operator=(int other_value); +APN__DefaultConfiguration__Type_template& operator=(APN__DefaultConfiguration__Type::enum_type other_value); +APN__DefaultConfiguration__Type_template& operator=(const APN__DefaultConfiguration__Type& other_value); +APN__DefaultConfiguration__Type_template& operator=(const OPTIONAL& other_value); +APN__DefaultConfiguration__Type_template& operator=(const APN__DefaultConfiguration__Type_template& other_value); + +boolean match(APN__DefaultConfiguration__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const APN__DefaultConfiguration__Type& other_value, boolean legacy = FALSE) const; +APN__DefaultConfiguration__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +APN__DefaultConfiguration__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const APN__DefaultConfiguration__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class InterworkWithoutN26 : public Enum_Type { // enum +friend class InterworkWithoutN26_template; +public: +enum enum_type { NOT__SUPPORTED = 0, SUPPORTED = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +InterworkWithoutN26(); +InterworkWithoutN26(int other_value); +InterworkWithoutN26(enum_type other_value); +InterworkWithoutN26(const InterworkWithoutN26& other_value); + +InterworkWithoutN26& operator=(int other_value); +InterworkWithoutN26& operator=(enum_type other_value); +InterworkWithoutN26& operator=(const InterworkWithoutN26& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const InterworkWithoutN26& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const InterworkWithoutN26& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const InterworkWithoutN26& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const InterworkWithoutN26& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const InterworkWithoutN26& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const InterworkWithoutN26& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const InterworkWithoutN26& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class InterworkWithoutN26_template : public Base_Template { +union { +InterworkWithoutN26::enum_type single_value; +struct { +unsigned int n_values; +InterworkWithoutN26_template *list_value; +} value_list; +struct { +InterworkWithoutN26_template* precondition; +InterworkWithoutN26_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const InterworkWithoutN26_template& other_value); + +public: +InterworkWithoutN26_template(); +InterworkWithoutN26_template(template_sel other_value); +InterworkWithoutN26_template(int other_value); +InterworkWithoutN26_template(InterworkWithoutN26::enum_type other_value); +InterworkWithoutN26_template(const InterworkWithoutN26& other_value); +InterworkWithoutN26_template(const OPTIONAL& other_value); +InterworkWithoutN26_template(InterworkWithoutN26_template* p_precondition, InterworkWithoutN26_template* p_implied_template); +InterworkWithoutN26_template(Dynamic_Match_Interface* p_dyn_match); +InterworkWithoutN26_template(const InterworkWithoutN26_template& other_value); +~InterworkWithoutN26_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +InterworkWithoutN26_template& operator=(template_sel other_value); +InterworkWithoutN26_template& operator=(int other_value); +InterworkWithoutN26_template& operator=(InterworkWithoutN26::enum_type other_value); +InterworkWithoutN26_template& operator=(const InterworkWithoutN26& other_value); +InterworkWithoutN26_template& operator=(const OPTIONAL& other_value); +InterworkWithoutN26_template& operator=(const InterworkWithoutN26_template& other_value); + +boolean match(InterworkWithoutN26::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const InterworkWithoutN26& other_value, boolean legacy = FALSE) const; +InterworkWithoutN26::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +InterworkWithoutN26_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const InterworkWithoutN26& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class PS__MODE : public Enum_Type { // enum +friend class PS__MODE_template; +public: +enum enum_type { VOICE__CENTRIC = 0, DATA__CENTRIC = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +PS__MODE(); +PS__MODE(int other_value); +PS__MODE(enum_type other_value); +PS__MODE(const PS__MODE& other_value); + +PS__MODE& operator=(int other_value); +PS__MODE& operator=(enum_type other_value); +PS__MODE& operator=(const PS__MODE& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const PS__MODE& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const PS__MODE& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const PS__MODE& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const PS__MODE& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const PS__MODE& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const PS__MODE& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const PS__MODE& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class PS__MODE_template : public Base_Template { +union { +PS__MODE::enum_type single_value; +struct { +unsigned int n_values; +PS__MODE_template *list_value; +} value_list; +struct { +PS__MODE_template* precondition; +PS__MODE_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const PS__MODE_template& other_value); + +public: +PS__MODE_template(); +PS__MODE_template(template_sel other_value); +PS__MODE_template(int other_value); +PS__MODE_template(PS__MODE::enum_type other_value); +PS__MODE_template(const PS__MODE& other_value); +PS__MODE_template(const OPTIONAL& other_value); +PS__MODE_template(PS__MODE_template* p_precondition, PS__MODE_template* p_implied_template); +PS__MODE_template(Dynamic_Match_Interface* p_dyn_match); +PS__MODE_template(const PS__MODE_template& other_value); +~PS__MODE_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +PS__MODE_template& operator=(template_sel other_value); +PS__MODE_template& operator=(int other_value); +PS__MODE_template& operator=(PS__MODE::enum_type other_value); +PS__MODE_template& operator=(const PS__MODE& other_value); +PS__MODE_template& operator=(const OPTIONAL& other_value); +PS__MODE_template& operator=(const PS__MODE_template& other_value); + +boolean match(PS__MODE::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const PS__MODE& other_value, boolean legacy = FALSE) const; +PS__MODE::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +PS__MODE_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const PS__MODE& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class CS__PS__MODE : public Enum_Type { // enum +friend class CS__PS__MODE_template; +public: +enum enum_type { VOICE__CENTRIC = 0, DATA__CENTRIC = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +CS__PS__MODE(); +CS__PS__MODE(int other_value); +CS__PS__MODE(enum_type other_value); +CS__PS__MODE(const CS__PS__MODE& other_value); + +CS__PS__MODE& operator=(int other_value); +CS__PS__MODE& operator=(enum_type other_value); +CS__PS__MODE& operator=(const CS__PS__MODE& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const CS__PS__MODE& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const CS__PS__MODE& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const CS__PS__MODE& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const CS__PS__MODE& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const CS__PS__MODE& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const CS__PS__MODE& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const CS__PS__MODE& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class CS__PS__MODE_template : public Base_Template { +union { +CS__PS__MODE::enum_type single_value; +struct { +unsigned int n_values; +CS__PS__MODE_template *list_value; +} value_list; +struct { +CS__PS__MODE_template* precondition; +CS__PS__MODE_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const CS__PS__MODE_template& other_value); + +public: +CS__PS__MODE_template(); +CS__PS__MODE_template(template_sel other_value); +CS__PS__MODE_template(int other_value); +CS__PS__MODE_template(CS__PS__MODE::enum_type other_value); +CS__PS__MODE_template(const CS__PS__MODE& other_value); +CS__PS__MODE_template(const OPTIONAL& other_value); +CS__PS__MODE_template(CS__PS__MODE_template* p_precondition, CS__PS__MODE_template* p_implied_template); +CS__PS__MODE_template(Dynamic_Match_Interface* p_dyn_match); +CS__PS__MODE_template(const CS__PS__MODE_template& other_value); +~CS__PS__MODE_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +CS__PS__MODE_template& operator=(template_sel other_value); +CS__PS__MODE_template& operator=(int other_value); +CS__PS__MODE_template& operator=(CS__PS__MODE::enum_type other_value); +CS__PS__MODE_template& operator=(const CS__PS__MODE& other_value); +CS__PS__MODE_template& operator=(const OPTIONAL& other_value); +CS__PS__MODE_template& operator=(const CS__PS__MODE_template& other_value); + +boolean match(CS__PS__MODE::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const CS__PS__MODE& other_value, boolean legacy = FALSE) const; +CS__PS__MODE::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +CS__PS__MODE_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const CS__PS__MODE& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class AccessPointName : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_nameValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AccessPointName(); + AccessPointName(const AccessPointName& other_value); + AccessPointName(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_nameValue); +inline AccessPointName& operator=(const AccessPointName& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AccessPointName& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AccessPointName& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& nameValue() + {return field_nameValue;} + inline const OCTETSTRING& nameValue() const + {return field_nameValue;} +Base_Type* clone() const { return new AccessPointName(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AccessPointName_template : public Record_Template { +void set_specific(); +public: +AccessPointName_template(): Record_Template() {} +AccessPointName_template(template_sel other_value): Record_Template(other_value) {} +AccessPointName_template(const AccessPointName& other_value): Record_Template() { copy_value(&other_value); } +AccessPointName_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AccessPointName_template(AccessPointName_template* p_precondition, AccessPointName_template* p_implied_template); +AccessPointName_template(Dynamic_Match_Interface* p_dyn_match); +AccessPointName_template(const AccessPointName_template& other_value): Record_Template() { copy_template(other_value); } +~AccessPointName_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AccessPointName_template& operator=(template_sel other_value); +AccessPointName_template& operator=(const AccessPointName& other_value); +AccessPointName_template& operator=(const OPTIONAL& other_value); +AccessPointName_template& operator=(const AccessPointName_template& other_value); +inline boolean match(const AccessPointName& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AccessPointName& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AccessPointName valueof() const; +inline AccessPointName_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& nameValue(); +const OCTETSTRING_template& nameValue() const; +Record_Template* create() const { return new AccessPointName_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AdditionalUpdateType : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_pnb__CIOT; + BITSTRING field_signallingActiveFlag; + BITSTRING field_addUpdateTypeValue; + Base_Type* fld_vec[4]; + void init_vec(); +public: + AdditionalUpdateType(); + AdditionalUpdateType(const AdditionalUpdateType& other_value); + AdditionalUpdateType(const HEXSTRING& par_iei, + const BITSTRING& par_pnb__CIOT, + const BITSTRING& par_signallingActiveFlag, + const BITSTRING& par_addUpdateTypeValue); +inline AdditionalUpdateType& operator=(const AdditionalUpdateType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AdditionalUpdateType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AdditionalUpdateType& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& pnb__CIOT() + {return field_pnb__CIOT;} + inline const BITSTRING& pnb__CIOT() const + {return field_pnb__CIOT;} + inline BITSTRING& signallingActiveFlag() + {return field_signallingActiveFlag;} + inline const BITSTRING& signallingActiveFlag() const + {return field_signallingActiveFlag;} + inline BITSTRING& addUpdateTypeValue() + {return field_addUpdateTypeValue;} + inline const BITSTRING& addUpdateTypeValue() const + {return field_addUpdateTypeValue;} +Base_Type* clone() const { return new AdditionalUpdateType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AdditionalUpdateType_template : public Record_Template { +void set_specific(); +public: +AdditionalUpdateType_template(): Record_Template() {} +AdditionalUpdateType_template(template_sel other_value): Record_Template(other_value) {} +AdditionalUpdateType_template(const AdditionalUpdateType& other_value): Record_Template() { copy_value(&other_value); } +AdditionalUpdateType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AdditionalUpdateType_template(AdditionalUpdateType_template* p_precondition, AdditionalUpdateType_template* p_implied_template); +AdditionalUpdateType_template(Dynamic_Match_Interface* p_dyn_match); +AdditionalUpdateType_template(const AdditionalUpdateType_template& other_value): Record_Template() { copy_template(other_value); } +~AdditionalUpdateType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AdditionalUpdateType_template& operator=(template_sel other_value); +AdditionalUpdateType_template& operator=(const AdditionalUpdateType& other_value); +AdditionalUpdateType_template& operator=(const OPTIONAL& other_value); +AdditionalUpdateType_template& operator=(const AdditionalUpdateType_template& other_value); +inline boolean match(const AdditionalUpdateType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AdditionalUpdateType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AdditionalUpdateType valueof() const; +inline AdditionalUpdateType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& pnb__CIOT(); +const BITSTRING_template& pnb__CIOT() const; +BITSTRING_template& signallingActiveFlag(); +const BITSTRING_template& signallingActiveFlag() const; +BITSTRING_template& addUpdateTypeValue(); +const BITSTRING_template& addUpdateTypeValue() const; +Record_Template* create() const { return new AdditionalUpdateType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CiphKeySeqNum : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare1; + BITSTRING field_keySeq; + Base_Type* fld_vec[3]; + void init_vec(); +public: + CiphKeySeqNum(); + CiphKeySeqNum(const CiphKeySeqNum& other_value); + CiphKeySeqNum(const OPTIONAL& par_iei, + const BITSTRING& par_spare1, + const BITSTRING& par_keySeq); +inline CiphKeySeqNum& operator=(const CiphKeySeqNum& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CiphKeySeqNum& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CiphKeySeqNum& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare1() + {return field_spare1;} + inline const BITSTRING& spare1() const + {return field_spare1;} + inline BITSTRING& keySeq() + {return field_keySeq;} + inline const BITSTRING& keySeq() const + {return field_keySeq;} +Base_Type* clone() const { return new CiphKeySeqNum(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CiphKeySeqNum_template : public Record_Template { +void set_specific(); +public: +CiphKeySeqNum_template(): Record_Template() {} +CiphKeySeqNum_template(template_sel other_value): Record_Template(other_value) {} +CiphKeySeqNum_template(const CiphKeySeqNum& other_value): Record_Template() { copy_value(&other_value); } +CiphKeySeqNum_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CiphKeySeqNum_template(CiphKeySeqNum_template* p_precondition, CiphKeySeqNum_template* p_implied_template); +CiphKeySeqNum_template(Dynamic_Match_Interface* p_dyn_match); +CiphKeySeqNum_template(const CiphKeySeqNum_template& other_value): Record_Template() { copy_template(other_value); } +~CiphKeySeqNum_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CiphKeySeqNum_template& operator=(template_sel other_value); +CiphKeySeqNum_template& operator=(const CiphKeySeqNum& other_value); +CiphKeySeqNum_template& operator=(const OPTIONAL& other_value); +CiphKeySeqNum_template& operator=(const CiphKeySeqNum_template& other_value); +inline boolean match(const CiphKeySeqNum& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CiphKeySeqNum& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CiphKeySeqNum valueof() const; +inline CiphKeySeqNum_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare1(); +const BITSTRING_template& spare1() const; +BITSTRING_template& keySeq(); +const BITSTRING_template& keySeq() const; +Record_Template* create() const { return new CiphKeySeqNum_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ConnectivityType : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_connectivityValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + ConnectivityType(); + ConnectivityType(const ConnectivityType& other_value); + ConnectivityType(const HEXSTRING& par_iei, + const BITSTRING& par_connectivityValue); +inline ConnectivityType& operator=(const ConnectivityType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ConnectivityType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ConnectivityType& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& connectivityValue() + {return field_connectivityValue;} + inline const BITSTRING& connectivityValue() const + {return field_connectivityValue;} +Base_Type* clone() const { return new ConnectivityType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ConnectivityType_template : public Record_Template { +void set_specific(); +public: +ConnectivityType_template(): Record_Template() {} +ConnectivityType_template(template_sel other_value): Record_Template(other_value) {} +ConnectivityType_template(const ConnectivityType& other_value): Record_Template() { copy_value(&other_value); } +ConnectivityType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ConnectivityType_template(ConnectivityType_template* p_precondition, ConnectivityType_template* p_implied_template); +ConnectivityType_template(Dynamic_Match_Interface* p_dyn_match); +ConnectivityType_template(const ConnectivityType_template& other_value): Record_Template() { copy_template(other_value); } +~ConnectivityType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ConnectivityType_template& operator=(template_sel other_value); +ConnectivityType_template& operator=(const ConnectivityType& other_value); +ConnectivityType_template& operator=(const OPTIONAL& other_value); +ConnectivityType_template& operator=(const ConnectivityType_template& other_value); +inline boolean match(const ConnectivityType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ConnectivityType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ConnectivityType valueof() const; +inline ConnectivityType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& connectivityValue(); +const BITSTRING_template& connectivityValue() const; +Record_Template* create() const { return new ConnectivityType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DetachType : public Record_Type { + BITSTRING field_switchOff; + BITSTRING field_typeOfDetach; + Base_Type* fld_vec[2]; + void init_vec(); +public: + DetachType(); + DetachType(const DetachType& other_value); + DetachType(const BITSTRING& par_switchOff, + const BITSTRING& par_typeOfDetach); +inline DetachType& operator=(const DetachType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DetachType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DetachType& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& switchOff() + {return field_switchOff;} + inline const BITSTRING& switchOff() const + {return field_switchOff;} + inline BITSTRING& typeOfDetach() + {return field_typeOfDetach;} + inline const BITSTRING& typeOfDetach() const + {return field_typeOfDetach;} +Base_Type* clone() const { return new DetachType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DetachType_template : public Record_Template { +void set_specific(); +public: +DetachType_template(): Record_Template() {} +DetachType_template(template_sel other_value): Record_Template(other_value) {} +DetachType_template(const DetachType& other_value): Record_Template() { copy_value(&other_value); } +DetachType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DetachType_template(DetachType_template* p_precondition, DetachType_template* p_implied_template); +DetachType_template(Dynamic_Match_Interface* p_dyn_match); +DetachType_template(const DetachType_template& other_value): Record_Template() { copy_template(other_value); } +~DetachType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DetachType_template& operator=(template_sel other_value); +DetachType_template& operator=(const DetachType& other_value); +DetachType_template& operator=(const OPTIONAL& other_value); +DetachType_template& operator=(const DetachType_template& other_value); +inline boolean match(const DetachType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DetachType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DetachType valueof() const; +inline DetachType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& switchOff(); +const BITSTRING_template& switchOff() const; +BITSTRING_template& typeOfDetach(); +const BITSTRING_template& typeOfDetach() const; +Record_Template* create() const { return new DetachType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DeviceProperties : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_lowPriority; + Base_Type* fld_vec[3]; + void init_vec(); +public: + DeviceProperties(); + DeviceProperties(const DeviceProperties& other_value); + DeviceProperties(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_lowPriority); +inline DeviceProperties& operator=(const DeviceProperties& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DeviceProperties& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DeviceProperties& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& lowPriority() + {return field_lowPriority;} + inline const BITSTRING& lowPriority() const + {return field_lowPriority;} +Base_Type* clone() const { return new DeviceProperties(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DeviceProperties_template : public Record_Template { +void set_specific(); +public: +DeviceProperties_template(): Record_Template() {} +DeviceProperties_template(template_sel other_value): Record_Template(other_value) {} +DeviceProperties_template(const DeviceProperties& other_value): Record_Template() { copy_value(&other_value); } +DeviceProperties_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DeviceProperties_template(DeviceProperties_template* p_precondition, DeviceProperties_template* p_implied_template); +DeviceProperties_template(Dynamic_Match_Interface* p_dyn_match); +DeviceProperties_template(const DeviceProperties_template& other_value): Record_Template() { copy_template(other_value); } +~DeviceProperties_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DeviceProperties_template& operator=(template_sel other_value); +DeviceProperties_template& operator=(const DeviceProperties& other_value); +DeviceProperties_template& operator=(const OPTIONAL& other_value); +DeviceProperties_template& operator=(const DeviceProperties_template& other_value); +inline boolean match(const DeviceProperties& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DeviceProperties& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DeviceProperties valueof() const; +inline DeviceProperties_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& lowPriority(); +const BITSTRING_template& lowPriority() const; +Record_Template* create() const { return new DeviceProperties_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DRXparameter : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_splitPGcycleCode; + BITSTRING field_cnDRXcoef; + BITSTRING field_splitOnCCCH; + BITSTRING field_nonDRXtimer; + Base_Type* fld_vec[5]; + void init_vec(); +public: + DRXparameter(); + DRXparameter(const DRXparameter& other_value); + DRXparameter(const OPTIONAL& par_iei, + const BITSTRING& par_splitPGcycleCode, + const BITSTRING& par_cnDRXcoef, + const BITSTRING& par_splitOnCCCH, + const BITSTRING& par_nonDRXtimer); +inline DRXparameter& operator=(const DRXparameter& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DRXparameter& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DRXparameter& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& splitPGcycleCode() + {return field_splitPGcycleCode;} + inline const BITSTRING& splitPGcycleCode() const + {return field_splitPGcycleCode;} + inline BITSTRING& cnDRXcoef() + {return field_cnDRXcoef;} + inline const BITSTRING& cnDRXcoef() const + {return field_cnDRXcoef;} + inline BITSTRING& splitOnCCCH() + {return field_splitOnCCCH;} + inline const BITSTRING& splitOnCCCH() const + {return field_splitOnCCCH;} + inline BITSTRING& nonDRXtimer() + {return field_nonDRXtimer;} + inline const BITSTRING& nonDRXtimer() const + {return field_nonDRXtimer;} +Base_Type* clone() const { return new DRXparameter(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DRXparameter_template : public Record_Template { +void set_specific(); +public: +DRXparameter_template(): Record_Template() {} +DRXparameter_template(template_sel other_value): Record_Template(other_value) {} +DRXparameter_template(const DRXparameter& other_value): Record_Template() { copy_value(&other_value); } +DRXparameter_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DRXparameter_template(DRXparameter_template* p_precondition, DRXparameter_template* p_implied_template); +DRXparameter_template(Dynamic_Match_Interface* p_dyn_match); +DRXparameter_template(const DRXparameter_template& other_value): Record_Template() { copy_template(other_value); } +~DRXparameter_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DRXparameter_template& operator=(template_sel other_value); +DRXparameter_template& operator=(const DRXparameter& other_value); +DRXparameter_template& operator=(const OPTIONAL& other_value); +DRXparameter_template& operator=(const DRXparameter_template& other_value); +inline boolean match(const DRXparameter& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DRXparameter& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DRXparameter valueof() const; +inline DRXparameter_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& splitPGcycleCode(); +const BITSTRING_template& splitPGcycleCode() const; +BITSTRING_template& cnDRXcoef(); +const BITSTRING_template& cnDRXcoef() const; +BITSTRING_template& splitOnCCCH(); +const BITSTRING_template& splitOnCCCH() const; +BITSTRING_template& nonDRXtimer(); +const BITSTRING_template& nonDRXtimer() const; +Record_Template* create() const { return new DRXparameter_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EmergServCat : public Record_Type { + BITSTRING field_spare; + BITSTRING field_emergSCValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + EmergServCat(); + EmergServCat(const EmergServCat& other_value); + EmergServCat(const BITSTRING& par_spare, + const BITSTRING& par_emergSCValue); +inline EmergServCat& operator=(const EmergServCat& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EmergServCat& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EmergServCat& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& emergSCValue() + {return field_emergSCValue;} + inline const BITSTRING& emergSCValue() const + {return field_emergSCValue;} +Base_Type* clone() const { return new EmergServCat(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EmergServCat_template : public Record_Template { +void set_specific(); +public: +EmergServCat_template(): Record_Template() {} +EmergServCat_template(template_sel other_value): Record_Template(other_value) {} +EmergServCat_template(const EmergServCat& other_value): Record_Template() { copy_value(&other_value); } +EmergServCat_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EmergServCat_template(EmergServCat_template* p_precondition, EmergServCat_template* p_implied_template); +EmergServCat_template(Dynamic_Match_Interface* p_dyn_match); +EmergServCat_template(const EmergServCat_template& other_value): Record_Template() { copy_template(other_value); } +~EmergServCat_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EmergServCat_template& operator=(template_sel other_value); +EmergServCat_template& operator=(const EmergServCat& other_value); +EmergServCat_template& operator=(const OPTIONAL& other_value); +EmergServCat_template& operator=(const EmergServCat_template& other_value); +inline boolean match(const EmergServCat& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EmergServCat& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EmergServCat valueof() const; +inline EmergServCat_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& emergSCValue(); +const BITSTRING_template& emergSCValue() const; +Record_Template* create() const { return new EmergServCat_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EmergNum : public Record_Type { + OCTETSTRING field_len; + EmergServCat field_emergServCat; + OCTETSTRING field_digits; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EmergNum(); + EmergNum(const EmergNum& other_value); + EmergNum(const OCTETSTRING& par_len, + const EmergServCat& par_emergServCat, + const OCTETSTRING& par_digits); +inline EmergNum& operator=(const EmergNum& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EmergNum& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EmergNum& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline EmergServCat& emergServCat() + {return field_emergServCat;} + inline const EmergServCat& emergServCat() const + {return field_emergServCat;} + inline OCTETSTRING& digits() + {return field_digits;} + inline const OCTETSTRING& digits() const + {return field_digits;} +Base_Type* clone() const { return new EmergNum(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EmergNum_template : public Record_Template { +void set_specific(); +public: +EmergNum_template(): Record_Template() {} +EmergNum_template(template_sel other_value): Record_Template(other_value) {} +EmergNum_template(const EmergNum& other_value): Record_Template() { copy_value(&other_value); } +EmergNum_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EmergNum_template(EmergNum_template* p_precondition, EmergNum_template* p_implied_template); +EmergNum_template(Dynamic_Match_Interface* p_dyn_match); +EmergNum_template(const EmergNum_template& other_value): Record_Template() { copy_template(other_value); } +~EmergNum_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EmergNum_template& operator=(template_sel other_value); +EmergNum_template& operator=(const EmergNum& other_value); +EmergNum_template& operator=(const OPTIONAL& other_value); +EmergNum_template& operator=(const EmergNum_template& other_value); +inline boolean match(const EmergNum& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EmergNum& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EmergNum valueof() const; +inline EmergNum_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +EmergServCat_template& emergServCat(); +const EmergServCat_template& emergServCat() const; +OCTETSTRING_template& digits(); +const OCTETSTRING_template& digits() const; +Record_Template* create() const { return new EmergNum_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EmergNumList_emergNum : public Record_Of_Type { + +static const EmergNum UNBOUND_ELEM; + +public: +EmergNumList_emergNum(): Record_Of_Type() {} +EmergNumList_emergNum(null_type other_value): Record_Of_Type(other_value) {} +EmergNumList_emergNum(const EmergNumList_emergNum& other_value): Record_Of_Type(other_value) {} +~EmergNumList_emergNum() { clean_up(); } + +inline EmergNumList_emergNum& operator=(null_type other_value) { set_val(other_value); return *this; } +inline EmergNumList_emergNum& operator=(const EmergNumList_emergNum& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EmergNumList_emergNum& other_value) const { return is_equal(&other_value); } +boolean operator!=(const EmergNumList_emergNum& other_value) const { return !is_equal(&other_value); } +EmergNum& operator[](int index_value); +EmergNum& operator[](const INTEGER& index_value); +const EmergNum& operator[](int index_value) const; +const EmergNum& operator[](const INTEGER& index_value) const; +EmergNumList_emergNum operator<<=(int rotate_count) const; +EmergNumList_emergNum operator<<=(const INTEGER& rotate_count) const; +EmergNumList_emergNum operator>>=(int rotate_count) const; +EmergNumList_emergNum operator>>=(const INTEGER& rotate_count) const; + +EmergNumList_emergNum operator+(const EmergNumList_emergNum& other_value) const; + +EmergNumList_emergNum operator+(const OPTIONAL& other_value) const; + +EmergNumList_emergNum operator+(null_type) const; + +EmergNumList_emergNum substr(int index, int returncount) const; + +EmergNumList_emergNum replace(int index, int len, const EmergNumList_emergNum& repl) const; + +EmergNumList_emergNum replace(int index, int len, const EmergNumList_emergNum_template& repl) const; + +Base_Type* clone() const { return new EmergNumList_emergNum(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class EmergNumList_emergNum_template : public Record_Of_Template { +friend EmergNumList_emergNum_template operator+(template_sel left_template, const EmergNumList_emergNum_template& right_template); +friend EmergNumList_emergNum_template operator+(const EmergNumList_emergNum& left_value, const EmergNumList_emergNum_template& right_template); +friend EmergNumList_emergNum_template operator+(template_sel left_template, const EmergNumList_emergNum& right_value); +friend EmergNumList_emergNum_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend EmergNumList_emergNum_template operator+(const EmergNumList_emergNum& left_value, template_sel right_template); + +public: +EmergNumList_emergNum_template() {} +EmergNumList_emergNum_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +EmergNumList_emergNum_template(null_type other_value); +EmergNumList_emergNum_template(const EmergNumList_emergNum& other_value) { copy_value(&other_value); } +EmergNumList_emergNum_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +EmergNumList_emergNum_template(EmergNumList_emergNum_template* p_precondition, EmergNumList_emergNum_template* p_implied_template); +EmergNumList_emergNum_template(Dynamic_Match_Interface* p_dyn_match); +EmergNumList_emergNum_template(const EmergNumList_emergNum_template& other_value): Record_Of_Template() { copy_template(other_value); } +~EmergNumList_emergNum_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EmergNumList_emergNum_template& operator=(template_sel other_value); +EmergNumList_emergNum_template& operator=(null_type other_value); +EmergNumList_emergNum_template& operator=(const EmergNumList_emergNum& other_value); +EmergNumList_emergNum_template& operator=(const OPTIONAL& other_value); +EmergNumList_emergNum_template& operator=(const EmergNumList_emergNum_template& other_value); + +EmergNumList_emergNum_template operator+(const EmergNumList_emergNum_template& other_value) const; +EmergNumList_emergNum_template operator+(const EmergNumList_emergNum& other_value) const; +EmergNumList_emergNum_template operator+(template_sel other_value) const; +EmergNumList_emergNum_template operator+(null_type) const; + +EmergNum_template& operator[](int index_value); +EmergNum_template& operator[](const INTEGER& index_value); +const EmergNum_template& operator[](int index_value) const; +const EmergNum_template& operator[](const INTEGER& index_value) const; +inline boolean match(const EmergNumList_emergNum& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +EmergNumList_emergNum valueof() const; +EmergNumList_emergNum substr(int index, int returncount) const; + +EmergNumList_emergNum replace(int index, int len, const EmergNumList_emergNum_template& repl) const; + +EmergNumList_emergNum replace(int index, int len, const EmergNumList_emergNum& repl) const; + +inline EmergNumList_emergNum_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const EmergNumList_emergNum& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new EmergNumList_emergNum_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class EmergNumList : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + EmergNumList_emergNum field_emergNum; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EmergNumList(); + EmergNumList(const EmergNumList& other_value); + EmergNumList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const EmergNumList_emergNum& par_emergNum); +inline EmergNumList& operator=(const EmergNumList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EmergNumList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EmergNumList& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline EmergNumList_emergNum& emergNum() + {return field_emergNum;} + inline const EmergNumList_emergNum& emergNum() const + {return field_emergNum;} +Base_Type* clone() const { return new EmergNumList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EmergNumList_template : public Record_Template { +void set_specific(); +public: +EmergNumList_template(): Record_Template() {} +EmergNumList_template(template_sel other_value): Record_Template(other_value) {} +EmergNumList_template(const EmergNumList& other_value): Record_Template() { copy_value(&other_value); } +EmergNumList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EmergNumList_template(EmergNumList_template* p_precondition, EmergNumList_template* p_implied_template); +EmergNumList_template(Dynamic_Match_Interface* p_dyn_match); +EmergNumList_template(const EmergNumList_template& other_value): Record_Template() { copy_template(other_value); } +~EmergNumList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EmergNumList_template& operator=(template_sel other_value); +EmergNumList_template& operator=(const EmergNumList& other_value); +EmergNumList_template& operator=(const OPTIONAL& other_value); +EmergNumList_template& operator=(const EmergNumList_template& other_value); +inline boolean match(const EmergNumList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EmergNumList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EmergNumList valueof() const; +inline EmergNumList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +EmergNumList_emergNum_template& emergNum(); +const EmergNumList_emergNum_template& emergNum() const; +Record_Template* create() const { return new EmergNumList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class GPRS__Timer : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_unit; + BITSTRING field_timerValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + GPRS__Timer(); + GPRS__Timer(const GPRS__Timer& other_value); + GPRS__Timer(const OPTIONAL& par_iei, + const BITSTRING& par_unit, + const BITSTRING& par_timerValue); +inline GPRS__Timer& operator=(const GPRS__Timer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const GPRS__Timer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const GPRS__Timer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& unit() + {return field_unit;} + inline const BITSTRING& unit() const + {return field_unit;} + inline BITSTRING& timerValue() + {return field_timerValue;} + inline const BITSTRING& timerValue() const + {return field_timerValue;} +Base_Type* clone() const { return new GPRS__Timer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class GPRS__Timer_template : public Record_Template { +void set_specific(); +public: +GPRS__Timer_template(): Record_Template() {} +GPRS__Timer_template(template_sel other_value): Record_Template(other_value) {} +GPRS__Timer_template(const GPRS__Timer& other_value): Record_Template() { copy_value(&other_value); } +GPRS__Timer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +GPRS__Timer_template(GPRS__Timer_template* p_precondition, GPRS__Timer_template* p_implied_template); +GPRS__Timer_template(Dynamic_Match_Interface* p_dyn_match); +GPRS__Timer_template(const GPRS__Timer_template& other_value): Record_Template() { copy_template(other_value); } +~GPRS__Timer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +GPRS__Timer_template& operator=(template_sel other_value); +GPRS__Timer_template& operator=(const GPRS__Timer& other_value); +GPRS__Timer_template& operator=(const OPTIONAL& other_value); +GPRS__Timer_template& operator=(const GPRS__Timer_template& other_value); +inline boolean match(const GPRS__Timer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const GPRS__Timer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +GPRS__Timer valueof() const; +inline GPRS__Timer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& unit(); +const BITSTRING_template& unit() const; +BITSTRING_template& timerValue(); +const BITSTRING_template& timerValue() const; +Record_Template* create() const { return new GPRS__Timer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class GPRS__Timer2 : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_unit; + BITSTRING field_gprsTimerValue; + Base_Type* fld_vec[4]; + void init_vec(); +public: + GPRS__Timer2(); + GPRS__Timer2(const GPRS__Timer2& other_value); + GPRS__Timer2(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_unit, + const BITSTRING& par_gprsTimerValue); +inline GPRS__Timer2& operator=(const GPRS__Timer2& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const GPRS__Timer2& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const GPRS__Timer2& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& unit() + {return field_unit;} + inline const BITSTRING& unit() const + {return field_unit;} + inline BITSTRING& gprsTimerValue() + {return field_gprsTimerValue;} + inline const BITSTRING& gprsTimerValue() const + {return field_gprsTimerValue;} +Base_Type* clone() const { return new GPRS__Timer2(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class GPRS__Timer2_template : public Record_Template { +void set_specific(); +public: +GPRS__Timer2_template(): Record_Template() {} +GPRS__Timer2_template(template_sel other_value): Record_Template(other_value) {} +GPRS__Timer2_template(const GPRS__Timer2& other_value): Record_Template() { copy_value(&other_value); } +GPRS__Timer2_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +GPRS__Timer2_template(GPRS__Timer2_template* p_precondition, GPRS__Timer2_template* p_implied_template); +GPRS__Timer2_template(Dynamic_Match_Interface* p_dyn_match); +GPRS__Timer2_template(const GPRS__Timer2_template& other_value): Record_Template() { copy_template(other_value); } +~GPRS__Timer2_template(); +boolean match_dynamic(const Base_Type* match_value) const; +GPRS__Timer2_template& operator=(template_sel other_value); +GPRS__Timer2_template& operator=(const GPRS__Timer2& other_value); +GPRS__Timer2_template& operator=(const OPTIONAL& other_value); +GPRS__Timer2_template& operator=(const GPRS__Timer2_template& other_value); +inline boolean match(const GPRS__Timer2& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const GPRS__Timer2& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +GPRS__Timer2 valueof() const; +inline GPRS__Timer2_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& unit(); +const BITSTRING_template& unit() const; +BITSTRING_template& gprsTimerValue(); +const BITSTRING_template& gprsTimerValue() const; +Record_Template* create() const { return new GPRS__Timer2_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IMEISV__Request : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_requestValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + IMEISV__Request(); + IMEISV__Request(const IMEISV__Request& other_value); + IMEISV__Request(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_requestValue); +inline IMEISV__Request& operator=(const IMEISV__Request& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IMEISV__Request& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IMEISV__Request& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& requestValue() + {return field_requestValue;} + inline const BITSTRING& requestValue() const + {return field_requestValue;} +Base_Type* clone() const { return new IMEISV__Request(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IMEISV__Request_template : public Record_Template { +void set_specific(); +public: +IMEISV__Request_template(): Record_Template() {} +IMEISV__Request_template(template_sel other_value): Record_Template(other_value) {} +IMEISV__Request_template(const IMEISV__Request& other_value): Record_Template() { copy_value(&other_value); } +IMEISV__Request_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IMEISV__Request_template(IMEISV__Request_template* p_precondition, IMEISV__Request_template* p_implied_template); +IMEISV__Request_template(Dynamic_Match_Interface* p_dyn_match); +IMEISV__Request_template(const IMEISV__Request_template& other_value): Record_Template() { copy_template(other_value); } +~IMEISV__Request_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IMEISV__Request_template& operator=(template_sel other_value); +IMEISV__Request_template& operator=(const IMEISV__Request& other_value); +IMEISV__Request_template& operator=(const OPTIONAL& other_value); +IMEISV__Request_template& operator=(const IMEISV__Request_template& other_value); +inline boolean match(const IMEISV__Request& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IMEISV__Request& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IMEISV__Request valueof() const; +inline IMEISV__Request_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& requestValue(); +const BITSTRING_template& requestValue() const; +Record_Template* create() const { return new IMEISV__Request_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class LocAreaId : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_plmn; + OCTETSTRING field_lac; + Base_Type* fld_vec[3]; + void init_vec(); +public: + LocAreaId(); + LocAreaId(const LocAreaId& other_value); + LocAreaId(const OPTIONAL& par_iei, + const OCTETSTRING& par_plmn, + const OCTETSTRING& par_lac); +inline LocAreaId& operator=(const LocAreaId& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LocAreaId& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const LocAreaId& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& plmn() + {return field_plmn;} + inline const OCTETSTRING& plmn() const + {return field_plmn;} + inline OCTETSTRING& lac() + {return field_lac;} + inline const OCTETSTRING& lac() const + {return field_lac;} +Base_Type* clone() const { return new LocAreaId(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class LocAreaId_template : public Record_Template { +void set_specific(); +public: +LocAreaId_template(): Record_Template() {} +LocAreaId_template(template_sel other_value): Record_Template(other_value) {} +LocAreaId_template(const LocAreaId& other_value): Record_Template() { copy_value(&other_value); } +LocAreaId_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +LocAreaId_template(LocAreaId_template* p_precondition, LocAreaId_template* p_implied_template); +LocAreaId_template(Dynamic_Match_Interface* p_dyn_match); +LocAreaId_template(const LocAreaId_template& other_value): Record_Template() { copy_template(other_value); } +~LocAreaId_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LocAreaId_template& operator=(template_sel other_value); +LocAreaId_template& operator=(const LocAreaId& other_value); +LocAreaId_template& operator=(const OPTIONAL& other_value); +LocAreaId_template& operator=(const LocAreaId_template& other_value); +inline boolean match(const LocAreaId& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const LocAreaId& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +LocAreaId valueof() const; +inline LocAreaId_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& plmn(); +const OCTETSTRING_template& plmn() const; +OCTETSTRING_template& lac(); +const OCTETSTRING_template& lac() const; +Record_Template* create() const { return new LocAreaId_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RoutingAreaId : public Record_Type { + OPTIONAL field_iei; + LocAreaId field_lai; + OCTETSTRING field_rac; + Base_Type* fld_vec[3]; + void init_vec(); +public: + RoutingAreaId(); + RoutingAreaId(const RoutingAreaId& other_value); + RoutingAreaId(const OPTIONAL& par_iei, + const LocAreaId& par_lai, + const OCTETSTRING& par_rac); +inline RoutingAreaId& operator=(const RoutingAreaId& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RoutingAreaId& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RoutingAreaId& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline LocAreaId& lai() + {return field_lai;} + inline const LocAreaId& lai() const + {return field_lai;} + inline OCTETSTRING& rac() + {return field_rac;} + inline const OCTETSTRING& rac() const + {return field_rac;} +Base_Type* clone() const { return new RoutingAreaId(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RoutingAreaId_template : public Record_Template { +void set_specific(); +public: +RoutingAreaId_template(): Record_Template() {} +RoutingAreaId_template(template_sel other_value): Record_Template(other_value) {} +RoutingAreaId_template(const RoutingAreaId& other_value): Record_Template() { copy_value(&other_value); } +RoutingAreaId_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RoutingAreaId_template(RoutingAreaId_template* p_precondition, RoutingAreaId_template* p_implied_template); +RoutingAreaId_template(Dynamic_Match_Interface* p_dyn_match); +RoutingAreaId_template(const RoutingAreaId_template& other_value): Record_Template() { copy_template(other_value); } +~RoutingAreaId_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RoutingAreaId_template& operator=(template_sel other_value); +RoutingAreaId_template& operator=(const RoutingAreaId& other_value); +RoutingAreaId_template& operator=(const OPTIONAL& other_value); +RoutingAreaId_template& operator=(const RoutingAreaId_template& other_value); +inline boolean match(const RoutingAreaId& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RoutingAreaId& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RoutingAreaId valueof() const; +inline RoutingAreaId_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +LocAreaId_template& lai(); +const LocAreaId_template& lai() const; +OCTETSTRING_template& rac(); +const OCTETSTRING_template& rac() const; +Record_Template* create() const { return new RoutingAreaId_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class LLC__SAPI : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_llcSapiValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + LLC__SAPI(); + LLC__SAPI(const LLC__SAPI& other_value); + LLC__SAPI(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_llcSapiValue); +inline LLC__SAPI& operator=(const LLC__SAPI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LLC__SAPI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const LLC__SAPI& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& llcSapiValue() + {return field_llcSapiValue;} + inline const BITSTRING& llcSapiValue() const + {return field_llcSapiValue;} +Base_Type* clone() const { return new LLC__SAPI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class LLC__SAPI_template : public Record_Template { +void set_specific(); +public: +LLC__SAPI_template(): Record_Template() {} +LLC__SAPI_template(template_sel other_value): Record_Template(other_value) {} +LLC__SAPI_template(const LLC__SAPI& other_value): Record_Template() { copy_value(&other_value); } +LLC__SAPI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +LLC__SAPI_template(LLC__SAPI_template* p_precondition, LLC__SAPI_template* p_implied_template); +LLC__SAPI_template(Dynamic_Match_Interface* p_dyn_match); +LLC__SAPI_template(const LLC__SAPI_template& other_value): Record_Template() { copy_template(other_value); } +~LLC__SAPI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LLC__SAPI_template& operator=(template_sel other_value); +LLC__SAPI_template& operator=(const LLC__SAPI& other_value); +LLC__SAPI_template& operator=(const OPTIONAL& other_value); +LLC__SAPI_template& operator=(const LLC__SAPI_template& other_value); +inline boolean match(const LLC__SAPI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const LLC__SAPI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +LLC__SAPI valueof() const; +inline LLC__SAPI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& llcSapiValue(); +const BITSTRING_template& llcSapiValue() const; +Record_Template* create() const { return new LLC__SAPI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MobileIdentity : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_idDigit1; + BITSTRING field_oddEvenInd; + BITSTRING field_typeOfId; + OCTETSTRING field_otherDigits; + Base_Type* fld_vec[6]; + void init_vec(); +public: + MobileIdentity(); + MobileIdentity(const MobileIdentity& other_value); + MobileIdentity(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_idDigit1, + const BITSTRING& par_oddEvenInd, + const BITSTRING& par_typeOfId, + const OCTETSTRING& par_otherDigits); +inline MobileIdentity& operator=(const MobileIdentity& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MobileIdentity& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MobileIdentity& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& idDigit1() + {return field_idDigit1;} + inline const BITSTRING& idDigit1() const + {return field_idDigit1;} + inline BITSTRING& oddEvenInd() + {return field_oddEvenInd;} + inline const BITSTRING& oddEvenInd() const + {return field_oddEvenInd;} + inline BITSTRING& typeOfId() + {return field_typeOfId;} + inline const BITSTRING& typeOfId() const + {return field_typeOfId;} + inline OCTETSTRING& otherDigits() + {return field_otherDigits;} + inline const OCTETSTRING& otherDigits() const + {return field_otherDigits;} +Base_Type* clone() const { return new MobileIdentity(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MobileIdentity_template : public Record_Template { +void set_specific(); +public: +MobileIdentity_template(): Record_Template() {} +MobileIdentity_template(template_sel other_value): Record_Template(other_value) {} +MobileIdentity_template(const MobileIdentity& other_value): Record_Template() { copy_value(&other_value); } +MobileIdentity_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MobileIdentity_template(MobileIdentity_template* p_precondition, MobileIdentity_template* p_implied_template); +MobileIdentity_template(Dynamic_Match_Interface* p_dyn_match); +MobileIdentity_template(const MobileIdentity_template& other_value): Record_Template() { copy_template(other_value); } +~MobileIdentity_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MobileIdentity_template& operator=(template_sel other_value); +MobileIdentity_template& operator=(const MobileIdentity& other_value); +MobileIdentity_template& operator=(const OPTIONAL& other_value); +MobileIdentity_template& operator=(const MobileIdentity_template& other_value); +inline boolean match(const MobileIdentity& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MobileIdentity& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MobileIdentity valueof() const; +inline MobileIdentity_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& idDigit1(); +const BITSTRING_template& idDigit1() const; +BITSTRING_template& oddEvenInd(); +const BITSTRING_template& oddEvenInd() const; +BITSTRING_template& typeOfId(); +const BITSTRING_template& typeOfId() const; +OCTETSTRING_template& otherDigits(); +const OCTETSTRING_template& otherDigits() const; +Record_Template* create() const { return new MobileIdentity_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MS__Clsmk2 : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare1__1; + BITSTRING field_revLvl; + BITSTRING field_eSIND; + BITSTRING field_a5__1; + BITSTRING field_rFPwrCap; + BITSTRING field_spare1__2; + BITSTRING field_pSCap; + BITSTRING field_sSSI; + BITSTRING field_sMCap; + BITSTRING field_vBS; + BITSTRING field_vGCS; + BITSTRING field_fC; + BITSTRING field_cM3; + BITSTRING field_spare1__3; + BITSTRING field_lCSVA; + BITSTRING field_uCS2; + BITSTRING field_soLSA; + BITSTRING field_cMSP; + BITSTRING field_a5__3; + BITSTRING field_a5__2; + Base_Type* fld_vec[22]; + void init_vec(); +public: + MS__Clsmk2(); + MS__Clsmk2(const MS__Clsmk2& other_value); + MS__Clsmk2(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare1__1, + const BITSTRING& par_revLvl, + const BITSTRING& par_eSIND, + const BITSTRING& par_a5__1, + const BITSTRING& par_rFPwrCap, + const BITSTRING& par_spare1__2, + const BITSTRING& par_pSCap, + const BITSTRING& par_sSSI, + const BITSTRING& par_sMCap, + const BITSTRING& par_vBS, + const BITSTRING& par_vGCS, + const BITSTRING& par_fC, + const BITSTRING& par_cM3, + const BITSTRING& par_spare1__3, + const BITSTRING& par_lCSVA, + const BITSTRING& par_uCS2, + const BITSTRING& par_soLSA, + const BITSTRING& par_cMSP, + const BITSTRING& par_a5__3, + const BITSTRING& par_a5__2); +inline MS__Clsmk2& operator=(const MS__Clsmk2& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MS__Clsmk2& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MS__Clsmk2& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare1__1() + {return field_spare1__1;} + inline const BITSTRING& spare1__1() const + {return field_spare1__1;} + inline BITSTRING& revLvl() + {return field_revLvl;} + inline const BITSTRING& revLvl() const + {return field_revLvl;} + inline BITSTRING& eSIND() + {return field_eSIND;} + inline const BITSTRING& eSIND() const + {return field_eSIND;} + inline BITSTRING& a5__1() + {return field_a5__1;} + inline const BITSTRING& a5__1() const + {return field_a5__1;} + inline BITSTRING& rFPwrCap() + {return field_rFPwrCap;} + inline const BITSTRING& rFPwrCap() const + {return field_rFPwrCap;} + inline BITSTRING& spare1__2() + {return field_spare1__2;} + inline const BITSTRING& spare1__2() const + {return field_spare1__2;} + inline BITSTRING& pSCap() + {return field_pSCap;} + inline const BITSTRING& pSCap() const + {return field_pSCap;} + inline BITSTRING& sSSI() + {return field_sSSI;} + inline const BITSTRING& sSSI() const + {return field_sSSI;} + inline BITSTRING& sMCap() + {return field_sMCap;} + inline const BITSTRING& sMCap() const + {return field_sMCap;} + inline BITSTRING& vBS() + {return field_vBS;} + inline const BITSTRING& vBS() const + {return field_vBS;} + inline BITSTRING& vGCS() + {return field_vGCS;} + inline const BITSTRING& vGCS() const + {return field_vGCS;} + inline BITSTRING& fC() + {return field_fC;} + inline const BITSTRING& fC() const + {return field_fC;} + inline BITSTRING& cM3() + {return field_cM3;} + inline const BITSTRING& cM3() const + {return field_cM3;} + inline BITSTRING& spare1__3() + {return field_spare1__3;} + inline const BITSTRING& spare1__3() const + {return field_spare1__3;} + inline BITSTRING& lCSVA() + {return field_lCSVA;} + inline const BITSTRING& lCSVA() const + {return field_lCSVA;} + inline BITSTRING& uCS2() + {return field_uCS2;} + inline const BITSTRING& uCS2() const + {return field_uCS2;} + inline BITSTRING& soLSA() + {return field_soLSA;} + inline const BITSTRING& soLSA() const + {return field_soLSA;} + inline BITSTRING& cMSP() + {return field_cMSP;} + inline const BITSTRING& cMSP() const + {return field_cMSP;} + inline BITSTRING& a5__3() + {return field_a5__3;} + inline const BITSTRING& a5__3() const + {return field_a5__3;} + inline BITSTRING& a5__2() + {return field_a5__2;} + inline const BITSTRING& a5__2() const + {return field_a5__2;} +Base_Type* clone() const { return new MS__Clsmk2(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 22; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MS__Clsmk2_template : public Record_Template { +void set_specific(); +public: +MS__Clsmk2_template(): Record_Template() {} +MS__Clsmk2_template(template_sel other_value): Record_Template(other_value) {} +MS__Clsmk2_template(const MS__Clsmk2& other_value): Record_Template() { copy_value(&other_value); } +MS__Clsmk2_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MS__Clsmk2_template(MS__Clsmk2_template* p_precondition, MS__Clsmk2_template* p_implied_template); +MS__Clsmk2_template(Dynamic_Match_Interface* p_dyn_match); +MS__Clsmk2_template(const MS__Clsmk2_template& other_value): Record_Template() { copy_template(other_value); } +~MS__Clsmk2_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MS__Clsmk2_template& operator=(template_sel other_value); +MS__Clsmk2_template& operator=(const MS__Clsmk2& other_value); +MS__Clsmk2_template& operator=(const OPTIONAL& other_value); +MS__Clsmk2_template& operator=(const MS__Clsmk2_template& other_value); +inline boolean match(const MS__Clsmk2& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MS__Clsmk2& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MS__Clsmk2 valueof() const; +inline MS__Clsmk2_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare1__1(); +const BITSTRING_template& spare1__1() const; +BITSTRING_template& revLvl(); +const BITSTRING_template& revLvl() const; +BITSTRING_template& eSIND(); +const BITSTRING_template& eSIND() const; +BITSTRING_template& a5__1(); +const BITSTRING_template& a5__1() const; +BITSTRING_template& rFPwrCap(); +const BITSTRING_template& rFPwrCap() const; +BITSTRING_template& spare1__2(); +const BITSTRING_template& spare1__2() const; +BITSTRING_template& pSCap(); +const BITSTRING_template& pSCap() const; +BITSTRING_template& sSSI(); +const BITSTRING_template& sSSI() const; +BITSTRING_template& sMCap(); +const BITSTRING_template& sMCap() const; +BITSTRING_template& vBS(); +const BITSTRING_template& vBS() const; +BITSTRING_template& vGCS(); +const BITSTRING_template& vGCS() const; +BITSTRING_template& fC(); +const BITSTRING_template& fC() const; +BITSTRING_template& cM3(); +const BITSTRING_template& cM3() const; +BITSTRING_template& spare1__3(); +const BITSTRING_template& spare1__3() const; +BITSTRING_template& lCSVA(); +const BITSTRING_template& lCSVA() const; +BITSTRING_template& uCS2(); +const BITSTRING_template& uCS2() const; +BITSTRING_template& soLSA(); +const BITSTRING_template& soLSA() const; +BITSTRING_template& cMSP(); +const BITSTRING_template& cMSP() const; +BITSTRING_template& a5__3(); +const BITSTRING_template& a5__3() const; +BITSTRING_template& a5__2(); +const BITSTRING_template& a5__2() const; +Record_Template* create() const { return new MS__Clsmk2_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MS__Clsmk3 : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spareBit; + BITSTRING field_multibandSupported; + BITSTRING field_a5__7; + BITSTRING field_a5__6; + BITSTRING field_a5__5; + BITSTRING field_a5__4; + OPTIONAL field_associatedRadioCapabilty2; + OPTIONAL field_spareBits1; + OPTIONAL field_associatedRadioCapabilty1; + OPTIONAL field_maskBit1; + OPTIONAL field_rGSM__RadioCapability; + OPTIONAL field_maskBit2; + OPTIONAL field_multiSlotClass; + OPTIONAL field_uCS2Treatment; + OPTIONAL field_extMeasurementCapability; + OPTIONAL field_maskBit3; + OPTIONAL field_msMeasurementCapability; + OPTIONAL field_maskBit4; + OPTIONAL field_msPositioningMethod; + OPTIONAL field_maskBit5; + OPTIONAL field_eDGE__MultiSlot; + OPTIONAL field_maskBit6; + OPTIONAL field_psk8__Struct; + OPTIONAL field_maskBit7; + OPTIONAL field_gSM400BandsSupported; + OPTIONAL field_gSM400AssociatedRadioCapability; + OPTIONAL field_maskBit8; + OPTIONAL field_gSM850AssociatedRadiioCapability; + OPTIONAL field_maskBit9; + OPTIONAL field_pCS1900AssociatedRadiioCapability; + OPTIONAL field_uMTS__FDD__RAT__Capability; + OPTIONAL field_uMTS384TDD__RAT__Capability; + OPTIONAL field_cDMA2000__RAT__Capability; + OPTIONAL field_maskBit10; + OPTIONAL field_dTM__GPRS__MultiSlotSubclass; + OPTIONAL field_singleSlotDTM; + OPTIONAL field_maskBit11; + OPTIONAL field_dTM__EGPRS__MultiSlorSubclass; + OPTIONAL field_maskBit12; + OPTIONAL field_singleBandSupport; + OPTIONAL field_maskBit13; + OPTIONAL field_gSM700AssociatedRadioCapability; + OPTIONAL field_uMTS128TDD__RAT__Capability; + OPTIONAL field_gERANFeatPack1; + OPTIONAL field_mask14; + OPTIONAL field_extDTM__GPRS__MultiSlotSubclass; + OPTIONAL field_etxDTM__EGPRS__MultiSlotSubclass; + OPTIONAL field_mask15; + OPTIONAL field_highMultislotCap; + OPTIONAL field_spare2; + OPTIONAL field_gERANFeatPack2; + OPTIONAL field_gMSKMultislotPowerProfile; + OPTIONAL field_pSKMultislotPowerProfile; + OPTIONAL field_mask17; + OPTIONAL field_tGSM400BandsSupported; + OPTIONAL field_tGSM400AssocRadioCap; + OPTIONAL field_spare; + OPTIONAL field_dlAdvancedRxPerf; + OPTIONAL field_dTMEhancCap; + OPTIONAL field_mask19; + OPTIONAL field_dTMGPRSHighMultislotClass; + OPTIONAL field_offsetReq; + OPTIONAL field_mask20; + OPTIONAL field_dTMEGPRSHighMultislotClass; + OPTIONAL field_rptdACCHCap; + OPTIONAL field_mask21; + OPTIONAL field_gsm710AssocRadioCap; + OPTIONAL field_mask22; + OPTIONAL field_tgsm810AssocRadioCap; + OPTIONAL field_cipheringModeSettingCap; + OPTIONAL field_addPositionCap; + OPTIONAL field_eutraFDDSupport; + OPTIONAL field_eutraTDDSupport; + OPTIONAL field_eutraMeasAndReporting; + OPTIONAL field_priorityBasedReselection; + OPTIONAL field_utraCSGCellsReporting; + OPTIONAL field_vamosLevel; + OPTIONAL field_tighterCap; + OPTIONAL field_selectCipheringDLSACCH; + OPTIONAL field_csPS__SRVCC__G2U; + OPTIONAL field_csPS__SRVCC__G2E; + OPTIONAL field_geranNwkSharing; + OPTIONAL field_eutraWidebandRSRQMeas; + OPTIONAL field_erBandSupport; + OPTIONAL field_utraMultipleFreqBandInd; + OPTIONAL field_eutraMultipleFreqBandInd; + OPTIONAL field_xtdTSCSetCap; + OPTIONAL field_xtdEARFCNValueRange; + OPTIONAL field_spareBits2; + Base_Type* fld_vec[91]; + void init_vec(); +public: + MS__Clsmk3(); + MS__Clsmk3(const MS__Clsmk3& other_value); + MS__Clsmk3(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBit, + const BITSTRING& par_multibandSupported, + const BITSTRING& par_a5__7, + const BITSTRING& par_a5__6, + const BITSTRING& par_a5__5, + const BITSTRING& par_a5__4, + const OPTIONAL& par_associatedRadioCapabilty2, + const OPTIONAL& par_spareBits1, + const OPTIONAL& par_associatedRadioCapabilty1, + const OPTIONAL& par_maskBit1, + const OPTIONAL& par_rGSM__RadioCapability, + const OPTIONAL& par_maskBit2, + const OPTIONAL& par_multiSlotClass, + const OPTIONAL& par_uCS2Treatment, + const OPTIONAL& par_extMeasurementCapability, + const OPTIONAL& par_maskBit3, + const OPTIONAL& par_msMeasurementCapability, + const OPTIONAL& par_maskBit4, + const OPTIONAL& par_msPositioningMethod, + const OPTIONAL& par_maskBit5, + const OPTIONAL& par_eDGE__MultiSlot, + const OPTIONAL& par_maskBit6, + const OPTIONAL& par_psk8__Struct, + const OPTIONAL& par_maskBit7, + const OPTIONAL& par_gSM400BandsSupported, + const OPTIONAL& par_gSM400AssociatedRadioCapability, + const OPTIONAL& par_maskBit8, + const OPTIONAL& par_gSM850AssociatedRadiioCapability, + const OPTIONAL& par_maskBit9, + const OPTIONAL& par_pCS1900AssociatedRadiioCapability, + const OPTIONAL& par_uMTS__FDD__RAT__Capability, + const OPTIONAL& par_uMTS384TDD__RAT__Capability, + const OPTIONAL& par_cDMA2000__RAT__Capability, + const OPTIONAL& par_maskBit10, + const OPTIONAL& par_dTM__GPRS__MultiSlotSubclass, + const OPTIONAL& par_singleSlotDTM, + const OPTIONAL& par_maskBit11, + const OPTIONAL& par_dTM__EGPRS__MultiSlorSubclass, + const OPTIONAL& par_maskBit12, + const OPTIONAL& par_singleBandSupport, + const OPTIONAL& par_maskBit13, + const OPTIONAL& par_gSM700AssociatedRadioCapability, + const OPTIONAL& par_uMTS128TDD__RAT__Capability, + const OPTIONAL& par_gERANFeatPack1, + const OPTIONAL& par_mask14, + const OPTIONAL& par_extDTM__GPRS__MultiSlotSubclass, + const OPTIONAL& par_etxDTM__EGPRS__MultiSlotSubclass, + const OPTIONAL& par_mask15, + const OPTIONAL& par_highMultislotCap, + const OPTIONAL& par_spare2, + const OPTIONAL& par_gERANFeatPack2, + const OPTIONAL& par_gMSKMultislotPowerProfile, + const OPTIONAL& par_pSKMultislotPowerProfile, + const OPTIONAL& par_mask17, + const OPTIONAL& par_tGSM400BandsSupported, + const OPTIONAL& par_tGSM400AssocRadioCap, + const OPTIONAL& par_spare, + const OPTIONAL& par_dlAdvancedRxPerf, + const OPTIONAL& par_dTMEhancCap, + const OPTIONAL& par_mask19, + const OPTIONAL& par_dTMGPRSHighMultislotClass, + const OPTIONAL& par_offsetReq, + const OPTIONAL& par_mask20, + const OPTIONAL& par_dTMEGPRSHighMultislotClass, + const OPTIONAL& par_rptdACCHCap, + const OPTIONAL& par_mask21, + const OPTIONAL& par_gsm710AssocRadioCap, + const OPTIONAL& par_mask22, + const OPTIONAL& par_tgsm810AssocRadioCap, + const OPTIONAL& par_cipheringModeSettingCap, + const OPTIONAL& par_addPositionCap, + const OPTIONAL& par_eutraFDDSupport, + const OPTIONAL& par_eutraTDDSupport, + const OPTIONAL& par_eutraMeasAndReporting, + const OPTIONAL& par_priorityBasedReselection, + const OPTIONAL& par_utraCSGCellsReporting, + const OPTIONAL& par_vamosLevel, + const OPTIONAL& par_tighterCap, + const OPTIONAL& par_selectCipheringDLSACCH, + const OPTIONAL& par_csPS__SRVCC__G2U, + const OPTIONAL& par_csPS__SRVCC__G2E, + const OPTIONAL& par_geranNwkSharing, + const OPTIONAL& par_eutraWidebandRSRQMeas, + const OPTIONAL& par_erBandSupport, + const OPTIONAL& par_utraMultipleFreqBandInd, + const OPTIONAL& par_eutraMultipleFreqBandInd, + const OPTIONAL& par_xtdTSCSetCap, + const OPTIONAL& par_xtdEARFCNValueRange, + const OPTIONAL& par_spareBits2); +inline MS__Clsmk3& operator=(const MS__Clsmk3& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MS__Clsmk3& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MS__Clsmk3& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spareBit() + {return field_spareBit;} + inline const BITSTRING& spareBit() const + {return field_spareBit;} + inline BITSTRING& multibandSupported() + {return field_multibandSupported;} + inline const BITSTRING& multibandSupported() const + {return field_multibandSupported;} + inline BITSTRING& a5__7() + {return field_a5__7;} + inline const BITSTRING& a5__7() const + {return field_a5__7;} + inline BITSTRING& a5__6() + {return field_a5__6;} + inline const BITSTRING& a5__6() const + {return field_a5__6;} + inline BITSTRING& a5__5() + {return field_a5__5;} + inline const BITSTRING& a5__5() const + {return field_a5__5;} + inline BITSTRING& a5__4() + {return field_a5__4;} + inline const BITSTRING& a5__4() const + {return field_a5__4;} + inline OPTIONAL& associatedRadioCapabilty2() + {return field_associatedRadioCapabilty2;} + inline const OPTIONAL& associatedRadioCapabilty2() const + {return field_associatedRadioCapabilty2;} + inline OPTIONAL& spareBits1() + {return field_spareBits1;} + inline const OPTIONAL& spareBits1() const + {return field_spareBits1;} + inline OPTIONAL& associatedRadioCapabilty1() + {return field_associatedRadioCapabilty1;} + inline const OPTIONAL& associatedRadioCapabilty1() const + {return field_associatedRadioCapabilty1;} + inline OPTIONAL& maskBit1() + {return field_maskBit1;} + inline const OPTIONAL& maskBit1() const + {return field_maskBit1;} + inline OPTIONAL& rGSM__RadioCapability() + {return field_rGSM__RadioCapability;} + inline const OPTIONAL& rGSM__RadioCapability() const + {return field_rGSM__RadioCapability;} + inline OPTIONAL& maskBit2() + {return field_maskBit2;} + inline const OPTIONAL& maskBit2() const + {return field_maskBit2;} + inline OPTIONAL& multiSlotClass() + {return field_multiSlotClass;} + inline const OPTIONAL& multiSlotClass() const + {return field_multiSlotClass;} + inline OPTIONAL& uCS2Treatment() + {return field_uCS2Treatment;} + inline const OPTIONAL& uCS2Treatment() const + {return field_uCS2Treatment;} + inline OPTIONAL& extMeasurementCapability() + {return field_extMeasurementCapability;} + inline const OPTIONAL& extMeasurementCapability() const + {return field_extMeasurementCapability;} + inline OPTIONAL& maskBit3() + {return field_maskBit3;} + inline const OPTIONAL& maskBit3() const + {return field_maskBit3;} + inline OPTIONAL& msMeasurementCapability() + {return field_msMeasurementCapability;} + inline const OPTIONAL& msMeasurementCapability() const + {return field_msMeasurementCapability;} + inline OPTIONAL& maskBit4() + {return field_maskBit4;} + inline const OPTIONAL& maskBit4() const + {return field_maskBit4;} + inline OPTIONAL& msPositioningMethod() + {return field_msPositioningMethod;} + inline const OPTIONAL& msPositioningMethod() const + {return field_msPositioningMethod;} + inline OPTIONAL& maskBit5() + {return field_maskBit5;} + inline const OPTIONAL& maskBit5() const + {return field_maskBit5;} + inline OPTIONAL& eDGE__MultiSlot() + {return field_eDGE__MultiSlot;} + inline const OPTIONAL& eDGE__MultiSlot() const + {return field_eDGE__MultiSlot;} + inline OPTIONAL& maskBit6() + {return field_maskBit6;} + inline const OPTIONAL& maskBit6() const + {return field_maskBit6;} + inline OPTIONAL& psk8__Struct() + {return field_psk8__Struct;} + inline const OPTIONAL& psk8__Struct() const + {return field_psk8__Struct;} + inline OPTIONAL& maskBit7() + {return field_maskBit7;} + inline const OPTIONAL& maskBit7() const + {return field_maskBit7;} + inline OPTIONAL& gSM400BandsSupported() + {return field_gSM400BandsSupported;} + inline const OPTIONAL& gSM400BandsSupported() const + {return field_gSM400BandsSupported;} + inline OPTIONAL& gSM400AssociatedRadioCapability() + {return field_gSM400AssociatedRadioCapability;} + inline const OPTIONAL& gSM400AssociatedRadioCapability() const + {return field_gSM400AssociatedRadioCapability;} + inline OPTIONAL& maskBit8() + {return field_maskBit8;} + inline const OPTIONAL& maskBit8() const + {return field_maskBit8;} + inline OPTIONAL& gSM850AssociatedRadiioCapability() + {return field_gSM850AssociatedRadiioCapability;} + inline const OPTIONAL& gSM850AssociatedRadiioCapability() const + {return field_gSM850AssociatedRadiioCapability;} + inline OPTIONAL& maskBit9() + {return field_maskBit9;} + inline const OPTIONAL& maskBit9() const + {return field_maskBit9;} + inline OPTIONAL& pCS1900AssociatedRadiioCapability() + {return field_pCS1900AssociatedRadiioCapability;} + inline const OPTIONAL& pCS1900AssociatedRadiioCapability() const + {return field_pCS1900AssociatedRadiioCapability;} + inline OPTIONAL& uMTS__FDD__RAT__Capability() + {return field_uMTS__FDD__RAT__Capability;} + inline const OPTIONAL& uMTS__FDD__RAT__Capability() const + {return field_uMTS__FDD__RAT__Capability;} + inline OPTIONAL& uMTS384TDD__RAT__Capability() + {return field_uMTS384TDD__RAT__Capability;} + inline const OPTIONAL& uMTS384TDD__RAT__Capability() const + {return field_uMTS384TDD__RAT__Capability;} + inline OPTIONAL& cDMA2000__RAT__Capability() + {return field_cDMA2000__RAT__Capability;} + inline const OPTIONAL& cDMA2000__RAT__Capability() const + {return field_cDMA2000__RAT__Capability;} + inline OPTIONAL& maskBit10() + {return field_maskBit10;} + inline const OPTIONAL& maskBit10() const + {return field_maskBit10;} + inline OPTIONAL& dTM__GPRS__MultiSlotSubclass() + {return field_dTM__GPRS__MultiSlotSubclass;} + inline const OPTIONAL& dTM__GPRS__MultiSlotSubclass() const + {return field_dTM__GPRS__MultiSlotSubclass;} + inline OPTIONAL& singleSlotDTM() + {return field_singleSlotDTM;} + inline const OPTIONAL& singleSlotDTM() const + {return field_singleSlotDTM;} + inline OPTIONAL& maskBit11() + {return field_maskBit11;} + inline const OPTIONAL& maskBit11() const + {return field_maskBit11;} + inline OPTIONAL& dTM__EGPRS__MultiSlorSubclass() + {return field_dTM__EGPRS__MultiSlorSubclass;} + inline const OPTIONAL& dTM__EGPRS__MultiSlorSubclass() const + {return field_dTM__EGPRS__MultiSlorSubclass;} + inline OPTIONAL& maskBit12() + {return field_maskBit12;} + inline const OPTIONAL& maskBit12() const + {return field_maskBit12;} + inline OPTIONAL& singleBandSupport() + {return field_singleBandSupport;} + inline const OPTIONAL& singleBandSupport() const + {return field_singleBandSupport;} + inline OPTIONAL& maskBit13() + {return field_maskBit13;} + inline const OPTIONAL& maskBit13() const + {return field_maskBit13;} + inline OPTIONAL& gSM700AssociatedRadioCapability() + {return field_gSM700AssociatedRadioCapability;} + inline const OPTIONAL& gSM700AssociatedRadioCapability() const + {return field_gSM700AssociatedRadioCapability;} + inline OPTIONAL& uMTS128TDD__RAT__Capability() + {return field_uMTS128TDD__RAT__Capability;} + inline const OPTIONAL& uMTS128TDD__RAT__Capability() const + {return field_uMTS128TDD__RAT__Capability;} + inline OPTIONAL& gERANFeatPack1() + {return field_gERANFeatPack1;} + inline const OPTIONAL& gERANFeatPack1() const + {return field_gERANFeatPack1;} + inline OPTIONAL& mask14() + {return field_mask14;} + inline const OPTIONAL& mask14() const + {return field_mask14;} + inline OPTIONAL& extDTM__GPRS__MultiSlotSubclass() + {return field_extDTM__GPRS__MultiSlotSubclass;} + inline const OPTIONAL& extDTM__GPRS__MultiSlotSubclass() const + {return field_extDTM__GPRS__MultiSlotSubclass;} + inline OPTIONAL& etxDTM__EGPRS__MultiSlotSubclass() + {return field_etxDTM__EGPRS__MultiSlotSubclass;} + inline const OPTIONAL& etxDTM__EGPRS__MultiSlotSubclass() const + {return field_etxDTM__EGPRS__MultiSlotSubclass;} + inline OPTIONAL& mask15() + {return field_mask15;} + inline const OPTIONAL& mask15() const + {return field_mask15;} + inline OPTIONAL& highMultislotCap() + {return field_highMultislotCap;} + inline const OPTIONAL& highMultislotCap() const + {return field_highMultislotCap;} + inline OPTIONAL& spare2() + {return field_spare2;} + inline const OPTIONAL& spare2() const + {return field_spare2;} + inline OPTIONAL& gERANFeatPack2() + {return field_gERANFeatPack2;} + inline const OPTIONAL& gERANFeatPack2() const + {return field_gERANFeatPack2;} + inline OPTIONAL& gMSKMultislotPowerProfile() + {return field_gMSKMultislotPowerProfile;} + inline const OPTIONAL& gMSKMultislotPowerProfile() const + {return field_gMSKMultislotPowerProfile;} + inline OPTIONAL& pSKMultislotPowerProfile() + {return field_pSKMultislotPowerProfile;} + inline const OPTIONAL& pSKMultislotPowerProfile() const + {return field_pSKMultislotPowerProfile;} + inline OPTIONAL& mask17() + {return field_mask17;} + inline const OPTIONAL& mask17() const + {return field_mask17;} + inline OPTIONAL& tGSM400BandsSupported() + {return field_tGSM400BandsSupported;} + inline const OPTIONAL& tGSM400BandsSupported() const + {return field_tGSM400BandsSupported;} + inline OPTIONAL& tGSM400AssocRadioCap() + {return field_tGSM400AssocRadioCap;} + inline const OPTIONAL& tGSM400AssocRadioCap() const + {return field_tGSM400AssocRadioCap;} + inline OPTIONAL& spare() + {return field_spare;} + inline const OPTIONAL& spare() const + {return field_spare;} + inline OPTIONAL& dlAdvancedRxPerf() + {return field_dlAdvancedRxPerf;} + inline const OPTIONAL& dlAdvancedRxPerf() const + {return field_dlAdvancedRxPerf;} + inline OPTIONAL& dTMEhancCap() + {return field_dTMEhancCap;} + inline const OPTIONAL& dTMEhancCap() const + {return field_dTMEhancCap;} + inline OPTIONAL& mask19() + {return field_mask19;} + inline const OPTIONAL& mask19() const + {return field_mask19;} + inline OPTIONAL& dTMGPRSHighMultislotClass() + {return field_dTMGPRSHighMultislotClass;} + inline const OPTIONAL& dTMGPRSHighMultislotClass() const + {return field_dTMGPRSHighMultislotClass;} + inline OPTIONAL& offsetReq() + {return field_offsetReq;} + inline const OPTIONAL& offsetReq() const + {return field_offsetReq;} + inline OPTIONAL& mask20() + {return field_mask20;} + inline const OPTIONAL& mask20() const + {return field_mask20;} + inline OPTIONAL& dTMEGPRSHighMultislotClass() + {return field_dTMEGPRSHighMultislotClass;} + inline const OPTIONAL& dTMEGPRSHighMultislotClass() const + {return field_dTMEGPRSHighMultislotClass;} + inline OPTIONAL& rptdACCHCap() + {return field_rptdACCHCap;} + inline const OPTIONAL& rptdACCHCap() const + {return field_rptdACCHCap;} + inline OPTIONAL& mask21() + {return field_mask21;} + inline const OPTIONAL& mask21() const + {return field_mask21;} + inline OPTIONAL& gsm710AssocRadioCap() + {return field_gsm710AssocRadioCap;} + inline const OPTIONAL& gsm710AssocRadioCap() const + {return field_gsm710AssocRadioCap;} + inline OPTIONAL& mask22() + {return field_mask22;} + inline const OPTIONAL& mask22() const + {return field_mask22;} + inline OPTIONAL& tgsm810AssocRadioCap() + {return field_tgsm810AssocRadioCap;} + inline const OPTIONAL& tgsm810AssocRadioCap() const + {return field_tgsm810AssocRadioCap;} + inline OPTIONAL& cipheringModeSettingCap() + {return field_cipheringModeSettingCap;} + inline const OPTIONAL& cipheringModeSettingCap() const + {return field_cipheringModeSettingCap;} + inline OPTIONAL& addPositionCap() + {return field_addPositionCap;} + inline const OPTIONAL& addPositionCap() const + {return field_addPositionCap;} + inline OPTIONAL& eutraFDDSupport() + {return field_eutraFDDSupport;} + inline const OPTIONAL& eutraFDDSupport() const + {return field_eutraFDDSupport;} + inline OPTIONAL& eutraTDDSupport() + {return field_eutraTDDSupport;} + inline const OPTIONAL& eutraTDDSupport() const + {return field_eutraTDDSupport;} + inline OPTIONAL& eutraMeasAndReporting() + {return field_eutraMeasAndReporting;} + inline const OPTIONAL& eutraMeasAndReporting() const + {return field_eutraMeasAndReporting;} + inline OPTIONAL& priorityBasedReselection() + {return field_priorityBasedReselection;} + inline const OPTIONAL& priorityBasedReselection() const + {return field_priorityBasedReselection;} + inline OPTIONAL& utraCSGCellsReporting() + {return field_utraCSGCellsReporting;} + inline const OPTIONAL& utraCSGCellsReporting() const + {return field_utraCSGCellsReporting;} + inline OPTIONAL& vamosLevel() + {return field_vamosLevel;} + inline const OPTIONAL& vamosLevel() const + {return field_vamosLevel;} + inline OPTIONAL& tighterCap() + {return field_tighterCap;} + inline const OPTIONAL& tighterCap() const + {return field_tighterCap;} + inline OPTIONAL& selectCipheringDLSACCH() + {return field_selectCipheringDLSACCH;} + inline const OPTIONAL& selectCipheringDLSACCH() const + {return field_selectCipheringDLSACCH;} + inline OPTIONAL& csPS__SRVCC__G2U() + {return field_csPS__SRVCC__G2U;} + inline const OPTIONAL& csPS__SRVCC__G2U() const + {return field_csPS__SRVCC__G2U;} + inline OPTIONAL& csPS__SRVCC__G2E() + {return field_csPS__SRVCC__G2E;} + inline const OPTIONAL& csPS__SRVCC__G2E() const + {return field_csPS__SRVCC__G2E;} + inline OPTIONAL& geranNwkSharing() + {return field_geranNwkSharing;} + inline const OPTIONAL& geranNwkSharing() const + {return field_geranNwkSharing;} + inline OPTIONAL& eutraWidebandRSRQMeas() + {return field_eutraWidebandRSRQMeas;} + inline const OPTIONAL& eutraWidebandRSRQMeas() const + {return field_eutraWidebandRSRQMeas;} + inline OPTIONAL& erBandSupport() + {return field_erBandSupport;} + inline const OPTIONAL& erBandSupport() const + {return field_erBandSupport;} + inline OPTIONAL& utraMultipleFreqBandInd() + {return field_utraMultipleFreqBandInd;} + inline const OPTIONAL& utraMultipleFreqBandInd() const + {return field_utraMultipleFreqBandInd;} + inline OPTIONAL& eutraMultipleFreqBandInd() + {return field_eutraMultipleFreqBandInd;} + inline const OPTIONAL& eutraMultipleFreqBandInd() const + {return field_eutraMultipleFreqBandInd;} + inline OPTIONAL& xtdTSCSetCap() + {return field_xtdTSCSetCap;} + inline const OPTIONAL& xtdTSCSetCap() const + {return field_xtdTSCSetCap;} + inline OPTIONAL& xtdEARFCNValueRange() + {return field_xtdEARFCNValueRange;} + inline const OPTIONAL& xtdEARFCNValueRange() const + {return field_xtdEARFCNValueRange;} + inline OPTIONAL& spareBits2() + {return field_spareBits2;} + inline const OPTIONAL& spareBits2() const + {return field_spareBits2;} +Base_Type* clone() const { return new MS__Clsmk3(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 91; } +int optional_count() const { return 85; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MS__Clsmk3_template : public Record_Template { +void set_specific(); +public: +MS__Clsmk3_template(): Record_Template() {} +MS__Clsmk3_template(template_sel other_value): Record_Template(other_value) {} +MS__Clsmk3_template(const MS__Clsmk3& other_value): Record_Template() { copy_value(&other_value); } +MS__Clsmk3_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MS__Clsmk3_template(MS__Clsmk3_template* p_precondition, MS__Clsmk3_template* p_implied_template); +MS__Clsmk3_template(Dynamic_Match_Interface* p_dyn_match); +MS__Clsmk3_template(const MS__Clsmk3_template& other_value): Record_Template() { copy_template(other_value); } +~MS__Clsmk3_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MS__Clsmk3_template& operator=(template_sel other_value); +MS__Clsmk3_template& operator=(const MS__Clsmk3& other_value); +MS__Clsmk3_template& operator=(const OPTIONAL& other_value); +MS__Clsmk3_template& operator=(const MS__Clsmk3_template& other_value); +inline boolean match(const MS__Clsmk3& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MS__Clsmk3& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MS__Clsmk3 valueof() const; +inline MS__Clsmk3_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spareBit(); +const BITSTRING_template& spareBit() const; +BITSTRING_template& multibandSupported(); +const BITSTRING_template& multibandSupported() const; +BITSTRING_template& a5__7(); +const BITSTRING_template& a5__7() const; +BITSTRING_template& a5__6(); +const BITSTRING_template& a5__6() const; +BITSTRING_template& a5__5(); +const BITSTRING_template& a5__5() const; +BITSTRING_template& a5__4(); +const BITSTRING_template& a5__4() const; +BITSTRING_template& associatedRadioCapabilty2(); +const BITSTRING_template& associatedRadioCapabilty2() const; +BITSTRING_template& spareBits1(); +const BITSTRING_template& spareBits1() const; +BITSTRING_template& associatedRadioCapabilty1(); +const BITSTRING_template& associatedRadioCapabilty1() const; +BITSTRING_template& maskBit1(); +const BITSTRING_template& maskBit1() const; +BITSTRING_template& rGSM__RadioCapability(); +const BITSTRING_template& rGSM__RadioCapability() const; +BITSTRING_template& maskBit2(); +const BITSTRING_template& maskBit2() const; +BITSTRING_template& multiSlotClass(); +const BITSTRING_template& multiSlotClass() const; +BITSTRING_template& uCS2Treatment(); +const BITSTRING_template& uCS2Treatment() const; +BITSTRING_template& extMeasurementCapability(); +const BITSTRING_template& extMeasurementCapability() const; +BITSTRING_template& maskBit3(); +const BITSTRING_template& maskBit3() const; +MS__MeasCapability_template& msMeasurementCapability(); +const MS__MeasCapability_template& msMeasurementCapability() const; +BITSTRING_template& maskBit4(); +const BITSTRING_template& maskBit4() const; +BITSTRING_template& msPositioningMethod(); +const BITSTRING_template& msPositioningMethod() const; +BITSTRING_template& maskBit5(); +const BITSTRING_template& maskBit5() const; +BITSTRING_template& eDGE__MultiSlot(); +const BITSTRING_template& eDGE__MultiSlot() const; +BITSTRING_template& maskBit6(); +const BITSTRING_template& maskBit6() const; +EDGE__Struct_template& psk8__Struct(); +const EDGE__Struct_template& psk8__Struct() const; +BITSTRING_template& maskBit7(); +const BITSTRING_template& maskBit7() const; +BITSTRING_template& gSM400BandsSupported(); +const BITSTRING_template& gSM400BandsSupported() const; +BITSTRING_template& gSM400AssociatedRadioCapability(); +const BITSTRING_template& gSM400AssociatedRadioCapability() const; +BITSTRING_template& maskBit8(); +const BITSTRING_template& maskBit8() const; +BITSTRING_template& gSM850AssociatedRadiioCapability(); +const BITSTRING_template& gSM850AssociatedRadiioCapability() const; +BITSTRING_template& maskBit9(); +const BITSTRING_template& maskBit9() const; +BITSTRING_template& pCS1900AssociatedRadiioCapability(); +const BITSTRING_template& pCS1900AssociatedRadiioCapability() const; +BITSTRING_template& uMTS__FDD__RAT__Capability(); +const BITSTRING_template& uMTS__FDD__RAT__Capability() const; +BITSTRING_template& uMTS384TDD__RAT__Capability(); +const BITSTRING_template& uMTS384TDD__RAT__Capability() const; +BITSTRING_template& cDMA2000__RAT__Capability(); +const BITSTRING_template& cDMA2000__RAT__Capability() const; +BITSTRING_template& maskBit10(); +const BITSTRING_template& maskBit10() const; +BITSTRING_template& dTM__GPRS__MultiSlotSubclass(); +const BITSTRING_template& dTM__GPRS__MultiSlotSubclass() const; +BITSTRING_template& singleSlotDTM(); +const BITSTRING_template& singleSlotDTM() const; +BITSTRING_template& maskBit11(); +const BITSTRING_template& maskBit11() const; +BITSTRING_template& dTM__EGPRS__MultiSlorSubclass(); +const BITSTRING_template& dTM__EGPRS__MultiSlorSubclass() const; +BITSTRING_template& maskBit12(); +const BITSTRING_template& maskBit12() const; +BITSTRING_template& singleBandSupport(); +const BITSTRING_template& singleBandSupport() const; +BITSTRING_template& maskBit13(); +const BITSTRING_template& maskBit13() const; +BITSTRING_template& gSM700AssociatedRadioCapability(); +const BITSTRING_template& gSM700AssociatedRadioCapability() const; +BITSTRING_template& uMTS128TDD__RAT__Capability(); +const BITSTRING_template& uMTS128TDD__RAT__Capability() const; +BITSTRING_template& gERANFeatPack1(); +const BITSTRING_template& gERANFeatPack1() const; +BITSTRING_template& mask14(); +const BITSTRING_template& mask14() const; +BITSTRING_template& extDTM__GPRS__MultiSlotSubclass(); +const BITSTRING_template& extDTM__GPRS__MultiSlotSubclass() const; +BITSTRING_template& etxDTM__EGPRS__MultiSlotSubclass(); +const BITSTRING_template& etxDTM__EGPRS__MultiSlotSubclass() const; +BITSTRING_template& mask15(); +const BITSTRING_template& mask15() const; +BITSTRING_template& highMultislotCap(); +const BITSTRING_template& highMultislotCap() const; +BITSTRING_template& spare2(); +const BITSTRING_template& spare2() const; +BITSTRING_template& gERANFeatPack2(); +const BITSTRING_template& gERANFeatPack2() const; +BITSTRING_template& gMSKMultislotPowerProfile(); +const BITSTRING_template& gMSKMultislotPowerProfile() const; +BITSTRING_template& pSKMultislotPowerProfile(); +const BITSTRING_template& pSKMultislotPowerProfile() const; +BITSTRING_template& mask17(); +const BITSTRING_template& mask17() const; +BITSTRING_template& tGSM400BandsSupported(); +const BITSTRING_template& tGSM400BandsSupported() const; +BITSTRING_template& tGSM400AssocRadioCap(); +const BITSTRING_template& tGSM400AssocRadioCap() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& dlAdvancedRxPerf(); +const BITSTRING_template& dlAdvancedRxPerf() const; +BITSTRING_template& dTMEhancCap(); +const BITSTRING_template& dTMEhancCap() const; +BITSTRING_template& mask19(); +const BITSTRING_template& mask19() const; +BITSTRING_template& dTMGPRSHighMultislotClass(); +const BITSTRING_template& dTMGPRSHighMultislotClass() const; +BITSTRING_template& offsetReq(); +const BITSTRING_template& offsetReq() const; +BITSTRING_template& mask20(); +const BITSTRING_template& mask20() const; +BITSTRING_template& dTMEGPRSHighMultislotClass(); +const BITSTRING_template& dTMEGPRSHighMultislotClass() const; +BITSTRING_template& rptdACCHCap(); +const BITSTRING_template& rptdACCHCap() const; +BITSTRING_template& mask21(); +const BITSTRING_template& mask21() const; +BITSTRING_template& gsm710AssocRadioCap(); +const BITSTRING_template& gsm710AssocRadioCap() const; +BITSTRING_template& mask22(); +const BITSTRING_template& mask22() const; +BITSTRING_template& tgsm810AssocRadioCap(); +const BITSTRING_template& tgsm810AssocRadioCap() const; +BITSTRING_template& cipheringModeSettingCap(); +const BITSTRING_template& cipheringModeSettingCap() const; +BITSTRING_template& addPositionCap(); +const BITSTRING_template& addPositionCap() const; +BITSTRING_template& eutraFDDSupport(); +const BITSTRING_template& eutraFDDSupport() const; +BITSTRING_template& eutraTDDSupport(); +const BITSTRING_template& eutraTDDSupport() const; +BITSTRING_template& eutraMeasAndReporting(); +const BITSTRING_template& eutraMeasAndReporting() const; +BITSTRING_template& priorityBasedReselection(); +const BITSTRING_template& priorityBasedReselection() const; +BITSTRING_template& utraCSGCellsReporting(); +const BITSTRING_template& utraCSGCellsReporting() const; +BITSTRING_template& vamosLevel(); +const BITSTRING_template& vamosLevel() const; +BITSTRING_template& tighterCap(); +const BITSTRING_template& tighterCap() const; +BITSTRING_template& selectCipheringDLSACCH(); +const BITSTRING_template& selectCipheringDLSACCH() const; +BITSTRING_template& csPS__SRVCC__G2U(); +const BITSTRING_template& csPS__SRVCC__G2U() const; +BITSTRING_template& csPS__SRVCC__G2E(); +const BITSTRING_template& csPS__SRVCC__G2E() const; +BITSTRING_template& geranNwkSharing(); +const BITSTRING_template& geranNwkSharing() const; +BITSTRING_template& eutraWidebandRSRQMeas(); +const BITSTRING_template& eutraWidebandRSRQMeas() const; +BITSTRING_template& erBandSupport(); +const BITSTRING_template& erBandSupport() const; +BITSTRING_template& utraMultipleFreqBandInd(); +const BITSTRING_template& utraMultipleFreqBandInd() const; +BITSTRING_template& eutraMultipleFreqBandInd(); +const BITSTRING_template& eutraMultipleFreqBandInd() const; +BITSTRING_template& xtdTSCSetCap(); +const BITSTRING_template& xtdTSCSetCap() const; +BITSTRING_template& xtdEARFCNValueRange(); +const BITSTRING_template& xtdEARFCNValueRange() const; +BITSTRING_template& spareBits2(); +const BITSTRING_template& spareBits2() const; +Record_Template* create() const { return new MS__Clsmk3_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MS__MeasCapability : public Record_Type { + BITSTRING field_sMS__VALUE; + BITSTRING field_sM__VALUE; + Base_Type* fld_vec[2]; + void init_vec(); +public: + MS__MeasCapability(); + MS__MeasCapability(const MS__MeasCapability& other_value); + MS__MeasCapability(const BITSTRING& par_sMS__VALUE, + const BITSTRING& par_sM__VALUE); +inline MS__MeasCapability& operator=(const MS__MeasCapability& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MS__MeasCapability& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MS__MeasCapability& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& sMS__VALUE() + {return field_sMS__VALUE;} + inline const BITSTRING& sMS__VALUE() const + {return field_sMS__VALUE;} + inline BITSTRING& sM__VALUE() + {return field_sM__VALUE;} + inline const BITSTRING& sM__VALUE() const + {return field_sM__VALUE;} +Base_Type* clone() const { return new MS__MeasCapability(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MS__MeasCapability_template : public Record_Template { +void set_specific(); +public: +MS__MeasCapability_template(): Record_Template() {} +MS__MeasCapability_template(template_sel other_value): Record_Template(other_value) {} +MS__MeasCapability_template(const MS__MeasCapability& other_value): Record_Template() { copy_value(&other_value); } +MS__MeasCapability_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MS__MeasCapability_template(MS__MeasCapability_template* p_precondition, MS__MeasCapability_template* p_implied_template); +MS__MeasCapability_template(Dynamic_Match_Interface* p_dyn_match); +MS__MeasCapability_template(const MS__MeasCapability_template& other_value): Record_Template() { copy_template(other_value); } +~MS__MeasCapability_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MS__MeasCapability_template& operator=(template_sel other_value); +MS__MeasCapability_template& operator=(const MS__MeasCapability& other_value); +MS__MeasCapability_template& operator=(const OPTIONAL& other_value); +MS__MeasCapability_template& operator=(const MS__MeasCapability_template& other_value); +inline boolean match(const MS__MeasCapability& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MS__MeasCapability& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MS__MeasCapability valueof() const; +inline MS__MeasCapability_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& sMS__VALUE(); +const BITSTRING_template& sMS__VALUE() const; +BITSTRING_template& sM__VALUE(); +const BITSTRING_template& sM__VALUE() const; +Record_Template* create() const { return new MS__MeasCapability_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EDGE__Struct : public Record_Type { + BITSTRING field_modulationCapability; + BITSTRING field_pwrMask1; + OPTIONAL field_eDGE__RF__PowerCapability1; + BITSTRING field_pwrMask2; + OPTIONAL field_eDGE__RF__PowerCapability2; + Base_Type* fld_vec[5]; + void init_vec(); +public: + EDGE__Struct(); + EDGE__Struct(const EDGE__Struct& other_value); + EDGE__Struct(const BITSTRING& par_modulationCapability, + const BITSTRING& par_pwrMask1, + const OPTIONAL& par_eDGE__RF__PowerCapability1, + const BITSTRING& par_pwrMask2, + const OPTIONAL& par_eDGE__RF__PowerCapability2); +inline EDGE__Struct& operator=(const EDGE__Struct& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EDGE__Struct& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EDGE__Struct& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& modulationCapability() + {return field_modulationCapability;} + inline const BITSTRING& modulationCapability() const + {return field_modulationCapability;} + inline BITSTRING& pwrMask1() + {return field_pwrMask1;} + inline const BITSTRING& pwrMask1() const + {return field_pwrMask1;} + inline OPTIONAL& eDGE__RF__PowerCapability1() + {return field_eDGE__RF__PowerCapability1;} + inline const OPTIONAL& eDGE__RF__PowerCapability1() const + {return field_eDGE__RF__PowerCapability1;} + inline BITSTRING& pwrMask2() + {return field_pwrMask2;} + inline const BITSTRING& pwrMask2() const + {return field_pwrMask2;} + inline OPTIONAL& eDGE__RF__PowerCapability2() + {return field_eDGE__RF__PowerCapability2;} + inline const OPTIONAL& eDGE__RF__PowerCapability2() const + {return field_eDGE__RF__PowerCapability2;} +Base_Type* clone() const { return new EDGE__Struct(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EDGE__Struct_template : public Record_Template { +void set_specific(); +public: +EDGE__Struct_template(): Record_Template() {} +EDGE__Struct_template(template_sel other_value): Record_Template(other_value) {} +EDGE__Struct_template(const EDGE__Struct& other_value): Record_Template() { copy_value(&other_value); } +EDGE__Struct_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EDGE__Struct_template(EDGE__Struct_template* p_precondition, EDGE__Struct_template* p_implied_template); +EDGE__Struct_template(Dynamic_Match_Interface* p_dyn_match); +EDGE__Struct_template(const EDGE__Struct_template& other_value): Record_Template() { copy_template(other_value); } +~EDGE__Struct_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EDGE__Struct_template& operator=(template_sel other_value); +EDGE__Struct_template& operator=(const EDGE__Struct& other_value); +EDGE__Struct_template& operator=(const OPTIONAL& other_value); +EDGE__Struct_template& operator=(const EDGE__Struct_template& other_value); +inline boolean match(const EDGE__Struct& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EDGE__Struct& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EDGE__Struct valueof() const; +inline EDGE__Struct_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& modulationCapability(); +const BITSTRING_template& modulationCapability() const; +BITSTRING_template& pwrMask1(); +const BITSTRING_template& pwrMask1() const; +BITSTRING_template& eDGE__RF__PowerCapability1(); +const BITSTRING_template& eDGE__RF__PowerCapability1() const; +BITSTRING_template& pwrMask2(); +const BITSTRING_template& pwrMask2() const; +BITSTRING_template& eDGE__RF__PowerCapability2(); +const BITSTRING_template& eDGE__RF__PowerCapability2() const; +Record_Template* create() const { return new EDGE__Struct_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MS__NetworkCap : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_gea1; + BITSTRING field_smCapDedicated; + BITSTRING field_smCapGPRS; + BITSTRING field_ucs2; + BITSTRING field_ssScreeningIndicator; + BITSTRING field_soLSACap; + BITSTRING field_revLevelIndicator; + BITSTRING field_pfcFeatureMode; + BITSTRING field_gea2; + BITSTRING field_gea3; + BITSTRING field_gea4; + BITSTRING field_gea5; + BITSTRING field_gea6; + BITSTRING field_gea7; + OPTIONAL field_lcsVACap; + OPTIONAL field_psHOtoUTRAN__IuModeCap; + OPTIONAL field_psHOtoEUTRAN__S1ModeCap; + OPTIONAL field_emmCombinedCap; + OPTIONAL field_isrSupport; + OPTIONAL field_srvccToGERAN__UTRANCap; + OPTIONAL field_epcCap; + OPTIONAL field_nfCap; + OPTIONAL field_gERANNtwkShareCap; + OPTIONAL field_userPlaneIntegrityProtSupport; + OPTIONAL field_gia4; + OPTIONAL field_gia5; + OPTIONAL field_gia6; + OPTIONAL field_gia7; + OPTIONAL field_ePCOInd; + OPTIONAL field_restrictEnhancedCoverageCap; + OPTIONAL field_dualConnectivityEUTRA__NR; + OPTIONAL field_spareBits; + Base_Type* fld_vec[34]; + void init_vec(); +public: + MS__NetworkCap(); + MS__NetworkCap(const MS__NetworkCap& other_value); + MS__NetworkCap(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_gea1, + const BITSTRING& par_smCapDedicated, + const BITSTRING& par_smCapGPRS, + const BITSTRING& par_ucs2, + const BITSTRING& par_ssScreeningIndicator, + const BITSTRING& par_soLSACap, + const BITSTRING& par_revLevelIndicator, + const BITSTRING& par_pfcFeatureMode, + const BITSTRING& par_gea2, + const BITSTRING& par_gea3, + const BITSTRING& par_gea4, + const BITSTRING& par_gea5, + const BITSTRING& par_gea6, + const BITSTRING& par_gea7, + const OPTIONAL& par_lcsVACap, + const OPTIONAL& par_psHOtoUTRAN__IuModeCap, + const OPTIONAL& par_psHOtoEUTRAN__S1ModeCap, + const OPTIONAL& par_emmCombinedCap, + const OPTIONAL& par_isrSupport, + const OPTIONAL& par_srvccToGERAN__UTRANCap, + const OPTIONAL& par_epcCap, + const OPTIONAL& par_nfCap, + const OPTIONAL& par_gERANNtwkShareCap, + const OPTIONAL& par_userPlaneIntegrityProtSupport, + const OPTIONAL& par_gia4, + const OPTIONAL& par_gia5, + const OPTIONAL& par_gia6, + const OPTIONAL& par_gia7, + const OPTIONAL& par_ePCOInd, + const OPTIONAL& par_restrictEnhancedCoverageCap, + const OPTIONAL& par_dualConnectivityEUTRA__NR, + const OPTIONAL& par_spareBits); +inline MS__NetworkCap& operator=(const MS__NetworkCap& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MS__NetworkCap& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MS__NetworkCap& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& gea1() + {return field_gea1;} + inline const BITSTRING& gea1() const + {return field_gea1;} + inline BITSTRING& smCapDedicated() + {return field_smCapDedicated;} + inline const BITSTRING& smCapDedicated() const + {return field_smCapDedicated;} + inline BITSTRING& smCapGPRS() + {return field_smCapGPRS;} + inline const BITSTRING& smCapGPRS() const + {return field_smCapGPRS;} + inline BITSTRING& ucs2() + {return field_ucs2;} + inline const BITSTRING& ucs2() const + {return field_ucs2;} + inline BITSTRING& ssScreeningIndicator() + {return field_ssScreeningIndicator;} + inline const BITSTRING& ssScreeningIndicator() const + {return field_ssScreeningIndicator;} + inline BITSTRING& soLSACap() + {return field_soLSACap;} + inline const BITSTRING& soLSACap() const + {return field_soLSACap;} + inline BITSTRING& revLevelIndicator() + {return field_revLevelIndicator;} + inline const BITSTRING& revLevelIndicator() const + {return field_revLevelIndicator;} + inline BITSTRING& pfcFeatureMode() + {return field_pfcFeatureMode;} + inline const BITSTRING& pfcFeatureMode() const + {return field_pfcFeatureMode;} + inline BITSTRING& gea2() + {return field_gea2;} + inline const BITSTRING& gea2() const + {return field_gea2;} + inline BITSTRING& gea3() + {return field_gea3;} + inline const BITSTRING& gea3() const + {return field_gea3;} + inline BITSTRING& gea4() + {return field_gea4;} + inline const BITSTRING& gea4() const + {return field_gea4;} + inline BITSTRING& gea5() + {return field_gea5;} + inline const BITSTRING& gea5() const + {return field_gea5;} + inline BITSTRING& gea6() + {return field_gea6;} + inline const BITSTRING& gea6() const + {return field_gea6;} + inline BITSTRING& gea7() + {return field_gea7;} + inline const BITSTRING& gea7() const + {return field_gea7;} + inline OPTIONAL& lcsVACap() + {return field_lcsVACap;} + inline const OPTIONAL& lcsVACap() const + {return field_lcsVACap;} + inline OPTIONAL& psHOtoUTRAN__IuModeCap() + {return field_psHOtoUTRAN__IuModeCap;} + inline const OPTIONAL& psHOtoUTRAN__IuModeCap() const + {return field_psHOtoUTRAN__IuModeCap;} + inline OPTIONAL& psHOtoEUTRAN__S1ModeCap() + {return field_psHOtoEUTRAN__S1ModeCap;} + inline const OPTIONAL& psHOtoEUTRAN__S1ModeCap() const + {return field_psHOtoEUTRAN__S1ModeCap;} + inline OPTIONAL& emmCombinedCap() + {return field_emmCombinedCap;} + inline const OPTIONAL& emmCombinedCap() const + {return field_emmCombinedCap;} + inline OPTIONAL& isrSupport() + {return field_isrSupport;} + inline const OPTIONAL& isrSupport() const + {return field_isrSupport;} + inline OPTIONAL& srvccToGERAN__UTRANCap() + {return field_srvccToGERAN__UTRANCap;} + inline const OPTIONAL& srvccToGERAN__UTRANCap() const + {return field_srvccToGERAN__UTRANCap;} + inline OPTIONAL& epcCap() + {return field_epcCap;} + inline const OPTIONAL& epcCap() const + {return field_epcCap;} + inline OPTIONAL& nfCap() + {return field_nfCap;} + inline const OPTIONAL& nfCap() const + {return field_nfCap;} + inline OPTIONAL& gERANNtwkShareCap() + {return field_gERANNtwkShareCap;} + inline const OPTIONAL& gERANNtwkShareCap() const + {return field_gERANNtwkShareCap;} + inline OPTIONAL& userPlaneIntegrityProtSupport() + {return field_userPlaneIntegrityProtSupport;} + inline const OPTIONAL& userPlaneIntegrityProtSupport() const + {return field_userPlaneIntegrityProtSupport;} + inline OPTIONAL& gia4() + {return field_gia4;} + inline const OPTIONAL& gia4() const + {return field_gia4;} + inline OPTIONAL& gia5() + {return field_gia5;} + inline const OPTIONAL& gia5() const + {return field_gia5;} + inline OPTIONAL& gia6() + {return field_gia6;} + inline const OPTIONAL& gia6() const + {return field_gia6;} + inline OPTIONAL& gia7() + {return field_gia7;} + inline const OPTIONAL& gia7() const + {return field_gia7;} + inline OPTIONAL& ePCOInd() + {return field_ePCOInd;} + inline const OPTIONAL& ePCOInd() const + {return field_ePCOInd;} + inline OPTIONAL& restrictEnhancedCoverageCap() + {return field_restrictEnhancedCoverageCap;} + inline const OPTIONAL& restrictEnhancedCoverageCap() const + {return field_restrictEnhancedCoverageCap;} + inline OPTIONAL& dualConnectivityEUTRA__NR() + {return field_dualConnectivityEUTRA__NR;} + inline const OPTIONAL& dualConnectivityEUTRA__NR() const + {return field_dualConnectivityEUTRA__NR;} + inline OPTIONAL& spareBits() + {return field_spareBits;} + inline const OPTIONAL& spareBits() const + {return field_spareBits;} +Base_Type* clone() const { return new MS__NetworkCap(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 34; } +int optional_count() const { return 19; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MS__NetworkCap_template : public Record_Template { +void set_specific(); +public: +MS__NetworkCap_template(): Record_Template() {} +MS__NetworkCap_template(template_sel other_value): Record_Template(other_value) {} +MS__NetworkCap_template(const MS__NetworkCap& other_value): Record_Template() { copy_value(&other_value); } +MS__NetworkCap_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MS__NetworkCap_template(MS__NetworkCap_template* p_precondition, MS__NetworkCap_template* p_implied_template); +MS__NetworkCap_template(Dynamic_Match_Interface* p_dyn_match); +MS__NetworkCap_template(const MS__NetworkCap_template& other_value): Record_Template() { copy_template(other_value); } +~MS__NetworkCap_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MS__NetworkCap_template& operator=(template_sel other_value); +MS__NetworkCap_template& operator=(const MS__NetworkCap& other_value); +MS__NetworkCap_template& operator=(const OPTIONAL& other_value); +MS__NetworkCap_template& operator=(const MS__NetworkCap_template& other_value); +inline boolean match(const MS__NetworkCap& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MS__NetworkCap& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MS__NetworkCap valueof() const; +inline MS__NetworkCap_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& gea1(); +const BITSTRING_template& gea1() const; +BITSTRING_template& smCapDedicated(); +const BITSTRING_template& smCapDedicated() const; +BITSTRING_template& smCapGPRS(); +const BITSTRING_template& smCapGPRS() const; +BITSTRING_template& ucs2(); +const BITSTRING_template& ucs2() const; +BITSTRING_template& ssScreeningIndicator(); +const BITSTRING_template& ssScreeningIndicator() const; +BITSTRING_template& soLSACap(); +const BITSTRING_template& soLSACap() const; +BITSTRING_template& revLevelIndicator(); +const BITSTRING_template& revLevelIndicator() const; +BITSTRING_template& pfcFeatureMode(); +const BITSTRING_template& pfcFeatureMode() const; +BITSTRING_template& gea2(); +const BITSTRING_template& gea2() const; +BITSTRING_template& gea3(); +const BITSTRING_template& gea3() const; +BITSTRING_template& gea4(); +const BITSTRING_template& gea4() const; +BITSTRING_template& gea5(); +const BITSTRING_template& gea5() const; +BITSTRING_template& gea6(); +const BITSTRING_template& gea6() const; +BITSTRING_template& gea7(); +const BITSTRING_template& gea7() const; +BITSTRING_template& lcsVACap(); +const BITSTRING_template& lcsVACap() const; +BITSTRING_template& psHOtoUTRAN__IuModeCap(); +const BITSTRING_template& psHOtoUTRAN__IuModeCap() const; +BITSTRING_template& psHOtoEUTRAN__S1ModeCap(); +const BITSTRING_template& psHOtoEUTRAN__S1ModeCap() const; +BITSTRING_template& emmCombinedCap(); +const BITSTRING_template& emmCombinedCap() const; +BITSTRING_template& isrSupport(); +const BITSTRING_template& isrSupport() const; +BITSTRING_template& srvccToGERAN__UTRANCap(); +const BITSTRING_template& srvccToGERAN__UTRANCap() const; +BITSTRING_template& epcCap(); +const BITSTRING_template& epcCap() const; +BITSTRING_template& nfCap(); +const BITSTRING_template& nfCap() const; +BITSTRING_template& gERANNtwkShareCap(); +const BITSTRING_template& gERANNtwkShareCap() const; +BITSTRING_template& userPlaneIntegrityProtSupport(); +const BITSTRING_template& userPlaneIntegrityProtSupport() const; +BITSTRING_template& gia4(); +const BITSTRING_template& gia4() const; +BITSTRING_template& gia5(); +const BITSTRING_template& gia5() const; +BITSTRING_template& gia6(); +const BITSTRING_template& gia6() const; +BITSTRING_template& gia7(); +const BITSTRING_template& gia7() const; +BITSTRING_template& ePCOInd(); +const BITSTRING_template& ePCOInd() const; +BITSTRING_template& restrictEnhancedCoverageCap(); +const BITSTRING_template& restrictEnhancedCoverageCap() const; +BITSTRING_template& dualConnectivityEUTRA__NR(); +const BITSTRING_template& dualConnectivityEUTRA__NR() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +Record_Template* create() const { return new MS__NetworkCap_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Non3GPP__NW__ProvidedPolicies : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spareBits; + BITSTRING field_n3ENInd; + Base_Type* fld_vec[3]; + void init_vec(); +public: + Non3GPP__NW__ProvidedPolicies(); + Non3GPP__NW__ProvidedPolicies(const Non3GPP__NW__ProvidedPolicies& other_value); + Non3GPP__NW__ProvidedPolicies(const HEXSTRING& par_iei, + const BITSTRING& par_spareBits, + const BITSTRING& par_n3ENInd); +inline Non3GPP__NW__ProvidedPolicies& operator=(const Non3GPP__NW__ProvidedPolicies& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Non3GPP__NW__ProvidedPolicies& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Non3GPP__NW__ProvidedPolicies& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& n3ENInd() + {return field_n3ENInd;} + inline const BITSTRING& n3ENInd() const + {return field_n3ENInd;} +Base_Type* clone() const { return new Non3GPP__NW__ProvidedPolicies(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Non3GPP__NW__ProvidedPolicies_template : public Record_Template { +void set_specific(); +public: +Non3GPP__NW__ProvidedPolicies_template(): Record_Template() {} +Non3GPP__NW__ProvidedPolicies_template(template_sel other_value): Record_Template(other_value) {} +Non3GPP__NW__ProvidedPolicies_template(const Non3GPP__NW__ProvidedPolicies& other_value): Record_Template() { copy_value(&other_value); } +Non3GPP__NW__ProvidedPolicies_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Non3GPP__NW__ProvidedPolicies_template(Non3GPP__NW__ProvidedPolicies_template* p_precondition, Non3GPP__NW__ProvidedPolicies_template* p_implied_template); +Non3GPP__NW__ProvidedPolicies_template(Dynamic_Match_Interface* p_dyn_match); +Non3GPP__NW__ProvidedPolicies_template(const Non3GPP__NW__ProvidedPolicies_template& other_value): Record_Template() { copy_template(other_value); } +~Non3GPP__NW__ProvidedPolicies_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Non3GPP__NW__ProvidedPolicies_template& operator=(template_sel other_value); +Non3GPP__NW__ProvidedPolicies_template& operator=(const Non3GPP__NW__ProvidedPolicies& other_value); +Non3GPP__NW__ProvidedPolicies_template& operator=(const OPTIONAL& other_value); +Non3GPP__NW__ProvidedPolicies_template& operator=(const Non3GPP__NW__ProvidedPolicies_template& other_value); +inline boolean match(const Non3GPP__NW__ProvidedPolicies& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Non3GPP__NW__ProvidedPolicies& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Non3GPP__NW__ProvidedPolicies valueof() const; +inline Non3GPP__NW__ProvidedPolicies_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& n3ENInd(); +const BITSTRING_template& n3ENInd() const; +Record_Template* create() const { return new Non3GPP__NW__ProvidedPolicies_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NwkResourceId : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_nriContainerValue; + BITSTRING field_spareBits; + Base_Type* fld_vec[4]; + void init_vec(); +public: + NwkResourceId(); + NwkResourceId(const NwkResourceId& other_value); + NwkResourceId(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_nriContainerValue, + const BITSTRING& par_spareBits); +inline NwkResourceId& operator=(const NwkResourceId& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NwkResourceId& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NwkResourceId& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& nriContainerValue() + {return field_nriContainerValue;} + inline const BITSTRING& nriContainerValue() const + {return field_nriContainerValue;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} +Base_Type* clone() const { return new NwkResourceId(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NwkResourceId_template : public Record_Template { +void set_specific(); +public: +NwkResourceId_template(): Record_Template() {} +NwkResourceId_template(template_sel other_value): Record_Template(other_value) {} +NwkResourceId_template(const NwkResourceId& other_value): Record_Template() { copy_value(&other_value); } +NwkResourceId_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NwkResourceId_template(NwkResourceId_template* p_precondition, NwkResourceId_template* p_implied_template); +NwkResourceId_template(Dynamic_Match_Interface* p_dyn_match); +NwkResourceId_template(const NwkResourceId_template& other_value): Record_Template() { copy_template(other_value); } +~NwkResourceId_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NwkResourceId_template& operator=(template_sel other_value); +NwkResourceId_template& operator=(const NwkResourceId& other_value); +NwkResourceId_template& operator=(const OPTIONAL& other_value); +NwkResourceId_template& operator=(const NwkResourceId_template& other_value); +inline boolean match(const NwkResourceId& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NwkResourceId& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NwkResourceId valueof() const; +inline NwkResourceId_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& nriContainerValue(); +const BITSTRING_template& nriContainerValue() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +Record_Template* create() const { return new NwkResourceId_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PacketFlowIdentifier : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare; + BITSTRING field_idValue; + Base_Type* fld_vec[4]; + void init_vec(); +public: + PacketFlowIdentifier(); + PacketFlowIdentifier(const PacketFlowIdentifier& other_value); + PacketFlowIdentifier(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_idValue); +inline PacketFlowIdentifier& operator=(const PacketFlowIdentifier& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PacketFlowIdentifier& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PacketFlowIdentifier& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& idValue() + {return field_idValue;} + inline const BITSTRING& idValue() const + {return field_idValue;} +Base_Type* clone() const { return new PacketFlowIdentifier(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PacketFlowIdentifier_template : public Record_Template { +void set_specific(); +public: +PacketFlowIdentifier_template(): Record_Template() {} +PacketFlowIdentifier_template(template_sel other_value): Record_Template(other_value) {} +PacketFlowIdentifier_template(const PacketFlowIdentifier& other_value): Record_Template() { copy_value(&other_value); } +PacketFlowIdentifier_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PacketFlowIdentifier_template(PacketFlowIdentifier_template* p_precondition, PacketFlowIdentifier_template* p_implied_template); +PacketFlowIdentifier_template(Dynamic_Match_Interface* p_dyn_match); +PacketFlowIdentifier_template(const PacketFlowIdentifier_template& other_value): Record_Template() { copy_template(other_value); } +~PacketFlowIdentifier_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PacketFlowIdentifier_template& operator=(template_sel other_value); +PacketFlowIdentifier_template& operator=(const PacketFlowIdentifier& other_value); +PacketFlowIdentifier_template& operator=(const OPTIONAL& other_value); +PacketFlowIdentifier_template& operator=(const PacketFlowIdentifier_template& other_value); +inline boolean match(const PacketFlowIdentifier& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PacketFlowIdentifier& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PacketFlowIdentifier valueof() const; +inline PacketFlowIdentifier_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& idValue(); +const BITSTRING_template& idValue() const; +Record_Template* create() const { return new PacketFlowIdentifier_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PLMN__IdIE : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_plmn; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PLMN__IdIE(); + PLMN__IdIE(const PLMN__IdIE& other_value); + PLMN__IdIE(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_plmn); +inline PLMN__IdIE& operator=(const PLMN__IdIE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PLMN__IdIE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PLMN__IdIE& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& plmn() + {return field_plmn;} + inline const OCTETSTRING& plmn() const + {return field_plmn;} +Base_Type* clone() const { return new PLMN__IdIE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PLMN__IdIE_template : public Record_Template { +void set_specific(); +public: +PLMN__IdIE_template(): Record_Template() {} +PLMN__IdIE_template(template_sel other_value): Record_Template(other_value) {} +PLMN__IdIE_template(const PLMN__IdIE& other_value): Record_Template() { copy_value(&other_value); } +PLMN__IdIE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PLMN__IdIE_template(PLMN__IdIE_template* p_precondition, PLMN__IdIE_template* p_implied_template); +PLMN__IdIE_template(Dynamic_Match_Interface* p_dyn_match); +PLMN__IdIE_template(const PLMN__IdIE_template& other_value): Record_Template() { copy_template(other_value); } +~PLMN__IdIE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PLMN__IdIE_template& operator=(template_sel other_value); +PLMN__IdIE_template& operator=(const PLMN__IdIE& other_value); +PLMN__IdIE_template& operator=(const OPTIONAL& other_value); +PLMN__IdIE_template& operator=(const PLMN__IdIE_template& other_value); +inline boolean match(const PLMN__IdIE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PLMN__IdIE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PLMN__IdIE valueof() const; +inline PLMN__IdIE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& plmn(); +const OCTETSTRING_template& plmn() const; +Record_Template* create() const { return new PLMN__IdIE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PLMN__List : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + PLMN__List_plmnList field_plmnList; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PLMN__List(); + PLMN__List(const PLMN__List& other_value); + PLMN__List(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const PLMN__List_plmnList& par_plmnList); +inline PLMN__List& operator=(const PLMN__List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PLMN__List& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PLMN__List& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline PLMN__List_plmnList& plmnList() + {return field_plmnList;} + inline const PLMN__List_plmnList& plmnList() const + {return field_plmnList;} +Base_Type* clone() const { return new PLMN__List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PLMN__List_template : public Record_Template { +void set_specific(); +public: +PLMN__List_template(): Record_Template() {} +PLMN__List_template(template_sel other_value): Record_Template(other_value) {} +PLMN__List_template(const PLMN__List& other_value): Record_Template() { copy_value(&other_value); } +PLMN__List_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PLMN__List_template(PLMN__List_template* p_precondition, PLMN__List_template* p_implied_template); +PLMN__List_template(Dynamic_Match_Interface* p_dyn_match); +PLMN__List_template(const PLMN__List_template& other_value): Record_Template() { copy_template(other_value); } +~PLMN__List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PLMN__List_template& operator=(template_sel other_value); +PLMN__List_template& operator=(const PLMN__List& other_value); +PLMN__List_template& operator=(const OPTIONAL& other_value); +PLMN__List_template& operator=(const PLMN__List_template& other_value); +inline boolean match(const PLMN__List& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PLMN__List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PLMN__List valueof() const; +inline PLMN__List_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +PLMN__List_plmnList_template& plmnList(); +const PLMN__List_plmnList_template& plmnList() const; +Record_Template* create() const { return new PLMN__List_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MS__NetworkFeatureSupport : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_extdPeriodicTimers; + Base_Type* fld_vec[3]; + void init_vec(); +public: + MS__NetworkFeatureSupport(); + MS__NetworkFeatureSupport(const MS__NetworkFeatureSupport& other_value); + MS__NetworkFeatureSupport(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_extdPeriodicTimers); +inline MS__NetworkFeatureSupport& operator=(const MS__NetworkFeatureSupport& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MS__NetworkFeatureSupport& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MS__NetworkFeatureSupport& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& extdPeriodicTimers() + {return field_extdPeriodicTimers;} + inline const BITSTRING& extdPeriodicTimers() const + {return field_extdPeriodicTimers;} +Base_Type* clone() const { return new MS__NetworkFeatureSupport(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MS__NetworkFeatureSupport_template : public Record_Template { +void set_specific(); +public: +MS__NetworkFeatureSupport_template(): Record_Template() {} +MS__NetworkFeatureSupport_template(template_sel other_value): Record_Template(other_value) {} +MS__NetworkFeatureSupport_template(const MS__NetworkFeatureSupport& other_value): Record_Template() { copy_value(&other_value); } +MS__NetworkFeatureSupport_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MS__NetworkFeatureSupport_template(MS__NetworkFeatureSupport_template* p_precondition, MS__NetworkFeatureSupport_template* p_implied_template); +MS__NetworkFeatureSupport_template(Dynamic_Match_Interface* p_dyn_match); +MS__NetworkFeatureSupport_template(const MS__NetworkFeatureSupport_template& other_value): Record_Template() { copy_template(other_value); } +~MS__NetworkFeatureSupport_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MS__NetworkFeatureSupport_template& operator=(template_sel other_value); +MS__NetworkFeatureSupport_template& operator=(const MS__NetworkFeatureSupport& other_value); +MS__NetworkFeatureSupport_template& operator=(const OPTIONAL& other_value); +MS__NetworkFeatureSupport_template& operator=(const MS__NetworkFeatureSupport_template& other_value); +inline boolean match(const MS__NetworkFeatureSupport& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MS__NetworkFeatureSupport& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MS__NetworkFeatureSupport valueof() const; +inline MS__NetworkFeatureSupport_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& extdPeriodicTimers(); +const BITSTRING_template& extdPeriodicTimers() const; +Record_Template* create() const { return new MS__NetworkFeatureSupport_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ProtocolConfigOptions : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_ext; + BITSTRING field_spare; + BITSTRING field_configProtocol; + OPTIONAL field_pco; + Base_Type* fld_vec[6]; + void init_vec(); +public: + ProtocolConfigOptions(); + ProtocolConfigOptions(const ProtocolConfigOptions& other_value); + ProtocolConfigOptions(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_ext, + const BITSTRING& par_spare, + const BITSTRING& par_configProtocol, + const OPTIONAL& par_pco); +inline ProtocolConfigOptions& operator=(const ProtocolConfigOptions& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ProtocolConfigOptions& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ProtocolConfigOptions& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& ext() + {return field_ext;} + inline const BITSTRING& ext() const + {return field_ext;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& configProtocol() + {return field_configProtocol;} + inline const BITSTRING& configProtocol() const + {return field_configProtocol;} + inline OPTIONAL& pco() + {return field_pco;} + inline const OPTIONAL& pco() const + {return field_pco;} +Base_Type* clone() const { return new ProtocolConfigOptions(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ProtocolConfigOptions_template : public Record_Template { +void set_specific(); +public: +ProtocolConfigOptions_template(): Record_Template() {} +ProtocolConfigOptions_template(template_sel other_value): Record_Template(other_value) {} +ProtocolConfigOptions_template(const ProtocolConfigOptions& other_value): Record_Template() { copy_value(&other_value); } +ProtocolConfigOptions_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ProtocolConfigOptions_template(ProtocolConfigOptions_template* p_precondition, ProtocolConfigOptions_template* p_implied_template); +ProtocolConfigOptions_template(Dynamic_Match_Interface* p_dyn_match); +ProtocolConfigOptions_template(const ProtocolConfigOptions_template& other_value): Record_Template() { copy_template(other_value); } +~ProtocolConfigOptions_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ProtocolConfigOptions_template& operator=(template_sel other_value); +ProtocolConfigOptions_template& operator=(const ProtocolConfigOptions& other_value); +ProtocolConfigOptions_template& operator=(const OPTIONAL& other_value); +ProtocolConfigOptions_template& operator=(const ProtocolConfigOptions_template& other_value); +inline boolean match(const ProtocolConfigOptions& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ProtocolConfigOptions& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ProtocolConfigOptions valueof() const; +inline ProtocolConfigOptions_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& ext(); +const BITSTRING_template& ext() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& configProtocol(); +const BITSTRING_template& configProtocol() const; +ProtocolConfigOptions_pco_template& pco(); +const ProtocolConfigOptions_pco_template& pco() const; +Record_Template* create() const { return new ProtocolConfigOptions_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ProtocolConfigOptions_pco : public Record_Of_Type { + +static const ProtocolContainer UNBOUND_ELEM; + +public: +ProtocolConfigOptions_pco(): Record_Of_Type() {} +ProtocolConfigOptions_pco(null_type other_value): Record_Of_Type(other_value) {} +ProtocolConfigOptions_pco(const ProtocolConfigOptions_pco& other_value): Record_Of_Type(other_value) {} +~ProtocolConfigOptions_pco() { clean_up(); } + +inline ProtocolConfigOptions_pco& operator=(null_type other_value) { set_val(other_value); return *this; } +inline ProtocolConfigOptions_pco& operator=(const ProtocolConfigOptions_pco& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ProtocolConfigOptions_pco& other_value) const { return is_equal(&other_value); } +boolean operator!=(const ProtocolConfigOptions_pco& other_value) const { return !is_equal(&other_value); } +ProtocolContainer& operator[](int index_value); +ProtocolContainer& operator[](const INTEGER& index_value); +const ProtocolContainer& operator[](int index_value) const; +const ProtocolContainer& operator[](const INTEGER& index_value) const; +ProtocolConfigOptions_pco operator<<=(int rotate_count) const; +ProtocolConfigOptions_pco operator<<=(const INTEGER& rotate_count) const; +ProtocolConfigOptions_pco operator>>=(int rotate_count) const; +ProtocolConfigOptions_pco operator>>=(const INTEGER& rotate_count) const; + +ProtocolConfigOptions_pco operator+(const ProtocolConfigOptions_pco& other_value) const; + +ProtocolConfigOptions_pco operator+(const OPTIONAL& other_value) const; + +ProtocolConfigOptions_pco operator+(null_type) const; + +ProtocolConfigOptions_pco substr(int index, int returncount) const; + +ProtocolConfigOptions_pco replace(int index, int len, const ProtocolConfigOptions_pco& repl) const; + +ProtocolConfigOptions_pco replace(int index, int len, const ProtocolConfigOptions_pco_template& repl) const; + +Base_Type* clone() const { return new ProtocolConfigOptions_pco(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class ProtocolConfigOptions_pco_template : public Record_Of_Template { +friend ProtocolConfigOptions_pco_template operator+(template_sel left_template, const ProtocolConfigOptions_pco_template& right_template); +friend ProtocolConfigOptions_pco_template operator+(const ProtocolConfigOptions_pco& left_value, const ProtocolConfigOptions_pco_template& right_template); +friend ProtocolConfigOptions_pco_template operator+(template_sel left_template, const ProtocolConfigOptions_pco& right_value); +friend ProtocolConfigOptions_pco_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend ProtocolConfigOptions_pco_template operator+(const ProtocolConfigOptions_pco& left_value, template_sel right_template); + +public: +ProtocolConfigOptions_pco_template() {} +ProtocolConfigOptions_pco_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +ProtocolConfigOptions_pco_template(null_type other_value); +ProtocolConfigOptions_pco_template(const ProtocolConfigOptions_pco& other_value) { copy_value(&other_value); } +ProtocolConfigOptions_pco_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +ProtocolConfigOptions_pco_template(ProtocolConfigOptions_pco_template* p_precondition, ProtocolConfigOptions_pco_template* p_implied_template); +ProtocolConfigOptions_pco_template(Dynamic_Match_Interface* p_dyn_match); +ProtocolConfigOptions_pco_template(const ProtocolConfigOptions_pco_template& other_value): Record_Of_Template() { copy_template(other_value); } +~ProtocolConfigOptions_pco_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ProtocolConfigOptions_pco_template& operator=(template_sel other_value); +ProtocolConfigOptions_pco_template& operator=(null_type other_value); +ProtocolConfigOptions_pco_template& operator=(const ProtocolConfigOptions_pco& other_value); +ProtocolConfigOptions_pco_template& operator=(const OPTIONAL& other_value); +ProtocolConfigOptions_pco_template& operator=(const ProtocolConfigOptions_pco_template& other_value); + +ProtocolConfigOptions_pco_template operator+(const ProtocolConfigOptions_pco_template& other_value) const; +ProtocolConfigOptions_pco_template operator+(const ProtocolConfigOptions_pco& other_value) const; +ProtocolConfigOptions_pco_template operator+(template_sel other_value) const; +ProtocolConfigOptions_pco_template operator+(null_type) const; + +ProtocolContainer_template& operator[](int index_value); +ProtocolContainer_template& operator[](const INTEGER& index_value); +const ProtocolContainer_template& operator[](int index_value) const; +const ProtocolContainer_template& operator[](const INTEGER& index_value) const; +inline boolean match(const ProtocolConfigOptions_pco& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +ProtocolConfigOptions_pco valueof() const; +ProtocolConfigOptions_pco substr(int index, int returncount) const; + +ProtocolConfigOptions_pco replace(int index, int len, const ProtocolConfigOptions_pco_template& repl) const; + +ProtocolConfigOptions_pco replace(int index, int len, const ProtocolConfigOptions_pco& repl) const; + +inline ProtocolConfigOptions_pco_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const ProtocolConfigOptions_pco& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new ProtocolConfigOptions_pco_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class ProtocolContainer : public Record_Type { + OCTETSTRING field_protocolID; + OPTIONAL field_protocolLength; + OPTIONAL field_protocolLongLength; + OPTIONAL field_content; + Base_Type* fld_vec[4]; + void init_vec(); +public: + ProtocolContainer(); + ProtocolContainer(const ProtocolContainer& other_value); + ProtocolContainer(const OCTETSTRING& par_protocolID, + const OPTIONAL& par_protocolLength, + const OPTIONAL& par_protocolLongLength, + const OPTIONAL& par_content); +inline ProtocolContainer& operator=(const ProtocolContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ProtocolContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ProtocolContainer& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& protocolID() + {return field_protocolID;} + inline const OCTETSTRING& protocolID() const + {return field_protocolID;} + inline OPTIONAL& protocolLength() + {return field_protocolLength;} + inline const OPTIONAL& protocolLength() const + {return field_protocolLength;} + inline OPTIONAL& protocolLongLength() + {return field_protocolLongLength;} + inline const OPTIONAL& protocolLongLength() const + {return field_protocolLongLength;} + inline OPTIONAL& content() + {return field_content;} + inline const OPTIONAL& content() const + {return field_content;} +Base_Type* clone() const { return new ProtocolContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ProtocolContainer_template : public Record_Template { +void set_specific(); +public: +ProtocolContainer_template(): Record_Template() {} +ProtocolContainer_template(template_sel other_value): Record_Template(other_value) {} +ProtocolContainer_template(const ProtocolContainer& other_value): Record_Template() { copy_value(&other_value); } +ProtocolContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ProtocolContainer_template(ProtocolContainer_template* p_precondition, ProtocolContainer_template* p_implied_template); +ProtocolContainer_template(Dynamic_Match_Interface* p_dyn_match); +ProtocolContainer_template(const ProtocolContainer_template& other_value): Record_Template() { copy_template(other_value); } +~ProtocolContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ProtocolContainer_template& operator=(template_sel other_value); +ProtocolContainer_template& operator=(const ProtocolContainer& other_value); +ProtocolContainer_template& operator=(const OPTIONAL& other_value); +ProtocolContainer_template& operator=(const ProtocolContainer_template& other_value); +inline boolean match(const ProtocolContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ProtocolContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ProtocolContainer valueof() const; +inline ProtocolContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& protocolID(); +const OCTETSTRING_template& protocolID() const; +OCTETSTRING_template& protocolLength(); +const OCTETSTRING_template& protocolLength() const; +OCTETSTRING_template& protocolLongLength(); +const OCTETSTRING_template& protocolLongLength() const; +OCTETSTRING_template& content(); +const OCTETSTRING_template& content() const; +Record_Template* create() const { return new ProtocolContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class APNRateControlParams : public Record_Type { + BITSTRING field_spare; + BITSTRING field_aer; + BITSTRING field_uplinkTimeUnit; + OPTIONAL field_maxUplinkRate; + Base_Type* fld_vec[4]; + void init_vec(); +public: + APNRateControlParams(); + APNRateControlParams(const APNRateControlParams& other_value); + APNRateControlParams(const BITSTRING& par_spare, + const BITSTRING& par_aer, + const BITSTRING& par_uplinkTimeUnit, + const OPTIONAL& par_maxUplinkRate); +inline APNRateControlParams& operator=(const APNRateControlParams& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const APNRateControlParams& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const APNRateControlParams& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& aer() + {return field_aer;} + inline const BITSTRING& aer() const + {return field_aer;} + inline BITSTRING& uplinkTimeUnit() + {return field_uplinkTimeUnit;} + inline const BITSTRING& uplinkTimeUnit() const + {return field_uplinkTimeUnit;} + inline OPTIONAL& maxUplinkRate() + {return field_maxUplinkRate;} + inline const OPTIONAL& maxUplinkRate() const + {return field_maxUplinkRate;} +Base_Type* clone() const { return new APNRateControlParams(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class APNRateControlParams_template : public Record_Template { +void set_specific(); +public: +APNRateControlParams_template(): Record_Template() {} +APNRateControlParams_template(template_sel other_value): Record_Template(other_value) {} +APNRateControlParams_template(const APNRateControlParams& other_value): Record_Template() { copy_value(&other_value); } +APNRateControlParams_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +APNRateControlParams_template(APNRateControlParams_template* p_precondition, APNRateControlParams_template* p_implied_template); +APNRateControlParams_template(Dynamic_Match_Interface* p_dyn_match); +APNRateControlParams_template(const APNRateControlParams_template& other_value): Record_Template() { copy_template(other_value); } +~APNRateControlParams_template(); +boolean match_dynamic(const Base_Type* match_value) const; +APNRateControlParams_template& operator=(template_sel other_value); +APNRateControlParams_template& operator=(const APNRateControlParams& other_value); +APNRateControlParams_template& operator=(const OPTIONAL& other_value); +APNRateControlParams_template& operator=(const APNRateControlParams_template& other_value); +inline boolean match(const APNRateControlParams& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const APNRateControlParams& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +APNRateControlParams valueof() const; +inline APNRateControlParams_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& aer(); +const BITSTRING_template& aer() const; +BITSTRING_template& uplinkTimeUnit(); +const BITSTRING_template& uplinkTimeUnit() const; +OCTETSTRING_template& maxUplinkRate(); +const OCTETSTRING_template& maxUplinkRate() const; +Record_Template* create() const { return new APNRateControlParams_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PTMSI__Signature : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_signatureValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PTMSI__Signature(); + PTMSI__Signature(const PTMSI__Signature& other_value); + PTMSI__Signature(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_signatureValue); +inline PTMSI__Signature& operator=(const PTMSI__Signature& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PTMSI__Signature& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PTMSI__Signature& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& signatureValue() + {return field_signatureValue;} + inline const OCTETSTRING& signatureValue() const + {return field_signatureValue;} +Base_Type* clone() const { return new PTMSI__Signature(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PTMSI__Signature_template : public Record_Template { +void set_specific(); +public: +PTMSI__Signature_template(): Record_Template() {} +PTMSI__Signature_template(template_sel other_value): Record_Template(other_value) {} +PTMSI__Signature_template(const PTMSI__Signature& other_value): Record_Template() { copy_value(&other_value); } +PTMSI__Signature_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PTMSI__Signature_template(PTMSI__Signature_template* p_precondition, PTMSI__Signature_template* p_implied_template); +PTMSI__Signature_template(Dynamic_Match_Interface* p_dyn_match); +PTMSI__Signature_template(const PTMSI__Signature_template& other_value): Record_Template() { copy_template(other_value); } +~PTMSI__Signature_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PTMSI__Signature_template& operator=(template_sel other_value); +PTMSI__Signature_template& operator=(const PTMSI__Signature& other_value); +PTMSI__Signature_template& operator=(const OPTIONAL& other_value); +PTMSI__Signature_template& operator=(const PTMSI__Signature_template& other_value); +inline boolean match(const PTMSI__Signature& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PTMSI__Signature& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PTMSI__Signature valueof() const; +inline PTMSI__Signature_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& signatureValue(); +const OCTETSTRING_template& signatureValue() const; +Record_Template* create() const { return new PTMSI__Signature_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class QualityOfService : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare1; + BITSTRING field_delayClass; + BITSTRING field_relabilityClass; + BITSTRING field_peakThroughput; + BITSTRING field_spare2; + BITSTRING field_precedenceClass; + BITSTRING field_spare3; + BITSTRING field_meanThroughput; + BITSTRING field_trafficClass; + BITSTRING field_deliveryOrder; + BITSTRING field_deliveryErrorSDU; + BITSTRING field_maxSduSize; + BITSTRING field_maxBitRateUL; + BITSTRING field_maxBitRateDL; + BITSTRING field_residualBER; + BITSTRING field_sduErrorRatio; + BITSTRING field_transferDelay; + BITSTRING field_trafficHandlingPrio; + BITSTRING field_guaranteedBitRateUL; + BITSTRING field_guaranteedBitRateDL; + BITSTRING field_spare4; + BITSTRING field_signallingInd; + BITSTRING field_sourceStatisticsDescriptor; + OPTIONAL field_maxBitRateDL__Ext; + OPTIONAL field_guaranteedBitRateDL__Ext; + OPTIONAL field_maxBitRateUL__Ext; + OPTIONAL field_guaranteedBitRateUL__Ext; + OPTIONAL field_maxBitRateDL__Ext2; + OPTIONAL field_guaranteedBitRateDL__Ext2; + OPTIONAL field_maxBitRateUL__Ext2; + OPTIONAL field_guaranteedBitRateUL__Ext2; + Base_Type* fld_vec[33]; + void init_vec(); +public: + QualityOfService(); + QualityOfService(const QualityOfService& other_value); + QualityOfService(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare1, + const BITSTRING& par_delayClass, + const BITSTRING& par_relabilityClass, + const BITSTRING& par_peakThroughput, + const BITSTRING& par_spare2, + const BITSTRING& par_precedenceClass, + const BITSTRING& par_spare3, + const BITSTRING& par_meanThroughput, + const BITSTRING& par_trafficClass, + const BITSTRING& par_deliveryOrder, + const BITSTRING& par_deliveryErrorSDU, + const BITSTRING& par_maxSduSize, + const BITSTRING& par_maxBitRateUL, + const BITSTRING& par_maxBitRateDL, + const BITSTRING& par_residualBER, + const BITSTRING& par_sduErrorRatio, + const BITSTRING& par_transferDelay, + const BITSTRING& par_trafficHandlingPrio, + const BITSTRING& par_guaranteedBitRateUL, + const BITSTRING& par_guaranteedBitRateDL, + const BITSTRING& par_spare4, + const BITSTRING& par_signallingInd, + const BITSTRING& par_sourceStatisticsDescriptor, + const OPTIONAL& par_maxBitRateDL__Ext, + const OPTIONAL& par_guaranteedBitRateDL__Ext, + const OPTIONAL& par_maxBitRateUL__Ext, + const OPTIONAL& par_guaranteedBitRateUL__Ext, + const OPTIONAL& par_maxBitRateDL__Ext2, + const OPTIONAL& par_guaranteedBitRateDL__Ext2, + const OPTIONAL& par_maxBitRateUL__Ext2, + const OPTIONAL& par_guaranteedBitRateUL__Ext2); +inline QualityOfService& operator=(const QualityOfService& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QualityOfService& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const QualityOfService& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare1() + {return field_spare1;} + inline const BITSTRING& spare1() const + {return field_spare1;} + inline BITSTRING& delayClass() + {return field_delayClass;} + inline const BITSTRING& delayClass() const + {return field_delayClass;} + inline BITSTRING& relabilityClass() + {return field_relabilityClass;} + inline const BITSTRING& relabilityClass() const + {return field_relabilityClass;} + inline BITSTRING& peakThroughput() + {return field_peakThroughput;} + inline const BITSTRING& peakThroughput() const + {return field_peakThroughput;} + inline BITSTRING& spare2() + {return field_spare2;} + inline const BITSTRING& spare2() const + {return field_spare2;} + inline BITSTRING& precedenceClass() + {return field_precedenceClass;} + inline const BITSTRING& precedenceClass() const + {return field_precedenceClass;} + inline BITSTRING& spare3() + {return field_spare3;} + inline const BITSTRING& spare3() const + {return field_spare3;} + inline BITSTRING& meanThroughput() + {return field_meanThroughput;} + inline const BITSTRING& meanThroughput() const + {return field_meanThroughput;} + inline BITSTRING& trafficClass() + {return field_trafficClass;} + inline const BITSTRING& trafficClass() const + {return field_trafficClass;} + inline BITSTRING& deliveryOrder() + {return field_deliveryOrder;} + inline const BITSTRING& deliveryOrder() const + {return field_deliveryOrder;} + inline BITSTRING& deliveryErrorSDU() + {return field_deliveryErrorSDU;} + inline const BITSTRING& deliveryErrorSDU() const + {return field_deliveryErrorSDU;} + inline BITSTRING& maxSduSize() + {return field_maxSduSize;} + inline const BITSTRING& maxSduSize() const + {return field_maxSduSize;} + inline BITSTRING& maxBitRateUL() + {return field_maxBitRateUL;} + inline const BITSTRING& maxBitRateUL() const + {return field_maxBitRateUL;} + inline BITSTRING& maxBitRateDL() + {return field_maxBitRateDL;} + inline const BITSTRING& maxBitRateDL() const + {return field_maxBitRateDL;} + inline BITSTRING& residualBER() + {return field_residualBER;} + inline const BITSTRING& residualBER() const + {return field_residualBER;} + inline BITSTRING& sduErrorRatio() + {return field_sduErrorRatio;} + inline const BITSTRING& sduErrorRatio() const + {return field_sduErrorRatio;} + inline BITSTRING& transferDelay() + {return field_transferDelay;} + inline const BITSTRING& transferDelay() const + {return field_transferDelay;} + inline BITSTRING& trafficHandlingPrio() + {return field_trafficHandlingPrio;} + inline const BITSTRING& trafficHandlingPrio() const + {return field_trafficHandlingPrio;} + inline BITSTRING& guaranteedBitRateUL() + {return field_guaranteedBitRateUL;} + inline const BITSTRING& guaranteedBitRateUL() const + {return field_guaranteedBitRateUL;} + inline BITSTRING& guaranteedBitRateDL() + {return field_guaranteedBitRateDL;} + inline const BITSTRING& guaranteedBitRateDL() const + {return field_guaranteedBitRateDL;} + inline BITSTRING& spare4() + {return field_spare4;} + inline const BITSTRING& spare4() const + {return field_spare4;} + inline BITSTRING& signallingInd() + {return field_signallingInd;} + inline const BITSTRING& signallingInd() const + {return field_signallingInd;} + inline BITSTRING& sourceStatisticsDescriptor() + {return field_sourceStatisticsDescriptor;} + inline const BITSTRING& sourceStatisticsDescriptor() const + {return field_sourceStatisticsDescriptor;} + inline OPTIONAL& maxBitRateDL__Ext() + {return field_maxBitRateDL__Ext;} + inline const OPTIONAL& maxBitRateDL__Ext() const + {return field_maxBitRateDL__Ext;} + inline OPTIONAL& guaranteedBitRateDL__Ext() + {return field_guaranteedBitRateDL__Ext;} + inline const OPTIONAL& guaranteedBitRateDL__Ext() const + {return field_guaranteedBitRateDL__Ext;} + inline OPTIONAL& maxBitRateUL__Ext() + {return field_maxBitRateUL__Ext;} + inline const OPTIONAL& maxBitRateUL__Ext() const + {return field_maxBitRateUL__Ext;} + inline OPTIONAL& guaranteedBitRateUL__Ext() + {return field_guaranteedBitRateUL__Ext;} + inline const OPTIONAL& guaranteedBitRateUL__Ext() const + {return field_guaranteedBitRateUL__Ext;} + inline OPTIONAL& maxBitRateDL__Ext2() + {return field_maxBitRateDL__Ext2;} + inline const OPTIONAL& maxBitRateDL__Ext2() const + {return field_maxBitRateDL__Ext2;} + inline OPTIONAL& guaranteedBitRateDL__Ext2() + {return field_guaranteedBitRateDL__Ext2;} + inline const OPTIONAL& guaranteedBitRateDL__Ext2() const + {return field_guaranteedBitRateDL__Ext2;} + inline OPTIONAL& maxBitRateUL__Ext2() + {return field_maxBitRateUL__Ext2;} + inline const OPTIONAL& maxBitRateUL__Ext2() const + {return field_maxBitRateUL__Ext2;} + inline OPTIONAL& guaranteedBitRateUL__Ext2() + {return field_guaranteedBitRateUL__Ext2;} + inline const OPTIONAL& guaranteedBitRateUL__Ext2() const + {return field_guaranteedBitRateUL__Ext2;} +Base_Type* clone() const { return new QualityOfService(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 33; } +int optional_count() const { return 9; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class QualityOfService_template : public Record_Template { +void set_specific(); +public: +QualityOfService_template(): Record_Template() {} +QualityOfService_template(template_sel other_value): Record_Template(other_value) {} +QualityOfService_template(const QualityOfService& other_value): Record_Template() { copy_value(&other_value); } +QualityOfService_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +QualityOfService_template(QualityOfService_template* p_precondition, QualityOfService_template* p_implied_template); +QualityOfService_template(Dynamic_Match_Interface* p_dyn_match); +QualityOfService_template(const QualityOfService_template& other_value): Record_Template() { copy_template(other_value); } +~QualityOfService_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QualityOfService_template& operator=(template_sel other_value); +QualityOfService_template& operator=(const QualityOfService& other_value); +QualityOfService_template& operator=(const OPTIONAL& other_value); +QualityOfService_template& operator=(const QualityOfService_template& other_value); +inline boolean match(const QualityOfService& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const QualityOfService& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +QualityOfService valueof() const; +inline QualityOfService_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare1(); +const BITSTRING_template& spare1() const; +BITSTRING_template& delayClass(); +const BITSTRING_template& delayClass() const; +BITSTRING_template& relabilityClass(); +const BITSTRING_template& relabilityClass() const; +BITSTRING_template& peakThroughput(); +const BITSTRING_template& peakThroughput() const; +BITSTRING_template& spare2(); +const BITSTRING_template& spare2() const; +BITSTRING_template& precedenceClass(); +const BITSTRING_template& precedenceClass() const; +BITSTRING_template& spare3(); +const BITSTRING_template& spare3() const; +BITSTRING_template& meanThroughput(); +const BITSTRING_template& meanThroughput() const; +BITSTRING_template& trafficClass(); +const BITSTRING_template& trafficClass() const; +BITSTRING_template& deliveryOrder(); +const BITSTRING_template& deliveryOrder() const; +BITSTRING_template& deliveryErrorSDU(); +const BITSTRING_template& deliveryErrorSDU() const; +BITSTRING_template& maxSduSize(); +const BITSTRING_template& maxSduSize() const; +BITSTRING_template& maxBitRateUL(); +const BITSTRING_template& maxBitRateUL() const; +BITSTRING_template& maxBitRateDL(); +const BITSTRING_template& maxBitRateDL() const; +BITSTRING_template& residualBER(); +const BITSTRING_template& residualBER() const; +BITSTRING_template& sduErrorRatio(); +const BITSTRING_template& sduErrorRatio() const; +BITSTRING_template& transferDelay(); +const BITSTRING_template& transferDelay() const; +BITSTRING_template& trafficHandlingPrio(); +const BITSTRING_template& trafficHandlingPrio() const; +BITSTRING_template& guaranteedBitRateUL(); +const BITSTRING_template& guaranteedBitRateUL() const; +BITSTRING_template& guaranteedBitRateDL(); +const BITSTRING_template& guaranteedBitRateDL() const; +BITSTRING_template& spare4(); +const BITSTRING_template& spare4() const; +BITSTRING_template& signallingInd(); +const BITSTRING_template& signallingInd() const; +BITSTRING_template& sourceStatisticsDescriptor(); +const BITSTRING_template& sourceStatisticsDescriptor() const; +BITSTRING_template& maxBitRateDL__Ext(); +const BITSTRING_template& maxBitRateDL__Ext() const; +BITSTRING_template& guaranteedBitRateDL__Ext(); +const BITSTRING_template& guaranteedBitRateDL__Ext() const; +BITSTRING_template& maxBitRateUL__Ext(); +const BITSTRING_template& maxBitRateUL__Ext() const; +BITSTRING_template& guaranteedBitRateUL__Ext(); +const BITSTRING_template& guaranteedBitRateUL__Ext() const; +BITSTRING_template& maxBitRateDL__Ext2(); +const BITSTRING_template& maxBitRateDL__Ext2() const; +BITSTRING_template& guaranteedBitRateDL__Ext2(); +const BITSTRING_template& guaranteedBitRateDL__Ext2() const; +BITSTRING_template& maxBitRateUL__Ext2(); +const BITSTRING_template& maxBitRateUL__Ext2() const; +BITSTRING_template& guaranteedBitRateUL__Ext2(); +const BITSTRING_template& guaranteedBitRateUL__Ext2() const; +Record_Template* create() const { return new QualityOfService_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RadioPriority : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_levelValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + RadioPriority(); + RadioPriority(const RadioPriority& other_value); + RadioPriority(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_levelValue); +inline RadioPriority& operator=(const RadioPriority& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RadioPriority& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RadioPriority& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& levelValue() + {return field_levelValue;} + inline const BITSTRING& levelValue() const + {return field_levelValue;} +Base_Type* clone() const { return new RadioPriority(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RadioPriority_template : public Record_Template { +void set_specific(); +public: +RadioPriority_template(): Record_Template() {} +RadioPriority_template(template_sel other_value): Record_Template(other_value) {} +RadioPriority_template(const RadioPriority& other_value): Record_Template() { copy_value(&other_value); } +RadioPriority_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RadioPriority_template(RadioPriority_template* p_precondition, RadioPriority_template* p_implied_template); +RadioPriority_template(Dynamic_Match_Interface* p_dyn_match); +RadioPriority_template(const RadioPriority_template& other_value): Record_Template() { copy_template(other_value); } +~RadioPriority_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RadioPriority_template& operator=(template_sel other_value); +RadioPriority_template& operator=(const RadioPriority& other_value); +RadioPriority_template& operator=(const OPTIONAL& other_value); +RadioPriority_template& operator=(const RadioPriority_template& other_value); +inline boolean match(const RadioPriority& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RadioPriority& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RadioPriority valueof() const; +inline RadioPriority_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& levelValue(); +const BITSTRING_template& levelValue() const; +Record_Template* create() const { return new RadioPriority_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Codec : public Record_Type { + OCTETSTRING field_sysId; + OCTETSTRING field_len; + BITSTRING field_bitMap1to8; + OPTIONAL field_bitMap9to16; + Base_Type* fld_vec[4]; + void init_vec(); +public: + Codec(); + Codec(const Codec& other_value); + Codec(const OCTETSTRING& par_sysId, + const OCTETSTRING& par_len, + const BITSTRING& par_bitMap1to8, + const OPTIONAL& par_bitMap9to16); +inline Codec& operator=(const Codec& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Codec& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Codec& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& sysId() + {return field_sysId;} + inline const OCTETSTRING& sysId() const + {return field_sysId;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline BITSTRING& bitMap1to8() + {return field_bitMap1to8;} + inline const BITSTRING& bitMap1to8() const + {return field_bitMap1to8;} + inline OPTIONAL& bitMap9to16() + {return field_bitMap9to16;} + inline const OPTIONAL& bitMap9to16() const + {return field_bitMap9to16;} +Base_Type* clone() const { return new Codec(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Codec_template : public Record_Template { +void set_specific(); +public: +Codec_template(): Record_Template() {} +Codec_template(template_sel other_value): Record_Template(other_value) {} +Codec_template(const Codec& other_value): Record_Template() { copy_value(&other_value); } +Codec_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Codec_template(Codec_template* p_precondition, Codec_template* p_implied_template); +Codec_template(Dynamic_Match_Interface* p_dyn_match); +Codec_template(const Codec_template& other_value): Record_Template() { copy_template(other_value); } +~Codec_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Codec_template& operator=(template_sel other_value); +Codec_template& operator=(const Codec& other_value); +Codec_template& operator=(const OPTIONAL& other_value); +Codec_template& operator=(const Codec_template& other_value); +inline boolean match(const Codec& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Codec& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Codec valueof() const; +inline Codec_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& sysId(); +const OCTETSTRING_template& sysId() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +BITSTRING_template& bitMap1to8(); +const BITSTRING_template& bitMap1to8() const; +BITSTRING_template& bitMap9to16(); +const BITSTRING_template& bitMap9to16() const; +Record_Template* create() const { return new Codec_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CodecList_codec : public Record_Of_Type { + +static const Codec UNBOUND_ELEM; + +public: +CodecList_codec(): Record_Of_Type() {} +CodecList_codec(null_type other_value): Record_Of_Type(other_value) {} +CodecList_codec(const CodecList_codec& other_value): Record_Of_Type(other_value) {} +~CodecList_codec() { clean_up(); } + +inline CodecList_codec& operator=(null_type other_value) { set_val(other_value); return *this; } +inline CodecList_codec& operator=(const CodecList_codec& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CodecList_codec& other_value) const { return is_equal(&other_value); } +boolean operator!=(const CodecList_codec& other_value) const { return !is_equal(&other_value); } +Codec& operator[](int index_value); +Codec& operator[](const INTEGER& index_value); +const Codec& operator[](int index_value) const; +const Codec& operator[](const INTEGER& index_value) const; +CodecList_codec operator<<=(int rotate_count) const; +CodecList_codec operator<<=(const INTEGER& rotate_count) const; +CodecList_codec operator>>=(int rotate_count) const; +CodecList_codec operator>>=(const INTEGER& rotate_count) const; + +CodecList_codec operator+(const CodecList_codec& other_value) const; + +CodecList_codec operator+(const OPTIONAL& other_value) const; + +CodecList_codec operator+(null_type) const; + +CodecList_codec substr(int index, int returncount) const; + +CodecList_codec replace(int index, int len, const CodecList_codec& repl) const; + +CodecList_codec replace(int index, int len, const CodecList_codec_template& repl) const; + +Base_Type* clone() const { return new CodecList_codec(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class CodecList_codec_template : public Record_Of_Template { +friend CodecList_codec_template operator+(template_sel left_template, const CodecList_codec_template& right_template); +friend CodecList_codec_template operator+(const CodecList_codec& left_value, const CodecList_codec_template& right_template); +friend CodecList_codec_template operator+(template_sel left_template, const CodecList_codec& right_value); +friend CodecList_codec_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend CodecList_codec_template operator+(const CodecList_codec& left_value, template_sel right_template); + +public: +CodecList_codec_template() {} +CodecList_codec_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +CodecList_codec_template(null_type other_value); +CodecList_codec_template(const CodecList_codec& other_value) { copy_value(&other_value); } +CodecList_codec_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +CodecList_codec_template(CodecList_codec_template* p_precondition, CodecList_codec_template* p_implied_template); +CodecList_codec_template(Dynamic_Match_Interface* p_dyn_match); +CodecList_codec_template(const CodecList_codec_template& other_value): Record_Of_Template() { copy_template(other_value); } +~CodecList_codec_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CodecList_codec_template& operator=(template_sel other_value); +CodecList_codec_template& operator=(null_type other_value); +CodecList_codec_template& operator=(const CodecList_codec& other_value); +CodecList_codec_template& operator=(const OPTIONAL& other_value); +CodecList_codec_template& operator=(const CodecList_codec_template& other_value); + +CodecList_codec_template operator+(const CodecList_codec_template& other_value) const; +CodecList_codec_template operator+(const CodecList_codec& other_value) const; +CodecList_codec_template operator+(template_sel other_value) const; +CodecList_codec_template operator+(null_type) const; + +Codec_template& operator[](int index_value); +Codec_template& operator[](const INTEGER& index_value); +const Codec_template& operator[](int index_value) const; +const Codec_template& operator[](const INTEGER& index_value) const; +inline boolean match(const CodecList_codec& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +CodecList_codec valueof() const; +CodecList_codec substr(int index, int returncount) const; + +CodecList_codec replace(int index, int len, const CodecList_codec_template& repl) const; + +CodecList_codec replace(int index, int len, const CodecList_codec& repl) const; + +inline CodecList_codec_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const CodecList_codec& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new CodecList_codec_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class CodecList : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + CodecList_codec field_codec; + Base_Type* fld_vec[3]; + void init_vec(); +public: + CodecList(); + CodecList(const CodecList& other_value); + CodecList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const CodecList_codec& par_codec); +inline CodecList& operator=(const CodecList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CodecList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CodecList& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline CodecList_codec& codec() + {return field_codec;} + inline const CodecList_codec& codec() const + {return field_codec;} +Base_Type* clone() const { return new CodecList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CodecList_template : public Record_Template { +void set_specific(); +public: +CodecList_template(): Record_Template() {} +CodecList_template(template_sel other_value): Record_Template(other_value) {} +CodecList_template(const CodecList& other_value): Record_Template() { copy_value(&other_value); } +CodecList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CodecList_template(CodecList_template* p_precondition, CodecList_template* p_implied_template); +CodecList_template(Dynamic_Match_Interface* p_dyn_match); +CodecList_template(const CodecList_template& other_value): Record_Template() { copy_template(other_value); } +~CodecList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CodecList_template& operator=(template_sel other_value); +CodecList_template& operator=(const CodecList& other_value); +CodecList_template& operator=(const OPTIONAL& other_value); +CodecList_template& operator=(const CodecList_template& other_value); +inline boolean match(const CodecList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CodecList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CodecList valueof() const; +inline CodecList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +CodecList_codec_template& codec(); +const CodecList_codec_template& codec() const; +Record_Template* create() const { return new CodecList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Request__Type : public Record_Type { + BITSTRING field_spare; + BITSTRING field_typeValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + Request__Type(); + Request__Type(const Request__Type& other_value); + Request__Type(const BITSTRING& par_spare, + const BITSTRING& par_typeValue); +inline Request__Type& operator=(const Request__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Request__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Request__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& typeValue() + {return field_typeValue;} + inline const BITSTRING& typeValue() const + {return field_typeValue;} +Base_Type* clone() const { return new Request__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Request__Type_template : public Record_Template { +void set_specific(); +public: +Request__Type_template(): Record_Template() {} +Request__Type_template(template_sel other_value): Record_Template(other_value) {} +Request__Type_template(const Request__Type& other_value): Record_Template() { copy_value(&other_value); } +Request__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Request__Type_template(Request__Type_template* p_precondition, Request__Type_template* p_implied_template); +Request__Type_template(Dynamic_Match_Interface* p_dyn_match); +Request__Type_template(const Request__Type_template& other_value): Record_Template() { copy_template(other_value); } +~Request__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Request__Type_template& operator=(template_sel other_value); +Request__Type_template& operator=(const Request__Type& other_value); +Request__Type_template& operator=(const OPTIONAL& other_value); +Request__Type_template& operator=(const Request__Type_template& other_value); +inline boolean match(const Request__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Request__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Request__Type valueof() const; +inline Request__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& typeValue(); +const BITSTRING_template& typeValue() const; +Record_Template* create() const { return new Request__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TMSI__Status : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare3; + BITSTRING field_flag; + Base_Type* fld_vec[3]; + void init_vec(); +public: + TMSI__Status(); + TMSI__Status(const TMSI__Status& other_value); + TMSI__Status(const OPTIONAL& par_iei, + const BITSTRING& par_spare3, + const BITSTRING& par_flag); +inline TMSI__Status& operator=(const TMSI__Status& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TMSI__Status& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TMSI__Status& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare3() + {return field_spare3;} + inline const BITSTRING& spare3() const + {return field_spare3;} + inline BITSTRING& flag() + {return field_flag;} + inline const BITSTRING& flag() const + {return field_flag;} +Base_Type* clone() const { return new TMSI__Status(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TMSI__Status_template : public Record_Template { +void set_specific(); +public: +TMSI__Status_template(): Record_Template() {} +TMSI__Status_template(template_sel other_value): Record_Template(other_value) {} +TMSI__Status_template(const TMSI__Status& other_value): Record_Template() { copy_value(&other_value); } +TMSI__Status_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TMSI__Status_template(TMSI__Status_template* p_precondition, TMSI__Status_template* p_implied_template); +TMSI__Status_template(Dynamic_Match_Interface* p_dyn_match); +TMSI__Status_template(const TMSI__Status_template& other_value): Record_Template() { copy_template(other_value); } +~TMSI__Status_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TMSI__Status_template& operator=(template_sel other_value); +TMSI__Status_template& operator=(const TMSI__Status& other_value); +TMSI__Status_template& operator=(const OPTIONAL& other_value); +TMSI__Status_template& operator=(const TMSI__Status_template& other_value); +inline boolean match(const TMSI__Status& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TMSI__Status& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TMSI__Status valueof() const; +inline TMSI__Status_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare3(); +const BITSTRING_template& spare3() const; +BITSTRING_template& flag(); +const BITSTRING_template& flag() const; +Record_Template* create() const { return new TMSI__Status_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TrafficFlowTemplate : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_tftOperationCode; + BITSTRING field_eBit; + BITSTRING field_noOfPktFilter; + OPTIONAL field_packetFilterList; + OPTIONAL field_parameterList; + Base_Type* fld_vec[7]; + void init_vec(); +public: + TrafficFlowTemplate(); + TrafficFlowTemplate(const TrafficFlowTemplate& other_value); + TrafficFlowTemplate(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_tftOperationCode, + const BITSTRING& par_eBit, + const BITSTRING& par_noOfPktFilter, + const OPTIONAL& par_packetFilterList, + const OPTIONAL& par_parameterList); +inline TrafficFlowTemplate& operator=(const TrafficFlowTemplate& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TrafficFlowTemplate& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TrafficFlowTemplate& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& tftOperationCode() + {return field_tftOperationCode;} + inline const BITSTRING& tftOperationCode() const + {return field_tftOperationCode;} + inline BITSTRING& eBit() + {return field_eBit;} + inline const BITSTRING& eBit() const + {return field_eBit;} + inline BITSTRING& noOfPktFilter() + {return field_noOfPktFilter;} + inline const BITSTRING& noOfPktFilter() const + {return field_noOfPktFilter;} + inline OPTIONAL& packetFilterList() + {return field_packetFilterList;} + inline const OPTIONAL& packetFilterList() const + {return field_packetFilterList;} + inline OPTIONAL& parameterList() + {return field_parameterList;} + inline const OPTIONAL& parameterList() const + {return field_parameterList;} +Base_Type* clone() const { return new TrafficFlowTemplate(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TrafficFlowTemplate_template : public Record_Template { +void set_specific(); +public: +TrafficFlowTemplate_template(): Record_Template() {} +TrafficFlowTemplate_template(template_sel other_value): Record_Template(other_value) {} +TrafficFlowTemplate_template(const TrafficFlowTemplate& other_value): Record_Template() { copy_value(&other_value); } +TrafficFlowTemplate_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TrafficFlowTemplate_template(TrafficFlowTemplate_template* p_precondition, TrafficFlowTemplate_template* p_implied_template); +TrafficFlowTemplate_template(Dynamic_Match_Interface* p_dyn_match); +TrafficFlowTemplate_template(const TrafficFlowTemplate_template& other_value): Record_Template() { copy_template(other_value); } +~TrafficFlowTemplate_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TrafficFlowTemplate_template& operator=(template_sel other_value); +TrafficFlowTemplate_template& operator=(const TrafficFlowTemplate& other_value); +TrafficFlowTemplate_template& operator=(const OPTIONAL& other_value); +TrafficFlowTemplate_template& operator=(const TrafficFlowTemplate_template& other_value); +inline boolean match(const TrafficFlowTemplate& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TrafficFlowTemplate& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TrafficFlowTemplate valueof() const; +inline TrafficFlowTemplate_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& tftOperationCode(); +const BITSTRING_template& tftOperationCode() const; +BITSTRING_template& eBit(); +const BITSTRING_template& eBit() const; +BITSTRING_template& noOfPktFilter(); +const BITSTRING_template& noOfPktFilter() const; +TrafficFlowTemplate_packetFilterList_template& packetFilterList(); +const TrafficFlowTemplate_packetFilterList_template& packetFilterList() const; +TrafficFlowTemplate_parameterList_template& parameterList(); +const TrafficFlowTemplate_parameterList_template& parameterList() const; +Record_Template* create() const { return new TrafficFlowTemplate_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TrafficFlowTemplate_packetFilterList : public Record_Of_Type { + +static const PacketFilter UNBOUND_ELEM; + +public: +TrafficFlowTemplate_packetFilterList(): Record_Of_Type() {} +TrafficFlowTemplate_packetFilterList(null_type other_value): Record_Of_Type(other_value) {} +TrafficFlowTemplate_packetFilterList(const TrafficFlowTemplate_packetFilterList& other_value): Record_Of_Type(other_value) {} +~TrafficFlowTemplate_packetFilterList() { clean_up(); } + +inline TrafficFlowTemplate_packetFilterList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline TrafficFlowTemplate_packetFilterList& operator=(const TrafficFlowTemplate_packetFilterList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TrafficFlowTemplate_packetFilterList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const TrafficFlowTemplate_packetFilterList& other_value) const { return !is_equal(&other_value); } +PacketFilter& operator[](int index_value); +PacketFilter& operator[](const INTEGER& index_value); +const PacketFilter& operator[](int index_value) const; +const PacketFilter& operator[](const INTEGER& index_value) const; +TrafficFlowTemplate_packetFilterList operator<<=(int rotate_count) const; +TrafficFlowTemplate_packetFilterList operator<<=(const INTEGER& rotate_count) const; +TrafficFlowTemplate_packetFilterList operator>>=(int rotate_count) const; +TrafficFlowTemplate_packetFilterList operator>>=(const INTEGER& rotate_count) const; + +TrafficFlowTemplate_packetFilterList operator+(const TrafficFlowTemplate_packetFilterList& other_value) const; + +TrafficFlowTemplate_packetFilterList operator+(const OPTIONAL& other_value) const; + +TrafficFlowTemplate_packetFilterList operator+(null_type) const; + +TrafficFlowTemplate_packetFilterList substr(int index, int returncount) const; + +TrafficFlowTemplate_packetFilterList replace(int index, int len, const TrafficFlowTemplate_packetFilterList& repl) const; + +TrafficFlowTemplate_packetFilterList replace(int index, int len, const TrafficFlowTemplate_packetFilterList_template& repl) const; + +Base_Type* clone() const { return new TrafficFlowTemplate_packetFilterList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class TrafficFlowTemplate_packetFilterList_template : public Record_Of_Template { +friend TrafficFlowTemplate_packetFilterList_template operator+(template_sel left_template, const TrafficFlowTemplate_packetFilterList_template& right_template); +friend TrafficFlowTemplate_packetFilterList_template operator+(const TrafficFlowTemplate_packetFilterList& left_value, const TrafficFlowTemplate_packetFilterList_template& right_template); +friend TrafficFlowTemplate_packetFilterList_template operator+(template_sel left_template, const TrafficFlowTemplate_packetFilterList& right_value); +friend TrafficFlowTemplate_packetFilterList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend TrafficFlowTemplate_packetFilterList_template operator+(const TrafficFlowTemplate_packetFilterList& left_value, template_sel right_template); + +public: +TrafficFlowTemplate_packetFilterList_template() {} +TrafficFlowTemplate_packetFilterList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +TrafficFlowTemplate_packetFilterList_template(null_type other_value); +TrafficFlowTemplate_packetFilterList_template(const TrafficFlowTemplate_packetFilterList& other_value) { copy_value(&other_value); } +TrafficFlowTemplate_packetFilterList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +TrafficFlowTemplate_packetFilterList_template(TrafficFlowTemplate_packetFilterList_template* p_precondition, TrafficFlowTemplate_packetFilterList_template* p_implied_template); +TrafficFlowTemplate_packetFilterList_template(Dynamic_Match_Interface* p_dyn_match); +TrafficFlowTemplate_packetFilterList_template(const TrafficFlowTemplate_packetFilterList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~TrafficFlowTemplate_packetFilterList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TrafficFlowTemplate_packetFilterList_template& operator=(template_sel other_value); +TrafficFlowTemplate_packetFilterList_template& operator=(null_type other_value); +TrafficFlowTemplate_packetFilterList_template& operator=(const TrafficFlowTemplate_packetFilterList& other_value); +TrafficFlowTemplate_packetFilterList_template& operator=(const OPTIONAL& other_value); +TrafficFlowTemplate_packetFilterList_template& operator=(const TrafficFlowTemplate_packetFilterList_template& other_value); + +TrafficFlowTemplate_packetFilterList_template operator+(const TrafficFlowTemplate_packetFilterList_template& other_value) const; +TrafficFlowTemplate_packetFilterList_template operator+(const TrafficFlowTemplate_packetFilterList& other_value) const; +TrafficFlowTemplate_packetFilterList_template operator+(template_sel other_value) const; +TrafficFlowTemplate_packetFilterList_template operator+(null_type) const; + +PacketFilter_template& operator[](int index_value); +PacketFilter_template& operator[](const INTEGER& index_value); +const PacketFilter_template& operator[](int index_value) const; +const PacketFilter_template& operator[](const INTEGER& index_value) const; +inline boolean match(const TrafficFlowTemplate_packetFilterList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +TrafficFlowTemplate_packetFilterList valueof() const; +TrafficFlowTemplate_packetFilterList substr(int index, int returncount) const; + +TrafficFlowTemplate_packetFilterList replace(int index, int len, const TrafficFlowTemplate_packetFilterList_template& repl) const; + +TrafficFlowTemplate_packetFilterList replace(int index, int len, const TrafficFlowTemplate_packetFilterList& repl) const; + +inline TrafficFlowTemplate_packetFilterList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const TrafficFlowTemplate_packetFilterList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new TrafficFlowTemplate_packetFilterList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class PacketFilter : public Record_Type { + BITSTRING field_spare; + BITSTRING field_direction; + HEXSTRING field_iei; + OPTIONAL field_precedence; + OPTIONAL field_iel; + OPTIONAL field_contents; + Base_Type* fld_vec[6]; + void init_vec(); +public: + PacketFilter(); + PacketFilter(const PacketFilter& other_value); + PacketFilter(const BITSTRING& par_spare, + const BITSTRING& par_direction, + const HEXSTRING& par_iei, + const OPTIONAL& par_precedence, + const OPTIONAL& par_iel, + const OPTIONAL& par_contents); +inline PacketFilter& operator=(const PacketFilter& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PacketFilter& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PacketFilter& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& direction() + {return field_direction;} + inline const BITSTRING& direction() const + {return field_direction;} + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline OPTIONAL& precedence() + {return field_precedence;} + inline const OPTIONAL& precedence() const + {return field_precedence;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OPTIONAL& contents() + {return field_contents;} + inline const OPTIONAL& contents() const + {return field_contents;} +Base_Type* clone() const { return new PacketFilter(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PacketFilter_template : public Record_Template { +void set_specific(); +public: +PacketFilter_template(): Record_Template() {} +PacketFilter_template(template_sel other_value): Record_Template(other_value) {} +PacketFilter_template(const PacketFilter& other_value): Record_Template() { copy_value(&other_value); } +PacketFilter_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PacketFilter_template(PacketFilter_template* p_precondition, PacketFilter_template* p_implied_template); +PacketFilter_template(Dynamic_Match_Interface* p_dyn_match); +PacketFilter_template(const PacketFilter_template& other_value): Record_Template() { copy_template(other_value); } +~PacketFilter_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PacketFilter_template& operator=(template_sel other_value); +PacketFilter_template& operator=(const PacketFilter& other_value); +PacketFilter_template& operator=(const OPTIONAL& other_value); +PacketFilter_template& operator=(const PacketFilter_template& other_value); +inline boolean match(const PacketFilter& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PacketFilter& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PacketFilter valueof() const; +inline PacketFilter_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& direction(); +const BITSTRING_template& direction() const; +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& precedence(); +const BITSTRING_template& precedence() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +PacketFilterContents_template& contents(); +const PacketFilterContents_template& contents() const; +Record_Template* create() const { return new PacketFilter_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PacketFilterContents : public Record_Of_Type { + +static const PacketFilterComponent UNBOUND_ELEM; + +public: +PacketFilterContents(): Record_Of_Type() {} +PacketFilterContents(null_type other_value): Record_Of_Type(other_value) {} +PacketFilterContents(const PacketFilterContents& other_value): Record_Of_Type(other_value) {} +~PacketFilterContents() { clean_up(); } + +inline PacketFilterContents& operator=(null_type other_value) { set_val(other_value); return *this; } +inline PacketFilterContents& operator=(const PacketFilterContents& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PacketFilterContents& other_value) const { return is_equal(&other_value); } +boolean operator!=(const PacketFilterContents& other_value) const { return !is_equal(&other_value); } +PacketFilterComponent& operator[](int index_value); +PacketFilterComponent& operator[](const INTEGER& index_value); +const PacketFilterComponent& operator[](int index_value) const; +const PacketFilterComponent& operator[](const INTEGER& index_value) const; +PacketFilterContents operator<<=(int rotate_count) const; +PacketFilterContents operator<<=(const INTEGER& rotate_count) const; +PacketFilterContents operator>>=(int rotate_count) const; +PacketFilterContents operator>>=(const INTEGER& rotate_count) const; + +PacketFilterContents operator+(const PacketFilterContents& other_value) const; + +PacketFilterContents operator+(const OPTIONAL& other_value) const; + +PacketFilterContents operator+(null_type) const; + +PacketFilterContents substr(int index, int returncount) const; + +PacketFilterContents replace(int index, int len, const PacketFilterContents& repl) const; + +PacketFilterContents replace(int index, int len, const PacketFilterContents_template& repl) const; + +Base_Type* clone() const { return new PacketFilterContents(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class PacketFilterContents_template : public Record_Of_Template { +friend PacketFilterContents_template operator+(template_sel left_template, const PacketFilterContents_template& right_template); +friend PacketFilterContents_template operator+(const PacketFilterContents& left_value, const PacketFilterContents_template& right_template); +friend PacketFilterContents_template operator+(template_sel left_template, const PacketFilterContents& right_value); +friend PacketFilterContents_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend PacketFilterContents_template operator+(const PacketFilterContents& left_value, template_sel right_template); + +public: +PacketFilterContents_template() {} +PacketFilterContents_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +PacketFilterContents_template(null_type other_value); +PacketFilterContents_template(const PacketFilterContents& other_value) { copy_value(&other_value); } +PacketFilterContents_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +PacketFilterContents_template(PacketFilterContents_template* p_precondition, PacketFilterContents_template* p_implied_template); +PacketFilterContents_template(Dynamic_Match_Interface* p_dyn_match); +PacketFilterContents_template(const PacketFilterContents_template& other_value): Record_Of_Template() { copy_template(other_value); } +~PacketFilterContents_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PacketFilterContents_template& operator=(template_sel other_value); +PacketFilterContents_template& operator=(null_type other_value); +PacketFilterContents_template& operator=(const PacketFilterContents& other_value); +PacketFilterContents_template& operator=(const OPTIONAL& other_value); +PacketFilterContents_template& operator=(const PacketFilterContents_template& other_value); + +PacketFilterContents_template operator+(const PacketFilterContents_template& other_value) const; +PacketFilterContents_template operator+(const PacketFilterContents& other_value) const; +PacketFilterContents_template operator+(template_sel other_value) const; +PacketFilterContents_template operator+(null_type) const; + +PacketFilterComponent_template& operator[](int index_value); +PacketFilterComponent_template& operator[](const INTEGER& index_value); +const PacketFilterComponent_template& operator[](int index_value) const; +const PacketFilterComponent_template& operator[](const INTEGER& index_value) const; +inline boolean match(const PacketFilterContents& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +PacketFilterContents valueof() const; +PacketFilterContents substr(int index, int returncount) const; + +PacketFilterContents replace(int index, int len, const PacketFilterContents_template& repl) const; + +PacketFilterContents replace(int index, int len, const PacketFilterContents& repl) const; + +inline PacketFilterContents_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const PacketFilterContents& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new PacketFilterContents_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class PacketFilterComponentValue : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_ipv4RemoteAddress = 1, ALT_ipv6RemoteAddress = 2, ALT_protocolIdNextHeader = 3, ALT_singleLocalPort = 4, ALT_localPortRange = 5, ALT_singleRemotePort = 6, ALT_remotePortRange = 7, ALT_securityParameterIndex = 8, ALT_typeOfServiceTrafficClass = 9, ALT_flowLabel = 10 }; +private: +union_selection_type union_selection; +union { +OCTETSTRING *field_ipv4RemoteAddress; +OCTETSTRING *field_ipv6RemoteAddress; +OCTETSTRING *field_protocolIdNextHeader; +OCTETSTRING *field_singleLocalPort; +OCTETSTRING *field_localPortRange; +OCTETSTRING *field_singleRemotePort; +OCTETSTRING *field_remotePortRange; +OCTETSTRING *field_securityParameterIndex; +OCTETSTRING *field_typeOfServiceTrafficClass; +OCTETSTRING *field_flowLabel; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const PacketFilterComponentValue& other_value); + +public: +PacketFilterComponentValue(); +PacketFilterComponentValue(const PacketFilterComponentValue& other_value); +~PacketFilterComponentValue(); +PacketFilterComponentValue& operator=(const PacketFilterComponentValue& other_value); +boolean operator==(const PacketFilterComponentValue& other_value) const; +inline boolean operator!=(const PacketFilterComponentValue& other_value) const { return !(*this == other_value); } +OCTETSTRING& ipv4RemoteAddress(); +const OCTETSTRING& ipv4RemoteAddress() const; +OCTETSTRING& ipv6RemoteAddress(); +const OCTETSTRING& ipv6RemoteAddress() const; +OCTETSTRING& protocolIdNextHeader(); +const OCTETSTRING& protocolIdNextHeader() const; +OCTETSTRING& singleLocalPort(); +const OCTETSTRING& singleLocalPort() const; +OCTETSTRING& localPortRange(); +const OCTETSTRING& localPortRange() const; +OCTETSTRING& singleRemotePort(); +const OCTETSTRING& singleRemotePort() const; +OCTETSTRING& remotePortRange(); +const OCTETSTRING& remotePortRange() const; +OCTETSTRING& securityParameterIndex(); +const OCTETSTRING& securityParameterIndex() const; +OCTETSTRING& typeOfServiceTrafficClass(); +const OCTETSTRING& typeOfServiceTrafficClass() const; +OCTETSTRING& flowLabel(); +const OCTETSTRING& flowLabel() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + 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); +int RAW_encode_negtest(const Erroneous_descriptor_t *, const TTCN_Typedescriptor_t&, RAW_enc_tree&) const; +}; + +class PacketFilterComponentValue_template : public Base_Template { +union { +struct { +PacketFilterComponentValue::union_selection_type union_selection; +union { +OCTETSTRING_template *field_ipv4RemoteAddress; +OCTETSTRING_template *field_ipv6RemoteAddress; +OCTETSTRING_template *field_protocolIdNextHeader; +OCTETSTRING_template *field_singleLocalPort; +OCTETSTRING_template *field_localPortRange; +OCTETSTRING_template *field_singleRemotePort; +OCTETSTRING_template *field_remotePortRange; +OCTETSTRING_template *field_securityParameterIndex; +OCTETSTRING_template *field_typeOfServiceTrafficClass; +OCTETSTRING_template *field_flowLabel; +}; +} single_value; +struct { +unsigned int n_values; +PacketFilterComponentValue_template *list_value; +} value_list; +struct { +PacketFilterComponentValue_template* precondition; +PacketFilterComponentValue_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const PacketFilterComponentValue& other_value); + +void copy_template(const PacketFilterComponentValue_template& other_value); + +public: +PacketFilterComponentValue_template(); +PacketFilterComponentValue_template(template_sel other_value); +PacketFilterComponentValue_template(const PacketFilterComponentValue& other_value); +PacketFilterComponentValue_template(const OPTIONAL& other_value); +PacketFilterComponentValue_template(PacketFilterComponentValue_template* p_precondition, PacketFilterComponentValue_template* p_implied_template); +PacketFilterComponentValue_template(Dynamic_Match_Interface* p_dyn_match); +PacketFilterComponentValue_template(const PacketFilterComponentValue_template& other_value); +~PacketFilterComponentValue_template(); +void clean_up(); +PacketFilterComponentValue_template& operator=(template_sel other_value); +PacketFilterComponentValue_template& operator=(const PacketFilterComponentValue& other_value); +PacketFilterComponentValue_template& operator=(const OPTIONAL& other_value); +PacketFilterComponentValue_template& operator=(const PacketFilterComponentValue_template& other_value); +boolean match(const PacketFilterComponentValue& other_value, boolean legacy = FALSE) const; +boolean is_value() const;PacketFilterComponentValue valueof() const; +PacketFilterComponentValue_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +PacketFilterComponentValue::union_selection_type get_union_selection() const; +OCTETSTRING_template& ipv4RemoteAddress(); +const OCTETSTRING_template& ipv4RemoteAddress() const; +OCTETSTRING_template& ipv6RemoteAddress(); +const OCTETSTRING_template& ipv6RemoteAddress() const; +OCTETSTRING_template& protocolIdNextHeader(); +const OCTETSTRING_template& protocolIdNextHeader() const; +OCTETSTRING_template& singleLocalPort(); +const OCTETSTRING_template& singleLocalPort() const; +OCTETSTRING_template& localPortRange(); +const OCTETSTRING_template& localPortRange() const; +OCTETSTRING_template& singleRemotePort(); +const OCTETSTRING_template& singleRemotePort() const; +OCTETSTRING_template& remotePortRange(); +const OCTETSTRING_template& remotePortRange() const; +OCTETSTRING_template& securityParameterIndex(); +const OCTETSTRING_template& securityParameterIndex() const; +OCTETSTRING_template& typeOfServiceTrafficClass(); +const OCTETSTRING_template& typeOfServiceTrafficClass() const; +OCTETSTRING_template& flowLabel(); +const OCTETSTRING_template& flowLabel() const; +boolean ischosen(PacketFilterComponentValue::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const PacketFilterComponentValue& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class PacketFilterComponent : public Record_Type { + OCTETSTRING field_id; + PacketFilterComponentValue field_packetFilterComponentValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + PacketFilterComponent(); + PacketFilterComponent(const PacketFilterComponent& other_value); + PacketFilterComponent(const OCTETSTRING& par_id, + const PacketFilterComponentValue& par_packetFilterComponentValue); +inline PacketFilterComponent& operator=(const PacketFilterComponent& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PacketFilterComponent& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PacketFilterComponent& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline PacketFilterComponentValue& packetFilterComponentValue() + {return field_packetFilterComponentValue;} + inline const PacketFilterComponentValue& packetFilterComponentValue() const + {return field_packetFilterComponentValue;} +Base_Type* clone() const { return new PacketFilterComponent(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const; +virtual int RAW_encode_negtest(const Erroneous_descriptor_t *, 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); +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PacketFilterComponent_template : public Record_Template { +void set_specific(); +public: +PacketFilterComponent_template(): Record_Template() {} +PacketFilterComponent_template(template_sel other_value): Record_Template(other_value) {} +PacketFilterComponent_template(const PacketFilterComponent& other_value): Record_Template() { copy_value(&other_value); } +PacketFilterComponent_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PacketFilterComponent_template(PacketFilterComponent_template* p_precondition, PacketFilterComponent_template* p_implied_template); +PacketFilterComponent_template(Dynamic_Match_Interface* p_dyn_match); +PacketFilterComponent_template(const PacketFilterComponent_template& other_value): Record_Template() { copy_template(other_value); } +~PacketFilterComponent_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PacketFilterComponent_template& operator=(template_sel other_value); +PacketFilterComponent_template& operator=(const PacketFilterComponent& other_value); +PacketFilterComponent_template& operator=(const OPTIONAL& other_value); +PacketFilterComponent_template& operator=(const PacketFilterComponent_template& other_value); +inline boolean match(const PacketFilterComponent& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PacketFilterComponent& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PacketFilterComponent valueof() const; +inline PacketFilterComponent_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +PacketFilterComponentValue_template& packetFilterComponentValue(); +const PacketFilterComponentValue_template& packetFilterComponentValue() const; +Record_Template* create() const { return new PacketFilterComponent_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TrafficFlowTemplate_parameterList : public Record_Of_Type { + +static const TftParameter UNBOUND_ELEM; + +public: +TrafficFlowTemplate_parameterList(): Record_Of_Type() {} +TrafficFlowTemplate_parameterList(null_type other_value): Record_Of_Type(other_value) {} +TrafficFlowTemplate_parameterList(const TrafficFlowTemplate_parameterList& other_value): Record_Of_Type(other_value) {} +~TrafficFlowTemplate_parameterList() { clean_up(); } + +inline TrafficFlowTemplate_parameterList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline TrafficFlowTemplate_parameterList& operator=(const TrafficFlowTemplate_parameterList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TrafficFlowTemplate_parameterList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const TrafficFlowTemplate_parameterList& other_value) const { return !is_equal(&other_value); } +TftParameter& operator[](int index_value); +TftParameter& operator[](const INTEGER& index_value); +const TftParameter& operator[](int index_value) const; +const TftParameter& operator[](const INTEGER& index_value) const; +TrafficFlowTemplate_parameterList operator<<=(int rotate_count) const; +TrafficFlowTemplate_parameterList operator<<=(const INTEGER& rotate_count) const; +TrafficFlowTemplate_parameterList operator>>=(int rotate_count) const; +TrafficFlowTemplate_parameterList operator>>=(const INTEGER& rotate_count) const; + +TrafficFlowTemplate_parameterList operator+(const TrafficFlowTemplate_parameterList& other_value) const; + +TrafficFlowTemplate_parameterList operator+(const OPTIONAL& other_value) const; + +TrafficFlowTemplate_parameterList operator+(null_type) const; + +TrafficFlowTemplate_parameterList substr(int index, int returncount) const; + +TrafficFlowTemplate_parameterList replace(int index, int len, const TrafficFlowTemplate_parameterList& repl) const; + +TrafficFlowTemplate_parameterList replace(int index, int len, const TrafficFlowTemplate_parameterList_template& repl) const; + +Base_Type* clone() const { return new TrafficFlowTemplate_parameterList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class TrafficFlowTemplate_parameterList_template : public Record_Of_Template { +friend TrafficFlowTemplate_parameterList_template operator+(template_sel left_template, const TrafficFlowTemplate_parameterList_template& right_template); +friend TrafficFlowTemplate_parameterList_template operator+(const TrafficFlowTemplate_parameterList& left_value, const TrafficFlowTemplate_parameterList_template& right_template); +friend TrafficFlowTemplate_parameterList_template operator+(template_sel left_template, const TrafficFlowTemplate_parameterList& right_value); +friend TrafficFlowTemplate_parameterList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend TrafficFlowTemplate_parameterList_template operator+(const TrafficFlowTemplate_parameterList& left_value, template_sel right_template); + +public: +TrafficFlowTemplate_parameterList_template() {} +TrafficFlowTemplate_parameterList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +TrafficFlowTemplate_parameterList_template(null_type other_value); +TrafficFlowTemplate_parameterList_template(const TrafficFlowTemplate_parameterList& other_value) { copy_value(&other_value); } +TrafficFlowTemplate_parameterList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +TrafficFlowTemplate_parameterList_template(TrafficFlowTemplate_parameterList_template* p_precondition, TrafficFlowTemplate_parameterList_template* p_implied_template); +TrafficFlowTemplate_parameterList_template(Dynamic_Match_Interface* p_dyn_match); +TrafficFlowTemplate_parameterList_template(const TrafficFlowTemplate_parameterList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~TrafficFlowTemplate_parameterList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TrafficFlowTemplate_parameterList_template& operator=(template_sel other_value); +TrafficFlowTemplate_parameterList_template& operator=(null_type other_value); +TrafficFlowTemplate_parameterList_template& operator=(const TrafficFlowTemplate_parameterList& other_value); +TrafficFlowTemplate_parameterList_template& operator=(const OPTIONAL& other_value); +TrafficFlowTemplate_parameterList_template& operator=(const TrafficFlowTemplate_parameterList_template& other_value); + +TrafficFlowTemplate_parameterList_template operator+(const TrafficFlowTemplate_parameterList_template& other_value) const; +TrafficFlowTemplate_parameterList_template operator+(const TrafficFlowTemplate_parameterList& other_value) const; +TrafficFlowTemplate_parameterList_template operator+(template_sel other_value) const; +TrafficFlowTemplate_parameterList_template operator+(null_type) const; + +TftParameter_template& operator[](int index_value); +TftParameter_template& operator[](const INTEGER& index_value); +const TftParameter_template& operator[](int index_value) const; +const TftParameter_template& operator[](const INTEGER& index_value) const; +inline boolean match(const TrafficFlowTemplate_parameterList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +TrafficFlowTemplate_parameterList valueof() const; +TrafficFlowTemplate_parameterList substr(int index, int returncount) const; + +TrafficFlowTemplate_parameterList replace(int index, int len, const TrafficFlowTemplate_parameterList_template& repl) const; + +TrafficFlowTemplate_parameterList replace(int index, int len, const TrafficFlowTemplate_parameterList& repl) const; + +inline TrafficFlowTemplate_parameterList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const TrafficFlowTemplate_parameterList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new TrafficFlowTemplate_parameterList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class TftParameter : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_contents; + Base_Type* fld_vec[3]; + void init_vec(); +public: + TftParameter(); + TftParameter(const TftParameter& other_value); + TftParameter(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_contents); +inline TftParameter& operator=(const TftParameter& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TftParameter& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TftParameter& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& contents() + {return field_contents;} + inline const OCTETSTRING& contents() const + {return field_contents;} +Base_Type* clone() const { return new TftParameter(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TftParameter_template : public Record_Template { +void set_specific(); +public: +TftParameter_template(): Record_Template() {} +TftParameter_template(template_sel other_value): Record_Template(other_value) {} +TftParameter_template(const TftParameter& other_value): Record_Template() { copy_value(&other_value); } +TftParameter_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TftParameter_template(TftParameter_template* p_precondition, TftParameter_template* p_implied_template); +TftParameter_template(Dynamic_Match_Interface* p_dyn_match); +TftParameter_template(const TftParameter_template& other_value): Record_Template() { copy_template(other_value); } +~TftParameter_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TftParameter_template& operator=(template_sel other_value); +TftParameter_template& operator=(const TftParameter& other_value); +TftParameter_template& operator=(const OPTIONAL& other_value); +TftParameter_template& operator=(const TftParameter_template& other_value); +inline boolean match(const TftParameter& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TftParameter& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TftParameter valueof() const; +inline TftParameter_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& contents(); +const OCTETSTRING_template& contents() const; +Record_Template* create() const { return new TftParameter_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__NetworkCap : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_eeaCap; + BITSTRING field_eiaCap; + OPTIONAL field_ueaCap; + OPTIONAL field_uiaCap; + OPTIONAL field_srvcc__LPP__ProSeCap; + OPTIONAL field_cIoT__proSeCap; + OPTIONAL field_cIoT__V2X; + OPTIONAL field_edt__WUS; + OPTIONAL field_musim; + OPTIONAL field_spare; + Base_Type* fld_vec[12]; + void init_vec(); +public: + UE__NetworkCap(); + UE__NetworkCap(const UE__NetworkCap& other_value); + UE__NetworkCap(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_eeaCap, + const BITSTRING& par_eiaCap, + const OPTIONAL& par_ueaCap, + const OPTIONAL& par_uiaCap, + const OPTIONAL& par_srvcc__LPP__ProSeCap, + const OPTIONAL& par_cIoT__proSeCap, + const OPTIONAL& par_cIoT__V2X, + const OPTIONAL& par_edt__WUS, + const OPTIONAL& par_musim, + const OPTIONAL& par_spare); +inline UE__NetworkCap& operator=(const UE__NetworkCap& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__NetworkCap& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__NetworkCap& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& eeaCap() + {return field_eeaCap;} + inline const BITSTRING& eeaCap() const + {return field_eeaCap;} + inline BITSTRING& eiaCap() + {return field_eiaCap;} + inline const BITSTRING& eiaCap() const + {return field_eiaCap;} + inline OPTIONAL& ueaCap() + {return field_ueaCap;} + inline const OPTIONAL& ueaCap() const + {return field_ueaCap;} + inline OPTIONAL& uiaCap() + {return field_uiaCap;} + inline const OPTIONAL& uiaCap() const + {return field_uiaCap;} + inline OPTIONAL& srvcc__LPP__ProSeCap() + {return field_srvcc__LPP__ProSeCap;} + inline const OPTIONAL& srvcc__LPP__ProSeCap() const + {return field_srvcc__LPP__ProSeCap;} + inline OPTIONAL& cIoT__proSeCap() + {return field_cIoT__proSeCap;} + inline const OPTIONAL& cIoT__proSeCap() const + {return field_cIoT__proSeCap;} + inline OPTIONAL& cIoT__V2X() + {return field_cIoT__V2X;} + inline const OPTIONAL& cIoT__V2X() const + {return field_cIoT__V2X;} + inline OPTIONAL& edt__WUS() + {return field_edt__WUS;} + inline const OPTIONAL& edt__WUS() const + {return field_edt__WUS;} + inline OPTIONAL& musim() + {return field_musim;} + inline const OPTIONAL& musim() const + {return field_musim;} + inline OPTIONAL& spare() + {return field_spare;} + inline const OPTIONAL& spare() const + {return field_spare;} +Base_Type* clone() const { return new UE__NetworkCap(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 12; } +int optional_count() const { return 10; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__NetworkCap_template : public Record_Template { +void set_specific(); +public: +UE__NetworkCap_template(): Record_Template() {} +UE__NetworkCap_template(template_sel other_value): Record_Template(other_value) {} +UE__NetworkCap_template(const UE__NetworkCap& other_value): Record_Template() { copy_value(&other_value); } +UE__NetworkCap_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__NetworkCap_template(UE__NetworkCap_template* p_precondition, UE__NetworkCap_template* p_implied_template); +UE__NetworkCap_template(Dynamic_Match_Interface* p_dyn_match); +UE__NetworkCap_template(const UE__NetworkCap_template& other_value): Record_Template() { copy_template(other_value); } +~UE__NetworkCap_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__NetworkCap_template& operator=(template_sel other_value); +UE__NetworkCap_template& operator=(const UE__NetworkCap& other_value); +UE__NetworkCap_template& operator=(const OPTIONAL& other_value); +UE__NetworkCap_template& operator=(const UE__NetworkCap_template& other_value); +inline boolean match(const UE__NetworkCap& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__NetworkCap& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__NetworkCap valueof() const; +inline UE__NetworkCap_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& eeaCap(); +const BITSTRING_template& eeaCap() const; +BITSTRING_template& eiaCap(); +const BITSTRING_template& eiaCap() const; +BITSTRING_template& ueaCap(); +const BITSTRING_template& ueaCap() const; +BITSTRING_template& uiaCap(); +const BITSTRING_template& uiaCap() const; +BITSTRING_template& srvcc__LPP__ProSeCap(); +const BITSTRING_template& srvcc__LPP__ProSeCap() const; +BITSTRING_template& cIoT__proSeCap(); +const BITSTRING_template& cIoT__proSeCap() const; +BITSTRING_template& cIoT__V2X(); +const BITSTRING_template& cIoT__V2X() const; +BITSTRING_template& edt__WUS(); +const BITSTRING_template& edt__WUS() const; +BITSTRING_template& musim(); +const BITSTRING_template& musim() const; +OCTETSTRING_template& spare(); +const OCTETSTRING_template& spare() const; +Record_Template* create() const { return new UE__NetworkCap_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ReAttemptIndicator : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_eplmncValue; + BITSTRING field_ratcValue; + Base_Type* fld_vec[5]; + void init_vec(); +public: + ReAttemptIndicator(); + ReAttemptIndicator(const ReAttemptIndicator& other_value); + ReAttemptIndicator(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_eplmncValue, + const BITSTRING& par_ratcValue); +inline ReAttemptIndicator& operator=(const ReAttemptIndicator& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ReAttemptIndicator& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ReAttemptIndicator& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& eplmncValue() + {return field_eplmncValue;} + inline const BITSTRING& eplmncValue() const + {return field_eplmncValue;} + inline BITSTRING& ratcValue() + {return field_ratcValue;} + inline const BITSTRING& ratcValue() const + {return field_ratcValue;} +Base_Type* clone() const { return new ReAttemptIndicator(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ReAttemptIndicator_template : public Record_Template { +void set_specific(); +public: +ReAttemptIndicator_template(): Record_Template() {} +ReAttemptIndicator_template(template_sel other_value): Record_Template(other_value) {} +ReAttemptIndicator_template(const ReAttemptIndicator& other_value): Record_Template() { copy_value(&other_value); } +ReAttemptIndicator_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ReAttemptIndicator_template(ReAttemptIndicator_template* p_precondition, ReAttemptIndicator_template* p_implied_template); +ReAttemptIndicator_template(Dynamic_Match_Interface* p_dyn_match); +ReAttemptIndicator_template(const ReAttemptIndicator_template& other_value): Record_Template() { copy_template(other_value); } +~ReAttemptIndicator_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ReAttemptIndicator_template& operator=(template_sel other_value); +ReAttemptIndicator_template& operator=(const ReAttemptIndicator& other_value); +ReAttemptIndicator_template& operator=(const OPTIONAL& other_value); +ReAttemptIndicator_template& operator=(const ReAttemptIndicator_template& other_value); +inline boolean match(const ReAttemptIndicator& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ReAttemptIndicator& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ReAttemptIndicator valueof() const; +inline ReAttemptIndicator_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& eplmncValue(); +const BITSTRING_template& eplmncValue() const; +BITSTRING_template& ratcValue(); +const BITSTRING_template& ratcValue() const; +Record_Template* create() const { return new ReAttemptIndicator_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AUTN : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_aUTN; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AUTN(); + AUTN(const AUTN& other_value); + AUTN(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_aUTN); +inline AUTN& operator=(const AUTN& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AUTN& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AUTN& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& aUTN() + {return field_aUTN;} + inline const BITSTRING& aUTN() const + {return field_aUTN;} +Base_Type* clone() const { return new AUTN(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AUTN_template : public Record_Template { +void set_specific(); +public: +AUTN_template(): Record_Template() {} +AUTN_template(template_sel other_value): Record_Template(other_value) {} +AUTN_template(const AUTN& other_value): Record_Template() { copy_value(&other_value); } +AUTN_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AUTN_template(AUTN_template* p_precondition, AUTN_template* p_implied_template); +AUTN_template(Dynamic_Match_Interface* p_dyn_match); +AUTN_template(const AUTN_template& other_value): Record_Template() { copy_template(other_value); } +~AUTN_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AUTN_template& operator=(template_sel other_value); +AUTN_template& operator=(const AUTN& other_value); +AUTN_template& operator=(const OPTIONAL& other_value); +AUTN_template& operator=(const AUTN_template& other_value); +inline boolean match(const AUTN& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AUTN& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AUTN valueof() const; +inline AUTN_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& aUTN(); +const BITSTRING_template& aUTN() const; +Record_Template* create() const { return new AUTN_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AuthenticationFailureParameter : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_auts; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AuthenticationFailureParameter(); + AuthenticationFailureParameter(const AuthenticationFailureParameter& other_value); + AuthenticationFailureParameter(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_auts); +inline AuthenticationFailureParameter& operator=(const AuthenticationFailureParameter& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AuthenticationFailureParameter& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AuthenticationFailureParameter& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& auts() + {return field_auts;} + inline const BITSTRING& auts() const + {return field_auts;} +Base_Type* clone() const { return new AuthenticationFailureParameter(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AuthenticationFailureParameter_template : public Record_Template { +void set_specific(); +public: +AuthenticationFailureParameter_template(): Record_Template() {} +AuthenticationFailureParameter_template(template_sel other_value): Record_Template(other_value) {} +AuthenticationFailureParameter_template(const AuthenticationFailureParameter& other_value): Record_Template() { copy_value(&other_value); } +AuthenticationFailureParameter_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AuthenticationFailureParameter_template(AuthenticationFailureParameter_template* p_precondition, AuthenticationFailureParameter_template* p_implied_template); +AuthenticationFailureParameter_template(Dynamic_Match_Interface* p_dyn_match); +AuthenticationFailureParameter_template(const AuthenticationFailureParameter_template& other_value): Record_Template() { copy_template(other_value); } +~AuthenticationFailureParameter_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AuthenticationFailureParameter_template& operator=(template_sel other_value); +AuthenticationFailureParameter_template& operator=(const AuthenticationFailureParameter& other_value); +AuthenticationFailureParameter_template& operator=(const OPTIONAL& other_value); +AuthenticationFailureParameter_template& operator=(const AuthenticationFailureParameter_template& other_value); +inline boolean match(const AuthenticationFailureParameter& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AuthenticationFailureParameter& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AuthenticationFailureParameter valueof() const; +inline AuthenticationFailureParameter_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& auts(); +const BITSTRING_template& auts() const; +Record_Template* create() const { return new AuthenticationFailureParameter_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RAND : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_randValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + RAND(); + RAND(const RAND& other_value); + RAND(const OPTIONAL& par_iei, + const BITSTRING& par_randValue); +inline RAND& operator=(const RAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RAND& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& randValue() + {return field_randValue;} + inline const BITSTRING& randValue() const + {return field_randValue;} +Base_Type* clone() const { return new RAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RAND_template : public Record_Template { +void set_specific(); +public: +RAND_template(): Record_Template() {} +RAND_template(template_sel other_value): Record_Template(other_value) {} +RAND_template(const RAND& other_value): Record_Template() { copy_value(&other_value); } +RAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RAND_template(RAND_template* p_precondition, RAND_template* p_implied_template); +RAND_template(Dynamic_Match_Interface* p_dyn_match); +RAND_template(const RAND_template& other_value): Record_Template() { copy_template(other_value); } +~RAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RAND_template& operator=(template_sel other_value); +RAND_template& operator=(const RAND& other_value); +RAND_template& operator=(const OPTIONAL& other_value); +RAND_template& operator=(const RAND_template& other_value); +inline boolean match(const RAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RAND valueof() const; +inline RAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& randValue(); +const BITSTRING_template& randValue() const; +Record_Template* create() const { return new RAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DaylightSavingTime : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_val; + Base_Type* fld_vec[4]; + void init_vec(); +public: + DaylightSavingTime(); + DaylightSavingTime(const DaylightSavingTime& other_value); + DaylightSavingTime(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_val); +inline DaylightSavingTime& operator=(const DaylightSavingTime& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DaylightSavingTime& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DaylightSavingTime& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& val() + {return field_val;} + inline const BITSTRING& val() const + {return field_val;} +Base_Type* clone() const { return new DaylightSavingTime(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DaylightSavingTime_template : public Record_Template { +void set_specific(); +public: +DaylightSavingTime_template(): Record_Template() {} +DaylightSavingTime_template(template_sel other_value): Record_Template(other_value) {} +DaylightSavingTime_template(const DaylightSavingTime& other_value): Record_Template() { copy_value(&other_value); } +DaylightSavingTime_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DaylightSavingTime_template(DaylightSavingTime_template* p_precondition, DaylightSavingTime_template* p_implied_template); +DaylightSavingTime_template(Dynamic_Match_Interface* p_dyn_match); +DaylightSavingTime_template(const DaylightSavingTime_template& other_value): Record_Template() { copy_template(other_value); } +~DaylightSavingTime_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DaylightSavingTime_template& operator=(template_sel other_value); +DaylightSavingTime_template& operator=(const DaylightSavingTime& other_value); +DaylightSavingTime_template& operator=(const OPTIONAL& other_value); +DaylightSavingTime_template& operator=(const DaylightSavingTime_template& other_value); +inline boolean match(const DaylightSavingTime& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DaylightSavingTime& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DaylightSavingTime valueof() const; +inline DaylightSavingTime_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& val(); +const BITSTRING_template& val() const; +Record_Template* create() const { return new DaylightSavingTime_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NetworkName : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_ext; + BITSTRING field_codingScheme; + BITSTRING field_addCI; + BITSTRING field_spareBitCnt; + OCTETSTRING field_text; + Base_Type* fld_vec[7]; + void init_vec(); +public: + NetworkName(); + NetworkName(const NetworkName& other_value); + NetworkName(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_ext, + const BITSTRING& par_codingScheme, + const BITSTRING& par_addCI, + const BITSTRING& par_spareBitCnt, + const OCTETSTRING& par_text); +inline NetworkName& operator=(const NetworkName& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NetworkName& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NetworkName& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& ext() + {return field_ext;} + inline const BITSTRING& ext() const + {return field_ext;} + inline BITSTRING& codingScheme() + {return field_codingScheme;} + inline const BITSTRING& codingScheme() const + {return field_codingScheme;} + inline BITSTRING& addCI() + {return field_addCI;} + inline const BITSTRING& addCI() const + {return field_addCI;} + inline BITSTRING& spareBitCnt() + {return field_spareBitCnt;} + inline const BITSTRING& spareBitCnt() const + {return field_spareBitCnt;} + inline OCTETSTRING& text() + {return field_text;} + inline const OCTETSTRING& text() const + {return field_text;} +Base_Type* clone() const { return new NetworkName(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NetworkName_template : public Record_Template { +void set_specific(); +public: +NetworkName_template(): Record_Template() {} +NetworkName_template(template_sel other_value): Record_Template(other_value) {} +NetworkName_template(const NetworkName& other_value): Record_Template() { copy_value(&other_value); } +NetworkName_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NetworkName_template(NetworkName_template* p_precondition, NetworkName_template* p_implied_template); +NetworkName_template(Dynamic_Match_Interface* p_dyn_match); +NetworkName_template(const NetworkName_template& other_value): Record_Template() { copy_template(other_value); } +~NetworkName_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NetworkName_template& operator=(template_sel other_value); +NetworkName_template& operator=(const NetworkName& other_value); +NetworkName_template& operator=(const OPTIONAL& other_value); +NetworkName_template& operator=(const NetworkName_template& other_value); +inline boolean match(const NetworkName& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NetworkName& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NetworkName valueof() const; +inline NetworkName_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& ext(); +const BITSTRING_template& ext() const; +BITSTRING_template& codingScheme(); +const BITSTRING_template& codingScheme() const; +BITSTRING_template& addCI(); +const BITSTRING_template& addCI() const; +BITSTRING_template& spareBitCnt(); +const BITSTRING_template& spareBitCnt() const; +OCTETSTRING_template& text(); +const OCTETSTRING_template& text() const; +Record_Template* create() const { return new NetworkName_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TimeZone : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_timeZone; + Base_Type* fld_vec[2]; + void init_vec(); +public: + TimeZone(); + TimeZone(const TimeZone& other_value); + TimeZone(const OPTIONAL& par_iei, + const OCTETSTRING& par_timeZone); +inline TimeZone& operator=(const TimeZone& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TimeZone& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TimeZone& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& timeZone() + {return field_timeZone;} + inline const OCTETSTRING& timeZone() const + {return field_timeZone;} +Base_Type* clone() const { return new TimeZone(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TimeZone_template : public Record_Template { +void set_specific(); +public: +TimeZone_template(): Record_Template() {} +TimeZone_template(template_sel other_value): Record_Template(other_value) {} +TimeZone_template(const TimeZone& other_value): Record_Template() { copy_value(&other_value); } +TimeZone_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TimeZone_template(TimeZone_template* p_precondition, TimeZone_template* p_implied_template); +TimeZone_template(Dynamic_Match_Interface* p_dyn_match); +TimeZone_template(const TimeZone_template& other_value): Record_Template() { copy_template(other_value); } +~TimeZone_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TimeZone_template& operator=(template_sel other_value); +TimeZone_template& operator=(const TimeZone& other_value); +TimeZone_template& operator=(const OPTIONAL& other_value); +TimeZone_template& operator=(const TimeZone_template& other_value); +inline boolean match(const TimeZone& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TimeZone& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TimeZone valueof() const; +inline TimeZone_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& timeZone(); +const OCTETSTRING_template& timeZone() const; +Record_Template* create() const { return new TimeZone_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TimeZoneAndTime : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_year; + OCTETSTRING field_month; + OCTETSTRING field_day; + OCTETSTRING field_hour; + OCTETSTRING field_minute; + OCTETSTRING field_second; + OCTETSTRING field_timeZone; + Base_Type* fld_vec[8]; + void init_vec(); +public: + TimeZoneAndTime(); + TimeZoneAndTime(const TimeZoneAndTime& other_value); + TimeZoneAndTime(const OPTIONAL& par_iei, + const OCTETSTRING& par_year, + const OCTETSTRING& par_month, + const OCTETSTRING& par_day, + const OCTETSTRING& par_hour, + const OCTETSTRING& par_minute, + const OCTETSTRING& par_second, + const OCTETSTRING& par_timeZone); +inline TimeZoneAndTime& operator=(const TimeZoneAndTime& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TimeZoneAndTime& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TimeZoneAndTime& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& year() + {return field_year;} + inline const OCTETSTRING& year() const + {return field_year;} + inline OCTETSTRING& month() + {return field_month;} + inline const OCTETSTRING& month() const + {return field_month;} + inline OCTETSTRING& day() + {return field_day;} + inline const OCTETSTRING& day() const + {return field_day;} + inline OCTETSTRING& hour() + {return field_hour;} + inline const OCTETSTRING& hour() const + {return field_hour;} + inline OCTETSTRING& minute() + {return field_minute;} + inline const OCTETSTRING& minute() const + {return field_minute;} + inline OCTETSTRING& second() + {return field_second;} + inline const OCTETSTRING& second() const + {return field_second;} + inline OCTETSTRING& timeZone() + {return field_timeZone;} + inline const OCTETSTRING& timeZone() const + {return field_timeZone;} +Base_Type* clone() const { return new TimeZoneAndTime(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TimeZoneAndTime_template : public Record_Template { +void set_specific(); +public: +TimeZoneAndTime_template(): Record_Template() {} +TimeZoneAndTime_template(template_sel other_value): Record_Template(other_value) {} +TimeZoneAndTime_template(const TimeZoneAndTime& other_value): Record_Template() { copy_value(&other_value); } +TimeZoneAndTime_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TimeZoneAndTime_template(TimeZoneAndTime_template* p_precondition, TimeZoneAndTime_template* p_implied_template); +TimeZoneAndTime_template(Dynamic_Match_Interface* p_dyn_match); +TimeZoneAndTime_template(const TimeZoneAndTime_template& other_value): Record_Template() { copy_template(other_value); } +~TimeZoneAndTime_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TimeZoneAndTime_template& operator=(template_sel other_value); +TimeZoneAndTime_template& operator=(const TimeZoneAndTime& other_value); +TimeZoneAndTime_template& operator=(const OPTIONAL& other_value); +TimeZoneAndTime_template& operator=(const TimeZoneAndTime_template& other_value); +inline boolean match(const TimeZoneAndTime& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TimeZoneAndTime& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TimeZoneAndTime valueof() const; +inline TimeZoneAndTime_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& year(); +const OCTETSTRING_template& year() const; +OCTETSTRING_template& month(); +const OCTETSTRING_template& month() const; +OCTETSTRING_template& day(); +const OCTETSTRING_template& day() const; +OCTETSTRING_template& hour(); +const OCTETSTRING_template& hour() const; +OCTETSTRING_template& minute(); +const OCTETSTRING_template& minute() const; +OCTETSTRING_template& second(); +const OCTETSTRING_template& second() const; +OCTETSTRING_template& timeZone(); +const OCTETSTRING_template& timeZone() const; +Record_Template* create() const { return new TimeZoneAndTime_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class VoiceDomainPref : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spareBits; + BITSTRING field_ueUsageSetting; + BITSTRING field_voiceDomainPrefEUTRA; + Base_Type* fld_vec[5]; + void init_vec(); +public: + VoiceDomainPref(); + VoiceDomainPref(const VoiceDomainPref& other_value); + VoiceDomainPref(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_ueUsageSetting, + const BITSTRING& par_voiceDomainPrefEUTRA); +inline VoiceDomainPref& operator=(const VoiceDomainPref& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const VoiceDomainPref& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const VoiceDomainPref& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& ueUsageSetting() + {return field_ueUsageSetting;} + inline const BITSTRING& ueUsageSetting() const + {return field_ueUsageSetting;} + inline BITSTRING& voiceDomainPrefEUTRA() + {return field_voiceDomainPrefEUTRA;} + inline const BITSTRING& voiceDomainPrefEUTRA() const + {return field_voiceDomainPrefEUTRA;} +Base_Type* clone() const { return new VoiceDomainPref(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class VoiceDomainPref_template : public Record_Template { +void set_specific(); +public: +VoiceDomainPref_template(): Record_Template() {} +VoiceDomainPref_template(template_sel other_value): Record_Template(other_value) {} +VoiceDomainPref_template(const VoiceDomainPref& other_value): Record_Template() { copy_value(&other_value); } +VoiceDomainPref_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +VoiceDomainPref_template(VoiceDomainPref_template* p_precondition, VoiceDomainPref_template* p_implied_template); +VoiceDomainPref_template(Dynamic_Match_Interface* p_dyn_match); +VoiceDomainPref_template(const VoiceDomainPref_template& other_value): Record_Template() { copy_template(other_value); } +~VoiceDomainPref_template(); +boolean match_dynamic(const Base_Type* match_value) const; +VoiceDomainPref_template& operator=(template_sel other_value); +VoiceDomainPref_template& operator=(const VoiceDomainPref& other_value); +VoiceDomainPref_template& operator=(const OPTIONAL& other_value); +VoiceDomainPref_template& operator=(const VoiceDomainPref_template& other_value); +inline boolean match(const VoiceDomainPref& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const VoiceDomainPref& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +VoiceDomainPref valueof() const; +inline VoiceDomainPref_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& ueUsageSetting(); +const BITSTRING_template& ueUsageSetting() const; +BITSTRING_template& voiceDomainPrefEUTRA(); +const BITSTRING_template& voiceDomainPrefEUTRA() const; +Record_Template* create() const { return new VoiceDomainPref_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IdentityType : public Record_Type { + BITSTRING field_spare; + BITSTRING field_typeOfId; + Base_Type* fld_vec[2]; + void init_vec(); +public: + IdentityType(); + IdentityType(const IdentityType& other_value); + IdentityType(const BITSTRING& par_spare, + const BITSTRING& par_typeOfId); +inline IdentityType& operator=(const IdentityType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IdentityType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IdentityType& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& typeOfId() + {return field_typeOfId;} + inline const BITSTRING& typeOfId() const + {return field_typeOfId;} +Base_Type* clone() const { return new IdentityType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IdentityType_template : public Record_Template { +void set_specific(); +public: +IdentityType_template(): Record_Template() {} +IdentityType_template(template_sel other_value): Record_Template(other_value) {} +IdentityType_template(const IdentityType& other_value): Record_Template() { copy_value(&other_value); } +IdentityType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IdentityType_template(IdentityType_template* p_precondition, IdentityType_template* p_implied_template); +IdentityType_template(Dynamic_Match_Interface* p_dyn_match); +IdentityType_template(const IdentityType_template& other_value): Record_Template() { copy_template(other_value); } +~IdentityType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IdentityType_template& operator=(template_sel other_value); +IdentityType_template& operator=(const IdentityType& other_value); +IdentityType_template& operator=(const OPTIONAL& other_value); +IdentityType_template& operator=(const IdentityType_template& other_value); +inline boolean match(const IdentityType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IdentityType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IdentityType valueof() const; +inline IdentityType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& typeOfId(); +const BITSTRING_template& typeOfId() const; +Record_Template* create() const { return new IdentityType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TI : public Record_Type { + BITSTRING field_tiFlag; + BITSTRING field_tiVal; + Base_Type* fld_vec[2]; + void init_vec(); +public: + TI(); + TI(const TI& other_value); + TI(const BITSTRING& par_tiFlag, + const BITSTRING& par_tiVal); +inline TI& operator=(const TI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TI& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& tiFlag() + {return field_tiFlag;} + inline const BITSTRING& tiFlag() const + {return field_tiFlag;} + inline BITSTRING& tiVal() + {return field_tiVal;} + inline const BITSTRING& tiVal() const + {return field_tiVal;} +Base_Type* clone() const { return new TI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TI_template : public Record_Template { +void set_specific(); +public: +TI_template(): Record_Template() {} +TI_template(template_sel other_value): Record_Template(other_value) {} +TI_template(const TI& other_value): Record_Template() { copy_value(&other_value); } +TI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TI_template(TI_template* p_precondition, TI_template* p_implied_template); +TI_template(Dynamic_Match_Interface* p_dyn_match); +TI_template(const TI_template& other_value): Record_Template() { copy_template(other_value); } +~TI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TI_template& operator=(template_sel other_value); +TI_template& operator=(const TI& other_value); +TI_template& operator=(const OPTIONAL& other_value); +TI_template& operator=(const TI_template& other_value); +inline boolean match(const TI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TI valueof() const; +inline TI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& tiFlag(); +const BITSTRING_template& tiFlag() const; +BITSTRING_template& tiVal(); +const BITSTRING_template& tiVal() const; +Record_Template* create() const { return new TI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class FacilityIE : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_components; + Base_Type* fld_vec[3]; + void init_vec(); +public: + FacilityIE(); + FacilityIE(const FacilityIE& other_value); + FacilityIE(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_components); +inline FacilityIE& operator=(const FacilityIE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const FacilityIE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const FacilityIE& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& components() + {return field_components;} + inline const OCTETSTRING& components() const + {return field_components;} +Base_Type* clone() const { return new FacilityIE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class FacilityIE_template : public Record_Template { +void set_specific(); +public: +FacilityIE_template(): Record_Template() {} +FacilityIE_template(template_sel other_value): Record_Template(other_value) {} +FacilityIE_template(const FacilityIE& other_value): Record_Template() { copy_value(&other_value); } +FacilityIE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +FacilityIE_template(FacilityIE_template* p_precondition, FacilityIE_template* p_implied_template); +FacilityIE_template(Dynamic_Match_Interface* p_dyn_match); +FacilityIE_template(const FacilityIE_template& other_value): Record_Template() { copy_template(other_value); } +~FacilityIE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +FacilityIE_template& operator=(template_sel other_value); +FacilityIE_template& operator=(const FacilityIE& other_value); +FacilityIE_template& operator=(const OPTIONAL& other_value); +FacilityIE_template& operator=(const FacilityIE_template& other_value); +inline boolean match(const FacilityIE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const FacilityIE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +FacilityIE valueof() const; +inline FacilityIE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& components(); +const OCTETSTRING_template& components() const; +Record_Template* create() const { return new FacilityIE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class REGISTER : public Record_Type { + TI field_ti; + BITSTRING field_sS__ProtocolDiscriminator; + BITSTRING field_msgType; + FacilityIE field_facility__Str; + OPTIONAL field_sS__VersionInd; + Base_Type* fld_vec[5]; + void init_vec(); +public: + REGISTER(); + REGISTER(const REGISTER& other_value); + REGISTER(const TI& par_ti, + const BITSTRING& par_sS__ProtocolDiscriminator, + const BITSTRING& par_msgType, + const FacilityIE& par_facility__Str, + const OPTIONAL& par_sS__VersionInd); +inline REGISTER& operator=(const REGISTER& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const REGISTER& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const REGISTER& other_value) const + { return !is_equal(&other_value); } + + inline TI& ti() + {return field_ti;} + inline const TI& ti() const + {return field_ti;} + inline BITSTRING& sS__ProtocolDiscriminator() + {return field_sS__ProtocolDiscriminator;} + inline const BITSTRING& sS__ProtocolDiscriminator() const + {return field_sS__ProtocolDiscriminator;} + inline BITSTRING& msgType() + {return field_msgType;} + inline const BITSTRING& msgType() const + {return field_msgType;} + inline FacilityIE& facility__Str() + {return field_facility__Str;} + inline const FacilityIE& facility__Str() const + {return field_facility__Str;} + inline OPTIONAL& sS__VersionInd() + {return field_sS__VersionInd;} + inline const OPTIONAL& sS__VersionInd() const + {return field_sS__VersionInd;} +Base_Type* clone() const { return new REGISTER(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class REGISTER_template : public Record_Template { +void set_specific(); +public: +REGISTER_template(): Record_Template() {} +REGISTER_template(template_sel other_value): Record_Template(other_value) {} +REGISTER_template(const REGISTER& other_value): Record_Template() { copy_value(&other_value); } +REGISTER_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +REGISTER_template(REGISTER_template* p_precondition, REGISTER_template* p_implied_template); +REGISTER_template(Dynamic_Match_Interface* p_dyn_match); +REGISTER_template(const REGISTER_template& other_value): Record_Template() { copy_template(other_value); } +~REGISTER_template(); +boolean match_dynamic(const Base_Type* match_value) const; +REGISTER_template& operator=(template_sel other_value); +REGISTER_template& operator=(const REGISTER& other_value); +REGISTER_template& operator=(const OPTIONAL& other_value); +REGISTER_template& operator=(const REGISTER_template& other_value); +inline boolean match(const REGISTER& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const REGISTER& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +REGISTER valueof() const; +inline REGISTER_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +TI_template& ti(); +const TI_template& ti() const; +BITSTRING_template& sS__ProtocolDiscriminator(); +const BITSTRING_template& sS__ProtocolDiscriminator() const; +BITSTRING_template& msgType(); +const BITSTRING_template& msgType() const; +FacilityIE_template& facility__Str(); +const FacilityIE_template& facility__Str() const; +SS__VersionInd_template& sS__VersionInd(); +const SS__VersionInd_template& sS__VersionInd() const; +Record_Template* create() const { return new REGISTER_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SS__VersionInd : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_sS__VersionInfo; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SS__VersionInd(); + SS__VersionInd(const SS__VersionInd& other_value); + SS__VersionInd(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_sS__VersionInfo); +inline SS__VersionInd& operator=(const SS__VersionInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SS__VersionInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SS__VersionInd& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& sS__VersionInfo() + {return field_sS__VersionInfo;} + inline const OCTETSTRING& sS__VersionInfo() const + {return field_sS__VersionInfo;} +Base_Type* clone() const { return new SS__VersionInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SS__VersionInd_template : public Record_Template { +void set_specific(); +public: +SS__VersionInd_template(): Record_Template() {} +SS__VersionInd_template(template_sel other_value): Record_Template(other_value) {} +SS__VersionInd_template(const SS__VersionInd& other_value): Record_Template() { copy_value(&other_value); } +SS__VersionInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SS__VersionInd_template(SS__VersionInd_template* p_precondition, SS__VersionInd_template* p_implied_template); +SS__VersionInd_template(Dynamic_Match_Interface* p_dyn_match); +SS__VersionInd_template(const SS__VersionInd_template& other_value): Record_Template() { copy_template(other_value); } +~SS__VersionInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SS__VersionInd_template& operator=(template_sel other_value); +SS__VersionInd_template& operator=(const SS__VersionInd& other_value); +SS__VersionInd_template& operator=(const OPTIONAL& other_value); +SS__VersionInd_template& operator=(const SS__VersionInd_template& other_value); +inline boolean match(const SS__VersionInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SS__VersionInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SS__VersionInd valueof() const; +inline SS__VersionInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& sS__VersionInfo(); +const OCTETSTRING_template& sS__VersionInfo() const; +Record_Template* create() const { return new SS__VersionInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class FACILITY : public Record_Type { + TI field_ti; + BITSTRING field_sS__ProtocolDiscriminator; + BITSTRING field_msgType; + FacilityIE field_facility__Str; + Base_Type* fld_vec[4]; + void init_vec(); +public: + FACILITY(); + FACILITY(const FACILITY& other_value); + FACILITY(const TI& par_ti, + const BITSTRING& par_sS__ProtocolDiscriminator, + const BITSTRING& par_msgType, + const FacilityIE& par_facility__Str); +inline FACILITY& operator=(const FACILITY& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const FACILITY& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const FACILITY& other_value) const + { return !is_equal(&other_value); } + + inline TI& ti() + {return field_ti;} + inline const TI& ti() const + {return field_ti;} + inline BITSTRING& sS__ProtocolDiscriminator() + {return field_sS__ProtocolDiscriminator;} + inline const BITSTRING& sS__ProtocolDiscriminator() const + {return field_sS__ProtocolDiscriminator;} + inline BITSTRING& msgType() + {return field_msgType;} + inline const BITSTRING& msgType() const + {return field_msgType;} + inline FacilityIE& facility__Str() + {return field_facility__Str;} + inline const FacilityIE& facility__Str() const + {return field_facility__Str;} +Base_Type* clone() const { return new FACILITY(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class FACILITY_template : public Record_Template { +void set_specific(); +public: +FACILITY_template(): Record_Template() {} +FACILITY_template(template_sel other_value): Record_Template(other_value) {} +FACILITY_template(const FACILITY& other_value): Record_Template() { copy_value(&other_value); } +FACILITY_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +FACILITY_template(FACILITY_template* p_precondition, FACILITY_template* p_implied_template); +FACILITY_template(Dynamic_Match_Interface* p_dyn_match); +FACILITY_template(const FACILITY_template& other_value): Record_Template() { copy_template(other_value); } +~FACILITY_template(); +boolean match_dynamic(const Base_Type* match_value) const; +FACILITY_template& operator=(template_sel other_value); +FACILITY_template& operator=(const FACILITY& other_value); +FACILITY_template& operator=(const OPTIONAL& other_value); +FACILITY_template& operator=(const FACILITY_template& other_value); +inline boolean match(const FACILITY& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const FACILITY& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +FACILITY valueof() const; +inline FACILITY_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +TI_template& ti(); +const TI_template& ti() const; +BITSTRING_template& sS__ProtocolDiscriminator(); +const BITSTRING_template& sS__ProtocolDiscriminator() const; +BITSTRING_template& msgType(); +const BITSTRING_template& msgType() const; +FacilityIE_template& facility__Str(); +const FacilityIE_template& facility__Str() const; +Record_Template* create() const { return new FACILITY_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class FACILITYul : public Record_Type { + TI field_ti; + BITSTRING field_sS__ProtocolDiscriminator; + BITSTRING field_msgType; + FacilityIE field_facility__Str; + OPTIONAL field_sS__VersionInd; + Base_Type* fld_vec[5]; + void init_vec(); +public: + FACILITYul(); + FACILITYul(const FACILITYul& other_value); + FACILITYul(const TI& par_ti, + const BITSTRING& par_sS__ProtocolDiscriminator, + const BITSTRING& par_msgType, + const FacilityIE& par_facility__Str, + const OPTIONAL& par_sS__VersionInd); +inline FACILITYul& operator=(const FACILITYul& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const FACILITYul& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const FACILITYul& other_value) const + { return !is_equal(&other_value); } + + inline TI& ti() + {return field_ti;} + inline const TI& ti() const + {return field_ti;} + inline BITSTRING& sS__ProtocolDiscriminator() + {return field_sS__ProtocolDiscriminator;} + inline const BITSTRING& sS__ProtocolDiscriminator() const + {return field_sS__ProtocolDiscriminator;} + inline BITSTRING& msgType() + {return field_msgType;} + inline const BITSTRING& msgType() const + {return field_msgType;} + inline FacilityIE& facility__Str() + {return field_facility__Str;} + inline const FacilityIE& facility__Str() const + {return field_facility__Str;} + inline OPTIONAL& sS__VersionInd() + {return field_sS__VersionInd;} + inline const OPTIONAL& sS__VersionInd() const + {return field_sS__VersionInd;} +Base_Type* clone() const { return new FACILITYul(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class FACILITYul_template : public Record_Template { +void set_specific(); +public: +FACILITYul_template(): Record_Template() {} +FACILITYul_template(template_sel other_value): Record_Template(other_value) {} +FACILITYul_template(const FACILITYul& other_value): Record_Template() { copy_value(&other_value); } +FACILITYul_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +FACILITYul_template(FACILITYul_template* p_precondition, FACILITYul_template* p_implied_template); +FACILITYul_template(Dynamic_Match_Interface* p_dyn_match); +FACILITYul_template(const FACILITYul_template& other_value): Record_Template() { copy_template(other_value); } +~FACILITYul_template(); +boolean match_dynamic(const Base_Type* match_value) const; +FACILITYul_template& operator=(template_sel other_value); +FACILITYul_template& operator=(const FACILITYul& other_value); +FACILITYul_template& operator=(const OPTIONAL& other_value); +FACILITYul_template& operator=(const FACILITYul_template& other_value); +inline boolean match(const FACILITYul& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const FACILITYul& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +FACILITYul valueof() const; +inline FACILITYul_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +TI_template& ti(); +const TI_template& ti() const; +BITSTRING_template& sS__ProtocolDiscriminator(); +const BITSTRING_template& sS__ProtocolDiscriminator() const; +BITSTRING_template& msgType(); +const BITSTRING_template& msgType() const; +FacilityIE_template& facility__Str(); +const FacilityIE_template& facility__Str() const; +SS__VersionInd_template& sS__VersionInd(); +const SS__VersionInd_template& sS__VersionInd() const; +Record_Template* create() const { return new FACILITYul_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RESETUEPOSITIONINGSTOREDINFORMATION : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_msgType; + BITSTRING field_uePositioningTech; + Base_Type* fld_vec[4]; + void init_vec(); +public: + RESETUEPOSITIONINGSTOREDINFORMATION(); + RESETUEPOSITIONINGSTOREDINFORMATION(const RESETUEPOSITIONINGSTOREDINFORMATION& other_value); + RESETUEPOSITIONINGSTOREDINFORMATION(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_msgType, + const BITSTRING& par_uePositioningTech); +inline RESETUEPOSITIONINGSTOREDINFORMATION& operator=(const RESETUEPOSITIONINGSTOREDINFORMATION& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RESETUEPOSITIONINGSTOREDINFORMATION& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RESETUEPOSITIONINGSTOREDINFORMATION& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& msgType() + {return field_msgType;} + inline const BITSTRING& msgType() const + {return field_msgType;} + inline BITSTRING& uePositioningTech() + {return field_uePositioningTech;} + inline const BITSTRING& uePositioningTech() const + {return field_uePositioningTech;} +Base_Type* clone() const { return new RESETUEPOSITIONINGSTOREDINFORMATION(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RESETUEPOSITIONINGSTOREDINFORMATION_template : public Record_Template { +void set_specific(); +public: +RESETUEPOSITIONINGSTOREDINFORMATION_template(): Record_Template() {} +RESETUEPOSITIONINGSTOREDINFORMATION_template(template_sel other_value): Record_Template(other_value) {} +RESETUEPOSITIONINGSTOREDINFORMATION_template(const RESETUEPOSITIONINGSTOREDINFORMATION& other_value): Record_Template() { copy_value(&other_value); } +RESETUEPOSITIONINGSTOREDINFORMATION_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RESETUEPOSITIONINGSTOREDINFORMATION_template(RESETUEPOSITIONINGSTOREDINFORMATION_template* p_precondition, RESETUEPOSITIONINGSTOREDINFORMATION_template* p_implied_template); +RESETUEPOSITIONINGSTOREDINFORMATION_template(Dynamic_Match_Interface* p_dyn_match); +RESETUEPOSITIONINGSTOREDINFORMATION_template(const RESETUEPOSITIONINGSTOREDINFORMATION_template& other_value): Record_Template() { copy_template(other_value); } +~RESETUEPOSITIONINGSTOREDINFORMATION_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RESETUEPOSITIONINGSTOREDINFORMATION_template& operator=(template_sel other_value); +RESETUEPOSITIONINGSTOREDINFORMATION_template& operator=(const RESETUEPOSITIONINGSTOREDINFORMATION& other_value); +RESETUEPOSITIONINGSTOREDINFORMATION_template& operator=(const OPTIONAL& other_value); +RESETUEPOSITIONINGSTOREDINFORMATION_template& operator=(const RESETUEPOSITIONINGSTOREDINFORMATION_template& other_value); +inline boolean match(const RESETUEPOSITIONINGSTOREDINFORMATION& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RESETUEPOSITIONINGSTOREDINFORMATION& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RESETUEPOSITIONINGSTOREDINFORMATION valueof() const; +inline RESETUEPOSITIONINGSTOREDINFORMATION_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& msgType(); +const BITSTRING_template& msgType() const; +BITSTRING_template& uePositioningTech(); +const BITSTRING_template& uePositioningTech() const; +Record_Template* create() const { return new RESETUEPOSITIONINGSTOREDINFORMATION_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class WLANOffloadAcceptability : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_utranOffload; + BITSTRING field_eutranOffload; + Base_Type* fld_vec[4]; + void init_vec(); +public: + WLANOffloadAcceptability(); + WLANOffloadAcceptability(const WLANOffloadAcceptability& other_value); + WLANOffloadAcceptability(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_utranOffload, + const BITSTRING& par_eutranOffload); +inline WLANOffloadAcceptability& operator=(const WLANOffloadAcceptability& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const WLANOffloadAcceptability& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const WLANOffloadAcceptability& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& utranOffload() + {return field_utranOffload;} + inline const BITSTRING& utranOffload() const + {return field_utranOffload;} + inline BITSTRING& eutranOffload() + {return field_eutranOffload;} + inline const BITSTRING& eutranOffload() const + {return field_eutranOffload;} +Base_Type* clone() const { return new WLANOffloadAcceptability(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class WLANOffloadAcceptability_template : public Record_Template { +void set_specific(); +public: +WLANOffloadAcceptability_template(): Record_Template() {} +WLANOffloadAcceptability_template(template_sel other_value): Record_Template(other_value) {} +WLANOffloadAcceptability_template(const WLANOffloadAcceptability& other_value): Record_Template() { copy_value(&other_value); } +WLANOffloadAcceptability_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +WLANOffloadAcceptability_template(WLANOffloadAcceptability_template* p_precondition, WLANOffloadAcceptability_template* p_implied_template); +WLANOffloadAcceptability_template(Dynamic_Match_Interface* p_dyn_match); +WLANOffloadAcceptability_template(const WLANOffloadAcceptability_template& other_value): Record_Template() { copy_template(other_value); } +~WLANOffloadAcceptability_template(); +boolean match_dynamic(const Base_Type* match_value) const; +WLANOffloadAcceptability_template& operator=(template_sel other_value); +WLANOffloadAcceptability_template& operator=(const WLANOffloadAcceptability& other_value); +WLANOffloadAcceptability_template& operator=(const OPTIONAL& other_value); +WLANOffloadAcceptability_template& operator=(const WLANOffloadAcceptability_template& other_value); +inline boolean match(const WLANOffloadAcceptability& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const WLANOffloadAcceptability& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +WLANOffloadAcceptability valueof() const; +inline WLANOffloadAcceptability_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& utranOffload(); +const BITSTRING_template& utranOffload() const; +BITSTRING_template& eutranOffload(); +const BITSTRING_template& eutranOffload() const; +Record_Template* create() const { return new WLANOffloadAcceptability_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ExtdDRXParams : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_pagingTimeWindow; + BITSTRING field_eDRXValue; + OPTIONAL field_extdPTW; + Base_Type* fld_vec[5]; + void init_vec(); +public: + ExtdDRXParams(); + ExtdDRXParams(const ExtdDRXParams& other_value); + ExtdDRXParams(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_pagingTimeWindow, + const BITSTRING& par_eDRXValue, + const OPTIONAL& par_extdPTW); +inline ExtdDRXParams& operator=(const ExtdDRXParams& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdDRXParams& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ExtdDRXParams& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& pagingTimeWindow() + {return field_pagingTimeWindow;} + inline const BITSTRING& pagingTimeWindow() const + {return field_pagingTimeWindow;} + inline BITSTRING& eDRXValue() + {return field_eDRXValue;} + inline const BITSTRING& eDRXValue() const + {return field_eDRXValue;} + inline OPTIONAL& extdPTW() + {return field_extdPTW;} + inline const OPTIONAL& extdPTW() const + {return field_extdPTW;} +Base_Type* clone() const { return new ExtdDRXParams(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ExtdDRXParams_template : public Record_Template { +void set_specific(); +public: +ExtdDRXParams_template(): Record_Template() {} +ExtdDRXParams_template(template_sel other_value): Record_Template(other_value) {} +ExtdDRXParams_template(const ExtdDRXParams& other_value): Record_Template() { copy_value(&other_value); } +ExtdDRXParams_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ExtdDRXParams_template(ExtdDRXParams_template* p_precondition, ExtdDRXParams_template* p_implied_template); +ExtdDRXParams_template(Dynamic_Match_Interface* p_dyn_match); +ExtdDRXParams_template(const ExtdDRXParams_template& other_value): Record_Template() { copy_template(other_value); } +~ExtdDRXParams_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdDRXParams_template& operator=(template_sel other_value); +ExtdDRXParams_template& operator=(const ExtdDRXParams& other_value); +ExtdDRXParams_template& operator=(const OPTIONAL& other_value); +ExtdDRXParams_template& operator=(const ExtdDRXParams_template& other_value); +inline boolean match(const ExtdDRXParams& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ExtdDRXParams& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ExtdDRXParams valueof() const; +inline ExtdDRXParams_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& pagingTimeWindow(); +const BITSTRING_template& pagingTimeWindow() const; +BITSTRING_template& eDRXValue(); +const BITSTRING_template& eDRXValue() const; +BITSTRING_template& extdPTW(); +const BITSTRING_template& extdPTW() const; +Record_Template* create() const { return new ExtdDRXParams_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NBIFOMContainer : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_containerContents; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NBIFOMContainer(); + NBIFOMContainer(const NBIFOMContainer& other_value); + NBIFOMContainer(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_containerContents); +inline NBIFOMContainer& operator=(const NBIFOMContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NBIFOMContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NBIFOMContainer& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& containerContents() + {return field_containerContents;} + inline const OCTETSTRING& containerContents() const + {return field_containerContents;} +Base_Type* clone() const { return new NBIFOMContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NBIFOMContainer_template : public Record_Template { +void set_specific(); +public: +NBIFOMContainer_template(): Record_Template() {} +NBIFOMContainer_template(template_sel other_value): Record_Template(other_value) {} +NBIFOMContainer_template(const NBIFOMContainer& other_value): Record_Template() { copy_value(&other_value); } +NBIFOMContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NBIFOMContainer_template(NBIFOMContainer_template* p_precondition, NBIFOMContainer_template* p_implied_template); +NBIFOMContainer_template(Dynamic_Match_Interface* p_dyn_match); +NBIFOMContainer_template(const NBIFOMContainer_template& other_value): Record_Template() { copy_template(other_value); } +~NBIFOMContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NBIFOMContainer_template& operator=(template_sel other_value); +NBIFOMContainer_template& operator=(const NBIFOMContainer& other_value); +NBIFOMContainer_template& operator=(const OPTIONAL& other_value); +NBIFOMContainer_template& operator=(const NBIFOMContainer_template& other_value); +inline boolean match(const NBIFOMContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NBIFOMContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NBIFOMContainer valueof() const; +inline NBIFOMContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& containerContents(); +const OCTETSTRING_template& containerContents() const; +Record_Template* create() const { return new NBIFOMContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DCN__ID : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_dcnIdValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + DCN__ID(); + DCN__ID(const DCN__ID& other_value); + DCN__ID(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_dcnIdValue); +inline DCN__ID& operator=(const DCN__ID& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DCN__ID& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DCN__ID& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& dcnIdValue() + {return field_dcnIdValue;} + inline const OCTETSTRING& dcnIdValue() const + {return field_dcnIdValue;} +Base_Type* clone() const { return new DCN__ID(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DCN__ID_template : public Record_Template { +void set_specific(); +public: +DCN__ID_template(): Record_Template() {} +DCN__ID_template(template_sel other_value): Record_Template(other_value) {} +DCN__ID_template(const DCN__ID& other_value): Record_Template() { copy_value(&other_value); } +DCN__ID_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DCN__ID_template(DCN__ID_template* p_precondition, DCN__ID_template* p_implied_template); +DCN__ID_template(Dynamic_Match_Interface* p_dyn_match); +DCN__ID_template(const DCN__ID_template& other_value): Record_Template() { copy_template(other_value); } +~DCN__ID_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DCN__ID_template& operator=(template_sel other_value); +DCN__ID_template& operator=(const DCN__ID& other_value); +DCN__ID_template& operator=(const OPTIONAL& other_value); +DCN__ID_template& operator=(const DCN__ID_template& other_value); +inline boolean match(const DCN__ID& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DCN__ID& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DCN__ID valueof() const; +inline DCN__ID_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& dcnIdValue(); +const OCTETSTRING_template& dcnIdValue() const; +Record_Template* create() const { return new DCN__ID_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ExtdProtocolConfigOptions : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_ext; + BITSTRING field_spare; + BITSTRING field_configProtocol; + OPTIONAL field_pco; + Base_Type* fld_vec[6]; + void init_vec(); +public: + ExtdProtocolConfigOptions(); + ExtdProtocolConfigOptions(const ExtdProtocolConfigOptions& other_value); + ExtdProtocolConfigOptions(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_ext, + const BITSTRING& par_spare, + const BITSTRING& par_configProtocol, + const OPTIONAL& par_pco); +inline ExtdProtocolConfigOptions& operator=(const ExtdProtocolConfigOptions& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdProtocolConfigOptions& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ExtdProtocolConfigOptions& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& ext() + {return field_ext;} + inline const BITSTRING& ext() const + {return field_ext;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& configProtocol() + {return field_configProtocol;} + inline const BITSTRING& configProtocol() const + {return field_configProtocol;} + inline OPTIONAL& pco() + {return field_pco;} + inline const OPTIONAL& pco() const + {return field_pco;} +Base_Type* clone() const { return new ExtdProtocolConfigOptions(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ExtdProtocolConfigOptions_template : public Record_Template { +void set_specific(); +public: +ExtdProtocolConfigOptions_template(): Record_Template() {} +ExtdProtocolConfigOptions_template(template_sel other_value): Record_Template(other_value) {} +ExtdProtocolConfigOptions_template(const ExtdProtocolConfigOptions& other_value): Record_Template() { copy_value(&other_value); } +ExtdProtocolConfigOptions_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ExtdProtocolConfigOptions_template(ExtdProtocolConfigOptions_template* p_precondition, ExtdProtocolConfigOptions_template* p_implied_template); +ExtdProtocolConfigOptions_template(Dynamic_Match_Interface* p_dyn_match); +ExtdProtocolConfigOptions_template(const ExtdProtocolConfigOptions_template& other_value): Record_Template() { copy_template(other_value); } +~ExtdProtocolConfigOptions_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdProtocolConfigOptions_template& operator=(template_sel other_value); +ExtdProtocolConfigOptions_template& operator=(const ExtdProtocolConfigOptions& other_value); +ExtdProtocolConfigOptions_template& operator=(const OPTIONAL& other_value); +ExtdProtocolConfigOptions_template& operator=(const ExtdProtocolConfigOptions_template& other_value); +inline boolean match(const ExtdProtocolConfigOptions& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ExtdProtocolConfigOptions& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ExtdProtocolConfigOptions valueof() const; +inline ExtdProtocolConfigOptions_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& ext(); +const BITSTRING_template& ext() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& configProtocol(); +const BITSTRING_template& configProtocol() const; +ExtdProtocolConfigOptions_pco_template& pco(); +const ExtdProtocolConfigOptions_pco_template& pco() const; +Record_Template* create() const { return new ExtdProtocolConfigOptions_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ExtdProtocolConfigOptions_pco : public Record_Of_Type { + +static const ProtocolContainer UNBOUND_ELEM; + +public: +ExtdProtocolConfigOptions_pco(): Record_Of_Type() {} +ExtdProtocolConfigOptions_pco(null_type other_value): Record_Of_Type(other_value) {} +ExtdProtocolConfigOptions_pco(const ExtdProtocolConfigOptions_pco& other_value): Record_Of_Type(other_value) {} +~ExtdProtocolConfigOptions_pco() { clean_up(); } + +inline ExtdProtocolConfigOptions_pco& operator=(null_type other_value) { set_val(other_value); return *this; } +inline ExtdProtocolConfigOptions_pco& operator=(const ExtdProtocolConfigOptions_pco& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdProtocolConfigOptions_pco& other_value) const { return is_equal(&other_value); } +boolean operator!=(const ExtdProtocolConfigOptions_pco& other_value) const { return !is_equal(&other_value); } +ProtocolContainer& operator[](int index_value); +ProtocolContainer& operator[](const INTEGER& index_value); +const ProtocolContainer& operator[](int index_value) const; +const ProtocolContainer& operator[](const INTEGER& index_value) const; +ExtdProtocolConfigOptions_pco operator<<=(int rotate_count) const; +ExtdProtocolConfigOptions_pco operator<<=(const INTEGER& rotate_count) const; +ExtdProtocolConfigOptions_pco operator>>=(int rotate_count) const; +ExtdProtocolConfigOptions_pco operator>>=(const INTEGER& rotate_count) const; + +ExtdProtocolConfigOptions_pco operator+(const ExtdProtocolConfigOptions_pco& other_value) const; + +ExtdProtocolConfigOptions_pco operator+(const OPTIONAL& other_value) const; + +ExtdProtocolConfigOptions_pco operator+(null_type) const; + +ExtdProtocolConfigOptions_pco substr(int index, int returncount) const; + +ExtdProtocolConfigOptions_pco replace(int index, int len, const ExtdProtocolConfigOptions_pco& repl) const; + +ExtdProtocolConfigOptions_pco replace(int index, int len, const ExtdProtocolConfigOptions_pco_template& repl) const; + +Base_Type* clone() const { return new ExtdProtocolConfigOptions_pco(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class ExtdProtocolConfigOptions_pco_template : public Record_Of_Template { +friend ExtdProtocolConfigOptions_pco_template operator+(template_sel left_template, const ExtdProtocolConfigOptions_pco_template& right_template); +friend ExtdProtocolConfigOptions_pco_template operator+(const ExtdProtocolConfigOptions_pco& left_value, const ExtdProtocolConfigOptions_pco_template& right_template); +friend ExtdProtocolConfigOptions_pco_template operator+(template_sel left_template, const ExtdProtocolConfigOptions_pco& right_value); +friend ExtdProtocolConfigOptions_pco_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend ExtdProtocolConfigOptions_pco_template operator+(const ExtdProtocolConfigOptions_pco& left_value, template_sel right_template); + +public: +ExtdProtocolConfigOptions_pco_template() {} +ExtdProtocolConfigOptions_pco_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +ExtdProtocolConfigOptions_pco_template(null_type other_value); +ExtdProtocolConfigOptions_pco_template(const ExtdProtocolConfigOptions_pco& other_value) { copy_value(&other_value); } +ExtdProtocolConfigOptions_pco_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +ExtdProtocolConfigOptions_pco_template(ExtdProtocolConfigOptions_pco_template* p_precondition, ExtdProtocolConfigOptions_pco_template* p_implied_template); +ExtdProtocolConfigOptions_pco_template(Dynamic_Match_Interface* p_dyn_match); +ExtdProtocolConfigOptions_pco_template(const ExtdProtocolConfigOptions_pco_template& other_value): Record_Of_Template() { copy_template(other_value); } +~ExtdProtocolConfigOptions_pco_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdProtocolConfigOptions_pco_template& operator=(template_sel other_value); +ExtdProtocolConfigOptions_pco_template& operator=(null_type other_value); +ExtdProtocolConfigOptions_pco_template& operator=(const ExtdProtocolConfigOptions_pco& other_value); +ExtdProtocolConfigOptions_pco_template& operator=(const OPTIONAL& other_value); +ExtdProtocolConfigOptions_pco_template& operator=(const ExtdProtocolConfigOptions_pco_template& other_value); + +ExtdProtocolConfigOptions_pco_template operator+(const ExtdProtocolConfigOptions_pco_template& other_value) const; +ExtdProtocolConfigOptions_pco_template operator+(const ExtdProtocolConfigOptions_pco& other_value) const; +ExtdProtocolConfigOptions_pco_template operator+(template_sel other_value) const; +ExtdProtocolConfigOptions_pco_template operator+(null_type) const; + +ProtocolContainer_template& operator[](int index_value); +ProtocolContainer_template& operator[](const INTEGER& index_value); +const ProtocolContainer_template& operator[](int index_value) const; +const ProtocolContainer_template& operator[](const INTEGER& index_value) const; +inline boolean match(const ExtdProtocolConfigOptions_pco& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +ExtdProtocolConfigOptions_pco valueof() const; +ExtdProtocolConfigOptions_pco substr(int index, int returncount) const; + +ExtdProtocolConfigOptions_pco replace(int index, int len, const ExtdProtocolConfigOptions_pco_template& repl) const; + +ExtdProtocolConfigOptions_pco replace(int index, int len, const ExtdProtocolConfigOptions_pco& repl) const; + +inline ExtdProtocolConfigOptions_pco_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const ExtdProtocolConfigOptions_pco& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new ExtdProtocolConfigOptions_pco_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NAS__ExtdProtocolConfigOptions__Type : public Record_Of_Type { + +static const ProtocolContainer UNBOUND_ELEM; + +public: +NAS__ExtdProtocolConfigOptions__Type(): Record_Of_Type() {} +NAS__ExtdProtocolConfigOptions__Type(null_type other_value): Record_Of_Type(other_value) {} +NAS__ExtdProtocolConfigOptions__Type(const NAS__ExtdProtocolConfigOptions__Type& other_value): Record_Of_Type(other_value) {} +~NAS__ExtdProtocolConfigOptions__Type() { clean_up(); } + +inline NAS__ExtdProtocolConfigOptions__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NAS__ExtdProtocolConfigOptions__Type& operator=(const NAS__ExtdProtocolConfigOptions__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NAS__ExtdProtocolConfigOptions__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NAS__ExtdProtocolConfigOptions__Type& other_value) const { return !is_equal(&other_value); } +ProtocolContainer& operator[](int index_value); +ProtocolContainer& operator[](const INTEGER& index_value); +const ProtocolContainer& operator[](int index_value) const; +const ProtocolContainer& operator[](const INTEGER& index_value) const; +NAS__ExtdProtocolConfigOptions__Type operator<<=(int rotate_count) const; +NAS__ExtdProtocolConfigOptions__Type operator<<=(const INTEGER& rotate_count) const; +NAS__ExtdProtocolConfigOptions__Type operator>>=(int rotate_count) const; +NAS__ExtdProtocolConfigOptions__Type operator>>=(const INTEGER& rotate_count) const; + +NAS__ExtdProtocolConfigOptions__Type operator+(const NAS__ExtdProtocolConfigOptions__Type& other_value) const; + +NAS__ExtdProtocolConfigOptions__Type operator+(const OPTIONAL& other_value) const; + +NAS__ExtdProtocolConfigOptions__Type operator+(null_type) const; + +NAS__ExtdProtocolConfigOptions__Type substr(int index, int returncount) const; + +NAS__ExtdProtocolConfigOptions__Type replace(int index, int len, const NAS__ExtdProtocolConfigOptions__Type& repl) const; + +NAS__ExtdProtocolConfigOptions__Type replace(int index, int len, const NAS__ExtdProtocolConfigOptions__Type_template& repl) const; + +Base_Type* clone() const { return new NAS__ExtdProtocolConfigOptions__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NAS__ExtdProtocolConfigOptions__Type_template : public Record_Of_Template { +friend NAS__ExtdProtocolConfigOptions__Type_template operator+(template_sel left_template, const NAS__ExtdProtocolConfigOptions__Type_template& right_template); +friend NAS__ExtdProtocolConfigOptions__Type_template operator+(const NAS__ExtdProtocolConfigOptions__Type& left_value, const NAS__ExtdProtocolConfigOptions__Type_template& right_template); +friend NAS__ExtdProtocolConfigOptions__Type_template operator+(template_sel left_template, const NAS__ExtdProtocolConfigOptions__Type& right_value); +friend NAS__ExtdProtocolConfigOptions__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NAS__ExtdProtocolConfigOptions__Type_template operator+(const NAS__ExtdProtocolConfigOptions__Type& left_value, template_sel right_template); + +public: +NAS__ExtdProtocolConfigOptions__Type_template() {} +NAS__ExtdProtocolConfigOptions__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NAS__ExtdProtocolConfigOptions__Type_template(null_type other_value); +NAS__ExtdProtocolConfigOptions__Type_template(const NAS__ExtdProtocolConfigOptions__Type& other_value) { copy_value(&other_value); } +NAS__ExtdProtocolConfigOptions__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NAS__ExtdProtocolConfigOptions__Type_template(NAS__ExtdProtocolConfigOptions__Type_template* p_precondition, NAS__ExtdProtocolConfigOptions__Type_template* p_implied_template); +NAS__ExtdProtocolConfigOptions__Type_template(Dynamic_Match_Interface* p_dyn_match); +NAS__ExtdProtocolConfigOptions__Type_template(const NAS__ExtdProtocolConfigOptions__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NAS__ExtdProtocolConfigOptions__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NAS__ExtdProtocolConfigOptions__Type_template& operator=(template_sel other_value); +NAS__ExtdProtocolConfigOptions__Type_template& operator=(null_type other_value); +NAS__ExtdProtocolConfigOptions__Type_template& operator=(const NAS__ExtdProtocolConfigOptions__Type& other_value); +NAS__ExtdProtocolConfigOptions__Type_template& operator=(const OPTIONAL& other_value); +NAS__ExtdProtocolConfigOptions__Type_template& operator=(const NAS__ExtdProtocolConfigOptions__Type_template& other_value); + +NAS__ExtdProtocolConfigOptions__Type_template operator+(const NAS__ExtdProtocolConfigOptions__Type_template& other_value) const; +NAS__ExtdProtocolConfigOptions__Type_template operator+(const NAS__ExtdProtocolConfigOptions__Type& other_value) const; +NAS__ExtdProtocolConfigOptions__Type_template operator+(template_sel other_value) const; +NAS__ExtdProtocolConfigOptions__Type_template operator+(null_type) const; + +ProtocolContainer_template& operator[](int index_value); +ProtocolContainer_template& operator[](const INTEGER& index_value); +const ProtocolContainer_template& operator[](int index_value) const; +const ProtocolContainer_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NAS__ExtdProtocolConfigOptions__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NAS__ExtdProtocolConfigOptions__Type valueof() const; +NAS__ExtdProtocolConfigOptions__Type substr(int index, int returncount) const; + +NAS__ExtdProtocolConfigOptions__Type replace(int index, int len, const NAS__ExtdProtocolConfigOptions__Type_template& repl) const; + +NAS__ExtdProtocolConfigOptions__Type replace(int index, int len, const NAS__ExtdProtocolConfigOptions__Type& repl) const; + +inline NAS__ExtdProtocolConfigOptions__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NAS__ExtdProtocolConfigOptions__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NAS__ExtdProtocolConfigOptions__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class AdditionalInformation : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_additionalInfo; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AdditionalInformation(); + AdditionalInformation(const AdditionalInformation& other_value); + AdditionalInformation(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_additionalInfo); +inline AdditionalInformation& operator=(const AdditionalInformation& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AdditionalInformation& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AdditionalInformation& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& additionalInfo() + {return field_additionalInfo;} + inline const OCTETSTRING& additionalInfo() const + {return field_additionalInfo;} +Base_Type* clone() const { return new AdditionalInformation(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AdditionalInformation_template : public Record_Template { +void set_specific(); +public: +AdditionalInformation_template(): Record_Template() {} +AdditionalInformation_template(template_sel other_value): Record_Template(other_value) {} +AdditionalInformation_template(const AdditionalInformation& other_value): Record_Template() { copy_value(&other_value); } +AdditionalInformation_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AdditionalInformation_template(AdditionalInformation_template* p_precondition, AdditionalInformation_template* p_implied_template); +AdditionalInformation_template(Dynamic_Match_Interface* p_dyn_match); +AdditionalInformation_template(const AdditionalInformation_template& other_value): Record_Template() { copy_template(other_value); } +~AdditionalInformation_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AdditionalInformation_template& operator=(template_sel other_value); +AdditionalInformation_template& operator=(const AdditionalInformation& other_value); +AdditionalInformation_template& operator=(const OPTIONAL& other_value); +AdditionalInformation_template& operator=(const AdditionalInformation_template& other_value); +inline boolean match(const AdditionalInformation& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AdditionalInformation& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AdditionalInformation valueof() const; +inline AdditionalInformation_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& additionalInfo(); +const OCTETSTRING_template& additionalInfo() const; +Record_Template* create() const { return new AdditionalInformation_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AuthenticationResponseParameter : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_res; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AuthenticationResponseParameter(); + AuthenticationResponseParameter(const AuthenticationResponseParameter& other_value); + AuthenticationResponseParameter(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_res); +inline AuthenticationResponseParameter& operator=(const AuthenticationResponseParameter& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AuthenticationResponseParameter& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AuthenticationResponseParameter& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& res() + {return field_res;} + inline const BITSTRING& res() const + {return field_res;} +Base_Type* clone() const { return new AuthenticationResponseParameter(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AuthenticationResponseParameter_template : public Record_Template { +void set_specific(); +public: +AuthenticationResponseParameter_template(): Record_Template() {} +AuthenticationResponseParameter_template(template_sel other_value): Record_Template(other_value) {} +AuthenticationResponseParameter_template(const AuthenticationResponseParameter& other_value): Record_Template() { copy_value(&other_value); } +AuthenticationResponseParameter_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AuthenticationResponseParameter_template(AuthenticationResponseParameter_template* p_precondition, AuthenticationResponseParameter_template* p_implied_template); +AuthenticationResponseParameter_template(Dynamic_Match_Interface* p_dyn_match); +AuthenticationResponseParameter_template(const AuthenticationResponseParameter_template& other_value): Record_Template() { copy_template(other_value); } +~AuthenticationResponseParameter_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AuthenticationResponseParameter_template& operator=(template_sel other_value); +AuthenticationResponseParameter_template& operator=(const AuthenticationResponseParameter& other_value); +AuthenticationResponseParameter_template& operator=(const OPTIONAL& other_value); +AuthenticationResponseParameter_template& operator=(const AuthenticationResponseParameter_template& other_value); +inline boolean match(const AuthenticationResponseParameter& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AuthenticationResponseParameter& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AuthenticationResponseParameter valueof() const; +inline AuthenticationResponseParameter_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& res(); +const BITSTRING_template& res() const; +Record_Template* create() const { return new AuthenticationResponseParameter_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NAS__KeySetIdentifier : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_tsc; + BITSTRING field_nasKeySetId; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NAS__KeySetIdentifier(); + NAS__KeySetIdentifier(const NAS__KeySetIdentifier& other_value); + NAS__KeySetIdentifier(const OPTIONAL& par_iei, + const BITSTRING& par_tsc, + const BITSTRING& par_nasKeySetId); +inline NAS__KeySetIdentifier& operator=(const NAS__KeySetIdentifier& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NAS__KeySetIdentifier& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NAS__KeySetIdentifier& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& tsc() + {return field_tsc;} + inline const BITSTRING& tsc() const + {return field_tsc;} + inline BITSTRING& nasKeySetId() + {return field_nasKeySetId;} + inline const BITSTRING& nasKeySetId() const + {return field_nasKeySetId;} +Base_Type* clone() const { return new NAS__KeySetIdentifier(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NAS__KeySetIdentifier_template : public Record_Template { +void set_specific(); +public: +NAS__KeySetIdentifier_template(): Record_Template() {} +NAS__KeySetIdentifier_template(template_sel other_value): Record_Template(other_value) {} +NAS__KeySetIdentifier_template(const NAS__KeySetIdentifier& other_value): Record_Template() { copy_value(&other_value); } +NAS__KeySetIdentifier_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NAS__KeySetIdentifier_template(NAS__KeySetIdentifier_template* p_precondition, NAS__KeySetIdentifier_template* p_implied_template); +NAS__KeySetIdentifier_template(Dynamic_Match_Interface* p_dyn_match); +NAS__KeySetIdentifier_template(const NAS__KeySetIdentifier_template& other_value): Record_Template() { copy_template(other_value); } +~NAS__KeySetIdentifier_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NAS__KeySetIdentifier_template& operator=(template_sel other_value); +NAS__KeySetIdentifier_template& operator=(const NAS__KeySetIdentifier& other_value); +NAS__KeySetIdentifier_template& operator=(const OPTIONAL& other_value); +NAS__KeySetIdentifier_template& operator=(const NAS__KeySetIdentifier_template& other_value); +inline boolean match(const NAS__KeySetIdentifier& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NAS__KeySetIdentifier& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NAS__KeySetIdentifier valueof() const; +inline NAS__KeySetIdentifier_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& tsc(); +const BITSTRING_template& tsc() const; +BITSTRING_template& nasKeySetId(); +const BITSTRING_template& nasKeySetId() const; +Record_Template* create() const { return new NAS__KeySetIdentifier_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class HashMME : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_hashMME; + Base_Type* fld_vec[3]; + void init_vec(); +public: + HashMME(); + HashMME(const HashMME& other_value); + HashMME(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_hashMME); +inline HashMME& operator=(const HashMME& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const HashMME& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const HashMME& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& hashMME() + {return field_hashMME;} + inline const OCTETSTRING& hashMME() const + {return field_hashMME;} +Base_Type* clone() const { return new HashMME(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class HashMME_template : public Record_Template { +void set_specific(); +public: +HashMME_template(): Record_Template() {} +HashMME_template(template_sel other_value): Record_Template(other_value) {} +HashMME_template(const HashMME& other_value): Record_Template() { copy_value(&other_value); } +HashMME_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +HashMME_template(HashMME_template* p_precondition, HashMME_template* p_implied_template); +HashMME_template(Dynamic_Match_Interface* p_dyn_match); +HashMME_template(const HashMME_template& other_value): Record_Template() { copy_template(other_value); } +~HashMME_template(); +boolean match_dynamic(const Base_Type* match_value) const; +HashMME_template& operator=(template_sel other_value); +HashMME_template& operator=(const HashMME& other_value); +HashMME_template& operator=(const OPTIONAL& other_value); +HashMME_template& operator=(const HashMME_template& other_value); +inline boolean match(const HashMME& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const HashMME& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +HashMME valueof() const; +inline HashMME_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& hashMME(); +const OCTETSTRING_template& hashMME() const; +Record_Template* create() const { return new HashMME_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDN__Address : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_typeValue; + OCTETSTRING field_adressInfo; + Base_Type* fld_vec[5]; + void init_vec(); +public: + PDN__Address(); + PDN__Address(const PDN__Address& other_value); + PDN__Address(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_typeValue, + const OCTETSTRING& par_adressInfo); +inline PDN__Address& operator=(const PDN__Address& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDN__Address& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDN__Address& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& typeValue() + {return field_typeValue;} + inline const BITSTRING& typeValue() const + {return field_typeValue;} + inline OCTETSTRING& adressInfo() + {return field_adressInfo;} + inline const OCTETSTRING& adressInfo() const + {return field_adressInfo;} +Base_Type* clone() const { return new PDN__Address(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDN__Address_template : public Record_Template { +void set_specific(); +public: +PDN__Address_template(): Record_Template() {} +PDN__Address_template(template_sel other_value): Record_Template(other_value) {} +PDN__Address_template(const PDN__Address& other_value): Record_Template() { copy_value(&other_value); } +PDN__Address_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDN__Address_template(PDN__Address_template* p_precondition, PDN__Address_template* p_implied_template); +PDN__Address_template(Dynamic_Match_Interface* p_dyn_match); +PDN__Address_template(const PDN__Address_template& other_value): Record_Template() { copy_template(other_value); } +~PDN__Address_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDN__Address_template& operator=(template_sel other_value); +PDN__Address_template& operator=(const PDN__Address& other_value); +PDN__Address_template& operator=(const OPTIONAL& other_value); +PDN__Address_template& operator=(const PDN__Address_template& other_value); +inline boolean match(const PDN__Address& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDN__Address& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDN__Address valueof() const; +inline PDN__Address_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& typeValue(); +const BITSTRING_template& typeValue() const; +OCTETSTRING_template& adressInfo(); +const OCTETSTRING_template& adressInfo() const; +Record_Template* create() const { return new PDN__Address_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ReplayedNASMessageContainer : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_replayedNASMsgContainerValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ReplayedNASMessageContainer(); + ReplayedNASMessageContainer(const ReplayedNASMessageContainer& other_value); + ReplayedNASMessageContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_replayedNASMsgContainerValue); +inline ReplayedNASMessageContainer& operator=(const ReplayedNASMessageContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ReplayedNASMessageContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ReplayedNASMessageContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& replayedNASMsgContainerValue() + {return field_replayedNASMsgContainerValue;} + inline const OCTETSTRING& replayedNASMsgContainerValue() const + {return field_replayedNASMsgContainerValue;} +Base_Type* clone() const { return new ReplayedNASMessageContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ReplayedNASMessageContainer_template : public Record_Template { +void set_specific(); +public: +ReplayedNASMessageContainer_template(): Record_Template() {} +ReplayedNASMessageContainer_template(template_sel other_value): Record_Template(other_value) {} +ReplayedNASMessageContainer_template(const ReplayedNASMessageContainer& other_value): Record_Template() { copy_value(&other_value); } +ReplayedNASMessageContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ReplayedNASMessageContainer_template(ReplayedNASMessageContainer_template* p_precondition, ReplayedNASMessageContainer_template* p_implied_template); +ReplayedNASMessageContainer_template(Dynamic_Match_Interface* p_dyn_match); +ReplayedNASMessageContainer_template(const ReplayedNASMessageContainer_template& other_value): Record_Template() { copy_template(other_value); } +~ReplayedNASMessageContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ReplayedNASMessageContainer_template& operator=(template_sel other_value); +ReplayedNASMessageContainer_template& operator=(const ReplayedNASMessageContainer& other_value); +ReplayedNASMessageContainer_template& operator=(const OPTIONAL& other_value); +ReplayedNASMessageContainer_template& operator=(const ReplayedNASMessageContainer_template& other_value); +inline boolean match(const ReplayedNASMessageContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ReplayedNASMessageContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ReplayedNASMessageContainer valueof() const; +inline ReplayedNASMessageContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& replayedNASMsgContainerValue(); +const OCTETSTRING_template& replayedNASMsgContainerValue() const; +Record_Template* create() const { return new ReplayedNASMessageContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NAS__SecurityAlgorithms : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare1; + BITSTRING field_cipheringType; + BITSTRING field_spare2; + BITSTRING field_integrityType; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NAS__SecurityAlgorithms(); + NAS__SecurityAlgorithms(const NAS__SecurityAlgorithms& other_value); + NAS__SecurityAlgorithms(const OPTIONAL& par_iei, + const BITSTRING& par_spare1, + const BITSTRING& par_cipheringType, + const BITSTRING& par_spare2, + const BITSTRING& par_integrityType); +inline NAS__SecurityAlgorithms& operator=(const NAS__SecurityAlgorithms& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NAS__SecurityAlgorithms& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NAS__SecurityAlgorithms& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare1() + {return field_spare1;} + inline const BITSTRING& spare1() const + {return field_spare1;} + inline BITSTRING& cipheringType() + {return field_cipheringType;} + inline const BITSTRING& cipheringType() const + {return field_cipheringType;} + inline BITSTRING& spare2() + {return field_spare2;} + inline const BITSTRING& spare2() const + {return field_spare2;} + inline BITSTRING& integrityType() + {return field_integrityType;} + inline const BITSTRING& integrityType() const + {return field_integrityType;} +Base_Type* clone() const { return new NAS__SecurityAlgorithms(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NAS__SecurityAlgorithms_template : public Record_Template { +void set_specific(); +public: +NAS__SecurityAlgorithms_template(): Record_Template() {} +NAS__SecurityAlgorithms_template(template_sel other_value): Record_Template(other_value) {} +NAS__SecurityAlgorithms_template(const NAS__SecurityAlgorithms& other_value): Record_Template() { copy_value(&other_value); } +NAS__SecurityAlgorithms_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NAS__SecurityAlgorithms_template(NAS__SecurityAlgorithms_template* p_precondition, NAS__SecurityAlgorithms_template* p_implied_template); +NAS__SecurityAlgorithms_template(Dynamic_Match_Interface* p_dyn_match); +NAS__SecurityAlgorithms_template(const NAS__SecurityAlgorithms_template& other_value): Record_Template() { copy_template(other_value); } +~NAS__SecurityAlgorithms_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NAS__SecurityAlgorithms_template& operator=(template_sel other_value); +NAS__SecurityAlgorithms_template& operator=(const NAS__SecurityAlgorithms& other_value); +NAS__SecurityAlgorithms_template& operator=(const OPTIONAL& other_value); +NAS__SecurityAlgorithms_template& operator=(const NAS__SecurityAlgorithms_template& other_value); +inline boolean match(const NAS__SecurityAlgorithms& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NAS__SecurityAlgorithms& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NAS__SecurityAlgorithms valueof() const; +inline NAS__SecurityAlgorithms_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& spare1(); +const BITSTRING_template& spare1() const; +BITSTRING_template& cipheringType(); +const BITSTRING_template& cipheringType() const; +BITSTRING_template& spare2(); +const BITSTRING_template& spare2() const; +BITSTRING_template& integrityType(); +const BITSTRING_template& integrityType() const; +Record_Template* create() const { return new NAS__SecurityAlgorithms_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Extd__EPS__QOS : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_unitMaxBitRate; + BITSTRING field_maxBitRateUl__1; + BITSTRING field_maxBitRateUl__2; + BITSTRING field_maxBitRateDl__1; + BITSTRING field_maxBitRateDl__2; + BITSTRING field_unitGuaranteedBitRate; + BITSTRING field_guaranteedBitRateUl__1; + BITSTRING field_guaranteedBitRateUl__2; + BITSTRING field_guaranteedBitRateDl__1; + BITSTRING field_guaranteedBitRateDl__2; + Base_Type* fld_vec[12]; + void init_vec(); +public: + Extd__EPS__QOS(); + Extd__EPS__QOS(const Extd__EPS__QOS& other_value); + Extd__EPS__QOS(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_unitMaxBitRate, + const BITSTRING& par_maxBitRateUl__1, + const BITSTRING& par_maxBitRateUl__2, + const BITSTRING& par_maxBitRateDl__1, + const BITSTRING& par_maxBitRateDl__2, + const BITSTRING& par_unitGuaranteedBitRate, + const BITSTRING& par_guaranteedBitRateUl__1, + const BITSTRING& par_guaranteedBitRateUl__2, + const BITSTRING& par_guaranteedBitRateDl__1, + const BITSTRING& par_guaranteedBitRateDl__2); +inline Extd__EPS__QOS& operator=(const Extd__EPS__QOS& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Extd__EPS__QOS& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Extd__EPS__QOS& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& unitMaxBitRate() + {return field_unitMaxBitRate;} + inline const BITSTRING& unitMaxBitRate() const + {return field_unitMaxBitRate;} + inline BITSTRING& maxBitRateUl__1() + {return field_maxBitRateUl__1;} + inline const BITSTRING& maxBitRateUl__1() const + {return field_maxBitRateUl__1;} + inline BITSTRING& maxBitRateUl__2() + {return field_maxBitRateUl__2;} + inline const BITSTRING& maxBitRateUl__2() const + {return field_maxBitRateUl__2;} + inline BITSTRING& maxBitRateDl__1() + {return field_maxBitRateDl__1;} + inline const BITSTRING& maxBitRateDl__1() const + {return field_maxBitRateDl__1;} + inline BITSTRING& maxBitRateDl__2() + {return field_maxBitRateDl__2;} + inline const BITSTRING& maxBitRateDl__2() const + {return field_maxBitRateDl__2;} + inline BITSTRING& unitGuaranteedBitRate() + {return field_unitGuaranteedBitRate;} + inline const BITSTRING& unitGuaranteedBitRate() const + {return field_unitGuaranteedBitRate;} + inline BITSTRING& guaranteedBitRateUl__1() + {return field_guaranteedBitRateUl__1;} + inline const BITSTRING& guaranteedBitRateUl__1() const + {return field_guaranteedBitRateUl__1;} + inline BITSTRING& guaranteedBitRateUl__2() + {return field_guaranteedBitRateUl__2;} + inline const BITSTRING& guaranteedBitRateUl__2() const + {return field_guaranteedBitRateUl__2;} + inline BITSTRING& guaranteedBitRateDl__1() + {return field_guaranteedBitRateDl__1;} + inline const BITSTRING& guaranteedBitRateDl__1() const + {return field_guaranteedBitRateDl__1;} + inline BITSTRING& guaranteedBitRateDl__2() + {return field_guaranteedBitRateDl__2;} + inline const BITSTRING& guaranteedBitRateDl__2() const + {return field_guaranteedBitRateDl__2;} +Base_Type* clone() const { return new Extd__EPS__QOS(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 12; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Extd__EPS__QOS_template : public Record_Template { +void set_specific(); +public: +Extd__EPS__QOS_template(): Record_Template() {} +Extd__EPS__QOS_template(template_sel other_value): Record_Template(other_value) {} +Extd__EPS__QOS_template(const Extd__EPS__QOS& other_value): Record_Template() { copy_value(&other_value); } +Extd__EPS__QOS_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Extd__EPS__QOS_template(Extd__EPS__QOS_template* p_precondition, Extd__EPS__QOS_template* p_implied_template); +Extd__EPS__QOS_template(Dynamic_Match_Interface* p_dyn_match); +Extd__EPS__QOS_template(const Extd__EPS__QOS_template& other_value): Record_Template() { copy_template(other_value); } +~Extd__EPS__QOS_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Extd__EPS__QOS_template& operator=(template_sel other_value); +Extd__EPS__QOS_template& operator=(const Extd__EPS__QOS& other_value); +Extd__EPS__QOS_template& operator=(const OPTIONAL& other_value); +Extd__EPS__QOS_template& operator=(const Extd__EPS__QOS_template& other_value); +inline boolean match(const Extd__EPS__QOS& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Extd__EPS__QOS& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Extd__EPS__QOS valueof() const; +inline Extd__EPS__QOS_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& unitMaxBitRate(); +const BITSTRING_template& unitMaxBitRate() const; +BITSTRING_template& maxBitRateUl__1(); +const BITSTRING_template& maxBitRateUl__1() const; +BITSTRING_template& maxBitRateUl__2(); +const BITSTRING_template& maxBitRateUl__2() const; +BITSTRING_template& maxBitRateDl__1(); +const BITSTRING_template& maxBitRateDl__1() const; +BITSTRING_template& maxBitRateDl__2(); +const BITSTRING_template& maxBitRateDl__2() const; +BITSTRING_template& unitGuaranteedBitRate(); +const BITSTRING_template& unitGuaranteedBitRate() const; +BITSTRING_template& guaranteedBitRateUl__1(); +const BITSTRING_template& guaranteedBitRateUl__1() const; +BITSTRING_template& guaranteedBitRateUl__2(); +const BITSTRING_template& guaranteedBitRateUl__2() const; +BITSTRING_template& guaranteedBitRateDl__1(); +const BITSTRING_template& guaranteedBitRateDl__1() const; +BITSTRING_template& guaranteedBitRateDl__2(); +const BITSTRING_template& guaranteedBitRateDl__2() const; +Record_Template* create() const { return new Extd__EPS__QOS_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__Status : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_n1ModeRegistered; + BITSTRING field_s1ModeRegistered; + Base_Type* fld_vec[5]; + void init_vec(); +public: + UE__Status(); + UE__Status(const UE__Status& other_value); + UE__Status(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_n1ModeRegistered, + const BITSTRING& par_s1ModeRegistered); +inline UE__Status& operator=(const UE__Status& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__Status& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__Status& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& n1ModeRegistered() + {return field_n1ModeRegistered;} + inline const BITSTRING& n1ModeRegistered() const + {return field_n1ModeRegistered;} + inline BITSTRING& s1ModeRegistered() + {return field_s1ModeRegistered;} + inline const BITSTRING& s1ModeRegistered() const + {return field_s1ModeRegistered;} +Base_Type* clone() const { return new UE__Status(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__Status_template : public Record_Template { +void set_specific(); +public: +UE__Status_template(): Record_Template() {} +UE__Status_template(template_sel other_value): Record_Template(other_value) {} +UE__Status_template(const UE__Status& other_value): Record_Template() { copy_value(&other_value); } +UE__Status_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__Status_template(UE__Status_template* p_precondition, UE__Status_template* p_implied_template); +UE__Status_template(Dynamic_Match_Interface* p_dyn_match); +UE__Status_template(const UE__Status_template& other_value): Record_Template() { copy_template(other_value); } +~UE__Status_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__Status_template& operator=(template_sel other_value); +UE__Status_template& operator=(const UE__Status& other_value); +UE__Status_template& operator=(const OPTIONAL& other_value); +UE__Status_template& operator=(const UE__Status_template& other_value); +inline boolean match(const UE__Status& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__Status& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__Status valueof() const; +inline UE__Status_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& n1ModeRegistered(); +const BITSTRING_template& n1ModeRegistered() const; +BITSTRING_template& s1ModeRegistered(); +const BITSTRING_template& s1ModeRegistered() const; +Record_Template* create() const { return new UE__Status_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ExtdEmergNumList_emergNum : public Record_Of_Type { + +static const ExtdEmergNum UNBOUND_ELEM; + +public: +ExtdEmergNumList_emergNum(): Record_Of_Type() {} +ExtdEmergNumList_emergNum(null_type other_value): Record_Of_Type(other_value) {} +ExtdEmergNumList_emergNum(const ExtdEmergNumList_emergNum& other_value): Record_Of_Type(other_value) {} +~ExtdEmergNumList_emergNum() { clean_up(); } + +inline ExtdEmergNumList_emergNum& operator=(null_type other_value) { set_val(other_value); return *this; } +inline ExtdEmergNumList_emergNum& operator=(const ExtdEmergNumList_emergNum& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdEmergNumList_emergNum& other_value) const { return is_equal(&other_value); } +boolean operator!=(const ExtdEmergNumList_emergNum& other_value) const { return !is_equal(&other_value); } +ExtdEmergNum& operator[](int index_value); +ExtdEmergNum& operator[](const INTEGER& index_value); +const ExtdEmergNum& operator[](int index_value) const; +const ExtdEmergNum& operator[](const INTEGER& index_value) const; +ExtdEmergNumList_emergNum operator<<=(int rotate_count) const; +ExtdEmergNumList_emergNum operator<<=(const INTEGER& rotate_count) const; +ExtdEmergNumList_emergNum operator>>=(int rotate_count) const; +ExtdEmergNumList_emergNum operator>>=(const INTEGER& rotate_count) const; + +ExtdEmergNumList_emergNum operator+(const ExtdEmergNumList_emergNum& other_value) const; + +ExtdEmergNumList_emergNum operator+(const OPTIONAL& other_value) const; + +ExtdEmergNumList_emergNum operator+(null_type) const; + +ExtdEmergNumList_emergNum substr(int index, int returncount) const; + +ExtdEmergNumList_emergNum replace(int index, int len, const ExtdEmergNumList_emergNum& repl) const; + +ExtdEmergNumList_emergNum replace(int index, int len, const ExtdEmergNumList_emergNum_template& repl) const; + +Base_Type* clone() const { return new ExtdEmergNumList_emergNum(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class ExtdEmergNumList_emergNum_template : public Record_Of_Template { +friend ExtdEmergNumList_emergNum_template operator+(template_sel left_template, const ExtdEmergNumList_emergNum_template& right_template); +friend ExtdEmergNumList_emergNum_template operator+(const ExtdEmergNumList_emergNum& left_value, const ExtdEmergNumList_emergNum_template& right_template); +friend ExtdEmergNumList_emergNum_template operator+(template_sel left_template, const ExtdEmergNumList_emergNum& right_value); +friend ExtdEmergNumList_emergNum_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend ExtdEmergNumList_emergNum_template operator+(const ExtdEmergNumList_emergNum& left_value, template_sel right_template); + +public: +ExtdEmergNumList_emergNum_template() {} +ExtdEmergNumList_emergNum_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +ExtdEmergNumList_emergNum_template(null_type other_value); +ExtdEmergNumList_emergNum_template(const ExtdEmergNumList_emergNum& other_value) { copy_value(&other_value); } +ExtdEmergNumList_emergNum_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +ExtdEmergNumList_emergNum_template(ExtdEmergNumList_emergNum_template* p_precondition, ExtdEmergNumList_emergNum_template* p_implied_template); +ExtdEmergNumList_emergNum_template(Dynamic_Match_Interface* p_dyn_match); +ExtdEmergNumList_emergNum_template(const ExtdEmergNumList_emergNum_template& other_value): Record_Of_Template() { copy_template(other_value); } +~ExtdEmergNumList_emergNum_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdEmergNumList_emergNum_template& operator=(template_sel other_value); +ExtdEmergNumList_emergNum_template& operator=(null_type other_value); +ExtdEmergNumList_emergNum_template& operator=(const ExtdEmergNumList_emergNum& other_value); +ExtdEmergNumList_emergNum_template& operator=(const OPTIONAL& other_value); +ExtdEmergNumList_emergNum_template& operator=(const ExtdEmergNumList_emergNum_template& other_value); + +ExtdEmergNumList_emergNum_template operator+(const ExtdEmergNumList_emergNum_template& other_value) const; +ExtdEmergNumList_emergNum_template operator+(const ExtdEmergNumList_emergNum& other_value) const; +ExtdEmergNumList_emergNum_template operator+(template_sel other_value) const; +ExtdEmergNumList_emergNum_template operator+(null_type) const; + +ExtdEmergNum_template& operator[](int index_value); +ExtdEmergNum_template& operator[](const INTEGER& index_value); +const ExtdEmergNum_template& operator[](int index_value) const; +const ExtdEmergNum_template& operator[](const INTEGER& index_value) const; +inline boolean match(const ExtdEmergNumList_emergNum& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +ExtdEmergNumList_emergNum valueof() const; +ExtdEmergNumList_emergNum substr(int index, int returncount) const; + +ExtdEmergNumList_emergNum replace(int index, int len, const ExtdEmergNumList_emergNum_template& repl) const; + +ExtdEmergNumList_emergNum replace(int index, int len, const ExtdEmergNumList_emergNum& repl) const; + +inline ExtdEmergNumList_emergNum_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const ExtdEmergNumList_emergNum& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new ExtdEmergNumList_emergNum_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class ExtdEmergNum : public Record_Type { + OCTETSTRING field_len; + OCTETSTRING field_digits; + OCTETSTRING field_lengthOfSubService; + OCTETSTRING field_subServices; + Base_Type* fld_vec[4]; + void init_vec(); +public: + ExtdEmergNum(); + ExtdEmergNum(const ExtdEmergNum& other_value); + ExtdEmergNum(const OCTETSTRING& par_len, + const OCTETSTRING& par_digits, + const OCTETSTRING& par_lengthOfSubService, + const OCTETSTRING& par_subServices); +inline ExtdEmergNum& operator=(const ExtdEmergNum& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdEmergNum& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ExtdEmergNum& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& digits() + {return field_digits;} + inline const OCTETSTRING& digits() const + {return field_digits;} + inline OCTETSTRING& lengthOfSubService() + {return field_lengthOfSubService;} + inline const OCTETSTRING& lengthOfSubService() const + {return field_lengthOfSubService;} + inline OCTETSTRING& subServices() + {return field_subServices;} + inline const OCTETSTRING& subServices() const + {return field_subServices;} +Base_Type* clone() const { return new ExtdEmergNum(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ExtdEmergNum_template : public Record_Template { +void set_specific(); +public: +ExtdEmergNum_template(): Record_Template() {} +ExtdEmergNum_template(template_sel other_value): Record_Template(other_value) {} +ExtdEmergNum_template(const ExtdEmergNum& other_value): Record_Template() { copy_value(&other_value); } +ExtdEmergNum_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ExtdEmergNum_template(ExtdEmergNum_template* p_precondition, ExtdEmergNum_template* p_implied_template); +ExtdEmergNum_template(Dynamic_Match_Interface* p_dyn_match); +ExtdEmergNum_template(const ExtdEmergNum_template& other_value): Record_Template() { copy_template(other_value); } +~ExtdEmergNum_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdEmergNum_template& operator=(template_sel other_value); +ExtdEmergNum_template& operator=(const ExtdEmergNum& other_value); +ExtdEmergNum_template& operator=(const OPTIONAL& other_value); +ExtdEmergNum_template& operator=(const ExtdEmergNum_template& other_value); +inline boolean match(const ExtdEmergNum& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ExtdEmergNum& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ExtdEmergNum valueof() const; +inline ExtdEmergNum_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& digits(); +const OCTETSTRING_template& digits() const; +OCTETSTRING_template& lengthOfSubService(); +const OCTETSTRING_template& lengthOfSubService() const; +OCTETSTRING_template& subServices(); +const OCTETSTRING_template& subServices() const; +Record_Template* create() const { return new ExtdEmergNum_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ExtdEmergNumList : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_spareBits; + BITSTRING field_extdEmergNumListValidity; + ExtdEmergNumList_emergNum field_emergNum; + Base_Type* fld_vec[5]; + void init_vec(); +public: + ExtdEmergNumList(); + ExtdEmergNumList(const ExtdEmergNumList& other_value); + ExtdEmergNumList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_extdEmergNumListValidity, + const ExtdEmergNumList_emergNum& par_emergNum); +inline ExtdEmergNumList& operator=(const ExtdEmergNumList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdEmergNumList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ExtdEmergNumList& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& extdEmergNumListValidity() + {return field_extdEmergNumListValidity;} + inline const BITSTRING& extdEmergNumListValidity() const + {return field_extdEmergNumListValidity;} + inline ExtdEmergNumList_emergNum& emergNum() + {return field_emergNum;} + inline const ExtdEmergNumList_emergNum& emergNum() const + {return field_emergNum;} +Base_Type* clone() const { return new ExtdEmergNumList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ExtdEmergNumList_template : public Record_Template { +void set_specific(); +public: +ExtdEmergNumList_template(): Record_Template() {} +ExtdEmergNumList_template(template_sel other_value): Record_Template(other_value) {} +ExtdEmergNumList_template(const ExtdEmergNumList& other_value): Record_Template() { copy_value(&other_value); } +ExtdEmergNumList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ExtdEmergNumList_template(ExtdEmergNumList_template* p_precondition, ExtdEmergNumList_template* p_implied_template); +ExtdEmergNumList_template(Dynamic_Match_Interface* p_dyn_match); +ExtdEmergNumList_template(const ExtdEmergNumList_template& other_value): Record_Template() { copy_template(other_value); } +~ExtdEmergNumList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdEmergNumList_template& operator=(template_sel other_value); +ExtdEmergNumList_template& operator=(const ExtdEmergNumList& other_value); +ExtdEmergNumList_template& operator=(const OPTIONAL& other_value); +ExtdEmergNumList_template& operator=(const ExtdEmergNumList_template& other_value); +inline boolean match(const ExtdEmergNumList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ExtdEmergNumList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ExtdEmergNumList valueof() const; +inline ExtdEmergNumList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& extdEmergNumListValidity(); +const BITSTRING_template& extdEmergNumListValidity() const; +ExtdEmergNumList_emergNum_template& emergNum(); +const ExtdEmergNumList_emergNum_template& emergNum() const; +Record_Template* create() const { return new ExtdEmergNumList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__SecurityCapability : public Record_Type { + OCTETSTRING field_iel; + OCTETSTRING field_eeaCap; + OCTETSTRING field_eiaCap; + OPTIONAL field_ueaCap; + OPTIONAL field_uiaCap; + OPTIONAL field_geaCap; + Base_Type* fld_vec[6]; + void init_vec(); +public: + UE__SecurityCapability(); + UE__SecurityCapability(const UE__SecurityCapability& other_value); + UE__SecurityCapability(const OCTETSTRING& par_iel, + const OCTETSTRING& par_eeaCap, + const OCTETSTRING& par_eiaCap, + const OPTIONAL& par_ueaCap, + const OPTIONAL& par_uiaCap, + const OPTIONAL& par_geaCap); +inline UE__SecurityCapability& operator=(const UE__SecurityCapability& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__SecurityCapability& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__SecurityCapability& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& eeaCap() + {return field_eeaCap;} + inline const OCTETSTRING& eeaCap() const + {return field_eeaCap;} + inline OCTETSTRING& eiaCap() + {return field_eiaCap;} + inline const OCTETSTRING& eiaCap() const + {return field_eiaCap;} + inline OPTIONAL& ueaCap() + {return field_ueaCap;} + inline const OPTIONAL& ueaCap() const + {return field_ueaCap;} + inline OPTIONAL& uiaCap() + {return field_uiaCap;} + inline const OPTIONAL& uiaCap() const + {return field_uiaCap;} + inline OPTIONAL& geaCap() + {return field_geaCap;} + inline const OPTIONAL& geaCap() const + {return field_geaCap;} +Base_Type* clone() const { return new UE__SecurityCapability(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__SecurityCapability_template : public Record_Template { +void set_specific(); +public: +UE__SecurityCapability_template(): Record_Template() {} +UE__SecurityCapability_template(template_sel other_value): Record_Template(other_value) {} +UE__SecurityCapability_template(const UE__SecurityCapability& other_value): Record_Template() { copy_value(&other_value); } +UE__SecurityCapability_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__SecurityCapability_template(UE__SecurityCapability_template* p_precondition, UE__SecurityCapability_template* p_implied_template); +UE__SecurityCapability_template(Dynamic_Match_Interface* p_dyn_match); +UE__SecurityCapability_template(const UE__SecurityCapability_template& other_value): Record_Template() { copy_template(other_value); } +~UE__SecurityCapability_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__SecurityCapability_template& operator=(template_sel other_value); +UE__SecurityCapability_template& operator=(const UE__SecurityCapability& other_value); +UE__SecurityCapability_template& operator=(const OPTIONAL& other_value); +UE__SecurityCapability_template& operator=(const UE__SecurityCapability_template& other_value); +inline boolean match(const UE__SecurityCapability& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__SecurityCapability& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__SecurityCapability valueof() const; +inline UE__SecurityCapability_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& eeaCap(); +const OCTETSTRING_template& eeaCap() const; +OCTETSTRING_template& eiaCap(); +const OCTETSTRING_template& eiaCap() const; +OCTETSTRING_template& ueaCap(); +const OCTETSTRING_template& ueaCap() const; +OCTETSTRING_template& uiaCap(); +const OCTETSTRING_template& uiaCap() const; +OCTETSTRING_template& geaCap(); +const OCTETSTRING_template& geaCap() const; +Record_Template* create() const { return new UE__SecurityCapability_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__QualityOfService : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_qci; + OPTIONAL field_maxBitRateUl; + OPTIONAL field_maxBitRateDl; + OPTIONAL field_guaranteedBitRateUl; + OPTIONAL field_guaranteedBitRateDl; + OPTIONAL field_maxBitRateUlExt; + OPTIONAL field_maxBitRateDlExt; + OPTIONAL field_guaranteedBitRateUlExt; + OPTIONAL field_guaranteedBitRateDlExt; + OPTIONAL field_maxBitRateUL__Ext2; + OPTIONAL field_maxBitRateDL__Ext2; + OPTIONAL field_guaranteedBitRateUL__Ext2; + OPTIONAL field_guaranteedBitRateDL__Ext2; + Base_Type* fld_vec[15]; + void init_vec(); +public: + EPS__QualityOfService(); + EPS__QualityOfService(const EPS__QualityOfService& other_value); + EPS__QualityOfService(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_qci, + const OPTIONAL& par_maxBitRateUl, + const OPTIONAL& par_maxBitRateDl, + const OPTIONAL& par_guaranteedBitRateUl, + const OPTIONAL& par_guaranteedBitRateDl, + const OPTIONAL& par_maxBitRateUlExt, + const OPTIONAL& par_maxBitRateDlExt, + const OPTIONAL& par_guaranteedBitRateUlExt, + const OPTIONAL& par_guaranteedBitRateDlExt, + const OPTIONAL& par_maxBitRateUL__Ext2, + const OPTIONAL& par_maxBitRateDL__Ext2, + const OPTIONAL& par_guaranteedBitRateUL__Ext2, + const OPTIONAL& par_guaranteedBitRateDL__Ext2); +inline EPS__QualityOfService& operator=(const EPS__QualityOfService& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__QualityOfService& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__QualityOfService& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& qci() + {return field_qci;} + inline const BITSTRING& qci() const + {return field_qci;} + inline OPTIONAL& maxBitRateUl() + {return field_maxBitRateUl;} + inline const OPTIONAL& maxBitRateUl() const + {return field_maxBitRateUl;} + inline OPTIONAL& maxBitRateDl() + {return field_maxBitRateDl;} + inline const OPTIONAL& maxBitRateDl() const + {return field_maxBitRateDl;} + inline OPTIONAL& guaranteedBitRateUl() + {return field_guaranteedBitRateUl;} + inline const OPTIONAL& guaranteedBitRateUl() const + {return field_guaranteedBitRateUl;} + inline OPTIONAL& guaranteedBitRateDl() + {return field_guaranteedBitRateDl;} + inline const OPTIONAL& guaranteedBitRateDl() const + {return field_guaranteedBitRateDl;} + inline OPTIONAL& maxBitRateUlExt() + {return field_maxBitRateUlExt;} + inline const OPTIONAL& maxBitRateUlExt() const + {return field_maxBitRateUlExt;} + inline OPTIONAL& maxBitRateDlExt() + {return field_maxBitRateDlExt;} + inline const OPTIONAL& maxBitRateDlExt() const + {return field_maxBitRateDlExt;} + inline OPTIONAL& guaranteedBitRateUlExt() + {return field_guaranteedBitRateUlExt;} + inline const OPTIONAL& guaranteedBitRateUlExt() const + {return field_guaranteedBitRateUlExt;} + inline OPTIONAL& guaranteedBitRateDlExt() + {return field_guaranteedBitRateDlExt;} + inline const OPTIONAL& guaranteedBitRateDlExt() const + {return field_guaranteedBitRateDlExt;} + inline OPTIONAL& maxBitRateUL__Ext2() + {return field_maxBitRateUL__Ext2;} + inline const OPTIONAL& maxBitRateUL__Ext2() const + {return field_maxBitRateUL__Ext2;} + inline OPTIONAL& maxBitRateDL__Ext2() + {return field_maxBitRateDL__Ext2;} + inline const OPTIONAL& maxBitRateDL__Ext2() const + {return field_maxBitRateDL__Ext2;} + inline OPTIONAL& guaranteedBitRateUL__Ext2() + {return field_guaranteedBitRateUL__Ext2;} + inline const OPTIONAL& guaranteedBitRateUL__Ext2() const + {return field_guaranteedBitRateUL__Ext2;} + inline OPTIONAL& guaranteedBitRateDL__Ext2() + {return field_guaranteedBitRateDL__Ext2;} + inline const OPTIONAL& guaranteedBitRateDL__Ext2() const + {return field_guaranteedBitRateDL__Ext2;} +Base_Type* clone() const { return new EPS__QualityOfService(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 15; } +int optional_count() const { return 13; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__QualityOfService_template : public Record_Template { +void set_specific(); +public: +EPS__QualityOfService_template(): Record_Template() {} +EPS__QualityOfService_template(template_sel other_value): Record_Template(other_value) {} +EPS__QualityOfService_template(const EPS__QualityOfService& other_value): Record_Template() { copy_value(&other_value); } +EPS__QualityOfService_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__QualityOfService_template(EPS__QualityOfService_template* p_precondition, EPS__QualityOfService_template* p_implied_template); +EPS__QualityOfService_template(Dynamic_Match_Interface* p_dyn_match); +EPS__QualityOfService_template(const EPS__QualityOfService_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__QualityOfService_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__QualityOfService_template& operator=(template_sel other_value); +EPS__QualityOfService_template& operator=(const EPS__QualityOfService& other_value); +EPS__QualityOfService_template& operator=(const OPTIONAL& other_value); +EPS__QualityOfService_template& operator=(const EPS__QualityOfService_template& other_value); +inline boolean match(const EPS__QualityOfService& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__QualityOfService& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__QualityOfService valueof() const; +inline EPS__QualityOfService_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& qci(); +const BITSTRING_template& qci() const; +BITSTRING_template& maxBitRateUl(); +const BITSTRING_template& maxBitRateUl() const; +BITSTRING_template& maxBitRateDl(); +const BITSTRING_template& maxBitRateDl() const; +BITSTRING_template& guaranteedBitRateUl(); +const BITSTRING_template& guaranteedBitRateUl() const; +BITSTRING_template& guaranteedBitRateDl(); +const BITSTRING_template& guaranteedBitRateDl() const; +BITSTRING_template& maxBitRateUlExt(); +const BITSTRING_template& maxBitRateUlExt() const; +BITSTRING_template& maxBitRateDlExt(); +const BITSTRING_template& maxBitRateDlExt() const; +BITSTRING_template& guaranteedBitRateUlExt(); +const BITSTRING_template& guaranteedBitRateUlExt() const; +BITSTRING_template& guaranteedBitRateDlExt(); +const BITSTRING_template& guaranteedBitRateDlExt() const; +BITSTRING_template& maxBitRateUL__Ext2(); +const BITSTRING_template& maxBitRateUL__Ext2() const; +BITSTRING_template& maxBitRateDL__Ext2(); +const BITSTRING_template& maxBitRateDL__Ext2() const; +BITSTRING_template& guaranteedBitRateUL__Ext2(); +const BITSTRING_template& guaranteedBitRateUL__Ext2() const; +BITSTRING_template& guaranteedBitRateDL__Ext2(); +const BITSTRING_template& guaranteedBitRateDL__Ext2() const; +Record_Template* create() const { return new EPS__QualityOfService_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__BearerContextStatus : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_ebi5__7; + BITSTRING field_ebi4__1; + BITSTRING field_spare; + BITSTRING field_ebi8__15; + Base_Type* fld_vec[6]; + void init_vec(); +public: + EPS__BearerContextStatus(); + EPS__BearerContextStatus(const EPS__BearerContextStatus& other_value); + EPS__BearerContextStatus(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_ebi5__7, + const BITSTRING& par_ebi4__1, + const BITSTRING& par_spare, + const BITSTRING& par_ebi8__15); +inline EPS__BearerContextStatus& operator=(const EPS__BearerContextStatus& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__BearerContextStatus& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__BearerContextStatus& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& ebi5__7() + {return field_ebi5__7;} + inline const BITSTRING& ebi5__7() const + {return field_ebi5__7;} + inline BITSTRING& ebi4__1() + {return field_ebi4__1;} + inline const BITSTRING& ebi4__1() const + {return field_ebi4__1;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& ebi8__15() + {return field_ebi8__15;} + inline const BITSTRING& ebi8__15() const + {return field_ebi8__15;} +Base_Type* clone() const { return new EPS__BearerContextStatus(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__BearerContextStatus_template : public Record_Template { +void set_specific(); +public: +EPS__BearerContextStatus_template(): Record_Template() {} +EPS__BearerContextStatus_template(template_sel other_value): Record_Template(other_value) {} +EPS__BearerContextStatus_template(const EPS__BearerContextStatus& other_value): Record_Template() { copy_value(&other_value); } +EPS__BearerContextStatus_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__BearerContextStatus_template(EPS__BearerContextStatus_template* p_precondition, EPS__BearerContextStatus_template* p_implied_template); +EPS__BearerContextStatus_template(Dynamic_Match_Interface* p_dyn_match); +EPS__BearerContextStatus_template(const EPS__BearerContextStatus_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__BearerContextStatus_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__BearerContextStatus_template& operator=(template_sel other_value); +EPS__BearerContextStatus_template& operator=(const EPS__BearerContextStatus& other_value); +EPS__BearerContextStatus_template& operator=(const OPTIONAL& other_value); +EPS__BearerContextStatus_template& operator=(const EPS__BearerContextStatus_template& other_value); +inline boolean match(const EPS__BearerContextStatus& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__BearerContextStatus& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__BearerContextStatus valueof() const; +inline EPS__BearerContextStatus_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& ebi5__7(); +const BITSTRING_template& ebi5__7() const; +BITSTRING_template& ebi4__1(); +const BITSTRING_template& ebi4__1() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& ebi8__15(); +const BITSTRING_template& ebi8__15() const; +Record_Template* create() const { return new EPS__BearerContextStatus_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UERadioCapId : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_id; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UERadioCapId(); + UERadioCapId(const UERadioCapId& other_value); + UERadioCapId(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_id); +inline UERadioCapId& operator=(const UERadioCapId& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UERadioCapId& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UERadioCapId& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} +Base_Type* clone() const { return new UERadioCapId(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UERadioCapId_template : public Record_Template { +void set_specific(); +public: +UERadioCapId_template(): Record_Template() {} +UERadioCapId_template(template_sel other_value): Record_Template(other_value) {} +UERadioCapId_template(const UERadioCapId& other_value): Record_Template() { copy_value(&other_value); } +UERadioCapId_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UERadioCapId_template(UERadioCapId_template* p_precondition, UERadioCapId_template* p_implied_template); +UERadioCapId_template(Dynamic_Match_Interface* p_dyn_match); +UERadioCapId_template(const UERadioCapId_template& other_value): Record_Template() { copy_template(other_value); } +~UERadioCapId_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UERadioCapId_template& operator=(template_sel other_value); +UERadioCapId_template& operator=(const UERadioCapId& other_value); +UERadioCapId_template& operator=(const OPTIONAL& other_value); +UERadioCapId_template& operator=(const UERadioCapId_template& other_value); +inline boolean match(const UERadioCapId& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UERadioCapId& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UERadioCapId valueof() const; +inline UERadioCapId_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +Record_Template* create() const { return new UERadioCapId_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UERadioCapIdDeletion : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_deleteReq; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UERadioCapIdDeletion(); + UERadioCapIdDeletion(const UERadioCapIdDeletion& other_value); + UERadioCapIdDeletion(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_deleteReq); +inline UERadioCapIdDeletion& operator=(const UERadioCapIdDeletion& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UERadioCapIdDeletion& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UERadioCapIdDeletion& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& deleteReq() + {return field_deleteReq;} + inline const BITSTRING& deleteReq() const + {return field_deleteReq;} +Base_Type* clone() const { return new UERadioCapIdDeletion(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UERadioCapIdDeletion_template : public Record_Template { +void set_specific(); +public: +UERadioCapIdDeletion_template(): Record_Template() {} +UERadioCapIdDeletion_template(template_sel other_value): Record_Template(other_value) {} +UERadioCapIdDeletion_template(const UERadioCapIdDeletion& other_value): Record_Template() { copy_value(&other_value); } +UERadioCapIdDeletion_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UERadioCapIdDeletion_template(UERadioCapIdDeletion_template* p_precondition, UERadioCapIdDeletion_template* p_implied_template); +UERadioCapIdDeletion_template(Dynamic_Match_Interface* p_dyn_match); +UERadioCapIdDeletion_template(const UERadioCapIdDeletion_template& other_value): Record_Template() { copy_template(other_value); } +~UERadioCapIdDeletion_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UERadioCapIdDeletion_template& operator=(template_sel other_value); +UERadioCapIdDeletion_template& operator=(const UERadioCapIdDeletion& other_value); +UERadioCapIdDeletion_template& operator=(const OPTIONAL& other_value); +UERadioCapIdDeletion_template& operator=(const UERadioCapIdDeletion_template& other_value); +inline boolean match(const UERadioCapIdDeletion& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UERadioCapIdDeletion& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UERadioCapIdDeletion valueof() const; +inline UERadioCapIdDeletion_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& deleteReq(); +const BITSTRING_template& deleteReq() const; +Record_Template* create() const { return new UERadioCapIdDeletion_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DRXParamCommon : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare; + BITSTRING field_drxValue; + Base_Type* fld_vec[4]; + void init_vec(); +public: + DRXParamCommon(); + DRXParamCommon(const DRXParamCommon& other_value); + DRXParamCommon(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_drxValue); +inline DRXParamCommon& operator=(const DRXParamCommon& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DRXParamCommon& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DRXParamCommon& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& drxValue() + {return field_drxValue;} + inline const BITSTRING& drxValue() const + {return field_drxValue;} +Base_Type* clone() const { return new DRXParamCommon(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DRXParamCommon_template : public Record_Template { +void set_specific(); +public: +DRXParamCommon_template(): Record_Template() {} +DRXParamCommon_template(template_sel other_value): Record_Template(other_value) {} +DRXParamCommon_template(const DRXParamCommon& other_value): Record_Template() { copy_value(&other_value); } +DRXParamCommon_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DRXParamCommon_template(DRXParamCommon_template* p_precondition, DRXParamCommon_template* p_implied_template); +DRXParamCommon_template(Dynamic_Match_Interface* p_dyn_match); +DRXParamCommon_template(const DRXParamCommon_template& other_value): Record_Template() { copy_template(other_value); } +~DRXParamCommon_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DRXParamCommon_template& operator=(template_sel other_value); +DRXParamCommon_template& operator=(const DRXParamCommon& other_value); +DRXParamCommon_template& operator=(const OPTIONAL& other_value); +DRXParamCommon_template& operator=(const DRXParamCommon_template& other_value); +inline boolean match(const DRXParamCommon& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DRXParamCommon& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DRXParamCommon valueof() const; +inline DRXParamCommon_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& drxValue(); +const BITSTRING_template& drxValue() const; +Record_Template* create() const { return new DRXParamCommon_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ReleaseAssistanceInd : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_dlDataExpected; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ReleaseAssistanceInd(); + ReleaseAssistanceInd(const ReleaseAssistanceInd& other_value); + ReleaseAssistanceInd(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_dlDataExpected); +inline ReleaseAssistanceInd& operator=(const ReleaseAssistanceInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ReleaseAssistanceInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ReleaseAssistanceInd& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& dlDataExpected() + {return field_dlDataExpected;} + inline const BITSTRING& dlDataExpected() const + {return field_dlDataExpected;} +Base_Type* clone() const { return new ReleaseAssistanceInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ReleaseAssistanceInd_template : public Record_Template { +void set_specific(); +public: +ReleaseAssistanceInd_template(): Record_Template() {} +ReleaseAssistanceInd_template(template_sel other_value): Record_Template(other_value) {} +ReleaseAssistanceInd_template(const ReleaseAssistanceInd& other_value): Record_Template() { copy_value(&other_value); } +ReleaseAssistanceInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ReleaseAssistanceInd_template(ReleaseAssistanceInd_template* p_precondition, ReleaseAssistanceInd_template* p_implied_template); +ReleaseAssistanceInd_template(Dynamic_Match_Interface* p_dyn_match); +ReleaseAssistanceInd_template(const ReleaseAssistanceInd_template& other_value): Record_Template() { copy_template(other_value); } +~ReleaseAssistanceInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ReleaseAssistanceInd_template& operator=(template_sel other_value); +ReleaseAssistanceInd_template& operator=(const ReleaseAssistanceInd& other_value); +ReleaseAssistanceInd_template& operator=(const OPTIONAL& other_value); +ReleaseAssistanceInd_template& operator=(const ReleaseAssistanceInd_template& other_value); +inline boolean match(const ReleaseAssistanceInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ReleaseAssistanceInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ReleaseAssistanceInd valueof() const; +inline ReleaseAssistanceInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& dlDataExpected(); +const BITSTRING_template& dlDataExpected() const; +Record_Template* create() const { return new ReleaseAssistanceInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class WUSAssistInfo_infoType : public Record_Of_Type { + +static const WusInfoType UNBOUND_ELEM; + +public: +WUSAssistInfo_infoType(): Record_Of_Type() {} +WUSAssistInfo_infoType(null_type other_value): Record_Of_Type(other_value) {} +WUSAssistInfo_infoType(const WUSAssistInfo_infoType& other_value): Record_Of_Type(other_value) {} +~WUSAssistInfo_infoType() { clean_up(); } + +inline WUSAssistInfo_infoType& operator=(null_type other_value) { set_val(other_value); return *this; } +inline WUSAssistInfo_infoType& operator=(const WUSAssistInfo_infoType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const WUSAssistInfo_infoType& other_value) const { return is_equal(&other_value); } +boolean operator!=(const WUSAssistInfo_infoType& other_value) const { return !is_equal(&other_value); } +WusInfoType& operator[](int index_value); +WusInfoType& operator[](const INTEGER& index_value); +const WusInfoType& operator[](int index_value) const; +const WusInfoType& operator[](const INTEGER& index_value) const; +WUSAssistInfo_infoType operator<<=(int rotate_count) const; +WUSAssistInfo_infoType operator<<=(const INTEGER& rotate_count) const; +WUSAssistInfo_infoType operator>>=(int rotate_count) const; +WUSAssistInfo_infoType operator>>=(const INTEGER& rotate_count) const; + +WUSAssistInfo_infoType operator+(const WUSAssistInfo_infoType& other_value) const; + +WUSAssistInfo_infoType operator+(const OPTIONAL& other_value) const; + +WUSAssistInfo_infoType operator+(null_type) const; + +WUSAssistInfo_infoType substr(int index, int returncount) const; + +WUSAssistInfo_infoType replace(int index, int len, const WUSAssistInfo_infoType& repl) const; + +WUSAssistInfo_infoType replace(int index, int len, const WUSAssistInfo_infoType_template& repl) const; + +Base_Type* clone() const { return new WUSAssistInfo_infoType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class WUSAssistInfo_infoType_template : public Record_Of_Template { +friend WUSAssistInfo_infoType_template operator+(template_sel left_template, const WUSAssistInfo_infoType_template& right_template); +friend WUSAssistInfo_infoType_template operator+(const WUSAssistInfo_infoType& left_value, const WUSAssistInfo_infoType_template& right_template); +friend WUSAssistInfo_infoType_template operator+(template_sel left_template, const WUSAssistInfo_infoType& right_value); +friend WUSAssistInfo_infoType_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend WUSAssistInfo_infoType_template operator+(const WUSAssistInfo_infoType& left_value, template_sel right_template); + +public: +WUSAssistInfo_infoType_template() {} +WUSAssistInfo_infoType_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +WUSAssistInfo_infoType_template(null_type other_value); +WUSAssistInfo_infoType_template(const WUSAssistInfo_infoType& other_value) { copy_value(&other_value); } +WUSAssistInfo_infoType_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +WUSAssistInfo_infoType_template(WUSAssistInfo_infoType_template* p_precondition, WUSAssistInfo_infoType_template* p_implied_template); +WUSAssistInfo_infoType_template(Dynamic_Match_Interface* p_dyn_match); +WUSAssistInfo_infoType_template(const WUSAssistInfo_infoType_template& other_value): Record_Of_Template() { copy_template(other_value); } +~WUSAssistInfo_infoType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +WUSAssistInfo_infoType_template& operator=(template_sel other_value); +WUSAssistInfo_infoType_template& operator=(null_type other_value); +WUSAssistInfo_infoType_template& operator=(const WUSAssistInfo_infoType& other_value); +WUSAssistInfo_infoType_template& operator=(const OPTIONAL& other_value); +WUSAssistInfo_infoType_template& operator=(const WUSAssistInfo_infoType_template& other_value); + +WUSAssistInfo_infoType_template operator+(const WUSAssistInfo_infoType_template& other_value) const; +WUSAssistInfo_infoType_template operator+(const WUSAssistInfo_infoType& other_value) const; +WUSAssistInfo_infoType_template operator+(template_sel other_value) const; +WUSAssistInfo_infoType_template operator+(null_type) const; + +WusInfoType_template& operator[](int index_value); +WusInfoType_template& operator[](const INTEGER& index_value); +const WusInfoType_template& operator[](int index_value) const; +const WusInfoType_template& operator[](const INTEGER& index_value) const; +inline boolean match(const WUSAssistInfo_infoType& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +WUSAssistInfo_infoType valueof() const; +WUSAssistInfo_infoType substr(int index, int returncount) const; + +WUSAssistInfo_infoType replace(int index, int len, const WUSAssistInfo_infoType_template& repl) const; + +WUSAssistInfo_infoType replace(int index, int len, const WUSAssistInfo_infoType& repl) const; + +inline WUSAssistInfo_infoType_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const WUSAssistInfo_infoType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new WUSAssistInfo_infoType_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class WusInfoType : public Record_Type { + BITSTRING field_wusType; + BITSTRING field_pagingProbability; + OPTIONAL field_wusValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + WusInfoType(); + WusInfoType(const WusInfoType& other_value); + WusInfoType(const BITSTRING& par_wusType, + const BITSTRING& par_pagingProbability, + const OPTIONAL& par_wusValue); +inline WusInfoType& operator=(const WusInfoType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const WusInfoType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const WusInfoType& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& wusType() + {return field_wusType;} + inline const BITSTRING& wusType() const + {return field_wusType;} + inline BITSTRING& pagingProbability() + {return field_pagingProbability;} + inline const BITSTRING& pagingProbability() const + {return field_pagingProbability;} + inline OPTIONAL& wusValue() + {return field_wusValue;} + inline const OPTIONAL& wusValue() const + {return field_wusValue;} +Base_Type* clone() const { return new WusInfoType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class WusInfoType_template : public Record_Template { +void set_specific(); +public: +WusInfoType_template(): Record_Template() {} +WusInfoType_template(template_sel other_value): Record_Template(other_value) {} +WusInfoType_template(const WusInfoType& other_value): Record_Template() { copy_value(&other_value); } +WusInfoType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +WusInfoType_template(WusInfoType_template* p_precondition, WusInfoType_template* p_implied_template); +WusInfoType_template(Dynamic_Match_Interface* p_dyn_match); +WusInfoType_template(const WusInfoType_template& other_value): Record_Template() { copy_template(other_value); } +~WusInfoType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +WusInfoType_template& operator=(template_sel other_value); +WusInfoType_template& operator=(const WusInfoType& other_value); +WusInfoType_template& operator=(const OPTIONAL& other_value); +WusInfoType_template& operator=(const WusInfoType_template& other_value); +inline boolean match(const WusInfoType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const WusInfoType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +WusInfoType valueof() const; +inline WusInfoType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& wusType(); +const BITSTRING_template& wusType() const; +BITSTRING_template& pagingProbability(); +const BITSTRING_template& pagingProbability() const; +OCTETSTRING_template& wusValue(); +const OCTETSTRING_template& wusValue() const; +Record_Template* create() const { return new WusInfoType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class WUSAssistInfo : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + WUSAssistInfo_infoType field_infoType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + WUSAssistInfo(); + WUSAssistInfo(const WUSAssistInfo& other_value); + WUSAssistInfo(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const WUSAssistInfo_infoType& par_infoType); +inline WUSAssistInfo& operator=(const WUSAssistInfo& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const WUSAssistInfo& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const WUSAssistInfo& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline WUSAssistInfo_infoType& infoType() + {return field_infoType;} + inline const WUSAssistInfo_infoType& infoType() const + {return field_infoType;} +Base_Type* clone() const { return new WUSAssistInfo(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class WUSAssistInfo_template : public Record_Template { +void set_specific(); +public: +WUSAssistInfo_template(): Record_Template() {} +WUSAssistInfo_template(template_sel other_value): Record_Template(other_value) {} +WUSAssistInfo_template(const WUSAssistInfo& other_value): Record_Template() { copy_value(&other_value); } +WUSAssistInfo_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +WUSAssistInfo_template(WUSAssistInfo_template* p_precondition, WUSAssistInfo_template* p_implied_template); +WUSAssistInfo_template(Dynamic_Match_Interface* p_dyn_match); +WUSAssistInfo_template(const WUSAssistInfo_template& other_value): Record_Template() { copy_template(other_value); } +~WUSAssistInfo_template(); +boolean match_dynamic(const Base_Type* match_value) const; +WUSAssistInfo_template& operator=(template_sel other_value); +WUSAssistInfo_template& operator=(const WUSAssistInfo& other_value); +WUSAssistInfo_template& operator=(const OPTIONAL& other_value); +WUSAssistInfo_template& operator=(const WUSAssistInfo_template& other_value); +inline boolean match(const WUSAssistInfo& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const WUSAssistInfo& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +WUSAssistInfo valueof() const; +inline WUSAssistInfo_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +WUSAssistInfo_infoType_template& infoType(); +const WUSAssistInfo_infoType_template& infoType() const; +Record_Template* create() const { return new WUSAssistInfo_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ServingPLMNRateControl : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_servingPLMNRate; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ServingPLMNRateControl(); + ServingPLMNRateControl(const ServingPLMNRateControl& other_value); + ServingPLMNRateControl(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_servingPLMNRate); +inline ServingPLMNRateControl& operator=(const ServingPLMNRateControl& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ServingPLMNRateControl& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ServingPLMNRateControl& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& servingPLMNRate() + {return field_servingPLMNRate;} + inline const OCTETSTRING& servingPLMNRate() const + {return field_servingPLMNRate;} +Base_Type* clone() const { return new ServingPLMNRateControl(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ServingPLMNRateControl_template : public Record_Template { +void set_specific(); +public: +ServingPLMNRateControl_template(): Record_Template() {} +ServingPLMNRateControl_template(template_sel other_value): Record_Template(other_value) {} +ServingPLMNRateControl_template(const ServingPLMNRateControl& other_value): Record_Template() { copy_value(&other_value); } +ServingPLMNRateControl_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ServingPLMNRateControl_template(ServingPLMNRateControl_template* p_precondition, ServingPLMNRateControl_template* p_implied_template); +ServingPLMNRateControl_template(Dynamic_Match_Interface* p_dyn_match); +ServingPLMNRateControl_template(const ServingPLMNRateControl_template& other_value): Record_Template() { copy_template(other_value); } +~ServingPLMNRateControl_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ServingPLMNRateControl_template& operator=(template_sel other_value); +ServingPLMNRateControl_template& operator=(const ServingPLMNRateControl& other_value); +ServingPLMNRateControl_template& operator=(const OPTIONAL& other_value); +ServingPLMNRateControl_template& operator=(const ServingPLMNRateControl_template& other_value); +inline boolean match(const ServingPLMNRateControl& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ServingPLMNRateControl& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ServingPLMNRateControl valueof() const; +inline ServingPLMNRateControl_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& servingPLMNRate(); +const OCTETSTRING_template& servingPLMNRate() const; +Record_Template* create() const { return new ServingPLMNRateControl_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ControlPlaneInd : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_cpIndValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ControlPlaneInd(); + ControlPlaneInd(const ControlPlaneInd& other_value); + ControlPlaneInd(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_cpIndValue); +inline ControlPlaneInd& operator=(const ControlPlaneInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ControlPlaneInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ControlPlaneInd& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& cpIndValue() + {return field_cpIndValue;} + inline const BITSTRING& cpIndValue() const + {return field_cpIndValue;} +Base_Type* clone() const { return new ControlPlaneInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ControlPlaneInd_template : public Record_Template { +void set_specific(); +public: +ControlPlaneInd_template(): Record_Template() {} +ControlPlaneInd_template(template_sel other_value): Record_Template(other_value) {} +ControlPlaneInd_template(const ControlPlaneInd& other_value): Record_Template() { copy_value(&other_value); } +ControlPlaneInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ControlPlaneInd_template(ControlPlaneInd_template* p_precondition, ControlPlaneInd_template* p_implied_template); +ControlPlaneInd_template(Dynamic_Match_Interface* p_dyn_match); +ControlPlaneInd_template(const ControlPlaneInd_template& other_value): Record_Template() { copy_template(other_value); } +~ControlPlaneInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ControlPlaneInd_template& operator=(template_sel other_value); +ControlPlaneInd_template& operator=(const ControlPlaneInd& other_value); +ControlPlaneInd_template& operator=(const OPTIONAL& other_value); +ControlPlaneInd_template& operator=(const ControlPlaneInd_template& other_value); +inline boolean match(const ControlPlaneInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ControlPlaneInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ControlPlaneInd valueof() const; +inline ControlPlaneInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& cpIndValue(); +const BITSTRING_template& cpIndValue() const; +Record_Template* create() const { return new ControlPlaneInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class QoSParameters : public Record_Type { + OCTETSTRING field_id; + OCTETSTRING field_lenOfContent; + OCTETSTRING field_qosParam; + Base_Type* fld_vec[3]; + void init_vec(); +public: + QoSParameters(); + QoSParameters(const QoSParameters& other_value); + QoSParameters(const OCTETSTRING& par_id, + const OCTETSTRING& par_lenOfContent, + const OCTETSTRING& par_qosParam); +inline QoSParameters& operator=(const QoSParameters& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoSParameters& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const QoSParameters& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline OCTETSTRING& lenOfContent() + {return field_lenOfContent;} + inline const OCTETSTRING& lenOfContent() const + {return field_lenOfContent;} + inline OCTETSTRING& qosParam() + {return field_qosParam;} + inline const OCTETSTRING& qosParam() const + {return field_qosParam;} +Base_Type* clone() const { return new QoSParameters(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class QoSParameters_template : public Record_Template { +void set_specific(); +public: +QoSParameters_template(): Record_Template() {} +QoSParameters_template(template_sel other_value): Record_Template(other_value) {} +QoSParameters_template(const QoSParameters& other_value): Record_Template() { copy_value(&other_value); } +QoSParameters_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +QoSParameters_template(QoSParameters_template* p_precondition, QoSParameters_template* p_implied_template); +QoSParameters_template(Dynamic_Match_Interface* p_dyn_match); +QoSParameters_template(const QoSParameters_template& other_value): Record_Template() { copy_template(other_value); } +~QoSParameters_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoSParameters_template& operator=(template_sel other_value); +QoSParameters_template& operator=(const QoSParameters& other_value); +QoSParameters_template& operator=(const OPTIONAL& other_value); +QoSParameters_template& operator=(const QoSParameters_template& other_value); +inline boolean match(const QoSParameters& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const QoSParameters& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +QoSParameters valueof() const; +inline QoSParameters_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +OCTETSTRING_template& lenOfContent(); +const OCTETSTRING_template& lenOfContent() const; +OCTETSTRING_template& qosParam(); +const OCTETSTRING_template& qosParam() const; +Record_Template* create() const { return new QoSParameters_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class QoSParametersList : public Record_Of_Type { + +static const QoSParameters UNBOUND_ELEM; + +public: +QoSParametersList(): Record_Of_Type() {} +QoSParametersList(null_type other_value): Record_Of_Type(other_value) {} +QoSParametersList(const QoSParametersList& other_value): Record_Of_Type(other_value) {} +~QoSParametersList() { clean_up(); } + +inline QoSParametersList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline QoSParametersList& operator=(const QoSParametersList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoSParametersList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const QoSParametersList& other_value) const { return !is_equal(&other_value); } +QoSParameters& operator[](int index_value); +QoSParameters& operator[](const INTEGER& index_value); +const QoSParameters& operator[](int index_value) const; +const QoSParameters& operator[](const INTEGER& index_value) const; +QoSParametersList operator<<=(int rotate_count) const; +QoSParametersList operator<<=(const INTEGER& rotate_count) const; +QoSParametersList operator>>=(int rotate_count) const; +QoSParametersList operator>>=(const INTEGER& rotate_count) const; + +QoSParametersList operator+(const QoSParametersList& other_value) const; + +QoSParametersList operator+(const OPTIONAL& other_value) const; + +QoSParametersList operator+(null_type) const; + +QoSParametersList substr(int index, int returncount) const; + +QoSParametersList replace(int index, int len, const QoSParametersList& repl) const; + +QoSParametersList replace(int index, int len, const QoSParametersList_template& repl) const; + +Base_Type* clone() const { return new QoSParametersList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class QoSParametersList_template : public Record_Of_Template { +friend QoSParametersList_template operator+(template_sel left_template, const QoSParametersList_template& right_template); +friend QoSParametersList_template operator+(const QoSParametersList& left_value, const QoSParametersList_template& right_template); +friend QoSParametersList_template operator+(template_sel left_template, const QoSParametersList& right_value); +friend QoSParametersList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend QoSParametersList_template operator+(const QoSParametersList& left_value, template_sel right_template); + +public: +QoSParametersList_template() {} +QoSParametersList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +QoSParametersList_template(null_type other_value); +QoSParametersList_template(const QoSParametersList& other_value) { copy_value(&other_value); } +QoSParametersList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +QoSParametersList_template(QoSParametersList_template* p_precondition, QoSParametersList_template* p_implied_template); +QoSParametersList_template(Dynamic_Match_Interface* p_dyn_match); +QoSParametersList_template(const QoSParametersList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~QoSParametersList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoSParametersList_template& operator=(template_sel other_value); +QoSParametersList_template& operator=(null_type other_value); +QoSParametersList_template& operator=(const QoSParametersList& other_value); +QoSParametersList_template& operator=(const OPTIONAL& other_value); +QoSParametersList_template& operator=(const QoSParametersList_template& other_value); + +QoSParametersList_template operator+(const QoSParametersList_template& other_value) const; +QoSParametersList_template operator+(const QoSParametersList& other_value) const; +QoSParametersList_template operator+(template_sel other_value) const; +QoSParametersList_template operator+(null_type) const; + +QoSParameters_template& operator[](int index_value); +QoSParameters_template& operator[](const INTEGER& index_value); +const QoSParameters_template& operator[](int index_value) const; +const QoSParameters_template& operator[](const INTEGER& index_value) const; +inline boolean match(const QoSParametersList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +QoSParametersList valueof() const; +QoSParametersList substr(int index, int returncount) const; + +QoSParametersList replace(int index, int len, const QoSParametersList_template& repl) const; + +QoSParametersList replace(int index, int len, const QoSParametersList& repl) const; + +inline QoSParametersList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const QoSParametersList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new QoSParametersList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class UE__RequestType : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare; + BITSTRING field_requestType; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UE__RequestType(); + UE__RequestType(const UE__RequestType& other_value); + UE__RequestType(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_requestType); +inline UE__RequestType& operator=(const UE__RequestType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__RequestType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__RequestType& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& requestType() + {return field_requestType;} + inline const BITSTRING& requestType() const + {return field_requestType;} +Base_Type* clone() const { return new UE__RequestType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__RequestType_template : public Record_Template { +void set_specific(); +public: +UE__RequestType_template(): Record_Template() {} +UE__RequestType_template(template_sel other_value): Record_Template(other_value) {} +UE__RequestType_template(const UE__RequestType& other_value): Record_Template() { copy_value(&other_value); } +UE__RequestType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__RequestType_template(UE__RequestType_template* p_precondition, UE__RequestType_template* p_implied_template); +UE__RequestType_template(Dynamic_Match_Interface* p_dyn_match); +UE__RequestType_template(const UE__RequestType_template& other_value): Record_Template() { copy_template(other_value); } +~UE__RequestType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__RequestType_template& operator=(template_sel other_value); +UE__RequestType_template& operator=(const UE__RequestType& other_value); +UE__RequestType_template& operator=(const OPTIONAL& other_value); +UE__RequestType_template& operator=(const UE__RequestType_template& other_value); +inline boolean match(const UE__RequestType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__RequestType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__RequestType valueof() const; +inline UE__RequestType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& requestType(); +const BITSTRING_template& requestType() const; +Record_Template* create() const { return new UE__RequestType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_NAS_CommonTypeDefs(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_NAS_CommonTypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern EmergNumList_emergNum_template operator+(template_sel left_template, const EmergNumList_emergNum_template& right_template); +extern EmergNumList_emergNum_template operator+(template_sel left_template, const EmergNumList_emergNum& right_value); +extern EmergNumList_emergNum_template operator+(const EmergNumList_emergNum& left_value, template_sel right_template); +extern ProtocolConfigOptions_pco_template operator+(template_sel left_template, const ProtocolConfigOptions_pco_template& right_template); +extern ProtocolConfigOptions_pco_template operator+(template_sel left_template, const ProtocolConfigOptions_pco& right_value); +extern ProtocolConfigOptions_pco_template operator+(const ProtocolConfigOptions_pco& left_value, template_sel right_template); +extern CodecList_codec_template operator+(template_sel left_template, const CodecList_codec_template& right_template); +extern CodecList_codec_template operator+(template_sel left_template, const CodecList_codec& right_value); +extern CodecList_codec_template operator+(const CodecList_codec& left_value, template_sel right_template); +extern TrafficFlowTemplate_packetFilterList_template operator+(template_sel left_template, const TrafficFlowTemplate_packetFilterList_template& right_template); +extern TrafficFlowTemplate_packetFilterList_template operator+(template_sel left_template, const TrafficFlowTemplate_packetFilterList& right_value); +extern TrafficFlowTemplate_packetFilterList_template operator+(const TrafficFlowTemplate_packetFilterList& left_value, template_sel right_template); +extern PacketFilterContents_template operator+(template_sel left_template, const PacketFilterContents_template& right_template); +extern PacketFilterContents_template operator+(template_sel left_template, const PacketFilterContents& right_value); +extern PacketFilterContents_template operator+(const PacketFilterContents& left_value, template_sel right_template); +extern TrafficFlowTemplate_parameterList_template operator+(template_sel left_template, const TrafficFlowTemplate_parameterList_template& right_template); +extern TrafficFlowTemplate_parameterList_template operator+(template_sel left_template, const TrafficFlowTemplate_parameterList& right_value); +extern TrafficFlowTemplate_parameterList_template operator+(const TrafficFlowTemplate_parameterList& left_value, template_sel right_template); +extern ExtdProtocolConfigOptions_pco_template operator+(template_sel left_template, const ExtdProtocolConfigOptions_pco_template& right_template); +extern ExtdProtocolConfigOptions_pco_template operator+(template_sel left_template, const ExtdProtocolConfigOptions_pco& right_value); +extern ExtdProtocolConfigOptions_pco_template operator+(const ExtdProtocolConfigOptions_pco& left_value, template_sel right_template); +extern NAS__ExtdProtocolConfigOptions__Type_template operator+(template_sel left_template, const NAS__ExtdProtocolConfigOptions__Type_template& right_template); +extern NAS__ExtdProtocolConfigOptions__Type_template operator+(template_sel left_template, const NAS__ExtdProtocolConfigOptions__Type& right_value); +extern NAS__ExtdProtocolConfigOptions__Type_template operator+(const NAS__ExtdProtocolConfigOptions__Type& left_value, template_sel right_template); +extern ExtdEmergNumList_emergNum_template operator+(template_sel left_template, const ExtdEmergNumList_emergNum_template& right_template); +extern ExtdEmergNumList_emergNum_template operator+(template_sel left_template, const ExtdEmergNumList_emergNum& right_value); +extern ExtdEmergNumList_emergNum_template operator+(const ExtdEmergNumList_emergNum& left_value, template_sel right_template); +extern WUSAssistInfo_infoType_template operator+(template_sel left_template, const WUSAssistInfo_infoType_template& right_template); +extern WUSAssistInfo_infoType_template operator+(template_sel left_template, const WUSAssistInfo_infoType& right_value); +extern WUSAssistInfo_infoType_template operator+(const WUSAssistInfo_infoType& left_value, template_sel right_template); +extern QoSParametersList_template operator+(template_sel left_template, const QoSParametersList_template& right_template); +extern QoSParametersList_template operator+(template_sel left_template, const QoSParametersList& right_value); +extern QoSParametersList_template operator+(const QoSParametersList& left_value, template_sel right_template); + +/* Global variable declarations */ + +extern const XERdescriptor_t IEI4__Type_xer_; +extern const TTCN_Typedescriptor_t IEI4__Type_descr_; +extern const XERdescriptor_t IEI8__Type_xer_; +extern const TTCN_OERdescriptor_t IEI8__Type_oer_; +extern const TTCN_Typedescriptor_t IEI8__Type_descr_; +extern const XERdescriptor_t Type4Length__Type_xer_; +extern const TTCN_OERdescriptor_t Type4Length__Type_oer_; +extern const TTCN_Typedescriptor_t Type4Length__Type_descr_; +extern const XERdescriptor_t Type6Length__Type_xer_; +extern const TTCN_OERdescriptor_t Type6Length__Type_oer_; +extern const TTCN_Typedescriptor_t Type6Length__Type_descr_; +extern const XERdescriptor_t SpareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t SpareHalfOctet_descr_; +extern const TTCN_RAWdescriptor_t NAS__Mcc_raw_; +extern const XERdescriptor_t NAS__Mcc_xer_; +extern const TTCN_Typedescriptor_t NAS__Mcc_descr_; +extern const TTCN_Typedescriptor_t EmergencyNumList_descr_; +extern const XERdescriptor_t EmergencyNumList_0_xer_; +extern const TTCN_Typedescriptor_t EmergencyNumList_0_descr_; +extern const TTCN_Typedescriptor_t PDU__PDN__DNN__Type_descr_; +extern const TTCN_Typedescriptor_t APN__DefaultConfiguration__Type_descr_; +extern const TTCN_Typedescriptor_t InterworkWithoutN26_descr_; +extern const XERdescriptor_t SecurityHeaderType_xer_; +extern const TTCN_OERdescriptor_t SecurityHeaderType_oer_; +extern const TTCN_Typedescriptor_t SecurityHeaderType_descr_; +extern const XERdescriptor_t ProtocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ProtocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ProtocolDiscriminator_descr_; +extern const XERdescriptor_t ProcedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t ProcedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t ProcedureTransactionIdentifier_descr_; +extern const XERdescriptor_t SkipIndicator_xer_; +extern const TTCN_OERdescriptor_t SkipIndicator_oer_; +extern const TTCN_Typedescriptor_t SkipIndicator_descr_; +extern const XERdescriptor_t MessageType_xer_; +extern const TTCN_OERdescriptor_t MessageType_oer_; +extern const TTCN_Typedescriptor_t MessageType_descr_; +extern const XERdescriptor_t NAS__SequenceNumber_xer_; +extern const TTCN_OERdescriptor_t NAS__SequenceNumber_oer_; +extern const TTCN_Typedescriptor_t NAS__SequenceNumber_descr_; +extern const XERdescriptor_t NAS__AttDetValue__Type_xer_; +extern const TTCN_OERdescriptor_t NAS__AttDetValue__Type_oer_; +extern const TTCN_Typedescriptor_t NAS__AttDetValue__Type_descr_; +extern const XERdescriptor_t KeySeq_xer_; +extern const TTCN_OERdescriptor_t KeySeq_oer_; +extern const TTCN_Typedescriptor_t KeySeq_descr_; +extern const XERdescriptor_t NAS__KsiValue_xer_; +extern const TTCN_OERdescriptor_t NAS__KsiValue_oer_; +extern const TTCN_Typedescriptor_t NAS__KsiValue_descr_; +extern const XERdescriptor_t NAS__PlmnId_xer_; +extern const TTCN_OERdescriptor_t NAS__PlmnId_oer_; +extern const TTCN_Typedescriptor_t NAS__PlmnId_descr_; +extern const XERdescriptor_t NAS__Tmsi_xer_; +extern const TTCN_OERdescriptor_t NAS__Tmsi_oer_; +extern const TTCN_Typedescriptor_t NAS__Tmsi_descr_; +extern const XERdescriptor_t NAS__P__Tmsi_xer_; +extern const TTCN_OERdescriptor_t NAS__P__Tmsi_oer_; +extern const TTCN_Typedescriptor_t NAS__P__Tmsi_descr_; +extern const XERdescriptor_t NAS__Lac_xer_; +extern const TTCN_OERdescriptor_t NAS__Lac_oer_; +extern const TTCN_Typedescriptor_t NAS__Lac_descr_; +extern const XERdescriptor_t NAS__Rac_xer_; +extern const TTCN_OERdescriptor_t NAS__Rac_oer_; +extern const TTCN_Typedescriptor_t NAS__Rac_descr_; +extern const XERdescriptor_t PdnTypeValue_xer_; +extern const TTCN_OERdescriptor_t PdnTypeValue_oer_; +extern const TTCN_Typedescriptor_t PdnTypeValue_descr_; +extern const TTCN_RAWdescriptor_t BcdDigit__Bit_raw_; +extern const XERdescriptor_t BcdDigit__Bit_xer_; +extern const TTCN_OERdescriptor_t BcdDigit__Bit_oer_; +extern const TTCN_Typedescriptor_t BcdDigit__Bit_descr_; +extern const XERdescriptor_t NAS__IdType_xer_; +extern const TTCN_OERdescriptor_t NAS__IdType_oer_; +extern const TTCN_Typedescriptor_t NAS__IdType_descr_; +extern const XERdescriptor_t NAS__CauseValue__Type_xer_; +extern const TTCN_OERdescriptor_t NAS__CauseValue__Type_oer_; +extern const TTCN_Typedescriptor_t NAS__CauseValue__Type_descr_; +extern const XERdescriptor_t TmsiStatusValue_xer_; +extern const TTCN_OERdescriptor_t TmsiStatusValue_oer_; +extern const TTCN_Typedescriptor_t TmsiStatusValue_descr_; +extern const TTCN_Typedescriptor_t PS__MODE_descr_; +extern const TTCN_Typedescriptor_t CS__PS__MODE_descr_; +extern const OCTETSTRING& tsc__LAC__Def; +extern OCTETSTRING const_tsc__LAC__Def; +extern const OCTETSTRING& tsc__LAC__Deleted; +extern OCTETSTRING const_tsc__LAC__Deleted; +extern const XERdescriptor_t AccessPointName_iel_xer_; +extern const TTCN_OERdescriptor_t AccessPointName_iel_oer_; +extern const TTCN_Typedescriptor_t AccessPointName_iel_descr_; +extern const XERdescriptor_t AccessPointName_nameValue_xer_; +extern const TTCN_OERdescriptor_t AccessPointName_nameValue_oer_; +extern const TTCN_Typedescriptor_t AccessPointName_nameValue_descr_; +extern const TTCN_Typedescriptor_t AccessPointName_descr_; +extern const XERdescriptor_t AccessPointName_iei_xer_; +extern const TTCN_OERdescriptor_t AccessPointName_iei_oer_; +extern const TTCN_Typedescriptor_t AccessPointName_iei_descr_; +extern const XERdescriptor_t AdditionalUpdateType_iei_xer_; +extern const TTCN_Typedescriptor_t AdditionalUpdateType_iei_descr_; +extern const XERdescriptor_t AdditionalUpdateType_pnb__CIOT_xer_; +extern const TTCN_OERdescriptor_t AdditionalUpdateType_pnb__CIOT_oer_; +extern const TTCN_Typedescriptor_t AdditionalUpdateType_pnb__CIOT_descr_; +extern const XERdescriptor_t AdditionalUpdateType_signallingActiveFlag_xer_; +extern const TTCN_OERdescriptor_t AdditionalUpdateType_signallingActiveFlag_oer_; +extern const TTCN_Typedescriptor_t AdditionalUpdateType_signallingActiveFlag_descr_; +extern const XERdescriptor_t AdditionalUpdateType_addUpdateTypeValue_xer_; +extern const TTCN_OERdescriptor_t AdditionalUpdateType_addUpdateTypeValue_oer_; +extern const TTCN_Typedescriptor_t AdditionalUpdateType_addUpdateTypeValue_descr_; +extern const TTCN_Typedescriptor_t AdditionalUpdateType_descr_; +extern const XERdescriptor_t CiphKeySeqNum_spare1_xer_; +extern const TTCN_OERdescriptor_t CiphKeySeqNum_spare1_oer_; +extern const TTCN_Typedescriptor_t CiphKeySeqNum_spare1_descr_; +extern const XERdescriptor_t CiphKeySeqNum_keySeq_xer_; +extern const TTCN_OERdescriptor_t CiphKeySeqNum_keySeq_oer_; +extern const TTCN_Typedescriptor_t CiphKeySeqNum_keySeq_descr_; +extern const TTCN_Typedescriptor_t CiphKeySeqNum_descr_; +extern const XERdescriptor_t CiphKeySeqNum_iei_xer_; +extern const TTCN_Typedescriptor_t CiphKeySeqNum_iei_descr_; +extern const XERdescriptor_t ConnectivityType_iei_xer_; +extern const TTCN_Typedescriptor_t ConnectivityType_iei_descr_; +extern const XERdescriptor_t ConnectivityType_connectivityValue_xer_; +extern const TTCN_OERdescriptor_t ConnectivityType_connectivityValue_oer_; +extern const TTCN_Typedescriptor_t ConnectivityType_connectivityValue_descr_; +extern const TTCN_Typedescriptor_t ConnectivityType_descr_; +extern const XERdescriptor_t DetachType_switchOff_xer_; +extern const TTCN_OERdescriptor_t DetachType_switchOff_oer_; +extern const TTCN_Typedescriptor_t DetachType_switchOff_descr_; +extern const XERdescriptor_t DetachType_typeOfDetach_xer_; +extern const TTCN_OERdescriptor_t DetachType_typeOfDetach_oer_; +extern const TTCN_Typedescriptor_t DetachType_typeOfDetach_descr_; +extern const TTCN_Typedescriptor_t DetachType_descr_; +extern const XERdescriptor_t DeviceProperties_iei_xer_; +extern const TTCN_Typedescriptor_t DeviceProperties_iei_descr_; +extern const XERdescriptor_t DeviceProperties_spare_xer_; +extern const TTCN_OERdescriptor_t DeviceProperties_spare_oer_; +extern const TTCN_Typedescriptor_t DeviceProperties_spare_descr_; +extern const XERdescriptor_t DeviceProperties_lowPriority_xer_; +extern const TTCN_OERdescriptor_t DeviceProperties_lowPriority_oer_; +extern const TTCN_Typedescriptor_t DeviceProperties_lowPriority_descr_; +extern const TTCN_Typedescriptor_t DeviceProperties_descr_; +extern const XERdescriptor_t DRXparameter_splitPGcycleCode_xer_; +extern const TTCN_OERdescriptor_t DRXparameter_splitPGcycleCode_oer_; +extern const TTCN_Typedescriptor_t DRXparameter_splitPGcycleCode_descr_; +extern const XERdescriptor_t DRXparameter_cnDRXcoef_xer_; +extern const TTCN_OERdescriptor_t DRXparameter_cnDRXcoef_oer_; +extern const TTCN_Typedescriptor_t DRXparameter_cnDRXcoef_descr_; +extern const XERdescriptor_t DRXparameter_splitOnCCCH_xer_; +extern const TTCN_OERdescriptor_t DRXparameter_splitOnCCCH_oer_; +extern const TTCN_Typedescriptor_t DRXparameter_splitOnCCCH_descr_; +extern const XERdescriptor_t DRXparameter_nonDRXtimer_xer_; +extern const TTCN_OERdescriptor_t DRXparameter_nonDRXtimer_oer_; +extern const TTCN_Typedescriptor_t DRXparameter_nonDRXtimer_descr_; +extern const TTCN_Typedescriptor_t DRXparameter_descr_; +extern const XERdescriptor_t DRXparameter_iei_xer_; +extern const TTCN_OERdescriptor_t DRXparameter_iei_oer_; +extern const TTCN_Typedescriptor_t DRXparameter_iei_descr_; +extern const XERdescriptor_t EmergServCat_spare_xer_; +extern const TTCN_OERdescriptor_t EmergServCat_spare_oer_; +extern const TTCN_Typedescriptor_t EmergServCat_spare_descr_; +extern const XERdescriptor_t EmergServCat_emergSCValue_xer_; +extern const TTCN_OERdescriptor_t EmergServCat_emergSCValue_oer_; +extern const TTCN_Typedescriptor_t EmergServCat_emergSCValue_descr_; +extern const TTCN_Typedescriptor_t EmergServCat_descr_; +extern const XERdescriptor_t EmergNum_len_xer_; +extern const TTCN_OERdescriptor_t EmergNum_len_oer_; +extern const TTCN_Typedescriptor_t EmergNum_len_descr_; +extern const XERdescriptor_t EmergNum_digits_xer_; +extern const TTCN_OERdescriptor_t EmergNum_digits_oer_; +extern const TTCN_Typedescriptor_t EmergNum_digits_descr_; +extern const TTCN_Typedescriptor_t EmergNum_descr_; +extern const XERdescriptor_t EmergNumList_iei_xer_; +extern const TTCN_OERdescriptor_t EmergNumList_iei_oer_; +extern const TTCN_Typedescriptor_t EmergNumList_iei_descr_; +extern const XERdescriptor_t EmergNumList_iel_xer_; +extern const TTCN_OERdescriptor_t EmergNumList_iel_oer_; +extern const TTCN_Typedescriptor_t EmergNumList_iel_descr_; +extern const TTCN_Typedescriptor_t EmergNumList_emergNum_descr_; +extern const TTCN_Typedescriptor_t EmergNumList_descr_; +extern const XERdescriptor_t GprsTimerUnit_xer_; +extern const TTCN_OERdescriptor_t GprsTimerUnit_oer_; +extern const TTCN_Typedescriptor_t GprsTimerUnit_descr_; +extern const XERdescriptor_t GPRS__Timer_unit_xer_; +extern const TTCN_OERdescriptor_t GPRS__Timer_unit_oer_; +extern const TTCN_Typedescriptor_t GPRS__Timer_unit_descr_; +extern const XERdescriptor_t GPRS__Timer_timerValue_xer_; +extern const TTCN_OERdescriptor_t GPRS__Timer_timerValue_oer_; +extern const TTCN_Typedescriptor_t GPRS__Timer_timerValue_descr_; +extern const TTCN_Typedescriptor_t GPRS__Timer_descr_; +extern const XERdescriptor_t GPRS__Timer_iei_xer_; +extern const TTCN_OERdescriptor_t GPRS__Timer_iei_oer_; +extern const TTCN_Typedescriptor_t GPRS__Timer_iei_descr_; +extern const XERdescriptor_t GPRS__Timer2_iei_xer_; +extern const TTCN_OERdescriptor_t GPRS__Timer2_iei_oer_; +extern const TTCN_Typedescriptor_t GPRS__Timer2_iei_descr_; +extern const XERdescriptor_t GPRS__Timer2_iel_xer_; +extern const TTCN_OERdescriptor_t GPRS__Timer2_iel_oer_; +extern const TTCN_Typedescriptor_t GPRS__Timer2_iel_descr_; +extern const XERdescriptor_t GPRS__Timer2_unit_xer_; +extern const TTCN_OERdescriptor_t GPRS__Timer2_unit_oer_; +extern const TTCN_Typedescriptor_t GPRS__Timer2_unit_descr_; +extern const XERdescriptor_t GPRS__Timer2_gprsTimerValue_xer_; +extern const TTCN_OERdescriptor_t GPRS__Timer2_gprsTimerValue_oer_; +extern const TTCN_Typedescriptor_t GPRS__Timer2_gprsTimerValue_descr_; +extern const TTCN_Typedescriptor_t GPRS__Timer2_descr_; +extern const TTCN_Typedescriptor_t& GPRS__Timer3_descr_; +extern const XERdescriptor_t IMEISV__Request_spare_xer_; +extern const TTCN_OERdescriptor_t IMEISV__Request_spare_oer_; +extern const TTCN_Typedescriptor_t IMEISV__Request_spare_descr_; +extern const XERdescriptor_t IMEISV__Request_requestValue_xer_; +extern const TTCN_OERdescriptor_t IMEISV__Request_requestValue_oer_; +extern const TTCN_Typedescriptor_t IMEISV__Request_requestValue_descr_; +extern const TTCN_Typedescriptor_t IMEISV__Request_descr_; +extern const XERdescriptor_t IMEISV__Request_iei_xer_; +extern const TTCN_Typedescriptor_t IMEISV__Request_iei_descr_; +extern const XERdescriptor_t LocAreaId_plmn_xer_; +extern const TTCN_OERdescriptor_t LocAreaId_plmn_oer_; +extern const TTCN_Typedescriptor_t LocAreaId_plmn_descr_; +extern const XERdescriptor_t LocAreaId_lac_xer_; +extern const TTCN_OERdescriptor_t LocAreaId_lac_oer_; +extern const TTCN_Typedescriptor_t LocAreaId_lac_descr_; +extern const TTCN_Typedescriptor_t LocAreaId_descr_; +extern const XERdescriptor_t LocAreaId_iei_xer_; +extern const TTCN_OERdescriptor_t LocAreaId_iei_oer_; +extern const TTCN_Typedescriptor_t LocAreaId_iei_descr_; +extern const XERdescriptor_t RoutingAreaId_rac_xer_; +extern const TTCN_OERdescriptor_t RoutingAreaId_rac_oer_; +extern const TTCN_Typedescriptor_t RoutingAreaId_rac_descr_; +extern const TTCN_Typedescriptor_t RoutingAreaId_descr_; +extern const XERdescriptor_t RoutingAreaId_iei_xer_; +extern const TTCN_OERdescriptor_t RoutingAreaId_iei_oer_; +extern const TTCN_Typedescriptor_t RoutingAreaId_iei_descr_; +extern const XERdescriptor_t LLC__SAPI_spare_xer_; +extern const TTCN_OERdescriptor_t LLC__SAPI_spare_oer_; +extern const TTCN_Typedescriptor_t LLC__SAPI_spare_descr_; +extern const XERdescriptor_t LLC__SAPI_llcSapiValue_xer_; +extern const TTCN_OERdescriptor_t LLC__SAPI_llcSapiValue_oer_; +extern const TTCN_Typedescriptor_t LLC__SAPI_llcSapiValue_descr_; +extern const TTCN_Typedescriptor_t LLC__SAPI_descr_; +extern const XERdescriptor_t LLC__SAPI_iei_xer_; +extern const TTCN_OERdescriptor_t LLC__SAPI_iei_oer_; +extern const TTCN_Typedescriptor_t LLC__SAPI_iei_descr_; +extern const XERdescriptor_t MobileIdentity_iel_xer_; +extern const TTCN_OERdescriptor_t MobileIdentity_iel_oer_; +extern const TTCN_Typedescriptor_t MobileIdentity_iel_descr_; +extern const XERdescriptor_t MobileIdentity_idDigit1_xer_; +extern const TTCN_OERdescriptor_t MobileIdentity_idDigit1_oer_; +extern const TTCN_Typedescriptor_t MobileIdentity_idDigit1_descr_; +extern const XERdescriptor_t MobileIdentity_oddEvenInd_xer_; +extern const TTCN_OERdescriptor_t MobileIdentity_oddEvenInd_oer_; +extern const TTCN_Typedescriptor_t MobileIdentity_oddEvenInd_descr_; +extern const XERdescriptor_t MobileIdentity_typeOfId_xer_; +extern const TTCN_OERdescriptor_t MobileIdentity_typeOfId_oer_; +extern const TTCN_Typedescriptor_t MobileIdentity_typeOfId_descr_; +extern const XERdescriptor_t MobileIdentity_otherDigits_xer_; +extern const TTCN_OERdescriptor_t MobileIdentity_otherDigits_oer_; +extern const TTCN_Typedescriptor_t MobileIdentity_otherDigits_descr_; +extern const TTCN_Typedescriptor_t MobileIdentity_descr_; +extern const XERdescriptor_t MobileIdentity_iei_xer_; +extern const TTCN_OERdescriptor_t MobileIdentity_iei_oer_; +extern const TTCN_Typedescriptor_t MobileIdentity_iei_descr_; +extern const XERdescriptor_t MS__Clsmk2_iel_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_iel_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_iel_descr_; +extern const XERdescriptor_t MS__Clsmk2_spare1__1_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_spare1__1_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_spare1__1_descr_; +extern const XERdescriptor_t MS__Clsmk2_revLvl_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_revLvl_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_revLvl_descr_; +extern const XERdescriptor_t MS__Clsmk2_eSIND_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_eSIND_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_eSIND_descr_; +extern const XERdescriptor_t MS__Clsmk2_a5__1_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_a5__1_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_a5__1_descr_; +extern const XERdescriptor_t MS__Clsmk2_rFPwrCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_rFPwrCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_rFPwrCap_descr_; +extern const XERdescriptor_t MS__Clsmk2_spare1__2_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_spare1__2_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_spare1__2_descr_; +extern const XERdescriptor_t MS__Clsmk2_pSCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_pSCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_pSCap_descr_; +extern const XERdescriptor_t MS__Clsmk2_sSSI_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_sSSI_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_sSSI_descr_; +extern const XERdescriptor_t MS__Clsmk2_sMCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_sMCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_sMCap_descr_; +extern const XERdescriptor_t MS__Clsmk2_vBS_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_vBS_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_vBS_descr_; +extern const XERdescriptor_t MS__Clsmk2_vGCS_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_vGCS_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_vGCS_descr_; +extern const XERdescriptor_t MS__Clsmk2_fC_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_fC_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_fC_descr_; +extern const XERdescriptor_t MS__Clsmk2_cM3_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_cM3_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_cM3_descr_; +extern const XERdescriptor_t MS__Clsmk2_spare1__3_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_spare1__3_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_spare1__3_descr_; +extern const XERdescriptor_t MS__Clsmk2_lCSVA_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_lCSVA_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_lCSVA_descr_; +extern const XERdescriptor_t MS__Clsmk2_uCS2_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_uCS2_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_uCS2_descr_; +extern const XERdescriptor_t MS__Clsmk2_soLSA_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_soLSA_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_soLSA_descr_; +extern const XERdescriptor_t MS__Clsmk2_cMSP_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_cMSP_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_cMSP_descr_; +extern const XERdescriptor_t MS__Clsmk2_a5__3_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_a5__3_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_a5__3_descr_; +extern const XERdescriptor_t MS__Clsmk2_a5__2_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_a5__2_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_a5__2_descr_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_descr_; +extern const XERdescriptor_t MS__Clsmk2_iei_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk2_iei_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk2_iei_descr_; +extern const XERdescriptor_t MS__Clsmk3_spareBit_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_spareBit_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_spareBit_descr_; +extern const XERdescriptor_t MS__Clsmk3_multibandSupported_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_multibandSupported_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_multibandSupported_descr_; +extern const XERdescriptor_t MS__Clsmk3_a5__7_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_a5__7_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_a5__7_descr_; +extern const XERdescriptor_t MS__Clsmk3_a5__6_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_a5__6_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_a5__6_descr_; +extern const XERdescriptor_t MS__Clsmk3_a5__5_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_a5__5_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_a5__5_descr_; +extern const XERdescriptor_t MS__Clsmk3_a5__4_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_a5__4_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_a5__4_descr_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_descr_; +extern const XERdescriptor_t MS__Clsmk3_iei_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_iei_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_iei_descr_; +extern const XERdescriptor_t MS__Clsmk3_iel_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_iel_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_iel_descr_; +extern const XERdescriptor_t MS__Clsmk3_associatedRadioCapabilty2_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_associatedRadioCapabilty2_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_associatedRadioCapabilty2_descr_; +extern const XERdescriptor_t MS__Clsmk3_spareBits1_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_spareBits1_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_spareBits1_descr_; +extern const XERdescriptor_t MS__Clsmk3_associatedRadioCapabilty1_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_associatedRadioCapabilty1_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_associatedRadioCapabilty1_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit1_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit1_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit1_descr_; +extern const XERdescriptor_t MS__Clsmk3_rGSM__RadioCapability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_rGSM__RadioCapability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_rGSM__RadioCapability_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit2_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit2_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit2_descr_; +extern const XERdescriptor_t MS__Clsmk3_multiSlotClass_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_multiSlotClass_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_multiSlotClass_descr_; +extern const XERdescriptor_t MS__Clsmk3_uCS2Treatment_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_uCS2Treatment_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_uCS2Treatment_descr_; +extern const XERdescriptor_t MS__Clsmk3_extMeasurementCapability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_extMeasurementCapability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_extMeasurementCapability_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit3_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit3_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit3_descr_; +extern const XERdescriptor_t MS__MeasCapability_sMS__VALUE_xer_; +extern const TTCN_OERdescriptor_t MS__MeasCapability_sMS__VALUE_oer_; +extern const TTCN_Typedescriptor_t MS__MeasCapability_sMS__VALUE_descr_; +extern const XERdescriptor_t MS__MeasCapability_sM__VALUE_xer_; +extern const TTCN_OERdescriptor_t MS__MeasCapability_sM__VALUE_oer_; +extern const TTCN_Typedescriptor_t MS__MeasCapability_sM__VALUE_descr_; +extern const TTCN_Typedescriptor_t MS__MeasCapability_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit4_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit4_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit4_descr_; +extern const XERdescriptor_t MS__Clsmk3_msPositioningMethod_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_msPositioningMethod_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_msPositioningMethod_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit5_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit5_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit5_descr_; +extern const XERdescriptor_t MS__Clsmk3_eDGE__MultiSlot_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_eDGE__MultiSlot_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_eDGE__MultiSlot_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit6_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit6_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit6_descr_; +extern const XERdescriptor_t EDGE__Struct_modulationCapability_xer_; +extern const TTCN_OERdescriptor_t EDGE__Struct_modulationCapability_oer_; +extern const TTCN_Typedescriptor_t EDGE__Struct_modulationCapability_descr_; +extern const XERdescriptor_t EDGE__Struct_pwrMask1_xer_; +extern const TTCN_OERdescriptor_t EDGE__Struct_pwrMask1_oer_; +extern const TTCN_Typedescriptor_t EDGE__Struct_pwrMask1_descr_; +extern const XERdescriptor_t EDGE__Struct_pwrMask2_xer_; +extern const TTCN_OERdescriptor_t EDGE__Struct_pwrMask2_oer_; +extern const TTCN_Typedescriptor_t EDGE__Struct_pwrMask2_descr_; +extern const TTCN_Typedescriptor_t EDGE__Struct_descr_; +extern const XERdescriptor_t EDGE__Struct_eDGE__RF__PowerCapability1_xer_; +extern const TTCN_OERdescriptor_t EDGE__Struct_eDGE__RF__PowerCapability1_oer_; +extern const TTCN_Typedescriptor_t EDGE__Struct_eDGE__RF__PowerCapability1_descr_; +extern const XERdescriptor_t EDGE__Struct_eDGE__RF__PowerCapability2_xer_; +extern const TTCN_OERdescriptor_t EDGE__Struct_eDGE__RF__PowerCapability2_oer_; +extern const TTCN_Typedescriptor_t EDGE__Struct_eDGE__RF__PowerCapability2_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit7_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit7_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit7_descr_; +extern const XERdescriptor_t MS__Clsmk3_gSM400BandsSupported_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_gSM400BandsSupported_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_gSM400BandsSupported_descr_; +extern const XERdescriptor_t MS__Clsmk3_gSM400AssociatedRadioCapability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_gSM400AssociatedRadioCapability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_gSM400AssociatedRadioCapability_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit8_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit8_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit8_descr_; +extern const XERdescriptor_t MS__Clsmk3_gSM850AssociatedRadiioCapability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_gSM850AssociatedRadiioCapability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_gSM850AssociatedRadiioCapability_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit9_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit9_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit9_descr_; +extern const XERdescriptor_t MS__Clsmk3_pCS1900AssociatedRadiioCapability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_pCS1900AssociatedRadiioCapability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_pCS1900AssociatedRadiioCapability_descr_; +extern const XERdescriptor_t MS__Clsmk3_uMTS__FDD__RAT__Capability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_uMTS__FDD__RAT__Capability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_uMTS__FDD__RAT__Capability_descr_; +extern const XERdescriptor_t MS__Clsmk3_uMTS384TDD__RAT__Capability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_uMTS384TDD__RAT__Capability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_uMTS384TDD__RAT__Capability_descr_; +extern const XERdescriptor_t MS__Clsmk3_cDMA2000__RAT__Capability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_cDMA2000__RAT__Capability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_cDMA2000__RAT__Capability_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit10_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit10_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit10_descr_; +extern const XERdescriptor_t MS__Clsmk3_dTM__GPRS__MultiSlotSubclass_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_dTM__GPRS__MultiSlotSubclass_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_dTM__GPRS__MultiSlotSubclass_descr_; +extern const XERdescriptor_t MS__Clsmk3_singleSlotDTM_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_singleSlotDTM_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_singleSlotDTM_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit11_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit11_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit11_descr_; +extern const XERdescriptor_t MS__Clsmk3_dTM__EGPRS__MultiSlorSubclass_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_dTM__EGPRS__MultiSlorSubclass_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_dTM__EGPRS__MultiSlorSubclass_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit12_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit12_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit12_descr_; +extern const XERdescriptor_t MS__Clsmk3_singleBandSupport_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_singleBandSupport_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_singleBandSupport_descr_; +extern const XERdescriptor_t MS__Clsmk3_maskBit13_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_maskBit13_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_maskBit13_descr_; +extern const XERdescriptor_t MS__Clsmk3_gSM700AssociatedRadioCapability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_gSM700AssociatedRadioCapability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_gSM700AssociatedRadioCapability_descr_; +extern const XERdescriptor_t MS__Clsmk3_uMTS128TDD__RAT__Capability_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_uMTS128TDD__RAT__Capability_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_uMTS128TDD__RAT__Capability_descr_; +extern const XERdescriptor_t MS__Clsmk3_gERANFeatPack1_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_gERANFeatPack1_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_gERANFeatPack1_descr_; +extern const XERdescriptor_t MS__Clsmk3_mask14_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_mask14_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_mask14_descr_; +extern const XERdescriptor_t MS__Clsmk3_extDTM__GPRS__MultiSlotSubclass_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_extDTM__GPRS__MultiSlotSubclass_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_extDTM__GPRS__MultiSlotSubclass_descr_; +extern const XERdescriptor_t MS__Clsmk3_etxDTM__EGPRS__MultiSlotSubclass_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_etxDTM__EGPRS__MultiSlotSubclass_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_etxDTM__EGPRS__MultiSlotSubclass_descr_; +extern const XERdescriptor_t MS__Clsmk3_mask15_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_mask15_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_mask15_descr_; +extern const XERdescriptor_t MS__Clsmk3_highMultislotCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_highMultislotCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_highMultislotCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_spare2_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_spare2_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_spare2_descr_; +extern const XERdescriptor_t MS__Clsmk3_gERANFeatPack2_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_gERANFeatPack2_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_gERANFeatPack2_descr_; +extern const XERdescriptor_t MS__Clsmk3_gMSKMultislotPowerProfile_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_gMSKMultislotPowerProfile_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_gMSKMultislotPowerProfile_descr_; +extern const XERdescriptor_t MS__Clsmk3_pSKMultislotPowerProfile_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_pSKMultislotPowerProfile_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_pSKMultislotPowerProfile_descr_; +extern const XERdescriptor_t MS__Clsmk3_mask17_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_mask17_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_mask17_descr_; +extern const XERdescriptor_t MS__Clsmk3_tGSM400BandsSupported_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_tGSM400BandsSupported_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_tGSM400BandsSupported_descr_; +extern const XERdescriptor_t MS__Clsmk3_tGSM400AssocRadioCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_tGSM400AssocRadioCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_tGSM400AssocRadioCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_spare_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_spare_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_spare_descr_; +extern const XERdescriptor_t MS__Clsmk3_dlAdvancedRxPerf_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_dlAdvancedRxPerf_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_dlAdvancedRxPerf_descr_; +extern const XERdescriptor_t MS__Clsmk3_dTMEhancCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_dTMEhancCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_dTMEhancCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_mask19_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_mask19_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_mask19_descr_; +extern const XERdescriptor_t MS__Clsmk3_dTMGPRSHighMultislotClass_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_dTMGPRSHighMultislotClass_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_dTMGPRSHighMultislotClass_descr_; +extern const XERdescriptor_t MS__Clsmk3_offsetReq_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_offsetReq_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_offsetReq_descr_; +extern const XERdescriptor_t MS__Clsmk3_mask20_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_mask20_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_mask20_descr_; +extern const XERdescriptor_t MS__Clsmk3_dTMEGPRSHighMultislotClass_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_dTMEGPRSHighMultislotClass_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_dTMEGPRSHighMultislotClass_descr_; +extern const XERdescriptor_t MS__Clsmk3_rptdACCHCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_rptdACCHCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_rptdACCHCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_mask21_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_mask21_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_mask21_descr_; +extern const XERdescriptor_t MS__Clsmk3_gsm710AssocRadioCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_gsm710AssocRadioCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_gsm710AssocRadioCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_mask22_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_mask22_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_mask22_descr_; +extern const XERdescriptor_t MS__Clsmk3_tgsm810AssocRadioCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_tgsm810AssocRadioCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_tgsm810AssocRadioCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_cipheringModeSettingCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_cipheringModeSettingCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_cipheringModeSettingCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_addPositionCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_addPositionCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_addPositionCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_eutraFDDSupport_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_eutraFDDSupport_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_eutraFDDSupport_descr_; +extern const XERdescriptor_t MS__Clsmk3_eutraTDDSupport_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_eutraTDDSupport_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_eutraTDDSupport_descr_; +extern const XERdescriptor_t MS__Clsmk3_eutraMeasAndReporting_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_eutraMeasAndReporting_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_eutraMeasAndReporting_descr_; +extern const XERdescriptor_t MS__Clsmk3_priorityBasedReselection_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_priorityBasedReselection_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_priorityBasedReselection_descr_; +extern const XERdescriptor_t MS__Clsmk3_utraCSGCellsReporting_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_utraCSGCellsReporting_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_utraCSGCellsReporting_descr_; +extern const XERdescriptor_t MS__Clsmk3_vamosLevel_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_vamosLevel_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_vamosLevel_descr_; +extern const XERdescriptor_t MS__Clsmk3_tighterCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_tighterCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_tighterCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_selectCipheringDLSACCH_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_selectCipheringDLSACCH_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_selectCipheringDLSACCH_descr_; +extern const XERdescriptor_t MS__Clsmk3_csPS__SRVCC__G2U_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_csPS__SRVCC__G2U_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_csPS__SRVCC__G2U_descr_; +extern const XERdescriptor_t MS__Clsmk3_csPS__SRVCC__G2E_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_csPS__SRVCC__G2E_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_csPS__SRVCC__G2E_descr_; +extern const XERdescriptor_t MS__Clsmk3_geranNwkSharing_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_geranNwkSharing_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_geranNwkSharing_descr_; +extern const XERdescriptor_t MS__Clsmk3_eutraWidebandRSRQMeas_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_eutraWidebandRSRQMeas_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_eutraWidebandRSRQMeas_descr_; +extern const XERdescriptor_t MS__Clsmk3_erBandSupport_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_erBandSupport_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_erBandSupport_descr_; +extern const XERdescriptor_t MS__Clsmk3_utraMultipleFreqBandInd_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_utraMultipleFreqBandInd_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_utraMultipleFreqBandInd_descr_; +extern const XERdescriptor_t MS__Clsmk3_eutraMultipleFreqBandInd_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_eutraMultipleFreqBandInd_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_eutraMultipleFreqBandInd_descr_; +extern const XERdescriptor_t MS__Clsmk3_xtdTSCSetCap_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_xtdTSCSetCap_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_xtdTSCSetCap_descr_; +extern const XERdescriptor_t MS__Clsmk3_xtdEARFCNValueRange_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_xtdEARFCNValueRange_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_xtdEARFCNValueRange_descr_; +extern const XERdescriptor_t MS__Clsmk3_spareBits2_xer_; +extern const TTCN_OERdescriptor_t MS__Clsmk3_spareBits2_oer_; +extern const TTCN_Typedescriptor_t MS__Clsmk3_spareBits2_descr_; +extern const XERdescriptor_t MS__NetworkCap_iel_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_iel_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_iel_descr_; +extern const XERdescriptor_t MS__NetworkCap_gea1_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gea1_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gea1_descr_; +extern const XERdescriptor_t MS__NetworkCap_smCapDedicated_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_smCapDedicated_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_smCapDedicated_descr_; +extern const XERdescriptor_t MS__NetworkCap_smCapGPRS_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_smCapGPRS_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_smCapGPRS_descr_; +extern const XERdescriptor_t MS__NetworkCap_ucs2_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_ucs2_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_ucs2_descr_; +extern const XERdescriptor_t MS__NetworkCap_ssScreeningIndicator_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_ssScreeningIndicator_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_ssScreeningIndicator_descr_; +extern const XERdescriptor_t MS__NetworkCap_soLSACap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_soLSACap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_soLSACap_descr_; +extern const XERdescriptor_t MS__NetworkCap_revLevelIndicator_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_revLevelIndicator_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_revLevelIndicator_descr_; +extern const XERdescriptor_t MS__NetworkCap_pfcFeatureMode_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_pfcFeatureMode_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_pfcFeatureMode_descr_; +extern const XERdescriptor_t MS__NetworkCap_gea2_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gea2_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gea2_descr_; +extern const XERdescriptor_t MS__NetworkCap_gea3_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gea3_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gea3_descr_; +extern const XERdescriptor_t MS__NetworkCap_gea4_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gea4_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gea4_descr_; +extern const XERdescriptor_t MS__NetworkCap_gea5_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gea5_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gea5_descr_; +extern const XERdescriptor_t MS__NetworkCap_gea6_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gea6_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gea6_descr_; +extern const XERdescriptor_t MS__NetworkCap_gea7_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gea7_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gea7_descr_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_descr_; +extern const XERdescriptor_t MS__NetworkCap_iei_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_iei_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_iei_descr_; +extern const XERdescriptor_t MS__NetworkCap_lcsVACap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_lcsVACap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_lcsVACap_descr_; +extern const XERdescriptor_t MS__NetworkCap_psHOtoUTRAN__IuModeCap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_psHOtoUTRAN__IuModeCap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_psHOtoUTRAN__IuModeCap_descr_; +extern const XERdescriptor_t MS__NetworkCap_psHOtoEUTRAN__S1ModeCap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_psHOtoEUTRAN__S1ModeCap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_psHOtoEUTRAN__S1ModeCap_descr_; +extern const XERdescriptor_t MS__NetworkCap_emmCombinedCap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_emmCombinedCap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_emmCombinedCap_descr_; +extern const XERdescriptor_t MS__NetworkCap_isrSupport_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_isrSupport_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_isrSupport_descr_; +extern const XERdescriptor_t MS__NetworkCap_srvccToGERAN__UTRANCap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_srvccToGERAN__UTRANCap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_srvccToGERAN__UTRANCap_descr_; +extern const XERdescriptor_t MS__NetworkCap_epcCap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_epcCap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_epcCap_descr_; +extern const XERdescriptor_t MS__NetworkCap_nfCap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_nfCap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_nfCap_descr_; +extern const XERdescriptor_t MS__NetworkCap_gERANNtwkShareCap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gERANNtwkShareCap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gERANNtwkShareCap_descr_; +extern const XERdescriptor_t MS__NetworkCap_userPlaneIntegrityProtSupport_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_userPlaneIntegrityProtSupport_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_userPlaneIntegrityProtSupport_descr_; +extern const XERdescriptor_t MS__NetworkCap_gia4_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gia4_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gia4_descr_; +extern const XERdescriptor_t MS__NetworkCap_gia5_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gia5_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gia5_descr_; +extern const XERdescriptor_t MS__NetworkCap_gia6_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gia6_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gia6_descr_; +extern const XERdescriptor_t MS__NetworkCap_gia7_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_gia7_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_gia7_descr_; +extern const XERdescriptor_t MS__NetworkCap_ePCOInd_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_ePCOInd_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_ePCOInd_descr_; +extern const XERdescriptor_t MS__NetworkCap_restrictEnhancedCoverageCap_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_restrictEnhancedCoverageCap_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_restrictEnhancedCoverageCap_descr_; +extern const XERdescriptor_t MS__NetworkCap_dualConnectivityEUTRA__NR_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_dualConnectivityEUTRA__NR_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_dualConnectivityEUTRA__NR_descr_; +extern const XERdescriptor_t MS__NetworkCap_spareBits_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkCap_spareBits_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkCap_spareBits_descr_; +extern const XERdescriptor_t Non3GPP__NW__ProvidedPolicies_iei_xer_; +extern const TTCN_Typedescriptor_t Non3GPP__NW__ProvidedPolicies_iei_descr_; +extern const XERdescriptor_t Non3GPP__NW__ProvidedPolicies_spareBits_xer_; +extern const TTCN_OERdescriptor_t Non3GPP__NW__ProvidedPolicies_spareBits_oer_; +extern const TTCN_Typedescriptor_t Non3GPP__NW__ProvidedPolicies_spareBits_descr_; +extern const XERdescriptor_t Non3GPP__NW__ProvidedPolicies_n3ENInd_xer_; +extern const TTCN_OERdescriptor_t Non3GPP__NW__ProvidedPolicies_n3ENInd_oer_; +extern const TTCN_Typedescriptor_t Non3GPP__NW__ProvidedPolicies_n3ENInd_descr_; +extern const TTCN_Typedescriptor_t Non3GPP__NW__ProvidedPolicies_descr_; +extern const XERdescriptor_t NwkResourceId_iei_xer_; +extern const TTCN_OERdescriptor_t NwkResourceId_iei_oer_; +extern const TTCN_Typedescriptor_t NwkResourceId_iei_descr_; +extern const XERdescriptor_t NwkResourceId_iel_xer_; +extern const TTCN_OERdescriptor_t NwkResourceId_iel_oer_; +extern const TTCN_Typedescriptor_t NwkResourceId_iel_descr_; +extern const XERdescriptor_t NwkResourceId_nriContainerValue_xer_; +extern const TTCN_OERdescriptor_t NwkResourceId_nriContainerValue_oer_; +extern const TTCN_Typedescriptor_t NwkResourceId_nriContainerValue_descr_; +extern const XERdescriptor_t NwkResourceId_spareBits_xer_; +extern const TTCN_OERdescriptor_t NwkResourceId_spareBits_oer_; +extern const TTCN_Typedescriptor_t NwkResourceId_spareBits_descr_; +extern const TTCN_Typedescriptor_t NwkResourceId_descr_; +extern const XERdescriptor_t PacketFlowIdentifier_iei_xer_; +extern const TTCN_OERdescriptor_t PacketFlowIdentifier_iei_oer_; +extern const TTCN_Typedescriptor_t PacketFlowIdentifier_iei_descr_; +extern const XERdescriptor_t PacketFlowIdentifier_iel_xer_; +extern const TTCN_OERdescriptor_t PacketFlowIdentifier_iel_oer_; +extern const TTCN_Typedescriptor_t PacketFlowIdentifier_iel_descr_; +extern const XERdescriptor_t PacketFlowIdentifier_spare_xer_; +extern const TTCN_OERdescriptor_t PacketFlowIdentifier_spare_oer_; +extern const TTCN_Typedescriptor_t PacketFlowIdentifier_spare_descr_; +extern const XERdescriptor_t PacketFlowIdentifier_idValue_xer_; +extern const TTCN_OERdescriptor_t PacketFlowIdentifier_idValue_oer_; +extern const TTCN_Typedescriptor_t PacketFlowIdentifier_idValue_descr_; +extern const TTCN_Typedescriptor_t PacketFlowIdentifier_descr_; +extern const XERdescriptor_t PLMN__IdIE_iei_xer_; +extern const TTCN_OERdescriptor_t PLMN__IdIE_iei_oer_; +extern const TTCN_Typedescriptor_t PLMN__IdIE_iei_descr_; +extern const XERdescriptor_t PLMN__IdIE_iel_xer_; +extern const TTCN_OERdescriptor_t PLMN__IdIE_iel_oer_; +extern const TTCN_Typedescriptor_t PLMN__IdIE_iel_descr_; +extern const XERdescriptor_t PLMN__IdIE_plmn_xer_; +extern const TTCN_OERdescriptor_t PLMN__IdIE_plmn_oer_; +extern const TTCN_Typedescriptor_t PLMN__IdIE_plmn_descr_; +extern const TTCN_Typedescriptor_t PLMN__IdIE_descr_; +extern const XERdescriptor_t PLMN__List_iei_xer_; +extern const TTCN_OERdescriptor_t PLMN__List_iei_oer_; +extern const TTCN_Typedescriptor_t PLMN__List_iei_descr_; +extern const XERdescriptor_t PLMN__List_iel_xer_; +extern const TTCN_OERdescriptor_t PLMN__List_iel_oer_; +extern const TTCN_Typedescriptor_t PLMN__List_iel_descr_; +extern const TTCN_Typedescriptor_t PLMN__List_plmnList_descr_; +extern const XERdescriptor_t PLMN__List_plmnList_0_xer_; +extern const TTCN_OERdescriptor_t PLMN__List_plmnList_0_oer_; +extern const TTCN_Typedescriptor_t PLMN__List_plmnList_0_descr_; +extern const TTCN_Typedescriptor_t PLMN__List_descr_; +extern const XERdescriptor_t MS__NetworkFeatureSupport_iei_xer_; +extern const TTCN_Typedescriptor_t MS__NetworkFeatureSupport_iei_descr_; +extern const XERdescriptor_t MS__NetworkFeatureSupport_spare_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkFeatureSupport_spare_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkFeatureSupport_spare_descr_; +extern const XERdescriptor_t MS__NetworkFeatureSupport_extdPeriodicTimers_xer_; +extern const TTCN_OERdescriptor_t MS__NetworkFeatureSupport_extdPeriodicTimers_oer_; +extern const TTCN_Typedescriptor_t MS__NetworkFeatureSupport_extdPeriodicTimers_descr_; +extern const TTCN_Typedescriptor_t MS__NetworkFeatureSupport_descr_; +extern const TTCN_Typedescriptor_t& NAS__PlmnIdList__Type_descr_; +extern const XERdescriptor_t ProtocolConfigOptions_iei_xer_; +extern const TTCN_OERdescriptor_t ProtocolConfigOptions_iei_oer_; +extern const TTCN_Typedescriptor_t ProtocolConfigOptions_iei_descr_; +extern const XERdescriptor_t ProtocolConfigOptions_iel_xer_; +extern const TTCN_OERdescriptor_t ProtocolConfigOptions_iel_oer_; +extern const TTCN_Typedescriptor_t ProtocolConfigOptions_iel_descr_; +extern const XERdescriptor_t ProtocolConfigOptions_ext_xer_; +extern const TTCN_OERdescriptor_t ProtocolConfigOptions_ext_oer_; +extern const TTCN_Typedescriptor_t ProtocolConfigOptions_ext_descr_; +extern const XERdescriptor_t ProtocolConfigOptions_spare_xer_; +extern const TTCN_OERdescriptor_t ProtocolConfigOptions_spare_oer_; +extern const TTCN_Typedescriptor_t ProtocolConfigOptions_spare_descr_; +extern const XERdescriptor_t ProtocolConfigOptions_configProtocol_xer_; +extern const TTCN_OERdescriptor_t ProtocolConfigOptions_configProtocol_oer_; +extern const TTCN_Typedescriptor_t ProtocolConfigOptions_configProtocol_descr_; +extern const TTCN_Typedescriptor_t ProtocolConfigOptions_descr_; +extern const TTCN_Typedescriptor_t ProtocolConfigOptions_pco_descr_; +extern const XERdescriptor_t ProtocolContainer_protocolID_xer_; +extern const TTCN_OERdescriptor_t ProtocolContainer_protocolID_oer_; +extern const TTCN_Typedescriptor_t ProtocolContainer_protocolID_descr_; +extern const TTCN_Typedescriptor_t ProtocolContainer_descr_; +extern const XERdescriptor_t ProtocolContainer_protocolLength_xer_; +extern const TTCN_OERdescriptor_t ProtocolContainer_protocolLength_oer_; +extern const TTCN_Typedescriptor_t ProtocolContainer_protocolLength_descr_; +extern const XERdescriptor_t ProtocolContainer_protocolLongLength_xer_; +extern const TTCN_OERdescriptor_t ProtocolContainer_protocolLongLength_oer_; +extern const TTCN_Typedescriptor_t ProtocolContainer_protocolLongLength_descr_; +extern const XERdescriptor_t ProtocolContainer_content_xer_; +extern const TTCN_OERdescriptor_t ProtocolContainer_content_oer_; +extern const TTCN_Typedescriptor_t ProtocolContainer_content_descr_; +extern const TTCN_Typedescriptor_t& NAS__ProtocolConfigOptions__Type_descr_; +extern const XERdescriptor_t APNRateControlParams_spare_xer_; +extern const TTCN_OERdescriptor_t APNRateControlParams_spare_oer_; +extern const TTCN_Typedescriptor_t APNRateControlParams_spare_descr_; +extern const XERdescriptor_t APNRateControlParams_aer_xer_; +extern const TTCN_OERdescriptor_t APNRateControlParams_aer_oer_; +extern const TTCN_Typedescriptor_t APNRateControlParams_aer_descr_; +extern const XERdescriptor_t APNRateControlParams_uplinkTimeUnit_xer_; +extern const TTCN_OERdescriptor_t APNRateControlParams_uplinkTimeUnit_oer_; +extern const TTCN_Typedescriptor_t APNRateControlParams_uplinkTimeUnit_descr_; +extern const TTCN_Typedescriptor_t APNRateControlParams_descr_; +extern const XERdescriptor_t APNRateControlParams_maxUplinkRate_xer_; +extern const TTCN_OERdescriptor_t APNRateControlParams_maxUplinkRate_oer_; +extern const TTCN_Typedescriptor_t APNRateControlParams_maxUplinkRate_descr_; +extern const XERdescriptor_t PTMSI__Signature_signatureValue_xer_; +extern const TTCN_OERdescriptor_t PTMSI__Signature_signatureValue_oer_; +extern const TTCN_Typedescriptor_t PTMSI__Signature_signatureValue_descr_; +extern const TTCN_Typedescriptor_t PTMSI__Signature_descr_; +extern const XERdescriptor_t PTMSI__Signature_iei_xer_; +extern const TTCN_OERdescriptor_t PTMSI__Signature_iei_oer_; +extern const TTCN_Typedescriptor_t PTMSI__Signature_iei_descr_; +extern const XERdescriptor_t PTMSI__Signature_iel_xer_; +extern const TTCN_OERdescriptor_t PTMSI__Signature_iel_oer_; +extern const TTCN_Typedescriptor_t PTMSI__Signature_iel_descr_; +extern const XERdescriptor_t QualityOfService_iel_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_iel_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_iel_descr_; +extern const XERdescriptor_t QualityOfService_spare1_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_spare1_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_spare1_descr_; +extern const XERdescriptor_t QualityOfService_delayClass_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_delayClass_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_delayClass_descr_; +extern const XERdescriptor_t QualityOfService_relabilityClass_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_relabilityClass_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_relabilityClass_descr_; +extern const XERdescriptor_t QualityOfService_peakThroughput_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_peakThroughput_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_peakThroughput_descr_; +extern const XERdescriptor_t QualityOfService_spare2_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_spare2_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_spare2_descr_; +extern const XERdescriptor_t QualityOfService_precedenceClass_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_precedenceClass_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_precedenceClass_descr_; +extern const XERdescriptor_t QualityOfService_spare3_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_spare3_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_spare3_descr_; +extern const XERdescriptor_t QualityOfService_meanThroughput_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_meanThroughput_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_meanThroughput_descr_; +extern const XERdescriptor_t QualityOfService_trafficClass_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_trafficClass_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_trafficClass_descr_; +extern const XERdescriptor_t QualityOfService_deliveryOrder_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_deliveryOrder_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_deliveryOrder_descr_; +extern const XERdescriptor_t QualityOfService_deliveryErrorSDU_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_deliveryErrorSDU_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_deliveryErrorSDU_descr_; +extern const XERdescriptor_t QualityOfService_maxSduSize_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_maxSduSize_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_maxSduSize_descr_; +extern const XERdescriptor_t QualityOfService_maxBitRateUL_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_maxBitRateUL_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_maxBitRateUL_descr_; +extern const XERdescriptor_t QualityOfService_maxBitRateDL_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_maxBitRateDL_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_maxBitRateDL_descr_; +extern const XERdescriptor_t QualityOfService_residualBER_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_residualBER_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_residualBER_descr_; +extern const XERdescriptor_t QualityOfService_sduErrorRatio_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_sduErrorRatio_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_sduErrorRatio_descr_; +extern const XERdescriptor_t QualityOfService_transferDelay_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_transferDelay_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_transferDelay_descr_; +extern const XERdescriptor_t QualityOfService_trafficHandlingPrio_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_trafficHandlingPrio_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_trafficHandlingPrio_descr_; +extern const XERdescriptor_t QualityOfService_guaranteedBitRateUL_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateUL_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateUL_descr_; +extern const XERdescriptor_t QualityOfService_guaranteedBitRateDL_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateDL_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateDL_descr_; +extern const XERdescriptor_t QualityOfService_spare4_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_spare4_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_spare4_descr_; +extern const XERdescriptor_t QualityOfService_signallingInd_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_signallingInd_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_signallingInd_descr_; +extern const XERdescriptor_t QualityOfService_sourceStatisticsDescriptor_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_sourceStatisticsDescriptor_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_sourceStatisticsDescriptor_descr_; +extern const TTCN_Typedescriptor_t QualityOfService_descr_; +extern const XERdescriptor_t QualityOfService_iei_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_iei_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_iei_descr_; +extern const XERdescriptor_t QualityOfService_maxBitRateDL__Ext_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_maxBitRateDL__Ext_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_maxBitRateDL__Ext_descr_; +extern const XERdescriptor_t QualityOfService_guaranteedBitRateDL__Ext_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateDL__Ext_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateDL__Ext_descr_; +extern const XERdescriptor_t QualityOfService_maxBitRateUL__Ext_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_maxBitRateUL__Ext_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_maxBitRateUL__Ext_descr_; +extern const XERdescriptor_t QualityOfService_guaranteedBitRateUL__Ext_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateUL__Ext_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateUL__Ext_descr_; +extern const XERdescriptor_t QualityOfService_maxBitRateDL__Ext2_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_maxBitRateDL__Ext2_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_maxBitRateDL__Ext2_descr_; +extern const XERdescriptor_t QualityOfService_guaranteedBitRateDL__Ext2_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateDL__Ext2_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateDL__Ext2_descr_; +extern const XERdescriptor_t QualityOfService_maxBitRateUL__Ext2_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_maxBitRateUL__Ext2_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_maxBitRateUL__Ext2_descr_; +extern const XERdescriptor_t QualityOfService_guaranteedBitRateUL__Ext2_xer_; +extern const TTCN_OERdescriptor_t QualityOfService_guaranteedBitRateUL__Ext2_oer_; +extern const TTCN_Typedescriptor_t QualityOfService_guaranteedBitRateUL__Ext2_descr_; +extern const XERdescriptor_t RadioPriority_spare_xer_; +extern const TTCN_OERdescriptor_t RadioPriority_spare_oer_; +extern const TTCN_Typedescriptor_t RadioPriority_spare_descr_; +extern const XERdescriptor_t RadioPriority_levelValue_xer_; +extern const TTCN_OERdescriptor_t RadioPriority_levelValue_oer_; +extern const TTCN_Typedescriptor_t RadioPriority_levelValue_descr_; +extern const TTCN_Typedescriptor_t RadioPriority_descr_; +extern const XERdescriptor_t RadioPriority_iei_xer_; +extern const TTCN_Typedescriptor_t RadioPriority_iei_descr_; +extern const XERdescriptor_t Codec_sysId_xer_; +extern const TTCN_OERdescriptor_t Codec_sysId_oer_; +extern const TTCN_Typedescriptor_t Codec_sysId_descr_; +extern const XERdescriptor_t Codec_len_xer_; +extern const TTCN_OERdescriptor_t Codec_len_oer_; +extern const TTCN_Typedescriptor_t Codec_len_descr_; +extern const XERdescriptor_t Codec_bitMap1to8_xer_; +extern const TTCN_OERdescriptor_t Codec_bitMap1to8_oer_; +extern const TTCN_Typedescriptor_t Codec_bitMap1to8_descr_; +extern const TTCN_Typedescriptor_t Codec_descr_; +extern const XERdescriptor_t Codec_bitMap9to16_xer_; +extern const TTCN_OERdescriptor_t Codec_bitMap9to16_oer_; +extern const TTCN_Typedescriptor_t Codec_bitMap9to16_descr_; +extern const XERdescriptor_t CodecList_iei_xer_; +extern const TTCN_OERdescriptor_t CodecList_iei_oer_; +extern const TTCN_Typedescriptor_t CodecList_iei_descr_; +extern const XERdescriptor_t CodecList_iel_xer_; +extern const TTCN_OERdescriptor_t CodecList_iel_oer_; +extern const TTCN_Typedescriptor_t CodecList_iel_descr_; +extern const TTCN_Typedescriptor_t CodecList_codec_descr_; +extern const TTCN_Typedescriptor_t CodecList_descr_; +extern const XERdescriptor_t Request__Type_spare_xer_; +extern const TTCN_OERdescriptor_t Request__Type_spare_oer_; +extern const TTCN_Typedescriptor_t Request__Type_spare_descr_; +extern const XERdescriptor_t Request__Type_typeValue_xer_; +extern const TTCN_OERdescriptor_t Request__Type_typeValue_oer_; +extern const TTCN_Typedescriptor_t Request__Type_typeValue_descr_; +extern const TTCN_Typedescriptor_t Request__Type_descr_; +extern const XERdescriptor_t TMSI__Status_spare3_xer_; +extern const TTCN_OERdescriptor_t TMSI__Status_spare3_oer_; +extern const TTCN_Typedescriptor_t TMSI__Status_spare3_descr_; +extern const XERdescriptor_t TMSI__Status_flag_xer_; +extern const TTCN_OERdescriptor_t TMSI__Status_flag_oer_; +extern const TTCN_Typedescriptor_t TMSI__Status_flag_descr_; +extern const TTCN_Typedescriptor_t TMSI__Status_descr_; +extern const XERdescriptor_t TMSI__Status_iei_xer_; +extern const TTCN_Typedescriptor_t TMSI__Status_iei_descr_; +extern const XERdescriptor_t TrafficFlowTemplate_iel_xer_; +extern const TTCN_OERdescriptor_t TrafficFlowTemplate_iel_oer_; +extern const TTCN_Typedescriptor_t TrafficFlowTemplate_iel_descr_; +extern const XERdescriptor_t TrafficFlowTemplate_tftOperationCode_xer_; +extern const TTCN_OERdescriptor_t TrafficFlowTemplate_tftOperationCode_oer_; +extern const TTCN_Typedescriptor_t TrafficFlowTemplate_tftOperationCode_descr_; +extern const XERdescriptor_t TrafficFlowTemplate_eBit_xer_; +extern const TTCN_OERdescriptor_t TrafficFlowTemplate_eBit_oer_; +extern const TTCN_Typedescriptor_t TrafficFlowTemplate_eBit_descr_; +extern const XERdescriptor_t TrafficFlowTemplate_noOfPktFilter_xer_; +extern const TTCN_OERdescriptor_t TrafficFlowTemplate_noOfPktFilter_oer_; +extern const TTCN_Typedescriptor_t TrafficFlowTemplate_noOfPktFilter_descr_; +extern const TTCN_Typedescriptor_t TrafficFlowTemplate_descr_; +extern const XERdescriptor_t TrafficFlowTemplate_iei_xer_; +extern const TTCN_OERdescriptor_t TrafficFlowTemplate_iei_oer_; +extern const TTCN_Typedescriptor_t TrafficFlowTemplate_iei_descr_; +extern const TTCN_Typedescriptor_t TrafficFlowTemplate_packetFilterList_descr_; +extern const XERdescriptor_t PacketFilter_spare_xer_; +extern const TTCN_OERdescriptor_t PacketFilter_spare_oer_; +extern const TTCN_Typedescriptor_t PacketFilter_spare_descr_; +extern const XERdescriptor_t PacketFilter_direction_xer_; +extern const TTCN_OERdescriptor_t PacketFilter_direction_oer_; +extern const TTCN_Typedescriptor_t PacketFilter_direction_descr_; +extern const XERdescriptor_t PacketFilter_iei_xer_; +extern const TTCN_Typedescriptor_t PacketFilter_iei_descr_; +extern const TTCN_Typedescriptor_t PacketFilter_descr_; +extern const XERdescriptor_t PacketFilter_precedence_xer_; +extern const TTCN_OERdescriptor_t PacketFilter_precedence_oer_; +extern const TTCN_Typedescriptor_t PacketFilter_precedence_descr_; +extern const XERdescriptor_t PacketFilter_iel_xer_; +extern const TTCN_OERdescriptor_t PacketFilter_iel_oer_; +extern const TTCN_Typedescriptor_t PacketFilter_iel_descr_; +extern const TTCN_Typedescriptor_t PacketFilterContents_descr_; +extern const TTCN_RAWdescriptor_t PacketFilterComponent_id_raw_; +extern const XERdescriptor_t PacketFilterComponent_id_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponent_id_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponent_id_descr_; +extern const TTCN_RAWdescriptor_t PacketFilterComponentValue_raw_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_ipv4RemoteAddress_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_ipv4RemoteAddress_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_ipv4RemoteAddress_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_ipv6RemoteAddress_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_ipv6RemoteAddress_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_ipv6RemoteAddress_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_protocolIdNextHeader_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_protocolIdNextHeader_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_protocolIdNextHeader_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_singleLocalPort_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_singleLocalPort_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_singleLocalPort_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_localPortRange_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_localPortRange_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_localPortRange_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_singleRemotePort_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_singleRemotePort_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_singleRemotePort_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_remotePortRange_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_remotePortRange_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_remotePortRange_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_securityParameterIndex_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_securityParameterIndex_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_securityParameterIndex_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_typeOfServiceTrafficClass_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_typeOfServiceTrafficClass_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_typeOfServiceTrafficClass_descr_; +extern const XERdescriptor_t PacketFilterComponentValue_flowLabel_xer_; +extern const TTCN_OERdescriptor_t PacketFilterComponentValue_flowLabel_oer_; +extern const TTCN_Typedescriptor_t PacketFilterComponentValue_flowLabel_descr_; +extern const TTCN_RAWdescriptor_t PacketFilterComponent_raw_; +extern const TTCN_Typedescriptor_t PacketFilterComponent_descr_; +extern const TTCN_Typedescriptor_t TrafficFlowTemplate_parameterList_descr_; +extern const XERdescriptor_t TftParameter_iei_xer_; +extern const TTCN_OERdescriptor_t TftParameter_iei_oer_; +extern const TTCN_Typedescriptor_t TftParameter_iei_descr_; +extern const XERdescriptor_t TftParameter_iel_xer_; +extern const TTCN_OERdescriptor_t TftParameter_iel_oer_; +extern const TTCN_Typedescriptor_t TftParameter_iel_descr_; +extern const XERdescriptor_t TftParameter_contents_xer_; +extern const TTCN_OERdescriptor_t TftParameter_contents_oer_; +extern const TTCN_Typedescriptor_t TftParameter_contents_descr_; +extern const TTCN_Typedescriptor_t TftParameter_descr_; +extern const XERdescriptor_t UE__NetworkCap_eeaCap_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_eeaCap_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_eeaCap_descr_; +extern const XERdescriptor_t UE__NetworkCap_eiaCap_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_eiaCap_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_eiaCap_descr_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_descr_; +extern const XERdescriptor_t UE__NetworkCap_iei_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_iei_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_iei_descr_; +extern const XERdescriptor_t UE__NetworkCap_iel_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_iel_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_iel_descr_; +extern const XERdescriptor_t UE__NetworkCap_ueaCap_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_ueaCap_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_ueaCap_descr_; +extern const XERdescriptor_t UE__NetworkCap_uiaCap_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_uiaCap_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_uiaCap_descr_; +extern const XERdescriptor_t UE__NetworkCap_srvcc__LPP__ProSeCap_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_srvcc__LPP__ProSeCap_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_srvcc__LPP__ProSeCap_descr_; +extern const XERdescriptor_t UE__NetworkCap_cIoT__proSeCap_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_cIoT__proSeCap_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_cIoT__proSeCap_descr_; +extern const XERdescriptor_t UE__NetworkCap_cIoT__V2X_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_cIoT__V2X_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_cIoT__V2X_descr_; +extern const XERdescriptor_t UE__NetworkCap_edt__WUS_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_edt__WUS_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_edt__WUS_descr_; +extern const XERdescriptor_t UE__NetworkCap_musim_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_musim_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_musim_descr_; +extern const XERdescriptor_t UE__NetworkCap_spare_xer_; +extern const TTCN_OERdescriptor_t UE__NetworkCap_spare_oer_; +extern const TTCN_Typedescriptor_t UE__NetworkCap_spare_descr_; +extern const XERdescriptor_t ReAttemptIndicator_spare_xer_; +extern const TTCN_OERdescriptor_t ReAttemptIndicator_spare_oer_; +extern const TTCN_Typedescriptor_t ReAttemptIndicator_spare_descr_; +extern const XERdescriptor_t ReAttemptIndicator_eplmncValue_xer_; +extern const TTCN_OERdescriptor_t ReAttemptIndicator_eplmncValue_oer_; +extern const TTCN_Typedescriptor_t ReAttemptIndicator_eplmncValue_descr_; +extern const XERdescriptor_t ReAttemptIndicator_ratcValue_xer_; +extern const TTCN_OERdescriptor_t ReAttemptIndicator_ratcValue_oer_; +extern const TTCN_Typedescriptor_t ReAttemptIndicator_ratcValue_descr_; +extern const TTCN_Typedescriptor_t ReAttemptIndicator_descr_; +extern const XERdescriptor_t ReAttemptIndicator_iei_xer_; +extern const TTCN_OERdescriptor_t ReAttemptIndicator_iei_oer_; +extern const TTCN_Typedescriptor_t ReAttemptIndicator_iei_descr_; +extern const XERdescriptor_t ReAttemptIndicator_iel_xer_; +extern const TTCN_OERdescriptor_t ReAttemptIndicator_iel_oer_; +extern const TTCN_Typedescriptor_t ReAttemptIndicator_iel_descr_; +extern const XERdescriptor_t AUTN_iel_xer_; +extern const TTCN_OERdescriptor_t AUTN_iel_oer_; +extern const TTCN_Typedescriptor_t AUTN_iel_descr_; +extern const XERdescriptor_t AUTN_aUTN_xer_; +extern const TTCN_OERdescriptor_t AUTN_aUTN_oer_; +extern const TTCN_Typedescriptor_t AUTN_aUTN_descr_; +extern const TTCN_Typedescriptor_t AUTN_descr_; +extern const XERdescriptor_t AUTN_iei_xer_; +extern const TTCN_OERdescriptor_t AUTN_iei_oer_; +extern const TTCN_Typedescriptor_t AUTN_iei_descr_; +extern const XERdescriptor_t AuthenticationFailureParameter_iei_xer_; +extern const TTCN_OERdescriptor_t AuthenticationFailureParameter_iei_oer_; +extern const TTCN_Typedescriptor_t AuthenticationFailureParameter_iei_descr_; +extern const XERdescriptor_t AuthenticationFailureParameter_iel_xer_; +extern const TTCN_OERdescriptor_t AuthenticationFailureParameter_iel_oer_; +extern const TTCN_Typedescriptor_t AuthenticationFailureParameter_iel_descr_; +extern const XERdescriptor_t AuthenticationFailureParameter_auts_xer_; +extern const TTCN_OERdescriptor_t AuthenticationFailureParameter_auts_oer_; +extern const TTCN_Typedescriptor_t AuthenticationFailureParameter_auts_descr_; +extern const TTCN_Typedescriptor_t AuthenticationFailureParameter_descr_; +extern const XERdescriptor_t RAND_randValue_xer_; +extern const TTCN_OERdescriptor_t RAND_randValue_oer_; +extern const TTCN_Typedescriptor_t RAND_randValue_descr_; +extern const TTCN_Typedescriptor_t RAND_descr_; +extern const XERdescriptor_t RAND_iei_xer_; +extern const TTCN_OERdescriptor_t RAND_iei_oer_; +extern const TTCN_Typedescriptor_t RAND_iei_descr_; +extern const XERdescriptor_t DaylightSavingTime_spare_xer_; +extern const TTCN_OERdescriptor_t DaylightSavingTime_spare_oer_; +extern const TTCN_Typedescriptor_t DaylightSavingTime_spare_descr_; +extern const XERdescriptor_t DaylightSavingTime_val_xer_; +extern const TTCN_OERdescriptor_t DaylightSavingTime_val_oer_; +extern const TTCN_Typedescriptor_t DaylightSavingTime_val_descr_; +extern const TTCN_Typedescriptor_t DaylightSavingTime_descr_; +extern const XERdescriptor_t DaylightSavingTime_iei_xer_; +extern const TTCN_OERdescriptor_t DaylightSavingTime_iei_oer_; +extern const TTCN_Typedescriptor_t DaylightSavingTime_iei_descr_; +extern const XERdescriptor_t DaylightSavingTime_iel_xer_; +extern const TTCN_OERdescriptor_t DaylightSavingTime_iel_oer_; +extern const TTCN_Typedescriptor_t DaylightSavingTime_iel_descr_; +extern const XERdescriptor_t NetworkName_iel_xer_; +extern const TTCN_OERdescriptor_t NetworkName_iel_oer_; +extern const TTCN_Typedescriptor_t NetworkName_iel_descr_; +extern const XERdescriptor_t NetworkName_ext_xer_; +extern const TTCN_OERdescriptor_t NetworkName_ext_oer_; +extern const TTCN_Typedescriptor_t NetworkName_ext_descr_; +extern const XERdescriptor_t NetworkName_codingScheme_xer_; +extern const TTCN_OERdescriptor_t NetworkName_codingScheme_oer_; +extern const TTCN_Typedescriptor_t NetworkName_codingScheme_descr_; +extern const XERdescriptor_t NetworkName_addCI_xer_; +extern const TTCN_OERdescriptor_t NetworkName_addCI_oer_; +extern const TTCN_Typedescriptor_t NetworkName_addCI_descr_; +extern const XERdescriptor_t NetworkName_spareBitCnt_xer_; +extern const TTCN_OERdescriptor_t NetworkName_spareBitCnt_oer_; +extern const TTCN_Typedescriptor_t NetworkName_spareBitCnt_descr_; +extern const XERdescriptor_t NetworkName_text_xer_; +extern const TTCN_OERdescriptor_t NetworkName_text_oer_; +extern const TTCN_Typedescriptor_t NetworkName_text_descr_; +extern const TTCN_Typedescriptor_t NetworkName_descr_; +extern const XERdescriptor_t NetworkName_iei_xer_; +extern const TTCN_OERdescriptor_t NetworkName_iei_oer_; +extern const TTCN_Typedescriptor_t NetworkName_iei_descr_; +extern const XERdescriptor_t TimeZone_timeZone_xer_; +extern const TTCN_OERdescriptor_t TimeZone_timeZone_oer_; +extern const TTCN_Typedescriptor_t TimeZone_timeZone_descr_; +extern const TTCN_Typedescriptor_t TimeZone_descr_; +extern const XERdescriptor_t TimeZone_iei_xer_; +extern const TTCN_OERdescriptor_t TimeZone_iei_oer_; +extern const TTCN_Typedescriptor_t TimeZone_iei_descr_; +extern const XERdescriptor_t TimeZoneAndTime_year_xer_; +extern const TTCN_OERdescriptor_t TimeZoneAndTime_year_oer_; +extern const TTCN_Typedescriptor_t TimeZoneAndTime_year_descr_; +extern const XERdescriptor_t TimeZoneAndTime_month_xer_; +extern const TTCN_OERdescriptor_t TimeZoneAndTime_month_oer_; +extern const TTCN_Typedescriptor_t TimeZoneAndTime_month_descr_; +extern const XERdescriptor_t TimeZoneAndTime_day_xer_; +extern const TTCN_OERdescriptor_t TimeZoneAndTime_day_oer_; +extern const TTCN_Typedescriptor_t TimeZoneAndTime_day_descr_; +extern const XERdescriptor_t TimeZoneAndTime_hour_xer_; +extern const TTCN_OERdescriptor_t TimeZoneAndTime_hour_oer_; +extern const TTCN_Typedescriptor_t TimeZoneAndTime_hour_descr_; +extern const XERdescriptor_t TimeZoneAndTime_minute_xer_; +extern const TTCN_OERdescriptor_t TimeZoneAndTime_minute_oer_; +extern const TTCN_Typedescriptor_t TimeZoneAndTime_minute_descr_; +extern const XERdescriptor_t TimeZoneAndTime_second_xer_; +extern const TTCN_OERdescriptor_t TimeZoneAndTime_second_oer_; +extern const TTCN_Typedescriptor_t TimeZoneAndTime_second_descr_; +extern const XERdescriptor_t TimeZoneAndTime_timeZone_xer_; +extern const TTCN_OERdescriptor_t TimeZoneAndTime_timeZone_oer_; +extern const TTCN_Typedescriptor_t TimeZoneAndTime_timeZone_descr_; +extern const TTCN_Typedescriptor_t TimeZoneAndTime_descr_; +extern const XERdescriptor_t TimeZoneAndTime_iei_xer_; +extern const TTCN_OERdescriptor_t TimeZoneAndTime_iei_oer_; +extern const TTCN_Typedescriptor_t TimeZoneAndTime_iei_descr_; +extern const XERdescriptor_t VoiceDomainPref_spareBits_xer_; +extern const TTCN_OERdescriptor_t VoiceDomainPref_spareBits_oer_; +extern const TTCN_Typedescriptor_t VoiceDomainPref_spareBits_descr_; +extern const XERdescriptor_t VoiceDomainPref_ueUsageSetting_xer_; +extern const TTCN_OERdescriptor_t VoiceDomainPref_ueUsageSetting_oer_; +extern const TTCN_Typedescriptor_t VoiceDomainPref_ueUsageSetting_descr_; +extern const XERdescriptor_t VoiceDomainPref_voiceDomainPrefEUTRA_xer_; +extern const TTCN_OERdescriptor_t VoiceDomainPref_voiceDomainPrefEUTRA_oer_; +extern const TTCN_Typedescriptor_t VoiceDomainPref_voiceDomainPrefEUTRA_descr_; +extern const TTCN_Typedescriptor_t VoiceDomainPref_descr_; +extern const XERdescriptor_t VoiceDomainPref_iei_xer_; +extern const TTCN_OERdescriptor_t VoiceDomainPref_iei_oer_; +extern const TTCN_Typedescriptor_t VoiceDomainPref_iei_descr_; +extern const XERdescriptor_t VoiceDomainPref_iel_xer_; +extern const TTCN_OERdescriptor_t VoiceDomainPref_iel_oer_; +extern const TTCN_Typedescriptor_t VoiceDomainPref_iel_descr_; +extern const XERdescriptor_t IdentityType_spare_xer_; +extern const TTCN_OERdescriptor_t IdentityType_spare_oer_; +extern const TTCN_Typedescriptor_t IdentityType_spare_descr_; +extern const XERdescriptor_t IdentityType_typeOfId_xer_; +extern const TTCN_OERdescriptor_t IdentityType_typeOfId_oer_; +extern const TTCN_Typedescriptor_t IdentityType_typeOfId_descr_; +extern const TTCN_Typedescriptor_t IdentityType_descr_; +extern const XERdescriptor_t TI_tiFlag_xer_; +extern const TTCN_OERdescriptor_t TI_tiFlag_oer_; +extern const TTCN_Typedescriptor_t TI_tiFlag_descr_; +extern const XERdescriptor_t TI_tiVal_xer_; +extern const TTCN_OERdescriptor_t TI_tiVal_oer_; +extern const TTCN_Typedescriptor_t TI_tiVal_descr_; +extern const TTCN_Typedescriptor_t TI_descr_; +extern const XERdescriptor_t REGISTER_sS__ProtocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t REGISTER_sS__ProtocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t REGISTER_sS__ProtocolDiscriminator_descr_; +extern const XERdescriptor_t REGISTER_msgType_xer_; +extern const TTCN_OERdescriptor_t REGISTER_msgType_oer_; +extern const TTCN_Typedescriptor_t REGISTER_msgType_descr_; +extern const XERdescriptor_t FacilityIE_iel_xer_; +extern const TTCN_OERdescriptor_t FacilityIE_iel_oer_; +extern const TTCN_Typedescriptor_t FacilityIE_iel_descr_; +extern const XERdescriptor_t FacilityIE_components_xer_; +extern const TTCN_OERdescriptor_t FacilityIE_components_oer_; +extern const TTCN_Typedescriptor_t FacilityIE_components_descr_; +extern const TTCN_Typedescriptor_t FacilityIE_descr_; +extern const XERdescriptor_t FacilityIE_iei_xer_; +extern const TTCN_OERdescriptor_t FacilityIE_iei_oer_; +extern const TTCN_Typedescriptor_t FacilityIE_iei_descr_; +extern const TTCN_Typedescriptor_t REGISTER_descr_; +extern const XERdescriptor_t SS__VersionInd_iei_xer_; +extern const TTCN_OERdescriptor_t SS__VersionInd_iei_oer_; +extern const TTCN_Typedescriptor_t SS__VersionInd_iei_descr_; +extern const XERdescriptor_t SS__VersionInd_iel_xer_; +extern const TTCN_OERdescriptor_t SS__VersionInd_iel_oer_; +extern const TTCN_Typedescriptor_t SS__VersionInd_iel_descr_; +extern const XERdescriptor_t SS__VersionInd_sS__VersionInfo_xer_; +extern const TTCN_OERdescriptor_t SS__VersionInd_sS__VersionInfo_oer_; +extern const TTCN_Typedescriptor_t SS__VersionInd_sS__VersionInfo_descr_; +extern const TTCN_Typedescriptor_t SS__VersionInd_descr_; +extern const XERdescriptor_t FACILITY_sS__ProtocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t FACILITY_sS__ProtocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t FACILITY_sS__ProtocolDiscriminator_descr_; +extern const XERdescriptor_t FACILITY_msgType_xer_; +extern const TTCN_OERdescriptor_t FACILITY_msgType_oer_; +extern const TTCN_Typedescriptor_t FACILITY_msgType_descr_; +extern const TTCN_Typedescriptor_t FACILITY_descr_; +extern const XERdescriptor_t FACILITYul_sS__ProtocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t FACILITYul_sS__ProtocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t FACILITYul_sS__ProtocolDiscriminator_descr_; +extern const XERdescriptor_t FACILITYul_msgType_xer_; +extern const TTCN_OERdescriptor_t FACILITYul_msgType_oer_; +extern const TTCN_Typedescriptor_t FACILITYul_msgType_descr_; +extern const TTCN_Typedescriptor_t FACILITYul_descr_; +extern const XERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_skipIndicator_descr_; +extern const XERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_protocolDiscriminator_descr_; +extern const XERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_msgType_xer_; +extern const TTCN_OERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_msgType_oer_; +extern const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_msgType_descr_; +extern const XERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_uePositioningTech_xer_; +extern const TTCN_OERdescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_uePositioningTech_oer_; +extern const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_uePositioningTech_descr_; +extern const TTCN_Typedescriptor_t RESETUEPOSITIONINGSTOREDINFORMATION_descr_; +extern const XERdescriptor_t WLANOffloadAcceptability_iei_xer_; +extern const TTCN_Typedescriptor_t WLANOffloadAcceptability_iei_descr_; +extern const XERdescriptor_t WLANOffloadAcceptability_spare_xer_; +extern const TTCN_OERdescriptor_t WLANOffloadAcceptability_spare_oer_; +extern const TTCN_Typedescriptor_t WLANOffloadAcceptability_spare_descr_; +extern const XERdescriptor_t WLANOffloadAcceptability_utranOffload_xer_; +extern const TTCN_OERdescriptor_t WLANOffloadAcceptability_utranOffload_oer_; +extern const TTCN_Typedescriptor_t WLANOffloadAcceptability_utranOffload_descr_; +extern const XERdescriptor_t WLANOffloadAcceptability_eutranOffload_xer_; +extern const TTCN_OERdescriptor_t WLANOffloadAcceptability_eutranOffload_oer_; +extern const TTCN_Typedescriptor_t WLANOffloadAcceptability_eutranOffload_descr_; +extern const TTCN_Typedescriptor_t WLANOffloadAcceptability_descr_; +extern const XERdescriptor_t ExtdDRXParams_iei_xer_; +extern const TTCN_OERdescriptor_t ExtdDRXParams_iei_oer_; +extern const TTCN_Typedescriptor_t ExtdDRXParams_iei_descr_; +extern const XERdescriptor_t ExtdDRXParams_iel_xer_; +extern const TTCN_OERdescriptor_t ExtdDRXParams_iel_oer_; +extern const TTCN_Typedescriptor_t ExtdDRXParams_iel_descr_; +extern const XERdescriptor_t ExtdDRXParams_pagingTimeWindow_xer_; +extern const TTCN_OERdescriptor_t ExtdDRXParams_pagingTimeWindow_oer_; +extern const TTCN_Typedescriptor_t ExtdDRXParams_pagingTimeWindow_descr_; +extern const XERdescriptor_t ExtdDRXParams_eDRXValue_xer_; +extern const TTCN_OERdescriptor_t ExtdDRXParams_eDRXValue_oer_; +extern const TTCN_Typedescriptor_t ExtdDRXParams_eDRXValue_descr_; +extern const TTCN_Typedescriptor_t ExtdDRXParams_descr_; +extern const XERdescriptor_t ExtdDRXParams_extdPTW_xer_; +extern const TTCN_OERdescriptor_t ExtdDRXParams_extdPTW_oer_; +extern const TTCN_Typedescriptor_t ExtdDRXParams_extdPTW_descr_; +extern const XERdescriptor_t NBIFOMContainer_iei_xer_; +extern const TTCN_OERdescriptor_t NBIFOMContainer_iei_oer_; +extern const TTCN_Typedescriptor_t NBIFOMContainer_iei_descr_; +extern const XERdescriptor_t NBIFOMContainer_iel_xer_; +extern const TTCN_OERdescriptor_t NBIFOMContainer_iel_oer_; +extern const TTCN_Typedescriptor_t NBIFOMContainer_iel_descr_; +extern const XERdescriptor_t NBIFOMContainer_containerContents_xer_; +extern const TTCN_OERdescriptor_t NBIFOMContainer_containerContents_oer_; +extern const TTCN_Typedescriptor_t NBIFOMContainer_containerContents_descr_; +extern const TTCN_Typedescriptor_t NBIFOMContainer_descr_; +extern const XERdescriptor_t DCN__ID_iei_xer_; +extern const TTCN_OERdescriptor_t DCN__ID_iei_oer_; +extern const TTCN_Typedescriptor_t DCN__ID_iei_descr_; +extern const XERdescriptor_t DCN__ID_iel_xer_; +extern const TTCN_OERdescriptor_t DCN__ID_iel_oer_; +extern const TTCN_Typedescriptor_t DCN__ID_iel_descr_; +extern const XERdescriptor_t DCN__ID_dcnIdValue_xer_; +extern const TTCN_OERdescriptor_t DCN__ID_dcnIdValue_oer_; +extern const TTCN_Typedescriptor_t DCN__ID_dcnIdValue_descr_; +extern const TTCN_Typedescriptor_t DCN__ID_descr_; +extern const XERdescriptor_t ExtdProtocolConfigOptions_iei_xer_; +extern const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_iei_oer_; +extern const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_iei_descr_; +extern const XERdescriptor_t ExtdProtocolConfigOptions_iel_xer_; +extern const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_iel_oer_; +extern const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_iel_descr_; +extern const XERdescriptor_t ExtdProtocolConfigOptions_ext_xer_; +extern const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_ext_oer_; +extern const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_ext_descr_; +extern const XERdescriptor_t ExtdProtocolConfigOptions_spare_xer_; +extern const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_spare_oer_; +extern const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_spare_descr_; +extern const XERdescriptor_t ExtdProtocolConfigOptions_configProtocol_xer_; +extern const TTCN_OERdescriptor_t ExtdProtocolConfigOptions_configProtocol_oer_; +extern const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_configProtocol_descr_; +extern const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_descr_; +extern const TTCN_Typedescriptor_t ExtdProtocolConfigOptions_pco_descr_; +extern const TTCN_Typedescriptor_t NAS__ExtdProtocolConfigOptions__Type_descr_; +extern const XERdescriptor_t AdditionalInformation_iei_xer_; +extern const TTCN_OERdescriptor_t AdditionalInformation_iei_oer_; +extern const TTCN_Typedescriptor_t AdditionalInformation_iei_descr_; +extern const XERdescriptor_t AdditionalInformation_iel_xer_; +extern const TTCN_OERdescriptor_t AdditionalInformation_iel_oer_; +extern const TTCN_Typedescriptor_t AdditionalInformation_iel_descr_; +extern const XERdescriptor_t AdditionalInformation_additionalInfo_xer_; +extern const TTCN_OERdescriptor_t AdditionalInformation_additionalInfo_oer_; +extern const TTCN_Typedescriptor_t AdditionalInformation_additionalInfo_descr_; +extern const TTCN_Typedescriptor_t AdditionalInformation_descr_; +extern const XERdescriptor_t AuthenticationResponseParameter_res_xer_; +extern const TTCN_OERdescriptor_t AuthenticationResponseParameter_res_oer_; +extern const TTCN_Typedescriptor_t AuthenticationResponseParameter_res_descr_; +extern const TTCN_Typedescriptor_t AuthenticationResponseParameter_descr_; +extern const XERdescriptor_t AuthenticationResponseParameter_iei_xer_; +extern const TTCN_OERdescriptor_t AuthenticationResponseParameter_iei_oer_; +extern const TTCN_Typedescriptor_t AuthenticationResponseParameter_iei_descr_; +extern const XERdescriptor_t AuthenticationResponseParameter_iel_xer_; +extern const TTCN_OERdescriptor_t AuthenticationResponseParameter_iel_oer_; +extern const TTCN_Typedescriptor_t AuthenticationResponseParameter_iel_descr_; +extern const XERdescriptor_t NAS__KeySetIdentifier_tsc_xer_; +extern const TTCN_OERdescriptor_t NAS__KeySetIdentifier_tsc_oer_; +extern const TTCN_Typedescriptor_t NAS__KeySetIdentifier_tsc_descr_; +extern const XERdescriptor_t NAS__KeySetIdentifier_nasKeySetId_xer_; +extern const TTCN_OERdescriptor_t NAS__KeySetIdentifier_nasKeySetId_oer_; +extern const TTCN_Typedescriptor_t NAS__KeySetIdentifier_nasKeySetId_descr_; +extern const TTCN_Typedescriptor_t NAS__KeySetIdentifier_descr_; +extern const XERdescriptor_t NAS__KeySetIdentifier_iei_xer_; +extern const TTCN_Typedescriptor_t NAS__KeySetIdentifier_iei_descr_; +extern const XERdescriptor_t HashMME_iel_xer_; +extern const TTCN_OERdescriptor_t HashMME_iel_oer_; +extern const TTCN_Typedescriptor_t HashMME_iel_descr_; +extern const XERdescriptor_t HashMME_hashMME_xer_; +extern const TTCN_OERdescriptor_t HashMME_hashMME_oer_; +extern const TTCN_Typedescriptor_t HashMME_hashMME_descr_; +extern const TTCN_Typedescriptor_t HashMME_descr_; +extern const XERdescriptor_t HashMME_iei_xer_; +extern const TTCN_OERdescriptor_t HashMME_iei_oer_; +extern const TTCN_Typedescriptor_t HashMME_iei_descr_; +extern const XERdescriptor_t PDN__Address_spare_xer_; +extern const TTCN_OERdescriptor_t PDN__Address_spare_oer_; +extern const TTCN_Typedescriptor_t PDN__Address_spare_descr_; +extern const XERdescriptor_t PDN__Address_typeValue_xer_; +extern const TTCN_OERdescriptor_t PDN__Address_typeValue_oer_; +extern const TTCN_Typedescriptor_t PDN__Address_typeValue_descr_; +extern const XERdescriptor_t PDN__Address_adressInfo_xer_; +extern const TTCN_OERdescriptor_t PDN__Address_adressInfo_oer_; +extern const TTCN_Typedescriptor_t PDN__Address_adressInfo_descr_; +extern const TTCN_Typedescriptor_t PDN__Address_descr_; +extern const XERdescriptor_t PDN__Address_iei_xer_; +extern const TTCN_OERdescriptor_t PDN__Address_iei_oer_; +extern const TTCN_Typedescriptor_t PDN__Address_iei_descr_; +extern const XERdescriptor_t PDN__Address_iel_xer_; +extern const TTCN_OERdescriptor_t PDN__Address_iel_oer_; +extern const TTCN_Typedescriptor_t PDN__Address_iel_descr_; +extern const XERdescriptor_t ReplayedNASMessageContainer_iel_xer_; +extern const TTCN_OERdescriptor_t ReplayedNASMessageContainer_iel_oer_; +extern const TTCN_Typedescriptor_t ReplayedNASMessageContainer_iel_descr_; +extern const XERdescriptor_t ReplayedNASMessageContainer_replayedNASMsgContainerValue_xer_; +extern const TTCN_OERdescriptor_t ReplayedNASMessageContainer_replayedNASMsgContainerValue_oer_; +extern const TTCN_Typedescriptor_t ReplayedNASMessageContainer_replayedNASMsgContainerValue_descr_; +extern const TTCN_Typedescriptor_t ReplayedNASMessageContainer_descr_; +extern const XERdescriptor_t ReplayedNASMessageContainer_iei_xer_; +extern const TTCN_OERdescriptor_t ReplayedNASMessageContainer_iei_oer_; +extern const TTCN_Typedescriptor_t ReplayedNASMessageContainer_iei_descr_; +extern const XERdescriptor_t NAS__SecurityAlgorithms_spare1_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_spare1_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_spare1_descr_; +extern const XERdescriptor_t NAS__SecurityAlgorithms_cipheringType_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_cipheringType_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_cipheringType_descr_; +extern const XERdescriptor_t NAS__SecurityAlgorithms_spare2_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_spare2_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_spare2_descr_; +extern const XERdescriptor_t NAS__SecurityAlgorithms_integrityType_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_integrityType_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_integrityType_descr_; +extern const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_descr_; +extern const XERdescriptor_t NAS__SecurityAlgorithms_iei_xer_; +extern const TTCN_OERdescriptor_t NAS__SecurityAlgorithms_iei_oer_; +extern const TTCN_Typedescriptor_t NAS__SecurityAlgorithms_iei_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_iel_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_iel_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_iel_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_unitMaxBitRate_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_unitMaxBitRate_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_unitMaxBitRate_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_maxBitRateUl__1_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_maxBitRateUl__1_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_maxBitRateUl__1_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_maxBitRateUl__2_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_maxBitRateUl__2_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_maxBitRateUl__2_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_maxBitRateDl__1_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_maxBitRateDl__1_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_maxBitRateDl__1_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_maxBitRateDl__2_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_maxBitRateDl__2_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_maxBitRateDl__2_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_unitGuaranteedBitRate_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_unitGuaranteedBitRate_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_unitGuaranteedBitRate_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__1_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__1_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__1_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__2_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__2_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_guaranteedBitRateUl__2_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__1_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__1_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__1_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__2_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__2_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_guaranteedBitRateDl__2_descr_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_descr_; +extern const XERdescriptor_t Extd__EPS__QOS_iei_xer_; +extern const TTCN_OERdescriptor_t Extd__EPS__QOS_iei_oer_; +extern const TTCN_Typedescriptor_t Extd__EPS__QOS_iei_descr_; +extern const XERdescriptor_t UE__Status_spare_xer_; +extern const TTCN_OERdescriptor_t UE__Status_spare_oer_; +extern const TTCN_Typedescriptor_t UE__Status_spare_descr_; +extern const XERdescriptor_t UE__Status_n1ModeRegistered_xer_; +extern const TTCN_OERdescriptor_t UE__Status_n1ModeRegistered_oer_; +extern const TTCN_Typedescriptor_t UE__Status_n1ModeRegistered_descr_; +extern const XERdescriptor_t UE__Status_s1ModeRegistered_xer_; +extern const TTCN_OERdescriptor_t UE__Status_s1ModeRegistered_oer_; +extern const TTCN_Typedescriptor_t UE__Status_s1ModeRegistered_descr_; +extern const TTCN_Typedescriptor_t UE__Status_descr_; +extern const XERdescriptor_t UE__Status_iei_xer_; +extern const TTCN_OERdescriptor_t UE__Status_iei_oer_; +extern const TTCN_Typedescriptor_t UE__Status_iei_descr_; +extern const XERdescriptor_t UE__Status_iel_xer_; +extern const TTCN_OERdescriptor_t UE__Status_iel_oer_; +extern const TTCN_Typedescriptor_t UE__Status_iel_descr_; +extern const XERdescriptor_t ExtdEmergNumList_iei_xer_; +extern const TTCN_OERdescriptor_t ExtdEmergNumList_iei_oer_; +extern const TTCN_Typedescriptor_t ExtdEmergNumList_iei_descr_; +extern const XERdescriptor_t ExtdEmergNumList_iel_xer_; +extern const TTCN_OERdescriptor_t ExtdEmergNumList_iel_oer_; +extern const TTCN_Typedescriptor_t ExtdEmergNumList_iel_descr_; +extern const XERdescriptor_t ExtdEmergNumList_spareBits_xer_; +extern const TTCN_OERdescriptor_t ExtdEmergNumList_spareBits_oer_; +extern const TTCN_Typedescriptor_t ExtdEmergNumList_spareBits_descr_; +extern const XERdescriptor_t ExtdEmergNumList_extdEmergNumListValidity_xer_; +extern const TTCN_OERdescriptor_t ExtdEmergNumList_extdEmergNumListValidity_oer_; +extern const TTCN_Typedescriptor_t ExtdEmergNumList_extdEmergNumListValidity_descr_; +extern const TTCN_Typedescriptor_t ExtdEmergNumList_emergNum_descr_; +extern const XERdescriptor_t ExtdEmergNum_len_xer_; +extern const TTCN_OERdescriptor_t ExtdEmergNum_len_oer_; +extern const TTCN_Typedescriptor_t ExtdEmergNum_len_descr_; +extern const XERdescriptor_t ExtdEmergNum_digits_xer_; +extern const TTCN_OERdescriptor_t ExtdEmergNum_digits_oer_; +extern const TTCN_Typedescriptor_t ExtdEmergNum_digits_descr_; +extern const XERdescriptor_t ExtdEmergNum_lengthOfSubService_xer_; +extern const TTCN_OERdescriptor_t ExtdEmergNum_lengthOfSubService_oer_; +extern const TTCN_Typedescriptor_t ExtdEmergNum_lengthOfSubService_descr_; +extern const XERdescriptor_t ExtdEmergNum_subServices_xer_; +extern const TTCN_OERdescriptor_t ExtdEmergNum_subServices_oer_; +extern const TTCN_Typedescriptor_t ExtdEmergNum_subServices_descr_; +extern const TTCN_Typedescriptor_t ExtdEmergNum_descr_; +extern const TTCN_Typedescriptor_t ExtdEmergNumList_descr_; +extern const XERdescriptor_t UE__SecurityCapability_iel_xer_; +extern const TTCN_OERdescriptor_t UE__SecurityCapability_iel_oer_; +extern const TTCN_Typedescriptor_t UE__SecurityCapability_iel_descr_; +extern const XERdescriptor_t UE__SecurityCapability_eeaCap_xer_; +extern const TTCN_OERdescriptor_t UE__SecurityCapability_eeaCap_oer_; +extern const TTCN_Typedescriptor_t UE__SecurityCapability_eeaCap_descr_; +extern const XERdescriptor_t UE__SecurityCapability_eiaCap_xer_; +extern const TTCN_OERdescriptor_t UE__SecurityCapability_eiaCap_oer_; +extern const TTCN_Typedescriptor_t UE__SecurityCapability_eiaCap_descr_; +extern const TTCN_Typedescriptor_t UE__SecurityCapability_descr_; +extern const XERdescriptor_t UE__SecurityCapability_ueaCap_xer_; +extern const TTCN_OERdescriptor_t UE__SecurityCapability_ueaCap_oer_; +extern const TTCN_Typedescriptor_t UE__SecurityCapability_ueaCap_descr_; +extern const XERdescriptor_t UE__SecurityCapability_uiaCap_xer_; +extern const TTCN_OERdescriptor_t UE__SecurityCapability_uiaCap_oer_; +extern const TTCN_Typedescriptor_t UE__SecurityCapability_uiaCap_descr_; +extern const XERdescriptor_t UE__SecurityCapability_geaCap_xer_; +extern const TTCN_OERdescriptor_t UE__SecurityCapability_geaCap_oer_; +extern const TTCN_Typedescriptor_t UE__SecurityCapability_geaCap_descr_; +extern const XERdescriptor_t EPS__QualityOfService_iel_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_iel_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_iel_descr_; +extern const XERdescriptor_t EPS__QualityOfService_qci_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_qci_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_qci_descr_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_descr_; +extern const XERdescriptor_t EPS__QualityOfService_iei_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_iei_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_iei_descr_; +extern const XERdescriptor_t EPS__QualityOfService_maxBitRateUl_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateUl_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateUl_descr_; +extern const XERdescriptor_t EPS__QualityOfService_maxBitRateDl_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateDl_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateDl_descr_; +extern const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateUl_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateUl_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateUl_descr_; +extern const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateDl_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateDl_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateDl_descr_; +extern const XERdescriptor_t EPS__QualityOfService_maxBitRateUlExt_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateUlExt_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateUlExt_descr_; +extern const XERdescriptor_t EPS__QualityOfService_maxBitRateDlExt_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateDlExt_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateDlExt_descr_; +extern const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateUlExt_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateUlExt_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateUlExt_descr_; +extern const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateDlExt_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateDlExt_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateDlExt_descr_; +extern const XERdescriptor_t EPS__QualityOfService_maxBitRateUL__Ext2_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateUL__Ext2_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateUL__Ext2_descr_; +extern const XERdescriptor_t EPS__QualityOfService_maxBitRateDL__Ext2_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_maxBitRateDL__Ext2_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_maxBitRateDL__Ext2_descr_; +extern const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateUL__Ext2_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateUL__Ext2_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateUL__Ext2_descr_; +extern const XERdescriptor_t EPS__QualityOfService_guaranteedBitRateDL__Ext2_xer_; +extern const TTCN_OERdescriptor_t EPS__QualityOfService_guaranteedBitRateDL__Ext2_oer_; +extern const TTCN_Typedescriptor_t EPS__QualityOfService_guaranteedBitRateDL__Ext2_descr_; +extern const XERdescriptor_t EPS__BearerContextStatus_ebi5__7_xer_; +extern const TTCN_OERdescriptor_t EPS__BearerContextStatus_ebi5__7_oer_; +extern const TTCN_Typedescriptor_t EPS__BearerContextStatus_ebi5__7_descr_; +extern const XERdescriptor_t EPS__BearerContextStatus_ebi4__1_xer_; +extern const TTCN_OERdescriptor_t EPS__BearerContextStatus_ebi4__1_oer_; +extern const TTCN_Typedescriptor_t EPS__BearerContextStatus_ebi4__1_descr_; +extern const XERdescriptor_t EPS__BearerContextStatus_spare_xer_; +extern const TTCN_OERdescriptor_t EPS__BearerContextStatus_spare_oer_; +extern const TTCN_Typedescriptor_t EPS__BearerContextStatus_spare_descr_; +extern const XERdescriptor_t EPS__BearerContextStatus_ebi8__15_xer_; +extern const TTCN_OERdescriptor_t EPS__BearerContextStatus_ebi8__15_oer_; +extern const TTCN_Typedescriptor_t EPS__BearerContextStatus_ebi8__15_descr_; +extern const TTCN_Typedescriptor_t EPS__BearerContextStatus_descr_; +extern const XERdescriptor_t EPS__BearerContextStatus_iei_xer_; +extern const TTCN_OERdescriptor_t EPS__BearerContextStatus_iei_oer_; +extern const TTCN_Typedescriptor_t EPS__BearerContextStatus_iei_descr_; +extern const XERdescriptor_t EPS__BearerContextStatus_iel_xer_; +extern const TTCN_OERdescriptor_t EPS__BearerContextStatus_iel_oer_; +extern const TTCN_Typedescriptor_t EPS__BearerContextStatus_iel_descr_; +extern const XERdescriptor_t UERadioCapId_id_xer_; +extern const TTCN_OERdescriptor_t UERadioCapId_id_oer_; +extern const TTCN_Typedescriptor_t UERadioCapId_id_descr_; +extern const TTCN_Typedescriptor_t UERadioCapId_descr_; +extern const XERdescriptor_t UERadioCapId_iei_xer_; +extern const TTCN_OERdescriptor_t UERadioCapId_iei_oer_; +extern const TTCN_Typedescriptor_t UERadioCapId_iei_descr_; +extern const XERdescriptor_t UERadioCapId_iel_xer_; +extern const TTCN_OERdescriptor_t UERadioCapId_iel_oer_; +extern const TTCN_Typedescriptor_t UERadioCapId_iel_descr_; +extern const XERdescriptor_t UERadioCapIdDeletion_spare_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdDeletion_spare_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdDeletion_spare_descr_; +extern const XERdescriptor_t UERadioCapIdDeletion_deleteReq_xer_; +extern const TTCN_OERdescriptor_t UERadioCapIdDeletion_deleteReq_oer_; +extern const TTCN_Typedescriptor_t UERadioCapIdDeletion_deleteReq_descr_; +extern const TTCN_Typedescriptor_t UERadioCapIdDeletion_descr_; +extern const XERdescriptor_t UERadioCapIdDeletion_iei_xer_; +extern const TTCN_Typedescriptor_t UERadioCapIdDeletion_iei_descr_; +extern const XERdescriptor_t DRXParamCommon_iel_xer_; +extern const TTCN_OERdescriptor_t DRXParamCommon_iel_oer_; +extern const TTCN_Typedescriptor_t DRXParamCommon_iel_descr_; +extern const XERdescriptor_t DRXParamCommon_spare_xer_; +extern const TTCN_OERdescriptor_t DRXParamCommon_spare_oer_; +extern const TTCN_Typedescriptor_t DRXParamCommon_spare_descr_; +extern const XERdescriptor_t DRXParamCommon_drxValue_xer_; +extern const TTCN_OERdescriptor_t DRXParamCommon_drxValue_oer_; +extern const TTCN_Typedescriptor_t DRXParamCommon_drxValue_descr_; +extern const TTCN_Typedescriptor_t DRXParamCommon_descr_; +extern const XERdescriptor_t DRXParamCommon_iei_xer_; +extern const TTCN_OERdescriptor_t DRXParamCommon_iei_oer_; +extern const TTCN_Typedescriptor_t DRXParamCommon_iei_descr_; +extern const XERdescriptor_t ReleaseAssistanceInd_spare_xer_; +extern const TTCN_OERdescriptor_t ReleaseAssistanceInd_spare_oer_; +extern const TTCN_Typedescriptor_t ReleaseAssistanceInd_spare_descr_; +extern const XERdescriptor_t ReleaseAssistanceInd_dlDataExpected_xer_; +extern const TTCN_OERdescriptor_t ReleaseAssistanceInd_dlDataExpected_oer_; +extern const TTCN_Typedescriptor_t ReleaseAssistanceInd_dlDataExpected_descr_; +extern const TTCN_Typedescriptor_t ReleaseAssistanceInd_descr_; +extern const XERdescriptor_t ReleaseAssistanceInd_iei_xer_; +extern const TTCN_Typedescriptor_t ReleaseAssistanceInd_iei_descr_; +extern const XERdescriptor_t WUSAssistInfo_iel_xer_; +extern const TTCN_OERdescriptor_t WUSAssistInfo_iel_oer_; +extern const TTCN_Typedescriptor_t WUSAssistInfo_iel_descr_; +extern const TTCN_Typedescriptor_t WUSAssistInfo_infoType_descr_; +extern const XERdescriptor_t WusInfoType_wusType_xer_; +extern const TTCN_OERdescriptor_t WusInfoType_wusType_oer_; +extern const TTCN_Typedescriptor_t WusInfoType_wusType_descr_; +extern const XERdescriptor_t WusInfoType_pagingProbability_xer_; +extern const TTCN_OERdescriptor_t WusInfoType_pagingProbability_oer_; +extern const TTCN_Typedescriptor_t WusInfoType_pagingProbability_descr_; +extern const TTCN_Typedescriptor_t WusInfoType_descr_; +extern const XERdescriptor_t WusInfoType_wusValue_xer_; +extern const TTCN_OERdescriptor_t WusInfoType_wusValue_oer_; +extern const TTCN_Typedescriptor_t WusInfoType_wusValue_descr_; +extern const TTCN_Typedescriptor_t WUSAssistInfo_descr_; +extern const XERdescriptor_t WUSAssistInfo_iei_xer_; +extern const TTCN_OERdescriptor_t WUSAssistInfo_iei_oer_; +extern const TTCN_Typedescriptor_t WUSAssistInfo_iei_descr_; +extern const XERdescriptor_t ServingPLMNRateControl_iel_xer_; +extern const TTCN_OERdescriptor_t ServingPLMNRateControl_iel_oer_; +extern const TTCN_Typedescriptor_t ServingPLMNRateControl_iel_descr_; +extern const XERdescriptor_t ServingPLMNRateControl_servingPLMNRate_xer_; +extern const TTCN_OERdescriptor_t ServingPLMNRateControl_servingPLMNRate_oer_; +extern const TTCN_Typedescriptor_t ServingPLMNRateControl_servingPLMNRate_descr_; +extern const TTCN_Typedescriptor_t ServingPLMNRateControl_descr_; +extern const XERdescriptor_t ServingPLMNRateControl_iei_xer_; +extern const TTCN_OERdescriptor_t ServingPLMNRateControl_iei_oer_; +extern const TTCN_Typedescriptor_t ServingPLMNRateControl_iei_descr_; +extern const XERdescriptor_t ControlPlaneInd_spare_xer_; +extern const TTCN_OERdescriptor_t ControlPlaneInd_spare_oer_; +extern const TTCN_Typedescriptor_t ControlPlaneInd_spare_descr_; +extern const XERdescriptor_t ControlPlaneInd_cpIndValue_xer_; +extern const TTCN_OERdescriptor_t ControlPlaneInd_cpIndValue_oer_; +extern const TTCN_Typedescriptor_t ControlPlaneInd_cpIndValue_descr_; +extern const TTCN_Typedescriptor_t ControlPlaneInd_descr_; +extern const XERdescriptor_t ControlPlaneInd_iei_xer_; +extern const TTCN_Typedescriptor_t ControlPlaneInd_iei_descr_; +extern const XERdescriptor_t QoSParameters_id_xer_; +extern const TTCN_OERdescriptor_t QoSParameters_id_oer_; +extern const TTCN_Typedescriptor_t QoSParameters_id_descr_; +extern const XERdescriptor_t QoSParameters_lenOfContent_xer_; +extern const TTCN_OERdescriptor_t QoSParameters_lenOfContent_oer_; +extern const TTCN_Typedescriptor_t QoSParameters_lenOfContent_descr_; +extern const XERdescriptor_t QoSParameters_qosParam_xer_; +extern const TTCN_OERdescriptor_t QoSParameters_qosParam_oer_; +extern const TTCN_Typedescriptor_t QoSParameters_qosParam_descr_; +extern const TTCN_Typedescriptor_t QoSParameters_descr_; +extern const TTCN_Typedescriptor_t QoSParametersList_descr_; +extern const XERdescriptor_t UE__RequestType_iel_xer_; +extern const TTCN_OERdescriptor_t UE__RequestType_iel_oer_; +extern const TTCN_Typedescriptor_t UE__RequestType_iel_descr_; +extern const XERdescriptor_t UE__RequestType_spare_xer_; +extern const TTCN_OERdescriptor_t UE__RequestType_spare_oer_; +extern const TTCN_Typedescriptor_t UE__RequestType_spare_descr_; +extern const XERdescriptor_t UE__RequestType_requestType_xer_; +extern const TTCN_OERdescriptor_t UE__RequestType_requestType_oer_; +extern const TTCN_Typedescriptor_t UE__RequestType_requestType_descr_; +extern const TTCN_Typedescriptor_t UE__RequestType_descr_; +extern const XERdescriptor_t UE__RequestType_iei_xer_; +extern const TTCN_OERdescriptor_t UE__RequestType_iei_oer_; +extern const TTCN_Typedescriptor_t UE__RequestType_iei_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NAS_CommonTypeDefs.o b/build/Ats_NG_NAS/NAS_CommonTypeDefs.o new file mode 100644 index 0000000000000000000000000000000000000000..9bf21a01e65a2dd10b330fe13b926fdb43abc948 Binary files /dev/null and b/build/Ats_NG_NAS/NAS_CommonTypeDefs.o differ diff --git a/build/Ats_NG_NAS/NAS_EncdecDeclarations.cc b/build/Ats_NG_NAS/NAS_EncdecDeclarations.cc new file mode 100644 index 0000000000000000000000000000000000000000..ecc0c8e00bed18c82741dec0f8ba280519938b1d --- /dev/null +++ b/build/Ats_NG_NAS/NAS_EncdecDeclarations.cc @@ -0,0 +1,65 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NAS_EncdecDeclarations.hh" + +namespace NAS__EncdecDeclarations { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0xea, 0x08, 0x72, 0x4e, 0x12, 0x3b, 0x98, 0x57, 0xe2, 0x72, 0xac, 0xf0, 0x9e, 0xa3, 0x79, 0x53 }; + +/* Global variable definitions */ + +TTCN_Module module_object("NAS_EncdecDeclarations", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NAS_EncdecDeclarations"); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); +} + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_EncdecDeclarations.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_EncdecDeclarations"); +NAS__EncdecDeclarations::init_ttcn3_debugger(); +NAS__CommonTypeDefs::module_object.pre_init_module(); +module_object.add_function("fx_enc_PacketFilterComponent", (genericfunc_t)&fx__enc__PacketFilterComponent, NULL); +module_object.add_function("fx_dec_PacketFilterComponent", (genericfunc_t)&fx__dec__PacketFilterComponent, NULL); +module_object.add_function("fx_enc_QoSParametersList", (genericfunc_t)&fx__enc__QoSParametersList, NULL); +module_object.add_function("fx_dec_QoSParametersList", (genericfunc_t)&fx__dec__QoSParametersList, NULL); +module_object.add_function("fx_enc_EPS_QualityOfService", (genericfunc_t)&fx__enc__EPS__QualityOfService, NULL); +module_object.add_function("fx_dec_EPS_QualityOfService", (genericfunc_t)&fx__dec__EPS__QualityOfService, NULL); +module_object.add_function("fx_enc_TrafficFlowTemplate", (genericfunc_t)&fx__enc__TrafficFlowTemplate, NULL); +module_object.add_function("fx_dec_TrafficFlowTemplate", (genericfunc_t)&fx__dec__TrafficFlowTemplate, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NAS/NAS_EncdecDeclarations.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NAS_EncdecDeclarations"); +NAS__CommonTypeDefs::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NAS_EncdecDeclarations.hh b/build/Ats_NG_NAS/NAS_EncdecDeclarations.hh new file mode 100644 index 0000000000000000000000000000000000000000..504e21e3c7abb8887bba567ee1dd90a7ce63d3a2 --- /dev/null +++ b/build/Ats_NG_NAS/NAS_EncdecDeclarations.hh @@ -0,0 +1,51 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NAS__EncdecDeclarations_HH +#define NAS__EncdecDeclarations_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NAS_CommonTypeDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace NAS__EncdecDeclarations { + +/* Function prototypes */ + +extern BITSTRING fx__enc__PacketFilterComponent(const NAS__CommonTypeDefs::PacketFilterComponent& p); +extern INTEGER fx__dec__PacketFilterComponent(BITSTRING& pdu, NAS__CommonTypeDefs::PacketFilterComponent& p); +extern BITSTRING fx__enc__QoSParametersList(const NAS__CommonTypeDefs::QoSParametersList& p); +extern INTEGER fx__dec__QoSParametersList(BITSTRING& pdu, NAS__CommonTypeDefs::QoSParametersList& p); +extern BITSTRING fx__enc__EPS__QualityOfService(const NAS__CommonTypeDefs::EPS__QualityOfService& p); +extern INTEGER fx__dec__EPS__QualityOfService(BITSTRING& pdu, NAS__CommonTypeDefs::EPS__QualityOfService& p); +extern BITSTRING fx__enc__TrafficFlowTemplate(const NAS__CommonTypeDefs::TrafficFlowTemplate& p); +extern INTEGER fx__dec__TrafficFlowTemplate(BITSTRING& pdu, NAS__CommonTypeDefs::TrafficFlowTemplate& p); + +/* Global variable declarations */ + +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NAS_EncdecDeclarations.o b/build/Ats_NG_NAS/NAS_EncdecDeclarations.o new file mode 100644 index 0000000000000000000000000000000000000000..5782c12d94d7c49037e4c47a83a8ca045cbd27f5 Binary files /dev/null and b/build/Ats_NG_NAS/NAS_EncdecDeclarations.o differ diff --git a/build/Ats_NG_NAS/NG_NAS_Common.cc b/build/Ats_NG_NAS/NG_NAS_Common.cc new file mode 100644 index 0000000000000000000000000000000000000000..6c8228fe47e0dcf49aad837f619921ee1dbff991 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_Common.cc @@ -0,0 +1,7640 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NG_NAS_Common.hh" + +namespace NG__NAS__Common { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Prototypes of static conversion functions */ + +static boolean conv_NG__NAS__TypeDefs_PartialXtdRejectedNSSAIType0_rejectS__NSSAI_NG__NAS__TypeDefs_XtdRejectedS__NSSAI__List(NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List& p_to_v, const NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_rejectS__NSSAI& p_from_v); + +/* Literal string constants */ + +static const unsigned char bs_78_bits[] = { 0 }, +bs_68_bits[] = { 0 }, +bs_54_bits[] = { 0 }, +bs_75_bits[] = { 0, 2 }, +bs_55_bits[] = { 128 }, +bs_56_bits[] = { 64 }, +bs_76_bits[] = { 32 }, +bs_80_bits[] = { 16 }, +bs_71_bits[] = { 240 }, +bs_74_bits[] = { 8 }, +bs_81_bits[] = { 8 }, +bs_82_bits[] = { 40 }, +bs_72_bits[] = { 104 }, +bs_83_bits[] = { 24 }, +bs_57_bits[] = { 4 }, +bs_62_bits[] = { 4 }, +bs_70_bits[] = { 212 }, +bs_1_bits[] = { 116 }, +bs_63_bits[] = { 12 }, +bs_58_bits[] = { 2 }, +bs_64_bits[] = { 2 }, +bs_2_bits[] = { 130 }, +bs_3_bits[] = { 66 }, +bs_4_bits[] = { 194 }, +bs_5_bits[] = { 34 }, +bs_6_bits[] = { 162 }, +bs_7_bits[] = { 98 }, +bs_8_bits[] = { 226 }, +bs_9_bits[] = { 18 }, +bs_69_bits[] = { 146 }, +bs_10_bits[] = { 50 }, +bs_11_bits[] = { 178 }, +bs_12_bits[] = { 114 }, +bs_13_bits[] = { 242 }, +bs_65_bits[] = { 10 }, +bs_14_bits[] = { 10 }, +bs_15_bits[] = { 138 }, +bs_16_bits[] = { 74 }, +bs_17_bits[] = { 42 }, +bs_18_bits[] = { 170 }, +bs_19_bits[] = { 106 }, +bs_20_bits[] = { 234 }, +bs_21_bits[] = { 26 }, +bs_22_bits[] = { 154 }, +bs_23_bits[] = { 90 }, +bs_24_bits[] = { 218 }, +bs_25_bits[] = { 58 }, +bs_26_bits[] = { 186 }, +bs_27_bits[] = { 122 }, +bs_28_bits[] = { 250 }, +bs_59_bits[] = { 6 }, +bs_29_bits[] = { 38 }, +bs_30_bits[] = { 166 }, +bs_31_bits[] = { 102 }, +bs_32_bits[] = { 230 }, +bs_33_bits[] = { 22 }, +bs_0_bits[] = { 126 }, +bs_79_bits[] = { 1 }, +bs_60_bits[] = { 1 }, +bs_66_bits[] = { 1 }, +bs_61_bits[] = { 5 }, +bs_50_bits[] = { 101 }, +bs_51_bits[] = { 229 }, +bs_52_bits[] = { 21 }, +bs_53_bits[] = { 149 }, +bs_73_bits[] = { 3 }, +bs_34_bits[] = { 131 }, +bs_35_bits[] = { 67 }, +bs_67_bits[] = { 67, 44, 106, 30 }, +bs_36_bits[] = { 195 }, +bs_37_bits[] = { 163 }, +bs_38_bits[] = { 99 }, +bs_39_bits[] = { 227 }, +bs_40_bits[] = { 147 }, +bs_41_bits[] = { 83 }, +bs_42_bits[] = { 211 }, +bs_43_bits[] = { 51 }, +bs_44_bits[] = { 179 }, +bs_45_bits[] = { 139 }, +bs_46_bits[] = { 75 }, +bs_47_bits[] = { 203 }, +bs_48_bits[] = { 43 }, +bs_49_bits[] = { 107 }, +bs_77_bits[] = { 15 }; +static const BITSTRING bs_78(1, bs_78_bits), +bs_68(3, bs_68_bits), +bs_54(8, bs_54_bits), +bs_75(10, bs_75_bits), +bs_55(8, bs_55_bits), +bs_56(8, bs_56_bits), +bs_76(6, bs_76_bits), +bs_80(6, bs_80_bits), +bs_71(8, bs_71_bits), +bs_74(4, bs_74_bits), +bs_81(6, bs_81_bits), +bs_82(6, bs_82_bits), +bs_72(8, bs_72_bits), +bs_83(6, bs_83_bits), +bs_57(3, bs_57_bits), +bs_62(4, bs_62_bits), +bs_70(8, bs_70_bits), +bs_1(8, bs_1_bits), +bs_63(4, bs_63_bits), +bs_58(3, bs_58_bits), +bs_64(4, bs_64_bits), +bs_2(8, bs_2_bits), +bs_3(8, bs_3_bits), +bs_4(8, bs_4_bits), +bs_5(8, bs_5_bits), +bs_6(8, bs_6_bits), +bs_7(8, bs_7_bits), +bs_8(8, bs_8_bits), +bs_9(8, bs_9_bits), +bs_69(8, bs_69_bits), +bs_10(8, bs_10_bits), +bs_11(8, bs_11_bits), +bs_12(8, bs_12_bits), +bs_13(8, bs_13_bits), +bs_65(4, bs_65_bits), +bs_14(8, bs_14_bits), +bs_15(8, bs_15_bits), +bs_16(8, bs_16_bits), +bs_17(8, bs_17_bits), +bs_18(8, bs_18_bits), +bs_19(8, bs_19_bits), +bs_20(8, bs_20_bits), +bs_21(8, bs_21_bits), +bs_22(8, bs_22_bits), +bs_23(8, bs_23_bits), +bs_24(8, bs_24_bits), +bs_25(8, bs_25_bits), +bs_26(8, bs_26_bits), +bs_27(8, bs_27_bits), +bs_28(8, bs_28_bits), +bs_59(3, bs_59_bits), +bs_29(8, bs_29_bits), +bs_30(8, bs_30_bits), +bs_31(8, bs_31_bits), +bs_32(8, bs_32_bits), +bs_33(8, bs_33_bits), +bs_0(8, bs_0_bits), +bs_79(1, bs_79_bits), +bs_60(3, bs_60_bits), +bs_66(4, bs_66_bits), +bs_61(3, bs_61_bits), +bs_50(8, bs_50_bits), +bs_51(8, bs_51_bits), +bs_52(8, bs_52_bits), +bs_53(8, bs_53_bits), +bs_73(2, bs_73_bits), +bs_34(8, bs_34_bits), +bs_35(8, bs_35_bits), +bs_67(32, bs_67_bits), +bs_36(8, bs_36_bits), +bs_37(8, bs_37_bits), +bs_38(8, bs_38_bits), +bs_39(8, bs_39_bits), +bs_40(8, bs_40_bits), +bs_41(8, bs_41_bits), +bs_42(8, bs_42_bits), +bs_43(8, bs_43_bits), +bs_44(8, bs_44_bits), +bs_45(8, bs_45_bits), +bs_46(8, bs_46_bits), +bs_47(8, bs_47_bits), +bs_48(8, bs_48_bits), +bs_49(8, bs_49_bits), +bs_77(4, bs_77_bits); +static const unsigned char os_7_octets[] = { 0, 1 }, +os_0_octets[] = { 1 }, +os_1_octets[] = { 2 }, +os_2_octets[] = { 3 }, +os_3_octets[] = { 4 }, +os_4_octets[] = { 5 }, +os_5_octets[] = { 6 }, +os_6_octets[] = { 7 }, +os_8_octets[] = { 15 }, +os_12_octets[] = { 15, 128, 240, 0 }, +os_10_octets[] = { 33 }, +os_9_octets[] = { 100 }, +os_11_octets[] = { 169 }; +static const OCTETSTRING os_7(2, os_7_octets), +os_0(1, os_0_octets), +os_1(1, os_1_octets), +os_2(1, os_2_octets), +os_3(1, os_3_octets), +os_4(1, os_4_octets), +os_5(1, os_5_octets), +os_6(1, os_6_octets), +os_8(1, os_8_octets), +os_12(4, os_12_octets), +os_10(1, os_10_octets), +os_9(1, os_9_octets), +os_11(1, os_11_octets); +static const CHARSTRING cs_0(0, NULL), +cs_2('#'), +cs_1('.'), +cs_14(58, "/home/yanng/dev/nas/ttcn/Lib3GPP/NG_NAS/NG_NAS_Common.ttcn"), +cs_12(9, "10.10.10."), +cs_21(11, "192.168.0.1"), +cs_10('2'), +cs_5('3'), +cs_13(2, "30"), +cs_11(2, "3a"), +cs_6('4'), +cs_7(2, "4a"), +cs_8('5'), +cs_9('6'), +cs_3(':'), +cs_4(';'), +cs_16(39, "C0C0:C0C0:C0C0:C002:C0C0:C0C0:C0C0:C0C0"), +cs_17(39, "C0C0:C0C0:C0C0:C003:C0C0:C0C0:C0C0:C0C0"), +cs_19(39, "C0C0:C0C0:C0C0:C004:C0C0:C0C0:C0C0:C0C0"), +cs_20(39, "C0C0:C0C0:C0C0:C005:C0C0:C0C0:C0C0:C0C0"), +cs_18(39, "C0C0:C0C0:C0C0:C030:C0C0:C0C0:C0C0:C0C0"), +cs_23(31, "Neither IPv4 nor IPv6 supported"), +cs_22(9, "fe80::1:1"), +cs_15(25, "unsupported packet filter"); +static const unsigned char module_checksum[] = { 0xc1, 0x73, 0x89, 0x79, 0xc5, 0x7c, 0xdf, 0xda, 0x9c, 0xd3, 0xc0, 0x88, 0x17, 0x56, 0x50, 0x90 }; + +/* Global variable definitions */ + +// No XER for GMM__MobilityInfo__Type +const TTCN_Typedescriptor_t GMM__MobilityInfo__Type_descr_ = { "@NG_NAS_Common.GMM_MobilityInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GSM__MobilityInfo__Type_SessionId_xer_ = { {"SessionId>\n", "SessionId>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int GSM__MobilityInfo__Type_SessionId_oer_ext_arr_[0] = {}; +const int GSM__MobilityInfo__Type_SessionId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t GSM__MobilityInfo__Type_SessionId_oer_ = { -1, TRUE, 1, FALSE, 0, 0, GSM__MobilityInfo__Type_SessionId_oer_ext_arr_, 0, GSM__MobilityInfo__Type_SessionId_oer_p_}; +const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_SessionId_descr_ = { "@NG_NAS_Common.GSM_MobilityInfo_Type.SessionId", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &GSM__MobilityInfo__Type_SessionId_xer_, &OCTETSTRING_json_, &GSM__MobilityInfo__Type_SessionId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GSM__MobilityInfo__Type_PTI_xer_ = { {"PTI>\n", "PTI>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int GSM__MobilityInfo__Type_PTI_oer_ext_arr_[0] = {}; +const int GSM__MobilityInfo__Type_PTI_oer_p_[0] = {}; +const TTCN_OERdescriptor_t GSM__MobilityInfo__Type_PTI_oer_ = { -1, TRUE, 1, FALSE, 0, 0, GSM__MobilityInfo__Type_PTI_oer_ext_arr_, 0, GSM__MobilityInfo__Type_PTI_oer_p_}; +const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_PTI_descr_ = { "@NG_NAS_Common.GSM_MobilityInfo_Type.PTI", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &GSM__MobilityInfo__Type_PTI_xer_, &OCTETSTRING_json_, &GSM__MobilityInfo__Type_PTI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for GSM__MobilityInfo__Type +const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_descr_ = { "@NG_NAS_Common.GSM_MobilityInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GSM__MobilityInfo__Type_SessionType_xer_ = { {"SessionType>\n", "SessionType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GSM__MobilityInfo__Type_SessionType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_SessionType_descr_ = { "@NG_NAS_Common.GSM_MobilityInfo_Type.SessionType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &GSM__MobilityInfo__Type_SessionType_xer_, &BITSTRING_json_, &GSM__MobilityInfo__Type_SessionType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GSM__MobilityInfo__Type_EPS__Bearer_xer_ = { {"EPS_Bearer>\n", "EPS_Bearer>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GSM__MobilityInfo__Type_EPS__Bearer_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_EPS__Bearer_descr_ = { "@NG_NAS_Common.GSM_MobilityInfo_Type.EPS_Bearer", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &GSM__MobilityInfo__Type_EPS__Bearer_xer_, &INTEGER_json_, &GSM__MobilityInfo__Type_EPS__Bearer_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDUSessionInfoList__Type +const TTCN_Typedescriptor_t PDUSessionInfoList__Type_descr_ = { "@NG_NAS_Common.PDUSessionInfoList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &GSM__MobilityInfo__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DeleteNSSAI__Type +const TTCN_Typedescriptor_t DeleteNSSAI__Type_descr_ = { "@NG_NAS_Common.DeleteNSSAI_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +BITSTRING const_tsc__EPD__GMM; +const BITSTRING& tsc__EPD__GMM = const_tsc__EPD__GMM; +BITSTRING const_tsc__EPD__GSM; +const BITSTRING& tsc__EPD__GSM = const_tsc__EPD__GSM; +BITSTRING const_tsc__MT__NG__RegistrationRequest; +const BITSTRING& tsc__MT__NG__RegistrationRequest = const_tsc__MT__NG__RegistrationRequest; +BITSTRING const_tsc__MT__NG__RegistrationAccept; +const BITSTRING& tsc__MT__NG__RegistrationAccept = const_tsc__MT__NG__RegistrationAccept; +BITSTRING const_tsc__MT__NG__RegistrationComplete; +const BITSTRING& tsc__MT__NG__RegistrationComplete = const_tsc__MT__NG__RegistrationComplete; +BITSTRING const_tsc__MT__NG__RegistrationReject; +const BITSTRING& tsc__MT__NG__RegistrationReject = const_tsc__MT__NG__RegistrationReject; +BITSTRING const_tsc__MT__NG__DeregistrationRequest__MO; +const BITSTRING& tsc__MT__NG__DeregistrationRequest__MO = const_tsc__MT__NG__DeregistrationRequest__MO; +BITSTRING const_tsc__MT__NG__DeregistrationAccept__MO; +const BITSTRING& tsc__MT__NG__DeregistrationAccept__MO = const_tsc__MT__NG__DeregistrationAccept__MO; +BITSTRING const_tsc__MT__NG__DeregistrationRequest__MT; +const BITSTRING& tsc__MT__NG__DeregistrationRequest__MT = const_tsc__MT__NG__DeregistrationRequest__MT; +BITSTRING const_tsc__MT__NG__DeregistrationAccept__MT; +const BITSTRING& tsc__MT__NG__DeregistrationAccept__MT = const_tsc__MT__NG__DeregistrationAccept__MT; +BITSTRING const_tsc__MT__NG__ServiceRequest; +const BITSTRING& tsc__MT__NG__ServiceRequest = const_tsc__MT__NG__ServiceRequest; +BITSTRING const_tsc__MT__NG__ServiceReject; +const BITSTRING& tsc__MT__NG__ServiceReject = const_tsc__MT__NG__ServiceReject; +BITSTRING const_tsc__MT__NG__ServiceAccept; +const BITSTRING& tsc__MT__NG__ServiceAccept = const_tsc__MT__NG__ServiceAccept; +BITSTRING const_tsc__MT__NG__CP__Service__Request; +const BITSTRING& tsc__MT__NG__CP__Service__Request = const_tsc__MT__NG__CP__Service__Request; +BITSTRING const_tsc__MT__NG__NetworkSliceSpecificAuthenticationCommand; +const BITSTRING& tsc__MT__NG__NetworkSliceSpecificAuthenticationCommand = const_tsc__MT__NG__NetworkSliceSpecificAuthenticationCommand; +BITSTRING const_tsc__MT__NG__NetworkSliceSpecificAuthenticationComplete; +const BITSTRING& tsc__MT__NG__NetworkSliceSpecificAuthenticationComplete = const_tsc__MT__NG__NetworkSliceSpecificAuthenticationComplete; +BITSTRING const_tsc__MT__NG__NetworkSliceSpecificAuthenticationResult; +const BITSTRING& tsc__MT__NG__NetworkSliceSpecificAuthenticationResult = const_tsc__MT__NG__NetworkSliceSpecificAuthenticationResult; +BITSTRING const_tsc__MT__NG__ConfigurationUpdateCommand; +const BITSTRING& tsc__MT__NG__ConfigurationUpdateCommand = const_tsc__MT__NG__ConfigurationUpdateCommand; +BITSTRING const_tsc__MT__NG__ConfigurationUpdateComplete; +const BITSTRING& tsc__MT__NG__ConfigurationUpdateComplete = const_tsc__MT__NG__ConfigurationUpdateComplete; +BITSTRING const_tsc__MT__NG__AuthenticationRequest; +const BITSTRING& tsc__MT__NG__AuthenticationRequest = const_tsc__MT__NG__AuthenticationRequest; +BITSTRING const_tsc__MT__NG__AuthenticationResponse; +const BITSTRING& tsc__MT__NG__AuthenticationResponse = const_tsc__MT__NG__AuthenticationResponse; +BITSTRING const_tsc__MT__NG__AuthenticationReject; +const BITSTRING& tsc__MT__NG__AuthenticationReject = const_tsc__MT__NG__AuthenticationReject; +BITSTRING const_tsc__MT__NG__AuthenticationFailure; +const BITSTRING& tsc__MT__NG__AuthenticationFailure = const_tsc__MT__NG__AuthenticationFailure; +BITSTRING const_tsc__MT__NG__AuthenticationResult; +const BITSTRING& tsc__MT__NG__AuthenticationResult = const_tsc__MT__NG__AuthenticationResult; +BITSTRING const_tsc__MT__NG__IdentityRequest; +const BITSTRING& tsc__MT__NG__IdentityRequest = const_tsc__MT__NG__IdentityRequest; +BITSTRING const_tsc__MT__NG__IdentityResponse; +const BITSTRING& tsc__MT__NG__IdentityResponse = const_tsc__MT__NG__IdentityResponse; +BITSTRING const_tsc__MT__NG__SecurityModeCommand; +const BITSTRING& tsc__MT__NG__SecurityModeCommand = const_tsc__MT__NG__SecurityModeCommand; +BITSTRING const_tsc__MT__NG__SecurityModeComplete; +const BITSTRING& tsc__MT__NG__SecurityModeComplete = const_tsc__MT__NG__SecurityModeComplete; +BITSTRING const_tsc__MT__NG__SecurityModeReject; +const BITSTRING& tsc__MT__NG__SecurityModeReject = const_tsc__MT__NG__SecurityModeReject; +BITSTRING const_tsc__MT__NG__GMM__Status; +const BITSTRING& tsc__MT__NG__GMM__Status = const_tsc__MT__NG__GMM__Status; +BITSTRING const_tsc__MT__NG__Notification; +const BITSTRING& tsc__MT__NG__Notification = const_tsc__MT__NG__Notification; +BITSTRING const_tsc__MT__NG__NotificationResponse; +const BITSTRING& tsc__MT__NG__NotificationResponse = const_tsc__MT__NG__NotificationResponse; +BITSTRING const_tsc__MT__NG__UL__NASTransport; +const BITSTRING& tsc__MT__NG__UL__NASTransport = const_tsc__MT__NG__UL__NASTransport; +BITSTRING const_tsc__MT__NG__DL__NASTransport; +const BITSTRING& tsc__MT__NG__DL__NASTransport = const_tsc__MT__NG__DL__NASTransport; +BITSTRING const_tsc__MT__NG__PDUSessionEstablishmentRequest; +const BITSTRING& tsc__MT__NG__PDUSessionEstablishmentRequest = const_tsc__MT__NG__PDUSessionEstablishmentRequest; +BITSTRING const_tsc__MT__NG__PDUSessionEstablishmentAccept; +const BITSTRING& tsc__MT__NG__PDUSessionEstablishmentAccept = const_tsc__MT__NG__PDUSessionEstablishmentAccept; +BITSTRING const_tsc__MT__NG__PDUSessionEstablishmentReject; +const BITSTRING& tsc__MT__NG__PDUSessionEstablishmentReject = const_tsc__MT__NG__PDUSessionEstablishmentReject; +BITSTRING const_tsc__MT__NG__PDUSessionAuthenticationCommand; +const BITSTRING& tsc__MT__NG__PDUSessionAuthenticationCommand = const_tsc__MT__NG__PDUSessionAuthenticationCommand; +BITSTRING const_tsc__MT__NG__PDUSessionAuthenticationComplete; +const BITSTRING& tsc__MT__NG__PDUSessionAuthenticationComplete = const_tsc__MT__NG__PDUSessionAuthenticationComplete; +BITSTRING const_tsc__MT__NG__PDUSessionAuthenticationResult; +const BITSTRING& tsc__MT__NG__PDUSessionAuthenticationResult = const_tsc__MT__NG__PDUSessionAuthenticationResult; +BITSTRING const_tsc__MT__NG__PDUSessionModificationRequest; +const BITSTRING& tsc__MT__NG__PDUSessionModificationRequest = const_tsc__MT__NG__PDUSessionModificationRequest; +BITSTRING const_tsc__MT__NG__PDUSessionModificationReject; +const BITSTRING& tsc__MT__NG__PDUSessionModificationReject = const_tsc__MT__NG__PDUSessionModificationReject; +BITSTRING const_tsc__MT__NG__PDUSessionModificationCommand; +const BITSTRING& tsc__MT__NG__PDUSessionModificationCommand = const_tsc__MT__NG__PDUSessionModificationCommand; +BITSTRING const_tsc__MT__NG__PDUSessionModificationComplete; +const BITSTRING& tsc__MT__NG__PDUSessionModificationComplete = const_tsc__MT__NG__PDUSessionModificationComplete; +BITSTRING const_tsc__MT__NG__PDUSessionModificationCommandReject; +const BITSTRING& tsc__MT__NG__PDUSessionModificationCommandReject = const_tsc__MT__NG__PDUSessionModificationCommandReject; +BITSTRING const_tsc__MT__NG__PDUSessionReleaseRequest; +const BITSTRING& tsc__MT__NG__PDUSessionReleaseRequest = const_tsc__MT__NG__PDUSessionReleaseRequest; +BITSTRING const_tsc__MT__NG__PDUSessionReleaseReject; +const BITSTRING& tsc__MT__NG__PDUSessionReleaseReject = const_tsc__MT__NG__PDUSessionReleaseReject; +BITSTRING const_tsc__MT__NG__PDUSessionReleaseCommand; +const BITSTRING& tsc__MT__NG__PDUSessionReleaseCommand = const_tsc__MT__NG__PDUSessionReleaseCommand; +BITSTRING const_tsc__MT__NG__PDUSessionReleaseComplete; +const BITSTRING& tsc__MT__NG__PDUSessionReleaseComplete = const_tsc__MT__NG__PDUSessionReleaseComplete; +BITSTRING const_tsc__MT__NG__GSM__Status; +const BITSTRING& tsc__MT__NG__GSM__Status = const_tsc__MT__NG__GSM__Status; +BITSTRING const_tsc__MsgType__NSSAI__DeleteReq; +const BITSTRING& tsc__MsgType__NSSAI__DeleteReq = const_tsc__MsgType__NSSAI__DeleteReq; +BITSTRING const_tsc__MsgType__NSSAI__DeleteResp; +const BITSTRING& tsc__MsgType__NSSAI__DeleteResp = const_tsc__MsgType__NSSAI__DeleteResp; +BITSTRING const_tsc__MsgType__SetUAIReq; +const BITSTRING& tsc__MsgType__SetUAIReq = const_tsc__MsgType__SetUAIReq; +BITSTRING const_tsc__MsgType__SetUAIResp; +const BITSTRING& tsc__MsgType__SetUAIResp = const_tsc__MsgType__SetUAIResp; +BITSTRING const_tsc__DeleteNSSAI__DefaultConfiguredNSSAI; +const BITSTRING& tsc__DeleteNSSAI__DefaultConfiguredNSSAI = const_tsc__DeleteNSSAI__DefaultConfiguredNSSAI; +BITSTRING const_tsc__DeleteNSSAI__ConfiguredNSSAI; +const BITSTRING& tsc__DeleteNSSAI__ConfiguredNSSAI = const_tsc__DeleteNSSAI__ConfiguredNSSAI; +BITSTRING const_tsc__DeleteNSSAI__AllowedNSSAI; +const BITSTRING& tsc__DeleteNSSAI__AllowedNSSAI = const_tsc__DeleteNSSAI__AllowedNSSAI; +// No XER for TypeOfRegistration__Type +const TTCN_Typedescriptor_t TypeOfRegistration__Type_descr_ = { "@NG_NAS_Common.TypeOfRegistration_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RegistrationAccessType +const TTCN_Typedescriptor_t RegistrationAccessType_descr_ = { "@NG_NAS_Common.RegistrationAccessType", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__ALL__STATE__Type +const TTCN_Typedescriptor_t NG__ALL__STATE__Type_descr_ = { "@NG_NAS_Common.NG_ALL_STATE_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& NG__STATE__Type_descr_ = NG__ALL__STATE__Type_descr_; +BITSTRING const_tsc__NG__RegistrationInitial; +const BITSTRING& tsc__NG__RegistrationInitial = const_tsc__NG__RegistrationInitial; +BITSTRING const_tsc__NG__RegistrationMobility; +const BITSTRING& tsc__NG__RegistrationMobility = const_tsc__NG__RegistrationMobility; +BITSTRING const_tsc__NG__RegistrationPeriodic; +const BITSTRING& tsc__NG__RegistrationPeriodic = const_tsc__NG__RegistrationPeriodic; +BITSTRING const_tsc__NG__RegistrationEmergency; +const BITSTRING& tsc__NG__RegistrationEmergency = const_tsc__NG__RegistrationEmergency; +BITSTRING const_tsc__NG__RegistrationSNPN; +const BITSTRING& tsc__NG__RegistrationSNPN = const_tsc__NG__RegistrationSNPN; +BITSTRING const_tsc__NG__RegResult__3GPP; +const BITSTRING& tsc__NG__RegResult__3GPP = const_tsc__NG__RegResult__3GPP; +BITSTRING const_tsc__NG__RegResult__Non3GPP; +const BITSTRING& tsc__NG__RegResult__Non3GPP = const_tsc__NG__RegResult__Non3GPP; +BITSTRING const_tsc__NG__RegResult__Both; +const BITSTRING& tsc__NG__RegResult__Both = const_tsc__NG__RegResult__Both; +BITSTRING const_tsc__PayloadContainerSMSMsg; +const BITSTRING& tsc__PayloadContainerSMSMsg = const_tsc__PayloadContainerSMSMsg; +BITSTRING const_tsc__PayloadContainerLPPMsg; +const BITSTRING& tsc__PayloadContainerLPPMsg = const_tsc__PayloadContainerLPPMsg; +BITSTRING const_tsc__PayloadContainerSORMsg; +const BITSTRING& tsc__PayloadContainerSORMsg = const_tsc__PayloadContainerSORMsg; +BITSTRING const_tsc__PayloadContainerUEPolicyMsg; +const BITSTRING& tsc__PayloadContainerUEPolicyMsg = const_tsc__PayloadContainerUEPolicyMsg; +BITSTRING const_tsc__PayloadContainerCIoTUserData; +const BITSTRING& tsc__PayloadContainerCIoTUserData = const_tsc__PayloadContainerCIoTUserData; +OCTETSTRING const_tsc__QoSFlowParameter__5QI; +const OCTETSTRING& tsc__QoSFlowParameter__5QI = const_tsc__QoSFlowParameter__5QI; +OCTETSTRING const_tsc__QoSFlowParameter__GFBR__UL; +const OCTETSTRING& tsc__QoSFlowParameter__GFBR__UL = const_tsc__QoSFlowParameter__GFBR__UL; +OCTETSTRING const_tsc__QoSFlowParameter__GFBR__DL; +const OCTETSTRING& tsc__QoSFlowParameter__GFBR__DL = const_tsc__QoSFlowParameter__GFBR__DL; +OCTETSTRING const_tsc__QoSFlowParameter__MFBR__UL; +const OCTETSTRING& tsc__QoSFlowParameter__MFBR__UL = const_tsc__QoSFlowParameter__MFBR__UL; +OCTETSTRING const_tsc__QoSFlowParameter__MFBR__DL; +const OCTETSTRING& tsc__QoSFlowParameter__MFBR__DL = const_tsc__QoSFlowParameter__MFBR__DL; +OCTETSTRING const_tsc__QoSFlowParameter__AvWindow; +const OCTETSTRING& tsc__QoSFlowParameter__AvWindow = const_tsc__QoSFlowParameter__AvWindow; +OCTETSTRING const_tsc__QoSFlowParameter__EPSBearerId; +const OCTETSTRING& tsc__QoSFlowParameter__EPSBearerId = const_tsc__QoSFlowParameter__EPSBearerId; +// No XER for NG__NAS__NumOfPLMN__Type +const TTCN_Typedescriptor_t NG__NAS__NumOfPLMN__Type_descr_ = { "@NG_NAS_Common.NG_NAS_NumOfPLMN_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +BITSTRING const_tsc__NG__TMSI1; +const BITSTRING& tsc__NG__TMSI1 = const_tsc__NG__TMSI1; +BITSTRING const_tsc__IdType__NG__Noidentity; +const BITSTRING& tsc__IdType__NG__Noidentity = const_tsc__IdType__NG__Noidentity; +BITSTRING const_tsc__IdType__NG__SUCI; +const BITSTRING& tsc__IdType__NG__SUCI = const_tsc__IdType__NG__SUCI; +BITSTRING const_tsc__IdType__NG__GUTI; +const BITSTRING& tsc__IdType__NG__GUTI = const_tsc__IdType__NG__GUTI; +BITSTRING const_tsc__IdType__NG__IMEI; +const BITSTRING& tsc__IdType__NG__IMEI = const_tsc__IdType__NG__IMEI; +BITSTRING const_tsc__IdType__NG__STMSI; +const BITSTRING& tsc__IdType__NG__STMSI = const_tsc__IdType__NG__STMSI; +BITSTRING const_tsc__IdType__NG__IMEISV; +const BITSTRING& tsc__IdType__NG__IMEISV = const_tsc__IdType__NG__IMEISV; +BITSTRING const_tsc__NR5GCCause__ServNetNotAuthorized; +const BITSTRING& tsc__NR5GCCause__ServNetNotAuthorized = const_tsc__NR5GCCause__ServNetNotAuthorized; +BITSTRING const_tsc__NR5GCCause__InvalidPDUSessionIdentity; +const BITSTRING& tsc__NR5GCCause__InvalidPDUSessionIdentity = const_tsc__NR5GCCause__InvalidPDUSessionIdentity; +BITSTRING const_tsc__NR5GCCause__NoSuitableCellsInTA; +const BITSTRING& tsc__NR5GCCause__NoSuitableCellsInTA = const_tsc__NR5GCCause__NoSuitableCellsInTA; +BITSTRING const_tsc__NR5GCCause__Congestion; +const BITSTRING& tsc__NR5GCCause__Congestion = const_tsc__NR5GCCause__Congestion; +const XERdescriptor_t NG__NAS__GutiParameters__Type_AMF__RegionId_xer_ = { {"AMF_RegionId>\n", "AMF_RegionId>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__GutiParameters__Type_AMF__RegionId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_AMF__RegionId_descr_ = { "@NG_NAS_Common.NG_NAS_GutiParameters_Type.AMF_RegionId", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NAS__GutiParameters__Type_AMF__RegionId_xer_, &BITSTRING_json_, &NG__NAS__GutiParameters__Type_AMF__RegionId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__GutiParameters__Type_AMF__SetId_xer_ = { {"AMF_SetId>\n", "AMF_SetId>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__GutiParameters__Type_AMF__SetId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_AMF__SetId_descr_ = { "@NG_NAS_Common.NG_NAS_GutiParameters_Type.AMF_SetId", &BITSTRING_ber_, &CommonDefs::B10__Type_raw_, NULL, &NG__NAS__GutiParameters__Type_AMF__SetId_xer_, &BITSTRING_json_, &NG__NAS__GutiParameters__Type_AMF__SetId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__GutiParameters__Type_AMF__Pointer_xer_ = { {"AMF_Pointer>\n", "AMF_Pointer>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__GutiParameters__Type_AMF__Pointer_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_AMF__Pointer_descr_ = { "@NG_NAS_Common.NG_NAS_GutiParameters_Type.AMF_Pointer", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &NG__NAS__GutiParameters__Type_AMF__Pointer_xer_, &BITSTRING_json_, &NG__NAS__GutiParameters__Type_AMF__Pointer_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__GutiParameters__Type_NG__TMSI_xer_ = { {"NG_TMSI>\n", "NG_TMSI>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__GutiParameters__Type_NG__TMSI_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_NG__TMSI_descr_ = { "@NG_NAS_Common.NG_NAS_GutiParameters_Type.NG_TMSI", &BITSTRING_ber_, &CommonDefs::B32__Type_raw_, NULL, &NG__NAS__GutiParameters__Type_NG__TMSI_xer_, &BITSTRING_json_, &NG__NAS__GutiParameters__Type_NG__TMSI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__GutiParameters__Type +const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_descr_ = { "@NG_NAS_Common.NG_NAS_GutiParameters_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +Erroneous_descriptor_t* template_cs__PacketFilterList__RemoteAddress_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__QoS__RuleRemoteAccess_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__NAS__GutiParameters_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__MobileIdentity__Guti_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__MobileIdentity__STMSI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__MobileIdentity__TypeOfId_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__MobileIdentitySUCI_err_descr_ptr = NULL; +NG__NAS__TypeDefs::NG__MobileIdentity_template template_cr__NG__MobileIdentityNoIdentity; +const NG__NAS__TypeDefs::NG__MobileIdentity_template& cr__NG__MobileIdentityNoIdentity = template_cr__NG__MobileIdentityNoIdentity; +TTCN_Module module_object("NG_NAS_Common", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_NG_NAS_Common(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "DeleteNSSAI_Type")) { + ((const DeleteNSSAI__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DeleteNSSAI_Type template")) { + ((const DeleteNSSAI__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GMM_MobilityInfo_Type")) { + ((const GMM__MobilityInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GMM_MobilityInfo_Type template")) { + ((const GMM__MobilityInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GSM_MobilityInfo_Type")) { + ((const GSM__MobilityInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GSM_MobilityInfo_Type template")) { + ((const GSM__MobilityInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_ALL_STATE_Type")) { + ((const NG__ALL__STATE__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_ALL_STATE_Type template")) { + ((const NG__ALL__STATE__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_GutiParameters_Type")) { + ((const NG__NAS__GutiParameters__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_GutiParameters_Type template")) { + ((const NG__NAS__GutiParameters__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_NumOfPLMN_Type")) { + ((const NG__NAS__NumOfPLMN__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_NumOfPLMN_Type template")) { + ((const NG__NAS__NumOfPLMN__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDUSessionInfoList_Type")) { + ((const PDUSessionInfoList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDUSessionInfoList_Type template")) { + ((const PDUSessionInfoList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RegistrationAccessType")) { + ((const RegistrationAccessType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RegistrationAccessType template")) { + ((const RegistrationAccessType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TypeOfRegistration_Type")) { + ((const TypeOfRegistration__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TypeOfRegistration_Type template")) { + ((const TypeOfRegistration__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_NG_NAS_Common(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "DeleteNSSAI_Type")) { + ((DeleteNSSAI__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DeleteNSSAI_Type template")) { + ((DeleteNSSAI__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GMM_MobilityInfo_Type")) { + ((GMM__MobilityInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GMM_MobilityInfo_Type template")) { + ((GMM__MobilityInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GSM_MobilityInfo_Type")) { + ((GSM__MobilityInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GSM_MobilityInfo_Type template")) { + ((GSM__MobilityInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_ALL_STATE_Type")) { + ((NG__ALL__STATE__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_ALL_STATE_Type template")) { + ((NG__ALL__STATE__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_GutiParameters_Type")) { + ((NG__NAS__GutiParameters__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_GutiParameters_Type template")) { + ((NG__NAS__GutiParameters__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_NumOfPLMN_Type")) { + ((NG__NAS__NumOfPLMN__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_NumOfPLMN_Type template")) { + ((NG__NAS__NumOfPLMN__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDUSessionInfoList_Type")) { + ((PDUSessionInfoList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDUSessionInfoList_Type template")) { + ((PDUSessionInfoList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RegistrationAccessType")) { + ((RegistrationAccessType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RegistrationAccessType template")) { + ((RegistrationAccessType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TypeOfRegistration_Type")) { + ((TypeOfRegistration__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TypeOfRegistration_Type template")) { + ((TypeOfRegistration__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NG_NAS_Common"); + global_scope->add_variable(&cr__NG__MobileIdentityNoIdentity, "cr_NG_MobileIdentityNoIdentity", "NG_MobileIdentity template", "NG_NAS_Common", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&tsc__DeleteNSSAI__AllowedNSSAI, "tsc_DeleteNSSAI_AllowedNSSAI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__DeleteNSSAI__ConfiguredNSSAI, "tsc_DeleteNSSAI_ConfiguredNSSAI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__DeleteNSSAI__DefaultConfiguredNSSAI, "tsc_DeleteNSSAI_DefaultConfiguredNSSAI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__EPD__GMM, "tsc_EPD_GMM", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__EPD__GSM, "tsc_EPD_GSM", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__NG__GUTI, "tsc_IdType_NG_GUTI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__NG__IMEI, "tsc_IdType_NG_IMEI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__NG__IMEISV, "tsc_IdType_NG_IMEISV", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__NG__Noidentity, "tsc_IdType_NG_Noidentity", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__NG__STMSI, "tsc_IdType_NG_STMSI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__IdType__NG__SUCI, "tsc_IdType_NG_SUCI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__AuthenticationFailure, "tsc_MT_NG_AuthenticationFailure", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__AuthenticationReject, "tsc_MT_NG_AuthenticationReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__AuthenticationRequest, "tsc_MT_NG_AuthenticationRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__AuthenticationResponse, "tsc_MT_NG_AuthenticationResponse", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__AuthenticationResult, "tsc_MT_NG_AuthenticationResult", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__CP__Service__Request, "tsc_MT_NG_CP_Service_Request", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__ConfigurationUpdateCommand, "tsc_MT_NG_ConfigurationUpdateCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__ConfigurationUpdateComplete, "tsc_MT_NG_ConfigurationUpdateComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__DL__NASTransport, "tsc_MT_NG_DL_NASTransport", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__DeregistrationAccept__MO, "tsc_MT_NG_DeregistrationAccept_MO", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__DeregistrationAccept__MT, "tsc_MT_NG_DeregistrationAccept_MT", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__DeregistrationRequest__MO, "tsc_MT_NG_DeregistrationRequest_MO", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__DeregistrationRequest__MT, "tsc_MT_NG_DeregistrationRequest_MT", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__GMM__Status, "tsc_MT_NG_GMM_Status", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__GSM__Status, "tsc_MT_NG_GSM_Status", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__IdentityRequest, "tsc_MT_NG_IdentityRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__IdentityResponse, "tsc_MT_NG_IdentityResponse", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__NetworkSliceSpecificAuthenticationCommand, "tsc_MT_NG_NetworkSliceSpecificAuthenticationCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__NetworkSliceSpecificAuthenticationComplete, "tsc_MT_NG_NetworkSliceSpecificAuthenticationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__NetworkSliceSpecificAuthenticationResult, "tsc_MT_NG_NetworkSliceSpecificAuthenticationResult", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__Notification, "tsc_MT_NG_Notification", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__NotificationResponse, "tsc_MT_NG_NotificationResponse", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionAuthenticationCommand, "tsc_MT_NG_PDUSessionAuthenticationCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionAuthenticationComplete, "tsc_MT_NG_PDUSessionAuthenticationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionAuthenticationResult, "tsc_MT_NG_PDUSessionAuthenticationResult", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionEstablishmentAccept, "tsc_MT_NG_PDUSessionEstablishmentAccept", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionEstablishmentReject, "tsc_MT_NG_PDUSessionEstablishmentReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionEstablishmentRequest, "tsc_MT_NG_PDUSessionEstablishmentRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionModificationCommand, "tsc_MT_NG_PDUSessionModificationCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionModificationCommandReject, "tsc_MT_NG_PDUSessionModificationCommandReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionModificationComplete, "tsc_MT_NG_PDUSessionModificationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionModificationReject, "tsc_MT_NG_PDUSessionModificationReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionModificationRequest, "tsc_MT_NG_PDUSessionModificationRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionReleaseCommand, "tsc_MT_NG_PDUSessionReleaseCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionReleaseComplete, "tsc_MT_NG_PDUSessionReleaseComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionReleaseReject, "tsc_MT_NG_PDUSessionReleaseReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__PDUSessionReleaseRequest, "tsc_MT_NG_PDUSessionReleaseRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__RegistrationAccept, "tsc_MT_NG_RegistrationAccept", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__RegistrationComplete, "tsc_MT_NG_RegistrationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__RegistrationReject, "tsc_MT_NG_RegistrationReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__RegistrationRequest, "tsc_MT_NG_RegistrationRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__SecurityModeCommand, "tsc_MT_NG_SecurityModeCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__SecurityModeComplete, "tsc_MT_NG_SecurityModeComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__SecurityModeReject, "tsc_MT_NG_SecurityModeReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__ServiceAccept, "tsc_MT_NG_ServiceAccept", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__ServiceReject, "tsc_MT_NG_ServiceReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__ServiceRequest, "tsc_MT_NG_ServiceRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MT__NG__UL__NASTransport, "tsc_MT_NG_UL_NASTransport", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__NSSAI__DeleteReq, "tsc_MsgType_NSSAI_DeleteReq", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__NSSAI__DeleteResp, "tsc_MsgType_NSSAI_DeleteResp", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__SetUAIReq, "tsc_MsgType_SetUAIReq", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__MsgType__SetUAIResp, "tsc_MsgType_SetUAIResp", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__RegResult__3GPP, "tsc_NG_RegResult_3GPP", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__RegResult__Both, "tsc_NG_RegResult_Both", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__RegResult__Non3GPP, "tsc_NG_RegResult_Non3GPP", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__RegistrationEmergency, "tsc_NG_RegistrationEmergency", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__RegistrationInitial, "tsc_NG_RegistrationInitial", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__RegistrationMobility, "tsc_NG_RegistrationMobility", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__RegistrationPeriodic, "tsc_NG_RegistrationPeriodic", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__RegistrationSNPN, "tsc_NG_RegistrationSNPN", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__TMSI1, "tsc_NG_TMSI1", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NR5GCCause__Congestion, "tsc_NR5GCCause_Congestion", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NR5GCCause__InvalidPDUSessionIdentity, "tsc_NR5GCCause_InvalidPDUSessionIdentity", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NR5GCCause__NoSuitableCellsInTA, "tsc_NR5GCCause_NoSuitableCellsInTA", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NR5GCCause__ServNetNotAuthorized, "tsc_NR5GCCause_ServNetNotAuthorized", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PayloadContainerCIoTUserData, "tsc_PayloadContainerCIoTUserData", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PayloadContainerLPPMsg, "tsc_PayloadContainerLPPMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PayloadContainerSMSMsg, "tsc_PayloadContainerSMSMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PayloadContainerSORMsg, "tsc_PayloadContainerSORMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__PayloadContainerUEPolicyMsg, "tsc_PayloadContainerUEPolicyMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__QoSFlowParameter__5QI, "tsc_QoSFlowParameter_5QI", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__QoSFlowParameter__AvWindow, "tsc_QoSFlowParameter_AvWindow", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__QoSFlowParameter__EPSBearerId, "tsc_QoSFlowParameter_EPSBearerId", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__QoSFlowParameter__GFBR__DL, "tsc_QoSFlowParameter_GFBR_DL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__QoSFlowParameter__GFBR__UL, "tsc_QoSFlowParameter_GFBR_UL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__QoSFlowParameter__MFBR__DL, "tsc_QoSFlowParameter_MFBR_DL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__QoSFlowParameter__MFBR__UL, "tsc_QoSFlowParameter_MFBR_UL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::cdr__AuthFailParamGSM__Any, "cdr_AuthFailParamGSM_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cdr__MS__NetworkCapAss__lv, "cdr_MS_NetworkCapAss_lv", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__1__tlv, "cds_508_EPS_QoS_Default_1_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__3, "cds_508_EPS_QoS_Default_3", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI, "cds_EPS_QoS_Def_nonGBR_QCI", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI__tlv, "cds_EPS_QoS_Def_nonGBR_QCI_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__2, "cds_QoS_Negotiated_2", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__3, "cds_QoS_Negotiated_3", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__8, "cds_QoS_Negotiated_8", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AccessPointName__Any, "cr_AccessPointName_Any", "AccessPointName template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AdditionalUpdateTypeAny, "cr_AdditionalUpdateTypeAny", "AdditionalUpdateType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AuthFailParam__Any, "cr_AuthFailParam_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecAny, "cr_CodecAny", "Codec template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecListAny, "cr_CodecListAny", "CodecList template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__DetachTypeOnSwitchOff, "cr_DetachTypeOnSwitchOff", "DetachType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__EDGE__Struct__Any, "cr_EDGE_Struct_Any", "EDGE_Struct template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdDRXParamsAny, "cr_ExtdDRXParamsAny", "ExtdDRXParams template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdPCOAny, "cr_ExtdPCOAny", "ExtdProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__Extd__EPS__QOS__Any, "cr_Extd_EPS_QOS_Any", "Extd_EPS_QOS template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any, "cr_LAI_Any", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any__v, "cr_LAI_Any_v", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MSCLSMK3__Any, "cr_MSCLSMK3_Any", "MS_Clsmk3 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__Clsmk2__Any, "cr_MS_Clsmk2_Any", "MS_Clsmk2 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__MeasCapability__Any, "cr_MS_MeasCapability_Any", "MS_MeasCapability template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__NetworkCap__Any, "cr_MS_NetworkCap_Any", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__NBIFOMContainerAny, "cr_NBIFOMContainerAny", "NBIFOMContainer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__Signature2Any, "cr_PTMSI_Signature2Any", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__SignatureAny, "cr_PTMSI_SignatureAny", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ProtocolConfigOptionsAny, "cr_ProtocolConfigOptionsAny", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__UEStatus__Any, "cr_UEStatus_Any", "UE_Status template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__VoiceDomainPref__Any, "cr_VoiceDomainPref_Any", "VoiceDomainPref template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WUSAssistInfoAny, "cr_WUSAssistInfoAny", "WUSAssistInfo template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WusInfoTypeAny, "cr_WusInfoTypeAny", "WusInfoType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__508__EPS__QoS__Default__1, "cs_508_EPS_QoS_Default_1", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__GprsTimer__v__deact, "cs_GprsTimer_v_deact", "GPRS_Timer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMP, "cs_PktFilterCompProtocolIdNextHeaderICMP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMPv6, "cs_PktFilterCompProtocolIdNextHeaderICMPv6", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderIPSec, "cs_PktFilterCompProtocolIdNextHeaderIPSec", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderTCP, "cs_PktFilterCompProtocolIdNextHeaderTCP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderUDP, "cs_PktFilterCompProtocolIdNextHeaderUDP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFlowId, "cs_PktFlowId", "PacketFlowIdentifier template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__ProtocolConfigOptions__PPP, "cs_ProtocolConfigOptions_PPP", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__QoS__Negotiated__1, "cs_QoS_Negotiated_1", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1, "tsc_APN1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1__String, "tsc_APN1_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2, "tsc_APN2", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2__String, "tsc_APN2_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3, "tsc_APN3", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3__String, "tsc_APN3_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__MAC__Failure, "tsc_Cause_MAC_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__NoNetworkSlices__Available, "tsc_Cause_NoNetworkSlices_Available", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowed, "tsc_Cause_PLMN_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation, "tsc_Cause_PLMN_NotAllowedToOperateAtPresentUELocation", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__Roaming__NotAllowed, "tsc_Cause_Roaming_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__SQN__Failure, "tsc_Cause_SQN_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__TA__NotAllowed, "tsc_Cause_TA_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__nonEPS__AuthUnacceptable, "tsc_Cause_nonEPS_AuthUnacceptable", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__ConsecutiveTacs, "tsc_ConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalMe, "tsc_EmmCause_IllegalMe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalUe, "tsc_EmmCause_IllegalUe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__SemanticallyIncorrect, "tsc_EmmCause_SemanticallyIncorrect", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__1min, "tsc_Gprs3TimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__30sec, "tsc_Gprs3TimerUnit_30sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__1min, "tsc_GprsTimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__2sec, "tsc_GprsTimerUnit_2sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__6min, "tsc_GprsTimerUnit_6min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__deact, "tsc_GprsTimerUnit_deact", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IMEISV__Requested, "tsc_IMEISV_Requested", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv4Mask, "tsc_IPv4Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv6Mask, "tsc_IPv6Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__GUTI, "tsc_IdType_GUTI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI, "tsc_IdType_IMEI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEISV, "tsc_IdType_IMEISV", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI__24301, "tsc_IdType_IMEI_24301", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMSI, "tsc_IdType_IMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__TMSI, "tsc_IdType_TMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__MultiplePlmns, "tsc_MultiplePlmns", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__MappedSecurityContext, "tsc_NasKsi_MappedSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NativeSecurityContext, "tsc_NasKsi_NativeSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NoKey, "tsc_NasKsi_NoKey", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NoValidTmsi, "tsc_NoValidTmsi", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NonConsecutiveTacs, "tsc_NonConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6, "tsc_PCO_Id_DSMIPv6", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6__IPv4, "tsc_PCO_Id_DSMIPv6_IPv4", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__1, "tsc_PTI_1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__Unassigned, "tsc_PTI_Unassigned", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PayloadContainerESMMsg, "tsc_PayloadContainerESMMsg", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4, "tsc_PdnType_IPv4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4v6, "tsc_PdnType_IPv4v6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv6, "tsc_PdnType_IPv6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected, "tsc_SHT_IntegrityProtected", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered, "tsc_SHT_IntegrityProtected_Ciphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext, "tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__NewSecurityContext, "tsc_SHT_IntegrityProtected_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__PartiallyCiphered, "tsc_SHT_IntegrityProtected_PartiallyCiphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__NoSecurityProtection, "tsc_SHT_NoSecurityProtection", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare1, "tsc_Spare1", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare2, "tsc_Spare2", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare3, "tsc_Spare3", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare4, "tsc_Spare4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare5, "tsc_Spare5", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare6, "tsc_Spare6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare7, "tsc_Spare7", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SpareHalfOctet, "tsc_SpareHalfOctet", "hexstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xCSfallback, "pc_1xCSfallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xRTT, "pc_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__A5__4__CS, "pc_A5_4_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__Default__Configuration, "pc_APN_Default_Configuration", "APN_DefaultConfiguration_Type", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::pc__APN__ID__Ethernet, "pc_APN_ID_Ethernet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__IMS, "pc_APN_ID_IMS", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__Internet, "pc_APN_ID_Internet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__MIOT, "pc_APN_ID_MIOT", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__URLLC, "pc_APN_ID_URLLC", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__V2X, "pc_APN_ID_V2X", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Allowed__CSG__list, "pc_Allowed_CSG_list", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Attach, "pc_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Auto__PDN__Connectivity, "pc_Auto_PDN_Connectivity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__EPS__Re__Attach, "pc_Automatic_EPS_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__Re__Attach, "pc_Automatic_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Available__PLMNs__AcT__Ind, "pc_Available_PLMNs_AcT_Ind", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__BSRVCC, "pc_BSRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CMAS__Message, "pc_CMAS_Message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS, "pc_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__1xRTT, "pc_CS_Em_Call_in_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__GERAN, "pc_CS_Em_Call_in_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__UTRA, "pc_CS_Em_Call_in_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Fallback, "pc_CS_Fallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__data__centric, "pc_CS_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__voice__centric, "pc_CS_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Combined__Attach, "pc_Combined_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DSMIPv6, "pc_DSMIPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DaylightSavingTime, "pc_DaylightSavingTime", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DualRM__Coding, "pc_DualRM_Coding", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB, "pc_EAB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB__override, "pc_EAB_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EDTM, "pc_EDTM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EMM__Information, "pc_EMM_Information", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPC__RACS, "pc_EPC_RACS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__IMS__EmergencyCall, "pc_EPS_IMS_EmergencyCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__Services__Disable, "pc_EPS_Services_Disable", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Allocation, "pc_ESM_MO_Bearer_Allocation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Modification, "pc_ESM_MO_Bearer_Modification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__Notification, "pc_ESM_Notification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__UE__Modification__NW__TFT, "pc_ESM_UE_Modification_NW_TFT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ETWS__message, "pc_ETWS_message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRAN__2__GERAN__PSHO, "pc_E_UTRAN_2_GERAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRA__WLAN__offload, "pc_E_UTRA_WLAN_offload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EmergSpeech, "pc_EmergSpeech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FDD, "pc_FDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__F, "pc_FeatrGrp_101_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__T, "pc_FeatrGrp_101_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__F, "pc_FeatrGrp_102_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__T, "pc_FeatrGrp_102_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__F, "pc_FeatrGrp_103_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__T, "pc_FeatrGrp_103_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__F, "pc_FeatrGrp_104_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__T, "pc_FeatrGrp_104_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__F, "pc_FeatrGrp_105_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__T, "pc_FeatrGrp_105_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__F, "pc_FeatrGrp_106_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__T, "pc_FeatrGrp_106_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__F, "pc_FeatrGrp_107_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__T, "pc_FeatrGrp_107_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__F, "pc_FeatrGrp_108_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__T, "pc_FeatrGrp_108_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__F, "pc_FeatrGrp_109_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__T, "pc_FeatrGrp_109_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__F, "pc_FeatrGrp_10_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__T, "pc_FeatrGrp_10_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__F, "pc_FeatrGrp_110_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__T, "pc_FeatrGrp_110_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__F, "pc_FeatrGrp_111_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__T, "pc_FeatrGrp_111_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__F, "pc_FeatrGrp_112_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__T, "pc_FeatrGrp_112_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__F, "pc_FeatrGrp_113_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__T, "pc_FeatrGrp_113_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__F, "pc_FeatrGrp_114_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__T, "pc_FeatrGrp_114_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__F, "pc_FeatrGrp_115_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__T, "pc_FeatrGrp_115_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__F, "pc_FeatrGrp_116_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__T, "pc_FeatrGrp_116_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__F, "pc_FeatrGrp_11_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__T, "pc_FeatrGrp_11_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__F, "pc_FeatrGrp_12_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__T, "pc_FeatrGrp_12_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__F, "pc_FeatrGrp_13_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__T, "pc_FeatrGrp_13_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__F, "pc_FeatrGrp_14_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__T, "pc_FeatrGrp_14_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__F, "pc_FeatrGrp_15_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__T, "pc_FeatrGrp_15_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__F, "pc_FeatrGrp_16_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__T, "pc_FeatrGrp_16_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__F, "pc_FeatrGrp_17_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__T, "pc_FeatrGrp_17_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__F, "pc_FeatrGrp_18_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__T, "pc_FeatrGrp_18_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__F, "pc_FeatrGrp_19_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__T, "pc_FeatrGrp_19_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__F, "pc_FeatrGrp_1_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__T, "pc_FeatrGrp_1_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__F, "pc_FeatrGrp_20_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__T, "pc_FeatrGrp_20_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__F, "pc_FeatrGrp_21_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__T, "pc_FeatrGrp_21_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__F, "pc_FeatrGrp_22_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__T, "pc_FeatrGrp_22_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__F, "pc_FeatrGrp_23_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__T, "pc_FeatrGrp_23_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__F, "pc_FeatrGrp_24_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__T, "pc_FeatrGrp_24_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__F, "pc_FeatrGrp_25_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__T, "pc_FeatrGrp_25_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__F, "pc_FeatrGrp_26_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__T, "pc_FeatrGrp_26_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__F, "pc_FeatrGrp_27_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__T, "pc_FeatrGrp_27_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__F, "pc_FeatrGrp_28_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__T, "pc_FeatrGrp_28_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__F, "pc_FeatrGrp_29_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__T, "pc_FeatrGrp_29_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__F, "pc_FeatrGrp_2_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__T, "pc_FeatrGrp_2_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__F, "pc_FeatrGrp_30_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__T, "pc_FeatrGrp_30_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__F, "pc_FeatrGrp_31_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__T, "pc_FeatrGrp_31_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__F, "pc_FeatrGrp_33_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__T, "pc_FeatrGrp_33_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__F, "pc_FeatrGrp_34_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__T, "pc_FeatrGrp_34_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__F, "pc_FeatrGrp_35_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__T, "pc_FeatrGrp_35_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__F, "pc_FeatrGrp_36_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__T, "pc_FeatrGrp_36_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__F, "pc_FeatrGrp_37_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__T, "pc_FeatrGrp_37_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__F, "pc_FeatrGrp_38_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__T, "pc_FeatrGrp_38_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__F, "pc_FeatrGrp_39_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__T, "pc_FeatrGrp_39_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__F, "pc_FeatrGrp_3_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__T, "pc_FeatrGrp_3_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__F, "pc_FeatrGrp_40_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__T, "pc_FeatrGrp_40_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__F, "pc_FeatrGrp_41_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__T, "pc_FeatrGrp_41_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__F, "pc_FeatrGrp_42_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__T, "pc_FeatrGrp_42_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__F, "pc_FeatrGrp_4_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__T, "pc_FeatrGrp_4_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__F, "pc_FeatrGrp_5_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__T, "pc_FeatrGrp_5_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__F, "pc_FeatrGrp_6_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__T, "pc_FeatrGrp_6_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__F, "pc_FeatrGrp_7_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__T, "pc_FeatrGrp_7_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__F, "pc_FeatrGrp_8_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__T, "pc_FeatrGrp_8_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__F, "pc_FeatrGrp_9_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__T, "pc_FeatrGrp_9_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FullNameNetwork, "pc_FullNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN, "pc_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__PSHO, "pc_GERAN_2_E_UTRAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__meas, "pc_GERAN_2_E_UTRAN_meas", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__measreporting__CCN, "pc_GERAN_2_E_UTRAN_measreporting_CCN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eFDD, "pc_HO_from_UTRA_to_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eTDD, "pc_HO_from_UTRA_to_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HRPD, "pc_HRPD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS, "pc_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMSI__Detach, "pc_IMSI_Detach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__APN__default, "pc_IMS_APN_default", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCC, "pc_IMS_CS_PS_SRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCAlert, "pc_IMS_CS_PS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCMidCall, "pc_IMS_CS_PS_SRVCCMidCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__SRVCCAlert, "pc_IMS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__emergency__call, "pc_IMS_emergency_call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv4, "pc_IPv4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv6, "pc_IPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ISR, "pc_ISR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ImmConnect, "pc_ImmConnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__InterFreq__ProximityIndication, "pc_InterFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IntraFreq__ProximityIndication, "pc_IntraFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__KeepEpsBearerParametersAfterNormalDetach, "pc_KeepEpsBearerParametersAfterNormalDetach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP, "pc_LAP", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP__override, "pc_LAP_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LocalTimeZone, "pc_LocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LoggedMeasurementsIdle, "pc_LoggedMeasurementsIdle", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Manual__CSG__Selection, "pc_Manual_CSG_Selection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Multiple__PDN, "pc_Multiple_PDN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v1__0, "pc_NG114_v1_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v2__0, "pc_NG114_v2_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG__RAN__NR, "pc_NG_RAN_NR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NR__5GC__EmergencyServices, "pc_NR_5GC_EmergencyServices", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__No__USIM__TestExecution, "pc_No_USIM_TestExecution", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__Manual__Mode__Exception, "pc_PLMN_Manual_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS, "pc_PS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__data__centric, "pc_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__voice__centric, "pc_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PWS__UpperLayer, "pc_PWS_UpperLayer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ProvideDST__inUse, "pc_ProvideDST_inUse", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__APN, "pc_Provide_IMS_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__as__second__APN, "pc_Provide_IMS_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__Internet__as__second__APN, "pc_Provide_Internet_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RLF__ReportForInterRAT__MRO, "pc_RLF_ReportForInterRAT_MRO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0001, "pc_ROHC_profile0x0001", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0002, "pc_ROHC_profile0x0002", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0003, "pc_ROHC_profile0x0003", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0004, "pc_ROHC_profile0x0004", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0006, "pc_ROHC_profile0x0006", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0101, "pc_ROHC_profile0x0101", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0102, "pc_ROHC_profile0x0102", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0103, "pc_ROHC_profile0x0103", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0104, "pc_ROHC_profile0x0104", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Rach__Report, "pc_Rach_Report", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Re__Attach__AfterDetachColl, "pc_Re_Attach_AfterDetachColl", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv4HAAddress__DuringAttach, "pc_RequestIPv4HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv6HAAddress__DuringAttach, "pc_RequestIPv6HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__UMTS__Autonomous__Gaps, "pc_SI_Neighbour_UMTS_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__interFreq__Autonomous__Gaps, "pc_SI_Neighbour_interFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__intraFreq__Autonomous__Gaps, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs, "pc_SMS_SGs", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MO, "pc_SMS_SGs_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MT, "pc_SMS_SGs_MT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__Multi__MO, "pc_SMS_SGs_Multi_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SRVCC__GERAN__UTRAN, "pc_SRVCC_GERAN_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Semi__Persistence__Scheduling, "pc_Semi_Persistence_Scheduling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ShortNameNetwork, "pc_ShortNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Speech, "pc_Speech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__StandaloneGNSS__Location, "pc_StandaloneGNSS_Location", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SupportOpModeA, "pc_SupportOpModeA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SwitchOnOff, "pc_SwitchOnOff", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__connected__in__IMS, "pc_TAU_connected_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__idle__in__IMS, "pc_TAU_idle_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__HCR, "pc_TDD_HCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__LCR, "pc_TDD_LCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__VHCR, "pc_TDD_VHCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TTI__Bundling, "pc_TTI_Bundling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TestModeforCSGproximity, "pc_TestModeforCSGproximity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UE__supports__user__initiated__PDN__disconnect, "pc_UE_supports_user_initiated_PDN_disconnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UL__MIMO, "pc_UL_MIMO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMI__ProcNeeded__DuringCSFB, "pc_UMI_ProcNeeded_DuringCSFB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMTS__GSM, "pc_UMTS_GSM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__USIM__Removal, "pc_USIM_Removal", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA, "pc_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ANR, "pc_UTRAN_ANR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ProximityIndication, "pc_UTRAN_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__1, "pc_UTRA_FeatrGrp_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__2, "pc_UTRA_FeatrGrp_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__3, "pc_UTRA_FeatrGrp_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__4, "pc_UTRA_FeatrGrp_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeAssistedAgps, "pc_UeAssistedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeBasedAgps, "pc_UeBasedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UniversalAndLocalTimeZone, "pc_UniversalAndLocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UpdateUE__LocationInformation, "pc_UpdateUE_LocationInformation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UserInitiatedPLMN__Reselection, "pc_UserInitiatedPLMN_Reselection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__VoLTE, "pc_VoLTE", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__Imm__MDT, "pc_WLAN_Meas_Imm_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__logged__MDT, "pc_WLAN_Meas_logged_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__voice, "pc_WLAN_voice", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__only__APN, "pc_XCAP_only_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__over__Internet__APN, "pc_XCAP_over_Internet_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ZUC, "pc_ZUC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eCall__Test__Call, "pc_eCall_Test_Call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD, "pc_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD__MultiBand, "pc_eFDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS, "pc_eMBMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS__SC, "pc_eMBMS_SC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMinimumPeriodicSearchTimer, "pc_eMinimumPeriodicSearchTimer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eRedirectionUTRA, "pc_eRedirectionUTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD, "pc_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD__MultiBand, "pc_eTDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eWLAN, "pc_eWLAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__multipleTimingAdvance, "pc_multipleTimingAdvance", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__0, "pc_ue_CategoryDL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__10, "pc_ue_CategoryDL_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__11, "pc_ue_CategoryDL_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__12, "pc_ue_CategoryDL_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__13, "pc_ue_CategoryDL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__14, "pc_ue_CategoryDL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__15, "pc_ue_CategoryDL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__16, "pc_ue_CategoryDL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__17, "pc_ue_CategoryDL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__18, "pc_ue_CategoryDL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__19, "pc_ue_CategoryDL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__1bis, "pc_ue_CategoryDL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__20, "pc_ue_CategoryDL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__21, "pc_ue_CategoryDL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__22, "pc_ue_CategoryDL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__23, "pc_ue_CategoryDL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__24, "pc_ue_CategoryDL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__25, "pc_ue_CategoryDL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__26, "pc_ue_CategoryDL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__4, "pc_ue_CategoryDL_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__6, "pc_ue_CategoryDL_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__7, "pc_ue_CategoryDL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__9, "pc_ue_CategoryDL_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M1, "pc_ue_CategoryDL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M2, "pc_ue_CategoryDL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__0, "pc_ue_CategoryUL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__13, "pc_ue_CategoryUL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__14, "pc_ue_CategoryUL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__15, "pc_ue_CategoryUL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__16, "pc_ue_CategoryUL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__17, "pc_ue_CategoryUL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__18, "pc_ue_CategoryUL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__19, "pc_ue_CategoryUL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__1bis, "pc_ue_CategoryUL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__20, "pc_ue_CategoryUL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__21, "pc_ue_CategoryUL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__22, "pc_ue_CategoryUL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__23, "pc_ue_CategoryUL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__24, "pc_ue_CategoryUL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__25, "pc_ue_CategoryUL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__26, "pc_ue_CategoryUL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__3, "pc_ue_CategoryUL_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__5, "pc_ue_CategoryUL_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__7, "pc_ue_CategoryUL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__8, "pc_ue_CategoryUL_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M1, "pc_ue_CategoryUL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M2, "pc_ue_CategoryUL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__1, "pc_ue_Category_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__10, "pc_ue_Category_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__11, "pc_ue_Category_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__12, "pc_ue_Category_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__2, "pc_ue_Category_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__3, "pc_ue_Category_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__4, "pc_ue_Category_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__5, "pc_ue_Category_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__6, "pc_ue_Category_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__7, "pc_ue_Category_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__8, "pc_ue_Category_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__9, "pc_ue_Category_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voiceOverNR, "pc_voiceOverNR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voice__PS__1__CS__2, "pc_voice_PS_1_CS_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AccessPointName, "px_AccessPointName", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AquireGNSS__MaxTime, "px_AquireGNSS_MaxTime", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AttachTypeTested, "px_AttachTypeTested", "EUTRA_ATTACH_TESTED_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__AuthAMF, "px_AuthAMF", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AuthK, "px_AuthK", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EllipsoidPointWithAltitude, "px_EllipsoidPointWithAltitude", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EmergencyCallNumber, "px_EmergencyCallNumber", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__FDD__OperationBand, "px_FDD_OperationBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__HorizontalVelocity, "px_HorizontalVelocity", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEISV__Def, "px_IMEISV_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEI__Def, "px_IMEI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Def, "px_IMSI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Diff, "px_IMSI_Diff", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IP__MTU__Size, "px_IP_MTU_Size", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__NW, "px_IPv4_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__RemoteUE, "px_IPv4_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__UE, "px_IPv4_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__NW, "px_IPv4_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__RemoteUE, "px_IPv4_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__UE, "px_IPv4_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2a__UE, "px_IPv4_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__NW, "px_IPv4_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__RemoteUE, "px_IPv4_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__UE, "px_IPv4_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__NW, "px_IPv4_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__UE, "px_IPv4_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__NW, "px_IPv4_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__UE, "px_IPv4_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__NW, "px_IPv4_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__UE, "px_IPv4_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address__HomeAgent, "px_IPv4_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__NW, "px_IPv6_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__RemoteUE, "px_IPv6_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__UE, "px_IPv6_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__NW, "px_IPv6_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__RemoteUE, "px_IPv6_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__UE, "px_IPv6_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2a__UE, "px_IPv6_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__NW, "px_IPv6_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__RemoteUE, "px_IPv6_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__UE, "px_IPv6_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__NW, "px_IPv6_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__UE, "px_IPv6_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__NW, "px_IPv6_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__UE, "px_IPv6_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__NW, "px_IPv6_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__UE, "px_IPv6_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address__HomeAgent, "px_IPv6_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__MFBI__UTRAN__FrequencyBand, "px_MFBI_UTRAN_FrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__CipheringAlgorithm, "px_NAS_CipheringAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__IntegrityProtAlgorithm, "px_NAS_IntegrityProtAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__Def, "px_PTMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__SigDef, "px_PTMSI_SigDef", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataCodingScheme, "px_PWS_CB_DataCodingScheme", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage1, "px_PWS_CB_DataPage1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage2, "px_PWS_CB_DataPage2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage3, "px_PWS_CB_DataPage3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage4, "px_PWS_CB_DataPage4", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__RATComb__Tested, "px_RATComb_Tested", "RATComb_Tested_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__SMS__ChkMsgReceived, "px_SMS_ChkMsgReceived", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__IndexOffset, "px_SMS_IndexOffset", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__MsgFrmt, "px_SMS_MsgFrmt", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem1, "px_SMS_PrefMem1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem2, "px_SMS_PrefMem2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem3, "px_SMS_PrefMem3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__Service, "px_SMS_Service", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SinglePLMN__Tested, "px_SinglePLMN_Tested", "SinglePLMN_TestedType", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__TMSI__Def, "px_TMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__TestLoopModeB__Delay, "px_TestLoopModeB_Delay", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__UE__CS__PS__UsageSetting__Tested, "px_UE_CS_PS_UsageSetting_Tested", "CS_PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UE__PS__UsageSetting__Tested, "px_UE_PS_UsageSetting_Tested", "PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UTRAN__ModeUnderTest, "px_UTRAN_ModeUnderTest", "UTRAN_FDD_TDD_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__WLAN__PDN1__ToOffload, "px_WLAN_PDN1_ToOffload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eAuthRAND, "px_eAuthRAND", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eJapanMCC__Band6, "px_eJapanMCC_Band6", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__ePrimaryFrequencyBand, "px_ePrimaryFrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoReply, "tsc_ICMP_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoRequest, "tsc_ICMP_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoReply, "tsc_ICMPv6_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoRequest, "tsc_ICMPv6_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M1, "tsc_IMS_MediaPort_M1", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M2, "tsc_IMS_MediaPort_M2", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M3, "tsc_IMS_MediaPort_M3", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__PortNumber__5060, "tsc_IMS_PortNumber_5060", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__AnyData, "tsc_IP_AnyData", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMP, "tsc_IP_Protocol_ICMP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMPv6, "tsc_IP_Protocol_ICMPv6", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__IPSec, "tsc_IP_Protocol_IPSec", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__TCP, "tsc_IP_Protocol_TCP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__UDP, "tsc_IP_Protocol_UDP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__MulticastPrefix__FF02, "tsc_MulticastPrefix_FF02", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PDN1__AddressInfo, "tsc_PDN1_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN2__AddressInfo, "tsc_PDN2_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN3__AddressInfo, "tsc_PDN3_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN4__AddressInfo, "tsc_PDN4_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN5__AddressInfo, "tsc_PDN5_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN6__AddressInfo, "tsc_PDN6_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN__AddressInfo, "tsc_PDN_AddressInfo", "PDN_AddressInfo_Type[6]", "CommonIP", TTCN3_Debugger::print_value_array); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTP, "tsc_PortNumberHTTP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTPS, "tsc_PortNumberHTTPS", "integer", "CommonIP", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void GMM__MobilityInfo__Type::init_vec() { fld_vec[0]=&field_Guti; fld_vec[1]=&field_GMMCap; fld_vec[2]=&field_UECap; fld_vec[3]=&field_S1NwkCap; fld_vec[4]=&field_SessionStatus; fld_vec[5]=&field_EPSBearerStatus; fld_vec[6]=&field_UERadioCapId; } + +GMM__MobilityInfo__Type::GMM__MobilityInfo__Type() : Record_Type() { init_vec(); } + +GMM__MobilityInfo__Type::GMM__MobilityInfo__Type(const GMM__MobilityInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Guti.is_bound() ) + field_Guti = other_value.field_Guti; +if (other_value.field_GMMCap.is_bound() ) + field_GMMCap = other_value.field_GMMCap; +if (other_value.field_UECap.is_bound() ) + field_UECap = other_value.field_UECap; +if (other_value.field_S1NwkCap.is_bound() ) + field_S1NwkCap = other_value.field_S1NwkCap; +if (other_value.field_SessionStatus.is_bound() ) + field_SessionStatus = other_value.field_SessionStatus; +if (other_value.field_EPSBearerStatus.is_bound() ) + field_EPSBearerStatus = other_value.field_EPSBearerStatus; +if (other_value.field_UERadioCapId.is_bound() ) + field_UERadioCapId = other_value.field_UERadioCapId; +init_vec(); +} + +GMM__MobilityInfo__Type::GMM__MobilityInfo__Type(const NG__NAS__TypeDefs::NG__MobileIdentity& par_Guti, + const OPTIONAL& par_GMMCap, + const OPTIONAL& par_UECap, + const OPTIONAL& par_S1NwkCap, + const OPTIONAL& par_SessionStatus, + const OPTIONAL& par_EPSBearerStatus, + const OPTIONAL& par_UERadioCapId) : field_Guti(par_Guti), + field_GMMCap(par_GMMCap), + field_UECap(par_UECap), + field_S1NwkCap(par_S1NwkCap), + field_SessionStatus(par_SessionStatus), + field_EPSBearerStatus(par_EPSBearerStatus), + field_UERadioCapId(par_UERadioCapId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* GMM__MobilityInfo__Type::get_descriptor() const { return &GMM__MobilityInfo__Type_descr_; } +const TTCN_Typedescriptor_t* GMM__MobilityInfo__Type::fld_descriptors[] = { &NG__NAS__TypeDefs::NG__MobileIdentity_descr_, &NG__NAS__TypeDefs::NG__GMM__Cap_descr_, &NG__NAS__TypeDefs::NG__UE__SecurityCapability_descr_, &NAS__CommonTypeDefs::UE__NetworkCap_descr_, &NG__NAS__TypeDefs::PDU__SessionStatus_descr_, &NAS__CommonTypeDefs::EPS__BearerContextStatus_descr_, &NAS__CommonTypeDefs::UERadioCapId_descr_ }; +const TTCN_Typedescriptor_t* GMM__MobilityInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* GMM__MobilityInfo__Type::fld_names[] = { "Guti", "GMMCap", "UECap", "S1NwkCap", "SessionStatus", "EPSBearerStatus", "UERadioCapId" }; +const char* GMM__MobilityInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int GMM__MobilityInfo__Type::optional_indexes[] = { 1, 2, 3, 4, 5, 6, -1 }; +const int* GMM__MobilityInfo__Type::get_optional_indexes() const { return optional_indexes; } + +const int GMM__MobilityInfo__Type::optional_indexes_asn[] = { 1, 2, 3, 4, 5, 6, -1 }; +const int* GMM__MobilityInfo__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void GMM__MobilityInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NG__NAS__TypeDefs::NG__MobileIdentity_template(ANY_VALUE) : new NG__NAS__TypeDefs::NG__MobileIdentity_template; +single_value.value_elements[1] = was_any ? new NG__NAS__TypeDefs::NG__GMM__Cap_template(ANY_OR_OMIT) : new NG__NAS__TypeDefs::NG__GMM__Cap_template; +single_value.value_elements[2] = was_any ? new NG__NAS__TypeDefs::NG__UE__SecurityCapability_template(ANY_OR_OMIT) : new NG__NAS__TypeDefs::NG__UE__SecurityCapability_template; +single_value.value_elements[3] = was_any ? new NAS__CommonTypeDefs::UE__NetworkCap_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__NetworkCap_template; +single_value.value_elements[4] = was_any ? new NG__NAS__TypeDefs::PDU__SessionStatus_template(ANY_OR_OMIT) : new NG__NAS__TypeDefs::PDU__SessionStatus_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::EPS__BearerContextStatus_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__BearerContextStatus_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::UERadioCapId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapId_template; +} +} + +GMM__MobilityInfo__Type_template::GMM__MobilityInfo__Type_template(GMM__MobilityInfo__Type_template* p_precondition, GMM__MobilityInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +GMM__MobilityInfo__Type_template::GMM__MobilityInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +GMM__MobilityInfo__Type_template::~GMM__MobilityInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean GMM__MobilityInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const GMM__MobilityInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +GMM__MobilityInfo__Type_template& GMM__MobilityInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GMM__MobilityInfo__Type_template& GMM__MobilityInfo__Type_template::operator=(const GMM__MobilityInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +GMM__MobilityInfo__Type_template& GMM__MobilityInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +GMM__MobilityInfo__Type_template& GMM__MobilityInfo__Type_template::operator=(const GMM__MobilityInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +GMM__MobilityInfo__Type GMM__MobilityInfo__Type_template::valueof() const +{ +GMM__MobilityInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__TypeDefs::NG__MobileIdentity_template& GMM__MobilityInfo__Type_template::Guti() { return *(static_cast(get_at(0))); } +const NG__NAS__TypeDefs::NG__MobileIdentity_template& GMM__MobilityInfo__Type_template::Guti() const { return *(static_cast(get_at(0))); } +NG__NAS__TypeDefs::NG__GMM__Cap_template& GMM__MobilityInfo__Type_template::GMMCap() { return *(static_cast(get_at(1))); } +const NG__NAS__TypeDefs::NG__GMM__Cap_template& GMM__MobilityInfo__Type_template::GMMCap() const { return *(static_cast(get_at(1))); } +NG__NAS__TypeDefs::NG__UE__SecurityCapability_template& GMM__MobilityInfo__Type_template::UECap() { return *(static_cast(get_at(2))); } +const NG__NAS__TypeDefs::NG__UE__SecurityCapability_template& GMM__MobilityInfo__Type_template::UECap() const { return *(static_cast(get_at(2))); } +NAS__CommonTypeDefs::UE__NetworkCap_template& GMM__MobilityInfo__Type_template::S1NwkCap() { return *(static_cast(get_at(3))); } +const NAS__CommonTypeDefs::UE__NetworkCap_template& GMM__MobilityInfo__Type_template::S1NwkCap() const { return *(static_cast(get_at(3))); } +NG__NAS__TypeDefs::PDU__SessionStatus_template& GMM__MobilityInfo__Type_template::SessionStatus() { return *(static_cast(get_at(4))); } +const NG__NAS__TypeDefs::PDU__SessionStatus_template& GMM__MobilityInfo__Type_template::SessionStatus() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& GMM__MobilityInfo__Type_template::EPSBearerStatus() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& GMM__MobilityInfo__Type_template::EPSBearerStatus() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::UERadioCapId_template& GMM__MobilityInfo__Type_template::UERadioCapId() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::UERadioCapId_template& GMM__MobilityInfo__Type_template::UERadioCapId() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* GMM__MobilityInfo__Type_template::get_descriptor() const { return &GMM__MobilityInfo__Type_descr_; } +const char* GMM__MobilityInfo__Type_template::fld_name(int p_index) const { return GMM__MobilityInfo__Type::fld_names[p_index]; } +void GSM__MobilityInfo__Type::init_vec() { fld_vec[0]=&field_SessionId; fld_vec[1]=&field_PTI; fld_vec[2]=&field_PDUType; fld_vec[3]=&field_SessionType; fld_vec[4]=&field_DNN; fld_vec[5]=&field_AlwaysOn; fld_vec[6]=&field_PCO; fld_vec[7]=&field_EPS__Bearer; fld_vec[8]=&field_PdnIndex; fld_vec[9]=&field_NSSAI; } + +GSM__MobilityInfo__Type::GSM__MobilityInfo__Type() : Record_Type() { init_vec(); } + +GSM__MobilityInfo__Type::GSM__MobilityInfo__Type(const GSM__MobilityInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_SessionId.is_bound() ) + field_SessionId = other_value.field_SessionId; +if (other_value.field_PTI.is_bound() ) + field_PTI = other_value.field_PTI; +if (other_value.field_PDUType.is_bound() ) + field_PDUType = other_value.field_PDUType; +if (other_value.field_SessionType.is_bound() ) + field_SessionType = other_value.field_SessionType; +if (other_value.field_DNN.is_bound() ) + field_DNN = other_value.field_DNN; +if (other_value.field_AlwaysOn.is_bound() ) + field_AlwaysOn = other_value.field_AlwaysOn; +if (other_value.field_PCO.is_bound() ) + field_PCO = other_value.field_PCO; +if (other_value.field_EPS__Bearer.is_bound() ) + field_EPS__Bearer = other_value.field_EPS__Bearer; +if (other_value.field_PdnIndex.is_bound() ) + field_PdnIndex = other_value.field_PdnIndex; +if (other_value.field_NSSAI.is_bound() ) + field_NSSAI = other_value.field_NSSAI; +init_vec(); +} + +GSM__MobilityInfo__Type::GSM__MobilityInfo__Type(const OCTETSTRING& par_SessionId, + const OCTETSTRING& par_PTI, + const NAS__CommonTypeDefs::PDU__PDN__DNN__Type& par_PDUType, + const OPTIONAL& par_SessionType, + const OPTIONAL& par_DNN, + const OPTIONAL& par_AlwaysOn, + const OPTIONAL& par_PCO, + const OPTIONAL& par_EPS__Bearer, + const OPTIONAL& par_PdnIndex, + const OPTIONAL& par_NSSAI) : field_SessionId(par_SessionId), + field_PTI(par_PTI), + field_PDUType(par_PDUType), + field_SessionType(par_SessionType), + field_DNN(par_DNN), + field_AlwaysOn(par_AlwaysOn), + field_PCO(par_PCO), + field_EPS__Bearer(par_EPS__Bearer), + field_PdnIndex(par_PdnIndex), + field_NSSAI(par_NSSAI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* GSM__MobilityInfo__Type::get_descriptor() const { return &GSM__MobilityInfo__Type_descr_; } +const TTCN_Typedescriptor_t* GSM__MobilityInfo__Type::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::PDU__PDN__DNN__Type_descr_, &CommonDefs::B3__Type_descr_, &NG__NAS__TypeDefs::DNN_descr_, &NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &INTEGER_descr_, &CommonDefs::PDN__Index__Type_descr_, &NG__NAS__TypeDefs::S__NSSAI__Type_descr_ }; +const TTCN_Typedescriptor_t* GSM__MobilityInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* GSM__MobilityInfo__Type::fld_names[] = { "SessionId", "PTI", "PDUType", "SessionType", "DNN", "AlwaysOn", "PCO", "EPS_Bearer", "PdnIndex", "NSSAI" }; +const char* GSM__MobilityInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int GSM__MobilityInfo__Type::optional_indexes[] = { 3, 4, 5, 6, 7, 8, 9, -1 }; +const int* GSM__MobilityInfo__Type::get_optional_indexes() const { return optional_indexes; } + +const int GSM__MobilityInfo__Type::optional_indexes_asn[] = { 3, 4, 5, 6, 7, 8, 9, -1 }; +const int* GSM__MobilityInfo__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void GSM__MobilityInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new NAS__CommonTypeDefs::PDU__PDN__DNN__Type_template(ANY_VALUE) : new NAS__CommonTypeDefs::PDU__PDN__DNN__Type_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NG__NAS__TypeDefs::DNN_template(ANY_OR_OMIT) : new NG__NAS__TypeDefs::DNN_template; +single_value.value_elements[5] = was_any ? new NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template(ANY_OR_OMIT) : new NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[7] = was_any ? new INTEGER_template(ANY_OR_OMIT) : new INTEGER_template; +single_value.value_elements[8] = was_any ? new CommonDefs::PDN__Index__Type_template(ANY_OR_OMIT) : new CommonDefs::PDN__Index__Type_template; +single_value.value_elements[9] = was_any ? new NG__NAS__TypeDefs::S__NSSAI__Type_template(ANY_OR_OMIT) : new NG__NAS__TypeDefs::S__NSSAI__Type_template; +} +} + +GSM__MobilityInfo__Type_template::GSM__MobilityInfo__Type_template(GSM__MobilityInfo__Type_template* p_precondition, GSM__MobilityInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +GSM__MobilityInfo__Type_template::GSM__MobilityInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +GSM__MobilityInfo__Type_template::~GSM__MobilityInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean GSM__MobilityInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const GSM__MobilityInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +GSM__MobilityInfo__Type_template& GSM__MobilityInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GSM__MobilityInfo__Type_template& GSM__MobilityInfo__Type_template::operator=(const GSM__MobilityInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +GSM__MobilityInfo__Type_template& GSM__MobilityInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +GSM__MobilityInfo__Type_template& GSM__MobilityInfo__Type_template::operator=(const GSM__MobilityInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +GSM__MobilityInfo__Type GSM__MobilityInfo__Type_template::valueof() const +{ +GSM__MobilityInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& GSM__MobilityInfo__Type_template::SessionId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& GSM__MobilityInfo__Type_template::SessionId() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& GSM__MobilityInfo__Type_template::PTI() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& GSM__MobilityInfo__Type_template::PTI() const { return *(static_cast(get_at(1))); } +NAS__CommonTypeDefs::PDU__PDN__DNN__Type_template& GSM__MobilityInfo__Type_template::PDUType() { return *(static_cast(get_at(2))); } +const NAS__CommonTypeDefs::PDU__PDN__DNN__Type_template& GSM__MobilityInfo__Type_template::PDUType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& GSM__MobilityInfo__Type_template::SessionType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& GSM__MobilityInfo__Type_template::SessionType() const { return *(static_cast(get_at(3))); } +NG__NAS__TypeDefs::DNN_template& GSM__MobilityInfo__Type_template::DNN() { return *(static_cast(get_at(4))); } +const NG__NAS__TypeDefs::DNN_template& GSM__MobilityInfo__Type_template::DNN() const { return *(static_cast(get_at(4))); } +NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& GSM__MobilityInfo__Type_template::AlwaysOn() { return *(static_cast(get_at(5))); } +const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& GSM__MobilityInfo__Type_template::AlwaysOn() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& GSM__MobilityInfo__Type_template::PCO() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& GSM__MobilityInfo__Type_template::PCO() const { return *(static_cast(get_at(6))); } +INTEGER_template& GSM__MobilityInfo__Type_template::EPS__Bearer() { return *(static_cast(get_at(7))); } +const INTEGER_template& GSM__MobilityInfo__Type_template::EPS__Bearer() const { return *(static_cast(get_at(7))); } +CommonDefs::PDN__Index__Type_template& GSM__MobilityInfo__Type_template::PdnIndex() { return *(static_cast(get_at(8))); } +const CommonDefs::PDN__Index__Type_template& GSM__MobilityInfo__Type_template::PdnIndex() const { return *(static_cast(get_at(8))); } +NG__NAS__TypeDefs::S__NSSAI__Type_template& GSM__MobilityInfo__Type_template::NSSAI() { return *(static_cast(get_at(9))); } +const NG__NAS__TypeDefs::S__NSSAI__Type_template& GSM__MobilityInfo__Type_template::NSSAI() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* GSM__MobilityInfo__Type_template::get_descriptor() const { return &GSM__MobilityInfo__Type_descr_; } +const char* GSM__MobilityInfo__Type_template::fld_name(int p_index) const { return GSM__MobilityInfo__Type::fld_names[p_index]; } + +const GSM__MobilityInfo__Type PDUSessionInfoList__Type::UNBOUND_ELEM; +GSM__MobilityInfo__Type& PDUSessionInfoList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +GSM__MobilityInfo__Type& PDUSessionInfoList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const GSM__MobilityInfo__Type& PDUSessionInfoList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const GSM__MobilityInfo__Type& PDUSessionInfoList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PDUSessionInfoList__Type PDUSessionInfoList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type::operator<<=(const INTEGER& rotate_count) const +{ +PDUSessionInfoList__Type rec_of; +return *((PDUSessionInfoList__Type*)rotl(rotate_count, &rec_of)); +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type::operator>>=(const INTEGER& rotate_count) const +{ +PDUSessionInfoList__Type rec_of; +return *((PDUSessionInfoList__Type*)rotr(rotate_count, &rec_of)); +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type::operator>>=(int rotate_count) const +{ +PDUSessionInfoList__Type rec_of; +return *((PDUSessionInfoList__Type*)rotr(rotate_count, &rec_of)); +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type::operator+(const PDUSessionInfoList__Type& other_value) const +{ +PDUSessionInfoList__Type rec_of; +return *((PDUSessionInfoList__Type*)concat(&other_value, &rec_of)); +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const PDUSessionInfoList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_Common.PDUSessionInfoList_Type concatenation."); +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type::operator+(null_type) const +{ +return *this; +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type::substr(int index, int returncount) const +{ +PDUSessionInfoList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type::replace(int index, int len, const PDUSessionInfoList__Type& repl) const +{ +PDUSessionInfoList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type::replace(int index, int len, const PDUSessionInfoList__Type_template& repl) const +{ +PDUSessionInfoList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* PDUSessionInfoList__Type::create_elem() const { return new GSM__MobilityInfo__Type; } +const Base_Type* PDUSessionInfoList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* PDUSessionInfoList__Type::get_descriptor() const { return &PDUSessionInfoList__Type_descr_; } +PDUSessionInfoList__Type_template::PDUSessionInfoList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +PDUSessionInfoList__Type_template::PDUSessionInfoList__Type_template(PDUSessionInfoList__Type_template* p_precondition, PDUSessionInfoList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDUSessionInfoList__Type_template::PDUSessionInfoList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDUSessionInfoList__Type_template::~PDUSessionInfoList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDUSessionInfoList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const PDUSessionInfoList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +PDUSessionInfoList__Type_template& PDUSessionInfoList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDUSessionInfoList__Type_template& PDUSessionInfoList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +PDUSessionInfoList__Type_template& PDUSessionInfoList__Type_template::operator=(const PDUSessionInfoList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDUSessionInfoList__Type_template& PDUSessionInfoList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDUSessionInfoList__Type_template& PDUSessionInfoList__Type_template::operator=(const PDUSessionInfoList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDUSessionInfoList__Type_template PDUSessionInfoList__Type_template::operator+(const PDUSessionInfoList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return PDUSessionInfoList__Type_template(ANY_VALUE); +} +PDUSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PDUSessionInfoList__Type_template PDUSessionInfoList__Type_template::operator+(const PDUSessionInfoList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +PDUSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PDUSessionInfoList__Type_template PDUSessionInfoList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return PDUSessionInfoList__Type_template(ANY_VALUE); +} +PDUSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +PDUSessionInfoList__Type_template PDUSessionInfoList__Type_template::operator+(null_type) const +{ +return *this; +} + +GSM__MobilityInfo__Type_template& PDUSessionInfoList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +GSM__MobilityInfo__Type_template& PDUSessionInfoList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const GSM__MobilityInfo__Type_template& PDUSessionInfoList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const GSM__MobilityInfo__Type_template& PDUSessionInfoList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PDUSessionInfoList__Type PDUSessionInfoList__Type_template::valueof() const +{ +PDUSessionInfoList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type_template::substr(int index, int returncount) const +{ +PDUSessionInfoList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type_template::replace(int index, int len, const PDUSessionInfoList__Type_template& repl) const +{ +PDUSessionInfoList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PDUSessionInfoList__Type PDUSessionInfoList__Type_template::replace(int index, int len, const PDUSessionInfoList__Type& repl) const +{ +PDUSessionInfoList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* PDUSessionInfoList__Type_template::create_elem() const { return new GSM__MobilityInfo__Type_template; } +const TTCN_Typedescriptor_t* PDUSessionInfoList__Type_template::get_descriptor() const { return &PDUSessionInfoList__Type_descr_; } +DeleteNSSAI__Type::DeleteNSSAI__Type() +{ +enum_value = UNBOUND_VALUE; +} + +DeleteNSSAI__Type::DeleteNSSAI__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NG_NAS_Common.DeleteNSSAI_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +DeleteNSSAI__Type::DeleteNSSAI__Type(enum_type other_value) +{ +enum_value = other_value; +} + +DeleteNSSAI__Type::DeleteNSSAI__Type(const DeleteNSSAI__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +enum_value = other_value.enum_value; +} + +DeleteNSSAI__Type& DeleteNSSAI__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NG_NAS_Common.DeleteNSSAI_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +DeleteNSSAI__Type& DeleteNSSAI__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +DeleteNSSAI__Type& DeleteNSSAI__Type::operator=(const DeleteNSSAI__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean DeleteNSSAI__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +return enum_value == other_value; +} + +boolean DeleteNSSAI__Type::operator==(const DeleteNSSAI__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +return enum_value == other_value.enum_value; +} + +boolean DeleteNSSAI__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +return enum_value < other_value; +} + +boolean DeleteNSSAI__Type::operator<(const DeleteNSSAI__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +return enum_value < other_value.enum_value; +} + +boolean DeleteNSSAI__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +return enum_value > other_value; +} + +boolean DeleteNSSAI__Type::operator>(const DeleteNSSAI__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +return enum_value > other_value.enum_value; +} + +const char *DeleteNSSAI__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case Delete__Default__Configured: return "Delete_Default_Configured"; +case Delete__Configured: return "Delete_Configured"; +case Delete__Allowed: return "Delete_Allowed"; +default: return ""; +} +} + +DeleteNSSAI__Type::enum_type DeleteNSSAI__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "Delete_Default_Configured")) return Delete__Default__Configured; +else if (!strcmp(str_par, "Delete_Configured")) return Delete__Configured; +else if (!strcmp(str_par, "Delete_Allowed")) return Delete__Allowed; +else return UNKNOWN_VALUE; +} + +boolean DeleteNSSAI__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +return TRUE; +default: +return FALSE; +} +} + +int DeleteNSSAI__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int DeleteNSSAI__Type::enum2int(const DeleteNSSAI__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void DeleteNSSAI__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NG_NAS_Common.DeleteNSSAI_Type.", int_val); +enum_value = (enum_type)int_val; +} + +DeleteNSSAI__Type::operator DeleteNSSAI__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +return enum_value; +} + +boolean DeleteNSSAI__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void DeleteNSSAI__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* DeleteNSSAI__Type::clone() const { return new DeleteNSSAI__Type(*this); } +const TTCN_Typedescriptor_t* DeleteNSSAI__Type::get_descriptor() const { return &DeleteNSSAI__Type_descr_; } +void DeleteNSSAI__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void DeleteNSSAI__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NG_NAS_Common.DeleteNSSAI_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.DeleteNSSAI_Type."); + } +} + +Module_Param* DeleteNSSAI__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void DeleteNSSAI__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +text_buf.push_int(enum_value); +} + +void DeleteNSSAI__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NG_NAS_Common.DeleteNSSAI_Type.", enum_value); +} + +void DeleteNSSAI__Type_template::copy_template(const DeleteNSSAI__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new DeleteNSSAI__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new DeleteNSSAI__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new DeleteNSSAI__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +} +} + +DeleteNSSAI__Type_template::DeleteNSSAI__Type_template() +{ +} + +DeleteNSSAI__Type_template::DeleteNSSAI__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +DeleteNSSAI__Type_template::DeleteNSSAI__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!DeleteNSSAI__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type with unknown numeric value %d.", other_value); +single_value = (DeleteNSSAI__Type::enum_type)other_value; +} + +DeleteNSSAI__Type_template::DeleteNSSAI__Type_template(DeleteNSSAI__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +DeleteNSSAI__Type_template::DeleteNSSAI__Type_template(const DeleteNSSAI__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == DeleteNSSAI__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +single_value = other_value.enum_value; +} + +DeleteNSSAI__Type_template::DeleteNSSAI__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (DeleteNSSAI__Type::enum_type)(const DeleteNSSAI__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type from an unbound optional field."); +} +} + +DeleteNSSAI__Type_template::DeleteNSSAI__Type_template(DeleteNSSAI__Type_template* p_precondition, DeleteNSSAI__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +DeleteNSSAI__Type_template::DeleteNSSAI__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +DeleteNSSAI__Type_template::DeleteNSSAI__Type_template(const DeleteNSSAI__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +DeleteNSSAI__Type_template::~DeleteNSSAI__Type_template() +{ +clean_up(); +} + +boolean DeleteNSSAI__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean DeleteNSSAI__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != DeleteNSSAI__Type::UNBOUND_VALUE; +} + +void DeleteNSSAI__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +DeleteNSSAI__Type_template& DeleteNSSAI__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DeleteNSSAI__Type_template& DeleteNSSAI__Type_template::operator=(int other_value) +{ +if (!DeleteNSSAI__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (DeleteNSSAI__Type::enum_type)other_value; +return *this; +} + +DeleteNSSAI__Type_template& DeleteNSSAI__Type_template::operator=(DeleteNSSAI__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +DeleteNSSAI__Type_template& DeleteNSSAI__Type_template::operator=(const DeleteNSSAI__Type& other_value) +{ +if (other_value.enum_value == DeleteNSSAI__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.DeleteNSSAI_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +DeleteNSSAI__Type_template& DeleteNSSAI__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (DeleteNSSAI__Type::enum_type)(const DeleteNSSAI__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +} +return *this; +} + +DeleteNSSAI__Type_template& DeleteNSSAI__Type_template::operator=(const DeleteNSSAI__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean DeleteNSSAI__Type_template::match(DeleteNSSAI__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +} +return FALSE; +} + +boolean DeleteNSSAI__Type_template::match(const DeleteNSSAI__Type& other_value, boolean) const +{ +if (other_value.enum_value == DeleteNSSAI__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type with an unbound value."); +return match(other_value.enum_value); +} + +DeleteNSSAI__Type::enum_type DeleteNSSAI__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +return single_value; +} + +void DeleteNSSAI__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new DeleteNSSAI__Type_template[list_length]; +} + +DeleteNSSAI__Type_template& DeleteNSSAI__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +return value_list.list_value[list_index]; +} + +void DeleteNSSAI__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void DeleteNSSAI__Type_template::set_value(template_sel other_value) { *this = other_value; } +void DeleteNSSAI__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* DeleteNSSAI__Type_template::clone() const { return new DeleteNSSAI__Type_template(*this); } +const TTCN_Typedescriptor_t* DeleteNSSAI__Type_template::get_descriptor() const { return &DeleteNSSAI__Type_descr_; } +boolean DeleteNSSAI__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void DeleteNSSAI__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void DeleteNSSAI__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(DeleteNSSAI__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void DeleteNSSAI__Type_template::log_match(const DeleteNSSAI__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void DeleteNSSAI__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +} +} + +void DeleteNSSAI__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (DeleteNSSAI__Type::enum_type)text_buf.pull_int().get_val(); +if (!DeleteNSSAI__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new DeleteNSSAI__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NG_NAS_Common.DeleteNSSAI_Type."); +} +} + +boolean DeleteNSSAI__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean DeleteNSSAI__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + DeleteNSSAI__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + DeleteNSSAI__Type::enum_type enum_val = DeleteNSSAI__Type::str_to_enum(m_p->get_enumerated()); + if (!DeleteNSSAI__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.DeleteNSSAI_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + DeleteNSSAI__Type_template* precondition = new DeleteNSSAI__Type_template; + precondition->set_param(*m_p->get_elem(0)); + DeleteNSSAI__Type_template* implied_template = new DeleteNSSAI__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = DeleteNSSAI__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NG_NAS_Common.DeleteNSSAI_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* DeleteNSSAI__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(DeleteNSSAI__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +TypeOfRegistration__Type::TypeOfRegistration__Type() +{ +enum_value = UNBOUND_VALUE; +} + +TypeOfRegistration__Type::TypeOfRegistration__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NG_NAS_Common.TypeOfRegistration_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +TypeOfRegistration__Type::TypeOfRegistration__Type(enum_type other_value) +{ +enum_value = other_value; +} + +TypeOfRegistration__Type::TypeOfRegistration__Type(const TypeOfRegistration__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +enum_value = other_value.enum_value; +} + +TypeOfRegistration__Type& TypeOfRegistration__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NG_NAS_Common.TypeOfRegistration_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +TypeOfRegistration__Type& TypeOfRegistration__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +TypeOfRegistration__Type& TypeOfRegistration__Type::operator=(const TypeOfRegistration__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean TypeOfRegistration__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +return enum_value == other_value; +} + +boolean TypeOfRegistration__Type::operator==(const TypeOfRegistration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +return enum_value == other_value.enum_value; +} + +boolean TypeOfRegistration__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +return enum_value < other_value; +} + +boolean TypeOfRegistration__Type::operator<(const TypeOfRegistration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +return enum_value < other_value.enum_value; +} + +boolean TypeOfRegistration__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +return enum_value > other_value; +} + +boolean TypeOfRegistration__Type::operator>(const TypeOfRegistration__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +return enum_value > other_value.enum_value; +} + +const char *TypeOfRegistration__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case Initial__NoSecurity: return "Initial_NoSecurity"; +case Initial__Secure: return "Initial_Secure"; +case Mobility: return "Mobility"; +case Periodic: return "Periodic"; +case Emergency: return "Emergency"; +case SNPN__Onboarding: return "SNPN_Onboarding"; +default: return ""; +} +} + +TypeOfRegistration__Type::enum_type TypeOfRegistration__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "Initial_NoSecurity")) return Initial__NoSecurity; +else if (!strcmp(str_par, "Initial_Secure")) return Initial__Secure; +else if (!strcmp(str_par, "Mobility")) return Mobility; +else if (!strcmp(str_par, "Periodic")) return Periodic; +else if (!strcmp(str_par, "Emergency")) return Emergency; +else if (!strcmp(str_par, "SNPN_Onboarding")) return SNPN__Onboarding; +else return UNKNOWN_VALUE; +} + +boolean TypeOfRegistration__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +return TRUE; +default: +return FALSE; +} +} + +int TypeOfRegistration__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int TypeOfRegistration__Type::enum2int(const TypeOfRegistration__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void TypeOfRegistration__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NG_NAS_Common.TypeOfRegistration_Type.", int_val); +enum_value = (enum_type)int_val; +} + +TypeOfRegistration__Type::operator TypeOfRegistration__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +return enum_value; +} + +boolean TypeOfRegistration__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void TypeOfRegistration__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* TypeOfRegistration__Type::clone() const { return new TypeOfRegistration__Type(*this); } +const TTCN_Typedescriptor_t* TypeOfRegistration__Type::get_descriptor() const { return &TypeOfRegistration__Type_descr_; } +void TypeOfRegistration__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void TypeOfRegistration__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NG_NAS_Common.TypeOfRegistration_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.TypeOfRegistration_Type."); + } +} + +Module_Param* TypeOfRegistration__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void TypeOfRegistration__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +text_buf.push_int(enum_value); +} + +void TypeOfRegistration__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NG_NAS_Common.TypeOfRegistration_Type.", enum_value); +} + +void TypeOfRegistration__Type_template::copy_template(const TypeOfRegistration__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new TypeOfRegistration__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new TypeOfRegistration__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new TypeOfRegistration__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +} +} + +TypeOfRegistration__Type_template::TypeOfRegistration__Type_template() +{ +} + +TypeOfRegistration__Type_template::TypeOfRegistration__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +TypeOfRegistration__Type_template::TypeOfRegistration__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!TypeOfRegistration__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type with unknown numeric value %d.", other_value); +single_value = (TypeOfRegistration__Type::enum_type)other_value; +} + +TypeOfRegistration__Type_template::TypeOfRegistration__Type_template(TypeOfRegistration__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +TypeOfRegistration__Type_template::TypeOfRegistration__Type_template(const TypeOfRegistration__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == TypeOfRegistration__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +single_value = other_value.enum_value; +} + +TypeOfRegistration__Type_template::TypeOfRegistration__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (TypeOfRegistration__Type::enum_type)(const TypeOfRegistration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type from an unbound optional field."); +} +} + +TypeOfRegistration__Type_template::TypeOfRegistration__Type_template(TypeOfRegistration__Type_template* p_precondition, TypeOfRegistration__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +TypeOfRegistration__Type_template::TypeOfRegistration__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +TypeOfRegistration__Type_template::TypeOfRegistration__Type_template(const TypeOfRegistration__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +TypeOfRegistration__Type_template::~TypeOfRegistration__Type_template() +{ +clean_up(); +} + +boolean TypeOfRegistration__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean TypeOfRegistration__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != TypeOfRegistration__Type::UNBOUND_VALUE; +} + +void TypeOfRegistration__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +TypeOfRegistration__Type_template& TypeOfRegistration__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TypeOfRegistration__Type_template& TypeOfRegistration__Type_template::operator=(int other_value) +{ +if (!TypeOfRegistration__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (TypeOfRegistration__Type::enum_type)other_value; +return *this; +} + +TypeOfRegistration__Type_template& TypeOfRegistration__Type_template::operator=(TypeOfRegistration__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +TypeOfRegistration__Type_template& TypeOfRegistration__Type_template::operator=(const TypeOfRegistration__Type& other_value) +{ +if (other_value.enum_value == TypeOfRegistration__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.TypeOfRegistration_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +TypeOfRegistration__Type_template& TypeOfRegistration__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (TypeOfRegistration__Type::enum_type)(const TypeOfRegistration__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +} +return *this; +} + +TypeOfRegistration__Type_template& TypeOfRegistration__Type_template::operator=(const TypeOfRegistration__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean TypeOfRegistration__Type_template::match(TypeOfRegistration__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +} +return FALSE; +} + +boolean TypeOfRegistration__Type_template::match(const TypeOfRegistration__Type& other_value, boolean) const +{ +if (other_value.enum_value == TypeOfRegistration__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type with an unbound value."); +return match(other_value.enum_value); +} + +TypeOfRegistration__Type::enum_type TypeOfRegistration__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +return single_value; +} + +void TypeOfRegistration__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new TypeOfRegistration__Type_template[list_length]; +} + +TypeOfRegistration__Type_template& TypeOfRegistration__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +return value_list.list_value[list_index]; +} + +void TypeOfRegistration__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void TypeOfRegistration__Type_template::set_value(template_sel other_value) { *this = other_value; } +void TypeOfRegistration__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* TypeOfRegistration__Type_template::clone() const { return new TypeOfRegistration__Type_template(*this); } +const TTCN_Typedescriptor_t* TypeOfRegistration__Type_template::get_descriptor() const { return &TypeOfRegistration__Type_descr_; } +boolean TypeOfRegistration__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void TypeOfRegistration__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void TypeOfRegistration__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(TypeOfRegistration__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void TypeOfRegistration__Type_template::log_match(const TypeOfRegistration__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void TypeOfRegistration__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +} +} + +void TypeOfRegistration__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (TypeOfRegistration__Type::enum_type)text_buf.pull_int().get_val(); +if (!TypeOfRegistration__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new TypeOfRegistration__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NG_NAS_Common.TypeOfRegistration_Type."); +} +} + +boolean TypeOfRegistration__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean TypeOfRegistration__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + TypeOfRegistration__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + TypeOfRegistration__Type::enum_type enum_val = TypeOfRegistration__Type::str_to_enum(m_p->get_enumerated()); + if (!TypeOfRegistration__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.TypeOfRegistration_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + TypeOfRegistration__Type_template* precondition = new TypeOfRegistration__Type_template; + precondition->set_param(*m_p->get_elem(0)); + TypeOfRegistration__Type_template* implied_template = new TypeOfRegistration__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = TypeOfRegistration__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NG_NAS_Common.TypeOfRegistration_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* TypeOfRegistration__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(TypeOfRegistration__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +RegistrationAccessType::RegistrationAccessType() +{ +enum_value = UNBOUND_VALUE; +} + +RegistrationAccessType::RegistrationAccessType(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NG_NAS_Common.RegistrationAccessType with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +RegistrationAccessType::RegistrationAccessType(enum_type other_value) +{ +enum_value = other_value; +} + +RegistrationAccessType::RegistrationAccessType(const RegistrationAccessType& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +enum_value = other_value.enum_value; +} + +RegistrationAccessType& RegistrationAccessType::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NG_NAS_Common.RegistrationAccessType.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +RegistrationAccessType& RegistrationAccessType::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +RegistrationAccessType& RegistrationAccessType::operator=(const RegistrationAccessType& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +enum_value = other_value.enum_value; +return *this; +} + +boolean RegistrationAccessType::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +return enum_value == other_value; +} + +boolean RegistrationAccessType::operator==(const RegistrationAccessType& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +return enum_value == other_value.enum_value; +} + +boolean RegistrationAccessType::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +return enum_value < other_value; +} + +boolean RegistrationAccessType::operator<(const RegistrationAccessType& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +return enum_value < other_value.enum_value; +} + +boolean RegistrationAccessType::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +return enum_value > other_value; +} + +boolean RegistrationAccessType::operator>(const RegistrationAccessType& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +return enum_value > other_value.enum_value; +} + +const char *RegistrationAccessType::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case Access__3GPP: return "Access_3GPP"; +case Non3GPP: return "Non3GPP"; +case Both__3GPP__Non3GPP: return "Both_3GPP_Non3GPP"; +default: return ""; +} +} + +RegistrationAccessType::enum_type RegistrationAccessType::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "Access_3GPP")) return Access__3GPP; +else if (!strcmp(str_par, "Non3GPP")) return Non3GPP; +else if (!strcmp(str_par, "Both_3GPP_Non3GPP")) return Both__3GPP__Non3GPP; +else return UNKNOWN_VALUE; +} + +boolean RegistrationAccessType::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +return TRUE; +default: +return FALSE; +} +} + +int RegistrationAccessType::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.RegistrationAccessType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int RegistrationAccessType::enum2int(const RegistrationAccessType& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.RegistrationAccessType.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void RegistrationAccessType::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NG_NAS_Common.RegistrationAccessType.", int_val); +enum_value = (enum_type)int_val; +} + +RegistrationAccessType::operator RegistrationAccessType::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NG_NAS_Common.RegistrationAccessType."); +return enum_value; +} + +boolean RegistrationAccessType::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void RegistrationAccessType::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* RegistrationAccessType::clone() const { return new RegistrationAccessType(*this); } +const TTCN_Typedescriptor_t* RegistrationAccessType::get_descriptor() const { return &RegistrationAccessType_descr_; } +void RegistrationAccessType::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void RegistrationAccessType::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NG_NAS_Common.RegistrationAccessType"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.RegistrationAccessType."); + } +} + +Module_Param* RegistrationAccessType::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void RegistrationAccessType::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +text_buf.push_int(enum_value); +} + +void RegistrationAccessType::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NG_NAS_Common.RegistrationAccessType.", enum_value); +} + +void RegistrationAccessType_template::copy_template(const RegistrationAccessType_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new RegistrationAccessType_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new RegistrationAccessType_template(*other_value.implication_.precondition); +implication_.implied_template = new RegistrationAccessType_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NG_NAS_Common.RegistrationAccessType."); +} +} + +RegistrationAccessType_template::RegistrationAccessType_template() +{ +} + +RegistrationAccessType_template::RegistrationAccessType_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +RegistrationAccessType_template::RegistrationAccessType_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!RegistrationAccessType::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NG_NAS_Common.RegistrationAccessType with unknown numeric value %d.", other_value); +single_value = (RegistrationAccessType::enum_type)other_value; +} + +RegistrationAccessType_template::RegistrationAccessType_template(RegistrationAccessType::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +RegistrationAccessType_template::RegistrationAccessType_template(const RegistrationAccessType& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == RegistrationAccessType::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType."); +single_value = other_value.enum_value; +} + +RegistrationAccessType_template::RegistrationAccessType_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (RegistrationAccessType::enum_type)(const RegistrationAccessType&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NG_NAS_Common.RegistrationAccessType from an unbound optional field."); +} +} + +RegistrationAccessType_template::RegistrationAccessType_template(RegistrationAccessType_template* p_precondition, RegistrationAccessType_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +RegistrationAccessType_template::RegistrationAccessType_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +RegistrationAccessType_template::RegistrationAccessType_template(const RegistrationAccessType_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +RegistrationAccessType_template::~RegistrationAccessType_template() +{ +clean_up(); +} + +boolean RegistrationAccessType_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean RegistrationAccessType_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != RegistrationAccessType::UNBOUND_VALUE; +} + +void RegistrationAccessType_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +RegistrationAccessType_template& RegistrationAccessType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RegistrationAccessType_template& RegistrationAccessType_template::operator=(int other_value) +{ +if (!RegistrationAccessType::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NG_NAS_Common.RegistrationAccessType.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (RegistrationAccessType::enum_type)other_value; +return *this; +} + +RegistrationAccessType_template& RegistrationAccessType_template::operator=(RegistrationAccessType::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +RegistrationAccessType_template& RegistrationAccessType_template::operator=(const RegistrationAccessType& other_value) +{ +if (other_value.enum_value == RegistrationAccessType::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.RegistrationAccessType to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +RegistrationAccessType_template& RegistrationAccessType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (RegistrationAccessType::enum_type)(const RegistrationAccessType&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NG_NAS_Common.RegistrationAccessType."); +} +return *this; +} + +RegistrationAccessType_template& RegistrationAccessType_template::operator=(const RegistrationAccessType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean RegistrationAccessType_template::match(RegistrationAccessType::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NG_NAS_Common.RegistrationAccessType."); +} +return FALSE; +} + +boolean RegistrationAccessType_template::match(const RegistrationAccessType& other_value, boolean) const +{ +if (other_value.enum_value == RegistrationAccessType::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NG_NAS_Common.RegistrationAccessType with an unbound value."); +return match(other_value.enum_value); +} + +RegistrationAccessType::enum_type RegistrationAccessType_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NG_NAS_Common.RegistrationAccessType."); +return single_value; +} + +void RegistrationAccessType_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NG_NAS_Common.RegistrationAccessType."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new RegistrationAccessType_template[list_length]; +} + +RegistrationAccessType_template& RegistrationAccessType_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NG_NAS_Common.RegistrationAccessType."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NG_NAS_Common.RegistrationAccessType."); +return value_list.list_value[list_index]; +} + +void RegistrationAccessType_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void RegistrationAccessType_template::set_value(template_sel other_value) { *this = other_value; } +void RegistrationAccessType_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* RegistrationAccessType_template::clone() const { return new RegistrationAccessType_template(*this); } +const TTCN_Typedescriptor_t* RegistrationAccessType_template::get_descriptor() const { return &RegistrationAccessType_descr_; } +boolean RegistrationAccessType_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void RegistrationAccessType_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void RegistrationAccessType_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(RegistrationAccessType::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void RegistrationAccessType_template::log_match(const RegistrationAccessType& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void RegistrationAccessType_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NG_NAS_Common.RegistrationAccessType."); +} +} + +void RegistrationAccessType_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (RegistrationAccessType::enum_type)text_buf.pull_int().get_val(); +if (!RegistrationAccessType::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NG_NAS_Common.RegistrationAccessType.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new RegistrationAccessType_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NG_NAS_Common.RegistrationAccessType."); +} +} + +boolean RegistrationAccessType_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean RegistrationAccessType_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + RegistrationAccessType_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + RegistrationAccessType::enum_type enum_val = RegistrationAccessType::str_to_enum(m_p->get_enumerated()); + if (!RegistrationAccessType::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.RegistrationAccessType."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + RegistrationAccessType_template* precondition = new RegistrationAccessType_template; + precondition->set_param(*m_p->get_elem(0)); + RegistrationAccessType_template* implied_template = new RegistrationAccessType_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = RegistrationAccessType_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NG_NAS_Common.RegistrationAccessType"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* RegistrationAccessType_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(RegistrationAccessType::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NG__ALL__STATE__Type::NG__ALL__STATE__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NG__ALL__STATE__Type::NG__ALL__STATE__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NG__ALL__STATE__Type::NG__ALL__STATE__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NG__ALL__STATE__Type::NG__ALL__STATE__Type(const NG__ALL__STATE__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +enum_value = other_value.enum_value; +} + +NG__ALL__STATE__Type& NG__ALL__STATE__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NG__ALL__STATE__Type& NG__ALL__STATE__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NG__ALL__STATE__Type& NG__ALL__STATE__Type::operator=(const NG__ALL__STATE__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NG__ALL__STATE__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +return enum_value == other_value; +} + +boolean NG__ALL__STATE__Type::operator==(const NG__ALL__STATE__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +return enum_value == other_value.enum_value; +} + +boolean NG__ALL__STATE__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +return enum_value < other_value; +} + +boolean NG__ALL__STATE__Type::operator<(const NG__ALL__STATE__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +return enum_value < other_value.enum_value; +} + +boolean NG__ALL__STATE__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +return enum_value > other_value; +} + +boolean NG__ALL__STATE__Type::operator>(const NG__ALL__STATE__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +return enum_value > other_value.enum_value; +} + +const char *NG__ALL__STATE__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case STATE__OFF__0A: return "STATE_OFF_0A"; +case STATE__OFF__0B: return "STATE_OFF_0B"; +case STATE__IDLE__1A: return "STATE_IDLE_1A"; +case STATE__INACTIVE__2A: return "STATE_INACTIVE_2A"; +case STATE__CONNECTED__3A: return "STATE_CONNECTED_3A"; +case STATE__CONNECTED__3A__T3540: return "STATE_CONNECTED_3A_T3540"; +case STATE__DEREGISTERED: return "STATE_DEREGISTERED"; +case STATE__EMERGENCY__RELEASE__CONNECTED: return "STATE_EMERGENCY_RELEASE_CONNECTED"; +case STATE__EMERGENCY__RELEASE__IDLE: return "STATE_EMERGENCY_RELEASE_IDLE"; +default: return ""; +} +} + +NG__ALL__STATE__Type::enum_type NG__ALL__STATE__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "STATE_OFF_0A")) return STATE__OFF__0A; +else if (!strcmp(str_par, "STATE_OFF_0B")) return STATE__OFF__0B; +else if (!strcmp(str_par, "STATE_IDLE_1A")) return STATE__IDLE__1A; +else if (!strcmp(str_par, "STATE_INACTIVE_2A")) return STATE__INACTIVE__2A; +else if (!strcmp(str_par, "STATE_CONNECTED_3A")) return STATE__CONNECTED__3A; +else if (!strcmp(str_par, "STATE_CONNECTED_3A_T3540")) return STATE__CONNECTED__3A__T3540; +else if (!strcmp(str_par, "STATE_DEREGISTERED")) return STATE__DEREGISTERED; +else if (!strcmp(str_par, "STATE_EMERGENCY_RELEASE_CONNECTED")) return STATE__EMERGENCY__RELEASE__CONNECTED; +else if (!strcmp(str_par, "STATE_EMERGENCY_RELEASE_IDLE")) return STATE__EMERGENCY__RELEASE__IDLE; +else return UNKNOWN_VALUE; +} + +boolean NG__ALL__STATE__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +case 7: +case 8: +return TRUE; +default: +return FALSE; +} +} + +int NG__ALL__STATE__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NG__ALL__STATE__Type::enum2int(const NG__ALL__STATE__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NG__ALL__STATE__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NG__ALL__STATE__Type::operator NG__ALL__STATE__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +return enum_value; +} + +boolean NG__ALL__STATE__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NG__ALL__STATE__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NG__ALL__STATE__Type::clone() const { return new NG__ALL__STATE__Type(*this); } +const TTCN_Typedescriptor_t* NG__ALL__STATE__Type::get_descriptor() const { return &NG__ALL__STATE__Type_descr_; } +void NG__ALL__STATE__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NG__ALL__STATE__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NG_NAS_Common.NG_ALL_STATE_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.NG_ALL_STATE_Type."); + } +} + +Module_Param* NG__ALL__STATE__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NG__ALL__STATE__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +text_buf.push_int(enum_value); +} + +void NG__ALL__STATE__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NG_NAS_Common.NG_ALL_STATE_Type.", enum_value); +} + +void NG__ALL__STATE__Type_template::copy_template(const NG__ALL__STATE__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NG__ALL__STATE__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NG__ALL__STATE__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NG__ALL__STATE__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +} +} + +NG__ALL__STATE__Type_template::NG__ALL__STATE__Type_template() +{ +} + +NG__ALL__STATE__Type_template::NG__ALL__STATE__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NG__ALL__STATE__Type_template::NG__ALL__STATE__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NG__ALL__STATE__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type with unknown numeric value %d.", other_value); +single_value = (NG__ALL__STATE__Type::enum_type)other_value; +} + +NG__ALL__STATE__Type_template::NG__ALL__STATE__Type_template(NG__ALL__STATE__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NG__ALL__STATE__Type_template::NG__ALL__STATE__Type_template(const NG__ALL__STATE__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NG__ALL__STATE__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +single_value = other_value.enum_value; +} + +NG__ALL__STATE__Type_template::NG__ALL__STATE__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NG__ALL__STATE__Type::enum_type)(const NG__ALL__STATE__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type from an unbound optional field."); +} +} + +NG__ALL__STATE__Type_template::NG__ALL__STATE__Type_template(NG__ALL__STATE__Type_template* p_precondition, NG__ALL__STATE__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NG__ALL__STATE__Type_template::NG__ALL__STATE__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NG__ALL__STATE__Type_template::NG__ALL__STATE__Type_template(const NG__ALL__STATE__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NG__ALL__STATE__Type_template::~NG__ALL__STATE__Type_template() +{ +clean_up(); +} + +boolean NG__ALL__STATE__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NG__ALL__STATE__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NG__ALL__STATE__Type::UNBOUND_VALUE; +} + +void NG__ALL__STATE__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NG__ALL__STATE__Type_template& NG__ALL__STATE__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__ALL__STATE__Type_template& NG__ALL__STATE__Type_template::operator=(int other_value) +{ +if (!NG__ALL__STATE__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NG__ALL__STATE__Type::enum_type)other_value; +return *this; +} + +NG__ALL__STATE__Type_template& NG__ALL__STATE__Type_template::operator=(NG__ALL__STATE__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NG__ALL__STATE__Type_template& NG__ALL__STATE__Type_template::operator=(const NG__ALL__STATE__Type& other_value) +{ +if (other_value.enum_value == NG__ALL__STATE__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NG__ALL__STATE__Type_template& NG__ALL__STATE__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NG__ALL__STATE__Type::enum_type)(const NG__ALL__STATE__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +} +return *this; +} + +NG__ALL__STATE__Type_template& NG__ALL__STATE__Type_template::operator=(const NG__ALL__STATE__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NG__ALL__STATE__Type_template::match(NG__ALL__STATE__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +} +return FALSE; +} + +boolean NG__ALL__STATE__Type_template::match(const NG__ALL__STATE__Type& other_value, boolean) const +{ +if (other_value.enum_value == NG__ALL__STATE__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type with an unbound value."); +return match(other_value.enum_value); +} + +NG__ALL__STATE__Type::enum_type NG__ALL__STATE__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +return single_value; +} + +void NG__ALL__STATE__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NG__ALL__STATE__Type_template[list_length]; +} + +NG__ALL__STATE__Type_template& NG__ALL__STATE__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +return value_list.list_value[list_index]; +} + +void NG__ALL__STATE__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NG__ALL__STATE__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NG__ALL__STATE__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NG__ALL__STATE__Type_template::clone() const { return new NG__ALL__STATE__Type_template(*this); } +const TTCN_Typedescriptor_t* NG__ALL__STATE__Type_template::get_descriptor() const { return &NG__ALL__STATE__Type_descr_; } +boolean NG__ALL__STATE__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NG__ALL__STATE__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NG__ALL__STATE__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NG__ALL__STATE__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NG__ALL__STATE__Type_template::log_match(const NG__ALL__STATE__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NG__ALL__STATE__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +} +} + +void NG__ALL__STATE__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NG__ALL__STATE__Type::enum_type)text_buf.pull_int().get_val(); +if (!NG__ALL__STATE__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NG__ALL__STATE__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NG_NAS_Common.NG_ALL_STATE_Type."); +} +} + +boolean NG__ALL__STATE__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NG__ALL__STATE__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NG__ALL__STATE__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NG__ALL__STATE__Type::enum_type enum_val = NG__ALL__STATE__Type::str_to_enum(m_p->get_enumerated()); + if (!NG__ALL__STATE__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.NG_ALL_STATE_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NG__ALL__STATE__Type_template* precondition = new NG__ALL__STATE__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NG__ALL__STATE__Type_template* implied_template = new NG__ALL__STATE__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NG__ALL__STATE__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NG_NAS_Common.NG_ALL_STATE_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NG__ALL__STATE__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NG__ALL__STATE__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +NG__NAS__NumOfPLMN__Type::NG__NAS__NumOfPLMN__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NG__NAS__NumOfPLMN__Type::NG__NAS__NumOfPLMN__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NG__NAS__NumOfPLMN__Type::NG__NAS__NumOfPLMN__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NG__NAS__NumOfPLMN__Type::NG__NAS__NumOfPLMN__Type(const NG__NAS__NumOfPLMN__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +enum_value = other_value.enum_value; +} + +NG__NAS__NumOfPLMN__Type& NG__NAS__NumOfPLMN__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NG__NAS__NumOfPLMN__Type& NG__NAS__NumOfPLMN__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NG__NAS__NumOfPLMN__Type& NG__NAS__NumOfPLMN__Type::operator=(const NG__NAS__NumOfPLMN__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NG__NAS__NumOfPLMN__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +return enum_value == other_value; +} + +boolean NG__NAS__NumOfPLMN__Type::operator==(const NG__NAS__NumOfPLMN__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +return enum_value == other_value.enum_value; +} + +boolean NG__NAS__NumOfPLMN__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +return enum_value < other_value; +} + +boolean NG__NAS__NumOfPLMN__Type::operator<(const NG__NAS__NumOfPLMN__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +return enum_value < other_value.enum_value; +} + +boolean NG__NAS__NumOfPLMN__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +return enum_value > other_value; +} + +boolean NG__NAS__NumOfPLMN__Type::operator>(const NG__NAS__NumOfPLMN__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +return enum_value > other_value.enum_value; +} + +const char *NG__NAS__NumOfPLMN__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case NG__AllCellsOnSamePLMN: return "NG_AllCellsOnSamePLMN"; +case NG__CellsOnDifferentPLMN: return "NG_CellsOnDifferentPLMN"; +default: return ""; +} +} + +NG__NAS__NumOfPLMN__Type::enum_type NG__NAS__NumOfPLMN__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "NG_AllCellsOnSamePLMN")) return NG__AllCellsOnSamePLMN; +else if (!strcmp(str_par, "NG_CellsOnDifferentPLMN")) return NG__CellsOnDifferentPLMN; +else return UNKNOWN_VALUE; +} + +boolean NG__NAS__NumOfPLMN__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int NG__NAS__NumOfPLMN__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NG__NAS__NumOfPLMN__Type::enum2int(const NG__NAS__NumOfPLMN__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NG__NAS__NumOfPLMN__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NG__NAS__NumOfPLMN__Type::operator NG__NAS__NumOfPLMN__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +return enum_value; +} + +boolean NG__NAS__NumOfPLMN__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NG__NAS__NumOfPLMN__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NG__NAS__NumOfPLMN__Type::clone() const { return new NG__NAS__NumOfPLMN__Type(*this); } +const TTCN_Typedescriptor_t* NG__NAS__NumOfPLMN__Type::get_descriptor() const { return &NG__NAS__NumOfPLMN__Type_descr_; } +void NG__NAS__NumOfPLMN__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NG__NAS__NumOfPLMN__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NG_NAS_Common.NG_NAS_NumOfPLMN_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); + } +} + +Module_Param* NG__NAS__NumOfPLMN__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NG__NAS__NumOfPLMN__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +text_buf.push_int(enum_value); +} + +void NG__NAS__NumOfPLMN__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type.", enum_value); +} + +void NG__NAS__NumOfPLMN__Type_template::copy_template(const NG__NAS__NumOfPLMN__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NG__NAS__NumOfPLMN__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NG__NAS__NumOfPLMN__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NG__NAS__NumOfPLMN__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +} +} + +NG__NAS__NumOfPLMN__Type_template::NG__NAS__NumOfPLMN__Type_template() +{ +} + +NG__NAS__NumOfPLMN__Type_template::NG__NAS__NumOfPLMN__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NG__NAS__NumOfPLMN__Type_template::NG__NAS__NumOfPLMN__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NG__NAS__NumOfPLMN__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type with unknown numeric value %d.", other_value); +single_value = (NG__NAS__NumOfPLMN__Type::enum_type)other_value; +} + +NG__NAS__NumOfPLMN__Type_template::NG__NAS__NumOfPLMN__Type_template(NG__NAS__NumOfPLMN__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NG__NAS__NumOfPLMN__Type_template::NG__NAS__NumOfPLMN__Type_template(const NG__NAS__NumOfPLMN__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NG__NAS__NumOfPLMN__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +single_value = other_value.enum_value; +} + +NG__NAS__NumOfPLMN__Type_template::NG__NAS__NumOfPLMN__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NG__NAS__NumOfPLMN__Type::enum_type)(const NG__NAS__NumOfPLMN__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type from an unbound optional field."); +} +} + +NG__NAS__NumOfPLMN__Type_template::NG__NAS__NumOfPLMN__Type_template(NG__NAS__NumOfPLMN__Type_template* p_precondition, NG__NAS__NumOfPLMN__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NG__NAS__NumOfPLMN__Type_template::NG__NAS__NumOfPLMN__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NG__NAS__NumOfPLMN__Type_template::NG__NAS__NumOfPLMN__Type_template(const NG__NAS__NumOfPLMN__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NG__NAS__NumOfPLMN__Type_template::~NG__NAS__NumOfPLMN__Type_template() +{ +clean_up(); +} + +boolean NG__NAS__NumOfPLMN__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NG__NAS__NumOfPLMN__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NG__NAS__NumOfPLMN__Type::UNBOUND_VALUE; +} + +void NG__NAS__NumOfPLMN__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NG__NAS__NumOfPLMN__Type_template& NG__NAS__NumOfPLMN__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__NumOfPLMN__Type_template& NG__NAS__NumOfPLMN__Type_template::operator=(int other_value) +{ +if (!NG__NAS__NumOfPLMN__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NG__NAS__NumOfPLMN__Type::enum_type)other_value; +return *this; +} + +NG__NAS__NumOfPLMN__Type_template& NG__NAS__NumOfPLMN__Type_template::operator=(NG__NAS__NumOfPLMN__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NG__NAS__NumOfPLMN__Type_template& NG__NAS__NumOfPLMN__Type_template::operator=(const NG__NAS__NumOfPLMN__Type& other_value) +{ +if (other_value.enum_value == NG__NAS__NumOfPLMN__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NG__NAS__NumOfPLMN__Type_template& NG__NAS__NumOfPLMN__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NG__NAS__NumOfPLMN__Type::enum_type)(const NG__NAS__NumOfPLMN__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +} +return *this; +} + +NG__NAS__NumOfPLMN__Type_template& NG__NAS__NumOfPLMN__Type_template::operator=(const NG__NAS__NumOfPLMN__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NG__NAS__NumOfPLMN__Type_template::match(NG__NAS__NumOfPLMN__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +} +return FALSE; +} + +boolean NG__NAS__NumOfPLMN__Type_template::match(const NG__NAS__NumOfPLMN__Type& other_value, boolean) const +{ +if (other_value.enum_value == NG__NAS__NumOfPLMN__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type with an unbound value."); +return match(other_value.enum_value); +} + +NG__NAS__NumOfPLMN__Type::enum_type NG__NAS__NumOfPLMN__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +return single_value; +} + +void NG__NAS__NumOfPLMN__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NG__NAS__NumOfPLMN__Type_template[list_length]; +} + +NG__NAS__NumOfPLMN__Type_template& NG__NAS__NumOfPLMN__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +return value_list.list_value[list_index]; +} + +void NG__NAS__NumOfPLMN__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NG__NAS__NumOfPLMN__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NG__NAS__NumOfPLMN__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NG__NAS__NumOfPLMN__Type_template::clone() const { return new NG__NAS__NumOfPLMN__Type_template(*this); } +const TTCN_Typedescriptor_t* NG__NAS__NumOfPLMN__Type_template::get_descriptor() const { return &NG__NAS__NumOfPLMN__Type_descr_; } +boolean NG__NAS__NumOfPLMN__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NG__NAS__NumOfPLMN__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NG__NAS__NumOfPLMN__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NG__NAS__NumOfPLMN__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NG__NAS__NumOfPLMN__Type_template::log_match(const NG__NAS__NumOfPLMN__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NG__NAS__NumOfPLMN__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +} +} + +void NG__NAS__NumOfPLMN__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NG__NAS__NumOfPLMN__Type::enum_type)text_buf.pull_int().get_val(); +if (!NG__NAS__NumOfPLMN__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NG__NAS__NumOfPLMN__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); +} +} + +boolean NG__NAS__NumOfPLMN__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NG__NAS__NumOfPLMN__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NG__NAS__NumOfPLMN__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NG__NAS__NumOfPLMN__Type::enum_type enum_val = NG__NAS__NumOfPLMN__Type::str_to_enum(m_p->get_enumerated()); + if (!NG__NAS__NumOfPLMN__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NG_NAS_Common.NG_NAS_NumOfPLMN_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NG__NAS__NumOfPLMN__Type_template* precondition = new NG__NAS__NumOfPLMN__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NG__NAS__NumOfPLMN__Type_template* implied_template = new NG__NAS__NumOfPLMN__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NG__NAS__NumOfPLMN__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NG_NAS_Common.NG_NAS_NumOfPLMN_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NG__NAS__NumOfPLMN__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NG__NAS__NumOfPLMN__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NG__NAS__GutiParameters__Type::init_vec() { fld_vec[0]=&field_AMF__RegionId; fld_vec[1]=&field_AMF__SetId; fld_vec[2]=&field_AMF__Pointer; fld_vec[3]=&field_NG__TMSI; } + +NG__NAS__GutiParameters__Type::NG__NAS__GutiParameters__Type() : Record_Type() { init_vec(); } + +NG__NAS__GutiParameters__Type::NG__NAS__GutiParameters__Type(const NG__NAS__GutiParameters__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_AMF__RegionId.is_bound() ) + field_AMF__RegionId = other_value.field_AMF__RegionId; +if (other_value.field_AMF__SetId.is_bound() ) + field_AMF__SetId = other_value.field_AMF__SetId; +if (other_value.field_AMF__Pointer.is_bound() ) + field_AMF__Pointer = other_value.field_AMF__Pointer; +if (other_value.field_NG__TMSI.is_bound() ) + field_NG__TMSI = other_value.field_NG__TMSI; +init_vec(); +} + +NG__NAS__GutiParameters__Type::NG__NAS__GutiParameters__Type(const BITSTRING& par_AMF__RegionId, + const BITSTRING& par_AMF__SetId, + const BITSTRING& par_AMF__Pointer, + const BITSTRING& par_NG__TMSI) : field_AMF__RegionId(par_AMF__RegionId), + field_AMF__SetId(par_AMF__SetId), + field_AMF__Pointer(par_AMF__Pointer), + field_NG__TMSI(par_NG__TMSI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__GutiParameters__Type::get_descriptor() const { return &NG__NAS__GutiParameters__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__GutiParameters__Type::fld_descriptors[] = { &CommonDefs::B8__Type_descr_, &CommonDefs::B10__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B32__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__GutiParameters__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__GutiParameters__Type::fld_names[] = { "AMF_RegionId", "AMF_SetId", "AMF_Pointer", "NG_TMSI" }; +const char* NG__NAS__GutiParameters__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NAS__GutiParameters__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NG__NAS__GutiParameters__Type_template::NG__NAS__GutiParameters__Type_template(NG__NAS__GutiParameters__Type_template* p_precondition, NG__NAS__GutiParameters__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__GutiParameters__Type_template::NG__NAS__GutiParameters__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__GutiParameters__Type_template::~NG__NAS__GutiParameters__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__GutiParameters__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__GutiParameters__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__GutiParameters__Type_template& NG__NAS__GutiParameters__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__GutiParameters__Type_template& NG__NAS__GutiParameters__Type_template::operator=(const NG__NAS__GutiParameters__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__GutiParameters__Type_template& NG__NAS__GutiParameters__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__GutiParameters__Type_template& NG__NAS__GutiParameters__Type_template::operator=(const NG__NAS__GutiParameters__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__GutiParameters__Type NG__NAS__GutiParameters__Type_template::valueof() const +{ +NG__NAS__GutiParameters__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__NAS__GutiParameters__Type_template::AMF__RegionId() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__NAS__GutiParameters__Type_template::AMF__RegionId() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NG__NAS__GutiParameters__Type_template::AMF__SetId() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NG__NAS__GutiParameters__Type_template::AMF__SetId() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__NAS__GutiParameters__Type_template::AMF__Pointer() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__NAS__GutiParameters__Type_template::AMF__Pointer() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__NAS__GutiParameters__Type_template::NG__TMSI() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__NAS__GutiParameters__Type_template::NG__TMSI() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* NG__NAS__GutiParameters__Type_template::get_descriptor() const { return &NG__NAS__GutiParameters__Type_descr_; } +const char* NG__NAS__GutiParameters__Type_template::fld_name(int p_index) const { return NG__NAS__GutiParameters__Type::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +PDUSessionInfoList__Type_template operator+(template_sel left_template, const PDUSessionInfoList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = PDUSessionInfoList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return PDUSessionInfoList__Type_template(ANY_VALUE); +} +PDUSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +PDUSessionInfoList__Type_template operator+(const PDUSessionInfoList__Type& left_value, const PDUSessionInfoList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = PDUSessionInfoList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +PDUSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +PDUSessionInfoList__Type_template operator+(template_sel left_template, const PDUSessionInfoList__Type& right_value) +{ +int res_length = PDUSessionInfoList__Type_template::get_length_for_concat(left_template) + PDUSessionInfoList__Type_template::get_length_for_concat(right_value); +PDUSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +PDUSessionInfoList__Type_template operator+(const PDUSessionInfoList__Type& left_value, template_sel right_template) +{ +int res_length = PDUSessionInfoList__Type_template::get_length_for_concat(left_value) + PDUSessionInfoList__Type_template::get_length_for_concat(right_template); +PDUSessionInfoList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__NAS__TypeDefs::NG__PacketFilterList_template cs__PacketFilterList__RemoteAddress(const BITSTRING& p__Id, const OCTETSTRING& p__Component) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 173, TTCN_Location::LOCATION_TEMPLATE, "cs_PacketFilterList_RemoteAddress"); +charstring_list param_names; +param_names[0] = "p_Id"; +param_names[1] = "p_Component"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_PacketFilterList_RemoteAddress", "template", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__Id, "p_Id", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Component, "p_Component", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__PacketFilterList_template ret_val; +{ +NG__NAS__TypeDefs::NG__PacketFilterList__Type2_template& tmp_0 = ret_val.new_(); +tmp_0.set_size(1); +{ +NG__NAS__TypeDefs::NG__PacketFilter__Type2_template& tmp_1 = tmp_0[0]; +tmp_1.spare() = NAS__CommonTemplates::tsc__Spare2; +tmp_1.direction() = bs_73; +tmp_1.packetFilterId() = p__Id; +tmp_1.len() = int2oct(p__Component.lengthof(), 1); +tmp_1.contents() = p__Component; +} +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PacketFilterList__RemoteAddress_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::QoS__Rule_template cs__QoS__RuleRemoteAccess(const OCTETSTRING& p__Id, const BITSTRING& p__DQR, const OCTETSTRING& p__Precedence, const BITSTRING& p__FlowId, const OCTETSTRING& p__Component, const OCTETSTRING& p__Length, const BITSTRING& p__FilterId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 185, TTCN_Location::LOCATION_TEMPLATE, "cs_QoS_RuleRemoteAccess"); +charstring_list param_names; +param_names[0] = "p_Id"; +param_names[1] = "p_DQR"; +param_names[2] = "p_Precedence"; +param_names[3] = "p_FlowId"; +param_names[4] = "p_Component"; +param_names[5] = "p_Length"; +param_names[6] = "p_FilterId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoS_RuleRemoteAccess", "template", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DQR, "p_DQR", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Precedence, "p_Precedence", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__FlowId, "p_FlowId", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Component, "p_Component", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__FilterId, "p_FilterId", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::QoS__Rule_template ret_val; +ret_val.identifier() = p__Id; +ret_val.iel() = p__Length; +ret_val.ruleOperationCode() = bs_57; +ret_val.dqrBit() = p__DQR; +ret_val.numOfPacketFilters() = bs_74; +ret_val.packetFilterList() = cs__PacketFilterList__RemoteAddress(p__FilterId, p__Component); +ret_val.precedence() = p__Precedence; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare1; +ret_val.segregation() = NAS__CommonTemplates::tsc__Spare1; +ret_val.flowIdentifier() = p__FlowId; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoS__RuleRemoteAccess_err_descr_ptr); +return ret_val; +} + +NG__NAS__GutiParameters__Type_template cs__NG__NAS__GutiParameters(const BITSTRING& p__AMF__RegionId, const BITSTRING& p__NG__TMSI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 205, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NAS_GutiParameters"); +charstring_list param_names; +param_names[0] = "p_AMF_RegionId"; +param_names[1] = "p_NG_TMSI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NAS_GutiParameters", "template", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__AMF__RegionId, "p_AMF_RegionId", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NG__TMSI, "p_NG_TMSI", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__GutiParameters__Type_template ret_val; +ret_val.AMF__RegionId() = p__AMF__RegionId; +ret_val.AMF__SetId() = bs_75; +ret_val.AMF__Pointer() = bs_76; +ret_val.NG__TMSI() = p__NG__TMSI; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NAS__GutiParameters_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__MobileIdentity_template cs__NG__MobileIdentity__Guti(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Guti) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 215, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_MobileIdentity_Guti"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Guti"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_MobileIdentity_Guti", "template", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Guti, "p_Guti", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__MobileIdentity_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = int2oct((p__Guti.lengthof() + 1), 2); +ret_val.idDigit1() = bs_77; +ret_val.oddEvenInd() = bs_78; +ret_val.typeOfId() = bs_58; +ret_val.otherDigits() = p__Guti; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__MobileIdentity__Guti_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__MobileIdentity_template cs__NG__MobileIdentity__STMSI(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Guti) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 226, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_MobileIdentity_STMSI"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Guti"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_MobileIdentity_STMSI", "template", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Guti, "p_Guti", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__MobileIdentity_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = int2oct((p__Guti.lengthof() + 1), 2); +ret_val.idDigit1() = bs_77; +ret_val.oddEvenInd() = bs_78; +ret_val.typeOfId() = bs_60; +ret_val.otherDigits() = p__Guti; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__MobileIdentity__STMSI_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__MobileIdentity_template cr__NG__MobileIdentity__TypeOfId(const BITSTRING_template& p__FirstDigit, const BITSTRING_template& p__OddEvenInd, const OCTETSTRING_template& p__OtherDigits, const BITSTRING_template& p__TypeOfId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 237, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_MobileIdentity_TypeOfId"); +charstring_list param_names; +param_names[0] = "p_FirstDigit"; +param_names[1] = "p_OddEvenInd"; +param_names[2] = "p_OtherDigits"; +param_names[3] = "p_TypeOfId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_MobileIdentity_TypeOfId", "template", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__FirstDigit, "p_FirstDigit", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OddEvenInd, "p_OddEvenInd", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OtherDigits, "p_OtherDigits", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TypeOfId, "p_TypeOfId", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__MobileIdentity_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = ANY_VALUE; +ret_val.idDigit1() = p__FirstDigit; +ret_val.oddEvenInd() = p__OddEvenInd; +ret_val.typeOfId() = p__TypeOfId; +ret_val.otherDigits() = p__OtherDigits; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__MobileIdentity__TypeOfId_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__MobileIdentity_template cr__NG__MobileIdentitySUCI(const BITSTRING_template& p__SUPIFormat, const OCTETSTRING_template& p__OtherDigits) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 251, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_MobileIdentitySUCI"); +charstring_list param_names; +param_names[0] = "p_SUPIFormat"; +param_names[1] = "p_OtherDigits"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_MobileIdentitySUCI", "template", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__SUPIFormat, "p_SUPIFormat", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OtherDigits, "p_OtherDigits", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__MobileIdentity_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = ANY_VALUE; +ret_val.idDigit1() = p__SUPIFormat; +ret_val.oddEvenInd() = bs_78; +ret_val.typeOfId() = bs_57; +ret_val.otherDigits() = p__OtherDigits; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__MobileIdentitySUCI_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__MobileIdentity_template f__NG__GutiParameters2MobileIdentity(const OCTETSTRING& p__NasPLMN, const NG__NAS__GutiParameters__Type& p__GutiParams, const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 281, TTCN_Location::LOCATION_FUNCTION, "f_NG_GutiParameters2MobileIdentity"); +charstring_list param_names; +param_names[0] = "p_NasPLMN"; +param_names[1] = "p_GutiParams"; +param_names[2] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_GutiParameters2MobileIdentity", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__NasPLMN, "p_NasPLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__GutiParams, "p_GutiParams", "NG_NAS_GutiParameters_Type", NULL, print_var_NG_NAS_Common); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(285); +ttcn3_debugger.breakpoint_entry(285); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 285 */ +BITSTRING v__AMFId(((const_cast< const NG__NAS__GutiParameters__Type&>(p__GutiParams).AMF__RegionId() + const_cast< const NG__NAS__GutiParameters__Type&>(p__GutiParams).AMF__SetId()) + const_cast< const NG__NAS__GutiParameters__Type&>(p__GutiParams).AMF__Pointer())); +debug_scope.add_variable(&v__AMFId, "v_AMFId", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(286); +ttcn3_debugger.breakpoint_entry(286); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 286 */ +OCTETSTRING v__GutiString(((p__NasPLMN + bit2oct(v__AMFId)) + bit2oct(const_cast< const NG__NAS__GutiParameters__Type&>(p__GutiParams).NG__TMSI()))); +debug_scope.add_variable(&v__GutiString, "v_GutiString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(287); +ttcn3_debugger.breakpoint_entry(287); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 287 */ +{ +NG__NAS__TypeDefs::NG__MobileIdentity_template tmp_2; +return DEBUGGER_STORE_RETURN_VALUE(tmp_2, cs__NG__MobileIdentity__Guti(p__IEI, v__GutiString)); +} +} + +NG__NAS__TypeDefs::NG__MobileIdentity_template f__NG__S__TMSI2MobileIdentity(const OCTETSTRING_template& p__IEI, const NG__NAS__GutiParameters__Type& p__GutiParams) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 298, TTCN_Location::LOCATION_FUNCTION, "f_NG_S_TMSI2MobileIdentity"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_GutiParams"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_S_TMSI2MobileIdentity", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__GutiParams, "p_GutiParams", "NG_NAS_GutiParameters_Type", NULL, print_var_NG_NAS_Common); +debug_scope.initial_snapshot(); +current_location.update_lineno(301); +ttcn3_debugger.breakpoint_entry(301); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 301 */ +BITSTRING v__AMFId((const_cast< const NG__NAS__GutiParameters__Type&>(p__GutiParams).AMF__SetId() + const_cast< const NG__NAS__GutiParameters__Type&>(p__GutiParams).AMF__Pointer())); +debug_scope.add_variable(&v__AMFId, "v_AMFId", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(302); +ttcn3_debugger.breakpoint_entry(302); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 302 */ +OCTETSTRING v__STMSIString((bit2oct(v__AMFId) + bit2oct(const_cast< const NG__NAS__GutiParameters__Type&>(p__GutiParams).NG__TMSI()))); +debug_scope.add_variable(&v__STMSIString, "v_STMSIString", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(303); +ttcn3_debugger.breakpoint_entry(303); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 303 */ +{ +NG__NAS__TypeDefs::NG__MobileIdentity_template tmp_3; +return DEBUGGER_STORE_RETURN_VALUE(tmp_3, cs__NG__MobileIdentity__STMSI(p__IEI, v__STMSIString)); +} +} + +NG__NAS__TypeDefs::NG__MobileIdentity_template f__NG__Imeisv2MobileIdentity(const HEXSTRING& p__IMEISV) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 313, TTCN_Location::LOCATION_FUNCTION, "f_NG_Imeisv2MobileIdentity"); +charstring_list param_names; +param_names[0] = "p_IMEISV"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Imeisv2MobileIdentity", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__IMEISV, "p_IMEISV", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(315); +ttcn3_debugger.breakpoint_entry(315); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 315 */ +INTEGER v__ImeiLength(p__IMEISV.lengthof()); +debug_scope.add_variable(&v__ImeiLength, "v_ImeiLength", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(316); +ttcn3_debugger.breakpoint_entry(316); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 316 */ +INTEGER v__Odd(rem(v__ImeiLength, 2)); +debug_scope.add_variable(&v__Odd, "v_Odd", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(317); +ttcn3_debugger.breakpoint_entry(317); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 317 */ +OCTETSTRING v__Other(NAS__AuxiliaryDefsAndFunctions::f__ImsiImei2Octetstring(p__IMEISV)); +debug_scope.add_variable(&v__Other, "v_Other", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(318); +ttcn3_debugger.breakpoint_entry(318); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 318 */ +BITSTRING v__FirstDigit(hex2bit(const_cast< const HEXSTRING&>(p__IMEISV)[0])); +debug_scope.add_variable(&v__FirstDigit, "v_FirstDigit", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(319); +ttcn3_debugger.breakpoint_entry(319); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 319 */ +BITSTRING v__OddEvenInd(int2bit(v__Odd, 1)); +debug_scope.add_variable(&v__OddEvenInd, "v_OddEvenInd", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(321); +ttcn3_debugger.breakpoint_entry(321); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 321 */ +{ +NG__NAS__TypeDefs::NG__MobileIdentity_template tmp_4; +return DEBUGGER_STORE_RETURN_VALUE(tmp_4, cr__NG__MobileIdentity__TypeOfId(BITSTRING_template(v__FirstDigit), BITSTRING_template(v__OddEvenInd), OCTETSTRING_template(v__Other), BITSTRING_template(bs_61))); +} +} + +CHARSTRING f__ConvertRejectedS__NSSAI__ForATCommand(const NG__NAS__TypeDefs::RejectedS__NSSAI_template& p__S__NSSAI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 331, TTCN_Location::LOCATION_FUNCTION, "f_ConvertRejectedS_NSSAI_ForATCommand"); +charstring_list param_names; +param_names[0] = "p_S_NSSAI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ConvertRejectedS_NSSAI_ForATCommand", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__S__NSSAI, "p_S_NSSAI", "RejectedS_NSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(333); +ttcn3_debugger.breakpoint_entry(333); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 333 */ +NG__NAS__TypeDefs::RejectedS__NSSAI v__S__NSSAI(p__S__NSSAI.valueof()); +debug_scope.add_variable(&v__S__NSSAI, "v_S_NSSAI", "RejectedS_NSSAI", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(334); +ttcn3_debugger.breakpoint_entry(334); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 334 */ +CHARSTRING v__S__NSSAIstring(cs_0); +debug_scope.add_variable(&v__S__NSSAIstring, "v_S_NSSAIstring", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(336); +ttcn3_debugger.breakpoint_entry(336); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 336 */ +v__S__NSSAIstring = oct2str(const_cast< const NG__NAS__TypeDefs::RejectedS__NSSAI&>(v__S__NSSAI).sst()); +current_location.update_lineno(337); +ttcn3_debugger.breakpoint_entry(337); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 337 */ +{ +boolean tmp_9; +{ +boolean tmp_6 = v__S__NSSAI.is_bound(); +if(tmp_6) { +const OPTIONAL< OCTETSTRING >& tmp_7 = v__S__NSSAI.sd(); +switch (tmp_7.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_6 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_6 = FALSE; +break; +default: +{ +const OCTETSTRING& tmp_8 = (const OCTETSTRING&) tmp_7; +tmp_6 = tmp_8.is_present(); +break;} +} +} +tmp_9 = tmp_6; +} +if (tmp_9) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(338); +ttcn3_debugger.breakpoint_entry(338); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 338 */ +{ +CHARSTRING tmp_10; +tmp_10 = ((v__S__NSSAIstring + cs_1) + oct2str(const_cast< const NG__NAS__TypeDefs::RejectedS__NSSAI&>(v__S__NSSAI).sd()())); +v__S__NSSAIstring = tmp_10; +} +} +} +current_location.update_lineno(340); +ttcn3_debugger.breakpoint_entry(340); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 340 */ +{ +CHARSTRING tmp_11; +tmp_11 = ((v__S__NSSAIstring + cs_2) + int2str(bit2int(const_cast< const NG__NAS__TypeDefs::RejectedS__NSSAI&>(v__S__NSSAI).causeValue()))); +v__S__NSSAIstring = tmp_11; +} +current_location.update_lineno(341); +ttcn3_debugger.breakpoint_entry(341); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 341 */ +{ +CHARSTRING tmp_12; +return DEBUGGER_STORE_RETURN_VALUE(tmp_12, v__S__NSSAIstring); +} +} + +CHARSTRING f__Convert__ListOfRejectedNSSAI__ForATCommand(const NG__NAS__TypeDefs::RejectedNSSAI_template& p__NSSAI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 350, TTCN_Location::LOCATION_FUNCTION, "f_Convert_ListOfRejectedNSSAI_ForATCommand"); +charstring_list param_names; +param_names[0] = "p_NSSAI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Convert_ListOfRejectedNSSAI_ForATCommand", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__NSSAI, "p_NSSAI", "RejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(352); +ttcn3_debugger.breakpoint_entry(352); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 352 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(353); +ttcn3_debugger.breakpoint_entry(353); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 353 */ +INTEGER v__Length(const_cast< const NG__NAS__TypeDefs::RejectedNSSAI_template&>(p__NSSAI).rejectS__NSSAI().lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(354); +ttcn3_debugger.breakpoint_entry(354); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 354 */ +CHARSTRING v__ListOfNSSAI(cs_0); +debug_scope.add_variable(&v__ListOfNSSAI, "v_ListOfNSSAI", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(355); +ttcn3_debugger.breakpoint_entry(355); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 355 */ +CHARSTRING v__S__NSSAI(cs_0); +debug_scope.add_variable(&v__S__NSSAI, "v_S_NSSAI", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(357); +ttcn3_debugger.breakpoint_entry(357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 357 */ +i = 0; +current_location.update_lineno(357); +ttcn3_debugger.breakpoint_entry(357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 357 */ +for ( ; ; ) { +current_location.update_lineno(357); +ttcn3_debugger.breakpoint_entry(357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 357 */ +if (!(i < v__Length)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(358); +ttcn3_debugger.breakpoint_entry(358); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 358 */ +v__S__NSSAI = f__ConvertRejectedS__NSSAI__ForATCommand(const_cast< const NG__NAS__TypeDefs::RejectedNSSAI_template&>(p__NSSAI).rejectS__NSSAI()[i]); +current_location.update_lineno(359); +ttcn3_debugger.breakpoint_entry(359); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 359 */ +{ +CHARSTRING tmp_15; +tmp_15 = (v__ListOfNSSAI + v__S__NSSAI); +v__ListOfNSSAI = tmp_15; +} +current_location.update_lineno(360); +ttcn3_debugger.breakpoint_entry(360); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 360 */ +if ((i < (v__Length - 1))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(361); +ttcn3_debugger.breakpoint_entry(361); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 361 */ +{ +CHARSTRING tmp_16; +tmp_16 = (v__ListOfNSSAI + cs_3); +v__ListOfNSSAI = tmp_16; +} +} +current_location.update_lineno(357); +ttcn3_debugger.breakpoint_entry(357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 357 */ +{ +INTEGER tmp_17; +++i; +} +} +current_location.update_lineno(364); +ttcn3_debugger.breakpoint_entry(364); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 364 */ +{ +CHARSTRING tmp_18; +return DEBUGGER_STORE_RETURN_VALUE(tmp_18, v__ListOfNSSAI); +} +} + +CHARSTRING f__Convert__ListOfExtdRejectedNSSAI__ForMMICommand(const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__NSSAI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 372, TTCN_Location::LOCATION_FUNCTION, "f_Convert_ListOfExtdRejectedNSSAI_ForMMICommand"); +charstring_list param_names; +param_names[0] = "p_NSSAI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Convert_ListOfExtdRejectedNSSAI_ForMMICommand", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__NSSAI, "p_NSSAI", "ExtdRejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(374); +ttcn3_debugger.breakpoint_entry(374); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 374 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(375); +ttcn3_debugger.breakpoint_entry(375); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 375 */ +INTEGER v__Length(const_cast< const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template&>(p__NSSAI).partialXtd().lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(376); +ttcn3_debugger.breakpoint_entry(376); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 376 */ +CHARSTRING v__ListOfNSSAI(cs_0); +debug_scope.add_variable(&v__ListOfNSSAI, "v_ListOfNSSAI", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(377); +ttcn3_debugger.breakpoint_entry(377); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 377 */ +CHARSTRING v__S__NSSAI(cs_0); +debug_scope.add_variable(&v__S__NSSAI, "v_S_NSSAI", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(379); +ttcn3_debugger.breakpoint_entry(379); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 379 */ +i = 0; +current_location.update_lineno(379); +ttcn3_debugger.breakpoint_entry(379); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 379 */ +for ( ; ; ) { +current_location.update_lineno(379); +ttcn3_debugger.breakpoint_entry(379); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 379 */ +if (!(i < v__Length)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(380); +ttcn3_debugger.breakpoint_entry(380); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 380 */ +v__S__NSSAI = f__ConvertPartialXtdRejectedS__NSSAI__ForMMICommand(const_cast< const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template&>(p__NSSAI).partialXtd()[i]); +current_location.update_lineno(381); +ttcn3_debugger.breakpoint_entry(381); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 381 */ +{ +CHARSTRING tmp_21; +tmp_21 = (v__ListOfNSSAI + v__S__NSSAI); +v__ListOfNSSAI = tmp_21; +} +current_location.update_lineno(382); +ttcn3_debugger.breakpoint_entry(382); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 382 */ +if ((i < (v__Length - 1))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(383); +ttcn3_debugger.breakpoint_entry(383); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 383 */ +{ +CHARSTRING tmp_22; +tmp_22 = (v__ListOfNSSAI + cs_3); +v__ListOfNSSAI = tmp_22; +} +} +current_location.update_lineno(379); +ttcn3_debugger.breakpoint_entry(379); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 379 */ +{ +INTEGER tmp_23; +++i; +} +} +current_location.update_lineno(386); +ttcn3_debugger.breakpoint_entry(386); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 386 */ +{ +CHARSTRING tmp_24; +return DEBUGGER_STORE_RETURN_VALUE(tmp_24, v__ListOfNSSAI); +} +} + +CHARSTRING f__ConvertPartialXtdRejectedS__NSSAI__ForMMICommand(const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template& p__Partial__NSSAI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 394, TTCN_Location::LOCATION_FUNCTION, "f_ConvertPartialXtdRejectedS_NSSAI_ForMMICommand"); +charstring_list param_names; +param_names[0] = "p_Partial_NSSAI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ConvertPartialXtdRejectedS_NSSAI_ForMMICommand", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__Partial__NSSAI, "p_Partial_NSSAI", "PartialXtdRejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(396); +ttcn3_debugger.breakpoint_entry(396); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 396 */ +NG__NAS__TypeDefs::PartialXtdRejectedNSSAI v__Partial__NSSAI(p__Partial__NSSAI.valueof()); +debug_scope.add_variable(&v__Partial__NSSAI, "v_Partial_NSSAI", "PartialXtdRejectedNSSAI", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(397); +ttcn3_debugger.breakpoint_entry(397); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 397 */ +NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List v__Xtd__List; +debug_scope.add_variable(&v__Xtd__List, "v_Xtd_List", "XtdRejectedS_NSSAI_List", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(398); +ttcn3_debugger.breakpoint_entry(398); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 398 */ +NG__NAS__TypeDefs::XtdRejectedS__NSSAI v__XtdRejectedS__NSSAI; +debug_scope.add_variable(&v__XtdRejectedS__NSSAI, "v_XtdRejectedS_NSSAI", "XtdRejectedS_NSSAI", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(399); +ttcn3_debugger.breakpoint_entry(399); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 399 */ +INTEGER v__NumOfElements; +debug_scope.add_variable(&v__NumOfElements, "v_NumOfElements", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(400); +ttcn3_debugger.breakpoint_entry(400); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 400 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(401); +ttcn3_debugger.breakpoint_entry(401); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 401 */ +CHARSTRING v__S__NSSAIstring(cs_0); +debug_scope.add_variable(&v__S__NSSAIstring, "v_S_NSSAIstring", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(403); +ttcn3_debugger.breakpoint_entry(403); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 403 */ +if (v__Partial__NSSAI.ischosen(NG__NAS__TypeDefs::PartialXtdRejectedNSSAI::ALT_type0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(404); +ttcn3_debugger.breakpoint_entry(404); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 404 */ +v__NumOfElements = bit2int(const_cast< const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI&>(v__Partial__NSSAI).type0().numOfElements()); +current_location.update_lineno(405); +ttcn3_debugger.breakpoint_entry(405); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 405 */ +{ +NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List& tmp_27 = v__Xtd__List; /* 7388 */ +NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List tmp_29; +NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_rejectS__NSSAI tmp_28; +tmp_28 = v__Partial__NSSAI.type0().rejectS__NSSAI(); +if (!conv_NG__NAS__TypeDefs_PartialXtdRejectedNSSAIType0_rejectS__NSSAI_NG__NAS__TypeDefs_XtdRejectedS__NSSAI__List(tmp_29, tmp_28)) TTCN_error("Values or templates of types `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0.rejectS_NSSAI' and `@NG_NAS_TypeDefs.XtdRejectedS_NSSAI_List' are not compatible at run-time"); +tmp_27 = tmp_29; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(408); +ttcn3_debugger.breakpoint_entry(408); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 408 */ +v__NumOfElements = bit2int(const_cast< const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI&>(v__Partial__NSSAI).type1().numOfElements()); +current_location.update_lineno(409); +ttcn3_debugger.breakpoint_entry(409); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 409 */ +v__Xtd__List = const_cast< const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI&>(v__Partial__NSSAI).type1().rejectS__NSSAI(); +} +current_location.update_lineno(412); +ttcn3_debugger.breakpoint_entry(412); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 412 */ +i = 0; +current_location.update_lineno(412); +ttcn3_debugger.breakpoint_entry(412); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 412 */ +for ( ; ; ) { +current_location.update_lineno(412); +ttcn3_debugger.breakpoint_entry(412); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 412 */ +if (!(i < v__NumOfElements)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(413); +ttcn3_debugger.breakpoint_entry(413); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 413 */ +v__XtdRejectedS__NSSAI = const_cast< const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List&>(v__Xtd__List)[i]; +current_location.update_lineno(414); +ttcn3_debugger.breakpoint_entry(414); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 414 */ +{ +CHARSTRING tmp_34; +tmp_34 = (v__S__NSSAIstring + f__ConvertXtdRejectedS__NSSAI__ForMMICommand(v__XtdRejectedS__NSSAI)); +v__S__NSSAIstring = tmp_34; +} +current_location.update_lineno(415); +ttcn3_debugger.breakpoint_entry(415); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 415 */ +if ((i < (v__NumOfElements - 1))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(416); +ttcn3_debugger.breakpoint_entry(416); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 416 */ +{ +CHARSTRING tmp_35; +tmp_35 = (v__S__NSSAIstring + cs_3); +v__S__NSSAIstring = tmp_35; +} +} +current_location.update_lineno(412); +ttcn3_debugger.breakpoint_entry(412); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 412 */ +{ +INTEGER tmp_36; +++i; +} +} +current_location.update_lineno(419); +ttcn3_debugger.breakpoint_entry(419); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 419 */ +{ +CHARSTRING tmp_37; +return DEBUGGER_STORE_RETURN_VALUE(tmp_37, v__S__NSSAIstring); +} +} + +CHARSTRING f__ConvertXtdRejectedS__NSSAI__ForMMICommand(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI& p__Xtd__NSSAI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 427, TTCN_Location::LOCATION_FUNCTION, "f_ConvertXtdRejectedS_NSSAI_ForMMICommand"); +charstring_list param_names; +param_names[0] = "p_Xtd_NSSAI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ConvertXtdRejectedS_NSSAI_ForMMICommand", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__Xtd__NSSAI, "p_Xtd_NSSAI", "XtdRejectedS_NSSAI", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(429); +ttcn3_debugger.breakpoint_entry(429); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 429 */ +CHARSTRING v__S__NSSAIstring(cs_0); +debug_scope.add_variable(&v__S__NSSAIstring, "v_S_NSSAIstring", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(431); +ttcn3_debugger.breakpoint_entry(431); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 431 */ +v__S__NSSAIstring = f__ConvertS__NSSAI__VForMMICommand(const_cast< const NG__NAS__TypeDefs::XtdRejectedS__NSSAI&>(p__Xtd__NSSAI).snssai()); +current_location.update_lineno(432); +ttcn3_debugger.breakpoint_entry(432); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 432 */ +{ +CHARSTRING tmp_39; +tmp_39 = ((v__S__NSSAIstring + cs_2) + int2str(bit2int(const_cast< const NG__NAS__TypeDefs::XtdRejectedS__NSSAI&>(p__Xtd__NSSAI).causeValue()))); +v__S__NSSAIstring = tmp_39; +} +current_location.update_lineno(433); +ttcn3_debugger.breakpoint_entry(433); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 433 */ +{ +CHARSTRING tmp_40; +return DEBUGGER_STORE_RETURN_VALUE(tmp_40, v__S__NSSAIstring); +} +} + +CHARSTRING f__ConvertS__NSSAI__VForMMICommand(const NG__NAS__TypeDefs::S__NSSAI__V& p__S__NSSAI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 441, TTCN_Location::LOCATION_FUNCTION, "f_ConvertS_NSSAI_VForMMICommand"); +charstring_list param_names; +param_names[0] = "p_S_NSSAI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ConvertS_NSSAI_VForMMICommand", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__S__NSSAI, "p_S_NSSAI", "S_NSSAI_V", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(443); +ttcn3_debugger.breakpoint_entry(443); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 443 */ +CHARSTRING v__S__NSSAIstring(cs_0); +debug_scope.add_variable(&v__S__NSSAIstring, "v_S_NSSAIstring", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(445); +ttcn3_debugger.breakpoint_entry(445); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 445 */ +v__S__NSSAIstring = oct2str(const_cast< const NG__NAS__TypeDefs::S__NSSAI__V&>(p__S__NSSAI).sst()); +current_location.update_lineno(446); +ttcn3_debugger.breakpoint_entry(446); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 446 */ +{ +boolean tmp_45; +{ +boolean tmp_42 = p__S__NSSAI.is_bound(); +if(tmp_42) { +const OPTIONAL< OCTETSTRING >& tmp_43 = p__S__NSSAI.sd(); +switch (tmp_43.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_42 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_42 = FALSE; +break; +default: +{ +const OCTETSTRING& tmp_44 = (const OCTETSTRING&) tmp_43; +tmp_42 = tmp_44.is_present(); +break;} +} +} +tmp_45 = tmp_42; +} +if (tmp_45) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(447); +ttcn3_debugger.breakpoint_entry(447); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 447 */ +{ +CHARSTRING tmp_46; +tmp_46 = ((v__S__NSSAIstring + cs_1) + oct2str(const_cast< const NG__NAS__TypeDefs::S__NSSAI__V&>(p__S__NSSAI).sd()())); +v__S__NSSAIstring = tmp_46; +} +} +} +current_location.update_lineno(449); +ttcn3_debugger.breakpoint_entry(449); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 449 */ +{ +boolean tmp_50; +{ +boolean tmp_47 = p__S__NSSAI.is_bound(); +if(tmp_47) { +const OPTIONAL< OCTETSTRING >& tmp_48 = p__S__NSSAI.mappedSST(); +switch (tmp_48.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_47 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_47 = FALSE; +break; +default: +{ +const OCTETSTRING& tmp_49 = (const OCTETSTRING&) tmp_48; +tmp_47 = tmp_49.is_present(); +break;} +} +} +tmp_50 = tmp_47; +} +if (tmp_50) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(450); +ttcn3_debugger.breakpoint_entry(450); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 450 */ +{ +CHARSTRING tmp_51; +tmp_51 = ((v__S__NSSAIstring + cs_1) + oct2str(const_cast< const NG__NAS__TypeDefs::S__NSSAI__V&>(p__S__NSSAI).mappedSST()())); +v__S__NSSAIstring = tmp_51; +} +} +} +current_location.update_lineno(452); +ttcn3_debugger.breakpoint_entry(452); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 452 */ +{ +boolean tmp_55; +{ +boolean tmp_52 = p__S__NSSAI.is_bound(); +if(tmp_52) { +const OPTIONAL< OCTETSTRING >& tmp_53 = p__S__NSSAI.mappedSD(); +switch (tmp_53.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_52 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_52 = FALSE; +break; +default: +{ +const OCTETSTRING& tmp_54 = (const OCTETSTRING&) tmp_53; +tmp_52 = tmp_54.is_present(); +break;} +} +} +tmp_55 = tmp_52; +} +if (tmp_55) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(453); +ttcn3_debugger.breakpoint_entry(453); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 453 */ +{ +CHARSTRING tmp_56; +tmp_56 = ((v__S__NSSAIstring + cs_1) + oct2str(const_cast< const NG__NAS__TypeDefs::S__NSSAI__V&>(p__S__NSSAI).mappedSD()())); +v__S__NSSAIstring = tmp_56; +} +} +} +current_location.update_lineno(455); +ttcn3_debugger.breakpoint_entry(455); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 455 */ +{ +CHARSTRING tmp_57; +return DEBUGGER_STORE_RETURN_VALUE(tmp_57, v__S__NSSAIstring); +} +} + +CHARSTRING f__ConvertS__NSSAI__ForATCommand(const NG__NAS__TypeDefs::S__NSSAI__LV_template& p__S__NSSAI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 464, TTCN_Location::LOCATION_FUNCTION, "f_ConvertS_NSSAI_ForATCommand"); +charstring_list param_names; +param_names[0] = "p_S_NSSAI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_ConvertS_NSSAI_ForATCommand", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__S__NSSAI, "p_S_NSSAI", "S_NSSAI_LV template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(466); +ttcn3_debugger.breakpoint_entry(466); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 466 */ +NG__NAS__TypeDefs::S__NSSAI__LV v__S__NSSAI(p__S__NSSAI.valueof()); +debug_scope.add_variable(&v__S__NSSAI, "v_S_NSSAI", "S_NSSAI_LV", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(467); +ttcn3_debugger.breakpoint_entry(467); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 467 */ +CHARSTRING v__S__NSSAIstring(cs_0); +debug_scope.add_variable(&v__S__NSSAIstring, "v_S_NSSAIstring", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(469); +ttcn3_debugger.breakpoint_entry(469); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 469 */ +v__S__NSSAIstring = oct2str(const_cast< const NG__NAS__TypeDefs::S__NSSAI__LV&>(v__S__NSSAI).vPart().sst()); +current_location.update_lineno(470); +ttcn3_debugger.breakpoint_entry(470); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 470 */ +{ +boolean tmp_64; +{ +boolean tmp_59 = v__S__NSSAI.is_bound(); +if(tmp_59) { +const NG__NAS__TypeDefs::S__NSSAI__LV& tmp_60 = v__S__NSSAI; +const NG__NAS__TypeDefs::S__NSSAI__V& tmp_61 = tmp_60.vPart(); +tmp_59 = tmp_61.is_bound(); +if(tmp_59) { +const OPTIONAL< OCTETSTRING >& tmp_62 = tmp_61.sd(); +switch (tmp_62.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_59 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_59 = FALSE; +break; +default: +{ +const OCTETSTRING& tmp_63 = (const OCTETSTRING&) tmp_62; +tmp_59 = tmp_63.is_present(); +break;} +} +} +} +tmp_64 = tmp_59; +} +if (tmp_64) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(471); +ttcn3_debugger.breakpoint_entry(471); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 471 */ +{ +CHARSTRING tmp_65; +tmp_65 = ((v__S__NSSAIstring + cs_1) + oct2str(const_cast< const NG__NAS__TypeDefs::S__NSSAI__LV&>(v__S__NSSAI).vPart().sd()())); +v__S__NSSAIstring = tmp_65; +} +} +} +current_location.update_lineno(473); +ttcn3_debugger.breakpoint_entry(473); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 473 */ +{ +boolean tmp_71; +{ +boolean tmp_66 = v__S__NSSAI.is_bound(); +if(tmp_66) { +const NG__NAS__TypeDefs::S__NSSAI__LV& tmp_67 = v__S__NSSAI; +const NG__NAS__TypeDefs::S__NSSAI__V& tmp_68 = tmp_67.vPart(); +tmp_66 = tmp_68.is_bound(); +if(tmp_66) { +const OPTIONAL< OCTETSTRING >& tmp_69 = tmp_68.mappedSST(); +switch (tmp_69.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_66 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_66 = FALSE; +break; +default: +{ +const OCTETSTRING& tmp_70 = (const OCTETSTRING&) tmp_69; +tmp_66 = tmp_70.is_present(); +break;} +} +} +} +tmp_71 = tmp_66; +} +if (tmp_71) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(474); +ttcn3_debugger.breakpoint_entry(474); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 474 */ +{ +CHARSTRING tmp_72; +tmp_72 = ((v__S__NSSAIstring + cs_4) + oct2str(const_cast< const NG__NAS__TypeDefs::S__NSSAI__LV&>(v__S__NSSAI).vPart().mappedSST()())); +v__S__NSSAIstring = tmp_72; +} +} +} +current_location.update_lineno(476); +ttcn3_debugger.breakpoint_entry(476); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 476 */ +{ +boolean tmp_78; +{ +boolean tmp_73 = v__S__NSSAI.is_bound(); +if(tmp_73) { +const NG__NAS__TypeDefs::S__NSSAI__LV& tmp_74 = v__S__NSSAI; +const NG__NAS__TypeDefs::S__NSSAI__V& tmp_75 = tmp_74.vPart(); +tmp_73 = tmp_75.is_bound(); +if(tmp_73) { +const OPTIONAL< OCTETSTRING >& tmp_76 = tmp_75.mappedSD(); +switch (tmp_76.get_selection()) { +case OPTIONAL_UNBOUND: +tmp_73 = FALSE; +break; +case OPTIONAL_OMIT: +tmp_73 = FALSE; +break; +default: +{ +const OCTETSTRING& tmp_77 = (const OCTETSTRING&) tmp_76; +tmp_73 = tmp_77.is_present(); +break;} +} +} +} +tmp_78 = tmp_73; +} +if (tmp_78) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(477); +ttcn3_debugger.breakpoint_entry(477); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 477 */ +{ +CHARSTRING tmp_79; +tmp_79 = ((v__S__NSSAIstring + cs_1) + oct2str(const_cast< const NG__NAS__TypeDefs::S__NSSAI__LV&>(v__S__NSSAI).vPart().mappedSD()())); +v__S__NSSAIstring = tmp_79; +} +} +} +current_location.update_lineno(479); +ttcn3_debugger.breakpoint_entry(479); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 479 */ +{ +CHARSTRING tmp_80; +return DEBUGGER_STORE_RETURN_VALUE(tmp_80, v__S__NSSAIstring); +} +} + +CHARSTRING f__Convert__ListOfNSSAI__ForATCommand(const NG__NAS__TypeDefs::NSSAI_template& p__NSSAI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 488, TTCN_Location::LOCATION_FUNCTION, "f_Convert_ListOfNSSAI_ForATCommand"); +charstring_list param_names; +param_names[0] = "p_NSSAI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_Convert_ListOfNSSAI_ForATCommand", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__NSSAI, "p_NSSAI", "NSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(490); +ttcn3_debugger.breakpoint_entry(490); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 490 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(491); +ttcn3_debugger.breakpoint_entry(491); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 491 */ +INTEGER v__Length(const_cast< const NG__NAS__TypeDefs::NSSAI_template&>(p__NSSAI).lvPart().s__nssai().lengthof()); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(492); +ttcn3_debugger.breakpoint_entry(492); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 492 */ +CHARSTRING v__ListOfNSSAI(cs_0); +debug_scope.add_variable(&v__ListOfNSSAI, "v_ListOfNSSAI", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(493); +ttcn3_debugger.breakpoint_entry(493); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 493 */ +CHARSTRING v__S__NSSAI(cs_0); +debug_scope.add_variable(&v__S__NSSAI, "v_S_NSSAI", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 495 */ +i = 0; +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 495 */ +for ( ; ; ) { +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 495 */ +if (!(i < v__Length)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(496); +ttcn3_debugger.breakpoint_entry(496); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 496 */ +v__S__NSSAI = f__ConvertS__NSSAI__ForATCommand(const_cast< const NG__NAS__TypeDefs::NSSAI_template&>(p__NSSAI).lvPart().s__nssai()[i]); +current_location.update_lineno(497); +ttcn3_debugger.breakpoint_entry(497); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 497 */ +{ +CHARSTRING tmp_83; +tmp_83 = (v__ListOfNSSAI + v__S__NSSAI); +v__ListOfNSSAI = tmp_83; +} +current_location.update_lineno(498); +ttcn3_debugger.breakpoint_entry(498); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 498 */ +if ((i < (v__Length - 1))) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(499); +ttcn3_debugger.breakpoint_entry(499); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 499 */ +{ +CHARSTRING tmp_84; +tmp_84 = (v__ListOfNSSAI + cs_3); +v__ListOfNSSAI = tmp_84; +} +} +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 495 */ +{ +INTEGER tmp_85; +++i; +} +} +current_location.update_lineno(502); +ttcn3_debugger.breakpoint_entry(502); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 502 */ +{ +CHARSTRING tmp_86; +return DEBUGGER_STORE_RETURN_VALUE(tmp_86, v__ListOfNSSAI); +} +} + +NG__NAS__TypeDefs::QoS__Rule_template f__BuildQoSRuleRemoteAccess(const CHARSTRING& p__RuleNum) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 511, TTCN_Location::LOCATION_FUNCTION, "f_BuildQoSRuleRemoteAccess"); +charstring_list param_names; +param_names[0] = "p_RuleNum"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_BuildQoSRuleRemoteAccess", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__RuleNum, "p_RuleNum", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(513); +ttcn3_debugger.breakpoint_entry(513); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 513 */ +OCTETSTRING v__Id; +debug_scope.add_variable(&v__Id, "v_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(514); +ttcn3_debugger.breakpoint_entry(514); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 514 */ +BITSTRING v__DQR; +debug_scope.add_variable(&v__DQR, "v_DQR", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(515); +ttcn3_debugger.breakpoint_entry(515); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 515 */ +OCTETSTRING v__Precedence; +debug_scope.add_variable(&v__Precedence, "v_Precedence", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(516); +ttcn3_debugger.breakpoint_entry(516); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 516 */ +BITSTRING v__FlowId; +debug_scope.add_variable(&v__FlowId, "v_FlowId", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(517); +ttcn3_debugger.breakpoint_entry(517); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 517 */ +OCTETSTRING v__Component; +debug_scope.add_variable(&v__Component, "v_Component", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(518); +ttcn3_debugger.breakpoint_entry(518); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 518 */ +OCTETSTRING v__Length; +debug_scope.add_variable(&v__Length, "v_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(519); +ttcn3_debugger.breakpoint_entry(519); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 519 */ +BITSTRING v__FilterId; +debug_scope.add_variable(&v__FilterId, "v_FilterId", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const CHARSTRING &tmp_88 = p__RuleNum; +current_location.update_lineno(522); +ttcn3_debugger.breakpoint_entry(522); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 522 */ +if(tmp_88 == cs_5) goto tmp_87_0; +current_location.update_lineno(530); +ttcn3_debugger.breakpoint_entry(530); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 530 */ +if(tmp_88 == cs_6) goto tmp_87_1; +current_location.update_lineno(538); +ttcn3_debugger.breakpoint_entry(538); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 538 */ +if(tmp_88 == cs_7) goto tmp_87_2; +current_location.update_lineno(546); +ttcn3_debugger.breakpoint_entry(546); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 546 */ +if(tmp_88 == cs_8) goto tmp_87_3; +current_location.update_lineno(554); +ttcn3_debugger.breakpoint_entry(554); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 554 */ +if(tmp_88 == cs_9) goto tmp_87_4; +goto tmp_87_end; +tmp_87_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(523); +ttcn3_debugger.breakpoint_entry(523); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 523 */ +v__Id = int2oct(str2int(p__RuleNum), 1); +current_location.update_lineno(524); +ttcn3_debugger.breakpoint_entry(524); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 524 */ +v__DQR = bs_78; +current_location.update_lineno(525); +ttcn3_debugger.breakpoint_entry(525); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 525 */ +v__Precedence = int2oct(str2int(p__RuleNum), 1); +current_location.update_lineno(526); +ttcn3_debugger.breakpoint_entry(526); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 526 */ +v__FlowId = bs_76; +current_location.update_lineno(527); +ttcn3_debugger.breakpoint_entry(527); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 527 */ +v__FilterId = bs_62; +current_location.update_lineno(528); +ttcn3_debugger.breakpoint_entry(528); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 528 */ +v__Component = fl__BuildRemoteAddressPacketFilter(cs_10); +goto tmp_87_end; +} +tmp_87_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(531); +ttcn3_debugger.breakpoint_entry(531); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 531 */ +v__Id = int2oct(str2int(p__RuleNum), 1); +current_location.update_lineno(532); +ttcn3_debugger.breakpoint_entry(532); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 532 */ +v__DQR = bs_79; +current_location.update_lineno(533); +ttcn3_debugger.breakpoint_entry(533); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 533 */ +v__Precedence = int2oct(str2int(p__RuleNum), 1); +current_location.update_lineno(534); +ttcn3_debugger.breakpoint_entry(534); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 534 */ +v__FlowId = bs_80; +current_location.update_lineno(535); +ttcn3_debugger.breakpoint_entry(535); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 535 */ +v__FilterId = bs_63; +current_location.update_lineno(536); +ttcn3_debugger.breakpoint_entry(536); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 536 */ +v__Component = fl__BuildRemoteAddressPacketFilter(cs_5); +goto tmp_87_end; +} +tmp_87_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(539); +ttcn3_debugger.breakpoint_entry(539); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 539 */ +v__Id = os_8; +current_location.update_lineno(540); +ttcn3_debugger.breakpoint_entry(540); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 540 */ +v__DQR = bs_78; +current_location.update_lineno(541); +ttcn3_debugger.breakpoint_entry(541); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 541 */ +v__Precedence = os_8; +current_location.update_lineno(542); +ttcn3_debugger.breakpoint_entry(542); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 542 */ +v__FlowId = bs_81; +current_location.update_lineno(543); +ttcn3_debugger.breakpoint_entry(543); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 543 */ +v__FilterId = bs_77; +current_location.update_lineno(544); +ttcn3_debugger.breakpoint_entry(544); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 544 */ +v__Component = fl__BuildRemoteAddressPacketFilter(cs_11); +goto tmp_87_end; +} +tmp_87_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(547); +ttcn3_debugger.breakpoint_entry(547); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 547 */ +v__Id = int2oct(str2int(p__RuleNum), 1); +current_location.update_lineno(548); +ttcn3_debugger.breakpoint_entry(548); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 548 */ +v__DQR = bs_78; +current_location.update_lineno(549); +ttcn3_debugger.breakpoint_entry(549); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 549 */ +v__Precedence = int2oct(str2int(p__RuleNum), 1); +current_location.update_lineno(550); +ttcn3_debugger.breakpoint_entry(550); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 550 */ +v__FlowId = bs_82; +current_location.update_lineno(551); +ttcn3_debugger.breakpoint_entry(551); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 551 */ +v__FilterId = bs_64; +current_location.update_lineno(552); +ttcn3_debugger.breakpoint_entry(552); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 552 */ +v__Component = fl__BuildRemoteAddressPacketFilter(cs_6); +goto tmp_87_end; +} +tmp_87_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(555); +ttcn3_debugger.breakpoint_entry(555); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 555 */ +v__Id = int2oct(str2int(p__RuleNum), 1); +current_location.update_lineno(556); +ttcn3_debugger.breakpoint_entry(556); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 556 */ +v__DQR = bs_78; +current_location.update_lineno(557); +ttcn3_debugger.breakpoint_entry(557); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 557 */ +v__Precedence = int2oct(str2int(p__RuleNum), 1); +current_location.update_lineno(558); +ttcn3_debugger.breakpoint_entry(558); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 558 */ +v__FlowId = bs_83; +current_location.update_lineno(559); +ttcn3_debugger.breakpoint_entry(559); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 559 */ +v__FilterId = bs_65; +current_location.update_lineno(560); +ttcn3_debugger.breakpoint_entry(560); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 560 */ +v__Component = fl__BuildRemoteAddressPacketFilter(cs_8); +goto tmp_87_end; +} +tmp_87_end: /* empty */; +} +current_location.update_lineno(563); +ttcn3_debugger.breakpoint_entry(563); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 563 */ +v__Length = int2oct((v__Component.lengthof() + 5), 2); +current_location.update_lineno(564); +ttcn3_debugger.breakpoint_entry(564); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 564 */ +{ +NG__NAS__TypeDefs::QoS__Rule_template tmp_120; +return DEBUGGER_STORE_RETURN_VALUE(tmp_120, cs__QoS__RuleRemoteAccess(v__Id, v__DQR, v__Precedence, v__FlowId, v__Component, v__Length, v__FilterId)); +} +} + +OCTETSTRING fl__BuildRemoteAddressPacketFilter(const CHARSTRING& p__FilterNum) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 573, TTCN_Location::LOCATION_FUNCTION, "fl_BuildRemoteAddressPacketFilter"); +charstring_list param_names; +param_names[0] = "p_FilterNum"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_BuildRemoteAddressPacketFilter", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__FilterNum, "p_FilterNum", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(575); +ttcn3_debugger.breakpoint_entry(575); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 575 */ +if (Parameters::pc__IPv6) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(576); +ttcn3_debugger.breakpoint_entry(576); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 576 */ +{ +OCTETSTRING tmp_121; +return DEBUGGER_STORE_RETURN_VALUE(tmp_121, fl__BuildRemoteAddressPrefixLengthIPv6(p__FilterNum)); +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(578); +ttcn3_debugger.breakpoint_entry(578); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 578 */ +{ +OCTETSTRING tmp_122; +return DEBUGGER_STORE_RETURN_VALUE(tmp_122, fl__BuildRemoteAddressPacketFilterIPv4(p__FilterNum)); +} +} +} + +OCTETSTRING fl__BuildRemoteAddressPacketFilterIPv4(const CHARSTRING& p__FilterNum) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 588, TTCN_Location::LOCATION_FUNCTION, "fl_BuildRemoteAddressPacketFilterIPv4"); +charstring_list param_names; +param_names[0] = "p_FilterNum"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_BuildRemoteAddressPacketFilterIPv4", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__FilterNum, "p_FilterNum", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(590); +ttcn3_debugger.breakpoint_entry(590); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 590 */ +NAS__CommonTypeDefs::PacketFilterComponent_template v__Component; +debug_scope.add_variable(&v__Component, "v_Component", "PacketFilterComponent template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(591); +ttcn3_debugger.breakpoint_entry(591); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 591 */ +BITSTRING v__EncodedComponent; +debug_scope.add_variable(&v__EncodedComponent, "v_EncodedComponent", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(593); +ttcn3_debugger.breakpoint_entry(593); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 593 */ +v__Component = NAS__CommonTemplates::cs__PktFilterCompIPv4RemoteAddress(fl__GetIPv4Address(p__FilterNum), NAS__CommonTemplates::tsc__IPv4Mask); +current_location.update_lineno(594); +ttcn3_debugger.breakpoint_entry(594); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 594 */ +{ +OCTETSTRING tmp_125; +TTCN_Buffer tmp_126; +NAS__CommonTypeDefs::PacketFilterComponent const& tmp_127 = v__Component.valueof(); +tmp_127.encode(NAS__CommonTypeDefs::PacketFilterComponent_descr_, tmp_126, TTCN_EncDec::CT_RAW); +tmp_126.get_string(tmp_125); +v__EncodedComponent = oct2bit(tmp_125); +} +current_location.update_lineno(595); +ttcn3_debugger.breakpoint_entry(595); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 595 */ +{ +OCTETSTRING tmp_128; +return DEBUGGER_STORE_RETURN_VALUE(tmp_128, bit2oct(v__EncodedComponent)); +} +} + +OCTETSTRING fl__BuildRemoteAddressPrefixLengthIPv6(const CHARSTRING& p__FilterNum) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 604, TTCN_Location::LOCATION_FUNCTION, "fl_BuildRemoteAddressPrefixLengthIPv6"); +charstring_list param_names; +param_names[0] = "p_FilterNum"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_BuildRemoteAddressPrefixLengthIPv6", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__FilterNum, "p_FilterNum", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(606); +ttcn3_debugger.breakpoint_entry(606); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 606 */ +OCTETSTRING v__PrefixLength(os_9); +debug_scope.add_variable(&v__PrefixLength, "v_PrefixLength", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(607); +ttcn3_debugger.breakpoint_entry(607); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 607 */ +OCTETSTRING v__PacketFilter; +debug_scope.add_variable(&v__PacketFilter, "v_PacketFilter", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(609); +ttcn3_debugger.breakpoint_entry(609); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 609 */ +v__PacketFilter = os_10; +current_location.update_lineno(610); +ttcn3_debugger.breakpoint_entry(610); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 610 */ +{ +OCTETSTRING tmp_130; +tmp_130 = (v__PacketFilter + CommonIP::f__Convert__IPv6Addr2OctString(fl__GetIPv6Address(p__FilterNum))); +v__PacketFilter = tmp_130; +} +current_location.update_lineno(611); +ttcn3_debugger.breakpoint_entry(611); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 611 */ +{ +OCTETSTRING tmp_131; +tmp_131 = (v__PacketFilter + v__PrefixLength); +v__PacketFilter = tmp_131; +} +current_location.update_lineno(612); +ttcn3_debugger.breakpoint_entry(612); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 612 */ +{ +OCTETSTRING tmp_132; +return DEBUGGER_STORE_RETURN_VALUE(tmp_132, v__PacketFilter); +} +} + +CHARSTRING fl__GetIPv4Address(const CHARSTRING& p__FilterNum) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 621, TTCN_Location::LOCATION_FUNCTION, "fl_GetIPv4Address"); +charstring_list param_names; +param_names[0] = "p_FilterNum"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_GetIPv4Address", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__FilterNum, "p_FilterNum", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(623); +ttcn3_debugger.breakpoint_entry(623); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 623 */ +CHARSTRING v__IPv4__Address(cs_12); +debug_scope.add_variable(&v__IPv4__Address, "v_IPv4_Address", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const CHARSTRING &tmp_134 = p__FilterNum; +current_location.update_lineno(625); +ttcn3_debugger.breakpoint_entry(625); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 625 */ +if(tmp_134 == cs_10) goto tmp_133_0; +current_location.update_lineno(628); +ttcn3_debugger.breakpoint_entry(628); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 628 */ +if(tmp_134 == cs_5) goto tmp_133_1; +current_location.update_lineno(631); +ttcn3_debugger.breakpoint_entry(631); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 631 */ +if(tmp_134 == cs_11) goto tmp_133_2; +current_location.update_lineno(634); +ttcn3_debugger.breakpoint_entry(634); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 634 */ +if(tmp_134 == cs_6) goto tmp_133_3; +current_location.update_lineno(637); +ttcn3_debugger.breakpoint_entry(637); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 637 */ +if(tmp_134 == cs_8) goto tmp_133_4; +goto tmp_133_5; +tmp_133_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(626); +ttcn3_debugger.breakpoint_entry(626); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 626 */ +{ +CHARSTRING tmp_135; +tmp_135 = (v__IPv4__Address + cs_10); +v__IPv4__Address = tmp_135; +} +goto tmp_133_end; +} +tmp_133_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(629); +ttcn3_debugger.breakpoint_entry(629); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 629 */ +{ +CHARSTRING tmp_136; +tmp_136 = (v__IPv4__Address + cs_5); +v__IPv4__Address = tmp_136; +} +goto tmp_133_end; +} +tmp_133_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(632); +ttcn3_debugger.breakpoint_entry(632); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 632 */ +{ +CHARSTRING tmp_137; +tmp_137 = (v__IPv4__Address + cs_13); +v__IPv4__Address = tmp_137; +} +goto tmp_133_end; +} +tmp_133_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(635); +ttcn3_debugger.breakpoint_entry(635); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 635 */ +{ +CHARSTRING tmp_138; +tmp_138 = (v__IPv4__Address + cs_6); +v__IPv4__Address = tmp_138; +} +goto tmp_133_end; +} +tmp_133_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(638); +ttcn3_debugger.breakpoint_entry(638); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 638 */ +{ +CHARSTRING tmp_139; +tmp_139 = (v__IPv4__Address + cs_8); +v__IPv4__Address = tmp_139; +} +goto tmp_133_end; +} +tmp_133_5: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(642); +ttcn3_debugger.breakpoint_entry(642); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 642 */ +CommonDefs::FatalError(cs_14, 642, cs_15); +goto tmp_133_end; +} +tmp_133_end: /* empty */; +} +current_location.update_lineno(645); +ttcn3_debugger.breakpoint_entry(645); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 645 */ +{ +CHARSTRING tmp_140; +return DEBUGGER_STORE_RETURN_VALUE(tmp_140, v__IPv4__Address); +} +} + +CHARSTRING fl__GetIPv6Address(const CHARSTRING& p__FilterNum) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 654, TTCN_Location::LOCATION_FUNCTION, "fl_GetIPv6Address"); +charstring_list param_names; +param_names[0] = "p_FilterNum"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_GetIPv6Address", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__FilterNum, "p_FilterNum", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(656); +ttcn3_debugger.breakpoint_entry(656); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 656 */ +CHARSTRING v__IPv6__Address; +debug_scope.add_variable(&v__IPv6__Address, "v_IPv6_Address", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const CHARSTRING &tmp_142 = p__FilterNum; +current_location.update_lineno(658); +ttcn3_debugger.breakpoint_entry(658); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 658 */ +if(tmp_142 == cs_10) goto tmp_141_0; +current_location.update_lineno(661); +ttcn3_debugger.breakpoint_entry(661); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 661 */ +if(tmp_142 == cs_5) goto tmp_141_1; +current_location.update_lineno(664); +ttcn3_debugger.breakpoint_entry(664); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 664 */ +if(tmp_142 == cs_11) goto tmp_141_2; +current_location.update_lineno(667); +ttcn3_debugger.breakpoint_entry(667); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 667 */ +if(tmp_142 == cs_6) goto tmp_141_3; +current_location.update_lineno(670); +ttcn3_debugger.breakpoint_entry(670); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 670 */ +if(tmp_142 == cs_8) goto tmp_141_4; +goto tmp_141_5; +tmp_141_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(659); +ttcn3_debugger.breakpoint_entry(659); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 659 */ +v__IPv6__Address = cs_16; +goto tmp_141_end; +} +tmp_141_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(662); +ttcn3_debugger.breakpoint_entry(662); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 662 */ +v__IPv6__Address = cs_17; +goto tmp_141_end; +} +tmp_141_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(665); +ttcn3_debugger.breakpoint_entry(665); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 665 */ +v__IPv6__Address = cs_18; +goto tmp_141_end; +} +tmp_141_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(668); +ttcn3_debugger.breakpoint_entry(668); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 668 */ +v__IPv6__Address = cs_19; +goto tmp_141_end; +} +tmp_141_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(671); +ttcn3_debugger.breakpoint_entry(671); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 671 */ +v__IPv6__Address = cs_20; +goto tmp_141_end; +} +tmp_141_5: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(675); +ttcn3_debugger.breakpoint_entry(675); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 675 */ +CommonDefs::FatalError(cs_14, 675, cs_15); +goto tmp_141_end; +} +tmp_141_end: /* empty */; +} +current_location.update_lineno(678); +ttcn3_debugger.breakpoint_entry(678); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 678 */ +{ +CHARSTRING tmp_148; +return DEBUGGER_STORE_RETURN_VALUE(tmp_148, v__IPv6__Address); +} +} + +OCTETSTRING f__SdapTests__CreateDatagram(const CHARSTRING& p__FilterNum) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 688, TTCN_Location::LOCATION_FUNCTION, "f_SdapTests_CreateDatagram"); +charstring_list param_names; +param_names[0] = "p_FilterNum"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_SdapTests_CreateDatagram", "function", "NG_NAS_Common", param_names, param_types, NULL); +debug_scope.add_variable(&p__FilterNum, "p_FilterNum", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(690); +ttcn3_debugger.breakpoint_entry(690); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 690 */ +CHARSTRING v__IPv4__DestAddr(fl__GetIPv4Address(p__FilterNum)); +debug_scope.add_variable(&v__IPv4__DestAddr, "v_IPv4_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(691); +ttcn3_debugger.breakpoint_entry(691); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 691 */ +CHARSTRING v__IPv6__DestAddr(fl__GetIPv6Address(p__FilterNum)); +debug_scope.add_variable(&v__IPv6__DestAddr, "v_IPv6_DestAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(692); +ttcn3_debugger.breakpoint_entry(692); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 692 */ +CHARSTRING v__IPv4__SourceAddr(cs_21); +debug_scope.add_variable(&v__IPv4__SourceAddr, "v_IPv4_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(693); +ttcn3_debugger.breakpoint_entry(693); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 693 */ +CHARSTRING v__IPv6__SourceAddr(cs_22); +debug_scope.add_variable(&v__IPv6__SourceAddr, "v_IPv6_SourceAddr", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(694); +ttcn3_debugger.breakpoint_entry(694); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 694 */ +INTEGER v__IPv6__FlowLabel(10); +debug_scope.add_variable(&v__IPv6__FlowLabel, "v_IPv6_FlowLabel", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(695); +ttcn3_debugger.breakpoint_entry(695); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 695 */ +INTEGER v__SourcePort(60001); +debug_scope.add_variable(&v__SourcePort, "v_SourcePort", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(696); +ttcn3_debugger.breakpoint_entry(696); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 696 */ +INTEGER v__DestPort(60350); +debug_scope.add_variable(&v__DestPort, "v_DestPort", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(697); +ttcn3_debugger.breakpoint_entry(697); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 697 */ +OCTETSTRING v__TOS__TC(os_11); +debug_scope.add_variable(&v__TOS__TC, "v_TOS_TC", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(698); +ttcn3_debugger.breakpoint_entry(698); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 698 */ +INTEGER v__Protocol(CommonIP::tsc__IP__Protocol__UDP); +debug_scope.add_variable(&v__Protocol, "v_Protocol", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(699); +ttcn3_debugger.breakpoint_entry(699); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 699 */ +OCTETSTRING v__IPSecSPI(os_12); +debug_scope.add_variable(&v__IPSecSPI, "v_IPSecSPI", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(700); +ttcn3_debugger.breakpoint_entry(700); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 700 */ +BOOLEAN v__IpTypeIsIPv4(FALSE); +debug_scope.add_variable(&v__IpTypeIsIPv4, "v_IpTypeIsIPv4", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(702); +ttcn3_debugger.breakpoint_entry(702); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 702 */ +if (Parameters::pc__IPv6) { +TTCN3_Debug_Scope debug_scope; +} +else { +current_location.update_lineno(703); +ttcn3_debugger.breakpoint_entry(703); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 703 */ +if (Parameters::pc__IPv4) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(704); +ttcn3_debugger.breakpoint_entry(704); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 704 */ +v__IpTypeIsIPv4 = TRUE; +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(707); +ttcn3_debugger.breakpoint_entry(707); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 707 */ +CommonDefs::FatalError(cs_14, 707, cs_23); +} +} +current_location.update_lineno(710); +ttcn3_debugger.breakpoint_entry(710); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 710 */ +{ +OCTETSTRING tmp_150; +return DEBUGGER_STORE_RETURN_VALUE(tmp_150, LoopbackIP__PacketFilterTest::f__PacketFilterTest__CreateDatagram(v__IpTypeIsIPv4, v__Protocol, v__IPv4__SourceAddr, v__IPv4__DestAddr, v__IPv6__SourceAddr, v__IPv6__DestAddr, v__IPv6__FlowLabel, v__SourcePort, v__DestPort, v__IPSecSPI, v__TOS__TC)); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_Common"); +NG__NAS__Common::init_ttcn3_debugger(); +NG__NAS__TypeDefs::module_object.pre_init_module(); +NAS__AuxiliaryDefsAndFunctions::module_object.pre_init_module(); +LoopbackIP__PacketFilterTest::module_object.pre_init_module(); +current_location.update_lineno(52); +ttcn3_debugger.breakpoint_entry(52); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 52 */ +const_tsc__EPD__GMM = bs_0; +current_location.update_lineno(53); +ttcn3_debugger.breakpoint_entry(53); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 53 */ +const_tsc__EPD__GSM = bs_1; +current_location.update_lineno(56); +ttcn3_debugger.breakpoint_entry(56); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 56 */ +const_tsc__MT__NG__RegistrationRequest = bs_2; +current_location.update_lineno(57); +ttcn3_debugger.breakpoint_entry(57); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 57 */ +const_tsc__MT__NG__RegistrationAccept = bs_3; +current_location.update_lineno(58); +ttcn3_debugger.breakpoint_entry(58); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 58 */ +const_tsc__MT__NG__RegistrationComplete = bs_4; +current_location.update_lineno(59); +ttcn3_debugger.breakpoint_entry(59); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 59 */ +const_tsc__MT__NG__RegistrationReject = bs_5; +current_location.update_lineno(60); +ttcn3_debugger.breakpoint_entry(60); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 60 */ +const_tsc__MT__NG__DeregistrationRequest__MO = bs_6; +current_location.update_lineno(61); +ttcn3_debugger.breakpoint_entry(61); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 61 */ +const_tsc__MT__NG__DeregistrationAccept__MO = bs_7; +current_location.update_lineno(62); +ttcn3_debugger.breakpoint_entry(62); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 62 */ +const_tsc__MT__NG__DeregistrationRequest__MT = bs_8; +current_location.update_lineno(63); +ttcn3_debugger.breakpoint_entry(63); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 63 */ +const_tsc__MT__NG__DeregistrationAccept__MT = bs_9; +current_location.update_lineno(64); +ttcn3_debugger.breakpoint_entry(64); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 64 */ +const_tsc__MT__NG__ServiceRequest = bs_10; +current_location.update_lineno(65); +ttcn3_debugger.breakpoint_entry(65); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 65 */ +const_tsc__MT__NG__ServiceReject = bs_11; +current_location.update_lineno(66); +ttcn3_debugger.breakpoint_entry(66); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 66 */ +const_tsc__MT__NG__ServiceAccept = bs_12; +current_location.update_lineno(67); +ttcn3_debugger.breakpoint_entry(67); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 67 */ +const_tsc__MT__NG__CP__Service__Request = bs_13; +current_location.update_lineno(68); +ttcn3_debugger.breakpoint_entry(68); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 68 */ +const_tsc__MT__NG__NetworkSliceSpecificAuthenticationCommand = bs_14; +current_location.update_lineno(69); +ttcn3_debugger.breakpoint_entry(69); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 69 */ +const_tsc__MT__NG__NetworkSliceSpecificAuthenticationComplete = bs_15; +current_location.update_lineno(70); +ttcn3_debugger.breakpoint_entry(70); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 70 */ +const_tsc__MT__NG__NetworkSliceSpecificAuthenticationResult = bs_16; +current_location.update_lineno(71); +ttcn3_debugger.breakpoint_entry(71); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 71 */ +const_tsc__MT__NG__ConfigurationUpdateCommand = bs_17; +current_location.update_lineno(72); +ttcn3_debugger.breakpoint_entry(72); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 72 */ +const_tsc__MT__NG__ConfigurationUpdateComplete = bs_18; +current_location.update_lineno(73); +ttcn3_debugger.breakpoint_entry(73); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 73 */ +const_tsc__MT__NG__AuthenticationRequest = bs_19; +current_location.update_lineno(74); +ttcn3_debugger.breakpoint_entry(74); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 74 */ +const_tsc__MT__NG__AuthenticationResponse = bs_20; +current_location.update_lineno(75); +ttcn3_debugger.breakpoint_entry(75); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 75 */ +const_tsc__MT__NG__AuthenticationReject = bs_21; +current_location.update_lineno(76); +ttcn3_debugger.breakpoint_entry(76); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 76 */ +const_tsc__MT__NG__AuthenticationFailure = bs_22; +current_location.update_lineno(77); +ttcn3_debugger.breakpoint_entry(77); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 77 */ +const_tsc__MT__NG__AuthenticationResult = bs_23; +current_location.update_lineno(78); +ttcn3_debugger.breakpoint_entry(78); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 78 */ +const_tsc__MT__NG__IdentityRequest = bs_24; +current_location.update_lineno(79); +ttcn3_debugger.breakpoint_entry(79); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 79 */ +const_tsc__MT__NG__IdentityResponse = bs_25; +current_location.update_lineno(80); +ttcn3_debugger.breakpoint_entry(80); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 80 */ +const_tsc__MT__NG__SecurityModeCommand = bs_26; +current_location.update_lineno(81); +ttcn3_debugger.breakpoint_entry(81); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 81 */ +const_tsc__MT__NG__SecurityModeComplete = bs_27; +current_location.update_lineno(82); +ttcn3_debugger.breakpoint_entry(82); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 82 */ +const_tsc__MT__NG__SecurityModeReject = bs_28; +current_location.update_lineno(83); +ttcn3_debugger.breakpoint_entry(83); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 83 */ +const_tsc__MT__NG__GMM__Status = bs_29; +current_location.update_lineno(84); +ttcn3_debugger.breakpoint_entry(84); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 84 */ +const_tsc__MT__NG__Notification = bs_30; +current_location.update_lineno(85); +ttcn3_debugger.breakpoint_entry(85); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 85 */ +const_tsc__MT__NG__NotificationResponse = bs_31; +current_location.update_lineno(86); +ttcn3_debugger.breakpoint_entry(86); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 86 */ +const_tsc__MT__NG__UL__NASTransport = bs_32; +current_location.update_lineno(87); +ttcn3_debugger.breakpoint_entry(87); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 87 */ +const_tsc__MT__NG__DL__NASTransport = bs_33; +current_location.update_lineno(89); +ttcn3_debugger.breakpoint_entry(89); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 89 */ +const_tsc__MT__NG__PDUSessionEstablishmentRequest = bs_34; +current_location.update_lineno(90); +ttcn3_debugger.breakpoint_entry(90); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 90 */ +const_tsc__MT__NG__PDUSessionEstablishmentAccept = bs_35; +current_location.update_lineno(91); +ttcn3_debugger.breakpoint_entry(91); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 91 */ +const_tsc__MT__NG__PDUSessionEstablishmentReject = bs_36; +current_location.update_lineno(92); +ttcn3_debugger.breakpoint_entry(92); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 92 */ +const_tsc__MT__NG__PDUSessionAuthenticationCommand = bs_37; +current_location.update_lineno(93); +ttcn3_debugger.breakpoint_entry(93); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 93 */ +const_tsc__MT__NG__PDUSessionAuthenticationComplete = bs_38; +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 94 */ +const_tsc__MT__NG__PDUSessionAuthenticationResult = bs_39; +current_location.update_lineno(95); +ttcn3_debugger.breakpoint_entry(95); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 95 */ +const_tsc__MT__NG__PDUSessionModificationRequest = bs_40; +current_location.update_lineno(96); +ttcn3_debugger.breakpoint_entry(96); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 96 */ +const_tsc__MT__NG__PDUSessionModificationReject = bs_41; +current_location.update_lineno(97); +ttcn3_debugger.breakpoint_entry(97); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 97 */ +const_tsc__MT__NG__PDUSessionModificationCommand = bs_42; +current_location.update_lineno(98); +ttcn3_debugger.breakpoint_entry(98); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 98 */ +const_tsc__MT__NG__PDUSessionModificationComplete = bs_43; +current_location.update_lineno(99); +ttcn3_debugger.breakpoint_entry(99); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 99 */ +const_tsc__MT__NG__PDUSessionModificationCommandReject = bs_44; +current_location.update_lineno(100); +ttcn3_debugger.breakpoint_entry(100); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 100 */ +const_tsc__MT__NG__PDUSessionReleaseRequest = bs_45; +current_location.update_lineno(101); +ttcn3_debugger.breakpoint_entry(101); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 101 */ +const_tsc__MT__NG__PDUSessionReleaseReject = bs_46; +current_location.update_lineno(102); +ttcn3_debugger.breakpoint_entry(102); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 102 */ +const_tsc__MT__NG__PDUSessionReleaseCommand = bs_47; +current_location.update_lineno(103); +ttcn3_debugger.breakpoint_entry(103); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 103 */ +const_tsc__MT__NG__PDUSessionReleaseComplete = bs_48; +current_location.update_lineno(104); +ttcn3_debugger.breakpoint_entry(104); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 104 */ +const_tsc__MT__NG__GSM__Status = bs_49; +current_location.update_lineno(106); +ttcn3_debugger.breakpoint_entry(106); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 106 */ +const_tsc__MsgType__NSSAI__DeleteReq = bs_50; +current_location.update_lineno(108); +ttcn3_debugger.breakpoint_entry(108); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 108 */ +const_tsc__MsgType__NSSAI__DeleteResp = bs_51; +current_location.update_lineno(110); +ttcn3_debugger.breakpoint_entry(110); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 110 */ +const_tsc__MsgType__SetUAIReq = bs_52; +current_location.update_lineno(111); +ttcn3_debugger.breakpoint_entry(111); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 111 */ +const_tsc__MsgType__SetUAIResp = bs_53; +current_location.update_lineno(113); +ttcn3_debugger.breakpoint_entry(113); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 113 */ +const_tsc__DeleteNSSAI__DefaultConfiguredNSSAI = bs_54; +current_location.update_lineno(114); +ttcn3_debugger.breakpoint_entry(114); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 114 */ +const_tsc__DeleteNSSAI__ConfiguredNSSAI = bs_55; +current_location.update_lineno(116); +ttcn3_debugger.breakpoint_entry(116); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 116 */ +const_tsc__DeleteNSSAI__AllowedNSSAI = bs_56; +current_location.update_lineno(125); +ttcn3_debugger.breakpoint_entry(125); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 125 */ +const_tsc__NG__RegistrationInitial = bs_57; +current_location.update_lineno(126); +ttcn3_debugger.breakpoint_entry(126); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 126 */ +const_tsc__NG__RegistrationMobility = bs_58; +current_location.update_lineno(127); +ttcn3_debugger.breakpoint_entry(127); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 127 */ +const_tsc__NG__RegistrationPeriodic = bs_59; +current_location.update_lineno(128); +ttcn3_debugger.breakpoint_entry(128); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 128 */ +const_tsc__NG__RegistrationEmergency = bs_60; +current_location.update_lineno(129); +ttcn3_debugger.breakpoint_entry(129); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 129 */ +const_tsc__NG__RegistrationSNPN = bs_61; +current_location.update_lineno(130); +ttcn3_debugger.breakpoint_entry(130); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 130 */ +const_tsc__NG__RegResult__3GPP = bs_57; +current_location.update_lineno(131); +ttcn3_debugger.breakpoint_entry(131); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 131 */ +const_tsc__NG__RegResult__Non3GPP = bs_58; +current_location.update_lineno(132); +ttcn3_debugger.breakpoint_entry(132); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 132 */ +const_tsc__NG__RegResult__Both = bs_59; +current_location.update_lineno(134); +ttcn3_debugger.breakpoint_entry(134); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 134 */ +const_tsc__PayloadContainerSMSMsg = bs_62; +current_location.update_lineno(135); +ttcn3_debugger.breakpoint_entry(135); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 135 */ +const_tsc__PayloadContainerLPPMsg = bs_63; +current_location.update_lineno(136); +ttcn3_debugger.breakpoint_entry(136); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 136 */ +const_tsc__PayloadContainerSORMsg = bs_64; +current_location.update_lineno(137); +ttcn3_debugger.breakpoint_entry(137); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 137 */ +const_tsc__PayloadContainerUEPolicyMsg = bs_65; +current_location.update_lineno(138); +ttcn3_debugger.breakpoint_entry(138); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 138 */ +const_tsc__PayloadContainerCIoTUserData = bs_66; +current_location.update_lineno(140); +ttcn3_debugger.breakpoint_entry(140); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 140 */ +const_tsc__QoSFlowParameter__5QI = os_0; +current_location.update_lineno(141); +ttcn3_debugger.breakpoint_entry(141); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 141 */ +const_tsc__QoSFlowParameter__GFBR__UL = os_1; +current_location.update_lineno(142); +ttcn3_debugger.breakpoint_entry(142); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 142 */ +const_tsc__QoSFlowParameter__GFBR__DL = os_2; +current_location.update_lineno(143); +ttcn3_debugger.breakpoint_entry(143); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 143 */ +const_tsc__QoSFlowParameter__MFBR__UL = os_3; +current_location.update_lineno(144); +ttcn3_debugger.breakpoint_entry(144); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 144 */ +const_tsc__QoSFlowParameter__MFBR__DL = os_4; +current_location.update_lineno(145); +ttcn3_debugger.breakpoint_entry(145); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 145 */ +const_tsc__QoSFlowParameter__AvWindow = os_5; +current_location.update_lineno(146); +ttcn3_debugger.breakpoint_entry(146); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 146 */ +const_tsc__QoSFlowParameter__EPSBearerId = os_6; +current_location.update_lineno(150); +ttcn3_debugger.breakpoint_entry(150); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 150 */ +const_tsc__NG__TMSI1 = bs_67; +current_location.update_lineno(153); +ttcn3_debugger.breakpoint_entry(153); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 153 */ +const_tsc__IdType__NG__Noidentity = bs_68; +current_location.update_lineno(154); +ttcn3_debugger.breakpoint_entry(154); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 154 */ +const_tsc__IdType__NG__SUCI = bs_57; +current_location.update_lineno(155); +ttcn3_debugger.breakpoint_entry(155); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 155 */ +const_tsc__IdType__NG__GUTI = bs_58; +current_location.update_lineno(156); +ttcn3_debugger.breakpoint_entry(156); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 156 */ +const_tsc__IdType__NG__IMEI = bs_59; +current_location.update_lineno(157); +ttcn3_debugger.breakpoint_entry(157); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 157 */ +const_tsc__IdType__NG__STMSI = bs_60; +current_location.update_lineno(158); +ttcn3_debugger.breakpoint_entry(158); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 158 */ +const_tsc__IdType__NG__IMEISV = bs_61; +current_location.update_lineno(160); +ttcn3_debugger.breakpoint_entry(160); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 160 */ +const_tsc__NR5GCCause__ServNetNotAuthorized = bs_69; +current_location.update_lineno(161); +ttcn3_debugger.breakpoint_entry(161); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 161 */ +const_tsc__NR5GCCause__InvalidPDUSessionIdentity = bs_70; +current_location.update_lineno(162); +ttcn3_debugger.breakpoint_entry(162); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 162 */ +const_tsc__NR5GCCause__NoSuitableCellsInTA = bs_71; +current_location.update_lineno(163); +ttcn3_debugger.breakpoint_entry(163); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 163 */ +const_tsc__NR5GCCause__Congestion = bs_72; +module_object.add_function("f_NG_GutiParameters2MobileIdentity", (genericfunc_t)&f__NG__GutiParameters2MobileIdentity, NULL); +module_object.add_function("f_NG_S_TMSI2MobileIdentity", (genericfunc_t)&f__NG__S__TMSI2MobileIdentity, NULL); +module_object.add_function("f_NG_Imeisv2MobileIdentity", (genericfunc_t)&f__NG__Imeisv2MobileIdentity, NULL); +module_object.add_function("f_ConvertRejectedS_NSSAI_ForATCommand", (genericfunc_t)&f__ConvertRejectedS__NSSAI__ForATCommand, NULL); +module_object.add_function("f_Convert_ListOfRejectedNSSAI_ForATCommand", (genericfunc_t)&f__Convert__ListOfRejectedNSSAI__ForATCommand, NULL); +module_object.add_function("f_Convert_ListOfExtdRejectedNSSAI_ForMMICommand", (genericfunc_t)&f__Convert__ListOfExtdRejectedNSSAI__ForMMICommand, NULL); +module_object.add_function("f_ConvertPartialXtdRejectedS_NSSAI_ForMMICommand", (genericfunc_t)&f__ConvertPartialXtdRejectedS__NSSAI__ForMMICommand, NULL); +module_object.add_function("f_ConvertXtdRejectedS_NSSAI_ForMMICommand", (genericfunc_t)&f__ConvertXtdRejectedS__NSSAI__ForMMICommand, NULL); +module_object.add_function("f_ConvertS_NSSAI_VForMMICommand", (genericfunc_t)&f__ConvertS__NSSAI__VForMMICommand, NULL); +module_object.add_function("f_ConvertS_NSSAI_ForATCommand", (genericfunc_t)&f__ConvertS__NSSAI__ForATCommand, NULL); +module_object.add_function("f_Convert_ListOfNSSAI_ForATCommand", (genericfunc_t)&f__Convert__ListOfNSSAI__ForATCommand, NULL); +module_object.add_function("f_BuildQoSRuleRemoteAccess", (genericfunc_t)&f__BuildQoSRuleRemoteAccess, NULL); +module_object.add_function("fl_BuildRemoteAddressPacketFilter", (genericfunc_t)&fl__BuildRemoteAddressPacketFilter, NULL); +module_object.add_function("fl_BuildRemoteAddressPacketFilterIPv4", (genericfunc_t)&fl__BuildRemoteAddressPacketFilterIPv4, NULL); +module_object.add_function("fl_BuildRemoteAddressPrefixLengthIPv6", (genericfunc_t)&fl__BuildRemoteAddressPrefixLengthIPv6, NULL); +module_object.add_function("fl_GetIPv4Address", (genericfunc_t)&fl__GetIPv4Address, NULL); +module_object.add_function("fl_GetIPv6Address", (genericfunc_t)&fl__GetIPv6Address, NULL); +module_object.add_function("f_SdapTests_CreateDatagram", (genericfunc_t)&f__SdapTests__CreateDatagram, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_Common"); +NG__NAS__TypeDefs::module_object.post_init_module(); +NAS__AuxiliaryDefsAndFunctions::module_object.post_init_module(); +LoopbackIP__PacketFilterTest::module_object.post_init_module(); +current_location.update_lineno(262); +ttcn3_debugger.breakpoint_entry(262); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Common.ttcn, line 262 */ +template_cr__NG__MobileIdentityNoIdentity.iei() = OMIT_VALUE; +template_cr__NG__MobileIdentityNoIdentity.iel() = os_7; +template_cr__NG__MobileIdentityNoIdentity.idDigit1() = NAS__CommonTemplates::tsc__Spare4; +template_cr__NG__MobileIdentityNoIdentity.oddEvenInd() = NAS__CommonTemplates::tsc__Spare1; +template_cr__NG__MobileIdentityNoIdentity.typeOfId() = bs_68; +template_cr__NG__MobileIdentityNoIdentity.otherDigits() = OMIT_VALUE; +} + + +/* Bodies of static conversion functions */ + +static boolean conv_NG__NAS__TypeDefs_PartialXtdRejectedNSSAIType0_rejectS__NSSAI_NG__NAS__TypeDefs_XtdRejectedS__NSSAI__List(NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List& p_to_v, const NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_rejectS__NSSAI& p_from_v) +{ +p_to_v.set_size(p_from_v.size_of()); +for (int i = 0; i < p_from_v.size_of(); i++) { +if (p_from_v[i].is_bound()) p_to_v[i] = p_from_v[i]; +} +return TRUE; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NG_NAS_Common.hh b/build/Ats_NG_NAS/NG_NAS_Common.hh new file mode 100644 index 0000000000000000000000000000000000000000..32ab970d944c1c589c9e80c0206ba42a76c55ad9 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_Common.hh @@ -0,0 +1,1342 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NG__NAS__Common_HH +#define NG__NAS__Common_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NG_NAS_TypeDefs.hh" +#include "NAS_AuxiliaryDefsAndFunctions.hh" +#include "LoopbackIP_PacketFilterTest.hh" + +#if TTCN3_VERSION != 100000 +#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 NG__NAS__Common_HH +#endif + +namespace NG__NAS__Common { + +/* Forward declarations of classes */ + +class GMM__MobilityInfo__Type; +class GMM__MobilityInfo__Type_template; +class GSM__MobilityInfo__Type; +class GSM__MobilityInfo__Type_template; +class PDUSessionInfoList__Type; +class PDUSessionInfoList__Type_template; +class DeleteNSSAI__Type; +class DeleteNSSAI__Type_template; +class TypeOfRegistration__Type; +class TypeOfRegistration__Type_template; +class RegistrationAccessType; +class RegistrationAccessType_template; +class NG__ALL__STATE__Type; +class NG__ALL__STATE__Type_template; +class NG__NAS__NumOfPLMN__Type; +class NG__NAS__NumOfPLMN__Type_template; +class NG__NAS__GutiParameters__Type; +class NG__NAS__GutiParameters__Type_template; + +} /* end of namespace */ + +#ifndef NG__NAS__Common_HH +#define NG__NAS__Common_HH + +namespace NG__NAS__Common { + +/* Type definitions */ + +typedef NG__ALL__STATE__Type NG__STATE__Type; +typedef NG__ALL__STATE__Type_template NG__STATE__Type_template; + +/* Class definitions */ + +class GMM__MobilityInfo__Type : public Record_Type { + NG__NAS__TypeDefs::NG__MobileIdentity field_Guti; + OPTIONAL field_GMMCap; + OPTIONAL field_UECap; + OPTIONAL field_S1NwkCap; + OPTIONAL field_SessionStatus; + OPTIONAL field_EPSBearerStatus; + OPTIONAL field_UERadioCapId; + Base_Type* fld_vec[7]; + void init_vec(); +public: + GMM__MobilityInfo__Type(); + GMM__MobilityInfo__Type(const GMM__MobilityInfo__Type& other_value); + GMM__MobilityInfo__Type(const NG__NAS__TypeDefs::NG__MobileIdentity& par_Guti, + const OPTIONAL& par_GMMCap, + const OPTIONAL& par_UECap, + const OPTIONAL& par_S1NwkCap, + const OPTIONAL& par_SessionStatus, + const OPTIONAL& par_EPSBearerStatus, + const OPTIONAL& par_UERadioCapId); +inline GMM__MobilityInfo__Type& operator=(const GMM__MobilityInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const GMM__MobilityInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const GMM__MobilityInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline NG__NAS__TypeDefs::NG__MobileIdentity& Guti() + {return field_Guti;} + inline const NG__NAS__TypeDefs::NG__MobileIdentity& Guti() const + {return field_Guti;} + inline OPTIONAL& GMMCap() + {return field_GMMCap;} + inline const OPTIONAL& GMMCap() const + {return field_GMMCap;} + inline OPTIONAL& UECap() + {return field_UECap;} + inline const OPTIONAL& UECap() const + {return field_UECap;} + inline OPTIONAL& S1NwkCap() + {return field_S1NwkCap;} + inline const OPTIONAL& S1NwkCap() const + {return field_S1NwkCap;} + inline OPTIONAL& SessionStatus() + {return field_SessionStatus;} + inline const OPTIONAL& SessionStatus() const + {return field_SessionStatus;} + inline OPTIONAL& EPSBearerStatus() + {return field_EPSBearerStatus;} + inline const OPTIONAL& EPSBearerStatus() const + {return field_EPSBearerStatus;} + inline OPTIONAL& UERadioCapId() + {return field_UERadioCapId;} + inline const OPTIONAL& UERadioCapId() const + {return field_UERadioCapId;} +Base_Type* clone() const { return new GMM__MobilityInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class GMM__MobilityInfo__Type_template : public Record_Template { +void set_specific(); +public: +GMM__MobilityInfo__Type_template(): Record_Template() {} +GMM__MobilityInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +GMM__MobilityInfo__Type_template(const GMM__MobilityInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +GMM__MobilityInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +GMM__MobilityInfo__Type_template(GMM__MobilityInfo__Type_template* p_precondition, GMM__MobilityInfo__Type_template* p_implied_template); +GMM__MobilityInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +GMM__MobilityInfo__Type_template(const GMM__MobilityInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~GMM__MobilityInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +GMM__MobilityInfo__Type_template& operator=(template_sel other_value); +GMM__MobilityInfo__Type_template& operator=(const GMM__MobilityInfo__Type& other_value); +GMM__MobilityInfo__Type_template& operator=(const OPTIONAL& other_value); +GMM__MobilityInfo__Type_template& operator=(const GMM__MobilityInfo__Type_template& other_value); +inline boolean match(const GMM__MobilityInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const GMM__MobilityInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +GMM__MobilityInfo__Type valueof() const; +inline GMM__MobilityInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NG__NAS__TypeDefs::NG__MobileIdentity_template& Guti(); +const NG__NAS__TypeDefs::NG__MobileIdentity_template& Guti() const; +NG__NAS__TypeDefs::NG__GMM__Cap_template& GMMCap(); +const NG__NAS__TypeDefs::NG__GMM__Cap_template& GMMCap() const; +NG__NAS__TypeDefs::NG__UE__SecurityCapability_template& UECap(); +const NG__NAS__TypeDefs::NG__UE__SecurityCapability_template& UECap() const; +NAS__CommonTypeDefs::UE__NetworkCap_template& S1NwkCap(); +const NAS__CommonTypeDefs::UE__NetworkCap_template& S1NwkCap() const; +NG__NAS__TypeDefs::PDU__SessionStatus_template& SessionStatus(); +const NG__NAS__TypeDefs::PDU__SessionStatus_template& SessionStatus() const; +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& EPSBearerStatus(); +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& EPSBearerStatus() const; +NAS__CommonTypeDefs::UERadioCapId_template& UERadioCapId(); +const NAS__CommonTypeDefs::UERadioCapId_template& UERadioCapId() const; +Record_Template* create() const { return new GMM__MobilityInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class GSM__MobilityInfo__Type : public Record_Type { + OCTETSTRING field_SessionId; + OCTETSTRING field_PTI; + NAS__CommonTypeDefs::PDU__PDN__DNN__Type field_PDUType; + OPTIONAL field_SessionType; + OPTIONAL field_DNN; + OPTIONAL field_AlwaysOn; + OPTIONAL field_PCO; + OPTIONAL field_EPS__Bearer; + OPTIONAL field_PdnIndex; + OPTIONAL field_NSSAI; + Base_Type* fld_vec[10]; + void init_vec(); +public: + GSM__MobilityInfo__Type(); + GSM__MobilityInfo__Type(const GSM__MobilityInfo__Type& other_value); + GSM__MobilityInfo__Type(const OCTETSTRING& par_SessionId, + const OCTETSTRING& par_PTI, + const NAS__CommonTypeDefs::PDU__PDN__DNN__Type& par_PDUType, + const OPTIONAL& par_SessionType, + const OPTIONAL& par_DNN, + const OPTIONAL& par_AlwaysOn, + const OPTIONAL& par_PCO, + const OPTIONAL& par_EPS__Bearer, + const OPTIONAL& par_PdnIndex, + const OPTIONAL& par_NSSAI); +inline GSM__MobilityInfo__Type& operator=(const GSM__MobilityInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const GSM__MobilityInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const GSM__MobilityInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& SessionId() + {return field_SessionId;} + inline const OCTETSTRING& SessionId() const + {return field_SessionId;} + inline OCTETSTRING& PTI() + {return field_PTI;} + inline const OCTETSTRING& PTI() const + {return field_PTI;} + inline NAS__CommonTypeDefs::PDU__PDN__DNN__Type& PDUType() + {return field_PDUType;} + inline const NAS__CommonTypeDefs::PDU__PDN__DNN__Type& PDUType() const + {return field_PDUType;} + inline OPTIONAL& SessionType() + {return field_SessionType;} + inline const OPTIONAL& SessionType() const + {return field_SessionType;} + inline OPTIONAL& DNN() + {return field_DNN;} + inline const OPTIONAL& DNN() const + {return field_DNN;} + inline OPTIONAL& AlwaysOn() + {return field_AlwaysOn;} + inline const OPTIONAL& AlwaysOn() const + {return field_AlwaysOn;} + inline OPTIONAL& PCO() + {return field_PCO;} + inline const OPTIONAL& PCO() const + {return field_PCO;} + inline OPTIONAL& EPS__Bearer() + {return field_EPS__Bearer;} + inline const OPTIONAL& EPS__Bearer() const + {return field_EPS__Bearer;} + inline OPTIONAL& PdnIndex() + {return field_PdnIndex;} + inline const OPTIONAL& PdnIndex() const + {return field_PdnIndex;} + inline OPTIONAL& NSSAI() + {return field_NSSAI;} + inline const OPTIONAL& NSSAI() const + {return field_NSSAI;} +Base_Type* clone() const { return new GSM__MobilityInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +int optional_count() const { return 7; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class GSM__MobilityInfo__Type_template : public Record_Template { +void set_specific(); +public: +GSM__MobilityInfo__Type_template(): Record_Template() {} +GSM__MobilityInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +GSM__MobilityInfo__Type_template(const GSM__MobilityInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +GSM__MobilityInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +GSM__MobilityInfo__Type_template(GSM__MobilityInfo__Type_template* p_precondition, GSM__MobilityInfo__Type_template* p_implied_template); +GSM__MobilityInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +GSM__MobilityInfo__Type_template(const GSM__MobilityInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~GSM__MobilityInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +GSM__MobilityInfo__Type_template& operator=(template_sel other_value); +GSM__MobilityInfo__Type_template& operator=(const GSM__MobilityInfo__Type& other_value); +GSM__MobilityInfo__Type_template& operator=(const OPTIONAL& other_value); +GSM__MobilityInfo__Type_template& operator=(const GSM__MobilityInfo__Type_template& other_value); +inline boolean match(const GSM__MobilityInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const GSM__MobilityInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +GSM__MobilityInfo__Type valueof() const; +inline GSM__MobilityInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& SessionId(); +const OCTETSTRING_template& SessionId() const; +OCTETSTRING_template& PTI(); +const OCTETSTRING_template& PTI() const; +NAS__CommonTypeDefs::PDU__PDN__DNN__Type_template& PDUType(); +const NAS__CommonTypeDefs::PDU__PDN__DNN__Type_template& PDUType() const; +BITSTRING_template& SessionType(); +const BITSTRING_template& SessionType() const; +NG__NAS__TypeDefs::DNN_template& DNN(); +const NG__NAS__TypeDefs::DNN_template& DNN() const; +NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& AlwaysOn(); +const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& AlwaysOn() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PCO(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& PCO() const; +INTEGER_template& EPS__Bearer(); +const INTEGER_template& EPS__Bearer() const; +CommonDefs::PDN__Index__Type_template& PdnIndex(); +const CommonDefs::PDN__Index__Type_template& PdnIndex() const; +NG__NAS__TypeDefs::S__NSSAI__Type_template& NSSAI(); +const NG__NAS__TypeDefs::S__NSSAI__Type_template& NSSAI() const; +Record_Template* create() const { return new GSM__MobilityInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDUSessionInfoList__Type : public Record_Of_Type { + +static const GSM__MobilityInfo__Type UNBOUND_ELEM; + +public: +PDUSessionInfoList__Type(): Record_Of_Type() {} +PDUSessionInfoList__Type(null_type other_value): Record_Of_Type(other_value) {} +PDUSessionInfoList__Type(const PDUSessionInfoList__Type& other_value): Record_Of_Type(other_value) {} +~PDUSessionInfoList__Type() { clean_up(); } + +inline PDUSessionInfoList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline PDUSessionInfoList__Type& operator=(const PDUSessionInfoList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDUSessionInfoList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const PDUSessionInfoList__Type& other_value) const { return !is_equal(&other_value); } +GSM__MobilityInfo__Type& operator[](int index_value); +GSM__MobilityInfo__Type& operator[](const INTEGER& index_value); +const GSM__MobilityInfo__Type& operator[](int index_value) const; +const GSM__MobilityInfo__Type& operator[](const INTEGER& index_value) const; +PDUSessionInfoList__Type operator<<=(int rotate_count) const; +PDUSessionInfoList__Type operator<<=(const INTEGER& rotate_count) const; +PDUSessionInfoList__Type operator>>=(int rotate_count) const; +PDUSessionInfoList__Type operator>>=(const INTEGER& rotate_count) const; + +PDUSessionInfoList__Type operator+(const PDUSessionInfoList__Type& other_value) const; + +PDUSessionInfoList__Type operator+(const OPTIONAL& other_value) const; + +PDUSessionInfoList__Type operator+(null_type) const; + +PDUSessionInfoList__Type substr(int index, int returncount) const; + +PDUSessionInfoList__Type replace(int index, int len, const PDUSessionInfoList__Type& repl) const; + +PDUSessionInfoList__Type replace(int index, int len, const PDUSessionInfoList__Type_template& repl) const; + +Base_Type* clone() const { return new PDUSessionInfoList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class PDUSessionInfoList__Type_template : public Record_Of_Template { +friend PDUSessionInfoList__Type_template operator+(template_sel left_template, const PDUSessionInfoList__Type_template& right_template); +friend PDUSessionInfoList__Type_template operator+(const PDUSessionInfoList__Type& left_value, const PDUSessionInfoList__Type_template& right_template); +friend PDUSessionInfoList__Type_template operator+(template_sel left_template, const PDUSessionInfoList__Type& right_value); +friend PDUSessionInfoList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend PDUSessionInfoList__Type_template operator+(const PDUSessionInfoList__Type& left_value, template_sel right_template); + +public: +PDUSessionInfoList__Type_template() {} +PDUSessionInfoList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +PDUSessionInfoList__Type_template(null_type other_value); +PDUSessionInfoList__Type_template(const PDUSessionInfoList__Type& other_value) { copy_value(&other_value); } +PDUSessionInfoList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +PDUSessionInfoList__Type_template(PDUSessionInfoList__Type_template* p_precondition, PDUSessionInfoList__Type_template* p_implied_template); +PDUSessionInfoList__Type_template(Dynamic_Match_Interface* p_dyn_match); +PDUSessionInfoList__Type_template(const PDUSessionInfoList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~PDUSessionInfoList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDUSessionInfoList__Type_template& operator=(template_sel other_value); +PDUSessionInfoList__Type_template& operator=(null_type other_value); +PDUSessionInfoList__Type_template& operator=(const PDUSessionInfoList__Type& other_value); +PDUSessionInfoList__Type_template& operator=(const OPTIONAL& other_value); +PDUSessionInfoList__Type_template& operator=(const PDUSessionInfoList__Type_template& other_value); + +PDUSessionInfoList__Type_template operator+(const PDUSessionInfoList__Type_template& other_value) const; +PDUSessionInfoList__Type_template operator+(const PDUSessionInfoList__Type& other_value) const; +PDUSessionInfoList__Type_template operator+(template_sel other_value) const; +PDUSessionInfoList__Type_template operator+(null_type) const; + +GSM__MobilityInfo__Type_template& operator[](int index_value); +GSM__MobilityInfo__Type_template& operator[](const INTEGER& index_value); +const GSM__MobilityInfo__Type_template& operator[](int index_value) const; +const GSM__MobilityInfo__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const PDUSessionInfoList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +PDUSessionInfoList__Type valueof() const; +PDUSessionInfoList__Type substr(int index, int returncount) const; + +PDUSessionInfoList__Type replace(int index, int len, const PDUSessionInfoList__Type_template& repl) const; + +PDUSessionInfoList__Type replace(int index, int len, const PDUSessionInfoList__Type& repl) const; + +inline PDUSessionInfoList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const PDUSessionInfoList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new PDUSessionInfoList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class DeleteNSSAI__Type : public Enum_Type { // enum +friend class DeleteNSSAI__Type_template; +public: +enum enum_type { Delete__Default__Configured = 0, Delete__Configured = 1, Delete__Allowed = 2, UNKNOWN_VALUE = 3, UNBOUND_VALUE = 4 }; +private: +enum_type enum_value; + +public: +DeleteNSSAI__Type(); +DeleteNSSAI__Type(int other_value); +DeleteNSSAI__Type(enum_type other_value); +DeleteNSSAI__Type(const DeleteNSSAI__Type& other_value); + +DeleteNSSAI__Type& operator=(int other_value); +DeleteNSSAI__Type& operator=(enum_type other_value); +DeleteNSSAI__Type& operator=(const DeleteNSSAI__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const DeleteNSSAI__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const DeleteNSSAI__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const DeleteNSSAI__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const DeleteNSSAI__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const DeleteNSSAI__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const DeleteNSSAI__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const DeleteNSSAI__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class DeleteNSSAI__Type_template : public Base_Template { +union { +DeleteNSSAI__Type::enum_type single_value; +struct { +unsigned int n_values; +DeleteNSSAI__Type_template *list_value; +} value_list; +struct { +DeleteNSSAI__Type_template* precondition; +DeleteNSSAI__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const DeleteNSSAI__Type_template& other_value); + +public: +DeleteNSSAI__Type_template(); +DeleteNSSAI__Type_template(template_sel other_value); +DeleteNSSAI__Type_template(int other_value); +DeleteNSSAI__Type_template(DeleteNSSAI__Type::enum_type other_value); +DeleteNSSAI__Type_template(const DeleteNSSAI__Type& other_value); +DeleteNSSAI__Type_template(const OPTIONAL& other_value); +DeleteNSSAI__Type_template(DeleteNSSAI__Type_template* p_precondition, DeleteNSSAI__Type_template* p_implied_template); +DeleteNSSAI__Type_template(Dynamic_Match_Interface* p_dyn_match); +DeleteNSSAI__Type_template(const DeleteNSSAI__Type_template& other_value); +~DeleteNSSAI__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +DeleteNSSAI__Type_template& operator=(template_sel other_value); +DeleteNSSAI__Type_template& operator=(int other_value); +DeleteNSSAI__Type_template& operator=(DeleteNSSAI__Type::enum_type other_value); +DeleteNSSAI__Type_template& operator=(const DeleteNSSAI__Type& other_value); +DeleteNSSAI__Type_template& operator=(const OPTIONAL& other_value); +DeleteNSSAI__Type_template& operator=(const DeleteNSSAI__Type_template& other_value); + +boolean match(DeleteNSSAI__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const DeleteNSSAI__Type& other_value, boolean legacy = FALSE) const; +DeleteNSSAI__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +DeleteNSSAI__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const DeleteNSSAI__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class TypeOfRegistration__Type : public Enum_Type { // enum +friend class TypeOfRegistration__Type_template; +public: +enum enum_type { Initial__NoSecurity = 0, Initial__Secure = 1, Mobility = 2, Periodic = 3, Emergency = 4, SNPN__Onboarding = 5, UNKNOWN_VALUE = 6, UNBOUND_VALUE = 7 }; +private: +enum_type enum_value; + +public: +TypeOfRegistration__Type(); +TypeOfRegistration__Type(int other_value); +TypeOfRegistration__Type(enum_type other_value); +TypeOfRegistration__Type(const TypeOfRegistration__Type& other_value); + +TypeOfRegistration__Type& operator=(int other_value); +TypeOfRegistration__Type& operator=(enum_type other_value); +TypeOfRegistration__Type& operator=(const TypeOfRegistration__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const TypeOfRegistration__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const TypeOfRegistration__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const TypeOfRegistration__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const TypeOfRegistration__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const TypeOfRegistration__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const TypeOfRegistration__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const TypeOfRegistration__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class TypeOfRegistration__Type_template : public Base_Template { +union { +TypeOfRegistration__Type::enum_type single_value; +struct { +unsigned int n_values; +TypeOfRegistration__Type_template *list_value; +} value_list; +struct { +TypeOfRegistration__Type_template* precondition; +TypeOfRegistration__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const TypeOfRegistration__Type_template& other_value); + +public: +TypeOfRegistration__Type_template(); +TypeOfRegistration__Type_template(template_sel other_value); +TypeOfRegistration__Type_template(int other_value); +TypeOfRegistration__Type_template(TypeOfRegistration__Type::enum_type other_value); +TypeOfRegistration__Type_template(const TypeOfRegistration__Type& other_value); +TypeOfRegistration__Type_template(const OPTIONAL& other_value); +TypeOfRegistration__Type_template(TypeOfRegistration__Type_template* p_precondition, TypeOfRegistration__Type_template* p_implied_template); +TypeOfRegistration__Type_template(Dynamic_Match_Interface* p_dyn_match); +TypeOfRegistration__Type_template(const TypeOfRegistration__Type_template& other_value); +~TypeOfRegistration__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +TypeOfRegistration__Type_template& operator=(template_sel other_value); +TypeOfRegistration__Type_template& operator=(int other_value); +TypeOfRegistration__Type_template& operator=(TypeOfRegistration__Type::enum_type other_value); +TypeOfRegistration__Type_template& operator=(const TypeOfRegistration__Type& other_value); +TypeOfRegistration__Type_template& operator=(const OPTIONAL& other_value); +TypeOfRegistration__Type_template& operator=(const TypeOfRegistration__Type_template& other_value); + +boolean match(TypeOfRegistration__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const TypeOfRegistration__Type& other_value, boolean legacy = FALSE) const; +TypeOfRegistration__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +TypeOfRegistration__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const TypeOfRegistration__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class RegistrationAccessType : public Enum_Type { // enum +friend class RegistrationAccessType_template; +public: +enum enum_type { Access__3GPP = 0, Non3GPP = 1, Both__3GPP__Non3GPP = 2, UNKNOWN_VALUE = 3, UNBOUND_VALUE = 4 }; +private: +enum_type enum_value; + +public: +RegistrationAccessType(); +RegistrationAccessType(int other_value); +RegistrationAccessType(enum_type other_value); +RegistrationAccessType(const RegistrationAccessType& other_value); + +RegistrationAccessType& operator=(int other_value); +RegistrationAccessType& operator=(enum_type other_value); +RegistrationAccessType& operator=(const RegistrationAccessType& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const RegistrationAccessType& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const RegistrationAccessType& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const RegistrationAccessType& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const RegistrationAccessType& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const RegistrationAccessType& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const RegistrationAccessType& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const RegistrationAccessType& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class RegistrationAccessType_template : public Base_Template { +union { +RegistrationAccessType::enum_type single_value; +struct { +unsigned int n_values; +RegistrationAccessType_template *list_value; +} value_list; +struct { +RegistrationAccessType_template* precondition; +RegistrationAccessType_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const RegistrationAccessType_template& other_value); + +public: +RegistrationAccessType_template(); +RegistrationAccessType_template(template_sel other_value); +RegistrationAccessType_template(int other_value); +RegistrationAccessType_template(RegistrationAccessType::enum_type other_value); +RegistrationAccessType_template(const RegistrationAccessType& other_value); +RegistrationAccessType_template(const OPTIONAL& other_value); +RegistrationAccessType_template(RegistrationAccessType_template* p_precondition, RegistrationAccessType_template* p_implied_template); +RegistrationAccessType_template(Dynamic_Match_Interface* p_dyn_match); +RegistrationAccessType_template(const RegistrationAccessType_template& other_value); +~RegistrationAccessType_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +RegistrationAccessType_template& operator=(template_sel other_value); +RegistrationAccessType_template& operator=(int other_value); +RegistrationAccessType_template& operator=(RegistrationAccessType::enum_type other_value); +RegistrationAccessType_template& operator=(const RegistrationAccessType& other_value); +RegistrationAccessType_template& operator=(const OPTIONAL& other_value); +RegistrationAccessType_template& operator=(const RegistrationAccessType_template& other_value); + +boolean match(RegistrationAccessType::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const RegistrationAccessType& other_value, boolean legacy = FALSE) const; +RegistrationAccessType::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +RegistrationAccessType_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const RegistrationAccessType& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NG__ALL__STATE__Type : public Enum_Type { // enum +friend class NG__ALL__STATE__Type_template; +public: +enum enum_type { STATE__OFF__0A = 0, STATE__OFF__0B = 1, STATE__IDLE__1A = 2, STATE__INACTIVE__2A = 3, STATE__CONNECTED__3A = 4, STATE__CONNECTED__3A__T3540 = 5, STATE__DEREGISTERED = 6, STATE__EMERGENCY__RELEASE__CONNECTED = 7, STATE__EMERGENCY__RELEASE__IDLE = 8, UNKNOWN_VALUE = 9, UNBOUND_VALUE = 10 }; +private: +enum_type enum_value; + +public: +NG__ALL__STATE__Type(); +NG__ALL__STATE__Type(int other_value); +NG__ALL__STATE__Type(enum_type other_value); +NG__ALL__STATE__Type(const NG__ALL__STATE__Type& other_value); + +NG__ALL__STATE__Type& operator=(int other_value); +NG__ALL__STATE__Type& operator=(enum_type other_value); +NG__ALL__STATE__Type& operator=(const NG__ALL__STATE__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NG__ALL__STATE__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NG__ALL__STATE__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NG__ALL__STATE__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NG__ALL__STATE__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NG__ALL__STATE__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NG__ALL__STATE__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NG__ALL__STATE__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NG__ALL__STATE__Type_template : public Base_Template { +union { +NG__ALL__STATE__Type::enum_type single_value; +struct { +unsigned int n_values; +NG__ALL__STATE__Type_template *list_value; +} value_list; +struct { +NG__ALL__STATE__Type_template* precondition; +NG__ALL__STATE__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NG__ALL__STATE__Type_template& other_value); + +public: +NG__ALL__STATE__Type_template(); +NG__ALL__STATE__Type_template(template_sel other_value); +NG__ALL__STATE__Type_template(int other_value); +NG__ALL__STATE__Type_template(NG__ALL__STATE__Type::enum_type other_value); +NG__ALL__STATE__Type_template(const NG__ALL__STATE__Type& other_value); +NG__ALL__STATE__Type_template(const OPTIONAL& other_value); +NG__ALL__STATE__Type_template(NG__ALL__STATE__Type_template* p_precondition, NG__ALL__STATE__Type_template* p_implied_template); +NG__ALL__STATE__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__ALL__STATE__Type_template(const NG__ALL__STATE__Type_template& other_value); +~NG__ALL__STATE__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NG__ALL__STATE__Type_template& operator=(template_sel other_value); +NG__ALL__STATE__Type_template& operator=(int other_value); +NG__ALL__STATE__Type_template& operator=(NG__ALL__STATE__Type::enum_type other_value); +NG__ALL__STATE__Type_template& operator=(const NG__ALL__STATE__Type& other_value); +NG__ALL__STATE__Type_template& operator=(const OPTIONAL& other_value); +NG__ALL__STATE__Type_template& operator=(const NG__ALL__STATE__Type_template& other_value); + +boolean match(NG__ALL__STATE__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NG__ALL__STATE__Type& other_value, boolean legacy = FALSE) const; +NG__ALL__STATE__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NG__ALL__STATE__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NG__ALL__STATE__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NG__NAS__NumOfPLMN__Type : public Enum_Type { // enum +friend class NG__NAS__NumOfPLMN__Type_template; +public: +enum enum_type { NG__AllCellsOnSamePLMN = 0, NG__CellsOnDifferentPLMN = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +NG__NAS__NumOfPLMN__Type(); +NG__NAS__NumOfPLMN__Type(int other_value); +NG__NAS__NumOfPLMN__Type(enum_type other_value); +NG__NAS__NumOfPLMN__Type(const NG__NAS__NumOfPLMN__Type& other_value); + +NG__NAS__NumOfPLMN__Type& operator=(int other_value); +NG__NAS__NumOfPLMN__Type& operator=(enum_type other_value); +NG__NAS__NumOfPLMN__Type& operator=(const NG__NAS__NumOfPLMN__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NG__NAS__NumOfPLMN__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NG__NAS__NumOfPLMN__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NG__NAS__NumOfPLMN__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NG__NAS__NumOfPLMN__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NG__NAS__NumOfPLMN__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NG__NAS__NumOfPLMN__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NG__NAS__NumOfPLMN__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NG__NAS__NumOfPLMN__Type_template : public Base_Template { +union { +NG__NAS__NumOfPLMN__Type::enum_type single_value; +struct { +unsigned int n_values; +NG__NAS__NumOfPLMN__Type_template *list_value; +} value_list; +struct { +NG__NAS__NumOfPLMN__Type_template* precondition; +NG__NAS__NumOfPLMN__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NG__NAS__NumOfPLMN__Type_template& other_value); + +public: +NG__NAS__NumOfPLMN__Type_template(); +NG__NAS__NumOfPLMN__Type_template(template_sel other_value); +NG__NAS__NumOfPLMN__Type_template(int other_value); +NG__NAS__NumOfPLMN__Type_template(NG__NAS__NumOfPLMN__Type::enum_type other_value); +NG__NAS__NumOfPLMN__Type_template(const NG__NAS__NumOfPLMN__Type& other_value); +NG__NAS__NumOfPLMN__Type_template(const OPTIONAL& other_value); +NG__NAS__NumOfPLMN__Type_template(NG__NAS__NumOfPLMN__Type_template* p_precondition, NG__NAS__NumOfPLMN__Type_template* p_implied_template); +NG__NAS__NumOfPLMN__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__NumOfPLMN__Type_template(const NG__NAS__NumOfPLMN__Type_template& other_value); +~NG__NAS__NumOfPLMN__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NG__NAS__NumOfPLMN__Type_template& operator=(template_sel other_value); +NG__NAS__NumOfPLMN__Type_template& operator=(int other_value); +NG__NAS__NumOfPLMN__Type_template& operator=(NG__NAS__NumOfPLMN__Type::enum_type other_value); +NG__NAS__NumOfPLMN__Type_template& operator=(const NG__NAS__NumOfPLMN__Type& other_value); +NG__NAS__NumOfPLMN__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__NumOfPLMN__Type_template& operator=(const NG__NAS__NumOfPLMN__Type_template& other_value); + +boolean match(NG__NAS__NumOfPLMN__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NG__NAS__NumOfPLMN__Type& other_value, boolean legacy = FALSE) const; +NG__NAS__NumOfPLMN__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NG__NAS__NumOfPLMN__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NG__NAS__NumOfPLMN__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class NG__NAS__GutiParameters__Type : public Record_Type { + BITSTRING field_AMF__RegionId; + BITSTRING field_AMF__SetId; + BITSTRING field_AMF__Pointer; + BITSTRING field_NG__TMSI; + Base_Type* fld_vec[4]; + void init_vec(); +public: + NG__NAS__GutiParameters__Type(); + NG__NAS__GutiParameters__Type(const NG__NAS__GutiParameters__Type& other_value); + NG__NAS__GutiParameters__Type(const BITSTRING& par_AMF__RegionId, + const BITSTRING& par_AMF__SetId, + const BITSTRING& par_AMF__Pointer, + const BITSTRING& par_NG__TMSI); +inline NG__NAS__GutiParameters__Type& operator=(const NG__NAS__GutiParameters__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__GutiParameters__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__GutiParameters__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& AMF__RegionId() + {return field_AMF__RegionId;} + inline const BITSTRING& AMF__RegionId() const + {return field_AMF__RegionId;} + inline BITSTRING& AMF__SetId() + {return field_AMF__SetId;} + inline const BITSTRING& AMF__SetId() const + {return field_AMF__SetId;} + inline BITSTRING& AMF__Pointer() + {return field_AMF__Pointer;} + inline const BITSTRING& AMF__Pointer() const + {return field_AMF__Pointer;} + inline BITSTRING& NG__TMSI() + {return field_NG__TMSI;} + inline const BITSTRING& NG__TMSI() const + {return field_NG__TMSI;} +Base_Type* clone() const { return new NG__NAS__GutiParameters__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__GutiParameters__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__GutiParameters__Type_template(): Record_Template() {} +NG__NAS__GutiParameters__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__GutiParameters__Type_template(const NG__NAS__GutiParameters__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__GutiParameters__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__GutiParameters__Type_template(NG__NAS__GutiParameters__Type_template* p_precondition, NG__NAS__GutiParameters__Type_template* p_implied_template); +NG__NAS__GutiParameters__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__GutiParameters__Type_template(const NG__NAS__GutiParameters__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__GutiParameters__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__GutiParameters__Type_template& operator=(template_sel other_value); +NG__NAS__GutiParameters__Type_template& operator=(const NG__NAS__GutiParameters__Type& other_value); +NG__NAS__GutiParameters__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__GutiParameters__Type_template& operator=(const NG__NAS__GutiParameters__Type_template& other_value); +inline boolean match(const NG__NAS__GutiParameters__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__GutiParameters__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__GutiParameters__Type valueof() const; +inline NG__NAS__GutiParameters__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& AMF__RegionId(); +const BITSTRING_template& AMF__RegionId() const; +BITSTRING_template& AMF__SetId(); +const BITSTRING_template& AMF__SetId() const; +BITSTRING_template& AMF__Pointer(); +const BITSTRING_template& AMF__Pointer() const; +BITSTRING_template& NG__TMSI(); +const BITSTRING_template& NG__TMSI() const; +Record_Template* create() const { return new NG__NAS__GutiParameters__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_NG_NAS_Common(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_NG_NAS_Common(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern PDUSessionInfoList__Type_template operator+(template_sel left_template, const PDUSessionInfoList__Type_template& right_template); +extern PDUSessionInfoList__Type_template operator+(template_sel left_template, const PDUSessionInfoList__Type& right_value); +extern PDUSessionInfoList__Type_template operator+(const PDUSessionInfoList__Type& left_value, template_sel right_template); +extern NG__NAS__TypeDefs::NG__PacketFilterList_template cs__PacketFilterList__RemoteAddress(const BITSTRING& p__Id, const OCTETSTRING& p__Component); +extern NG__NAS__TypeDefs::QoS__Rule_template cs__QoS__RuleRemoteAccess(const OCTETSTRING& p__Id, const BITSTRING& p__DQR, const OCTETSTRING& p__Precedence, const BITSTRING& p__FlowId, const OCTETSTRING& p__Component, const OCTETSTRING& p__Length, const BITSTRING& p__FilterId); +extern NG__NAS__GutiParameters__Type_template cs__NG__NAS__GutiParameters(const BITSTRING& p__AMF__RegionId, const BITSTRING& p__NG__TMSI); +extern NG__NAS__TypeDefs::NG__MobileIdentity_template cs__NG__MobileIdentity__Guti(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Guti); +extern NG__NAS__TypeDefs::NG__MobileIdentity_template cs__NG__MobileIdentity__STMSI(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Guti); +extern NG__NAS__TypeDefs::NG__MobileIdentity_template cr__NG__MobileIdentity__TypeOfId(const BITSTRING_template& p__FirstDigit, const BITSTRING_template& p__OddEvenInd, const OCTETSTRING_template& p__OtherDigits, const BITSTRING_template& p__TypeOfId); +extern NG__NAS__TypeDefs::NG__MobileIdentity_template cr__NG__MobileIdentitySUCI(const BITSTRING_template& p__SUPIFormat, const OCTETSTRING_template& p__OtherDigits); +extern NG__NAS__TypeDefs::NG__MobileIdentity_template f__NG__GutiParameters2MobileIdentity(const OCTETSTRING& p__NasPLMN, const NG__NAS__GutiParameters__Type& p__GutiParams, const OCTETSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::NG__MobileIdentity_template f__NG__S__TMSI2MobileIdentity(const OCTETSTRING_template& p__IEI, const NG__NAS__GutiParameters__Type& p__GutiParams); +extern NG__NAS__TypeDefs::NG__MobileIdentity_template f__NG__Imeisv2MobileIdentity(const HEXSTRING& p__IMEISV); +extern CHARSTRING f__ConvertRejectedS__NSSAI__ForATCommand(const NG__NAS__TypeDefs::RejectedS__NSSAI_template& p__S__NSSAI); +extern CHARSTRING f__Convert__ListOfRejectedNSSAI__ForATCommand(const NG__NAS__TypeDefs::RejectedNSSAI_template& p__NSSAI); +extern CHARSTRING f__Convert__ListOfExtdRejectedNSSAI__ForMMICommand(const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__NSSAI); +extern CHARSTRING f__ConvertPartialXtdRejectedS__NSSAI__ForMMICommand(const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template& p__Partial__NSSAI); +extern CHARSTRING f__ConvertXtdRejectedS__NSSAI__ForMMICommand(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI& p__Xtd__NSSAI); +extern CHARSTRING f__ConvertS__NSSAI__VForMMICommand(const NG__NAS__TypeDefs::S__NSSAI__V& p__S__NSSAI); +extern CHARSTRING f__ConvertS__NSSAI__ForATCommand(const NG__NAS__TypeDefs::S__NSSAI__LV_template& p__S__NSSAI); +extern CHARSTRING f__Convert__ListOfNSSAI__ForATCommand(const NG__NAS__TypeDefs::NSSAI_template& p__NSSAI); +extern NG__NAS__TypeDefs::QoS__Rule_template f__BuildQoSRuleRemoteAccess(const CHARSTRING& p__RuleNum); +extern OCTETSTRING fl__BuildRemoteAddressPacketFilter(const CHARSTRING& p__FilterNum); +extern OCTETSTRING fl__BuildRemoteAddressPacketFilterIPv4(const CHARSTRING& p__FilterNum); +extern OCTETSTRING fl__BuildRemoteAddressPrefixLengthIPv6(const CHARSTRING& p__FilterNum); +extern CHARSTRING fl__GetIPv4Address(const CHARSTRING& p__FilterNum); +extern CHARSTRING fl__GetIPv6Address(const CHARSTRING& p__FilterNum); +extern OCTETSTRING f__SdapTests__CreateDatagram(const CHARSTRING& p__FilterNum); + +/* Global variable declarations */ + +extern const TTCN_Typedescriptor_t GMM__MobilityInfo__Type_descr_; +extern const XERdescriptor_t GSM__MobilityInfo__Type_SessionId_xer_; +extern const TTCN_OERdescriptor_t GSM__MobilityInfo__Type_SessionId_oer_; +extern const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_SessionId_descr_; +extern const XERdescriptor_t GSM__MobilityInfo__Type_PTI_xer_; +extern const TTCN_OERdescriptor_t GSM__MobilityInfo__Type_PTI_oer_; +extern const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_PTI_descr_; +extern const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_descr_; +extern const XERdescriptor_t GSM__MobilityInfo__Type_SessionType_xer_; +extern const TTCN_OERdescriptor_t GSM__MobilityInfo__Type_SessionType_oer_; +extern const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_SessionType_descr_; +extern const XERdescriptor_t GSM__MobilityInfo__Type_EPS__Bearer_xer_; +extern const TTCN_OERdescriptor_t GSM__MobilityInfo__Type_EPS__Bearer_oer_; +extern const TTCN_Typedescriptor_t GSM__MobilityInfo__Type_EPS__Bearer_descr_; +extern const TTCN_Typedescriptor_t PDUSessionInfoList__Type_descr_; +extern const TTCN_Typedescriptor_t DeleteNSSAI__Type_descr_; +extern const BITSTRING& tsc__EPD__GMM; +extern BITSTRING const_tsc__EPD__GMM; +extern const BITSTRING& tsc__EPD__GSM; +extern BITSTRING const_tsc__EPD__GSM; +extern const BITSTRING& tsc__MT__NG__RegistrationRequest; +extern BITSTRING const_tsc__MT__NG__RegistrationRequest; +extern const BITSTRING& tsc__MT__NG__RegistrationAccept; +extern BITSTRING const_tsc__MT__NG__RegistrationAccept; +extern const BITSTRING& tsc__MT__NG__RegistrationComplete; +extern BITSTRING const_tsc__MT__NG__RegistrationComplete; +extern const BITSTRING& tsc__MT__NG__RegistrationReject; +extern BITSTRING const_tsc__MT__NG__RegistrationReject; +extern const BITSTRING& tsc__MT__NG__DeregistrationRequest__MO; +extern BITSTRING const_tsc__MT__NG__DeregistrationRequest__MO; +extern const BITSTRING& tsc__MT__NG__DeregistrationAccept__MO; +extern BITSTRING const_tsc__MT__NG__DeregistrationAccept__MO; +extern const BITSTRING& tsc__MT__NG__DeregistrationRequest__MT; +extern BITSTRING const_tsc__MT__NG__DeregistrationRequest__MT; +extern const BITSTRING& tsc__MT__NG__DeregistrationAccept__MT; +extern BITSTRING const_tsc__MT__NG__DeregistrationAccept__MT; +extern const BITSTRING& tsc__MT__NG__ServiceRequest; +extern BITSTRING const_tsc__MT__NG__ServiceRequest; +extern const BITSTRING& tsc__MT__NG__ServiceReject; +extern BITSTRING const_tsc__MT__NG__ServiceReject; +extern const BITSTRING& tsc__MT__NG__ServiceAccept; +extern BITSTRING const_tsc__MT__NG__ServiceAccept; +extern const BITSTRING& tsc__MT__NG__CP__Service__Request; +extern BITSTRING const_tsc__MT__NG__CP__Service__Request; +extern const BITSTRING& tsc__MT__NG__NetworkSliceSpecificAuthenticationCommand; +extern BITSTRING const_tsc__MT__NG__NetworkSliceSpecificAuthenticationCommand; +extern const BITSTRING& tsc__MT__NG__NetworkSliceSpecificAuthenticationComplete; +extern BITSTRING const_tsc__MT__NG__NetworkSliceSpecificAuthenticationComplete; +extern const BITSTRING& tsc__MT__NG__NetworkSliceSpecificAuthenticationResult; +extern BITSTRING const_tsc__MT__NG__NetworkSliceSpecificAuthenticationResult; +extern const BITSTRING& tsc__MT__NG__ConfigurationUpdateCommand; +extern BITSTRING const_tsc__MT__NG__ConfigurationUpdateCommand; +extern const BITSTRING& tsc__MT__NG__ConfigurationUpdateComplete; +extern BITSTRING const_tsc__MT__NG__ConfigurationUpdateComplete; +extern const BITSTRING& tsc__MT__NG__AuthenticationRequest; +extern BITSTRING const_tsc__MT__NG__AuthenticationRequest; +extern const BITSTRING& tsc__MT__NG__AuthenticationResponse; +extern BITSTRING const_tsc__MT__NG__AuthenticationResponse; +extern const BITSTRING& tsc__MT__NG__AuthenticationReject; +extern BITSTRING const_tsc__MT__NG__AuthenticationReject; +extern const BITSTRING& tsc__MT__NG__AuthenticationFailure; +extern BITSTRING const_tsc__MT__NG__AuthenticationFailure; +extern const BITSTRING& tsc__MT__NG__AuthenticationResult; +extern BITSTRING const_tsc__MT__NG__AuthenticationResult; +extern const BITSTRING& tsc__MT__NG__IdentityRequest; +extern BITSTRING const_tsc__MT__NG__IdentityRequest; +extern const BITSTRING& tsc__MT__NG__IdentityResponse; +extern BITSTRING const_tsc__MT__NG__IdentityResponse; +extern const BITSTRING& tsc__MT__NG__SecurityModeCommand; +extern BITSTRING const_tsc__MT__NG__SecurityModeCommand; +extern const BITSTRING& tsc__MT__NG__SecurityModeComplete; +extern BITSTRING const_tsc__MT__NG__SecurityModeComplete; +extern const BITSTRING& tsc__MT__NG__SecurityModeReject; +extern BITSTRING const_tsc__MT__NG__SecurityModeReject; +extern const BITSTRING& tsc__MT__NG__GMM__Status; +extern BITSTRING const_tsc__MT__NG__GMM__Status; +extern const BITSTRING& tsc__MT__NG__Notification; +extern BITSTRING const_tsc__MT__NG__Notification; +extern const BITSTRING& tsc__MT__NG__NotificationResponse; +extern BITSTRING const_tsc__MT__NG__NotificationResponse; +extern const BITSTRING& tsc__MT__NG__UL__NASTransport; +extern BITSTRING const_tsc__MT__NG__UL__NASTransport; +extern const BITSTRING& tsc__MT__NG__DL__NASTransport; +extern BITSTRING const_tsc__MT__NG__DL__NASTransport; +extern const BITSTRING& tsc__MT__NG__PDUSessionEstablishmentRequest; +extern BITSTRING const_tsc__MT__NG__PDUSessionEstablishmentRequest; +extern const BITSTRING& tsc__MT__NG__PDUSessionEstablishmentAccept; +extern BITSTRING const_tsc__MT__NG__PDUSessionEstablishmentAccept; +extern const BITSTRING& tsc__MT__NG__PDUSessionEstablishmentReject; +extern BITSTRING const_tsc__MT__NG__PDUSessionEstablishmentReject; +extern const BITSTRING& tsc__MT__NG__PDUSessionAuthenticationCommand; +extern BITSTRING const_tsc__MT__NG__PDUSessionAuthenticationCommand; +extern const BITSTRING& tsc__MT__NG__PDUSessionAuthenticationComplete; +extern BITSTRING const_tsc__MT__NG__PDUSessionAuthenticationComplete; +extern const BITSTRING& tsc__MT__NG__PDUSessionAuthenticationResult; +extern BITSTRING const_tsc__MT__NG__PDUSessionAuthenticationResult; +extern const BITSTRING& tsc__MT__NG__PDUSessionModificationRequest; +extern BITSTRING const_tsc__MT__NG__PDUSessionModificationRequest; +extern const BITSTRING& tsc__MT__NG__PDUSessionModificationReject; +extern BITSTRING const_tsc__MT__NG__PDUSessionModificationReject; +extern const BITSTRING& tsc__MT__NG__PDUSessionModificationCommand; +extern BITSTRING const_tsc__MT__NG__PDUSessionModificationCommand; +extern const BITSTRING& tsc__MT__NG__PDUSessionModificationComplete; +extern BITSTRING const_tsc__MT__NG__PDUSessionModificationComplete; +extern const BITSTRING& tsc__MT__NG__PDUSessionModificationCommandReject; +extern BITSTRING const_tsc__MT__NG__PDUSessionModificationCommandReject; +extern const BITSTRING& tsc__MT__NG__PDUSessionReleaseRequest; +extern BITSTRING const_tsc__MT__NG__PDUSessionReleaseRequest; +extern const BITSTRING& tsc__MT__NG__PDUSessionReleaseReject; +extern BITSTRING const_tsc__MT__NG__PDUSessionReleaseReject; +extern const BITSTRING& tsc__MT__NG__PDUSessionReleaseCommand; +extern BITSTRING const_tsc__MT__NG__PDUSessionReleaseCommand; +extern const BITSTRING& tsc__MT__NG__PDUSessionReleaseComplete; +extern BITSTRING const_tsc__MT__NG__PDUSessionReleaseComplete; +extern const BITSTRING& tsc__MT__NG__GSM__Status; +extern BITSTRING const_tsc__MT__NG__GSM__Status; +extern const BITSTRING& tsc__MsgType__NSSAI__DeleteReq; +extern BITSTRING const_tsc__MsgType__NSSAI__DeleteReq; +extern const BITSTRING& tsc__MsgType__NSSAI__DeleteResp; +extern BITSTRING const_tsc__MsgType__NSSAI__DeleteResp; +extern const BITSTRING& tsc__MsgType__SetUAIReq; +extern BITSTRING const_tsc__MsgType__SetUAIReq; +extern const BITSTRING& tsc__MsgType__SetUAIResp; +extern BITSTRING const_tsc__MsgType__SetUAIResp; +extern const BITSTRING& tsc__DeleteNSSAI__DefaultConfiguredNSSAI; +extern BITSTRING const_tsc__DeleteNSSAI__DefaultConfiguredNSSAI; +extern const BITSTRING& tsc__DeleteNSSAI__ConfiguredNSSAI; +extern BITSTRING const_tsc__DeleteNSSAI__ConfiguredNSSAI; +extern const BITSTRING& tsc__DeleteNSSAI__AllowedNSSAI; +extern BITSTRING const_tsc__DeleteNSSAI__AllowedNSSAI; +extern const TTCN_Typedescriptor_t TypeOfRegistration__Type_descr_; +extern const TTCN_Typedescriptor_t RegistrationAccessType_descr_; +extern const TTCN_Typedescriptor_t NG__ALL__STATE__Type_descr_; +extern const TTCN_Typedescriptor_t& NG__STATE__Type_descr_; +extern const BITSTRING& tsc__NG__RegistrationInitial; +extern BITSTRING const_tsc__NG__RegistrationInitial; +extern const BITSTRING& tsc__NG__RegistrationMobility; +extern BITSTRING const_tsc__NG__RegistrationMobility; +extern const BITSTRING& tsc__NG__RegistrationPeriodic; +extern BITSTRING const_tsc__NG__RegistrationPeriodic; +extern const BITSTRING& tsc__NG__RegistrationEmergency; +extern BITSTRING const_tsc__NG__RegistrationEmergency; +extern const BITSTRING& tsc__NG__RegistrationSNPN; +extern BITSTRING const_tsc__NG__RegistrationSNPN; +extern const BITSTRING& tsc__NG__RegResult__3GPP; +extern BITSTRING const_tsc__NG__RegResult__3GPP; +extern const BITSTRING& tsc__NG__RegResult__Non3GPP; +extern BITSTRING const_tsc__NG__RegResult__Non3GPP; +extern const BITSTRING& tsc__NG__RegResult__Both; +extern BITSTRING const_tsc__NG__RegResult__Both; +extern const BITSTRING& tsc__PayloadContainerSMSMsg; +extern BITSTRING const_tsc__PayloadContainerSMSMsg; +extern const BITSTRING& tsc__PayloadContainerLPPMsg; +extern BITSTRING const_tsc__PayloadContainerLPPMsg; +extern const BITSTRING& tsc__PayloadContainerSORMsg; +extern BITSTRING const_tsc__PayloadContainerSORMsg; +extern const BITSTRING& tsc__PayloadContainerUEPolicyMsg; +extern BITSTRING const_tsc__PayloadContainerUEPolicyMsg; +extern const BITSTRING& tsc__PayloadContainerCIoTUserData; +extern BITSTRING const_tsc__PayloadContainerCIoTUserData; +extern const OCTETSTRING& tsc__QoSFlowParameter__5QI; +extern OCTETSTRING const_tsc__QoSFlowParameter__5QI; +extern const OCTETSTRING& tsc__QoSFlowParameter__GFBR__UL; +extern OCTETSTRING const_tsc__QoSFlowParameter__GFBR__UL; +extern const OCTETSTRING& tsc__QoSFlowParameter__GFBR__DL; +extern OCTETSTRING const_tsc__QoSFlowParameter__GFBR__DL; +extern const OCTETSTRING& tsc__QoSFlowParameter__MFBR__UL; +extern OCTETSTRING const_tsc__QoSFlowParameter__MFBR__UL; +extern const OCTETSTRING& tsc__QoSFlowParameter__MFBR__DL; +extern OCTETSTRING const_tsc__QoSFlowParameter__MFBR__DL; +extern const OCTETSTRING& tsc__QoSFlowParameter__AvWindow; +extern OCTETSTRING const_tsc__QoSFlowParameter__AvWindow; +extern const OCTETSTRING& tsc__QoSFlowParameter__EPSBearerId; +extern OCTETSTRING const_tsc__QoSFlowParameter__EPSBearerId; +extern const TTCN_Typedescriptor_t NG__NAS__NumOfPLMN__Type_descr_; +extern const BITSTRING& tsc__NG__TMSI1; +extern BITSTRING const_tsc__NG__TMSI1; +extern const BITSTRING& tsc__IdType__NG__Noidentity; +extern BITSTRING const_tsc__IdType__NG__Noidentity; +extern const BITSTRING& tsc__IdType__NG__SUCI; +extern BITSTRING const_tsc__IdType__NG__SUCI; +extern const BITSTRING& tsc__IdType__NG__GUTI; +extern BITSTRING const_tsc__IdType__NG__GUTI; +extern const BITSTRING& tsc__IdType__NG__IMEI; +extern BITSTRING const_tsc__IdType__NG__IMEI; +extern const BITSTRING& tsc__IdType__NG__STMSI; +extern BITSTRING const_tsc__IdType__NG__STMSI; +extern const BITSTRING& tsc__IdType__NG__IMEISV; +extern BITSTRING const_tsc__IdType__NG__IMEISV; +extern const BITSTRING& tsc__NR5GCCause__ServNetNotAuthorized; +extern BITSTRING const_tsc__NR5GCCause__ServNetNotAuthorized; +extern const BITSTRING& tsc__NR5GCCause__InvalidPDUSessionIdentity; +extern BITSTRING const_tsc__NR5GCCause__InvalidPDUSessionIdentity; +extern const BITSTRING& tsc__NR5GCCause__NoSuitableCellsInTA; +extern BITSTRING const_tsc__NR5GCCause__NoSuitableCellsInTA; +extern const BITSTRING& tsc__NR5GCCause__Congestion; +extern BITSTRING const_tsc__NR5GCCause__Congestion; +extern const XERdescriptor_t NG__NAS__GutiParameters__Type_AMF__RegionId_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__GutiParameters__Type_AMF__RegionId_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_AMF__RegionId_descr_; +extern const XERdescriptor_t NG__NAS__GutiParameters__Type_AMF__SetId_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__GutiParameters__Type_AMF__SetId_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_AMF__SetId_descr_; +extern const XERdescriptor_t NG__NAS__GutiParameters__Type_AMF__Pointer_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__GutiParameters__Type_AMF__Pointer_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_AMF__Pointer_descr_; +extern const XERdescriptor_t NG__NAS__GutiParameters__Type_NG__TMSI_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__GutiParameters__Type_NG__TMSI_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_NG__TMSI_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__GutiParameters__Type_descr_; +extern Erroneous_descriptor_t* template_cs__PacketFilterList__RemoteAddress_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__QoS__RuleRemoteAccess_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__NAS__GutiParameters_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__MobileIdentity__Guti_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__MobileIdentity__STMSI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__MobileIdentity__TypeOfId_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__MobileIdentitySUCI_err_descr_ptr; +extern const NG__NAS__TypeDefs::NG__MobileIdentity_template& cr__NG__MobileIdentityNoIdentity; +extern NG__NAS__TypeDefs::NG__MobileIdentity_template template_cr__NG__MobileIdentityNoIdentity; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NG_NAS_Common.o b/build/Ats_NG_NAS/NG_NAS_Common.o new file mode 100644 index 0000000000000000000000000000000000000000..85b42c05a6fd1580e644cb1575895ce1f50702c3 Binary files /dev/null and b/build/Ats_NG_NAS/NG_NAS_Common.o differ diff --git a/build/Ats_NG_NAS/NG_NAS_EncdecDeclarations.cc b/build/Ats_NG_NAS/NG_NAS_EncdecDeclarations.cc new file mode 100644 index 0000000000000000000000000000000000000000..42d0814bdd314d81159b4cf7a67541ac80804abf --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_EncdecDeclarations.cc @@ -0,0 +1,65 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NG_NAS_EncdecDeclarations.hh" + +namespace NG__NAS__EncdecDeclarations { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0xbc, 0xe8, 0x30, 0x33, 0x34, 0xdf, 0x03, 0x42, 0x3b, 0x39, 0x1a, 0xd6, 0x9d, 0x60, 0xc3, 0x07 }; + +/* Global variable definitions */ + +TTCN_Module module_object("NG_NAS_EncdecDeclarations", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ +} + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_EncdecDeclarations.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_EncdecDeclarations"); +NG__NAS__EncdecDeclarations::init_ttcn3_debugger(); +NG__NAS__MsgContainers::module_object.pre_init_module(); +EAP__TypeDefs::module_object.pre_init_module(); +module_object.add_function("fx_enc_NG_NAS_UL_Message_Type", (genericfunc_t)&fx__enc__NG__NAS__UL__Message__Type, NULL); +module_object.add_function("fx_dec_NG_NAS_UL_Message_Type", (genericfunc_t)&fx__dec__NG__NAS__UL__Message__Type, NULL); +module_object.add_function("fx_enc_NG_NAS_DL_Message_Type", (genericfunc_t)&fx__enc__NG__NAS__DL__Message__Type, NULL); +module_object.add_function("fx_dec_NG_NAS_DL_Message_Type", (genericfunc_t)&fx__dec__NG__NAS__DL__Message__Type, NULL); +module_object.add_function("fx_enc_IntraN1TransparentContainer", (genericfunc_t)&fx__enc__IntraN1TransparentContainer, NULL); +module_object.add_function("fx_dec_IntraN1TransparentContainer", (genericfunc_t)&fx__dec__IntraN1TransparentContainer, NULL); +module_object.add_function("fx_enc_CIoTSmallDataContainer", (genericfunc_t)&fx__enc__CIoTSmallDataContainer, NULL); +module_object.add_function("fx_dec_CIoTSmallDataContainer", (genericfunc_t)&fx__dec__CIoTSmallDataContainer, NULL); +module_object.add_function("fx_enc_EAP_Message_Type", (genericfunc_t)&fx__enc__EAP__Message__Type, NULL); +module_object.add_function("fx_dec_EAP_Message_Type", (genericfunc_t)&fx__dec__EAP__Message__Type, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_EncdecDeclarations.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_EncdecDeclarations"); +NG__NAS__MsgContainers::module_object.post_init_module(); +EAP__TypeDefs::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NG_NAS_EncdecDeclarations.hh b/build/Ats_NG_NAS/NG_NAS_EncdecDeclarations.hh new file mode 100644 index 0000000000000000000000000000000000000000..7e544cdaf6ca2526ad6f8b967c5f3d494a2c6d14 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_EncdecDeclarations.hh @@ -0,0 +1,54 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NG__NAS__EncdecDeclarations_HH +#define NG__NAS__EncdecDeclarations_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NG_NAS_MsgContainers.hh" +#include "EAP_TypeDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace NG__NAS__EncdecDeclarations { + +/* Function prototypes */ + +extern BITSTRING fx__enc__NG__NAS__UL__Message__Type(const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type& p); +extern INTEGER fx__dec__NG__NAS__UL__Message__Type(BITSTRING& pdu, NG__NAS__MsgContainers::NG__NAS__UL__Message__Type& p); +extern BITSTRING fx__enc__NG__NAS__DL__Message__Type(const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type& p); +extern INTEGER fx__dec__NG__NAS__DL__Message__Type(BITSTRING& pdu, NG__NAS__MsgContainers::NG__NAS__DL__Message__Type& p); +extern BITSTRING fx__enc__IntraN1TransparentContainer(const NG__NAS__TypeDefs::IntraN1TransparentContainer& p); +extern INTEGER fx__dec__IntraN1TransparentContainer(BITSTRING& pdu, NG__NAS__TypeDefs::IntraN1TransparentContainer& p); +extern BITSTRING fx__enc__CIoTSmallDataContainer(const NG__NAS__TypeDefs::CIoTSmallDataContainer& p); +extern INTEGER fx__dec__CIoTSmallDataContainer(BITSTRING& pdu, NG__NAS__TypeDefs::CIoTSmallDataContainer& p); +extern BITSTRING fx__enc__EAP__Message__Type(const EAP__TypeDefs::EAP__Message__Type& p); +extern INTEGER fx__dec__EAP__Message__Type(BITSTRING& pdu, EAP__TypeDefs::EAP__Message__Type& p); + +/* Global variable declarations */ + +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NG_NAS_EncdecDeclarations.o b/build/Ats_NG_NAS/NG_NAS_EncdecDeclarations.o new file mode 100644 index 0000000000000000000000000000000000000000..c6dad07b30f8abfe61cf18ce84a164cd134c3ce4 Binary files /dev/null and b/build/Ats_NG_NAS/NG_NAS_EncdecDeclarations.o differ diff --git a/build/Ats_NG_NAS/NG_NAS_MsgContainers.cc b/build/Ats_NG_NAS/NG_NAS_MsgContainers.cc new file mode 100644 index 0000000000000000000000000000000000000000..5ce8ef3ce2bba67c0b194e15246b25d3161420c0 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_MsgContainers.cc @@ -0,0 +1,12526 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NG_NAS_MsgContainers.hh" + +namespace NG__NAS__MsgContainers { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0x01, 0x93, 0x45, 0x73, 0xe1, 0x80, 0x9d, 0x23, 0xb4, 0x4b, 0x78, 0x12, 0x81, 0xdf, 0x8c, 0x47 }; + +/* Global variable definitions */ + +// No XER for NG__NAS__UL__Message__Type +const TTCN_Typedescriptor_t NG__NAS__UL__Message__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__DL__Message__Type +const TTCN_Typedescriptor_t NG__NAS__DL__Message__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_Status_xer_ = { {"Status>\n", "Status>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_Status_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_Status_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_SecurityProtectionInfoUL_Type.Status", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NAS__SecurityProtectionInfoUL__Type_Status_xer_, &BITSTRING_json_, &NG__NAS__SecurityProtectionInfoUL__Type_Status_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_NasCount_xer_ = { {"NasCount>\n", "NasCount>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NAS__SecurityProtectionInfoUL__Type_NasCount_oer_ext_arr_[0] = {}; +const int NG__NAS__SecurityProtectionInfoUL__Type_NasCount_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_NasCount_oer_ = { -1, TRUE, 4, FALSE, 0, 0, NG__NAS__SecurityProtectionInfoUL__Type_NasCount_oer_ext_arr_, 0, NG__NAS__SecurityProtectionInfoUL__Type_NasCount_oer_p_}; +const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_NasCount_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_SecurityProtectionInfoUL_Type.NasCount", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &NG__NAS__SecurityProtectionInfoUL__Type_NasCount_xer_, &OCTETSTRING_json_, &NG__NAS__SecurityProtectionInfoUL__Type_NasCount_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__SecurityProtectionInfoUL__Type +const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_SecurityProtectionInfoUL_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_Status_xer_ = { {"Status>\n", "Status>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_Status_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_Status_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_SecurityProtectionInfoDL_Type.Status", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NAS__SecurityProtectionInfoDL__Type_Status_xer_, &BITSTRING_json_, &NG__NAS__SecurityProtectionInfoDL__Type_Status_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_xer_ = { {"ForceMacError>\n", "ForceMacError>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_oer_ext_arr_[0] = {}; +const int NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_oer_ext_arr_, 0, NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_oer_p_}; +const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_SecurityProtectionInfoDL_Type.ForceMacError", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_xer_, &BOOLEAN_json_, &NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__SecurityProtectionInfoDL__Type +const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_SecurityProtectionInfoDL_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__UL__Pdu__Type +const TTCN_Typedescriptor_t NG__NAS__UL__Pdu__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_UL_Pdu_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__UL__PduList__Type +const TTCN_Typedescriptor_t NG__NAS__UL__PduList__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_UL_PduList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__NAS__UL__Pdu__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__DL__Pdu__Type +const TTCN_Typedescriptor_t NG__NAS__DL__Pdu__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_DL_Pdu_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__DL__PduList__Type +const TTCN_Typedescriptor_t NG__NAS__DL__PduList__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_DL_PduList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__NAS__DL__Pdu__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__MSG__Indication__Type +const TTCN_Typedescriptor_t NG__NAS__MSG__Indication__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_MSG_Indication_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__MSG__IndicationList__Type +const TTCN_Typedescriptor_t NG__NAS__MSG__IndicationList__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_MSG_IndicationList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__NAS__MSG__Indication__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__MSG__Request__Type +const TTCN_Typedescriptor_t NG__NAS__MSG__Request__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_MSG_Request_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__MSG__RequestList__Type +const TTCN_Typedescriptor_t NG__NAS__MSG__RequestList__Type_descr_ = { "@NG_NAS_MsgContainers.NG_NAS_MSG_RequestList_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__NAS__MSG__Request__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("NG_NAS_MsgContainers", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_NG_NAS_MsgContainers(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "NG_NAS_DL_Message_Type")) { + ((const NG__NAS__DL__Message__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_Message_Type template")) { + ((const NG__NAS__DL__Message__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_PduList_Type")) { + ((const NG__NAS__DL__PduList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_PduList_Type template")) { + ((const NG__NAS__DL__PduList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_Pdu_Type")) { + ((const NG__NAS__DL__Pdu__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_Pdu_Type template")) { + ((const NG__NAS__DL__Pdu__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_IndicationList_Type")) { + ((const NG__NAS__MSG__IndicationList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_IndicationList_Type template")) { + ((const NG__NAS__MSG__IndicationList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_Indication_Type")) { + ((const NG__NAS__MSG__Indication__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_Indication_Type template")) { + ((const NG__NAS__MSG__Indication__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_RequestList_Type")) { + ((const NG__NAS__MSG__RequestList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_RequestList_Type template")) { + ((const NG__NAS__MSG__RequestList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_Request_Type")) { + ((const NG__NAS__MSG__Request__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_Request_Type template")) { + ((const NG__NAS__MSG__Request__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityProtectionInfoDL_Type")) { + ((const NG__NAS__SecurityProtectionInfoDL__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityProtectionInfoDL_Type template")) { + ((const NG__NAS__SecurityProtectionInfoDL__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityProtectionInfoUL_Type")) { + ((const NG__NAS__SecurityProtectionInfoUL__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityProtectionInfoUL_Type template")) { + ((const NG__NAS__SecurityProtectionInfoUL__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_Message_Type")) { + ((const NG__NAS__UL__Message__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_Message_Type template")) { + ((const NG__NAS__UL__Message__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_PduList_Type")) { + ((const NG__NAS__UL__PduList__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_PduList_Type template")) { + ((const NG__NAS__UL__PduList__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_Pdu_Type")) { + ((const NG__NAS__UL__Pdu__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_Pdu_Type template")) { + ((const NG__NAS__UL__Pdu__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_NG_NAS_MsgContainers(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "NG_NAS_DL_Message_Type")) { + ((NG__NAS__DL__Message__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_Message_Type template")) { + ((NG__NAS__DL__Message__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_PduList_Type")) { + ((NG__NAS__DL__PduList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_PduList_Type template")) { + ((NG__NAS__DL__PduList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_Pdu_Type")) { + ((NG__NAS__DL__Pdu__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_DL_Pdu_Type template")) { + ((NG__NAS__DL__Pdu__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_IndicationList_Type")) { + ((NG__NAS__MSG__IndicationList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_IndicationList_Type template")) { + ((NG__NAS__MSG__IndicationList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_Indication_Type")) { + ((NG__NAS__MSG__Indication__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_Indication_Type template")) { + ((NG__NAS__MSG__Indication__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_RequestList_Type")) { + ((NG__NAS__MSG__RequestList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_RequestList_Type template")) { + ((NG__NAS__MSG__RequestList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_Request_Type")) { + ((NG__NAS__MSG__Request__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_MSG_Request_Type template")) { + ((NG__NAS__MSG__Request__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityProtectionInfoDL_Type")) { + ((NG__NAS__SecurityProtectionInfoDL__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityProtectionInfoDL_Type template")) { + ((NG__NAS__SecurityProtectionInfoDL__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityProtectionInfoUL_Type")) { + ((NG__NAS__SecurityProtectionInfoUL__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityProtectionInfoUL_Type template")) { + ((NG__NAS__SecurityProtectionInfoUL__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_Message_Type")) { + ((NG__NAS__UL__Message__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_Message_Type template")) { + ((NG__NAS__UL__Message__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_PduList_Type")) { + ((NG__NAS__UL__PduList__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_PduList_Type template")) { + ((NG__NAS__UL__PduList__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_Pdu_Type")) { + ((NG__NAS__UL__Pdu__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_UL_Pdu_Type template")) { + ((NG__NAS__UL__Pdu__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NG_NAS_MsgContainers"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EPS__NAS__LoopBack__TypeDefs::tsc__MAX__ModeA__LB__Entities, "tsc_MAX_ModeA_LB_Entities", "integer", "EPS_NAS_LoopBack_TypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EPS__NAS__LoopBack__TypeDefs::tsc__MAX__ModeD__Monitor__Entities, "tsc_MAX_ModeD_Monitor_Entities", "integer", "EPS_NAS_LoopBack_TypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EPS__NAS__LoopBack__TypeDefs::tsc__MAX__ModeE__Monitor__Entities, "tsc_MAX_ModeE_Monitor_Entities", "integer", "EPS_NAS_LoopBack_TypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::cr__SET__UL__MESSAGE__RESPONSE, "cr_SET_UL_MESSAGE_RESPONSE", "SET_UL_MESSAGE_RESPONSE template", "Common4G5G_LoopBack", Common4G5G__LoopBack::print_var_Common4G5G_LoopBack); + global_scope->add_variable(&Common4G5G__LoopBack::cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling, "cs_UE_TestLoopModeA_NR_LB_Setup_NoScaling", "UE_TestLoopModeA_NR_LB_Setup_Type template", "Common4G5G_LoopBack", Common4G5G__LoopBack::print_var_Common4G5G_LoopBack); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__Gen__SkipIndicator, "tsc_Gen_SkipIndicator", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__LB__ProtocolDiscriminator, "tsc_LB_ProtocolDiscriminator", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__LoopModeE__Reception, "tsc_LoopModeE_Reception", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__LoopModeE__Transmission, "tsc_LoopModeE_Transmission", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__LoopModeE__V2x, "tsc_LoopModeE_V2x", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__Activate__TestMode, "tsc_MsgType_Activate_TestMode", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__Activate__TestModeCmpl, "tsc_MsgType_Activate_TestModeCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__CloseUE__TestLoop, "tsc_MsgType_CloseUE_TestLoop", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__CloseUE__TestLoopCmpl, "tsc_MsgType_CloseUE_TestLoopCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__Deactivate__TestMode, "tsc_MsgType_Deactivate_TestMode", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__Deactivate__TestModeCmpl, "tsc_MsgType_Deactivate_TestModeCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__OpenUE__TestLoop, "tsc_MsgType_OpenUE_TestLoop", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__OpenUE__TestLoopCmpl, "tsc_MsgType_OpenUE_TestLoopCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__SetULMsgReq, "tsc_MsgType_SetULMsgReq", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__SetULMsgResp, "tsc_MsgType_SetULMsgResp", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__UE__TestLoopMode__TypeA, "tsc_UE_TestLoopMode_TypeA", "octetstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__UE__TestLoopMode__TypeB, "tsc_UE_TestLoopMode_TypeB", "octetstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__UE__TestLoopMode__TypeE, "tsc_UE_TestLoopMode_TypeE", "octetstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void NG__NAS__UL__Message__Type::copy_value(const NG__NAS__UL__Message__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_authentication__Failure: +field_authentication__Failure = new NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE(*other_value.field_authentication__Failure); +break; +case ALT_authentication__Response: +field_authentication__Response = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE(*other_value.field_authentication__Response); +break; +case ALT_configuration__Update__Complete: +field_configuration__Update__Complete = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE(*other_value.field_configuration__Update__Complete); +break; +case ALT_cp__Service__Request: +field_cp__Service__Request = new NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST(*other_value.field_cp__Service__Request); +break; +case ALT_deregistration__Accept: +field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT(*other_value.field_deregistration__Accept); +break; +case ALT_deregistration__RequestMO: +field_deregistration__RequestMO = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO(*other_value.field_deregistration__RequestMO); +break; +case ALT_gmm__Status: +field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS(*other_value.field_gmm__Status); +break; +case ALT_gsm__Status: +field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS(*other_value.field_gsm__Status); +break; +case ALT_network__Slice__Specific__Authentication__Complete: +field_network__Slice__Specific__Authentication__Complete = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE(*other_value.field_network__Slice__Specific__Authentication__Complete); +break; +case ALT_identity__Response: +field_identity__Response = new NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE(*other_value.field_identity__Response); +break; +case ALT_notification__Response: +field_notification__Response = new NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE(*other_value.field_notification__Response); +break; +case ALT_pdu__Session__Authentication__Complete: +field_pdu__Session__Authentication__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE(*other_value.field_pdu__Session__Authentication__Complete); +break; +case ALT_pdu__Session__Establishment__Request: +field_pdu__Session__Establishment__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST(*other_value.field_pdu__Session__Establishment__Request); +break; +case ALT_pdu__Session__Modification__Command__Reject: +field_pdu__Session__Modification__Command__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT(*other_value.field_pdu__Session__Modification__Command__Reject); +break; +case ALT_pdu__Session__Modification__Complete: +field_pdu__Session__Modification__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE(*other_value.field_pdu__Session__Modification__Complete); +break; +case ALT_pdu__Session__Modification__Request: +field_pdu__Session__Modification__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST(*other_value.field_pdu__Session__Modification__Request); +break; +case ALT_pdu__Session__Release__Complete: +field_pdu__Session__Release__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE(*other_value.field_pdu__Session__Release__Complete); +break; +case ALT_pdu__Session__Release__Request: +field_pdu__Session__Release__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST(*other_value.field_pdu__Session__Release__Request); +break; +case ALT_registration__Complete: +field_registration__Complete = new NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE(*other_value.field_registration__Complete); +break; +case ALT_registration__Request: +field_registration__Request = new NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST(*other_value.field_registration__Request); +break; +case ALT_security__Mode__Complete: +field_security__Mode__Complete = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE(*other_value.field_security__Mode__Complete); +break; +case ALT_security__Mode__Reject: +field_security__Mode__Reject = new NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT(*other_value.field_security__Mode__Reject); +break; +case ALT_security__Protected__Nas__Message: +field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE(*other_value.field_security__Protected__Nas__Message); +break; +case ALT_service__Request: +field_service__Request = new NG__NAS__TypeDefs::NG__SERVICE__REQUEST(*other_value.field_service__Request); +break; +case ALT_ul__Nas__Transport: +field_ul__Nas__Transport = new NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT(*other_value.field_ul__Nas__Transport); +break; +case ALT_activate__Test__Mode__Complete: +field_activate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE(*other_value.field_activate__Test__Mode__Complete); +break; +case ALT_deactivate__Test__Mode__Complete: +field_deactivate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE(*other_value.field_deactivate__Test__Mode__Complete); +break; +case ALT_close__Ue__Test__Loop__Complete: +field_close__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE(*other_value.field_close__Ue__Test__Loop__Complete); +break; +case ALT_open__Ue__Test__Loop__Complete: +field_open__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE(*other_value.field_open__Ue__Test__Loop__Complete); +break; +case ALT_nssai__Delete__Response: +field_nssai__Delete__Response = new NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE(*other_value.field_nssai__Delete__Response); +break; +case ALT_set__UAI__Response: +field_set__UAI__Response = new NG__NAS__TypeDefs::SET__UAI__RESPONSE(*other_value.field_set__UAI__Response); +break; +case ALT_set__UL__Message__Response: +field_set__UL__Message__Response = new Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE(*other_value.field_set__UL__Message__Response); +break; +case ALT_test__Loop__Sidelink__Counter__Response: +field_test__Loop__Sidelink__Counter__Response = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE(*other_value.field_test__Loop__Sidelink__Counter__Response); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +NG__NAS__UL__Message__Type::NG__NAS__UL__Message__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +NG__NAS__UL__Message__Type::NG__NAS__UL__Message__Type(const NG__NAS__UL__Message__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +NG__NAS__UL__Message__Type::~NG__NAS__UL__Message__Type() +{ +clean_up(); +} + +NG__NAS__UL__Message__Type& NG__NAS__UL__Message__Type::operator=(const NG__NAS__UL__Message__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean NG__NAS__UL__Message__Type::operator==(const NG__NAS__UL__Message__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_authentication__Failure: +return *field_authentication__Failure == *other_value.field_authentication__Failure; +case ALT_authentication__Response: +return *field_authentication__Response == *other_value.field_authentication__Response; +case ALT_configuration__Update__Complete: +return *field_configuration__Update__Complete == *other_value.field_configuration__Update__Complete; +case ALT_cp__Service__Request: +return *field_cp__Service__Request == *other_value.field_cp__Service__Request; +case ALT_deregistration__Accept: +return *field_deregistration__Accept == *other_value.field_deregistration__Accept; +case ALT_deregistration__RequestMO: +return *field_deregistration__RequestMO == *other_value.field_deregistration__RequestMO; +case ALT_gmm__Status: +return *field_gmm__Status == *other_value.field_gmm__Status; +case ALT_gsm__Status: +return *field_gsm__Status == *other_value.field_gsm__Status; +case ALT_network__Slice__Specific__Authentication__Complete: +return *field_network__Slice__Specific__Authentication__Complete == *other_value.field_network__Slice__Specific__Authentication__Complete; +case ALT_identity__Response: +return *field_identity__Response == *other_value.field_identity__Response; +case ALT_notification__Response: +return *field_notification__Response == *other_value.field_notification__Response; +case ALT_pdu__Session__Authentication__Complete: +return *field_pdu__Session__Authentication__Complete == *other_value.field_pdu__Session__Authentication__Complete; +case ALT_pdu__Session__Establishment__Request: +return *field_pdu__Session__Establishment__Request == *other_value.field_pdu__Session__Establishment__Request; +case ALT_pdu__Session__Modification__Command__Reject: +return *field_pdu__Session__Modification__Command__Reject == *other_value.field_pdu__Session__Modification__Command__Reject; +case ALT_pdu__Session__Modification__Complete: +return *field_pdu__Session__Modification__Complete == *other_value.field_pdu__Session__Modification__Complete; +case ALT_pdu__Session__Modification__Request: +return *field_pdu__Session__Modification__Request == *other_value.field_pdu__Session__Modification__Request; +case ALT_pdu__Session__Release__Complete: +return *field_pdu__Session__Release__Complete == *other_value.field_pdu__Session__Release__Complete; +case ALT_pdu__Session__Release__Request: +return *field_pdu__Session__Release__Request == *other_value.field_pdu__Session__Release__Request; +case ALT_registration__Complete: +return *field_registration__Complete == *other_value.field_registration__Complete; +case ALT_registration__Request: +return *field_registration__Request == *other_value.field_registration__Request; +case ALT_security__Mode__Complete: +return *field_security__Mode__Complete == *other_value.field_security__Mode__Complete; +case ALT_security__Mode__Reject: +return *field_security__Mode__Reject == *other_value.field_security__Mode__Reject; +case ALT_security__Protected__Nas__Message: +return *field_security__Protected__Nas__Message == *other_value.field_security__Protected__Nas__Message; +case ALT_service__Request: +return *field_service__Request == *other_value.field_service__Request; +case ALT_ul__Nas__Transport: +return *field_ul__Nas__Transport == *other_value.field_ul__Nas__Transport; +case ALT_activate__Test__Mode__Complete: +return *field_activate__Test__Mode__Complete == *other_value.field_activate__Test__Mode__Complete; +case ALT_deactivate__Test__Mode__Complete: +return *field_deactivate__Test__Mode__Complete == *other_value.field_deactivate__Test__Mode__Complete; +case ALT_close__Ue__Test__Loop__Complete: +return *field_close__Ue__Test__Loop__Complete == *other_value.field_close__Ue__Test__Loop__Complete; +case ALT_open__Ue__Test__Loop__Complete: +return *field_open__Ue__Test__Loop__Complete == *other_value.field_open__Ue__Test__Loop__Complete; +case ALT_nssai__Delete__Response: +return *field_nssai__Delete__Response == *other_value.field_nssai__Delete__Response; +case ALT_set__UAI__Response: +return *field_set__UAI__Response == *other_value.field_set__UAI__Response; +case ALT_set__UL__Message__Response: +return *field_set__UL__Message__Response == *other_value.field_set__UL__Message__Response; +case ALT_test__Loop__Sidelink__Counter__Response: +return *field_test__Loop__Sidelink__Counter__Response == *other_value.field_test__Loop__Sidelink__Counter__Response; +default: +return FALSE; +} +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE& NG__NAS__UL__Message__Type::authentication__Failure() +{ +if (union_selection != ALT_authentication__Failure) { +clean_up(); +field_authentication__Failure = new NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE; +union_selection = ALT_authentication__Failure; +} +return *field_authentication__Failure; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE& NG__NAS__UL__Message__Type::authentication__Failure() const +{ +if (union_selection != ALT_authentication__Failure) TTCN_error("Using non-selected field authentication_Failure in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_authentication__Failure; +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE& NG__NAS__UL__Message__Type::authentication__Response() +{ +if (union_selection != ALT_authentication__Response) { +clean_up(); +field_authentication__Response = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE; +union_selection = ALT_authentication__Response; +} +return *field_authentication__Response; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE& NG__NAS__UL__Message__Type::authentication__Response() const +{ +if (union_selection != ALT_authentication__Response) TTCN_error("Using non-selected field authentication_Response in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_authentication__Response; +} + +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE& NG__NAS__UL__Message__Type::configuration__Update__Complete() +{ +if (union_selection != ALT_configuration__Update__Complete) { +clean_up(); +field_configuration__Update__Complete = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE; +union_selection = ALT_configuration__Update__Complete; +} +return *field_configuration__Update__Complete; +} + +const NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE& NG__NAS__UL__Message__Type::configuration__Update__Complete() const +{ +if (union_selection != ALT_configuration__Update__Complete) TTCN_error("Using non-selected field configuration_Update_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_configuration__Update__Complete; +} + +NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST& NG__NAS__UL__Message__Type::cp__Service__Request() +{ +if (union_selection != ALT_cp__Service__Request) { +clean_up(); +field_cp__Service__Request = new NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST; +union_selection = ALT_cp__Service__Request; +} +return *field_cp__Service__Request; +} + +const NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST& NG__NAS__UL__Message__Type::cp__Service__Request() const +{ +if (union_selection != ALT_cp__Service__Request) TTCN_error("Using non-selected field cp_Service_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_cp__Service__Request; +} + +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT& NG__NAS__UL__Message__Type::deregistration__Accept() +{ +if (union_selection != ALT_deregistration__Accept) { +clean_up(); +field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT; +union_selection = ALT_deregistration__Accept; +} +return *field_deregistration__Accept; +} + +const NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT& NG__NAS__UL__Message__Type::deregistration__Accept() const +{ +if (union_selection != ALT_deregistration__Accept) TTCN_error("Using non-selected field deregistration_Accept in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_deregistration__Accept; +} + +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO& NG__NAS__UL__Message__Type::deregistration__RequestMO() +{ +if (union_selection != ALT_deregistration__RequestMO) { +clean_up(); +field_deregistration__RequestMO = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO; +union_selection = ALT_deregistration__RequestMO; +} +return *field_deregistration__RequestMO; +} + +const NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO& NG__NAS__UL__Message__Type::deregistration__RequestMO() const +{ +if (union_selection != ALT_deregistration__RequestMO) TTCN_error("Using non-selected field deregistration_RequestMO in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_deregistration__RequestMO; +} + +NG__NAS__TypeDefs::NG__GMM__STATUS& NG__NAS__UL__Message__Type::gmm__Status() +{ +if (union_selection != ALT_gmm__Status) { +clean_up(); +field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS; +union_selection = ALT_gmm__Status; +} +return *field_gmm__Status; +} + +const NG__NAS__TypeDefs::NG__GMM__STATUS& NG__NAS__UL__Message__Type::gmm__Status() const +{ +if (union_selection != ALT_gmm__Status) TTCN_error("Using non-selected field gmm_Status in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_gmm__Status; +} + +NG__NAS__TypeDefs::NG__GSM__STATUS& NG__NAS__UL__Message__Type::gsm__Status() +{ +if (union_selection != ALT_gsm__Status) { +clean_up(); +field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS; +union_selection = ALT_gsm__Status; +} +return *field_gsm__Status; +} + +const NG__NAS__TypeDefs::NG__GSM__STATUS& NG__NAS__UL__Message__Type::gsm__Status() const +{ +if (union_selection != ALT_gsm__Status) TTCN_error("Using non-selected field gsm_Status in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_gsm__Status; +} + +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& NG__NAS__UL__Message__Type::network__Slice__Specific__Authentication__Complete() +{ +if (union_selection != ALT_network__Slice__Specific__Authentication__Complete) { +clean_up(); +field_network__Slice__Specific__Authentication__Complete = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE; +union_selection = ALT_network__Slice__Specific__Authentication__Complete; +} +return *field_network__Slice__Specific__Authentication__Complete; +} + +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& NG__NAS__UL__Message__Type::network__Slice__Specific__Authentication__Complete() const +{ +if (union_selection != ALT_network__Slice__Specific__Authentication__Complete) TTCN_error("Using non-selected field network_Slice_Specific_Authentication_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_network__Slice__Specific__Authentication__Complete; +} + +NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE& NG__NAS__UL__Message__Type::identity__Response() +{ +if (union_selection != ALT_identity__Response) { +clean_up(); +field_identity__Response = new NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE; +union_selection = ALT_identity__Response; +} +return *field_identity__Response; +} + +const NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE& NG__NAS__UL__Message__Type::identity__Response() const +{ +if (union_selection != ALT_identity__Response) TTCN_error("Using non-selected field identity_Response in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_identity__Response; +} + +NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE& NG__NAS__UL__Message__Type::notification__Response() +{ +if (union_selection != ALT_notification__Response) { +clean_up(); +field_notification__Response = new NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE; +union_selection = ALT_notification__Response; +} +return *field_notification__Response; +} + +const NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE& NG__NAS__UL__Message__Type::notification__Response() const +{ +if (union_selection != ALT_notification__Response) TTCN_error("Using non-selected field notification_Response in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_notification__Response; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE& NG__NAS__UL__Message__Type::pdu__Session__Authentication__Complete() +{ +if (union_selection != ALT_pdu__Session__Authentication__Complete) { +clean_up(); +field_pdu__Session__Authentication__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE; +union_selection = ALT_pdu__Session__Authentication__Complete; +} +return *field_pdu__Session__Authentication__Complete; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE& NG__NAS__UL__Message__Type::pdu__Session__Authentication__Complete() const +{ +if (union_selection != ALT_pdu__Session__Authentication__Complete) TTCN_error("Using non-selected field pdu_Session_Authentication_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_pdu__Session__Authentication__Complete; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST& NG__NAS__UL__Message__Type::pdu__Session__Establishment__Request() +{ +if (union_selection != ALT_pdu__Session__Establishment__Request) { +clean_up(); +field_pdu__Session__Establishment__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST; +union_selection = ALT_pdu__Session__Establishment__Request; +} +return *field_pdu__Session__Establishment__Request; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST& NG__NAS__UL__Message__Type::pdu__Session__Establishment__Request() const +{ +if (union_selection != ALT_pdu__Session__Establishment__Request) TTCN_error("Using non-selected field pdu_Session_Establishment_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_pdu__Session__Establishment__Request; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& NG__NAS__UL__Message__Type::pdu__Session__Modification__Command__Reject() +{ +if (union_selection != ALT_pdu__Session__Modification__Command__Reject) { +clean_up(); +field_pdu__Session__Modification__Command__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT; +union_selection = ALT_pdu__Session__Modification__Command__Reject; +} +return *field_pdu__Session__Modification__Command__Reject; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& NG__NAS__UL__Message__Type::pdu__Session__Modification__Command__Reject() const +{ +if (union_selection != ALT_pdu__Session__Modification__Command__Reject) TTCN_error("Using non-selected field pdu_Session_Modification_Command_Reject in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_pdu__Session__Modification__Command__Reject; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE& NG__NAS__UL__Message__Type::pdu__Session__Modification__Complete() +{ +if (union_selection != ALT_pdu__Session__Modification__Complete) { +clean_up(); +field_pdu__Session__Modification__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE; +union_selection = ALT_pdu__Session__Modification__Complete; +} +return *field_pdu__Session__Modification__Complete; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE& NG__NAS__UL__Message__Type::pdu__Session__Modification__Complete() const +{ +if (union_selection != ALT_pdu__Session__Modification__Complete) TTCN_error("Using non-selected field pdu_Session_Modification_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_pdu__Session__Modification__Complete; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST& NG__NAS__UL__Message__Type::pdu__Session__Modification__Request() +{ +if (union_selection != ALT_pdu__Session__Modification__Request) { +clean_up(); +field_pdu__Session__Modification__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST; +union_selection = ALT_pdu__Session__Modification__Request; +} +return *field_pdu__Session__Modification__Request; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST& NG__NAS__UL__Message__Type::pdu__Session__Modification__Request() const +{ +if (union_selection != ALT_pdu__Session__Modification__Request) TTCN_error("Using non-selected field pdu_Session_Modification_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_pdu__Session__Modification__Request; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE& NG__NAS__UL__Message__Type::pdu__Session__Release__Complete() +{ +if (union_selection != ALT_pdu__Session__Release__Complete) { +clean_up(); +field_pdu__Session__Release__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE; +union_selection = ALT_pdu__Session__Release__Complete; +} +return *field_pdu__Session__Release__Complete; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE& NG__NAS__UL__Message__Type::pdu__Session__Release__Complete() const +{ +if (union_selection != ALT_pdu__Session__Release__Complete) TTCN_error("Using non-selected field pdu_Session_Release_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_pdu__Session__Release__Complete; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST& NG__NAS__UL__Message__Type::pdu__Session__Release__Request() +{ +if (union_selection != ALT_pdu__Session__Release__Request) { +clean_up(); +field_pdu__Session__Release__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST; +union_selection = ALT_pdu__Session__Release__Request; +} +return *field_pdu__Session__Release__Request; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST& NG__NAS__UL__Message__Type::pdu__Session__Release__Request() const +{ +if (union_selection != ALT_pdu__Session__Release__Request) TTCN_error("Using non-selected field pdu_Session_Release_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_pdu__Session__Release__Request; +} + +NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE& NG__NAS__UL__Message__Type::registration__Complete() +{ +if (union_selection != ALT_registration__Complete) { +clean_up(); +field_registration__Complete = new NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE; +union_selection = ALT_registration__Complete; +} +return *field_registration__Complete; +} + +const NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE& NG__NAS__UL__Message__Type::registration__Complete() const +{ +if (union_selection != ALT_registration__Complete) TTCN_error("Using non-selected field registration_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_registration__Complete; +} + +NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST& NG__NAS__UL__Message__Type::registration__Request() +{ +if (union_selection != ALT_registration__Request) { +clean_up(); +field_registration__Request = new NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST; +union_selection = ALT_registration__Request; +} +return *field_registration__Request; +} + +const NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST& NG__NAS__UL__Message__Type::registration__Request() const +{ +if (union_selection != ALT_registration__Request) TTCN_error("Using non-selected field registration_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_registration__Request; +} + +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE& NG__NAS__UL__Message__Type::security__Mode__Complete() +{ +if (union_selection != ALT_security__Mode__Complete) { +clean_up(); +field_security__Mode__Complete = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE; +union_selection = ALT_security__Mode__Complete; +} +return *field_security__Mode__Complete; +} + +const NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE& NG__NAS__UL__Message__Type::security__Mode__Complete() const +{ +if (union_selection != ALT_security__Mode__Complete) TTCN_error("Using non-selected field security_Mode_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_security__Mode__Complete; +} + +NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT& NG__NAS__UL__Message__Type::security__Mode__Reject() +{ +if (union_selection != ALT_security__Mode__Reject) { +clean_up(); +field_security__Mode__Reject = new NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT; +union_selection = ALT_security__Mode__Reject; +} +return *field_security__Mode__Reject; +} + +const NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT& NG__NAS__UL__Message__Type::security__Mode__Reject() const +{ +if (union_selection != ALT_security__Mode__Reject) TTCN_error("Using non-selected field security_Mode_Reject in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_security__Mode__Reject; +} + +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE& NG__NAS__UL__Message__Type::security__Protected__Nas__Message() +{ +if (union_selection != ALT_security__Protected__Nas__Message) { +clean_up(); +field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE; +union_selection = ALT_security__Protected__Nas__Message; +} +return *field_security__Protected__Nas__Message; +} + +const NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE& NG__NAS__UL__Message__Type::security__Protected__Nas__Message() const +{ +if (union_selection != ALT_security__Protected__Nas__Message) TTCN_error("Using non-selected field security_Protected_Nas_Message in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_security__Protected__Nas__Message; +} + +NG__NAS__TypeDefs::NG__SERVICE__REQUEST& NG__NAS__UL__Message__Type::service__Request() +{ +if (union_selection != ALT_service__Request) { +clean_up(); +field_service__Request = new NG__NAS__TypeDefs::NG__SERVICE__REQUEST; +union_selection = ALT_service__Request; +} +return *field_service__Request; +} + +const NG__NAS__TypeDefs::NG__SERVICE__REQUEST& NG__NAS__UL__Message__Type::service__Request() const +{ +if (union_selection != ALT_service__Request) TTCN_error("Using non-selected field service_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_service__Request; +} + +NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT& NG__NAS__UL__Message__Type::ul__Nas__Transport() +{ +if (union_selection != ALT_ul__Nas__Transport) { +clean_up(); +field_ul__Nas__Transport = new NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT; +union_selection = ALT_ul__Nas__Transport; +} +return *field_ul__Nas__Transport; +} + +const NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT& NG__NAS__UL__Message__Type::ul__Nas__Transport() const +{ +if (union_selection != ALT_ul__Nas__Transport) TTCN_error("Using non-selected field ul_Nas_Transport in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_ul__Nas__Transport; +} + +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE& NG__NAS__UL__Message__Type::activate__Test__Mode__Complete() +{ +if (union_selection != ALT_activate__Test__Mode__Complete) { +clean_up(); +field_activate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE; +union_selection = ALT_activate__Test__Mode__Complete; +} +return *field_activate__Test__Mode__Complete; +} + +const EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE& NG__NAS__UL__Message__Type::activate__Test__Mode__Complete() const +{ +if (union_selection != ALT_activate__Test__Mode__Complete) TTCN_error("Using non-selected field activate_Test_Mode_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_activate__Test__Mode__Complete; +} + +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE& NG__NAS__UL__Message__Type::deactivate__Test__Mode__Complete() +{ +if (union_selection != ALT_deactivate__Test__Mode__Complete) { +clean_up(); +field_deactivate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE; +union_selection = ALT_deactivate__Test__Mode__Complete; +} +return *field_deactivate__Test__Mode__Complete; +} + +const EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE& NG__NAS__UL__Message__Type::deactivate__Test__Mode__Complete() const +{ +if (union_selection != ALT_deactivate__Test__Mode__Complete) TTCN_error("Using non-selected field deactivate_Test_Mode_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_deactivate__Test__Mode__Complete; +} + +EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE& NG__NAS__UL__Message__Type::close__Ue__Test__Loop__Complete() +{ +if (union_selection != ALT_close__Ue__Test__Loop__Complete) { +clean_up(); +field_close__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE; +union_selection = ALT_close__Ue__Test__Loop__Complete; +} +return *field_close__Ue__Test__Loop__Complete; +} + +const EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE& NG__NAS__UL__Message__Type::close__Ue__Test__Loop__Complete() const +{ +if (union_selection != ALT_close__Ue__Test__Loop__Complete) TTCN_error("Using non-selected field close_Ue_Test_Loop_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_close__Ue__Test__Loop__Complete; +} + +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE& NG__NAS__UL__Message__Type::open__Ue__Test__Loop__Complete() +{ +if (union_selection != ALT_open__Ue__Test__Loop__Complete) { +clean_up(); +field_open__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE; +union_selection = ALT_open__Ue__Test__Loop__Complete; +} +return *field_open__Ue__Test__Loop__Complete; +} + +const EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE& NG__NAS__UL__Message__Type::open__Ue__Test__Loop__Complete() const +{ +if (union_selection != ALT_open__Ue__Test__Loop__Complete) TTCN_error("Using non-selected field open_Ue_Test_Loop_Complete in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_open__Ue__Test__Loop__Complete; +} + +NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE& NG__NAS__UL__Message__Type::nssai__Delete__Response() +{ +if (union_selection != ALT_nssai__Delete__Response) { +clean_up(); +field_nssai__Delete__Response = new NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE; +union_selection = ALT_nssai__Delete__Response; +} +return *field_nssai__Delete__Response; +} + +const NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE& NG__NAS__UL__Message__Type::nssai__Delete__Response() const +{ +if (union_selection != ALT_nssai__Delete__Response) TTCN_error("Using non-selected field nssai_Delete_Response in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_nssai__Delete__Response; +} + +NG__NAS__TypeDefs::SET__UAI__RESPONSE& NG__NAS__UL__Message__Type::set__UAI__Response() +{ +if (union_selection != ALT_set__UAI__Response) { +clean_up(); +field_set__UAI__Response = new NG__NAS__TypeDefs::SET__UAI__RESPONSE; +union_selection = ALT_set__UAI__Response; +} +return *field_set__UAI__Response; +} + +const NG__NAS__TypeDefs::SET__UAI__RESPONSE& NG__NAS__UL__Message__Type::set__UAI__Response() const +{ +if (union_selection != ALT_set__UAI__Response) TTCN_error("Using non-selected field set_UAI_Response in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_set__UAI__Response; +} + +Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE& NG__NAS__UL__Message__Type::set__UL__Message__Response() +{ +if (union_selection != ALT_set__UL__Message__Response) { +clean_up(); +field_set__UL__Message__Response = new Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE; +union_selection = ALT_set__UL__Message__Response; +} +return *field_set__UL__Message__Response; +} + +const Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE& NG__NAS__UL__Message__Type::set__UL__Message__Response() const +{ +if (union_selection != ALT_set__UL__Message__Response) TTCN_error("Using non-selected field set_UL_Message_Response in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_set__UL__Message__Response; +} + +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& NG__NAS__UL__Message__Type::test__Loop__Sidelink__Counter__Response() +{ +if (union_selection != ALT_test__Loop__Sidelink__Counter__Response) { +clean_up(); +field_test__Loop__Sidelink__Counter__Response = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE; +union_selection = ALT_test__Loop__Sidelink__Counter__Response; +} +return *field_test__Loop__Sidelink__Counter__Response; +} + +const NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& NG__NAS__UL__Message__Type::test__Loop__Sidelink__Counter__Response() const +{ +if (union_selection != ALT_test__Loop__Sidelink__Counter__Response) TTCN_error("Using non-selected field test_Loop_Sidelink_Counter_Response in a value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *field_test__Loop__Sidelink__Counter__Response; +} + +boolean NG__NAS__UL__Message__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return union_selection == checked_selection; +} + +boolean NG__NAS__UL__Message__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean NG__NAS__UL__Message__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_authentication__Failure: return field_authentication__Failure->is_value(); +case ALT_authentication__Response: return field_authentication__Response->is_value(); +case ALT_configuration__Update__Complete: return field_configuration__Update__Complete->is_value(); +case ALT_cp__Service__Request: return field_cp__Service__Request->is_value(); +case ALT_deregistration__Accept: return field_deregistration__Accept->is_value(); +case ALT_deregistration__RequestMO: return field_deregistration__RequestMO->is_value(); +case ALT_gmm__Status: return field_gmm__Status->is_value(); +case ALT_gsm__Status: return field_gsm__Status->is_value(); +case ALT_network__Slice__Specific__Authentication__Complete: return field_network__Slice__Specific__Authentication__Complete->is_value(); +case ALT_identity__Response: return field_identity__Response->is_value(); +case ALT_notification__Response: return field_notification__Response->is_value(); +case ALT_pdu__Session__Authentication__Complete: return field_pdu__Session__Authentication__Complete->is_value(); +case ALT_pdu__Session__Establishment__Request: return field_pdu__Session__Establishment__Request->is_value(); +case ALT_pdu__Session__Modification__Command__Reject: return field_pdu__Session__Modification__Command__Reject->is_value(); +case ALT_pdu__Session__Modification__Complete: return field_pdu__Session__Modification__Complete->is_value(); +case ALT_pdu__Session__Modification__Request: return field_pdu__Session__Modification__Request->is_value(); +case ALT_pdu__Session__Release__Complete: return field_pdu__Session__Release__Complete->is_value(); +case ALT_pdu__Session__Release__Request: return field_pdu__Session__Release__Request->is_value(); +case ALT_registration__Complete: return field_registration__Complete->is_value(); +case ALT_registration__Request: return field_registration__Request->is_value(); +case ALT_security__Mode__Complete: return field_security__Mode__Complete->is_value(); +case ALT_security__Mode__Reject: return field_security__Mode__Reject->is_value(); +case ALT_security__Protected__Nas__Message: return field_security__Protected__Nas__Message->is_value(); +case ALT_service__Request: return field_service__Request->is_value(); +case ALT_ul__Nas__Transport: return field_ul__Nas__Transport->is_value(); +case ALT_activate__Test__Mode__Complete: return field_activate__Test__Mode__Complete->is_value(); +case ALT_deactivate__Test__Mode__Complete: return field_deactivate__Test__Mode__Complete->is_value(); +case ALT_close__Ue__Test__Loop__Complete: return field_close__Ue__Test__Loop__Complete->is_value(); +case ALT_open__Ue__Test__Loop__Complete: return field_open__Ue__Test__Loop__Complete->is_value(); +case ALT_nssai__Delete__Response: return field_nssai__Delete__Response->is_value(); +case ALT_set__UAI__Response: return field_set__UAI__Response->is_value(); +case ALT_set__UL__Message__Response: return field_set__UL__Message__Response->is_value(); +case ALT_test__Loop__Sidelink__Counter__Response: return field_test__Loop__Sidelink__Counter__Response->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void NG__NAS__UL__Message__Type::clean_up() +{ +switch (union_selection) { +case ALT_authentication__Failure: + delete field_authentication__Failure; + break; +case ALT_authentication__Response: + delete field_authentication__Response; + break; +case ALT_configuration__Update__Complete: + delete field_configuration__Update__Complete; + break; +case ALT_cp__Service__Request: + delete field_cp__Service__Request; + break; +case ALT_deregistration__Accept: + delete field_deregistration__Accept; + break; +case ALT_deregistration__RequestMO: + delete field_deregistration__RequestMO; + break; +case ALT_gmm__Status: + delete field_gmm__Status; + break; +case ALT_gsm__Status: + delete field_gsm__Status; + break; +case ALT_network__Slice__Specific__Authentication__Complete: + delete field_network__Slice__Specific__Authentication__Complete; + break; +case ALT_identity__Response: + delete field_identity__Response; + break; +case ALT_notification__Response: + delete field_notification__Response; + break; +case ALT_pdu__Session__Authentication__Complete: + delete field_pdu__Session__Authentication__Complete; + break; +case ALT_pdu__Session__Establishment__Request: + delete field_pdu__Session__Establishment__Request; + break; +case ALT_pdu__Session__Modification__Command__Reject: + delete field_pdu__Session__Modification__Command__Reject; + break; +case ALT_pdu__Session__Modification__Complete: + delete field_pdu__Session__Modification__Complete; + break; +case ALT_pdu__Session__Modification__Request: + delete field_pdu__Session__Modification__Request; + break; +case ALT_pdu__Session__Release__Complete: + delete field_pdu__Session__Release__Complete; + break; +case ALT_pdu__Session__Release__Request: + delete field_pdu__Session__Release__Request; + break; +case ALT_registration__Complete: + delete field_registration__Complete; + break; +case ALT_registration__Request: + delete field_registration__Request; + break; +case ALT_security__Mode__Complete: + delete field_security__Mode__Complete; + break; +case ALT_security__Mode__Reject: + delete field_security__Mode__Reject; + break; +case ALT_security__Protected__Nas__Message: + delete field_security__Protected__Nas__Message; + break; +case ALT_service__Request: + delete field_service__Request; + break; +case ALT_ul__Nas__Transport: + delete field_ul__Nas__Transport; + break; +case ALT_activate__Test__Mode__Complete: + delete field_activate__Test__Mode__Complete; + break; +case ALT_deactivate__Test__Mode__Complete: + delete field_deactivate__Test__Mode__Complete; + break; +case ALT_close__Ue__Test__Loop__Complete: + delete field_close__Ue__Test__Loop__Complete; + break; +case ALT_open__Ue__Test__Loop__Complete: + delete field_open__Ue__Test__Loop__Complete; + break; +case ALT_nssai__Delete__Response: + delete field_nssai__Delete__Response; + break; +case ALT_set__UAI__Response: + delete field_set__UAI__Response; + break; +case ALT_set__UL__Message__Response: + delete field_set__UL__Message__Response; + break; +case ALT_test__Loop__Sidelink__Counter__Response: + delete field_test__Loop__Sidelink__Counter__Response; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean NG__NAS__UL__Message__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NG__NAS__UL__Message__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NG__NAS__UL__Message__Type::clone() const { return new NG__NAS__UL__Message__Type(*this); } +const TTCN_Typedescriptor_t* NG__NAS__UL__Message__Type::get_descriptor() const { return &NG__NAS__UL__Message__Type_descr_; } +void NG__NAS__UL__Message__Type::log() const +{ +switch (union_selection) { +case ALT_authentication__Failure: +TTCN_Logger::log_event_str("{ authentication_Failure := "); +field_authentication__Failure->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_authentication__Response: +TTCN_Logger::log_event_str("{ authentication_Response := "); +field_authentication__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_configuration__Update__Complete: +TTCN_Logger::log_event_str("{ configuration_Update_Complete := "); +field_configuration__Update__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_cp__Service__Request: +TTCN_Logger::log_event_str("{ cp_Service_Request := "); +field_cp__Service__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_deregistration__Accept: +TTCN_Logger::log_event_str("{ deregistration_Accept := "); +field_deregistration__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_deregistration__RequestMO: +TTCN_Logger::log_event_str("{ deregistration_RequestMO := "); +field_deregistration__RequestMO->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_gmm__Status: +TTCN_Logger::log_event_str("{ gmm_Status := "); +field_gmm__Status->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_gsm__Status: +TTCN_Logger::log_event_str("{ gsm_Status := "); +field_gsm__Status->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_network__Slice__Specific__Authentication__Complete: +TTCN_Logger::log_event_str("{ network_Slice_Specific_Authentication_Complete := "); +field_network__Slice__Specific__Authentication__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_identity__Response: +TTCN_Logger::log_event_str("{ identity_Response := "); +field_identity__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_notification__Response: +TTCN_Logger::log_event_str("{ notification_Response := "); +field_notification__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Authentication__Complete: +TTCN_Logger::log_event_str("{ pdu_Session_Authentication_Complete := "); +field_pdu__Session__Authentication__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Establishment__Request: +TTCN_Logger::log_event_str("{ pdu_Session_Establishment_Request := "); +field_pdu__Session__Establishment__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Modification__Command__Reject: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Command_Reject := "); +field_pdu__Session__Modification__Command__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Modification__Complete: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Complete := "); +field_pdu__Session__Modification__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Modification__Request: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Request := "); +field_pdu__Session__Modification__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Release__Complete: +TTCN_Logger::log_event_str("{ pdu_Session_Release_Complete := "); +field_pdu__Session__Release__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Release__Request: +TTCN_Logger::log_event_str("{ pdu_Session_Release_Request := "); +field_pdu__Session__Release__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_registration__Complete: +TTCN_Logger::log_event_str("{ registration_Complete := "); +field_registration__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_registration__Request: +TTCN_Logger::log_event_str("{ registration_Request := "); +field_registration__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_security__Mode__Complete: +TTCN_Logger::log_event_str("{ security_Mode_Complete := "); +field_security__Mode__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_security__Mode__Reject: +TTCN_Logger::log_event_str("{ security_Mode_Reject := "); +field_security__Mode__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_security__Protected__Nas__Message: +TTCN_Logger::log_event_str("{ security_Protected_Nas_Message := "); +field_security__Protected__Nas__Message->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_service__Request: +TTCN_Logger::log_event_str("{ service_Request := "); +field_service__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_ul__Nas__Transport: +TTCN_Logger::log_event_str("{ ul_Nas_Transport := "); +field_ul__Nas__Transport->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_activate__Test__Mode__Complete: +TTCN_Logger::log_event_str("{ activate_Test_Mode_Complete := "); +field_activate__Test__Mode__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_deactivate__Test__Mode__Complete: +TTCN_Logger::log_event_str("{ deactivate_Test_Mode_Complete := "); +field_deactivate__Test__Mode__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_close__Ue__Test__Loop__Complete: +TTCN_Logger::log_event_str("{ close_Ue_Test_Loop_Complete := "); +field_close__Ue__Test__Loop__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_open__Ue__Test__Loop__Complete: +TTCN_Logger::log_event_str("{ open_Ue_Test_Loop_Complete := "); +field_open__Ue__Test__Loop__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_nssai__Delete__Response: +TTCN_Logger::log_event_str("{ nssai_Delete_Response := "); +field_nssai__Delete__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_set__UAI__Response: +TTCN_Logger::log_event_str("{ set_UAI_Response := "); +field_set__UAI__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_set__UL__Message__Response: +TTCN_Logger::log_event_str("{ set_UL_Message_Response := "); +field_set__UL__Message__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_test__Loop__Sidelink__Counter__Response: +TTCN_Logger::log_event_str("{ test_Loop_Sidelink_Counter_Response := "); +field_test__Loop__Sidelink__Counter__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void NG__NAS__UL__Message__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type'"); + } + if (strcmp("authentication_Failure", param_field) == 0) { + authentication__Failure().set_param(param); + return; + } else if (strcmp("authentication_Response", param_field) == 0) { + authentication__Response().set_param(param); + return; + } else if (strcmp("configuration_Update_Complete", param_field) == 0) { + configuration__Update__Complete().set_param(param); + return; + } else if (strcmp("cp_Service_Request", param_field) == 0) { + cp__Service__Request().set_param(param); + return; + } else if (strcmp("deregistration_Accept", param_field) == 0) { + deregistration__Accept().set_param(param); + return; + } else if (strcmp("deregistration_RequestMO", param_field) == 0) { + deregistration__RequestMO().set_param(param); + return; + } else if (strcmp("gmm_Status", param_field) == 0) { + gmm__Status().set_param(param); + return; + } else if (strcmp("gsm_Status", param_field) == 0) { + gsm__Status().set_param(param); + return; + } else if (strcmp("network_Slice_Specific_Authentication_Complete", param_field) == 0) { + network__Slice__Specific__Authentication__Complete().set_param(param); + return; + } else if (strcmp("identity_Response", param_field) == 0) { + identity__Response().set_param(param); + return; + } else if (strcmp("notification_Response", param_field) == 0) { + notification__Response().set_param(param); + return; + } else if (strcmp("pdu_Session_Authentication_Complete", param_field) == 0) { + pdu__Session__Authentication__Complete().set_param(param); + return; + } else if (strcmp("pdu_Session_Establishment_Request", param_field) == 0) { + pdu__Session__Establishment__Request().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Command_Reject", param_field) == 0) { + pdu__Session__Modification__Command__Reject().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Complete", param_field) == 0) { + pdu__Session__Modification__Complete().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Request", param_field) == 0) { + pdu__Session__Modification__Request().set_param(param); + return; + } else if (strcmp("pdu_Session_Release_Complete", param_field) == 0) { + pdu__Session__Release__Complete().set_param(param); + return; + } else if (strcmp("pdu_Session_Release_Request", param_field) == 0) { + pdu__Session__Release__Request().set_param(param); + return; + } else if (strcmp("registration_Complete", param_field) == 0) { + registration__Complete().set_param(param); + return; + } else if (strcmp("registration_Request", param_field) == 0) { + registration__Request().set_param(param); + return; + } else if (strcmp("security_Mode_Complete", param_field) == 0) { + security__Mode__Complete().set_param(param); + return; + } else if (strcmp("security_Mode_Reject", param_field) == 0) { + security__Mode__Reject().set_param(param); + return; + } else if (strcmp("security_Protected_Nas_Message", param_field) == 0) { + security__Protected__Nas__Message().set_param(param); + return; + } else if (strcmp("service_Request", param_field) == 0) { + service__Request().set_param(param); + return; + } else if (strcmp("ul_Nas_Transport", param_field) == 0) { + ul__Nas__Transport().set_param(param); + return; + } else if (strcmp("activate_Test_Mode_Complete", param_field) == 0) { + activate__Test__Mode__Complete().set_param(param); + return; + } else if (strcmp("deactivate_Test_Mode_Complete", param_field) == 0) { + deactivate__Test__Mode__Complete().set_param(param); + return; + } else if (strcmp("close_Ue_Test_Loop_Complete", param_field) == 0) { + close__Ue__Test__Loop__Complete().set_param(param); + return; + } else if (strcmp("open_Ue_Test_Loop_Complete", param_field) == 0) { + open__Ue__Test__Loop__Complete().set_param(param); + return; + } else if (strcmp("nssai_Delete_Response", param_field) == 0) { + nssai__Delete__Response().set_param(param); + return; + } else if (strcmp("set_UAI_Response", param_field) == 0) { + set__UAI__Response().set_param(param); + return; + } else if (strcmp("set_UL_Message_Response", param_field) == 0) { + set__UL__Message__Response().set_param(param); + return; + } else if (strcmp("test_Loop_Sidelink_Counter_Response", param_field) == 0) { + test__Loop__Sidelink__Counter__Response().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "authentication_Failure")) { + authentication__Failure().set_param(*mp_last); + if (!authentication__Failure().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "authentication_Response")) { + authentication__Response().set_param(*mp_last); + if (!authentication__Response().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "configuration_Update_Complete")) { + configuration__Update__Complete().set_param(*mp_last); + if (!configuration__Update__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "cp_Service_Request")) { + cp__Service__Request().set_param(*mp_last); + if (!cp__Service__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "deregistration_Accept")) { + deregistration__Accept().set_param(*mp_last); + if (!deregistration__Accept().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "deregistration_RequestMO")) { + deregistration__RequestMO().set_param(*mp_last); + if (!deregistration__RequestMO().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "gmm_Status")) { + gmm__Status().set_param(*mp_last); + if (!gmm__Status().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "gsm_Status")) { + gsm__Status().set_param(*mp_last); + if (!gsm__Status().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "network_Slice_Specific_Authentication_Complete")) { + network__Slice__Specific__Authentication__Complete().set_param(*mp_last); + if (!network__Slice__Specific__Authentication__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "identity_Response")) { + identity__Response().set_param(*mp_last); + if (!identity__Response().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "notification_Response")) { + notification__Response().set_param(*mp_last); + if (!notification__Response().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Authentication_Complete")) { + pdu__Session__Authentication__Complete().set_param(*mp_last); + if (!pdu__Session__Authentication__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Establishment_Request")) { + pdu__Session__Establishment__Request().set_param(*mp_last); + if (!pdu__Session__Establishment__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Modification_Command_Reject")) { + pdu__Session__Modification__Command__Reject().set_param(*mp_last); + if (!pdu__Session__Modification__Command__Reject().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Modification_Complete")) { + pdu__Session__Modification__Complete().set_param(*mp_last); + if (!pdu__Session__Modification__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Modification_Request")) { + pdu__Session__Modification__Request().set_param(*mp_last); + if (!pdu__Session__Modification__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Release_Complete")) { + pdu__Session__Release__Complete().set_param(*mp_last); + if (!pdu__Session__Release__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Release_Request")) { + pdu__Session__Release__Request().set_param(*mp_last); + if (!pdu__Session__Release__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "registration_Complete")) { + registration__Complete().set_param(*mp_last); + if (!registration__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "registration_Request")) { + registration__Request().set_param(*mp_last); + if (!registration__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "security_Mode_Complete")) { + security__Mode__Complete().set_param(*mp_last); + if (!security__Mode__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "security_Mode_Reject")) { + security__Mode__Reject().set_param(*mp_last); + if (!security__Mode__Reject().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "security_Protected_Nas_Message")) { + security__Protected__Nas__Message().set_param(*mp_last); + if (!security__Protected__Nas__Message().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "service_Request")) { + service__Request().set_param(*mp_last); + if (!service__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "ul_Nas_Transport")) { + ul__Nas__Transport().set_param(*mp_last); + if (!ul__Nas__Transport().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "activate_Test_Mode_Complete")) { + activate__Test__Mode__Complete().set_param(*mp_last); + if (!activate__Test__Mode__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "deactivate_Test_Mode_Complete")) { + deactivate__Test__Mode__Complete().set_param(*mp_last); + if (!deactivate__Test__Mode__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "close_Ue_Test_Loop_Complete")) { + close__Ue__Test__Loop__Complete().set_param(*mp_last); + if (!close__Ue__Test__Loop__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "open_Ue_Test_Loop_Complete")) { + open__Ue__Test__Loop__Complete().set_param(*mp_last); + if (!open__Ue__Test__Loop__Complete().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "nssai_Delete_Response")) { + nssai__Delete__Response().set_param(*mp_last); + if (!nssai__Delete__Response().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "set_UAI_Response")) { + set__UAI__Response().set_param(*mp_last); + if (!set__UAI__Response().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "set_UL_Message_Response")) { + set__UL__Message__Response().set_param(*mp_last); + if (!set__UL__Message__Response().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "test_Loop_Sidelink_Counter_Response")) { + test__Loop__Sidelink__Counter__Response().set_param(*mp_last); + if (!test__Loop__Sidelink__Counter__Response().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type.", last_name); +} + +Module_Param* NG__NAS__UL__Message__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type'"); + } + if (strcmp("authentication_Failure", param_field) == 0) { + return authentication__Failure().get_param(param_name); + } else if (strcmp("authentication_Response", param_field) == 0) { + return authentication__Response().get_param(param_name); + } else if (strcmp("configuration_Update_Complete", param_field) == 0) { + return configuration__Update__Complete().get_param(param_name); + } else if (strcmp("cp_Service_Request", param_field) == 0) { + return cp__Service__Request().get_param(param_name); + } else if (strcmp("deregistration_Accept", param_field) == 0) { + return deregistration__Accept().get_param(param_name); + } else if (strcmp("deregistration_RequestMO", param_field) == 0) { + return deregistration__RequestMO().get_param(param_name); + } else if (strcmp("gmm_Status", param_field) == 0) { + return gmm__Status().get_param(param_name); + } else if (strcmp("gsm_Status", param_field) == 0) { + return gsm__Status().get_param(param_name); + } else if (strcmp("network_Slice_Specific_Authentication_Complete", param_field) == 0) { + return network__Slice__Specific__Authentication__Complete().get_param(param_name); + } else if (strcmp("identity_Response", param_field) == 0) { + return identity__Response().get_param(param_name); + } else if (strcmp("notification_Response", param_field) == 0) { + return notification__Response().get_param(param_name); + } else if (strcmp("pdu_Session_Authentication_Complete", param_field) == 0) { + return pdu__Session__Authentication__Complete().get_param(param_name); + } else if (strcmp("pdu_Session_Establishment_Request", param_field) == 0) { + return pdu__Session__Establishment__Request().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Command_Reject", param_field) == 0) { + return pdu__Session__Modification__Command__Reject().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Complete", param_field) == 0) { + return pdu__Session__Modification__Complete().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Request", param_field) == 0) { + return pdu__Session__Modification__Request().get_param(param_name); + } else if (strcmp("pdu_Session_Release_Complete", param_field) == 0) { + return pdu__Session__Release__Complete().get_param(param_name); + } else if (strcmp("pdu_Session_Release_Request", param_field) == 0) { + return pdu__Session__Release__Request().get_param(param_name); + } else if (strcmp("registration_Complete", param_field) == 0) { + return registration__Complete().get_param(param_name); + } else if (strcmp("registration_Request", param_field) == 0) { + return registration__Request().get_param(param_name); + } else if (strcmp("security_Mode_Complete", param_field) == 0) { + return security__Mode__Complete().get_param(param_name); + } else if (strcmp("security_Mode_Reject", param_field) == 0) { + return security__Mode__Reject().get_param(param_name); + } else if (strcmp("security_Protected_Nas_Message", param_field) == 0) { + return security__Protected__Nas__Message().get_param(param_name); + } else if (strcmp("service_Request", param_field) == 0) { + return service__Request().get_param(param_name); + } else if (strcmp("ul_Nas_Transport", param_field) == 0) { + return ul__Nas__Transport().get_param(param_name); + } else if (strcmp("activate_Test_Mode_Complete", param_field) == 0) { + return activate__Test__Mode__Complete().get_param(param_name); + } else if (strcmp("deactivate_Test_Mode_Complete", param_field) == 0) { + return deactivate__Test__Mode__Complete().get_param(param_name); + } else if (strcmp("close_Ue_Test_Loop_Complete", param_field) == 0) { + return close__Ue__Test__Loop__Complete().get_param(param_name); + } else if (strcmp("open_Ue_Test_Loop_Complete", param_field) == 0) { + return open__Ue__Test__Loop__Complete().get_param(param_name); + } else if (strcmp("nssai_Delete_Response", param_field) == 0) { + return nssai__Delete__Response().get_param(param_name); + } else if (strcmp("set_UAI_Response", param_field) == 0) { + return set__UAI__Response().get_param(param_name); + } else if (strcmp("set_UL_Message_Response", param_field) == 0) { + return set__UL__Message__Response().get_param(param_name); + } else if (strcmp("test_Loop_Sidelink_Counter_Response", param_field) == 0) { + return test__Loop__Sidelink__Counter__Response().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__NAS__UL__Message__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_authentication__Failure: + mp_field = field_authentication__Failure->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Failure"))); + break; + case ALT_authentication__Response: + mp_field = field_authentication__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Response"))); + break; + case ALT_configuration__Update__Complete: + mp_field = field_configuration__Update__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("configuration_Update_Complete"))); + break; + case ALT_cp__Service__Request: + mp_field = field_cp__Service__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("cp_Service_Request"))); + break; + case ALT_deregistration__Accept: + mp_field = field_deregistration__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deregistration_Accept"))); + break; + case ALT_deregistration__RequestMO: + mp_field = field_deregistration__RequestMO->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deregistration_RequestMO"))); + break; + case ALT_gmm__Status: + mp_field = field_gmm__Status->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("gmm_Status"))); + break; + case ALT_gsm__Status: + mp_field = field_gsm__Status->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("gsm_Status"))); + break; + case ALT_network__Slice__Specific__Authentication__Complete: + mp_field = field_network__Slice__Specific__Authentication__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("network_Slice_Specific_Authentication_Complete"))); + break; + case ALT_identity__Response: + mp_field = field_identity__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("identity_Response"))); + break; + case ALT_notification__Response: + mp_field = field_notification__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("notification_Response"))); + break; + case ALT_pdu__Session__Authentication__Complete: + mp_field = field_pdu__Session__Authentication__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Authentication_Complete"))); + break; + case ALT_pdu__Session__Establishment__Request: + mp_field = field_pdu__Session__Establishment__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Establishment_Request"))); + break; + case ALT_pdu__Session__Modification__Command__Reject: + mp_field = field_pdu__Session__Modification__Command__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Command_Reject"))); + break; + case ALT_pdu__Session__Modification__Complete: + mp_field = field_pdu__Session__Modification__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Complete"))); + break; + case ALT_pdu__Session__Modification__Request: + mp_field = field_pdu__Session__Modification__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Request"))); + break; + case ALT_pdu__Session__Release__Complete: + mp_field = field_pdu__Session__Release__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Release_Complete"))); + break; + case ALT_pdu__Session__Release__Request: + mp_field = field_pdu__Session__Release__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Release_Request"))); + break; + case ALT_registration__Complete: + mp_field = field_registration__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("registration_Complete"))); + break; + case ALT_registration__Request: + mp_field = field_registration__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("registration_Request"))); + break; + case ALT_security__Mode__Complete: + mp_field = field_security__Mode__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Mode_Complete"))); + break; + case ALT_security__Mode__Reject: + mp_field = field_security__Mode__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Mode_Reject"))); + break; + case ALT_security__Protected__Nas__Message: + mp_field = field_security__Protected__Nas__Message->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Protected_Nas_Message"))); + break; + case ALT_service__Request: + mp_field = field_service__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("service_Request"))); + break; + case ALT_ul__Nas__Transport: + mp_field = field_ul__Nas__Transport->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("ul_Nas_Transport"))); + break; + case ALT_activate__Test__Mode__Complete: + mp_field = field_activate__Test__Mode__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("activate_Test_Mode_Complete"))); + break; + case ALT_deactivate__Test__Mode__Complete: + mp_field = field_deactivate__Test__Mode__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deactivate_Test_Mode_Complete"))); + break; + case ALT_close__Ue__Test__Loop__Complete: + mp_field = field_close__Ue__Test__Loop__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("close_Ue_Test_Loop_Complete"))); + break; + case ALT_open__Ue__Test__Loop__Complete: + mp_field = field_open__Ue__Test__Loop__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("open_Ue_Test_Loop_Complete"))); + break; + case ALT_nssai__Delete__Response: + mp_field = field_nssai__Delete__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("nssai_Delete_Response"))); + break; + case ALT_set__UAI__Response: + mp_field = field_set__UAI__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("set_UAI_Response"))); + break; + case ALT_set__UL__Message__Response: + mp_field = field_set__UL__Message__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("set_UL_Message_Response"))); + break; + case ALT_test__Loop__Sidelink__Counter__Response: + mp_field = field_test__Loop__Sidelink__Counter__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("test_Loop_Sidelink_Counter_Response"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void NG__NAS__UL__Message__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_authentication__Failure: +field_authentication__Failure->set_implicit_omit(); break; +case ALT_authentication__Response: +field_authentication__Response->set_implicit_omit(); break; +case ALT_configuration__Update__Complete: +field_configuration__Update__Complete->set_implicit_omit(); break; +case ALT_cp__Service__Request: +field_cp__Service__Request->set_implicit_omit(); break; +case ALT_deregistration__Accept: +field_deregistration__Accept->set_implicit_omit(); break; +case ALT_deregistration__RequestMO: +field_deregistration__RequestMO->set_implicit_omit(); break; +case ALT_gmm__Status: +field_gmm__Status->set_implicit_omit(); break; +case ALT_gsm__Status: +field_gsm__Status->set_implicit_omit(); break; +case ALT_network__Slice__Specific__Authentication__Complete: +field_network__Slice__Specific__Authentication__Complete->set_implicit_omit(); break; +case ALT_identity__Response: +field_identity__Response->set_implicit_omit(); break; +case ALT_notification__Response: +field_notification__Response->set_implicit_omit(); break; +case ALT_pdu__Session__Authentication__Complete: +field_pdu__Session__Authentication__Complete->set_implicit_omit(); break; +case ALT_pdu__Session__Establishment__Request: +field_pdu__Session__Establishment__Request->set_implicit_omit(); break; +case ALT_pdu__Session__Modification__Command__Reject: +field_pdu__Session__Modification__Command__Reject->set_implicit_omit(); break; +case ALT_pdu__Session__Modification__Complete: +field_pdu__Session__Modification__Complete->set_implicit_omit(); break; +case ALT_pdu__Session__Modification__Request: +field_pdu__Session__Modification__Request->set_implicit_omit(); break; +case ALT_pdu__Session__Release__Complete: +field_pdu__Session__Release__Complete->set_implicit_omit(); break; +case ALT_pdu__Session__Release__Request: +field_pdu__Session__Release__Request->set_implicit_omit(); break; +case ALT_registration__Complete: +field_registration__Complete->set_implicit_omit(); break; +case ALT_registration__Request: +field_registration__Request->set_implicit_omit(); break; +case ALT_security__Mode__Complete: +field_security__Mode__Complete->set_implicit_omit(); break; +case ALT_security__Mode__Reject: +field_security__Mode__Reject->set_implicit_omit(); break; +case ALT_security__Protected__Nas__Message: +field_security__Protected__Nas__Message->set_implicit_omit(); break; +case ALT_service__Request: +field_service__Request->set_implicit_omit(); break; +case ALT_ul__Nas__Transport: +field_ul__Nas__Transport->set_implicit_omit(); break; +case ALT_activate__Test__Mode__Complete: +field_activate__Test__Mode__Complete->set_implicit_omit(); break; +case ALT_deactivate__Test__Mode__Complete: +field_deactivate__Test__Mode__Complete->set_implicit_omit(); break; +case ALT_close__Ue__Test__Loop__Complete: +field_close__Ue__Test__Loop__Complete->set_implicit_omit(); break; +case ALT_open__Ue__Test__Loop__Complete: +field_open__Ue__Test__Loop__Complete->set_implicit_omit(); break; +case ALT_nssai__Delete__Response: +field_nssai__Delete__Response->set_implicit_omit(); break; +case ALT_set__UAI__Response: +field_set__UAI__Response->set_implicit_omit(); break; +case ALT_set__UL__Message__Response: +field_set__UL__Message__Response->set_implicit_omit(); break; +case ALT_test__Loop__Sidelink__Counter__Response: +field_test__Loop__Sidelink__Counter__Response->set_implicit_omit(); break; +default: break; +} +} + +void NG__NAS__UL__Message__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_authentication__Failure: +field_authentication__Failure->encode_text(text_buf); +break; +case ALT_authentication__Response: +field_authentication__Response->encode_text(text_buf); +break; +case ALT_configuration__Update__Complete: +field_configuration__Update__Complete->encode_text(text_buf); +break; +case ALT_cp__Service__Request: +field_cp__Service__Request->encode_text(text_buf); +break; +case ALT_deregistration__Accept: +field_deregistration__Accept->encode_text(text_buf); +break; +case ALT_deregistration__RequestMO: +field_deregistration__RequestMO->encode_text(text_buf); +break; +case ALT_gmm__Status: +field_gmm__Status->encode_text(text_buf); +break; +case ALT_gsm__Status: +field_gsm__Status->encode_text(text_buf); +break; +case ALT_network__Slice__Specific__Authentication__Complete: +field_network__Slice__Specific__Authentication__Complete->encode_text(text_buf); +break; +case ALT_identity__Response: +field_identity__Response->encode_text(text_buf); +break; +case ALT_notification__Response: +field_notification__Response->encode_text(text_buf); +break; +case ALT_pdu__Session__Authentication__Complete: +field_pdu__Session__Authentication__Complete->encode_text(text_buf); +break; +case ALT_pdu__Session__Establishment__Request: +field_pdu__Session__Establishment__Request->encode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Command__Reject: +field_pdu__Session__Modification__Command__Reject->encode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Complete: +field_pdu__Session__Modification__Complete->encode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Request: +field_pdu__Session__Modification__Request->encode_text(text_buf); +break; +case ALT_pdu__Session__Release__Complete: +field_pdu__Session__Release__Complete->encode_text(text_buf); +break; +case ALT_pdu__Session__Release__Request: +field_pdu__Session__Release__Request->encode_text(text_buf); +break; +case ALT_registration__Complete: +field_registration__Complete->encode_text(text_buf); +break; +case ALT_registration__Request: +field_registration__Request->encode_text(text_buf); +break; +case ALT_security__Mode__Complete: +field_security__Mode__Complete->encode_text(text_buf); +break; +case ALT_security__Mode__Reject: +field_security__Mode__Reject->encode_text(text_buf); +break; +case ALT_security__Protected__Nas__Message: +field_security__Protected__Nas__Message->encode_text(text_buf); +break; +case ALT_service__Request: +field_service__Request->encode_text(text_buf); +break; +case ALT_ul__Nas__Transport: +field_ul__Nas__Transport->encode_text(text_buf); +break; +case ALT_activate__Test__Mode__Complete: +field_activate__Test__Mode__Complete->encode_text(text_buf); +break; +case ALT_deactivate__Test__Mode__Complete: +field_deactivate__Test__Mode__Complete->encode_text(text_buf); +break; +case ALT_close__Ue__Test__Loop__Complete: +field_close__Ue__Test__Loop__Complete->encode_text(text_buf); +break; +case ALT_open__Ue__Test__Loop__Complete: +field_open__Ue__Test__Loop__Complete->encode_text(text_buf); +break; +case ALT_nssai__Delete__Response: +field_nssai__Delete__Response->encode_text(text_buf); +break; +case ALT_set__UAI__Response: +field_set__UAI__Response->encode_text(text_buf); +break; +case ALT_set__UL__Message__Response: +field_set__UL__Message__Response->encode_text(text_buf); +break; +case ALT_test__Loop__Sidelink__Counter__Response: +field_test__Loop__Sidelink__Counter__Response->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +} + +void NG__NAS__UL__Message__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_authentication__Failure: +authentication__Failure().decode_text(text_buf); +break; +case ALT_authentication__Response: +authentication__Response().decode_text(text_buf); +break; +case ALT_configuration__Update__Complete: +configuration__Update__Complete().decode_text(text_buf); +break; +case ALT_cp__Service__Request: +cp__Service__Request().decode_text(text_buf); +break; +case ALT_deregistration__Accept: +deregistration__Accept().decode_text(text_buf); +break; +case ALT_deregistration__RequestMO: +deregistration__RequestMO().decode_text(text_buf); +break; +case ALT_gmm__Status: +gmm__Status().decode_text(text_buf); +break; +case ALT_gsm__Status: +gsm__Status().decode_text(text_buf); +break; +case ALT_network__Slice__Specific__Authentication__Complete: +network__Slice__Specific__Authentication__Complete().decode_text(text_buf); +break; +case ALT_identity__Response: +identity__Response().decode_text(text_buf); +break; +case ALT_notification__Response: +notification__Response().decode_text(text_buf); +break; +case ALT_pdu__Session__Authentication__Complete: +pdu__Session__Authentication__Complete().decode_text(text_buf); +break; +case ALT_pdu__Session__Establishment__Request: +pdu__Session__Establishment__Request().decode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Command__Reject: +pdu__Session__Modification__Command__Reject().decode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Complete: +pdu__Session__Modification__Complete().decode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Request: +pdu__Session__Modification__Request().decode_text(text_buf); +break; +case ALT_pdu__Session__Release__Complete: +pdu__Session__Release__Complete().decode_text(text_buf); +break; +case ALT_pdu__Session__Release__Request: +pdu__Session__Release__Request().decode_text(text_buf); +break; +case ALT_registration__Complete: +registration__Complete().decode_text(text_buf); +break; +case ALT_registration__Request: +registration__Request().decode_text(text_buf); +break; +case ALT_security__Mode__Complete: +security__Mode__Complete().decode_text(text_buf); +break; +case ALT_security__Mode__Reject: +security__Mode__Reject().decode_text(text_buf); +break; +case ALT_security__Protected__Nas__Message: +security__Protected__Nas__Message().decode_text(text_buf); +break; +case ALT_service__Request: +service__Request().decode_text(text_buf); +break; +case ALT_ul__Nas__Transport: +ul__Nas__Transport().decode_text(text_buf); +break; +case ALT_activate__Test__Mode__Complete: +activate__Test__Mode__Complete().decode_text(text_buf); +break; +case ALT_deactivate__Test__Mode__Complete: +deactivate__Test__Mode__Complete().decode_text(text_buf); +break; +case ALT_close__Ue__Test__Loop__Complete: +close__Ue__Test__Loop__Complete().decode_text(text_buf); +break; +case ALT_open__Ue__Test__Loop__Complete: +open__Ue__Test__Loop__Complete().decode_text(text_buf); +break; +case ALT_nssai__Delete__Response: +nssai__Delete__Response().decode_text(text_buf); +break; +case ALT_set__UAI__Response: +set__UAI__Response().decode_text(text_buf); +break; +case ALT_set__UL__Message__Response: +set__UL__Message__Response().decode_text(text_buf); +break; +case ALT_test__Loop__Sidelink__Counter__Response: +test__Loop__Sidelink__Counter__Response().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +} + +void NG__NAS__UL__Message__Type_template::copy_value(const NG__NAS__UL__Message__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +single_value.field_authentication__Failure = new NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template(other_value.authentication__Failure()); +break; +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +single_value.field_authentication__Response = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template(other_value.authentication__Response()); +break; +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +single_value.field_configuration__Update__Complete = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template(other_value.configuration__Update__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +single_value.field_cp__Service__Request = new NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template(other_value.cp__Service__Request()); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template(other_value.deregistration__Accept()); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +single_value.field_deregistration__RequestMO = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template(other_value.deregistration__RequestMO()); +break; +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template(other_value.gmm__Status()); +break; +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template(other_value.gsm__Status()); +break; +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +single_value.field_network__Slice__Specific__Authentication__Complete = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(other_value.network__Slice__Specific__Authentication__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_identity__Response: +single_value.field_identity__Response = new NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template(other_value.identity__Response()); +break; +case NG__NAS__UL__Message__Type::ALT_notification__Response: +single_value.field_notification__Response = new NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template(other_value.notification__Response()); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +single_value.field_pdu__Session__Authentication__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(other_value.pdu__Session__Authentication__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +single_value.field_pdu__Session__Establishment__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(other_value.pdu__Session__Establishment__Request()); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +single_value.field_pdu__Session__Modification__Command__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(other_value.pdu__Session__Modification__Command__Reject()); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +single_value.field_pdu__Session__Modification__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template(other_value.pdu__Session__Modification__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +single_value.field_pdu__Session__Modification__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template(other_value.pdu__Session__Modification__Request()); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +single_value.field_pdu__Session__Release__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template(other_value.pdu__Session__Release__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +single_value.field_pdu__Session__Release__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template(other_value.pdu__Session__Release__Request()); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +single_value.field_registration__Complete = new NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template(other_value.registration__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Request: +single_value.field_registration__Request = new NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template(other_value.registration__Request()); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +single_value.field_security__Mode__Complete = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template(other_value.security__Mode__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +single_value.field_security__Mode__Reject = new NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template(other_value.security__Mode__Reject()); +break; +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template(other_value.security__Protected__Nas__Message()); +break; +case NG__NAS__UL__Message__Type::ALT_service__Request: +single_value.field_service__Request = new NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template(other_value.service__Request()); +break; +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +single_value.field_ul__Nas__Transport = new NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template(other_value.ul__Nas__Transport()); +break; +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +single_value.field_activate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template(other_value.activate__Test__Mode__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +single_value.field_deactivate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template(other_value.deactivate__Test__Mode__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +single_value.field_close__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template(other_value.close__Ue__Test__Loop__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +single_value.field_open__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template(other_value.open__Ue__Test__Loop__Complete()); +break; +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +single_value.field_nssai__Delete__Response = new NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template(other_value.nssai__Delete__Response()); +break; +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +single_value.field_set__UAI__Response = new NG__NAS__TypeDefs::SET__UAI__RESPONSE_template(other_value.set__UAI__Response()); +break; +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +single_value.field_set__UL__Message__Response = new Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template(other_value.set__UL__Message__Response()); +break; +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +single_value.field_test__Loop__Sidelink__Counter__Response = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(other_value.test__Loop__Sidelink__Counter__Response()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void NG__NAS__UL__Message__Type_template::copy_template(const NG__NAS__UL__Message__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +single_value.field_authentication__Failure = new NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template(*other_value.single_value.field_authentication__Failure); +break; +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +single_value.field_authentication__Response = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template(*other_value.single_value.field_authentication__Response); +break; +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +single_value.field_configuration__Update__Complete = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template(*other_value.single_value.field_configuration__Update__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +single_value.field_cp__Service__Request = new NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template(*other_value.single_value.field_cp__Service__Request); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template(*other_value.single_value.field_deregistration__Accept); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +single_value.field_deregistration__RequestMO = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template(*other_value.single_value.field_deregistration__RequestMO); +break; +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template(*other_value.single_value.field_gmm__Status); +break; +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template(*other_value.single_value.field_gsm__Status); +break; +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +single_value.field_network__Slice__Specific__Authentication__Complete = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(*other_value.single_value.field_network__Slice__Specific__Authentication__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_identity__Response: +single_value.field_identity__Response = new NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template(*other_value.single_value.field_identity__Response); +break; +case NG__NAS__UL__Message__Type::ALT_notification__Response: +single_value.field_notification__Response = new NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template(*other_value.single_value.field_notification__Response); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +single_value.field_pdu__Session__Authentication__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(*other_value.single_value.field_pdu__Session__Authentication__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +single_value.field_pdu__Session__Establishment__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(*other_value.single_value.field_pdu__Session__Establishment__Request); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +single_value.field_pdu__Session__Modification__Command__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(*other_value.single_value.field_pdu__Session__Modification__Command__Reject); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +single_value.field_pdu__Session__Modification__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template(*other_value.single_value.field_pdu__Session__Modification__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +single_value.field_pdu__Session__Modification__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template(*other_value.single_value.field_pdu__Session__Modification__Request); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +single_value.field_pdu__Session__Release__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template(*other_value.single_value.field_pdu__Session__Release__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +single_value.field_pdu__Session__Release__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template(*other_value.single_value.field_pdu__Session__Release__Request); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +single_value.field_registration__Complete = new NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template(*other_value.single_value.field_registration__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Request: +single_value.field_registration__Request = new NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template(*other_value.single_value.field_registration__Request); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +single_value.field_security__Mode__Complete = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template(*other_value.single_value.field_security__Mode__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +single_value.field_security__Mode__Reject = new NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template(*other_value.single_value.field_security__Mode__Reject); +break; +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template(*other_value.single_value.field_security__Protected__Nas__Message); +break; +case NG__NAS__UL__Message__Type::ALT_service__Request: +single_value.field_service__Request = new NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template(*other_value.single_value.field_service__Request); +break; +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +single_value.field_ul__Nas__Transport = new NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template(*other_value.single_value.field_ul__Nas__Transport); +break; +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +single_value.field_activate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template(*other_value.single_value.field_activate__Test__Mode__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +single_value.field_deactivate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template(*other_value.single_value.field_deactivate__Test__Mode__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +single_value.field_close__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template(*other_value.single_value.field_close__Ue__Test__Loop__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +single_value.field_open__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template(*other_value.single_value.field_open__Ue__Test__Loop__Complete); +break; +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +single_value.field_nssai__Delete__Response = new NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template(*other_value.single_value.field_nssai__Delete__Response); +break; +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +single_value.field_set__UAI__Response = new NG__NAS__TypeDefs::SET__UAI__RESPONSE_template(*other_value.single_value.field_set__UAI__Response); +break; +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +single_value.field_set__UL__Message__Response = new Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template(*other_value.single_value.field_set__UL__Message__Response); +break; +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +single_value.field_test__Loop__Sidelink__Counter__Response = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(*other_value.single_value.field_test__Loop__Sidelink__Counter__Response); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NG__NAS__UL__Message__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NG__NAS__UL__Message__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NG__NAS__UL__Message__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +NG__NAS__UL__Message__Type_template::NG__NAS__UL__Message__Type_template(): err_descr(NULL) +{ +} + +NG__NAS__UL__Message__Type_template::NG__NAS__UL__Message__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +NG__NAS__UL__Message__Type_template::NG__NAS__UL__Message__Type_template(const NG__NAS__UL__Message__Type& other_value) +{ +copy_value(other_value); +} + +NG__NAS__UL__Message__Type_template::NG__NAS__UL__Message__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__NAS__UL__Message__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type from an unbound optional field."); +} +} + +NG__NAS__UL__Message__Type_template::NG__NAS__UL__Message__Type_template(NG__NAS__UL__Message__Type_template* p_precondition, NG__NAS__UL__Message__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NG__NAS__UL__Message__Type_template::NG__NAS__UL__Message__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NG__NAS__UL__Message__Type_template::NG__NAS__UL__Message__Type_template(const NG__NAS__UL__Message__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +NG__NAS__UL__Message__Type_template::~NG__NAS__UL__Message__Type_template() +{ +clean_up(); +} + +void NG__NAS__UL__Message__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +delete single_value.field_authentication__Failure; +break; +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +delete single_value.field_authentication__Response; +break; +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +delete single_value.field_configuration__Update__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +delete single_value.field_cp__Service__Request; +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +delete single_value.field_deregistration__Accept; +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +delete single_value.field_deregistration__RequestMO; +break; +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +delete single_value.field_gmm__Status; +break; +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +delete single_value.field_gsm__Status; +break; +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +delete single_value.field_network__Slice__Specific__Authentication__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_identity__Response: +delete single_value.field_identity__Response; +break; +case NG__NAS__UL__Message__Type::ALT_notification__Response: +delete single_value.field_notification__Response; +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +delete single_value.field_pdu__Session__Authentication__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +delete single_value.field_pdu__Session__Establishment__Request; +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +delete single_value.field_pdu__Session__Modification__Command__Reject; +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +delete single_value.field_pdu__Session__Modification__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +delete single_value.field_pdu__Session__Modification__Request; +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +delete single_value.field_pdu__Session__Release__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +delete single_value.field_pdu__Session__Release__Request; +break; +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +delete single_value.field_registration__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_registration__Request: +delete single_value.field_registration__Request; +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +delete single_value.field_security__Mode__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +delete single_value.field_security__Mode__Reject; +break; +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +delete single_value.field_security__Protected__Nas__Message; +break; +case NG__NAS__UL__Message__Type::ALT_service__Request: +delete single_value.field_service__Request; +break; +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +delete single_value.field_ul__Nas__Transport; +break; +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +delete single_value.field_activate__Test__Mode__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +delete single_value.field_deactivate__Test__Mode__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +delete single_value.field_close__Ue__Test__Loop__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +delete single_value.field_open__Ue__Test__Loop__Complete; +break; +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +delete single_value.field_nssai__Delete__Response; +break; +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +delete single_value.field_set__UAI__Response; +break; +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +delete single_value.field_set__UL__Message__Response; +break; +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +delete single_value.field_test__Loop__Sidelink__Counter__Response; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NG__NAS__UL__Message__Type_template& NG__NAS__UL__Message__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +NG__NAS__UL__Message__Type_template& NG__NAS__UL__Message__Type_template::operator=(const NG__NAS__UL__Message__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +NG__NAS__UL__Message__Type_template& NG__NAS__UL__Message__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__NAS__UL__Message__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +return *this; +} + +NG__NAS__UL__Message__Type_template& NG__NAS__UL__Message__Type_template::operator=(const NG__NAS__UL__Message__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NG__NAS__UL__Message__Type_template::match(const NG__NAS__UL__Message__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +NG__NAS__UL__Message__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == NG__NAS__UL__Message__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +return single_value.field_authentication__Failure->match(other_value.authentication__Failure(), legacy); +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +return single_value.field_authentication__Response->match(other_value.authentication__Response(), legacy); +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +return single_value.field_configuration__Update__Complete->match(other_value.configuration__Update__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +return single_value.field_cp__Service__Request->match(other_value.cp__Service__Request(), legacy); +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +return single_value.field_deregistration__Accept->match(other_value.deregistration__Accept(), legacy); +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +return single_value.field_deregistration__RequestMO->match(other_value.deregistration__RequestMO(), legacy); +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +return single_value.field_gmm__Status->match(other_value.gmm__Status(), legacy); +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +return single_value.field_gsm__Status->match(other_value.gsm__Status(), legacy); +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +return single_value.field_network__Slice__Specific__Authentication__Complete->match(other_value.network__Slice__Specific__Authentication__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_identity__Response: +return single_value.field_identity__Response->match(other_value.identity__Response(), legacy); +case NG__NAS__UL__Message__Type::ALT_notification__Response: +return single_value.field_notification__Response->match(other_value.notification__Response(), legacy); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +return single_value.field_pdu__Session__Authentication__Complete->match(other_value.pdu__Session__Authentication__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +return single_value.field_pdu__Session__Establishment__Request->match(other_value.pdu__Session__Establishment__Request(), legacy); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +return single_value.field_pdu__Session__Modification__Command__Reject->match(other_value.pdu__Session__Modification__Command__Reject(), legacy); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +return single_value.field_pdu__Session__Modification__Complete->match(other_value.pdu__Session__Modification__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +return single_value.field_pdu__Session__Modification__Request->match(other_value.pdu__Session__Modification__Request(), legacy); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +return single_value.field_pdu__Session__Release__Complete->match(other_value.pdu__Session__Release__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +return single_value.field_pdu__Session__Release__Request->match(other_value.pdu__Session__Release__Request(), legacy); +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +return single_value.field_registration__Complete->match(other_value.registration__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_registration__Request: +return single_value.field_registration__Request->match(other_value.registration__Request(), legacy); +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +return single_value.field_security__Mode__Complete->match(other_value.security__Mode__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +return single_value.field_security__Mode__Reject->match(other_value.security__Mode__Reject(), legacy); +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +return single_value.field_security__Protected__Nas__Message->match(other_value.security__Protected__Nas__Message(), legacy); +case NG__NAS__UL__Message__Type::ALT_service__Request: +return single_value.field_service__Request->match(other_value.service__Request(), legacy); +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +return single_value.field_ul__Nas__Transport->match(other_value.ul__Nas__Transport(), legacy); +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +return single_value.field_activate__Test__Mode__Complete->match(other_value.activate__Test__Mode__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +return single_value.field_deactivate__Test__Mode__Complete->match(other_value.deactivate__Test__Mode__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +return single_value.field_close__Ue__Test__Loop__Complete->match(other_value.close__Ue__Test__Loop__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +return single_value.field_open__Ue__Test__Loop__Complete->match(other_value.open__Ue__Test__Loop__Complete(), legacy); +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +return single_value.field_nssai__Delete__Response->match(other_value.nssai__Delete__Response(), legacy); +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +return single_value.field_set__UAI__Response->match(other_value.set__UAI__Response(), legacy); +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +return single_value.field_set__UL__Message__Response->match(other_value.set__UL__Message__Response(), legacy); +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +return single_value.field_test__Loop__Sidelink__Counter__Response->match(other_value.test__Loop__Sidelink__Counter__Response(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +return FALSE; +} + +boolean NG__NAS__UL__Message__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +return single_value.field_authentication__Failure->is_value(); +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +return single_value.field_authentication__Response->is_value(); +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +return single_value.field_configuration__Update__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +return single_value.field_cp__Service__Request->is_value(); +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +return single_value.field_deregistration__Accept->is_value(); +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +return single_value.field_deregistration__RequestMO->is_value(); +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +return single_value.field_gmm__Status->is_value(); +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +return single_value.field_gsm__Status->is_value(); +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +return single_value.field_network__Slice__Specific__Authentication__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_identity__Response: +return single_value.field_identity__Response->is_value(); +case NG__NAS__UL__Message__Type::ALT_notification__Response: +return single_value.field_notification__Response->is_value(); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +return single_value.field_pdu__Session__Authentication__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +return single_value.field_pdu__Session__Establishment__Request->is_value(); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +return single_value.field_pdu__Session__Modification__Command__Reject->is_value(); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +return single_value.field_pdu__Session__Modification__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +return single_value.field_pdu__Session__Modification__Request->is_value(); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +return single_value.field_pdu__Session__Release__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +return single_value.field_pdu__Session__Release__Request->is_value(); +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +return single_value.field_registration__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_registration__Request: +return single_value.field_registration__Request->is_value(); +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +return single_value.field_security__Mode__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +return single_value.field_security__Mode__Reject->is_value(); +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +return single_value.field_security__Protected__Nas__Message->is_value(); +case NG__NAS__UL__Message__Type::ALT_service__Request: +return single_value.field_service__Request->is_value(); +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +return single_value.field_ul__Nas__Transport->is_value(); +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +return single_value.field_activate__Test__Mode__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +return single_value.field_deactivate__Test__Mode__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +return single_value.field_close__Ue__Test__Loop__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +return single_value.field_open__Ue__Test__Loop__Complete->is_value(); +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +return single_value.field_nssai__Delete__Response->is_value(); +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +return single_value.field_set__UAI__Response->is_value(); +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +return single_value.field_set__UL__Message__Response->is_value(); +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +return single_value.field_test__Loop__Sidelink__Counter__Response->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +} + +NG__NAS__UL__Message__Type NG__NAS__UL__Message__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +NG__NAS__UL__Message__Type ret_val; +switch (single_value.union_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +ret_val.authentication__Failure() = single_value.field_authentication__Failure->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +ret_val.authentication__Response() = single_value.field_authentication__Response->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +ret_val.configuration__Update__Complete() = single_value.field_configuration__Update__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +ret_val.cp__Service__Request() = single_value.field_cp__Service__Request->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +ret_val.deregistration__Accept() = single_value.field_deregistration__Accept->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +ret_val.deregistration__RequestMO() = single_value.field_deregistration__RequestMO->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +ret_val.gmm__Status() = single_value.field_gmm__Status->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +ret_val.gsm__Status() = single_value.field_gsm__Status->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +ret_val.network__Slice__Specific__Authentication__Complete() = single_value.field_network__Slice__Specific__Authentication__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_identity__Response: +ret_val.identity__Response() = single_value.field_identity__Response->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_notification__Response: +ret_val.notification__Response() = single_value.field_notification__Response->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +ret_val.pdu__Session__Authentication__Complete() = single_value.field_pdu__Session__Authentication__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +ret_val.pdu__Session__Establishment__Request() = single_value.field_pdu__Session__Establishment__Request->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +ret_val.pdu__Session__Modification__Command__Reject() = single_value.field_pdu__Session__Modification__Command__Reject->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +ret_val.pdu__Session__Modification__Complete() = single_value.field_pdu__Session__Modification__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +ret_val.pdu__Session__Modification__Request() = single_value.field_pdu__Session__Modification__Request->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +ret_val.pdu__Session__Release__Complete() = single_value.field_pdu__Session__Release__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +ret_val.pdu__Session__Release__Request() = single_value.field_pdu__Session__Release__Request->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +ret_val.registration__Complete() = single_value.field_registration__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Request: +ret_val.registration__Request() = single_value.field_registration__Request->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +ret_val.security__Mode__Complete() = single_value.field_security__Mode__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +ret_val.security__Mode__Reject() = single_value.field_security__Mode__Reject->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +ret_val.security__Protected__Nas__Message() = single_value.field_security__Protected__Nas__Message->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_service__Request: +ret_val.service__Request() = single_value.field_service__Request->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +ret_val.ul__Nas__Transport() = single_value.field_ul__Nas__Transport->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +ret_val.activate__Test__Mode__Complete() = single_value.field_activate__Test__Mode__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +ret_val.deactivate__Test__Mode__Complete() = single_value.field_deactivate__Test__Mode__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +ret_val.close__Ue__Test__Loop__Complete() = single_value.field_close__Ue__Test__Loop__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +ret_val.open__Ue__Test__Loop__Complete() = single_value.field_open__Ue__Test__Loop__Complete->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +ret_val.nssai__Delete__Response() = single_value.field_nssai__Delete__Response->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +ret_val.set__UAI__Response() = single_value.field_set__UAI__Response->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +ret_val.set__UL__Message__Response() = single_value.field_set__UL__Message__Response->valueof(); +break; +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +ret_val.test__Loop__Sidelink__Counter__Response() = single_value.field_test__Loop__Sidelink__Counter__Response->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +NG__NAS__UL__Message__Type_template& NG__NAS__UL__Message__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return value_list.list_value[list_index]; +} +void NG__NAS__UL__Message__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NG__NAS__UL__Message__Type_template[list_length]; +} + +NG__NAS__UL__Message__Type::union_selection_type NG__NAS__UL__Message__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return single_value.union_selection; +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template& NG__NAS__UL__Message__Type_template::authentication__Failure() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_authentication__Failure) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_authentication__Failure = new NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template(ANY_VALUE); +else single_value.field_authentication__Failure = new NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_authentication__Failure; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_authentication__Failure; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template& NG__NAS__UL__Message__Type_template::authentication__Failure() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field authentication_Failure in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_authentication__Failure) TTCN_error("Accessing non-selected field authentication_Failure in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_authentication__Failure; +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template& NG__NAS__UL__Message__Type_template::authentication__Response() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_authentication__Response) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_authentication__Response = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template(ANY_VALUE); +else single_value.field_authentication__Response = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_authentication__Response; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_authentication__Response; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template& NG__NAS__UL__Message__Type_template::authentication__Response() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field authentication_Response in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_authentication__Response) TTCN_error("Accessing non-selected field authentication_Response in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_authentication__Response; +} + +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template& NG__NAS__UL__Message__Type_template::configuration__Update__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_configuration__Update__Complete = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template(ANY_VALUE); +else single_value.field_configuration__Update__Complete = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_configuration__Update__Complete; +} + +const NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template& NG__NAS__UL__Message__Type_template::configuration__Update__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field configuration_Update_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete) TTCN_error("Accessing non-selected field configuration_Update_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_configuration__Update__Complete; +} + +NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template& NG__NAS__UL__Message__Type_template::cp__Service__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_cp__Service__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_cp__Service__Request = new NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template(ANY_VALUE); +else single_value.field_cp__Service__Request = new NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_cp__Service__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_cp__Service__Request; +} + +const NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template& NG__NAS__UL__Message__Type_template::cp__Service__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field cp_Service_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_cp__Service__Request) TTCN_error("Accessing non-selected field cp_Service_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_cp__Service__Request; +} + +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& NG__NAS__UL__Message__Type_template::deregistration__Accept() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_deregistration__Accept) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template(ANY_VALUE); +else single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_deregistration__Accept; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_deregistration__Accept; +} + +const NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& NG__NAS__UL__Message__Type_template::deregistration__Accept() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field deregistration_Accept in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_deregistration__Accept) TTCN_error("Accessing non-selected field deregistration_Accept in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_deregistration__Accept; +} + +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template& NG__NAS__UL__Message__Type_template::deregistration__RequestMO() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_deregistration__RequestMO = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template(ANY_VALUE); +else single_value.field_deregistration__RequestMO = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_deregistration__RequestMO; +} + +const NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template& NG__NAS__UL__Message__Type_template::deregistration__RequestMO() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field deregistration_RequestMO in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO) TTCN_error("Accessing non-selected field deregistration_RequestMO in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_deregistration__RequestMO; +} + +NG__NAS__TypeDefs::NG__GMM__STATUS_template& NG__NAS__UL__Message__Type_template::gmm__Status() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_gmm__Status) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template(ANY_VALUE); +else single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_gmm__Status; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_gmm__Status; +} + +const NG__NAS__TypeDefs::NG__GMM__STATUS_template& NG__NAS__UL__Message__Type_template::gmm__Status() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field gmm_Status in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_gmm__Status) TTCN_error("Accessing non-selected field gmm_Status in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_gmm__Status; +} + +NG__NAS__TypeDefs::NG__GSM__STATUS_template& NG__NAS__UL__Message__Type_template::gsm__Status() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_gsm__Status) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template(ANY_VALUE); +else single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_gsm__Status; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_gsm__Status; +} + +const NG__NAS__TypeDefs::NG__GSM__STATUS_template& NG__NAS__UL__Message__Type_template::gsm__Status() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field gsm_Status in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_gsm__Status) TTCN_error("Accessing non-selected field gsm_Status in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_gsm__Status; +} + +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& NG__NAS__UL__Message__Type_template::network__Slice__Specific__Authentication__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_network__Slice__Specific__Authentication__Complete = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(ANY_VALUE); +else single_value.field_network__Slice__Specific__Authentication__Complete = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_network__Slice__Specific__Authentication__Complete; +} + +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& NG__NAS__UL__Message__Type_template::network__Slice__Specific__Authentication__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field network_Slice_Specific_Authentication_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete) TTCN_error("Accessing non-selected field network_Slice_Specific_Authentication_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_network__Slice__Specific__Authentication__Complete; +} + +NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template& NG__NAS__UL__Message__Type_template::identity__Response() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_identity__Response) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_identity__Response = new NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template(ANY_VALUE); +else single_value.field_identity__Response = new NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_identity__Response; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_identity__Response; +} + +const NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template& NG__NAS__UL__Message__Type_template::identity__Response() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field identity_Response in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_identity__Response) TTCN_error("Accessing non-selected field identity_Response in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_identity__Response; +} + +NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template& NG__NAS__UL__Message__Type_template::notification__Response() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_notification__Response) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_notification__Response = new NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template(ANY_VALUE); +else single_value.field_notification__Response = new NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_notification__Response; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_notification__Response; +} + +const NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template& NG__NAS__UL__Message__Type_template::notification__Response() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field notification_Response in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_notification__Response) TTCN_error("Accessing non-selected field notification_Response in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_notification__Response; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& NG__NAS__UL__Message__Type_template::pdu__Session__Authentication__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Authentication__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(ANY_VALUE); +else single_value.field_pdu__Session__Authentication__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Authentication__Complete; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& NG__NAS__UL__Message__Type_template::pdu__Session__Authentication__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Authentication_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete) TTCN_error("Accessing non-selected field pdu_Session_Authentication_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_pdu__Session__Authentication__Complete; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& NG__NAS__UL__Message__Type_template::pdu__Session__Establishment__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Establishment__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(ANY_VALUE); +else single_value.field_pdu__Session__Establishment__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Establishment__Request; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& NG__NAS__UL__Message__Type_template::pdu__Session__Establishment__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Establishment_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request) TTCN_error("Accessing non-selected field pdu_Session_Establishment_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_pdu__Session__Establishment__Request; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& NG__NAS__UL__Message__Type_template::pdu__Session__Modification__Command__Reject() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Modification__Command__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(ANY_VALUE); +else single_value.field_pdu__Session__Modification__Command__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Modification__Command__Reject; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& NG__NAS__UL__Message__Type_template::pdu__Session__Modification__Command__Reject() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Modification_Command_Reject in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject) TTCN_error("Accessing non-selected field pdu_Session_Modification_Command_Reject in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_pdu__Session__Modification__Command__Reject; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template& NG__NAS__UL__Message__Type_template::pdu__Session__Modification__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Modification__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template(ANY_VALUE); +else single_value.field_pdu__Session__Modification__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Modification__Complete; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template& NG__NAS__UL__Message__Type_template::pdu__Session__Modification__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Modification_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete) TTCN_error("Accessing non-selected field pdu_Session_Modification_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_pdu__Session__Modification__Complete; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template& NG__NAS__UL__Message__Type_template::pdu__Session__Modification__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Modification__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template(ANY_VALUE); +else single_value.field_pdu__Session__Modification__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Modification__Request; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template& NG__NAS__UL__Message__Type_template::pdu__Session__Modification__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Modification_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request) TTCN_error("Accessing non-selected field pdu_Session_Modification_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_pdu__Session__Modification__Request; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template& NG__NAS__UL__Message__Type_template::pdu__Session__Release__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Release__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template(ANY_VALUE); +else single_value.field_pdu__Session__Release__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Release__Complete; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template& NG__NAS__UL__Message__Type_template::pdu__Session__Release__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Release_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete) TTCN_error("Accessing non-selected field pdu_Session_Release_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_pdu__Session__Release__Complete; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template& NG__NAS__UL__Message__Type_template::pdu__Session__Release__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Release__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template(ANY_VALUE); +else single_value.field_pdu__Session__Release__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Release__Request; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template& NG__NAS__UL__Message__Type_template::pdu__Session__Release__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Release_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request) TTCN_error("Accessing non-selected field pdu_Session_Release_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_pdu__Session__Release__Request; +} + +NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template& NG__NAS__UL__Message__Type_template::registration__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_registration__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_registration__Complete = new NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template(ANY_VALUE); +else single_value.field_registration__Complete = new NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_registration__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_registration__Complete; +} + +const NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template& NG__NAS__UL__Message__Type_template::registration__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field registration_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_registration__Complete) TTCN_error("Accessing non-selected field registration_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_registration__Complete; +} + +NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template& NG__NAS__UL__Message__Type_template::registration__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_registration__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_registration__Request = new NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template(ANY_VALUE); +else single_value.field_registration__Request = new NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_registration__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_registration__Request; +} + +const NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template& NG__NAS__UL__Message__Type_template::registration__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field registration_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_registration__Request) TTCN_error("Accessing non-selected field registration_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_registration__Request; +} + +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template& NG__NAS__UL__Message__Type_template::security__Mode__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_security__Mode__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_security__Mode__Complete = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template(ANY_VALUE); +else single_value.field_security__Mode__Complete = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_security__Mode__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_security__Mode__Complete; +} + +const NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template& NG__NAS__UL__Message__Type_template::security__Mode__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field security_Mode_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_security__Mode__Complete) TTCN_error("Accessing non-selected field security_Mode_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_security__Mode__Complete; +} + +NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template& NG__NAS__UL__Message__Type_template::security__Mode__Reject() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_security__Mode__Reject) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_security__Mode__Reject = new NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template(ANY_VALUE); +else single_value.field_security__Mode__Reject = new NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_security__Mode__Reject; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_security__Mode__Reject; +} + +const NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template& NG__NAS__UL__Message__Type_template::security__Mode__Reject() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field security_Mode_Reject in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_security__Mode__Reject) TTCN_error("Accessing non-selected field security_Mode_Reject in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_security__Mode__Reject; +} + +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template& NG__NAS__UL__Message__Type_template::security__Protected__Nas__Message() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template(ANY_VALUE); +else single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_security__Protected__Nas__Message; +} + +const NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template& NG__NAS__UL__Message__Type_template::security__Protected__Nas__Message() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field security_Protected_Nas_Message in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message) TTCN_error("Accessing non-selected field security_Protected_Nas_Message in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_security__Protected__Nas__Message; +} + +NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template& NG__NAS__UL__Message__Type_template::service__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_service__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_service__Request = new NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template(ANY_VALUE); +else single_value.field_service__Request = new NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_service__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_service__Request; +} + +const NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template& NG__NAS__UL__Message__Type_template::service__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field service_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_service__Request) TTCN_error("Accessing non-selected field service_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_service__Request; +} + +NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template& NG__NAS__UL__Message__Type_template::ul__Nas__Transport() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_ul__Nas__Transport = new NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template(ANY_VALUE); +else single_value.field_ul__Nas__Transport = new NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_ul__Nas__Transport; +} + +const NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template& NG__NAS__UL__Message__Type_template::ul__Nas__Transport() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field ul_Nas_Transport in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport) TTCN_error("Accessing non-selected field ul_Nas_Transport in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_ul__Nas__Transport; +} + +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template& NG__NAS__UL__Message__Type_template::activate__Test__Mode__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_activate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template(ANY_VALUE); +else single_value.field_activate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_activate__Test__Mode__Complete; +} + +const EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template& NG__NAS__UL__Message__Type_template::activate__Test__Mode__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field activate_Test_Mode_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete) TTCN_error("Accessing non-selected field activate_Test_Mode_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_activate__Test__Mode__Complete; +} + +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template& NG__NAS__UL__Message__Type_template::deactivate__Test__Mode__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_deactivate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template(ANY_VALUE); +else single_value.field_deactivate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_deactivate__Test__Mode__Complete; +} + +const EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template& NG__NAS__UL__Message__Type_template::deactivate__Test__Mode__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field deactivate_Test_Mode_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete) TTCN_error("Accessing non-selected field deactivate_Test_Mode_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_deactivate__Test__Mode__Complete; +} + +EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template& NG__NAS__UL__Message__Type_template::close__Ue__Test__Loop__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_close__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template(ANY_VALUE); +else single_value.field_close__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_close__Ue__Test__Loop__Complete; +} + +const EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template& NG__NAS__UL__Message__Type_template::close__Ue__Test__Loop__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field close_Ue_Test_Loop_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete) TTCN_error("Accessing non-selected field close_Ue_Test_Loop_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_close__Ue__Test__Loop__Complete; +} + +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template& NG__NAS__UL__Message__Type_template::open__Ue__Test__Loop__Complete() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_open__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template(ANY_VALUE); +else single_value.field_open__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_open__Ue__Test__Loop__Complete; +} + +const EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template& NG__NAS__UL__Message__Type_template::open__Ue__Test__Loop__Complete() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field open_Ue_Test_Loop_Complete in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete) TTCN_error("Accessing non-selected field open_Ue_Test_Loop_Complete in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_open__Ue__Test__Loop__Complete; +} + +NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template& NG__NAS__UL__Message__Type_template::nssai__Delete__Response() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_nssai__Delete__Response = new NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template(ANY_VALUE); +else single_value.field_nssai__Delete__Response = new NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_nssai__Delete__Response; +} + +const NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template& NG__NAS__UL__Message__Type_template::nssai__Delete__Response() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field nssai_Delete_Response in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response) TTCN_error("Accessing non-selected field nssai_Delete_Response in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_nssai__Delete__Response; +} + +NG__NAS__TypeDefs::SET__UAI__RESPONSE_template& NG__NAS__UL__Message__Type_template::set__UAI__Response() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_set__UAI__Response) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_set__UAI__Response = new NG__NAS__TypeDefs::SET__UAI__RESPONSE_template(ANY_VALUE); +else single_value.field_set__UAI__Response = new NG__NAS__TypeDefs::SET__UAI__RESPONSE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_set__UAI__Response; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_set__UAI__Response; +} + +const NG__NAS__TypeDefs::SET__UAI__RESPONSE_template& NG__NAS__UL__Message__Type_template::set__UAI__Response() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field set_UAI_Response in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_set__UAI__Response) TTCN_error("Accessing non-selected field set_UAI_Response in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_set__UAI__Response; +} + +Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template& NG__NAS__UL__Message__Type_template::set__UL__Message__Response() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_set__UL__Message__Response = new Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template(ANY_VALUE); +else single_value.field_set__UL__Message__Response = new Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_set__UL__Message__Response; +} + +const Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template& NG__NAS__UL__Message__Type_template::set__UL__Message__Response() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field set_UL_Message_Response in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response) TTCN_error("Accessing non-selected field set_UL_Message_Response in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_set__UL__Message__Response; +} + +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& NG__NAS__UL__Message__Type_template::test__Loop__Sidelink__Counter__Response() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_test__Loop__Sidelink__Counter__Response = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(ANY_VALUE); +else single_value.field_test__Loop__Sidelink__Counter__Response = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template; +single_value.union_selection = NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_test__Loop__Sidelink__Counter__Response; +} + +const NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& NG__NAS__UL__Message__Type_template::test__Loop__Sidelink__Counter__Response() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field test_Loop_Sidelink_Counter_Response in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +if (single_value.union_selection != NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response) TTCN_error("Accessing non-selected field test_Loop_Sidelink_Counter_Response in a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return *single_value.field_test__Loop__Sidelink__Counter__Response; +} + +boolean NG__NAS__UL__Message__Type_template::ischosen(NG__NAS__UL__Message__Type::union_selection_type checked_selection) const +{ +if (checked_selection == NG__NAS__UL__Message__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == NG__NAS__UL__Message__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void NG__NAS__UL__Message__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NG__NAS__UL__Message__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NG__NAS__UL__Message__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NG__NAS__UL__Message__Type_template::clone() const { return new NG__NAS__UL__Message__Type_template(*this); } +const TTCN_Typedescriptor_t* NG__NAS__UL__Message__Type_template::get_descriptor() const { return &NG__NAS__UL__Message__Type_descr_; } +boolean NG__NAS__UL__Message__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NG__NAS__UL__Message__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NG__NAS__UL__Message__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +TTCN_Logger::log_event_str("{ authentication_Failure := "); +single_value.field_authentication__Failure->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +TTCN_Logger::log_event_str("{ authentication_Response := "); +single_value.field_authentication__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +TTCN_Logger::log_event_str("{ configuration_Update_Complete := "); +single_value.field_configuration__Update__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +TTCN_Logger::log_event_str("{ cp_Service_Request := "); +single_value.field_cp__Service__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +TTCN_Logger::log_event_str("{ deregistration_Accept := "); +single_value.field_deregistration__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +TTCN_Logger::log_event_str("{ deregistration_RequestMO := "); +single_value.field_deregistration__RequestMO->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +TTCN_Logger::log_event_str("{ gmm_Status := "); +single_value.field_gmm__Status->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +TTCN_Logger::log_event_str("{ gsm_Status := "); +single_value.field_gsm__Status->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +TTCN_Logger::log_event_str("{ network_Slice_Specific_Authentication_Complete := "); +single_value.field_network__Slice__Specific__Authentication__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_identity__Response: +TTCN_Logger::log_event_str("{ identity_Response := "); +single_value.field_identity__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_notification__Response: +TTCN_Logger::log_event_str("{ notification_Response := "); +single_value.field_notification__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +TTCN_Logger::log_event_str("{ pdu_Session_Authentication_Complete := "); +single_value.field_pdu__Session__Authentication__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +TTCN_Logger::log_event_str("{ pdu_Session_Establishment_Request := "); +single_value.field_pdu__Session__Establishment__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Command_Reject := "); +single_value.field_pdu__Session__Modification__Command__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Complete := "); +single_value.field_pdu__Session__Modification__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Request := "); +single_value.field_pdu__Session__Modification__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +TTCN_Logger::log_event_str("{ pdu_Session_Release_Complete := "); +single_value.field_pdu__Session__Release__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +TTCN_Logger::log_event_str("{ pdu_Session_Release_Request := "); +single_value.field_pdu__Session__Release__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +TTCN_Logger::log_event_str("{ registration_Complete := "); +single_value.field_registration__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Request: +TTCN_Logger::log_event_str("{ registration_Request := "); +single_value.field_registration__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +TTCN_Logger::log_event_str("{ security_Mode_Complete := "); +single_value.field_security__Mode__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +TTCN_Logger::log_event_str("{ security_Mode_Reject := "); +single_value.field_security__Mode__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +TTCN_Logger::log_event_str("{ security_Protected_Nas_Message := "); +single_value.field_security__Protected__Nas__Message->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_service__Request: +TTCN_Logger::log_event_str("{ service_Request := "); +single_value.field_service__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +TTCN_Logger::log_event_str("{ ul_Nas_Transport := "); +single_value.field_ul__Nas__Transport->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +TTCN_Logger::log_event_str("{ activate_Test_Mode_Complete := "); +single_value.field_activate__Test__Mode__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +TTCN_Logger::log_event_str("{ deactivate_Test_Mode_Complete := "); +single_value.field_deactivate__Test__Mode__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +TTCN_Logger::log_event_str("{ close_Ue_Test_Loop_Complete := "); +single_value.field_close__Ue__Test__Loop__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +TTCN_Logger::log_event_str("{ open_Ue_Test_Loop_Complete := "); +single_value.field_open__Ue__Test__Loop__Complete->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +TTCN_Logger::log_event_str("{ nssai_Delete_Response := "); +single_value.field_nssai__Delete__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +TTCN_Logger::log_event_str("{ set_UAI_Response := "); +single_value.field_set__UAI__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +TTCN_Logger::log_event_str("{ set_UL_Message_Response := "); +single_value.field_set__UL__Message__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +TTCN_Logger::log_event_str("{ test_Loop_Sidelink_Counter_Response := "); +single_value.field_test__Loop__Sidelink__Counter__Response->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void NG__NAS__UL__Message__Type_template::log_match(const NG__NAS__UL__Message__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".authentication_Failure"); +single_value.field_authentication__Failure->log_match(match_value.authentication__Failure(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ authentication_Failure := "); +single_value.field_authentication__Failure->log_match(match_value.authentication__Failure(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".authentication_Response"); +single_value.field_authentication__Response->log_match(match_value.authentication__Response(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ authentication_Response := "); +single_value.field_authentication__Response->log_match(match_value.authentication__Response(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".configuration_Update_Complete"); +single_value.field_configuration__Update__Complete->log_match(match_value.configuration__Update__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ configuration_Update_Complete := "); +single_value.field_configuration__Update__Complete->log_match(match_value.configuration__Update__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".cp_Service_Request"); +single_value.field_cp__Service__Request->log_match(match_value.cp__Service__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ cp_Service_Request := "); +single_value.field_cp__Service__Request->log_match(match_value.cp__Service__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".deregistration_Accept"); +single_value.field_deregistration__Accept->log_match(match_value.deregistration__Accept(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ deregistration_Accept := "); +single_value.field_deregistration__Accept->log_match(match_value.deregistration__Accept(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".deregistration_RequestMO"); +single_value.field_deregistration__RequestMO->log_match(match_value.deregistration__RequestMO(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ deregistration_RequestMO := "); +single_value.field_deregistration__RequestMO->log_match(match_value.deregistration__RequestMO(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".gmm_Status"); +single_value.field_gmm__Status->log_match(match_value.gmm__Status(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ gmm_Status := "); +single_value.field_gmm__Status->log_match(match_value.gmm__Status(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".gsm_Status"); +single_value.field_gsm__Status->log_match(match_value.gsm__Status(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ gsm_Status := "); +single_value.field_gsm__Status->log_match(match_value.gsm__Status(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".network_Slice_Specific_Authentication_Complete"); +single_value.field_network__Slice__Specific__Authentication__Complete->log_match(match_value.network__Slice__Specific__Authentication__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ network_Slice_Specific_Authentication_Complete := "); +single_value.field_network__Slice__Specific__Authentication__Complete->log_match(match_value.network__Slice__Specific__Authentication__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_identity__Response: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".identity_Response"); +single_value.field_identity__Response->log_match(match_value.identity__Response(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ identity_Response := "); +single_value.field_identity__Response->log_match(match_value.identity__Response(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_notification__Response: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".notification_Response"); +single_value.field_notification__Response->log_match(match_value.notification__Response(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ notification_Response := "); +single_value.field_notification__Response->log_match(match_value.notification__Response(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Authentication_Complete"); +single_value.field_pdu__Session__Authentication__Complete->log_match(match_value.pdu__Session__Authentication__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Authentication_Complete := "); +single_value.field_pdu__Session__Authentication__Complete->log_match(match_value.pdu__Session__Authentication__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Establishment_Request"); +single_value.field_pdu__Session__Establishment__Request->log_match(match_value.pdu__Session__Establishment__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Establishment_Request := "); +single_value.field_pdu__Session__Establishment__Request->log_match(match_value.pdu__Session__Establishment__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Modification_Command_Reject"); +single_value.field_pdu__Session__Modification__Command__Reject->log_match(match_value.pdu__Session__Modification__Command__Reject(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Command_Reject := "); +single_value.field_pdu__Session__Modification__Command__Reject->log_match(match_value.pdu__Session__Modification__Command__Reject(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Modification_Complete"); +single_value.field_pdu__Session__Modification__Complete->log_match(match_value.pdu__Session__Modification__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Complete := "); +single_value.field_pdu__Session__Modification__Complete->log_match(match_value.pdu__Session__Modification__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Modification_Request"); +single_value.field_pdu__Session__Modification__Request->log_match(match_value.pdu__Session__Modification__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Request := "); +single_value.field_pdu__Session__Modification__Request->log_match(match_value.pdu__Session__Modification__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Release_Complete"); +single_value.field_pdu__Session__Release__Complete->log_match(match_value.pdu__Session__Release__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Release_Complete := "); +single_value.field_pdu__Session__Release__Complete->log_match(match_value.pdu__Session__Release__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Release_Request"); +single_value.field_pdu__Session__Release__Request->log_match(match_value.pdu__Session__Release__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Release_Request := "); +single_value.field_pdu__Session__Release__Request->log_match(match_value.pdu__Session__Release__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".registration_Complete"); +single_value.field_registration__Complete->log_match(match_value.registration__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ registration_Complete := "); +single_value.field_registration__Complete->log_match(match_value.registration__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_registration__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".registration_Request"); +single_value.field_registration__Request->log_match(match_value.registration__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ registration_Request := "); +single_value.field_registration__Request->log_match(match_value.registration__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".security_Mode_Complete"); +single_value.field_security__Mode__Complete->log_match(match_value.security__Mode__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ security_Mode_Complete := "); +single_value.field_security__Mode__Complete->log_match(match_value.security__Mode__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".security_Mode_Reject"); +single_value.field_security__Mode__Reject->log_match(match_value.security__Mode__Reject(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ security_Mode_Reject := "); +single_value.field_security__Mode__Reject->log_match(match_value.security__Mode__Reject(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".security_Protected_Nas_Message"); +single_value.field_security__Protected__Nas__Message->log_match(match_value.security__Protected__Nas__Message(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ security_Protected_Nas_Message := "); +single_value.field_security__Protected__Nas__Message->log_match(match_value.security__Protected__Nas__Message(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_service__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".service_Request"); +single_value.field_service__Request->log_match(match_value.service__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ service_Request := "); +single_value.field_service__Request->log_match(match_value.service__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".ul_Nas_Transport"); +single_value.field_ul__Nas__Transport->log_match(match_value.ul__Nas__Transport(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ ul_Nas_Transport := "); +single_value.field_ul__Nas__Transport->log_match(match_value.ul__Nas__Transport(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".activate_Test_Mode_Complete"); +single_value.field_activate__Test__Mode__Complete->log_match(match_value.activate__Test__Mode__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ activate_Test_Mode_Complete := "); +single_value.field_activate__Test__Mode__Complete->log_match(match_value.activate__Test__Mode__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".deactivate_Test_Mode_Complete"); +single_value.field_deactivate__Test__Mode__Complete->log_match(match_value.deactivate__Test__Mode__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ deactivate_Test_Mode_Complete := "); +single_value.field_deactivate__Test__Mode__Complete->log_match(match_value.deactivate__Test__Mode__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".close_Ue_Test_Loop_Complete"); +single_value.field_close__Ue__Test__Loop__Complete->log_match(match_value.close__Ue__Test__Loop__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ close_Ue_Test_Loop_Complete := "); +single_value.field_close__Ue__Test__Loop__Complete->log_match(match_value.close__Ue__Test__Loop__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".open_Ue_Test_Loop_Complete"); +single_value.field_open__Ue__Test__Loop__Complete->log_match(match_value.open__Ue__Test__Loop__Complete(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ open_Ue_Test_Loop_Complete := "); +single_value.field_open__Ue__Test__Loop__Complete->log_match(match_value.open__Ue__Test__Loop__Complete(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".nssai_Delete_Response"); +single_value.field_nssai__Delete__Response->log_match(match_value.nssai__Delete__Response(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ nssai_Delete_Response := "); +single_value.field_nssai__Delete__Response->log_match(match_value.nssai__Delete__Response(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".set_UAI_Response"); +single_value.field_set__UAI__Response->log_match(match_value.set__UAI__Response(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ set_UAI_Response := "); +single_value.field_set__UAI__Response->log_match(match_value.set__UAI__Response(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".set_UL_Message_Response"); +single_value.field_set__UL__Message__Response->log_match(match_value.set__UL__Message__Response(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ set_UL_Message_Response := "); +single_value.field_set__UL__Message__Response->log_match(match_value.set__UL__Message__Response(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".test_Loop_Sidelink_Counter_Response"); +single_value.field_test__Loop__Sidelink__Counter__Response->log_match(match_value.test__Loop__Sidelink__Counter__Response(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ test_Loop_Sidelink_Counter_Response := "); +single_value.field_test__Loop__Sidelink__Counter__Response->log_match(match_value.test__Loop__Sidelink__Counter__Response(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void NG__NAS__UL__Message__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +single_value.field_authentication__Failure->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +single_value.field_authentication__Response->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +single_value.field_configuration__Update__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +single_value.field_cp__Service__Request->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +single_value.field_deregistration__RequestMO->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +single_value.field_network__Slice__Specific__Authentication__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_identity__Response: +single_value.field_identity__Response->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_notification__Response: +single_value.field_notification__Response->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +single_value.field_pdu__Session__Authentication__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +single_value.field_pdu__Session__Establishment__Request->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +single_value.field_pdu__Session__Modification__Command__Reject->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +single_value.field_pdu__Session__Modification__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +single_value.field_pdu__Session__Modification__Request->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +single_value.field_pdu__Session__Release__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +single_value.field_pdu__Session__Release__Request->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +single_value.field_registration__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Request: +single_value.field_registration__Request->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +single_value.field_security__Mode__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +single_value.field_security__Mode__Reject->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_service__Request: +single_value.field_service__Request->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +single_value.field_ul__Nas__Transport->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +single_value.field_activate__Test__Mode__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +single_value.field_deactivate__Test__Mode__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +single_value.field_close__Ue__Test__Loop__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +single_value.field_open__Ue__Test__Loop__Complete->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +single_value.field_nssai__Delete__Response->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +single_value.field_set__UAI__Response->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +single_value.field_set__UL__Message__Response->encode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +single_value.field_test__Loop__Sidelink__Counter__Response->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +} + +void NG__NAS__UL__Message__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = NG__NAS__UL__Message__Type::UNBOUND_VALUE; +NG__NAS__UL__Message__Type::union_selection_type new_selection = (NG__NAS__UL__Message__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +single_value.field_authentication__Failure = new NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template; +single_value.field_authentication__Failure->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +single_value.field_authentication__Response = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template; +single_value.field_authentication__Response->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +single_value.field_configuration__Update__Complete = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template; +single_value.field_configuration__Update__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +single_value.field_cp__Service__Request = new NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template; +single_value.field_cp__Service__Request->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template; +single_value.field_deregistration__Accept->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +single_value.field_deregistration__RequestMO = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template; +single_value.field_deregistration__RequestMO->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template; +single_value.field_gmm__Status->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template; +single_value.field_gsm__Status->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +single_value.field_network__Slice__Specific__Authentication__Complete = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template; +single_value.field_network__Slice__Specific__Authentication__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_identity__Response: +single_value.field_identity__Response = new NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template; +single_value.field_identity__Response->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_notification__Response: +single_value.field_notification__Response = new NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template; +single_value.field_notification__Response->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +single_value.field_pdu__Session__Authentication__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template; +single_value.field_pdu__Session__Authentication__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +single_value.field_pdu__Session__Establishment__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template; +single_value.field_pdu__Session__Establishment__Request->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +single_value.field_pdu__Session__Modification__Command__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template; +single_value.field_pdu__Session__Modification__Command__Reject->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +single_value.field_pdu__Session__Modification__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template; +single_value.field_pdu__Session__Modification__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +single_value.field_pdu__Session__Modification__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template; +single_value.field_pdu__Session__Modification__Request->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +single_value.field_pdu__Session__Release__Complete = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template; +single_value.field_pdu__Session__Release__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +single_value.field_pdu__Session__Release__Request = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template; +single_value.field_pdu__Session__Release__Request->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +single_value.field_registration__Complete = new NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template; +single_value.field_registration__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_registration__Request: +single_value.field_registration__Request = new NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template; +single_value.field_registration__Request->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +single_value.field_security__Mode__Complete = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template; +single_value.field_security__Mode__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +single_value.field_security__Mode__Reject = new NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template; +single_value.field_security__Mode__Reject->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template; +single_value.field_security__Protected__Nas__Message->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_service__Request: +single_value.field_service__Request = new NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template; +single_value.field_service__Request->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +single_value.field_ul__Nas__Transport = new NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template; +single_value.field_ul__Nas__Transport->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +single_value.field_activate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template; +single_value.field_activate__Test__Mode__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +single_value.field_deactivate__Test__Mode__Complete = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template; +single_value.field_deactivate__Test__Mode__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +single_value.field_close__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template; +single_value.field_close__Ue__Test__Loop__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +single_value.field_open__Ue__Test__Loop__Complete = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template; +single_value.field_open__Ue__Test__Loop__Complete->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +single_value.field_nssai__Delete__Response = new NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template; +single_value.field_nssai__Delete__Response->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +single_value.field_set__UAI__Response = new NG__NAS__TypeDefs::SET__UAI__RESPONSE_template; +single_value.field_set__UAI__Response->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +single_value.field_set__UL__Message__Response = new Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template; +single_value.field_set__UL__Message__Response->decode_text(text_buf); +break; +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +single_value.field_test__Loop__Sidelink__Counter__Response = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template; +single_value.field_test__Loop__Sidelink__Counter__Response->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NG__NAS__UL__Message__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +} + +boolean NG__NAS__UL__Message__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NG__NAS__UL__Message__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type'"); + } + if (strcmp("authentication_Failure", param_field) == 0) { + authentication__Failure().set_param(param); + return; + } else if (strcmp("authentication_Response", param_field) == 0) { + authentication__Response().set_param(param); + return; + } else if (strcmp("configuration_Update_Complete", param_field) == 0) { + configuration__Update__Complete().set_param(param); + return; + } else if (strcmp("cp_Service_Request", param_field) == 0) { + cp__Service__Request().set_param(param); + return; + } else if (strcmp("deregistration_Accept", param_field) == 0) { + deregistration__Accept().set_param(param); + return; + } else if (strcmp("deregistration_RequestMO", param_field) == 0) { + deregistration__RequestMO().set_param(param); + return; + } else if (strcmp("gmm_Status", param_field) == 0) { + gmm__Status().set_param(param); + return; + } else if (strcmp("gsm_Status", param_field) == 0) { + gsm__Status().set_param(param); + return; + } else if (strcmp("network_Slice_Specific_Authentication_Complete", param_field) == 0) { + network__Slice__Specific__Authentication__Complete().set_param(param); + return; + } else if (strcmp("identity_Response", param_field) == 0) { + identity__Response().set_param(param); + return; + } else if (strcmp("notification_Response", param_field) == 0) { + notification__Response().set_param(param); + return; + } else if (strcmp("pdu_Session_Authentication_Complete", param_field) == 0) { + pdu__Session__Authentication__Complete().set_param(param); + return; + } else if (strcmp("pdu_Session_Establishment_Request", param_field) == 0) { + pdu__Session__Establishment__Request().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Command_Reject", param_field) == 0) { + pdu__Session__Modification__Command__Reject().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Complete", param_field) == 0) { + pdu__Session__Modification__Complete().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Request", param_field) == 0) { + pdu__Session__Modification__Request().set_param(param); + return; + } else if (strcmp("pdu_Session_Release_Complete", param_field) == 0) { + pdu__Session__Release__Complete().set_param(param); + return; + } else if (strcmp("pdu_Session_Release_Request", param_field) == 0) { + pdu__Session__Release__Request().set_param(param); + return; + } else if (strcmp("registration_Complete", param_field) == 0) { + registration__Complete().set_param(param); + return; + } else if (strcmp("registration_Request", param_field) == 0) { + registration__Request().set_param(param); + return; + } else if (strcmp("security_Mode_Complete", param_field) == 0) { + security__Mode__Complete().set_param(param); + return; + } else if (strcmp("security_Mode_Reject", param_field) == 0) { + security__Mode__Reject().set_param(param); + return; + } else if (strcmp("security_Protected_Nas_Message", param_field) == 0) { + security__Protected__Nas__Message().set_param(param); + return; + } else if (strcmp("service_Request", param_field) == 0) { + service__Request().set_param(param); + return; + } else if (strcmp("ul_Nas_Transport", param_field) == 0) { + ul__Nas__Transport().set_param(param); + return; + } else if (strcmp("activate_Test_Mode_Complete", param_field) == 0) { + activate__Test__Mode__Complete().set_param(param); + return; + } else if (strcmp("deactivate_Test_Mode_Complete", param_field) == 0) { + deactivate__Test__Mode__Complete().set_param(param); + return; + } else if (strcmp("close_Ue_Test_Loop_Complete", param_field) == 0) { + close__Ue__Test__Loop__Complete().set_param(param); + return; + } else if (strcmp("open_Ue_Test_Loop_Complete", param_field) == 0) { + open__Ue__Test__Loop__Complete().set_param(param); + return; + } else if (strcmp("nssai_Delete_Response", param_field) == 0) { + nssai__Delete__Response().set_param(param); + return; + } else if (strcmp("set_UAI_Response", param_field) == 0) { + set__UAI__Response().set_param(param); + return; + } else if (strcmp("set_UL_Message_Response", param_field) == 0) { + set__UL__Message__Response().set_param(param); + return; + } else if (strcmp("test_Loop_Sidelink_Counter_Response", param_field) == 0) { + test__Loop__Sidelink__Counter__Response().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NG__NAS__UL__Message__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "authentication_Failure")) { + authentication__Failure().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "authentication_Response")) { + authentication__Response().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "configuration_Update_Complete")) { + configuration__Update__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "cp_Service_Request")) { + cp__Service__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "deregistration_Accept")) { + deregistration__Accept().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "deregistration_RequestMO")) { + deregistration__RequestMO().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "gmm_Status")) { + gmm__Status().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "gsm_Status")) { + gsm__Status().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "network_Slice_Specific_Authentication_Complete")) { + network__Slice__Specific__Authentication__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "identity_Response")) { + identity__Response().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "notification_Response")) { + notification__Response().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Authentication_Complete")) { + pdu__Session__Authentication__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Establishment_Request")) { + pdu__Session__Establishment__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Modification_Command_Reject")) { + pdu__Session__Modification__Command__Reject().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Modification_Complete")) { + pdu__Session__Modification__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Modification_Request")) { + pdu__Session__Modification__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Release_Complete")) { + pdu__Session__Release__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Release_Request")) { + pdu__Session__Release__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "registration_Complete")) { + registration__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "registration_Request")) { + registration__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "security_Mode_Complete")) { + security__Mode__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "security_Mode_Reject")) { + security__Mode__Reject().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "security_Protected_Nas_Message")) { + security__Protected__Nas__Message().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "service_Request")) { + service__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "ul_Nas_Transport")) { + ul__Nas__Transport().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "activate_Test_Mode_Complete")) { + activate__Test__Mode__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "deactivate_Test_Mode_Complete")) { + deactivate__Test__Mode__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "close_Ue_Test_Loop_Complete")) { + close__Ue__Test__Loop__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "open_Ue_Test_Loop_Complete")) { + open__Ue__Test__Loop__Complete().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "nssai_Delete_Response")) { + nssai__Delete__Response().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "set_UAI_Response")) { + set__UAI__Response().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "set_UL_Message_Response")) { + set__UL__Message__Response().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "test_Loop_Sidelink_Counter_Response")) { + test__Loop__Sidelink__Counter__Response().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + NG__NAS__UL__Message__Type_template* precondition = new NG__NAS__UL__Message__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NG__NAS__UL__Message__Type_template* implied_template = new NG__NAS__UL__Message__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NG__NAS__UL__Message__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NG__NAS__UL__Message__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type'"); + } + if (strcmp("authentication_Failure", param_field) == 0) { + return authentication__Failure().get_param(param_name); + } else if (strcmp("authentication_Response", param_field) == 0) { + return authentication__Response().get_param(param_name); + } else if (strcmp("configuration_Update_Complete", param_field) == 0) { + return configuration__Update__Complete().get_param(param_name); + } else if (strcmp("cp_Service_Request", param_field) == 0) { + return cp__Service__Request().get_param(param_name); + } else if (strcmp("deregistration_Accept", param_field) == 0) { + return deregistration__Accept().get_param(param_name); + } else if (strcmp("deregistration_RequestMO", param_field) == 0) { + return deregistration__RequestMO().get_param(param_name); + } else if (strcmp("gmm_Status", param_field) == 0) { + return gmm__Status().get_param(param_name); + } else if (strcmp("gsm_Status", param_field) == 0) { + return gsm__Status().get_param(param_name); + } else if (strcmp("network_Slice_Specific_Authentication_Complete", param_field) == 0) { + return network__Slice__Specific__Authentication__Complete().get_param(param_name); + } else if (strcmp("identity_Response", param_field) == 0) { + return identity__Response().get_param(param_name); + } else if (strcmp("notification_Response", param_field) == 0) { + return notification__Response().get_param(param_name); + } else if (strcmp("pdu_Session_Authentication_Complete", param_field) == 0) { + return pdu__Session__Authentication__Complete().get_param(param_name); + } else if (strcmp("pdu_Session_Establishment_Request", param_field) == 0) { + return pdu__Session__Establishment__Request().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Command_Reject", param_field) == 0) { + return pdu__Session__Modification__Command__Reject().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Complete", param_field) == 0) { + return pdu__Session__Modification__Complete().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Request", param_field) == 0) { + return pdu__Session__Modification__Request().get_param(param_name); + } else if (strcmp("pdu_Session_Release_Complete", param_field) == 0) { + return pdu__Session__Release__Complete().get_param(param_name); + } else if (strcmp("pdu_Session_Release_Request", param_field) == 0) { + return pdu__Session__Release__Request().get_param(param_name); + } else if (strcmp("registration_Complete", param_field) == 0) { + return registration__Complete().get_param(param_name); + } else if (strcmp("registration_Request", param_field) == 0) { + return registration__Request().get_param(param_name); + } else if (strcmp("security_Mode_Complete", param_field) == 0) { + return security__Mode__Complete().get_param(param_name); + } else if (strcmp("security_Mode_Reject", param_field) == 0) { + return security__Mode__Reject().get_param(param_name); + } else if (strcmp("security_Protected_Nas_Message", param_field) == 0) { + return security__Protected__Nas__Message().get_param(param_name); + } else if (strcmp("service_Request", param_field) == 0) { + return service__Request().get_param(param_name); + } else if (strcmp("ul_Nas_Transport", param_field) == 0) { + return ul__Nas__Transport().get_param(param_name); + } else if (strcmp("activate_Test_Mode_Complete", param_field) == 0) { + return activate__Test__Mode__Complete().get_param(param_name); + } else if (strcmp("deactivate_Test_Mode_Complete", param_field) == 0) { + return deactivate__Test__Mode__Complete().get_param(param_name); + } else if (strcmp("close_Ue_Test_Loop_Complete", param_field) == 0) { + return close__Ue__Test__Loop__Complete().get_param(param_name); + } else if (strcmp("open_Ue_Test_Loop_Complete", param_field) == 0) { + return open__Ue__Test__Loop__Complete().get_param(param_name); + } else if (strcmp("nssai_Delete_Response", param_field) == 0) { + return nssai__Delete__Response().get_param(param_name); + } else if (strcmp("set_UAI_Response", param_field) == 0) { + return set__UAI__Response().get_param(param_name); + } else if (strcmp("set_UL_Message_Response", param_field) == 0) { + return set__UL__Message__Response().get_param(param_name); + } else if (strcmp("test_Loop_Sidelink_Counter_Response", param_field) == 0) { + return test__Loop__Sidelink__Counter__Response().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__NAS__UL__Message__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case NG__NAS__UL__Message__Type::ALT_authentication__Failure: + mp_field = single_value.field_authentication__Failure->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Failure"))); + break; + case NG__NAS__UL__Message__Type::ALT_authentication__Response: + mp_field = single_value.field_authentication__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Response"))); + break; + case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: + mp_field = single_value.field_configuration__Update__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("configuration_Update_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: + mp_field = single_value.field_cp__Service__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("cp_Service_Request"))); + break; + case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: + mp_field = single_value.field_deregistration__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deregistration_Accept"))); + break; + case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: + mp_field = single_value.field_deregistration__RequestMO->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deregistration_RequestMO"))); + break; + case NG__NAS__UL__Message__Type::ALT_gmm__Status: + mp_field = single_value.field_gmm__Status->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("gmm_Status"))); + break; + case NG__NAS__UL__Message__Type::ALT_gsm__Status: + mp_field = single_value.field_gsm__Status->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("gsm_Status"))); + break; + case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: + mp_field = single_value.field_network__Slice__Specific__Authentication__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("network_Slice_Specific_Authentication_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_identity__Response: + mp_field = single_value.field_identity__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("identity_Response"))); + break; + case NG__NAS__UL__Message__Type::ALT_notification__Response: + mp_field = single_value.field_notification__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("notification_Response"))); + break; + case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: + mp_field = single_value.field_pdu__Session__Authentication__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Authentication_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: + mp_field = single_value.field_pdu__Session__Establishment__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Establishment_Request"))); + break; + case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: + mp_field = single_value.field_pdu__Session__Modification__Command__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Command_Reject"))); + break; + case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: + mp_field = single_value.field_pdu__Session__Modification__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: + mp_field = single_value.field_pdu__Session__Modification__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Request"))); + break; + case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: + mp_field = single_value.field_pdu__Session__Release__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Release_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: + mp_field = single_value.field_pdu__Session__Release__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Release_Request"))); + break; + case NG__NAS__UL__Message__Type::ALT_registration__Complete: + mp_field = single_value.field_registration__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("registration_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_registration__Request: + mp_field = single_value.field_registration__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("registration_Request"))); + break; + case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: + mp_field = single_value.field_security__Mode__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Mode_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: + mp_field = single_value.field_security__Mode__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Mode_Reject"))); + break; + case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: + mp_field = single_value.field_security__Protected__Nas__Message->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Protected_Nas_Message"))); + break; + case NG__NAS__UL__Message__Type::ALT_service__Request: + mp_field = single_value.field_service__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("service_Request"))); + break; + case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: + mp_field = single_value.field_ul__Nas__Transport->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("ul_Nas_Transport"))); + break; + case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: + mp_field = single_value.field_activate__Test__Mode__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("activate_Test_Mode_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: + mp_field = single_value.field_deactivate__Test__Mode__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deactivate_Test_Mode_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: + mp_field = single_value.field_close__Ue__Test__Loop__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("close_Ue_Test_Loop_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: + mp_field = single_value.field_open__Ue__Test__Loop__Complete->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("open_Ue_Test_Loop_Complete"))); + break; + case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: + mp_field = single_value.field_nssai__Delete__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("nssai_Delete_Response"))); + break; + case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: + mp_field = single_value.field_set__UAI__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("set_UAI_Response"))); + break; + case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: + mp_field = single_value.field_set__UL__Message__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("set_UL_Message_Response"))); + break; + case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: + mp_field = single_value.field_test__Loop__Sidelink__Counter__Response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("test_Loop_Sidelink_Counter_Response"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NG__NAS__UL__Message__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case NG__NAS__UL__Message__Type::ALT_authentication__Failure: +single_value.field_authentication__Failure->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_authentication__Response: +single_value.field_authentication__Response->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_configuration__Update__Complete: +single_value.field_configuration__Update__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_cp__Service__Request: +single_value.field_cp__Service__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_deregistration__RequestMO: +single_value.field_deregistration__RequestMO->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_network__Slice__Specific__Authentication__Complete: +single_value.field_network__Slice__Specific__Authentication__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_identity__Response: +single_value.field_identity__Response->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_notification__Response: +single_value.field_notification__Response->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Authentication__Complete: +single_value.field_pdu__Session__Authentication__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Establishment__Request: +single_value.field_pdu__Session__Establishment__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Command__Reject: +single_value.field_pdu__Session__Modification__Command__Reject->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Complete: +single_value.field_pdu__Session__Modification__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Modification__Request: +single_value.field_pdu__Session__Modification__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Complete: +single_value.field_pdu__Session__Release__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_pdu__Session__Release__Request: +single_value.field_pdu__Session__Release__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_registration__Complete: +single_value.field_registration__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_registration__Request: +single_value.field_registration__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Complete: +single_value.field_security__Mode__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_security__Mode__Reject: +single_value.field_security__Mode__Reject->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_service__Request: +single_value.field_service__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_ul__Nas__Transport: +single_value.field_ul__Nas__Transport->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_activate__Test__Mode__Complete: +single_value.field_activate__Test__Mode__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_deactivate__Test__Mode__Complete: +single_value.field_deactivate__Test__Mode__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_close__Ue__Test__Loop__Complete: +single_value.field_close__Ue__Test__Loop__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_open__Ue__Test__Loop__Complete: +single_value.field_open__Ue__Test__Loop__Complete->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_nssai__Delete__Response: +single_value.field_nssai__Delete__Response->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_set__UAI__Response: +single_value.field_set__UAI__Response->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_set__UL__Message__Response: +single_value.field_set__UL__Message__Response->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +case NG__NAS__UL__Message__Type::ALT_test__Loop__Sidelink__Counter__Response: +single_value.field_test__Loop__Sidelink__Counter__Response->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_UL_Message_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_UL_Message_Type"); +} + +void NG__NAS__DL__Message__Type::copy_value(const NG__NAS__DL__Message__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_authentication__Reject: +field_authentication__Reject = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT(*other_value.field_authentication__Reject); +break; +case ALT_authentication__Request: +field_authentication__Request = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST(*other_value.field_authentication__Request); +break; +case ALT_authentication__Result: +field_authentication__Result = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT(*other_value.field_authentication__Result); +break; +case ALT_configuration__Update__Command: +field_configuration__Update__Command = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND(*other_value.field_configuration__Update__Command); +break; +case ALT_deregistration__Accept: +field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT(*other_value.field_deregistration__Accept); +break; +case ALT_deregistration__RequestMT: +field_deregistration__RequestMT = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT(*other_value.field_deregistration__RequestMT); +break; +case ALT_dl__Nas__Transport: +field_dl__Nas__Transport = new NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT(*other_value.field_dl__Nas__Transport); +break; +case ALT_gmm__Status: +field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS(*other_value.field_gmm__Status); +break; +case ALT_gsm__Status: +field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS(*other_value.field_gsm__Status); +break; +case ALT_identity__Request: +field_identity__Request = new NG__NAS__TypeDefs::NG__IDENTITY__REQUEST(*other_value.field_identity__Request); +break; +case ALT_network__Slice__Specific__Authentication__Command: +field_network__Slice__Specific__Authentication__Command = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND(*other_value.field_network__Slice__Specific__Authentication__Command); +break; +case ALT_network__Slice__Specific__Authentication__Result: +field_network__Slice__Specific__Authentication__Result = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT(*other_value.field_network__Slice__Specific__Authentication__Result); +break; +case ALT_notification: +field_notification = new NG__NAS__TypeDefs::NG__NOTIFICATION(*other_value.field_notification); +break; +case ALT_pdu__Session__Authentication__Command: +field_pdu__Session__Authentication__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND(*other_value.field_pdu__Session__Authentication__Command); +break; +case ALT_pdu__Session__Authentication__Result: +field_pdu__Session__Authentication__Result = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT(*other_value.field_pdu__Session__Authentication__Result); +break; +case ALT_pdu__Session__Establishment__Accept: +field_pdu__Session__Establishment__Accept = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT(*other_value.field_pdu__Session__Establishment__Accept); +break; +case ALT_pdu__Session__Establishment__Reject: +field_pdu__Session__Establishment__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT(*other_value.field_pdu__Session__Establishment__Reject); +break; +case ALT_pdu__Session__Modification__Command: +field_pdu__Session__Modification__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND(*other_value.field_pdu__Session__Modification__Command); +break; +case ALT_pdu__Session__Modification__Reject: +field_pdu__Session__Modification__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT(*other_value.field_pdu__Session__Modification__Reject); +break; +case ALT_pdu__Session__Release__Command: +field_pdu__Session__Release__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND(*other_value.field_pdu__Session__Release__Command); +break; +case ALT_pdu__Session__Release__Reject: +field_pdu__Session__Release__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT(*other_value.field_pdu__Session__Release__Reject); +break; +case ALT_registration__Accept: +field_registration__Accept = new NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT(*other_value.field_registration__Accept); +break; +case ALT_registration__Reject: +field_registration__Reject = new NG__NAS__TypeDefs::NG__REGISTRATION__REJECT(*other_value.field_registration__Reject); +break; +case ALT_security__Mode__Command: +field_security__Mode__Command = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND(*other_value.field_security__Mode__Command); +break; +case ALT_security__Protected__Nas__Message: +field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE(*other_value.field_security__Protected__Nas__Message); +break; +case ALT_service__Accept: +field_service__Accept = new NG__NAS__TypeDefs::NG__SERVICE__ACCEPT(*other_value.field_service__Accept); +break; +case ALT_service__Reject: +field_service__Reject = new NG__NAS__TypeDefs::NG__SERVICE__REJECT(*other_value.field_service__Reject); +break; +case ALT_reset__UE__Positioning__Stored__Information: +field_reset__UE__Positioning__Stored__Information = new NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION(*other_value.field_reset__UE__Positioning__Stored__Information); +break; +case ALT_activate__Test__Mode: +field_activate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE(*other_value.field_activate__Test__Mode); +break; +case ALT_deactivate__Test__Mode: +field_deactivate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE(*other_value.field_deactivate__Test__Mode); +break; +case ALT_close__Ue__Test__Loop: +field_close__Ue__Test__Loop = new Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP(*other_value.field_close__Ue__Test__Loop); +break; +case ALT_open__Ue__Test__Loop: +field_open__Ue__Test__Loop = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP(*other_value.field_open__Ue__Test__Loop); +break; +case ALT_nssai__Delete__Request: +field_nssai__Delete__Request = new NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST(*other_value.field_nssai__Delete__Request); +break; +case ALT_set__UAI__Request: +field_set__UAI__Request = new NG__NAS__TypeDefs::SET__UAI__REQUEST(*other_value.field_set__UAI__Request); +break; +case ALT_set__UL__Message__Request: +field_set__UL__Message__Request = new Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST(*other_value.field_set__UL__Message__Request); +break; +case ALT_test__Loop__Sidelink__Counter__Request: +field_test__Loop__Sidelink__Counter__Request = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST(*other_value.field_test__Loop__Sidelink__Counter__Request); +break; +case ALT_update__Ue__Location__Information: +field_update__Ue__Location__Information = new EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION(*other_value.field_update__Ue__Location__Information); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +NG__NAS__DL__Message__Type::NG__NAS__DL__Message__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +NG__NAS__DL__Message__Type::NG__NAS__DL__Message__Type(const NG__NAS__DL__Message__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +NG__NAS__DL__Message__Type::~NG__NAS__DL__Message__Type() +{ +clean_up(); +} + +NG__NAS__DL__Message__Type& NG__NAS__DL__Message__Type::operator=(const NG__NAS__DL__Message__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean NG__NAS__DL__Message__Type::operator==(const NG__NAS__DL__Message__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_authentication__Reject: +return *field_authentication__Reject == *other_value.field_authentication__Reject; +case ALT_authentication__Request: +return *field_authentication__Request == *other_value.field_authentication__Request; +case ALT_authentication__Result: +return *field_authentication__Result == *other_value.field_authentication__Result; +case ALT_configuration__Update__Command: +return *field_configuration__Update__Command == *other_value.field_configuration__Update__Command; +case ALT_deregistration__Accept: +return *field_deregistration__Accept == *other_value.field_deregistration__Accept; +case ALT_deregistration__RequestMT: +return *field_deregistration__RequestMT == *other_value.field_deregistration__RequestMT; +case ALT_dl__Nas__Transport: +return *field_dl__Nas__Transport == *other_value.field_dl__Nas__Transport; +case ALT_gmm__Status: +return *field_gmm__Status == *other_value.field_gmm__Status; +case ALT_gsm__Status: +return *field_gsm__Status == *other_value.field_gsm__Status; +case ALT_identity__Request: +return *field_identity__Request == *other_value.field_identity__Request; +case ALT_network__Slice__Specific__Authentication__Command: +return *field_network__Slice__Specific__Authentication__Command == *other_value.field_network__Slice__Specific__Authentication__Command; +case ALT_network__Slice__Specific__Authentication__Result: +return *field_network__Slice__Specific__Authentication__Result == *other_value.field_network__Slice__Specific__Authentication__Result; +case ALT_notification: +return *field_notification == *other_value.field_notification; +case ALT_pdu__Session__Authentication__Command: +return *field_pdu__Session__Authentication__Command == *other_value.field_pdu__Session__Authentication__Command; +case ALT_pdu__Session__Authentication__Result: +return *field_pdu__Session__Authentication__Result == *other_value.field_pdu__Session__Authentication__Result; +case ALT_pdu__Session__Establishment__Accept: +return *field_pdu__Session__Establishment__Accept == *other_value.field_pdu__Session__Establishment__Accept; +case ALT_pdu__Session__Establishment__Reject: +return *field_pdu__Session__Establishment__Reject == *other_value.field_pdu__Session__Establishment__Reject; +case ALT_pdu__Session__Modification__Command: +return *field_pdu__Session__Modification__Command == *other_value.field_pdu__Session__Modification__Command; +case ALT_pdu__Session__Modification__Reject: +return *field_pdu__Session__Modification__Reject == *other_value.field_pdu__Session__Modification__Reject; +case ALT_pdu__Session__Release__Command: +return *field_pdu__Session__Release__Command == *other_value.field_pdu__Session__Release__Command; +case ALT_pdu__Session__Release__Reject: +return *field_pdu__Session__Release__Reject == *other_value.field_pdu__Session__Release__Reject; +case ALT_registration__Accept: +return *field_registration__Accept == *other_value.field_registration__Accept; +case ALT_registration__Reject: +return *field_registration__Reject == *other_value.field_registration__Reject; +case ALT_security__Mode__Command: +return *field_security__Mode__Command == *other_value.field_security__Mode__Command; +case ALT_security__Protected__Nas__Message: +return *field_security__Protected__Nas__Message == *other_value.field_security__Protected__Nas__Message; +case ALT_service__Accept: +return *field_service__Accept == *other_value.field_service__Accept; +case ALT_service__Reject: +return *field_service__Reject == *other_value.field_service__Reject; +case ALT_reset__UE__Positioning__Stored__Information: +return *field_reset__UE__Positioning__Stored__Information == *other_value.field_reset__UE__Positioning__Stored__Information; +case ALT_activate__Test__Mode: +return *field_activate__Test__Mode == *other_value.field_activate__Test__Mode; +case ALT_deactivate__Test__Mode: +return *field_deactivate__Test__Mode == *other_value.field_deactivate__Test__Mode; +case ALT_close__Ue__Test__Loop: +return *field_close__Ue__Test__Loop == *other_value.field_close__Ue__Test__Loop; +case ALT_open__Ue__Test__Loop: +return *field_open__Ue__Test__Loop == *other_value.field_open__Ue__Test__Loop; +case ALT_nssai__Delete__Request: +return *field_nssai__Delete__Request == *other_value.field_nssai__Delete__Request; +case ALT_set__UAI__Request: +return *field_set__UAI__Request == *other_value.field_set__UAI__Request; +case ALT_set__UL__Message__Request: +return *field_set__UL__Message__Request == *other_value.field_set__UL__Message__Request; +case ALT_test__Loop__Sidelink__Counter__Request: +return *field_test__Loop__Sidelink__Counter__Request == *other_value.field_test__Loop__Sidelink__Counter__Request; +case ALT_update__Ue__Location__Information: +return *field_update__Ue__Location__Information == *other_value.field_update__Ue__Location__Information; +default: +return FALSE; +} +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT& NG__NAS__DL__Message__Type::authentication__Reject() +{ +if (union_selection != ALT_authentication__Reject) { +clean_up(); +field_authentication__Reject = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT; +union_selection = ALT_authentication__Reject; +} +return *field_authentication__Reject; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT& NG__NAS__DL__Message__Type::authentication__Reject() const +{ +if (union_selection != ALT_authentication__Reject) TTCN_error("Using non-selected field authentication_Reject in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_authentication__Reject; +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST& NG__NAS__DL__Message__Type::authentication__Request() +{ +if (union_selection != ALT_authentication__Request) { +clean_up(); +field_authentication__Request = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST; +union_selection = ALT_authentication__Request; +} +return *field_authentication__Request; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST& NG__NAS__DL__Message__Type::authentication__Request() const +{ +if (union_selection != ALT_authentication__Request) TTCN_error("Using non-selected field authentication_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_authentication__Request; +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT& NG__NAS__DL__Message__Type::authentication__Result() +{ +if (union_selection != ALT_authentication__Result) { +clean_up(); +field_authentication__Result = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT; +union_selection = ALT_authentication__Result; +} +return *field_authentication__Result; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT& NG__NAS__DL__Message__Type::authentication__Result() const +{ +if (union_selection != ALT_authentication__Result) TTCN_error("Using non-selected field authentication_Result in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_authentication__Result; +} + +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND& NG__NAS__DL__Message__Type::configuration__Update__Command() +{ +if (union_selection != ALT_configuration__Update__Command) { +clean_up(); +field_configuration__Update__Command = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND; +union_selection = ALT_configuration__Update__Command; +} +return *field_configuration__Update__Command; +} + +const NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND& NG__NAS__DL__Message__Type::configuration__Update__Command() const +{ +if (union_selection != ALT_configuration__Update__Command) TTCN_error("Using non-selected field configuration_Update_Command in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_configuration__Update__Command; +} + +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT& NG__NAS__DL__Message__Type::deregistration__Accept() +{ +if (union_selection != ALT_deregistration__Accept) { +clean_up(); +field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT; +union_selection = ALT_deregistration__Accept; +} +return *field_deregistration__Accept; +} + +const NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT& NG__NAS__DL__Message__Type::deregistration__Accept() const +{ +if (union_selection != ALT_deregistration__Accept) TTCN_error("Using non-selected field deregistration_Accept in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_deregistration__Accept; +} + +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT& NG__NAS__DL__Message__Type::deregistration__RequestMT() +{ +if (union_selection != ALT_deregistration__RequestMT) { +clean_up(); +field_deregistration__RequestMT = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT; +union_selection = ALT_deregistration__RequestMT; +} +return *field_deregistration__RequestMT; +} + +const NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT& NG__NAS__DL__Message__Type::deregistration__RequestMT() const +{ +if (union_selection != ALT_deregistration__RequestMT) TTCN_error("Using non-selected field deregistration_RequestMT in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_deregistration__RequestMT; +} + +NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT& NG__NAS__DL__Message__Type::dl__Nas__Transport() +{ +if (union_selection != ALT_dl__Nas__Transport) { +clean_up(); +field_dl__Nas__Transport = new NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT; +union_selection = ALT_dl__Nas__Transport; +} +return *field_dl__Nas__Transport; +} + +const NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT& NG__NAS__DL__Message__Type::dl__Nas__Transport() const +{ +if (union_selection != ALT_dl__Nas__Transport) TTCN_error("Using non-selected field dl_Nas_Transport in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_dl__Nas__Transport; +} + +NG__NAS__TypeDefs::NG__GMM__STATUS& NG__NAS__DL__Message__Type::gmm__Status() +{ +if (union_selection != ALT_gmm__Status) { +clean_up(); +field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS; +union_selection = ALT_gmm__Status; +} +return *field_gmm__Status; +} + +const NG__NAS__TypeDefs::NG__GMM__STATUS& NG__NAS__DL__Message__Type::gmm__Status() const +{ +if (union_selection != ALT_gmm__Status) TTCN_error("Using non-selected field gmm_Status in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_gmm__Status; +} + +NG__NAS__TypeDefs::NG__GSM__STATUS& NG__NAS__DL__Message__Type::gsm__Status() +{ +if (union_selection != ALT_gsm__Status) { +clean_up(); +field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS; +union_selection = ALT_gsm__Status; +} +return *field_gsm__Status; +} + +const NG__NAS__TypeDefs::NG__GSM__STATUS& NG__NAS__DL__Message__Type::gsm__Status() const +{ +if (union_selection != ALT_gsm__Status) TTCN_error("Using non-selected field gsm_Status in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_gsm__Status; +} + +NG__NAS__TypeDefs::NG__IDENTITY__REQUEST& NG__NAS__DL__Message__Type::identity__Request() +{ +if (union_selection != ALT_identity__Request) { +clean_up(); +field_identity__Request = new NG__NAS__TypeDefs::NG__IDENTITY__REQUEST; +union_selection = ALT_identity__Request; +} +return *field_identity__Request; +} + +const NG__NAS__TypeDefs::NG__IDENTITY__REQUEST& NG__NAS__DL__Message__Type::identity__Request() const +{ +if (union_selection != ALT_identity__Request) TTCN_error("Using non-selected field identity_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_identity__Request; +} + +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& NG__NAS__DL__Message__Type::network__Slice__Specific__Authentication__Command() +{ +if (union_selection != ALT_network__Slice__Specific__Authentication__Command) { +clean_up(); +field_network__Slice__Specific__Authentication__Command = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND; +union_selection = ALT_network__Slice__Specific__Authentication__Command; +} +return *field_network__Slice__Specific__Authentication__Command; +} + +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& NG__NAS__DL__Message__Type::network__Slice__Specific__Authentication__Command() const +{ +if (union_selection != ALT_network__Slice__Specific__Authentication__Command) TTCN_error("Using non-selected field network_Slice_Specific_Authentication_Command in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_network__Slice__Specific__Authentication__Command; +} + +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& NG__NAS__DL__Message__Type::network__Slice__Specific__Authentication__Result() +{ +if (union_selection != ALT_network__Slice__Specific__Authentication__Result) { +clean_up(); +field_network__Slice__Specific__Authentication__Result = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT; +union_selection = ALT_network__Slice__Specific__Authentication__Result; +} +return *field_network__Slice__Specific__Authentication__Result; +} + +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& NG__NAS__DL__Message__Type::network__Slice__Specific__Authentication__Result() const +{ +if (union_selection != ALT_network__Slice__Specific__Authentication__Result) TTCN_error("Using non-selected field network_Slice_Specific_Authentication_Result in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_network__Slice__Specific__Authentication__Result; +} + +NG__NAS__TypeDefs::NG__NOTIFICATION& NG__NAS__DL__Message__Type::notification() +{ +if (union_selection != ALT_notification) { +clean_up(); +field_notification = new NG__NAS__TypeDefs::NG__NOTIFICATION; +union_selection = ALT_notification; +} +return *field_notification; +} + +const NG__NAS__TypeDefs::NG__NOTIFICATION& NG__NAS__DL__Message__Type::notification() const +{ +if (union_selection != ALT_notification) TTCN_error("Using non-selected field notification in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_notification; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND& NG__NAS__DL__Message__Type::pdu__Session__Authentication__Command() +{ +if (union_selection != ALT_pdu__Session__Authentication__Command) { +clean_up(); +field_pdu__Session__Authentication__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND; +union_selection = ALT_pdu__Session__Authentication__Command; +} +return *field_pdu__Session__Authentication__Command; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND& NG__NAS__DL__Message__Type::pdu__Session__Authentication__Command() const +{ +if (union_selection != ALT_pdu__Session__Authentication__Command) TTCN_error("Using non-selected field pdu_Session_Authentication_Command in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_pdu__Session__Authentication__Command; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT& NG__NAS__DL__Message__Type::pdu__Session__Authentication__Result() +{ +if (union_selection != ALT_pdu__Session__Authentication__Result) { +clean_up(); +field_pdu__Session__Authentication__Result = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT; +union_selection = ALT_pdu__Session__Authentication__Result; +} +return *field_pdu__Session__Authentication__Result; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT& NG__NAS__DL__Message__Type::pdu__Session__Authentication__Result() const +{ +if (union_selection != ALT_pdu__Session__Authentication__Result) TTCN_error("Using non-selected field pdu_Session_Authentication_Result in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_pdu__Session__Authentication__Result; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& NG__NAS__DL__Message__Type::pdu__Session__Establishment__Accept() +{ +if (union_selection != ALT_pdu__Session__Establishment__Accept) { +clean_up(); +field_pdu__Session__Establishment__Accept = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT; +union_selection = ALT_pdu__Session__Establishment__Accept; +} +return *field_pdu__Session__Establishment__Accept; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& NG__NAS__DL__Message__Type::pdu__Session__Establishment__Accept() const +{ +if (union_selection != ALT_pdu__Session__Establishment__Accept) TTCN_error("Using non-selected field pdu_Session_Establishment_Accept in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_pdu__Session__Establishment__Accept; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT& NG__NAS__DL__Message__Type::pdu__Session__Establishment__Reject() +{ +if (union_selection != ALT_pdu__Session__Establishment__Reject) { +clean_up(); +field_pdu__Session__Establishment__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT; +union_selection = ALT_pdu__Session__Establishment__Reject; +} +return *field_pdu__Session__Establishment__Reject; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT& NG__NAS__DL__Message__Type::pdu__Session__Establishment__Reject() const +{ +if (union_selection != ALT_pdu__Session__Establishment__Reject) TTCN_error("Using non-selected field pdu_Session_Establishment_Reject in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_pdu__Session__Establishment__Reject; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND& NG__NAS__DL__Message__Type::pdu__Session__Modification__Command() +{ +if (union_selection != ALT_pdu__Session__Modification__Command) { +clean_up(); +field_pdu__Session__Modification__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND; +union_selection = ALT_pdu__Session__Modification__Command; +} +return *field_pdu__Session__Modification__Command; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND& NG__NAS__DL__Message__Type::pdu__Session__Modification__Command() const +{ +if (union_selection != ALT_pdu__Session__Modification__Command) TTCN_error("Using non-selected field pdu_Session_Modification_Command in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_pdu__Session__Modification__Command; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT& NG__NAS__DL__Message__Type::pdu__Session__Modification__Reject() +{ +if (union_selection != ALT_pdu__Session__Modification__Reject) { +clean_up(); +field_pdu__Session__Modification__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT; +union_selection = ALT_pdu__Session__Modification__Reject; +} +return *field_pdu__Session__Modification__Reject; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT& NG__NAS__DL__Message__Type::pdu__Session__Modification__Reject() const +{ +if (union_selection != ALT_pdu__Session__Modification__Reject) TTCN_error("Using non-selected field pdu_Session_Modification_Reject in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_pdu__Session__Modification__Reject; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND& NG__NAS__DL__Message__Type::pdu__Session__Release__Command() +{ +if (union_selection != ALT_pdu__Session__Release__Command) { +clean_up(); +field_pdu__Session__Release__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND; +union_selection = ALT_pdu__Session__Release__Command; +} +return *field_pdu__Session__Release__Command; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND& NG__NAS__DL__Message__Type::pdu__Session__Release__Command() const +{ +if (union_selection != ALT_pdu__Session__Release__Command) TTCN_error("Using non-selected field pdu_Session_Release_Command in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_pdu__Session__Release__Command; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT& NG__NAS__DL__Message__Type::pdu__Session__Release__Reject() +{ +if (union_selection != ALT_pdu__Session__Release__Reject) { +clean_up(); +field_pdu__Session__Release__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT; +union_selection = ALT_pdu__Session__Release__Reject; +} +return *field_pdu__Session__Release__Reject; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT& NG__NAS__DL__Message__Type::pdu__Session__Release__Reject() const +{ +if (union_selection != ALT_pdu__Session__Release__Reject) TTCN_error("Using non-selected field pdu_Session_Release_Reject in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_pdu__Session__Release__Reject; +} + +NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT& NG__NAS__DL__Message__Type::registration__Accept() +{ +if (union_selection != ALT_registration__Accept) { +clean_up(); +field_registration__Accept = new NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT; +union_selection = ALT_registration__Accept; +} +return *field_registration__Accept; +} + +const NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT& NG__NAS__DL__Message__Type::registration__Accept() const +{ +if (union_selection != ALT_registration__Accept) TTCN_error("Using non-selected field registration_Accept in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_registration__Accept; +} + +NG__NAS__TypeDefs::NG__REGISTRATION__REJECT& NG__NAS__DL__Message__Type::registration__Reject() +{ +if (union_selection != ALT_registration__Reject) { +clean_up(); +field_registration__Reject = new NG__NAS__TypeDefs::NG__REGISTRATION__REJECT; +union_selection = ALT_registration__Reject; +} +return *field_registration__Reject; +} + +const NG__NAS__TypeDefs::NG__REGISTRATION__REJECT& NG__NAS__DL__Message__Type::registration__Reject() const +{ +if (union_selection != ALT_registration__Reject) TTCN_error("Using non-selected field registration_Reject in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_registration__Reject; +} + +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND& NG__NAS__DL__Message__Type::security__Mode__Command() +{ +if (union_selection != ALT_security__Mode__Command) { +clean_up(); +field_security__Mode__Command = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND; +union_selection = ALT_security__Mode__Command; +} +return *field_security__Mode__Command; +} + +const NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND& NG__NAS__DL__Message__Type::security__Mode__Command() const +{ +if (union_selection != ALT_security__Mode__Command) TTCN_error("Using non-selected field security_Mode_Command in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_security__Mode__Command; +} + +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE& NG__NAS__DL__Message__Type::security__Protected__Nas__Message() +{ +if (union_selection != ALT_security__Protected__Nas__Message) { +clean_up(); +field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE; +union_selection = ALT_security__Protected__Nas__Message; +} +return *field_security__Protected__Nas__Message; +} + +const NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE& NG__NAS__DL__Message__Type::security__Protected__Nas__Message() const +{ +if (union_selection != ALT_security__Protected__Nas__Message) TTCN_error("Using non-selected field security_Protected_Nas_Message in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_security__Protected__Nas__Message; +} + +NG__NAS__TypeDefs::NG__SERVICE__ACCEPT& NG__NAS__DL__Message__Type::service__Accept() +{ +if (union_selection != ALT_service__Accept) { +clean_up(); +field_service__Accept = new NG__NAS__TypeDefs::NG__SERVICE__ACCEPT; +union_selection = ALT_service__Accept; +} +return *field_service__Accept; +} + +const NG__NAS__TypeDefs::NG__SERVICE__ACCEPT& NG__NAS__DL__Message__Type::service__Accept() const +{ +if (union_selection != ALT_service__Accept) TTCN_error("Using non-selected field service_Accept in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_service__Accept; +} + +NG__NAS__TypeDefs::NG__SERVICE__REJECT& NG__NAS__DL__Message__Type::service__Reject() +{ +if (union_selection != ALT_service__Reject) { +clean_up(); +field_service__Reject = new NG__NAS__TypeDefs::NG__SERVICE__REJECT; +union_selection = ALT_service__Reject; +} +return *field_service__Reject; +} + +const NG__NAS__TypeDefs::NG__SERVICE__REJECT& NG__NAS__DL__Message__Type::service__Reject() const +{ +if (union_selection != ALT_service__Reject) TTCN_error("Using non-selected field service_Reject in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_service__Reject; +} + +NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION& NG__NAS__DL__Message__Type::reset__UE__Positioning__Stored__Information() +{ +if (union_selection != ALT_reset__UE__Positioning__Stored__Information) { +clean_up(); +field_reset__UE__Positioning__Stored__Information = new NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION; +union_selection = ALT_reset__UE__Positioning__Stored__Information; +} +return *field_reset__UE__Positioning__Stored__Information; +} + +const NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION& NG__NAS__DL__Message__Type::reset__UE__Positioning__Stored__Information() const +{ +if (union_selection != ALT_reset__UE__Positioning__Stored__Information) TTCN_error("Using non-selected field reset_UE_Positioning_Stored_Information in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_reset__UE__Positioning__Stored__Information; +} + +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE& NG__NAS__DL__Message__Type::activate__Test__Mode() +{ +if (union_selection != ALT_activate__Test__Mode) { +clean_up(); +field_activate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE; +union_selection = ALT_activate__Test__Mode; +} +return *field_activate__Test__Mode; +} + +const EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE& NG__NAS__DL__Message__Type::activate__Test__Mode() const +{ +if (union_selection != ALT_activate__Test__Mode) TTCN_error("Using non-selected field activate_Test_Mode in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_activate__Test__Mode; +} + +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE& NG__NAS__DL__Message__Type::deactivate__Test__Mode() +{ +if (union_selection != ALT_deactivate__Test__Mode) { +clean_up(); +field_deactivate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE; +union_selection = ALT_deactivate__Test__Mode; +} +return *field_deactivate__Test__Mode; +} + +const EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE& NG__NAS__DL__Message__Type::deactivate__Test__Mode() const +{ +if (union_selection != ALT_deactivate__Test__Mode) TTCN_error("Using non-selected field deactivate_Test_Mode in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_deactivate__Test__Mode; +} + +Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP& NG__NAS__DL__Message__Type::close__Ue__Test__Loop() +{ +if (union_selection != ALT_close__Ue__Test__Loop) { +clean_up(); +field_close__Ue__Test__Loop = new Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP; +union_selection = ALT_close__Ue__Test__Loop; +} +return *field_close__Ue__Test__Loop; +} + +const Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP& NG__NAS__DL__Message__Type::close__Ue__Test__Loop() const +{ +if (union_selection != ALT_close__Ue__Test__Loop) TTCN_error("Using non-selected field close_Ue_Test_Loop in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_close__Ue__Test__Loop; +} + +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP& NG__NAS__DL__Message__Type::open__Ue__Test__Loop() +{ +if (union_selection != ALT_open__Ue__Test__Loop) { +clean_up(); +field_open__Ue__Test__Loop = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP; +union_selection = ALT_open__Ue__Test__Loop; +} +return *field_open__Ue__Test__Loop; +} + +const EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP& NG__NAS__DL__Message__Type::open__Ue__Test__Loop() const +{ +if (union_selection != ALT_open__Ue__Test__Loop) TTCN_error("Using non-selected field open_Ue_Test_Loop in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_open__Ue__Test__Loop; +} + +NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST& NG__NAS__DL__Message__Type::nssai__Delete__Request() +{ +if (union_selection != ALT_nssai__Delete__Request) { +clean_up(); +field_nssai__Delete__Request = new NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST; +union_selection = ALT_nssai__Delete__Request; +} +return *field_nssai__Delete__Request; +} + +const NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST& NG__NAS__DL__Message__Type::nssai__Delete__Request() const +{ +if (union_selection != ALT_nssai__Delete__Request) TTCN_error("Using non-selected field nssai_Delete_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_nssai__Delete__Request; +} + +NG__NAS__TypeDefs::SET__UAI__REQUEST& NG__NAS__DL__Message__Type::set__UAI__Request() +{ +if (union_selection != ALT_set__UAI__Request) { +clean_up(); +field_set__UAI__Request = new NG__NAS__TypeDefs::SET__UAI__REQUEST; +union_selection = ALT_set__UAI__Request; +} +return *field_set__UAI__Request; +} + +const NG__NAS__TypeDefs::SET__UAI__REQUEST& NG__NAS__DL__Message__Type::set__UAI__Request() const +{ +if (union_selection != ALT_set__UAI__Request) TTCN_error("Using non-selected field set_UAI_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_set__UAI__Request; +} + +Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST& NG__NAS__DL__Message__Type::set__UL__Message__Request() +{ +if (union_selection != ALT_set__UL__Message__Request) { +clean_up(); +field_set__UL__Message__Request = new Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST; +union_selection = ALT_set__UL__Message__Request; +} +return *field_set__UL__Message__Request; +} + +const Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST& NG__NAS__DL__Message__Type::set__UL__Message__Request() const +{ +if (union_selection != ALT_set__UL__Message__Request) TTCN_error("Using non-selected field set_UL_Message_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_set__UL__Message__Request; +} + +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& NG__NAS__DL__Message__Type::test__Loop__Sidelink__Counter__Request() +{ +if (union_selection != ALT_test__Loop__Sidelink__Counter__Request) { +clean_up(); +field_test__Loop__Sidelink__Counter__Request = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST; +union_selection = ALT_test__Loop__Sidelink__Counter__Request; +} +return *field_test__Loop__Sidelink__Counter__Request; +} + +const NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& NG__NAS__DL__Message__Type::test__Loop__Sidelink__Counter__Request() const +{ +if (union_selection != ALT_test__Loop__Sidelink__Counter__Request) TTCN_error("Using non-selected field test_Loop_Sidelink_Counter_Request in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_test__Loop__Sidelink__Counter__Request; +} + +EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION& NG__NAS__DL__Message__Type::update__Ue__Location__Information() +{ +if (union_selection != ALT_update__Ue__Location__Information) { +clean_up(); +field_update__Ue__Location__Information = new EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION; +union_selection = ALT_update__Ue__Location__Information; +} +return *field_update__Ue__Location__Information; +} + +const EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION& NG__NAS__DL__Message__Type::update__Ue__Location__Information() const +{ +if (union_selection != ALT_update__Ue__Location__Information) TTCN_error("Using non-selected field update_Ue_Location_Information in a value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *field_update__Ue__Location__Information; +} + +boolean NG__NAS__DL__Message__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return union_selection == checked_selection; +} + +boolean NG__NAS__DL__Message__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean NG__NAS__DL__Message__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_authentication__Reject: return field_authentication__Reject->is_value(); +case ALT_authentication__Request: return field_authentication__Request->is_value(); +case ALT_authentication__Result: return field_authentication__Result->is_value(); +case ALT_configuration__Update__Command: return field_configuration__Update__Command->is_value(); +case ALT_deregistration__Accept: return field_deregistration__Accept->is_value(); +case ALT_deregistration__RequestMT: return field_deregistration__RequestMT->is_value(); +case ALT_dl__Nas__Transport: return field_dl__Nas__Transport->is_value(); +case ALT_gmm__Status: return field_gmm__Status->is_value(); +case ALT_gsm__Status: return field_gsm__Status->is_value(); +case ALT_identity__Request: return field_identity__Request->is_value(); +case ALT_network__Slice__Specific__Authentication__Command: return field_network__Slice__Specific__Authentication__Command->is_value(); +case ALT_network__Slice__Specific__Authentication__Result: return field_network__Slice__Specific__Authentication__Result->is_value(); +case ALT_notification: return field_notification->is_value(); +case ALT_pdu__Session__Authentication__Command: return field_pdu__Session__Authentication__Command->is_value(); +case ALT_pdu__Session__Authentication__Result: return field_pdu__Session__Authentication__Result->is_value(); +case ALT_pdu__Session__Establishment__Accept: return field_pdu__Session__Establishment__Accept->is_value(); +case ALT_pdu__Session__Establishment__Reject: return field_pdu__Session__Establishment__Reject->is_value(); +case ALT_pdu__Session__Modification__Command: return field_pdu__Session__Modification__Command->is_value(); +case ALT_pdu__Session__Modification__Reject: return field_pdu__Session__Modification__Reject->is_value(); +case ALT_pdu__Session__Release__Command: return field_pdu__Session__Release__Command->is_value(); +case ALT_pdu__Session__Release__Reject: return field_pdu__Session__Release__Reject->is_value(); +case ALT_registration__Accept: return field_registration__Accept->is_value(); +case ALT_registration__Reject: return field_registration__Reject->is_value(); +case ALT_security__Mode__Command: return field_security__Mode__Command->is_value(); +case ALT_security__Protected__Nas__Message: return field_security__Protected__Nas__Message->is_value(); +case ALT_service__Accept: return field_service__Accept->is_value(); +case ALT_service__Reject: return field_service__Reject->is_value(); +case ALT_reset__UE__Positioning__Stored__Information: return field_reset__UE__Positioning__Stored__Information->is_value(); +case ALT_activate__Test__Mode: return field_activate__Test__Mode->is_value(); +case ALT_deactivate__Test__Mode: return field_deactivate__Test__Mode->is_value(); +case ALT_close__Ue__Test__Loop: return field_close__Ue__Test__Loop->is_value(); +case ALT_open__Ue__Test__Loop: return field_open__Ue__Test__Loop->is_value(); +case ALT_nssai__Delete__Request: return field_nssai__Delete__Request->is_value(); +case ALT_set__UAI__Request: return field_set__UAI__Request->is_value(); +case ALT_set__UL__Message__Request: return field_set__UL__Message__Request->is_value(); +case ALT_test__Loop__Sidelink__Counter__Request: return field_test__Loop__Sidelink__Counter__Request->is_value(); +case ALT_update__Ue__Location__Information: return field_update__Ue__Location__Information->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void NG__NAS__DL__Message__Type::clean_up() +{ +switch (union_selection) { +case ALT_authentication__Reject: + delete field_authentication__Reject; + break; +case ALT_authentication__Request: + delete field_authentication__Request; + break; +case ALT_authentication__Result: + delete field_authentication__Result; + break; +case ALT_configuration__Update__Command: + delete field_configuration__Update__Command; + break; +case ALT_deregistration__Accept: + delete field_deregistration__Accept; + break; +case ALT_deregistration__RequestMT: + delete field_deregistration__RequestMT; + break; +case ALT_dl__Nas__Transport: + delete field_dl__Nas__Transport; + break; +case ALT_gmm__Status: + delete field_gmm__Status; + break; +case ALT_gsm__Status: + delete field_gsm__Status; + break; +case ALT_identity__Request: + delete field_identity__Request; + break; +case ALT_network__Slice__Specific__Authentication__Command: + delete field_network__Slice__Specific__Authentication__Command; + break; +case ALT_network__Slice__Specific__Authentication__Result: + delete field_network__Slice__Specific__Authentication__Result; + break; +case ALT_notification: + delete field_notification; + break; +case ALT_pdu__Session__Authentication__Command: + delete field_pdu__Session__Authentication__Command; + break; +case ALT_pdu__Session__Authentication__Result: + delete field_pdu__Session__Authentication__Result; + break; +case ALT_pdu__Session__Establishment__Accept: + delete field_pdu__Session__Establishment__Accept; + break; +case ALT_pdu__Session__Establishment__Reject: + delete field_pdu__Session__Establishment__Reject; + break; +case ALT_pdu__Session__Modification__Command: + delete field_pdu__Session__Modification__Command; + break; +case ALT_pdu__Session__Modification__Reject: + delete field_pdu__Session__Modification__Reject; + break; +case ALT_pdu__Session__Release__Command: + delete field_pdu__Session__Release__Command; + break; +case ALT_pdu__Session__Release__Reject: + delete field_pdu__Session__Release__Reject; + break; +case ALT_registration__Accept: + delete field_registration__Accept; + break; +case ALT_registration__Reject: + delete field_registration__Reject; + break; +case ALT_security__Mode__Command: + delete field_security__Mode__Command; + break; +case ALT_security__Protected__Nas__Message: + delete field_security__Protected__Nas__Message; + break; +case ALT_service__Accept: + delete field_service__Accept; + break; +case ALT_service__Reject: + delete field_service__Reject; + break; +case ALT_reset__UE__Positioning__Stored__Information: + delete field_reset__UE__Positioning__Stored__Information; + break; +case ALT_activate__Test__Mode: + delete field_activate__Test__Mode; + break; +case ALT_deactivate__Test__Mode: + delete field_deactivate__Test__Mode; + break; +case ALT_close__Ue__Test__Loop: + delete field_close__Ue__Test__Loop; + break; +case ALT_open__Ue__Test__Loop: + delete field_open__Ue__Test__Loop; + break; +case ALT_nssai__Delete__Request: + delete field_nssai__Delete__Request; + break; +case ALT_set__UAI__Request: + delete field_set__UAI__Request; + break; +case ALT_set__UL__Message__Request: + delete field_set__UL__Message__Request; + break; +case ALT_test__Loop__Sidelink__Counter__Request: + delete field_test__Loop__Sidelink__Counter__Request; + break; +case ALT_update__Ue__Location__Information: + delete field_update__Ue__Location__Information; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean NG__NAS__DL__Message__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NG__NAS__DL__Message__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NG__NAS__DL__Message__Type::clone() const { return new NG__NAS__DL__Message__Type(*this); } +const TTCN_Typedescriptor_t* NG__NAS__DL__Message__Type::get_descriptor() const { return &NG__NAS__DL__Message__Type_descr_; } +void NG__NAS__DL__Message__Type::log() const +{ +switch (union_selection) { +case ALT_authentication__Reject: +TTCN_Logger::log_event_str("{ authentication_Reject := "); +field_authentication__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_authentication__Request: +TTCN_Logger::log_event_str("{ authentication_Request := "); +field_authentication__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_authentication__Result: +TTCN_Logger::log_event_str("{ authentication_Result := "); +field_authentication__Result->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_configuration__Update__Command: +TTCN_Logger::log_event_str("{ configuration_Update_Command := "); +field_configuration__Update__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_deregistration__Accept: +TTCN_Logger::log_event_str("{ deregistration_Accept := "); +field_deregistration__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_deregistration__RequestMT: +TTCN_Logger::log_event_str("{ deregistration_RequestMT := "); +field_deregistration__RequestMT->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_dl__Nas__Transport: +TTCN_Logger::log_event_str("{ dl_Nas_Transport := "); +field_dl__Nas__Transport->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_gmm__Status: +TTCN_Logger::log_event_str("{ gmm_Status := "); +field_gmm__Status->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_gsm__Status: +TTCN_Logger::log_event_str("{ gsm_Status := "); +field_gsm__Status->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_identity__Request: +TTCN_Logger::log_event_str("{ identity_Request := "); +field_identity__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_network__Slice__Specific__Authentication__Command: +TTCN_Logger::log_event_str("{ network_Slice_Specific_Authentication_Command := "); +field_network__Slice__Specific__Authentication__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_network__Slice__Specific__Authentication__Result: +TTCN_Logger::log_event_str("{ network_Slice_Specific_Authentication_Result := "); +field_network__Slice__Specific__Authentication__Result->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_notification: +TTCN_Logger::log_event_str("{ notification := "); +field_notification->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Authentication__Command: +TTCN_Logger::log_event_str("{ pdu_Session_Authentication_Command := "); +field_pdu__Session__Authentication__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Authentication__Result: +TTCN_Logger::log_event_str("{ pdu_Session_Authentication_Result := "); +field_pdu__Session__Authentication__Result->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Establishment__Accept: +TTCN_Logger::log_event_str("{ pdu_Session_Establishment_Accept := "); +field_pdu__Session__Establishment__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Establishment__Reject: +TTCN_Logger::log_event_str("{ pdu_Session_Establishment_Reject := "); +field_pdu__Session__Establishment__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Modification__Command: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Command := "); +field_pdu__Session__Modification__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Modification__Reject: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Reject := "); +field_pdu__Session__Modification__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Release__Command: +TTCN_Logger::log_event_str("{ pdu_Session_Release_Command := "); +field_pdu__Session__Release__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pdu__Session__Release__Reject: +TTCN_Logger::log_event_str("{ pdu_Session_Release_Reject := "); +field_pdu__Session__Release__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_registration__Accept: +TTCN_Logger::log_event_str("{ registration_Accept := "); +field_registration__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_registration__Reject: +TTCN_Logger::log_event_str("{ registration_Reject := "); +field_registration__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_security__Mode__Command: +TTCN_Logger::log_event_str("{ security_Mode_Command := "); +field_security__Mode__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_security__Protected__Nas__Message: +TTCN_Logger::log_event_str("{ security_Protected_Nas_Message := "); +field_security__Protected__Nas__Message->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_service__Accept: +TTCN_Logger::log_event_str("{ service_Accept := "); +field_service__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_service__Reject: +TTCN_Logger::log_event_str("{ service_Reject := "); +field_service__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_reset__UE__Positioning__Stored__Information: +TTCN_Logger::log_event_str("{ reset_UE_Positioning_Stored_Information := "); +field_reset__UE__Positioning__Stored__Information->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_activate__Test__Mode: +TTCN_Logger::log_event_str("{ activate_Test_Mode := "); +field_activate__Test__Mode->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_deactivate__Test__Mode: +TTCN_Logger::log_event_str("{ deactivate_Test_Mode := "); +field_deactivate__Test__Mode->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_close__Ue__Test__Loop: +TTCN_Logger::log_event_str("{ close_Ue_Test_Loop := "); +field_close__Ue__Test__Loop->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_open__Ue__Test__Loop: +TTCN_Logger::log_event_str("{ open_Ue_Test_Loop := "); +field_open__Ue__Test__Loop->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_nssai__Delete__Request: +TTCN_Logger::log_event_str("{ nssai_Delete_Request := "); +field_nssai__Delete__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_set__UAI__Request: +TTCN_Logger::log_event_str("{ set_UAI_Request := "); +field_set__UAI__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_set__UL__Message__Request: +TTCN_Logger::log_event_str("{ set_UL_Message_Request := "); +field_set__UL__Message__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_test__Loop__Sidelink__Counter__Request: +TTCN_Logger::log_event_str("{ test_Loop_Sidelink_Counter_Request := "); +field_test__Loop__Sidelink__Counter__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_update__Ue__Location__Information: +TTCN_Logger::log_event_str("{ update_Ue_Location_Information := "); +field_update__Ue__Location__Information->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void NG__NAS__DL__Message__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type'"); + } + if (strcmp("authentication_Reject", param_field) == 0) { + authentication__Reject().set_param(param); + return; + } else if (strcmp("authentication_Request", param_field) == 0) { + authentication__Request().set_param(param); + return; + } else if (strcmp("authentication_Result", param_field) == 0) { + authentication__Result().set_param(param); + return; + } else if (strcmp("configuration_Update_Command", param_field) == 0) { + configuration__Update__Command().set_param(param); + return; + } else if (strcmp("deregistration_Accept", param_field) == 0) { + deregistration__Accept().set_param(param); + return; + } else if (strcmp("deregistration_RequestMT", param_field) == 0) { + deregistration__RequestMT().set_param(param); + return; + } else if (strcmp("dl_Nas_Transport", param_field) == 0) { + dl__Nas__Transport().set_param(param); + return; + } else if (strcmp("gmm_Status", param_field) == 0) { + gmm__Status().set_param(param); + return; + } else if (strcmp("gsm_Status", param_field) == 0) { + gsm__Status().set_param(param); + return; + } else if (strcmp("identity_Request", param_field) == 0) { + identity__Request().set_param(param); + return; + } else if (strcmp("network_Slice_Specific_Authentication_Command", param_field) == 0) { + network__Slice__Specific__Authentication__Command().set_param(param); + return; + } else if (strcmp("network_Slice_Specific_Authentication_Result", param_field) == 0) { + network__Slice__Specific__Authentication__Result().set_param(param); + return; + } else if (strcmp("notification", param_field) == 0) { + notification().set_param(param); + return; + } else if (strcmp("pdu_Session_Authentication_Command", param_field) == 0) { + pdu__Session__Authentication__Command().set_param(param); + return; + } else if (strcmp("pdu_Session_Authentication_Result", param_field) == 0) { + pdu__Session__Authentication__Result().set_param(param); + return; + } else if (strcmp("pdu_Session_Establishment_Accept", param_field) == 0) { + pdu__Session__Establishment__Accept().set_param(param); + return; + } else if (strcmp("pdu_Session_Establishment_Reject", param_field) == 0) { + pdu__Session__Establishment__Reject().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Command", param_field) == 0) { + pdu__Session__Modification__Command().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Reject", param_field) == 0) { + pdu__Session__Modification__Reject().set_param(param); + return; + } else if (strcmp("pdu_Session_Release_Command", param_field) == 0) { + pdu__Session__Release__Command().set_param(param); + return; + } else if (strcmp("pdu_Session_Release_Reject", param_field) == 0) { + pdu__Session__Release__Reject().set_param(param); + return; + } else if (strcmp("registration_Accept", param_field) == 0) { + registration__Accept().set_param(param); + return; + } else if (strcmp("registration_Reject", param_field) == 0) { + registration__Reject().set_param(param); + return; + } else if (strcmp("security_Mode_Command", param_field) == 0) { + security__Mode__Command().set_param(param); + return; + } else if (strcmp("security_Protected_Nas_Message", param_field) == 0) { + security__Protected__Nas__Message().set_param(param); + return; + } else if (strcmp("service_Accept", param_field) == 0) { + service__Accept().set_param(param); + return; + } else if (strcmp("service_Reject", param_field) == 0) { + service__Reject().set_param(param); + return; + } else if (strcmp("reset_UE_Positioning_Stored_Information", param_field) == 0) { + reset__UE__Positioning__Stored__Information().set_param(param); + return; + } else if (strcmp("activate_Test_Mode", param_field) == 0) { + activate__Test__Mode().set_param(param); + return; + } else if (strcmp("deactivate_Test_Mode", param_field) == 0) { + deactivate__Test__Mode().set_param(param); + return; + } else if (strcmp("close_Ue_Test_Loop", param_field) == 0) { + close__Ue__Test__Loop().set_param(param); + return; + } else if (strcmp("open_Ue_Test_Loop", param_field) == 0) { + open__Ue__Test__Loop().set_param(param); + return; + } else if (strcmp("nssai_Delete_Request", param_field) == 0) { + nssai__Delete__Request().set_param(param); + return; + } else if (strcmp("set_UAI_Request", param_field) == 0) { + set__UAI__Request().set_param(param); + return; + } else if (strcmp("set_UL_Message_Request", param_field) == 0) { + set__UL__Message__Request().set_param(param); + return; + } else if (strcmp("test_Loop_Sidelink_Counter_Request", param_field) == 0) { + test__Loop__Sidelink__Counter__Request().set_param(param); + return; + } else if (strcmp("update_Ue_Location_Information", param_field) == 0) { + update__Ue__Location__Information().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "authentication_Reject")) { + authentication__Reject().set_param(*mp_last); + if (!authentication__Reject().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "authentication_Request")) { + authentication__Request().set_param(*mp_last); + if (!authentication__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "authentication_Result")) { + authentication__Result().set_param(*mp_last); + if (!authentication__Result().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "configuration_Update_Command")) { + configuration__Update__Command().set_param(*mp_last); + if (!configuration__Update__Command().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "deregistration_Accept")) { + deregistration__Accept().set_param(*mp_last); + if (!deregistration__Accept().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "deregistration_RequestMT")) { + deregistration__RequestMT().set_param(*mp_last); + if (!deregistration__RequestMT().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "dl_Nas_Transport")) { + dl__Nas__Transport().set_param(*mp_last); + if (!dl__Nas__Transport().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "gmm_Status")) { + gmm__Status().set_param(*mp_last); + if (!gmm__Status().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "gsm_Status")) { + gsm__Status().set_param(*mp_last); + if (!gsm__Status().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "identity_Request")) { + identity__Request().set_param(*mp_last); + if (!identity__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "network_Slice_Specific_Authentication_Command")) { + network__Slice__Specific__Authentication__Command().set_param(*mp_last); + if (!network__Slice__Specific__Authentication__Command().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "network_Slice_Specific_Authentication_Result")) { + network__Slice__Specific__Authentication__Result().set_param(*mp_last); + if (!network__Slice__Specific__Authentication__Result().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "notification")) { + notification().set_param(*mp_last); + if (!notification().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Authentication_Command")) { + pdu__Session__Authentication__Command().set_param(*mp_last); + if (!pdu__Session__Authentication__Command().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Authentication_Result")) { + pdu__Session__Authentication__Result().set_param(*mp_last); + if (!pdu__Session__Authentication__Result().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Establishment_Accept")) { + pdu__Session__Establishment__Accept().set_param(*mp_last); + if (!pdu__Session__Establishment__Accept().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Establishment_Reject")) { + pdu__Session__Establishment__Reject().set_param(*mp_last); + if (!pdu__Session__Establishment__Reject().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Modification_Command")) { + pdu__Session__Modification__Command().set_param(*mp_last); + if (!pdu__Session__Modification__Command().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Modification_Reject")) { + pdu__Session__Modification__Reject().set_param(*mp_last); + if (!pdu__Session__Modification__Reject().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Release_Command")) { + pdu__Session__Release__Command().set_param(*mp_last); + if (!pdu__Session__Release__Command().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pdu_Session_Release_Reject")) { + pdu__Session__Release__Reject().set_param(*mp_last); + if (!pdu__Session__Release__Reject().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "registration_Accept")) { + registration__Accept().set_param(*mp_last); + if (!registration__Accept().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "registration_Reject")) { + registration__Reject().set_param(*mp_last); + if (!registration__Reject().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "security_Mode_Command")) { + security__Mode__Command().set_param(*mp_last); + if (!security__Mode__Command().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "security_Protected_Nas_Message")) { + security__Protected__Nas__Message().set_param(*mp_last); + if (!security__Protected__Nas__Message().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "service_Accept")) { + service__Accept().set_param(*mp_last); + if (!service__Accept().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "service_Reject")) { + service__Reject().set_param(*mp_last); + if (!service__Reject().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "reset_UE_Positioning_Stored_Information")) { + reset__UE__Positioning__Stored__Information().set_param(*mp_last); + if (!reset__UE__Positioning__Stored__Information().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "activate_Test_Mode")) { + activate__Test__Mode().set_param(*mp_last); + if (!activate__Test__Mode().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "deactivate_Test_Mode")) { + deactivate__Test__Mode().set_param(*mp_last); + if (!deactivate__Test__Mode().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "close_Ue_Test_Loop")) { + close__Ue__Test__Loop().set_param(*mp_last); + if (!close__Ue__Test__Loop().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "open_Ue_Test_Loop")) { + open__Ue__Test__Loop().set_param(*mp_last); + if (!open__Ue__Test__Loop().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "nssai_Delete_Request")) { + nssai__Delete__Request().set_param(*mp_last); + if (!nssai__Delete__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "set_UAI_Request")) { + set__UAI__Request().set_param(*mp_last); + if (!set__UAI__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "set_UL_Message_Request")) { + set__UL__Message__Request().set_param(*mp_last); + if (!set__UL__Message__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "test_Loop_Sidelink_Counter_Request")) { + test__Loop__Sidelink__Counter__Request().set_param(*mp_last); + if (!test__Loop__Sidelink__Counter__Request().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "update_Ue_Location_Information")) { + update__Ue__Location__Information().set_param(*mp_last); + if (!update__Ue__Location__Information().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type.", last_name); +} + +Module_Param* NG__NAS__DL__Message__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type'"); + } + if (strcmp("authentication_Reject", param_field) == 0) { + return authentication__Reject().get_param(param_name); + } else if (strcmp("authentication_Request", param_field) == 0) { + return authentication__Request().get_param(param_name); + } else if (strcmp("authentication_Result", param_field) == 0) { + return authentication__Result().get_param(param_name); + } else if (strcmp("configuration_Update_Command", param_field) == 0) { + return configuration__Update__Command().get_param(param_name); + } else if (strcmp("deregistration_Accept", param_field) == 0) { + return deregistration__Accept().get_param(param_name); + } else if (strcmp("deregistration_RequestMT", param_field) == 0) { + return deregistration__RequestMT().get_param(param_name); + } else if (strcmp("dl_Nas_Transport", param_field) == 0) { + return dl__Nas__Transport().get_param(param_name); + } else if (strcmp("gmm_Status", param_field) == 0) { + return gmm__Status().get_param(param_name); + } else if (strcmp("gsm_Status", param_field) == 0) { + return gsm__Status().get_param(param_name); + } else if (strcmp("identity_Request", param_field) == 0) { + return identity__Request().get_param(param_name); + } else if (strcmp("network_Slice_Specific_Authentication_Command", param_field) == 0) { + return network__Slice__Specific__Authentication__Command().get_param(param_name); + } else if (strcmp("network_Slice_Specific_Authentication_Result", param_field) == 0) { + return network__Slice__Specific__Authentication__Result().get_param(param_name); + } else if (strcmp("notification", param_field) == 0) { + return notification().get_param(param_name); + } else if (strcmp("pdu_Session_Authentication_Command", param_field) == 0) { + return pdu__Session__Authentication__Command().get_param(param_name); + } else if (strcmp("pdu_Session_Authentication_Result", param_field) == 0) { + return pdu__Session__Authentication__Result().get_param(param_name); + } else if (strcmp("pdu_Session_Establishment_Accept", param_field) == 0) { + return pdu__Session__Establishment__Accept().get_param(param_name); + } else if (strcmp("pdu_Session_Establishment_Reject", param_field) == 0) { + return pdu__Session__Establishment__Reject().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Command", param_field) == 0) { + return pdu__Session__Modification__Command().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Reject", param_field) == 0) { + return pdu__Session__Modification__Reject().get_param(param_name); + } else if (strcmp("pdu_Session_Release_Command", param_field) == 0) { + return pdu__Session__Release__Command().get_param(param_name); + } else if (strcmp("pdu_Session_Release_Reject", param_field) == 0) { + return pdu__Session__Release__Reject().get_param(param_name); + } else if (strcmp("registration_Accept", param_field) == 0) { + return registration__Accept().get_param(param_name); + } else if (strcmp("registration_Reject", param_field) == 0) { + return registration__Reject().get_param(param_name); + } else if (strcmp("security_Mode_Command", param_field) == 0) { + return security__Mode__Command().get_param(param_name); + } else if (strcmp("security_Protected_Nas_Message", param_field) == 0) { + return security__Protected__Nas__Message().get_param(param_name); + } else if (strcmp("service_Accept", param_field) == 0) { + return service__Accept().get_param(param_name); + } else if (strcmp("service_Reject", param_field) == 0) { + return service__Reject().get_param(param_name); + } else if (strcmp("reset_UE_Positioning_Stored_Information", param_field) == 0) { + return reset__UE__Positioning__Stored__Information().get_param(param_name); + } else if (strcmp("activate_Test_Mode", param_field) == 0) { + return activate__Test__Mode().get_param(param_name); + } else if (strcmp("deactivate_Test_Mode", param_field) == 0) { + return deactivate__Test__Mode().get_param(param_name); + } else if (strcmp("close_Ue_Test_Loop", param_field) == 0) { + return close__Ue__Test__Loop().get_param(param_name); + } else if (strcmp("open_Ue_Test_Loop", param_field) == 0) { + return open__Ue__Test__Loop().get_param(param_name); + } else if (strcmp("nssai_Delete_Request", param_field) == 0) { + return nssai__Delete__Request().get_param(param_name); + } else if (strcmp("set_UAI_Request", param_field) == 0) { + return set__UAI__Request().get_param(param_name); + } else if (strcmp("set_UL_Message_Request", param_field) == 0) { + return set__UL__Message__Request().get_param(param_name); + } else if (strcmp("test_Loop_Sidelink_Counter_Request", param_field) == 0) { + return test__Loop__Sidelink__Counter__Request().get_param(param_name); + } else if (strcmp("update_Ue_Location_Information", param_field) == 0) { + return update__Ue__Location__Information().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__NAS__DL__Message__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_authentication__Reject: + mp_field = field_authentication__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Reject"))); + break; + case ALT_authentication__Request: + mp_field = field_authentication__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Request"))); + break; + case ALT_authentication__Result: + mp_field = field_authentication__Result->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Result"))); + break; + case ALT_configuration__Update__Command: + mp_field = field_configuration__Update__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("configuration_Update_Command"))); + break; + case ALT_deregistration__Accept: + mp_field = field_deregistration__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deregistration_Accept"))); + break; + case ALT_deregistration__RequestMT: + mp_field = field_deregistration__RequestMT->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deregistration_RequestMT"))); + break; + case ALT_dl__Nas__Transport: + mp_field = field_dl__Nas__Transport->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("dl_Nas_Transport"))); + break; + case ALT_gmm__Status: + mp_field = field_gmm__Status->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("gmm_Status"))); + break; + case ALT_gsm__Status: + mp_field = field_gsm__Status->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("gsm_Status"))); + break; + case ALT_identity__Request: + mp_field = field_identity__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("identity_Request"))); + break; + case ALT_network__Slice__Specific__Authentication__Command: + mp_field = field_network__Slice__Specific__Authentication__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("network_Slice_Specific_Authentication_Command"))); + break; + case ALT_network__Slice__Specific__Authentication__Result: + mp_field = field_network__Slice__Specific__Authentication__Result->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("network_Slice_Specific_Authentication_Result"))); + break; + case ALT_notification: + mp_field = field_notification->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("notification"))); + break; + case ALT_pdu__Session__Authentication__Command: + mp_field = field_pdu__Session__Authentication__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Authentication_Command"))); + break; + case ALT_pdu__Session__Authentication__Result: + mp_field = field_pdu__Session__Authentication__Result->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Authentication_Result"))); + break; + case ALT_pdu__Session__Establishment__Accept: + mp_field = field_pdu__Session__Establishment__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Establishment_Accept"))); + break; + case ALT_pdu__Session__Establishment__Reject: + mp_field = field_pdu__Session__Establishment__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Establishment_Reject"))); + break; + case ALT_pdu__Session__Modification__Command: + mp_field = field_pdu__Session__Modification__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Command"))); + break; + case ALT_pdu__Session__Modification__Reject: + mp_field = field_pdu__Session__Modification__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Reject"))); + break; + case ALT_pdu__Session__Release__Command: + mp_field = field_pdu__Session__Release__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Release_Command"))); + break; + case ALT_pdu__Session__Release__Reject: + mp_field = field_pdu__Session__Release__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Release_Reject"))); + break; + case ALT_registration__Accept: + mp_field = field_registration__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("registration_Accept"))); + break; + case ALT_registration__Reject: + mp_field = field_registration__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("registration_Reject"))); + break; + case ALT_security__Mode__Command: + mp_field = field_security__Mode__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Mode_Command"))); + break; + case ALT_security__Protected__Nas__Message: + mp_field = field_security__Protected__Nas__Message->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Protected_Nas_Message"))); + break; + case ALT_service__Accept: + mp_field = field_service__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("service_Accept"))); + break; + case ALT_service__Reject: + mp_field = field_service__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("service_Reject"))); + break; + case ALT_reset__UE__Positioning__Stored__Information: + mp_field = field_reset__UE__Positioning__Stored__Information->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("reset_UE_Positioning_Stored_Information"))); + break; + case ALT_activate__Test__Mode: + mp_field = field_activate__Test__Mode->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("activate_Test_Mode"))); + break; + case ALT_deactivate__Test__Mode: + mp_field = field_deactivate__Test__Mode->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deactivate_Test_Mode"))); + break; + case ALT_close__Ue__Test__Loop: + mp_field = field_close__Ue__Test__Loop->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("close_Ue_Test_Loop"))); + break; + case ALT_open__Ue__Test__Loop: + mp_field = field_open__Ue__Test__Loop->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("open_Ue_Test_Loop"))); + break; + case ALT_nssai__Delete__Request: + mp_field = field_nssai__Delete__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("nssai_Delete_Request"))); + break; + case ALT_set__UAI__Request: + mp_field = field_set__UAI__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("set_UAI_Request"))); + break; + case ALT_set__UL__Message__Request: + mp_field = field_set__UL__Message__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("set_UL_Message_Request"))); + break; + case ALT_test__Loop__Sidelink__Counter__Request: + mp_field = field_test__Loop__Sidelink__Counter__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("test_Loop_Sidelink_Counter_Request"))); + break; + case ALT_update__Ue__Location__Information: + mp_field = field_update__Ue__Location__Information->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("update_Ue_Location_Information"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void NG__NAS__DL__Message__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_authentication__Reject: +field_authentication__Reject->set_implicit_omit(); break; +case ALT_authentication__Request: +field_authentication__Request->set_implicit_omit(); break; +case ALT_authentication__Result: +field_authentication__Result->set_implicit_omit(); break; +case ALT_configuration__Update__Command: +field_configuration__Update__Command->set_implicit_omit(); break; +case ALT_deregistration__Accept: +field_deregistration__Accept->set_implicit_omit(); break; +case ALT_deregistration__RequestMT: +field_deregistration__RequestMT->set_implicit_omit(); break; +case ALT_dl__Nas__Transport: +field_dl__Nas__Transport->set_implicit_omit(); break; +case ALT_gmm__Status: +field_gmm__Status->set_implicit_omit(); break; +case ALT_gsm__Status: +field_gsm__Status->set_implicit_omit(); break; +case ALT_identity__Request: +field_identity__Request->set_implicit_omit(); break; +case ALT_network__Slice__Specific__Authentication__Command: +field_network__Slice__Specific__Authentication__Command->set_implicit_omit(); break; +case ALT_network__Slice__Specific__Authentication__Result: +field_network__Slice__Specific__Authentication__Result->set_implicit_omit(); break; +case ALT_notification: +field_notification->set_implicit_omit(); break; +case ALT_pdu__Session__Authentication__Command: +field_pdu__Session__Authentication__Command->set_implicit_omit(); break; +case ALT_pdu__Session__Authentication__Result: +field_pdu__Session__Authentication__Result->set_implicit_omit(); break; +case ALT_pdu__Session__Establishment__Accept: +field_pdu__Session__Establishment__Accept->set_implicit_omit(); break; +case ALT_pdu__Session__Establishment__Reject: +field_pdu__Session__Establishment__Reject->set_implicit_omit(); break; +case ALT_pdu__Session__Modification__Command: +field_pdu__Session__Modification__Command->set_implicit_omit(); break; +case ALT_pdu__Session__Modification__Reject: +field_pdu__Session__Modification__Reject->set_implicit_omit(); break; +case ALT_pdu__Session__Release__Command: +field_pdu__Session__Release__Command->set_implicit_omit(); break; +case ALT_pdu__Session__Release__Reject: +field_pdu__Session__Release__Reject->set_implicit_omit(); break; +case ALT_registration__Accept: +field_registration__Accept->set_implicit_omit(); break; +case ALT_registration__Reject: +field_registration__Reject->set_implicit_omit(); break; +case ALT_security__Mode__Command: +field_security__Mode__Command->set_implicit_omit(); break; +case ALT_security__Protected__Nas__Message: +field_security__Protected__Nas__Message->set_implicit_omit(); break; +case ALT_service__Accept: +field_service__Accept->set_implicit_omit(); break; +case ALT_service__Reject: +field_service__Reject->set_implicit_omit(); break; +case ALT_reset__UE__Positioning__Stored__Information: +field_reset__UE__Positioning__Stored__Information->set_implicit_omit(); break; +case ALT_activate__Test__Mode: +field_activate__Test__Mode->set_implicit_omit(); break; +case ALT_deactivate__Test__Mode: +field_deactivate__Test__Mode->set_implicit_omit(); break; +case ALT_close__Ue__Test__Loop: +field_close__Ue__Test__Loop->set_implicit_omit(); break; +case ALT_open__Ue__Test__Loop: +field_open__Ue__Test__Loop->set_implicit_omit(); break; +case ALT_nssai__Delete__Request: +field_nssai__Delete__Request->set_implicit_omit(); break; +case ALT_set__UAI__Request: +field_set__UAI__Request->set_implicit_omit(); break; +case ALT_set__UL__Message__Request: +field_set__UL__Message__Request->set_implicit_omit(); break; +case ALT_test__Loop__Sidelink__Counter__Request: +field_test__Loop__Sidelink__Counter__Request->set_implicit_omit(); break; +case ALT_update__Ue__Location__Information: +field_update__Ue__Location__Information->set_implicit_omit(); break; +default: break; +} +} + +void NG__NAS__DL__Message__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_authentication__Reject: +field_authentication__Reject->encode_text(text_buf); +break; +case ALT_authentication__Request: +field_authentication__Request->encode_text(text_buf); +break; +case ALT_authentication__Result: +field_authentication__Result->encode_text(text_buf); +break; +case ALT_configuration__Update__Command: +field_configuration__Update__Command->encode_text(text_buf); +break; +case ALT_deregistration__Accept: +field_deregistration__Accept->encode_text(text_buf); +break; +case ALT_deregistration__RequestMT: +field_deregistration__RequestMT->encode_text(text_buf); +break; +case ALT_dl__Nas__Transport: +field_dl__Nas__Transport->encode_text(text_buf); +break; +case ALT_gmm__Status: +field_gmm__Status->encode_text(text_buf); +break; +case ALT_gsm__Status: +field_gsm__Status->encode_text(text_buf); +break; +case ALT_identity__Request: +field_identity__Request->encode_text(text_buf); +break; +case ALT_network__Slice__Specific__Authentication__Command: +field_network__Slice__Specific__Authentication__Command->encode_text(text_buf); +break; +case ALT_network__Slice__Specific__Authentication__Result: +field_network__Slice__Specific__Authentication__Result->encode_text(text_buf); +break; +case ALT_notification: +field_notification->encode_text(text_buf); +break; +case ALT_pdu__Session__Authentication__Command: +field_pdu__Session__Authentication__Command->encode_text(text_buf); +break; +case ALT_pdu__Session__Authentication__Result: +field_pdu__Session__Authentication__Result->encode_text(text_buf); +break; +case ALT_pdu__Session__Establishment__Accept: +field_pdu__Session__Establishment__Accept->encode_text(text_buf); +break; +case ALT_pdu__Session__Establishment__Reject: +field_pdu__Session__Establishment__Reject->encode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Command: +field_pdu__Session__Modification__Command->encode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Reject: +field_pdu__Session__Modification__Reject->encode_text(text_buf); +break; +case ALT_pdu__Session__Release__Command: +field_pdu__Session__Release__Command->encode_text(text_buf); +break; +case ALT_pdu__Session__Release__Reject: +field_pdu__Session__Release__Reject->encode_text(text_buf); +break; +case ALT_registration__Accept: +field_registration__Accept->encode_text(text_buf); +break; +case ALT_registration__Reject: +field_registration__Reject->encode_text(text_buf); +break; +case ALT_security__Mode__Command: +field_security__Mode__Command->encode_text(text_buf); +break; +case ALT_security__Protected__Nas__Message: +field_security__Protected__Nas__Message->encode_text(text_buf); +break; +case ALT_service__Accept: +field_service__Accept->encode_text(text_buf); +break; +case ALT_service__Reject: +field_service__Reject->encode_text(text_buf); +break; +case ALT_reset__UE__Positioning__Stored__Information: +field_reset__UE__Positioning__Stored__Information->encode_text(text_buf); +break; +case ALT_activate__Test__Mode: +field_activate__Test__Mode->encode_text(text_buf); +break; +case ALT_deactivate__Test__Mode: +field_deactivate__Test__Mode->encode_text(text_buf); +break; +case ALT_close__Ue__Test__Loop: +field_close__Ue__Test__Loop->encode_text(text_buf); +break; +case ALT_open__Ue__Test__Loop: +field_open__Ue__Test__Loop->encode_text(text_buf); +break; +case ALT_nssai__Delete__Request: +field_nssai__Delete__Request->encode_text(text_buf); +break; +case ALT_set__UAI__Request: +field_set__UAI__Request->encode_text(text_buf); +break; +case ALT_set__UL__Message__Request: +field_set__UL__Message__Request->encode_text(text_buf); +break; +case ALT_test__Loop__Sidelink__Counter__Request: +field_test__Loop__Sidelink__Counter__Request->encode_text(text_buf); +break; +case ALT_update__Ue__Location__Information: +field_update__Ue__Location__Information->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +} + +void NG__NAS__DL__Message__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_authentication__Reject: +authentication__Reject().decode_text(text_buf); +break; +case ALT_authentication__Request: +authentication__Request().decode_text(text_buf); +break; +case ALT_authentication__Result: +authentication__Result().decode_text(text_buf); +break; +case ALT_configuration__Update__Command: +configuration__Update__Command().decode_text(text_buf); +break; +case ALT_deregistration__Accept: +deregistration__Accept().decode_text(text_buf); +break; +case ALT_deregistration__RequestMT: +deregistration__RequestMT().decode_text(text_buf); +break; +case ALT_dl__Nas__Transport: +dl__Nas__Transport().decode_text(text_buf); +break; +case ALT_gmm__Status: +gmm__Status().decode_text(text_buf); +break; +case ALT_gsm__Status: +gsm__Status().decode_text(text_buf); +break; +case ALT_identity__Request: +identity__Request().decode_text(text_buf); +break; +case ALT_network__Slice__Specific__Authentication__Command: +network__Slice__Specific__Authentication__Command().decode_text(text_buf); +break; +case ALT_network__Slice__Specific__Authentication__Result: +network__Slice__Specific__Authentication__Result().decode_text(text_buf); +break; +case ALT_notification: +notification().decode_text(text_buf); +break; +case ALT_pdu__Session__Authentication__Command: +pdu__Session__Authentication__Command().decode_text(text_buf); +break; +case ALT_pdu__Session__Authentication__Result: +pdu__Session__Authentication__Result().decode_text(text_buf); +break; +case ALT_pdu__Session__Establishment__Accept: +pdu__Session__Establishment__Accept().decode_text(text_buf); +break; +case ALT_pdu__Session__Establishment__Reject: +pdu__Session__Establishment__Reject().decode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Command: +pdu__Session__Modification__Command().decode_text(text_buf); +break; +case ALT_pdu__Session__Modification__Reject: +pdu__Session__Modification__Reject().decode_text(text_buf); +break; +case ALT_pdu__Session__Release__Command: +pdu__Session__Release__Command().decode_text(text_buf); +break; +case ALT_pdu__Session__Release__Reject: +pdu__Session__Release__Reject().decode_text(text_buf); +break; +case ALT_registration__Accept: +registration__Accept().decode_text(text_buf); +break; +case ALT_registration__Reject: +registration__Reject().decode_text(text_buf); +break; +case ALT_security__Mode__Command: +security__Mode__Command().decode_text(text_buf); +break; +case ALT_security__Protected__Nas__Message: +security__Protected__Nas__Message().decode_text(text_buf); +break; +case ALT_service__Accept: +service__Accept().decode_text(text_buf); +break; +case ALT_service__Reject: +service__Reject().decode_text(text_buf); +break; +case ALT_reset__UE__Positioning__Stored__Information: +reset__UE__Positioning__Stored__Information().decode_text(text_buf); +break; +case ALT_activate__Test__Mode: +activate__Test__Mode().decode_text(text_buf); +break; +case ALT_deactivate__Test__Mode: +deactivate__Test__Mode().decode_text(text_buf); +break; +case ALT_close__Ue__Test__Loop: +close__Ue__Test__Loop().decode_text(text_buf); +break; +case ALT_open__Ue__Test__Loop: +open__Ue__Test__Loop().decode_text(text_buf); +break; +case ALT_nssai__Delete__Request: +nssai__Delete__Request().decode_text(text_buf); +break; +case ALT_set__UAI__Request: +set__UAI__Request().decode_text(text_buf); +break; +case ALT_set__UL__Message__Request: +set__UL__Message__Request().decode_text(text_buf); +break; +case ALT_test__Loop__Sidelink__Counter__Request: +test__Loop__Sidelink__Counter__Request().decode_text(text_buf); +break; +case ALT_update__Ue__Location__Information: +update__Ue__Location__Information().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +} + +void NG__NAS__DL__Message__Type_template::copy_value(const NG__NAS__DL__Message__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +single_value.field_authentication__Reject = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template(other_value.authentication__Reject()); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +single_value.field_authentication__Request = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template(other_value.authentication__Request()); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +single_value.field_authentication__Result = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template(other_value.authentication__Result()); +break; +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +single_value.field_configuration__Update__Command = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template(other_value.configuration__Update__Command()); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template(other_value.deregistration__Accept()); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +single_value.field_deregistration__RequestMT = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template(other_value.deregistration__RequestMT()); +break; +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +single_value.field_dl__Nas__Transport = new NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template(other_value.dl__Nas__Transport()); +break; +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template(other_value.gmm__Status()); +break; +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template(other_value.gsm__Status()); +break; +case NG__NAS__DL__Message__Type::ALT_identity__Request: +single_value.field_identity__Request = new NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template(other_value.identity__Request()); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +single_value.field_network__Slice__Specific__Authentication__Command = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(other_value.network__Slice__Specific__Authentication__Command()); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +single_value.field_network__Slice__Specific__Authentication__Result = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(other_value.network__Slice__Specific__Authentication__Result()); +break; +case NG__NAS__DL__Message__Type::ALT_notification: +single_value.field_notification = new NG__NAS__TypeDefs::NG__NOTIFICATION_template(other_value.notification()); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +single_value.field_pdu__Session__Authentication__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(other_value.pdu__Session__Authentication__Command()); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +single_value.field_pdu__Session__Authentication__Result = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template(other_value.pdu__Session__Authentication__Result()); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +single_value.field_pdu__Session__Establishment__Accept = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(other_value.pdu__Session__Establishment__Accept()); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +single_value.field_pdu__Session__Establishment__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(other_value.pdu__Session__Establishment__Reject()); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +single_value.field_pdu__Session__Modification__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template(other_value.pdu__Session__Modification__Command()); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +single_value.field_pdu__Session__Modification__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template(other_value.pdu__Session__Modification__Reject()); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +single_value.field_pdu__Session__Release__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template(other_value.pdu__Session__Release__Command()); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +single_value.field_pdu__Session__Release__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template(other_value.pdu__Session__Release__Reject()); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +single_value.field_registration__Accept = new NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template(other_value.registration__Accept()); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +single_value.field_registration__Reject = new NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template(other_value.registration__Reject()); +break; +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +single_value.field_security__Mode__Command = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template(other_value.security__Mode__Command()); +break; +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template(other_value.security__Protected__Nas__Message()); +break; +case NG__NAS__DL__Message__Type::ALT_service__Accept: +single_value.field_service__Accept = new NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template(other_value.service__Accept()); +break; +case NG__NAS__DL__Message__Type::ALT_service__Reject: +single_value.field_service__Reject = new NG__NAS__TypeDefs::NG__SERVICE__REJECT_template(other_value.service__Reject()); +break; +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +single_value.field_reset__UE__Positioning__Stored__Information = new NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template(other_value.reset__UE__Positioning__Stored__Information()); +break; +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +single_value.field_activate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template(other_value.activate__Test__Mode()); +break; +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +single_value.field_deactivate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template(other_value.deactivate__Test__Mode()); +break; +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +single_value.field_close__Ue__Test__Loop = new Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template(other_value.close__Ue__Test__Loop()); +break; +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +single_value.field_open__Ue__Test__Loop = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template(other_value.open__Ue__Test__Loop()); +break; +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +single_value.field_nssai__Delete__Request = new NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template(other_value.nssai__Delete__Request()); +break; +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +single_value.field_set__UAI__Request = new NG__NAS__TypeDefs::SET__UAI__REQUEST_template(other_value.set__UAI__Request()); +break; +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +single_value.field_set__UL__Message__Request = new Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template(other_value.set__UL__Message__Request()); +break; +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +single_value.field_test__Loop__Sidelink__Counter__Request = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(other_value.test__Loop__Sidelink__Counter__Request()); +break; +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +single_value.field_update__Ue__Location__Information = new EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template(other_value.update__Ue__Location__Information()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void NG__NAS__DL__Message__Type_template::copy_template(const NG__NAS__DL__Message__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +single_value.field_authentication__Reject = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template(*other_value.single_value.field_authentication__Reject); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +single_value.field_authentication__Request = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template(*other_value.single_value.field_authentication__Request); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +single_value.field_authentication__Result = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template(*other_value.single_value.field_authentication__Result); +break; +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +single_value.field_configuration__Update__Command = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template(*other_value.single_value.field_configuration__Update__Command); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template(*other_value.single_value.field_deregistration__Accept); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +single_value.field_deregistration__RequestMT = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template(*other_value.single_value.field_deregistration__RequestMT); +break; +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +single_value.field_dl__Nas__Transport = new NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template(*other_value.single_value.field_dl__Nas__Transport); +break; +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template(*other_value.single_value.field_gmm__Status); +break; +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template(*other_value.single_value.field_gsm__Status); +break; +case NG__NAS__DL__Message__Type::ALT_identity__Request: +single_value.field_identity__Request = new NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template(*other_value.single_value.field_identity__Request); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +single_value.field_network__Slice__Specific__Authentication__Command = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(*other_value.single_value.field_network__Slice__Specific__Authentication__Command); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +single_value.field_network__Slice__Specific__Authentication__Result = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(*other_value.single_value.field_network__Slice__Specific__Authentication__Result); +break; +case NG__NAS__DL__Message__Type::ALT_notification: +single_value.field_notification = new NG__NAS__TypeDefs::NG__NOTIFICATION_template(*other_value.single_value.field_notification); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +single_value.field_pdu__Session__Authentication__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(*other_value.single_value.field_pdu__Session__Authentication__Command); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +single_value.field_pdu__Session__Authentication__Result = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template(*other_value.single_value.field_pdu__Session__Authentication__Result); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +single_value.field_pdu__Session__Establishment__Accept = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(*other_value.single_value.field_pdu__Session__Establishment__Accept); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +single_value.field_pdu__Session__Establishment__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(*other_value.single_value.field_pdu__Session__Establishment__Reject); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +single_value.field_pdu__Session__Modification__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template(*other_value.single_value.field_pdu__Session__Modification__Command); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +single_value.field_pdu__Session__Modification__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template(*other_value.single_value.field_pdu__Session__Modification__Reject); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +single_value.field_pdu__Session__Release__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template(*other_value.single_value.field_pdu__Session__Release__Command); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +single_value.field_pdu__Session__Release__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template(*other_value.single_value.field_pdu__Session__Release__Reject); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +single_value.field_registration__Accept = new NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template(*other_value.single_value.field_registration__Accept); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +single_value.field_registration__Reject = new NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template(*other_value.single_value.field_registration__Reject); +break; +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +single_value.field_security__Mode__Command = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template(*other_value.single_value.field_security__Mode__Command); +break; +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template(*other_value.single_value.field_security__Protected__Nas__Message); +break; +case NG__NAS__DL__Message__Type::ALT_service__Accept: +single_value.field_service__Accept = new NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template(*other_value.single_value.field_service__Accept); +break; +case NG__NAS__DL__Message__Type::ALT_service__Reject: +single_value.field_service__Reject = new NG__NAS__TypeDefs::NG__SERVICE__REJECT_template(*other_value.single_value.field_service__Reject); +break; +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +single_value.field_reset__UE__Positioning__Stored__Information = new NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template(*other_value.single_value.field_reset__UE__Positioning__Stored__Information); +break; +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +single_value.field_activate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template(*other_value.single_value.field_activate__Test__Mode); +break; +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +single_value.field_deactivate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template(*other_value.single_value.field_deactivate__Test__Mode); +break; +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +single_value.field_close__Ue__Test__Loop = new Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template(*other_value.single_value.field_close__Ue__Test__Loop); +break; +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +single_value.field_open__Ue__Test__Loop = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template(*other_value.single_value.field_open__Ue__Test__Loop); +break; +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +single_value.field_nssai__Delete__Request = new NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template(*other_value.single_value.field_nssai__Delete__Request); +break; +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +single_value.field_set__UAI__Request = new NG__NAS__TypeDefs::SET__UAI__REQUEST_template(*other_value.single_value.field_set__UAI__Request); +break; +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +single_value.field_set__UL__Message__Request = new Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template(*other_value.single_value.field_set__UL__Message__Request); +break; +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +single_value.field_test__Loop__Sidelink__Counter__Request = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(*other_value.single_value.field_test__Loop__Sidelink__Counter__Request); +break; +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +single_value.field_update__Ue__Location__Information = new EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template(*other_value.single_value.field_update__Ue__Location__Information); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NG__NAS__DL__Message__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NG__NAS__DL__Message__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NG__NAS__DL__Message__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +NG__NAS__DL__Message__Type_template::NG__NAS__DL__Message__Type_template(): err_descr(NULL) +{ +} + +NG__NAS__DL__Message__Type_template::NG__NAS__DL__Message__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +NG__NAS__DL__Message__Type_template::NG__NAS__DL__Message__Type_template(const NG__NAS__DL__Message__Type& other_value) +{ +copy_value(other_value); +} + +NG__NAS__DL__Message__Type_template::NG__NAS__DL__Message__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__NAS__DL__Message__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type from an unbound optional field."); +} +} + +NG__NAS__DL__Message__Type_template::NG__NAS__DL__Message__Type_template(NG__NAS__DL__Message__Type_template* p_precondition, NG__NAS__DL__Message__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NG__NAS__DL__Message__Type_template::NG__NAS__DL__Message__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NG__NAS__DL__Message__Type_template::NG__NAS__DL__Message__Type_template(const NG__NAS__DL__Message__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +NG__NAS__DL__Message__Type_template::~NG__NAS__DL__Message__Type_template() +{ +clean_up(); +} + +void NG__NAS__DL__Message__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +delete single_value.field_authentication__Reject; +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +delete single_value.field_authentication__Request; +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +delete single_value.field_authentication__Result; +break; +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +delete single_value.field_configuration__Update__Command; +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +delete single_value.field_deregistration__Accept; +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +delete single_value.field_deregistration__RequestMT; +break; +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +delete single_value.field_dl__Nas__Transport; +break; +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +delete single_value.field_gmm__Status; +break; +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +delete single_value.field_gsm__Status; +break; +case NG__NAS__DL__Message__Type::ALT_identity__Request: +delete single_value.field_identity__Request; +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +delete single_value.field_network__Slice__Specific__Authentication__Command; +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +delete single_value.field_network__Slice__Specific__Authentication__Result; +break; +case NG__NAS__DL__Message__Type::ALT_notification: +delete single_value.field_notification; +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +delete single_value.field_pdu__Session__Authentication__Command; +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +delete single_value.field_pdu__Session__Authentication__Result; +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +delete single_value.field_pdu__Session__Establishment__Accept; +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +delete single_value.field_pdu__Session__Establishment__Reject; +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +delete single_value.field_pdu__Session__Modification__Command; +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +delete single_value.field_pdu__Session__Modification__Reject; +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +delete single_value.field_pdu__Session__Release__Command; +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +delete single_value.field_pdu__Session__Release__Reject; +break; +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +delete single_value.field_registration__Accept; +break; +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +delete single_value.field_registration__Reject; +break; +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +delete single_value.field_security__Mode__Command; +break; +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +delete single_value.field_security__Protected__Nas__Message; +break; +case NG__NAS__DL__Message__Type::ALT_service__Accept: +delete single_value.field_service__Accept; +break; +case NG__NAS__DL__Message__Type::ALT_service__Reject: +delete single_value.field_service__Reject; +break; +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +delete single_value.field_reset__UE__Positioning__Stored__Information; +break; +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +delete single_value.field_activate__Test__Mode; +break; +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +delete single_value.field_deactivate__Test__Mode; +break; +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +delete single_value.field_close__Ue__Test__Loop; +break; +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +delete single_value.field_open__Ue__Test__Loop; +break; +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +delete single_value.field_nssai__Delete__Request; +break; +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +delete single_value.field_set__UAI__Request; +break; +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +delete single_value.field_set__UL__Message__Request; +break; +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +delete single_value.field_test__Loop__Sidelink__Counter__Request; +break; +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +delete single_value.field_update__Ue__Location__Information; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NG__NAS__DL__Message__Type_template& NG__NAS__DL__Message__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +NG__NAS__DL__Message__Type_template& NG__NAS__DL__Message__Type_template::operator=(const NG__NAS__DL__Message__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +NG__NAS__DL__Message__Type_template& NG__NAS__DL__Message__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__NAS__DL__Message__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +return *this; +} + +NG__NAS__DL__Message__Type_template& NG__NAS__DL__Message__Type_template::operator=(const NG__NAS__DL__Message__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NG__NAS__DL__Message__Type_template::match(const NG__NAS__DL__Message__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +NG__NAS__DL__Message__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == NG__NAS__DL__Message__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +return single_value.field_authentication__Reject->match(other_value.authentication__Reject(), legacy); +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +return single_value.field_authentication__Request->match(other_value.authentication__Request(), legacy); +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +return single_value.field_authentication__Result->match(other_value.authentication__Result(), legacy); +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +return single_value.field_configuration__Update__Command->match(other_value.configuration__Update__Command(), legacy); +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +return single_value.field_deregistration__Accept->match(other_value.deregistration__Accept(), legacy); +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +return single_value.field_deregistration__RequestMT->match(other_value.deregistration__RequestMT(), legacy); +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +return single_value.field_dl__Nas__Transport->match(other_value.dl__Nas__Transport(), legacy); +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +return single_value.field_gmm__Status->match(other_value.gmm__Status(), legacy); +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +return single_value.field_gsm__Status->match(other_value.gsm__Status(), legacy); +case NG__NAS__DL__Message__Type::ALT_identity__Request: +return single_value.field_identity__Request->match(other_value.identity__Request(), legacy); +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +return single_value.field_network__Slice__Specific__Authentication__Command->match(other_value.network__Slice__Specific__Authentication__Command(), legacy); +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +return single_value.field_network__Slice__Specific__Authentication__Result->match(other_value.network__Slice__Specific__Authentication__Result(), legacy); +case NG__NAS__DL__Message__Type::ALT_notification: +return single_value.field_notification->match(other_value.notification(), legacy); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +return single_value.field_pdu__Session__Authentication__Command->match(other_value.pdu__Session__Authentication__Command(), legacy); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +return single_value.field_pdu__Session__Authentication__Result->match(other_value.pdu__Session__Authentication__Result(), legacy); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +return single_value.field_pdu__Session__Establishment__Accept->match(other_value.pdu__Session__Establishment__Accept(), legacy); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +return single_value.field_pdu__Session__Establishment__Reject->match(other_value.pdu__Session__Establishment__Reject(), legacy); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +return single_value.field_pdu__Session__Modification__Command->match(other_value.pdu__Session__Modification__Command(), legacy); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +return single_value.field_pdu__Session__Modification__Reject->match(other_value.pdu__Session__Modification__Reject(), legacy); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +return single_value.field_pdu__Session__Release__Command->match(other_value.pdu__Session__Release__Command(), legacy); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +return single_value.field_pdu__Session__Release__Reject->match(other_value.pdu__Session__Release__Reject(), legacy); +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +return single_value.field_registration__Accept->match(other_value.registration__Accept(), legacy); +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +return single_value.field_registration__Reject->match(other_value.registration__Reject(), legacy); +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +return single_value.field_security__Mode__Command->match(other_value.security__Mode__Command(), legacy); +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +return single_value.field_security__Protected__Nas__Message->match(other_value.security__Protected__Nas__Message(), legacy); +case NG__NAS__DL__Message__Type::ALT_service__Accept: +return single_value.field_service__Accept->match(other_value.service__Accept(), legacy); +case NG__NAS__DL__Message__Type::ALT_service__Reject: +return single_value.field_service__Reject->match(other_value.service__Reject(), legacy); +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +return single_value.field_reset__UE__Positioning__Stored__Information->match(other_value.reset__UE__Positioning__Stored__Information(), legacy); +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +return single_value.field_activate__Test__Mode->match(other_value.activate__Test__Mode(), legacy); +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +return single_value.field_deactivate__Test__Mode->match(other_value.deactivate__Test__Mode(), legacy); +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +return single_value.field_close__Ue__Test__Loop->match(other_value.close__Ue__Test__Loop(), legacy); +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +return single_value.field_open__Ue__Test__Loop->match(other_value.open__Ue__Test__Loop(), legacy); +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +return single_value.field_nssai__Delete__Request->match(other_value.nssai__Delete__Request(), legacy); +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +return single_value.field_set__UAI__Request->match(other_value.set__UAI__Request(), legacy); +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +return single_value.field_set__UL__Message__Request->match(other_value.set__UL__Message__Request(), legacy); +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +return single_value.field_test__Loop__Sidelink__Counter__Request->match(other_value.test__Loop__Sidelink__Counter__Request(), legacy); +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +return single_value.field_update__Ue__Location__Information->match(other_value.update__Ue__Location__Information(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +return FALSE; +} + +boolean NG__NAS__DL__Message__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +return single_value.field_authentication__Reject->is_value(); +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +return single_value.field_authentication__Request->is_value(); +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +return single_value.field_authentication__Result->is_value(); +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +return single_value.field_configuration__Update__Command->is_value(); +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +return single_value.field_deregistration__Accept->is_value(); +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +return single_value.field_deregistration__RequestMT->is_value(); +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +return single_value.field_dl__Nas__Transport->is_value(); +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +return single_value.field_gmm__Status->is_value(); +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +return single_value.field_gsm__Status->is_value(); +case NG__NAS__DL__Message__Type::ALT_identity__Request: +return single_value.field_identity__Request->is_value(); +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +return single_value.field_network__Slice__Specific__Authentication__Command->is_value(); +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +return single_value.field_network__Slice__Specific__Authentication__Result->is_value(); +case NG__NAS__DL__Message__Type::ALT_notification: +return single_value.field_notification->is_value(); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +return single_value.field_pdu__Session__Authentication__Command->is_value(); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +return single_value.field_pdu__Session__Authentication__Result->is_value(); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +return single_value.field_pdu__Session__Establishment__Accept->is_value(); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +return single_value.field_pdu__Session__Establishment__Reject->is_value(); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +return single_value.field_pdu__Session__Modification__Command->is_value(); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +return single_value.field_pdu__Session__Modification__Reject->is_value(); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +return single_value.field_pdu__Session__Release__Command->is_value(); +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +return single_value.field_pdu__Session__Release__Reject->is_value(); +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +return single_value.field_registration__Accept->is_value(); +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +return single_value.field_registration__Reject->is_value(); +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +return single_value.field_security__Mode__Command->is_value(); +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +return single_value.field_security__Protected__Nas__Message->is_value(); +case NG__NAS__DL__Message__Type::ALT_service__Accept: +return single_value.field_service__Accept->is_value(); +case NG__NAS__DL__Message__Type::ALT_service__Reject: +return single_value.field_service__Reject->is_value(); +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +return single_value.field_reset__UE__Positioning__Stored__Information->is_value(); +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +return single_value.field_activate__Test__Mode->is_value(); +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +return single_value.field_deactivate__Test__Mode->is_value(); +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +return single_value.field_close__Ue__Test__Loop->is_value(); +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +return single_value.field_open__Ue__Test__Loop->is_value(); +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +return single_value.field_nssai__Delete__Request->is_value(); +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +return single_value.field_set__UAI__Request->is_value(); +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +return single_value.field_set__UL__Message__Request->is_value(); +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +return single_value.field_test__Loop__Sidelink__Counter__Request->is_value(); +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +return single_value.field_update__Ue__Location__Information->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +} + +NG__NAS__DL__Message__Type NG__NAS__DL__Message__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +NG__NAS__DL__Message__Type ret_val; +switch (single_value.union_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +ret_val.authentication__Reject() = single_value.field_authentication__Reject->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +ret_val.authentication__Request() = single_value.field_authentication__Request->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +ret_val.authentication__Result() = single_value.field_authentication__Result->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +ret_val.configuration__Update__Command() = single_value.field_configuration__Update__Command->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +ret_val.deregistration__Accept() = single_value.field_deregistration__Accept->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +ret_val.deregistration__RequestMT() = single_value.field_deregistration__RequestMT->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +ret_val.dl__Nas__Transport() = single_value.field_dl__Nas__Transport->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +ret_val.gmm__Status() = single_value.field_gmm__Status->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +ret_val.gsm__Status() = single_value.field_gsm__Status->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_identity__Request: +ret_val.identity__Request() = single_value.field_identity__Request->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +ret_val.network__Slice__Specific__Authentication__Command() = single_value.field_network__Slice__Specific__Authentication__Command->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +ret_val.network__Slice__Specific__Authentication__Result() = single_value.field_network__Slice__Specific__Authentication__Result->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_notification: +ret_val.notification() = single_value.field_notification->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +ret_val.pdu__Session__Authentication__Command() = single_value.field_pdu__Session__Authentication__Command->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +ret_val.pdu__Session__Authentication__Result() = single_value.field_pdu__Session__Authentication__Result->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +ret_val.pdu__Session__Establishment__Accept() = single_value.field_pdu__Session__Establishment__Accept->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +ret_val.pdu__Session__Establishment__Reject() = single_value.field_pdu__Session__Establishment__Reject->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +ret_val.pdu__Session__Modification__Command() = single_value.field_pdu__Session__Modification__Command->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +ret_val.pdu__Session__Modification__Reject() = single_value.field_pdu__Session__Modification__Reject->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +ret_val.pdu__Session__Release__Command() = single_value.field_pdu__Session__Release__Command->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +ret_val.pdu__Session__Release__Reject() = single_value.field_pdu__Session__Release__Reject->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +ret_val.registration__Accept() = single_value.field_registration__Accept->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +ret_val.registration__Reject() = single_value.field_registration__Reject->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +ret_val.security__Mode__Command() = single_value.field_security__Mode__Command->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +ret_val.security__Protected__Nas__Message() = single_value.field_security__Protected__Nas__Message->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_service__Accept: +ret_val.service__Accept() = single_value.field_service__Accept->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_service__Reject: +ret_val.service__Reject() = single_value.field_service__Reject->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +ret_val.reset__UE__Positioning__Stored__Information() = single_value.field_reset__UE__Positioning__Stored__Information->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +ret_val.activate__Test__Mode() = single_value.field_activate__Test__Mode->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +ret_val.deactivate__Test__Mode() = single_value.field_deactivate__Test__Mode->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +ret_val.close__Ue__Test__Loop() = single_value.field_close__Ue__Test__Loop->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +ret_val.open__Ue__Test__Loop() = single_value.field_open__Ue__Test__Loop->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +ret_val.nssai__Delete__Request() = single_value.field_nssai__Delete__Request->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +ret_val.set__UAI__Request() = single_value.field_set__UAI__Request->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +ret_val.set__UL__Message__Request() = single_value.field_set__UL__Message__Request->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +ret_val.test__Loop__Sidelink__Counter__Request() = single_value.field_test__Loop__Sidelink__Counter__Request->valueof(); +break; +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +ret_val.update__Ue__Location__Information() = single_value.field_update__Ue__Location__Information->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +NG__NAS__DL__Message__Type_template& NG__NAS__DL__Message__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return value_list.list_value[list_index]; +} +void NG__NAS__DL__Message__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NG__NAS__DL__Message__Type_template[list_length]; +} + +NG__NAS__DL__Message__Type::union_selection_type NG__NAS__DL__Message__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return single_value.union_selection; +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template& NG__NAS__DL__Message__Type_template::authentication__Reject() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_authentication__Reject) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_authentication__Reject = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template(ANY_VALUE); +else single_value.field_authentication__Reject = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_authentication__Reject; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_authentication__Reject; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template& NG__NAS__DL__Message__Type_template::authentication__Reject() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field authentication_Reject in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_authentication__Reject) TTCN_error("Accessing non-selected field authentication_Reject in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_authentication__Reject; +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template& NG__NAS__DL__Message__Type_template::authentication__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_authentication__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_authentication__Request = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template(ANY_VALUE); +else single_value.field_authentication__Request = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_authentication__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_authentication__Request; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template& NG__NAS__DL__Message__Type_template::authentication__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field authentication_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_authentication__Request) TTCN_error("Accessing non-selected field authentication_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_authentication__Request; +} + +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template& NG__NAS__DL__Message__Type_template::authentication__Result() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_authentication__Result) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_authentication__Result = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template(ANY_VALUE); +else single_value.field_authentication__Result = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_authentication__Result; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_authentication__Result; +} + +const NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template& NG__NAS__DL__Message__Type_template::authentication__Result() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field authentication_Result in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_authentication__Result) TTCN_error("Accessing non-selected field authentication_Result in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_authentication__Result; +} + +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template& NG__NAS__DL__Message__Type_template::configuration__Update__Command() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_configuration__Update__Command) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_configuration__Update__Command = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template(ANY_VALUE); +else single_value.field_configuration__Update__Command = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_configuration__Update__Command; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_configuration__Update__Command; +} + +const NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template& NG__NAS__DL__Message__Type_template::configuration__Update__Command() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field configuration_Update_Command in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_configuration__Update__Command) TTCN_error("Accessing non-selected field configuration_Update_Command in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_configuration__Update__Command; +} + +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& NG__NAS__DL__Message__Type_template::deregistration__Accept() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_deregistration__Accept) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template(ANY_VALUE); +else single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_deregistration__Accept; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_deregistration__Accept; +} + +const NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& NG__NAS__DL__Message__Type_template::deregistration__Accept() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field deregistration_Accept in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_deregistration__Accept) TTCN_error("Accessing non-selected field deregistration_Accept in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_deregistration__Accept; +} + +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template& NG__NAS__DL__Message__Type_template::deregistration__RequestMT() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_deregistration__RequestMT = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template(ANY_VALUE); +else single_value.field_deregistration__RequestMT = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_deregistration__RequestMT; +} + +const NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template& NG__NAS__DL__Message__Type_template::deregistration__RequestMT() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field deregistration_RequestMT in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT) TTCN_error("Accessing non-selected field deregistration_RequestMT in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_deregistration__RequestMT; +} + +NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template& NG__NAS__DL__Message__Type_template::dl__Nas__Transport() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_dl__Nas__Transport = new NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template(ANY_VALUE); +else single_value.field_dl__Nas__Transport = new NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_dl__Nas__Transport; +} + +const NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template& NG__NAS__DL__Message__Type_template::dl__Nas__Transport() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field dl_Nas_Transport in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport) TTCN_error("Accessing non-selected field dl_Nas_Transport in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_dl__Nas__Transport; +} + +NG__NAS__TypeDefs::NG__GMM__STATUS_template& NG__NAS__DL__Message__Type_template::gmm__Status() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_gmm__Status) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template(ANY_VALUE); +else single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_gmm__Status; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_gmm__Status; +} + +const NG__NAS__TypeDefs::NG__GMM__STATUS_template& NG__NAS__DL__Message__Type_template::gmm__Status() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field gmm_Status in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_gmm__Status) TTCN_error("Accessing non-selected field gmm_Status in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_gmm__Status; +} + +NG__NAS__TypeDefs::NG__GSM__STATUS_template& NG__NAS__DL__Message__Type_template::gsm__Status() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_gsm__Status) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template(ANY_VALUE); +else single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_gsm__Status; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_gsm__Status; +} + +const NG__NAS__TypeDefs::NG__GSM__STATUS_template& NG__NAS__DL__Message__Type_template::gsm__Status() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field gsm_Status in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_gsm__Status) TTCN_error("Accessing non-selected field gsm_Status in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_gsm__Status; +} + +NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template& NG__NAS__DL__Message__Type_template::identity__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_identity__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_identity__Request = new NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template(ANY_VALUE); +else single_value.field_identity__Request = new NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_identity__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_identity__Request; +} + +const NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template& NG__NAS__DL__Message__Type_template::identity__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field identity_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_identity__Request) TTCN_error("Accessing non-selected field identity_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_identity__Request; +} + +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& NG__NAS__DL__Message__Type_template::network__Slice__Specific__Authentication__Command() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_network__Slice__Specific__Authentication__Command = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(ANY_VALUE); +else single_value.field_network__Slice__Specific__Authentication__Command = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_network__Slice__Specific__Authentication__Command; +} + +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& NG__NAS__DL__Message__Type_template::network__Slice__Specific__Authentication__Command() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field network_Slice_Specific_Authentication_Command in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command) TTCN_error("Accessing non-selected field network_Slice_Specific_Authentication_Command in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_network__Slice__Specific__Authentication__Command; +} + +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& NG__NAS__DL__Message__Type_template::network__Slice__Specific__Authentication__Result() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_network__Slice__Specific__Authentication__Result = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(ANY_VALUE); +else single_value.field_network__Slice__Specific__Authentication__Result = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_network__Slice__Specific__Authentication__Result; +} + +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& NG__NAS__DL__Message__Type_template::network__Slice__Specific__Authentication__Result() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field network_Slice_Specific_Authentication_Result in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result) TTCN_error("Accessing non-selected field network_Slice_Specific_Authentication_Result in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_network__Slice__Specific__Authentication__Result; +} + +NG__NAS__TypeDefs::NG__NOTIFICATION_template& NG__NAS__DL__Message__Type_template::notification() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_notification) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_notification = new NG__NAS__TypeDefs::NG__NOTIFICATION_template(ANY_VALUE); +else single_value.field_notification = new NG__NAS__TypeDefs::NG__NOTIFICATION_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_notification; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_notification; +} + +const NG__NAS__TypeDefs::NG__NOTIFICATION_template& NG__NAS__DL__Message__Type_template::notification() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field notification in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_notification) TTCN_error("Accessing non-selected field notification in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_notification; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& NG__NAS__DL__Message__Type_template::pdu__Session__Authentication__Command() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Authentication__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(ANY_VALUE); +else single_value.field_pdu__Session__Authentication__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Authentication__Command; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& NG__NAS__DL__Message__Type_template::pdu__Session__Authentication__Command() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Authentication_Command in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command) TTCN_error("Accessing non-selected field pdu_Session_Authentication_Command in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_pdu__Session__Authentication__Command; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Authentication__Result() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Authentication__Result = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template(ANY_VALUE); +else single_value.field_pdu__Session__Authentication__Result = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Authentication__Result; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Authentication__Result() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Authentication_Result in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result) TTCN_error("Accessing non-selected field pdu_Session_Authentication_Result in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_pdu__Session__Authentication__Result; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Establishment__Accept() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Establishment__Accept = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(ANY_VALUE); +else single_value.field_pdu__Session__Establishment__Accept = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Establishment__Accept; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Establishment__Accept() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Establishment_Accept in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept) TTCN_error("Accessing non-selected field pdu_Session_Establishment_Accept in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_pdu__Session__Establishment__Accept; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Establishment__Reject() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Establishment__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(ANY_VALUE); +else single_value.field_pdu__Session__Establishment__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Establishment__Reject; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Establishment__Reject() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Establishment_Reject in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject) TTCN_error("Accessing non-selected field pdu_Session_Establishment_Reject in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_pdu__Session__Establishment__Reject; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template& NG__NAS__DL__Message__Type_template::pdu__Session__Modification__Command() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Modification__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template(ANY_VALUE); +else single_value.field_pdu__Session__Modification__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Modification__Command; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template& NG__NAS__DL__Message__Type_template::pdu__Session__Modification__Command() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Modification_Command in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command) TTCN_error("Accessing non-selected field pdu_Session_Modification_Command in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_pdu__Session__Modification__Command; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Modification__Reject() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Modification__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template(ANY_VALUE); +else single_value.field_pdu__Session__Modification__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Modification__Reject; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Modification__Reject() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Modification_Reject in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject) TTCN_error("Accessing non-selected field pdu_Session_Modification_Reject in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_pdu__Session__Modification__Reject; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template& NG__NAS__DL__Message__Type_template::pdu__Session__Release__Command() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Release__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template(ANY_VALUE); +else single_value.field_pdu__Session__Release__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Release__Command; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template& NG__NAS__DL__Message__Type_template::pdu__Session__Release__Command() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Release_Command in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command) TTCN_error("Accessing non-selected field pdu_Session_Release_Command in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_pdu__Session__Release__Command; +} + +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Release__Reject() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pdu__Session__Release__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template(ANY_VALUE); +else single_value.field_pdu__Session__Release__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pdu__Session__Release__Reject; +} + +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template& NG__NAS__DL__Message__Type_template::pdu__Session__Release__Reject() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pdu_Session_Release_Reject in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject) TTCN_error("Accessing non-selected field pdu_Session_Release_Reject in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_pdu__Session__Release__Reject; +} + +NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template& NG__NAS__DL__Message__Type_template::registration__Accept() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_registration__Accept) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_registration__Accept = new NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template(ANY_VALUE); +else single_value.field_registration__Accept = new NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_registration__Accept; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_registration__Accept; +} + +const NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template& NG__NAS__DL__Message__Type_template::registration__Accept() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field registration_Accept in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_registration__Accept) TTCN_error("Accessing non-selected field registration_Accept in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_registration__Accept; +} + +NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template& NG__NAS__DL__Message__Type_template::registration__Reject() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_registration__Reject) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_registration__Reject = new NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template(ANY_VALUE); +else single_value.field_registration__Reject = new NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_registration__Reject; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_registration__Reject; +} + +const NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template& NG__NAS__DL__Message__Type_template::registration__Reject() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field registration_Reject in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_registration__Reject) TTCN_error("Accessing non-selected field registration_Reject in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_registration__Reject; +} + +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template& NG__NAS__DL__Message__Type_template::security__Mode__Command() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_security__Mode__Command) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_security__Mode__Command = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template(ANY_VALUE); +else single_value.field_security__Mode__Command = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_security__Mode__Command; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_security__Mode__Command; +} + +const NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template& NG__NAS__DL__Message__Type_template::security__Mode__Command() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field security_Mode_Command in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_security__Mode__Command) TTCN_error("Accessing non-selected field security_Mode_Command in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_security__Mode__Command; +} + +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template& NG__NAS__DL__Message__Type_template::security__Protected__Nas__Message() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template(ANY_VALUE); +else single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_security__Protected__Nas__Message; +} + +const NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template& NG__NAS__DL__Message__Type_template::security__Protected__Nas__Message() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field security_Protected_Nas_Message in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message) TTCN_error("Accessing non-selected field security_Protected_Nas_Message in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_security__Protected__Nas__Message; +} + +NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template& NG__NAS__DL__Message__Type_template::service__Accept() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_service__Accept) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_service__Accept = new NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template(ANY_VALUE); +else single_value.field_service__Accept = new NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_service__Accept; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_service__Accept; +} + +const NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template& NG__NAS__DL__Message__Type_template::service__Accept() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field service_Accept in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_service__Accept) TTCN_error("Accessing non-selected field service_Accept in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_service__Accept; +} + +NG__NAS__TypeDefs::NG__SERVICE__REJECT_template& NG__NAS__DL__Message__Type_template::service__Reject() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_service__Reject) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_service__Reject = new NG__NAS__TypeDefs::NG__SERVICE__REJECT_template(ANY_VALUE); +else single_value.field_service__Reject = new NG__NAS__TypeDefs::NG__SERVICE__REJECT_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_service__Reject; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_service__Reject; +} + +const NG__NAS__TypeDefs::NG__SERVICE__REJECT_template& NG__NAS__DL__Message__Type_template::service__Reject() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field service_Reject in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_service__Reject) TTCN_error("Accessing non-selected field service_Reject in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_service__Reject; +} + +NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template& NG__NAS__DL__Message__Type_template::reset__UE__Positioning__Stored__Information() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_reset__UE__Positioning__Stored__Information = new NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template(ANY_VALUE); +else single_value.field_reset__UE__Positioning__Stored__Information = new NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_reset__UE__Positioning__Stored__Information; +} + +const NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template& NG__NAS__DL__Message__Type_template::reset__UE__Positioning__Stored__Information() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field reset_UE_Positioning_Stored_Information in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information) TTCN_error("Accessing non-selected field reset_UE_Positioning_Stored_Information in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_reset__UE__Positioning__Stored__Information; +} + +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template& NG__NAS__DL__Message__Type_template::activate__Test__Mode() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_activate__Test__Mode) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_activate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template(ANY_VALUE); +else single_value.field_activate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_activate__Test__Mode; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_activate__Test__Mode; +} + +const EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template& NG__NAS__DL__Message__Type_template::activate__Test__Mode() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field activate_Test_Mode in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_activate__Test__Mode) TTCN_error("Accessing non-selected field activate_Test_Mode in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_activate__Test__Mode; +} + +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template& NG__NAS__DL__Message__Type_template::deactivate__Test__Mode() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_deactivate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template(ANY_VALUE); +else single_value.field_deactivate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_deactivate__Test__Mode; +} + +const EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template& NG__NAS__DL__Message__Type_template::deactivate__Test__Mode() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field deactivate_Test_Mode in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode) TTCN_error("Accessing non-selected field deactivate_Test_Mode in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_deactivate__Test__Mode; +} + +Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template& NG__NAS__DL__Message__Type_template::close__Ue__Test__Loop() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_close__Ue__Test__Loop = new Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template(ANY_VALUE); +else single_value.field_close__Ue__Test__Loop = new Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_close__Ue__Test__Loop; +} + +const Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template& NG__NAS__DL__Message__Type_template::close__Ue__Test__Loop() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field close_Ue_Test_Loop in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop) TTCN_error("Accessing non-selected field close_Ue_Test_Loop in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_close__Ue__Test__Loop; +} + +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template& NG__NAS__DL__Message__Type_template::open__Ue__Test__Loop() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_open__Ue__Test__Loop = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template(ANY_VALUE); +else single_value.field_open__Ue__Test__Loop = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_open__Ue__Test__Loop; +} + +const EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template& NG__NAS__DL__Message__Type_template::open__Ue__Test__Loop() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field open_Ue_Test_Loop in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop) TTCN_error("Accessing non-selected field open_Ue_Test_Loop in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_open__Ue__Test__Loop; +} + +NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template& NG__NAS__DL__Message__Type_template::nssai__Delete__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_nssai__Delete__Request = new NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template(ANY_VALUE); +else single_value.field_nssai__Delete__Request = new NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_nssai__Delete__Request; +} + +const NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template& NG__NAS__DL__Message__Type_template::nssai__Delete__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field nssai_Delete_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request) TTCN_error("Accessing non-selected field nssai_Delete_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_nssai__Delete__Request; +} + +NG__NAS__TypeDefs::SET__UAI__REQUEST_template& NG__NAS__DL__Message__Type_template::set__UAI__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_set__UAI__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_set__UAI__Request = new NG__NAS__TypeDefs::SET__UAI__REQUEST_template(ANY_VALUE); +else single_value.field_set__UAI__Request = new NG__NAS__TypeDefs::SET__UAI__REQUEST_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_set__UAI__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_set__UAI__Request; +} + +const NG__NAS__TypeDefs::SET__UAI__REQUEST_template& NG__NAS__DL__Message__Type_template::set__UAI__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field set_UAI_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_set__UAI__Request) TTCN_error("Accessing non-selected field set_UAI_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_set__UAI__Request; +} + +Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template& NG__NAS__DL__Message__Type_template::set__UL__Message__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_set__UL__Message__Request = new Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template(ANY_VALUE); +else single_value.field_set__UL__Message__Request = new Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_set__UL__Message__Request; +} + +const Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template& NG__NAS__DL__Message__Type_template::set__UL__Message__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field set_UL_Message_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request) TTCN_error("Accessing non-selected field set_UL_Message_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_set__UL__Message__Request; +} + +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& NG__NAS__DL__Message__Type_template::test__Loop__Sidelink__Counter__Request() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_test__Loop__Sidelink__Counter__Request = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(ANY_VALUE); +else single_value.field_test__Loop__Sidelink__Counter__Request = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_test__Loop__Sidelink__Counter__Request; +} + +const NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& NG__NAS__DL__Message__Type_template::test__Loop__Sidelink__Counter__Request() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field test_Loop_Sidelink_Counter_Request in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request) TTCN_error("Accessing non-selected field test_Loop_Sidelink_Counter_Request in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_test__Loop__Sidelink__Counter__Request; +} + +EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template& NG__NAS__DL__Message__Type_template::update__Ue__Location__Information() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_update__Ue__Location__Information = new EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template(ANY_VALUE); +else single_value.field_update__Ue__Location__Information = new EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template; +single_value.union_selection = NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_update__Ue__Location__Information; +} + +const EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template& NG__NAS__DL__Message__Type_template::update__Ue__Location__Information() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field update_Ue_Location_Information in a non-specific template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +if (single_value.union_selection != NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information) TTCN_error("Accessing non-selected field update_Ue_Location_Information in a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return *single_value.field_update__Ue__Location__Information; +} + +boolean NG__NAS__DL__Message__Type_template::ischosen(NG__NAS__DL__Message__Type::union_selection_type checked_selection) const +{ +if (checked_selection == NG__NAS__DL__Message__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == NG__NAS__DL__Message__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void NG__NAS__DL__Message__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NG__NAS__DL__Message__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NG__NAS__DL__Message__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NG__NAS__DL__Message__Type_template::clone() const { return new NG__NAS__DL__Message__Type_template(*this); } +const TTCN_Typedescriptor_t* NG__NAS__DL__Message__Type_template::get_descriptor() const { return &NG__NAS__DL__Message__Type_descr_; } +boolean NG__NAS__DL__Message__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NG__NAS__DL__Message__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NG__NAS__DL__Message__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +TTCN_Logger::log_event_str("{ authentication_Reject := "); +single_value.field_authentication__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +TTCN_Logger::log_event_str("{ authentication_Request := "); +single_value.field_authentication__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +TTCN_Logger::log_event_str("{ authentication_Result := "); +single_value.field_authentication__Result->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +TTCN_Logger::log_event_str("{ configuration_Update_Command := "); +single_value.field_configuration__Update__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +TTCN_Logger::log_event_str("{ deregistration_Accept := "); +single_value.field_deregistration__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +TTCN_Logger::log_event_str("{ deregistration_RequestMT := "); +single_value.field_deregistration__RequestMT->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +TTCN_Logger::log_event_str("{ dl_Nas_Transport := "); +single_value.field_dl__Nas__Transport->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +TTCN_Logger::log_event_str("{ gmm_Status := "); +single_value.field_gmm__Status->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +TTCN_Logger::log_event_str("{ gsm_Status := "); +single_value.field_gsm__Status->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_identity__Request: +TTCN_Logger::log_event_str("{ identity_Request := "); +single_value.field_identity__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +TTCN_Logger::log_event_str("{ network_Slice_Specific_Authentication_Command := "); +single_value.field_network__Slice__Specific__Authentication__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +TTCN_Logger::log_event_str("{ network_Slice_Specific_Authentication_Result := "); +single_value.field_network__Slice__Specific__Authentication__Result->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_notification: +TTCN_Logger::log_event_str("{ notification := "); +single_value.field_notification->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +TTCN_Logger::log_event_str("{ pdu_Session_Authentication_Command := "); +single_value.field_pdu__Session__Authentication__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +TTCN_Logger::log_event_str("{ pdu_Session_Authentication_Result := "); +single_value.field_pdu__Session__Authentication__Result->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +TTCN_Logger::log_event_str("{ pdu_Session_Establishment_Accept := "); +single_value.field_pdu__Session__Establishment__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +TTCN_Logger::log_event_str("{ pdu_Session_Establishment_Reject := "); +single_value.field_pdu__Session__Establishment__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Command := "); +single_value.field_pdu__Session__Modification__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Reject := "); +single_value.field_pdu__Session__Modification__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +TTCN_Logger::log_event_str("{ pdu_Session_Release_Command := "); +single_value.field_pdu__Session__Release__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +TTCN_Logger::log_event_str("{ pdu_Session_Release_Reject := "); +single_value.field_pdu__Session__Release__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +TTCN_Logger::log_event_str("{ registration_Accept := "); +single_value.field_registration__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +TTCN_Logger::log_event_str("{ registration_Reject := "); +single_value.field_registration__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +TTCN_Logger::log_event_str("{ security_Mode_Command := "); +single_value.field_security__Mode__Command->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +TTCN_Logger::log_event_str("{ security_Protected_Nas_Message := "); +single_value.field_security__Protected__Nas__Message->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_service__Accept: +TTCN_Logger::log_event_str("{ service_Accept := "); +single_value.field_service__Accept->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_service__Reject: +TTCN_Logger::log_event_str("{ service_Reject := "); +single_value.field_service__Reject->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +TTCN_Logger::log_event_str("{ reset_UE_Positioning_Stored_Information := "); +single_value.field_reset__UE__Positioning__Stored__Information->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +TTCN_Logger::log_event_str("{ activate_Test_Mode := "); +single_value.field_activate__Test__Mode->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +TTCN_Logger::log_event_str("{ deactivate_Test_Mode := "); +single_value.field_deactivate__Test__Mode->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +TTCN_Logger::log_event_str("{ close_Ue_Test_Loop := "); +single_value.field_close__Ue__Test__Loop->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +TTCN_Logger::log_event_str("{ open_Ue_Test_Loop := "); +single_value.field_open__Ue__Test__Loop->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +TTCN_Logger::log_event_str("{ nssai_Delete_Request := "); +single_value.field_nssai__Delete__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +TTCN_Logger::log_event_str("{ set_UAI_Request := "); +single_value.field_set__UAI__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +TTCN_Logger::log_event_str("{ set_UL_Message_Request := "); +single_value.field_set__UL__Message__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +TTCN_Logger::log_event_str("{ test_Loop_Sidelink_Counter_Request := "); +single_value.field_test__Loop__Sidelink__Counter__Request->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +TTCN_Logger::log_event_str("{ update_Ue_Location_Information := "); +single_value.field_update__Ue__Location__Information->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void NG__NAS__DL__Message__Type_template::log_match(const NG__NAS__DL__Message__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".authentication_Reject"); +single_value.field_authentication__Reject->log_match(match_value.authentication__Reject(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ authentication_Reject := "); +single_value.field_authentication__Reject->log_match(match_value.authentication__Reject(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".authentication_Request"); +single_value.field_authentication__Request->log_match(match_value.authentication__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ authentication_Request := "); +single_value.field_authentication__Request->log_match(match_value.authentication__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".authentication_Result"); +single_value.field_authentication__Result->log_match(match_value.authentication__Result(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ authentication_Result := "); +single_value.field_authentication__Result->log_match(match_value.authentication__Result(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".configuration_Update_Command"); +single_value.field_configuration__Update__Command->log_match(match_value.configuration__Update__Command(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ configuration_Update_Command := "); +single_value.field_configuration__Update__Command->log_match(match_value.configuration__Update__Command(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".deregistration_Accept"); +single_value.field_deregistration__Accept->log_match(match_value.deregistration__Accept(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ deregistration_Accept := "); +single_value.field_deregistration__Accept->log_match(match_value.deregistration__Accept(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".deregistration_RequestMT"); +single_value.field_deregistration__RequestMT->log_match(match_value.deregistration__RequestMT(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ deregistration_RequestMT := "); +single_value.field_deregistration__RequestMT->log_match(match_value.deregistration__RequestMT(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".dl_Nas_Transport"); +single_value.field_dl__Nas__Transport->log_match(match_value.dl__Nas__Transport(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ dl_Nas_Transport := "); +single_value.field_dl__Nas__Transport->log_match(match_value.dl__Nas__Transport(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".gmm_Status"); +single_value.field_gmm__Status->log_match(match_value.gmm__Status(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ gmm_Status := "); +single_value.field_gmm__Status->log_match(match_value.gmm__Status(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".gsm_Status"); +single_value.field_gsm__Status->log_match(match_value.gsm__Status(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ gsm_Status := "); +single_value.field_gsm__Status->log_match(match_value.gsm__Status(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_identity__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".identity_Request"); +single_value.field_identity__Request->log_match(match_value.identity__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ identity_Request := "); +single_value.field_identity__Request->log_match(match_value.identity__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".network_Slice_Specific_Authentication_Command"); +single_value.field_network__Slice__Specific__Authentication__Command->log_match(match_value.network__Slice__Specific__Authentication__Command(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ network_Slice_Specific_Authentication_Command := "); +single_value.field_network__Slice__Specific__Authentication__Command->log_match(match_value.network__Slice__Specific__Authentication__Command(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".network_Slice_Specific_Authentication_Result"); +single_value.field_network__Slice__Specific__Authentication__Result->log_match(match_value.network__Slice__Specific__Authentication__Result(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ network_Slice_Specific_Authentication_Result := "); +single_value.field_network__Slice__Specific__Authentication__Result->log_match(match_value.network__Slice__Specific__Authentication__Result(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_notification: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".notification"); +single_value.field_notification->log_match(match_value.notification(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ notification := "); +single_value.field_notification->log_match(match_value.notification(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Authentication_Command"); +single_value.field_pdu__Session__Authentication__Command->log_match(match_value.pdu__Session__Authentication__Command(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Authentication_Command := "); +single_value.field_pdu__Session__Authentication__Command->log_match(match_value.pdu__Session__Authentication__Command(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Authentication_Result"); +single_value.field_pdu__Session__Authentication__Result->log_match(match_value.pdu__Session__Authentication__Result(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Authentication_Result := "); +single_value.field_pdu__Session__Authentication__Result->log_match(match_value.pdu__Session__Authentication__Result(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Establishment_Accept"); +single_value.field_pdu__Session__Establishment__Accept->log_match(match_value.pdu__Session__Establishment__Accept(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Establishment_Accept := "); +single_value.field_pdu__Session__Establishment__Accept->log_match(match_value.pdu__Session__Establishment__Accept(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Establishment_Reject"); +single_value.field_pdu__Session__Establishment__Reject->log_match(match_value.pdu__Session__Establishment__Reject(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Establishment_Reject := "); +single_value.field_pdu__Session__Establishment__Reject->log_match(match_value.pdu__Session__Establishment__Reject(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Modification_Command"); +single_value.field_pdu__Session__Modification__Command->log_match(match_value.pdu__Session__Modification__Command(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Command := "); +single_value.field_pdu__Session__Modification__Command->log_match(match_value.pdu__Session__Modification__Command(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Modification_Reject"); +single_value.field_pdu__Session__Modification__Reject->log_match(match_value.pdu__Session__Modification__Reject(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Modification_Reject := "); +single_value.field_pdu__Session__Modification__Reject->log_match(match_value.pdu__Session__Modification__Reject(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Release_Command"); +single_value.field_pdu__Session__Release__Command->log_match(match_value.pdu__Session__Release__Command(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Release_Command := "); +single_value.field_pdu__Session__Release__Command->log_match(match_value.pdu__Session__Release__Command(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pdu_Session_Release_Reject"); +single_value.field_pdu__Session__Release__Reject->log_match(match_value.pdu__Session__Release__Reject(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pdu_Session_Release_Reject := "); +single_value.field_pdu__Session__Release__Reject->log_match(match_value.pdu__Session__Release__Reject(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".registration_Accept"); +single_value.field_registration__Accept->log_match(match_value.registration__Accept(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ registration_Accept := "); +single_value.field_registration__Accept->log_match(match_value.registration__Accept(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".registration_Reject"); +single_value.field_registration__Reject->log_match(match_value.registration__Reject(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ registration_Reject := "); +single_value.field_registration__Reject->log_match(match_value.registration__Reject(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".security_Mode_Command"); +single_value.field_security__Mode__Command->log_match(match_value.security__Mode__Command(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ security_Mode_Command := "); +single_value.field_security__Mode__Command->log_match(match_value.security__Mode__Command(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".security_Protected_Nas_Message"); +single_value.field_security__Protected__Nas__Message->log_match(match_value.security__Protected__Nas__Message(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ security_Protected_Nas_Message := "); +single_value.field_security__Protected__Nas__Message->log_match(match_value.security__Protected__Nas__Message(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_service__Accept: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".service_Accept"); +single_value.field_service__Accept->log_match(match_value.service__Accept(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ service_Accept := "); +single_value.field_service__Accept->log_match(match_value.service__Accept(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_service__Reject: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".service_Reject"); +single_value.field_service__Reject->log_match(match_value.service__Reject(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ service_Reject := "); +single_value.field_service__Reject->log_match(match_value.service__Reject(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".reset_UE_Positioning_Stored_Information"); +single_value.field_reset__UE__Positioning__Stored__Information->log_match(match_value.reset__UE__Positioning__Stored__Information(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ reset_UE_Positioning_Stored_Information := "); +single_value.field_reset__UE__Positioning__Stored__Information->log_match(match_value.reset__UE__Positioning__Stored__Information(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".activate_Test_Mode"); +single_value.field_activate__Test__Mode->log_match(match_value.activate__Test__Mode(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ activate_Test_Mode := "); +single_value.field_activate__Test__Mode->log_match(match_value.activate__Test__Mode(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".deactivate_Test_Mode"); +single_value.field_deactivate__Test__Mode->log_match(match_value.deactivate__Test__Mode(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ deactivate_Test_Mode := "); +single_value.field_deactivate__Test__Mode->log_match(match_value.deactivate__Test__Mode(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".close_Ue_Test_Loop"); +single_value.field_close__Ue__Test__Loop->log_match(match_value.close__Ue__Test__Loop(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ close_Ue_Test_Loop := "); +single_value.field_close__Ue__Test__Loop->log_match(match_value.close__Ue__Test__Loop(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".open_Ue_Test_Loop"); +single_value.field_open__Ue__Test__Loop->log_match(match_value.open__Ue__Test__Loop(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ open_Ue_Test_Loop := "); +single_value.field_open__Ue__Test__Loop->log_match(match_value.open__Ue__Test__Loop(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".nssai_Delete_Request"); +single_value.field_nssai__Delete__Request->log_match(match_value.nssai__Delete__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ nssai_Delete_Request := "); +single_value.field_nssai__Delete__Request->log_match(match_value.nssai__Delete__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".set_UAI_Request"); +single_value.field_set__UAI__Request->log_match(match_value.set__UAI__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ set_UAI_Request := "); +single_value.field_set__UAI__Request->log_match(match_value.set__UAI__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".set_UL_Message_Request"); +single_value.field_set__UL__Message__Request->log_match(match_value.set__UL__Message__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ set_UL_Message_Request := "); +single_value.field_set__UL__Message__Request->log_match(match_value.set__UL__Message__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".test_Loop_Sidelink_Counter_Request"); +single_value.field_test__Loop__Sidelink__Counter__Request->log_match(match_value.test__Loop__Sidelink__Counter__Request(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ test_Loop_Sidelink_Counter_Request := "); +single_value.field_test__Loop__Sidelink__Counter__Request->log_match(match_value.test__Loop__Sidelink__Counter__Request(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".update_Ue_Location_Information"); +single_value.field_update__Ue__Location__Information->log_match(match_value.update__Ue__Location__Information(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ update_Ue_Location_Information := "); +single_value.field_update__Ue__Location__Information->log_match(match_value.update__Ue__Location__Information(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void NG__NAS__DL__Message__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +single_value.field_authentication__Reject->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +single_value.field_authentication__Request->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +single_value.field_authentication__Result->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +single_value.field_configuration__Update__Command->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +single_value.field_deregistration__RequestMT->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +single_value.field_dl__Nas__Transport->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_identity__Request: +single_value.field_identity__Request->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +single_value.field_network__Slice__Specific__Authentication__Command->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +single_value.field_network__Slice__Specific__Authentication__Result->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_notification: +single_value.field_notification->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +single_value.field_pdu__Session__Authentication__Command->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +single_value.field_pdu__Session__Authentication__Result->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +single_value.field_pdu__Session__Establishment__Accept->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +single_value.field_pdu__Session__Establishment__Reject->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +single_value.field_pdu__Session__Modification__Command->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +single_value.field_pdu__Session__Modification__Reject->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +single_value.field_pdu__Session__Release__Command->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +single_value.field_pdu__Session__Release__Reject->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +single_value.field_registration__Accept->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +single_value.field_registration__Reject->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +single_value.field_security__Mode__Command->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_service__Accept: +single_value.field_service__Accept->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_service__Reject: +single_value.field_service__Reject->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +single_value.field_reset__UE__Positioning__Stored__Information->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +single_value.field_activate__Test__Mode->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +single_value.field_deactivate__Test__Mode->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +single_value.field_close__Ue__Test__Loop->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +single_value.field_open__Ue__Test__Loop->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +single_value.field_nssai__Delete__Request->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +single_value.field_set__UAI__Request->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +single_value.field_set__UL__Message__Request->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +single_value.field_test__Loop__Sidelink__Counter__Request->encode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +single_value.field_update__Ue__Location__Information->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +} + +void NG__NAS__DL__Message__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = NG__NAS__DL__Message__Type::UNBOUND_VALUE; +NG__NAS__DL__Message__Type::union_selection_type new_selection = (NG__NAS__DL__Message__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +single_value.field_authentication__Reject = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template; +single_value.field_authentication__Reject->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +single_value.field_authentication__Request = new NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template; +single_value.field_authentication__Request->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +single_value.field_authentication__Result = new NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template; +single_value.field_authentication__Result->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +single_value.field_configuration__Update__Command = new NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template; +single_value.field_configuration__Update__Command->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept = new NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template; +single_value.field_deregistration__Accept->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +single_value.field_deregistration__RequestMT = new NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template; +single_value.field_deregistration__RequestMT->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +single_value.field_dl__Nas__Transport = new NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template; +single_value.field_dl__Nas__Transport->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status = new NG__NAS__TypeDefs::NG__GMM__STATUS_template; +single_value.field_gmm__Status->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status = new NG__NAS__TypeDefs::NG__GSM__STATUS_template; +single_value.field_gsm__Status->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_identity__Request: +single_value.field_identity__Request = new NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template; +single_value.field_identity__Request->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +single_value.field_network__Slice__Specific__Authentication__Command = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template; +single_value.field_network__Slice__Specific__Authentication__Command->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +single_value.field_network__Slice__Specific__Authentication__Result = new NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template; +single_value.field_network__Slice__Specific__Authentication__Result->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_notification: +single_value.field_notification = new NG__NAS__TypeDefs::NG__NOTIFICATION_template; +single_value.field_notification->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +single_value.field_pdu__Session__Authentication__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template; +single_value.field_pdu__Session__Authentication__Command->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +single_value.field_pdu__Session__Authentication__Result = new NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template; +single_value.field_pdu__Session__Authentication__Result->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +single_value.field_pdu__Session__Establishment__Accept = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template; +single_value.field_pdu__Session__Establishment__Accept->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +single_value.field_pdu__Session__Establishment__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template; +single_value.field_pdu__Session__Establishment__Reject->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +single_value.field_pdu__Session__Modification__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template; +single_value.field_pdu__Session__Modification__Command->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +single_value.field_pdu__Session__Modification__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template; +single_value.field_pdu__Session__Modification__Reject->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +single_value.field_pdu__Session__Release__Command = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template; +single_value.field_pdu__Session__Release__Command->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +single_value.field_pdu__Session__Release__Reject = new NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template; +single_value.field_pdu__Session__Release__Reject->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +single_value.field_registration__Accept = new NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template; +single_value.field_registration__Accept->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +single_value.field_registration__Reject = new NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template; +single_value.field_registration__Reject->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +single_value.field_security__Mode__Command = new NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template; +single_value.field_security__Mode__Command->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message = new NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template; +single_value.field_security__Protected__Nas__Message->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_service__Accept: +single_value.field_service__Accept = new NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template; +single_value.field_service__Accept->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_service__Reject: +single_value.field_service__Reject = new NG__NAS__TypeDefs::NG__SERVICE__REJECT_template; +single_value.field_service__Reject->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +single_value.field_reset__UE__Positioning__Stored__Information = new NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template; +single_value.field_reset__UE__Positioning__Stored__Information->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +single_value.field_activate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template; +single_value.field_activate__Test__Mode->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +single_value.field_deactivate__Test__Mode = new EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template; +single_value.field_deactivate__Test__Mode->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +single_value.field_close__Ue__Test__Loop = new Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template; +single_value.field_close__Ue__Test__Loop->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +single_value.field_open__Ue__Test__Loop = new EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template; +single_value.field_open__Ue__Test__Loop->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +single_value.field_nssai__Delete__Request = new NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template; +single_value.field_nssai__Delete__Request->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +single_value.field_set__UAI__Request = new NG__NAS__TypeDefs::SET__UAI__REQUEST_template; +single_value.field_set__UAI__Request->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +single_value.field_set__UL__Message__Request = new Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template; +single_value.field_set__UL__Message__Request->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +single_value.field_test__Loop__Sidelink__Counter__Request = new NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template; +single_value.field_test__Loop__Sidelink__Counter__Request->decode_text(text_buf); +break; +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +single_value.field_update__Ue__Location__Information = new EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template; +single_value.field_update__Ue__Location__Information->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NG__NAS__DL__Message__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +} + +boolean NG__NAS__DL__Message__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NG__NAS__DL__Message__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type'"); + } + if (strcmp("authentication_Reject", param_field) == 0) { + authentication__Reject().set_param(param); + return; + } else if (strcmp("authentication_Request", param_field) == 0) { + authentication__Request().set_param(param); + return; + } else if (strcmp("authentication_Result", param_field) == 0) { + authentication__Result().set_param(param); + return; + } else if (strcmp("configuration_Update_Command", param_field) == 0) { + configuration__Update__Command().set_param(param); + return; + } else if (strcmp("deregistration_Accept", param_field) == 0) { + deregistration__Accept().set_param(param); + return; + } else if (strcmp("deregistration_RequestMT", param_field) == 0) { + deregistration__RequestMT().set_param(param); + return; + } else if (strcmp("dl_Nas_Transport", param_field) == 0) { + dl__Nas__Transport().set_param(param); + return; + } else if (strcmp("gmm_Status", param_field) == 0) { + gmm__Status().set_param(param); + return; + } else if (strcmp("gsm_Status", param_field) == 0) { + gsm__Status().set_param(param); + return; + } else if (strcmp("identity_Request", param_field) == 0) { + identity__Request().set_param(param); + return; + } else if (strcmp("network_Slice_Specific_Authentication_Command", param_field) == 0) { + network__Slice__Specific__Authentication__Command().set_param(param); + return; + } else if (strcmp("network_Slice_Specific_Authentication_Result", param_field) == 0) { + network__Slice__Specific__Authentication__Result().set_param(param); + return; + } else if (strcmp("notification", param_field) == 0) { + notification().set_param(param); + return; + } else if (strcmp("pdu_Session_Authentication_Command", param_field) == 0) { + pdu__Session__Authentication__Command().set_param(param); + return; + } else if (strcmp("pdu_Session_Authentication_Result", param_field) == 0) { + pdu__Session__Authentication__Result().set_param(param); + return; + } else if (strcmp("pdu_Session_Establishment_Accept", param_field) == 0) { + pdu__Session__Establishment__Accept().set_param(param); + return; + } else if (strcmp("pdu_Session_Establishment_Reject", param_field) == 0) { + pdu__Session__Establishment__Reject().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Command", param_field) == 0) { + pdu__Session__Modification__Command().set_param(param); + return; + } else if (strcmp("pdu_Session_Modification_Reject", param_field) == 0) { + pdu__Session__Modification__Reject().set_param(param); + return; + } else if (strcmp("pdu_Session_Release_Command", param_field) == 0) { + pdu__Session__Release__Command().set_param(param); + return; + } else if (strcmp("pdu_Session_Release_Reject", param_field) == 0) { + pdu__Session__Release__Reject().set_param(param); + return; + } else if (strcmp("registration_Accept", param_field) == 0) { + registration__Accept().set_param(param); + return; + } else if (strcmp("registration_Reject", param_field) == 0) { + registration__Reject().set_param(param); + return; + } else if (strcmp("security_Mode_Command", param_field) == 0) { + security__Mode__Command().set_param(param); + return; + } else if (strcmp("security_Protected_Nas_Message", param_field) == 0) { + security__Protected__Nas__Message().set_param(param); + return; + } else if (strcmp("service_Accept", param_field) == 0) { + service__Accept().set_param(param); + return; + } else if (strcmp("service_Reject", param_field) == 0) { + service__Reject().set_param(param); + return; + } else if (strcmp("reset_UE_Positioning_Stored_Information", param_field) == 0) { + reset__UE__Positioning__Stored__Information().set_param(param); + return; + } else if (strcmp("activate_Test_Mode", param_field) == 0) { + activate__Test__Mode().set_param(param); + return; + } else if (strcmp("deactivate_Test_Mode", param_field) == 0) { + deactivate__Test__Mode().set_param(param); + return; + } else if (strcmp("close_Ue_Test_Loop", param_field) == 0) { + close__Ue__Test__Loop().set_param(param); + return; + } else if (strcmp("open_Ue_Test_Loop", param_field) == 0) { + open__Ue__Test__Loop().set_param(param); + return; + } else if (strcmp("nssai_Delete_Request", param_field) == 0) { + nssai__Delete__Request().set_param(param); + return; + } else if (strcmp("set_UAI_Request", param_field) == 0) { + set__UAI__Request().set_param(param); + return; + } else if (strcmp("set_UL_Message_Request", param_field) == 0) { + set__UL__Message__Request().set_param(param); + return; + } else if (strcmp("test_Loop_Sidelink_Counter_Request", param_field) == 0) { + test__Loop__Sidelink__Counter__Request().set_param(param); + return; + } else if (strcmp("update_Ue_Location_Information", param_field) == 0) { + update__Ue__Location__Information().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NG__NAS__DL__Message__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "authentication_Reject")) { + authentication__Reject().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "authentication_Request")) { + authentication__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "authentication_Result")) { + authentication__Result().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "configuration_Update_Command")) { + configuration__Update__Command().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "deregistration_Accept")) { + deregistration__Accept().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "deregistration_RequestMT")) { + deregistration__RequestMT().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "dl_Nas_Transport")) { + dl__Nas__Transport().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "gmm_Status")) { + gmm__Status().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "gsm_Status")) { + gsm__Status().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "identity_Request")) { + identity__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "network_Slice_Specific_Authentication_Command")) { + network__Slice__Specific__Authentication__Command().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "network_Slice_Specific_Authentication_Result")) { + network__Slice__Specific__Authentication__Result().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "notification")) { + notification().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Authentication_Command")) { + pdu__Session__Authentication__Command().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Authentication_Result")) { + pdu__Session__Authentication__Result().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Establishment_Accept")) { + pdu__Session__Establishment__Accept().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Establishment_Reject")) { + pdu__Session__Establishment__Reject().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Modification_Command")) { + pdu__Session__Modification__Command().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Modification_Reject")) { + pdu__Session__Modification__Reject().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Release_Command")) { + pdu__Session__Release__Command().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pdu_Session_Release_Reject")) { + pdu__Session__Release__Reject().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "registration_Accept")) { + registration__Accept().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "registration_Reject")) { + registration__Reject().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "security_Mode_Command")) { + security__Mode__Command().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "security_Protected_Nas_Message")) { + security__Protected__Nas__Message().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "service_Accept")) { + service__Accept().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "service_Reject")) { + service__Reject().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "reset_UE_Positioning_Stored_Information")) { + reset__UE__Positioning__Stored__Information().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "activate_Test_Mode")) { + activate__Test__Mode().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "deactivate_Test_Mode")) { + deactivate__Test__Mode().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "close_Ue_Test_Loop")) { + close__Ue__Test__Loop().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "open_Ue_Test_Loop")) { + open__Ue__Test__Loop().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "nssai_Delete_Request")) { + nssai__Delete__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "set_UAI_Request")) { + set__UAI__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "set_UL_Message_Request")) { + set__UL__Message__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "test_Loop_Sidelink_Counter_Request")) { + test__Loop__Sidelink__Counter__Request().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "update_Ue_Location_Information")) { + update__Ue__Location__Information().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + NG__NAS__DL__Message__Type_template* precondition = new NG__NAS__DL__Message__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NG__NAS__DL__Message__Type_template* implied_template = new NG__NAS__DL__Message__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NG__NAS__DL__Message__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NG__NAS__DL__Message__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type'"); + } + if (strcmp("authentication_Reject", param_field) == 0) { + return authentication__Reject().get_param(param_name); + } else if (strcmp("authentication_Request", param_field) == 0) { + return authentication__Request().get_param(param_name); + } else if (strcmp("authentication_Result", param_field) == 0) { + return authentication__Result().get_param(param_name); + } else if (strcmp("configuration_Update_Command", param_field) == 0) { + return configuration__Update__Command().get_param(param_name); + } else if (strcmp("deregistration_Accept", param_field) == 0) { + return deregistration__Accept().get_param(param_name); + } else if (strcmp("deregistration_RequestMT", param_field) == 0) { + return deregistration__RequestMT().get_param(param_name); + } else if (strcmp("dl_Nas_Transport", param_field) == 0) { + return dl__Nas__Transport().get_param(param_name); + } else if (strcmp("gmm_Status", param_field) == 0) { + return gmm__Status().get_param(param_name); + } else if (strcmp("gsm_Status", param_field) == 0) { + return gsm__Status().get_param(param_name); + } else if (strcmp("identity_Request", param_field) == 0) { + return identity__Request().get_param(param_name); + } else if (strcmp("network_Slice_Specific_Authentication_Command", param_field) == 0) { + return network__Slice__Specific__Authentication__Command().get_param(param_name); + } else if (strcmp("network_Slice_Specific_Authentication_Result", param_field) == 0) { + return network__Slice__Specific__Authentication__Result().get_param(param_name); + } else if (strcmp("notification", param_field) == 0) { + return notification().get_param(param_name); + } else if (strcmp("pdu_Session_Authentication_Command", param_field) == 0) { + return pdu__Session__Authentication__Command().get_param(param_name); + } else if (strcmp("pdu_Session_Authentication_Result", param_field) == 0) { + return pdu__Session__Authentication__Result().get_param(param_name); + } else if (strcmp("pdu_Session_Establishment_Accept", param_field) == 0) { + return pdu__Session__Establishment__Accept().get_param(param_name); + } else if (strcmp("pdu_Session_Establishment_Reject", param_field) == 0) { + return pdu__Session__Establishment__Reject().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Command", param_field) == 0) { + return pdu__Session__Modification__Command().get_param(param_name); + } else if (strcmp("pdu_Session_Modification_Reject", param_field) == 0) { + return pdu__Session__Modification__Reject().get_param(param_name); + } else if (strcmp("pdu_Session_Release_Command", param_field) == 0) { + return pdu__Session__Release__Command().get_param(param_name); + } else if (strcmp("pdu_Session_Release_Reject", param_field) == 0) { + return pdu__Session__Release__Reject().get_param(param_name); + } else if (strcmp("registration_Accept", param_field) == 0) { + return registration__Accept().get_param(param_name); + } else if (strcmp("registration_Reject", param_field) == 0) { + return registration__Reject().get_param(param_name); + } else if (strcmp("security_Mode_Command", param_field) == 0) { + return security__Mode__Command().get_param(param_name); + } else if (strcmp("security_Protected_Nas_Message", param_field) == 0) { + return security__Protected__Nas__Message().get_param(param_name); + } else if (strcmp("service_Accept", param_field) == 0) { + return service__Accept().get_param(param_name); + } else if (strcmp("service_Reject", param_field) == 0) { + return service__Reject().get_param(param_name); + } else if (strcmp("reset_UE_Positioning_Stored_Information", param_field) == 0) { + return reset__UE__Positioning__Stored__Information().get_param(param_name); + } else if (strcmp("activate_Test_Mode", param_field) == 0) { + return activate__Test__Mode().get_param(param_name); + } else if (strcmp("deactivate_Test_Mode", param_field) == 0) { + return deactivate__Test__Mode().get_param(param_name); + } else if (strcmp("close_Ue_Test_Loop", param_field) == 0) { + return close__Ue__Test__Loop().get_param(param_name); + } else if (strcmp("open_Ue_Test_Loop", param_field) == 0) { + return open__Ue__Test__Loop().get_param(param_name); + } else if (strcmp("nssai_Delete_Request", param_field) == 0) { + return nssai__Delete__Request().get_param(param_name); + } else if (strcmp("set_UAI_Request", param_field) == 0) { + return set__UAI__Request().get_param(param_name); + } else if (strcmp("set_UL_Message_Request", param_field) == 0) { + return set__UL__Message__Request().get_param(param_name); + } else if (strcmp("test_Loop_Sidelink_Counter_Request", param_field) == 0) { + return test__Loop__Sidelink__Counter__Request().get_param(param_name); + } else if (strcmp("update_Ue_Location_Information", param_field) == 0) { + return update__Ue__Location__Information().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__NAS__DL__Message__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case NG__NAS__DL__Message__Type::ALT_authentication__Reject: + mp_field = single_value.field_authentication__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Reject"))); + break; + case NG__NAS__DL__Message__Type::ALT_authentication__Request: + mp_field = single_value.field_authentication__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Request"))); + break; + case NG__NAS__DL__Message__Type::ALT_authentication__Result: + mp_field = single_value.field_authentication__Result->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("authentication_Result"))); + break; + case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: + mp_field = single_value.field_configuration__Update__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("configuration_Update_Command"))); + break; + case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: + mp_field = single_value.field_deregistration__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deregistration_Accept"))); + break; + case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: + mp_field = single_value.field_deregistration__RequestMT->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deregistration_RequestMT"))); + break; + case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: + mp_field = single_value.field_dl__Nas__Transport->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("dl_Nas_Transport"))); + break; + case NG__NAS__DL__Message__Type::ALT_gmm__Status: + mp_field = single_value.field_gmm__Status->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("gmm_Status"))); + break; + case NG__NAS__DL__Message__Type::ALT_gsm__Status: + mp_field = single_value.field_gsm__Status->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("gsm_Status"))); + break; + case NG__NAS__DL__Message__Type::ALT_identity__Request: + mp_field = single_value.field_identity__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("identity_Request"))); + break; + case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: + mp_field = single_value.field_network__Slice__Specific__Authentication__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("network_Slice_Specific_Authentication_Command"))); + break; + case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: + mp_field = single_value.field_network__Slice__Specific__Authentication__Result->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("network_Slice_Specific_Authentication_Result"))); + break; + case NG__NAS__DL__Message__Type::ALT_notification: + mp_field = single_value.field_notification->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("notification"))); + break; + case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: + mp_field = single_value.field_pdu__Session__Authentication__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Authentication_Command"))); + break; + case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: + mp_field = single_value.field_pdu__Session__Authentication__Result->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Authentication_Result"))); + break; + case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: + mp_field = single_value.field_pdu__Session__Establishment__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Establishment_Accept"))); + break; + case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: + mp_field = single_value.field_pdu__Session__Establishment__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Establishment_Reject"))); + break; + case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: + mp_field = single_value.field_pdu__Session__Modification__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Command"))); + break; + case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: + mp_field = single_value.field_pdu__Session__Modification__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Modification_Reject"))); + break; + case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: + mp_field = single_value.field_pdu__Session__Release__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Release_Command"))); + break; + case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: + mp_field = single_value.field_pdu__Session__Release__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pdu_Session_Release_Reject"))); + break; + case NG__NAS__DL__Message__Type::ALT_registration__Accept: + mp_field = single_value.field_registration__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("registration_Accept"))); + break; + case NG__NAS__DL__Message__Type::ALT_registration__Reject: + mp_field = single_value.field_registration__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("registration_Reject"))); + break; + case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: + mp_field = single_value.field_security__Mode__Command->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Mode_Command"))); + break; + case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: + mp_field = single_value.field_security__Protected__Nas__Message->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("security_Protected_Nas_Message"))); + break; + case NG__NAS__DL__Message__Type::ALT_service__Accept: + mp_field = single_value.field_service__Accept->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("service_Accept"))); + break; + case NG__NAS__DL__Message__Type::ALT_service__Reject: + mp_field = single_value.field_service__Reject->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("service_Reject"))); + break; + case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: + mp_field = single_value.field_reset__UE__Positioning__Stored__Information->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("reset_UE_Positioning_Stored_Information"))); + break; + case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: + mp_field = single_value.field_activate__Test__Mode->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("activate_Test_Mode"))); + break; + case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: + mp_field = single_value.field_deactivate__Test__Mode->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("deactivate_Test_Mode"))); + break; + case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: + mp_field = single_value.field_close__Ue__Test__Loop->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("close_Ue_Test_Loop"))); + break; + case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: + mp_field = single_value.field_open__Ue__Test__Loop->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("open_Ue_Test_Loop"))); + break; + case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: + mp_field = single_value.field_nssai__Delete__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("nssai_Delete_Request"))); + break; + case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: + mp_field = single_value.field_set__UAI__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("set_UAI_Request"))); + break; + case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: + mp_field = single_value.field_set__UL__Message__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("set_UL_Message_Request"))); + break; + case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: + mp_field = single_value.field_test__Loop__Sidelink__Counter__Request->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("test_Loop_Sidelink_Counter_Request"))); + break; + case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: + mp_field = single_value.field_update__Ue__Location__Information->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("update_Ue_Location_Information"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NG__NAS__DL__Message__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case NG__NAS__DL__Message__Type::ALT_authentication__Reject: +single_value.field_authentication__Reject->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_authentication__Request: +single_value.field_authentication__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_authentication__Result: +single_value.field_authentication__Result->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_configuration__Update__Command: +single_value.field_configuration__Update__Command->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_deregistration__Accept: +single_value.field_deregistration__Accept->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_deregistration__RequestMT: +single_value.field_deregistration__RequestMT->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_dl__Nas__Transport: +single_value.field_dl__Nas__Transport->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_gmm__Status: +single_value.field_gmm__Status->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_gsm__Status: +single_value.field_gsm__Status->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_identity__Request: +single_value.field_identity__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Command: +single_value.field_network__Slice__Specific__Authentication__Command->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_network__Slice__Specific__Authentication__Result: +single_value.field_network__Slice__Specific__Authentication__Result->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_notification: +single_value.field_notification->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Command: +single_value.field_pdu__Session__Authentication__Command->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Authentication__Result: +single_value.field_pdu__Session__Authentication__Result->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Accept: +single_value.field_pdu__Session__Establishment__Accept->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Establishment__Reject: +single_value.field_pdu__Session__Establishment__Reject->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Command: +single_value.field_pdu__Session__Modification__Command->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Modification__Reject: +single_value.field_pdu__Session__Modification__Reject->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Command: +single_value.field_pdu__Session__Release__Command->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_pdu__Session__Release__Reject: +single_value.field_pdu__Session__Release__Reject->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_registration__Accept: +single_value.field_registration__Accept->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_registration__Reject: +single_value.field_registration__Reject->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_security__Mode__Command: +single_value.field_security__Mode__Command->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_security__Protected__Nas__Message: +single_value.field_security__Protected__Nas__Message->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_service__Accept: +single_value.field_service__Accept->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_service__Reject: +single_value.field_service__Reject->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_reset__UE__Positioning__Stored__Information: +single_value.field_reset__UE__Positioning__Stored__Information->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_activate__Test__Mode: +single_value.field_activate__Test__Mode->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_deactivate__Test__Mode: +single_value.field_deactivate__Test__Mode->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_close__Ue__Test__Loop: +single_value.field_close__Ue__Test__Loop->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_open__Ue__Test__Loop: +single_value.field_open__Ue__Test__Loop->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_nssai__Delete__Request: +single_value.field_nssai__Delete__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_set__UAI__Request: +single_value.field_set__UAI__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_set__UL__Message__Request: +single_value.field_set__UL__Message__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_test__Loop__Sidelink__Counter__Request: +single_value.field_test__Loop__Sidelink__Counter__Request->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +case NG__NAS__DL__Message__Type::ALT_update__Ue__Location__Information: +single_value.field_update__Ue__Location__Information->check_restriction(t_res, t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NG_NAS_MsgContainers.NG_NAS_DL_Message_Type"); +} + +void NG__NAS__SecurityProtectionInfoUL__Type::init_vec() { fld_vec[0]=&field_Status; fld_vec[1]=&field_NasCount; } + +NG__NAS__SecurityProtectionInfoUL__Type::NG__NAS__SecurityProtectionInfoUL__Type() : Record_Type() { init_vec(); } + +NG__NAS__SecurityProtectionInfoUL__Type::NG__NAS__SecurityProtectionInfoUL__Type(const NG__NAS__SecurityProtectionInfoUL__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Status.is_bound() ) + field_Status = other_value.field_Status; +if (other_value.field_NasCount.is_bound() ) + field_NasCount = other_value.field_NasCount; +init_vec(); +} + +NG__NAS__SecurityProtectionInfoUL__Type::NG__NAS__SecurityProtectionInfoUL__Type(const BITSTRING& par_Status, + const OCTETSTRING& par_NasCount) : field_Status(par_Status), + field_NasCount(par_NasCount) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__SecurityProtectionInfoUL__Type::get_descriptor() const { return &NG__NAS__SecurityProtectionInfoUL__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__SecurityProtectionInfoUL__Type::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &CommonDefs::NasCount__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__SecurityProtectionInfoUL__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__SecurityProtectionInfoUL__Type::fld_names[] = { "Status", "NasCount" }; +const char* NG__NAS__SecurityProtectionInfoUL__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NAS__SecurityProtectionInfoUL__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NG__NAS__SecurityProtectionInfoUL__Type_template::NG__NAS__SecurityProtectionInfoUL__Type_template(NG__NAS__SecurityProtectionInfoUL__Type_template* p_precondition, NG__NAS__SecurityProtectionInfoUL__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__SecurityProtectionInfoUL__Type_template::NG__NAS__SecurityProtectionInfoUL__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__SecurityProtectionInfoUL__Type_template::~NG__NAS__SecurityProtectionInfoUL__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__SecurityProtectionInfoUL__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__SecurityProtectionInfoUL__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__SecurityProtectionInfoUL__Type_template& NG__NAS__SecurityProtectionInfoUL__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__SecurityProtectionInfoUL__Type_template& NG__NAS__SecurityProtectionInfoUL__Type_template::operator=(const NG__NAS__SecurityProtectionInfoUL__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__SecurityProtectionInfoUL__Type_template& NG__NAS__SecurityProtectionInfoUL__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__SecurityProtectionInfoUL__Type_template& NG__NAS__SecurityProtectionInfoUL__Type_template::operator=(const NG__NAS__SecurityProtectionInfoUL__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__SecurityProtectionInfoUL__Type NG__NAS__SecurityProtectionInfoUL__Type_template::valueof() const +{ +NG__NAS__SecurityProtectionInfoUL__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__NAS__SecurityProtectionInfoUL__Type_template::Status() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__NAS__SecurityProtectionInfoUL__Type_template::Status() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__NAS__SecurityProtectionInfoUL__Type_template::NasCount() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__NAS__SecurityProtectionInfoUL__Type_template::NasCount() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__NAS__SecurityProtectionInfoUL__Type_template::get_descriptor() const { return &NG__NAS__SecurityProtectionInfoUL__Type_descr_; } +const char* NG__NAS__SecurityProtectionInfoUL__Type_template::fld_name(int p_index) const { return NG__NAS__SecurityProtectionInfoUL__Type::fld_names[p_index]; } +void NG__NAS__SecurityProtectionInfoDL__Type::init_vec() { fld_vec[0]=&field_Status; fld_vec[1]=&field_ForceMacError; } + +NG__NAS__SecurityProtectionInfoDL__Type::NG__NAS__SecurityProtectionInfoDL__Type() : Record_Type() { init_vec(); } + +NG__NAS__SecurityProtectionInfoDL__Type::NG__NAS__SecurityProtectionInfoDL__Type(const NG__NAS__SecurityProtectionInfoDL__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Status.is_bound() ) + field_Status = other_value.field_Status; +if (other_value.field_ForceMacError.is_bound() ) + field_ForceMacError = other_value.field_ForceMacError; +init_vec(); +} + +NG__NAS__SecurityProtectionInfoDL__Type::NG__NAS__SecurityProtectionInfoDL__Type(const BITSTRING& par_Status, + const BOOLEAN& par_ForceMacError) : field_Status(par_Status), + field_ForceMacError(par_ForceMacError) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__SecurityProtectionInfoDL__Type::get_descriptor() const { return &NG__NAS__SecurityProtectionInfoDL__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__SecurityProtectionInfoDL__Type::fld_descriptors[] = { &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &BOOLEAN_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__SecurityProtectionInfoDL__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__SecurityProtectionInfoDL__Type::fld_names[] = { "Status", "ForceMacError" }; +const char* NG__NAS__SecurityProtectionInfoDL__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NAS__SecurityProtectionInfoDL__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BOOLEAN_template(ANY_VALUE) : new BOOLEAN_template; +} +} + +NG__NAS__SecurityProtectionInfoDL__Type_template::NG__NAS__SecurityProtectionInfoDL__Type_template(NG__NAS__SecurityProtectionInfoDL__Type_template* p_precondition, NG__NAS__SecurityProtectionInfoDL__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__SecurityProtectionInfoDL__Type_template::NG__NAS__SecurityProtectionInfoDL__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__SecurityProtectionInfoDL__Type_template::~NG__NAS__SecurityProtectionInfoDL__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__SecurityProtectionInfoDL__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__SecurityProtectionInfoDL__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__SecurityProtectionInfoDL__Type_template& NG__NAS__SecurityProtectionInfoDL__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__SecurityProtectionInfoDL__Type_template& NG__NAS__SecurityProtectionInfoDL__Type_template::operator=(const NG__NAS__SecurityProtectionInfoDL__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__SecurityProtectionInfoDL__Type_template& NG__NAS__SecurityProtectionInfoDL__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__SecurityProtectionInfoDL__Type_template& NG__NAS__SecurityProtectionInfoDL__Type_template::operator=(const NG__NAS__SecurityProtectionInfoDL__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__SecurityProtectionInfoDL__Type NG__NAS__SecurityProtectionInfoDL__Type_template::valueof() const +{ +NG__NAS__SecurityProtectionInfoDL__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__NAS__SecurityProtectionInfoDL__Type_template::Status() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__NAS__SecurityProtectionInfoDL__Type_template::Status() const { return *(static_cast(get_at(0))); } +BOOLEAN_template& NG__NAS__SecurityProtectionInfoDL__Type_template::ForceMacError() { return *(static_cast(get_at(1))); } +const BOOLEAN_template& NG__NAS__SecurityProtectionInfoDL__Type_template::ForceMacError() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__NAS__SecurityProtectionInfoDL__Type_template::get_descriptor() const { return &NG__NAS__SecurityProtectionInfoDL__Type_descr_; } +const char* NG__NAS__SecurityProtectionInfoDL__Type_template::fld_name(int p_index) const { return NG__NAS__SecurityProtectionInfoDL__Type::fld_names[p_index]; } +void NG__NAS__UL__Pdu__Type::init_vec() { fld_vec[0]=&field_Msg; fld_vec[1]=&field_PiggybackedPduList; } + +NG__NAS__UL__Pdu__Type::NG__NAS__UL__Pdu__Type() : Record_Type() { init_vec(); } + +NG__NAS__UL__Pdu__Type::NG__NAS__UL__Pdu__Type(const NG__NAS__UL__Pdu__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Msg.is_bound() ) + field_Msg = other_value.field_Msg; +if (other_value.field_PiggybackedPduList.is_bound() ) + field_PiggybackedPduList = other_value.field_PiggybackedPduList; +init_vec(); +} + +NG__NAS__UL__Pdu__Type::NG__NAS__UL__Pdu__Type(const NG__NAS__UL__Message__Type& par_Msg, + const OPTIONAL& par_PiggybackedPduList) : field_Msg(par_Msg), + field_PiggybackedPduList(par_PiggybackedPduList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__UL__Pdu__Type::get_descriptor() const { return &NG__NAS__UL__Pdu__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__UL__Pdu__Type::fld_descriptors[] = { &NG__NAS__UL__Message__Type_descr_, &NG__NAS__UL__PduList__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__UL__Pdu__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__UL__Pdu__Type::fld_names[] = { "Msg", "PiggybackedPduList" }; +const char* NG__NAS__UL__Pdu__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__NAS__UL__Pdu__Type::optional_indexes[] = { 1, -1 }; +const int* NG__NAS__UL__Pdu__Type::get_optional_indexes() const { return optional_indexes; } + +const int NG__NAS__UL__Pdu__Type::optional_indexes_asn[] = { 1, -1 }; +const int* NG__NAS__UL__Pdu__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__NAS__UL__Pdu__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NG__NAS__UL__Message__Type_template(ANY_VALUE) : new NG__NAS__UL__Message__Type_template; +single_value.value_elements[1] = was_any ? new NG__NAS__UL__PduList__Type_template(ANY_OR_OMIT) : new NG__NAS__UL__PduList__Type_template; +} +} + +NG__NAS__UL__Pdu__Type_template::NG__NAS__UL__Pdu__Type_template(NG__NAS__UL__Pdu__Type_template* p_precondition, NG__NAS__UL__Pdu__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__UL__Pdu__Type_template::NG__NAS__UL__Pdu__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__UL__Pdu__Type_template::~NG__NAS__UL__Pdu__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__UL__Pdu__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__UL__Pdu__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__UL__Pdu__Type_template& NG__NAS__UL__Pdu__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__UL__Pdu__Type_template& NG__NAS__UL__Pdu__Type_template::operator=(const NG__NAS__UL__Pdu__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__UL__Pdu__Type_template& NG__NAS__UL__Pdu__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__UL__Pdu__Type_template& NG__NAS__UL__Pdu__Type_template::operator=(const NG__NAS__UL__Pdu__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__UL__Pdu__Type NG__NAS__UL__Pdu__Type_template::valueof() const +{ +NG__NAS__UL__Pdu__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__UL__Message__Type_template& NG__NAS__UL__Pdu__Type_template::Msg() { return *(static_cast(get_at(0))); } +const NG__NAS__UL__Message__Type_template& NG__NAS__UL__Pdu__Type_template::Msg() const { return *(static_cast(get_at(0))); } +NG__NAS__UL__PduList__Type_template& NG__NAS__UL__Pdu__Type_template::PiggybackedPduList() { return *(static_cast(get_at(1))); } +const NG__NAS__UL__PduList__Type_template& NG__NAS__UL__Pdu__Type_template::PiggybackedPduList() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__NAS__UL__Pdu__Type_template::get_descriptor() const { return &NG__NAS__UL__Pdu__Type_descr_; } +const char* NG__NAS__UL__Pdu__Type_template::fld_name(int p_index) const { return NG__NAS__UL__Pdu__Type::fld_names[p_index]; } + +const NG__NAS__UL__Pdu__Type NG__NAS__UL__PduList__Type::UNBOUND_ELEM; +NG__NAS__UL__Pdu__Type& NG__NAS__UL__PduList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__NAS__UL__Pdu__Type& NG__NAS__UL__PduList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__NAS__UL__Pdu__Type& NG__NAS__UL__PduList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__NAS__UL__Pdu__Type& NG__NAS__UL__PduList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::operator<<=(const INTEGER& rotate_count) const +{ +NG__NAS__UL__PduList__Type rec_of; +return *((NG__NAS__UL__PduList__Type*)rotl(rotate_count, &rec_of)); +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::operator>>=(const INTEGER& rotate_count) const +{ +NG__NAS__UL__PduList__Type rec_of; +return *((NG__NAS__UL__PduList__Type*)rotr(rotate_count, &rec_of)); +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::operator>>=(int rotate_count) const +{ +NG__NAS__UL__PduList__Type rec_of; +return *((NG__NAS__UL__PduList__Type*)rotr(rotate_count, &rec_of)); +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::operator+(const NG__NAS__UL__PduList__Type& other_value) const +{ +NG__NAS__UL__PduList__Type rec_of; +return *((NG__NAS__UL__PduList__Type*)concat(&other_value, &rec_of)); +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__NAS__UL__PduList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_MsgContainers.NG_NAS_UL_PduList_Type concatenation."); +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::operator+(null_type) const +{ +return *this; +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::substr(int index, int returncount) const +{ +NG__NAS__UL__PduList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::replace(int index, int len, const NG__NAS__UL__PduList__Type& repl) const +{ +NG__NAS__UL__PduList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type::replace(int index, int len, const NG__NAS__UL__PduList__Type_template& repl) const +{ +NG__NAS__UL__PduList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__NAS__UL__PduList__Type::create_elem() const { return new NG__NAS__UL__Pdu__Type; } +const Base_Type* NG__NAS__UL__PduList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__NAS__UL__PduList__Type::get_descriptor() const { return &NG__NAS__UL__PduList__Type_descr_; } +NG__NAS__UL__PduList__Type_template::NG__NAS__UL__PduList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__NAS__UL__PduList__Type_template::NG__NAS__UL__PduList__Type_template(NG__NAS__UL__PduList__Type_template* p_precondition, NG__NAS__UL__PduList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__UL__PduList__Type_template::NG__NAS__UL__PduList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__UL__PduList__Type_template::~NG__NAS__UL__PduList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__UL__PduList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__UL__PduList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__NAS__UL__PduList__Type_template& NG__NAS__UL__PduList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__UL__PduList__Type_template& NG__NAS__UL__PduList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__NAS__UL__PduList__Type_template& NG__NAS__UL__PduList__Type_template::operator=(const NG__NAS__UL__PduList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__UL__PduList__Type_template& NG__NAS__UL__PduList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__UL__PduList__Type_template& NG__NAS__UL__PduList__Type_template::operator=(const NG__NAS__UL__PduList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__UL__PduList__Type_template NG__NAS__UL__PduList__Type_template::operator+(const NG__NAS__UL__PduList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__NAS__UL__PduList__Type_template(ANY_VALUE); +} +NG__NAS__UL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__NAS__UL__PduList__Type_template NG__NAS__UL__PduList__Type_template::operator+(const NG__NAS__UL__PduList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__NAS__UL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__NAS__UL__PduList__Type_template NG__NAS__UL__PduList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__NAS__UL__PduList__Type_template(ANY_VALUE); +} +NG__NAS__UL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__NAS__UL__PduList__Type_template NG__NAS__UL__PduList__Type_template::operator+(null_type) const +{ +return *this; +} + +NG__NAS__UL__Pdu__Type_template& NG__NAS__UL__PduList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__NAS__UL__Pdu__Type_template& NG__NAS__UL__PduList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__NAS__UL__Pdu__Type_template& NG__NAS__UL__PduList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__NAS__UL__Pdu__Type_template& NG__NAS__UL__PduList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type_template::valueof() const +{ +NG__NAS__UL__PduList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type_template::substr(int index, int returncount) const +{ +NG__NAS__UL__PduList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type_template::replace(int index, int len, const NG__NAS__UL__PduList__Type_template& repl) const +{ +NG__NAS__UL__PduList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__NAS__UL__PduList__Type NG__NAS__UL__PduList__Type_template::replace(int index, int len, const NG__NAS__UL__PduList__Type& repl) const +{ +NG__NAS__UL__PduList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__NAS__UL__PduList__Type_template::create_elem() const { return new NG__NAS__UL__Pdu__Type_template; } +const TTCN_Typedescriptor_t* NG__NAS__UL__PduList__Type_template::get_descriptor() const { return &NG__NAS__UL__PduList__Type_descr_; } +void NG__NAS__DL__Pdu__Type::init_vec() { fld_vec[0]=&field_Msg; fld_vec[1]=&field_PiggybackedPduList; } + +NG__NAS__DL__Pdu__Type::NG__NAS__DL__Pdu__Type() : Record_Type() { init_vec(); } + +NG__NAS__DL__Pdu__Type::NG__NAS__DL__Pdu__Type(const NG__NAS__DL__Pdu__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Msg.is_bound() ) + field_Msg = other_value.field_Msg; +if (other_value.field_PiggybackedPduList.is_bound() ) + field_PiggybackedPduList = other_value.field_PiggybackedPduList; +init_vec(); +} + +NG__NAS__DL__Pdu__Type::NG__NAS__DL__Pdu__Type(const NG__NAS__DL__Message__Type& par_Msg, + const OPTIONAL& par_PiggybackedPduList) : field_Msg(par_Msg), + field_PiggybackedPduList(par_PiggybackedPduList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__DL__Pdu__Type::get_descriptor() const { return &NG__NAS__DL__Pdu__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__DL__Pdu__Type::fld_descriptors[] = { &NG__NAS__DL__Message__Type_descr_, &NG__NAS__DL__PduList__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__DL__Pdu__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__DL__Pdu__Type::fld_names[] = { "Msg", "PiggybackedPduList" }; +const char* NG__NAS__DL__Pdu__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__NAS__DL__Pdu__Type::optional_indexes[] = { 1, -1 }; +const int* NG__NAS__DL__Pdu__Type::get_optional_indexes() const { return optional_indexes; } + +const int NG__NAS__DL__Pdu__Type::optional_indexes_asn[] = { 1, -1 }; +const int* NG__NAS__DL__Pdu__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__NAS__DL__Pdu__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NG__NAS__DL__Message__Type_template(ANY_VALUE) : new NG__NAS__DL__Message__Type_template; +single_value.value_elements[1] = was_any ? new NG__NAS__DL__PduList__Type_template(ANY_OR_OMIT) : new NG__NAS__DL__PduList__Type_template; +} +} + +NG__NAS__DL__Pdu__Type_template::NG__NAS__DL__Pdu__Type_template(NG__NAS__DL__Pdu__Type_template* p_precondition, NG__NAS__DL__Pdu__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__DL__Pdu__Type_template::NG__NAS__DL__Pdu__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__DL__Pdu__Type_template::~NG__NAS__DL__Pdu__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__DL__Pdu__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__DL__Pdu__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__DL__Pdu__Type_template& NG__NAS__DL__Pdu__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__DL__Pdu__Type_template& NG__NAS__DL__Pdu__Type_template::operator=(const NG__NAS__DL__Pdu__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__DL__Pdu__Type_template& NG__NAS__DL__Pdu__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__DL__Pdu__Type_template& NG__NAS__DL__Pdu__Type_template::operator=(const NG__NAS__DL__Pdu__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__DL__Pdu__Type NG__NAS__DL__Pdu__Type_template::valueof() const +{ +NG__NAS__DL__Pdu__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__DL__Message__Type_template& NG__NAS__DL__Pdu__Type_template::Msg() { return *(static_cast(get_at(0))); } +const NG__NAS__DL__Message__Type_template& NG__NAS__DL__Pdu__Type_template::Msg() const { return *(static_cast(get_at(0))); } +NG__NAS__DL__PduList__Type_template& NG__NAS__DL__Pdu__Type_template::PiggybackedPduList() { return *(static_cast(get_at(1))); } +const NG__NAS__DL__PduList__Type_template& NG__NAS__DL__Pdu__Type_template::PiggybackedPduList() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__NAS__DL__Pdu__Type_template::get_descriptor() const { return &NG__NAS__DL__Pdu__Type_descr_; } +const char* NG__NAS__DL__Pdu__Type_template::fld_name(int p_index) const { return NG__NAS__DL__Pdu__Type::fld_names[p_index]; } + +const NG__NAS__DL__Pdu__Type NG__NAS__DL__PduList__Type::UNBOUND_ELEM; +NG__NAS__DL__Pdu__Type& NG__NAS__DL__PduList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__NAS__DL__Pdu__Type& NG__NAS__DL__PduList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__NAS__DL__Pdu__Type& NG__NAS__DL__PduList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__NAS__DL__Pdu__Type& NG__NAS__DL__PduList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::operator<<=(const INTEGER& rotate_count) const +{ +NG__NAS__DL__PduList__Type rec_of; +return *((NG__NAS__DL__PduList__Type*)rotl(rotate_count, &rec_of)); +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::operator>>=(const INTEGER& rotate_count) const +{ +NG__NAS__DL__PduList__Type rec_of; +return *((NG__NAS__DL__PduList__Type*)rotr(rotate_count, &rec_of)); +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::operator>>=(int rotate_count) const +{ +NG__NAS__DL__PduList__Type rec_of; +return *((NG__NAS__DL__PduList__Type*)rotr(rotate_count, &rec_of)); +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::operator+(const NG__NAS__DL__PduList__Type& other_value) const +{ +NG__NAS__DL__PduList__Type rec_of; +return *((NG__NAS__DL__PduList__Type*)concat(&other_value, &rec_of)); +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__NAS__DL__PduList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_MsgContainers.NG_NAS_DL_PduList_Type concatenation."); +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::operator+(null_type) const +{ +return *this; +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::substr(int index, int returncount) const +{ +NG__NAS__DL__PduList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::replace(int index, int len, const NG__NAS__DL__PduList__Type& repl) const +{ +NG__NAS__DL__PduList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type::replace(int index, int len, const NG__NAS__DL__PduList__Type_template& repl) const +{ +NG__NAS__DL__PduList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__NAS__DL__PduList__Type::create_elem() const { return new NG__NAS__DL__Pdu__Type; } +const Base_Type* NG__NAS__DL__PduList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__NAS__DL__PduList__Type::get_descriptor() const { return &NG__NAS__DL__PduList__Type_descr_; } +NG__NAS__DL__PduList__Type_template::NG__NAS__DL__PduList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__NAS__DL__PduList__Type_template::NG__NAS__DL__PduList__Type_template(NG__NAS__DL__PduList__Type_template* p_precondition, NG__NAS__DL__PduList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__DL__PduList__Type_template::NG__NAS__DL__PduList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__DL__PduList__Type_template::~NG__NAS__DL__PduList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__DL__PduList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__DL__PduList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__NAS__DL__PduList__Type_template& NG__NAS__DL__PduList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__DL__PduList__Type_template& NG__NAS__DL__PduList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__NAS__DL__PduList__Type_template& NG__NAS__DL__PduList__Type_template::operator=(const NG__NAS__DL__PduList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__DL__PduList__Type_template& NG__NAS__DL__PduList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__DL__PduList__Type_template& NG__NAS__DL__PduList__Type_template::operator=(const NG__NAS__DL__PduList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__DL__PduList__Type_template NG__NAS__DL__PduList__Type_template::operator+(const NG__NAS__DL__PduList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__NAS__DL__PduList__Type_template(ANY_VALUE); +} +NG__NAS__DL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__NAS__DL__PduList__Type_template NG__NAS__DL__PduList__Type_template::operator+(const NG__NAS__DL__PduList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__NAS__DL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__NAS__DL__PduList__Type_template NG__NAS__DL__PduList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__NAS__DL__PduList__Type_template(ANY_VALUE); +} +NG__NAS__DL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__NAS__DL__PduList__Type_template NG__NAS__DL__PduList__Type_template::operator+(null_type) const +{ +return *this; +} + +NG__NAS__DL__Pdu__Type_template& NG__NAS__DL__PduList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__NAS__DL__Pdu__Type_template& NG__NAS__DL__PduList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__NAS__DL__Pdu__Type_template& NG__NAS__DL__PduList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__NAS__DL__Pdu__Type_template& NG__NAS__DL__PduList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type_template::valueof() const +{ +NG__NAS__DL__PduList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type_template::substr(int index, int returncount) const +{ +NG__NAS__DL__PduList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type_template::replace(int index, int len, const NG__NAS__DL__PduList__Type_template& repl) const +{ +NG__NAS__DL__PduList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__NAS__DL__PduList__Type NG__NAS__DL__PduList__Type_template::replace(int index, int len, const NG__NAS__DL__PduList__Type& repl) const +{ +NG__NAS__DL__PduList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__NAS__DL__PduList__Type_template::create_elem() const { return new NG__NAS__DL__Pdu__Type_template; } +const TTCN_Typedescriptor_t* NG__NAS__DL__PduList__Type_template::get_descriptor() const { return &NG__NAS__DL__PduList__Type_descr_; } +void NG__NAS__MSG__Indication__Type::init_vec() { fld_vec[0]=&field_SecurityProtection; fld_vec[1]=&field_Pdu; } + +NG__NAS__MSG__Indication__Type::NG__NAS__MSG__Indication__Type() : Record_Type() { init_vec(); } + +NG__NAS__MSG__Indication__Type::NG__NAS__MSG__Indication__Type(const NG__NAS__MSG__Indication__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_SecurityProtection.is_bound() ) + field_SecurityProtection = other_value.field_SecurityProtection; +if (other_value.field_Pdu.is_bound() ) + field_Pdu = other_value.field_Pdu; +init_vec(); +} + +NG__NAS__MSG__Indication__Type::NG__NAS__MSG__Indication__Type(const NG__NAS__SecurityProtectionInfoUL__Type& par_SecurityProtection, + const NG__NAS__UL__Pdu__Type& par_Pdu) : field_SecurityProtection(par_SecurityProtection), + field_Pdu(par_Pdu) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__MSG__Indication__Type::get_descriptor() const { return &NG__NAS__MSG__Indication__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__MSG__Indication__Type::fld_descriptors[] = { &NG__NAS__SecurityProtectionInfoUL__Type_descr_, &NG__NAS__UL__Pdu__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__MSG__Indication__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__MSG__Indication__Type::fld_names[] = { "SecurityProtection", "Pdu" }; +const char* NG__NAS__MSG__Indication__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NAS__MSG__Indication__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NG__NAS__SecurityProtectionInfoUL__Type_template(ANY_VALUE) : new NG__NAS__SecurityProtectionInfoUL__Type_template; +single_value.value_elements[1] = was_any ? new NG__NAS__UL__Pdu__Type_template(ANY_VALUE) : new NG__NAS__UL__Pdu__Type_template; +} +} + +NG__NAS__MSG__Indication__Type_template::NG__NAS__MSG__Indication__Type_template(NG__NAS__MSG__Indication__Type_template* p_precondition, NG__NAS__MSG__Indication__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__MSG__Indication__Type_template::NG__NAS__MSG__Indication__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__MSG__Indication__Type_template::~NG__NAS__MSG__Indication__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__MSG__Indication__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__MSG__Indication__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__MSG__Indication__Type_template& NG__NAS__MSG__Indication__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__MSG__Indication__Type_template& NG__NAS__MSG__Indication__Type_template::operator=(const NG__NAS__MSG__Indication__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__MSG__Indication__Type_template& NG__NAS__MSG__Indication__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__MSG__Indication__Type_template& NG__NAS__MSG__Indication__Type_template::operator=(const NG__NAS__MSG__Indication__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__MSG__Indication__Type NG__NAS__MSG__Indication__Type_template::valueof() const +{ +NG__NAS__MSG__Indication__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__SecurityProtectionInfoUL__Type_template& NG__NAS__MSG__Indication__Type_template::SecurityProtection() { return *(static_cast(get_at(0))); } +const NG__NAS__SecurityProtectionInfoUL__Type_template& NG__NAS__MSG__Indication__Type_template::SecurityProtection() const { return *(static_cast(get_at(0))); } +NG__NAS__UL__Pdu__Type_template& NG__NAS__MSG__Indication__Type_template::Pdu() { return *(static_cast(get_at(1))); } +const NG__NAS__UL__Pdu__Type_template& NG__NAS__MSG__Indication__Type_template::Pdu() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__NAS__MSG__Indication__Type_template::get_descriptor() const { return &NG__NAS__MSG__Indication__Type_descr_; } +const char* NG__NAS__MSG__Indication__Type_template::fld_name(int p_index) const { return NG__NAS__MSG__Indication__Type::fld_names[p_index]; } + +const NG__NAS__MSG__Indication__Type NG__NAS__MSG__IndicationList__Type::UNBOUND_ELEM; +NG__NAS__MSG__Indication__Type& NG__NAS__MSG__IndicationList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__NAS__MSG__Indication__Type& NG__NAS__MSG__IndicationList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__NAS__MSG__Indication__Type& NG__NAS__MSG__IndicationList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__NAS__MSG__Indication__Type& NG__NAS__MSG__IndicationList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::operator<<=(const INTEGER& rotate_count) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +return *((NG__NAS__MSG__IndicationList__Type*)rotl(rotate_count, &rec_of)); +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::operator>>=(const INTEGER& rotate_count) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +return *((NG__NAS__MSG__IndicationList__Type*)rotr(rotate_count, &rec_of)); +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::operator>>=(int rotate_count) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +return *((NG__NAS__MSG__IndicationList__Type*)rotr(rotate_count, &rec_of)); +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::operator+(const NG__NAS__MSG__IndicationList__Type& other_value) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +return *((NG__NAS__MSG__IndicationList__Type*)concat(&other_value, &rec_of)); +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__NAS__MSG__IndicationList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_MsgContainers.NG_NAS_MSG_IndicationList_Type concatenation."); +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::operator+(null_type) const +{ +return *this; +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::substr(int index, int returncount) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::replace(int index, int len, const NG__NAS__MSG__IndicationList__Type& repl) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type::replace(int index, int len, const NG__NAS__MSG__IndicationList__Type_template& repl) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__NAS__MSG__IndicationList__Type::create_elem() const { return new NG__NAS__MSG__Indication__Type; } +const Base_Type* NG__NAS__MSG__IndicationList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__NAS__MSG__IndicationList__Type::get_descriptor() const { return &NG__NAS__MSG__IndicationList__Type_descr_; } +NG__NAS__MSG__IndicationList__Type_template::NG__NAS__MSG__IndicationList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__NAS__MSG__IndicationList__Type_template::NG__NAS__MSG__IndicationList__Type_template(NG__NAS__MSG__IndicationList__Type_template* p_precondition, NG__NAS__MSG__IndicationList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__MSG__IndicationList__Type_template::NG__NAS__MSG__IndicationList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__MSG__IndicationList__Type_template::~NG__NAS__MSG__IndicationList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__MSG__IndicationList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__MSG__IndicationList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__NAS__MSG__IndicationList__Type_template& NG__NAS__MSG__IndicationList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__MSG__IndicationList__Type_template& NG__NAS__MSG__IndicationList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__NAS__MSG__IndicationList__Type_template& NG__NAS__MSG__IndicationList__Type_template::operator=(const NG__NAS__MSG__IndicationList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__MSG__IndicationList__Type_template& NG__NAS__MSG__IndicationList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__MSG__IndicationList__Type_template& NG__NAS__MSG__IndicationList__Type_template::operator=(const NG__NAS__MSG__IndicationList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__MSG__IndicationList__Type_template NG__NAS__MSG__IndicationList__Type_template::operator+(const NG__NAS__MSG__IndicationList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__NAS__MSG__IndicationList__Type_template(ANY_VALUE); +} +NG__NAS__MSG__IndicationList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__NAS__MSG__IndicationList__Type_template NG__NAS__MSG__IndicationList__Type_template::operator+(const NG__NAS__MSG__IndicationList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__NAS__MSG__IndicationList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__NAS__MSG__IndicationList__Type_template NG__NAS__MSG__IndicationList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__NAS__MSG__IndicationList__Type_template(ANY_VALUE); +} +NG__NAS__MSG__IndicationList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__NAS__MSG__IndicationList__Type_template NG__NAS__MSG__IndicationList__Type_template::operator+(null_type) const +{ +return *this; +} + +NG__NAS__MSG__Indication__Type_template& NG__NAS__MSG__IndicationList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__NAS__MSG__Indication__Type_template& NG__NAS__MSG__IndicationList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__NAS__MSG__Indication__Type_template& NG__NAS__MSG__IndicationList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__NAS__MSG__Indication__Type_template& NG__NAS__MSG__IndicationList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type_template::valueof() const +{ +NG__NAS__MSG__IndicationList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type_template::substr(int index, int returncount) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type_template::replace(int index, int len, const NG__NAS__MSG__IndicationList__Type_template& repl) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__NAS__MSG__IndicationList__Type NG__NAS__MSG__IndicationList__Type_template::replace(int index, int len, const NG__NAS__MSG__IndicationList__Type& repl) const +{ +NG__NAS__MSG__IndicationList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__NAS__MSG__IndicationList__Type_template::create_elem() const { return new NG__NAS__MSG__Indication__Type_template; } +const TTCN_Typedescriptor_t* NG__NAS__MSG__IndicationList__Type_template::get_descriptor() const { return &NG__NAS__MSG__IndicationList__Type_descr_; } +void NG__NAS__MSG__Request__Type::init_vec() { fld_vec[0]=&field_SecurityProtection; fld_vec[1]=&field_Pdu; } + +NG__NAS__MSG__Request__Type::NG__NAS__MSG__Request__Type() : Record_Type() { init_vec(); } + +NG__NAS__MSG__Request__Type::NG__NAS__MSG__Request__Type(const NG__NAS__MSG__Request__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_SecurityProtection.is_bound() ) + field_SecurityProtection = other_value.field_SecurityProtection; +if (other_value.field_Pdu.is_bound() ) + field_Pdu = other_value.field_Pdu; +init_vec(); +} + +NG__NAS__MSG__Request__Type::NG__NAS__MSG__Request__Type(const NG__NAS__SecurityProtectionInfoDL__Type& par_SecurityProtection, + const NG__NAS__DL__Pdu__Type& par_Pdu) : field_SecurityProtection(par_SecurityProtection), + field_Pdu(par_Pdu) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__MSG__Request__Type::get_descriptor() const { return &NG__NAS__MSG__Request__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__MSG__Request__Type::fld_descriptors[] = { &NG__NAS__SecurityProtectionInfoDL__Type_descr_, &NG__NAS__DL__Pdu__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__MSG__Request__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__MSG__Request__Type::fld_names[] = { "SecurityProtection", "Pdu" }; +const char* NG__NAS__MSG__Request__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NAS__MSG__Request__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NG__NAS__SecurityProtectionInfoDL__Type_template(ANY_VALUE) : new NG__NAS__SecurityProtectionInfoDL__Type_template; +single_value.value_elements[1] = was_any ? new NG__NAS__DL__Pdu__Type_template(ANY_VALUE) : new NG__NAS__DL__Pdu__Type_template; +} +} + +NG__NAS__MSG__Request__Type_template::NG__NAS__MSG__Request__Type_template(NG__NAS__MSG__Request__Type_template* p_precondition, NG__NAS__MSG__Request__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__MSG__Request__Type_template::NG__NAS__MSG__Request__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__MSG__Request__Type_template::~NG__NAS__MSG__Request__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__MSG__Request__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__MSG__Request__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__MSG__Request__Type_template& NG__NAS__MSG__Request__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__MSG__Request__Type_template& NG__NAS__MSG__Request__Type_template::operator=(const NG__NAS__MSG__Request__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__MSG__Request__Type_template& NG__NAS__MSG__Request__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__MSG__Request__Type_template& NG__NAS__MSG__Request__Type_template::operator=(const NG__NAS__MSG__Request__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__MSG__Request__Type NG__NAS__MSG__Request__Type_template::valueof() const +{ +NG__NAS__MSG__Request__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__SecurityProtectionInfoDL__Type_template& NG__NAS__MSG__Request__Type_template::SecurityProtection() { return *(static_cast(get_at(0))); } +const NG__NAS__SecurityProtectionInfoDL__Type_template& NG__NAS__MSG__Request__Type_template::SecurityProtection() const { return *(static_cast(get_at(0))); } +NG__NAS__DL__Pdu__Type_template& NG__NAS__MSG__Request__Type_template::Pdu() { return *(static_cast(get_at(1))); } +const NG__NAS__DL__Pdu__Type_template& NG__NAS__MSG__Request__Type_template::Pdu() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__NAS__MSG__Request__Type_template::get_descriptor() const { return &NG__NAS__MSG__Request__Type_descr_; } +const char* NG__NAS__MSG__Request__Type_template::fld_name(int p_index) const { return NG__NAS__MSG__Request__Type::fld_names[p_index]; } + +const NG__NAS__MSG__Request__Type NG__NAS__MSG__RequestList__Type::UNBOUND_ELEM; +NG__NAS__MSG__Request__Type& NG__NAS__MSG__RequestList__Type::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__NAS__MSG__Request__Type& NG__NAS__MSG__RequestList__Type::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__NAS__MSG__Request__Type& NG__NAS__MSG__RequestList__Type::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__NAS__MSG__Request__Type& NG__NAS__MSG__RequestList__Type::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::operator<<=(const INTEGER& rotate_count) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +return *((NG__NAS__MSG__RequestList__Type*)rotl(rotate_count, &rec_of)); +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::operator>>=(const INTEGER& rotate_count) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +return *((NG__NAS__MSG__RequestList__Type*)rotr(rotate_count, &rec_of)); +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::operator>>=(int rotate_count) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +return *((NG__NAS__MSG__RequestList__Type*)rotr(rotate_count, &rec_of)); +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::operator+(const NG__NAS__MSG__RequestList__Type& other_value) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +return *((NG__NAS__MSG__RequestList__Type*)concat(&other_value, &rec_of)); +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__NAS__MSG__RequestList__Type&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_MsgContainers.NG_NAS_MSG_RequestList_Type concatenation."); +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::operator+(null_type) const +{ +return *this; +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::substr(int index, int returncount) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::replace(int index, int len, const NG__NAS__MSG__RequestList__Type& repl) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type::replace(int index, int len, const NG__NAS__MSG__RequestList__Type_template& repl) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__NAS__MSG__RequestList__Type::create_elem() const { return new NG__NAS__MSG__Request__Type; } +const Base_Type* NG__NAS__MSG__RequestList__Type::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__NAS__MSG__RequestList__Type::get_descriptor() const { return &NG__NAS__MSG__RequestList__Type_descr_; } +NG__NAS__MSG__RequestList__Type_template::NG__NAS__MSG__RequestList__Type_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__NAS__MSG__RequestList__Type_template::NG__NAS__MSG__RequestList__Type_template(NG__NAS__MSG__RequestList__Type_template* p_precondition, NG__NAS__MSG__RequestList__Type_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__MSG__RequestList__Type_template::NG__NAS__MSG__RequestList__Type_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__MSG__RequestList__Type_template::~NG__NAS__MSG__RequestList__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__MSG__RequestList__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__MSG__RequestList__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__NAS__MSG__RequestList__Type_template& NG__NAS__MSG__RequestList__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__MSG__RequestList__Type_template& NG__NAS__MSG__RequestList__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__NAS__MSG__RequestList__Type_template& NG__NAS__MSG__RequestList__Type_template::operator=(const NG__NAS__MSG__RequestList__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__MSG__RequestList__Type_template& NG__NAS__MSG__RequestList__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__MSG__RequestList__Type_template& NG__NAS__MSG__RequestList__Type_template::operator=(const NG__NAS__MSG__RequestList__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__MSG__RequestList__Type_template NG__NAS__MSG__RequestList__Type_template::operator+(const NG__NAS__MSG__RequestList__Type_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__NAS__MSG__RequestList__Type_template(ANY_VALUE); +} +NG__NAS__MSG__RequestList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__NAS__MSG__RequestList__Type_template NG__NAS__MSG__RequestList__Type_template::operator+(const NG__NAS__MSG__RequestList__Type& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__NAS__MSG__RequestList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__NAS__MSG__RequestList__Type_template NG__NAS__MSG__RequestList__Type_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__NAS__MSG__RequestList__Type_template(ANY_VALUE); +} +NG__NAS__MSG__RequestList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__NAS__MSG__RequestList__Type_template NG__NAS__MSG__RequestList__Type_template::operator+(null_type) const +{ +return *this; +} + +NG__NAS__MSG__Request__Type_template& NG__NAS__MSG__RequestList__Type_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__NAS__MSG__Request__Type_template& NG__NAS__MSG__RequestList__Type_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__NAS__MSG__Request__Type_template& NG__NAS__MSG__RequestList__Type_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__NAS__MSG__Request__Type_template& NG__NAS__MSG__RequestList__Type_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type_template::valueof() const +{ +NG__NAS__MSG__RequestList__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type_template::substr(int index, int returncount) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type_template::replace(int index, int len, const NG__NAS__MSG__RequestList__Type_template& repl) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__NAS__MSG__RequestList__Type NG__NAS__MSG__RequestList__Type_template::replace(int index, int len, const NG__NAS__MSG__RequestList__Type& repl) const +{ +NG__NAS__MSG__RequestList__Type rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__NAS__MSG__RequestList__Type_template::create_elem() const { return new NG__NAS__MSG__Request__Type_template; } +const TTCN_Typedescriptor_t* NG__NAS__MSG__RequestList__Type_template::get_descriptor() const { return &NG__NAS__MSG__RequestList__Type_descr_; } + +/* Bodies of functions, altsteps and testcases */ + +NG__NAS__UL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__UL__PduList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__NAS__UL__PduList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__NAS__UL__PduList__Type_template(ANY_VALUE); +} +NG__NAS__UL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__NAS__UL__PduList__Type_template operator+(const NG__NAS__UL__PduList__Type& left_value, const NG__NAS__UL__PduList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__NAS__UL__PduList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__NAS__UL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__NAS__UL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__UL__PduList__Type& right_value) +{ +int res_length = NG__NAS__UL__PduList__Type_template::get_length_for_concat(left_template) + NG__NAS__UL__PduList__Type_template::get_length_for_concat(right_value); +NG__NAS__UL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__NAS__UL__PduList__Type_template operator+(const NG__NAS__UL__PduList__Type& left_value, template_sel right_template) +{ +int res_length = NG__NAS__UL__PduList__Type_template::get_length_for_concat(left_value) + NG__NAS__UL__PduList__Type_template::get_length_for_concat(right_template); +NG__NAS__UL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__NAS__DL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__DL__PduList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__NAS__DL__PduList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__NAS__DL__PduList__Type_template(ANY_VALUE); +} +NG__NAS__DL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__NAS__DL__PduList__Type_template operator+(const NG__NAS__DL__PduList__Type& left_value, const NG__NAS__DL__PduList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__NAS__DL__PduList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__NAS__DL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__NAS__DL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__DL__PduList__Type& right_value) +{ +int res_length = NG__NAS__DL__PduList__Type_template::get_length_for_concat(left_template) + NG__NAS__DL__PduList__Type_template::get_length_for_concat(right_value); +NG__NAS__DL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__NAS__DL__PduList__Type_template operator+(const NG__NAS__DL__PduList__Type& left_value, template_sel right_template) +{ +int res_length = NG__NAS__DL__PduList__Type_template::get_length_for_concat(left_value) + NG__NAS__DL__PduList__Type_template::get_length_for_concat(right_template); +NG__NAS__DL__PduList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__NAS__MSG__IndicationList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__IndicationList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__NAS__MSG__IndicationList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__NAS__MSG__IndicationList__Type_template(ANY_VALUE); +} +NG__NAS__MSG__IndicationList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__NAS__MSG__IndicationList__Type_template operator+(const NG__NAS__MSG__IndicationList__Type& left_value, const NG__NAS__MSG__IndicationList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__NAS__MSG__IndicationList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__NAS__MSG__IndicationList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__NAS__MSG__IndicationList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__IndicationList__Type& right_value) +{ +int res_length = NG__NAS__MSG__IndicationList__Type_template::get_length_for_concat(left_template) + NG__NAS__MSG__IndicationList__Type_template::get_length_for_concat(right_value); +NG__NAS__MSG__IndicationList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__NAS__MSG__IndicationList__Type_template operator+(const NG__NAS__MSG__IndicationList__Type& left_value, template_sel right_template) +{ +int res_length = NG__NAS__MSG__IndicationList__Type_template::get_length_for_concat(left_value) + NG__NAS__MSG__IndicationList__Type_template::get_length_for_concat(right_template); +NG__NAS__MSG__IndicationList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__NAS__MSG__RequestList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__RequestList__Type_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__NAS__MSG__RequestList__Type_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__NAS__MSG__RequestList__Type_template(ANY_VALUE); +} +NG__NAS__MSG__RequestList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__NAS__MSG__RequestList__Type_template operator+(const NG__NAS__MSG__RequestList__Type& left_value, const NG__NAS__MSG__RequestList__Type_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__NAS__MSG__RequestList__Type_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__NAS__MSG__RequestList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__NAS__MSG__RequestList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__RequestList__Type& right_value) +{ +int res_length = NG__NAS__MSG__RequestList__Type_template::get_length_for_concat(left_template) + NG__NAS__MSG__RequestList__Type_template::get_length_for_concat(right_value); +NG__NAS__MSG__RequestList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__NAS__MSG__RequestList__Type_template operator+(const NG__NAS__MSG__RequestList__Type& left_value, template_sel right_template) +{ +int res_length = NG__NAS__MSG__RequestList__Type_template::get_length_for_concat(left_value) + NG__NAS__MSG__RequestList__Type_template::get_length_for_concat(right_template); +NG__NAS__MSG__RequestList__Type_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_MsgContainers.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_MsgContainers"); +NG__NAS__MsgContainers::init_ttcn3_debugger(); +NG__NAS__TypeDefs::module_object.pre_init_module(); +Common4G5G__LoopBack::module_object.pre_init_module(); +EPS__NAS__TypeDefs::module_object.pre_init_module(); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_MsgContainers.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_MsgContainers"); +NG__NAS__TypeDefs::module_object.post_init_module(); +Common4G5G__LoopBack::module_object.post_init_module(); +EPS__NAS__TypeDefs::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NG_NAS_MsgContainers.hh b/build/Ats_NG_NAS/NG_NAS_MsgContainers.hh new file mode 100644 index 0000000000000000000000000000000000000000..238e9701b520c498800ca032390829699c00a17c --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_MsgContainers.hh @@ -0,0 +1,1545 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NG__NAS__MsgContainers_HH +#define NG__NAS__MsgContainers_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NG_NAS_TypeDefs.hh" +#include "Common4G5G_LoopBack.hh" +#include "EPS_NAS_TypeDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 NG__NAS__MsgContainers_HH +#endif + +namespace NG__NAS__MsgContainers { + +/* Forward declarations of classes */ + +class NG__NAS__UL__Message__Type; +class NG__NAS__UL__Message__Type_template; +class NG__NAS__DL__Message__Type; +class NG__NAS__DL__Message__Type_template; +class NG__NAS__SecurityProtectionInfoUL__Type; +class NG__NAS__SecurityProtectionInfoUL__Type_template; +class NG__NAS__SecurityProtectionInfoDL__Type; +class NG__NAS__SecurityProtectionInfoDL__Type_template; +class NG__NAS__UL__Pdu__Type; +class NG__NAS__UL__Pdu__Type_template; +class NG__NAS__UL__PduList__Type; +class NG__NAS__UL__PduList__Type_template; +class NG__NAS__DL__Pdu__Type; +class NG__NAS__DL__Pdu__Type_template; +class NG__NAS__DL__PduList__Type; +class NG__NAS__DL__PduList__Type_template; +class NG__NAS__MSG__Indication__Type; +class NG__NAS__MSG__Indication__Type_template; +class NG__NAS__MSG__IndicationList__Type; +class NG__NAS__MSG__IndicationList__Type_template; +class NG__NAS__MSG__Request__Type; +class NG__NAS__MSG__Request__Type_template; +class NG__NAS__MSG__RequestList__Type; +class NG__NAS__MSG__RequestList__Type_template; + +} /* end of namespace */ + +#ifndef NG__NAS__MsgContainers_HH +#define NG__NAS__MsgContainers_HH + +namespace NG__NAS__MsgContainers { + +/* Class definitions */ + +class NG__NAS__UL__Message__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_authentication__Failure = 1, ALT_authentication__Response = 2, ALT_configuration__Update__Complete = 3, ALT_cp__Service__Request = 4, ALT_deregistration__Accept = 5, ALT_deregistration__RequestMO = 6, ALT_gmm__Status = 7, ALT_gsm__Status = 8, ALT_network__Slice__Specific__Authentication__Complete = 9, ALT_identity__Response = 10, ALT_notification__Response = 11, ALT_pdu__Session__Authentication__Complete = 12, ALT_pdu__Session__Establishment__Request = 13, ALT_pdu__Session__Modification__Command__Reject = 14, ALT_pdu__Session__Modification__Complete = 15, ALT_pdu__Session__Modification__Request = 16, ALT_pdu__Session__Release__Complete = 17, ALT_pdu__Session__Release__Request = 18, ALT_registration__Complete = 19, ALT_registration__Request = 20, ALT_security__Mode__Complete = 21, ALT_security__Mode__Reject = 22, ALT_security__Protected__Nas__Message = 23, ALT_service__Request = 24, ALT_ul__Nas__Transport = 25, ALT_activate__Test__Mode__Complete = 26, ALT_deactivate__Test__Mode__Complete = 27, ALT_close__Ue__Test__Loop__Complete = 28, ALT_open__Ue__Test__Loop__Complete = 29, ALT_nssai__Delete__Response = 30, ALT_set__UAI__Response = 31, ALT_set__UL__Message__Response = 32, ALT_test__Loop__Sidelink__Counter__Response = 33 }; +private: +union_selection_type union_selection; +union { +NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE *field_authentication__Failure; +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE *field_authentication__Response; +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE *field_configuration__Update__Complete; +NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST *field_cp__Service__Request; +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT *field_deregistration__Accept; +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO *field_deregistration__RequestMO; +NG__NAS__TypeDefs::NG__GMM__STATUS *field_gmm__Status; +NG__NAS__TypeDefs::NG__GSM__STATUS *field_gsm__Status; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE *field_network__Slice__Specific__Authentication__Complete; +NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE *field_identity__Response; +NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE *field_notification__Response; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE *field_pdu__Session__Authentication__Complete; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST *field_pdu__Session__Establishment__Request; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT *field_pdu__Session__Modification__Command__Reject; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE *field_pdu__Session__Modification__Complete; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST *field_pdu__Session__Modification__Request; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE *field_pdu__Session__Release__Complete; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST *field_pdu__Session__Release__Request; +NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE *field_registration__Complete; +NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST *field_registration__Request; +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE *field_security__Mode__Complete; +NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT *field_security__Mode__Reject; +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE *field_security__Protected__Nas__Message; +NG__NAS__TypeDefs::NG__SERVICE__REQUEST *field_service__Request; +NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT *field_ul__Nas__Transport; +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE *field_activate__Test__Mode__Complete; +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE *field_deactivate__Test__Mode__Complete; +EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE *field_close__Ue__Test__Loop__Complete; +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE *field_open__Ue__Test__Loop__Complete; +NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE *field_nssai__Delete__Response; +NG__NAS__TypeDefs::SET__UAI__RESPONSE *field_set__UAI__Response; +Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE *field_set__UL__Message__Response; +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE *field_test__Loop__Sidelink__Counter__Response; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__NAS__UL__Message__Type& other_value); + +public: +NG__NAS__UL__Message__Type(); +NG__NAS__UL__Message__Type(const NG__NAS__UL__Message__Type& other_value); +~NG__NAS__UL__Message__Type(); +NG__NAS__UL__Message__Type& operator=(const NG__NAS__UL__Message__Type& other_value); +boolean operator==(const NG__NAS__UL__Message__Type& other_value) const; +inline boolean operator!=(const NG__NAS__UL__Message__Type& other_value) const { return !(*this == other_value); } +NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE& authentication__Failure(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE& authentication__Failure() const; +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE& authentication__Response(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE& authentication__Response() const; +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE& configuration__Update__Complete(); +const NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE& configuration__Update__Complete() const; +NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST& cp__Service__Request(); +const NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST& cp__Service__Request() const; +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT& deregistration__Accept(); +const NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT& deregistration__Accept() const; +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO& deregistration__RequestMO(); +const NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO& deregistration__RequestMO() const; +NG__NAS__TypeDefs::NG__GMM__STATUS& gmm__Status(); +const NG__NAS__TypeDefs::NG__GMM__STATUS& gmm__Status() const; +NG__NAS__TypeDefs::NG__GSM__STATUS& gsm__Status(); +const NG__NAS__TypeDefs::NG__GSM__STATUS& gsm__Status() const; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& network__Slice__Specific__Authentication__Complete(); +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& network__Slice__Specific__Authentication__Complete() const; +NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE& identity__Response(); +const NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE& identity__Response() const; +NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE& notification__Response(); +const NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE& notification__Response() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE& pdu__Session__Authentication__Complete(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE& pdu__Session__Authentication__Complete() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST& pdu__Session__Establishment__Request(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST& pdu__Session__Establishment__Request() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& pdu__Session__Modification__Command__Reject(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& pdu__Session__Modification__Command__Reject() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE& pdu__Session__Modification__Complete(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE& pdu__Session__Modification__Complete() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST& pdu__Session__Modification__Request(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST& pdu__Session__Modification__Request() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE& pdu__Session__Release__Complete(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE& pdu__Session__Release__Complete() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST& pdu__Session__Release__Request(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST& pdu__Session__Release__Request() const; +NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE& registration__Complete(); +const NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE& registration__Complete() const; +NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST& registration__Request(); +const NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST& registration__Request() const; +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE& security__Mode__Complete(); +const NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE& security__Mode__Complete() const; +NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT& security__Mode__Reject(); +const NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT& security__Mode__Reject() const; +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE& security__Protected__Nas__Message(); +const NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE& security__Protected__Nas__Message() const; +NG__NAS__TypeDefs::NG__SERVICE__REQUEST& service__Request(); +const NG__NAS__TypeDefs::NG__SERVICE__REQUEST& service__Request() const; +NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT& ul__Nas__Transport(); +const NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT& ul__Nas__Transport() const; +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE& activate__Test__Mode__Complete(); +const EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE& activate__Test__Mode__Complete() const; +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE& deactivate__Test__Mode__Complete(); +const EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE& deactivate__Test__Mode__Complete() const; +EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE& close__Ue__Test__Loop__Complete(); +const EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE& close__Ue__Test__Loop__Complete() const; +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE& open__Ue__Test__Loop__Complete(); +const EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE& open__Ue__Test__Loop__Complete() const; +NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE& nssai__Delete__Response(); +const NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE& nssai__Delete__Response() const; +NG__NAS__TypeDefs::SET__UAI__RESPONSE& set__UAI__Response(); +const NG__NAS__TypeDefs::SET__UAI__RESPONSE& set__UAI__Response() const; +Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE& set__UL__Message__Response(); +const Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE& set__UL__Message__Response() const; +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& test__Loop__Sidelink__Counter__Response(); +const NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& test__Loop__Sidelink__Counter__Response() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NG__NAS__UL__Message__Type_template : public Base_Template { +union { +struct { +NG__NAS__UL__Message__Type::union_selection_type union_selection; +union { +NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template *field_authentication__Failure; +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template *field_authentication__Response; +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template *field_configuration__Update__Complete; +NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template *field_cp__Service__Request; +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template *field_deregistration__Accept; +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template *field_deregistration__RequestMO; +NG__NAS__TypeDefs::NG__GMM__STATUS_template *field_gmm__Status; +NG__NAS__TypeDefs::NG__GSM__STATUS_template *field_gsm__Status; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template *field_network__Slice__Specific__Authentication__Complete; +NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template *field_identity__Response; +NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template *field_notification__Response; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template *field_pdu__Session__Authentication__Complete; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template *field_pdu__Session__Establishment__Request; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template *field_pdu__Session__Modification__Command__Reject; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template *field_pdu__Session__Modification__Complete; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template *field_pdu__Session__Modification__Request; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template *field_pdu__Session__Release__Complete; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template *field_pdu__Session__Release__Request; +NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template *field_registration__Complete; +NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template *field_registration__Request; +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template *field_security__Mode__Complete; +NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template *field_security__Mode__Reject; +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template *field_security__Protected__Nas__Message; +NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template *field_service__Request; +NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template *field_ul__Nas__Transport; +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template *field_activate__Test__Mode__Complete; +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template *field_deactivate__Test__Mode__Complete; +EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template *field_close__Ue__Test__Loop__Complete; +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template *field_open__Ue__Test__Loop__Complete; +NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template *field_nssai__Delete__Response; +NG__NAS__TypeDefs::SET__UAI__RESPONSE_template *field_set__UAI__Response; +Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template *field_set__UL__Message__Response; +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template *field_test__Loop__Sidelink__Counter__Response; +}; +} single_value; +struct { +unsigned int n_values; +NG__NAS__UL__Message__Type_template *list_value; +} value_list; +struct { +NG__NAS__UL__Message__Type_template* precondition; +NG__NAS__UL__Message__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__NAS__UL__Message__Type& other_value); + +void copy_template(const NG__NAS__UL__Message__Type_template& other_value); + +public: +NG__NAS__UL__Message__Type_template(); +NG__NAS__UL__Message__Type_template(template_sel other_value); +NG__NAS__UL__Message__Type_template(const NG__NAS__UL__Message__Type& other_value); +NG__NAS__UL__Message__Type_template(const OPTIONAL& other_value); +NG__NAS__UL__Message__Type_template(NG__NAS__UL__Message__Type_template* p_precondition, NG__NAS__UL__Message__Type_template* p_implied_template); +NG__NAS__UL__Message__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__UL__Message__Type_template(const NG__NAS__UL__Message__Type_template& other_value); +~NG__NAS__UL__Message__Type_template(); +void clean_up(); +NG__NAS__UL__Message__Type_template& operator=(template_sel other_value); +NG__NAS__UL__Message__Type_template& operator=(const NG__NAS__UL__Message__Type& other_value); +NG__NAS__UL__Message__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__UL__Message__Type_template& operator=(const NG__NAS__UL__Message__Type_template& other_value); +boolean match(const NG__NAS__UL__Message__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;NG__NAS__UL__Message__Type valueof() const; +NG__NAS__UL__Message__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +NG__NAS__UL__Message__Type::union_selection_type get_union_selection() const; +NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template& authentication__Failure(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template& authentication__Failure() const; +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template& authentication__Response(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template& authentication__Response() const; +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template& configuration__Update__Complete(); +const NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template& configuration__Update__Complete() const; +NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template& cp__Service__Request(); +const NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template& cp__Service__Request() const; +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& deregistration__Accept(); +const NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& deregistration__Accept() const; +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template& deregistration__RequestMO(); +const NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template& deregistration__RequestMO() const; +NG__NAS__TypeDefs::NG__GMM__STATUS_template& gmm__Status(); +const NG__NAS__TypeDefs::NG__GMM__STATUS_template& gmm__Status() const; +NG__NAS__TypeDefs::NG__GSM__STATUS_template& gsm__Status(); +const NG__NAS__TypeDefs::NG__GSM__STATUS_template& gsm__Status() const; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& network__Slice__Specific__Authentication__Complete(); +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& network__Slice__Specific__Authentication__Complete() const; +NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template& identity__Response(); +const NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template& identity__Response() const; +NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template& notification__Response(); +const NG__NAS__TypeDefs::NG__NOTIFICATION__RESPONSE_template& notification__Response() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& pdu__Session__Authentication__Complete(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& pdu__Session__Authentication__Complete() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& pdu__Session__Establishment__Request(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& pdu__Session__Establishment__Request() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& pdu__Session__Modification__Command__Reject(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& pdu__Session__Modification__Command__Reject() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template& pdu__Session__Modification__Complete(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template& pdu__Session__Modification__Complete() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template& pdu__Session__Modification__Request(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template& pdu__Session__Modification__Request() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template& pdu__Session__Release__Complete(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template& pdu__Session__Release__Complete() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template& pdu__Session__Release__Request(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template& pdu__Session__Release__Request() const; +NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template& registration__Complete(); +const NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template& registration__Complete() const; +NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template& registration__Request(); +const NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template& registration__Request() const; +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template& security__Mode__Complete(); +const NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template& security__Mode__Complete() const; +NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template& security__Mode__Reject(); +const NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template& security__Mode__Reject() const; +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template& security__Protected__Nas__Message(); +const NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template& security__Protected__Nas__Message() const; +NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template& service__Request(); +const NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template& service__Request() const; +NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template& ul__Nas__Transport(); +const NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template& ul__Nas__Transport() const; +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template& activate__Test__Mode__Complete(); +const EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE__COMPLETE_template& activate__Test__Mode__Complete() const; +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template& deactivate__Test__Mode__Complete(); +const EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE__COMPLETE_template& deactivate__Test__Mode__Complete() const; +EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template& close__Ue__Test__Loop__Complete(); +const EPS__NAS__LoopBack__TypeDefs::CLOSE__UE__TEST__LOOP__COMPLETE_template& close__Ue__Test__Loop__Complete() const; +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template& open__Ue__Test__Loop__Complete(); +const EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP__COMPLETE_template& open__Ue__Test__Loop__Complete() const; +NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template& nssai__Delete__Response(); +const NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template& nssai__Delete__Response() const; +NG__NAS__TypeDefs::SET__UAI__RESPONSE_template& set__UAI__Response(); +const NG__NAS__TypeDefs::SET__UAI__RESPONSE_template& set__UAI__Response() const; +Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template& set__UL__Message__Response(); +const Common4G5G__LoopBack::SET__UL__MESSAGE__RESPONSE_template& set__UL__Message__Response() const; +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& test__Loop__Sidelink__Counter__Response(); +const NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& test__Loop__Sidelink__Counter__Response() const; +boolean ischosen(NG__NAS__UL__Message__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NG__NAS__UL__Message__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class NG__NAS__DL__Message__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_authentication__Reject = 1, ALT_authentication__Request = 2, ALT_authentication__Result = 3, ALT_configuration__Update__Command = 4, ALT_deregistration__Accept = 5, ALT_deregistration__RequestMT = 6, ALT_dl__Nas__Transport = 7, ALT_gmm__Status = 8, ALT_gsm__Status = 9, ALT_identity__Request = 10, ALT_network__Slice__Specific__Authentication__Command = 11, ALT_network__Slice__Specific__Authentication__Result = 12, ALT_notification = 13, ALT_pdu__Session__Authentication__Command = 14, ALT_pdu__Session__Authentication__Result = 15, ALT_pdu__Session__Establishment__Accept = 16, ALT_pdu__Session__Establishment__Reject = 17, ALT_pdu__Session__Modification__Command = 18, ALT_pdu__Session__Modification__Reject = 19, ALT_pdu__Session__Release__Command = 20, ALT_pdu__Session__Release__Reject = 21, ALT_registration__Accept = 22, ALT_registration__Reject = 23, ALT_security__Mode__Command = 24, ALT_security__Protected__Nas__Message = 25, ALT_service__Accept = 26, ALT_service__Reject = 27, ALT_reset__UE__Positioning__Stored__Information = 28, ALT_activate__Test__Mode = 29, ALT_deactivate__Test__Mode = 30, ALT_close__Ue__Test__Loop = 31, ALT_open__Ue__Test__Loop = 32, ALT_nssai__Delete__Request = 33, ALT_set__UAI__Request = 34, ALT_set__UL__Message__Request = 35, ALT_test__Loop__Sidelink__Counter__Request = 36, ALT_update__Ue__Location__Information = 37 }; +private: +union_selection_type union_selection; +union { +NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT *field_authentication__Reject; +NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST *field_authentication__Request; +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT *field_authentication__Result; +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND *field_configuration__Update__Command; +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT *field_deregistration__Accept; +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT *field_deregistration__RequestMT; +NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT *field_dl__Nas__Transport; +NG__NAS__TypeDefs::NG__GMM__STATUS *field_gmm__Status; +NG__NAS__TypeDefs::NG__GSM__STATUS *field_gsm__Status; +NG__NAS__TypeDefs::NG__IDENTITY__REQUEST *field_identity__Request; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND *field_network__Slice__Specific__Authentication__Command; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT *field_network__Slice__Specific__Authentication__Result; +NG__NAS__TypeDefs::NG__NOTIFICATION *field_notification; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND *field_pdu__Session__Authentication__Command; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT *field_pdu__Session__Authentication__Result; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT *field_pdu__Session__Establishment__Accept; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT *field_pdu__Session__Establishment__Reject; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND *field_pdu__Session__Modification__Command; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT *field_pdu__Session__Modification__Reject; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND *field_pdu__Session__Release__Command; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT *field_pdu__Session__Release__Reject; +NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT *field_registration__Accept; +NG__NAS__TypeDefs::NG__REGISTRATION__REJECT *field_registration__Reject; +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND *field_security__Mode__Command; +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE *field_security__Protected__Nas__Message; +NG__NAS__TypeDefs::NG__SERVICE__ACCEPT *field_service__Accept; +NG__NAS__TypeDefs::NG__SERVICE__REJECT *field_service__Reject; +NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION *field_reset__UE__Positioning__Stored__Information; +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE *field_activate__Test__Mode; +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE *field_deactivate__Test__Mode; +Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP *field_close__Ue__Test__Loop; +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP *field_open__Ue__Test__Loop; +NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST *field_nssai__Delete__Request; +NG__NAS__TypeDefs::SET__UAI__REQUEST *field_set__UAI__Request; +Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST *field_set__UL__Message__Request; +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST *field_test__Loop__Sidelink__Counter__Request; +EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION *field_update__Ue__Location__Information; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__NAS__DL__Message__Type& other_value); + +public: +NG__NAS__DL__Message__Type(); +NG__NAS__DL__Message__Type(const NG__NAS__DL__Message__Type& other_value); +~NG__NAS__DL__Message__Type(); +NG__NAS__DL__Message__Type& operator=(const NG__NAS__DL__Message__Type& other_value); +boolean operator==(const NG__NAS__DL__Message__Type& other_value) const; +inline boolean operator!=(const NG__NAS__DL__Message__Type& other_value) const { return !(*this == other_value); } +NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT& authentication__Reject(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT& authentication__Reject() const; +NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST& authentication__Request(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST& authentication__Request() const; +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT& authentication__Result(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT& authentication__Result() const; +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND& configuration__Update__Command(); +const NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND& configuration__Update__Command() const; +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT& deregistration__Accept(); +const NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT& deregistration__Accept() const; +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT& deregistration__RequestMT(); +const NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT& deregistration__RequestMT() const; +NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT& dl__Nas__Transport(); +const NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT& dl__Nas__Transport() const; +NG__NAS__TypeDefs::NG__GMM__STATUS& gmm__Status(); +const NG__NAS__TypeDefs::NG__GMM__STATUS& gmm__Status() const; +NG__NAS__TypeDefs::NG__GSM__STATUS& gsm__Status(); +const NG__NAS__TypeDefs::NG__GSM__STATUS& gsm__Status() const; +NG__NAS__TypeDefs::NG__IDENTITY__REQUEST& identity__Request(); +const NG__NAS__TypeDefs::NG__IDENTITY__REQUEST& identity__Request() const; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& network__Slice__Specific__Authentication__Command(); +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& network__Slice__Specific__Authentication__Command() const; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& network__Slice__Specific__Authentication__Result(); +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& network__Slice__Specific__Authentication__Result() const; +NG__NAS__TypeDefs::NG__NOTIFICATION& notification(); +const NG__NAS__TypeDefs::NG__NOTIFICATION& notification() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND& pdu__Session__Authentication__Command(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND& pdu__Session__Authentication__Command() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT& pdu__Session__Authentication__Result(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT& pdu__Session__Authentication__Result() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& pdu__Session__Establishment__Accept(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& pdu__Session__Establishment__Accept() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT& pdu__Session__Establishment__Reject(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT& pdu__Session__Establishment__Reject() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND& pdu__Session__Modification__Command(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND& pdu__Session__Modification__Command() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT& pdu__Session__Modification__Reject(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT& pdu__Session__Modification__Reject() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND& pdu__Session__Release__Command(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND& pdu__Session__Release__Command() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT& pdu__Session__Release__Reject(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT& pdu__Session__Release__Reject() const; +NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT& registration__Accept(); +const NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT& registration__Accept() const; +NG__NAS__TypeDefs::NG__REGISTRATION__REJECT& registration__Reject(); +const NG__NAS__TypeDefs::NG__REGISTRATION__REJECT& registration__Reject() const; +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND& security__Mode__Command(); +const NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND& security__Mode__Command() const; +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE& security__Protected__Nas__Message(); +const NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE& security__Protected__Nas__Message() const; +NG__NAS__TypeDefs::NG__SERVICE__ACCEPT& service__Accept(); +const NG__NAS__TypeDefs::NG__SERVICE__ACCEPT& service__Accept() const; +NG__NAS__TypeDefs::NG__SERVICE__REJECT& service__Reject(); +const NG__NAS__TypeDefs::NG__SERVICE__REJECT& service__Reject() const; +NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION& reset__UE__Positioning__Stored__Information(); +const NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION& reset__UE__Positioning__Stored__Information() const; +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE& activate__Test__Mode(); +const EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE& activate__Test__Mode() const; +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE& deactivate__Test__Mode(); +const EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE& deactivate__Test__Mode() const; +Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP& close__Ue__Test__Loop(); +const Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP& close__Ue__Test__Loop() const; +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP& open__Ue__Test__Loop(); +const EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP& open__Ue__Test__Loop() const; +NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST& nssai__Delete__Request(); +const NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST& nssai__Delete__Request() const; +NG__NAS__TypeDefs::SET__UAI__REQUEST& set__UAI__Request(); +const NG__NAS__TypeDefs::SET__UAI__REQUEST& set__UAI__Request() const; +Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST& set__UL__Message__Request(); +const Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST& set__UL__Message__Request() const; +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& test__Loop__Sidelink__Counter__Request(); +const NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& test__Loop__Sidelink__Counter__Request() const; +EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION& update__Ue__Location__Information(); +const EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION& update__Ue__Location__Information() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NG__NAS__DL__Message__Type_template : public Base_Template { +union { +struct { +NG__NAS__DL__Message__Type::union_selection_type union_selection; +union { +NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template *field_authentication__Reject; +NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template *field_authentication__Request; +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template *field_authentication__Result; +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template *field_configuration__Update__Command; +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template *field_deregistration__Accept; +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template *field_deregistration__RequestMT; +NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template *field_dl__Nas__Transport; +NG__NAS__TypeDefs::NG__GMM__STATUS_template *field_gmm__Status; +NG__NAS__TypeDefs::NG__GSM__STATUS_template *field_gsm__Status; +NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template *field_identity__Request; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template *field_network__Slice__Specific__Authentication__Command; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template *field_network__Slice__Specific__Authentication__Result; +NG__NAS__TypeDefs::NG__NOTIFICATION_template *field_notification; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template *field_pdu__Session__Authentication__Command; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template *field_pdu__Session__Authentication__Result; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template *field_pdu__Session__Establishment__Accept; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template *field_pdu__Session__Establishment__Reject; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template *field_pdu__Session__Modification__Command; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template *field_pdu__Session__Modification__Reject; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template *field_pdu__Session__Release__Command; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template *field_pdu__Session__Release__Reject; +NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template *field_registration__Accept; +NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template *field_registration__Reject; +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template *field_security__Mode__Command; +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template *field_security__Protected__Nas__Message; +NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template *field_service__Accept; +NG__NAS__TypeDefs::NG__SERVICE__REJECT_template *field_service__Reject; +NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template *field_reset__UE__Positioning__Stored__Information; +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template *field_activate__Test__Mode; +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template *field_deactivate__Test__Mode; +Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template *field_close__Ue__Test__Loop; +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template *field_open__Ue__Test__Loop; +NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template *field_nssai__Delete__Request; +NG__NAS__TypeDefs::SET__UAI__REQUEST_template *field_set__UAI__Request; +Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template *field_set__UL__Message__Request; +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template *field_test__Loop__Sidelink__Counter__Request; +EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template *field_update__Ue__Location__Information; +}; +} single_value; +struct { +unsigned int n_values; +NG__NAS__DL__Message__Type_template *list_value; +} value_list; +struct { +NG__NAS__DL__Message__Type_template* precondition; +NG__NAS__DL__Message__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__NAS__DL__Message__Type& other_value); + +void copy_template(const NG__NAS__DL__Message__Type_template& other_value); + +public: +NG__NAS__DL__Message__Type_template(); +NG__NAS__DL__Message__Type_template(template_sel other_value); +NG__NAS__DL__Message__Type_template(const NG__NAS__DL__Message__Type& other_value); +NG__NAS__DL__Message__Type_template(const OPTIONAL& other_value); +NG__NAS__DL__Message__Type_template(NG__NAS__DL__Message__Type_template* p_precondition, NG__NAS__DL__Message__Type_template* p_implied_template); +NG__NAS__DL__Message__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__DL__Message__Type_template(const NG__NAS__DL__Message__Type_template& other_value); +~NG__NAS__DL__Message__Type_template(); +void clean_up(); +NG__NAS__DL__Message__Type_template& operator=(template_sel other_value); +NG__NAS__DL__Message__Type_template& operator=(const NG__NAS__DL__Message__Type& other_value); +NG__NAS__DL__Message__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__DL__Message__Type_template& operator=(const NG__NAS__DL__Message__Type_template& other_value); +boolean match(const NG__NAS__DL__Message__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;NG__NAS__DL__Message__Type valueof() const; +NG__NAS__DL__Message__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +NG__NAS__DL__Message__Type::union_selection_type get_union_selection() const; +NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template& authentication__Reject(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template& authentication__Reject() const; +NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template& authentication__Request(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template& authentication__Request() const; +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template& authentication__Result(); +const NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template& authentication__Result() const; +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template& configuration__Update__Command(); +const NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template& configuration__Update__Command() const; +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& deregistration__Accept(); +const NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& deregistration__Accept() const; +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template& deregistration__RequestMT(); +const NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template& deregistration__RequestMT() const; +NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template& dl__Nas__Transport(); +const NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template& dl__Nas__Transport() const; +NG__NAS__TypeDefs::NG__GMM__STATUS_template& gmm__Status(); +const NG__NAS__TypeDefs::NG__GMM__STATUS_template& gmm__Status() const; +NG__NAS__TypeDefs::NG__GSM__STATUS_template& gsm__Status(); +const NG__NAS__TypeDefs::NG__GSM__STATUS_template& gsm__Status() const; +NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template& identity__Request(); +const NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template& identity__Request() const; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& network__Slice__Specific__Authentication__Command(); +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& network__Slice__Specific__Authentication__Command() const; +NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& network__Slice__Specific__Authentication__Result(); +const NG__NAS__TypeDefs::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& network__Slice__Specific__Authentication__Result() const; +NG__NAS__TypeDefs::NG__NOTIFICATION_template& notification(); +const NG__NAS__TypeDefs::NG__NOTIFICATION_template& notification() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& pdu__Session__Authentication__Command(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& pdu__Session__Authentication__Command() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template& pdu__Session__Authentication__Result(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template& pdu__Session__Authentication__Result() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& pdu__Session__Establishment__Accept(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& pdu__Session__Establishment__Accept() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& pdu__Session__Establishment__Reject(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& pdu__Session__Establishment__Reject() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template& pdu__Session__Modification__Command(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template& pdu__Session__Modification__Command() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template& pdu__Session__Modification__Reject(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REJECT_template& pdu__Session__Modification__Reject() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template& pdu__Session__Release__Command(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template& pdu__Session__Release__Command() const; +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template& pdu__Session__Release__Reject(); +const NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template& pdu__Session__Release__Reject() const; +NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template& registration__Accept(); +const NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template& registration__Accept() const; +NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template& registration__Reject(); +const NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template& registration__Reject() const; +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template& security__Mode__Command(); +const NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template& security__Mode__Command() const; +NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template& security__Protected__Nas__Message(); +const NG__NAS__TypeDefs::NG__SECURITY__PROTECTED__NAS__MESSAGE_template& security__Protected__Nas__Message() const; +NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template& service__Accept(); +const NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template& service__Accept() const; +NG__NAS__TypeDefs::NG__SERVICE__REJECT_template& service__Reject(); +const NG__NAS__TypeDefs::NG__SERVICE__REJECT_template& service__Reject() const; +NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template& reset__UE__Positioning__Stored__Information(); +const NAS__CommonTypeDefs::RESETUEPOSITIONINGSTOREDINFORMATION_template& reset__UE__Positioning__Stored__Information() const; +EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template& activate__Test__Mode(); +const EPS__NAS__LoopBack__TypeDefs::ACTIVATE__TEST__MODE_template& activate__Test__Mode() const; +EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template& deactivate__Test__Mode(); +const EPS__NAS__LoopBack__TypeDefs::DEACTIVATE__TEST__MODE_template& deactivate__Test__Mode() const; +Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template& close__Ue__Test__Loop(); +const Common4G5G__LoopBack::NR__CLOSE__UE__TEST__LOOP_template& close__Ue__Test__Loop() const; +EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template& open__Ue__Test__Loop(); +const EPS__NAS__LoopBack__TypeDefs::OPEN__UE__TEST__LOOP_template& open__Ue__Test__Loop() const; +NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template& nssai__Delete__Request(); +const NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template& nssai__Delete__Request() const; +NG__NAS__TypeDefs::SET__UAI__REQUEST_template& set__UAI__Request(); +const NG__NAS__TypeDefs::SET__UAI__REQUEST_template& set__UAI__Request() const; +Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template& set__UL__Message__Request(); +const Common4G5G__LoopBack::SET__UL__MESSAGE__REQUEST_template& set__UL__Message__Request() const; +NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& test__Loop__Sidelink__Counter__Request(); +const NG__NAS__TypeDefs::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& test__Loop__Sidelink__Counter__Request() const; +EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template& update__Ue__Location__Information(); +const EPS__NAS__TypeDefs::UPDATE__UE__LOCATION__INFORMATION_template& update__Ue__Location__Information() const; +boolean ischosen(NG__NAS__DL__Message__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NG__NAS__DL__Message__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class NG__NAS__SecurityProtectionInfoUL__Type : public Record_Type { + BITSTRING field_Status; + OCTETSTRING field_NasCount; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__NAS__SecurityProtectionInfoUL__Type(); + NG__NAS__SecurityProtectionInfoUL__Type(const NG__NAS__SecurityProtectionInfoUL__Type& other_value); + NG__NAS__SecurityProtectionInfoUL__Type(const BITSTRING& par_Status, + const OCTETSTRING& par_NasCount); +inline NG__NAS__SecurityProtectionInfoUL__Type& operator=(const NG__NAS__SecurityProtectionInfoUL__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__SecurityProtectionInfoUL__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__SecurityProtectionInfoUL__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& Status() + {return field_Status;} + inline const BITSTRING& Status() const + {return field_Status;} + inline OCTETSTRING& NasCount() + {return field_NasCount;} + inline const OCTETSTRING& NasCount() const + {return field_NasCount;} +Base_Type* clone() const { return new NG__NAS__SecurityProtectionInfoUL__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__SecurityProtectionInfoUL__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__SecurityProtectionInfoUL__Type_template(): Record_Template() {} +NG__NAS__SecurityProtectionInfoUL__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__SecurityProtectionInfoUL__Type_template(const NG__NAS__SecurityProtectionInfoUL__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__SecurityProtectionInfoUL__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__SecurityProtectionInfoUL__Type_template(NG__NAS__SecurityProtectionInfoUL__Type_template* p_precondition, NG__NAS__SecurityProtectionInfoUL__Type_template* p_implied_template); +NG__NAS__SecurityProtectionInfoUL__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__SecurityProtectionInfoUL__Type_template(const NG__NAS__SecurityProtectionInfoUL__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__SecurityProtectionInfoUL__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__SecurityProtectionInfoUL__Type_template& operator=(template_sel other_value); +NG__NAS__SecurityProtectionInfoUL__Type_template& operator=(const NG__NAS__SecurityProtectionInfoUL__Type& other_value); +NG__NAS__SecurityProtectionInfoUL__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__SecurityProtectionInfoUL__Type_template& operator=(const NG__NAS__SecurityProtectionInfoUL__Type_template& other_value); +inline boolean match(const NG__NAS__SecurityProtectionInfoUL__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__SecurityProtectionInfoUL__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__SecurityProtectionInfoUL__Type valueof() const; +inline NG__NAS__SecurityProtectionInfoUL__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& Status(); +const BITSTRING_template& Status() const; +OCTETSTRING_template& NasCount(); +const OCTETSTRING_template& NasCount() const; +Record_Template* create() const { return new NG__NAS__SecurityProtectionInfoUL__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__SecurityProtectionInfoDL__Type : public Record_Type { + BITSTRING field_Status; + BOOLEAN field_ForceMacError; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__NAS__SecurityProtectionInfoDL__Type(); + NG__NAS__SecurityProtectionInfoDL__Type(const NG__NAS__SecurityProtectionInfoDL__Type& other_value); + NG__NAS__SecurityProtectionInfoDL__Type(const BITSTRING& par_Status, + const BOOLEAN& par_ForceMacError); +inline NG__NAS__SecurityProtectionInfoDL__Type& operator=(const NG__NAS__SecurityProtectionInfoDL__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__SecurityProtectionInfoDL__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__SecurityProtectionInfoDL__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& Status() + {return field_Status;} + inline const BITSTRING& Status() const + {return field_Status;} + inline BOOLEAN& ForceMacError() + {return field_ForceMacError;} + inline const BOOLEAN& ForceMacError() const + {return field_ForceMacError;} +Base_Type* clone() const { return new NG__NAS__SecurityProtectionInfoDL__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__SecurityProtectionInfoDL__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__SecurityProtectionInfoDL__Type_template(): Record_Template() {} +NG__NAS__SecurityProtectionInfoDL__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__SecurityProtectionInfoDL__Type_template(const NG__NAS__SecurityProtectionInfoDL__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__SecurityProtectionInfoDL__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__SecurityProtectionInfoDL__Type_template(NG__NAS__SecurityProtectionInfoDL__Type_template* p_precondition, NG__NAS__SecurityProtectionInfoDL__Type_template* p_implied_template); +NG__NAS__SecurityProtectionInfoDL__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__SecurityProtectionInfoDL__Type_template(const NG__NAS__SecurityProtectionInfoDL__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__SecurityProtectionInfoDL__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__SecurityProtectionInfoDL__Type_template& operator=(template_sel other_value); +NG__NAS__SecurityProtectionInfoDL__Type_template& operator=(const NG__NAS__SecurityProtectionInfoDL__Type& other_value); +NG__NAS__SecurityProtectionInfoDL__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__SecurityProtectionInfoDL__Type_template& operator=(const NG__NAS__SecurityProtectionInfoDL__Type_template& other_value); +inline boolean match(const NG__NAS__SecurityProtectionInfoDL__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__SecurityProtectionInfoDL__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__SecurityProtectionInfoDL__Type valueof() const; +inline NG__NAS__SecurityProtectionInfoDL__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& Status(); +const BITSTRING_template& Status() const; +BOOLEAN_template& ForceMacError(); +const BOOLEAN_template& ForceMacError() const; +Record_Template* create() const { return new NG__NAS__SecurityProtectionInfoDL__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__UL__Pdu__Type : public Record_Type { + NG__NAS__UL__Message__Type field_Msg; + OPTIONAL field_PiggybackedPduList; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__NAS__UL__Pdu__Type(); + NG__NAS__UL__Pdu__Type(const NG__NAS__UL__Pdu__Type& other_value); + NG__NAS__UL__Pdu__Type(const NG__NAS__UL__Message__Type& par_Msg, + const OPTIONAL& par_PiggybackedPduList); +inline NG__NAS__UL__Pdu__Type& operator=(const NG__NAS__UL__Pdu__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__UL__Pdu__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__UL__Pdu__Type& other_value) const + { return !is_equal(&other_value); } + + inline NG__NAS__UL__Message__Type& Msg() + {return field_Msg;} + inline const NG__NAS__UL__Message__Type& Msg() const + {return field_Msg;} + inline OPTIONAL& PiggybackedPduList() + {return field_PiggybackedPduList;} + inline const OPTIONAL& PiggybackedPduList() const + {return field_PiggybackedPduList;} +Base_Type* clone() const { return new NG__NAS__UL__Pdu__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__UL__Pdu__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__UL__Pdu__Type_template(): Record_Template() {} +NG__NAS__UL__Pdu__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__UL__Pdu__Type_template(const NG__NAS__UL__Pdu__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__UL__Pdu__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__UL__Pdu__Type_template(NG__NAS__UL__Pdu__Type_template* p_precondition, NG__NAS__UL__Pdu__Type_template* p_implied_template); +NG__NAS__UL__Pdu__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__UL__Pdu__Type_template(const NG__NAS__UL__Pdu__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__UL__Pdu__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__UL__Pdu__Type_template& operator=(template_sel other_value); +NG__NAS__UL__Pdu__Type_template& operator=(const NG__NAS__UL__Pdu__Type& other_value); +NG__NAS__UL__Pdu__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__UL__Pdu__Type_template& operator=(const NG__NAS__UL__Pdu__Type_template& other_value); +inline boolean match(const NG__NAS__UL__Pdu__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__UL__Pdu__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__UL__Pdu__Type valueof() const; +inline NG__NAS__UL__Pdu__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NG__NAS__UL__Message__Type_template& Msg(); +const NG__NAS__UL__Message__Type_template& Msg() const; +NG__NAS__UL__PduList__Type_template& PiggybackedPduList(); +const NG__NAS__UL__PduList__Type_template& PiggybackedPduList() const; +Record_Template* create() const { return new NG__NAS__UL__Pdu__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__UL__PduList__Type : public Record_Of_Type { + +static const NG__NAS__UL__Pdu__Type UNBOUND_ELEM; + +public: +NG__NAS__UL__PduList__Type(): Record_Of_Type() {} +NG__NAS__UL__PduList__Type(null_type other_value): Record_Of_Type(other_value) {} +NG__NAS__UL__PduList__Type(const NG__NAS__UL__PduList__Type& other_value): Record_Of_Type(other_value) {} +~NG__NAS__UL__PduList__Type() { clean_up(); } + +inline NG__NAS__UL__PduList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__NAS__UL__PduList__Type& operator=(const NG__NAS__UL__PduList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__UL__PduList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__NAS__UL__PduList__Type& other_value) const { return !is_equal(&other_value); } +NG__NAS__UL__Pdu__Type& operator[](int index_value); +NG__NAS__UL__Pdu__Type& operator[](const INTEGER& index_value); +const NG__NAS__UL__Pdu__Type& operator[](int index_value) const; +const NG__NAS__UL__Pdu__Type& operator[](const INTEGER& index_value) const; +NG__NAS__UL__PduList__Type operator<<=(int rotate_count) const; +NG__NAS__UL__PduList__Type operator<<=(const INTEGER& rotate_count) const; +NG__NAS__UL__PduList__Type operator>>=(int rotate_count) const; +NG__NAS__UL__PduList__Type operator>>=(const INTEGER& rotate_count) const; + +NG__NAS__UL__PduList__Type operator+(const NG__NAS__UL__PduList__Type& other_value) const; + +NG__NAS__UL__PduList__Type operator+(const OPTIONAL& other_value) const; + +NG__NAS__UL__PduList__Type operator+(null_type) const; + +NG__NAS__UL__PduList__Type substr(int index, int returncount) const; + +NG__NAS__UL__PduList__Type replace(int index, int len, const NG__NAS__UL__PduList__Type& repl) const; + +NG__NAS__UL__PduList__Type replace(int index, int len, const NG__NAS__UL__PduList__Type_template& repl) const; + +Base_Type* clone() const { return new NG__NAS__UL__PduList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__NAS__UL__PduList__Type_template : public Record_Of_Template { +friend NG__NAS__UL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__UL__PduList__Type_template& right_template); +friend NG__NAS__UL__PduList__Type_template operator+(const NG__NAS__UL__PduList__Type& left_value, const NG__NAS__UL__PduList__Type_template& right_template); +friend NG__NAS__UL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__UL__PduList__Type& right_value); +friend NG__NAS__UL__PduList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__NAS__UL__PduList__Type_template operator+(const NG__NAS__UL__PduList__Type& left_value, template_sel right_template); + +public: +NG__NAS__UL__PduList__Type_template() {} +NG__NAS__UL__PduList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__NAS__UL__PduList__Type_template(null_type other_value); +NG__NAS__UL__PduList__Type_template(const NG__NAS__UL__PduList__Type& other_value) { copy_value(&other_value); } +NG__NAS__UL__PduList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__NAS__UL__PduList__Type_template(NG__NAS__UL__PduList__Type_template* p_precondition, NG__NAS__UL__PduList__Type_template* p_implied_template); +NG__NAS__UL__PduList__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__UL__PduList__Type_template(const NG__NAS__UL__PduList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__NAS__UL__PduList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__UL__PduList__Type_template& operator=(template_sel other_value); +NG__NAS__UL__PduList__Type_template& operator=(null_type other_value); +NG__NAS__UL__PduList__Type_template& operator=(const NG__NAS__UL__PduList__Type& other_value); +NG__NAS__UL__PduList__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__UL__PduList__Type_template& operator=(const NG__NAS__UL__PduList__Type_template& other_value); + +NG__NAS__UL__PduList__Type_template operator+(const NG__NAS__UL__PduList__Type_template& other_value) const; +NG__NAS__UL__PduList__Type_template operator+(const NG__NAS__UL__PduList__Type& other_value) const; +NG__NAS__UL__PduList__Type_template operator+(template_sel other_value) const; +NG__NAS__UL__PduList__Type_template operator+(null_type) const; + +NG__NAS__UL__Pdu__Type_template& operator[](int index_value); +NG__NAS__UL__Pdu__Type_template& operator[](const INTEGER& index_value); +const NG__NAS__UL__Pdu__Type_template& operator[](int index_value) const; +const NG__NAS__UL__Pdu__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__NAS__UL__PduList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__NAS__UL__PduList__Type valueof() const; +NG__NAS__UL__PduList__Type substr(int index, int returncount) const; + +NG__NAS__UL__PduList__Type replace(int index, int len, const NG__NAS__UL__PduList__Type_template& repl) const; + +NG__NAS__UL__PduList__Type replace(int index, int len, const NG__NAS__UL__PduList__Type& repl) const; + +inline NG__NAS__UL__PduList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__NAS__UL__PduList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__NAS__UL__PduList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__NAS__DL__Pdu__Type : public Record_Type { + NG__NAS__DL__Message__Type field_Msg; + OPTIONAL field_PiggybackedPduList; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__NAS__DL__Pdu__Type(); + NG__NAS__DL__Pdu__Type(const NG__NAS__DL__Pdu__Type& other_value); + NG__NAS__DL__Pdu__Type(const NG__NAS__DL__Message__Type& par_Msg, + const OPTIONAL& par_PiggybackedPduList); +inline NG__NAS__DL__Pdu__Type& operator=(const NG__NAS__DL__Pdu__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__DL__Pdu__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__DL__Pdu__Type& other_value) const + { return !is_equal(&other_value); } + + inline NG__NAS__DL__Message__Type& Msg() + {return field_Msg;} + inline const NG__NAS__DL__Message__Type& Msg() const + {return field_Msg;} + inline OPTIONAL& PiggybackedPduList() + {return field_PiggybackedPduList;} + inline const OPTIONAL& PiggybackedPduList() const + {return field_PiggybackedPduList;} +Base_Type* clone() const { return new NG__NAS__DL__Pdu__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__DL__Pdu__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__DL__Pdu__Type_template(): Record_Template() {} +NG__NAS__DL__Pdu__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__DL__Pdu__Type_template(const NG__NAS__DL__Pdu__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__DL__Pdu__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__DL__Pdu__Type_template(NG__NAS__DL__Pdu__Type_template* p_precondition, NG__NAS__DL__Pdu__Type_template* p_implied_template); +NG__NAS__DL__Pdu__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__DL__Pdu__Type_template(const NG__NAS__DL__Pdu__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__DL__Pdu__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__DL__Pdu__Type_template& operator=(template_sel other_value); +NG__NAS__DL__Pdu__Type_template& operator=(const NG__NAS__DL__Pdu__Type& other_value); +NG__NAS__DL__Pdu__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__DL__Pdu__Type_template& operator=(const NG__NAS__DL__Pdu__Type_template& other_value); +inline boolean match(const NG__NAS__DL__Pdu__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__DL__Pdu__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__DL__Pdu__Type valueof() const; +inline NG__NAS__DL__Pdu__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NG__NAS__DL__Message__Type_template& Msg(); +const NG__NAS__DL__Message__Type_template& Msg() const; +NG__NAS__DL__PduList__Type_template& PiggybackedPduList(); +const NG__NAS__DL__PduList__Type_template& PiggybackedPduList() const; +Record_Template* create() const { return new NG__NAS__DL__Pdu__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__DL__PduList__Type : public Record_Of_Type { + +static const NG__NAS__DL__Pdu__Type UNBOUND_ELEM; + +public: +NG__NAS__DL__PduList__Type(): Record_Of_Type() {} +NG__NAS__DL__PduList__Type(null_type other_value): Record_Of_Type(other_value) {} +NG__NAS__DL__PduList__Type(const NG__NAS__DL__PduList__Type& other_value): Record_Of_Type(other_value) {} +~NG__NAS__DL__PduList__Type() { clean_up(); } + +inline NG__NAS__DL__PduList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__NAS__DL__PduList__Type& operator=(const NG__NAS__DL__PduList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__DL__PduList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__NAS__DL__PduList__Type& other_value) const { return !is_equal(&other_value); } +NG__NAS__DL__Pdu__Type& operator[](int index_value); +NG__NAS__DL__Pdu__Type& operator[](const INTEGER& index_value); +const NG__NAS__DL__Pdu__Type& operator[](int index_value) const; +const NG__NAS__DL__Pdu__Type& operator[](const INTEGER& index_value) const; +NG__NAS__DL__PduList__Type operator<<=(int rotate_count) const; +NG__NAS__DL__PduList__Type operator<<=(const INTEGER& rotate_count) const; +NG__NAS__DL__PduList__Type operator>>=(int rotate_count) const; +NG__NAS__DL__PduList__Type operator>>=(const INTEGER& rotate_count) const; + +NG__NAS__DL__PduList__Type operator+(const NG__NAS__DL__PduList__Type& other_value) const; + +NG__NAS__DL__PduList__Type operator+(const OPTIONAL& other_value) const; + +NG__NAS__DL__PduList__Type operator+(null_type) const; + +NG__NAS__DL__PduList__Type substr(int index, int returncount) const; + +NG__NAS__DL__PduList__Type replace(int index, int len, const NG__NAS__DL__PduList__Type& repl) const; + +NG__NAS__DL__PduList__Type replace(int index, int len, const NG__NAS__DL__PduList__Type_template& repl) const; + +Base_Type* clone() const { return new NG__NAS__DL__PduList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__NAS__DL__PduList__Type_template : public Record_Of_Template { +friend NG__NAS__DL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__DL__PduList__Type_template& right_template); +friend NG__NAS__DL__PduList__Type_template operator+(const NG__NAS__DL__PduList__Type& left_value, const NG__NAS__DL__PduList__Type_template& right_template); +friend NG__NAS__DL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__DL__PduList__Type& right_value); +friend NG__NAS__DL__PduList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__NAS__DL__PduList__Type_template operator+(const NG__NAS__DL__PduList__Type& left_value, template_sel right_template); + +public: +NG__NAS__DL__PduList__Type_template() {} +NG__NAS__DL__PduList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__NAS__DL__PduList__Type_template(null_type other_value); +NG__NAS__DL__PduList__Type_template(const NG__NAS__DL__PduList__Type& other_value) { copy_value(&other_value); } +NG__NAS__DL__PduList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__NAS__DL__PduList__Type_template(NG__NAS__DL__PduList__Type_template* p_precondition, NG__NAS__DL__PduList__Type_template* p_implied_template); +NG__NAS__DL__PduList__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__DL__PduList__Type_template(const NG__NAS__DL__PduList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__NAS__DL__PduList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__DL__PduList__Type_template& operator=(template_sel other_value); +NG__NAS__DL__PduList__Type_template& operator=(null_type other_value); +NG__NAS__DL__PduList__Type_template& operator=(const NG__NAS__DL__PduList__Type& other_value); +NG__NAS__DL__PduList__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__DL__PduList__Type_template& operator=(const NG__NAS__DL__PduList__Type_template& other_value); + +NG__NAS__DL__PduList__Type_template operator+(const NG__NAS__DL__PduList__Type_template& other_value) const; +NG__NAS__DL__PduList__Type_template operator+(const NG__NAS__DL__PduList__Type& other_value) const; +NG__NAS__DL__PduList__Type_template operator+(template_sel other_value) const; +NG__NAS__DL__PduList__Type_template operator+(null_type) const; + +NG__NAS__DL__Pdu__Type_template& operator[](int index_value); +NG__NAS__DL__Pdu__Type_template& operator[](const INTEGER& index_value); +const NG__NAS__DL__Pdu__Type_template& operator[](int index_value) const; +const NG__NAS__DL__Pdu__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__NAS__DL__PduList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__NAS__DL__PduList__Type valueof() const; +NG__NAS__DL__PduList__Type substr(int index, int returncount) const; + +NG__NAS__DL__PduList__Type replace(int index, int len, const NG__NAS__DL__PduList__Type_template& repl) const; + +NG__NAS__DL__PduList__Type replace(int index, int len, const NG__NAS__DL__PduList__Type& repl) const; + +inline NG__NAS__DL__PduList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__NAS__DL__PduList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__NAS__DL__PduList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__NAS__MSG__Indication__Type : public Record_Type { + NG__NAS__SecurityProtectionInfoUL__Type field_SecurityProtection; + NG__NAS__UL__Pdu__Type field_Pdu; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__NAS__MSG__Indication__Type(); + NG__NAS__MSG__Indication__Type(const NG__NAS__MSG__Indication__Type& other_value); + NG__NAS__MSG__Indication__Type(const NG__NAS__SecurityProtectionInfoUL__Type& par_SecurityProtection, + const NG__NAS__UL__Pdu__Type& par_Pdu); +inline NG__NAS__MSG__Indication__Type& operator=(const NG__NAS__MSG__Indication__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__MSG__Indication__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__MSG__Indication__Type& other_value) const + { return !is_equal(&other_value); } + + inline NG__NAS__SecurityProtectionInfoUL__Type& SecurityProtection() + {return field_SecurityProtection;} + inline const NG__NAS__SecurityProtectionInfoUL__Type& SecurityProtection() const + {return field_SecurityProtection;} + inline NG__NAS__UL__Pdu__Type& Pdu() + {return field_Pdu;} + inline const NG__NAS__UL__Pdu__Type& Pdu() const + {return field_Pdu;} +Base_Type* clone() const { return new NG__NAS__MSG__Indication__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__MSG__Indication__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__MSG__Indication__Type_template(): Record_Template() {} +NG__NAS__MSG__Indication__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__MSG__Indication__Type_template(const NG__NAS__MSG__Indication__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__MSG__Indication__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__MSG__Indication__Type_template(NG__NAS__MSG__Indication__Type_template* p_precondition, NG__NAS__MSG__Indication__Type_template* p_implied_template); +NG__NAS__MSG__Indication__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__MSG__Indication__Type_template(const NG__NAS__MSG__Indication__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__MSG__Indication__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__MSG__Indication__Type_template& operator=(template_sel other_value); +NG__NAS__MSG__Indication__Type_template& operator=(const NG__NAS__MSG__Indication__Type& other_value); +NG__NAS__MSG__Indication__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__MSG__Indication__Type_template& operator=(const NG__NAS__MSG__Indication__Type_template& other_value); +inline boolean match(const NG__NAS__MSG__Indication__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__MSG__Indication__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__MSG__Indication__Type valueof() const; +inline NG__NAS__MSG__Indication__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NG__NAS__SecurityProtectionInfoUL__Type_template& SecurityProtection(); +const NG__NAS__SecurityProtectionInfoUL__Type_template& SecurityProtection() const; +NG__NAS__UL__Pdu__Type_template& Pdu(); +const NG__NAS__UL__Pdu__Type_template& Pdu() const; +Record_Template* create() const { return new NG__NAS__MSG__Indication__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__MSG__IndicationList__Type : public Record_Of_Type { + +static const NG__NAS__MSG__Indication__Type UNBOUND_ELEM; + +public: +NG__NAS__MSG__IndicationList__Type(): Record_Of_Type() {} +NG__NAS__MSG__IndicationList__Type(null_type other_value): Record_Of_Type(other_value) {} +NG__NAS__MSG__IndicationList__Type(const NG__NAS__MSG__IndicationList__Type& other_value): Record_Of_Type(other_value) {} +~NG__NAS__MSG__IndicationList__Type() { clean_up(); } + +inline NG__NAS__MSG__IndicationList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__NAS__MSG__IndicationList__Type& operator=(const NG__NAS__MSG__IndicationList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__MSG__IndicationList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__NAS__MSG__IndicationList__Type& other_value) const { return !is_equal(&other_value); } +NG__NAS__MSG__Indication__Type& operator[](int index_value); +NG__NAS__MSG__Indication__Type& operator[](const INTEGER& index_value); +const NG__NAS__MSG__Indication__Type& operator[](int index_value) const; +const NG__NAS__MSG__Indication__Type& operator[](const INTEGER& index_value) const; +NG__NAS__MSG__IndicationList__Type operator<<=(int rotate_count) const; +NG__NAS__MSG__IndicationList__Type operator<<=(const INTEGER& rotate_count) const; +NG__NAS__MSG__IndicationList__Type operator>>=(int rotate_count) const; +NG__NAS__MSG__IndicationList__Type operator>>=(const INTEGER& rotate_count) const; + +NG__NAS__MSG__IndicationList__Type operator+(const NG__NAS__MSG__IndicationList__Type& other_value) const; + +NG__NAS__MSG__IndicationList__Type operator+(const OPTIONAL& other_value) const; + +NG__NAS__MSG__IndicationList__Type operator+(null_type) const; + +NG__NAS__MSG__IndicationList__Type substr(int index, int returncount) const; + +NG__NAS__MSG__IndicationList__Type replace(int index, int len, const NG__NAS__MSG__IndicationList__Type& repl) const; + +NG__NAS__MSG__IndicationList__Type replace(int index, int len, const NG__NAS__MSG__IndicationList__Type_template& repl) const; + +Base_Type* clone() const { return new NG__NAS__MSG__IndicationList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__NAS__MSG__IndicationList__Type_template : public Record_Of_Template { +friend NG__NAS__MSG__IndicationList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__IndicationList__Type_template& right_template); +friend NG__NAS__MSG__IndicationList__Type_template operator+(const NG__NAS__MSG__IndicationList__Type& left_value, const NG__NAS__MSG__IndicationList__Type_template& right_template); +friend NG__NAS__MSG__IndicationList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__IndicationList__Type& right_value); +friend NG__NAS__MSG__IndicationList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__NAS__MSG__IndicationList__Type_template operator+(const NG__NAS__MSG__IndicationList__Type& left_value, template_sel right_template); + +public: +NG__NAS__MSG__IndicationList__Type_template() {} +NG__NAS__MSG__IndicationList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__NAS__MSG__IndicationList__Type_template(null_type other_value); +NG__NAS__MSG__IndicationList__Type_template(const NG__NAS__MSG__IndicationList__Type& other_value) { copy_value(&other_value); } +NG__NAS__MSG__IndicationList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__NAS__MSG__IndicationList__Type_template(NG__NAS__MSG__IndicationList__Type_template* p_precondition, NG__NAS__MSG__IndicationList__Type_template* p_implied_template); +NG__NAS__MSG__IndicationList__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__MSG__IndicationList__Type_template(const NG__NAS__MSG__IndicationList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__NAS__MSG__IndicationList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__MSG__IndicationList__Type_template& operator=(template_sel other_value); +NG__NAS__MSG__IndicationList__Type_template& operator=(null_type other_value); +NG__NAS__MSG__IndicationList__Type_template& operator=(const NG__NAS__MSG__IndicationList__Type& other_value); +NG__NAS__MSG__IndicationList__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__MSG__IndicationList__Type_template& operator=(const NG__NAS__MSG__IndicationList__Type_template& other_value); + +NG__NAS__MSG__IndicationList__Type_template operator+(const NG__NAS__MSG__IndicationList__Type_template& other_value) const; +NG__NAS__MSG__IndicationList__Type_template operator+(const NG__NAS__MSG__IndicationList__Type& other_value) const; +NG__NAS__MSG__IndicationList__Type_template operator+(template_sel other_value) const; +NG__NAS__MSG__IndicationList__Type_template operator+(null_type) const; + +NG__NAS__MSG__Indication__Type_template& operator[](int index_value); +NG__NAS__MSG__Indication__Type_template& operator[](const INTEGER& index_value); +const NG__NAS__MSG__Indication__Type_template& operator[](int index_value) const; +const NG__NAS__MSG__Indication__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__NAS__MSG__IndicationList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__NAS__MSG__IndicationList__Type valueof() const; +NG__NAS__MSG__IndicationList__Type substr(int index, int returncount) const; + +NG__NAS__MSG__IndicationList__Type replace(int index, int len, const NG__NAS__MSG__IndicationList__Type_template& repl) const; + +NG__NAS__MSG__IndicationList__Type replace(int index, int len, const NG__NAS__MSG__IndicationList__Type& repl) const; + +inline NG__NAS__MSG__IndicationList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__NAS__MSG__IndicationList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__NAS__MSG__IndicationList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__NAS__MSG__Request__Type : public Record_Type { + NG__NAS__SecurityProtectionInfoDL__Type field_SecurityProtection; + NG__NAS__DL__Pdu__Type field_Pdu; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__NAS__MSG__Request__Type(); + NG__NAS__MSG__Request__Type(const NG__NAS__MSG__Request__Type& other_value); + NG__NAS__MSG__Request__Type(const NG__NAS__SecurityProtectionInfoDL__Type& par_SecurityProtection, + const NG__NAS__DL__Pdu__Type& par_Pdu); +inline NG__NAS__MSG__Request__Type& operator=(const NG__NAS__MSG__Request__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__MSG__Request__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__MSG__Request__Type& other_value) const + { return !is_equal(&other_value); } + + inline NG__NAS__SecurityProtectionInfoDL__Type& SecurityProtection() + {return field_SecurityProtection;} + inline const NG__NAS__SecurityProtectionInfoDL__Type& SecurityProtection() const + {return field_SecurityProtection;} + inline NG__NAS__DL__Pdu__Type& Pdu() + {return field_Pdu;} + inline const NG__NAS__DL__Pdu__Type& Pdu() const + {return field_Pdu;} +Base_Type* clone() const { return new NG__NAS__MSG__Request__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__MSG__Request__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__MSG__Request__Type_template(): Record_Template() {} +NG__NAS__MSG__Request__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__MSG__Request__Type_template(const NG__NAS__MSG__Request__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__MSG__Request__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__MSG__Request__Type_template(NG__NAS__MSG__Request__Type_template* p_precondition, NG__NAS__MSG__Request__Type_template* p_implied_template); +NG__NAS__MSG__Request__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__MSG__Request__Type_template(const NG__NAS__MSG__Request__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__MSG__Request__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__MSG__Request__Type_template& operator=(template_sel other_value); +NG__NAS__MSG__Request__Type_template& operator=(const NG__NAS__MSG__Request__Type& other_value); +NG__NAS__MSG__Request__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__MSG__Request__Type_template& operator=(const NG__NAS__MSG__Request__Type_template& other_value); +inline boolean match(const NG__NAS__MSG__Request__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__MSG__Request__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__MSG__Request__Type valueof() const; +inline NG__NAS__MSG__Request__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NG__NAS__SecurityProtectionInfoDL__Type_template& SecurityProtection(); +const NG__NAS__SecurityProtectionInfoDL__Type_template& SecurityProtection() const; +NG__NAS__DL__Pdu__Type_template& Pdu(); +const NG__NAS__DL__Pdu__Type_template& Pdu() const; +Record_Template* create() const { return new NG__NAS__MSG__Request__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__MSG__RequestList__Type : public Record_Of_Type { + +static const NG__NAS__MSG__Request__Type UNBOUND_ELEM; + +public: +NG__NAS__MSG__RequestList__Type(): Record_Of_Type() {} +NG__NAS__MSG__RequestList__Type(null_type other_value): Record_Of_Type(other_value) {} +NG__NAS__MSG__RequestList__Type(const NG__NAS__MSG__RequestList__Type& other_value): Record_Of_Type(other_value) {} +~NG__NAS__MSG__RequestList__Type() { clean_up(); } + +inline NG__NAS__MSG__RequestList__Type& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__NAS__MSG__RequestList__Type& operator=(const NG__NAS__MSG__RequestList__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__MSG__RequestList__Type& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__NAS__MSG__RequestList__Type& other_value) const { return !is_equal(&other_value); } +NG__NAS__MSG__Request__Type& operator[](int index_value); +NG__NAS__MSG__Request__Type& operator[](const INTEGER& index_value); +const NG__NAS__MSG__Request__Type& operator[](int index_value) const; +const NG__NAS__MSG__Request__Type& operator[](const INTEGER& index_value) const; +NG__NAS__MSG__RequestList__Type operator<<=(int rotate_count) const; +NG__NAS__MSG__RequestList__Type operator<<=(const INTEGER& rotate_count) const; +NG__NAS__MSG__RequestList__Type operator>>=(int rotate_count) const; +NG__NAS__MSG__RequestList__Type operator>>=(const INTEGER& rotate_count) const; + +NG__NAS__MSG__RequestList__Type operator+(const NG__NAS__MSG__RequestList__Type& other_value) const; + +NG__NAS__MSG__RequestList__Type operator+(const OPTIONAL& other_value) const; + +NG__NAS__MSG__RequestList__Type operator+(null_type) const; + +NG__NAS__MSG__RequestList__Type substr(int index, int returncount) const; + +NG__NAS__MSG__RequestList__Type replace(int index, int len, const NG__NAS__MSG__RequestList__Type& repl) const; + +NG__NAS__MSG__RequestList__Type replace(int index, int len, const NG__NAS__MSG__RequestList__Type_template& repl) const; + +Base_Type* clone() const { return new NG__NAS__MSG__RequestList__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__NAS__MSG__RequestList__Type_template : public Record_Of_Template { +friend NG__NAS__MSG__RequestList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__RequestList__Type_template& right_template); +friend NG__NAS__MSG__RequestList__Type_template operator+(const NG__NAS__MSG__RequestList__Type& left_value, const NG__NAS__MSG__RequestList__Type_template& right_template); +friend NG__NAS__MSG__RequestList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__RequestList__Type& right_value); +friend NG__NAS__MSG__RequestList__Type_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__NAS__MSG__RequestList__Type_template operator+(const NG__NAS__MSG__RequestList__Type& left_value, template_sel right_template); + +public: +NG__NAS__MSG__RequestList__Type_template() {} +NG__NAS__MSG__RequestList__Type_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__NAS__MSG__RequestList__Type_template(null_type other_value); +NG__NAS__MSG__RequestList__Type_template(const NG__NAS__MSG__RequestList__Type& other_value) { copy_value(&other_value); } +NG__NAS__MSG__RequestList__Type_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__NAS__MSG__RequestList__Type_template(NG__NAS__MSG__RequestList__Type_template* p_precondition, NG__NAS__MSG__RequestList__Type_template* p_implied_template); +NG__NAS__MSG__RequestList__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__MSG__RequestList__Type_template(const NG__NAS__MSG__RequestList__Type_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__NAS__MSG__RequestList__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__MSG__RequestList__Type_template& operator=(template_sel other_value); +NG__NAS__MSG__RequestList__Type_template& operator=(null_type other_value); +NG__NAS__MSG__RequestList__Type_template& operator=(const NG__NAS__MSG__RequestList__Type& other_value); +NG__NAS__MSG__RequestList__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__MSG__RequestList__Type_template& operator=(const NG__NAS__MSG__RequestList__Type_template& other_value); + +NG__NAS__MSG__RequestList__Type_template operator+(const NG__NAS__MSG__RequestList__Type_template& other_value) const; +NG__NAS__MSG__RequestList__Type_template operator+(const NG__NAS__MSG__RequestList__Type& other_value) const; +NG__NAS__MSG__RequestList__Type_template operator+(template_sel other_value) const; +NG__NAS__MSG__RequestList__Type_template operator+(null_type) const; + +NG__NAS__MSG__Request__Type_template& operator[](int index_value); +NG__NAS__MSG__Request__Type_template& operator[](const INTEGER& index_value); +const NG__NAS__MSG__Request__Type_template& operator[](int index_value) const; +const NG__NAS__MSG__Request__Type_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__NAS__MSG__RequestList__Type& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__NAS__MSG__RequestList__Type valueof() const; +NG__NAS__MSG__RequestList__Type substr(int index, int returncount) const; + +NG__NAS__MSG__RequestList__Type replace(int index, int len, const NG__NAS__MSG__RequestList__Type_template& repl) const; + +NG__NAS__MSG__RequestList__Type replace(int index, int len, const NG__NAS__MSG__RequestList__Type& repl) const; + +inline NG__NAS__MSG__RequestList__Type_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__NAS__MSG__RequestList__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__NAS__MSG__RequestList__Type_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_NG_NAS_MsgContainers(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_NG_NAS_MsgContainers(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern NG__NAS__UL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__UL__PduList__Type_template& right_template); +extern NG__NAS__UL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__UL__PduList__Type& right_value); +extern NG__NAS__UL__PduList__Type_template operator+(const NG__NAS__UL__PduList__Type& left_value, template_sel right_template); +extern NG__NAS__DL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__DL__PduList__Type_template& right_template); +extern NG__NAS__DL__PduList__Type_template operator+(template_sel left_template, const NG__NAS__DL__PduList__Type& right_value); +extern NG__NAS__DL__PduList__Type_template operator+(const NG__NAS__DL__PduList__Type& left_value, template_sel right_template); +extern NG__NAS__MSG__IndicationList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__IndicationList__Type_template& right_template); +extern NG__NAS__MSG__IndicationList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__IndicationList__Type& right_value); +extern NG__NAS__MSG__IndicationList__Type_template operator+(const NG__NAS__MSG__IndicationList__Type& left_value, template_sel right_template); +extern NG__NAS__MSG__RequestList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__RequestList__Type_template& right_template); +extern NG__NAS__MSG__RequestList__Type_template operator+(template_sel left_template, const NG__NAS__MSG__RequestList__Type& right_value); +extern NG__NAS__MSG__RequestList__Type_template operator+(const NG__NAS__MSG__RequestList__Type& left_value, template_sel right_template); + +/* Global variable declarations */ + +extern const TTCN_Typedescriptor_t NG__NAS__UL__Message__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__DL__Message__Type_descr_; +extern const XERdescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_Status_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_Status_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_Status_descr_; +extern const XERdescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_NasCount_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_NasCount_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_NasCount_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoUL__Type_descr_; +extern const XERdescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_Status_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_Status_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_Status_descr_; +extern const XERdescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_ForceMacError_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityProtectionInfoDL__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__UL__Pdu__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__UL__PduList__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__DL__Pdu__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__DL__PduList__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__MSG__Indication__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__MSG__IndicationList__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__MSG__Request__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__MSG__RequestList__Type_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NG_NAS_MsgContainers.o b/build/Ats_NG_NAS/NG_NAS_MsgContainers.o new file mode 100644 index 0000000000000000000000000000000000000000..45d40b31cff75f0ba822d3db169e9d0dec23a128 Binary files /dev/null and b/build/Ats_NG_NAS/NG_NAS_MsgContainers.o differ diff --git a/build/Ats_NG_NAS/NG_NAS_SecurityFunctions.cc b/build/Ats_NG_NAS/NG_NAS_SecurityFunctions.cc new file mode 100644 index 0000000000000000000000000000000000000000..b6a88dce8e428c6c7fd1fbebb426872b6492bc85 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_SecurityFunctions.cc @@ -0,0 +1,2890 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NG_NAS_SecurityFunctions.hh" + +namespace NG__NAS__SecurityFunctions { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char bs_5_bits[] = { 0 }, +bs_4_bits[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +bs_0_bits[] = { 8 }, +bs_1_bits[] = { 4 }, +bs_2_bits[] = { 12 }, +bs_3_bits[] = { 7 }; +static const BITSTRING bs_5(1, bs_5_bits), +bs_4(256, bs_4_bits), +bs_0(4, bs_0_bits), +bs_1(4, bs_1_bits), +bs_2(4, bs_2_bits), +bs_3(3, bs_3_bits); +static const unsigned char hs_0_nibbles[] = { 15 }; +static const HEXSTRING hs_0(1, hs_0_nibbles); +static const unsigned char os_6_octets[] = { 0 }, +os_0_octets[] = { 0, 0 }, +os_24_octets[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +os_10_octets[] = { 0, 1 }, +os_22_octets[] = { 0, 2 }, +os_5_octets[] = { 0, 4 }, +os_14_octets[] = { 0, 6 }, +os_17_octets[] = { 0, 16 }, +os_1_octets[] = { 1 }, +os_3_octets[] = { 2 }, +os_4_octets[] = { 3 }, +os_7_octets[] = { 4 }, +os_8_octets[] = { 5 }, +os_12_octets[] = { 11 }, +os_11_octets[] = { 23 }, +os_9_octets[] = { 24 }, +os_15_octets[] = { 32 }, +os_2_octets[] = { 50 }, +os_13_octets[] = { 106 }, +os_16_octets[] = { 107 }, +os_18_octets[] = { 108 }, +os_19_octets[] = { 109 }, +os_21_octets[] = { 119 }, +os_23_octets[] = { 120 }; +static const OCTETSTRING os_20(0, NULL), +os_6(1, os_6_octets), +os_0(2, os_0_octets), +os_24(16, os_24_octets), +os_10(2, os_10_octets), +os_22(2, os_22_octets), +os_5(2, os_5_octets), +os_14(2, os_14_octets), +os_17(2, os_17_octets), +os_1(1, os_1_octets), +os_3(1, os_3_octets), +os_4(1, os_4_octets), +os_7(1, os_7_octets), +os_8(1, os_8_octets), +os_12(1, os_12_octets), +os_11(1, os_11_octets), +os_9(1, os_9_octets), +os_15(1, os_15_octets), +os_2(1, os_2_octets), +os_13(1, os_13_octets), +os_16(1, os_16_octets), +os_18(1, os_18_octets), +os_19(1, os_19_octets), +os_21(1, os_21_octets), +os_23(1, os_23_octets); +static const CHARSTRING cs_0(0, NULL), +cs_4(16, ".3gppnetwork.org"), +cs_3(4, ".mcc"), +cs_8(69, "/home/yanng/dev/nas/ttcn/Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn"), +cs_1('0'), +cs_2(6, "5G:mnc"), +cs_5(':'), +cs_6(12, "@nai.5gc.mnc"), +cs_9(29, "EAP message cannot be decoded"), +cs_7(8, "EAP-AKA'"), +cs_10(22, "no MAC attribute found"); +static const unsigned char module_checksum[] = { 0x20, 0x5b, 0x9e, 0x62, 0x97, 0x28, 0x56, 0xc5, 0xd4, 0xd8, 0x79, 0xc7, 0xd0, 0x2e, 0xb0, 0x46 }; + +/* Global variable definitions */ + +const XERdescriptor_t NG__NAS__SecurityParams__Type_KDF_xer_ = { {"KDF>\n", "KDF>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KDF_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KDF_descr_ = { "@NG_NAS_SecurityFunctions.NG_NAS_SecurityParams_Type.KDF", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &NG__NAS__SecurityParams__Type_KDF_xer_, &INTEGER_json_, &NG__NAS__SecurityParams__Type_KDF_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityParams__Type_KSIamf_xer_ = { {"KSIamf>\n", "KSIamf>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KSIamf_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KSIamf_descr_ = { "@NG_NAS_SecurityFunctions.NG_NAS_SecurityParams_Type.KSIamf", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NG__NAS__SecurityParams__Type_KSIamf_xer_, &BITSTRING_json_, &NG__NAS__SecurityParams__Type_KSIamf_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityParams__Type_Ks_xer_ = { {"Ks>\n", "Ks>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_Ks_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_Ks_descr_ = { "@NG_NAS_SecurityFunctions.NG_NAS_SecurityParams_Type.Ks", &BITSTRING_ber_, &CommonDefs::B256__Type_raw_, NULL, &NG__NAS__SecurityParams__Type_Ks_xer_, &BITSTRING_json_, &NG__NAS__SecurityParams__Type_Ks_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityParams__Type_KAMF_xer_ = { {"KAMF>\n", "KAMF>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KAMF_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KAMF_descr_ = { "@NG_NAS_SecurityFunctions.NG_NAS_SecurityParams_Type.KAMF", &BITSTRING_ber_, &CommonDefs::B256__Type_raw_, NULL, &NG__NAS__SecurityParams__Type_KAMF_xer_, &BITSTRING_json_, &NG__NAS__SecurityParams__Type_KAMF_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityParams__Type_MK_xer_ = { {"MK>\n", "MK>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_MK_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_MK_descr_ = { "@NG_NAS_SecurityFunctions.NG_NAS_SecurityParams_Type.MK", &BITSTRING_ber_, &BITSTRING_raw_, NULL, &NG__NAS__SecurityParams__Type_MK_xer_, &BITSTRING_json_, &NG__NAS__SecurityParams__Type_MK_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityParams__Type_KAUSF_xer_ = { {"KAUSF>\n", "KAUSF>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KAUSF_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KAUSF_descr_ = { "@NG_NAS_SecurityFunctions.NG_NAS_SecurityParams_Type.KAUSF", &BITSTRING_ber_, &CommonDefs::B256__Type_raw_, NULL, &NG__NAS__SecurityParams__Type_KAUSF_xer_, &BITSTRING_json_, &NG__NAS__SecurityParams__Type_KAUSF_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityParams__Type_KSEAF_xer_ = { {"KSEAF>\n", "KSEAF>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KSEAF_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KSEAF_descr_ = { "@NG_NAS_SecurityFunctions.NG_NAS_SecurityParams_Type.KSEAF", &BITSTRING_ber_, &CommonDefs::B256__Type_raw_, NULL, &NG__NAS__SecurityParams__Type_KSEAF_xer_, &BITSTRING_json_, &NG__NAS__SecurityParams__Type_KSEAF_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityParams__Type_ABBA_xer_ = { {"ABBA>\n", "ABBA>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NAS__SecurityParams__Type_ABBA_oer_ext_arr_[0] = {}; +const int NG__NAS__SecurityParams__Type_ABBA_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_ABBA_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__NAS__SecurityParams__Type_ABBA_oer_ext_arr_, 0, NG__NAS__SecurityParams__Type_ABBA_oer_p_}; +const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_ABBA_descr_ = { "@NG_NAS_SecurityFunctions.NG_NAS_SecurityParams_Type.ABBA", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__NAS__SecurityParams__Type_ABBA_xer_, &OCTETSTRING_json_, &NG__NAS__SecurityParams__Type_ABBA_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__SecurityParams__Type +const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_descr_ = { "@NG_NAS_SecurityFunctions.NG_NAS_SecurityParams_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +BITSTRING const_tsc__NG__Integrity__Snow3G; +const BITSTRING& tsc__NG__Integrity__Snow3G = const_tsc__NG__Integrity__Snow3G; +BITSTRING const_tsc__NG__Integrity__AES; +const BITSTRING& tsc__NG__Integrity__AES = const_tsc__NG__Integrity__AES; +BITSTRING const_tsc__NG__Integrity__ZUC; +const BITSTRING& tsc__NG__Integrity__ZUC = const_tsc__NG__Integrity__ZUC; +BITSTRING const_tsc__NG__Encryption__Snow3G; +const BITSTRING& tsc__NG__Encryption__Snow3G = const_tsc__NG__Encryption__Snow3G; +BITSTRING const_tsc__NG__Encryption__AES; +const BITSTRING& tsc__NG__Encryption__AES = const_tsc__NG__Encryption__AES; +BITSTRING const_tsc__NG__Encryption__ZUC; +const BITSTRING& tsc__NG__Encryption__ZUC = const_tsc__NG__Encryption__ZUC; +NG__NAS__SecurityParams__Type_template template_cs__NG__NAS__SecurityParamsInit; +const NG__NAS__SecurityParams__Type_template& cs__NG__NAS__SecurityParamsInit = template_cs__NG__NAS__SecurityParamsInit; +Erroneous_descriptor_t* template_cs__NG__NAS__SecurityInfo_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__EAP__Request__AKAChallenge_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__EAP__Response__AKAChallenge_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__EAP__Success_err_descr_ptr = NULL; +OCTETSTRING const_cs__EAP__Success_p__Id_defval; +const OCTETSTRING& cs__EAP__Success_p__Id_defval = const_cs__EAP__Success_p__Id_defval; +Erroneous_descriptor_t* template_cs__EAP__Failure_err_descr_ptr = NULL; +OCTETSTRING const_cs__EAP__Failure_p__Id_defval; +const OCTETSTRING& cs__EAP__Failure_p__Id_defval = const_cs__EAP__Failure_p__Id_defval; +Erroneous_descriptor_t* template_cs__EAP__AT__RAND_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__EAP__AT__AUTN_err_descr_ptr = NULL; +EAP__TypeDefs::EAP__AT__KDF_template template_cs__EAP__AT__KDF; +const EAP__TypeDefs::EAP__AT__KDF_template& cs__EAP__AT__KDF = template_cs__EAP__AT__KDF; +Erroneous_descriptor_t* template_cs__EAP__AT__KDF__INPUT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__EAP__AT__MAC_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__EAP__AT__RES_err_descr_ptr = NULL; +HEXSTRING const_fl__GetNAI_p__Identity_defval; +const HEXSTRING& fl__GetNAI_p__Identity_defval = const_fl__GetNAI_p__Identity_defval; +OCTETSTRING const_f__NG__Authentication__A17_p__PLMNandAccessTechnologyList_defval; +const OCTETSTRING& f__NG__Authentication__A17_p__PLMNandAccessTechnologyList_defval = const_f__NG__Authentication__A17_p__PLMNandAccessTechnologyList_defval; +HEXSTRING const_f__NG__NAS__AuthenticationInit_p__Identity_defval; +const HEXSTRING& f__NG__NAS__AuthenticationInit_p__Identity_defval = const_f__NG__NAS__AuthenticationInit_p__Identity_defval; +NAS__AuthenticationCommon::AuthenticationError__Type const_f__NG__NAS__AuthenticationInit_p__AuthenticationError_defval; +const NAS__AuthenticationCommon::AuthenticationError__Type& f__NG__NAS__AuthenticationInit_p__AuthenticationError_defval = const_f__NG__NAS__AuthenticationInit_p__AuthenticationError_defval; +NAS__AuthenticationCommon::AuthenticationError__Type const_f__NG__EAP__AuthenticationInit_p__AuthenticationError_defval; +const NAS__AuthenticationCommon::AuthenticationError__Type& f__NG__EAP__AuthenticationInit_p__AuthenticationError_defval = const_f__NG__EAP__AuthenticationInit_p__AuthenticationError_defval; +OCTETSTRING const_f__NG__EAP__ChallengeReq_p__Id_defval; +const OCTETSTRING& f__NG__EAP__ChallengeReq_p__Id_defval = const_f__NG__EAP__ChallengeReq_p__Id_defval; +OCTETSTRING const_f__NG__EAP__SuccessfulAuthenticationResponse_p__Id_defval; +const OCTETSTRING& f__NG__EAP__SuccessfulAuthenticationResponse_p__Id_defval = const_f__NG__EAP__SuccessfulAuthenticationResponse_p__Id_defval; +TTCN_Module module_object("NG_NAS_SecurityFunctions", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_NG_NAS_SecurityFunctions(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "NG_NAS_SecurityParams_Type")) { + ((const NG__NAS__SecurityParams__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityParams_Type template")) { + ((const NG__NAS__SecurityParams__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_NG_NAS_SecurityFunctions(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "NG_NAS_SecurityParams_Type")) { + ((NG__NAS__SecurityParams__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityParams_Type template")) { + ((NG__NAS__SecurityParams__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NG_NAS_SecurityFunctions"); + global_scope->add_variable(&cs__EAP__AT__KDF, "cs_EAP_AT_KDF", "EAP_AT_KDF template", "NG_NAS_SecurityFunctions", EAP__TypeDefs::print_var_EAP_TypeDefs); + global_scope->add_variable(&cs__NG__NAS__SecurityParamsInit, "cs_NG_NAS_SecurityParamsInit", "NG_NAS_SecurityParams_Type template", "NG_NAS_SecurityFunctions", print_var_NG_NAS_SecurityFunctions); + global_scope->add_variable(&tsc__NG__Encryption__AES, "tsc_NG_Encryption_AES", "bitstring", "NG_NAS_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__Encryption__Snow3G, "tsc_NG_Encryption_Snow3G", "bitstring", "NG_NAS_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__Encryption__ZUC, "tsc_NG_Encryption_ZUC", "bitstring", "NG_NAS_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__Integrity__AES, "tsc_NG_Integrity_AES", "bitstring", "NG_NAS_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__Integrity__Snow3G, "tsc_NG_Integrity_Snow3G", "bitstring", "NG_NAS_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&tsc__NG__Integrity__ZUC, "tsc_NG_Integrity_ZUC", "bitstring", "NG_NAS_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__AuthenticationCommon::tsc__AuthUndefinedB128, "tsc_AuthUndefinedB128", "bitstring", "NAS_AuthenticationCommon", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__AuthenticationCommon::tsc__AuthUndefinedB256, "tsc_AuthUndefinedB256", "bitstring", "NAS_AuthenticationCommon", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__AuthenticationCommon::tsc__AuthUndefinedB32, "tsc_AuthUndefinedB32", "bitstring", "NAS_AuthenticationCommon", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__SecurityFunctions::tsc__NAS__Enc__Alg, "tsc_NAS_Enc_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__SecurityFunctions::tsc__NAS__Int__Alg, "tsc_NAS_Int_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__SecurityFunctions::tsc__N__UP__Int__Alg, "tsc_N_UP_Int_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__SecurityFunctions::tsc__RRC__Enc__Alg, "tsc_RRC_Enc_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__SecurityFunctions::tsc__RRC__Int__Alg, "tsc_RRC_Int_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__SecurityFunctions::tsc__SK__Counter, "tsc_SK_Counter", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&EUTRA__NR__SecurityFunctions::tsc__UP__Enc__Alg, "tsc_UP_Enc_Alg", "integer", "EUTRA_NR_SecurityFunctions", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xCSfallback, "pc_1xCSfallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__1xRTT, "pc_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__A5__4__CS, "pc_A5_4_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__Default__Configuration, "pc_APN_Default_Configuration", "APN_DefaultConfiguration_Type", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::pc__APN__ID__Ethernet, "pc_APN_ID_Ethernet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__IMS, "pc_APN_ID_IMS", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__Internet, "pc_APN_ID_Internet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__MIOT, "pc_APN_ID_MIOT", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__URLLC, "pc_APN_ID_URLLC", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__APN__ID__V2X, "pc_APN_ID_V2X", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Allowed__CSG__list, "pc_Allowed_CSG_list", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Attach, "pc_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Auto__PDN__Connectivity, "pc_Auto_PDN_Connectivity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__EPS__Re__Attach, "pc_Automatic_EPS_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Automatic__Re__Attach, "pc_Automatic_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Available__PLMNs__AcT__Ind, "pc_Available_PLMNs_AcT_Ind", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__BSRVCC, "pc_BSRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CMAS__Message, "pc_CMAS_Message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS, "pc_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__1xRTT, "pc_CS_Em_Call_in_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__GERAN, "pc_CS_Em_Call_in_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Em__Call__in__UTRA, "pc_CS_Em_Call_in_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__Fallback, "pc_CS_Fallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__data__centric, "pc_CS_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__CS__PS__voice__centric, "pc_CS_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Combined__Attach, "pc_Combined_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DSMIPv6, "pc_DSMIPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DaylightSavingTime, "pc_DaylightSavingTime", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__DualRM__Coding, "pc_DualRM_Coding", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB, "pc_EAB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EAB__override, "pc_EAB_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EDTM, "pc_EDTM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EMM__Information, "pc_EMM_Information", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPC__RACS, "pc_EPC_RACS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__IMS__EmergencyCall, "pc_EPS_IMS_EmergencyCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EPS__Services__Disable, "pc_EPS_Services_Disable", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Allocation, "pc_ESM_MO_Bearer_Allocation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__MO__Bearer__Modification, "pc_ESM_MO_Bearer_Modification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__Notification, "pc_ESM_Notification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ESM__UE__Modification__NW__TFT, "pc_ESM_UE_Modification_NW_TFT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ETWS__message, "pc_ETWS_message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRAN__2__GERAN__PSHO, "pc_E_UTRAN_2_GERAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__E__UTRA__WLAN__offload, "pc_E_UTRA_WLAN_offload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__EmergSpeech, "pc_EmergSpeech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FDD, "pc_FDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__F, "pc_FeatrGrp_101_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__101__T, "pc_FeatrGrp_101_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__F, "pc_FeatrGrp_102_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__102__T, "pc_FeatrGrp_102_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__F, "pc_FeatrGrp_103_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__103__T, "pc_FeatrGrp_103_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__F, "pc_FeatrGrp_104_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__104__T, "pc_FeatrGrp_104_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__F, "pc_FeatrGrp_105_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__105__T, "pc_FeatrGrp_105_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__F, "pc_FeatrGrp_106_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__106__T, "pc_FeatrGrp_106_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__F, "pc_FeatrGrp_107_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__107__T, "pc_FeatrGrp_107_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__F, "pc_FeatrGrp_108_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__108__T, "pc_FeatrGrp_108_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__F, "pc_FeatrGrp_109_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__109__T, "pc_FeatrGrp_109_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__F, "pc_FeatrGrp_10_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__10__T, "pc_FeatrGrp_10_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__F, "pc_FeatrGrp_110_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__110__T, "pc_FeatrGrp_110_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__F, "pc_FeatrGrp_111_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__111__T, "pc_FeatrGrp_111_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__F, "pc_FeatrGrp_112_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__112__T, "pc_FeatrGrp_112_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__F, "pc_FeatrGrp_113_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__113__T, "pc_FeatrGrp_113_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__F, "pc_FeatrGrp_114_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__114__T, "pc_FeatrGrp_114_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__F, "pc_FeatrGrp_115_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__115__T, "pc_FeatrGrp_115_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__F, "pc_FeatrGrp_116_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__116__T, "pc_FeatrGrp_116_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__F, "pc_FeatrGrp_11_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__11__T, "pc_FeatrGrp_11_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__F, "pc_FeatrGrp_12_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__12__T, "pc_FeatrGrp_12_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__F, "pc_FeatrGrp_13_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__13__T, "pc_FeatrGrp_13_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__F, "pc_FeatrGrp_14_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__14__T, "pc_FeatrGrp_14_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__F, "pc_FeatrGrp_15_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__15__T, "pc_FeatrGrp_15_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__F, "pc_FeatrGrp_16_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__16__T, "pc_FeatrGrp_16_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__F, "pc_FeatrGrp_17_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__17__T, "pc_FeatrGrp_17_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__F, "pc_FeatrGrp_18_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__18__T, "pc_FeatrGrp_18_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__F, "pc_FeatrGrp_19_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__19__T, "pc_FeatrGrp_19_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__F, "pc_FeatrGrp_1_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__1__T, "pc_FeatrGrp_1_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__F, "pc_FeatrGrp_20_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__20__T, "pc_FeatrGrp_20_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__F, "pc_FeatrGrp_21_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__21__T, "pc_FeatrGrp_21_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__F, "pc_FeatrGrp_22_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__22__T, "pc_FeatrGrp_22_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__F, "pc_FeatrGrp_23_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__23__T, "pc_FeatrGrp_23_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__F, "pc_FeatrGrp_24_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__24__T, "pc_FeatrGrp_24_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__F, "pc_FeatrGrp_25_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__25__T, "pc_FeatrGrp_25_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__F, "pc_FeatrGrp_26_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__26__T, "pc_FeatrGrp_26_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__F, "pc_FeatrGrp_27_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__27__T, "pc_FeatrGrp_27_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__F, "pc_FeatrGrp_28_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__28__T, "pc_FeatrGrp_28_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__F, "pc_FeatrGrp_29_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__29__T, "pc_FeatrGrp_29_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__F, "pc_FeatrGrp_2_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__2__T, "pc_FeatrGrp_2_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__F, "pc_FeatrGrp_30_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__30__T, "pc_FeatrGrp_30_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__F, "pc_FeatrGrp_31_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__31__T, "pc_FeatrGrp_31_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__F, "pc_FeatrGrp_33_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__33__T, "pc_FeatrGrp_33_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__F, "pc_FeatrGrp_34_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__34__T, "pc_FeatrGrp_34_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__F, "pc_FeatrGrp_35_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__35__T, "pc_FeatrGrp_35_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__F, "pc_FeatrGrp_36_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__36__T, "pc_FeatrGrp_36_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__F, "pc_FeatrGrp_37_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__37__T, "pc_FeatrGrp_37_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__F, "pc_FeatrGrp_38_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__38__T, "pc_FeatrGrp_38_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__F, "pc_FeatrGrp_39_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__39__T, "pc_FeatrGrp_39_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__F, "pc_FeatrGrp_3_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__3__T, "pc_FeatrGrp_3_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__F, "pc_FeatrGrp_40_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__40__T, "pc_FeatrGrp_40_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__F, "pc_FeatrGrp_41_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__41__T, "pc_FeatrGrp_41_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__F, "pc_FeatrGrp_42_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__42__T, "pc_FeatrGrp_42_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__F, "pc_FeatrGrp_4_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__4__T, "pc_FeatrGrp_4_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__F, "pc_FeatrGrp_5_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__5__T, "pc_FeatrGrp_5_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__F, "pc_FeatrGrp_6_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__6__T, "pc_FeatrGrp_6_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__F, "pc_FeatrGrp_7_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__7__T, "pc_FeatrGrp_7_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__F, "pc_FeatrGrp_8_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__8__T, "pc_FeatrGrp_8_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__F, "pc_FeatrGrp_9_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FeatrGrp__9__T, "pc_FeatrGrp_9_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__FullNameNetwork, "pc_FullNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN, "pc_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__PSHO, "pc_GERAN_2_E_UTRAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__meas, "pc_GERAN_2_E_UTRAN_meas", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__GERAN__2__E__UTRAN__measreporting__CCN, "pc_GERAN_2_E_UTRAN_measreporting_CCN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eFDD, "pc_HO_from_UTRA_to_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HO__from__UTRA__to__eTDD, "pc_HO_from_UTRA_to_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__HRPD, "pc_HRPD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS, "pc_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMSI__Detach, "pc_IMSI_Detach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__APN__default, "pc_IMS_APN_default", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCC, "pc_IMS_CS_PS_SRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCAlert, "pc_IMS_CS_PS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__CS__PS__SRVCCMidCall, "pc_IMS_CS_PS_SRVCCMidCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__SRVCCAlert, "pc_IMS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IMS__emergency__call, "pc_IMS_emergency_call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv4, "pc_IPv4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IPv6, "pc_IPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ISR, "pc_ISR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ImmConnect, "pc_ImmConnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__InterFreq__ProximityIndication, "pc_InterFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__IntraFreq__ProximityIndication, "pc_IntraFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__KeepEpsBearerParametersAfterNormalDetach, "pc_KeepEpsBearerParametersAfterNormalDetach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP, "pc_LAP", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LAP__override, "pc_LAP_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LocalTimeZone, "pc_LocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__LoggedMeasurementsIdle, "pc_LoggedMeasurementsIdle", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Manual__CSG__Selection, "pc_Manual_CSG_Selection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Multiple__PDN, "pc_Multiple_PDN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v1__0, "pc_NG114_v1_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG114__v2__0, "pc_NG114_v2_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NG__RAN__NR, "pc_NG_RAN_NR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__NR__5GC__EmergencyServices, "pc_NR_5GC_EmergencyServices", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__No__USIM__TestExecution, "pc_No_USIM_TestExecution", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PLMN__Manual__Mode__Exception, "pc_PLMN_Manual_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS, "pc_PS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__data__centric, "pc_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PS__voice__centric, "pc_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__PWS__UpperLayer, "pc_PWS_UpperLayer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ProvideDST__inUse, "pc_ProvideDST_inUse", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__APN, "pc_Provide_IMS_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__IMS__as__second__APN, "pc_Provide_IMS_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Provide__Internet__as__second__APN, "pc_Provide_Internet_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RLF__ReportForInterRAT__MRO, "pc_RLF_ReportForInterRAT_MRO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0001, "pc_ROHC_profile0x0001", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0002, "pc_ROHC_profile0x0002", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0003, "pc_ROHC_profile0x0003", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0004, "pc_ROHC_profile0x0004", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0006, "pc_ROHC_profile0x0006", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0101, "pc_ROHC_profile0x0101", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0102, "pc_ROHC_profile0x0102", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0103, "pc_ROHC_profile0x0103", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ROHC__profile0x0104, "pc_ROHC_profile0x0104", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Rach__Report, "pc_Rach_Report", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Re__Attach__AfterDetachColl, "pc_Re_Attach_AfterDetachColl", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv4HAAddress__DuringAttach, "pc_RequestIPv4HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__RequestIPv6HAAddress__DuringAttach, "pc_RequestIPv6HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__UMTS__Autonomous__Gaps, "pc_SI_Neighbour_UMTS_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__interFreq__Autonomous__Gaps, "pc_SI_Neighbour_interFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SI__Neighbour__intraFreq__Autonomous__Gaps, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs, "pc_SMS_SGs", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MO, "pc_SMS_SGs_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__MT, "pc_SMS_SGs_MT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SMS__SGs__Multi__MO, "pc_SMS_SGs_Multi_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SRVCC__GERAN__UTRAN, "pc_SRVCC_GERAN_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Semi__Persistence__Scheduling, "pc_Semi_Persistence_Scheduling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ShortNameNetwork, "pc_ShortNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Speech, "pc_Speech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__StandaloneGNSS__Location, "pc_StandaloneGNSS_Location", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SupportOpModeA, "pc_SupportOpModeA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__SwitchOnOff, "pc_SwitchOnOff", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__connected__in__IMS, "pc_TAU_connected_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TAU__idle__in__IMS, "pc_TAU_idle_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__HCR, "pc_TDD_HCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__LCR, "pc_TDD_LCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TDD__VHCR, "pc_TDD_VHCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TTI__Bundling, "pc_TTI_Bundling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__TestModeforCSGproximity, "pc_TestModeforCSGproximity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UE__supports__user__initiated__PDN__disconnect, "pc_UE_supports_user_initiated_PDN_disconnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UL__MIMO, "pc_UL_MIMO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMI__ProcNeeded__DuringCSFB, "pc_UMI_ProcNeeded_DuringCSFB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UMTS__GSM, "pc_UMTS_GSM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__USIM__Removal, "pc_USIM_Removal", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA, "pc_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ANR, "pc_UTRAN_ANR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRAN__ProximityIndication, "pc_UTRAN_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__1, "pc_UTRA_FeatrGrp_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__2, "pc_UTRA_FeatrGrp_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__3, "pc_UTRA_FeatrGrp_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UTRA__FeatrGrp__4, "pc_UTRA_FeatrGrp_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeAssistedAgps, "pc_UeAssistedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UeBasedAgps, "pc_UeBasedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UniversalAndLocalTimeZone, "pc_UniversalAndLocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UpdateUE__LocationInformation, "pc_UpdateUE_LocationInformation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__UserInitiatedPLMN__Reselection, "pc_UserInitiatedPLMN_Reselection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__VoLTE, "pc_VoLTE", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__Imm__MDT, "pc_WLAN_Meas_Imm_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__Meas__logged__MDT, "pc_WLAN_Meas_logged_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__WLAN__voice, "pc_WLAN_voice", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__only__APN, "pc_XCAP_only_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__XCAP__over__Internet__APN, "pc_XCAP_over_Internet_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ZUC, "pc_ZUC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eCall__Test__Call, "pc_eCall_Test_Call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD, "pc_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eFDD__MultiBand, "pc_eFDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS, "pc_eMBMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMBMS__SC, "pc_eMBMS_SC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eMinimumPeriodicSearchTimer, "pc_eMinimumPeriodicSearchTimer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eRedirectionUTRA, "pc_eRedirectionUTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD, "pc_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eTDD__MultiBand, "pc_eTDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__eWLAN, "pc_eWLAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__multipleTimingAdvance, "pc_multipleTimingAdvance", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__0, "pc_ue_CategoryDL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__10, "pc_ue_CategoryDL_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__11, "pc_ue_CategoryDL_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__12, "pc_ue_CategoryDL_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__13, "pc_ue_CategoryDL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__14, "pc_ue_CategoryDL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__15, "pc_ue_CategoryDL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__16, "pc_ue_CategoryDL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__17, "pc_ue_CategoryDL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__18, "pc_ue_CategoryDL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__19, "pc_ue_CategoryDL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__1bis, "pc_ue_CategoryDL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__20, "pc_ue_CategoryDL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__21, "pc_ue_CategoryDL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__22, "pc_ue_CategoryDL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__23, "pc_ue_CategoryDL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__24, "pc_ue_CategoryDL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__25, "pc_ue_CategoryDL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__26, "pc_ue_CategoryDL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__4, "pc_ue_CategoryDL_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__6, "pc_ue_CategoryDL_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__7, "pc_ue_CategoryDL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__9, "pc_ue_CategoryDL_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M1, "pc_ue_CategoryDL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryDL__M2, "pc_ue_CategoryDL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__0, "pc_ue_CategoryUL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__13, "pc_ue_CategoryUL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__14, "pc_ue_CategoryUL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__15, "pc_ue_CategoryUL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__16, "pc_ue_CategoryUL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__17, "pc_ue_CategoryUL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__18, "pc_ue_CategoryUL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__19, "pc_ue_CategoryUL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__1bis, "pc_ue_CategoryUL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__20, "pc_ue_CategoryUL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__21, "pc_ue_CategoryUL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__22, "pc_ue_CategoryUL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__23, "pc_ue_CategoryUL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__24, "pc_ue_CategoryUL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__25, "pc_ue_CategoryUL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__26, "pc_ue_CategoryUL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__3, "pc_ue_CategoryUL_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__5, "pc_ue_CategoryUL_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__7, "pc_ue_CategoryUL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__8, "pc_ue_CategoryUL_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M1, "pc_ue_CategoryUL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__CategoryUL__M2, "pc_ue_CategoryUL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__1, "pc_ue_Category_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__10, "pc_ue_Category_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__11, "pc_ue_Category_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__12, "pc_ue_Category_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__2, "pc_ue_Category_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__3, "pc_ue_Category_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__4, "pc_ue_Category_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__5, "pc_ue_Category_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__6, "pc_ue_Category_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__7, "pc_ue_Category_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__8, "pc_ue_Category_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__ue__Category__9, "pc_ue_Category_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voiceOverNR, "pc_voiceOverNR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::pc__voice__PS__1__CS__2, "pc_voice_PS_1_CS_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AccessPointName, "px_AccessPointName", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AquireGNSS__MaxTime, "px_AquireGNSS_MaxTime", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AttachTypeTested, "px_AttachTypeTested", "EUTRA_ATTACH_TESTED_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__AuthAMF, "px_AuthAMF", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__AuthK, "px_AuthK", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EllipsoidPointWithAltitude, "px_EllipsoidPointWithAltitude", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__EmergencyCallNumber, "px_EmergencyCallNumber", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__FDD__OperationBand, "px_FDD_OperationBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__HorizontalVelocity, "px_HorizontalVelocity", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEISV__Def, "px_IMEISV_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMEI__Def, "px_IMEI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Def, "px_IMSI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IMSI__Diff, "px_IMSI_Diff", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IP__MTU__Size, "px_IP_MTU_Size", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__NW, "px_IPv4_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__RemoteUE, "px_IPv4_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address1__UE, "px_IPv4_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__NW, "px_IPv4_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__RemoteUE, "px_IPv4_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2__UE, "px_IPv4_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address2a__UE, "px_IPv4_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__NW, "px_IPv4_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__RemoteUE, "px_IPv4_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address3__UE, "px_IPv4_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__NW, "px_IPv4_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address4__UE, "px_IPv4_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__NW, "px_IPv4_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address5__UE, "px_IPv4_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__NW, "px_IPv4_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address6__UE, "px_IPv4_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv4__Address__HomeAgent, "px_IPv4_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__NW, "px_IPv6_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__RemoteUE, "px_IPv6_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address1__UE, "px_IPv6_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__NW, "px_IPv6_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__RemoteUE, "px_IPv6_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2__UE, "px_IPv6_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address2a__UE, "px_IPv6_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__NW, "px_IPv6_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__RemoteUE, "px_IPv6_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address3__UE, "px_IPv6_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__NW, "px_IPv6_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address4__UE, "px_IPv6_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__NW, "px_IPv6_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address5__UE, "px_IPv6_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__NW, "px_IPv6_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address6__UE, "px_IPv6_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__IPv6__Address__HomeAgent, "px_IPv6_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__MFBI__UTRAN__FrequencyBand, "px_MFBI_UTRAN_FrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__CipheringAlgorithm, "px_NAS_CipheringAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__NAS__IntegrityProtAlgorithm, "px_NAS_IntegrityProtAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__Def, "px_PTMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PTMSI__SigDef, "px_PTMSI_SigDef", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataCodingScheme, "px_PWS_CB_DataCodingScheme", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage1, "px_PWS_CB_DataPage1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage2, "px_PWS_CB_DataPage2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage3, "px_PWS_CB_DataPage3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__PWS__CB__DataPage4, "px_PWS_CB_DataPage4", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__RATComb__Tested, "px_RATComb_Tested", "RATComb_Tested_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__SMS__ChkMsgReceived, "px_SMS_ChkMsgReceived", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__IndexOffset, "px_SMS_IndexOffset", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__MsgFrmt, "px_SMS_MsgFrmt", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem1, "px_SMS_PrefMem1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem2, "px_SMS_PrefMem2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__PrefMem3, "px_SMS_PrefMem3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SMS__Service, "px_SMS_Service", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__SinglePLMN__Tested, "px_SinglePLMN_Tested", "SinglePLMN_TestedType", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__TMSI__Def, "px_TMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__TestLoopModeB__Delay, "px_TestLoopModeB_Delay", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__UE__CS__PS__UsageSetting__Tested, "px_UE_CS_PS_UsageSetting_Tested", "CS_PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UE__PS__UsageSetting__Tested, "px_UE_PS_UsageSetting_Tested", "PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&Parameters::px__UTRAN__ModeUnderTest, "px_UTRAN_ModeUnderTest", "UTRAN_FDD_TDD_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&Parameters::px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__WLAN__PDN1__ToOffload, "px_WLAN_PDN1_ToOffload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eAuthRAND, "px_eAuthRAND", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__eJapanMCC__Band6, "px_eJapanMCC_Band6", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Parameters::px__ePrimaryFrequencyBand, "px_ePrimaryFrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__5GC__MUSIM, "pc_5GC_MUSIM", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__5GC__MUSIM__NCR, "pc_5GC_MUSIM_NCR", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__5GC__MUSIM__PIV, "pc_5GC_MUSIM_PIV", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__5GC__MUSIM__PR, "pc_5GC_MUSIM_PR", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__5GC__MUSIM__RPR, "pc_5GC_MUSIM_RPR", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__5GC__RACS, "pc_5GC_RACS", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__5GC__RACS__Manufacturer__URCID, "pc_5GC_RACS_Manufacturer_URCID", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__Additional__PDU__establishment, "pc_Additional_PDU_establishment", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__SNPN__EmergencyService, "pc_SNPN_EmergencyService", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__SNPN__PLMN, "pc_SNPN_PLMN", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__UserInitiated__SNPN__Reselection, "pc_UserInitiated_SNPN_Reselection", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__V2XCNPC5, "pc_V2XCNPC5", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__accessing__SNPN__usingCH, "pc_accessing_SNPN_usingCH", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__musimLeaveConnected__r17, "pc_musimLeaveConnected_r17", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__musim__GapPreference__r17, "pc_musim_GapPreference_r17", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__noOf__PDUsNewConnection, "pc_noOf_PDUsNewConnection", "integer", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__noOf__PDUsSameConnection, "pc_noOf_PDUsSameConnection", "integer", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__onboarding__SNPN, "pc_onboarding_SNPN", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::pc__sms__over__NAS, "pc_sms_over_NAS", "boolean", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::px__NAS__5GC__AuthenticationType, "px_NAS_5GC_AuthenticationType", "NAS_5GC_AKA_Type", "NAS_5GC_Parameters", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NAS__5GC__Parameters::px__NAS__5GC__CipheringAlgorithm, "px_NAS_5GC_CipheringAlgorithm", "bitstring", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::px__NAS__5GC__IntegrityAlgorithm, "px_NAS_5GC_IntegrityAlgorithm", "bitstring", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__5GC__Parameters::px__NAS__5GC__XRES__Length, "px_NAS_5GC_XRES_Length", "integer", "NAS_5GC_Parameters", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void NG__NAS__SecurityParams__Type::init_vec() { fld_vec[0]=&field_KDF; fld_vec[1]=&field_KSIamf; fld_vec[2]=&field_Ks; fld_vec[3]=&field_KAMF; fld_vec[4]=&field_MK; fld_vec[5]=&field_KAUSF; fld_vec[6]=&field_KSEAF; fld_vec[7]=&field_ABBA; fld_vec[8]=&field_NAS__Integrity; fld_vec[9]=&field_NAS__Ciphering; fld_vec[10]=&field_AuthParams; } + +NG__NAS__SecurityParams__Type::NG__NAS__SecurityParams__Type() : Record_Type() { init_vec(); } + +NG__NAS__SecurityParams__Type::NG__NAS__SecurityParams__Type(const NG__NAS__SecurityParams__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_KDF.is_bound() ) + field_KDF = other_value.field_KDF; +if (other_value.field_KSIamf.is_bound() ) + field_KSIamf = other_value.field_KSIamf; +if (other_value.field_Ks.is_bound() ) + field_Ks = other_value.field_Ks; +if (other_value.field_KAMF.is_bound() ) + field_KAMF = other_value.field_KAMF; +if (other_value.field_MK.is_bound() ) + field_MK = other_value.field_MK; +if (other_value.field_KAUSF.is_bound() ) + field_KAUSF = other_value.field_KAUSF; +if (other_value.field_KSEAF.is_bound() ) + field_KSEAF = other_value.field_KSEAF; +if (other_value.field_ABBA.is_bound() ) + field_ABBA = other_value.field_ABBA; +if (other_value.field_NAS__Integrity.is_bound() ) + field_NAS__Integrity = other_value.field_NAS__Integrity; +if (other_value.field_NAS__Ciphering.is_bound() ) + field_NAS__Ciphering = other_value.field_NAS__Ciphering; +if (other_value.field_AuthParams.is_bound() ) + field_AuthParams = other_value.field_AuthParams; +init_vec(); +} + +NG__NAS__SecurityParams__Type::NG__NAS__SecurityParams__Type(const INTEGER& par_KDF, + const BITSTRING& par_KSIamf, + const BITSTRING& par_Ks, + const BITSTRING& par_KAMF, + const BITSTRING& par_MK, + const BITSTRING& par_KAUSF, + const BITSTRING& par_KSEAF, + const OCTETSTRING& par_ABBA, + const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type& par_NAS__Integrity, + const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type& par_NAS__Ciphering, + const NAS__AuthenticationCommon::Common__AuthenticationParams__Type& par_AuthParams) : field_KDF(par_KDF), + field_KSIamf(par_KSIamf), + field_Ks(par_Ks), + field_KAMF(par_KAMF), + field_MK(par_MK), + field_KAUSF(par_KAUSF), + field_KSEAF(par_KSEAF), + field_ABBA(par_ABBA), + field_NAS__Integrity(par_NAS__Integrity), + field_NAS__Ciphering(par_NAS__Ciphering), + field_AuthParams(par_AuthParams) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__SecurityParams__Type::get_descriptor() const { return &NG__NAS__SecurityParams__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__SecurityParams__Type::fld_descriptors[] = { &CommonDefs::KDF__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B256__Type_descr_, &CommonDefs::B256__Type_descr_, &BITSTRING_descr_, &CommonDefs::B256__Type_descr_, &CommonDefs::B256__Type_descr_, &OCTETSTRING_descr_, &NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_descr_, &NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_descr_, &NAS__AuthenticationCommon::Common__AuthenticationParams__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__SecurityParams__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__SecurityParams__Type::fld_names[] = { "KDF", "KSIamf", "Ks", "KAMF", "MK", "KAUSF", "KSEAF", "ABBA", "NAS_Integrity", "NAS_Ciphering", "AuthParams" }; +const char* NG__NAS__SecurityParams__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NAS__SecurityParams__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 11; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[8] = was_any ? new NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template(ANY_VALUE) : new NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template; +single_value.value_elements[9] = was_any ? new NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template(ANY_VALUE) : new NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template; +single_value.value_elements[10] = was_any ? new NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template(ANY_VALUE) : new NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template; +} +} + +NG__NAS__SecurityParams__Type_template::NG__NAS__SecurityParams__Type_template(NG__NAS__SecurityParams__Type_template* p_precondition, NG__NAS__SecurityParams__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__SecurityParams__Type_template::NG__NAS__SecurityParams__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__SecurityParams__Type_template::~NG__NAS__SecurityParams__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__SecurityParams__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__SecurityParams__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__SecurityParams__Type_template& NG__NAS__SecurityParams__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__SecurityParams__Type_template& NG__NAS__SecurityParams__Type_template::operator=(const NG__NAS__SecurityParams__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__SecurityParams__Type_template& NG__NAS__SecurityParams__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__SecurityParams__Type_template& NG__NAS__SecurityParams__Type_template::operator=(const NG__NAS__SecurityParams__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__SecurityParams__Type NG__NAS__SecurityParams__Type_template::valueof() const +{ +NG__NAS__SecurityParams__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +INTEGER_template& NG__NAS__SecurityParams__Type_template::KDF() { return *(static_cast(get_at(0))); } +const INTEGER_template& NG__NAS__SecurityParams__Type_template::KDF() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NG__NAS__SecurityParams__Type_template::KSIamf() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NG__NAS__SecurityParams__Type_template::KSIamf() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__NAS__SecurityParams__Type_template::Ks() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__NAS__SecurityParams__Type_template::Ks() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__NAS__SecurityParams__Type_template::KAMF() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__NAS__SecurityParams__Type_template::KAMF() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NG__NAS__SecurityParams__Type_template::MK() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NG__NAS__SecurityParams__Type_template::MK() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NG__NAS__SecurityParams__Type_template::KAUSF() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NG__NAS__SecurityParams__Type_template::KAUSF() const { return *(static_cast(get_at(5))); } +BITSTRING_template& NG__NAS__SecurityParams__Type_template::KSEAF() { return *(static_cast(get_at(6))); } +const BITSTRING_template& NG__NAS__SecurityParams__Type_template::KSEAF() const { return *(static_cast(get_at(6))); } +OCTETSTRING_template& NG__NAS__SecurityParams__Type_template::ABBA() { return *(static_cast(get_at(7))); } +const OCTETSTRING_template& NG__NAS__SecurityParams__Type_template::ABBA() const { return *(static_cast(get_at(7))); } +NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityParams__Type_template::NAS__Integrity() { return *(static_cast(get_at(8))); } +const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityParams__Type_template::NAS__Integrity() const { return *(static_cast(get_at(8))); } +NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityParams__Type_template::NAS__Ciphering() { return *(static_cast(get_at(9))); } +const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityParams__Type_template::NAS__Ciphering() const { return *(static_cast(get_at(9))); } +NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template& NG__NAS__SecurityParams__Type_template::AuthParams() { return *(static_cast(get_at(10))); } +const NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template& NG__NAS__SecurityParams__Type_template::AuthParams() const { return *(static_cast(get_at(10))); } +const TTCN_Typedescriptor_t* NG__NAS__SecurityParams__Type_template::get_descriptor() const { return &NG__NAS__SecurityParams__Type_descr_; } +const char* NG__NAS__SecurityParams__Type_template::fld_name(int p_index) const { return NG__NAS__SecurityParams__Type::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template cs__NG__NAS__SecurityInfo(const BITSTRING& p__Algo, const BITSTRING& p__Key) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 67, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NAS_SecurityInfo"); +charstring_list param_names; +param_names[0] = "p_Algo"; +param_names[1] = "p_Key"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NAS_SecurityInfo", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Algo, "p_Algo", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Key, "p_Key", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template ret_val; +ret_val.Algorithm() = p__Algo; +ret_val.K__NAS() = p__Key; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NAS__SecurityInfo_err_descr_ptr); +return ret_val; +} + +EAP__TypeDefs::EAP__Message__Type_template cs__EAP__Request__AKAChallenge(const OCTETSTRING& p__Length, const EAP__TypeDefs::EAP__AT__RAND_template& p__RAND, const EAP__TypeDefs::EAP__AT__AUTN_template& p__AUTN, const EAP__TypeDefs::EAP__AT__KDF_template& p__KDF, const EAP__TypeDefs::EAP__AT__KDF__INPUT_template& p__KDF__INPUT, const EAP__TypeDefs::EAP__AT__MAC_template& p__MAC, const OCTETSTRING& p__Id) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 74, TTCN_Location::LOCATION_TEMPLATE, "cs_EAP_Request_AKAChallenge"); +charstring_list param_names; +param_names[0] = "p_Length"; +param_names[1] = "p_RAND"; +param_names[2] = "p_AUTN"; +param_names[3] = "p_KDF"; +param_names[4] = "p_KDF_INPUT"; +param_names[5] = "p_MAC"; +param_names[6] = "p_Id"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +TTCN3_Debug_Function debug_scope("cs_EAP_Request_AKAChallenge", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__RAND, "p_RAND", "EAP_AT_RAND template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs); +debug_scope.add_variable(&p__AUTN, "p_AUTN", "EAP_AT_AUTN template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs); +debug_scope.add_variable(&p__KDF, "p_KDF", "EAP_AT_KDF template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs); +debug_scope.add_variable(&p__KDF__INPUT, "p_KDF_INPUT", "EAP_AT_KDF_INPUT template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs); +debug_scope.add_variable(&p__MAC, "p_MAC", "EAP_AT_MAC template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EAP__TypeDefs::EAP__Message__Type_template ret_val; +{ +EAP__TypeDefs::EAP__Request__Type_template& tmp_0 = ret_val.akaChallenge__Req(); +tmp_0.code() = os_1; +tmp_0.id() = p__Id; +tmp_0.len() = p__Length; +tmp_0.type__() = os_2; +tmp_0.subtype() = os_1; +tmp_0.reserved() = os_0; +{ +EAP__TypeDefs::EAP__Attributes_template& tmp_1 = tmp_0.attributes(); +tmp_1.rand() = p__RAND; +tmp_1.autn() = p__AUTN; +tmp_1.kdf() = p__KDF; +tmp_1.kdfInput() = p__KDF__INPUT; +tmp_1.mac() = p__MAC; +tmp_1.res() = OMIT_VALUE; +tmp_1.auts() = OMIT_VALUE; +tmp_1.padd() = OMIT_VALUE; +tmp_1.permIdReq() = OMIT_VALUE; +tmp_1.notification() = OMIT_VALUE; +tmp_1.anyIdReq() = OMIT_VALUE; +tmp_1.id() = OMIT_VALUE; +tmp_1.versionList() = OMIT_VALUE; +tmp_1.selectedVersion() = OMIT_VALUE; +tmp_1.fullauthIdReq() = OMIT_VALUE; +tmp_1.counter() = OMIT_VALUE; +tmp_1.counterTooSmall() = OMIT_VALUE; +tmp_1.nonceS() = OMIT_VALUE; +tmp_1.clientErrorCode() = OMIT_VALUE; +tmp_1.iv() = OMIT_VALUE; +tmp_1.nextPseudonym() = OMIT_VALUE; +tmp_1.nextReauthId() = OMIT_VALUE; +tmp_1.checkCode() = OMIT_VALUE; +tmp_1.resultInd() = OMIT_VALUE; +} +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EAP__Request__AKAChallenge_err_descr_ptr); +return ret_val; +} + +EAP__TypeDefs::EAP__Message__Type_template cr__EAP__Response__AKAChallenge(const OCTETSTRING& p__Length, const EAP__TypeDefs::EAP__AT__RES_template& p__RES, const EAP__TypeDefs::EAP__AT__MAC_template& p__MAC, const EAP__TypeDefs::EAP__AT__RESULT__IND_template& p__ResultInd, const OCTETSTRING& p__Id) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 118, TTCN_Location::LOCATION_TEMPLATE, "cr_EAP_Response_AKAChallenge"); +charstring_list param_names; +param_names[0] = "p_Length"; +param_names[1] = "p_RES"; +param_names[2] = "p_MAC"; +param_names[3] = "p_ResultInd"; +param_names[4] = "p_Id"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("cr_EAP_Response_AKAChallenge", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__RES, "p_RES", "EAP_AT_RES template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs); +debug_scope.add_variable(&p__MAC, "p_MAC", "EAP_AT_MAC template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs); +debug_scope.add_variable(&p__ResultInd, "p_ResultInd", "EAP_AT_RESULT_IND template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EAP__TypeDefs::EAP__Message__Type_template ret_val; +{ +EAP__TypeDefs::EAP__Response__Type_template& tmp_2 = ret_val.akaChallenge__Rsp(); +tmp_2.code() = os_3; +tmp_2.id() = p__Id; +tmp_2.len() = p__Length; +tmp_2.type__() = os_2; +tmp_2.subtype() = os_1; +tmp_2.reserved() = ANY_VALUE; +{ +EAP__TypeDefs::EAP__Attributes_template& tmp_3 = tmp_2.attributes(); +tmp_3.res() = p__RES; +tmp_3.mac() = p__MAC; +tmp_3.resultInd() = p__ResultInd; +tmp_3.padd() = ANY_OR_OMIT; +tmp_3.iv() = ANY_OR_OMIT; +tmp_3.checkCode() = ANY_OR_OMIT; +tmp_3.rand() = OMIT_VALUE; +tmp_3.autn() = OMIT_VALUE; +tmp_3.auts() = OMIT_VALUE; +tmp_3.permIdReq() = OMIT_VALUE; +tmp_3.notification() = OMIT_VALUE; +tmp_3.anyIdReq() = OMIT_VALUE; +tmp_3.id() = OMIT_VALUE; +tmp_3.versionList() = OMIT_VALUE; +tmp_3.selectedVersion() = OMIT_VALUE; +tmp_3.fullauthIdReq() = OMIT_VALUE; +tmp_3.counter() = OMIT_VALUE; +tmp_3.counterTooSmall() = OMIT_VALUE; +tmp_3.nonceS() = OMIT_VALUE; +tmp_3.clientErrorCode() = OMIT_VALUE; +tmp_3.nextPseudonym() = OMIT_VALUE; +tmp_3.nextReauthId() = OMIT_VALUE; +tmp_3.kdf() = OMIT_VALUE; +tmp_3.kdfInput() = OMIT_VALUE; +} +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__EAP__Response__AKAChallenge_err_descr_ptr); +return ret_val; +} + +EAP__TypeDefs::EAP__Message__Type_template cs__EAP__Success(const OCTETSTRING& p__Id) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 160, TTCN_Location::LOCATION_TEMPLATE, "cs_EAP_Success"); +charstring_list param_names; +param_names[0] = "p_Id"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_EAP_Success", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EAP__TypeDefs::EAP__Message__Type_template ret_val; +{ +EAP__TypeDefs::EAP__Success__Type_template& tmp_4 = ret_val.success(); +tmp_4.code() = os_4; +tmp_4.id() = p__Id; +tmp_4.len() = os_5; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EAP__Success_err_descr_ptr); +return ret_val; +} + +EAP__TypeDefs::EAP__Message__Type_template cs__EAP__Failure(const OCTETSTRING& p__Id) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 169, TTCN_Location::LOCATION_TEMPLATE, "cs_EAP_Failure"); +charstring_list param_names; +param_names[0] = "p_Id"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_EAP_Failure", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EAP__TypeDefs::EAP__Message__Type_template ret_val; +{ +EAP__TypeDefs::EAP__Failure__Type_template& tmp_5 = ret_val.failure(); +tmp_5.code() = os_7; +tmp_5.id() = p__Id; +tmp_5.len() = os_5; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EAP__Failure_err_descr_ptr); +return ret_val; +} + +EAP__TypeDefs::EAP__AT__RAND_template cs__EAP__AT__RAND(const OCTETSTRING& p__Rand) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 178, TTCN_Location::LOCATION_TEMPLATE, "cs_EAP_AT_RAND"); +charstring_list param_names; +param_names[0] = "p_Rand"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_EAP_AT_RAND", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Rand, "p_Rand", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EAP__TypeDefs::EAP__AT__RAND_template ret_val; +ret_val.attributeType() = os_1; +ret_val.len() = os_8; +ret_val.reserved() = os_0; +ret_val.rand() = p__Rand; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EAP__AT__RAND_err_descr_ptr); +return ret_val; +} + +EAP__TypeDefs::EAP__AT__AUTN_template cs__EAP__AT__AUTN(const OCTETSTRING& p__AUTN) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 186, TTCN_Location::LOCATION_TEMPLATE, "cs_EAP_AT_AUTN"); +charstring_list param_names; +param_names[0] = "p_AUTN"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_EAP_AT_AUTN", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__AUTN, "p_AUTN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EAP__TypeDefs::EAP__AT__AUTN_template ret_val; +ret_val.attributeType() = os_3; +ret_val.len() = os_8; +ret_val.reserved() = os_0; +ret_val.autn() = p__AUTN; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EAP__AT__AUTN_err_descr_ptr); +return ret_val; +} + +EAP__TypeDefs::EAP__AT__KDF__INPUT_template cs__EAP__AT__KDF__INPUT(const OCTETSTRING& p__Name, const OCTETSTRING& p__ActualLength) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 201, TTCN_Location::LOCATION_TEMPLATE, "cs_EAP_AT_KDF_INPUT"); +charstring_list param_names; +param_names[0] = "p_Name"; +param_names[1] = "p_ActualLength"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_EAP_AT_KDF_INPUT", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Name, "p_Name", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ActualLength, "p_ActualLength", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EAP__TypeDefs::EAP__AT__KDF__INPUT_template ret_val; +ret_val.attributeType() = os_11; +ret_val.len() = int2oct(((p__Name.lengthof() / 4) + 1), 1); +ret_val.actualNetworkNamelen() = p__ActualLength; +ret_val.networkName() = p__Name; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EAP__AT__KDF__INPUT_err_descr_ptr); +return ret_val; +} + +EAP__TypeDefs::EAP__AT__MAC_template cs__EAP__AT__MAC(const OCTETSTRING& p__MAC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 209, TTCN_Location::LOCATION_TEMPLATE, "cs_EAP_AT_MAC"); +charstring_list param_names; +param_names[0] = "p_MAC"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_EAP_AT_MAC", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__MAC, "p_MAC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EAP__TypeDefs::EAP__AT__MAC_template ret_val; +ret_val.attributeType() = os_12; +ret_val.len() = os_8; +ret_val.reserved() = os_0; +ret_val.mac() = p__MAC; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EAP__AT__MAC_err_descr_ptr); +return ret_val; +} + +EAP__TypeDefs::EAP__AT__RES_template cr__EAP__AT__RES(const OCTETSTRING& p__Res, const OCTETSTRING& p__ActualLength) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 217, TTCN_Location::LOCATION_TEMPLATE, "cr_EAP_AT_RES"); +charstring_list param_names; +param_names[0] = "p_Res"; +param_names[1] = "p_ActualLength"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_EAP_AT_RES", "template", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Res, "p_Res", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ActualLength, "p_ActualLength", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +EAP__TypeDefs::EAP__AT__RES_template ret_val; +ret_val.attributeType() = os_4; +ret_val.len() = int2oct(((p__Res.lengthof() / 4) + 1), 1); +ret_val.reslen() = p__ActualLength; +ret_val.res() = p__Res; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__EAP__AT__RES_err_descr_ptr); +return ret_val; +} + +CHARSTRING fl__Nas2SNN__MNC(const OCTETSTRING& p__NAS__PlmnId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 233, TTCN_Location::LOCATION_FUNCTION, "fl_Nas2SNN_MNC"); +charstring_list param_names; +param_names[0] = "p_NAS_PlmnId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_Nas2SNN_MNC", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__NAS__PlmnId, "p_NAS_PlmnId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(235); +ttcn3_debugger.breakpoint_entry(235); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 235 */ +CHARSTRING v__MNC(cs_0); +debug_scope.add_variable(&v__MNC, "v_MNC", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(236); +ttcn3_debugger.breakpoint_entry(236); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 236 */ +HEXSTRING v__PLMN__hexstring(oct2hex(p__NAS__PlmnId)); +debug_scope.add_variable(&v__PLMN__hexstring, "v_PLMN_hexstring", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(238); +ttcn3_debugger.breakpoint_entry(238); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 238 */ +if ((const_cast< const HEXSTRING&>(v__PLMN__hexstring)[2] == hs_0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(239); +ttcn3_debugger.breakpoint_entry(239); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 239 */ +v__MNC = cs_1; +} +current_location.update_lineno(241); +ttcn3_debugger.breakpoint_entry(241); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 241 */ +{ +CHARSTRING tmp_7; +tmp_7 = ((v__MNC + hex2str(const_cast< const HEXSTRING&>(v__PLMN__hexstring)[5])) + hex2str(const_cast< const HEXSTRING&>(v__PLMN__hexstring)[4])); +v__MNC = tmp_7; +} +current_location.update_lineno(242); +ttcn3_debugger.breakpoint_entry(242); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 242 */ +if ((const_cast< const HEXSTRING&>(v__PLMN__hexstring)[2] != hs_0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(243); +ttcn3_debugger.breakpoint_entry(243); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 243 */ +{ +CHARSTRING tmp_8; +tmp_8 = (v__MNC + hex2str(const_cast< const HEXSTRING&>(v__PLMN__hexstring)[2])); +v__MNC = tmp_8; +} +} +current_location.update_lineno(245); +ttcn3_debugger.breakpoint_entry(245); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 245 */ +{ +CHARSTRING tmp_9; +return DEBUGGER_STORE_RETURN_VALUE(tmp_9, v__MNC); +} +} + +CHARSTRING fl__Nas2SNN__MCC(const OCTETSTRING& p__NAS__PlmnId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 254, TTCN_Location::LOCATION_FUNCTION, "fl_Nas2SNN_MCC"); +charstring_list param_names; +param_names[0] = "p_NAS_PlmnId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_Nas2SNN_MCC", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__NAS__PlmnId, "p_NAS_PlmnId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(256); +ttcn3_debugger.breakpoint_entry(256); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 256 */ +CHARSTRING v__MCC; +debug_scope.add_variable(&v__MCC, "v_MCC", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(257); +ttcn3_debugger.breakpoint_entry(257); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 257 */ +HEXSTRING v__PLMN__hexstring(oct2hex(p__NAS__PlmnId)); +debug_scope.add_variable(&v__PLMN__hexstring, "v_PLMN_hexstring", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(259); +ttcn3_debugger.breakpoint_entry(259); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 259 */ +v__MCC = ((hex2str(const_cast< const HEXSTRING&>(v__PLMN__hexstring)[1]) + hex2str(const_cast< const HEXSTRING&>(v__PLMN__hexstring)[0])) + hex2str(const_cast< const HEXSTRING&>(v__PLMN__hexstring)[3])); +current_location.update_lineno(261); +ttcn3_debugger.breakpoint_entry(261); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 261 */ +{ +CHARSTRING tmp_11; +return DEBUGGER_STORE_RETURN_VALUE(tmp_11, v__MCC); +} +} + +OCTETSTRING fl__GetServingNetworkName(const OCTETSTRING& p__PLMN, const HEXSTRING_template& p__NID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 271, TTCN_Location::LOCATION_FUNCTION, "fl_GetServingNetworkName"); +charstring_list param_names; +param_names[0] = "p_PLMN"; +param_names[1] = "p_NID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("fl_GetServingNetworkName", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NID, "p_NID", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(274); +ttcn3_debugger.breakpoint_entry(274); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 274 */ +CHARSTRING v__P0(((((cs_2 + fl__Nas2SNN__MNC(p__PLMN)) + cs_3) + fl__Nas2SNN__MCC(p__PLMN)) + cs_4)); +debug_scope.add_variable(&v__P0, "v_P0", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(275); +ttcn3_debugger.breakpoint_entry(275); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 275 */ +if (p__NID.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(276); +ttcn3_debugger.breakpoint_entry(276); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 276 */ +{ +CHARSTRING tmp_12; +tmp_12 = ((v__P0 + cs_5) + hex2str(p__NID.valueof())); +v__P0 = tmp_12; +} +} +current_location.update_lineno(278); +ttcn3_debugger.breakpoint_entry(278); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 278 */ +{ +OCTETSTRING tmp_13; +return DEBUGGER_STORE_RETURN_VALUE(tmp_13, char2oct(v__P0)); +} +} + +OCTETSTRING fl__GetNAI(const OCTETSTRING& p__PLMN, const HEXSTRING& p__Identity) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 287, TTCN_Location::LOCATION_FUNCTION, "fl_GetNAI"); +charstring_list param_names; +param_names[0] = "p_PLMN"; +param_names[1] = "p_Identity"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("fl_GetNAI", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Identity, "p_Identity", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(289); +ttcn3_debugger.breakpoint_entry(289); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 289 */ +CHARSTRING v__P0((((((hex2str(p__Identity) + cs_6) + fl__Nas2SNN__MNC(p__PLMN)) + cs_3) + fl__Nas2SNN__MCC(p__PLMN)) + cs_4)); +debug_scope.add_variable(&v__P0, "v_P0", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(290); +ttcn3_debugger.breakpoint_entry(290); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 290 */ +{ +OCTETSTRING tmp_14; +return DEBUGGER_STORE_RETURN_VALUE(tmp_14, char2oct(v__P0)); +} +} + +BITSTRING f__NG__Authentication__A2(const NAS__AuthenticationCommon::Common__AuthenticationParams__Type& p__AuthParams, const INTEGER& p__KDF, const BITSTRING& p__Ks, const OCTETSTRING& p__PLMN, const HEXSTRING_template& p__NID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 306, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A2"); +charstring_list param_names; +param_names[0] = "p_AuthParams"; +param_names[1] = "p_KDF"; +param_names[2] = "p_Ks"; +param_names[3] = "p_PLMN"; +param_names[4] = "p_NID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A2", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__AuthParams, "p_AuthParams", "Common_AuthenticationParams_Type", NULL, NAS__AuthenticationCommon::print_var_NAS_AuthenticationCommon); +debug_scope.add_variable(&p__KDF, "p_KDF", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Ks, "p_Ks", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NID, "p_NID", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(312); +ttcn3_debugger.breakpoint_entry(312); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 312 */ +OCTETSTRING const__S6A__FC(os_13); +debug_scope.add_variable(&const__S6A__FC, "const_S6A_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(313); +ttcn3_debugger.breakpoint_entry(313); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 313 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(314); +ttcn3_debugger.breakpoint_entry(314); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 314 */ +OCTETSTRING v__P0; +debug_scope.add_variable(&v__P0, "v_P0", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(317); +ttcn3_debugger.breakpoint_entry(317); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 317 */ +v__S = os_13; +current_location.update_lineno(319); +ttcn3_debugger.breakpoint_entry(319); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 319 */ +v__P0 = fl__GetServingNetworkName(p__PLMN, p__NID); +current_location.update_lineno(320); +ttcn3_debugger.breakpoint_entry(320); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 320 */ +{ +OCTETSTRING tmp_17; +tmp_17 = (v__S + v__P0); +v__S = tmp_17; +} +current_location.update_lineno(322); +ttcn3_debugger.breakpoint_entry(322); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 322 */ +{ +OCTETSTRING tmp_18; +tmp_18 = (v__S + int2oct(v__P0.lengthof(), 2)); +v__S = tmp_18; +} +current_location.update_lineno(324); +ttcn3_debugger.breakpoint_entry(324); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 324 */ +{ +OCTETSTRING tmp_19; +tmp_19 = (v__S + substr(bit2oct(const_cast< const NAS__AuthenticationCommon::Common__AuthenticationParams__Type&>(p__AuthParams).AUTN()), 0, 6)); +v__S = tmp_19; +} +current_location.update_lineno(327); +ttcn3_debugger.breakpoint_entry(327); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 327 */ +{ +OCTETSTRING tmp_20; +tmp_20 = (v__S + os_14); +v__S = tmp_20; +} +current_location.update_lineno(329); +ttcn3_debugger.breakpoint_entry(329); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 329 */ +{ +BITSTRING tmp_21; +return DEBUGGER_STORE_RETURN_VALUE(tmp_21, CommonDefs::fx__KeyDerivationFunction(p__KDF, p__Ks, v__S)); +} +} + +BITSTRING f__NG__Authentication__A3(const NAS__AuthenticationCommon::Common__AuthenticationParams__Type& p__AuthParams, const INTEGER& p__KDF, const BITSTRING& p__Ks, const OCTETSTRING& p__PLMN, const HEXSTRING_template& p__NID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 343, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A3"); +charstring_list param_names; +param_names[0] = "p_AuthParams"; +param_names[1] = "p_KDF"; +param_names[2] = "p_Ks"; +param_names[3] = "p_PLMN"; +param_names[4] = "p_NID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A3", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__AuthParams, "p_AuthParams", "Common_AuthenticationParams_Type", NULL, NAS__AuthenticationCommon::print_var_NAS_AuthenticationCommon); +debug_scope.add_variable(&p__KDF, "p_KDF", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Ks, "p_Ks", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NID, "p_NID", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(349); +ttcn3_debugger.breakpoint_entry(349); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 349 */ +OCTETSTRING const__S20__FC(os_15); +debug_scope.add_variable(&const__S20__FC, "const_S20_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(350); +ttcn3_debugger.breakpoint_entry(350); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 350 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(351); +ttcn3_debugger.breakpoint_entry(351); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 351 */ +OCTETSTRING v__P0; +debug_scope.add_variable(&v__P0, "v_P0", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(354); +ttcn3_debugger.breakpoint_entry(354); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 354 */ +v__S = os_15; +current_location.update_lineno(356); +ttcn3_debugger.breakpoint_entry(356); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 356 */ +v__P0 = fl__GetServingNetworkName(p__PLMN, p__NID); +current_location.update_lineno(357); +ttcn3_debugger.breakpoint_entry(357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 357 */ +{ +OCTETSTRING tmp_24; +tmp_24 = (v__S + v__P0); +v__S = tmp_24; +} +current_location.update_lineno(359); +ttcn3_debugger.breakpoint_entry(359); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 359 */ +{ +OCTETSTRING tmp_25; +tmp_25 = (v__S + int2oct(v__P0.lengthof(), 2)); +v__S = tmp_25; +} +current_location.update_lineno(361); +ttcn3_debugger.breakpoint_entry(361); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 361 */ +{ +OCTETSTRING tmp_26; +tmp_26 = (v__S + substr(bit2oct(const_cast< const NAS__AuthenticationCommon::Common__AuthenticationParams__Type&>(p__AuthParams).AUTN()), 0, 6)); +v__S = tmp_26; +} +current_location.update_lineno(364); +ttcn3_debugger.breakpoint_entry(364); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 364 */ +{ +OCTETSTRING tmp_27; +tmp_27 = (v__S + os_14); +v__S = tmp_27; +} +current_location.update_lineno(366); +ttcn3_debugger.breakpoint_entry(366); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 366 */ +{ +BITSTRING tmp_28; +return DEBUGGER_STORE_RETURN_VALUE(tmp_28, CommonDefs::fx__KeyDerivationFunction(p__KDF, p__Ks, v__S)); +} +} + +BITSTRING f__NG__Authentication__A4(const OCTETSTRING& p__PLMN, const NAS__AuthenticationCommon::Common__AuthenticationParams__Type& p__AuthParams, const INTEGER& p__KDF, const BITSTRING& p__Key, const HEXSTRING_template& p__NID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 381, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A4"); +charstring_list param_names; +param_names[0] = "p_PLMN"; +param_names[1] = "p_AuthParams"; +param_names[2] = "p_KDF"; +param_names[3] = "p_Key"; +param_names[4] = "p_NID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A4", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__AuthParams, "p_AuthParams", "Common_AuthenticationParams_Type", NULL, NAS__AuthenticationCommon::print_var_NAS_AuthenticationCommon); +debug_scope.add_variable(&p__KDF, "p_KDF", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Key, "p_Key", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NID, "p_NID", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(387); +ttcn3_debugger.breakpoint_entry(387); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 387 */ +OCTETSTRING const__S6B__FC(os_16); +debug_scope.add_variable(&const__S6B__FC, "const_S6B_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(388); +ttcn3_debugger.breakpoint_entry(388); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 388 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(389); +ttcn3_debugger.breakpoint_entry(389); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 389 */ +OCTETSTRING v__P0; +debug_scope.add_variable(&v__P0, "v_P0", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(392); +ttcn3_debugger.breakpoint_entry(392); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 392 */ +v__S = os_16; +current_location.update_lineno(394); +ttcn3_debugger.breakpoint_entry(394); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 394 */ +v__P0 = fl__GetServingNetworkName(p__PLMN, p__NID); +current_location.update_lineno(395); +ttcn3_debugger.breakpoint_entry(395); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 395 */ +{ +OCTETSTRING tmp_31; +tmp_31 = (v__S + v__P0); +v__S = tmp_31; +} +current_location.update_lineno(397); +ttcn3_debugger.breakpoint_entry(397); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 397 */ +{ +OCTETSTRING tmp_32; +tmp_32 = (v__S + int2oct(v__P0.lengthof(), 2)); +v__S = tmp_32; +} +current_location.update_lineno(399); +ttcn3_debugger.breakpoint_entry(399); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 399 */ +{ +OCTETSTRING tmp_33; +tmp_33 = (v__S + bit2oct(const_cast< const NAS__AuthenticationCommon::Common__AuthenticationParams__Type&>(p__AuthParams).RandValue())); +v__S = tmp_33; +} +current_location.update_lineno(401); +ttcn3_debugger.breakpoint_entry(401); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 401 */ +{ +OCTETSTRING tmp_34; +tmp_34 = (v__S + os_17); +v__S = tmp_34; +} +current_location.update_lineno(403); +ttcn3_debugger.breakpoint_entry(403); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 403 */ +{ +OCTETSTRING tmp_35; +tmp_35 = (v__S + bit2oct(substr(const_cast< const NAS__AuthenticationCommon::Common__AuthenticationParams__Type&>(p__AuthParams).XRES(), 0, (NAS__5GC__Parameters::px__NAS__5GC__XRES__Length * 8)))); +v__S = tmp_35; +} +current_location.update_lineno(405); +ttcn3_debugger.breakpoint_entry(405); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 405 */ +{ +OCTETSTRING tmp_36; +tmp_36 = (v__S + int2oct(NAS__5GC__Parameters::px__NAS__5GC__XRES__Length, 2)); +v__S = tmp_36; +} +current_location.update_lineno(408); +ttcn3_debugger.breakpoint_entry(408); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 408 */ +{ +BITSTRING tmp_37; +return DEBUGGER_STORE_RETURN_VALUE(tmp_37, substr(CommonDefs::fx__KeyDerivationFunction(p__KDF, p__Key, v__S), 128, 128)); +} +} + +BITSTRING f__NG__Authentication__A6(const OCTETSTRING& p__PLMN, const BITSTRING& p__KAUSF, const INTEGER& p__KDF__Type, const HEXSTRING_template& p__NID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 423, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A6"); +charstring_list param_names; +param_names[0] = "p_PLMN"; +param_names[1] = "p_KAUSF"; +param_names[2] = "p_KDF_Type"; +param_names[3] = "p_NID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A6", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KAUSF, "p_KAUSF", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NID, "p_NID", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(428); +ttcn3_debugger.breakpoint_entry(428); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 428 */ +OCTETSTRING const__S6C__FC(os_18); +debug_scope.add_variable(&const__S6C__FC, "const_S6C_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(429); +ttcn3_debugger.breakpoint_entry(429); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 429 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(430); +ttcn3_debugger.breakpoint_entry(430); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 430 */ +OCTETSTRING v__P0; +debug_scope.add_variable(&v__P0, "v_P0", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(433); +ttcn3_debugger.breakpoint_entry(433); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 433 */ +v__S = os_18; +current_location.update_lineno(435); +ttcn3_debugger.breakpoint_entry(435); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 435 */ +v__P0 = fl__GetServingNetworkName(p__PLMN, p__NID); +current_location.update_lineno(436); +ttcn3_debugger.breakpoint_entry(436); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 436 */ +{ +OCTETSTRING tmp_40; +tmp_40 = (v__S + v__P0); +v__S = tmp_40; +} +current_location.update_lineno(438); +ttcn3_debugger.breakpoint_entry(438); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 438 */ +{ +OCTETSTRING tmp_41; +tmp_41 = (v__S + int2oct(v__P0.lengthof(), 2)); +v__S = tmp_41; +} +current_location.update_lineno(441); +ttcn3_debugger.breakpoint_entry(441); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 441 */ +{ +BITSTRING tmp_42; +return DEBUGGER_STORE_RETURN_VALUE(tmp_42, CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__KAUSF, v__S)); +} +} + +BITSTRING f__NG__Authentication__A7(const CHARSTRING& p__SUPI, const BITSTRING& p__KSEAF, const OCTETSTRING& p__ABBA, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 455, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A7"); +charstring_list param_names; +param_names[0] = "p_SUPI"; +param_names[1] = "p_KSEAF"; +param_names[2] = "p_ABBA"; +param_names[3] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A7", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__SUPI, "p_SUPI", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KSEAF, "p_KSEAF", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ABBA, "p_ABBA", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(460); +ttcn3_debugger.breakpoint_entry(460); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 460 */ +OCTETSTRING const__S6D__FC(os_19); +debug_scope.add_variable(&const__S6D__FC, "const_S6D_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(461); +ttcn3_debugger.breakpoint_entry(461); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 461 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(462); +ttcn3_debugger.breakpoint_entry(462); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 462 */ +OCTETSTRING v__P0(char2oct(p__SUPI)); +debug_scope.add_variable(&v__P0, "v_P0", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(463); +ttcn3_debugger.breakpoint_entry(463); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 463 */ +OCTETSTRING v__P1(p__ABBA); +debug_scope.add_variable(&v__P1, "v_P1", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(466); +ttcn3_debugger.breakpoint_entry(466); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 466 */ +v__S = os_19; +current_location.update_lineno(468); +ttcn3_debugger.breakpoint_entry(468); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 468 */ +{ +OCTETSTRING tmp_44; +tmp_44 = (v__S + v__P0); +v__S = tmp_44; +} +current_location.update_lineno(470); +ttcn3_debugger.breakpoint_entry(470); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 470 */ +{ +OCTETSTRING tmp_45; +tmp_45 = (v__S + int2oct(v__P0.lengthof(), 2)); +v__S = tmp_45; +} +current_location.update_lineno(472); +ttcn3_debugger.breakpoint_entry(472); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 472 */ +{ +OCTETSTRING tmp_46; +tmp_46 = (v__S + v__P1); +v__S = tmp_46; +} +current_location.update_lineno(474); +ttcn3_debugger.breakpoint_entry(474); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 474 */ +{ +OCTETSTRING tmp_47; +tmp_47 = (v__S + int2oct(v__P1.lengthof(), 2)); +v__S = tmp_47; +} +current_location.update_lineno(477); +ttcn3_debugger.breakpoint_entry(477); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 477 */ +{ +BITSTRING tmp_48; +return DEBUGGER_STORE_RETURN_VALUE(tmp_48, CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__KSEAF, v__S)); +} +} + +BITSTRING f__NG__Authentication__A17(const OCTETSTRING& p__SoRHeader, const BITSTRING& p__KAUSF, const OCTETSTRING& p__Counter, const OCTETSTRING& p__PLMNandAccessTechnologyList, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 492, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A17"); +charstring_list param_names; +param_names[0] = "p_SoRHeader"; +param_names[1] = "p_KAUSF"; +param_names[2] = "p_Counter"; +param_names[3] = "p_PLMNandAccessTechnologyList"; +param_names[4] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A17", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__SoRHeader, "p_SoRHeader", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KAUSF, "p_KAUSF", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Counter, "p_Counter", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PLMNandAccessTechnologyList, "p_PLMNandAccessTechnologyList", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(498); +ttcn3_debugger.breakpoint_entry(498); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 498 */ +OCTETSTRING const__S77__FC(os_21); +debug_scope.add_variable(&const__S77__FC, "const_S77_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(499); +ttcn3_debugger.breakpoint_entry(499); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 499 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(502); +ttcn3_debugger.breakpoint_entry(502); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 502 */ +v__S = os_21; +current_location.update_lineno(504); +ttcn3_debugger.breakpoint_entry(504); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 504 */ +{ +OCTETSTRING tmp_50; +tmp_50 = (v__S + p__SoRHeader); +v__S = tmp_50; +} +current_location.update_lineno(506); +ttcn3_debugger.breakpoint_entry(506); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 506 */ +{ +OCTETSTRING tmp_51; +tmp_51 = (v__S + os_10); +v__S = tmp_51; +} +current_location.update_lineno(508); +ttcn3_debugger.breakpoint_entry(508); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 508 */ +{ +OCTETSTRING tmp_52; +tmp_52 = (v__S + p__Counter); +v__S = tmp_52; +} +current_location.update_lineno(510); +ttcn3_debugger.breakpoint_entry(510); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 510 */ +{ +OCTETSTRING tmp_53; +tmp_53 = (v__S + os_22); +v__S = tmp_53; +} +current_location.update_lineno(512); +ttcn3_debugger.breakpoint_entry(512); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 512 */ +if ((p__PLMNandAccessTechnologyList.lengthof() > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(513); +ttcn3_debugger.breakpoint_entry(513); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 513 */ +{ +OCTETSTRING tmp_54; +tmp_54 = (v__S + p__PLMNandAccessTechnologyList); +v__S = tmp_54; +} +current_location.update_lineno(514); +ttcn3_debugger.breakpoint_entry(514); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 514 */ +{ +OCTETSTRING tmp_55; +tmp_55 = (v__S + int2oct(p__PLMNandAccessTechnologyList.lengthof(), 2)); +v__S = tmp_55; +} +} +current_location.update_lineno(516); +ttcn3_debugger.breakpoint_entry(516); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 516 */ +{ +BITSTRING tmp_56; +return DEBUGGER_STORE_RETURN_VALUE(tmp_56, substr(CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__KAUSF, v__S), 128, 128)); +} +} + +BITSTRING f__NG__Authentication__A18(const BITSTRING& p__KAUSF, const OCTETSTRING& p__Counter, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 530, TTCN_Location::LOCATION_FUNCTION, "f_NG_Authentication_A18"); +charstring_list param_names; +param_names[0] = "p_KAUSF"; +param_names[1] = "p_Counter"; +param_names[2] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_Authentication_A18", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__KAUSF, "p_KAUSF", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Counter, "p_Counter", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(534); +ttcn3_debugger.breakpoint_entry(534); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 534 */ +OCTETSTRING const__S78__FC(os_23); +debug_scope.add_variable(&const__S78__FC, "const_S78_FC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +current_location.update_lineno(535); +ttcn3_debugger.breakpoint_entry(535); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 535 */ +OCTETSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(538); +ttcn3_debugger.breakpoint_entry(538); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 538 */ +v__S = os_23; +current_location.update_lineno(540); +ttcn3_debugger.breakpoint_entry(540); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 540 */ +{ +OCTETSTRING tmp_58; +tmp_58 = (v__S + os_1); +v__S = tmp_58; +} +current_location.update_lineno(542); +ttcn3_debugger.breakpoint_entry(542); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 542 */ +{ +OCTETSTRING tmp_59; +tmp_59 = (v__S + os_10); +v__S = tmp_59; +} +current_location.update_lineno(544); +ttcn3_debugger.breakpoint_entry(544); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 544 */ +{ +OCTETSTRING tmp_60; +tmp_60 = (v__S + p__Counter); +v__S = tmp_60; +} +current_location.update_lineno(546); +ttcn3_debugger.breakpoint_entry(546); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 546 */ +{ +OCTETSTRING tmp_61; +tmp_61 = (v__S + os_22); +v__S = tmp_61; +} +current_location.update_lineno(549); +ttcn3_debugger.breakpoint_entry(549); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 549 */ +{ +BITSTRING tmp_62; +return DEBUGGER_STORE_RETURN_VALUE(tmp_62, substr(CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, p__KAUSF, v__S), 128, 128)); +} +} + +BITSTRING f__NG__HASH__AMF__H2(const OCTETSTRING& p__NASMsg, const INTEGER& p__KDF__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 561, TTCN_Location::LOCATION_FUNCTION, "f_NG_HASH_AMF_H2"); +charstring_list param_names; +param_names[0] = "p_NASMsg"; +param_names[1] = "p_KDF_Type"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_HASH_AMF_H2", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__NASMsg, "p_NASMsg", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KDF__Type, "p_KDF_Type", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(564); +ttcn3_debugger.breakpoint_entry(564); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 564 */ +BITSTRING v__Key(bs_4); +debug_scope.add_variable(&v__Key, "v_Key", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(565); +ttcn3_debugger.breakpoint_entry(565); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 565 */ +BITSTRING v__Result(CommonDefs::fx__KeyDerivationFunction(p__KDF__Type, v__Key, p__NASMsg)); +debug_scope.add_variable(&v__Result, "v_Result", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(567); +ttcn3_debugger.breakpoint_entry(567); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 567 */ +{ +BITSTRING tmp_63; +return DEBUGGER_STORE_RETURN_VALUE(tmp_63, substr(v__Result, 192, 64)); +} +} + +NG__NAS__SecurityParams__Type f__NG__NAS__AuthenticationInit(const NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__PLMN, const HEXSTRING& p__Identity, const NAS__AuthenticationCommon::AuthenticationError__Type& p__AuthenticationError, const NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template& p__Common__AuthenticationParams, const HEXSTRING_template& p__NID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 589, TTCN_Location::LOCATION_FUNCTION, "f_NG_NAS_AuthenticationInit"); +charstring_list param_names; +param_names[0] = "p_Auth_Params"; +param_names[1] = "p_PLMN"; +param_names[2] = "p_Identity"; +param_names[3] = "p_AuthenticationError"; +param_names[4] = "p_Common_AuthenticationParams"; +param_names[5] = "p_NID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_NAS_AuthenticationInit", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Auth__Params, "p_Auth_Params", "NG_NAS_SecurityParams_Type", NULL, print_var_NG_NAS_SecurityFunctions); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Identity, "p_Identity", "hexstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__AuthenticationError, "p_AuthenticationError", "AuthenticationError_Type", NULL, NAS__AuthenticationCommon::print_var_NAS_AuthenticationCommon); +debug_scope.add_variable(&p__Common__AuthenticationParams, "p_Common_AuthenticationParams", "Common_AuthenticationParams_Type template", NULL, NAS__AuthenticationCommon::print_var_NAS_AuthenticationCommon); +debug_scope.add_variable(&p__NID, "p_NID", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(596); +ttcn3_debugger.breakpoint_entry(596); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 596 */ +NG__NAS__SecurityParams__Type v__Auth__Params(p__Auth__Params); +debug_scope.add_variable(&v__Auth__Params, "v_Auth_Params", "NG_NAS_SecurityParams_Type", NULL, print_var_NG_NAS_SecurityFunctions, set_var_NG_NAS_SecurityFunctions); +current_location.update_lineno(597); +ttcn3_debugger.breakpoint_entry(597); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 597 */ +BITSTRING v__XRESstar; +debug_scope.add_variable(&v__XRESstar, "v_XRESstar", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(600); +ttcn3_debugger.breakpoint_entry(600); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 600 */ +if (p__Common__AuthenticationParams.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(601); +ttcn3_debugger.breakpoint_entry(601); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 601 */ +v__Auth__Params.AuthParams() = p__Common__AuthenticationParams.valueof(); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(603); +ttcn3_debugger.breakpoint_entry(603); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 603 */ +v__Auth__Params.AuthParams() = NAS__AuthenticationCommon::f__AuthenticationInit(const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).AuthParams(), p__AuthenticationError); +} +current_location.update_lineno(606); +ttcn3_debugger.breakpoint_entry(606); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 606 */ +{ +BITSTRING tmp_66; +tmp_66 = (const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).AuthParams().CK() + const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).AuthParams().IK()); +v__Auth__Params.Ks() = tmp_66; +} +current_location.update_lineno(609); +ttcn3_debugger.breakpoint_entry(609); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 609 */ +v__Auth__Params.KAUSF() = f__NG__Authentication__A2(const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).AuthParams(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KDF(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).Ks(), p__PLMN, p__NID); +current_location.update_lineno(615); +ttcn3_debugger.breakpoint_entry(615); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 615 */ +v__XRESstar = f__NG__Authentication__A4(p__PLMN, const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).AuthParams(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KDF(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).Ks(), p__NID); +current_location.update_lineno(621); +ttcn3_debugger.breakpoint_entry(621); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 621 */ +v__Auth__Params.AuthParams().XRES() = v__XRESstar; +current_location.update_lineno(624); +ttcn3_debugger.breakpoint_entry(624); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 624 */ +v__Auth__Params = fl__NG__NAS__AuthenticationInitOtherParams(v__Auth__Params, p__PLMN, hex2str(p__Identity), p__NID); +current_location.update_lineno(625); +ttcn3_debugger.breakpoint_entry(625); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 625 */ +{ +NG__NAS__SecurityParams__Type tmp_71; +return DEBUGGER_STORE_RETURN_VALUE(tmp_71, v__Auth__Params); +} +} + +NG__NAS__SecurityParams__Type fl__NG__NAS__AuthenticationInitOtherParams(const NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__PLMN, const CHARSTRING& p__Identity, const HEXSTRING_template& p__NID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 637, TTCN_Location::LOCATION_FUNCTION, "fl_NG_NAS_AuthenticationInitOtherParams"); +charstring_list param_names; +param_names[0] = "p_Auth_Params"; +param_names[1] = "p_PLMN"; +param_names[2] = "p_Identity"; +param_names[3] = "p_NID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("fl_NG_NAS_AuthenticationInitOtherParams", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Auth__Params, "p_Auth_Params", "NG_NAS_SecurityParams_Type", NULL, print_var_NG_NAS_SecurityFunctions); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Identity, "p_Identity", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NID, "p_NID", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(642); +ttcn3_debugger.breakpoint_entry(642); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 642 */ +NG__NAS__SecurityParams__Type v__Auth__Params(p__Auth__Params); +debug_scope.add_variable(&v__Auth__Params, "v_Auth_Params", "NG_NAS_SecurityParams_Type", NULL, print_var_NG_NAS_SecurityFunctions, set_var_NG_NAS_SecurityFunctions); +current_location.update_lineno(645); +ttcn3_debugger.breakpoint_entry(645); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 645 */ +v__Auth__Params.KSIamf() = NAS__AuthenticationCommon::f__Authentication__IncrementKeySeq(const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KSIamf()); +current_location.update_lineno(648); +ttcn3_debugger.breakpoint_entry(648); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 648 */ +v__Auth__Params.KSEAF() = f__NG__Authentication__A6(p__PLMN, const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KAUSF(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KDF(), p__NID); +current_location.update_lineno(654); +ttcn3_debugger.breakpoint_entry(654); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 654 */ +v__Auth__Params.KAMF() = f__NG__Authentication__A7(p__Identity, const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KSEAF(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).ABBA(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KDF()); +current_location.update_lineno(660); +ttcn3_debugger.breakpoint_entry(660); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 660 */ +v__Auth__Params.NAS__Ciphering().K__NAS() = EUTRA__NR__SecurityFunctions::f__NG__Authentication__A8(EUTRA__NR__SecurityFunctions::tsc__NAS__Enc__Alg, const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).NAS__Ciphering().Algorithm(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KAMF(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KDF()); +current_location.update_lineno(665); +ttcn3_debugger.breakpoint_entry(665); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 665 */ +v__Auth__Params.NAS__Integrity().K__NAS() = EUTRA__NR__SecurityFunctions::f__NG__Authentication__A8(EUTRA__NR__SecurityFunctions::tsc__NAS__Int__Alg, const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).NAS__Integrity().Algorithm(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KAMF(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KDF()); +current_location.update_lineno(669); +ttcn3_debugger.breakpoint_entry(669); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 669 */ +{ +NG__NAS__SecurityParams__Type tmp_77; +return DEBUGGER_STORE_RETURN_VALUE(tmp_77, v__Auth__Params); +} +} + +NG__NAS__SecurityParams__Type f__NG__EAP__AuthenticationInit(const NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__PLMN, const CHARSTRING& p__Identity, const NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template& p__Common__AuthenticationParams, const NAS__AuthenticationCommon::AuthenticationError__Type& p__AuthenticationError, const HEXSTRING_template& p__NID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 686, TTCN_Location::LOCATION_FUNCTION, "f_NG_EAP_AuthenticationInit"); +charstring_list param_names; +param_names[0] = "p_Auth_Params"; +param_names[1] = "p_PLMN"; +param_names[2] = "p_Identity"; +param_names[3] = "p_Common_AuthenticationParams"; +param_names[4] = "p_AuthenticationError"; +param_names[5] = "p_NID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_EAP_AuthenticationInit", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Auth__Params, "p_Auth_Params", "NG_NAS_SecurityParams_Type", NULL, print_var_NG_NAS_SecurityFunctions); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Identity, "p_Identity", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Common__AuthenticationParams, "p_Common_AuthenticationParams", "Common_AuthenticationParams_Type template", NULL, NAS__AuthenticationCommon::print_var_NAS_AuthenticationCommon); +debug_scope.add_variable(&p__AuthenticationError, "p_AuthenticationError", "AuthenticationError_Type", NULL, NAS__AuthenticationCommon::print_var_NAS_AuthenticationCommon); +debug_scope.add_variable(&p__NID, "p_NID", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(693); +ttcn3_debugger.breakpoint_entry(693); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 693 */ +NG__NAS__SecurityParams__Type v__Auth__Params(p__Auth__Params); +debug_scope.add_variable(&v__Auth__Params, "v_Auth_Params", "NG_NAS_SecurityParams_Type", NULL, print_var_NG_NAS_SecurityFunctions, set_var_NG_NAS_SecurityFunctions); +current_location.update_lineno(694); +ttcn3_debugger.breakpoint_entry(694); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 694 */ +BITSTRING v__Ck__Ik__; +debug_scope.add_variable(&v__Ck__Ik__, "v_Ck_Ik_", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(695); +ttcn3_debugger.breakpoint_entry(695); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 695 */ +BITSTRING v__Ck__; +debug_scope.add_variable(&v__Ck__, "v_Ck_", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(696); +ttcn3_debugger.breakpoint_entry(696); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 696 */ +BITSTRING v__Ik__; +debug_scope.add_variable(&v__Ik__, "v_Ik_", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(697); +ttcn3_debugger.breakpoint_entry(697); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 697 */ +BITSTRING v__MK; +debug_scope.add_variable(&v__MK, "v_MK", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(698); +ttcn3_debugger.breakpoint_entry(698); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 698 */ +BITSTRING v__K; +debug_scope.add_variable(&v__K, "v_K", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(699); +ttcn3_debugger.breakpoint_entry(699); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 699 */ +CHARSTRING v__S; +debug_scope.add_variable(&v__S, "v_S", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(701); +ttcn3_debugger.breakpoint_entry(701); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 701 */ +if (p__Common__AuthenticationParams.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(702); +ttcn3_debugger.breakpoint_entry(702); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 702 */ +v__Auth__Params.AuthParams() = p__Common__AuthenticationParams.valueof(); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(705); +ttcn3_debugger.breakpoint_entry(705); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 705 */ +v__Auth__Params.AuthParams() = NAS__AuthenticationCommon::f__AuthenticationInit(const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).AuthParams(), p__AuthenticationError); +} +current_location.update_lineno(708); +ttcn3_debugger.breakpoint_entry(708); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 708 */ +{ +BITSTRING tmp_80; +tmp_80 = (const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).AuthParams().CK() + const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).AuthParams().IK()); +v__Auth__Params.Ks() = tmp_80; +} +current_location.update_lineno(710); +ttcn3_debugger.breakpoint_entry(710); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 710 */ +v__Ck__Ik__ = f__NG__Authentication__A3(const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).AuthParams(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).KDF(), const_cast< const NG__NAS__SecurityParams__Type&>(v__Auth__Params).Ks(), p__PLMN, p__NID); +current_location.update_lineno(715); +ttcn3_debugger.breakpoint_entry(715); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 715 */ +v__Ck__ = substr(v__Ck__Ik__, 0, 128); +current_location.update_lineno(716); +ttcn3_debugger.breakpoint_entry(716); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 716 */ +v__Ik__ = substr(v__Ck__Ik__, 128, 128); +current_location.update_lineno(719); +ttcn3_debugger.breakpoint_entry(719); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 719 */ +v__K = (v__Ik__ + v__Ck__); +current_location.update_lineno(720); +ttcn3_debugger.breakpoint_entry(720); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 720 */ +v__S = (cs_7 + p__Identity); +current_location.update_lineno(722); +ttcn3_debugger.breakpoint_entry(722); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 722 */ +v__MK = EAP__TypeDefs::f__ExtendedEAPAKA__PRF(v__K, char2oct(v__S), EAP__TypeDefs::f__ExtendedEAPAKA__PRF_p__NumberOfOutputBits_defval); +current_location.update_lineno(723); +ttcn3_debugger.breakpoint_entry(723); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 723 */ +v__Auth__Params.MK() = v__MK; +current_location.update_lineno(727); +ttcn3_debugger.breakpoint_entry(727); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 727 */ +v__Auth__Params.KAUSF() = substr(v__MK, 1152, 256); +current_location.update_lineno(730); +ttcn3_debugger.breakpoint_entry(730); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 730 */ +v__Auth__Params = fl__NG__NAS__AuthenticationInitOtherParams(v__Auth__Params, p__PLMN, p__Identity, p__NID); +current_location.update_lineno(731); +ttcn3_debugger.breakpoint_entry(731); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 731 */ +{ +NG__NAS__SecurityParams__Type tmp_90; +return DEBUGGER_STORE_RETURN_VALUE(tmp_90, v__Auth__Params); +} +} + +OCTETSTRING f__NG__EAP__ChallengeReq(const NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__PLMN, const OCTETSTRING& p__Id, const HEXSTRING_template& p__NID) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 743, TTCN_Location::LOCATION_FUNCTION, "f_NG_EAP_ChallengeReq"); +charstring_list param_names; +param_names[0] = "p_Auth_Params"; +param_names[1] = "p_PLMN"; +param_names[2] = "p_Id"; +param_names[3] = "p_NID"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_EAP_ChallengeReq", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Auth__Params, "p_Auth_Params", "NG_NAS_SecurityParams_Type", NULL, print_var_NG_NAS_SecurityFunctions); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NID, "p_NID", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(749); +ttcn3_debugger.breakpoint_entry(749); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 749 */ +EAP__TypeDefs::EAP__AT__RAND_template v__RAND; +debug_scope.add_variable(&v__RAND, "v_RAND", "EAP_AT_RAND template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs, EAP__TypeDefs::set_var_EAP_TypeDefs); +current_location.update_lineno(750); +ttcn3_debugger.breakpoint_entry(750); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 750 */ +EAP__TypeDefs::EAP__AT__AUTN_template v__AUTN; +debug_scope.add_variable(&v__AUTN, "v_AUTN", "EAP_AT_AUTN template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs, EAP__TypeDefs::set_var_EAP_TypeDefs); +current_location.update_lineno(751); +ttcn3_debugger.breakpoint_entry(751); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 751 */ +EAP__TypeDefs::EAP__AT__KDF_template v__KDF; +debug_scope.add_variable(&v__KDF, "v_KDF", "EAP_AT_KDF template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs, EAP__TypeDefs::set_var_EAP_TypeDefs); +current_location.update_lineno(752); +ttcn3_debugger.breakpoint_entry(752); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 752 */ +EAP__TypeDefs::EAP__AT__KDF__INPUT_template v__KDF__INPUT; +debug_scope.add_variable(&v__KDF__INPUT, "v_KDF_INPUT", "EAP_AT_KDF_INPUT template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs, EAP__TypeDefs::set_var_EAP_TypeDefs); +current_location.update_lineno(753); +ttcn3_debugger.breakpoint_entry(753); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 753 */ +EAP__TypeDefs::EAP__AT__MAC_template v__MAC; +debug_scope.add_variable(&v__MAC, "v_MAC", "EAP_AT_MAC template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs, EAP__TypeDefs::set_var_EAP_TypeDefs); +current_location.update_lineno(754); +ttcn3_debugger.breakpoint_entry(754); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 754 */ +OCTETSTRING v__MACValue(os_24); +debug_scope.add_variable(&v__MACValue, "v_MACValue", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(755); +ttcn3_debugger.breakpoint_entry(755); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 755 */ +BITSTRING v__K__aut; +debug_scope.add_variable(&v__K__aut, "v_K_aut", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(756); +ttcn3_debugger.breakpoint_entry(756); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 756 */ +EAP__TypeDefs::EAP__Message__Type_template v__EAP__Message; +debug_scope.add_variable(&v__EAP__Message, "v_EAP_Message", "EAP_Message_Type template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs, EAP__TypeDefs::set_var_EAP_TypeDefs); +current_location.update_lineno(757); +ttcn3_debugger.breakpoint_entry(757); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 757 */ +INTEGER v__Msglen(8); +debug_scope.add_variable(&v__Msglen, "v_Msglen", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(758); +ttcn3_debugger.breakpoint_entry(758); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 758 */ +OCTETSTRING v__NetworkName(fl__GetServingNetworkName(p__PLMN, p__NID)); +debug_scope.add_variable(&v__NetworkName, "v_NetworkName", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(759); +ttcn3_debugger.breakpoint_entry(759); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 759 */ +BITSTRING v__EncodedMsg; +debug_scope.add_variable(&v__EncodedMsg, "v_EncodedMsg", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(760); +ttcn3_debugger.breakpoint_entry(760); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 760 */ +INTEGER v__Len; +debug_scope.add_variable(&v__Len, "v_Len", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(761); +ttcn3_debugger.breakpoint_entry(761); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 761 */ +INTEGER v__Paddinglen; +debug_scope.add_variable(&v__Paddinglen, "v_Paddinglen", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(762); +ttcn3_debugger.breakpoint_entry(762); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 762 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(765); +ttcn3_debugger.breakpoint_entry(765); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 765 */ +v__RAND = cs__EAP__AT__RAND(bit2oct(const_cast< const NG__NAS__SecurityParams__Type&>(p__Auth__Params).AuthParams().RandValue())); +current_location.update_lineno(766); +ttcn3_debugger.breakpoint_entry(766); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 766 */ +{ +INTEGER tmp_92; +tmp_92 = (v__Msglen + 20); +v__Msglen = tmp_92; +} +current_location.update_lineno(768); +ttcn3_debugger.breakpoint_entry(768); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 768 */ +v__AUTN = cs__EAP__AT__AUTN(bit2oct(const_cast< const NG__NAS__SecurityParams__Type&>(p__Auth__Params).AuthParams().AUTN())); +current_location.update_lineno(769); +ttcn3_debugger.breakpoint_entry(769); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 769 */ +{ +INTEGER tmp_94; +tmp_94 = (v__Msglen + 20); +v__Msglen = tmp_94; +} +current_location.update_lineno(771); +ttcn3_debugger.breakpoint_entry(771); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 771 */ +v__KDF = cs__EAP__AT__KDF; +current_location.update_lineno(772); +ttcn3_debugger.breakpoint_entry(772); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 772 */ +{ +INTEGER tmp_96; +tmp_96 = (v__Msglen + 4); +v__Msglen = tmp_96; +} +current_location.update_lineno(774); +ttcn3_debugger.breakpoint_entry(774); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 774 */ +v__Len = v__NetworkName.lengthof(); +current_location.update_lineno(775); +ttcn3_debugger.breakpoint_entry(775); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 775 */ +if ((mod(v__Len, 4) > 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(776); +ttcn3_debugger.breakpoint_entry(776); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 776 */ +v__Paddinglen = (4 - mod(v__Len, 4)); +current_location.update_lineno(777); +ttcn3_debugger.breakpoint_entry(777); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 777 */ +i = 0; +current_location.update_lineno(777); +ttcn3_debugger.breakpoint_entry(777); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 777 */ +for ( ; ; ) { +current_location.update_lineno(777); +ttcn3_debugger.breakpoint_entry(777); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 777 */ +if (!(i < v__Paddinglen)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(778); +ttcn3_debugger.breakpoint_entry(778); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 778 */ +{ +OCTETSTRING tmp_100; +tmp_100 = (v__NetworkName + os_6); +v__NetworkName = tmp_100; +} +current_location.update_lineno(777); +ttcn3_debugger.breakpoint_entry(777); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 777 */ +{ +INTEGER tmp_101; +++i; +} +} +} +current_location.update_lineno(782); +ttcn3_debugger.breakpoint_entry(782); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 782 */ +v__KDF__INPUT = cs__EAP__AT__KDF__INPUT(v__NetworkName, int2oct(v__Len, 2)); +current_location.update_lineno(783); +ttcn3_debugger.breakpoint_entry(783); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 783 */ +{ +INTEGER tmp_103; +tmp_103 = ((v__Msglen + v__NetworkName.lengthof()) + 4); +v__Msglen = tmp_103; +} +current_location.update_lineno(785); +ttcn3_debugger.breakpoint_entry(785); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 785 */ +v__MAC = cs__EAP__AT__MAC(v__MACValue); +current_location.update_lineno(786); +ttcn3_debugger.breakpoint_entry(786); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 786 */ +{ +INTEGER tmp_105; +tmp_105 = (v__Msglen + 20); +v__Msglen = tmp_105; +} +current_location.update_lineno(789); +ttcn3_debugger.breakpoint_entry(789); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 789 */ +v__EAP__Message = cs__EAP__Request__AKAChallenge(int2oct(v__Msglen, 2), v__RAND, v__AUTN, v__KDF, v__KDF__INPUT, v__MAC, p__Id); +current_location.update_lineno(794); +ttcn3_debugger.breakpoint_entry(794); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 794 */ +v__EncodedMsg = NG__NAS__EncdecDeclarations::fx__enc__EAP__Message__Type(v__EAP__Message.valueof()); +current_location.update_lineno(795); +ttcn3_debugger.breakpoint_entry(795); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 795 */ +v__K__aut = substr(const_cast< const NG__NAS__SecurityParams__Type&>(p__Auth__Params).MK(), 128, 256); +current_location.update_lineno(796); +ttcn3_debugger.breakpoint_entry(796); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 796 */ +v__MACValue = bit2oct(substr(EAP__TypeDefs::f__HMAC__SHA__256(v__K__aut, bit2oct(v__EncodedMsg)), 0, 128)); +current_location.update_lineno(797); +ttcn3_debugger.breakpoint_entry(797); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 797 */ +v__MAC = cs__EAP__AT__MAC(v__MACValue); +current_location.update_lineno(800); +ttcn3_debugger.breakpoint_entry(800); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 800 */ +{ +OCTETSTRING tmp_111; +return DEBUGGER_STORE_RETURN_VALUE(tmp_111, bit2oct(NG__NAS__EncdecDeclarations::fx__enc__EAP__Message__Type(cs__EAP__Request__AKAChallenge(int2oct(v__Msglen, 2), v__RAND, v__AUTN, v__KDF, v__KDF__INPUT, v__MAC, p__Id).valueof()))); +} +} + +BOOLEAN f__NG__EAP__SuccessfulAuthenticationResponse(NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__ReceivedEAP, const EAP__TypeDefs::EAP__AT__RESULT__IND_template& p__ResultInd, const OCTETSTRING& p__Id) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 816, TTCN_Location::LOCATION_FUNCTION, "f_NG_EAP_SuccessfulAuthenticationResponse"); +charstring_list param_names; +param_names[0] = "p_Auth_Params"; +param_names[1] = "p_ReceivedEAP"; +param_names[2] = "p_ResultInd"; +param_names[3] = "p_Id"; +charstring_list param_types; +param_types[0] = "inout"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("f_NG_EAP_SuccessfulAuthenticationResponse", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__Auth__Params, "p_Auth_Params", "NG_NAS_SecurityParams_Type", NULL, print_var_NG_NAS_SecurityFunctions, set_var_NG_NAS_SecurityFunctions); +debug_scope.add_variable(&p__ReceivedEAP, "p_ReceivedEAP", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ResultInd, "p_ResultInd", "EAP_AT_RESULT_IND template", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(822); +ttcn3_debugger.breakpoint_entry(822); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 822 */ +BOOLEAN v__Result(FALSE); +debug_scope.add_variable(&v__Result, "v_Result", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(823); +ttcn3_debugger.breakpoint_entry(823); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 823 */ +BITSTRING v__ReceivedEAP(oct2bit(p__ReceivedEAP)); +debug_scope.add_variable(&v__ReceivedEAP, "v_ReceivedEAP", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(824); +ttcn3_debugger.breakpoint_entry(824); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 824 */ +OCTETSTRING v__RxdMAC; +debug_scope.add_variable(&v__RxdMAC, "v_RxdMAC", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(825); +ttcn3_debugger.breakpoint_entry(825); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 825 */ +OCTETSTRING v__MACValue(os_24); +debug_scope.add_variable(&v__MACValue, "v_MACValue", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(826); +ttcn3_debugger.breakpoint_entry(826); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 826 */ +BITSTRING v__K__aut; +debug_scope.add_variable(&v__K__aut, "v_K_aut", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(827); +ttcn3_debugger.breakpoint_entry(827); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 827 */ +EAP__TypeDefs::EAP__Message__Type v__EAP__Message; +debug_scope.add_variable(&v__EAP__Message, "v_EAP_Message", "EAP_Message_Type", NULL, EAP__TypeDefs::print_var_EAP_TypeDefs, EAP__TypeDefs::set_var_EAP_TypeDefs); +current_location.update_lineno(828); +ttcn3_debugger.breakpoint_entry(828); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 828 */ +BITSTRING v__RESValue; +debug_scope.add_variable(&v__RESValue, "v_RESValue", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(829); +ttcn3_debugger.breakpoint_entry(829); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 829 */ +OCTETSTRING v__ModifiedEAP; +debug_scope.add_variable(&v__ModifiedEAP, "v_ModifiedEAP", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(830); +ttcn3_debugger.breakpoint_entry(830); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 830 */ +INTEGER v__Len; +debug_scope.add_variable(&v__Len, "v_Len", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(831); +ttcn3_debugger.breakpoint_entry(831); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 831 */ +INTEGER v__Paddinglen; +debug_scope.add_variable(&v__Paddinglen, "v_Paddinglen", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(832); +ttcn3_debugger.breakpoint_entry(832); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 832 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(834); +ttcn3_debugger.breakpoint_entry(834); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 834 */ +if ((NG__NAS__EncdecDeclarations::fx__dec__EAP__Message__Type(v__ReceivedEAP, v__EAP__Message) != 0)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(835); +ttcn3_debugger.breakpoint_entry(835); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 835 */ +CommonDefs::FatalError(cs_8, 835, cs_9); +} +current_location.update_lineno(839); +ttcn3_debugger.breakpoint_entry(839); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 839 */ +v__Len = oct2int(const_cast< const EAP__TypeDefs::EAP__Message__Type&>(v__EAP__Message).akaChallenge__Rsp().attributes()().res()().reslen()); +current_location.update_lineno(841); +ttcn3_debugger.breakpoint_entry(841); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 841 */ +p__Auth__Params.AuthParams().XRESLength() = (v__Len / 8); +current_location.update_lineno(844); +ttcn3_debugger.breakpoint_entry(844); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 844 */ +v__RESValue = substr(const_cast< const NG__NAS__SecurityParams__Type&>(p__Auth__Params).AuthParams().XRES(), 0, v__Len); +current_location.update_lineno(846); +ttcn3_debugger.breakpoint_entry(846); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 846 */ +{ +boolean tmp_115; +tmp_115 = (mod(v__Len, 8) > 0); +if (!tmp_115) tmp_115 = (mod((v__Len / 8), 4) > 0); +if (tmp_115) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(847); +ttcn3_debugger.breakpoint_entry(847); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 847 */ +v__Paddinglen = (8 - mod(v__Len, 8)); +current_location.update_lineno(848); +ttcn3_debugger.breakpoint_entry(848); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 848 */ +{ +INTEGER tmp_117; +tmp_117 = ((4 - mod(((v__Len + v__Paddinglen) / 8), 4)) * 8); +v__Paddinglen = tmp_117; +} +current_location.update_lineno(849); +ttcn3_debugger.breakpoint_entry(849); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 849 */ +i = 0; +current_location.update_lineno(849); +ttcn3_debugger.breakpoint_entry(849); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 849 */ +for ( ; ; ) { +current_location.update_lineno(849); +ttcn3_debugger.breakpoint_entry(849); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 849 */ +if (!(i < v__Paddinglen)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(850); +ttcn3_debugger.breakpoint_entry(850); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 850 */ +{ +BITSTRING tmp_119; +tmp_119 = (v__RESValue + bs_5); +v__RESValue = tmp_119; +} +current_location.update_lineno(849); +ttcn3_debugger.breakpoint_entry(849); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 849 */ +{ +INTEGER tmp_120; +++i; +} +} +} +} +current_location.update_lineno(855); +ttcn3_debugger.breakpoint_entry(855); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 855 */ +if (cr__EAP__Response__AKAChallenge(int2oct(p__ReceivedEAP.lengthof(), 2), cr__EAP__AT__RES(bit2oct(v__RESValue), int2oct(v__Len, 2)), EAP__TypeDefs::EAP__AT__MAC_template(ANY_VALUE), p__ResultInd, p__Id).match(v__EAP__Message)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(857); +ttcn3_debugger.breakpoint_entry(857); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 857 */ +v__RxdMAC = const_cast< const EAP__TypeDefs::EAP__Message__Type&>(v__EAP__Message).akaChallenge__Rsp().attributes()().mac()().mac(); +current_location.update_lineno(860); +ttcn3_debugger.breakpoint_entry(860); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 860 */ +v__ModifiedEAP = fl__NG__EAP__Response__ClearMACValue(p__ReceivedEAP); +current_location.update_lineno(862); +ttcn3_debugger.breakpoint_entry(862); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 862 */ +v__K__aut = substr(const_cast< const NG__NAS__SecurityParams__Type&>(p__Auth__Params).MK(), 128, 256); +current_location.update_lineno(863); +ttcn3_debugger.breakpoint_entry(863); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 863 */ +v__MACValue = bit2oct(substr(EAP__TypeDefs::f__HMAC__SHA__256(v__K__aut, v__ModifiedEAP), 0, 128)); +current_location.update_lineno(865); +ttcn3_debugger.breakpoint_entry(865); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 865 */ +if (OCTETSTRING_template(v__MACValue).match(v__RxdMAC)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(866); +ttcn3_debugger.breakpoint_entry(866); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 866 */ +v__Result = TRUE; +} +} +current_location.update_lineno(869); +ttcn3_debugger.breakpoint_entry(869); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 869 */ +{ +BOOLEAN tmp_126; +return DEBUGGER_STORE_RETURN_VALUE(tmp_126, v__Result); +} +} + +OCTETSTRING fl__NG__EAP__Response__ClearMACValue(const OCTETSTRING& p__ReceivedEAP) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 882, TTCN_Location::LOCATION_FUNCTION, "fl_NG_EAP_Response_ClearMACValue"); +charstring_list param_names; +param_names[0] = "p_ReceivedEAP"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_NG_EAP_Response_ClearMACValue", "function", "NG_NAS_SecurityFunctions", param_names, param_types, NULL); +debug_scope.add_variable(&p__ReceivedEAP, "p_ReceivedEAP", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(884); +ttcn3_debugger.breakpoint_entry(884); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 884 */ +OCTETSTRING v__ModifiedEAP(p__ReceivedEAP); +debug_scope.add_variable(&v__ModifiedEAP, "v_ModifiedEAP", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(885); +ttcn3_debugger.breakpoint_entry(885); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 885 */ +INTEGER i(8); +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(886); +ttcn3_debugger.breakpoint_entry(886); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 886 */ +INTEGER k; +debug_scope.add_variable(&k, "k", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +for ( ; ; ) { +current_location.update_lineno(888); +ttcn3_debugger.breakpoint_entry(888); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 888 */ +if (!(const_cast< const OCTETSTRING&>(p__ReceivedEAP)[i] != os_12)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(889); +ttcn3_debugger.breakpoint_entry(889); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 889 */ +{ +INTEGER tmp_127; +tmp_127 = (i + (oct2int(const_cast< const OCTETSTRING&>(p__ReceivedEAP)[(i + 1)]) * 4)); +i = tmp_127; +} +current_location.update_lineno(890); +ttcn3_debugger.breakpoint_entry(890); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 890 */ +if ((i > p__ReceivedEAP.lengthof())) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(891); +ttcn3_debugger.breakpoint_entry(891); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 891 */ +CommonDefs::FatalError(cs_8, 891, cs_10); +} +} +current_location.update_lineno(894); +ttcn3_debugger.breakpoint_entry(894); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 894 */ +{ +INTEGER tmp_128; +tmp_128 = (i + 4); +i = tmp_128; +} +current_location.update_lineno(895); +ttcn3_debugger.breakpoint_entry(895); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 895 */ +k = 0; +current_location.update_lineno(895); +ttcn3_debugger.breakpoint_entry(895); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 895 */ +for ( ; ; ) { +current_location.update_lineno(895); +ttcn3_debugger.breakpoint_entry(895); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 895 */ +if (!(k < 16)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(896); +ttcn3_debugger.breakpoint_entry(896); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 896 */ +v__ModifiedEAP[(i + k)] = os_6; +current_location.update_lineno(895); +ttcn3_debugger.breakpoint_entry(895); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 895 */ +{ +INTEGER tmp_131; +++k; +} +} +current_location.update_lineno(898); +ttcn3_debugger.breakpoint_entry(898); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 898 */ +{ +OCTETSTRING tmp_132; +return DEBUGGER_STORE_RETURN_VALUE(tmp_132, v__ModifiedEAP); +} +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_SecurityFunctions"); +NG__NAS__SecurityFunctions::init_ttcn3_debugger(); +NAS__AuthenticationCommon::module_object.pre_init_module(); +NG__NasEmu__CtrlAspTypes::module_object.pre_init_module(); +EUTRA__NR__SecurityFunctions::module_object.pre_init_module(); +NAS__5GC__Parameters::module_object.pre_init_module(); +NG__NAS__EncdecDeclarations::module_object.pre_init_module(); +current_location.update_lineno(45); +ttcn3_debugger.breakpoint_entry(45); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 45 */ +const_tsc__NG__Integrity__Snow3G = bs_0; +current_location.update_lineno(46); +ttcn3_debugger.breakpoint_entry(46); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 46 */ +const_tsc__NG__Integrity__AES = bs_1; +current_location.update_lineno(47); +ttcn3_debugger.breakpoint_entry(47); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 47 */ +const_tsc__NG__Integrity__ZUC = bs_2; +current_location.update_lineno(48); +ttcn3_debugger.breakpoint_entry(48); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 48 */ +const_tsc__NG__Encryption__Snow3G = bs_0; +current_location.update_lineno(49); +ttcn3_debugger.breakpoint_entry(49); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 49 */ +const_tsc__NG__Encryption__AES = bs_1; +current_location.update_lineno(50); +ttcn3_debugger.breakpoint_entry(50); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 50 */ +const_tsc__NG__Encryption__ZUC = bs_2; +module_object.add_function("fl_Nas2SNN_MNC", (genericfunc_t)&fl__Nas2SNN__MNC, NULL); +module_object.add_function("fl_Nas2SNN_MCC", (genericfunc_t)&fl__Nas2SNN__MCC, NULL); +module_object.add_function("fl_GetServingNetworkName", (genericfunc_t)&fl__GetServingNetworkName, NULL); +module_object.add_function("fl_GetNAI", (genericfunc_t)&fl__GetNAI, NULL); +module_object.add_function("f_NG_Authentication_A2", (genericfunc_t)&f__NG__Authentication__A2, NULL); +module_object.add_function("f_NG_Authentication_A3", (genericfunc_t)&f__NG__Authentication__A3, NULL); +module_object.add_function("f_NG_Authentication_A4", (genericfunc_t)&f__NG__Authentication__A4, NULL); +module_object.add_function("f_NG_Authentication_A6", (genericfunc_t)&f__NG__Authentication__A6, NULL); +module_object.add_function("f_NG_Authentication_A7", (genericfunc_t)&f__NG__Authentication__A7, NULL); +module_object.add_function("f_NG_Authentication_A17", (genericfunc_t)&f__NG__Authentication__A17, NULL); +module_object.add_function("f_NG_Authentication_A18", (genericfunc_t)&f__NG__Authentication__A18, NULL); +module_object.add_function("f_NG_HASH_AMF_H2", (genericfunc_t)&f__NG__HASH__AMF__H2, NULL); +module_object.add_function("f_NG_NAS_AuthenticationInit", (genericfunc_t)&f__NG__NAS__AuthenticationInit, NULL); +module_object.add_function("fl_NG_NAS_AuthenticationInitOtherParams", (genericfunc_t)&fl__NG__NAS__AuthenticationInitOtherParams, NULL); +module_object.add_function("f_NG_EAP_AuthenticationInit", (genericfunc_t)&f__NG__EAP__AuthenticationInit, NULL); +module_object.add_function("f_NG_EAP_ChallengeReq", (genericfunc_t)&f__NG__EAP__ChallengeReq, NULL); +module_object.add_function("f_NG_EAP_SuccessfulAuthenticationResponse", (genericfunc_t)&f__NG__EAP__SuccessfulAuthenticationResponse, NULL); +module_object.add_function("fl_NG_EAP_Response_ClearMACValue", (genericfunc_t)&fl__NG__EAP__Response__ClearMACValue, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_SecurityFunctions"); +NAS__AuthenticationCommon::module_object.post_init_module(); +NG__NasEmu__CtrlAspTypes::module_object.post_init_module(); +EUTRA__NR__SecurityFunctions::module_object.post_init_module(); +NAS__5GC__Parameters::module_object.post_init_module(); +NG__NAS__EncdecDeclarations::module_object.post_init_module(); +current_location.update_lineno(52); +ttcn3_debugger.breakpoint_entry(52); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 52 */ +template_cs__NG__NAS__SecurityParamsInit.KDF() = CommonDefs::tsc__KDF__HMAC__SHA__256; +template_cs__NG__NAS__SecurityParamsInit.KSIamf() = bs_3; +template_cs__NG__NAS__SecurityParamsInit.Ks() = NAS__AuthenticationCommon::tsc__AuthUndefinedB256; +template_cs__NG__NAS__SecurityParamsInit.KAMF() = NAS__AuthenticationCommon::tsc__AuthUndefinedB256; +template_cs__NG__NAS__SecurityParamsInit.MK() = NAS__AuthenticationCommon::tsc__AuthUndefinedB256; +template_cs__NG__NAS__SecurityParamsInit.KAUSF() = NAS__AuthenticationCommon::tsc__AuthUndefinedB256; +template_cs__NG__NAS__SecurityParamsInit.KSEAF() = NAS__AuthenticationCommon::tsc__AuthUndefinedB256; +template_cs__NG__NAS__SecurityParamsInit.ABBA() = os_0; +template_cs__NG__NAS__SecurityParamsInit.NAS__Integrity() = cs__NG__NAS__SecurityInfo(NAS__5GC__Parameters::px__NAS__5GC__IntegrityAlgorithm, NAS__AuthenticationCommon::tsc__AuthUndefinedB128); +template_cs__NG__NAS__SecurityParamsInit.NAS__Ciphering() = cs__NG__NAS__SecurityInfo(NAS__5GC__Parameters::px__NAS__5GC__CipheringAlgorithm, NAS__AuthenticationCommon::tsc__AuthUndefinedB128); +template_cs__NG__NAS__SecurityParamsInit.AuthParams() = NAS__AuthenticationCommon::cs__CommonAuthParams__Init(BITSTRING_template(Parameters::px__eAuthRAND)); +current_location.update_lineno(160); +ttcn3_debugger.breakpoint_entry(160); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 160 */ +const_cs__EAP__Success_p__Id_defval = os_6; +current_location.update_lineno(169); +ttcn3_debugger.breakpoint_entry(169); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 169 */ +const_cs__EAP__Failure_p__Id_defval = os_6; +current_location.update_lineno(194); +ttcn3_debugger.breakpoint_entry(194); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 194 */ +template_cs__EAP__AT__KDF.attributeType() = os_9; +template_cs__EAP__AT__KDF.len() = os_1; +template_cs__EAP__AT__KDF.keyDerivationFunction() = os_10; +current_location.update_lineno(287); +ttcn3_debugger.breakpoint_entry(287); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 287 */ +const_fl__GetNAI_p__Identity_defval = Parameters::px__IMSI__Def; +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 495 */ +const_f__NG__Authentication__A17_p__PLMNandAccessTechnologyList_defval = os_20; +current_location.update_lineno(591); +ttcn3_debugger.breakpoint_entry(591); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 591 */ +const_f__NG__NAS__AuthenticationInit_p__Identity_defval = Parameters::px__IMSI__Def; +current_location.update_lineno(592); +ttcn3_debugger.breakpoint_entry(592); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 592 */ +const_f__NG__NAS__AuthenticationInit_p__AuthenticationError_defval = NAS__AuthenticationCommon::AuthenticationError__Type::noError; +current_location.update_lineno(690); +ttcn3_debugger.breakpoint_entry(690); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 690 */ +const_f__NG__EAP__AuthenticationInit_p__AuthenticationError_defval = NAS__AuthenticationCommon::AuthenticationError__Type::noError; +current_location.update_lineno(745); +ttcn3_debugger.breakpoint_entry(745); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 745 */ +const_f__NG__EAP__ChallengeReq_p__Id_defval = os_6; +current_location.update_lineno(819); +ttcn3_debugger.breakpoint_entry(819); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_SecurityFunctions.ttcn, line 819 */ +const_f__NG__EAP__SuccessfulAuthenticationResponse_p__Id_defval = os_6; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NG_NAS_SecurityFunctions.hh b/build/Ats_NG_NAS/NG_NAS_SecurityFunctions.hh new file mode 100644 index 0000000000000000000000000000000000000000..11b2f500b73876f830d7988a85a9b4b5e5c6d349 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_SecurityFunctions.hh @@ -0,0 +1,308 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NG__NAS__SecurityFunctions_HH +#define NG__NAS__SecurityFunctions_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NAS_AuthenticationCommon.hh" +#include "NG_NasEmu_CtrlAspTypes.hh" +#include "EUTRA_NR_SecurityFunctions.hh" +#include "NAS_5GC_Parameters.hh" +#include "NG_NAS_EncdecDeclarations.hh" + +#if TTCN3_VERSION != 100000 +#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 NG__NAS__SecurityFunctions_HH +#endif + +namespace NG__NAS__SecurityFunctions { + +/* Forward declarations of classes */ + +class NG__NAS__SecurityParams__Type; +class NG__NAS__SecurityParams__Type_template; + +} /* end of namespace */ + +#ifndef NG__NAS__SecurityFunctions_HH +#define NG__NAS__SecurityFunctions_HH + +namespace NG__NAS__SecurityFunctions { + +/* Class definitions */ + +class NG__NAS__SecurityParams__Type : public Record_Type { + INTEGER field_KDF; + BITSTRING field_KSIamf; + BITSTRING field_Ks; + BITSTRING field_KAMF; + BITSTRING field_MK; + BITSTRING field_KAUSF; + BITSTRING field_KSEAF; + OCTETSTRING field_ABBA; + NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type field_NAS__Integrity; + NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type field_NAS__Ciphering; + NAS__AuthenticationCommon::Common__AuthenticationParams__Type field_AuthParams; + Base_Type* fld_vec[11]; + void init_vec(); +public: + NG__NAS__SecurityParams__Type(); + NG__NAS__SecurityParams__Type(const NG__NAS__SecurityParams__Type& other_value); + NG__NAS__SecurityParams__Type(const INTEGER& par_KDF, + const BITSTRING& par_KSIamf, + const BITSTRING& par_Ks, + const BITSTRING& par_KAMF, + const BITSTRING& par_MK, + const BITSTRING& par_KAUSF, + const BITSTRING& par_KSEAF, + const OCTETSTRING& par_ABBA, + const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type& par_NAS__Integrity, + const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type& par_NAS__Ciphering, + const NAS__AuthenticationCommon::Common__AuthenticationParams__Type& par_AuthParams); +inline NG__NAS__SecurityParams__Type& operator=(const NG__NAS__SecurityParams__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__SecurityParams__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__SecurityParams__Type& other_value) const + { return !is_equal(&other_value); } + + inline INTEGER& KDF() + {return field_KDF;} + inline const INTEGER& KDF() const + {return field_KDF;} + inline BITSTRING& KSIamf() + {return field_KSIamf;} + inline const BITSTRING& KSIamf() const + {return field_KSIamf;} + inline BITSTRING& Ks() + {return field_Ks;} + inline const BITSTRING& Ks() const + {return field_Ks;} + inline BITSTRING& KAMF() + {return field_KAMF;} + inline const BITSTRING& KAMF() const + {return field_KAMF;} + inline BITSTRING& MK() + {return field_MK;} + inline const BITSTRING& MK() const + {return field_MK;} + inline BITSTRING& KAUSF() + {return field_KAUSF;} + inline const BITSTRING& KAUSF() const + {return field_KAUSF;} + inline BITSTRING& KSEAF() + {return field_KSEAF;} + inline const BITSTRING& KSEAF() const + {return field_KSEAF;} + inline OCTETSTRING& ABBA() + {return field_ABBA;} + inline const OCTETSTRING& ABBA() const + {return field_ABBA;} + inline NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type& NAS__Integrity() + {return field_NAS__Integrity;} + inline const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type& NAS__Integrity() const + {return field_NAS__Integrity;} + inline NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type& NAS__Ciphering() + {return field_NAS__Ciphering;} + inline const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type& NAS__Ciphering() const + {return field_NAS__Ciphering;} + inline NAS__AuthenticationCommon::Common__AuthenticationParams__Type& AuthParams() + {return field_AuthParams;} + inline const NAS__AuthenticationCommon::Common__AuthenticationParams__Type& AuthParams() const + {return field_AuthParams;} +Base_Type* clone() const { return new NG__NAS__SecurityParams__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 11; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__SecurityParams__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__SecurityParams__Type_template(): Record_Template() {} +NG__NAS__SecurityParams__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__SecurityParams__Type_template(const NG__NAS__SecurityParams__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__SecurityParams__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__SecurityParams__Type_template(NG__NAS__SecurityParams__Type_template* p_precondition, NG__NAS__SecurityParams__Type_template* p_implied_template); +NG__NAS__SecurityParams__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__SecurityParams__Type_template(const NG__NAS__SecurityParams__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__SecurityParams__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__SecurityParams__Type_template& operator=(template_sel other_value); +NG__NAS__SecurityParams__Type_template& operator=(const NG__NAS__SecurityParams__Type& other_value); +NG__NAS__SecurityParams__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__SecurityParams__Type_template& operator=(const NG__NAS__SecurityParams__Type_template& other_value); +inline boolean match(const NG__NAS__SecurityParams__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__SecurityParams__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__SecurityParams__Type valueof() const; +inline NG__NAS__SecurityParams__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +INTEGER_template& KDF(); +const INTEGER_template& KDF() const; +BITSTRING_template& KSIamf(); +const BITSTRING_template& KSIamf() const; +BITSTRING_template& Ks(); +const BITSTRING_template& Ks() const; +BITSTRING_template& KAMF(); +const BITSTRING_template& KAMF() const; +BITSTRING_template& MK(); +const BITSTRING_template& MK() const; +BITSTRING_template& KAUSF(); +const BITSTRING_template& KAUSF() const; +BITSTRING_template& KSEAF(); +const BITSTRING_template& KSEAF() const; +OCTETSTRING_template& ABBA(); +const OCTETSTRING_template& ABBA() const; +NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template& NAS__Integrity(); +const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template& NAS__Integrity() const; +NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template& NAS__Ciphering(); +const NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template& NAS__Ciphering() const; +NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template& AuthParams(); +const NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template& AuthParams() const; +Record_Template* create() const { return new NG__NAS__SecurityParams__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_NG_NAS_SecurityFunctions(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_NG_NAS_SecurityFunctions(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern NG__NasEmu__CtrlAspTypes::NG__NAS__SecurityInfo__Type_template cs__NG__NAS__SecurityInfo(const BITSTRING& p__Algo, const BITSTRING& p__Key); +extern EAP__TypeDefs::EAP__Message__Type_template cs__EAP__Request__AKAChallenge(const OCTETSTRING& p__Length, const EAP__TypeDefs::EAP__AT__RAND_template& p__RAND, const EAP__TypeDefs::EAP__AT__AUTN_template& p__AUTN, const EAP__TypeDefs::EAP__AT__KDF_template& p__KDF, const EAP__TypeDefs::EAP__AT__KDF__INPUT_template& p__KDF__INPUT, const EAP__TypeDefs::EAP__AT__MAC_template& p__MAC, const OCTETSTRING& p__Id); +extern EAP__TypeDefs::EAP__Message__Type_template cr__EAP__Response__AKAChallenge(const OCTETSTRING& p__Length, const EAP__TypeDefs::EAP__AT__RES_template& p__RES, const EAP__TypeDefs::EAP__AT__MAC_template& p__MAC, const EAP__TypeDefs::EAP__AT__RESULT__IND_template& p__ResultInd, const OCTETSTRING& p__Id); +extern EAP__TypeDefs::EAP__Message__Type_template cs__EAP__Success(const OCTETSTRING& p__Id); +extern EAP__TypeDefs::EAP__Message__Type_template cs__EAP__Failure(const OCTETSTRING& p__Id); +extern EAP__TypeDefs::EAP__AT__RAND_template cs__EAP__AT__RAND(const OCTETSTRING& p__Rand); +extern EAP__TypeDefs::EAP__AT__AUTN_template cs__EAP__AT__AUTN(const OCTETSTRING& p__AUTN); +extern EAP__TypeDefs::EAP__AT__KDF__INPUT_template cs__EAP__AT__KDF__INPUT(const OCTETSTRING& p__Name, const OCTETSTRING& p__ActualLength); +extern EAP__TypeDefs::EAP__AT__MAC_template cs__EAP__AT__MAC(const OCTETSTRING& p__MAC); +extern EAP__TypeDefs::EAP__AT__RES_template cr__EAP__AT__RES(const OCTETSTRING& p__Res, const OCTETSTRING& p__ActualLength); +extern CHARSTRING fl__Nas2SNN__MNC(const OCTETSTRING& p__NAS__PlmnId); +extern CHARSTRING fl__Nas2SNN__MCC(const OCTETSTRING& p__NAS__PlmnId); +extern OCTETSTRING fl__GetServingNetworkName(const OCTETSTRING& p__PLMN, const HEXSTRING_template& p__NID); +extern OCTETSTRING fl__GetNAI(const OCTETSTRING& p__PLMN, const HEXSTRING& p__Identity); +extern BITSTRING f__NG__Authentication__A2(const NAS__AuthenticationCommon::Common__AuthenticationParams__Type& p__AuthParams, const INTEGER& p__KDF, const BITSTRING& p__Ks, const OCTETSTRING& p__PLMN, const HEXSTRING_template& p__NID); +extern BITSTRING f__NG__Authentication__A3(const NAS__AuthenticationCommon::Common__AuthenticationParams__Type& p__AuthParams, const INTEGER& p__KDF, const BITSTRING& p__Ks, const OCTETSTRING& p__PLMN, const HEXSTRING_template& p__NID); +extern BITSTRING f__NG__Authentication__A4(const OCTETSTRING& p__PLMN, const NAS__AuthenticationCommon::Common__AuthenticationParams__Type& p__AuthParams, const INTEGER& p__KDF, const BITSTRING& p__Key, const HEXSTRING_template& p__NID); +extern BITSTRING f__NG__Authentication__A6(const OCTETSTRING& p__PLMN, const BITSTRING& p__KAUSF, const INTEGER& p__KDF__Type, const HEXSTRING_template& p__NID); +extern BITSTRING f__NG__Authentication__A7(const CHARSTRING& p__SUPI, const BITSTRING& p__KSEAF, const OCTETSTRING& p__ABBA, const INTEGER& p__KDF__Type); +extern BITSTRING f__NG__Authentication__A17(const OCTETSTRING& p__SoRHeader, const BITSTRING& p__KAUSF, const OCTETSTRING& p__Counter, const OCTETSTRING& p__PLMNandAccessTechnologyList, const INTEGER& p__KDF__Type); +extern BITSTRING f__NG__Authentication__A18(const BITSTRING& p__KAUSF, const OCTETSTRING& p__Counter, const INTEGER& p__KDF__Type); +extern BITSTRING f__NG__HASH__AMF__H2(const OCTETSTRING& p__NASMsg, const INTEGER& p__KDF__Type); +extern NG__NAS__SecurityParams__Type f__NG__NAS__AuthenticationInit(const NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__PLMN, const HEXSTRING& p__Identity, const NAS__AuthenticationCommon::AuthenticationError__Type& p__AuthenticationError, const NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template& p__Common__AuthenticationParams, const HEXSTRING_template& p__NID); +extern NG__NAS__SecurityParams__Type fl__NG__NAS__AuthenticationInitOtherParams(const NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__PLMN, const CHARSTRING& p__Identity, const HEXSTRING_template& p__NID); +extern NG__NAS__SecurityParams__Type f__NG__EAP__AuthenticationInit(const NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__PLMN, const CHARSTRING& p__Identity, const NAS__AuthenticationCommon::Common__AuthenticationParams__Type_template& p__Common__AuthenticationParams, const NAS__AuthenticationCommon::AuthenticationError__Type& p__AuthenticationError, const HEXSTRING_template& p__NID); +extern OCTETSTRING f__NG__EAP__ChallengeReq(const NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__PLMN, const OCTETSTRING& p__Id, const HEXSTRING_template& p__NID); +extern BOOLEAN f__NG__EAP__SuccessfulAuthenticationResponse(NG__NAS__SecurityParams__Type& p__Auth__Params, const OCTETSTRING& p__ReceivedEAP, const EAP__TypeDefs::EAP__AT__RESULT__IND_template& p__ResultInd, const OCTETSTRING& p__Id); +extern OCTETSTRING fl__NG__EAP__Response__ClearMACValue(const OCTETSTRING& p__ReceivedEAP); + +/* Global variable declarations */ + +extern const XERdescriptor_t NG__NAS__SecurityParams__Type_KDF_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KDF_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KDF_descr_; +extern const XERdescriptor_t NG__NAS__SecurityParams__Type_KSIamf_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KSIamf_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KSIamf_descr_; +extern const XERdescriptor_t NG__NAS__SecurityParams__Type_Ks_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_Ks_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_Ks_descr_; +extern const XERdescriptor_t NG__NAS__SecurityParams__Type_KAMF_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KAMF_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KAMF_descr_; +extern const XERdescriptor_t NG__NAS__SecurityParams__Type_MK_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_MK_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_MK_descr_; +extern const XERdescriptor_t NG__NAS__SecurityParams__Type_KAUSF_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KAUSF_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KAUSF_descr_; +extern const XERdescriptor_t NG__NAS__SecurityParams__Type_KSEAF_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_KSEAF_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_KSEAF_descr_; +extern const XERdescriptor_t NG__NAS__SecurityParams__Type_ABBA_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityParams__Type_ABBA_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_ABBA_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityParams__Type_descr_; +extern const BITSTRING& tsc__NG__Integrity__Snow3G; +extern BITSTRING const_tsc__NG__Integrity__Snow3G; +extern const BITSTRING& tsc__NG__Integrity__AES; +extern BITSTRING const_tsc__NG__Integrity__AES; +extern const BITSTRING& tsc__NG__Integrity__ZUC; +extern BITSTRING const_tsc__NG__Integrity__ZUC; +extern const BITSTRING& tsc__NG__Encryption__Snow3G; +extern BITSTRING const_tsc__NG__Encryption__Snow3G; +extern const BITSTRING& tsc__NG__Encryption__AES; +extern BITSTRING const_tsc__NG__Encryption__AES; +extern const BITSTRING& tsc__NG__Encryption__ZUC; +extern BITSTRING const_tsc__NG__Encryption__ZUC; +extern const NG__NAS__SecurityParams__Type_template& cs__NG__NAS__SecurityParamsInit; +extern NG__NAS__SecurityParams__Type_template template_cs__NG__NAS__SecurityParamsInit; +extern Erroneous_descriptor_t* template_cs__NG__NAS__SecurityInfo_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__EAP__Request__AKAChallenge_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__EAP__Response__AKAChallenge_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__EAP__Success_err_descr_ptr; +extern const OCTETSTRING& cs__EAP__Success_p__Id_defval; +extern OCTETSTRING const_cs__EAP__Success_p__Id_defval; +extern Erroneous_descriptor_t* template_cs__EAP__Failure_err_descr_ptr; +extern const OCTETSTRING& cs__EAP__Failure_p__Id_defval; +extern OCTETSTRING const_cs__EAP__Failure_p__Id_defval; +extern Erroneous_descriptor_t* template_cs__EAP__AT__RAND_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__EAP__AT__AUTN_err_descr_ptr; +extern const EAP__TypeDefs::EAP__AT__KDF_template& cs__EAP__AT__KDF; +extern EAP__TypeDefs::EAP__AT__KDF_template template_cs__EAP__AT__KDF; +extern Erroneous_descriptor_t* template_cs__EAP__AT__KDF__INPUT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__EAP__AT__MAC_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__EAP__AT__RES_err_descr_ptr; +extern const HEXSTRING& fl__GetNAI_p__Identity_defval; +extern HEXSTRING const_fl__GetNAI_p__Identity_defval; +extern const OCTETSTRING& f__NG__Authentication__A17_p__PLMNandAccessTechnologyList_defval; +extern OCTETSTRING const_f__NG__Authentication__A17_p__PLMNandAccessTechnologyList_defval; +extern const HEXSTRING& f__NG__NAS__AuthenticationInit_p__Identity_defval; +extern HEXSTRING const_f__NG__NAS__AuthenticationInit_p__Identity_defval; +extern const NAS__AuthenticationCommon::AuthenticationError__Type& f__NG__NAS__AuthenticationInit_p__AuthenticationError_defval; +extern NAS__AuthenticationCommon::AuthenticationError__Type const_f__NG__NAS__AuthenticationInit_p__AuthenticationError_defval; +extern const NAS__AuthenticationCommon::AuthenticationError__Type& f__NG__EAP__AuthenticationInit_p__AuthenticationError_defval; +extern NAS__AuthenticationCommon::AuthenticationError__Type const_f__NG__EAP__AuthenticationInit_p__AuthenticationError_defval; +extern const OCTETSTRING& f__NG__EAP__ChallengeReq_p__Id_defval; +extern OCTETSTRING const_f__NG__EAP__ChallengeReq_p__Id_defval; +extern const OCTETSTRING& f__NG__EAP__SuccessfulAuthenticationResponse_p__Id_defval; +extern OCTETSTRING const_f__NG__EAP__SuccessfulAuthenticationResponse_p__Id_defval; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NG_NAS_SecurityFunctions.o b/build/Ats_NG_NAS/NG_NAS_SecurityFunctions.o new file mode 100644 index 0000000000000000000000000000000000000000..b4708d70950d1649ea51433b425fc23e8c6f21f4 Binary files /dev/null and b/build/Ats_NG_NAS/NG_NAS_SecurityFunctions.o differ diff --git a/build/Ats_NG_NAS/NG_NAS_Templates.cc b/build/Ats_NG_NAS/NG_NAS_Templates.cc new file mode 100644 index 0000000000000000000000000000000000000000..c7422d98f7636c7b50f3a0164efb5a780ce15345 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_Templates.cc @@ -0,0 +1,7448 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NG_NAS_Templates.hh" + +namespace NG__NAS__Templates { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Prototypes of static conversion functions */ + +static boolean conv_NG__NAS__TypeDefs_XtdRejectedS__NSSAI__List_NG__NAS__TypeDefs_PartialXtdRejectedNSSAIType0_rejectS__NSSAI(NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& p_to_v, const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p_from_v); +static boolean conv_NG__NAS__TypeDefs_PartialXtdRejectedNSSAIType0_rejectS__NSSAI_NG__NAS__TypeDefs_XtdRejectedS__NSSAI__List(NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p_to_v, const NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& p_from_v); +static boolean conv_NAS__CommonTypeDefs_QoSParametersList_NG__NAS__TypeDefs_QoS__Flow_parameterList(NG__NAS__TypeDefs::QoS__Flow_parameterList_template& p_to_v, const NAS__CommonTypeDefs::QoSParametersList_template& p_from_v); +static boolean conv_NG__NAS__TypeDefs_QoS__FlowList_NG__NAS__TypeDefs_QoSFlowDescr_listofFlows(NG__NAS__TypeDefs::QoSFlowDescr_listofFlows_template& p_to_v, const NG__NAS__TypeDefs::QoS__FlowList_template& p_from_v); + +/* Literal string constants */ + +static const unsigned char bs_1_bits[] = { 0 }, +bs_0_bits[] = { 0 }, +bs_5_bits[] = { 0 }, +bs_19_bits[] = { 0 }, +bs_9_bits[] = { 32 }, +bs_10_bits[] = { 16 }, +bs_7_bits[] = { 8 }, +bs_11_bits[] = { 8 }, +bs_12_bits[] = { 40 }, +bs_13_bits[] = { 24 }, +bs_14_bits[] = { 56 }, +bs_6_bits[] = { 4 }, +bs_8_bits[] = { 4 }, +bs_15_bits[] = { 4 }, +bs_16_bits[] = { 36 }, +bs_4_bits[] = { 2 }, +bs_17_bits[] = { 6 }, +bs_18_bits[] = { 14 }, +bs_3_bits[] = { 1 }, +bs_2_bits[] = { 3 }; +static const BITSTRING bs_1(1, bs_1_bits), +bs_0(2, bs_0_bits), +bs_5(3, bs_5_bits), +bs_19(4, bs_19_bits), +bs_9(6, bs_9_bits), +bs_10(6, bs_10_bits), +bs_7(4, bs_7_bits), +bs_11(6, bs_11_bits), +bs_12(6, bs_12_bits), +bs_13(6, bs_13_bits), +bs_14(6, bs_14_bits), +bs_6(3, bs_6_bits), +bs_8(4, bs_8_bits), +bs_15(6, bs_15_bits), +bs_16(6, bs_16_bits), +bs_4(2, bs_4_bits), +bs_17(4, bs_17_bits), +bs_18(4, bs_18_bits), +bs_3(1, bs_3_bits), +bs_2(2, bs_2_bits); +static const unsigned char hs_5_nibbles[] = { 0 }, +hs_4_nibbles[] = { 0, 0, 0, 0 }, +hs_2_nibbles[] = { 8 }, +hs_1_nibbles[] = { 9 }, +hs_0_nibbles[] = { 13 }, +hs_3_nibbles[] = { 14 }; +static const HEXSTRING hs_5(1, hs_5_nibbles), +hs_4(8, hs_4_nibbles), +hs_2(1, hs_2_nibbles), +hs_1(1, hs_1_nibbles), +hs_0(1, hs_0_nibbles), +hs_3(1, hs_3_nibbles); +static const unsigned char os_20_octets[] = { 0 }, +os_3_octets[] = { 0, 0 }, +os_1_octets[] = { 1 }, +os_14_octets[] = { 2 }, +os_6_octets[] = { 3 }, +os_15_octets[] = { 4 }, +os_22_octets[] = { 5 }, +os_30_octets[] = { 6 }, +os_10_octets[] = { 7 }, +os_21_octets[] = { 9 }, +os_18_octets[] = { 16 }, +os_26_octets[] = { 17 }, +os_16_octets[] = { 21 }, +os_5_octets[] = { 33 }, +os_13_octets[] = { 34 }, +os_8_octets[] = { 45 }, +os_25_octets[] = { 48 }, +os_29_octets[] = { 50 }, +os_12_octets[] = { 54 }, +os_19_octets[] = { 80 }, +os_24_octets[] = { 81 }, +os_11_octets[] = { 82 }, +os_0_octets[] = { 83 }, +os_9_octets[] = { 84 }, +os_17_octets[] = { 104 }, +os_31_octets[] = { 110 }, +os_2_octets[] = { 115 }, +os_7_octets[] = { 117 }, +os_23_octets[] = { 121 }, +os_28_octets[] = { 124 }, +os_27_octets[] = { 255 }; +static const OCTETSTRING os_4(0, NULL), +os_20(1, os_20_octets), +os_3(2, os_3_octets), +os_1(1, os_1_octets), +os_14(1, os_14_octets), +os_6(1, os_6_octets), +os_15(1, os_15_octets), +os_22(1, os_22_octets), +os_30(1, os_30_octets), +os_10(1, os_10_octets), +os_21(1, os_21_octets), +os_18(1, os_18_octets), +os_26(1, os_26_octets), +os_16(1, os_16_octets), +os_5(1, os_5_octets), +os_13(1, os_13_octets), +os_8(1, os_8_octets), +os_25(1, os_25_octets), +os_29(1, os_29_octets), +os_12(1, os_12_octets), +os_19(1, os_19_octets), +os_24(1, os_24_octets), +os_11(1, os_11_octets), +os_0(1, os_0_octets), +os_9(1, os_9_octets), +os_17(1, os_17_octets), +os_31(1, os_31_octets), +os_2(1, os_2_octets), +os_7(1, os_7_octets), +os_23(1, os_23_octets), +os_28(1, os_28_octets), +os_27(1, os_27_octets); +static const CHARSTRING cs_0('#'), +cs_2('.'), +cs_4('1'), +cs_5('2'), +cs_6(2, "2a"), +cs_7('3'), +cs_8('4'), +cs_15(2, "4a"), +cs_9('5'), +cs_10('6'), +cs_11('7'), +cs_13(7, "7_Video"), +cs_12(7, "7_Voice"), +cs_14(12, "7_VoiceVideo"), +cs_16('8'), +cs_3(':'), +cs_1(';'); +static const unsigned char module_checksum[] = { 0xca, 0x31, 0x96, 0x8e, 0xe1, 0xb7, 0x24, 0xda, 0xe0, 0x29, 0x2e, 0x0d, 0x6d, 0x13, 0xce, 0xd6 }; + +/* Global variable definitions */ + +Erroneous_descriptor_t* template_cs__NG__NAS__SecurityProtectionInfo_err_descr_ptr = NULL; +BOOLEAN const_cs__NG__NAS__SecurityProtectionInfo_p__ForceMacError_defval; +const BOOLEAN& cs__NG__NAS__SecurityProtectionInfo_p__ForceMacError_defval = const_cs__NG__NAS__SecurityProtectionInfo_p__ForceMacError_defval; +Erroneous_descriptor_t* template_cr__NG__NAS__SecurityProtectionInfo_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__NAS__Request_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__NAS__Ind_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__NAS__RequestWithPiggybacking_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__NAS__DL__PduWithPiggybacking_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__NAS__DL__PduWithoutPiggyback_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__NAS__IndWithPiggybacking_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__AUTHENTICATION__REQUEST_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__AUTHENTICATION__RESPONSE_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__AUTHENTICATION__RESULT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__AUTHENTICATION__FAILURE_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__AUTHENTICATION__REJECT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__REGISTRATION__REQUEST_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__Update_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__REGISTRATION__ACCEPT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__REGISTRATION__COMPLETE_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__SORTransparentContainer_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__SORTransparentContainer__IeiIel_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__SORTransparentContainerValue_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__SORTransparentContainerValue_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__SOR__Header_err_descr_ptr = NULL; +BITSTRING const_cs__NG__SOR__Header_p__Ap_defval; +const BITSTRING& cs__NG__SOR__Header_p__Ap_defval = const_cs__NG__SOR__Header_p__Ap_defval; +Erroneous_descriptor_t* template_cr__NG__SOR__Header_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__REGISTRATION__REJECT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__UL__NAS__TRANSPORT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__DL__NAS__TRANSPORT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__DEREGISTRATION__REQUEST__MO_err_descr_ptr = NULL; +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template template_cs__NG__DEREGISTRATION__ACCEPT; +const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& cs__NG__DEREGISTRATION__ACCEPT = template_cs__NG__DEREGISTRATION__ACCEPT; +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template template_cr__NG__DEREGISTRATION__ACCEPT; +const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& cr__NG__DEREGISTRATION__ACCEPT = template_cr__NG__DEREGISTRATION__ACCEPT; +Erroneous_descriptor_t* template_cs__NG__DEREGISTRATION__REQUEST__MT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__CP__SERVICE__REQUEST_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__SERVICE__REQUEST_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__SERVICE__ACCEPT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__SERVICE__REJECT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__CONFIGURATION__UPDATE__COMMAND_err_descr_ptr = NULL; +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template template_cr__NG__CONFIGURATION__UPDATE__COMPLETE; +const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& cr__NG__CONFIGURATION__UPDATE__COMPLETE = template_cr__NG__CONFIGURATION__UPDATE__COMPLETE; +Erroneous_descriptor_t* template_cs__NG__IDENTITY__REQUEST_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__IDENTITY__RESPONSE_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__SECURITY__MODE__COMMAND_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__SECURITY__MODE__COMPLETE_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__SECURITY__MODE__REJECT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__ESTABLISHMENT__REQUEST_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__ESTABLISHMENT__REJECT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__AUTHENTICATION__COMMAND_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__AUTHENTICATION__COMPLETE_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__AUTHENTICATION__RESULT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__MODIFICATION__REQUEST_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__MODIFICATION__COMMAND_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__MODIFICATION__COMPLETE_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__RELEASE__REQUEST_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__RELEASE__REJECT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__RELEASE__COMMAND_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__RELEASE__COMPLETE_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__GSM__STATUS_err_descr_ptr = NULL; +NG__NAS__TypeDefs::EAP__Message_template template_cs__DummyEAP__Message; +const NG__NAS__TypeDefs::EAP__Message_template& cs__DummyEAP__Message = template_cs__DummyEAP__Message; +Erroneous_descriptor_t* template_cr__EAP__Message_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__EAP__Message_err_descr_ptr = NULL; +NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template template_cs__NG__NetworkFeatureSupport__Def; +const NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template& cs__NG__NetworkFeatureSupport__Def = template_cs__NG__NetworkFeatureSupport__Def; +NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template template_cds__NG__NetworkFeatureSupport__NoN26; +const NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template& cds__NG__NetworkFeatureSupport__NoN26 = template_cds__NG__NetworkFeatureSupport__NoN26; +NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template template_cds__NG__NetworkFeatureSupport__NoImsVoPS__3GPP; +const NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template& cds__NG__NetworkFeatureSupport__NoImsVoPS__3GPP = template_cds__NG__NetworkFeatureSupport__NoImsVoPS__3GPP; +Erroneous_descriptor_t* template_cs__RegistrationResult_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__RegistrationType_err_descr_ptr = NULL; +NG__NAS__TypeDefs::CAGInfoList_template template_cs__EmptyCAGInfoList; +const NG__NAS__TypeDefs::CAGInfoList_template& cs__EmptyCAGInfoList = template_cs__EmptyCAGInfoList; +Erroneous_descriptor_t* template_cr__AuthenticationResponseParameter_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__NonConsecutivePartialTaiList_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__ListNonConsecutivePartialTaiList_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__TAIListNonConsecutive_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__ConsecutivePartialTaiList_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__ListConsecutivePartialTaiList_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__TAIListConsecutive_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PartialTai_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__TAI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__NAS__SecurityAlgorithms_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__CIoTSmallDataContainer_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__ConfigUpdateInd_err_descr_ptr = NULL; +BITSTRING const_cs__ConfigUpdateInd_p__Red_defval; +const BITSTRING& cs__ConfigUpdateInd_p__Red_defval = const_cs__ConfigUpdateInd_p__Red_defval; +BITSTRING const_cs__ConfigUpdateInd_p__Ack_defval; +const BITSTRING& cs__ConfigUpdateInd_p__Ack_defval = const_cs__ConfigUpdateInd_p__Ack_defval; +Erroneous_descriptor_t* template_cs__DNN_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_crs__DeregisterType_err_descr_ptr = NULL; +BITSTRING const_crs__DeregisterType_p__Access_defval; +const BITSTRING& crs__DeregisterType_p__Access_defval = const_crs__DeregisterType_p__Access_defval; +Erroneous_descriptor_t* template_cs__AdditionalSecurityInfo_err_descr_ptr = NULL; +BITSTRING const_cs__AdditionalSecurityInfo_p__Hdp_defval; +const BITSTRING& cs__AdditionalSecurityInfo_p__Hdp_defval = const_cs__AdditionalSecurityInfo_p__Hdp_defval; +Erroneous_descriptor_t* template_cs__NetworkSlicingInd_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__S__NSSAI__WithIEI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__S__NSSAI_err_descr_ptr = NULL; +NG__NAS__TypeDefs::S__NSSAI__Type_template template_cs__S__NSSAI__SST1eMBB__WithIEI; +const NG__NAS__TypeDefs::S__NSSAI__Type_template& cs__S__NSSAI__SST1eMBB__WithIEI = template_cs__S__NSSAI__SST1eMBB__WithIEI; +NG__NAS__TypeDefs::S__NSSAI__LV_template template_cs__S__NSSAI__SST1eMBB; +const NG__NAS__TypeDefs::S__NSSAI__LV_template& cs__S__NSSAI__SST1eMBB = template_cs__S__NSSAI__SST1eMBB; +NG__NAS__TypeDefs::S__NSSAI__LV_template template_cs__S__NSSAI__SST2__URLLC; +const NG__NAS__TypeDefs::S__NSSAI__LV_template& cs__S__NSSAI__SST2__URLLC = template_cs__S__NSSAI__SST2__URLLC; +NG__NAS__TypeDefs::S__NSSAI__LV_template template_cs__S__NSSAI__SST3__MIoT; +const NG__NAS__TypeDefs::S__NSSAI__LV_template& cs__S__NSSAI__SST3__MIoT = template_cs__S__NSSAI__SST3__MIoT; +NG__NAS__TypeDefs::S__NSSAI__LV_template template_cs__S__NSSAI__SST4__V2X; +const NG__NAS__TypeDefs::S__NSSAI__LV_template& cs__S__NSSAI__SST4__V2X = template_cs__S__NSSAI__SST4__V2X; +Erroneous_descriptor_t* template_cs__NSSAI__SST1eMBB_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NSSAI__SSTs_err_descr_ptr = NULL; +NG__NAS__TypeDefs::NSSAI_template template_cs__NSSAI__Allowed__Def; +const NG__NAS__TypeDefs::NSSAI_template& cs__NSSAI__Allowed__Def = template_cs__NSSAI__Allowed__Def; +Erroneous_descriptor_t* template_cs__NSSAI__Def_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__RejectedS__NSSAI_err_descr_ptr = NULL; +BOOLEAN const_f__MatchXtdRejectedNSSAI__WithATCommand_p__AtLeastThisList_defval; +const BOOLEAN& f__MatchXtdRejectedNSSAI__WithATCommand_p__AtLeastThisList_defval = const_f__MatchXtdRejectedNSSAI__WithATCommand_p__AtLeastThisList_defval; +Erroneous_descriptor_t* template_cs__ExtdRejectedNSSAI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PartialXtdRejectedNSSAIType0_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PartialXtdRejectedNSSAIType1_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__XtdRejectedS__NSSAI_err_descr_ptr = NULL; +NG__NAS__TypeDefs::NG__GMM__Cap_template template_cr__NG__GMM__CapAny; +const NG__NAS__TypeDefs::NG__GMM__Cap_template& cr__NG__GMM__CapAny = template_cr__NG__GMM__CapAny; +NG__NAS__TypeDefs::NG__GMM__Cap_template template_cdr__NG__GMM__Cap__RACS; +const NG__NAS__TypeDefs::NG__GMM__Cap_template& cdr__NG__GMM__Cap__RACS = template_cdr__NG__GMM__Cap__RACS; +NG__NAS__TypeDefs::NG__GMM__Cap_template template_cdr__NG__GMM__Cap__S1; +const NG__NAS__TypeDefs::NG__GMM__Cap_template& cdr__NG__GMM__Cap__S1 = template_cdr__NG__GMM__Cap__S1; +NG__NAS__TypeDefs::NG__GMM__Cap_template template_cdr__NG__GMM__Cap__ERNSSAI; +const NG__NAS__TypeDefs::NG__GMM__Cap_template& cdr__NG__GMM__Cap__ERNSSAI = template_cdr__NG__GMM__Cap__ERNSSAI; +NG__NAS__TypeDefs::PayloadContainer_template template_cs__DummyPayloadContainer; +const NG__NAS__TypeDefs::PayloadContainer_template& cs__DummyPayloadContainer = template_cs__DummyPayloadContainer; +Erroneous_descriptor_t* template_cr__PayloadContainer_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PayloadContainerType_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__PayloadContainerType_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__PDU__SessionId_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PDU__SessionId_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__GMM__GSM__Cause_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__ABBA_err_descr_ptr = NULL; +OCTETSTRING const_cs__ABBA_p__Length_defval; +const OCTETSTRING& cs__ABBA_p__Length_defval = const_cs__ABBA_p__Length_defval; +Erroneous_descriptor_t* template_cr__GMM__GSM__Cause_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__PDU__SessionStatusAny_err_descr_ptr = NULL; +OCTETSTRING const_cr__PDU__SessionStatusAny_p__IEI_defval; +const OCTETSTRING& cr__PDU__SessionStatusAny_p__IEI_defval = const_cr__PDU__SessionStatusAny_p__IEI_defval; +Erroneous_descriptor_t* template_cr__PDU__SessionStatus_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__NG__Request__Type_err_descr_ptr = NULL; +NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template template_cr__AlwaysOnRequested; +const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& cr__AlwaysOnRequested = template_cr__AlwaysOnRequested; +NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template template_cs__AlwaysOnAllowed; +const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& cs__AlwaysOnAllowed = template_cs__AlwaysOnAllowed; +NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template template_cs__AlwaysOnNotAllowed; +const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& cs__AlwaysOnNotAllowed = template_cs__AlwaysOnNotAllowed; +Erroneous_descriptor_t* template_crs__AlwaysOn_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__EPSParameter__QoS_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__EPSParameter__TFT_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__OneMappedEPSContext_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__OneMappedEPSContextTwoParams_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__OneMappedEPSBearerContextList_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__TwoMappedEPSBearerContextList_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PDU__SessionType_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cr__PDU__SessionType_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_crs__SSC__Mode_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__QoSParameters_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__QoS__Flow_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__PEIPS__AssistInfo_err_descr_ptr = NULL; +BOOLEAN const_f__BuildDefaultQosFlow_p__InterworkWithEPS_defval; +const BOOLEAN& f__BuildDefaultQosFlow_p__InterworkWithEPS_defval = const_f__BuildDefaultQosFlow_p__InterworkWithEPS_defval; +OCTETSTRING const_f__BuildDefaultQosFlow_p__EPSBearerId_defval; +const OCTETSTRING& f__BuildDefaultQosFlow_p__EPSBearerId_defval = const_f__BuildDefaultQosFlow_p__EPSBearerId_defval; +Erroneous_descriptor_t* template_cs__QoS__Flow1_err_descr_ptr = NULL; +BOOLEAN const_cs__QoS__Flow1_p__InterworkWithEPS_defval; +const BOOLEAN& cs__QoS__Flow1_p__InterworkWithEPS_defval = const_cs__QoS__Flow1_p__InterworkWithEPS_defval; +OCTETSTRING const_cs__QoS__Flow1_p__EPSBearerId_defval; +const OCTETSTRING& cs__QoS__Flow1_p__EPSBearerId_defval = const_cs__QoS__Flow1_p__EPSBearerId_defval; +Erroneous_descriptor_t* template_cs__QoS__Flow2_err_descr_ptr = NULL; +BOOLEAN const_cs__QoS__Flow2_p__InterworkWithEPS_defval; +const BOOLEAN& cs__QoS__Flow2_p__InterworkWithEPS_defval = const_cs__QoS__Flow2_p__InterworkWithEPS_defval; +OCTETSTRING const_cs__QoS__Flow2_p__EPSBearerId_defval; +const OCTETSTRING& cs__QoS__Flow2_p__EPSBearerId_defval = const_cs__QoS__Flow2_p__EPSBearerId_defval; +NG__NAS__TypeDefs::QoS__Flow_template template_cs__QoS__Flow2a; +const NG__NAS__TypeDefs::QoS__Flow_template& cs__QoS__Flow2a = template_cs__QoS__Flow2a; +NG__NAS__TypeDefs::QoS__Flow_template template_cs__QoS__Flow3; +const NG__NAS__TypeDefs::QoS__Flow_template& cs__QoS__Flow3 = template_cs__QoS__Flow3; +NG__NAS__TypeDefs::QoS__Flow_template template_cs__QoS__Flow4; +const NG__NAS__TypeDefs::QoS__Flow_template& cs__QoS__Flow4 = template_cs__QoS__Flow4; +Erroneous_descriptor_t* template_cs__QoS__Flow5_err_descr_ptr = NULL; +BOOLEAN const_cs__QoS__Flow5_p__InterworkWithEPS_defval; +const BOOLEAN& cs__QoS__Flow5_p__InterworkWithEPS_defval = const_cs__QoS__Flow5_p__InterworkWithEPS_defval; +OCTETSTRING const_cs__QoS__Flow5_p__EPSBearerId_defval; +const OCTETSTRING& cs__QoS__Flow5_p__EPSBearerId_defval = const_cs__QoS__Flow5_p__EPSBearerId_defval; +Erroneous_descriptor_t* template_cs__QoS__Flow6_err_descr_ptr = NULL; +BOOLEAN const_cs__QoS__Flow6_p__InterworkWithEPS_defval; +const BOOLEAN& cs__QoS__Flow6_p__InterworkWithEPS_defval = const_cs__QoS__Flow6_p__InterworkWithEPS_defval; +OCTETSTRING const_cs__QoS__Flow6_p__EPSBearerId_defval; +const OCTETSTRING& cs__QoS__Flow6_p__EPSBearerId_defval = const_cs__QoS__Flow6_p__EPSBearerId_defval; +Erroneous_descriptor_t* template_cs__QoSFlowDescr_err_descr_ptr = NULL; +NG__NAS__TypeDefs::QoSFlowDescr_template template_cs__QoSFlowDescr1; +const NG__NAS__TypeDefs::QoSFlowDescr_template& cs__QoSFlowDescr1 = template_cs__QoSFlowDescr1; +NG__NAS__TypeDefs::QoSFlowDescr_template template_cs__QoSFlowDescr2; +const NG__NAS__TypeDefs::QoSFlowDescr_template& cs__QoSFlowDescr2 = template_cs__QoSFlowDescr2; +NG__NAS__TypeDefs::NG__PacketFilterList_template template_cs__PacketFilterList__1MatchAll; +const NG__NAS__TypeDefs::NG__PacketFilterList_template& cs__PacketFilterList__1MatchAll = template_cs__PacketFilterList__1MatchAll; +Erroneous_descriptor_t* template_cs__PacketFilterList__MediaUDP_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__PacketFilter__Type2_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__QoS__Rule_err_descr_ptr = NULL; +BITSTRING const_cs__QoS__Rule_p__OperationCode_defval; +const BITSTRING& cs__QoS__Rule_p__OperationCode_defval = const_cs__QoS__Rule_p__OperationCode_defval; +BITSTRING const_cs__QoS__Rule_p__DQR_defval; +const BITSTRING& cs__QoS__Rule_p__DQR_defval = const_cs__QoS__Rule_p__DQR_defval; +Erroneous_descriptor_t* template_cs__QoS__Rules_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__Session__AMBR_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cds__NG__IMEISV__Request_err_descr_ptr = NULL; +BITSTRING const_cds__NG__IMEISV__Request_p__Value_defval; +const BITSTRING& cds__NG__IMEISV__Request_p__Value_defval = const_cds__NG__IMEISV__Request_p__Value_defval; +Erroneous_descriptor_t* template_cs__AllowedNSSAI_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NSSAI__DELETE__REQUEST_err_descr_ptr = NULL; +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template template_cr__NSSAI__DELETE__RESPONSE; +const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& cr__NSSAI__DELETE__RESPONSE = template_cr__NSSAI__DELETE__RESPONSE; +Erroneous_descriptor_t* template_cs__SET__UAI__REQUEST_err_descr_ptr = NULL; +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template template_cr__SET__UAI__RESPONSE; +const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& cr__SET__UAI__RESPONSE = template_cr__SET__UAI__RESPONSE; +Erroneous_descriptor_t* template_cr__NG__GMM__STATUS_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NSSAI__LV_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NSAG__InfoElement_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NSAG__2Elements_err_descr_ptr = NULL; +INTEGER const_fl__BuildNIDTemplate_p__AssignmentMode_defval; +const INTEGER& fl__BuildNIDTemplate_p__AssignmentMode_defval = const_fl__BuildNIDTemplate_p__AssignmentMode_defval; +Erroneous_descriptor_t* template_cs__NIDBlank_err_descr_ptr = NULL; +Erroneous_descriptor_t* template_cs__NG__NAS__EDRXParams_err_descr_ptr = NULL; +TTCN_Module module_object("NG_NAS_Templates", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NG_NAS_Templates"); + global_scope->add_variable(&cdr__NG__GMM__Cap__ERNSSAI, "cdr_NG_GMM_Cap_ERNSSAI", "NG_GMM_Cap template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cdr__NG__GMM__Cap__RACS, "cdr_NG_GMM_Cap_RACS", "NG_GMM_Cap template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cdr__NG__GMM__Cap__S1, "cdr_NG_GMM_Cap_S1", "NG_GMM_Cap template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cds__NG__NetworkFeatureSupport__NoImsVoPS__3GPP, "cds_NG_NetworkFeatureSupport_NoImsVoPS_3GPP", "NG_NetworkFeatureSupport template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cds__NG__NetworkFeatureSupport__NoN26, "cds_NG_NetworkFeatureSupport_NoN26", "NG_NetworkFeatureSupport template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cr__AlwaysOnRequested, "cr_AlwaysOnRequested", "AlwaysOnPDUSessionInd template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cr__NG__CONFIGURATION__UPDATE__COMPLETE, "cr_NG_CONFIGURATION_UPDATE_COMPLETE", "NG_NAS_UL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&cr__NG__DEREGISTRATION__ACCEPT, "cr_NG_DEREGISTRATION_ACCEPT", "NG_NAS_UL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&cr__NG__GMM__CapAny, "cr_NG_GMM_CapAny", "NG_GMM_Cap template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cr__NSSAI__DELETE__RESPONSE, "cr_NSSAI_DELETE_RESPONSE", "NG_NAS_UL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&cr__SET__UAI__RESPONSE, "cr_SET_UAI_RESPONSE", "NG_NAS_UL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&cs__AlwaysOnAllowed, "cs_AlwaysOnAllowed", "AlwaysOnPDUSessionInd template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__AlwaysOnNotAllowed, "cs_AlwaysOnNotAllowed", "AlwaysOnPDUSessionInd template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__DummyEAP__Message, "cs_DummyEAP_Message", "EAP_Message template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__DummyPayloadContainer, "cs_DummyPayloadContainer", "PayloadContainer template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__EmptyCAGInfoList, "cs_EmptyCAGInfoList", "CAGInfoList template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__NG__DEREGISTRATION__ACCEPT, "cs_NG_DEREGISTRATION_ACCEPT", "NG_NAS_DL_Message_Type template", "NG_NAS_Templates", NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); + global_scope->add_variable(&cs__NG__NetworkFeatureSupport__Def, "cs_NG_NetworkFeatureSupport_Def", "NG_NetworkFeatureSupport template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__NSSAI__Allowed__Def, "cs_NSSAI_Allowed_Def", "NSSAI template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__PacketFilterList__1MatchAll, "cs_PacketFilterList_1MatchAll", "NG_PacketFilterList template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__QoSFlowDescr1, "cs_QoSFlowDescr1", "QoSFlowDescr template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__QoSFlowDescr2, "cs_QoSFlowDescr2", "QoSFlowDescr template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__QoS__Flow2a, "cs_QoS_Flow2a", "QoS_Flow template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__QoS__Flow3, "cs_QoS_Flow3", "QoS_Flow template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__QoS__Flow4, "cs_QoS_Flow4", "QoS_Flow template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__S__NSSAI__SST1eMBB, "cs_S_NSSAI_SST1eMBB", "S_NSSAI_LV template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__S__NSSAI__SST1eMBB__WithIEI, "cs_S_NSSAI_SST1eMBB_WithIEI", "S_NSSAI_Type template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__S__NSSAI__SST2__URLLC, "cs_S_NSSAI_SST2_URLLC", "S_NSSAI_LV template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__S__NSSAI__SST3__MIoT, "cs_S_NSSAI_SST3_MIoT", "S_NSSAI_LV template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&cs__S__NSSAI__SST4__V2X, "cs_S_NSSAI_SST4_V2X", "S_NSSAI_LV template", "NG_NAS_Templates", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::cdr__AuthFailParamGSM__Any, "cdr_AuthFailParamGSM_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cdr__MS__NetworkCapAss__lv, "cdr_MS_NetworkCapAss_lv", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__1__tlv, "cds_508_EPS_QoS_Default_1_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__508__EPS__QoS__Default__3, "cds_508_EPS_QoS_Default_3", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI, "cds_EPS_QoS_Def_nonGBR_QCI", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__EPS__QoS__Def__nonGBR__QCI__tlv, "cds_EPS_QoS_Def_nonGBR_QCI_tlv", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__2, "cds_QoS_Negotiated_2", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__3, "cds_QoS_Negotiated_3", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cds__QoS__Negotiated__8, "cds_QoS_Negotiated_8", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AccessPointName__Any, "cr_AccessPointName_Any", "AccessPointName template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AdditionalUpdateTypeAny, "cr_AdditionalUpdateTypeAny", "AdditionalUpdateType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__AuthFailParam__Any, "cr_AuthFailParam_Any", "AuthenticationFailureParameter template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecAny, "cr_CodecAny", "Codec template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__CodecListAny, "cr_CodecListAny", "CodecList template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__DetachTypeOnSwitchOff, "cr_DetachTypeOnSwitchOff", "DetachType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__EDGE__Struct__Any, "cr_EDGE_Struct_Any", "EDGE_Struct template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdDRXParamsAny, "cr_ExtdDRXParamsAny", "ExtdDRXParams template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ExtdPCOAny, "cr_ExtdPCOAny", "ExtdProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__Extd__EPS__QOS__Any, "cr_Extd_EPS_QOS_Any", "Extd_EPS_QOS template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any, "cr_LAI_Any", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__LAI__Any__v, "cr_LAI_Any_v", "LocAreaId template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MSCLSMK3__Any, "cr_MSCLSMK3_Any", "MS_Clsmk3 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__Clsmk2__Any, "cr_MS_Clsmk2_Any", "MS_Clsmk2 template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__MeasCapability__Any, "cr_MS_MeasCapability_Any", "MS_MeasCapability template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__MS__NetworkCap__Any, "cr_MS_NetworkCap_Any", "MS_NetworkCap template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__NBIFOMContainerAny, "cr_NBIFOMContainerAny", "NBIFOMContainer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__Signature2Any, "cr_PTMSI_Signature2Any", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__PTMSI__SignatureAny, "cr_PTMSI_SignatureAny", "PTMSI_Signature template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__ProtocolConfigOptionsAny, "cr_ProtocolConfigOptionsAny", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__UEStatus__Any, "cr_UEStatus_Any", "UE_Status template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__VoiceDomainPref__Any, "cr_VoiceDomainPref_Any", "VoiceDomainPref template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WUSAssistInfoAny, "cr_WUSAssistInfoAny", "WUSAssistInfo template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cr__WusInfoTypeAny, "cr_WusInfoTypeAny", "WusInfoType template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__508__EPS__QoS__Default__1, "cs_508_EPS_QoS_Default_1", "EPS_QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__GprsTimer__v__deact, "cs_GprsTimer_v_deact", "GPRS_Timer template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMP, "cs_PktFilterCompProtocolIdNextHeaderICMP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderICMPv6, "cs_PktFilterCompProtocolIdNextHeaderICMPv6", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderIPSec, "cs_PktFilterCompProtocolIdNextHeaderIPSec", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderTCP, "cs_PktFilterCompProtocolIdNextHeaderTCP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFilterCompProtocolIdNextHeaderUDP, "cs_PktFilterCompProtocolIdNextHeaderUDP", "PacketFilterComponent template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__PktFlowId, "cs_PktFlowId", "PacketFlowIdentifier template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__ProtocolConfigOptions__PPP, "cs_ProtocolConfigOptions_PPP", "ProtocolConfigOptions template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::cs__QoS__Negotiated__1, "cs_QoS_Negotiated_1", "QualityOfService template", "NAS_CommonTemplates", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1, "tsc_APN1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN1__String, "tsc_APN1_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2, "tsc_APN2", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN2__String, "tsc_APN2_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3, "tsc_APN3", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__APN3__String, "tsc_APN3_String", "charstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__MAC__Failure, "tsc_Cause_MAC_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__NoNetworkSlices__Available, "tsc_Cause_NoNetworkSlices_Available", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowed, "tsc_Cause_PLMN_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__PLMN__NotAllowedToOperateAtPresentUELocation, "tsc_Cause_PLMN_NotAllowedToOperateAtPresentUELocation", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__Roaming__NotAllowed, "tsc_Cause_Roaming_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__SQN__Failure, "tsc_Cause_SQN_Failure", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__TA__NotAllowed, "tsc_Cause_TA_NotAllowed", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Cause__nonEPS__AuthUnacceptable, "tsc_Cause_nonEPS_AuthUnacceptable", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__ConsecutiveTacs, "tsc_ConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalMe, "tsc_EmmCause_IllegalMe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__IllegalUe, "tsc_EmmCause_IllegalUe", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__EmmCause__SemanticallyIncorrect, "tsc_EmmCause_SemanticallyIncorrect", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__1min, "tsc_Gprs3TimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Gprs3TimerUnit__30sec, "tsc_Gprs3TimerUnit_30sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__1min, "tsc_GprsTimerUnit_1min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__2sec, "tsc_GprsTimerUnit_2sec", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__6min, "tsc_GprsTimerUnit_6min", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__GprsTimerUnit__deact, "tsc_GprsTimerUnit_deact", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IMEISV__Requested, "tsc_IMEISV_Requested", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv4Mask, "tsc_IPv4Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IPv6Mask, "tsc_IPv6Mask", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__GUTI, "tsc_IdType_GUTI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI, "tsc_IdType_IMEI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEISV, "tsc_IdType_IMEISV", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMEI__24301, "tsc_IdType_IMEI_24301", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__IMSI, "tsc_IdType_IMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__IdType__TMSI, "tsc_IdType_TMSI", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__MultiplePlmns, "tsc_MultiplePlmns", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__MappedSecurityContext, "tsc_NasKsi_MappedSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NativeSecurityContext, "tsc_NasKsi_NativeSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NasKsi__NoKey, "tsc_NasKsi_NoKey", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NoValidTmsi, "tsc_NoValidTmsi", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__NonConsecutiveTacs, "tsc_NonConsecutiveTacs", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6, "tsc_PCO_Id_DSMIPv6", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PCO__Id__DSMIPv6__IPv4, "tsc_PCO_Id_DSMIPv6_IPv4", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__1, "tsc_PTI_1", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PTI__Unassigned, "tsc_PTI_Unassigned", "octetstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PayloadContainerESMMsg, "tsc_PayloadContainerESMMsg", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4, "tsc_PdnType_IPv4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv4v6, "tsc_PdnType_IPv4v6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__PdnType__IPv6, "tsc_PdnType_IPv6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected, "tsc_SHT_IntegrityProtected", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered, "tsc_SHT_IntegrityProtected_Ciphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__Ciphered__NewSecurityContext, "tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__NewSecurityContext, "tsc_SHT_IntegrityProtected_NewSecurityContext", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__IntegrityProtected__PartiallyCiphered, "tsc_SHT_IntegrityProtected_PartiallyCiphered", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SHT__NoSecurityProtection, "tsc_SHT_NoSecurityProtection", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare1, "tsc_Spare1", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare2, "tsc_Spare2", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare3, "tsc_Spare3", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare4, "tsc_Spare4", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare5, "tsc_Spare5", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare6, "tsc_Spare6", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__Spare7, "tsc_Spare7", "bitstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTemplates::tsc__SpareHalfOctet, "tsc_SpareHalfOctet", "hexstring", "NAS_CommonTemplates", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::cr__NG__MobileIdentityNoIdentity, "cr_NG_MobileIdentityNoIdentity", "NG_MobileIdentity template", "NG_NAS_Common", NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); + global_scope->add_variable(&NG__NAS__Common::tsc__DeleteNSSAI__AllowedNSSAI, "tsc_DeleteNSSAI_AllowedNSSAI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__DeleteNSSAI__ConfiguredNSSAI, "tsc_DeleteNSSAI_ConfiguredNSSAI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__DeleteNSSAI__DefaultConfiguredNSSAI, "tsc_DeleteNSSAI_DefaultConfiguredNSSAI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__EPD__GMM, "tsc_EPD_GMM", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__EPD__GSM, "tsc_EPD_GSM", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__GUTI, "tsc_IdType_NG_GUTI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__IMEI, "tsc_IdType_NG_IMEI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__IMEISV, "tsc_IdType_NG_IMEISV", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__Noidentity, "tsc_IdType_NG_Noidentity", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__STMSI, "tsc_IdType_NG_STMSI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__IdType__NG__SUCI, "tsc_IdType_NG_SUCI", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationFailure, "tsc_MT_NG_AuthenticationFailure", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationReject, "tsc_MT_NG_AuthenticationReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationRequest, "tsc_MT_NG_AuthenticationRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationResponse, "tsc_MT_NG_AuthenticationResponse", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__AuthenticationResult, "tsc_MT_NG_AuthenticationResult", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__CP__Service__Request, "tsc_MT_NG_CP_Service_Request", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ConfigurationUpdateCommand, "tsc_MT_NG_ConfigurationUpdateCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ConfigurationUpdateComplete, "tsc_MT_NG_ConfigurationUpdateComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DL__NASTransport, "tsc_MT_NG_DL_NASTransport", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DeregistrationAccept__MO, "tsc_MT_NG_DeregistrationAccept_MO", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DeregistrationAccept__MT, "tsc_MT_NG_DeregistrationAccept_MT", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DeregistrationRequest__MO, "tsc_MT_NG_DeregistrationRequest_MO", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__DeregistrationRequest__MT, "tsc_MT_NG_DeregistrationRequest_MT", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__GMM__Status, "tsc_MT_NG_GMM_Status", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__GSM__Status, "tsc_MT_NG_GSM_Status", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__IdentityRequest, "tsc_MT_NG_IdentityRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__IdentityResponse, "tsc_MT_NG_IdentityResponse", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__NetworkSliceSpecificAuthenticationCommand, "tsc_MT_NG_NetworkSliceSpecificAuthenticationCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__NetworkSliceSpecificAuthenticationComplete, "tsc_MT_NG_NetworkSliceSpecificAuthenticationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__NetworkSliceSpecificAuthenticationResult, "tsc_MT_NG_NetworkSliceSpecificAuthenticationResult", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__Notification, "tsc_MT_NG_Notification", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__NotificationResponse, "tsc_MT_NG_NotificationResponse", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionAuthenticationCommand, "tsc_MT_NG_PDUSessionAuthenticationCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionAuthenticationComplete, "tsc_MT_NG_PDUSessionAuthenticationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionAuthenticationResult, "tsc_MT_NG_PDUSessionAuthenticationResult", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionEstablishmentAccept, "tsc_MT_NG_PDUSessionEstablishmentAccept", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionEstablishmentReject, "tsc_MT_NG_PDUSessionEstablishmentReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionEstablishmentRequest, "tsc_MT_NG_PDUSessionEstablishmentRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationCommand, "tsc_MT_NG_PDUSessionModificationCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationCommandReject, "tsc_MT_NG_PDUSessionModificationCommandReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationComplete, "tsc_MT_NG_PDUSessionModificationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationReject, "tsc_MT_NG_PDUSessionModificationReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionModificationRequest, "tsc_MT_NG_PDUSessionModificationRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseCommand, "tsc_MT_NG_PDUSessionReleaseCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseComplete, "tsc_MT_NG_PDUSessionReleaseComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseReject, "tsc_MT_NG_PDUSessionReleaseReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseRequest, "tsc_MT_NG_PDUSessionReleaseRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__RegistrationAccept, "tsc_MT_NG_RegistrationAccept", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__RegistrationComplete, "tsc_MT_NG_RegistrationComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__RegistrationReject, "tsc_MT_NG_RegistrationReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__RegistrationRequest, "tsc_MT_NG_RegistrationRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__SecurityModeCommand, "tsc_MT_NG_SecurityModeCommand", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__SecurityModeComplete, "tsc_MT_NG_SecurityModeComplete", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__SecurityModeReject, "tsc_MT_NG_SecurityModeReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ServiceAccept, "tsc_MT_NG_ServiceAccept", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ServiceReject, "tsc_MT_NG_ServiceReject", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__ServiceRequest, "tsc_MT_NG_ServiceRequest", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MT__NG__UL__NASTransport, "tsc_MT_NG_UL_NASTransport", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MsgType__NSSAI__DeleteReq, "tsc_MsgType_NSSAI_DeleteReq", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MsgType__NSSAI__DeleteResp, "tsc_MsgType_NSSAI_DeleteResp", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MsgType__SetUAIReq, "tsc_MsgType_SetUAIReq", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__MsgType__SetUAIResp, "tsc_MsgType_SetUAIResp", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegResult__3GPP, "tsc_NG_RegResult_3GPP", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegResult__Both, "tsc_NG_RegResult_Both", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegResult__Non3GPP, "tsc_NG_RegResult_Non3GPP", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationEmergency, "tsc_NG_RegistrationEmergency", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationInitial, "tsc_NG_RegistrationInitial", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationMobility, "tsc_NG_RegistrationMobility", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationPeriodic, "tsc_NG_RegistrationPeriodic", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__RegistrationSNPN, "tsc_NG_RegistrationSNPN", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NG__TMSI1, "tsc_NG_TMSI1", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NR5GCCause__Congestion, "tsc_NR5GCCause_Congestion", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NR5GCCause__InvalidPDUSessionIdentity, "tsc_NR5GCCause_InvalidPDUSessionIdentity", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NR5GCCause__NoSuitableCellsInTA, "tsc_NR5GCCause_NoSuitableCellsInTA", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__NR5GCCause__ServNetNotAuthorized, "tsc_NR5GCCause_ServNetNotAuthorized", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerCIoTUserData, "tsc_PayloadContainerCIoTUserData", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerLPPMsg, "tsc_PayloadContainerLPPMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerSMSMsg, "tsc_PayloadContainerSMSMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerSORMsg, "tsc_PayloadContainerSORMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__PayloadContainerUEPolicyMsg, "tsc_PayloadContainerUEPolicyMsg", "bitstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__5QI, "tsc_QoSFlowParameter_5QI", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__AvWindow, "tsc_QoSFlowParameter_AvWindow", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__EPSBearerId, "tsc_QoSFlowParameter_EPSBearerId", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__GFBR__DL, "tsc_QoSFlowParameter_GFBR_DL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__GFBR__UL, "tsc_QoSFlowParameter_GFBR_UL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__MFBR__DL, "tsc_QoSFlowParameter_MFBR_DL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NG__NAS__Common::tsc__QoSFlowParameter__MFBR__UL, "tsc_QoSFlowParameter_MFBR_UL", "octetstring", "NG_NAS_Common", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::cr__SET__UL__MESSAGE__RESPONSE, "cr_SET_UL_MESSAGE_RESPONSE", "SET_UL_MESSAGE_RESPONSE template", "Common4G5G_LoopBack", Common4G5G__LoopBack::print_var_Common4G5G_LoopBack); + global_scope->add_variable(&Common4G5G__LoopBack::cs__UE__TestLoopModeA__NR__LB__Setup__NoScaling, "cs_UE_TestLoopModeA_NR_LB_Setup_NoScaling", "UE_TestLoopModeA_NR_LB_Setup_Type template", "Common4G5G_LoopBack", Common4G5G__LoopBack::print_var_Common4G5G_LoopBack); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__Gen__SkipIndicator, "tsc_Gen_SkipIndicator", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__LB__ProtocolDiscriminator, "tsc_LB_ProtocolDiscriminator", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__LoopModeE__Reception, "tsc_LoopModeE_Reception", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__LoopModeE__Transmission, "tsc_LoopModeE_Transmission", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__LoopModeE__V2x, "tsc_LoopModeE_V2x", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__Activate__TestMode, "tsc_MsgType_Activate_TestMode", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__Activate__TestModeCmpl, "tsc_MsgType_Activate_TestModeCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__CloseUE__TestLoop, "tsc_MsgType_CloseUE_TestLoop", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__CloseUE__TestLoopCmpl, "tsc_MsgType_CloseUE_TestLoopCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__Deactivate__TestMode, "tsc_MsgType_Deactivate_TestMode", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__Deactivate__TestModeCmpl, "tsc_MsgType_Deactivate_TestModeCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__OpenUE__TestLoop, "tsc_MsgType_OpenUE_TestLoop", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__OpenUE__TestLoopCmpl, "tsc_MsgType_OpenUE_TestLoopCmpl", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__SetULMsgReq, "tsc_MsgType_SetULMsgReq", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__MsgType__SetULMsgResp, "tsc_MsgType_SetULMsgResp", "bitstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__UE__TestLoopMode__TypeA, "tsc_UE_TestLoopMode_TypeA", "octetstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__UE__TestLoopMode__TypeB, "tsc_UE_TestLoopMode_TypeB", "octetstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&Common4G5G__LoopBack::tsc__UE__TestLoopMode__TypeE, "tsc_UE_TestLoopMode_TypeE", "octetstring", "Common4G5G_LoopBack", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoReply, "tsc_ICMP_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMP__Type__EchoRequest, "tsc_ICMP_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoReply, "tsc_ICMPv6_Type_EchoReply", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__ICMPv6__Type__EchoRequest, "tsc_ICMPv6_Type_EchoRequest", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M1, "tsc_IMS_MediaPort_M1", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M2, "tsc_IMS_MediaPort_M2", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__MediaPort__M3, "tsc_IMS_MediaPort_M3", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IMS__PortNumber__5060, "tsc_IMS_PortNumber_5060", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__AnyData, "tsc_IP_AnyData", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMP, "tsc_IP_Protocol_ICMP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__ICMPv6, "tsc_IP_Protocol_ICMPv6", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__IPSec, "tsc_IP_Protocol_IPSec", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__TCP, "tsc_IP_Protocol_TCP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__IP__Protocol__UDP, "tsc_IP_Protocol_UDP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__MulticastPrefix__FF02, "tsc_MulticastPrefix_FF02", "octetstring", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PDN1__AddressInfo, "tsc_PDN1_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN2__AddressInfo, "tsc_PDN2_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN3__AddressInfo, "tsc_PDN3_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN4__AddressInfo, "tsc_PDN4_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN5__AddressInfo, "tsc_PDN5_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN6__AddressInfo, "tsc_PDN6_AddressInfo", "PDN_AddressInfo_Type", "CommonIP", CommonIP::print_var_CommonIP); + global_scope->add_variable(&CommonIP::tsc__PDN__AddressInfo, "tsc_PDN_AddressInfo", "PDN_AddressInfo_Type[6]", "CommonIP", TTCN3_Debugger::print_value_array); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTP, "tsc_PortNumberHTTP", "integer", "CommonIP", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonIP::tsc__PortNumberHTTPS, "tsc_PortNumberHTTPS", "integer", "CommonIP", TTCN3_Debugger::print_base_var); +} + +/* Bodies of functions, altsteps and testcases */ + +NG__NAS__MsgContainers::NG__NAS__SecurityProtectionInfoDL__Type_template cs__NG__NAS__SecurityProtectionInfo(const BITSTRING& p__Status, const BOOLEAN& p__ForceMacError) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 28, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NAS_SecurityProtectionInfo"); +charstring_list param_names; +param_names[0] = "p_Status"; +param_names[1] = "p_ForceMacError"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NAS_SecurityProtectionInfo", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Status, "p_Status", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ForceMacError, "p_ForceMacError", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__SecurityProtectionInfoDL__Type_template ret_val; +ret_val.Status() = p__Status; +ret_val.ForceMacError() = p__ForceMacError; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NAS__SecurityProtectionInfo_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__SecurityProtectionInfoUL__Type_template cr__NG__NAS__SecurityProtectionInfo(const BITSTRING_template& p__ExpectedStatus) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 35, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_NAS_SecurityProtectionInfo"); +charstring_list param_names; +param_names[0] = "p_ExpectedStatus"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_NAS_SecurityProtectionInfo", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ExpectedStatus, "p_ExpectedStatus", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__SecurityProtectionInfoUL__Type_template ret_val; +ret_val.Status() = p__ExpectedStatus; +ret_val.NasCount() = ANY_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__NAS__SecurityProtectionInfo_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__MSG__Request__Type_template cs__NG__NAS__Request(const BITSTRING& p__SecurityStatus, const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& p__Msg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 43, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NAS_Request"); +charstring_list param_names; +param_names[0] = "p_SecurityStatus"; +param_names[1] = "p_Msg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NAS_Request", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__SecurityStatus, "p_SecurityStatus", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Msg, "p_Msg", "NG_NAS_DL_Message_Type template", NULL, NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__MSG__Request__Type_template ret_val; +ret_val.SecurityProtection() = cs__NG__NAS__SecurityProtectionInfo(p__SecurityStatus, cs__NG__NAS__SecurityProtectionInfo_p__ForceMacError_defval); +{ +NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template& tmp_0 = ret_val.Pdu(); +tmp_0.Msg() = p__Msg; +tmp_0.PiggybackedPduList() = OMIT_VALUE; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NAS__Request_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__MSG__Indication__Type_template cr__NG__NAS__Ind(const BITSTRING_template& p__ExpectedSecurityStatus, const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& p__Msg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 54, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_NAS_Ind"); +charstring_list param_names; +param_names[0] = "p_ExpectedSecurityStatus"; +param_names[1] = "p_Msg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_NAS_Ind", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ExpectedSecurityStatus, "p_ExpectedSecurityStatus", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Msg, "p_Msg", "NG_NAS_UL_Message_Type template", NULL, NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__MSG__Indication__Type_template ret_val; +ret_val.SecurityProtection() = cr__NG__NAS__SecurityProtectionInfo(p__ExpectedSecurityStatus); +{ +NG__NAS__MsgContainers::NG__NAS__UL__Pdu__Type_template& tmp_1 = ret_val.Pdu(); +tmp_1.Msg() = p__Msg; +tmp_1.PiggybackedPduList() = OMIT_VALUE; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__NAS__Ind_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__MSG__Request__Type_template cs__NG__NAS__RequestWithPiggybacking(const BITSTRING& p__SecurityStatus, const NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template& p__PiggyBackList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 64, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NAS_RequestWithPiggybacking"); +charstring_list param_names; +param_names[0] = "p_SecurityStatus"; +param_names[1] = "p_PiggyBackList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NAS_RequestWithPiggybacking", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__SecurityStatus, "p_SecurityStatus", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PiggyBackList, "p_PiggyBackList", "NG_NAS_DL_Pdu_Type template", NULL, NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__MSG__Request__Type_template ret_val; +ret_val.SecurityProtection() = cs__NG__NAS__SecurityProtectionInfo(p__SecurityStatus, cs__NG__NAS__SecurityProtectionInfo_p__ForceMacError_defval); +ret_val.Pdu() = p__PiggyBackList; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NAS__RequestWithPiggybacking_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template cs__NG__NAS__DL__PduWithPiggybacking(const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& p__GmmMsg, const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& p__PiggyBackedMsg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 71, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NAS_DL_PduWithPiggybacking"); +charstring_list param_names; +param_names[0] = "p_GmmMsg"; +param_names[1] = "p_PiggyBackedMsg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NAS_DL_PduWithPiggybacking", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__GmmMsg, "p_GmmMsg", "NG_NAS_DL_Message_Type template", NULL, NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); +debug_scope.add_variable(&p__PiggyBackedMsg, "p_PiggyBackedMsg", "NG_NAS_DL_Message_Type template", NULL, NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template ret_val; +ret_val.Msg() = p__GmmMsg; +{ +NG__NAS__MsgContainers::NG__NAS__DL__PduList__Type_template& tmp_2 = ret_val.PiggybackedPduList(); +tmp_2.set_size(1); +{ +NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template& tmp_3 = tmp_2[0]; +tmp_3.Msg() = p__PiggyBackedMsg; +tmp_3.PiggybackedPduList() = OMIT_VALUE; +} +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NAS__DL__PduWithPiggybacking_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template cs__NG__NAS__DL__PduWithoutPiggyback(const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& p__GmmMsg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 83, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NAS_DL_PduWithoutPiggyback"); +charstring_list param_names; +param_names[0] = "p_GmmMsg"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NAS_DL_PduWithoutPiggyback", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__GmmMsg, "p_GmmMsg", "NG_NAS_DL_Message_Type template", NULL, NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template ret_val; +ret_val.Msg() = p__GmmMsg; +ret_val.PiggybackedPduList() = OMIT_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NAS__DL__PduWithoutPiggyback_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__MSG__Indication__Type_template cr__NG__NAS__IndWithPiggybacking(const BITSTRING_template& p__ExpectedSecurityStatus, const NG__NAS__MsgContainers::NG__NAS__UL__Pdu__Type_template& p__PiggyBackList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 89, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_NAS_IndWithPiggybacking"); +charstring_list param_names; +param_names[0] = "p_ExpectedSecurityStatus"; +param_names[1] = "p_PiggyBackList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_NAS_IndWithPiggybacking", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ExpectedSecurityStatus, "p_ExpectedSecurityStatus", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PiggyBackList, "p_PiggyBackList", "NG_NAS_UL_Pdu_Type template", NULL, NG__NAS__MsgContainers::print_var_NG_NAS_MsgContainers); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__MSG__Indication__Type_template ret_val; +ret_val.SecurityProtection() = cr__NG__NAS__SecurityProtectionInfo(p__ExpectedSecurityStatus); +ret_val.Pdu() = p__PiggyBackList; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__NAS__IndWithPiggybacking_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__AUTHENTICATION__REQUEST(const BITSTRING& p__KeySetId, const NG__NAS__TypeDefs::ABBA_template& p__ABBA, const NAS__CommonTypeDefs::RAND_template& p__RAND, const NAS__CommonTypeDefs::AUTN_template& p__AUTN, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 100, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_AUTHENTICATION_REQUEST"); +charstring_list param_names; +param_names[0] = "p_KeySetId"; +param_names[1] = "p_ABBA"; +param_names[2] = "p_RAND"; +param_names[3] = "p_AUTN"; +param_names[4] = "p_EAP"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_AUTHENTICATION_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__KeySetId, "p_KeySetId", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ABBA, "p_ABBA", "ABBA template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RAND, "p_RAND", "RAND template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__AUTN, "p_AUTN", "AUTN template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__AUTHENTICATION__REQUEST_template& tmp_4 = ret_val.authentication__Request(); +tmp_4.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_4.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_4.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_4.messageType() = NG__NAS__Common::tsc__MT__NG__AuthenticationRequest; +tmp_4.spareHalfOctet2() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_4.ngNasKeySetId() = NAS__CommonTemplates::cs__NAS__KeySetIdentifier__lv(p__KeySetId, NAS__CommonTemplates::tsc__NasKsi__NativeSecurityContext); +tmp_4.abba() = p__ABBA; +tmp_4.rand() = p__RAND; +tmp_4.autn() = p__AUTN; +tmp_4.eapMessage() = p__EAP; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__AUTHENTICATION__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__AUTHENTICATION__RESPONSE(const NAS__CommonTypeDefs::AuthenticationResponseParameter_template& p__Res, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 121, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_AUTHENTICATION_RESPONSE"); +charstring_list param_names; +param_names[0] = "p_Res"; +param_names[1] = "p_EAP"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_AUTHENTICATION_RESPONSE", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Res, "p_Res", "AuthenticationResponseParameter template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESPONSE_template& tmp_5 = ret_val.authentication__Response(); +tmp_5.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_5.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_5.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_5.messageType() = NG__NAS__Common::tsc__MT__NG__AuthenticationResponse; +tmp_5.authResponseParam() = p__Res; +tmp_5.eapMessage() = p__EAP; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__AUTHENTICATION__RESPONSE_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__AUTHENTICATION__RESULT(const BITSTRING& p__KeySetId, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::ABBA_template& p__ABBA) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 135, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_AUTHENTICATION_RESULT"); +charstring_list param_names; +param_names[0] = "p_KeySetId"; +param_names[1] = "p_EAP"; +param_names[2] = "p_ABBA"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_AUTHENTICATION_RESULT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__KeySetId, "p_KeySetId", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ABBA, "p_ABBA", "ABBA template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__AUTHENTICATION__RESULT_template& tmp_6 = ret_val.authentication__Result(); +tmp_6.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_6.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_6.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_6.messageType() = NG__NAS__Common::tsc__MT__NG__AuthenticationResult; +tmp_6.spareHalfOctet2() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_6.ngNasKeySetId() = NAS__CommonTemplates::cs__NAS__KeySetIdentifier__lv(p__KeySetId, NAS__CommonTemplates::tsc__NasKsi__NativeSecurityContext); +tmp_6.eapMessage() = p__EAP; +tmp_6.abba() = p__ABBA; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__AUTHENTICATION__RESULT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__AUTHENTICATION__FAILURE(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& p__AuthFailParam) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 152, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_AUTHENTICATION_FAILURE"); +charstring_list param_names; +param_names[0] = "p_Cause"; +param_names[1] = "p_AuthFailParam"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_AUTHENTICATION_FAILURE", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AuthFailParam, "p_AuthFailParam", "AuthenticationFailureParameter template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__AUTHENTICATION__FAILURE_template& tmp_7 = ret_val.authentication__Failure(); +tmp_7.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_7.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_7.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_7.messageType() = NG__NAS__Common::tsc__MT__NG__AuthenticationFailure; +tmp_7.gmmCause() = p__Cause; +tmp_7.authFailureParam() = p__AuthFailParam; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__AUTHENTICATION__FAILURE_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__AUTHENTICATION__REJECT(const NG__NAS__TypeDefs::EAP__Message_template& p__EAP) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 166, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_AUTHENTICATION_REJECT"); +charstring_list param_names; +param_names[0] = "p_EAP"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_AUTHENTICATION_REJECT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__AUTHENTICATION__REJECT_template& tmp_8 = ret_val.authentication__Reject(); +tmp_8.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_8.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_8.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_8.messageType() = NG__NAS__Common::tsc__MT__NG__AuthenticationReject; +tmp_8.eapMessage() = p__EAP; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__AUTHENTICATION__REJECT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__REGISTRATION__REQUEST(const NG__NAS__TypeDefs::RegistrationType_template& p__RegistrationType, const BITSTRING_template& p__KeySetId, const BITSTRING_template& p__Tsc, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__MobileId, const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& p__NonCurrentKSI, const NG__NAS__TypeDefs::NG__GMM__Cap_template& p__GMM__Cap, const NG__NAS__TypeDefs::NG__UE__SecurityCapability_template& p__UESecurityCap, const NG__NAS__TypeDefs::NSSAI_template& p__ReqNSSAI, const NG__NAS__TypeDefs::NG__TrackingAreaId_template& p__TAI, const NAS__CommonTypeDefs::UE__NetworkCap_template& p__UE__NetworkCap, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__ULDataStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NG__NAS__TypeDefs::MICO__Ind_template& p__MICO__Ind, const NAS__CommonTypeDefs::UE__Status_template& p__UE__Status, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__AddGUTI, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__AllowedPDU__SessionStatus, const NG__NAS__TypeDefs::UE__UsageSetting_template& p__UE__UsageSetting, const NAS__CommonTypeDefs::DRXParamCommon_template& p__DRXparam, const NG__NAS__TypeDefs::EPS__MessageContainer_template& p__EPSMsg, const NG__NAS__TypeDefs::LADN__Ind_template& p__LADN__Ind, const NG__NAS__TypeDefs::PayloadContainerType_template& p__ContainerType, const NG__NAS__TypeDefs::PayloadContainer_template& p__Payload, const NG__NAS__TypeDefs::NetworkSlicingInd_template& p__NetworkSlicingInd, const NG__NAS__TypeDefs::NG__UpdateType_template& p__NG__UpdateType, const NAS__CommonTypeDefs::MS__Clsmk2_template& p__MS__Clsmk2, const NAS__CommonTypeDefs::CodecList_template& p__SupportedCodecs, const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& p__EPS__BearerContextStatus, const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& p__Msg, const NAS__CommonTypeDefs::ExtdDRXParams_template& p__ExtdDRXParams, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3324, const NAS__CommonTypeDefs::UERadioCapId_template& p__UERadioCapId, const NG__NAS__TypeDefs::MappedNSSAI_template& p__MappedNSSAI, const NG__NAS__TypeDefs::AddInfoRequest_template& p__AddInfoRequest, const NAS__CommonTypeDefs::WUSAssistInfo_template& p__WUSAssistInfo, const NG__NAS__TypeDefs::N5GCInd_template& p__N5GCInd, const NAS__CommonTypeDefs::DRXParamCommon_template& p__NB__N1ModeDRXParams, const NAS__CommonTypeDefs::UE__RequestType_template& p__UeRequestType, const NG__NAS__TypeDefs::NG__PagingRestriction_template& p__PagingRestrict, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::NID_template& p__NId, const NAS__CommonTypeDefs::PLMN__IdIE_template& p__MSPLMNwDisasterCondition, const NG__NAS__TypeDefs::PEIPS__AssistInfo_template& p__RequestedPEIPS__AssistInfo, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3512) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 178, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_REGISTRATION_REQUEST"); +charstring_list param_names; +param_names[0] = "p_RegistrationType"; +param_names[1] = "p_KeySetId"; +param_names[2] = "p_Tsc"; +param_names[3] = "p_MobileId"; +param_names[4] = "p_NonCurrentKSI"; +param_names[5] = "p_GMM_Cap"; +param_names[6] = "p_UESecurityCap"; +param_names[7] = "p_ReqNSSAI"; +param_names[8] = "p_TAI"; +param_names[9] = "p_UE_NetworkCap"; +param_names[10] = "p_ULDataStatus"; +param_names[11] = "p_PDU_SessionStatus"; +param_names[12] = "p_MICO_Ind"; +param_names[13] = "p_UE_Status"; +param_names[14] = "p_AddGUTI"; +param_names[15] = "p_AllowedPDU_SessionStatus"; +param_names[16] = "p_UE_UsageSetting"; +param_names[17] = "p_DRXparam"; +param_names[18] = "p_EPSMsg"; +param_names[19] = "p_LADN_Ind"; +param_names[20] = "p_ContainerType"; +param_names[21] = "p_Payload"; +param_names[22] = "p_NetworkSlicingInd"; +param_names[23] = "p_NG_UpdateType"; +param_names[24] = "p_MS_Clsmk2"; +param_names[25] = "p_SupportedCodecs"; +param_names[26] = "p_EPS_BearerContextStatus"; +param_names[27] = "p_Msg"; +param_names[28] = "p_ExtdDRXParams"; +param_names[29] = "p_T3324"; +param_names[30] = "p_UERadioCapId"; +param_names[31] = "p_MappedNSSAI"; +param_names[32] = "p_AddInfoRequest"; +param_names[33] = "p_WUSAssistInfo"; +param_names[34] = "p_N5GCInd"; +param_names[35] = "p_NB_N1ModeDRXParams"; +param_names[36] = "p_UeRequestType"; +param_names[37] = "p_PagingRestrict"; +param_names[38] = "p_ServiceLvlAA"; +param_names[39] = "p_NId"; +param_names[40] = "p_MSPLMNwDisasterCondition"; +param_names[41] = "p_RequestedPEIPS_AssistInfo"; +param_names[42] = "p_T3512"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +param_types[11] = "in"; +param_types[12] = "in"; +param_types[13] = "in"; +param_types[14] = "in"; +param_types[15] = "in"; +param_types[16] = "in"; +param_types[17] = "in"; +param_types[18] = "in"; +param_types[19] = "in"; +param_types[20] = "in"; +param_types[21] = "in"; +param_types[22] = "in"; +param_types[23] = "in"; +param_types[24] = "in"; +param_types[25] = "in"; +param_types[26] = "in"; +param_types[27] = "in"; +param_types[28] = "in"; +param_types[29] = "in"; +param_types[30] = "in"; +param_types[31] = "in"; +param_types[32] = "in"; +param_types[33] = "in"; +param_types[34] = "in"; +param_types[35] = "in"; +param_types[36] = "in"; +param_types[37] = "in"; +param_types[38] = "in"; +param_types[39] = "in"; +param_types[40] = "in"; +param_types[41] = "in"; +param_types[42] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_REGISTRATION_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__RegistrationType, "p_RegistrationType", "RegistrationType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__KeySetId, "p_KeySetId", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Tsc, "p_Tsc", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__MobileId, "p_MobileId", "NG_MobileIdentity template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NonCurrentKSI, "p_NonCurrentKSI", "NAS_KeySetIdentifier template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__GMM__Cap, "p_GMM_Cap", "NG_GMM_Cap template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__UESecurityCap, "p_UESecurityCap", "NG_UE_SecurityCapability template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ReqNSSAI, "p_ReqNSSAI", "NSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__TAI, "p_TAI", "NG_TrackingAreaId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__UE__NetworkCap, "p_UE_NetworkCap", "UE_NetworkCap template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ULDataStatus, "p_ULDataStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionStatus, "p_PDU_SessionStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MICO__Ind, "p_MICO_Ind", "MICO_Ind template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__UE__Status, "p_UE_Status", "UE_Status template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__AddGUTI, "p_AddGUTI", "NG_MobileIdentity template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AllowedPDU__SessionStatus, "p_AllowedPDU_SessionStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__UE__UsageSetting, "p_UE_UsageSetting", "UE_UsageSetting template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DRXparam, "p_DRXparam", "DRXParamCommon template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EPSMsg, "p_EPSMsg", "EPS_MessageContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__LADN__Ind, "p_LADN_Ind", "LADN_Ind template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ContainerType, "p_ContainerType", "PayloadContainerType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Payload, "p_Payload", "PayloadContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NetworkSlicingInd, "p_NetworkSlicingInd", "NetworkSlicingInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NG__UpdateType, "p_NG_UpdateType", "NG_UpdateType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MS__Clsmk2, "p_MS_Clsmk2", "MS_Clsmk2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__SupportedCodecs, "p_SupportedCodecs", "CodecList template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EPS__BearerContextStatus, "p_EPS_BearerContextStatus", "EPS_BearerContextStatus template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__Msg, "p_Msg", "ReplayedNASMessageContainer template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ExtdDRXParams, "p_ExtdDRXParams", "ExtdDRXParams template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__T3324, "p_T3324", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__UERadioCapId, "p_UERadioCapId", "UERadioCapId template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__MappedNSSAI, "p_MappedNSSAI", "MappedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AddInfoRequest, "p_AddInfoRequest", "AddInfoRequest template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__WUSAssistInfo, "p_WUSAssistInfo", "WUSAssistInfo template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__N5GCInd, "p_N5GCInd", "N5GCInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NB__N1ModeDRXParams, "p_NB_N1ModeDRXParams", "DRXParamCommon template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__UeRequestType, "p_UeRequestType", "UE_RequestType template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PagingRestrict, "p_PagingRestrict", "NG_PagingRestriction template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServiceLvlAA, "p_ServiceLvlAA", "ServiceLvlAAContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NId, "p_NId", "NID template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MSPLMNwDisasterCondition, "p_MSPLMNwDisasterCondition", "PLMN_IdIE template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__RequestedPEIPS__AssistInfo, "p_RequestedPEIPS_AssistInfo", "PEIPS_AssistInfo template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__T3512, "p_T3512", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__REGISTRATION__REQUEST_template& tmp_9 = ret_val.registration__Request(); +tmp_9.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_9.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_9.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_9.messageType() = NG__NAS__Common::tsc__MT__NG__RegistrationRequest; +tmp_9.ngNasKSI() = NAS__CommonTemplates::cr__NAS__KeySetIdentifier(p__KeySetId, p__Tsc); +tmp_9.registrationType() = p__RegistrationType; +tmp_9.ngMobileId() = p__MobileId; +tmp_9.nonCurrentNativeKSI() = p__NonCurrentKSI; +tmp_9.gmmCapability() = p__GMM__Cap; +tmp_9.ueSecurityCapability() = p__UESecurityCap; +tmp_9.requestedNSSAI() = p__ReqNSSAI; +tmp_9.lastVisitedRegisteredTai() = p__TAI; +tmp_9.s1__UE__Capability() = p__UE__NetworkCap; +tmp_9.ulDataStatus() = p__ULDataStatus; +tmp_9.pduSessionStatus() = p__PDU__SessionStatus; +tmp_9.micoInd() = p__MICO__Ind; +tmp_9.ueStatus() = p__UE__Status; +tmp_9.additionalGUTI() = p__AddGUTI; +tmp_9.allowedPDUSessionStatus() = p__AllowedPDU__SessionStatus; +tmp_9.ueUsageSetting() = p__UE__UsageSetting; +tmp_9.reqDRXParams() = p__DRXparam; +tmp_9.epsMessage() = p__EPSMsg; +tmp_9.ladnInd() = p__LADN__Ind; +tmp_9.payloadContainerType() = p__ContainerType; +tmp_9.payload() = p__Payload; +tmp_9.networkSlicingInd() = p__NetworkSlicingInd; +tmp_9.updateType() = p__NG__UpdateType; +tmp_9.msClassmark2() = p__MS__Clsmk2; +tmp_9.supportedCodecs() = p__SupportedCodecs; +tmp_9.nasMsg() = p__Msg; +tmp_9.epsBearerContextStatus() = p__EPS__BearerContextStatus; +tmp_9.requestedExtdDRXParams() = p__ExtdDRXParams; +tmp_9.t3324Value() = p__T3324; +tmp_9.ueRadioCapabilityId() = p__UERadioCapId; +tmp_9.requestedMappedNSSAI() = p__MappedNSSAI; +tmp_9.additionalInfoReq() = p__AddInfoRequest; +tmp_9.requestedWUSAssistanceInfo() = p__WUSAssistInfo; +tmp_9.n5GCInd() = p__N5GCInd; +tmp_9.requestedNB__N1DRXParams() = p__NB__N1ModeDRXParams; +tmp_9.ueRequestType() = p__UeRequestType; +tmp_9.pagingRestrict() = p__PagingRestrict; +tmp_9.serviceLvlAA() = p__ServiceLvlAA; +tmp_9.nId() = p__NId; +tmp_9.msPLMNwDisasterCondition() = p__MSPLMNwDisasterCondition; +tmp_9.requestedPEIPS__AssistInfo() = p__RequestedPEIPS__AssistInfo; +tmp_9.t3512Value() = p__T3512; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__REGISTRATION__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__UpdateType_template cr__NG__Update(const BITSTRING_template& p__NgRAN__RCU, const BITSTRING_template& p__SmsRequested, const BITSTRING_template& p__EPS__PNB__CIoT, const BITSTRING_template& p__NG__PNB__CIoT) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 273, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_Update"); +charstring_list param_names; +param_names[0] = "p_NgRAN_RCU"; +param_names[1] = "p_SmsRequested"; +param_names[2] = "p_EPS_PNB_CIoT"; +param_names[3] = "p_NG_PNB_CIoT"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_Update", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NgRAN__RCU, "p_NgRAN_RCU", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SmsRequested, "p_SmsRequested", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPS__PNB__CIoT, "p_EPS_PNB_CIoT", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NG__PNB__CIoT, "p_NG_PNB_CIoT", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__UpdateType_template ret_val; +ret_val.iei() = os_0; +ret_val.iel() = os_1; +ret_val.spare() = bs_0; +ret_val.eps__PNB__CIoT() = p__EPS__PNB__CIoT; +ret_val.ng__PNB__CIoT() = p__NG__PNB__CIoT; +ret_val.ngRAN__RCU() = p__NgRAN__RCU; +ret_val.smsRequested() = p__SmsRequested; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__Update_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__REGISTRATION__ACCEPT(const NG__NAS__TypeDefs::RegistrationResult_template& p__RegistrationResult, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__GUTI, const NAS__CommonTypeDefs::PLMN__List_template& p__EPLMNs, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__TAIList, const NG__NAS__TypeDefs::NSSAI_template& p__AllowedNSSAI, const NG__NAS__TypeDefs::RejectedNSSAI_template& p__RejectedNSSAI, const NG__NAS__TypeDefs::NSSAI_template& p__ConfiguredNSSAI, const NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template& p__NwkFeatureSupport, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionReactResult, const NG__NAS__TypeDefs::PDU__SessionReactivationError_template& p__PDU__SessionReactError, const NG__NAS__TypeDefs::LADN__Info_template& p__LADN__Info, const NG__NAS__TypeDefs::MICO__Ind_template& p__MICO__Ind, const NG__NAS__TypeDefs::NetworkSlicingInd_template& p__NetworkSlicingInd, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__SAIList, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3512, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__Non3GPPDereg, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3502, const NAS__CommonTypeDefs::EmergNumList_template& p__EmergNumList, const NAS__CommonTypeDefs::ExtdEmergNumList_template& p__ExtdEmergNumList, const NG__NAS__TypeDefs::SORTransparentContainer_template& p__SOR, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::InclusionModeNSSAI_template& p__InclusionModeNSSAI, const NG__NAS__TypeDefs::OperatorAccessCatDefinitions_template& p__AccessCatDefinition, const NAS__CommonTypeDefs::DRXParamCommon_template& p__NG__DRXparameter, const NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& p__Non3GPP__NW__ProvidedPolicies, const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& p__EPS__BearerContextStatus, const NAS__CommonTypeDefs::ExtdDRXParams_template& p__NegotiatedExtdDRXParams, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3447, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3448, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3324, const NAS__CommonTypeDefs::UERadioCapId_template& p__UERadioCapId, const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& p__UERadioCapIdDeletion, const NG__NAS__TypeDefs::NSSAI_template& p__PendingNSSAI, const NG__NAS__TypeDefs::NG__CipheringKeyData_template& p__CipheringKeyData, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NG__NAS__TypeDefs::TruncatedS__TMSIConfig_template& p__TruncatedS__TMSIConfig, const NAS__CommonTypeDefs::WUSAssistInfo_template& p__WUSAssistInfo, const NAS__CommonTypeDefs::DRXParamCommon_template& p__NB__N1ModeDRXParams, const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__ExtdRejectedNSSAI, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::PEIPS__AssistInfo_template& p__NegotiatedPEIPS__AssistInfo, const NG__NAS__TypeDefs::NG__AddReqResult_template& p__AddRequestResult, const NG__NAS__TypeDefs::NSSRG__Info_template& p__NssrgInfo, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterRoamingWaitRange, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::DisasterPLMNList_template& p__DisasterPLMNList, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NG__NAS__TypeDefs::NSAG__Info_template& p__NsagInfo) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 289, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_REGISTRATION_ACCEPT"); +charstring_list param_names; +param_names[0] = "p_RegistrationResult"; +param_names[1] = "p_GUTI"; +param_names[2] = "p_EPLMNs"; +param_names[3] = "p_TAIList"; +param_names[4] = "p_AllowedNSSAI"; +param_names[5] = "p_RejectedNSSAI"; +param_names[6] = "p_ConfiguredNSSAI"; +param_names[7] = "p_NwkFeatureSupport"; +param_names[8] = "p_PDU_SessionStatus"; +param_names[9] = "p_PDU_SessionReactResult"; +param_names[10] = "p_PDU_SessionReactError"; +param_names[11] = "p_LADN_Info"; +param_names[12] = "p_MICO_Ind"; +param_names[13] = "p_NetworkSlicingInd"; +param_names[14] = "p_SAIList"; +param_names[15] = "p_T3512"; +param_names[16] = "p_Non3GPPDereg"; +param_names[17] = "p_T3502"; +param_names[18] = "p_EmergNumList"; +param_names[19] = "p_ExtdEmergNumList"; +param_names[20] = "p_SOR"; +param_names[21] = "p_EAP"; +param_names[22] = "p_InclusionModeNSSAI"; +param_names[23] = "p_AccessCatDefinition"; +param_names[24] = "p_NG_DRXparameter"; +param_names[25] = "p_Non3GPP_NW_ProvidedPolicies"; +param_names[26] = "p_EPS_BearerContextStatus"; +param_names[27] = "p_NegotiatedExtdDRXParams"; +param_names[28] = "p_T3447"; +param_names[29] = "p_T3448"; +param_names[30] = "p_T3324"; +param_names[31] = "p_UERadioCapId"; +param_names[32] = "p_UERadioCapIdDeletion"; +param_names[33] = "p_PendingNSSAI"; +param_names[34] = "p_CipheringKeyData"; +param_names[35] = "p_CAGInfoList"; +param_names[36] = "p_TruncatedS_TMSIConfig"; +param_names[37] = "p_WUSAssistInfo"; +param_names[38] = "p_NB_N1ModeDRXParams"; +param_names[39] = "p_ExtdRejectedNSSAI"; +param_names[40] = "p_ServiceLvlAA"; +param_names[41] = "p_NegotiatedPEIPS_AssistInfo"; +param_names[42] = "p_AddRequestResult"; +param_names[43] = "p_NssrgInfo"; +param_names[44] = "p_DisasterRoamingWaitRange"; +param_names[45] = "p_DisasterReturnWaitRange"; +param_names[46] = "p_DisasterPLMNList"; +param_names[47] = "p_ForbidTAIList_Roaming"; +param_names[48] = "p_ForbidTAIList_RegProvService"; +param_names[49] = "p_ExtdCAGInfoList"; +param_names[50] = "p_NsagInfo"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +param_types[11] = "in"; +param_types[12] = "in"; +param_types[13] = "in"; +param_types[14] = "in"; +param_types[15] = "in"; +param_types[16] = "in"; +param_types[17] = "in"; +param_types[18] = "in"; +param_types[19] = "in"; +param_types[20] = "in"; +param_types[21] = "in"; +param_types[22] = "in"; +param_types[23] = "in"; +param_types[24] = "in"; +param_types[25] = "in"; +param_types[26] = "in"; +param_types[27] = "in"; +param_types[28] = "in"; +param_types[29] = "in"; +param_types[30] = "in"; +param_types[31] = "in"; +param_types[32] = "in"; +param_types[33] = "in"; +param_types[34] = "in"; +param_types[35] = "in"; +param_types[36] = "in"; +param_types[37] = "in"; +param_types[38] = "in"; +param_types[39] = "in"; +param_types[40] = "in"; +param_types[41] = "in"; +param_types[42] = "in"; +param_types[43] = "in"; +param_types[44] = "in"; +param_types[45] = "in"; +param_types[46] = "in"; +param_types[47] = "in"; +param_types[48] = "in"; +param_types[49] = "in"; +param_types[50] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_REGISTRATION_ACCEPT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__RegistrationResult, "p_RegistrationResult", "RegistrationResult template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__GUTI, "p_GUTI", "NG_MobileIdentity template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EPLMNs, "p_EPLMNs", "PLMN_List template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__TAIList, "p_TAIList", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AllowedNSSAI, "p_AllowedNSSAI", "NSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RejectedNSSAI, "p_RejectedNSSAI", "RejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ConfiguredNSSAI, "p_ConfiguredNSSAI", "NSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NwkFeatureSupport, "p_NwkFeatureSupport", "NG_NetworkFeatureSupport template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionStatus, "p_PDU_SessionStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionReactResult, "p_PDU_SessionReactResult", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionReactError, "p_PDU_SessionReactError", "PDU_SessionReactivationError template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__LADN__Info, "p_LADN_Info", "LADN_Info template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MICO__Ind, "p_MICO_Ind", "MICO_Ind template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NetworkSlicingInd, "p_NetworkSlicingInd", "NetworkSlicingInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__SAIList, "p_SAIList", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__T3512, "p_T3512", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__Non3GPPDereg, "p_Non3GPPDereg", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__T3502, "p_T3502", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EmergNumList, "p_EmergNumList", "EmergNumList template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ExtdEmergNumList, "p_ExtdEmergNumList", "ExtdEmergNumList template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__SOR, "p_SOR", "SORTransparentContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__InclusionModeNSSAI, "p_InclusionModeNSSAI", "InclusionModeNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AccessCatDefinition, "p_AccessCatDefinition", "OperatorAccessCatDefinitions template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NG__DRXparameter, "p_NG_DRXparameter", "DRXParamCommon template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__Non3GPP__NW__ProvidedPolicies, "p_Non3GPP_NW_ProvidedPolicies", "Non3GPP_NW_ProvidedPolicies template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EPS__BearerContextStatus, "p_EPS_BearerContextStatus", "EPS_BearerContextStatus template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__NegotiatedExtdDRXParams, "p_NegotiatedExtdDRXParams", "ExtdDRXParams template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__T3447, "p_T3447", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__T3448, "p_T3448", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__T3324, "p_T3324", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__UERadioCapId, "p_UERadioCapId", "UERadioCapId template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__UERadioCapIdDeletion, "p_UERadioCapIdDeletion", "UERadioCapIdDeletion template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PendingNSSAI, "p_PendingNSSAI", "NSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__CipheringKeyData, "p_CipheringKeyData", "NG_CipheringKeyData template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__CAGInfoList, "p_CAGInfoList", "CAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__TruncatedS__TMSIConfig, "p_TruncatedS_TMSIConfig", "TruncatedS_TMSIConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__WUSAssistInfo, "p_WUSAssistInfo", "WUSAssistInfo template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__NB__N1ModeDRXParams, "p_NB_N1ModeDRXParams", "DRXParamCommon template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ExtdRejectedNSSAI, "p_ExtdRejectedNSSAI", "ExtdRejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServiceLvlAA, "p_ServiceLvlAA", "ServiceLvlAAContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NegotiatedPEIPS__AssistInfo, "p_NegotiatedPEIPS_AssistInfo", "PEIPS_AssistInfo template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AddRequestResult, "p_AddRequestResult", "NG_AddReqResult template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NssrgInfo, "p_NssrgInfo", "NSSRG_Info template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DisasterRoamingWaitRange, "p_DisasterRoamingWaitRange", "RegistrationWaitRange template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DisasterReturnWaitRange, "p_DisasterReturnWaitRange", "RegistrationWaitRange template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DisasterPLMNList, "p_DisasterPLMNList", "DisasterPLMNList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__Roaming, "p_ForbidTAIList_Roaming", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__RegProvService, "p_ForbidTAIList_RegProvService", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdCAGInfoList, "p_ExtdCAGInfoList", "ExtdCAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NsagInfo, "p_NsagInfo", "NSAG_Info template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__REGISTRATION__ACCEPT_template& tmp_10 = ret_val.registration__Accept(); +tmp_10.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_10.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_10.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_10.messageType() = NG__NAS__Common::tsc__MT__NG__RegistrationAccept; +tmp_10.registrationResult() = p__RegistrationResult; +tmp_10.guti() = p__GUTI; +tmp_10.equivalentPlmns() = p__EPLMNs; +tmp_10.taiList() = p__TAIList; +tmp_10.allowedNSSAI() = p__AllowedNSSAI; +tmp_10.rejectedNSSAI() = p__RejectedNSSAI; +tmp_10.configuredNSSAI() = p__ConfiguredNSSAI; +tmp_10.ngs__NetworkFeatureSupport() = p__NwkFeatureSupport; +tmp_10.pduSessionStatus() = p__PDU__SessionStatus; +tmp_10.pduSessionReactivationResult() = p__PDU__SessionReactResult; +tmp_10.pduSessionReactResultError() = p__PDU__SessionReactError; +tmp_10.ladnInfo() = p__LADN__Info; +tmp_10.micoInd() = p__MICO__Ind; +tmp_10.networkSlicingInd() = p__NetworkSlicingInd; +tmp_10.saiList() = p__SAIList; +tmp_10.t3512Value() = p__T3512; +tmp_10.non3GPPDeregisterValue() = p__Non3GPPDereg; +tmp_10.t3502Value() = p__T3502; +tmp_10.emergencyNumberList() = p__EmergNumList; +tmp_10.xtdEmergencyNumberList() = p__ExtdEmergNumList; +tmp_10.sorTransparentContainer() = p__SOR; +tmp_10.eapMessage() = p__EAP; +tmp_10.inclusionModeNSSAI() = p__InclusionModeNSSAI; +tmp_10.operatorAccessCatDefs() = p__AccessCatDefinition; +tmp_10.negotiatedDRXParams() = p__NG__DRXparameter; +tmp_10.non3GPP__NW__ProvidedPolicies() = p__Non3GPP__NW__ProvidedPolicies; +tmp_10.epsBearerContextStatus() = p__EPS__BearerContextStatus; +tmp_10.negotiatedExtdDRXParams() = p__NegotiatedExtdDRXParams; +tmp_10.t3447Value() = p__T3447; +tmp_10.t3448Value() = p__T3448; +tmp_10.t3324Value() = p__T3324; +tmp_10.ueRadioCapabilityId() = p__UERadioCapId; +tmp_10.ueRadioCapIdDeletionInd() = p__UERadioCapIdDeletion; +tmp_10.pendingNSSAI() = p__PendingNSSAI; +tmp_10.cipheringKeyData() = p__CipheringKeyData; +tmp_10.cagInfoList() = p__CAGInfoList; +tmp_10.truncatedS__TMSIConfig() = p__TruncatedS__TMSIConfig; +tmp_10.negotiatedWUSAssistanceInfo() = p__WUSAssistInfo; +tmp_10.negotiatedNB__N1DRXParams() = p__NB__N1ModeDRXParams; +tmp_10.extdRejectedNSSAI() = p__ExtdRejectedNSSAI; +tmp_10.serviceLvlAA() = p__ServiceLvlAA; +tmp_10.negotiatedPEIPS__AssistInfo() = p__NegotiatedPEIPS__AssistInfo; +tmp_10.ngAddRequestResult() = p__AddRequestResult; +tmp_10.nssrgInfo() = p__NssrgInfo; +tmp_10.disasterRoamingWaitRange() = p__DisasterRoamingWaitRange; +tmp_10.disasterReturnWaitRange() = p__DisasterReturnWaitRange; +tmp_10.disasterPLMNList() = p__DisasterPLMNList; +tmp_10.forbidTAIList__Roaming() = p__ForbidTAIList__Roaming; +tmp_10.forbidTAIList__RegProvService() = p__ForbidTAIList__RegProvService; +tmp_10.extdCAGInfoList() = p__ExtdCAGInfoList; +tmp_10.nsagInfo() = p__NsagInfo; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__REGISTRATION__ACCEPT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__REGISTRATION__COMPLETE(const NG__NAS__TypeDefs::SORTransparentContainer_template& p__SOR) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 401, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_REGISTRATION_COMPLETE"); +charstring_list param_names; +param_names[0] = "p_SOR"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_REGISTRATION_COMPLETE", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__SOR, "p_SOR", "SORTransparentContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__REGISTRATION__COMPLETE_template& tmp_11 = ret_val.registration__Complete(); +tmp_11.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_11.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_11.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_11.messageType() = NG__NAS__Common::tsc__MT__NG__RegistrationComplete; +tmp_11.sorTransparentContainer() = p__SOR; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__REGISTRATION__COMPLETE_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::SORTransparentContainer_template cr__NG__SORTransparentContainer(const NG__NAS__TypeDefs::SOR__Header_template& p__Header, const OCTETSTRING& p__Mac, const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__IEL) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 413, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_SORTransparentContainer"); +charstring_list param_names; +param_names[0] = "p_Header"; +param_names[1] = "p_Mac"; +param_names[2] = "p_IEI"; +param_names[3] = "p_IEL"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_SORTransparentContainer", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Header, "p_Header", "SOR_Header template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Mac, "p_Mac", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEL, "p_IEL", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::SORTransparentContainer_template ret_val; +ret_val = cr__NG__SORTransparentContainerValue(p__Header, p__Mac, OCTETSTRING_template(OMIT_VALUE), OCTETSTRING_template(OMIT_VALUE), p__IEI, p__IEL); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__SORTransparentContainer_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::SORTransparentContainer_template cs__NG__SORTransparentContainer__IeiIel(const NG__NAS__TypeDefs::SOR__Header_template& p__Header, const OCTETSTRING& p__Mac, const OCTETSTRING& p__Counter, const OCTETSTRING& p__Data) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 425, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_SORTransparentContainer_IeiIel"); +charstring_list param_names; +param_names[0] = "p_Header"; +param_names[1] = "p_Mac"; +param_names[2] = "p_Counter"; +param_names[3] = "p_Data"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_SORTransparentContainer_IeiIel", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Header, "p_Header", "SOR_Header template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Mac, "p_Mac", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Counter, "p_Counter", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Data, "p_Data", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::SORTransparentContainer_template ret_val; +ret_val = cs__NG__SORTransparentContainerValue(p__Header, p__Mac, OCTETSTRING_template(p__Counter), OCTETSTRING_template(p__Data), OCTETSTRING_template(os_2), OCTETSTRING_template(int2oct((p__Data.lengthof() + 19), 2))); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__SORTransparentContainer__IeiIel_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::SORTransparentContainer_template cs__NG__SORTransparentContainerValue(const NG__NAS__TypeDefs::SOR__Header_template& p__Header, const OCTETSTRING& p__Mac__UE, const OCTETSTRING_template& p__Counter, const OCTETSTRING_template& p__Data, const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__IEL) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 438, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_SORTransparentContainerValue"); +charstring_list param_names; +param_names[0] = "p_Header"; +param_names[1] = "p_Mac_UE"; +param_names[2] = "p_Counter"; +param_names[3] = "p_Data"; +param_names[4] = "p_IEI"; +param_names[5] = "p_IEL"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_SORTransparentContainerValue", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Header, "p_Header", "SOR_Header template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Mac__UE, "p_Mac_UE", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Counter, "p_Counter", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Data, "p_Data", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEL, "p_IEL", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::SORTransparentContainer_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = p__IEL; +ret_val.header() = p__Header; +ret_val.mac() = p__Mac__UE; +ret_val.counter() = p__Counter; +ret_val.data() = p__Data; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__SORTransparentContainerValue_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::SORTransparentContainer_template cr__NG__SORTransparentContainerValue(const NG__NAS__TypeDefs::SOR__Header_template& p__Header, const OCTETSTRING& p__Mac__UE, const OCTETSTRING_template& p__Counter, const OCTETSTRING_template& p__Data, const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__IEL) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 454, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_SORTransparentContainerValue"); +charstring_list param_names; +param_names[0] = "p_Header"; +param_names[1] = "p_Mac_UE"; +param_names[2] = "p_Counter"; +param_names[3] = "p_Data"; +param_names[4] = "p_IEI"; +param_names[5] = "p_IEL"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_SORTransparentContainerValue", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Header, "p_Header", "SOR_Header template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Mac__UE, "p_Mac_UE", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Counter, "p_Counter", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Data, "p_Data", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEL, "p_IEL", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::SORTransparentContainer_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = p__IEL; +ret_val.header() = p__Header; +ret_val.mac() = p__Mac__UE; +ret_val.counter() = p__Counter; +ret_val.data() = p__Data; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__SORTransparentContainerValue_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::SOR__Header_template cs__NG__SOR__Header(const BITSTRING& p__Ack, const BITSTRING& p__ListType, const BITSTRING& p__ListInd, const BITSTRING& p__DataType, const BITSTRING& p__Ap) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 470, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_SOR_Header"); +charstring_list param_names; +param_names[0] = "p_Ack"; +param_names[1] = "p_ListType"; +param_names[2] = "p_ListInd"; +param_names[3] = "p_DataType"; +param_names[4] = "p_Ap"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_SOR_Header", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Ack, "p_Ack", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ListType, "p_ListType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ListInd, "p_ListInd", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DataType, "p_DataType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Ap, "p_Ap", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::SOR__Header_template ret_val; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare3; +ret_val.ap() = p__Ap; +ret_val.ack() = p__Ack; +ret_val.listType__MSSNPNSI() = p__ListType; +ret_val.listInd__MSSI() = p__ListInd; +ret_val.dataType() = p__DataType; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__SOR__Header_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::SOR__Header_template cr__NG__SOR__Header(const BITSTRING& p__Ack, const BITSTRING_template& p__ListType, const BITSTRING_template& p__ListInd, const BITSTRING_template& p__DataType, const BITSTRING_template& p__Ap) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 485, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_SOR_Header"); +charstring_list param_names; +param_names[0] = "p_Ack"; +param_names[1] = "p_ListType"; +param_names[2] = "p_ListInd"; +param_names[3] = "p_DataType"; +param_names[4] = "p_Ap"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_SOR_Header", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Ack, "p_Ack", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ListType, "p_ListType", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ListInd, "p_ListInd", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DataType, "p_DataType", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Ap, "p_Ap", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::SOR__Header_template ret_val; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare3; +ret_val.ap() = p__Ap; +ret_val.ack() = p__Ack; +ret_val.listType__MSSNPNSI() = p__ListType; +ret_val.listInd__MSSI() = p__ListInd; +ret_val.dataType() = p__DataType; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__SOR__Header_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__REGISTRATION__REJECT(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3346, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3502, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::RejectedNSSAI_template& p__RejectedNSSAI, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__ExtdRejectedNSSAI, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__LowerBoundTimerValue, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 500, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_REGISTRATION_REJECT"); +charstring_list param_names; +param_names[0] = "p_Cause"; +param_names[1] = "p_T3346"; +param_names[2] = "p_T3502"; +param_names[3] = "p_EAP"; +param_names[4] = "p_RejectedNSSAI"; +param_names[5] = "p_CAGInfoList"; +param_names[6] = "p_ExtdRejectedNSSAI"; +param_names[7] = "p_DisasterReturnWaitRange"; +param_names[8] = "p_ExtdCAGInfoList"; +param_names[9] = "p_LowerBoundTimerValue"; +param_names[10] = "p_ForbidTAIList_Roaming"; +param_names[11] = "p_ForbidTAIList_RegProvService"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +param_types[11] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_REGISTRATION_REJECT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__T3346, "p_T3346", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__T3502, "p_T3502", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RejectedNSSAI, "p_RejectedNSSAI", "RejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__CAGInfoList, "p_CAGInfoList", "CAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdRejectedNSSAI, "p_ExtdRejectedNSSAI", "ExtdRejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DisasterReturnWaitRange, "p_DisasterReturnWaitRange", "RegistrationWaitRange template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdCAGInfoList, "p_ExtdCAGInfoList", "ExtdCAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__LowerBoundTimerValue, "p_LowerBoundTimerValue", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__Roaming, "p_ForbidTAIList_Roaming", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__RegProvService, "p_ForbidTAIList_RegProvService", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__REGISTRATION__REJECT_template& tmp_12 = ret_val.registration__Reject(); +tmp_12.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_12.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_12.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_12.messageType() = NG__NAS__Common::tsc__MT__NG__RegistrationReject; +tmp_12.gmmCause() = p__Cause; +tmp_12.t3346() = p__T3346; +tmp_12.t3502() = p__T3502; +tmp_12.eapMessage() = p__EAP; +tmp_12.rejectedNSSAI() = p__RejectedNSSAI; +tmp_12.cagInfoList() = p__CAGInfoList; +tmp_12.extdRejectedNSSAI() = p__ExtdRejectedNSSAI; +tmp_12.disasterReturnWaitRange() = p__DisasterReturnWaitRange; +tmp_12.extdCAGInfoList() = p__ExtdCAGInfoList; +tmp_12.lowerBoundTimerValue() = p__LowerBoundTimerValue; +tmp_12.forbidTAIList__Roaming() = p__ForbidTAIList__Roaming; +tmp_12.forbidTAIList__RegProvService() = p__ForbidTAIList__RegProvService; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__REGISTRATION__REJECT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__UL__NAS__TRANSPORT(const NG__NAS__TypeDefs::PayloadContainerType_template& p__PayloadContainerType, const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__OldPDU__SessionId, const NG__NAS__TypeDefs::NG__Request__Type_template& p__RequestType, const NG__NAS__TypeDefs::S__NSSAI__Type_template& p__S__NSSAI, const NG__NAS__TypeDefs::DNN_template& p__DNN, const NAS__CommonTypeDefs::AdditionalInformation_template& p__AdditionalInfo, const NG__NAS__TypeDefs::MA__PDUSessionInfo_template& p__MA__PDUSessionInfo, const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& p__ReleaseAssistanceInd) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 534, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_UL_NAS_TRANSPORT"); +charstring_list param_names; +param_names[0] = "p_PayloadContainerType"; +param_names[1] = "p_PDU_SessionId"; +param_names[2] = "p_OldPDU_SessionId"; +param_names[3] = "p_RequestType"; +param_names[4] = "p_S_NSSAI"; +param_names[5] = "p_DNN"; +param_names[6] = "p_AdditionalInfo"; +param_names[7] = "p_MA_PDUSessionInfo"; +param_names[8] = "p_ReleaseAssistanceInd"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_UL_NAS_TRANSPORT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PayloadContainerType, "p_PayloadContainerType", "PayloadContainerType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__OldPDU__SessionId, "p_OldPDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RequestType, "p_RequestType", "NG_Request_Type template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__S__NSSAI, "p_S_NSSAI", "S_NSSAI_Type template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DNN, "p_DNN", "DNN template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AdditionalInfo, "p_AdditionalInfo", "AdditionalInformation template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__MA__PDUSessionInfo, "p_MA_PDUSessionInfo", "MA_PDUSessionInfo template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ReleaseAssistanceInd, "p_ReleaseAssistanceInd", "ReleaseAssistanceInd template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__UL__NAS__TRANSPORT_template& tmp_13 = ret_val.ul__Nas__Transport(); +tmp_13.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_13.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_13.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_13.messageType() = NG__NAS__Common::tsc__MT__NG__UL__NASTransport; +tmp_13.spareHalfOctet2() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_13.payloadContainerType() = p__PayloadContainerType; +{ +OCTETSTRING_template tmp_14; +tmp_14 = OMIT_VALUE; +tmp_13.payload() = cr__PayloadContainer(tmp_14); +} +tmp_13.pduSessionId() = p__PDU__SessionId; +tmp_13.oldPDUSessionId() = p__OldPDU__SessionId; +tmp_13.requestType() = p__RequestType; +tmp_13.s__NSSAI() = p__S__NSSAI; +tmp_13.dnn() = p__DNN; +tmp_13.additionalInfo() = p__AdditionalInfo; +tmp_13.maPDUSessionInfo() = p__MA__PDUSessionInfo; +tmp_13.releaseAssistanceInd() = p__ReleaseAssistanceInd; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__UL__NAS__TRANSPORT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__DL__NAS__TRANSPORT(const NG__NAS__TypeDefs::PayloadContainerType_template& p__PayloadContainerType, const NG__NAS__TypeDefs::PayloadContainer_template& p__Payload, const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const NAS__CommonTypeDefs::AdditionalInformation_template& p__AdditionalInfo, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__BackOff, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__LowerBoundTimerValue) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 564, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_DL_NAS_TRANSPORT"); +charstring_list param_names; +param_names[0] = "p_PayloadContainerType"; +param_names[1] = "p_Payload"; +param_names[2] = "p_PDU_SessionId"; +param_names[3] = "p_AdditionalInfo"; +param_names[4] = "p_Cause"; +param_names[5] = "p_BackOff"; +param_names[6] = "p_LowerBoundTimerValue"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_DL_NAS_TRANSPORT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PayloadContainerType, "p_PayloadContainerType", "PayloadContainerType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Payload, "p_Payload", "PayloadContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AdditionalInfo, "p_AdditionalInfo", "AdditionalInformation template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__BackOff, "p_BackOff", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__LowerBoundTimerValue, "p_LowerBoundTimerValue", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__DL__NAS__TRANSPORT_template& tmp_15 = ret_val.dl__Nas__Transport(); +tmp_15.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_15.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_15.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_15.messageType() = NG__NAS__Common::tsc__MT__NG__DL__NASTransport; +tmp_15.spareHalfOctet2() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_15.payloadContainerType() = p__PayloadContainerType; +tmp_15.payload() = p__Payload; +tmp_15.pduSessionId() = p__PDU__SessionId; +tmp_15.additionalInfo() = p__AdditionalInfo; +tmp_15.gmmCause() = p__Cause; +tmp_15.backOffTimerValue() = p__BackOff; +tmp_15.lowerBoundTimerValue() = p__LowerBoundTimerValue; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__DL__NAS__TRANSPORT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__DEREGISTRATION__REQUEST__MO(const NG__NAS__TypeDefs::DeregisterType_template& p__DeregisterType, const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& p__KSI, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__MobileId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 589, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_DEREGISTRATION_REQUEST_MO"); +charstring_list param_names; +param_names[0] = "p_DeregisterType"; +param_names[1] = "p_KSI"; +param_names[2] = "p_MobileId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_DEREGISTRATION_REQUEST_MO", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__DeregisterType, "p_DeregisterType", "DeregisterType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__KSI, "p_KSI", "NAS_KeySetIdentifier template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__MobileId, "p_MobileId", "NG_MobileIdentity template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MO_template& tmp_16 = ret_val.deregistration__RequestMO(); +tmp_16.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_16.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_16.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_16.messageType() = NG__NAS__Common::tsc__MT__NG__DeregistrationRequest__MO; +tmp_16.ngKSI() = p__KSI; +tmp_16.deregistrationType() = p__DeregisterType; +tmp_16.ngMobileId() = p__MobileId; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__DEREGISTRATION__REQUEST__MO_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__DEREGISTRATION__REQUEST__MT(const NG__NAS__TypeDefs::DeregisterType_template& p__Type, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3346, const NG__NAS__TypeDefs::RejectedNSSAI_template& p__RejectedNSSAI, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__ExtdRejectedNSSAI, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__LowerBoundTimerValue, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 627, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_DEREGISTRATION_REQUEST_MT"); +charstring_list param_names; +param_names[0] = "p_Type"; +param_names[1] = "p_Cause"; +param_names[2] = "p_T3346"; +param_names[3] = "p_RejectedNSSAI"; +param_names[4] = "p_CAGInfoList"; +param_names[5] = "p_ExtdRejectedNSSAI"; +param_names[6] = "p_DisasterReturnWaitRange"; +param_names[7] = "p_ExtdCAGInfoList"; +param_names[8] = "p_LowerBoundTimerValue"; +param_names[9] = "p_ForbidTAIList_Roaming"; +param_names[10] = "p_ForbidTAIList_RegProvService"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_DEREGISTRATION_REQUEST_MT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Type, "p_Type", "DeregisterType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__T3346, "p_T3346", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__RejectedNSSAI, "p_RejectedNSSAI", "RejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__CAGInfoList, "p_CAGInfoList", "CAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdRejectedNSSAI, "p_ExtdRejectedNSSAI", "ExtdRejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DisasterReturnWaitRange, "p_DisasterReturnWaitRange", "RegistrationWaitRange template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdCAGInfoList, "p_ExtdCAGInfoList", "ExtdCAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__LowerBoundTimerValue, "p_LowerBoundTimerValue", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__Roaming, "p_ForbidTAIList_Roaming", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__RegProvService, "p_ForbidTAIList_RegProvService", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__DEREGISTRATION__REQUEST__MT_template& tmp_19 = ret_val.deregistration__RequestMT(); +tmp_19.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_19.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_19.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_19.messageType() = NG__NAS__Common::tsc__MT__NG__DeregistrationRequest__MT; +tmp_19.spareHalfOctet2() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_19.deregistrationType() = p__Type; +tmp_19.gmmCause() = p__Cause; +tmp_19.t3346() = p__T3346; +tmp_19.rejectedNSSAI() = p__RejectedNSSAI; +tmp_19.cagInfoList() = p__CAGInfoList; +tmp_19.extdRejectedNSSAI() = p__ExtdRejectedNSSAI; +tmp_19.disasterReturnWaitRange() = p__DisasterReturnWaitRange; +tmp_19.extdCAGInfoList() = p__ExtdCAGInfoList; +tmp_19.lowerBoundTimerValue() = p__LowerBoundTimerValue; +tmp_19.forbidTAIList__Roaming() = p__ForbidTAIList__Roaming; +tmp_19.forbidTAIList__RegProvService() = p__ForbidTAIList__RegProvService; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__DEREGISTRATION__REQUEST__MT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__CP__SERVICE__REQUEST(const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& p__NAS__KeySetIdentifier, const NG__NAS__TypeDefs::CP__ServiceType_template& p__CP__ServiceType, const NG__NAS__TypeDefs::CIoTSmallDataRxdString_template& p__CIoTSmallDataContainer, const NG__NAS__TypeDefs::PayloadContainerType_template& p__PayloadContainerType, const NG__NAS__TypeDefs::PayloadContainer_template& p__PayloadContainer, const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__NG__PDU__SessionId, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& p__ReleaseAssistanceInd, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__ULDataStatus, const NAS__CommonTypeDefs::AdditionalInformation_template& p__AdditionalInfo, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__AllowedPDU__SessionStatus, const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& p__NASMsg, const NAS__CommonTypeDefs::UE__RequestType_template& p__UeRequestType, const NG__NAS__TypeDefs::NG__PagingRestriction_template& p__PagingRestrict) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 660, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_CP_SERVICE_REQUEST"); +charstring_list param_names; +param_names[0] = "p_NAS_KeySetIdentifier"; +param_names[1] = "p_CP_ServiceType"; +param_names[2] = "p_CIoTSmallDataContainer"; +param_names[3] = "p_PayloadContainerType"; +param_names[4] = "p_PayloadContainer"; +param_names[5] = "p_NG_PDU_SessionId"; +param_names[6] = "p_PDU_SessionStatus"; +param_names[7] = "p_ReleaseAssistanceInd"; +param_names[8] = "p_ULDataStatus"; +param_names[9] = "p_AdditionalInfo"; +param_names[10] = "p_AllowedPDU_SessionStatus"; +param_names[11] = "p_NASMsg"; +param_names[12] = "p_UeRequestType"; +param_names[13] = "p_PagingRestrict"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +param_types[11] = "in"; +param_types[12] = "in"; +param_types[13] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_CP_SERVICE_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NAS__KeySetIdentifier, "p_NAS_KeySetIdentifier", "NAS_KeySetIdentifier template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__CP__ServiceType, "p_CP_ServiceType", "CP_ServiceType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__CIoTSmallDataContainer, "p_CIoTSmallDataContainer", "CIoTSmallDataRxdString template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PayloadContainerType, "p_PayloadContainerType", "PayloadContainerType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PayloadContainer, "p_PayloadContainer", "PayloadContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NG__PDU__SessionId, "p_NG_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionStatus, "p_PDU_SessionStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ReleaseAssistanceInd, "p_ReleaseAssistanceInd", "ReleaseAssistanceInd template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ULDataStatus, "p_ULDataStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AdditionalInfo, "p_AdditionalInfo", "AdditionalInformation template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__AllowedPDU__SessionStatus, "p_AllowedPDU_SessionStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NASMsg, "p_NASMsg", "ReplayedNASMessageContainer template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__UeRequestType, "p_UeRequestType", "UE_RequestType template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PagingRestrict, "p_PagingRestrict", "NG_PagingRestriction template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__CP__SERVICE__REQUEST_template& tmp_20 = ret_val.cp__Service__Request(); +tmp_20.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_20.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_20.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_20.messageType() = NG__NAS__Common::tsc__MT__NG__CP__Service__Request; +tmp_20.ngKSI() = p__NAS__KeySetIdentifier; +tmp_20.cpServiceType() = p__CP__ServiceType; +tmp_20.cIoTSmallDataContainer() = p__CIoTSmallDataContainer; +tmp_20.payloadContainerType() = p__PayloadContainerType; +tmp_20.payload() = p__PayloadContainer; +tmp_20.pduSessionId() = p__NG__PDU__SessionId; +tmp_20.pduSessionStatus() = p__PDU__SessionStatus; +tmp_20.releaseAssistanceInd() = p__ReleaseAssistanceInd; +tmp_20.ulDataStatus() = p__ULDataStatus; +tmp_20.nasMsg() = p__NASMsg; +tmp_20.additionalInfo() = p__AdditionalInfo; +tmp_20.allowedPDUSessionStatus() = p__AllowedPDU__SessionStatus; +tmp_20.ueRequestType() = p__UeRequestType; +tmp_20.pagingRestrict() = p__PagingRestrict; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__CP__SERVICE__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__SERVICE__REQUEST(const BITSTRING_template& p__ServiceType, const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& p__KSI, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__S__TMSI, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__ULDataStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__AllowedPDU__SessionStatus, const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& p__Msg, const NAS__CommonTypeDefs::UE__RequestType_template& p__UeRequestType, const NG__NAS__TypeDefs::NG__PagingRestriction_template& p__PagingRestrict) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 697, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_SERVICE_REQUEST"); +charstring_list param_names; +param_names[0] = "p_ServiceType"; +param_names[1] = "p_KSI"; +param_names[2] = "p_S_TMSI"; +param_names[3] = "p_ULDataStatus"; +param_names[4] = "p_PDU_SessionStatus"; +param_names[5] = "p_AllowedPDU_SessionStatus"; +param_names[6] = "p_Msg"; +param_names[7] = "p_UeRequestType"; +param_names[8] = "p_PagingRestrict"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_SERVICE_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ServiceType, "p_ServiceType", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__KSI, "p_KSI", "NAS_KeySetIdentifier template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__S__TMSI, "p_S_TMSI", "NG_MobileIdentity template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ULDataStatus, "p_ULDataStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionStatus, "p_PDU_SessionStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AllowedPDU__SessionStatus, "p_AllowedPDU_SessionStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Msg, "p_Msg", "ReplayedNASMessageContainer template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__UeRequestType, "p_UeRequestType", "UE_RequestType template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PagingRestrict, "p_PagingRestrict", "NG_PagingRestriction template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__SERVICE__REQUEST_template& tmp_21 = ret_val.service__Request(); +tmp_21.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_21.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_21.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_21.messageType() = NG__NAS__Common::tsc__MT__NG__ServiceRequest; +tmp_21.serviceType() = p__ServiceType; +tmp_21.ngKSI() = p__KSI; +tmp_21.s__TMSI() = p__S__TMSI; +tmp_21.ulDataStatus() = p__ULDataStatus; +tmp_21.pduSessionStatus() = p__PDU__SessionStatus; +tmp_21.allowedPDUSessionStatus() = p__AllowedPDU__SessionStatus; +tmp_21.nasMsg() = p__Msg; +tmp_21.ueRequestType() = p__UeRequestType; +tmp_21.pagingRestrict() = p__PagingRestrict; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__SERVICE__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__SERVICE__ACCEPT(const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionReactivationResult, const NG__NAS__TypeDefs::PDU__SessionReactivationError_template& p__PDU__SessionReactivationError, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3448, const NG__NAS__TypeDefs::NG__AddReqResult_template& p__AddRequestResult, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 725, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_SERVICE_ACCEPT"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionStatus"; +param_names[1] = "p_PDU_SessionReactivationResult"; +param_names[2] = "p_PDU_SessionReactivationError"; +param_names[3] = "p_EAP"; +param_names[4] = "p_T3448"; +param_names[5] = "p_AddRequestResult"; +param_names[6] = "p_ForbidTAIList_Roaming"; +param_names[7] = "p_ForbidTAIList_RegProvService"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_SERVICE_ACCEPT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionStatus, "p_PDU_SessionStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionReactivationResult, "p_PDU_SessionReactivationResult", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionReactivationError, "p_PDU_SessionReactivationError", "PDU_SessionReactivationError template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__T3448, "p_T3448", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__AddRequestResult, "p_AddRequestResult", "NG_AddReqResult template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__Roaming, "p_ForbidTAIList_Roaming", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__RegProvService, "p_ForbidTAIList_RegProvService", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__SERVICE__ACCEPT_template& tmp_22 = ret_val.service__Accept(); +tmp_22.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_22.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_22.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_22.messageType() = NG__NAS__Common::tsc__MT__NG__ServiceAccept; +tmp_22.pduSessionStatus() = p__PDU__SessionStatus; +tmp_22.pduSessionReactivationResult() = p__PDU__SessionReactivationResult; +tmp_22.pduSessionReactResultError() = p__PDU__SessionReactivationError; +tmp_22.eapMessage() = p__EAP; +tmp_22.t3448() = p__T3448; +tmp_22.ngAddRequestResult() = p__AddRequestResult; +tmp_22.forbidTAIList__Roaming() = p__ForbidTAIList__Roaming; +tmp_22.forbidTAIList__RegProvService() = p__ForbidTAIList__RegProvService; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__SERVICE__ACCEPT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__SERVICE__REJECT(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3346, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3448, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__LowerBoundTimerValue, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 751, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_SERVICE_REJECT"); +charstring_list param_names; +param_names[0] = "p_Cause"; +param_names[1] = "p_PDU_SessionStatus"; +param_names[2] = "p_T3346"; +param_names[3] = "p_EAP"; +param_names[4] = "p_T3448"; +param_names[5] = "p_CAGInfoList"; +param_names[6] = "p_DisasterReturnWaitRange"; +param_names[7] = "p_ExtdCAGInfoList"; +param_names[8] = "p_LowerBoundTimerValue"; +param_names[9] = "p_ForbidTAIList_Roaming"; +param_names[10] = "p_ForbidTAIList_RegProvService"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_SERVICE_REJECT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionStatus, "p_PDU_SessionStatus", "PDU_SessionStatus template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__T3346, "p_T3346", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__T3448, "p_T3448", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__CAGInfoList, "p_CAGInfoList", "CAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DisasterReturnWaitRange, "p_DisasterReturnWaitRange", "RegistrationWaitRange template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdCAGInfoList, "p_ExtdCAGInfoList", "ExtdCAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__LowerBoundTimerValue, "p_LowerBoundTimerValue", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__Roaming, "p_ForbidTAIList_Roaming", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ForbidTAIList__RegProvService, "p_ForbidTAIList_RegProvService", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__SERVICE__REJECT_template& tmp_23 = ret_val.service__Reject(); +tmp_23.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_23.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_23.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_23.messageType() = NG__NAS__Common::tsc__MT__NG__ServiceReject; +tmp_23.gmmCause() = p__Cause; +tmp_23.pduSessionStatus() = p__PDU__SessionStatus; +tmp_23.t3346() = p__T3346; +tmp_23.eapMessage() = p__EAP; +tmp_23.t3448() = p__T3448; +tmp_23.cagInfoList() = p__CAGInfoList; +tmp_23.disasterReturnWaitRange() = p__DisasterReturnWaitRange; +tmp_23.extdCAGInfoList() = p__ExtdCAGInfoList; +tmp_23.lowerBoundTimerValue() = p__LowerBoundTimerValue; +tmp_23.forbidTAIList__Roaming() = p__ForbidTAIList__Roaming; +tmp_23.forbidTAIList__RegProvService() = p__ForbidTAIList__RegProvService; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__SERVICE__REJECT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__CONFIGURATION__UPDATE__COMMAND(const NG__NAS__TypeDefs::ConfigUpdateInd_template& p__ConfigUpdateInd, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__Guti, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__TaiList, const NG__NAS__TypeDefs::NSSAI_template& p__AllowedNSSAI, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__SaiList, const NAS__CommonTypeDefs::NetworkName_template& p__FullNetworkName, const NAS__CommonTypeDefs::NetworkName_template& p__ShortNetworkName, const NAS__CommonTypeDefs::TimeZone_template& p__LocalTimeZone, const NAS__CommonTypeDefs::TimeZoneAndTime_template& p__LocalTimeZoneAndTime, const NAS__CommonTypeDefs::DaylightSavingTime_template& p__DaylightSavingTime, const NG__NAS__TypeDefs::LADN__Info_template& p__LadnInfo, const NG__NAS__TypeDefs::MICO__Ind_template& p__MicoInd, const NG__NAS__TypeDefs::NetworkSlicingInd_template& p__NetworkSlicingInd, const NG__NAS__TypeDefs::NSSAI_template& p__ConfiguredNSSAI, const NG__NAS__TypeDefs::RejectedNSSAI_template& p__RejectedNSSAI, const NG__NAS__TypeDefs::OperatorAccessCatDefinitions_template& p__OperatorAccessCatDefs, const NG__NAS__TypeDefs::SMSInd_template& p__SmsInd, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3447, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NAS__CommonTypeDefs::UERadioCapId_template& p__UERadioCapId, const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& p__UERadioCapIdDeletion, const NG__NAS__TypeDefs::RegistrationResult_template& p__RegistrationResult, const NG__NAS__TypeDefs::TruncatedS__TMSIConfig_template& p__TruncatedS__TMSIConfig, const NG__NAS__TypeDefs::AddConfigInfo_template& p__AddConfigInfo, const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__ExtdRejectedNSSAI, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::NSSRG__Info_template& p__NssrgInfo, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterRoamingWaitRange, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::DisasterPLMNList_template& p__DisasterPLMNList, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NG__NAS__TypeDefs::PEIPS__AssistInfo_template& p__UpdatedPEIPS__AssistInfo, const NG__NAS__TypeDefs::NSAG__Info_template& p__NsagInfo, const NG__NAS__TypeDefs::PriorityInd_template& p__PriorityInd) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 783, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_CONFIGURATION_UPDATE_COMMAND"); +charstring_list param_names; +param_names[0] = "p_ConfigUpdateInd"; +param_names[1] = "p_Guti"; +param_names[2] = "p_TaiList"; +param_names[3] = "p_AllowedNSSAI"; +param_names[4] = "p_SaiList"; +param_names[5] = "p_FullNetworkName"; +param_names[6] = "p_ShortNetworkName"; +param_names[7] = "p_LocalTimeZone"; +param_names[8] = "p_LocalTimeZoneAndTime"; +param_names[9] = "p_DaylightSavingTime"; +param_names[10] = "p_LadnInfo"; +param_names[11] = "p_MicoInd"; +param_names[12] = "p_NetworkSlicingInd"; +param_names[13] = "p_ConfiguredNSSAI"; +param_names[14] = "p_RejectedNSSAI"; +param_names[15] = "p_OperatorAccessCatDefs"; +param_names[16] = "p_SmsInd"; +param_names[17] = "p_T3447"; +param_names[18] = "p_CAGInfoList"; +param_names[19] = "p_UERadioCapId"; +param_names[20] = "p_UERadioCapIdDeletion"; +param_names[21] = "p_RegistrationResult"; +param_names[22] = "p_TruncatedS_TMSIConfig"; +param_names[23] = "p_AddConfigInfo"; +param_names[24] = "p_ExtdRejectedNSSAI"; +param_names[25] = "p_ServiceLvlAA"; +param_names[26] = "p_NssrgInfo"; +param_names[27] = "p_DisasterRoamingWaitRange"; +param_names[28] = "p_DisasterReturnWaitRange"; +param_names[29] = "p_DisasterPLMNList"; +param_names[30] = "p_ExtdCAGInfoList"; +param_names[31] = "p_UpdatedPEIPS_AssistInfo"; +param_names[32] = "p_NsagInfo"; +param_names[33] = "p_PriorityInd"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +param_types[11] = "in"; +param_types[12] = "in"; +param_types[13] = "in"; +param_types[14] = "in"; +param_types[15] = "in"; +param_types[16] = "in"; +param_types[17] = "in"; +param_types[18] = "in"; +param_types[19] = "in"; +param_types[20] = "in"; +param_types[21] = "in"; +param_types[22] = "in"; +param_types[23] = "in"; +param_types[24] = "in"; +param_types[25] = "in"; +param_types[26] = "in"; +param_types[27] = "in"; +param_types[28] = "in"; +param_types[29] = "in"; +param_types[30] = "in"; +param_types[31] = "in"; +param_types[32] = "in"; +param_types[33] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_CONFIGURATION_UPDATE_COMMAND", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ConfigUpdateInd, "p_ConfigUpdateInd", "ConfigUpdateInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Guti, "p_Guti", "NG_MobileIdentity template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__TaiList, "p_TaiList", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AllowedNSSAI, "p_AllowedNSSAI", "NSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__SaiList, "p_SaiList", "NG_TrackingAreaIdList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__FullNetworkName, "p_FullNetworkName", "NetworkName template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ShortNetworkName, "p_ShortNetworkName", "NetworkName template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__LocalTimeZone, "p_LocalTimeZone", "TimeZone template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__LocalTimeZoneAndTime, "p_LocalTimeZoneAndTime", "TimeZoneAndTime template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__DaylightSavingTime, "p_DaylightSavingTime", "DaylightSavingTime template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__LadnInfo, "p_LadnInfo", "LADN_Info template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MicoInd, "p_MicoInd", "MICO_Ind template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NetworkSlicingInd, "p_NetworkSlicingInd", "NetworkSlicingInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ConfiguredNSSAI, "p_ConfiguredNSSAI", "NSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RejectedNSSAI, "p_RejectedNSSAI", "RejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__OperatorAccessCatDefs, "p_OperatorAccessCatDefs", "OperatorAccessCatDefinitions template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__SmsInd, "p_SmsInd", "SMSInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__T3447, "p_T3447", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__CAGInfoList, "p_CAGInfoList", "CAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__UERadioCapId, "p_UERadioCapId", "UERadioCapId template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__UERadioCapIdDeletion, "p_UERadioCapIdDeletion", "UERadioCapIdDeletion template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__RegistrationResult, "p_RegistrationResult", "RegistrationResult template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__TruncatedS__TMSIConfig, "p_TruncatedS_TMSIConfig", "TruncatedS_TMSIConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AddConfigInfo, "p_AddConfigInfo", "AddConfigInfo template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdRejectedNSSAI, "p_ExtdRejectedNSSAI", "ExtdRejectedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServiceLvlAA, "p_ServiceLvlAA", "ServiceLvlAAContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NssrgInfo, "p_NssrgInfo", "NSSRG_Info template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DisasterRoamingWaitRange, "p_DisasterRoamingWaitRange", "RegistrationWaitRange template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DisasterReturnWaitRange, "p_DisasterReturnWaitRange", "RegistrationWaitRange template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DisasterPLMNList, "p_DisasterPLMNList", "DisasterPLMNList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdCAGInfoList, "p_ExtdCAGInfoList", "ExtdCAGInfoList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__UpdatedPEIPS__AssistInfo, "p_UpdatedPEIPS_AssistInfo", "PEIPS_AssistInfo template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NsagInfo, "p_NsagInfo", "NSAG_Info template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PriorityInd, "p_PriorityInd", "PriorityInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMMAND_template& tmp_24 = ret_val.configuration__Update__Command(); +tmp_24.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_24.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_24.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_24.messageType() = NG__NAS__Common::tsc__MT__NG__ConfigurationUpdateCommand; +tmp_24.configUpdateInd() = p__ConfigUpdateInd; +tmp_24.guti() = p__Guti; +tmp_24.taiList() = p__TaiList; +tmp_24.allowedNSSAI() = p__AllowedNSSAI; +tmp_24.saiList() = p__SaiList; +tmp_24.fullNetworkName() = p__FullNetworkName; +tmp_24.shortNetworkName() = p__ShortNetworkName; +tmp_24.localTimeZone() = p__LocalTimeZone; +tmp_24.localTimeZoneAndTime() = p__LocalTimeZoneAndTime; +tmp_24.daylightSavingTime() = p__DaylightSavingTime; +tmp_24.ladnInfo() = p__LadnInfo; +tmp_24.micoInd() = p__MicoInd; +tmp_24.networkSlicingInd() = p__NetworkSlicingInd; +tmp_24.configuredNSSAI() = p__ConfiguredNSSAI; +tmp_24.rejectedNSSAI() = p__RejectedNSSAI; +tmp_24.operatorAccessCatDefs() = p__OperatorAccessCatDefs; +tmp_24.smsInd() = p__SmsInd; +tmp_24.t3447Value() = p__T3447; +tmp_24.cagInfoList() = p__CAGInfoList; +tmp_24.ueRadioCapabilityId() = p__UERadioCapId; +tmp_24.ueRadioCapIdDeletionInd() = p__UERadioCapIdDeletion; +tmp_24.registrationResult() = p__RegistrationResult; +tmp_24.truncatedS__TMSIConfig() = p__TruncatedS__TMSIConfig; +tmp_24.addConfigInfo() = p__AddConfigInfo; +tmp_24.extdRejectedNSSAI() = p__ExtdRejectedNSSAI; +tmp_24.serviceLvlAA() = p__ServiceLvlAA; +tmp_24.nssrgInfo() = p__NssrgInfo; +tmp_24.disasterRoamingWaitRange() = p__DisasterRoamingWaitRange; +tmp_24.disasterReturnWaitRange() = p__DisasterReturnWaitRange; +tmp_24.disasterPLMNList() = p__DisasterPLMNList; +tmp_24.extdCAGInfoList() = p__ExtdCAGInfoList; +tmp_24.updatedPEIPS__AssistInfo() = p__UpdatedPEIPS__AssistInfo; +tmp_24.nsagInfo() = p__NsagInfo; +tmp_24.priorityInd() = p__PriorityInd; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__CONFIGURATION__UPDATE__COMMAND_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__IDENTITY__REQUEST(const BITSTRING& p__IdType) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 872, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_IDENTITY_REQUEST"); +charstring_list param_names; +param_names[0] = "p_IdType"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_IDENTITY_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IdType, "p_IdType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__IDENTITY__REQUEST_template& tmp_26 = ret_val.identity__Request(); +tmp_26.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_26.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_26.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_26.messageType() = NG__NAS__Common::tsc__MT__NG__IdentityRequest; +tmp_26.spareHalfOctet2() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_26.identityType() = NAS__CommonTemplates::cs__IdentityType(p__IdType); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__IDENTITY__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__IDENTITY__RESPONSE(const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__MobileId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 884, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_IDENTITY_RESPONSE"); +charstring_list param_names; +param_names[0] = "p_MobileId"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_IDENTITY_RESPONSE", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__MobileId, "p_MobileId", "NG_MobileIdentity template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__IDENTITY__RESPONSE_template& tmp_27 = ret_val.identity__Response(); +tmp_27.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_27.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_27.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_27.messageType() = NG__NAS__Common::tsc__MT__NG__IdentityResponse; +tmp_27.ngMobileId() = p__MobileId; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__IDENTITY__RESPONSE_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__SECURITY__MODE__COMMAND(const NG__NAS__TypeDefs::NG__NAS__SecurityAlgorithms_template& p__Algs, const BITSTRING& p__KeySetId, const NG__NAS__TypeDefs::NG__UE__SecurityCapability& p__UECap, const NAS__CommonTypeDefs::IMEISV__Request_template& p__IMEISV, const NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& p__EPSAlgs, const NG__NAS__TypeDefs::AdditionalSecurityInfo_template& p__AddInfo, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::ABBA_template& p__ABBA, const NG__NAS__TypeDefs::S1__UE__SecurityCapability_template& p__ReplayedSecurityCap) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 895, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_SECURITY_MODE_COMMAND"); +charstring_list param_names; +param_names[0] = "p_Algs"; +param_names[1] = "p_KeySetId"; +param_names[2] = "p_UECap"; +param_names[3] = "p_IMEISV"; +param_names[4] = "p_EPSAlgs"; +param_names[5] = "p_AddInfo"; +param_names[6] = "p_EAP"; +param_names[7] = "p_ABBA"; +param_names[8] = "p_ReplayedSecurityCap"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_SECURITY_MODE_COMMAND", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Algs, "p_Algs", "NG_NAS_SecurityAlgorithms template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__KeySetId, "p_KeySetId", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__UECap, "p_UECap", "NG_UE_SecurityCapability", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__IMEISV, "p_IMEISV", "IMEISV_Request template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EPSAlgs, "p_EPSAlgs", "NAS_SecurityAlgorithms template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__AddInfo, "p_AddInfo", "AdditionalSecurityInfo template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ABBA, "p_ABBA", "ABBA template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ReplayedSecurityCap, "p_ReplayedSecurityCap", "S1_UE_SecurityCapability template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMMAND_template& tmp_28 = ret_val.security__Mode__Command(); +tmp_28.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_28.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_28.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_28.messageType() = NG__NAS__Common::tsc__MT__NG__SecurityModeCommand; +tmp_28.nasSecurityAlgorithms() = p__Algs; +tmp_28.spareHalfOctet2() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_28.ngNasKSI() = NAS__CommonTemplates::cs__NAS__KeySetIdentifier__lv(p__KeySetId, NAS__CommonTemplates::tsc__NasKsi__NativeSecurityContext); +tmp_28.ueSecurityCapability() = p__UECap; +tmp_28.imeisvRequest() = p__IMEISV; +tmp_28.epsSecurityAlgorithms() = p__EPSAlgs; +tmp_28.add5GSecurityInfo() = p__AddInfo; +tmp_28.eapMessage() = p__EAP; +tmp_28.abba() = p__ABBA; +tmp_28.replayedUESecurityCap() = p__ReplayedSecurityCap; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__SECURITY__MODE__COMMAND_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__SECURITY__MODE__COMPLETE(const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__IMEISV, const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& p__NASMsg, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__NonIMEISV__PEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 924, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_SECURITY_MODE_COMPLETE"); +charstring_list param_names; +param_names[0] = "p_IMEISV"; +param_names[1] = "p_NASMsg"; +param_names[2] = "p_NonIMEISV_PEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_SECURITY_MODE_COMPLETE", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IMEISV, "p_IMEISV", "NG_MobileIdentity template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NASMsg, "p_NASMsg", "ReplayedNASMessageContainer template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__NonIMEISV__PEI, "p_NonIMEISV_PEI", "NG_MobileIdentity template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__SECURITY__MODE__COMPLETE_template& tmp_29 = ret_val.security__Mode__Complete(); +tmp_29.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_29.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_29.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_29.messageType() = NG__NAS__Common::tsc__MT__NG__SecurityModeComplete; +tmp_29.imeisv() = p__IMEISV; +tmp_29.nasMsg() = p__NASMsg; +tmp_29.nonIMEISV__PEI() = p__NonIMEISV__PEI; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__SECURITY__MODE__COMPLETE_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__SECURITY__MODE__REJECT(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 940, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_SECURITY_MODE_REJECT"); +charstring_list param_names; +param_names[0] = "p_Cause"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_SECURITY_MODE_REJECT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__SECURITY__MODE__REJECT_template& tmp_30 = ret_val.security__Mode__Reject(); +tmp_30.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_30.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_30.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_30.messageType() = NG__NAS__Common::tsc__MT__NG__SecurityModeReject; +tmp_30.gmmCause() = p__Cause; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__SECURITY__MODE__REJECT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__ESTABLISHMENT__REQUEST(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::PDU__SessionType_template& p__PDU__SessionType, const NG__NAS__TypeDefs::SSC__Mode_template& p__SSC__Mode, const NG__NAS__TypeDefs::NG__UE__SM__Cap_template& p__UECap, const NG__NAS__TypeDefs::MaxNumPacketFilters_template& p__MaxNumPacketFilters, const NG__NAS__TypeDefs::IntegrityProtMaxDataRate_template& p__IntegrityProtMaxDataRate, const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& p__AlwaysOnPDUSessionReq, const NG__NAS__TypeDefs::SM__PDU__DN__RequestContainer_template& p__PDUReq, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::IPHeaderCompressionConfig_template& p__IPHeaderCompConfig, const NG__NAS__TypeDefs::DS__TT__EthernetPortMACAddr_template& p__DS__TT__EthernetPortMACAddr, const NG__NAS__TypeDefs::UE__DS__TT__ResidenceTime_template& p__UE__DS__TT__ResidenceTime, const NG__NAS__TypeDefs::PortManagementInfoContainer_template& p__PortManagementInfoContainer, const NG__NAS__TypeDefs::EthernetHeaderCompressConfig_template& p__EthernetHeaderCompConfig, const NG__NAS__TypeDefs::PDU__Address_template& p__SuggestedInterfaceId, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::RequestedMBSContainer_template& p__RequestedMBS, const NG__NAS__TypeDefs::PDUSessionPairId_template& p__PduSessionPairId, const NG__NAS__TypeDefs::RSN_template& p__RSN) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 956, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_PDU_SESSION_ESTABLISHMENT_REQUEST"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_PDU_SessionType"; +param_names[3] = "p_SSC_Mode"; +param_names[4] = "p_UECap"; +param_names[5] = "p_MaxNumPacketFilters"; +param_names[6] = "p_IntegrityProtMaxDataRate"; +param_names[7] = "p_AlwaysOnPDUSessionReq"; +param_names[8] = "p_PDUReq"; +param_names[9] = "p_ExtdPCO"; +param_names[10] = "p_IPHeaderCompConfig"; +param_names[11] = "p_DS_TT_EthernetPortMACAddr"; +param_names[12] = "p_UE_DS_TT_ResidenceTime"; +param_names[13] = "p_PortManagementInfoContainer"; +param_names[14] = "p_EthernetHeaderCompConfig"; +param_names[15] = "p_SuggestedInterfaceId"; +param_names[16] = "p_ServiceLvlAA"; +param_names[17] = "p_RequestedMBS"; +param_names[18] = "p_PduSessionPairId"; +param_names[19] = "p_RSN"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +param_types[11] = "in"; +param_types[12] = "in"; +param_types[13] = "in"; +param_types[14] = "in"; +param_types[15] = "in"; +param_types[16] = "in"; +param_types[17] = "in"; +param_types[18] = "in"; +param_types[19] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_PDU_SESSION_ESTABLISHMENT_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PDU__SessionType, "p_PDU_SessionType", "PDU_SessionType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__SSC__Mode, "p_SSC_Mode", "SSC_Mode template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__UECap, "p_UECap", "NG_UE_SM_Cap template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MaxNumPacketFilters, "p_MaxNumPacketFilters", "MaxNumPacketFilters template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__IntegrityProtMaxDataRate, "p_IntegrityProtMaxDataRate", "IntegrityProtMaxDataRate template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AlwaysOnPDUSessionReq, "p_AlwaysOnPDUSessionReq", "AlwaysOnPDUSessionInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDUReq, "p_PDUReq", "SM_PDU_DN_RequestContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__IPHeaderCompConfig, "p_IPHeaderCompConfig", "IPHeaderCompressionConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DS__TT__EthernetPortMACAddr, "p_DS_TT_EthernetPortMACAddr", "DS_TT_EthernetPortMACAddr template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__UE__DS__TT__ResidenceTime, "p_UE_DS_TT_ResidenceTime", "UE_DS_TT_ResidenceTime template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PortManagementInfoContainer, "p_PortManagementInfoContainer", "PortManagementInfoContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EthernetHeaderCompConfig, "p_EthernetHeaderCompConfig", "EthernetHeaderCompressConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__SuggestedInterfaceId, "p_SuggestedInterfaceId", "PDU_Address template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServiceLvlAA, "p_ServiceLvlAA", "ServiceLvlAAContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RequestedMBS, "p_RequestedMBS", "RequestedMBSContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PduSessionPairId, "p_PduSessionPairId", "PDUSessionPairId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RSN, "p_RSN", "RSN template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& tmp_31 = ret_val.pdu__Session__Establishment__Request(); +tmp_31.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_31.pduSessionId() = p__PDU__SessionId; +tmp_31.procedureTransactionIdentifier() = p__PTI; +tmp_31.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionEstablishmentRequest; +tmp_31.integrityProtMaxDataRate() = p__IntegrityProtMaxDataRate; +tmp_31.pduSessionType() = p__PDU__SessionType; +tmp_31.sscMode() = p__SSC__Mode; +tmp_31.smCapability() = p__UECap; +tmp_31.maxNumPacketFilters() = p__MaxNumPacketFilters; +tmp_31.alwaysOnPDUSessionReq() = p__AlwaysOnPDUSessionReq; +tmp_31.smPDU__RequestContainer() = p__PDUReq; +tmp_31.extdProtocolConfigurationOptions() = p__ExtdPCO; +tmp_31.ipHeaderCompressionConfig() = p__IPHeaderCompConfig; +tmp_31.ds__TT__EthernetPortMACAddr() = p__DS__TT__EthernetPortMACAddr; +tmp_31.ueDS__TT__ResidenceTime() = p__UE__DS__TT__ResidenceTime; +tmp_31.portManagementInfoContainer() = p__PortManagementInfoContainer; +tmp_31.ethernetHeaderCompressConfig() = p__EthernetHeaderCompConfig; +tmp_31.suggestedInterfaceId() = p__SuggestedInterfaceId; +tmp_31.serviceLvlAA() = p__ServiceLvlAA; +tmp_31.requestedMBS() = p__RequestedMBS; +tmp_31.pduSessionPairId() = p__PduSessionPairId; +tmp_31.rsn() = p__RSN; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__PDU__SESSION__ESTABLISHMENT__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__ESTABLISHMENT__ACCEPT(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::SSC__Mode_template& p__SSC__Mode, const NG__NAS__TypeDefs::PDU__SessionType_template& p__PDU__SessionType, const NG__NAS__TypeDefs::QoS__Rules_template& p__QoS__Rules, const NG__NAS__TypeDefs::Session__AMBR_template& p__Session__AMBR, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NG__NAS__TypeDefs::PDU__Address_template& p__PDU__Address, const NAS__CommonTypeDefs::GPRS__Timer_template& p__RQTimer, const NG__NAS__TypeDefs::S__NSSAI__Type_template& p__S__NSSAI, const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& p__AlwaysOnPDUSessionInd, const NG__NAS__TypeDefs::MappedEPSBearerContexts_template& p__MappedEPSBearerContexts, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::QoSFlowDescr_template& p__QoSFlowDescr, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::DNN_template& p__DNN, const NG__NAS__TypeDefs::NGSM__NetworkFeatureSupport_template& p__NGSM__NtwkFeatSupport, const NAS__CommonTypeDefs::ServingPLMNRateControl_template& p__ServingPLMNRateCtrl, const NG__NAS__TypeDefs::ATSSSContainer_template& p__ATSSSContainer, const NAS__CommonTypeDefs::ControlPlaneInd_template& p__ControlPlaneInd, const NG__NAS__TypeDefs::IPHeaderCompressionConfig_template& p__IPHeaderCompConfig, const NG__NAS__TypeDefs::EthernetHeaderCompressConfig_template& p__EthernetHeaderCompConfig, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::ReceivedMBSContainer_template& p__ReceivedMBS) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1004, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_SSC_Mode"; +param_names[3] = "p_PDU_SessionType"; +param_names[4] = "p_QoS_Rules"; +param_names[5] = "p_Session_AMBR"; +param_names[6] = "p_Cause"; +param_names[7] = "p_PDU_Address"; +param_names[8] = "p_RQTimer"; +param_names[9] = "p_S_NSSAI"; +param_names[10] = "p_AlwaysOnPDUSessionInd"; +param_names[11] = "p_MappedEPSBearerContexts"; +param_names[12] = "p_EAP"; +param_names[13] = "p_QoSFlowDescr"; +param_names[14] = "p_ExtdPCO"; +param_names[15] = "p_DNN"; +param_names[16] = "p_NGSM_NtwkFeatSupport"; +param_names[17] = "p_ServingPLMNRateCtrl"; +param_names[18] = "p_ATSSSContainer"; +param_names[19] = "p_ControlPlaneInd"; +param_names[20] = "p_IPHeaderCompConfig"; +param_names[21] = "p_EthernetHeaderCompConfig"; +param_names[22] = "p_ServiceLvlAA"; +param_names[23] = "p_ReceivedMBS"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +param_types[11] = "in"; +param_types[12] = "in"; +param_types[13] = "in"; +param_types[14] = "in"; +param_types[15] = "in"; +param_types[16] = "in"; +param_types[17] = "in"; +param_types[18] = "in"; +param_types[19] = "in"; +param_types[20] = "in"; +param_types[21] = "in"; +param_types[22] = "in"; +param_types[23] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SSC__Mode, "p_SSC_Mode", "SSC_Mode template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__SessionType, "p_PDU_SessionType", "PDU_SessionType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__QoS__Rules, "p_QoS_Rules", "QoS_Rules template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Session__AMBR, "p_Session_AMBR", "Session_AMBR template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PDU__Address, "p_PDU_Address", "PDU_Address template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RQTimer, "p_RQTimer", "GPRS_Timer template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__S__NSSAI, "p_S_NSSAI", "S_NSSAI_Type template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AlwaysOnPDUSessionInd, "p_AlwaysOnPDUSessionInd", "AlwaysOnPDUSessionInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MappedEPSBearerContexts, "p_MappedEPSBearerContexts", "MappedEPSBearerContexts template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__QoSFlowDescr, "p_QoSFlowDescr", "QoSFlowDescr template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__DNN, "p_DNN", "DNN template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NGSM__NtwkFeatSupport, "p_NGSM_NtwkFeatSupport", "NGSM_NetworkFeatureSupport template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServingPLMNRateCtrl, "p_ServingPLMNRateCtrl", "ServingPLMNRateControl template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ATSSSContainer, "p_ATSSSContainer", "ATSSSContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ControlPlaneInd, "p_ControlPlaneInd", "ControlPlaneInd template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__IPHeaderCompConfig, "p_IPHeaderCompConfig", "IPHeaderCompressionConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EthernetHeaderCompConfig, "p_EthernetHeaderCompConfig", "EthernetHeaderCompressConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServiceLvlAA, "p_ServiceLvlAA", "ServiceLvlAAContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ReceivedMBS, "p_ReceivedMBS", "ReceivedMBSContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& tmp_32 = ret_val.pdu__Session__Establishment__Accept(); +tmp_32.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_32.pduSessionId() = p__PDU__SessionId; +tmp_32.procedureTransactionIdentifier() = p__PTI; +tmp_32.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionEstablishmentAccept; +tmp_32.sscMode() = p__SSC__Mode; +tmp_32.pduSessionType() = p__PDU__SessionType; +tmp_32.authorizedQoSRules() = p__QoS__Rules; +tmp_32.sessionAMBR() = p__Session__AMBR; +tmp_32.gsmCause() = p__Cause; +tmp_32.pduAddress() = p__PDU__Address; +tmp_32.rqTimerValue() = p__RQTimer; +tmp_32.s__NSSAI() = p__S__NSSAI; +tmp_32.alwaysOnPDUSessionInd() = p__AlwaysOnPDUSessionInd; +tmp_32.mappedEPSContexts() = p__MappedEPSBearerContexts; +tmp_32.eapMessage() = p__EAP; +tmp_32.authorizedQoSFlowDescr() = p__QoSFlowDescr; +tmp_32.extdProtocolConfigurationOptions() = p__ExtdPCO; +tmp_32.dnn() = p__DNN; +tmp_32.ngs__NetworkFeatureSupport() = p__NGSM__NtwkFeatSupport; +tmp_32.servingPLMNRateControl() = p__ServingPLMNRateCtrl; +tmp_32.atsssContainer() = p__ATSSSContainer; +tmp_32.controlPlaneOnlyIndication() = p__ControlPlaneInd; +tmp_32.ipHeaderCompressionConfig() = p__IPHeaderCompConfig; +tmp_32.ethernetHeaderCompressConfig() = p__EthernetHeaderCompConfig; +tmp_32.serviceLvlAA() = p__ServiceLvlAA; +tmp_32.receivedMBS() = p__ReceivedMBS; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__ESTABLISHMENT__REJECT(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__BackOff, const NG__NAS__TypeDefs::AllowedSSCMode_template& p__SSC__Mode, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NAS__CommonTypeDefs::ReAttemptIndicator_template& p__ReAttemptIndicator, const NG__NAS__TypeDefs::NGSM__CongestionReattemptInd_template& p__NGSM__CongestionReattemptInd, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1060, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PDU_SESSION_ESTABLISHMENT_REJECT"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_Cause"; +param_names[3] = "p_BackOff"; +param_names[4] = "p_SSC_Mode"; +param_names[5] = "p_EAP"; +param_names[6] = "p_ExtdPCO"; +param_names[7] = "p_ReAttemptIndicator"; +param_names[8] = "p_NGSM_CongestionReattemptInd"; +param_names[9] = "p_ServiceLvlAA"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PDU_SESSION_ESTABLISHMENT_REJECT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__BackOff, "p_BackOff", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__SSC__Mode, "p_SSC_Mode", "AllowedSSCMode template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ReAttemptIndicator, "p_ReAttemptIndicator", "ReAttemptIndicator template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__NGSM__CongestionReattemptInd, "p_NGSM_CongestionReattemptInd", "NGSM_CongestionReattemptInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServiceLvlAA, "p_ServiceLvlAA", "ServiceLvlAAContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& tmp_33 = ret_val.pdu__Session__Establishment__Reject(); +tmp_33.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_33.pduSessionId() = p__PDU__SessionId; +tmp_33.procedureTransactionIdentifier() = p__PTI; +tmp_33.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionEstablishmentReject; +tmp_33.gsmCause() = p__Cause; +tmp_33.backOffTimerValue() = p__BackOff; +tmp_33.allowedSSCMode() = p__SSC__Mode; +tmp_33.eapMessage() = p__EAP; +tmp_33.ngsmCongestionReattemptInd() = p__NGSM__CongestionReattemptInd; +tmp_33.extdProtocolConfigurationOptions() = p__ExtdPCO; +tmp_33.reattemptInd() = p__ReAttemptIndicator; +tmp_33.serviceLvlAA() = p__ServiceLvlAA; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PDU__SESSION__ESTABLISHMENT__REJECT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__AUTHENTICATION__COMMAND(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1088, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PDU_SESSION_AUTHENTICATION_COMMAND"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_EAP"; +param_names[3] = "p_ExtdPCO"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PDU_SESSION_AUTHENTICATION_COMMAND", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& tmp_34 = ret_val.pdu__Session__Authentication__Command(); +tmp_34.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_34.pduSessionId() = p__PDU__SessionId; +tmp_34.procedureTransactionIdentifier() = p__PTI; +tmp_34.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionAuthenticationCommand; +tmp_34.eapMessage() = p__EAP; +tmp_34.extdProtocolConfigurationOptions() = p__ExtdPCO; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PDU__SESSION__AUTHENTICATION__COMMAND_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__AUTHENTICATION__COMPLETE(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1104, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_PDU_SESSION_AUTHENTICATION_COMPLETE"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_EAP"; +param_names[3] = "p_ExtdPCO"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_PDU_SESSION_AUTHENTICATION_COMPLETE", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& tmp_35 = ret_val.pdu__Session__Authentication__Complete(); +tmp_35.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_35.pduSessionId() = p__PDU__SessionId; +tmp_35.procedureTransactionIdentifier() = p__PTI; +tmp_35.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionAuthenticationComplete; +tmp_35.eapMessage() = p__EAP; +tmp_35.extdProtocolConfigurationOptions() = p__ExtdPCO; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__PDU__SESSION__AUTHENTICATION__COMPLETE_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__AUTHENTICATION__RESULT(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1120, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PDU_SESSION_AUTHENTICATION_RESULT"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_EAP"; +param_names[3] = "p_ExtdPCO"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PDU_SESSION_AUTHENTICATION_RESULT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__AUTHENTICATION__RESULT_template& tmp_36 = ret_val.pdu__Session__Authentication__Result(); +tmp_36.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_36.pduSessionId() = p__PDU__SessionId; +tmp_36.procedureTransactionIdentifier() = p__PTI; +tmp_36.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionAuthenticationResult; +tmp_36.eapMessage() = p__EAP; +tmp_36.extdProtocolConfigurationOptions() = p__ExtdPCO; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PDU__SESSION__AUTHENTICATION__RESULT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__MODIFICATION__REQUEST(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::NG__UE__SM__Cap_template& p__NG__UE__SM__Cap, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NG__NAS__TypeDefs::MaxNumPacketFilters_template& p__MaxNumPacketFilters, const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& p__AlwaysOnPDUSessionReq, const NG__NAS__TypeDefs::IntegrityProtMaxDataRate_template& p__IntegrityProtMaxDataRate, const NG__NAS__TypeDefs::QoS__Rules_template& p__QoS__Rules, const NG__NAS__TypeDefs::QoSFlowDescr_template& p__QoSFlowDescr, const NG__NAS__TypeDefs::MappedEPSBearerContexts_template& p__MappedEPSBearerContexts, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::PortManagementInfoContainer_template& p__PortManagementInfoContainer, const NG__NAS__TypeDefs::IPHeaderCompressionConfig_template& p__IPHeaderCompConfig, const NG__NAS__TypeDefs::EthernetHeaderCompressConfig_template& p__EthernetHeaderCompConfig, const NG__NAS__TypeDefs::RequestedMBSContainer_template& p__RequestedMBS, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1136, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_PDU_SESSION_MODIFICATION_REQUEST"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_NG_UE_SM_Cap"; +param_names[3] = "p_Cause"; +param_names[4] = "p_MaxNumPacketFilters"; +param_names[5] = "p_AlwaysOnPDUSessionReq"; +param_names[6] = "p_IntegrityProtMaxDataRate"; +param_names[7] = "p_QoS_Rules"; +param_names[8] = "p_QoSFlowDescr"; +param_names[9] = "p_MappedEPSBearerContexts"; +param_names[10] = "p_ExtdPCO"; +param_names[11] = "p_PortManagementInfoContainer"; +param_names[12] = "p_IPHeaderCompConfig"; +param_names[13] = "p_EthernetHeaderCompConfig"; +param_names[14] = "p_RequestedMBS"; +param_names[15] = "p_ServiceLvlAA"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +param_types[11] = "in"; +param_types[12] = "in"; +param_types[13] = "in"; +param_types[14] = "in"; +param_types[15] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_PDU_SESSION_MODIFICATION_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NG__UE__SM__Cap, "p_NG_UE_SM_Cap", "NG_UE_SM_Cap template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MaxNumPacketFilters, "p_MaxNumPacketFilters", "MaxNumPacketFilters template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__AlwaysOnPDUSessionReq, "p_AlwaysOnPDUSessionReq", "AlwaysOnPDUSessionInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__IntegrityProtMaxDataRate, "p_IntegrityProtMaxDataRate", "IntegrityProtMaxDataRate template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__QoS__Rules, "p_QoS_Rules", "QoS_Rules template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__QoSFlowDescr, "p_QoSFlowDescr", "QoSFlowDescr template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MappedEPSBearerContexts, "p_MappedEPSBearerContexts", "MappedEPSBearerContexts template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PortManagementInfoContainer, "p_PortManagementInfoContainer", "PortManagementInfoContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__IPHeaderCompConfig, "p_IPHeaderCompConfig", "IPHeaderCompressionConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EthernetHeaderCompConfig, "p_EthernetHeaderCompConfig", "EthernetHeaderCompressConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RequestedMBS, "p_RequestedMBS", "RequestedMBSContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServiceLvlAA, "p_ServiceLvlAA", "ServiceLvlAAContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__REQUEST_template& tmp_37 = ret_val.pdu__Session__Modification__Request(); +tmp_37.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_37.pduSessionId() = p__PDU__SessionId; +tmp_37.procedureTransactionIdentifier() = p__PTI; +tmp_37.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionModificationRequest; +tmp_37.smCapability() = p__NG__UE__SM__Cap; +tmp_37.gsmCause() = p__Cause; +tmp_37.maxNumPacketFilters() = p__MaxNumPacketFilters; +tmp_37.alwaysOnPDUSessionReq() = p__AlwaysOnPDUSessionReq; +tmp_37.integrityProtMaxDataRate() = p__IntegrityProtMaxDataRate; +tmp_37.requestedQoSRules() = p__QoS__Rules; +tmp_37.requestedQoSFlowDescr() = p__QoSFlowDescr; +tmp_37.mappedEPSbearerContexts() = p__MappedEPSBearerContexts; +tmp_37.extdProtocolConfigurationOptions() = p__ExtdPCO; +tmp_37.portManagementInfoContainer() = p__PortManagementInfoContainer; +tmp_37.ipHeaderCompressionConfig() = p__IPHeaderCompConfig; +tmp_37.ethernetHeaderCompressConfig() = p__EthernetHeaderCompConfig; +tmp_37.requestedMBS() = p__RequestedMBS; +tmp_37.serviceLvlAA() = p__ServiceLvlAA; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__PDU__SESSION__MODIFICATION__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__MODIFICATION__COMMAND(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NG__NAS__TypeDefs::Session__AMBR_template& p__Session__AMBR, const NAS__CommonTypeDefs::GPRS__Timer_template& p__RQTimer, const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& p__AlwaysOnPDUSessionInd, const NG__NAS__TypeDefs::QoS__Rules_template& p__QoS__Rules, const NG__NAS__TypeDefs::QoSFlowDescr_template& p__QoSFlowDescr, const NG__NAS__TypeDefs::MappedEPSBearerContexts_template& p__MappedEPSBearerContexts, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::ATSSSContainer_template& p__ATSSSContainer, const NG__NAS__TypeDefs::IPHeaderCompressionConfig_template& p__IPHeaderCompConfig, const NG__NAS__TypeDefs::PortManagementInfoContainer_template& p__PortManagementInfoContainer, const NAS__CommonTypeDefs::ServingPLMNRateControl_template& p__ServingPLMNRateCtrl, const NG__NAS__TypeDefs::EthernetHeaderCompressConfig_template& p__EthernetHeaderCompConfig, const NG__NAS__TypeDefs::ReceivedMBSContainer_template& p__ReceivedMBS, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1176, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PDU_SESSION_MODIFICATION_COMMAND"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_Cause"; +param_names[3] = "p_Session_AMBR"; +param_names[4] = "p_RQTimer"; +param_names[5] = "p_AlwaysOnPDUSessionInd"; +param_names[6] = "p_QoS_Rules"; +param_names[7] = "p_QoSFlowDescr"; +param_names[8] = "p_MappedEPSBearerContexts"; +param_names[9] = "p_ExtdPCO"; +param_names[10] = "p_ATSSSContainer"; +param_names[11] = "p_IPHeaderCompConfig"; +param_names[12] = "p_PortManagementInfoContainer"; +param_names[13] = "p_ServingPLMNRateCtrl"; +param_names[14] = "p_EthernetHeaderCompConfig"; +param_names[15] = "p_ReceivedMBS"; +param_names[16] = "p_ServiceLvlAA"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +param_types[9] = "in"; +param_types[10] = "in"; +param_types[11] = "in"; +param_types[12] = "in"; +param_types[13] = "in"; +param_types[14] = "in"; +param_types[15] = "in"; +param_types[16] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PDU_SESSION_MODIFICATION_COMMAND", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Session__AMBR, "p_Session_AMBR", "Session_AMBR template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__RQTimer, "p_RQTimer", "GPRS_Timer template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__AlwaysOnPDUSessionInd, "p_AlwaysOnPDUSessionInd", "AlwaysOnPDUSessionInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__QoS__Rules, "p_QoS_Rules", "QoS_Rules template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__QoSFlowDescr, "p_QoSFlowDescr", "QoSFlowDescr template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MappedEPSBearerContexts, "p_MappedEPSBearerContexts", "MappedEPSBearerContexts template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__ATSSSContainer, "p_ATSSSContainer", "ATSSSContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__IPHeaderCompConfig, "p_IPHeaderCompConfig", "IPHeaderCompressionConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PortManagementInfoContainer, "p_PortManagementInfoContainer", "PortManagementInfoContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServingPLMNRateCtrl, "p_ServingPLMNRateCtrl", "ServingPLMNRateControl template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EthernetHeaderCompConfig, "p_EthernetHeaderCompConfig", "EthernetHeaderCompressConfig template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ReceivedMBS, "p_ReceivedMBS", "ReceivedMBSContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServiceLvlAA, "p_ServiceLvlAA", "ServiceLvlAAContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND_template& tmp_38 = ret_val.pdu__Session__Modification__Command(); +tmp_38.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_38.pduSessionId() = p__PDU__SessionId; +tmp_38.procedureTransactionIdentifier() = p__PTI; +tmp_38.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionModificationCommand; +tmp_38.gsmCause() = p__Cause; +tmp_38.sessionAMBR() = p__Session__AMBR; +tmp_38.rqTimerValue() = p__RQTimer; +tmp_38.alwaysOnPDUSessionInd() = p__AlwaysOnPDUSessionInd; +tmp_38.authorizedQoSRules() = p__QoS__Rules; +tmp_38.mappedEPSContexts() = p__MappedEPSBearerContexts; +tmp_38.authorizedQoSFlowDescr() = p__QoSFlowDescr; +tmp_38.extdProtocolConfigurationOptions() = p__ExtdPCO; +tmp_38.atsssContainer() = p__ATSSSContainer; +tmp_38.ipHeaderCompressionConfig() = p__IPHeaderCompConfig; +tmp_38.portManagementInfoContainer() = p__PortManagementInfoContainer; +tmp_38.servingPLMNRateControl() = p__ServingPLMNRateCtrl; +tmp_38.ethernetHeaderCompressConfig() = p__EthernetHeaderCompConfig; +tmp_38.receivedMBS() = p__ReceivedMBS; +tmp_38.serviceLvlAA() = p__ServiceLvlAA; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PDU__SESSION__MODIFICATION__COMMAND_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__MODIFICATION__COMPLETE(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::PortManagementInfoContainer_template& p__PortManagementInfoContainer) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1218, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_PDU_SESSION_MODIFICATION_COMPLETE"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_ExtdPCO"; +param_names[3] = "p_PortManagementInfoContainer"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_PDU_SESSION_MODIFICATION_COMPLETE", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__PortManagementInfoContainer, "p_PortManagementInfoContainer", "PortManagementInfoContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMPLETE_template& tmp_39 = ret_val.pdu__Session__Modification__Complete(); +tmp_39.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_39.pduSessionId() = p__PDU__SessionId; +tmp_39.procedureTransactionIdentifier() = p__PTI; +tmp_39.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionModificationComplete; +tmp_39.extdProtocolConfigurationOptions() = p__ExtdPCO; +tmp_39.portManagementInfoContainer() = p__PortManagementInfoContainer; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__PDU__SESSION__MODIFICATION__COMPLETE_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1234, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_Cause"; +param_names[3] = "p_ExtdPCO"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& tmp_40 = ret_val.pdu__Session__Modification__Command__Reject(); +tmp_40.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_40.pduSessionId() = p__PDU__SessionId; +tmp_40.procedureTransactionIdentifier() = p__PTI; +tmp_40.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionModificationCommandReject; +tmp_40.gsmCause() = p__Cause; +tmp_40.extdProtocolConfigurationOptions() = p__ExtdPCO; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__RELEASE__REQUEST(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1250, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_PDU_SESSION_RELEASE_REQUEST"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_Cause"; +param_names[3] = "p_ExtdPCO"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_PDU_SESSION_RELEASE_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REQUEST_template& tmp_41 = ret_val.pdu__Session__Release__Request(); +tmp_41.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_41.pduSessionId() = p__PDU__SessionId; +tmp_41.procedureTransactionIdentifier() = p__PTI; +tmp_41.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseRequest; +tmp_41.gsmCause() = p__Cause; +tmp_41.extdProtocolConfigurationOptions() = p__ExtdPCO; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__PDU__SESSION__RELEASE__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__RELEASE__REJECT(const NG__NAS__TypeDefs::NG__PDU__SessionId& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause& p__Cause, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1266, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PDU_SESSION_RELEASE_REJECT"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_Cause"; +param_names[3] = "p_ExtdPCO"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PDU_SESSION_RELEASE_REJECT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__REJECT_template& tmp_42 = ret_val.pdu__Session__Release__Reject(); +tmp_42.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_42.pduSessionId() = p__PDU__SessionId; +tmp_42.procedureTransactionIdentifier() = p__PTI; +tmp_42.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseReject; +tmp_42.gsmCause() = p__Cause; +tmp_42.extdProtocolConfigurationOptions() = p__ExtdPCO; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PDU__SESSION__RELEASE__REJECT_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__RELEASE__COMMAND(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__BackOffTimer, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::NGSM__CongestionReattemptInd_template& p__NGSM__CongestionReattemptInd, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::AccessType_template& p__AccessType, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1281, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PDU_SESSION_RELEASE_COMMAND"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_Cause"; +param_names[3] = "p_BackOffTimer"; +param_names[4] = "p_EAP"; +param_names[5] = "p_NGSM_CongestionReattemptInd"; +param_names[6] = "p_ExtdPCO"; +param_names[7] = "p_AccessType"; +param_names[8] = "p_ServiceLvlAA"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +param_types[6] = "in"; +param_types[7] = "in"; +param_types[8] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PDU_SESSION_RELEASE_COMMAND", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__BackOffTimer, "p_BackOffTimer", "GPRS_Timer2 template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__EAP, "p_EAP", "EAP_Message template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NGSM__CongestionReattemptInd, "p_NGSM_CongestionReattemptInd", "NGSM_CongestionReattemptInd template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.add_variable(&p__AccessType, "p_AccessType", "AccessType template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ServiceLvlAA, "p_ServiceLvlAA", "ServiceLvlAAContainer template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMMAND_template& tmp_43 = ret_val.pdu__Session__Release__Command(); +tmp_43.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_43.pduSessionId() = p__PDU__SessionId; +tmp_43.procedureTransactionIdentifier() = p__PTI; +tmp_43.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseCommand; +tmp_43.gsmCause() = p__Cause; +tmp_43.backOffTimerValue() = p__BackOffTimer; +tmp_43.eapMessage() = p__EAP; +tmp_43.ngsmCongestionReattemptInd() = p__NGSM__CongestionReattemptInd; +tmp_43.extdProtocolConfigurationOptions() = p__ExtdPCO; +tmp_43.accessType() = p__AccessType; +tmp_43.serviceLvlAA() = p__ServiceLvlAA; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PDU__SESSION__RELEASE__COMMAND_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__RELEASE__COMPLETE(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1307, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_PDU_SESSION_RELEASE_COMPLETE"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_Cause"; +param_names[3] = "p_ExtdPCO"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_PDU_SESSION_RELEASE_COMPLETE", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ExtdPCO, "p_ExtdPCO", "ExtdProtocolConfigOptions template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__PDU__SESSION__RELEASE__COMPLETE_template& tmp_44 = ret_val.pdu__Session__Release__Complete(); +tmp_44.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_44.pduSessionId() = p__PDU__SessionId; +tmp_44.procedureTransactionIdentifier() = p__PTI; +tmp_44.messageType() = NG__NAS__Common::tsc__MT__NG__PDUSessionReleaseComplete; +tmp_44.gsmCause() = p__Cause; +tmp_44.extdProtocolConfigurationOptions() = p__ExtdPCO; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__PDU__SESSION__RELEASE__COMPLETE_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__GSM__STATUS(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1323, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_GSM_STATUS"); +charstring_list param_names; +param_names[0] = "p_PDU_SessionId"; +param_names[1] = "p_PTI"; +param_names[2] = "p_Cause"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_GSM_STATUS", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PDU__SessionId, "p_PDU_SessionId", "NG_PDU_SessionId template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__PTI, "p_PTI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__GSM__STATUS_template& tmp_45 = ret_val.gsm__Status(); +tmp_45.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GSM; +tmp_45.pduSessionId() = p__PDU__SessionId; +tmp_45.procedureTransactionIdentifier() = p__PTI; +tmp_45.messageType() = NG__NAS__Common::tsc__MT__NG__GSM__Status; +tmp_45.gsmCause() = p__Cause; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__GSM__STATUS_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::EAP__Message_template cr__EAP__Message(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__EAPMsg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1348, TTCN_Location::LOCATION_TEMPLATE, "cr_EAP_Message"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_EAPMsg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_EAP_Message", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EAPMsg, "p_EAPMsg", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::EAP__Message_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = ANY_VALUE; +ret_val.eapMsg() = p__EAPMsg; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__EAP__Message_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::EAP__Message_template cs__EAP__Message(const OCTETSTRING& p__EncodedEapMsg, const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1356, TTCN_Location::LOCATION_TEMPLATE, "cs_EAP_Message"); +charstring_list param_names; +param_names[0] = "p_EncodedEapMsg"; +param_names[1] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_EAP_Message", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__EncodedEapMsg, "p_EncodedEapMsg", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::EAP__Message_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = int2oct(p__EncodedEapMsg.lengthof(), 2); +ret_val.eapMsg() = p__EncodedEapMsg; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EAP__Message_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::RegistrationResult_template cs__RegistrationResult(const BITSTRING& p__Result, const BITSTRING& p__SMS, const BITSTRING& p__EmergencyRegistered, const BITSTRING& p__NssaaPerformed, const BITSTRING& p__DisasterRoamingResult) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1405, TTCN_Location::LOCATION_TEMPLATE, "cs_RegistrationResult"); +charstring_list param_names; +param_names[0] = "p_Result"; +param_names[1] = "p_SMS"; +param_names[2] = "p_EmergencyRegistered"; +param_names[3] = "p_NssaaPerformed"; +param_names[4] = "p_DisasterRoamingResult"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("cs_RegistrationResult", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Result, "p_Result", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SMS, "p_SMS", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EmergencyRegistered, "p_EmergencyRegistered", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NssaaPerformed, "p_NssaaPerformed", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DisasterRoamingResult, "p_DisasterRoamingResult", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::RegistrationResult_template ret_val; +ret_val.iel() = os_1; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare1; +ret_val.disasterRoamingResult() = p__DisasterRoamingResult; +ret_val.emergencyRegistered() = p__EmergencyRegistered; +ret_val.nssaaPerformed() = p__NssaaPerformed; +ret_val.smsAllowed() = p__SMS; +ret_val.resultValue() = p__Result; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__RegistrationResult_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::RegistrationType_template cr__RegistrationType(const BITSTRING_template& p__Type, const BITSTRING_template& p__FOR) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1421, TTCN_Location::LOCATION_TEMPLATE, "cr_RegistrationType"); +charstring_list param_names; +param_names[0] = "p_Type"; +param_names[1] = "p_FOR"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_RegistrationType", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Type, "p_Type", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__FOR, "p_FOR", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::RegistrationType_template ret_val; +ret_val.fOR() = p__FOR; +ret_val.registrationType() = p__Type; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__RegistrationType_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::AuthenticationResponseParameter_template cr__AuthenticationResponseParameter(const BITSTRING_template& p__ExpectedRES) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1437, TTCN_Location::LOCATION_TEMPLATE, "cr_AuthenticationResponseParameter"); +charstring_list param_names; +param_names[0] = "p_ExpectedRES"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_AuthenticationResponseParameter", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ExpectedRES, "p_ExpectedRES", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::AuthenticationResponseParameter_template ret_val; +ret_val.iei() = os_8; +ret_val.iel() = ANY_VALUE; +ret_val.res() = p__ExpectedRES; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__AuthenticationResponseParameter_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__PartialTaiType_template cs__NG__NonConsecutivePartialTaiList(const OCTETSTRING& p__PlmnId, const NG__NAS__TypeDefs::NG__NAS__TacList& p__TacList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1444, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NonConsecutivePartialTaiList"); +charstring_list param_names; +param_names[0] = "p_PlmnId"; +param_names[1] = "p_TacList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NonConsecutivePartialTaiList", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PlmnId, "p_PlmnId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TacList, "p_TacList", "NG_NAS_TacList", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__PartialTaiType_template ret_val; +{ +NG__NAS__TypeDefs::NG__Type0List_template& tmp_46 = ret_val.type0List(); +tmp_46.set_size(1); +{ +NG__NAS__TypeDefs::NG__Type0Element_template& tmp_47 = tmp_46[0]; +tmp_47.plmnId() = p__PlmnId; +tmp_47.tacList() = p__TacList; +} +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NonConsecutivePartialTaiList_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__ListOfPartialTaiList_template cs__NG__ListNonConsecutivePartialTaiList(const OCTETSTRING& p__PlmnId, const NG__NAS__TypeDefs::NG__NAS__TacList& p__TacList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1455, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_ListNonConsecutivePartialTaiList"); +charstring_list param_names; +param_names[0] = "p_PlmnId"; +param_names[1] = "p_TacList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_ListNonConsecutivePartialTaiList", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PlmnId, "p_PlmnId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TacList, "p_TacList", "NG_NAS_TacList", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__ListOfPartialTaiList_template ret_val; +ret_val.allowedType() = NAS__CommonTemplates::tsc__Spare1; +ret_val.typeOfList() = NAS__CommonTemplates::tsc__NonConsecutiveTacs; +ret_val.numberOfElements() = int2bit((p__TacList.lengthof() - 1), 5); +ret_val.partialTaiList() = cs__NG__NonConsecutivePartialTaiList(p__PlmnId, p__TacList); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__ListNonConsecutivePartialTaiList_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__TrackingAreaIdList_template cs__NG__TAIListNonConsecutive(const OCTETSTRING& p__PlmnId, const NG__NAS__TypeDefs::NG__NAS__TacList& p__TacList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1464, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_TAIListNonConsecutive"); +charstring_list param_names; +param_names[0] = "p_PlmnId"; +param_names[1] = "p_TacList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_TAIListNonConsecutive", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PlmnId, "p_PlmnId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TacList, "p_TacList", "NG_NAS_TacList", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__TrackingAreaIdList_template ret_val; +ret_val.iei() = os_9; +{ +NG__NAS__TypeDefs::NG__TrackingAreaIdList__LV_template& tmp_48 = ret_val.lvPart(); +tmp_48.iel() = int2oct((4 + (3 * p__TacList.lengthof())), 1); +{ +NG__NAS__TypeDefs::NG__TrackingAreaIdList__LV_listOfPartialTais_template& tmp_49 = tmp_48.listOfPartialTais(); +tmp_49.set_size(1); +tmp_49[0] = cs__NG__ListNonConsecutivePartialTaiList(p__PlmnId, p__TacList); +} +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__TAIListNonConsecutive_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__PartialTaiType_template cs__NG__ConsecutivePartialTaiList(const NG__NAS__TypeDefs::NG__PartialTai& p__PartialTac) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1474, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_ConsecutivePartialTaiList"); +charstring_list param_names; +param_names[0] = "p_PartialTac"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_ConsecutivePartialTaiList", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PartialTac, "p_PartialTac", "NG_PartialTai", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__PartialTaiType_template ret_val; +{ +NG__NAS__TypeDefs::NG__Type1List_template& tmp_50 = ret_val.type1List(); +tmp_50.set_size(1); +tmp_50[0].partialTac() = p__PartialTac; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__ConsecutivePartialTaiList_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__ListOfPartialTaiList_template cs__NG__ListConsecutivePartialTaiList(const BITSTRING& p__NumberOfElements, const NG__NAS__TypeDefs::NG__PartialTai& p__PartialTac) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1483, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_ListConsecutivePartialTaiList"); +charstring_list param_names; +param_names[0] = "p_NumberOfElements"; +param_names[1] = "p_PartialTac"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_ListConsecutivePartialTaiList", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NumberOfElements, "p_NumberOfElements", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PartialTac, "p_PartialTac", "NG_PartialTai", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__ListOfPartialTaiList_template ret_val; +ret_val.allowedType() = NAS__CommonTemplates::tsc__Spare1; +ret_val.typeOfList() = NAS__CommonTemplates::tsc__ConsecutiveTacs; +ret_val.numberOfElements() = p__NumberOfElements; +ret_val.partialTaiList() = cs__NG__ConsecutivePartialTaiList(p__PartialTac); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__ListConsecutivePartialTaiList_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__TrackingAreaIdList_template cs__NG__TAIListConsecutive(const BITSTRING& p__NumberOfElements, const NG__NAS__TypeDefs::NG__PartialTai& p__PartialTac) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1492, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_TAIListConsecutive"); +charstring_list param_names; +param_names[0] = "p_NumberOfElements"; +param_names[1] = "p_PartialTac"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_TAIListConsecutive", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NumberOfElements, "p_NumberOfElements", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PartialTac, "p_PartialTac", "NG_PartialTai", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__TrackingAreaIdList_template ret_val; +ret_val.iei() = os_9; +{ +NG__NAS__TypeDefs::NG__TrackingAreaIdList__LV_template& tmp_51 = ret_val.lvPart(); +tmp_51.iel() = os_10; +{ +NG__NAS__TypeDefs::NG__TrackingAreaIdList__LV_listOfPartialTais_template& tmp_52 = tmp_51.listOfPartialTais(); +tmp_52.set_size(1); +tmp_52[0] = cs__NG__ListConsecutivePartialTaiList(p__NumberOfElements, p__PartialTac); +} +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__TAIListConsecutive_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__PartialTai_template cs__NG__PartialTai(const OCTETSTRING& p__PlmnId, const OCTETSTRING& p__Tac) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1502, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PartialTai"); +charstring_list param_names; +param_names[0] = "p_PlmnId"; +param_names[1] = "p_Tac"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PartialTai", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PlmnId, "p_PlmnId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Tac, "p_Tac", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__PartialTai_template ret_val; +ret_val.plmnId() = p__PlmnId; +ret_val.tac() = p__Tac; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PartialTai_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__TrackingAreaId_template cr__NG__TAI(const OCTETSTRING& p__PlmnId, const OCTETSTRING& p__Tac) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1507, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_TAI"); +charstring_list param_names; +param_names[0] = "p_PlmnId"; +param_names[1] = "p_Tac"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_TAI", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PlmnId, "p_PlmnId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Tac, "p_Tac", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__TrackingAreaId_template ret_val; +ret_val.iei() = os_11; +ret_val.plmnId() = p__PlmnId; +ret_val.tac() = p__Tac; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__TAI_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__NAS__SecurityAlgorithms_template cs__NG__NAS__SecurityAlgorithms(const BITSTRING& p__CipherAlg, const BITSTRING& p__IntAlg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1515, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NAS_SecurityAlgorithms"); +charstring_list param_names; +param_names[0] = "p_CipherAlg"; +param_names[1] = "p_IntAlg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NAS_SecurityAlgorithms", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__CipherAlg, "p_CipherAlg", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IntAlg, "p_IntAlg", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__NAS__SecurityAlgorithms_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.cipheringType() = p__CipherAlg; +ret_val.integrityType() = p__IntAlg; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NAS__SecurityAlgorithms_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::CIoTSmallDataContainer_template cr__CIoTSmallDataContainer(const BITSTRING_template& p__DataType, const BITSTRING_template& p__DDX, const BITSTRING_template& p__PDUSessionId, const OCTETSTRING_template& p__DataContents, const OCTETSTRING_template& p__AddInfoLength, const OCTETSTRING_template& p__AddInfo) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1524, TTCN_Location::LOCATION_TEMPLATE, "cr_CIoTSmallDataContainer"); +charstring_list param_names; +param_names[0] = "p_DataType"; +param_names[1] = "p_DDX"; +param_names[2] = "p_PDUSessionId"; +param_names[3] = "p_DataContents"; +param_names[4] = "p_AddInfoLength"; +param_names[5] = "p_AddInfo"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +TTCN3_Debug_Function debug_scope("cr_CIoTSmallDataContainer", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__DataType, "p_DataType", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DDX, "p_DDX", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__PDUSessionId, "p_PDUSessionId", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DataContents, "p_DataContents", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__AddInfoLength, "p_AddInfoLength", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__AddInfo, "p_AddInfo", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::CIoTSmallDataContainer_template ret_val; +ret_val.iel() = ANY_VALUE; +ret_val.dataType() = p__DataType; +ret_val.ddx() = p__DDX; +ret_val.pduSessionId() = p__PDUSessionId; +ret_val.lengthOfAddInfo() = p__AddInfoLength; +ret_val.addInfo() = p__AddInfo; +ret_val.dataContents() = p__DataContents; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__CIoTSmallDataContainer_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::ConfigUpdateInd_template cs__ConfigUpdateInd(const BITSTRING& p__Red, const BITSTRING& p__Ack) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1540, TTCN_Location::LOCATION_TEMPLATE, "cs_ConfigUpdateInd"); +charstring_list param_names; +param_names[0] = "p_Red"; +param_names[1] = "p_Ack"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_ConfigUpdateInd", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Red, "p_Red", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Ack, "p_Ack", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::ConfigUpdateInd_template ret_val; +ret_val.iei() = hs_0; +ret_val.spare() = bs_0; +ret_val.red() = p__Red; +ret_val.ack() = p__Ack; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__ConfigUpdateInd_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::DNN_template cs__DNN(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__DNN) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1549, TTCN_Location::LOCATION_TEMPLATE, "cs_DNN"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_DNN"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_DNN", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DNN, "p_DNN", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::DNN_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = int2oct(p__DNN.lengthof(), 1); +ret_val.dnnValue() = p__DNN; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__DNN_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::DeregisterType_template crs__DeregisterType(const BITSTRING& p__SwitchOff, const BITSTRING& p__ReReg, const BITSTRING& p__Access) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1558, TTCN_Location::LOCATION_TEMPLATE, "crs_DeregisterType"); +charstring_list param_names; +param_names[0] = "p_SwitchOff"; +param_names[1] = "p_ReReg"; +param_names[2] = "p_Access"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("crs_DeregisterType", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__SwitchOff, "p_SwitchOff", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ReReg, "p_ReReg", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Access, "p_Access", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::DeregisterType_template ret_val; +ret_val.switchOff() = p__SwitchOff; +ret_val.reRegistration() = p__ReReg; +ret_val.accessType() = p__Access; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_crs__DeregisterType_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::AdditionalSecurityInfo_template cs__AdditionalSecurityInfo(const BITSTRING& p__Rinmr, const BITSTRING& p__Hdp) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1569, TTCN_Location::LOCATION_TEMPLATE, "cs_AdditionalSecurityInfo"); +charstring_list param_names; +param_names[0] = "p_Rinmr"; +param_names[1] = "p_Hdp"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_AdditionalSecurityInfo", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Rinmr, "p_Rinmr", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Hdp, "p_Hdp", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::AdditionalSecurityInfo_template ret_val; +ret_val.iei() = os_12; +ret_val.iel() = os_1; +ret_val.spareBits() = NAS__CommonTemplates::tsc__Spare6; +ret_val.rinmr() = p__Rinmr; +ret_val.hdp() = p__Hdp; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__AdditionalSecurityInfo_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NetworkSlicingInd_template cs__NetworkSlicingInd(const BITSTRING& p__DCNI, const BITSTRING& p__NSSCI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1580, TTCN_Location::LOCATION_TEMPLATE, "cs_NetworkSlicingInd"); +charstring_list param_names; +param_names[0] = "p_DCNI"; +param_names[1] = "p_NSSCI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NetworkSlicingInd", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__DCNI, "p_DCNI", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NSSCI, "p_NSSCI", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NetworkSlicingInd_template ret_val; +ret_val.iei() = hs_1; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare2; +ret_val.dcni() = p__DCNI; +ret_val.nssci() = p__NSSCI; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NetworkSlicingInd_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::S__NSSAI__Type_template cs__S__NSSAI__WithIEI(const OCTETSTRING& p__IEI, const NG__NAS__TypeDefs::S__NSSAI__LV_template& p__LvPart) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1590, TTCN_Location::LOCATION_TEMPLATE, "cs_S_NSSAI_WithIEI"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_LvPart"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_S_NSSAI_WithIEI", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LvPart, "p_LvPart", "S_NSSAI_LV template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::S__NSSAI__Type_template ret_val; +ret_val.iei() = p__IEI; +ret_val.lvPart() = p__LvPart; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__S__NSSAI__WithIEI_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::S__NSSAI__LV_template cs__S__NSSAI(const OCTETSTRING& p__Length, const OCTETSTRING& p__SST, const OCTETSTRING_template& p__SD, const OCTETSTRING_template& p__MappedSST, const OCTETSTRING_template& p__MappedSD) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1598, TTCN_Location::LOCATION_TEMPLATE, "cs_S_NSSAI"); +charstring_list param_names; +param_names[0] = "p_Length"; +param_names[1] = "p_SST"; +param_names[2] = "p_SD"; +param_names[3] = "p_MappedSST"; +param_names[4] = "p_MappedSD"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("cs_S_NSSAI", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SST, "p_SST", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SD, "p_SD", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__MappedSST, "p_MappedSST", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__MappedSD, "p_MappedSD", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::S__NSSAI__LV_template ret_val; +ret_val.iel() = p__Length; +{ +NG__NAS__TypeDefs::S__NSSAI__V_template& tmp_53 = ret_val.vPart(); +tmp_53.sst() = p__SST; +tmp_53.sd() = p__SD; +tmp_53.mappedSST() = p__MappedSST; +tmp_53.mappedSD() = p__MappedSD; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__S__NSSAI_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NSSAI_template cs__NSSAI__SST1eMBB(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1621, TTCN_Location::LOCATION_TEMPLATE, "cs_NSSAI_SST1eMBB"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_NSSAI_SST1eMBB", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NSSAI_template ret_val; +{ +NG__NAS__TypeDefs::S__NSSAI__TypeList_template tmp_62; +tmp_62.set_size(1); +tmp_62[0] = cs__S__NSSAI__SST1eMBB; +ret_val = cs__NSSAI__Def(p__IEI, tmp_62); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NSSAI__SST1eMBB_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NSSAI_template cs__NSSAI__SSTs(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1626, TTCN_Location::LOCATION_TEMPLATE, "cs_NSSAI_SSTs"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_NSSAI_SSTs", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NSSAI_template ret_val; +{ +NG__NAS__TypeDefs::S__NSSAI__TypeList_template tmp_63; +tmp_63.set_size(1); +{ +OCTETSTRING_template tmp_64; +tmp_64 = OMIT_VALUE; +tmp_63[0] = cs__S__NSSAI(os_14, os_1, OCTETSTRING_template(OMIT_VALUE), OCTETSTRING_template(os_1), tmp_64); +} +ret_val = cs__NSSAI__Def(p__IEI, tmp_63); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NSSAI__SSTs_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NSSAI_template cs__NSSAI__Def(const OCTETSTRING_template& p__IEI, const NG__NAS__TypeDefs::S__NSSAI__TypeList_template& p__List) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1635, TTCN_Location::LOCATION_TEMPLATE, "cs_NSSAI_Def"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_List"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NSSAI_Def", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__List, "p_List", "S_NSSAI_TypeList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NSSAI_template ret_val; +ret_val.iei() = p__IEI; +{ +NG__NAS__TypeDefs::NSSAI__LV_template& tmp_66 = ret_val.lvPart(); +tmp_66.iel() = fl__NR5GC__NSSAILength(p__List); +tmp_66.s__nssai() = p__List; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NSSAI__Def_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::RejectedS__NSSAI_template cs__RejectedS__NSSAI(const BITSTRING& p__Length, const BITSTRING& p__CauseValue, const OCTETSTRING& p__SST, const OCTETSTRING_template& p__SD) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1645, TTCN_Location::LOCATION_TEMPLATE, "cs_RejectedS_NSSAI"); +charstring_list param_names; +param_names[0] = "p_Length"; +param_names[1] = "p_CauseValue"; +param_names[2] = "p_SST"; +param_names[3] = "p_SD"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_RejectedS_NSSAI", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Length, "p_Length", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__CauseValue, "p_CauseValue", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SST, "p_SST", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SD, "p_SD", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::RejectedS__NSSAI_template ret_val; +ret_val.len() = p__Length; +ret_val.causeValue() = p__CauseValue; +ret_val.sst() = p__SST; +ret_val.sd() = p__SD; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__RejectedS__NSSAI_err_descr_ptr); +return ret_val; +} + +OCTETSTRING fl__NR5GC__NSSAILength(const NG__NAS__TypeDefs::S__NSSAI__TypeList_template& p__List) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1664, TTCN_Location::LOCATION_FUNCTION, "fl_NR5GC_NSSAILength"); +charstring_list param_names; +param_names[0] = "p_List"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_NR5GC_NSSAILength", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__List, "p_List", "S_NSSAI_TypeList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(1666); +ttcn3_debugger.breakpoint_entry(1666); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1666 */ +INTEGER j; +debug_scope.add_variable(&j, "j", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1667); +ttcn3_debugger.breakpoint_entry(1667); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1667 */ +INTEGER v__Length(0); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1669); +ttcn3_debugger.breakpoint_entry(1669); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1669 */ +j = 0; +current_location.update_lineno(1669); +ttcn3_debugger.breakpoint_entry(1669); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1669 */ +for ( ; ; ) { +current_location.update_lineno(1669); +ttcn3_debugger.breakpoint_entry(1669); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1669 */ +if (!(j < p__List.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1670); +ttcn3_debugger.breakpoint_entry(1670); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1670 */ +{ +INTEGER tmp_68; +tmp_68 = (v__Length + oct2int(const_cast< const NG__NAS__TypeDefs::S__NSSAI__TypeList_template&>(p__List)[j].iel().valueof())); +v__Length = tmp_68; +} +current_location.update_lineno(1671); +ttcn3_debugger.breakpoint_entry(1671); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1671 */ +{ +INTEGER tmp_69; +++v__Length; +} +current_location.update_lineno(1669); +ttcn3_debugger.breakpoint_entry(1669); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1669 */ +{ +INTEGER tmp_70; +++j; +} +} +current_location.update_lineno(1673); +ttcn3_debugger.breakpoint_entry(1673); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1673 */ +{ +OCTETSTRING tmp_71; +return DEBUGGER_STORE_RETURN_VALUE(tmp_71, int2oct(v__Length, 1)); +} +} + +NG__NAS__TypeDefs::S__NSSAI__LV_template fl__ExtractNSSAI__FromEachATCommandLine(INTEGER& p__Cause, const CHARSTRING& p__ATCommand) +{ +CHARSTRING p__ATCommand_shadow(p__ATCommand); +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1685, TTCN_Location::LOCATION_FUNCTION, "fl_ExtractNSSAI_FromEachATCommandLine"); +p__Cause.clean_up(); +charstring_list param_names; +param_names[0] = "p_Cause"; +param_names[1] = "p_ATCommand"; +charstring_list param_types; +param_types[0] = "out"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("fl_ExtractNSSAI_FromEachATCommandLine", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Cause, "p_Cause", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.add_variable(&p__ATCommand_shadow, "p_ATCommand", "charstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1687); +ttcn3_debugger.breakpoint_entry(1687); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1687 */ +CommonDefs::CharStringList__Type v__ListOfSubStr(NULL_VALUE); +debug_scope.add_variable(&v__ListOfSubStr, "v_ListOfSubStr", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(1688); +ttcn3_debugger.breakpoint_entry(1688); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1688 */ +CommonDefs::CharStringList__Type v__ListOfRejCause(NULL_VALUE); +debug_scope.add_variable(&v__ListOfRejCause, "v_ListOfRejCause", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(1689); +ttcn3_debugger.breakpoint_entry(1689); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1689 */ +CommonDefs::CharStringList__Type v__ListOfSst__Sd(NULL_VALUE); +debug_scope.add_variable(&v__ListOfSst__Sd, "v_ListOfSst_Sd", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(1690); +ttcn3_debugger.breakpoint_entry(1690); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1690 */ +OCTETSTRING v__SST; +debug_scope.add_variable(&v__SST, "v_SST", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1691); +ttcn3_debugger.breakpoint_entry(1691); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1691 */ +OCTETSTRING_template v__SD; +debug_scope.add_variable(&v__SD, "v_SD", "octetstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1692); +ttcn3_debugger.breakpoint_entry(1692); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1692 */ +OCTETSTRING_template v__MappedSST; +debug_scope.add_variable(&v__MappedSST, "v_MappedSST", "octetstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1693); +ttcn3_debugger.breakpoint_entry(1693); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1693 */ +OCTETSTRING_template v__MappedSD; +debug_scope.add_variable(&v__MappedSD, "v_MappedSD", "octetstring template", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1694); +ttcn3_debugger.breakpoint_entry(1694); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1694 */ +INTEGER v__Length(0); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1696); +ttcn3_debugger.breakpoint_entry(1696); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1696 */ +p__Cause = -1; +current_location.update_lineno(1699); +ttcn3_debugger.breakpoint_entry(1699); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1699 */ +{ +CommonDefs::Char1List__Type tmp_74; +tmp_74.set_size(1); +tmp_74[0] = cs_0; +v__ListOfRejCause = CommonDefs::f__StringSplit(p__ATCommand_shadow, tmp_74); +} +current_location.update_lineno(1700); +ttcn3_debugger.breakpoint_entry(1700); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1700 */ +if ((v__ListOfRejCause.lengthof() > 1)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1701); +ttcn3_debugger.breakpoint_entry(1701); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1701 */ +p__Cause = str2int(const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfRejCause)[1]); +current_location.update_lineno(1703); +ttcn3_debugger.breakpoint_entry(1703); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1703 */ +p__ATCommand_shadow = const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfRejCause)[0]; +} +current_location.update_lineno(1705); +ttcn3_debugger.breakpoint_entry(1705); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1705 */ +{ +CommonDefs::Char1List__Type tmp_78; +tmp_78.set_size(1); +tmp_78[0] = cs_1; +v__ListOfSubStr = CommonDefs::f__StringSplit(p__ATCommand_shadow, tmp_78); +} +current_location.update_lineno(1706); +ttcn3_debugger.breakpoint_entry(1706); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1706 */ +{ +CommonDefs::Char1List__Type tmp_80; +tmp_80.set_size(1); +tmp_80[0] = cs_2; +v__ListOfSst__Sd = CommonDefs::f__StringSplit(const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfSubStr)[0], tmp_80); +} +current_location.update_lineno(1707); +ttcn3_debugger.breakpoint_entry(1707); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1707 */ +v__SST = str2oct(const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfSst__Sd)[0]); +current_location.update_lineno(1708); +ttcn3_debugger.breakpoint_entry(1708); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1708 */ +{ +INTEGER tmp_82; +++v__Length; +} +current_location.update_lineno(1709); +ttcn3_debugger.breakpoint_entry(1709); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1709 */ +if ((v__ListOfSst__Sd.lengthof() > 1)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1710); +ttcn3_debugger.breakpoint_entry(1710); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1710 */ +v__SD = str2oct(const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfSst__Sd)[1]); +current_location.update_lineno(1711); +ttcn3_debugger.breakpoint_entry(1711); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1711 */ +{ +INTEGER tmp_84; +tmp_84 = (v__Length + 3); +v__Length = tmp_84; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1713); +ttcn3_debugger.breakpoint_entry(1713); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1713 */ +v__SD = OMIT_VALUE; +} +current_location.update_lineno(1715); +ttcn3_debugger.breakpoint_entry(1715); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1715 */ +if ((v__ListOfSubStr.lengthof() > 1)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1717); +ttcn3_debugger.breakpoint_entry(1717); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1717 */ +{ +CommonDefs::Char1List__Type tmp_87; +tmp_87.set_size(1); +tmp_87[0] = cs_2; +v__ListOfSst__Sd = CommonDefs::f__StringSplit(const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfSubStr)[1], tmp_87); +} +current_location.update_lineno(1718); +ttcn3_debugger.breakpoint_entry(1718); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1718 */ +v__MappedSST = str2oct(const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfSst__Sd)[0]); +current_location.update_lineno(1719); +ttcn3_debugger.breakpoint_entry(1719); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1719 */ +{ +INTEGER tmp_89; +++v__Length; +} +current_location.update_lineno(1720); +ttcn3_debugger.breakpoint_entry(1720); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1720 */ +if ((v__ListOfSst__Sd.lengthof() > 1)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1721); +ttcn3_debugger.breakpoint_entry(1721); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1721 */ +v__MappedSD = str2oct(const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfSst__Sd)[1]); +current_location.update_lineno(1722); +ttcn3_debugger.breakpoint_entry(1722); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1722 */ +{ +INTEGER tmp_91; +tmp_91 = (v__Length + 3); +v__Length = tmp_91; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1724); +ttcn3_debugger.breakpoint_entry(1724); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1724 */ +v__MappedSD = OMIT_VALUE; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1728); +ttcn3_debugger.breakpoint_entry(1728); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1728 */ +v__MappedSST = OMIT_VALUE; +current_location.update_lineno(1729); +ttcn3_debugger.breakpoint_entry(1729); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1729 */ +v__MappedSD = OMIT_VALUE; +} +current_location.update_lineno(1732); +ttcn3_debugger.breakpoint_entry(1732); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1732 */ +{ +NG__NAS__TypeDefs::S__NSSAI__LV_template tmp_95; +return DEBUGGER_STORE_RETURN_VALUE(tmp_95, cs__S__NSSAI(int2oct(v__Length, 1), v__SST, v__SD, v__MappedSST, v__MappedSD)); +} +} + +BOOLEAN f__MatchListOfNSSAI__WithATCommand(const NG__NAS__TypeDefs::NSSAI__LV_template& p__NSSAI, const CHARSTRING& p__ATCommand) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1742, TTCN_Location::LOCATION_FUNCTION, "f_MatchListOfNSSAI_WithATCommand"); +charstring_list param_names; +param_names[0] = "p_NSSAI"; +param_names[1] = "p_ATCommand"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_MatchListOfNSSAI_WithATCommand", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NSSAI, "p_NSSAI", "NSSAI_LV template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ATCommand, "p_ATCommand", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1744); +ttcn3_debugger.breakpoint_entry(1744); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1744 */ +CommonDefs::CharStringList__Type v__ListOfAllowed(NULL_VALUE); +debug_scope.add_variable(&v__ListOfAllowed, "v_ListOfAllowed", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(1745); +ttcn3_debugger.breakpoint_entry(1745); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1745 */ +NG__NAS__TypeDefs::S__NSSAI__TypeList_template v__ListOfNSSAI(NULL_VALUE); +debug_scope.add_variable(&v__ListOfNSSAI, "v_ListOfNSSAI", "S_NSSAI_TypeList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(1746); +ttcn3_debugger.breakpoint_entry(1746); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1746 */ +NG__NAS__TypeDefs::S__NSSAI__TypeList_template v__PermutationNSSAI(NULL_VALUE); +debug_scope.add_variable(&v__PermutationNSSAI, "v_PermutationNSSAI", "S_NSSAI_TypeList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(1747); +ttcn3_debugger.breakpoint_entry(1747); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1747 */ +INTEGER v__Cause; +debug_scope.add_variable(&v__Cause, "v_Cause", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1748); +ttcn3_debugger.breakpoint_entry(1748); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1748 */ +INTEGER v__NumAllowed; +debug_scope.add_variable(&v__NumAllowed, "v_NumAllowed", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1751); +ttcn3_debugger.breakpoint_entry(1751); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1751 */ +{ +CommonDefs::Char1List__Type tmp_97; +tmp_97.set_size(1); +tmp_97[0] = cs_3; +v__ListOfAllowed = CommonDefs::f__StringSplit(p__ATCommand, tmp_97); +} +current_location.update_lineno(1752); +ttcn3_debugger.breakpoint_entry(1752); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1752 */ +v__NumAllowed = 0; +current_location.update_lineno(1752); +ttcn3_debugger.breakpoint_entry(1752); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1752 */ +for ( ; ; ) { +current_location.update_lineno(1752); +ttcn3_debugger.breakpoint_entry(1752); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1752 */ +if (!(v__NumAllowed < v__ListOfAllowed.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1753); +ttcn3_debugger.breakpoint_entry(1753); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1753 */ +v__ListOfNSSAI[v__NumAllowed] = fl__ExtractNSSAI__FromEachATCommandLine(v__Cause, const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfAllowed)[v__NumAllowed]); +current_location.update_lineno(1752); +ttcn3_debugger.breakpoint_entry(1752); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1752 */ +{ +INTEGER tmp_100; +++v__NumAllowed; +} +} +current_location.update_lineno(1755); +ttcn3_debugger.breakpoint_entry(1755); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1755 */ +v__PermutationNSSAI.remove_all_permutations(); +v__PermutationNSSAI.set_size(0 + p__NSSAI.s__nssai().n_elem()); +int tmp_102 = 0; +int tmp_103 = tmp_102; +for (int i_i = 0, i_lim = p__NSSAI.s__nssai().n_elem(); i_i < i_lim; ++i_i) { +v__PermutationNSSAI[tmp_102 + i_i] = p__NSSAI.s__nssai()[i_i]; +} +tmp_102 += p__NSSAI.s__nssai().n_elem(); +v__PermutationNSSAI.add_permutation(tmp_103-0, tmp_102-0-1); +current_location.update_lineno(1756); +ttcn3_debugger.breakpoint_entry(1756); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1756 */ +{ +BOOLEAN tmp_104; +return DEBUGGER_STORE_RETURN_VALUE(tmp_104, v__PermutationNSSAI.match(v__ListOfNSSAI.valueof())); +} +} + +BOOLEAN f__MatchXtdRejectedNSSAI__WithATCommand(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__NSSAI, const CHARSTRING& p__ATCommand, const BOOLEAN& p__AtLeastThisList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1766, TTCN_Location::LOCATION_FUNCTION, "f_MatchXtdRejectedNSSAI_WithATCommand"); +charstring_list param_names; +param_names[0] = "p_NSSAI"; +param_names[1] = "p_ATCommand"; +param_names[2] = "p_AtLeastThisList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_MatchXtdRejectedNSSAI_WithATCommand", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NSSAI, "p_NSSAI", "XtdRejectedS_NSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__ATCommand, "p_ATCommand", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__AtLeastThisList, "p_AtLeastThisList", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1770); +ttcn3_debugger.breakpoint_entry(1770); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1770 */ +CommonDefs::CharStringList__Type v__ListOfAllowed(NULL_VALUE); +debug_scope.add_variable(&v__ListOfAllowed, "v_ListOfAllowed", "CharStringList_Type", NULL, CommonDefs::print_var_CommonDefs, CommonDefs::set_var_CommonDefs); +current_location.update_lineno(1771); +ttcn3_debugger.breakpoint_entry(1771); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1771 */ +NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template v__ListOfNSSAI(NULL_VALUE); +debug_scope.add_variable(&v__ListOfNSSAI, "v_ListOfNSSAI", "XtdRejectedS_NSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(1772); +ttcn3_debugger.breakpoint_entry(1772); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1772 */ +NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template v__PermutationNSSAI(NULL_VALUE); +debug_scope.add_variable(&v__PermutationNSSAI, "v_PermutationNSSAI", "XtdRejectedS_NSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(1773); +ttcn3_debugger.breakpoint_entry(1773); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1773 */ +NG__NAS__TypeDefs::S__NSSAI__LV_template v__NSSAI__LV; +debug_scope.add_variable(&v__NSSAI__LV, "v_NSSAI_LV", "S_NSSAI_LV template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(1774); +ttcn3_debugger.breakpoint_entry(1774); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1774 */ +INTEGER v__Cause; +debug_scope.add_variable(&v__Cause, "v_Cause", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1775); +ttcn3_debugger.breakpoint_entry(1775); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1775 */ +INTEGER v__NumAllowed; +debug_scope.add_variable(&v__NumAllowed, "v_NumAllowed", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1778); +ttcn3_debugger.breakpoint_entry(1778); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1778 */ +{ +CommonDefs::Char1List__Type tmp_106; +tmp_106.set_size(1); +tmp_106[0] = cs_3; +v__ListOfAllowed = CommonDefs::f__StringSplit(p__ATCommand, tmp_106); +} +current_location.update_lineno(1779); +ttcn3_debugger.breakpoint_entry(1779); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1779 */ +v__NumAllowed = 0; +current_location.update_lineno(1779); +ttcn3_debugger.breakpoint_entry(1779); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1779 */ +for ( ; ; ) { +current_location.update_lineno(1779); +ttcn3_debugger.breakpoint_entry(1779); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1779 */ +if (!(v__NumAllowed < v__ListOfAllowed.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1780); +ttcn3_debugger.breakpoint_entry(1780); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1780 */ +v__NSSAI__LV = fl__ExtractNSSAI__FromEachATCommandLine(v__Cause, const_cast< const CommonDefs::CharStringList__Type&>(v__ListOfAllowed)[v__NumAllowed]); +current_location.update_lineno(1782); +ttcn3_debugger.breakpoint_entry(1782); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1782 */ +v__ListOfNSSAI[v__NumAllowed] = cs__XtdRejectedS__NSSAI(int2bit(oct2int(const_cast< const NG__NAS__TypeDefs::S__NSSAI__LV_template&>(v__NSSAI__LV).iel().valueof()), 4), int2bit(v__Cause, 4), const_cast< const NG__NAS__TypeDefs::S__NSSAI__LV_template&>(v__NSSAI__LV).vPart().sst().valueof(), const_cast< const NG__NAS__TypeDefs::S__NSSAI__LV_template&>(v__NSSAI__LV).vPart().sd(), const_cast< const NG__NAS__TypeDefs::S__NSSAI__LV_template&>(v__NSSAI__LV).vPart().mappedSST(), const_cast< const NG__NAS__TypeDefs::S__NSSAI__LV_template&>(v__NSSAI__LV).vPart().mappedSD()); +current_location.update_lineno(1779); +ttcn3_debugger.breakpoint_entry(1779); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1779 */ +{ +INTEGER tmp_110; +++v__NumAllowed; +} +} +current_location.update_lineno(1789); +ttcn3_debugger.breakpoint_entry(1789); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1789 */ +if (p__AtLeastThisList) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1790); +ttcn3_debugger.breakpoint_entry(1790); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1790 */ +v__PermutationNSSAI.remove_all_permutations(); +v__PermutationNSSAI.set_size(1 + p__NSSAI.n_elem()); +int tmp_112 = 0; +int tmp_113 = tmp_112; +for (int i_i = 0, i_lim = p__NSSAI.n_elem(); i_i < i_lim; ++i_i) { +v__PermutationNSSAI[tmp_112 + i_i] = p__NSSAI[i_i]; +} +tmp_112 += p__NSSAI.n_elem(); +v__PermutationNSSAI[tmp_112] = ANY_OR_OMIT; +tmp_112++; +v__PermutationNSSAI.add_permutation(tmp_113-0, tmp_112-0-1); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1792); +ttcn3_debugger.breakpoint_entry(1792); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1792 */ +v__PermutationNSSAI.remove_all_permutations(); +v__PermutationNSSAI.set_size(0 + p__NSSAI.n_elem()); +int tmp_115 = 0; +int tmp_116 = tmp_115; +for (int i_i = 0, i_lim = p__NSSAI.n_elem(); i_i < i_lim; ++i_i) { +v__PermutationNSSAI[tmp_115 + i_i] = p__NSSAI[i_i]; +} +tmp_115 += p__NSSAI.n_elem(); +v__PermutationNSSAI.add_permutation(tmp_116-0, tmp_115-0-1); +} +current_location.update_lineno(1794); +ttcn3_debugger.breakpoint_entry(1794); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1794 */ +{ +BOOLEAN tmp_117; +return DEBUGGER_STORE_RETURN_VALUE(tmp_117, v__PermutationNSSAI.match(v__ListOfNSSAI.valueof())); +} +} + +INTEGER fl__XtdRejectedS__NSSAILength(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1802, TTCN_Location::LOCATION_FUNCTION, "fl_XtdRejectedS_NSSAILength"); +charstring_list param_names; +param_names[0] = "p_List"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_XtdRejectedS_NSSAILength", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__List, "p_List", "XtdRejectedS_NSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(1804); +ttcn3_debugger.breakpoint_entry(1804); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1804 */ +INTEGER j; +debug_scope.add_variable(&j, "j", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1805); +ttcn3_debugger.breakpoint_entry(1805); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1805 */ +INTEGER v__Length(0); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1807); +ttcn3_debugger.breakpoint_entry(1807); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1807 */ +j = 0; +current_location.update_lineno(1807); +ttcn3_debugger.breakpoint_entry(1807); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1807 */ +for ( ; ; ) { +current_location.update_lineno(1807); +ttcn3_debugger.breakpoint_entry(1807); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1807 */ +if (!(j < p__List.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1808); +ttcn3_debugger.breakpoint_entry(1808); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1808 */ +{ +INTEGER tmp_119; +tmp_119 = (v__Length + bit2int(const_cast< const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template&>(p__List)[j].len().valueof())); +v__Length = tmp_119; +} +current_location.update_lineno(1809); +ttcn3_debugger.breakpoint_entry(1809); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1809 */ +{ +INTEGER tmp_120; +++v__Length; +} +current_location.update_lineno(1807); +ttcn3_debugger.breakpoint_entry(1807); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1807 */ +{ +INTEGER tmp_121; +++j; +} +} +current_location.update_lineno(1811); +ttcn3_debugger.breakpoint_entry(1811); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1811 */ +{ +INTEGER tmp_122; +return DEBUGGER_STORE_RETURN_VALUE(tmp_122, v__Length); +} +} + +NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template f__BuildNR5GC__PartialXtdRejectedNSSAIType0(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1819, TTCN_Location::LOCATION_FUNCTION, "f_BuildNR5GC_PartialXtdRejectedNSSAIType0"); +charstring_list param_names; +param_names[0] = "p_List"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_BuildNR5GC_PartialXtdRejectedNSSAIType0", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__List, "p_List", "XtdRejectedS_NSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(1821); +ttcn3_debugger.breakpoint_entry(1821); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1821 */ +INTEGER j; +debug_scope.add_variable(&j, "j", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1822); +ttcn3_debugger.breakpoint_entry(1822); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1822 */ +INTEGER v__Length(0); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1823); +ttcn3_debugger.breakpoint_entry(1823); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1823 */ +INTEGER v__NumOfElements(-1); +debug_scope.add_variable(&v__NumOfElements, "v_NumOfElements", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1825); +ttcn3_debugger.breakpoint_entry(1825); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1825 */ +j = 0; +current_location.update_lineno(1825); +ttcn3_debugger.breakpoint_entry(1825); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1825 */ +for ( ; ; ) { +current_location.update_lineno(1825); +ttcn3_debugger.breakpoint_entry(1825); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1825 */ +if (!(j < p__List.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1826); +ttcn3_debugger.breakpoint_entry(1826); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1826 */ +{ +INTEGER tmp_124; +++v__NumOfElements; +} +current_location.update_lineno(1827); +ttcn3_debugger.breakpoint_entry(1827); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1827 */ +{ +INTEGER tmp_125; +tmp_125 = (v__Length + bit2int(const_cast< const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template&>(p__List)[j].len().valueof())); +v__Length = tmp_125; +} +current_location.update_lineno(1828); +ttcn3_debugger.breakpoint_entry(1828); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1828 */ +{ +INTEGER tmp_126; +tmp_126 = (v__Length + 2); +v__Length = tmp_126; +} +current_location.update_lineno(1825); +ttcn3_debugger.breakpoint_entry(1825); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1825 */ +{ +INTEGER tmp_127; +++j; +} +} +current_location.update_lineno(1830); +ttcn3_debugger.breakpoint_entry(1830); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1830 */ +{ +NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template tmp_128; +return DEBUGGER_STORE_RETURN_VALUE(tmp_128, cs__PartialXtdRejectedNSSAIType0(int2bit(v__NumOfElements, 4), p__List)); +} +} + +NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template f__BuildNR5GC__PartialXtdRejectedNSSAIType1(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List, const OCTETSTRING& p__BackOffTimer) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1839, TTCN_Location::LOCATION_FUNCTION, "f_BuildNR5GC_PartialXtdRejectedNSSAIType1"); +charstring_list param_names; +param_names[0] = "p_List"; +param_names[1] = "p_BackOffTimer"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_BuildNR5GC_PartialXtdRejectedNSSAIType1", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__List, "p_List", "XtdRejectedS_NSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__BackOffTimer, "p_BackOffTimer", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(1842); +ttcn3_debugger.breakpoint_entry(1842); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1842 */ +INTEGER j; +debug_scope.add_variable(&j, "j", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1843); +ttcn3_debugger.breakpoint_entry(1843); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1843 */ +INTEGER v__Length(0); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1844); +ttcn3_debugger.breakpoint_entry(1844); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1844 */ +INTEGER v__NumOfElements(-1); +debug_scope.add_variable(&v__NumOfElements, "v_NumOfElements", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1846); +ttcn3_debugger.breakpoint_entry(1846); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1846 */ +j = 0; +current_location.update_lineno(1846); +ttcn3_debugger.breakpoint_entry(1846); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1846 */ +for ( ; ; ) { +current_location.update_lineno(1846); +ttcn3_debugger.breakpoint_entry(1846); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1846 */ +if (!(j < p__List.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1847); +ttcn3_debugger.breakpoint_entry(1847); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1847 */ +{ +INTEGER tmp_130; +++v__NumOfElements; +} +current_location.update_lineno(1848); +ttcn3_debugger.breakpoint_entry(1848); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1848 */ +{ +INTEGER tmp_131; +tmp_131 = (v__Length + bit2int(const_cast< const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template&>(p__List)[j].len().valueof())); +v__Length = tmp_131; +} +current_location.update_lineno(1849); +ttcn3_debugger.breakpoint_entry(1849); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1849 */ +{ +INTEGER tmp_132; +tmp_132 = (v__Length + 2); +v__Length = tmp_132; +} +current_location.update_lineno(1846); +ttcn3_debugger.breakpoint_entry(1846); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1846 */ +{ +INTEGER tmp_133; +++j; +} +} +current_location.update_lineno(1851); +ttcn3_debugger.breakpoint_entry(1851); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1851 */ +{ +NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template tmp_134; +return DEBUGGER_STORE_RETURN_VALUE(tmp_134, cs__PartialXtdRejectedNSSAIType1(int2bit(v__NumOfElements, 4), p__BackOffTimer, p__List)); +} +} + +NG__NAS__TypeDefs::ExtdRejectedNSSAI_template f__BuildNR5GC__ExtdRejectedNSSAI(const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI__List_template& p__List) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1861, TTCN_Location::LOCATION_FUNCTION, "f_BuildNR5GC_ExtdRejectedNSSAI"); +charstring_list param_names; +param_names[0] = "p_List"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_BuildNR5GC_ExtdRejectedNSSAI", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__List, "p_List", "PartialXtdRejectedNSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(1863); +ttcn3_debugger.breakpoint_entry(1863); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1863 */ +INTEGER j; +debug_scope.add_variable(&j, "j", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1864); +ttcn3_debugger.breakpoint_entry(1864); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1864 */ +INTEGER v__Length(0); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(1866); +ttcn3_debugger.breakpoint_entry(1866); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1866 */ +j = 0; +current_location.update_lineno(1866); +ttcn3_debugger.breakpoint_entry(1866); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1866 */ +for ( ; ; ) { +current_location.update_lineno(1866); +ttcn3_debugger.breakpoint_entry(1866); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1866 */ +if (!(j < p__List.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1867); +ttcn3_debugger.breakpoint_entry(1867); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1867 */ +{ +boolean tmp_139; +{ +boolean tmp_136 = p__List.is_bound(); +if(tmp_136) { +switch (p__List.get_selection()) { +case UNINITIALIZED_TEMPLATE: +tmp_136 = FALSE; +break; +case ANY_VALUE: +tmp_136 = FALSE; +break; +case SPECIFIC_VALUE: { +if(tmp_136) { +const int tmp_137 = j; +tmp_136 = (tmp_137 >= 0) && (p__List.n_elem() > tmp_137); +if(tmp_136) { +const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template& tmp_138 = p__List[tmp_137]; +tmp_136 = tmp_138.is_bound(); +if (tmp_136) { +tmp_136 = tmp_138.ischosen(NG__NAS__TypeDefs::PartialXtdRejectedNSSAI::ALT_type0); +} +} +} +break;} +default: +tmp_136 = FALSE; +break; +} +} +tmp_139 = tmp_136; +} +if (tmp_139) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1868); +ttcn3_debugger.breakpoint_entry(1868); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1868 */ +{ +INTEGER tmp_140; +{ +NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template tmp_141; +NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template tmp_143; +NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template tmp_142; +tmp_142 = p__List[j].type0().rejectS__NSSAI(); +if (!conv_NG__NAS__TypeDefs_PartialXtdRejectedNSSAIType0_rejectS__NSSAI_NG__NAS__TypeDefs_XtdRejectedS__NSSAI__List(tmp_143, tmp_142)) TTCN_error("Values or templates of types `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0.rejectS_NSSAI' and `@NG_NAS_TypeDefs.XtdRejectedS_NSSAI_List' are not compatible at run-time"); +tmp_141 = tmp_143; +tmp_140 = (v__Length + fl__XtdRejectedS__NSSAILength(tmp_141)); +} +v__Length = tmp_140; +} +current_location.update_lineno(1869); +ttcn3_debugger.breakpoint_entry(1869); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1869 */ +{ +INTEGER tmp_144; +++v__Length; +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(1871); +ttcn3_debugger.breakpoint_entry(1871); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1871 */ +{ +INTEGER tmp_145; +tmp_145 = (v__Length + fl__XtdRejectedS__NSSAILength(const_cast< const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI__List_template&>(p__List)[j].type1().rejectS__NSSAI())); +v__Length = tmp_145; +} +current_location.update_lineno(1872); +ttcn3_debugger.breakpoint_entry(1872); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1872 */ +{ +INTEGER tmp_146; +tmp_146 = (v__Length + 2); +v__Length = tmp_146; +} +} +} +current_location.update_lineno(1866); +ttcn3_debugger.breakpoint_entry(1866); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1866 */ +{ +INTEGER tmp_147; +++j; +} +} +current_location.update_lineno(1875); +ttcn3_debugger.breakpoint_entry(1875); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1875 */ +{ +NG__NAS__TypeDefs::ExtdRejectedNSSAI_template tmp_148; +return DEBUGGER_STORE_RETURN_VALUE(tmp_148, cs__ExtdRejectedNSSAI(int2oct(v__Length, 1), p__List)); +} +} + +NG__NAS__TypeDefs::ExtdRejectedNSSAI_template cs__ExtdRejectedNSSAI(const OCTETSTRING& p__Len, const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI__List_template& p__List) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1878, TTCN_Location::LOCATION_TEMPLATE, "cs_ExtdRejectedNSSAI"); +charstring_list param_names; +param_names[0] = "p_Len"; +param_names[1] = "p_List"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_ExtdRejectedNSSAI", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Len, "p_Len", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__List, "p_List", "PartialXtdRejectedNSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::ExtdRejectedNSSAI_template ret_val; +ret_val.iei() = os_17; +ret_val.iel() = p__Len; +ret_val.partialXtd() = p__List; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__ExtdRejectedNSSAI_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template cs__PartialXtdRejectedNSSAIType0(const BITSTRING& p__NumOfElements, const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1886, TTCN_Location::LOCATION_TEMPLATE, "cs_PartialXtdRejectedNSSAIType0"); +charstring_list param_names; +param_names[0] = "p_NumOfElements"; +param_names[1] = "p_List"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_PartialXtdRejectedNSSAIType0", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NumOfElements, "p_NumOfElements", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__List, "p_List", "XtdRejectedS_NSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template ret_val; +{ +NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_template& tmp_149 = ret_val.type0(); +tmp_149.spare() = bs_1; +tmp_149.typeOfList() = bs_5; +tmp_149.numOfElements() = p__NumOfElements; +NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template tmp_150; +if (!conv_NG__NAS__TypeDefs_XtdRejectedS__NSSAI__List_NG__NAS__TypeDefs_PartialXtdRejectedNSSAIType0_rejectS__NSSAI(tmp_150, p__List)) TTCN_error("Values or templates of types `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0.rejectS_NSSAI' and `@NG_NAS_TypeDefs.XtdRejectedS_NSSAI_List' are not compatible at run-time"); +tmp_149.rejectS__NSSAI() = tmp_150; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PartialXtdRejectedNSSAIType0_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template cs__PartialXtdRejectedNSSAIType1(const BITSTRING& p__NumOfElements, const OCTETSTRING& p__BackOffTimer, const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1897, TTCN_Location::LOCATION_TEMPLATE, "cs_PartialXtdRejectedNSSAIType1"); +charstring_list param_names; +param_names[0] = "p_NumOfElements"; +param_names[1] = "p_BackOffTimer"; +param_names[2] = "p_List"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_PartialXtdRejectedNSSAIType1", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NumOfElements, "p_NumOfElements", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__BackOffTimer, "p_BackOffTimer", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__List, "p_List", "XtdRejectedS_NSSAI_List template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template ret_val; +{ +NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType1_template& tmp_151 = ret_val.type1(); +tmp_151.spare() = bs_1; +tmp_151.typeOfList() = bs_6; +tmp_151.numOfElements() = p__NumOfElements; +tmp_151.backOffTimerValue() = p__BackOffTimer; +tmp_151.rejectS__NSSAI() = p__List; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PartialXtdRejectedNSSAIType1_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::XtdRejectedS__NSSAI_template cs__XtdRejectedS__NSSAI(const BITSTRING& p__Len, const BITSTRING& p__Cause, const OCTETSTRING& p__SST, const OCTETSTRING_template& p__SD, const OCTETSTRING_template& p__MappedSST, const OCTETSTRING_template& p__MappedSD) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 1910, TTCN_Location::LOCATION_TEMPLATE, "cs_XtdRejectedS_NSSAI"); +charstring_list param_names; +param_names[0] = "p_Len"; +param_names[1] = "p_Cause"; +param_names[2] = "p_SST"; +param_names[3] = "p_SD"; +param_names[4] = "p_MappedSST"; +param_names[5] = "p_MappedSD"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +TTCN3_Debug_Function debug_scope("cs_XtdRejectedS_NSSAI", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Len, "p_Len", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SST, "p_SST", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SD, "p_SD", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__MappedSST, "p_MappedSST", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__MappedSD, "p_MappedSD", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::XtdRejectedS__NSSAI_template ret_val; +ret_val.len() = p__Len; +ret_val.causeValue() = p__Cause; +{ +NG__NAS__TypeDefs::S__NSSAI__V_template& tmp_152 = ret_val.snssai(); +tmp_152.sst() = p__SST; +tmp_152.sd() = p__SD; +tmp_152.mappedSST() = p__MappedSST; +tmp_152.mappedSD() = p__MappedSD; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__XtdRejectedS__NSSAI_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PayloadContainer_template cr__PayloadContainer(const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2002, TTCN_Location::LOCATION_TEMPLATE, "cr_PayloadContainer"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_PayloadContainer", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PayloadContainer_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = ANY_VALUE; +ret_val.payload() = ANY_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__PayloadContainer_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PayloadContainerType_template cs__PayloadContainerType(const BITSTRING& p__ContainerType, const HEXSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2010, TTCN_Location::LOCATION_TEMPLATE, "cs_PayloadContainerType"); +charstring_list param_names; +param_names[0] = "p_ContainerType"; +param_names[1] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_PayloadContainerType", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ContainerType, "p_ContainerType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PayloadContainerType_template ret_val; +ret_val.iei() = p__IEI; +ret_val.container() = p__ContainerType; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PayloadContainerType_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PayloadContainerType_template cr__PayloadContainerType(const BITSTRING& p__ContainerType, const HEXSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2018, TTCN_Location::LOCATION_TEMPLATE, "cr_PayloadContainerType"); +charstring_list param_names; +param_names[0] = "p_ContainerType"; +param_names[1] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_PayloadContainerType", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ContainerType, "p_ContainerType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PayloadContainerType_template ret_val; +ret_val.iei() = p__IEI; +ret_val.container() = p__ContainerType; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__PayloadContainerType_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__PDU__SessionId_template cr__NG__PDU__SessionId(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__Id) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2026, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_PDU_SessionId"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Id"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_PDU_SessionId", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__PDU__SessionId_template ret_val; +ret_val.iei() = p__IEI; +ret_val.sessionId() = p__Id; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__PDU__SessionId_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__PDU__SessionId_template cs__NG__PDU__SessionId(const OCTETSTRING_template& p__Id, const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2034, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PDU_SessionId"); +charstring_list param_names; +param_names[0] = "p_Id"; +param_names[1] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PDU_SessionId", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__PDU__SessionId_template ret_val; +ret_val.iei() = p__IEI; +ret_val.sessionId() = p__Id; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PDU__SessionId_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::GMM__GSM__Cause_template cs__GMM__GSM__Cause(const OCTETSTRING_template& p__IEI, const BITSTRING& p__Cause) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2042, TTCN_Location::LOCATION_TEMPLATE, "cs_GMM_GSM_Cause"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Cause"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_GMM_GSM_Cause", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::GMM__GSM__Cause_template ret_val; +ret_val.iei() = p__IEI; +ret_val.causeValue() = p__Cause; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__GMM__GSM__Cause_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::ABBA_template cs__ABBA(const OCTETSTRING& p__ABBA, const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Length) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2050, TTCN_Location::LOCATION_TEMPLATE, "cs_ABBA"); +charstring_list param_names; +param_names[0] = "p_ABBA"; +param_names[1] = "p_IEI"; +param_names[2] = "p_Length"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_ABBA", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__ABBA, "p_ABBA", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::ABBA_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = p__Length; +ret_val.abbaValue() = p__ABBA; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__ABBA_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::GMM__GSM__Cause_template cr__GMM__GSM__Cause(const OCTETSTRING_template& p__IEI, const BITSTRING_template& p__Cause) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2060, TTCN_Location::LOCATION_TEMPLATE, "cr_GMM_GSM_Cause"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_Cause"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_GMM_GSM_Cause", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Cause, "p_Cause", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::GMM__GSM__Cause_template ret_val; +ret_val.iei() = p__IEI; +ret_val.causeValue() = p__Cause; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__GMM__GSM__Cause_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PDU__SessionStatus_template cr__PDU__SessionStatusAny(const OCTETSTRING& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2068, TTCN_Location::LOCATION_TEMPLATE, "cr_PDU_SessionStatusAny"); +charstring_list param_names; +param_names[0] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_PDU_SessionStatusAny", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PDU__SessionStatus_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = ANY_VALUE; +ret_val.psi0__7() = ANY_VALUE; +ret_val.psi8__15() = ANY_VALUE; +ret_val.spare() = ANY_OR_OMIT; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__PDU__SessionStatusAny_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PDU__SessionStatus_template cr__PDU__SessionStatus(const BITSTRING& p__Psi0__7, const BITSTRING& p__Psi8__15) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2078, TTCN_Location::LOCATION_TEMPLATE, "cr_PDU_SessionStatus"); +charstring_list param_names; +param_names[0] = "p_Psi0_7"; +param_names[1] = "p_Psi8_15"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cr_PDU_SessionStatus", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Psi0__7, "p_Psi0_7", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Psi8__15, "p_Psi8_15", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PDU__SessionStatus_template ret_val; +ret_val.iei() = os_19; +ret_val.iel() = os_14; +ret_val.psi0__7() = p__Psi0__7; +ret_val.psi8__15() = p__Psi8__15; +ret_val.spare() = OMIT_VALUE; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__PDU__SessionStatus_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__Request__Type_template cr__NG__Request__Type(const BITSTRING& p__RequestValue) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2088, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_Request_Type"); +charstring_list param_names; +param_names[0] = "p_RequestValue"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_Request_Type", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__RequestValue, "p_RequestValue", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__Request__Type_template ret_val; +ret_val.iei() = hs_2; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare1; +ret_val.requestValue() = p__RequestValue; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__Request__Type_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template crs__AlwaysOn(const BITSTRING& p__Apsi) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2103, TTCN_Location::LOCATION_TEMPLATE, "crs_AlwaysOn"); +charstring_list param_names; +param_names[0] = "p_Apsi"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("crs_AlwaysOn", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Apsi, "p_Apsi", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template ret_val; +ret_val.iei() = hs_2; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare3; +ret_val.apsi() = p__Apsi; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_crs__AlwaysOn_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::EPSParameters_template cs__EPSParameter__QoS(const OCTETSTRING& p__Param) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2111, TTCN_Location::LOCATION_TEMPLATE, "cs_EPSParameter_QoS"); +charstring_list param_names; +param_names[0] = "p_Param"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_EPSParameter_QoS", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Param, "p_Param", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::EPSParameters_template ret_val; +ret_val.id() = os_1; +ret_val.lenOfContent() = OMIT_VALUE; +ret_val.epsParam() = p__Param; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EPSParameter__QoS_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::EPSParameters_template cs__EPSParameter__TFT(const OCTETSTRING& p__Param) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2118, TTCN_Location::LOCATION_TEMPLATE, "cs_EPSParameter_TFT"); +charstring_list param_names; +param_names[0] = "p_Param"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_EPSParameter_TFT", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Param, "p_Param", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::EPSParameters_template ret_val; +ret_val.id() = os_6; +ret_val.lenOfContent() = OMIT_VALUE; +ret_val.epsParam() = p__Param; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__EPSParameter__TFT_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::MappedEPSContext_template cs__OneMappedEPSContext(const OCTETSTRING& p__EPSBearerId, const INTEGER& p__ParamLength, const NG__NAS__TypeDefs::EPSParameters_template& p__EPSParams) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2125, TTCN_Location::LOCATION_TEMPLATE, "cs_OneMappedEPSContext"); +charstring_list param_names; +param_names[0] = "p_EPSBearerId"; +param_names[1] = "p_ParamLength"; +param_names[2] = "p_EPSParams"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_OneMappedEPSContext", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__EPSBearerId, "p_EPSBearerId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ParamLength, "p_ParamLength", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPSParams, "p_EPSParams", "EPSParameters template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::MappedEPSContext_template ret_val; +ret_val.epsBearerId() = p__EPSBearerId; +ret_val.lenOfContext() = int2oct((p__ParamLength + 2), 2); +ret_val.operationCode() = bs_4; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare1; +ret_val.eBit() = bs_3; +ret_val.numOfParams() = bs_7; +{ +NG__NAS__TypeDefs::MappedEPSContext_epsParamsList_template& tmp_153 = ret_val.epsParamsList(); +tmp_153.set_size(1); +tmp_153[0] = p__EPSParams; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__OneMappedEPSContext_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::MappedEPSContext_template cs__OneMappedEPSContextTwoParams(const OCTETSTRING& p__EPSBearerId, const INTEGER& p__ParamLength, const NG__NAS__TypeDefs::EPSParameters_template& p__EPSParam1, const NG__NAS__TypeDefs::EPSParameters_template& p__EPSParam2) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2138, TTCN_Location::LOCATION_TEMPLATE, "cs_OneMappedEPSContextTwoParams"); +charstring_list param_names; +param_names[0] = "p_EPSBearerId"; +param_names[1] = "p_ParamLength"; +param_names[2] = "p_EPSParam1"; +param_names[3] = "p_EPSParam2"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_OneMappedEPSContextTwoParams", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__EPSBearerId, "p_EPSBearerId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ParamLength, "p_ParamLength", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPSParam1, "p_EPSParam1", "EPSParameters template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__EPSParam2, "p_EPSParam2", "EPSParameters template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::MappedEPSContext_template ret_val; +ret_val.epsBearerId() = p__EPSBearerId; +ret_val.lenOfContext() = int2oct((p__ParamLength + 3), 2); +ret_val.operationCode() = bs_4; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare1; +ret_val.eBit() = bs_3; +ret_val.numOfParams() = bs_8; +{ +NG__NAS__TypeDefs::MappedEPSContext_epsParamsList_template& tmp_154 = ret_val.epsParamsList(); +tmp_154.set_size(2); +tmp_154[0] = p__EPSParam1; +tmp_154[1] = p__EPSParam2; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__OneMappedEPSContextTwoParams_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::MappedEPSBearerContexts_template cs__OneMappedEPSBearerContextList(const NG__NAS__TypeDefs::MappedEPSContext_template& p__MappedEPSContext) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2152, TTCN_Location::LOCATION_TEMPLATE, "cs_OneMappedEPSBearerContextList"); +charstring_list param_names; +param_names[0] = "p_MappedEPSContext"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_OneMappedEPSBearerContextList", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__MappedEPSContext, "p_MappedEPSContext", "MappedEPSContext template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::MappedEPSBearerContexts_template ret_val; +ret_val.iei() = os_7; +ret_val.iel() = int2oct((oct2int(const_cast< const NG__NAS__TypeDefs::MappedEPSContext_template&>(p__MappedEPSContext).lenOfContext().valueof()) + 3), 2); +{ +NG__NAS__TypeDefs::MappedEPSBearerContexts_mappedContextList_template& tmp_155 = ret_val.mappedContextList(); +tmp_155.set_size(1); +tmp_155[0] = p__MappedEPSContext; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__OneMappedEPSBearerContextList_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::MappedEPSBearerContexts_template cs__TwoMappedEPSBearerContextList(const NG__NAS__TypeDefs::MappedEPSContext_template& p__MappedEPSContext1, const NG__NAS__TypeDefs::MappedEPSContext_template& p__MappedEPSContext2) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2160, TTCN_Location::LOCATION_TEMPLATE, "cs_TwoMappedEPSBearerContextList"); +charstring_list param_names; +param_names[0] = "p_MappedEPSContext1"; +param_names[1] = "p_MappedEPSContext2"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_TwoMappedEPSBearerContextList", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__MappedEPSContext1, "p_MappedEPSContext1", "MappedEPSContext template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__MappedEPSContext2, "p_MappedEPSContext2", "MappedEPSContext template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::MappedEPSBearerContexts_template ret_val; +ret_val.iei() = os_7; +ret_val.iel() = int2oct((((oct2int(const_cast< const NG__NAS__TypeDefs::MappedEPSContext_template&>(p__MappedEPSContext1).lenOfContext().valueof()) + 3) + oct2int(const_cast< const NG__NAS__TypeDefs::MappedEPSContext_template&>(p__MappedEPSContext2).lenOfContext().valueof())) + 3), 2); +{ +NG__NAS__TypeDefs::MappedEPSBearerContexts_mappedContextList_template& tmp_156 = ret_val.mappedContextList(); +tmp_156.set_size(2); +tmp_156[0] = p__MappedEPSContext1; +tmp_156[1] = p__MappedEPSContext2; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__TwoMappedEPSBearerContextList_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PDU__SessionType_template cs__PDU__SessionType(const BITSTRING& p__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2169, TTCN_Location::LOCATION_TEMPLATE, "cs_PDU_SessionType"); +charstring_list param_names; +param_names[0] = "p_Type"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_PDU_SessionType", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Type, "p_Type", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PDU__SessionType_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare1; +ret_val.typeValue() = p__Type; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PDU__SessionType_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PDU__SessionType_template cr__PDU__SessionType(const BITSTRING_template& p__Type) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2177, TTCN_Location::LOCATION_TEMPLATE, "cr_PDU_SessionType"); +charstring_list param_names; +param_names[0] = "p_Type"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_PDU_SessionType", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Type, "p_Type", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PDU__SessionType_template ret_val; +ret_val.iei() = hs_1; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare1; +ret_val.typeValue() = p__Type; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__PDU__SessionType_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::SSC__Mode_template crs__SSC__Mode(const HEXSTRING_template& p__IEI, const BITSTRING& p__SSCMode) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2185, TTCN_Location::LOCATION_TEMPLATE, "crs_SSC_Mode"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_SSCMode"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("crs_SSC_Mode", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "hexstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SSCMode, "p_SSCMode", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::SSC__Mode_template ret_val; +ret_val.iei() = p__IEI; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare1; +ret_val.sscModeValue() = p__SSCMode; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_crs__SSC__Mode_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::QoSParameters_template cs__QoSParameters(const OCTETSTRING& p__Id, const OCTETSTRING& p__Length, const OCTETSTRING& p__Param) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2194, TTCN_Location::LOCATION_TEMPLATE, "cs_QoSParameters"); +charstring_list param_names; +param_names[0] = "p_Id"; +param_names[1] = "p_Length"; +param_names[2] = "p_Param"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoSParameters", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Param, "p_Param", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::QoSParameters_template ret_val; +ret_val.id() = p__Id; +ret_val.lenOfContent() = p__Length; +ret_val.qosParam() = p__Param; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoSParameters_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow(const BITSTRING& p__QFI, const NAS__CommonTypeDefs::QoSParametersList_template& p__ParamList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2203, TTCN_Location::LOCATION_TEMPLATE, "cs_QoS_Flow"); +charstring_list param_names; +param_names[0] = "p_QFI"; +param_names[1] = "p_ParamList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoS_Flow", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__QFI, "p_QFI", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ParamList, "p_ParamList", "QoSParametersList template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::QoS__Flow_template ret_val; +ret_val.spare2() = NAS__CommonTemplates::tsc__Spare2; +ret_val.qfi() = p__QFI; +ret_val.operationCode() = bs_6; +ret_val.spare6() = NAS__CommonTemplates::tsc__Spare6; +ret_val.eBit() = bs_3; +ret_val.numOfParameters() = int2bit(p__ParamList.lengthof(), 6); +NG__NAS__TypeDefs::QoS__Flow_parameterList_template tmp_157; +if (!conv_NAS__CommonTypeDefs_QoSParametersList_NG__NAS__TypeDefs_QoS__Flow_parameterList(tmp_157, p__ParamList)) TTCN_error("Values or templates of types `@NG_NAS_TypeDefs.QoS_Flow.parameterList' and `@NAS_CommonTypeDefs.QoSParametersList' are not compatible at run-time"); +ret_val.parameterList() = tmp_157; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoS__Flow_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::PEIPS__AssistInfo_template cs__PEIPS__AssistInfo(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__IEL, const NG__NAS__TypeDefs::PEIPS__AssistIEList_template& p__EIPS__AssistIEList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2215, TTCN_Location::LOCATION_TEMPLATE, "cs_PEIPS_AssistInfo"); +charstring_list param_names; +param_names[0] = "p_IEI"; +param_names[1] = "p_IEL"; +param_names[2] = "p_EIPS_AssistIEList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_PEIPS_AssistInfo", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEL, "p_IEL", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EIPS__AssistIEList, "p_EIPS_AssistIEList", "PEIPS_AssistIEList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::PEIPS__AssistInfo_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = p__IEL; +ret_val.list() = p__EIPS__AssistIEList; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PEIPS__AssistInfo_err_descr_ptr); +return ret_val; +} + +OCTETSTRING fl__FlowParameterBitRate(const INTEGER& p__Value, const INTEGER& p__Multiplier) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2235, TTCN_Location::LOCATION_FUNCTION, "fl_FlowParameterBitRate"); +charstring_list param_names; +param_names[0] = "p_Value"; +param_names[1] = "p_Multiplier"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("fl_FlowParameterBitRate", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Value, "p_Value", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Multiplier, "p_Multiplier", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(2238); +ttcn3_debugger.breakpoint_entry(2238); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2238 */ +INTEGER v__BitValue; +debug_scope.add_variable(&v__BitValue, "v_BitValue", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2239); +ttcn3_debugger.breakpoint_entry(2239); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2239 */ +INTEGER v__Unit; +debug_scope.add_variable(&v__Unit, "v_Unit", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2240); +ttcn3_debugger.breakpoint_entry(2240); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2240 */ +INTEGER i(256); +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +for ( ; ; ) { +current_location.update_lineno(2242); +ttcn3_debugger.breakpoint_entry(2242); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2242 */ +if (!(mod(p__Value, i) != 0)) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2243); +ttcn3_debugger.breakpoint_entry(2243); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2243 */ +{ +INTEGER tmp_158; +tmp_158 = (i / 4); +i = tmp_158; +} +} +current_location.update_lineno(2245); +ttcn3_debugger.breakpoint_entry(2245); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2245 */ +v__BitValue = (p__Value / i); +current_location.update_lineno(2246); +ttcn3_debugger.breakpoint_entry(2246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2246 */ +v__Unit = ((CommonDefs::f__FloorLog2(i) / 2) + 1); +current_location.update_lineno(2248); +ttcn3_debugger.breakpoint_entry(2248); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2248 */ +{ +INTEGER tmp_161; +tmp_161 = (v__Unit + (5 * (p__Multiplier - 1))); +v__Unit = tmp_161; +} +current_location.update_lineno(2250); +ttcn3_debugger.breakpoint_entry(2250); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2250 */ +{ +OCTETSTRING tmp_162; +return DEBUGGER_STORE_RETURN_VALUE(tmp_162, (int2oct(v__Unit, 1) + int2oct(v__BitValue, 2))); +} +} + +NG__NAS__TypeDefs::QoS__Flow_template f__BuildDefaultQosFlow(const CHARSTRING& p__FlowNumber, const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2261, TTCN_Location::LOCATION_FUNCTION, "f_BuildDefaultQosFlow"); +charstring_list param_names; +param_names[0] = "p_FlowNumber"; +param_names[1] = "p_InterworkWithEPS"; +param_names[2] = "p_EPSBearerId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_BuildDefaultQosFlow", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__FlowNumber, "p_FlowNumber", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__InterworkWithEPS, "p_InterworkWithEPS", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPSBearerId, "p_EPSBearerId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(2265); +ttcn3_debugger.breakpoint_entry(2265); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2265 */ +NAS__CommonTypeDefs::QoSParametersList_template v__QoSParametersList; +debug_scope.add_variable(&v__QoSParametersList, "v_QoSParametersList", "QoSParametersList template", NULL, NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs, NAS__CommonTypeDefs::set_var_NAS_CommonTypeDefs); +current_location.update_lineno(2266); +ttcn3_debugger.breakpoint_entry(2266); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2266 */ +BITSTRING v__QFI; +debug_scope.add_variable(&v__QFI, "v_QFI", "bitstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +{ +const CHARSTRING &tmp_164 = p__FlowNumber; +current_location.update_lineno(2269); +ttcn3_debugger.breakpoint_entry(2269); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2269 */ +if(tmp_164 == cs_4) goto tmp_163_0; +current_location.update_lineno(2276); +ttcn3_debugger.breakpoint_entry(2276); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2276 */ +if(tmp_164 == cs_5) goto tmp_163_1; +current_location.update_lineno(2283); +ttcn3_debugger.breakpoint_entry(2283); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2283 */ +if(tmp_164 == cs_6) goto tmp_163_2; +current_location.update_lineno(2287); +ttcn3_debugger.breakpoint_entry(2287); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2287 */ +if(tmp_164 == cs_7) goto tmp_163_3; +current_location.update_lineno(2291); +ttcn3_debugger.breakpoint_entry(2291); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2291 */ +if(tmp_164 == cs_8) goto tmp_163_4; +current_location.update_lineno(2295); +ttcn3_debugger.breakpoint_entry(2295); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2295 */ +if(tmp_164 == cs_9) goto tmp_163_5; +current_location.update_lineno(2306); +ttcn3_debugger.breakpoint_entry(2306); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2306 */ +if(tmp_164 == cs_10) goto tmp_163_6; +current_location.update_lineno(2317); +ttcn3_debugger.breakpoint_entry(2317); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2317 */ +if(tmp_164 == cs_11) goto tmp_163_7; +goto tmp_163_end; +tmp_163_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2270); +ttcn3_debugger.breakpoint_entry(2270); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2270 */ +v__QFI = bs_9; +current_location.update_lineno(2271); +ttcn3_debugger.breakpoint_entry(2271); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2271 */ +v__QoSParametersList.remove_all_permutations(); +v__QoSParametersList.set_size(1); +v__QoSParametersList[0] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__5QI, os_1, os_21); +current_location.update_lineno(2272); +ttcn3_debugger.breakpoint_entry(2272); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2272 */ +if (p__InterworkWithEPS) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2273); +ttcn3_debugger.breakpoint_entry(2273); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2273 */ +v__QoSParametersList[1] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__EPSBearerId, os_1, p__EPSBearerId); +} +goto tmp_163_end; +} +tmp_163_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2277); +ttcn3_debugger.breakpoint_entry(2277); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2277 */ +v__QFI = bs_10; +current_location.update_lineno(2278); +ttcn3_debugger.breakpoint_entry(2278); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2278 */ +v__QoSParametersList.remove_all_permutations(); +v__QoSParametersList.set_size(1); +v__QoSParametersList[0] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__5QI, os_1, os_22); +current_location.update_lineno(2279); +ttcn3_debugger.breakpoint_entry(2279); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2279 */ +if (p__InterworkWithEPS) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2280); +ttcn3_debugger.breakpoint_entry(2280); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2280 */ +v__QoSParametersList[1] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__EPSBearerId, os_1, p__EPSBearerId); +} +goto tmp_163_end; +} +tmp_163_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2284); +ttcn3_debugger.breakpoint_entry(2284); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2284 */ +v__QFI = bs_11; +current_location.update_lineno(2285); +ttcn3_debugger.breakpoint_entry(2285); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2285 */ +v__QoSParametersList.remove_all_permutations(); +v__QoSParametersList.set_size(1); +v__QoSParametersList[0] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__5QI, os_1, os_22); +goto tmp_163_end; +} +tmp_163_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2288); +ttcn3_debugger.breakpoint_entry(2288); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2288 */ +v__QFI = bs_12; +current_location.update_lineno(2289); +ttcn3_debugger.breakpoint_entry(2289); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2289 */ +v__QoSParametersList.remove_all_permutations(); +v__QoSParametersList.set_size(1); +v__QoSParametersList[0] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__5QI, os_1, os_22); +goto tmp_163_end; +} +tmp_163_4: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2292); +ttcn3_debugger.breakpoint_entry(2292); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2292 */ +v__QFI = bs_13; +current_location.update_lineno(2293); +ttcn3_debugger.breakpoint_entry(2293); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2293 */ +v__QoSParametersList.remove_all_permutations(); +v__QoSParametersList.set_size(1); +v__QoSParametersList[0] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__5QI, os_1, os_22); +goto tmp_163_end; +} +tmp_163_5: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2296); +ttcn3_debugger.breakpoint_entry(2296); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2296 */ +v__QFI = bs_14; +current_location.update_lineno(2297); +ttcn3_debugger.breakpoint_entry(2297); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2297 */ +v__QoSParametersList.remove_all_permutations(); +v__QoSParametersList.set_size(5); +v__QoSParametersList[0] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__5QI, os_1, os_1); +v__QoSParametersList[1] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__GFBR__UL, os_6, fl__FlowParameterBitRate(128, 1)); +v__QoSParametersList[2] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__GFBR__DL, os_6, fl__FlowParameterBitRate(128, 1)); +v__QoSParametersList[3] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__MFBR__UL, os_6, fl__FlowParameterBitRate(320, 1)); +v__QoSParametersList[4] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__MFBR__DL, os_6, fl__FlowParameterBitRate(320, 1)); +current_location.update_lineno(2302); +ttcn3_debugger.breakpoint_entry(2302); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2302 */ +if (p__InterworkWithEPS) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2303); +ttcn3_debugger.breakpoint_entry(2303); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2303 */ +v__QoSParametersList[5] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__EPSBearerId, os_1, p__EPSBearerId); +} +goto tmp_163_end; +} +tmp_163_6: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2307); +ttcn3_debugger.breakpoint_entry(2307); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2307 */ +v__QFI = bs_15; +current_location.update_lineno(2308); +ttcn3_debugger.breakpoint_entry(2308); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2308 */ +v__QoSParametersList.remove_all_permutations(); +v__QoSParametersList.set_size(5); +v__QoSParametersList[0] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__5QI, os_1, os_14); +v__QoSParametersList[1] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__GFBR__UL, os_6, fl__FlowParameterBitRate(72, 1)); +v__QoSParametersList[2] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__GFBR__DL, os_6, fl__FlowParameterBitRate(72, 1)); +v__QoSParametersList[3] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__MFBR__UL, os_6, fl__FlowParameterBitRate(816, 1)); +v__QoSParametersList[4] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__MFBR__DL, os_6, fl__FlowParameterBitRate(816, 1)); +current_location.update_lineno(2313); +ttcn3_debugger.breakpoint_entry(2313); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2313 */ +if (p__InterworkWithEPS) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2314); +ttcn3_debugger.breakpoint_entry(2314); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2314 */ +v__QoSParametersList[5] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__EPSBearerId, os_1, p__EPSBearerId); +} +goto tmp_163_end; +} +tmp_163_7: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2318); +ttcn3_debugger.breakpoint_entry(2318); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2318 */ +v__QFI = bs_16; +current_location.update_lineno(2319); +ttcn3_debugger.breakpoint_entry(2319); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2319 */ +v__QoSParametersList.remove_all_permutations(); +v__QoSParametersList.set_size(1); +v__QoSParametersList[0] = cs__QoSParameters(NG__NAS__Common::tsc__QoSFlowParameter__5QI, os_1, os_11); +goto tmp_163_end; +} +tmp_163_end: /* empty */; +} +current_location.update_lineno(2322); +ttcn3_debugger.breakpoint_entry(2322); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2322 */ +{ +NG__NAS__TypeDefs::QoS__Flow_template tmp_185; +return DEBUGGER_STORE_RETURN_VALUE(tmp_185, cs__QoS__Flow(v__QFI, v__QoSParametersList)); +} +} + +NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow1(const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2325, TTCN_Location::LOCATION_TEMPLATE, "cs_QoS_Flow1"); +charstring_list param_names; +param_names[0] = "p_InterworkWithEPS"; +param_names[1] = "p_EPSBearerId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoS_Flow1", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__InterworkWithEPS, "p_InterworkWithEPS", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPSBearerId, "p_EPSBearerId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::QoS__Flow_template ret_val; +ret_val = f__BuildDefaultQosFlow(cs_4, p__InterworkWithEPS, p__EPSBearerId); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoS__Flow1_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow2(const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2327, TTCN_Location::LOCATION_TEMPLATE, "cs_QoS_Flow2"); +charstring_list param_names; +param_names[0] = "p_InterworkWithEPS"; +param_names[1] = "p_EPSBearerId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoS_Flow2", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__InterworkWithEPS, "p_InterworkWithEPS", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPSBearerId, "p_EPSBearerId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::QoS__Flow_template ret_val; +ret_val = f__BuildDefaultQosFlow(cs_5, p__InterworkWithEPS, p__EPSBearerId); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoS__Flow2_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow5(const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2332, TTCN_Location::LOCATION_TEMPLATE, "cs_QoS_Flow5"); +charstring_list param_names; +param_names[0] = "p_InterworkWithEPS"; +param_names[1] = "p_EPSBearerId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoS_Flow5", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__InterworkWithEPS, "p_InterworkWithEPS", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPSBearerId, "p_EPSBearerId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::QoS__Flow_template ret_val; +ret_val = f__BuildDefaultQosFlow(cs_9, p__InterworkWithEPS, p__EPSBearerId); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoS__Flow5_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow6(const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2333, TTCN_Location::LOCATION_TEMPLATE, "cs_QoS_Flow6"); +charstring_list param_names; +param_names[0] = "p_InterworkWithEPS"; +param_names[1] = "p_EPSBearerId"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoS_Flow6", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__InterworkWithEPS, "p_InterworkWithEPS", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EPSBearerId, "p_EPSBearerId", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::QoS__Flow_template ret_val; +ret_val = f__BuildDefaultQosFlow(cs_10, p__InterworkWithEPS, p__EPSBearerId); +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoS__Flow6_err_descr_ptr); +return ret_val; +} + +OCTETSTRING fl__NR5GC__QoSFlowsLength(const NG__NAS__TypeDefs::QoS__FlowList_template& p__FlowList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2341, TTCN_Location::LOCATION_FUNCTION, "fl_NR5GC_QoSFlowsLength"); +charstring_list param_names; +param_names[0] = "p_FlowList"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_NR5GC_QoSFlowsLength", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__FlowList, "p_FlowList", "QoS_FlowList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(2343); +ttcn3_debugger.breakpoint_entry(2343); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2343 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2344); +ttcn3_debugger.breakpoint_entry(2344); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2344 */ +INTEGER j; +debug_scope.add_variable(&j, "j", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2345); +ttcn3_debugger.breakpoint_entry(2345); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2345 */ +INTEGER v__Length(0); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2347); +ttcn3_debugger.breakpoint_entry(2347); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2347 */ +j = 0; +current_location.update_lineno(2347); +ttcn3_debugger.breakpoint_entry(2347); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2347 */ +for ( ; ; ) { +current_location.update_lineno(2347); +ttcn3_debugger.breakpoint_entry(2347); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2347 */ +if (!(j < p__FlowList.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2348); +ttcn3_debugger.breakpoint_entry(2348); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2348 */ +{ +boolean tmp_192; +{ +boolean tmp_187 = p__FlowList.is_bound(); +if(tmp_187) { +switch (p__FlowList.get_selection()) { +case UNINITIALIZED_TEMPLATE: +tmp_187 = FALSE; +break; +case ANY_VALUE: +tmp_187 = FALSE; +break; +case SPECIFIC_VALUE: { +if(tmp_187) { +const int tmp_188 = j; +tmp_187 = (tmp_188 >= 0) && (p__FlowList.n_elem() > tmp_188); +if(tmp_187) { +const NG__NAS__TypeDefs::QoS__Flow_template& tmp_189 = p__FlowList[tmp_188]; +tmp_187 = tmp_189.is_bound(); +if(tmp_187) { +switch (tmp_189.get_selection()) { +case UNINITIALIZED_TEMPLATE: +tmp_187 = FALSE; +break; +case ANY_VALUE: +tmp_187 = FALSE; +break; +case SPECIFIC_VALUE: { +if(tmp_187) { +const NG__NAS__TypeDefs::QoS__Flow_template& tmp_190 = tmp_189; +const NG__NAS__TypeDefs::QoS__Flow_parameterList_template& tmp_191 = tmp_190.parameterList(); +tmp_187 = tmp_191.is_value(); +} +break;} +default: +tmp_187 = FALSE; +break; +} +} +} +} +break;} +default: +tmp_187 = FALSE; +break; +} +} +tmp_192 = tmp_187; +} +if (tmp_192) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2349); +ttcn3_debugger.breakpoint_entry(2349); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2349 */ +i = 0; +current_location.update_lineno(2349); +ttcn3_debugger.breakpoint_entry(2349); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2349 */ +for ( ; ; ) { +current_location.update_lineno(2349); +ttcn3_debugger.breakpoint_entry(2349); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2349 */ +if (!(i < const_cast< const NG__NAS__TypeDefs::QoS__FlowList_template&>(p__FlowList)[j].parameterList().lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2350); +ttcn3_debugger.breakpoint_entry(2350); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2350 */ +{ +INTEGER tmp_194; +tmp_194 = (v__Length + oct2int(const_cast< const NG__NAS__TypeDefs::QoS__FlowList_template&>(p__FlowList)[j].parameterList()[i].lenOfContent().valueof())); +v__Length = tmp_194; +} +current_location.update_lineno(2351); +ttcn3_debugger.breakpoint_entry(2351); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2351 */ +{ +INTEGER tmp_195; +tmp_195 = (v__Length + 2); +v__Length = tmp_195; +} +current_location.update_lineno(2349); +ttcn3_debugger.breakpoint_entry(2349); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2349 */ +{ +INTEGER tmp_196; +++i; +} +} +} +} +current_location.update_lineno(2354); +ttcn3_debugger.breakpoint_entry(2354); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2354 */ +{ +INTEGER tmp_197; +tmp_197 = (v__Length + 3); +v__Length = tmp_197; +} +current_location.update_lineno(2347); +ttcn3_debugger.breakpoint_entry(2347); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2347 */ +{ +INTEGER tmp_198; +++j; +} +} +current_location.update_lineno(2356); +ttcn3_debugger.breakpoint_entry(2356); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2356 */ +{ +OCTETSTRING tmp_199; +return DEBUGGER_STORE_RETURN_VALUE(tmp_199, int2oct(v__Length, 2)); +} +} + +NG__NAS__TypeDefs::QoSFlowDescr_template cs__QoSFlowDescr(const NG__NAS__TypeDefs::QoS__FlowList_template& p__QoS__Flows) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2359, TTCN_Location::LOCATION_TEMPLATE, "cs_QoSFlowDescr"); +charstring_list param_names; +param_names[0] = "p_QoS_Flows"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoSFlowDescr", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__QoS__Flows, "p_QoS_Flows", "QoS_FlowList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::QoSFlowDescr_template ret_val; +ret_val.iei() = os_23; +ret_val.iel() = fl__NR5GC__QoSFlowsLength(p__QoS__Flows); +NG__NAS__TypeDefs::QoSFlowDescr_listofFlows_template tmp_200; +if (!conv_NG__NAS__TypeDefs_QoS__FlowList_NG__NAS__TypeDefs_QoSFlowDescr_listofFlows(tmp_200, p__QoS__Flows)) TTCN_error("Values or templates of types `@NG_NAS_TypeDefs.QoSFlowDescr.listofFlows' and `@NG_NAS_TypeDefs.QoS_FlowList' are not compatible at run-time"); +ret_val.listofFlows() = tmp_200; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoSFlowDescr_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__PacketFilterList_template cs__PacketFilterList__MediaUDP(const BITSTRING& p__Id, const INTEGER& p__Port) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2383, TTCN_Location::LOCATION_TEMPLATE, "cs_PacketFilterList_MediaUDP"); +charstring_list param_names; +param_names[0] = "p_Id"; +param_names[1] = "p_Port"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_PacketFilterList_MediaUDP", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Id, "p_Id", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Port, "p_Port", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__PacketFilterList_template ret_val; +{ +NG__NAS__TypeDefs::NG__PacketFilterList__Type2_template& tmp_205 = ret_val.new_(); +tmp_205.set_size(1); +tmp_205[0] = cs__NG__PacketFilter__Type2(bs_2, p__Id, (fl__BuildRemotePortRange(p__Port) + fl__BuildProtocolIdNextHeaderUDP())); +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__PacketFilterList__MediaUDP_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NG__PacketFilter__Type2_template cs__NG__PacketFilter__Type2(const BITSTRING& p__Dir, const BITSTRING& p__Id, const OCTETSTRING& p__Contents) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2392, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_PacketFilter_Type2"); +charstring_list param_names; +param_names[0] = "p_Dir"; +param_names[1] = "p_Id"; +param_names[2] = "p_Contents"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_PacketFilter_Type2", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Dir, "p_Dir", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Id, "p_Id", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Contents, "p_Contents", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NG__PacketFilter__Type2_template ret_val; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare2; +ret_val.direction() = p__Dir; +ret_val.packetFilterId() = p__Id; +ret_val.len() = int2oct(p__Contents.lengthof(), 1); +ret_val.contents() = p__Contents; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__PacketFilter__Type2_err_descr_ptr); +return ret_val; +} + +OCTETSTRING fl__BuildRemotePortRange(const INTEGER& p__Port) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2409, TTCN_Location::LOCATION_FUNCTION, "fl_BuildRemotePortRange"); +charstring_list param_names; +param_names[0] = "p_Port"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_BuildRemotePortRange", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Port, "p_Port", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(2411); +ttcn3_debugger.breakpoint_entry(2411); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2411 */ +OCTETSTRING v__PacketFilter; +debug_scope.add_variable(&v__PacketFilter, "v_PacketFilter", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2413); +ttcn3_debugger.breakpoint_entry(2413); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2413 */ +v__PacketFilter = os_24; +current_location.update_lineno(2414); +ttcn3_debugger.breakpoint_entry(2414); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2414 */ +{ +OCTETSTRING tmp_207; +tmp_207 = ((v__PacketFilter + int2oct(p__Port, 2)) + int2oct((p__Port + 1), 2)); +v__PacketFilter = tmp_207; +} +current_location.update_lineno(2415); +ttcn3_debugger.breakpoint_entry(2415); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2415 */ +{ +OCTETSTRING tmp_208; +return DEBUGGER_STORE_RETURN_VALUE(tmp_208, v__PacketFilter); +} +} + +OCTETSTRING fl__BuildProtocolIdNextHeaderUDP() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2423, TTCN_Location::LOCATION_FUNCTION, "fl_BuildProtocolIdNextHeaderUDP"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("fl_BuildProtocolIdNextHeaderUDP", "function", "NG_NAS_Templates", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(2425); +ttcn3_debugger.breakpoint_entry(2425); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2425 */ +OCTETSTRING v__PacketFilter; +debug_scope.add_variable(&v__PacketFilter, "v_PacketFilter", "octetstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2427); +ttcn3_debugger.breakpoint_entry(2427); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2427 */ +v__PacketFilter = os_25; +current_location.update_lineno(2428); +ttcn3_debugger.breakpoint_entry(2428); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2428 */ +{ +OCTETSTRING tmp_210; +tmp_210 = (v__PacketFilter + os_26); +v__PacketFilter = tmp_210; +} +current_location.update_lineno(2429); +ttcn3_debugger.breakpoint_entry(2429); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2429 */ +{ +OCTETSTRING tmp_211; +return DEBUGGER_STORE_RETURN_VALUE(tmp_211, v__PacketFilter); +} +} + +NG__NAS__TypeDefs::QoS__Rule_template cs__QoS__Rule(const OCTETSTRING& p__Id, const BITSTRING& p__QFI, const OCTETSTRING& p__Precedence, const BITSTRING& p__OperationCode, const NG__NAS__TypeDefs::NG__PacketFilterList_template& p__FilterList, const BITSTRING& p__DQR) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2433, TTCN_Location::LOCATION_TEMPLATE, "cs_QoS_Rule"); +charstring_list param_names; +param_names[0] = "p_Id"; +param_names[1] = "p_QFI"; +param_names[2] = "p_Precedence"; +param_names[3] = "p_OperationCode"; +param_names[4] = "p_FilterList"; +param_names[5] = "p_DQR"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +param_types[5] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoS_Rule", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__QFI, "p_QFI", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Precedence, "p_Precedence", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__OperationCode, "p_OperationCode", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__FilterList, "p_FilterList", "NG_PacketFilterList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__DQR, "p_DQR", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::QoS__Rule_template ret_val; +ret_val.identifier() = p__Id; +ret_val.iel() = fl__NR5GC__QoSRuleLength(p__FilterList); +ret_val.ruleOperationCode() = p__OperationCode; +ret_val.dqrBit() = p__DQR; +ret_val.numOfPacketFilters() = bs_7; +ret_val.packetFilterList() = p__FilterList; +ret_val.precedence() = p__Precedence; +ret_val.spare() = NAS__CommonTemplates::tsc__Spare1; +ret_val.segregation() = NAS__CommonTemplates::tsc__Spare1; +ret_val.flowIdentifier() = p__QFI; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoS__Rule_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::QoS__Rules_template f__BuildDefaultQoSRules(const CHARSTRING& p__RuleNum, const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2462, TTCN_Location::LOCATION_FUNCTION, "f_BuildDefaultQoSRules"); +charstring_list param_names; +param_names[0] = "p_RuleNum"; +param_names[1] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("f_BuildDefaultQoSRules", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__RuleNum, "p_RuleNum", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(2465); +ttcn3_debugger.breakpoint_entry(2465); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2465 */ +NG__NAS__TypeDefs::QoS__Rules_template v__QoS__Rules; +debug_scope.add_variable(&v__QoS__Rules, "v_QoS_Rules", "QoS_Rules template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(2466); +ttcn3_debugger.breakpoint_entry(2466); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2466 */ +NG__NAS__TypeDefs::QoS__Rule_template v__VoiceQoS(cs__QoS__Rule(os_6, bs_14, os_1, cs__QoS__Rule_p__OperationCode_defval, cs__PacketFilterList__MediaUDP(bs_17, CommonIP::tsc__IMS__MediaPort__M1), bs_1)); +debug_scope.add_variable(&v__VoiceQoS, "v_VoiceQoS", "QoS_Rule template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(2468); +ttcn3_debugger.breakpoint_entry(2468); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2468 */ +if ((p__RuleNum == cs_12)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2469); +ttcn3_debugger.breakpoint_entry(2469); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2469 */ +{ +NG__NAS__TypeDefs::QoS__RuleList_template tmp_213; +tmp_213.set_size(1); +tmp_213[0] = v__VoiceQoS; +v__QoS__Rules = cs__QoS__Rules(tmp_213, p__IEI); +} +} +else { +current_location.update_lineno(2470); +ttcn3_debugger.breakpoint_entry(2470); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2470 */ +if ((p__RuleNum == cs_13)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2471); +ttcn3_debugger.breakpoint_entry(2471); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2471 */ +{ +NG__NAS__TypeDefs::QoS__RuleList_template tmp_215; +tmp_215.set_size(1); +tmp_215[0] = cs__QoS__Rule(os_15, bs_15, os_14, cs__QoS__Rule_p__OperationCode_defval, cs__PacketFilterList__MediaUDP(bs_18, CommonIP::tsc__IMS__MediaPort__M2), bs_1); +v__QoS__Rules = cs__QoS__Rules(tmp_215, p__IEI); +} +} +else { +current_location.update_lineno(2472); +ttcn3_debugger.breakpoint_entry(2472); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2472 */ +if ((p__RuleNum == cs_14)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2473); +ttcn3_debugger.breakpoint_entry(2473); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2473 */ +{ +NG__NAS__TypeDefs::QoS__RuleList_template tmp_217; +tmp_217.set_size(2); +tmp_217[0] = v__VoiceQoS; +tmp_217[1] = cs__QoS__Rule(os_15, bs_15, os_14, cs__QoS__Rule_p__OperationCode_defval, cs__PacketFilterList__MediaUDP(bs_18, CommonIP::tsc__IMS__MediaPort__M2), bs_1); +v__QoS__Rules = cs__QoS__Rules(tmp_217, p__IEI); +} +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2475); +ttcn3_debugger.breakpoint_entry(2475); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2475 */ +{ +NG__NAS__TypeDefs::QoS__RuleList_template tmp_219; +tmp_219.set_size(1); +tmp_219[0] = f__BuildDefaultQoSRule(p__RuleNum); +v__QoS__Rules = cs__QoS__Rules(tmp_219, p__IEI); +} +} +} +} +current_location.update_lineno(2477); +ttcn3_debugger.breakpoint_entry(2477); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2477 */ +{ +NG__NAS__TypeDefs::QoS__Rules_template tmp_220; +return DEBUGGER_STORE_RETURN_VALUE(tmp_220, v__QoS__Rules); +} +} + +NG__NAS__TypeDefs::QoS__Rule_template f__BuildDefaultQoSRule(const CHARSTRING& p__RuleNum) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2487, TTCN_Location::LOCATION_FUNCTION, "f_BuildDefaultQoSRule"); +charstring_list param_names; +param_names[0] = "p_RuleNum"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_BuildDefaultQoSRule", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__RuleNum, "p_RuleNum", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(2489); +ttcn3_debugger.breakpoint_entry(2489); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2489 */ +NG__NAS__TypeDefs::QoS__Rule_template v__QoS__Rule; +debug_scope.add_variable(&v__QoS__Rule, "v_QoS_Rule", "QoS_Rule template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +{ +const CHARSTRING &tmp_222 = p__RuleNum; +current_location.update_lineno(2492); +ttcn3_debugger.breakpoint_entry(2492); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2492 */ +if(tmp_222 == cs_4) goto tmp_221_0; +current_location.update_lineno(2495); +ttcn3_debugger.breakpoint_entry(2495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2495 */ +if(tmp_222 == cs_5) goto tmp_221_1; +current_location.update_lineno(2498); +ttcn3_debugger.breakpoint_entry(2498); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2498 */ +if(tmp_222 == cs_7) goto tmp_221_2; +current_location.update_lineno(2498); +ttcn3_debugger.breakpoint_entry(2498); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2498 */ +if(tmp_222 == cs_8) goto tmp_221_2; +current_location.update_lineno(2498); +ttcn3_debugger.breakpoint_entry(2498); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2498 */ +if(tmp_222 == cs_15) goto tmp_221_2; +current_location.update_lineno(2498); +ttcn3_debugger.breakpoint_entry(2498); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2498 */ +if(tmp_222 == cs_9) goto tmp_221_2; +current_location.update_lineno(2498); +ttcn3_debugger.breakpoint_entry(2498); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2498 */ +if(tmp_222 == cs_10) goto tmp_221_2; +current_location.update_lineno(2501); +ttcn3_debugger.breakpoint_entry(2501); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2501 */ +if(tmp_222 == cs_16) goto tmp_221_3; +goto tmp_221_end; +tmp_221_0: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2493); +ttcn3_debugger.breakpoint_entry(2493); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2493 */ +v__QoS__Rule = cs__QoS__Rule(os_1, bs_9, os_27, cs__QoS__Rule_p__OperationCode_defval, cs__PacketFilterList__1MatchAll, cs__QoS__Rule_p__DQR_defval); +goto tmp_221_end; +} +tmp_221_1: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2496); +ttcn3_debugger.breakpoint_entry(2496); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2496 */ +v__QoS__Rule = cs__QoS__Rule(os_14, bs_10, os_27, cs__QoS__Rule_p__OperationCode_defval, cs__PacketFilterList__1MatchAll, cs__QoS__Rule_p__DQR_defval); +goto tmp_221_end; +} +tmp_221_2: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2499); +ttcn3_debugger.breakpoint_entry(2499); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2499 */ +v__QoS__Rule = NG__NAS__Common::f__BuildQoSRuleRemoteAccess(p__RuleNum); +goto tmp_221_end; +} +tmp_221_3: +{ +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2502); +ttcn3_debugger.breakpoint_entry(2502); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2502 */ +v__QoS__Rule = cs__QoS__Rule(os_10, bs_16, os_27, cs__QoS__Rule_p__OperationCode_defval, cs__PacketFilterList__1MatchAll, cs__QoS__Rule_p__DQR_defval); +goto tmp_221_end; +} +tmp_221_end: /* empty */; +} +current_location.update_lineno(2505); +ttcn3_debugger.breakpoint_entry(2505); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2505 */ +{ +NG__NAS__TypeDefs::QoS__Rule_template tmp_227; +return DEBUGGER_STORE_RETURN_VALUE(tmp_227, v__QoS__Rule); +} +} + +OCTETSTRING fl__NR5GC__QoSRuleLength(const NG__NAS__TypeDefs::NG__PacketFilterList_template& p__FilterList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2514, TTCN_Location::LOCATION_FUNCTION, "fl_NR5GC_QoSRuleLength"); +charstring_list param_names; +param_names[0] = "p_FilterList"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_NR5GC_QoSRuleLength", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__FilterList, "p_FilterList", "NG_PacketFilterList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(2516); +ttcn3_debugger.breakpoint_entry(2516); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2516 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2517); +ttcn3_debugger.breakpoint_entry(2517); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2517 */ +INTEGER v__Length(0); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2519); +ttcn3_debugger.breakpoint_entry(2519); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2519 */ +if (p__FilterList.ischosen(NG__NAS__TypeDefs::NG__PacketFilterList::ALT_modify)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2520); +ttcn3_debugger.breakpoint_entry(2520); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2520 */ +v__Length = 1; +} +current_location.update_lineno(2522); +ttcn3_debugger.breakpoint_entry(2522); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2522 */ +if (p__FilterList.ischosen(NG__NAS__TypeDefs::NG__PacketFilterList::ALT_new_)) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2523); +ttcn3_debugger.breakpoint_entry(2523); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2523 */ +i = 0; +current_location.update_lineno(2523); +ttcn3_debugger.breakpoint_entry(2523); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2523 */ +for ( ; ; ) { +current_location.update_lineno(2523); +ttcn3_debugger.breakpoint_entry(2523); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2523 */ +if (!(i < const_cast< const NG__NAS__TypeDefs::NG__PacketFilterList_template&>(p__FilterList).new_().lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2524); +ttcn3_debugger.breakpoint_entry(2524); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2524 */ +{ +INTEGER tmp_230; +tmp_230 = (v__Length + oct2int(const_cast< const NG__NAS__TypeDefs::NG__PacketFilterList_template&>(p__FilterList).new_()[i].len().valueof())); +v__Length = tmp_230; +} +current_location.update_lineno(2525); +ttcn3_debugger.breakpoint_entry(2525); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2525 */ +{ +INTEGER tmp_231; +tmp_231 = (v__Length + 2); +v__Length = tmp_231; +} +current_location.update_lineno(2523); +ttcn3_debugger.breakpoint_entry(2523); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2523 */ +{ +INTEGER tmp_232; +++i; +} +} +} +current_location.update_lineno(2528); +ttcn3_debugger.breakpoint_entry(2528); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2528 */ +{ +INTEGER tmp_233; +tmp_233 = (v__Length + 3); +v__Length = tmp_233; +} +current_location.update_lineno(2529); +ttcn3_debugger.breakpoint_entry(2529); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2529 */ +{ +OCTETSTRING tmp_234; +return DEBUGGER_STORE_RETURN_VALUE(tmp_234, int2oct(v__Length, 2)); +} +} + +OCTETSTRING fl__NR5GC__QosRulesLength(const NG__NAS__TypeDefs::QoS__RuleList_template& p__Rules) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2538, TTCN_Location::LOCATION_FUNCTION, "fl_NR5GC_QosRulesLength"); +charstring_list param_names; +param_names[0] = "p_Rules"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("fl_NR5GC_QosRulesLength", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Rules, "p_Rules", "QoS_RuleList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(2540); +ttcn3_debugger.breakpoint_entry(2540); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2540 */ +INTEGER i; +debug_scope.add_variable(&i, "i", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2541); +ttcn3_debugger.breakpoint_entry(2541); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2541 */ +INTEGER v__Length(0); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2543); +ttcn3_debugger.breakpoint_entry(2543); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2543 */ +i = 0; +current_location.update_lineno(2543); +ttcn3_debugger.breakpoint_entry(2543); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2543 */ +for ( ; ; ) { +current_location.update_lineno(2543); +ttcn3_debugger.breakpoint_entry(2543); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2543 */ +if (!(i < p__Rules.lengthof())) break; +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2544); +ttcn3_debugger.breakpoint_entry(2544); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2544 */ +{ +INTEGER tmp_236; +tmp_236 = ((v__Length + oct2int(const_cast< const NG__NAS__TypeDefs::QoS__RuleList_template&>(p__Rules)[i].iel().valueof())) + 3); +v__Length = tmp_236; +} +current_location.update_lineno(2543); +ttcn3_debugger.breakpoint_entry(2543); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2543 */ +{ +INTEGER tmp_237; +++i; +} +} +current_location.update_lineno(2546); +ttcn3_debugger.breakpoint_entry(2546); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2546 */ +{ +OCTETSTRING tmp_238; +return DEBUGGER_STORE_RETURN_VALUE(tmp_238, int2oct(v__Length, 2)); +} +} + +NG__NAS__TypeDefs::QoS__Rules_template cs__QoS__Rules(const NG__NAS__TypeDefs::QoS__RuleList_template& p__Rules, const OCTETSTRING_template& p__IEI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2549, TTCN_Location::LOCATION_TEMPLATE, "cs_QoS_Rules"); +charstring_list param_names; +param_names[0] = "p_Rules"; +param_names[1] = "p_IEI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_QoS_Rules", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Rules, "p_Rules", "QoS_RuleList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__IEI, "p_IEI", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::QoS__Rules_template ret_val; +ret_val.iei() = p__IEI; +ret_val.iel() = fl__NR5GC__QosRulesLength(p__Rules); +ret_val.listofQoSRules() = p__Rules; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__QoS__Rules_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::Session__AMBR_template cs__Session__AMBR(const OCTETSTRING_template& p__Length, const OCTETSTRING& p__UnitDL, const OCTETSTRING& p__DL, const OCTETSTRING& p__UnitUL, const OCTETSTRING& p__UL) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2558, TTCN_Location::LOCATION_TEMPLATE, "cs_Session_AMBR"); +charstring_list param_names; +param_names[0] = "p_Length"; +param_names[1] = "p_UnitDL"; +param_names[2] = "p_DL"; +param_names[3] = "p_UnitUL"; +param_names[4] = "p_UL"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +param_types[4] = "in"; +TTCN3_Debug_Function debug_scope("cs_Session_AMBR", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__UnitDL, "p_UnitDL", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__DL, "p_DL", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__UnitUL, "p_UnitUL", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__UL, "p_UL", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::Session__AMBR_template ret_val; +ret_val.iei() = OMIT_VALUE; +ret_val.iel() = p__Length; +ret_val.unitDL() = p__UnitDL; +ret_val.downlink() = p__DL; +ret_val.unitUL() = p__UnitUL; +ret_val.uplink() = p__UL; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__Session__AMBR_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::IMEISV__Request_template cds__NG__IMEISV__Request(const BITSTRING& p__Value) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2573, TTCN_Location::LOCATION_TEMPLATE, "cds_NG_IMEISV_Request"); +charstring_list param_names; +param_names[0] = "p_Value"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cds_NG_IMEISV_Request", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Value, "p_Value", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::IMEISV__Request_template ret_val(NAS__CommonTemplates::cs__IMEISV__Request__WithIEI(p__Value)); +ret_val.iei() = hs_3; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cds__NG__IMEISV__Request_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::AllowedNSSAI_template cs__AllowedNSSAI(const OCTETSTRING_template& p__PLMN, const BITSTRING& p__AccessType) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2578, TTCN_Location::LOCATION_TEMPLATE, "cs_AllowedNSSAI"); +charstring_list param_names; +param_names[0] = "p_PLMN"; +param_names[1] = "p_AccessType"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_AllowedNSSAI", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PLMN, "p_PLMN", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__AccessType, "p_AccessType", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::AllowedNSSAI_template ret_val; +ret_val.allowedNSSAI() = p__PLMN; +ret_val.spareBits() = NAS__CommonTemplates::tsc__Spare6; +ret_val.accessType() = p__AccessType; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__AllowedNSSAI_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NSSAI__DELETE__REQUEST(const BITSTRING& p__DeleteNSSAI__Type, const OCTETSTRING_template& p__Configured, const NG__NAS__TypeDefs::AllowedNSSAI_template& p__Allowed) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2586, TTCN_Location::LOCATION_TEMPLATE, "cs_NSSAI_DELETE_REQUEST"); +charstring_list param_names; +param_names[0] = "p_DeleteNSSAI_Type"; +param_names[1] = "p_Configured"; +param_names[2] = "p_Allowed"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_NSSAI_DELETE_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__DeleteNSSAI__Type, "p_DeleteNSSAI_Type", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Configured, "p_Configured", "octetstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Allowed, "p_Allowed", "AllowedNSSAI template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NSSAI__DELETE__REQUEST_template& tmp_239 = ret_val.nssai__Delete__Request(); +tmp_239.skipIndicator() = Common4G5G__LoopBack::tsc__Gen__SkipIndicator; +tmp_239.protocolDiscriminator() = Common4G5G__LoopBack::tsc__LB__ProtocolDiscriminator; +tmp_239.messageType() = NG__NAS__Common::tsc__MsgType__NSSAI__DeleteReq; +tmp_239.deleteNSSAI__Type() = p__DeleteNSSAI__Type; +tmp_239.configuredNSSAI() = p__Configured; +tmp_239.allowedNSSAI() = p__Allowed; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NSSAI__DELETE__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__SET__UAI__REQUEST(const BITSTRING& p__PreferredRRCState) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2609, TTCN_Location::LOCATION_TEMPLATE, "cs_SET_UAI_REQUEST"); +charstring_list param_names; +param_names[0] = "p_PreferredRRCState"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_SET_UAI_REQUEST", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PreferredRRCState, "p_PreferredRRCState", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::SET__UAI__REQUEST_template& tmp_241 = ret_val.set__UAI__Request(); +tmp_241.skipIndicator() = Common4G5G__LoopBack::tsc__Gen__SkipIndicator; +tmp_241.protocolDiscriminator() = Common4G5G__LoopBack::tsc__LB__ProtocolDiscriminator; +tmp_241.messageType() = NG__NAS__Common::tsc__MsgType__SetUAIReq; +tmp_241.spare() = NAS__CommonTemplates::tsc__Spare6; +tmp_241.preferredRRCState() = p__PreferredRRCState; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__SET__UAI__REQUEST_err_descr_ptr); +return ret_val; +} + +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__GMM__STATUS(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2629, TTCN_Location::LOCATION_TEMPLATE, "cr_NG_GMM_STATUS"); +charstring_list param_names; +param_names[0] = "p_Cause"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cr_NG_GMM_STATUS", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Cause, "p_Cause", "GMM_GSM_Cause template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template ret_val; +{ +NG__NAS__TypeDefs::NG__GMM__STATUS_template& tmp_243 = ret_val.gmm__Status(); +tmp_243.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_243.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_243.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_243.messageType() = NG__NAS__Common::tsc__MT__NG__GMM__Status; +tmp_243.gmmCause() = p__Cause; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cr__NG__GMM__STATUS_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NSSAI__LV_template cs__NSSAI__LV(const OCTETSTRING& p__Length, const NG__NAS__TypeDefs::S__NSSAI__TypeList_template& p__S__NSSAI) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2641, TTCN_Location::LOCATION_TEMPLATE, "cs_NSSAI_LV"); +charstring_list param_names; +param_names[0] = "p_Length"; +param_names[1] = "p_S_NSSAI"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NSSAI_LV", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Length, "p_Length", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__S__NSSAI, "p_S_NSSAI", "S_NSSAI_TypeList template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NSSAI__LV_template ret_val; +ret_val.iel() = p__Length; +ret_val.s__nssai() = p__S__NSSAI; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NSSAI__LV_err_descr_ptr); +return ret_val; +} + +OCTETSTRING fl__NR5GC__NSAGLength(const NG__NAS__TypeDefs::NSSAI__LV_template& p__NSAG, const NG__NAS__TypeDefs::NG__TrackingAreaIdList__LV_template& p__TaiList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2654, TTCN_Location::LOCATION_FUNCTION, "fl_NR5GC_NSAGLength"); +charstring_list param_names; +param_names[0] = "p_NSAG"; +param_names[1] = "p_TaiList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("fl_NR5GC_NSAGLength", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NSAG, "p_NSAG", "NSSAI_LV template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__TaiList, "p_TaiList", "NG_TrackingAreaIdList_LV template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +current_location.update_lineno(2656); +ttcn3_debugger.breakpoint_entry(2656); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2656 */ +INTEGER v__Length(oct2int(const_cast< const NG__NAS__TypeDefs::NSSAI__LV_template&>(p__NSAG).iel().valueof())); +debug_scope.add_variable(&v__Length, "v_Length", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2658); +ttcn3_debugger.breakpoint_entry(2658); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2658 */ +{ +INTEGER tmp_244; +tmp_244 = (v__Length + 3); +v__Length = tmp_244; +} +current_location.update_lineno(2660); +ttcn3_debugger.breakpoint_entry(2660); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2660 */ +if (p__TaiList.is_value()) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(2661); +ttcn3_debugger.breakpoint_entry(2661); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2661 */ +{ +INTEGER tmp_245; +tmp_245 = ((v__Length + oct2int(const_cast< const NG__NAS__TypeDefs::NG__TrackingAreaIdList__LV_template&>(p__TaiList).iel().valueof())) + 1); +v__Length = tmp_245; +} +} +current_location.update_lineno(2663); +ttcn3_debugger.breakpoint_entry(2663); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2663 */ +{ +OCTETSTRING tmp_246; +return DEBUGGER_STORE_RETURN_VALUE(tmp_246, int2oct(v__Length, 1)); +} +} + +NG__NAS__TypeDefs::NSAG_template cs__NSAG__InfoElement(const OCTETSTRING& p__Id, const NG__NAS__TypeDefs::NSSAI__LV_template& p__NSAG, const OCTETSTRING& p__Priority, const NG__NAS__TypeDefs::NG__TrackingAreaIdList__LV_template& p__TaiList) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2666, TTCN_Location::LOCATION_TEMPLATE, "cs_NSAG_InfoElement"); +charstring_list param_names; +param_names[0] = "p_Id"; +param_names[1] = "p_NSAG"; +param_names[2] = "p_Priority"; +param_names[3] = "p_TaiList"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +param_types[3] = "in"; +TTCN3_Debug_Function debug_scope("cs_NSAG_InfoElement", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__Id, "p_Id", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__NSAG, "p_NSAG", "NSSAI_LV template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__Priority, "p_Priority", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__TaiList, "p_TaiList", "NG_TrackingAreaIdList_LV template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NSAG_template ret_val; +ret_val.iel() = fl__NR5GC__NSAGLength(p__NSAG, p__TaiList); +ret_val.id() = p__Id; +ret_val.sNSSAIList() = p__NSAG; +ret_val.priority() = p__Priority; +ret_val.taiList() = p__TaiList; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NSAG__InfoElement_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NSAG__Info_template cs__NSAG__2Elements(const NG__NAS__TypeDefs::NSAG_template& p__NSAG1, const NG__NAS__TypeDefs::NSAG_template& p__NSAG2) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2678, TTCN_Location::LOCATION_TEMPLATE, "cs_NSAG_2Elements"); +charstring_list param_names; +param_names[0] = "p_NSAG1"; +param_names[1] = "p_NSAG2"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NSAG_2Elements", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NSAG1, "p_NSAG1", "NSAG template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.add_variable(&p__NSAG2, "p_NSAG2", "NSAG template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NSAG__Info_template ret_val; +ret_val.iei() = os_28; +ret_val.iel() = int2oct(((oct2int(const_cast< const NG__NAS__TypeDefs::NSAG_template&>(p__NSAG1).iel().valueof()) + oct2int(const_cast< const NG__NAS__TypeDefs::NSAG_template&>(p__NSAG2).iel().valueof())) + 2), 2); +{ +NG__NAS__TypeDefs::NSAG__Info_nsagList_template& tmp_247 = ret_val.nsagList(); +tmp_247.set_size(2); +tmp_247[0] = p__NSAG1; +tmp_247[1] = p__NSAG2; +} +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NSAG__2Elements_err_descr_ptr); +return ret_val; +} + +NG__NAS__TypeDefs::NID_template fl__BuildNIDTemplate(const INTEGER& p__NID, const INTEGER& p__AssignmentMode) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2690, TTCN_Location::LOCATION_FUNCTION, "fl_BuildNIDTemplate"); +charstring_list param_names; +param_names[0] = "p_NID"; +param_names[1] = "p_AssignmentMode"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("fl_BuildNIDTemplate", "function", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__NID, "p_NID", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__AssignmentMode, "p_AssignmentMode", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(2692); +ttcn3_debugger.breakpoint_entry(2692); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2692 */ +HEXSTRING v__Hex(int2hex(p__NID, 10)); +debug_scope.add_variable(&v__Hex, "v_Hex", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2693); +ttcn3_debugger.breakpoint_entry(2693); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2693 */ +HEXSTRING v__Digits2__9(hs_4); +debug_scope.add_variable(&v__Digits2__9, "v_Digits2_9", "hexstring", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(2694); +ttcn3_debugger.breakpoint_entry(2694); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2694 */ +NG__NAS__TypeDefs::NID_template v__NIDTemplate(cs__NIDBlank(int2bit(p__AssignmentMode, 4))); +debug_scope.add_variable(&v__NIDTemplate, "v_NIDTemplate", "NID template", NULL, NG__NAS__TypeDefs::print_var_NG_NAS_TypeDefs, NG__NAS__TypeDefs::set_var_NG_NAS_TypeDefs); +current_location.update_lineno(2697); +ttcn3_debugger.breakpoint_entry(2697); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2697 */ +v__Digits2__9 = (((((((const_cast< const HEXSTRING&>(v__Hex)[2] + const_cast< const HEXSTRING&>(v__Hex)[1]) + const_cast< const HEXSTRING&>(v__Hex)[4]) + const_cast< const HEXSTRING&>(v__Hex)[3]) + const_cast< const HEXSTRING&>(v__Hex)[6]) + const_cast< const HEXSTRING&>(v__Hex)[5]) + const_cast< const HEXSTRING&>(v__Hex)[8]) + const_cast< const HEXSTRING&>(v__Hex)[7]); +current_location.update_lineno(2702); +ttcn3_debugger.breakpoint_entry(2702); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2702 */ +v__NIDTemplate.digit1() = const_cast< const HEXSTRING&>(v__Hex)[0]; +current_location.update_lineno(2703); +ttcn3_debugger.breakpoint_entry(2703); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2703 */ +v__NIDTemplate.digits2__9() = v__Digits2__9; +current_location.update_lineno(2704); +ttcn3_debugger.breakpoint_entry(2704); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2704 */ +v__NIDTemplate.digit10() = const_cast< const HEXSTRING&>(v__Hex)[9]; +current_location.update_lineno(2706); +ttcn3_debugger.breakpoint_entry(2706); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2706 */ +{ +NG__NAS__TypeDefs::NID_template tmp_252; +return DEBUGGER_STORE_RETURN_VALUE(tmp_252, v__NIDTemplate); +} +} + +NG__NAS__TypeDefs::NID_template cs__NIDBlank(const BITSTRING& p__AssignmentMode) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2709, TTCN_Location::LOCATION_TEMPLATE, "cs_NIDBlank"); +charstring_list param_names; +param_names[0] = "p_AssignmentMode"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_NIDBlank", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__AssignmentMode, "p_AssignmentMode", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NG__NAS__TypeDefs::NID_template ret_val; +ret_val.iei() = os_29; +ret_val.iel() = os_30; +ret_val.digit1() = hs_5; +ret_val.assignmentMode() = p__AssignmentMode; +ret_val.digits2__9() = hs_4; +ret_val.spare() = bs_19; +ret_val.digit10() = hs_5; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NIDBlank_err_descr_ptr); +return ret_val; +} + +NAS__CommonTypeDefs::ExtdDRXParams_template cs__NG__NAS__EDRXParams(const BITSTRING& p__PTW, const BITSTRING& p__EDRXVal, const BITSTRING_template& p__ExtdPTW) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 2720, TTCN_Location::LOCATION_TEMPLATE, "cs_NG_NAS_EDRXParams"); +charstring_list param_names; +param_names[0] = "p_PTW"; +param_names[1] = "p_EDRXVal"; +param_names[2] = "p_ExtdPTW"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("cs_NG_NAS_EDRXParams", "template", "NG_NAS_Templates", param_names, param_types, NULL); +debug_scope.add_variable(&p__PTW, "p_PTW", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__EDRXVal, "p_EDRXVal", "bitstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__ExtdPTW, "p_ExtdPTW", "bitstring template", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NAS__CommonTypeDefs::ExtdDRXParams_template ret_val; +ret_val.iei() = os_31; +ret_val.iel() = os_1; +ret_val.pagingTimeWindow() = p__PTW; +ret_val.eDRXValue() = p__EDRXVal; +ret_val.extdPTW() = p__ExtdPTW; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NG__NAS__EDRXParams_err_descr_ptr); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_Templates"); +NG__NAS__Templates::init_ttcn3_debugger(); +NG__NAS__MsgContainers::module_object.pre_init_module(); +NG__NAS__Common::module_object.pre_init_module(); +module_object.add_function("fl_NR5GC_NSSAILength", (genericfunc_t)&fl__NR5GC__NSSAILength, NULL); +module_object.add_function("fl_ExtractNSSAI_FromEachATCommandLine", (genericfunc_t)&fl__ExtractNSSAI__FromEachATCommandLine, NULL); +module_object.add_function("f_MatchListOfNSSAI_WithATCommand", (genericfunc_t)&f__MatchListOfNSSAI__WithATCommand, NULL); +module_object.add_function("f_MatchXtdRejectedNSSAI_WithATCommand", (genericfunc_t)&f__MatchXtdRejectedNSSAI__WithATCommand, NULL); +module_object.add_function("fl_XtdRejectedS_NSSAILength", (genericfunc_t)&fl__XtdRejectedS__NSSAILength, NULL); +module_object.add_function("f_BuildNR5GC_PartialXtdRejectedNSSAIType0", (genericfunc_t)&f__BuildNR5GC__PartialXtdRejectedNSSAIType0, NULL); +module_object.add_function("f_BuildNR5GC_PartialXtdRejectedNSSAIType1", (genericfunc_t)&f__BuildNR5GC__PartialXtdRejectedNSSAIType1, NULL); +module_object.add_function("f_BuildNR5GC_ExtdRejectedNSSAI", (genericfunc_t)&f__BuildNR5GC__ExtdRejectedNSSAI, NULL); +module_object.add_function("fl_FlowParameterBitRate", (genericfunc_t)&fl__FlowParameterBitRate, NULL); +module_object.add_function("f_BuildDefaultQosFlow", (genericfunc_t)&f__BuildDefaultQosFlow, NULL); +module_object.add_function("fl_NR5GC_QoSFlowsLength", (genericfunc_t)&fl__NR5GC__QoSFlowsLength, NULL); +module_object.add_function("fl_BuildRemotePortRange", (genericfunc_t)&fl__BuildRemotePortRange, NULL); +module_object.add_function("fl_BuildProtocolIdNextHeaderUDP", (genericfunc_t)&fl__BuildProtocolIdNextHeaderUDP, NULL); +module_object.add_function("f_BuildDefaultQoSRules", (genericfunc_t)&f__BuildDefaultQoSRules, NULL); +module_object.add_function("f_BuildDefaultQoSRule", (genericfunc_t)&f__BuildDefaultQoSRule, NULL); +module_object.add_function("fl_NR5GC_QoSRuleLength", (genericfunc_t)&fl__NR5GC__QoSRuleLength, NULL); +module_object.add_function("fl_NR5GC_QosRulesLength", (genericfunc_t)&fl__NR5GC__QosRulesLength, NULL); +module_object.add_function("fl_NR5GC_NSAGLength", (genericfunc_t)&fl__NR5GC__NSAGLength, NULL); +module_object.add_function("fl_BuildNIDTemplate", (genericfunc_t)&fl__BuildNIDTemplate, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_Templates"); +NG__NAS__MsgContainers::module_object.post_init_module(); +NG__NAS__Common::module_object.post_init_module(); +current_location.update_lineno(29); +ttcn3_debugger.breakpoint_entry(29); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 29 */ +const_cs__NG__NAS__SecurityProtectionInfo_p__ForceMacError_defval = FALSE; +current_location.update_lineno(474); +ttcn3_debugger.breakpoint_entry(474); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 474 */ +const_cs__NG__SOR__Header_p__Ap_defval = bs_1; +current_location.update_lineno(605); +ttcn3_debugger.breakpoint_entry(605); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 605 */ +{ +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& tmp_17 = template_cs__NG__DEREGISTRATION__ACCEPT.deregistration__Accept(); +tmp_17.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_17.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_17.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_17.messageType() = NG__NAS__Common::tsc__MT__NG__DeregistrationAccept__MO; +} +current_location.update_lineno(616); +ttcn3_debugger.breakpoint_entry(616); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 616 */ +{ +NG__NAS__TypeDefs::NG__DEREGISTRATION__ACCEPT_template& tmp_18 = template_cr__NG__DEREGISTRATION__ACCEPT.deregistration__Accept(); +tmp_18.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_18.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_18.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_18.messageType() = NG__NAS__Common::tsc__MT__NG__DeregistrationAccept__MT; +} +current_location.update_lineno(861); +ttcn3_debugger.breakpoint_entry(861); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 861 */ +{ +NG__NAS__TypeDefs::NG__CONFIGURATION__UPDATE__COMPLETE_template& tmp_25 = template_cr__NG__CONFIGURATION__UPDATE__COMPLETE.configuration__Update__Complete(); +tmp_25.protocolDiscriminator() = NG__NAS__Common::tsc__EPD__GMM; +tmp_25.spareHalfOctet() = NAS__CommonTemplates::tsc__SpareHalfOctet; +tmp_25.securityHeaderType() = NAS__CommonTemplates::tsc__SHT__NoSecurityProtection; +tmp_25.messageType() = NG__NAS__Common::tsc__MT__NG__ConfigurationUpdateComplete; +} +current_location.update_lineno(1341); +ttcn3_debugger.breakpoint_entry(1341); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1341 */ +template_cs__DummyEAP__Message.iei() = OMIT_VALUE; +template_cs__DummyEAP__Message.iel() = os_3; +template_cs__DummyEAP__Message.eapMsg() = os_4; +current_location.update_lineno(1365); +ttcn3_debugger.breakpoint_entry(1365); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1365 */ +template_cs__NG__NetworkFeatureSupport__Def.iei() = os_5; +template_cs__NG__NetworkFeatureSupport__Def.iel() = os_6; +template_cs__NG__NetworkFeatureSupport__Def.mpsi() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.iwk__N26() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.emf() = bs_0; +template_cs__NG__NetworkFeatureSupport__Def.emc() = bs_2; +template_cs__NG__NetworkFeatureSupport__Def.imsVoPS__n3GPP() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.imsVoPS__3GPP() = bs_3; +template_cs__NG__NetworkFeatureSupport__Def.ng__UP__CIoT() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.ngIPHC__CP__CIoT() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.n3Data() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.ng__CP__CIoT() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.restrictEC() = bs_0; +template_cs__NG__NetworkFeatureSupport__Def.mcsi() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.emcn3() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.spareBit() = NAS__CommonTemplates::tsc__Spare1; +template_cs__NG__NetworkFeatureSupport__Def.pr() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.rpr() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.piv() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.ncr() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.ngEHC__CP__CIoT() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.atsInd() = bs_1; +template_cs__NG__NetworkFeatureSupport__Def.ngLCS() = bs_1; +current_location.update_lineno(1393); +ttcn3_debugger.breakpoint_entry(1393); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1393 */ +template_cds__NG__NetworkFeatureSupport__NoN26 = cs__NG__NetworkFeatureSupport__Def; +template_cds__NG__NetworkFeatureSupport__NoN26.iwk__N26() = bs_3; +current_location.update_lineno(1399); +ttcn3_debugger.breakpoint_entry(1399); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1399 */ +template_cds__NG__NetworkFeatureSupport__NoImsVoPS__3GPP = cs__NG__NetworkFeatureSupport__Def; +template_cds__NG__NetworkFeatureSupport__NoImsVoPS__3GPP.imsVoPS__3GPP() = bs_1; +current_location.update_lineno(1429); +ttcn3_debugger.breakpoint_entry(1429); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1429 */ +template_cs__EmptyCAGInfoList.iei() = os_7; +template_cs__EmptyCAGInfoList.iel() = os_3; +template_cs__EmptyCAGInfoList.listOfCAGInfos() = OMIT_VALUE; +current_location.update_lineno(1540); +ttcn3_debugger.breakpoint_entry(1540); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1540 */ +const_cs__ConfigUpdateInd_p__Red_defval = bs_1; +current_location.update_lineno(1541); +ttcn3_debugger.breakpoint_entry(1541); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1541 */ +const_cs__ConfigUpdateInd_p__Ack_defval = bs_1; +current_location.update_lineno(1560); +ttcn3_debugger.breakpoint_entry(1560); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1560 */ +const_crs__DeregisterType_p__Access_defval = bs_4; +current_location.update_lineno(1570); +ttcn3_debugger.breakpoint_entry(1570); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1570 */ +const_cs__AdditionalSecurityInfo_p__Hdp_defval = bs_1; +current_location.update_lineno(1615); +ttcn3_debugger.breakpoint_entry(1615); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1615 */ +{ +OCTETSTRING_template tmp_54; +tmp_54 = OMIT_VALUE; +OCTETSTRING_template tmp_55; +tmp_55 = OMIT_VALUE; +template_cs__S__NSSAI__SST1eMBB = cs__S__NSSAI(os_1, os_1, OCTETSTRING_template(OMIT_VALUE), tmp_54, tmp_55); +} +template_cs__S__NSSAI__SST1eMBB__WithIEI = cs__S__NSSAI__WithIEI(os_13, cs__S__NSSAI__SST1eMBB); +current_location.update_lineno(1616); +ttcn3_debugger.breakpoint_entry(1616); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1616 */ +current_location.update_lineno(1617); +ttcn3_debugger.breakpoint_entry(1617); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1617 */ +{ +OCTETSTRING_template tmp_56; +tmp_56 = OMIT_VALUE; +OCTETSTRING_template tmp_57; +tmp_57 = OMIT_VALUE; +template_cs__S__NSSAI__SST2__URLLC = cs__S__NSSAI(os_1, os_14, OCTETSTRING_template(OMIT_VALUE), tmp_56, tmp_57); +} +current_location.update_lineno(1618); +ttcn3_debugger.breakpoint_entry(1618); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1618 */ +{ +OCTETSTRING_template tmp_58; +tmp_58 = OMIT_VALUE; +OCTETSTRING_template tmp_59; +tmp_59 = OMIT_VALUE; +template_cs__S__NSSAI__SST3__MIoT = cs__S__NSSAI(os_1, os_6, OCTETSTRING_template(OMIT_VALUE), tmp_58, tmp_59); +} +current_location.update_lineno(1619); +ttcn3_debugger.breakpoint_entry(1619); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1619 */ +{ +OCTETSTRING_template tmp_60; +tmp_60 = OMIT_VALUE; +OCTETSTRING_template tmp_61; +tmp_61 = OMIT_VALUE; +template_cs__S__NSSAI__SST4__V2X = cs__S__NSSAI(os_1, os_15, OCTETSTRING_template(OMIT_VALUE), tmp_60, tmp_61); +} +current_location.update_lineno(1631); +ttcn3_debugger.breakpoint_entry(1631); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1631 */ +{ +NG__NAS__TypeDefs::S__NSSAI__TypeList_template tmp_65; +tmp_65.set_size(4); +tmp_65[0] = cs__S__NSSAI__SST1eMBB; +tmp_65[1] = cs__S__NSSAI__SST2__URLLC; +tmp_65[2] = cs__S__NSSAI__SST3__MIoT; +tmp_65[3] = cs__S__NSSAI__SST4__V2X; +template_cs__NSSAI__Allowed__Def = cs__NSSAI__Def(OCTETSTRING_template(os_16), tmp_65); +} +current_location.update_lineno(1768); +ttcn3_debugger.breakpoint_entry(1768); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1768 */ +const_f__MatchXtdRejectedNSSAI__WithATCommand_p__AtLeastThisList_defval = TRUE; +current_location.update_lineno(1927); +ttcn3_debugger.breakpoint_entry(1927); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1927 */ +template_cr__NG__GMM__CapAny.iei() = os_18; +template_cr__NG__GMM__CapAny.iel() = ANY_VALUE; +template_cr__NG__GMM__CapAny.sgc() = ANY_VALUE; +template_cr__NG__GMM__CapAny.ngIPHC__CP__CIoT() = ANY_VALUE; +template_cr__NG__GMM__CapAny.n3Data() = ANY_VALUE; +template_cr__NG__GMM__CapAny.ng__CP__CIoT() = ANY_VALUE; +template_cr__NG__GMM__CapAny.restrictEC() = ANY_VALUE; +template_cr__NG__GMM__CapAny.lpp() = ANY_VALUE; +template_cr__NG__GMM__CapAny.hoAttach() = ANY_VALUE; +template_cr__NG__GMM__CapAny.s1Cap() = ANY_VALUE; +template_cr__NG__GMM__CapAny.racs() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.nssaa() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ngLCS() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.v2xNPC5() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.v2xEPC5() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.v2x() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ng__UP__CIoT() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ngSRVCC() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ngProSeL2relay() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ngProSe__dc() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ngProSe__dd() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.erNSSAI() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ngEHC__CP__CIoT() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.multipleUP() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.wusa() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.cag() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.pr() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.rpr() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.piv() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ncr() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.nrPSSI() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ngProSeL3rmt() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ngProSeL2rmt() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ngProSeL3relay() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.mpsiu() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.uas() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.nsag() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.exCAG() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.ssnpnsi() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.eventNotification() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.mint() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.nssrg() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.spareBits() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.rcman() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.rcmap() = ANY_OR_OMIT; +template_cr__NG__GMM__CapAny.spare() = OMIT_VALUE; +current_location.update_lineno(1978); +ttcn3_debugger.breakpoint_entry(1978); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1978 */ +template_cdr__NG__GMM__Cap__RACS = cr__NG__GMM__CapAny; +template_cdr__NG__GMM__Cap__RACS.racs() = bs_3; +current_location.update_lineno(1983); +ttcn3_debugger.breakpoint_entry(1983); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1983 */ +template_cdr__NG__GMM__Cap__S1 = cr__NG__GMM__CapAny; +template_cdr__NG__GMM__Cap__S1.s1Cap() = bs_3; +current_location.update_lineno(1988); +ttcn3_debugger.breakpoint_entry(1988); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1988 */ +template_cdr__NG__GMM__Cap__ERNSSAI = cr__NG__GMM__CapAny; +template_cdr__NG__GMM__Cap__ERNSSAI.erNSSAI() = bs_3; +current_location.update_lineno(1993); +ttcn3_debugger.breakpoint_entry(1993); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 1993 */ +template_cs__DummyPayloadContainer.iei() = OMIT_VALUE; +template_cs__DummyPayloadContainer.iel() = os_3; +template_cs__DummyPayloadContainer.payload() = os_4; +current_location.update_lineno(2052); +ttcn3_debugger.breakpoint_entry(2052); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2052 */ +const_cs__ABBA_p__Length_defval = os_14; +current_location.update_lineno(2068); +ttcn3_debugger.breakpoint_entry(2068); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2068 */ +const_cr__PDU__SessionStatusAny_p__IEI_defval = os_19; +current_location.update_lineno(2100); +ttcn3_debugger.breakpoint_entry(2100); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2100 */ +template_cr__AlwaysOnRequested = crs__AlwaysOn(bs_3); +current_location.update_lineno(2101); +ttcn3_debugger.breakpoint_entry(2101); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2101 */ +template_cs__AlwaysOnAllowed = crs__AlwaysOn(bs_3); +current_location.update_lineno(2102); +ttcn3_debugger.breakpoint_entry(2102); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2102 */ +template_cs__AlwaysOnNotAllowed = crs__AlwaysOn(bs_1); +current_location.update_lineno(2262); +ttcn3_debugger.breakpoint_entry(2262); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2262 */ +const_f__BuildDefaultQosFlow_p__InterworkWithEPS_defval = FALSE; +current_location.update_lineno(2263); +ttcn3_debugger.breakpoint_entry(2263); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2263 */ +const_f__BuildDefaultQosFlow_p__EPSBearerId_defval = os_20; +current_location.update_lineno(2325); +ttcn3_debugger.breakpoint_entry(2325); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2325 */ +const_cs__QoS__Flow1_p__InterworkWithEPS_defval = FALSE; +current_location.update_lineno(2326); +ttcn3_debugger.breakpoint_entry(2326); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2326 */ +const_cs__QoS__Flow1_p__EPSBearerId_defval = os_20; +current_location.update_lineno(2327); +ttcn3_debugger.breakpoint_entry(2327); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2327 */ +const_cs__QoS__Flow2_p__InterworkWithEPS_defval = FALSE; +current_location.update_lineno(2328); +ttcn3_debugger.breakpoint_entry(2328); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2328 */ +const_cs__QoS__Flow2_p__EPSBearerId_defval = os_20; +current_location.update_lineno(2329); +ttcn3_debugger.breakpoint_entry(2329); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2329 */ +template_cs__QoS__Flow2a = f__BuildDefaultQosFlow(cs_6, f__BuildDefaultQosFlow_p__InterworkWithEPS_defval, f__BuildDefaultQosFlow_p__EPSBearerId_defval); +current_location.update_lineno(2330); +ttcn3_debugger.breakpoint_entry(2330); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2330 */ +template_cs__QoS__Flow3 = f__BuildDefaultQosFlow(cs_7, f__BuildDefaultQosFlow_p__InterworkWithEPS_defval, f__BuildDefaultQosFlow_p__EPSBearerId_defval); +current_location.update_lineno(2331); +ttcn3_debugger.breakpoint_entry(2331); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2331 */ +template_cs__QoS__Flow4 = f__BuildDefaultQosFlow(cs_8, f__BuildDefaultQosFlow_p__InterworkWithEPS_defval, f__BuildDefaultQosFlow_p__EPSBearerId_defval); +current_location.update_lineno(2332); +ttcn3_debugger.breakpoint_entry(2332); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2332 */ +const_cs__QoS__Flow5_p__InterworkWithEPS_defval = TRUE; +current_location.update_lineno(2332); +ttcn3_debugger.breakpoint_entry(2332); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2332 */ +const_cs__QoS__Flow5_p__EPSBearerId_defval = os_20; +current_location.update_lineno(2333); +ttcn3_debugger.breakpoint_entry(2333); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2333 */ +const_cs__QoS__Flow6_p__InterworkWithEPS_defval = TRUE; +current_location.update_lineno(2333); +ttcn3_debugger.breakpoint_entry(2333); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2333 */ +const_cs__QoS__Flow6_p__EPSBearerId_defval = os_20; +current_location.update_lineno(2367); +ttcn3_debugger.breakpoint_entry(2367); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2367 */ +{ +NG__NAS__TypeDefs::QoS__FlowList_template tmp_201; +tmp_201.set_size(1); +tmp_201[0] = cs__QoS__Flow1(cs__QoS__Flow1_p__InterworkWithEPS_defval, cs__QoS__Flow1_p__EPSBearerId_defval); +template_cs__QoSFlowDescr1 = cs__QoSFlowDescr(tmp_201); +} +current_location.update_lineno(2368); +ttcn3_debugger.breakpoint_entry(2368); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2368 */ +{ +NG__NAS__TypeDefs::QoS__FlowList_template tmp_202; +tmp_202.set_size(1); +tmp_202[0] = cs__QoS__Flow2(cs__QoS__Flow2_p__InterworkWithEPS_defval, cs__QoS__Flow2_p__EPSBearerId_defval); +template_cs__QoSFlowDescr2 = cs__QoSFlowDescr(tmp_202); +} +current_location.update_lineno(2370); +ttcn3_debugger.breakpoint_entry(2370); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2370 */ +{ +NG__NAS__TypeDefs::NG__PacketFilterList__Type2_template& tmp_203 = template_cs__PacketFilterList__1MatchAll.new_(); +tmp_203.set_size(1); +{ +NG__NAS__TypeDefs::NG__PacketFilter__Type2_template& tmp_204 = tmp_203[0]; +tmp_204.spare() = NAS__CommonTemplates::tsc__Spare2; +tmp_204.direction() = bs_2; +tmp_204.packetFilterId() = bs_7; +tmp_204.len() = os_1; +tmp_204.contents() = os_1; +} +} +current_location.update_lineno(2436); +ttcn3_debugger.breakpoint_entry(2436); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2436 */ +const_cs__QoS__Rule_p__OperationCode_defval = bs_6; +current_location.update_lineno(2438); +ttcn3_debugger.breakpoint_entry(2438); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2438 */ +const_cs__QoS__Rule_p__DQR_defval = bs_3; +current_location.update_lineno(2573); +ttcn3_debugger.breakpoint_entry(2573); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2573 */ +const_cds__NG__IMEISV__Request_p__Value_defval = NAS__CommonTemplates::tsc__IMEISV__Requested; +current_location.update_lineno(2600); +ttcn3_debugger.breakpoint_entry(2600); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2600 */ +{ +NG__NAS__TypeDefs::NSSAI__DELETE__RESPONSE_template& tmp_240 = template_cr__NSSAI__DELETE__RESPONSE.nssai__Delete__Response(); +tmp_240.skipIndicator() = Common4G5G__LoopBack::tsc__Gen__SkipIndicator; +tmp_240.protocolDiscriminator() = Common4G5G__LoopBack::tsc__LB__ProtocolDiscriminator; +tmp_240.messageType() = NG__NAS__Common::tsc__MsgType__NSSAI__DeleteResp; +} +current_location.update_lineno(2620); +ttcn3_debugger.breakpoint_entry(2620); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2620 */ +{ +NG__NAS__TypeDefs::SET__UAI__RESPONSE_template& tmp_242 = template_cr__SET__UAI__RESPONSE.set__UAI__Response(); +tmp_242.skipIndicator() = Common4G5G__LoopBack::tsc__Gen__SkipIndicator; +tmp_242.protocolDiscriminator() = Common4G5G__LoopBack::tsc__LB__ProtocolDiscriminator; +tmp_242.messageType() = NG__NAS__Common::tsc__MsgType__SetUAIResp; +} +current_location.update_lineno(2690); +ttcn3_debugger.breakpoint_entry(2690); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn, line 2690 */ +const_fl__BuildNIDTemplate_p__AssignmentMode_defval = 1; +} + + +/* Bodies of static conversion functions */ + +static boolean conv_NG__NAS__TypeDefs_XtdRejectedS__NSSAI__List_NG__NAS__TypeDefs_PartialXtdRejectedNSSAIType0_rejectS__NSSAI(NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& p_to_v, const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p_from_v) +{ +p_to_v.set_size(p_from_v.size_of()); +for (int i = 0; i < p_from_v.size_of(); i++) { +if (p_from_v[i].is_bound()) p_to_v[i] = p_from_v[i]; +} +return TRUE; +} + +static boolean conv_NG__NAS__TypeDefs_PartialXtdRejectedNSSAIType0_rejectS__NSSAI_NG__NAS__TypeDefs_XtdRejectedS__NSSAI__List(NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p_to_v, const NG__NAS__TypeDefs::PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& p_from_v) +{ +p_to_v.set_size(p_from_v.size_of()); +for (int i = 0; i < p_from_v.size_of(); i++) { +if (p_from_v[i].is_bound()) p_to_v[i] = p_from_v[i]; +} +return TRUE; +} + +static boolean conv_NAS__CommonTypeDefs_QoSParametersList_NG__NAS__TypeDefs_QoS__Flow_parameterList(NG__NAS__TypeDefs::QoS__Flow_parameterList_template& p_to_v, const NAS__CommonTypeDefs::QoSParametersList_template& p_from_v) +{ +p_to_v.set_size(p_from_v.size_of()); +for (int i = 0; i < p_from_v.size_of(); i++) { +if (p_from_v[i].is_bound()) p_to_v[i] = p_from_v[i]; +} +return TRUE; +} + +static boolean conv_NG__NAS__TypeDefs_QoS__FlowList_NG__NAS__TypeDefs_QoSFlowDescr_listofFlows(NG__NAS__TypeDefs::QoSFlowDescr_listofFlows_template& p_to_v, const NG__NAS__TypeDefs::QoS__FlowList_template& p_from_v) +{ +p_to_v.set_size(p_from_v.size_of()); +for (int i = 0; i < p_from_v.size_of(); i++) { +if (p_from_v[i].is_bound()) p_to_v[i] = p_from_v[i]; +} +return TRUE; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NG_NAS_Templates.hh b/build/Ats_NG_NAS/NG_NAS_Templates.hh new file mode 100644 index 0000000000000000000000000000000000000000..4a057a9121cd7fcae0e80790aef45ce2080706d3 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_Templates.hh @@ -0,0 +1,423 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NG__NAS__Templates_HH +#define NG__NAS__Templates_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NG_NAS_MsgContainers.hh" +#include "NG_NAS_Common.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace NG__NAS__Templates { + +/* Function prototypes */ + +extern NG__NAS__MsgContainers::NG__NAS__SecurityProtectionInfoDL__Type_template cs__NG__NAS__SecurityProtectionInfo(const BITSTRING& p__Status, const BOOLEAN& p__ForceMacError); +extern NG__NAS__MsgContainers::NG__NAS__SecurityProtectionInfoUL__Type_template cr__NG__NAS__SecurityProtectionInfo(const BITSTRING_template& p__ExpectedStatus); +extern NG__NAS__MsgContainers::NG__NAS__MSG__Request__Type_template cs__NG__NAS__Request(const BITSTRING& p__SecurityStatus, const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& p__Msg); +extern NG__NAS__MsgContainers::NG__NAS__MSG__Indication__Type_template cr__NG__NAS__Ind(const BITSTRING_template& p__ExpectedSecurityStatus, const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& p__Msg); +extern NG__NAS__MsgContainers::NG__NAS__MSG__Request__Type_template cs__NG__NAS__RequestWithPiggybacking(const BITSTRING& p__SecurityStatus, const NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template& p__PiggyBackList); +extern NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template cs__NG__NAS__DL__PduWithPiggybacking(const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& p__GmmMsg, const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& p__PiggyBackedMsg); +extern NG__NAS__MsgContainers::NG__NAS__DL__Pdu__Type_template cs__NG__NAS__DL__PduWithoutPiggyback(const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& p__GmmMsg); +extern NG__NAS__MsgContainers::NG__NAS__MSG__Indication__Type_template cr__NG__NAS__IndWithPiggybacking(const BITSTRING_template& p__ExpectedSecurityStatus, const NG__NAS__MsgContainers::NG__NAS__UL__Pdu__Type_template& p__PiggyBackList); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__AUTHENTICATION__REQUEST(const BITSTRING& p__KeySetId, const NG__NAS__TypeDefs::ABBA_template& p__ABBA, const NAS__CommonTypeDefs::RAND_template& p__RAND, const NAS__CommonTypeDefs::AUTN_template& p__AUTN, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__AUTHENTICATION__RESPONSE(const NAS__CommonTypeDefs::AuthenticationResponseParameter_template& p__Res, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__AUTHENTICATION__RESULT(const BITSTRING& p__KeySetId, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::ABBA_template& p__ABBA); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__AUTHENTICATION__FAILURE(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& p__AuthFailParam); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__AUTHENTICATION__REJECT(const NG__NAS__TypeDefs::EAP__Message_template& p__EAP); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__REGISTRATION__REQUEST(const NG__NAS__TypeDefs::RegistrationType_template& p__RegistrationType, const BITSTRING_template& p__KeySetId, const BITSTRING_template& p__Tsc, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__MobileId, const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& p__NonCurrentKSI, const NG__NAS__TypeDefs::NG__GMM__Cap_template& p__GMM__Cap, const NG__NAS__TypeDefs::NG__UE__SecurityCapability_template& p__UESecurityCap, const NG__NAS__TypeDefs::NSSAI_template& p__ReqNSSAI, const NG__NAS__TypeDefs::NG__TrackingAreaId_template& p__TAI, const NAS__CommonTypeDefs::UE__NetworkCap_template& p__UE__NetworkCap, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__ULDataStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NG__NAS__TypeDefs::MICO__Ind_template& p__MICO__Ind, const NAS__CommonTypeDefs::UE__Status_template& p__UE__Status, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__AddGUTI, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__AllowedPDU__SessionStatus, const NG__NAS__TypeDefs::UE__UsageSetting_template& p__UE__UsageSetting, const NAS__CommonTypeDefs::DRXParamCommon_template& p__DRXparam, const NG__NAS__TypeDefs::EPS__MessageContainer_template& p__EPSMsg, const NG__NAS__TypeDefs::LADN__Ind_template& p__LADN__Ind, const NG__NAS__TypeDefs::PayloadContainerType_template& p__ContainerType, const NG__NAS__TypeDefs::PayloadContainer_template& p__Payload, const NG__NAS__TypeDefs::NetworkSlicingInd_template& p__NetworkSlicingInd, const NG__NAS__TypeDefs::NG__UpdateType_template& p__NG__UpdateType, const NAS__CommonTypeDefs::MS__Clsmk2_template& p__MS__Clsmk2, const NAS__CommonTypeDefs::CodecList_template& p__SupportedCodecs, const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& p__EPS__BearerContextStatus, const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& p__Msg, const NAS__CommonTypeDefs::ExtdDRXParams_template& p__ExtdDRXParams, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3324, const NAS__CommonTypeDefs::UERadioCapId_template& p__UERadioCapId, const NG__NAS__TypeDefs::MappedNSSAI_template& p__MappedNSSAI, const NG__NAS__TypeDefs::AddInfoRequest_template& p__AddInfoRequest, const NAS__CommonTypeDefs::WUSAssistInfo_template& p__WUSAssistInfo, const NG__NAS__TypeDefs::N5GCInd_template& p__N5GCInd, const NAS__CommonTypeDefs::DRXParamCommon_template& p__NB__N1ModeDRXParams, const NAS__CommonTypeDefs::UE__RequestType_template& p__UeRequestType, const NG__NAS__TypeDefs::NG__PagingRestriction_template& p__PagingRestrict, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::NID_template& p__NId, const NAS__CommonTypeDefs::PLMN__IdIE_template& p__MSPLMNwDisasterCondition, const NG__NAS__TypeDefs::PEIPS__AssistInfo_template& p__RequestedPEIPS__AssistInfo, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3512); +extern NG__NAS__TypeDefs::NG__UpdateType_template cr__NG__Update(const BITSTRING_template& p__NgRAN__RCU, const BITSTRING_template& p__SmsRequested, const BITSTRING_template& p__EPS__PNB__CIoT, const BITSTRING_template& p__NG__PNB__CIoT); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__REGISTRATION__ACCEPT(const NG__NAS__TypeDefs::RegistrationResult_template& p__RegistrationResult, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__GUTI, const NAS__CommonTypeDefs::PLMN__List_template& p__EPLMNs, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__TAIList, const NG__NAS__TypeDefs::NSSAI_template& p__AllowedNSSAI, const NG__NAS__TypeDefs::RejectedNSSAI_template& p__RejectedNSSAI, const NG__NAS__TypeDefs::NSSAI_template& p__ConfiguredNSSAI, const NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template& p__NwkFeatureSupport, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionReactResult, const NG__NAS__TypeDefs::PDU__SessionReactivationError_template& p__PDU__SessionReactError, const NG__NAS__TypeDefs::LADN__Info_template& p__LADN__Info, const NG__NAS__TypeDefs::MICO__Ind_template& p__MICO__Ind, const NG__NAS__TypeDefs::NetworkSlicingInd_template& p__NetworkSlicingInd, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__SAIList, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3512, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__Non3GPPDereg, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3502, const NAS__CommonTypeDefs::EmergNumList_template& p__EmergNumList, const NAS__CommonTypeDefs::ExtdEmergNumList_template& p__ExtdEmergNumList, const NG__NAS__TypeDefs::SORTransparentContainer_template& p__SOR, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::InclusionModeNSSAI_template& p__InclusionModeNSSAI, const NG__NAS__TypeDefs::OperatorAccessCatDefinitions_template& p__AccessCatDefinition, const NAS__CommonTypeDefs::DRXParamCommon_template& p__NG__DRXparameter, const NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& p__Non3GPP__NW__ProvidedPolicies, const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& p__EPS__BearerContextStatus, const NAS__CommonTypeDefs::ExtdDRXParams_template& p__NegotiatedExtdDRXParams, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3447, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3448, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3324, const NAS__CommonTypeDefs::UERadioCapId_template& p__UERadioCapId, const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& p__UERadioCapIdDeletion, const NG__NAS__TypeDefs::NSSAI_template& p__PendingNSSAI, const NG__NAS__TypeDefs::NG__CipheringKeyData_template& p__CipheringKeyData, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NG__NAS__TypeDefs::TruncatedS__TMSIConfig_template& p__TruncatedS__TMSIConfig, const NAS__CommonTypeDefs::WUSAssistInfo_template& p__WUSAssistInfo, const NAS__CommonTypeDefs::DRXParamCommon_template& p__NB__N1ModeDRXParams, const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__ExtdRejectedNSSAI, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::PEIPS__AssistInfo_template& p__NegotiatedPEIPS__AssistInfo, const NG__NAS__TypeDefs::NG__AddReqResult_template& p__AddRequestResult, const NG__NAS__TypeDefs::NSSRG__Info_template& p__NssrgInfo, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterRoamingWaitRange, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::DisasterPLMNList_template& p__DisasterPLMNList, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NG__NAS__TypeDefs::NSAG__Info_template& p__NsagInfo); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__REGISTRATION__COMPLETE(const NG__NAS__TypeDefs::SORTransparentContainer_template& p__SOR); +extern NG__NAS__TypeDefs::SORTransparentContainer_template cr__NG__SORTransparentContainer(const NG__NAS__TypeDefs::SOR__Header_template& p__Header, const OCTETSTRING& p__Mac, const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__IEL); +extern NG__NAS__TypeDefs::SORTransparentContainer_template cs__NG__SORTransparentContainer__IeiIel(const NG__NAS__TypeDefs::SOR__Header_template& p__Header, const OCTETSTRING& p__Mac, const OCTETSTRING& p__Counter, const OCTETSTRING& p__Data); +extern NG__NAS__TypeDefs::SORTransparentContainer_template cs__NG__SORTransparentContainerValue(const NG__NAS__TypeDefs::SOR__Header_template& p__Header, const OCTETSTRING& p__Mac__UE, const OCTETSTRING_template& p__Counter, const OCTETSTRING_template& p__Data, const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__IEL); +extern NG__NAS__TypeDefs::SORTransparentContainer_template cr__NG__SORTransparentContainerValue(const NG__NAS__TypeDefs::SOR__Header_template& p__Header, const OCTETSTRING& p__Mac__UE, const OCTETSTRING_template& p__Counter, const OCTETSTRING_template& p__Data, const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__IEL); +extern NG__NAS__TypeDefs::SOR__Header_template cs__NG__SOR__Header(const BITSTRING& p__Ack, const BITSTRING& p__ListType, const BITSTRING& p__ListInd, const BITSTRING& p__DataType, const BITSTRING& p__Ap); +extern NG__NAS__TypeDefs::SOR__Header_template cr__NG__SOR__Header(const BITSTRING& p__Ack, const BITSTRING_template& p__ListType, const BITSTRING_template& p__ListInd, const BITSTRING_template& p__DataType, const BITSTRING_template& p__Ap); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__REGISTRATION__REJECT(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3346, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3502, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::RejectedNSSAI_template& p__RejectedNSSAI, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__ExtdRejectedNSSAI, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__LowerBoundTimerValue, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__UL__NAS__TRANSPORT(const NG__NAS__TypeDefs::PayloadContainerType_template& p__PayloadContainerType, const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__OldPDU__SessionId, const NG__NAS__TypeDefs::NG__Request__Type_template& p__RequestType, const NG__NAS__TypeDefs::S__NSSAI__Type_template& p__S__NSSAI, const NG__NAS__TypeDefs::DNN_template& p__DNN, const NAS__CommonTypeDefs::AdditionalInformation_template& p__AdditionalInfo, const NG__NAS__TypeDefs::MA__PDUSessionInfo_template& p__MA__PDUSessionInfo, const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& p__ReleaseAssistanceInd); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__DL__NAS__TRANSPORT(const NG__NAS__TypeDefs::PayloadContainerType_template& p__PayloadContainerType, const NG__NAS__TypeDefs::PayloadContainer_template& p__Payload, const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const NAS__CommonTypeDefs::AdditionalInformation_template& p__AdditionalInfo, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__BackOff, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__LowerBoundTimerValue); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__DEREGISTRATION__REQUEST__MO(const NG__NAS__TypeDefs::DeregisterType_template& p__DeregisterType, const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& p__KSI, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__MobileId); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__DEREGISTRATION__REQUEST__MT(const NG__NAS__TypeDefs::DeregisterType_template& p__Type, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3346, const NG__NAS__TypeDefs::RejectedNSSAI_template& p__RejectedNSSAI, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__ExtdRejectedNSSAI, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__LowerBoundTimerValue, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__CP__SERVICE__REQUEST(const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& p__NAS__KeySetIdentifier, const NG__NAS__TypeDefs::CP__ServiceType_template& p__CP__ServiceType, const NG__NAS__TypeDefs::CIoTSmallDataRxdString_template& p__CIoTSmallDataContainer, const NG__NAS__TypeDefs::PayloadContainerType_template& p__PayloadContainerType, const NG__NAS__TypeDefs::PayloadContainer_template& p__PayloadContainer, const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__NG__PDU__SessionId, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& p__ReleaseAssistanceInd, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__ULDataStatus, const NAS__CommonTypeDefs::AdditionalInformation_template& p__AdditionalInfo, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__AllowedPDU__SessionStatus, const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& p__NASMsg, const NAS__CommonTypeDefs::UE__RequestType_template& p__UeRequestType, const NG__NAS__TypeDefs::NG__PagingRestriction_template& p__PagingRestrict); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__SERVICE__REQUEST(const BITSTRING_template& p__ServiceType, const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& p__KSI, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__S__TMSI, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__ULDataStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__AllowedPDU__SessionStatus, const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& p__Msg, const NAS__CommonTypeDefs::UE__RequestType_template& p__UeRequestType, const NG__NAS__TypeDefs::NG__PagingRestriction_template& p__PagingRestrict); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__SERVICE__ACCEPT(const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionReactivationResult, const NG__NAS__TypeDefs::PDU__SessionReactivationError_template& p__PDU__SessionReactivationError, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3448, const NG__NAS__TypeDefs::NG__AddReqResult_template& p__AddRequestResult, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__SERVICE__REJECT(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NG__NAS__TypeDefs::PDU__SessionStatus_template& p__PDU__SessionStatus, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3346, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3448, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__LowerBoundTimerValue, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__Roaming, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__ForbidTAIList__RegProvService); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__CONFIGURATION__UPDATE__COMMAND(const NG__NAS__TypeDefs::ConfigUpdateInd_template& p__ConfigUpdateInd, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__Guti, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__TaiList, const NG__NAS__TypeDefs::NSSAI_template& p__AllowedNSSAI, const NG__NAS__TypeDefs::NG__TrackingAreaIdList_template& p__SaiList, const NAS__CommonTypeDefs::NetworkName_template& p__FullNetworkName, const NAS__CommonTypeDefs::NetworkName_template& p__ShortNetworkName, const NAS__CommonTypeDefs::TimeZone_template& p__LocalTimeZone, const NAS__CommonTypeDefs::TimeZoneAndTime_template& p__LocalTimeZoneAndTime, const NAS__CommonTypeDefs::DaylightSavingTime_template& p__DaylightSavingTime, const NG__NAS__TypeDefs::LADN__Info_template& p__LadnInfo, const NG__NAS__TypeDefs::MICO__Ind_template& p__MicoInd, const NG__NAS__TypeDefs::NetworkSlicingInd_template& p__NetworkSlicingInd, const NG__NAS__TypeDefs::NSSAI_template& p__ConfiguredNSSAI, const NG__NAS__TypeDefs::RejectedNSSAI_template& p__RejectedNSSAI, const NG__NAS__TypeDefs::OperatorAccessCatDefinitions_template& p__OperatorAccessCatDefs, const NG__NAS__TypeDefs::SMSInd_template& p__SmsInd, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__T3447, const NG__NAS__TypeDefs::CAGInfoList_template& p__CAGInfoList, const NAS__CommonTypeDefs::UERadioCapId_template& p__UERadioCapId, const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& p__UERadioCapIdDeletion, const NG__NAS__TypeDefs::RegistrationResult_template& p__RegistrationResult, const NG__NAS__TypeDefs::TruncatedS__TMSIConfig_template& p__TruncatedS__TMSIConfig, const NG__NAS__TypeDefs::AddConfigInfo_template& p__AddConfigInfo, const NG__NAS__TypeDefs::ExtdRejectedNSSAI_template& p__ExtdRejectedNSSAI, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::NSSRG__Info_template& p__NssrgInfo, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterRoamingWaitRange, const NG__NAS__TypeDefs::RegistrationWaitRange_template& p__DisasterReturnWaitRange, const NG__NAS__TypeDefs::DisasterPLMNList_template& p__DisasterPLMNList, const NG__NAS__TypeDefs::ExtdCAGInfoList_template& p__ExtdCAGInfoList, const NG__NAS__TypeDefs::PEIPS__AssistInfo_template& p__UpdatedPEIPS__AssistInfo, const NG__NAS__TypeDefs::NSAG__Info_template& p__NsagInfo, const NG__NAS__TypeDefs::PriorityInd_template& p__PriorityInd); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__IDENTITY__REQUEST(const BITSTRING& p__IdType); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__IDENTITY__RESPONSE(const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__MobileId); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__SECURITY__MODE__COMMAND(const NG__NAS__TypeDefs::NG__NAS__SecurityAlgorithms_template& p__Algs, const BITSTRING& p__KeySetId, const NG__NAS__TypeDefs::NG__UE__SecurityCapability& p__UECap, const NAS__CommonTypeDefs::IMEISV__Request_template& p__IMEISV, const NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& p__EPSAlgs, const NG__NAS__TypeDefs::AdditionalSecurityInfo_template& p__AddInfo, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::ABBA_template& p__ABBA, const NG__NAS__TypeDefs::S1__UE__SecurityCapability_template& p__ReplayedSecurityCap); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__SECURITY__MODE__COMPLETE(const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__IMEISV, const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& p__NASMsg, const NG__NAS__TypeDefs::NG__MobileIdentity_template& p__NonIMEISV__PEI); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__SECURITY__MODE__REJECT(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__ESTABLISHMENT__REQUEST(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::PDU__SessionType_template& p__PDU__SessionType, const NG__NAS__TypeDefs::SSC__Mode_template& p__SSC__Mode, const NG__NAS__TypeDefs::NG__UE__SM__Cap_template& p__UECap, const NG__NAS__TypeDefs::MaxNumPacketFilters_template& p__MaxNumPacketFilters, const NG__NAS__TypeDefs::IntegrityProtMaxDataRate_template& p__IntegrityProtMaxDataRate, const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& p__AlwaysOnPDUSessionReq, const NG__NAS__TypeDefs::SM__PDU__DN__RequestContainer_template& p__PDUReq, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::IPHeaderCompressionConfig_template& p__IPHeaderCompConfig, const NG__NAS__TypeDefs::DS__TT__EthernetPortMACAddr_template& p__DS__TT__EthernetPortMACAddr, const NG__NAS__TypeDefs::UE__DS__TT__ResidenceTime_template& p__UE__DS__TT__ResidenceTime, const NG__NAS__TypeDefs::PortManagementInfoContainer_template& p__PortManagementInfoContainer, const NG__NAS__TypeDefs::EthernetHeaderCompressConfig_template& p__EthernetHeaderCompConfig, const NG__NAS__TypeDefs::PDU__Address_template& p__SuggestedInterfaceId, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::RequestedMBSContainer_template& p__RequestedMBS, const NG__NAS__TypeDefs::PDUSessionPairId_template& p__PduSessionPairId, const NG__NAS__TypeDefs::RSN_template& p__RSN); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__ESTABLISHMENT__ACCEPT(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::SSC__Mode_template& p__SSC__Mode, const NG__NAS__TypeDefs::PDU__SessionType_template& p__PDU__SessionType, const NG__NAS__TypeDefs::QoS__Rules_template& p__QoS__Rules, const NG__NAS__TypeDefs::Session__AMBR_template& p__Session__AMBR, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NG__NAS__TypeDefs::PDU__Address_template& p__PDU__Address, const NAS__CommonTypeDefs::GPRS__Timer_template& p__RQTimer, const NG__NAS__TypeDefs::S__NSSAI__Type_template& p__S__NSSAI, const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& p__AlwaysOnPDUSessionInd, const NG__NAS__TypeDefs::MappedEPSBearerContexts_template& p__MappedEPSBearerContexts, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::QoSFlowDescr_template& p__QoSFlowDescr, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::DNN_template& p__DNN, const NG__NAS__TypeDefs::NGSM__NetworkFeatureSupport_template& p__NGSM__NtwkFeatSupport, const NAS__CommonTypeDefs::ServingPLMNRateControl_template& p__ServingPLMNRateCtrl, const NG__NAS__TypeDefs::ATSSSContainer_template& p__ATSSSContainer, const NAS__CommonTypeDefs::ControlPlaneInd_template& p__ControlPlaneInd, const NG__NAS__TypeDefs::IPHeaderCompressionConfig_template& p__IPHeaderCompConfig, const NG__NAS__TypeDefs::EthernetHeaderCompressConfig_template& p__EthernetHeaderCompConfig, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA, const NG__NAS__TypeDefs::ReceivedMBSContainer_template& p__ReceivedMBS); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__ESTABLISHMENT__REJECT(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__BackOff, const NG__NAS__TypeDefs::AllowedSSCMode_template& p__SSC__Mode, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NAS__CommonTypeDefs::ReAttemptIndicator_template& p__ReAttemptIndicator, const NG__NAS__TypeDefs::NGSM__CongestionReattemptInd_template& p__NGSM__CongestionReattemptInd, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__AUTHENTICATION__COMMAND(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__AUTHENTICATION__COMPLETE(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__AUTHENTICATION__RESULT(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__MODIFICATION__REQUEST(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::NG__UE__SM__Cap_template& p__NG__UE__SM__Cap, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NG__NAS__TypeDefs::MaxNumPacketFilters_template& p__MaxNumPacketFilters, const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& p__AlwaysOnPDUSessionReq, const NG__NAS__TypeDefs::IntegrityProtMaxDataRate_template& p__IntegrityProtMaxDataRate, const NG__NAS__TypeDefs::QoS__Rules_template& p__QoS__Rules, const NG__NAS__TypeDefs::QoSFlowDescr_template& p__QoSFlowDescr, const NG__NAS__TypeDefs::MappedEPSBearerContexts_template& p__MappedEPSBearerContexts, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::PortManagementInfoContainer_template& p__PortManagementInfoContainer, const NG__NAS__TypeDefs::IPHeaderCompressionConfig_template& p__IPHeaderCompConfig, const NG__NAS__TypeDefs::EthernetHeaderCompressConfig_template& p__EthernetHeaderCompConfig, const NG__NAS__TypeDefs::RequestedMBSContainer_template& p__RequestedMBS, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__MODIFICATION__COMMAND(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NG__NAS__TypeDefs::Session__AMBR_template& p__Session__AMBR, const NAS__CommonTypeDefs::GPRS__Timer_template& p__RQTimer, const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& p__AlwaysOnPDUSessionInd, const NG__NAS__TypeDefs::QoS__Rules_template& p__QoS__Rules, const NG__NAS__TypeDefs::QoSFlowDescr_template& p__QoSFlowDescr, const NG__NAS__TypeDefs::MappedEPSBearerContexts_template& p__MappedEPSBearerContexts, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::ATSSSContainer_template& p__ATSSSContainer, const NG__NAS__TypeDefs::IPHeaderCompressionConfig_template& p__IPHeaderCompConfig, const NG__NAS__TypeDefs::PortManagementInfoContainer_template& p__PortManagementInfoContainer, const NAS__CommonTypeDefs::ServingPLMNRateControl_template& p__ServingPLMNRateCtrl, const NG__NAS__TypeDefs::EthernetHeaderCompressConfig_template& p__EthernetHeaderCompConfig, const NG__NAS__TypeDefs::ReceivedMBSContainer_template& p__ReceivedMBS, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__MODIFICATION__COMPLETE(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::PortManagementInfoContainer_template& p__PortManagementInfoContainer); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__RELEASE__REQUEST(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__RELEASE__REJECT(const NG__NAS__TypeDefs::NG__PDU__SessionId& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause& p__Cause, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NG__PDU__SESSION__RELEASE__COMMAND(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::GPRS__Timer2_template& p__BackOffTimer, const NG__NAS__TypeDefs::EAP__Message_template& p__EAP, const NG__NAS__TypeDefs::NGSM__CongestionReattemptInd_template& p__NGSM__CongestionReattemptInd, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO, const NG__NAS__TypeDefs::AccessType_template& p__AccessType, const NG__NAS__TypeDefs::ServiceLvlAAContainer_template& p__ServiceLvlAA); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__PDU__SESSION__RELEASE__COMPLETE(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause, const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& p__ExtdPCO); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__GSM__STATUS(const NG__NAS__TypeDefs::NG__PDU__SessionId_template& p__PDU__SessionId, const OCTETSTRING_template& p__PTI, const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause); +extern NG__NAS__TypeDefs::EAP__Message_template cr__EAP__Message(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__EAPMsg); +extern NG__NAS__TypeDefs::EAP__Message_template cs__EAP__Message(const OCTETSTRING& p__EncodedEapMsg, const OCTETSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::RegistrationResult_template cs__RegistrationResult(const BITSTRING& p__Result, const BITSTRING& p__SMS, const BITSTRING& p__EmergencyRegistered, const BITSTRING& p__NssaaPerformed, const BITSTRING& p__DisasterRoamingResult); +extern NG__NAS__TypeDefs::RegistrationType_template cr__RegistrationType(const BITSTRING_template& p__Type, const BITSTRING_template& p__FOR); +extern NAS__CommonTypeDefs::AuthenticationResponseParameter_template cr__AuthenticationResponseParameter(const BITSTRING_template& p__ExpectedRES); +extern NG__NAS__TypeDefs::NG__PartialTaiType_template cs__NG__NonConsecutivePartialTaiList(const OCTETSTRING& p__PlmnId, const NG__NAS__TypeDefs::NG__NAS__TacList& p__TacList); +extern NG__NAS__TypeDefs::NG__ListOfPartialTaiList_template cs__NG__ListNonConsecutivePartialTaiList(const OCTETSTRING& p__PlmnId, const NG__NAS__TypeDefs::NG__NAS__TacList& p__TacList); +extern NG__NAS__TypeDefs::NG__TrackingAreaIdList_template cs__NG__TAIListNonConsecutive(const OCTETSTRING& p__PlmnId, const NG__NAS__TypeDefs::NG__NAS__TacList& p__TacList); +extern NG__NAS__TypeDefs::NG__PartialTaiType_template cs__NG__ConsecutivePartialTaiList(const NG__NAS__TypeDefs::NG__PartialTai& p__PartialTac); +extern NG__NAS__TypeDefs::NG__ListOfPartialTaiList_template cs__NG__ListConsecutivePartialTaiList(const BITSTRING& p__NumberOfElements, const NG__NAS__TypeDefs::NG__PartialTai& p__PartialTac); +extern NG__NAS__TypeDefs::NG__TrackingAreaIdList_template cs__NG__TAIListConsecutive(const BITSTRING& p__NumberOfElements, const NG__NAS__TypeDefs::NG__PartialTai& p__PartialTac); +extern NG__NAS__TypeDefs::NG__PartialTai_template cs__NG__PartialTai(const OCTETSTRING& p__PlmnId, const OCTETSTRING& p__Tac); +extern NG__NAS__TypeDefs::NG__TrackingAreaId_template cr__NG__TAI(const OCTETSTRING& p__PlmnId, const OCTETSTRING& p__Tac); +extern NG__NAS__TypeDefs::NG__NAS__SecurityAlgorithms_template cs__NG__NAS__SecurityAlgorithms(const BITSTRING& p__CipherAlg, const BITSTRING& p__IntAlg); +extern NG__NAS__TypeDefs::CIoTSmallDataContainer_template cr__CIoTSmallDataContainer(const BITSTRING_template& p__DataType, const BITSTRING_template& p__DDX, const BITSTRING_template& p__PDUSessionId, const OCTETSTRING_template& p__DataContents, const OCTETSTRING_template& p__AddInfoLength, const OCTETSTRING_template& p__AddInfo); +extern NG__NAS__TypeDefs::ConfigUpdateInd_template cs__ConfigUpdateInd(const BITSTRING& p__Red, const BITSTRING& p__Ack); +extern NG__NAS__TypeDefs::DNN_template cs__DNN(const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__DNN); +extern NG__NAS__TypeDefs::DeregisterType_template crs__DeregisterType(const BITSTRING& p__SwitchOff, const BITSTRING& p__ReReg, const BITSTRING& p__Access); +extern NG__NAS__TypeDefs::AdditionalSecurityInfo_template cs__AdditionalSecurityInfo(const BITSTRING& p__Rinmr, const BITSTRING& p__Hdp); +extern NG__NAS__TypeDefs::NetworkSlicingInd_template cs__NetworkSlicingInd(const BITSTRING& p__DCNI, const BITSTRING& p__NSSCI); +extern NG__NAS__TypeDefs::S__NSSAI__Type_template cs__S__NSSAI__WithIEI(const OCTETSTRING& p__IEI, const NG__NAS__TypeDefs::S__NSSAI__LV_template& p__LvPart); +extern NG__NAS__TypeDefs::S__NSSAI__LV_template cs__S__NSSAI(const OCTETSTRING& p__Length, const OCTETSTRING& p__SST, const OCTETSTRING_template& p__SD, const OCTETSTRING_template& p__MappedSST, const OCTETSTRING_template& p__MappedSD); +extern NG__NAS__TypeDefs::NSSAI_template cs__NSSAI__SST1eMBB(const OCTETSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::NSSAI_template cs__NSSAI__SSTs(const OCTETSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::NSSAI_template cs__NSSAI__Def(const OCTETSTRING_template& p__IEI, const NG__NAS__TypeDefs::S__NSSAI__TypeList_template& p__List); +extern NG__NAS__TypeDefs::RejectedS__NSSAI_template cs__RejectedS__NSSAI(const BITSTRING& p__Length, const BITSTRING& p__CauseValue, const OCTETSTRING& p__SST, const OCTETSTRING_template& p__SD); +extern OCTETSTRING fl__NR5GC__NSSAILength(const NG__NAS__TypeDefs::S__NSSAI__TypeList_template& p__List); +extern NG__NAS__TypeDefs::S__NSSAI__LV_template fl__ExtractNSSAI__FromEachATCommandLine(INTEGER& p__Cause, const CHARSTRING& p__ATCommand); +extern BOOLEAN f__MatchListOfNSSAI__WithATCommand(const NG__NAS__TypeDefs::NSSAI__LV_template& p__NSSAI, const CHARSTRING& p__ATCommand); +extern BOOLEAN f__MatchXtdRejectedNSSAI__WithATCommand(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__NSSAI, const CHARSTRING& p__ATCommand, const BOOLEAN& p__AtLeastThisList); +extern INTEGER fl__XtdRejectedS__NSSAILength(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List); +extern NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template f__BuildNR5GC__PartialXtdRejectedNSSAIType0(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List); +extern NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template f__BuildNR5GC__PartialXtdRejectedNSSAIType1(const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List, const OCTETSTRING& p__BackOffTimer); +extern NG__NAS__TypeDefs::ExtdRejectedNSSAI_template f__BuildNR5GC__ExtdRejectedNSSAI(const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI__List_template& p__List); +extern NG__NAS__TypeDefs::ExtdRejectedNSSAI_template cs__ExtdRejectedNSSAI(const OCTETSTRING& p__Len, const NG__NAS__TypeDefs::PartialXtdRejectedNSSAI__List_template& p__List); +extern NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template cs__PartialXtdRejectedNSSAIType0(const BITSTRING& p__NumOfElements, const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List); +extern NG__NAS__TypeDefs::PartialXtdRejectedNSSAI_template cs__PartialXtdRejectedNSSAIType1(const BITSTRING& p__NumOfElements, const OCTETSTRING& p__BackOffTimer, const NG__NAS__TypeDefs::XtdRejectedS__NSSAI__List_template& p__List); +extern NG__NAS__TypeDefs::XtdRejectedS__NSSAI_template cs__XtdRejectedS__NSSAI(const BITSTRING& p__Len, const BITSTRING& p__Cause, const OCTETSTRING& p__SST, const OCTETSTRING_template& p__SD, const OCTETSTRING_template& p__MappedSST, const OCTETSTRING_template& p__MappedSD); +extern NG__NAS__TypeDefs::PayloadContainer_template cr__PayloadContainer(const OCTETSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::PayloadContainerType_template cs__PayloadContainerType(const BITSTRING& p__ContainerType, const HEXSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::PayloadContainerType_template cr__PayloadContainerType(const BITSTRING& p__ContainerType, const HEXSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::NG__PDU__SessionId_template cr__NG__PDU__SessionId(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__Id); +extern NG__NAS__TypeDefs::NG__PDU__SessionId_template cs__NG__PDU__SessionId(const OCTETSTRING_template& p__Id, const OCTETSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::GMM__GSM__Cause_template cs__GMM__GSM__Cause(const OCTETSTRING_template& p__IEI, const BITSTRING& p__Cause); +extern NG__NAS__TypeDefs::ABBA_template cs__ABBA(const OCTETSTRING& p__ABBA, const OCTETSTRING_template& p__IEI, const OCTETSTRING& p__Length); +extern NG__NAS__TypeDefs::GMM__GSM__Cause_template cr__GMM__GSM__Cause(const OCTETSTRING_template& p__IEI, const BITSTRING_template& p__Cause); +extern NG__NAS__TypeDefs::PDU__SessionStatus_template cr__PDU__SessionStatusAny(const OCTETSTRING& p__IEI); +extern NG__NAS__TypeDefs::PDU__SessionStatus_template cr__PDU__SessionStatus(const BITSTRING& p__Psi0__7, const BITSTRING& p__Psi8__15); +extern NG__NAS__TypeDefs::NG__Request__Type_template cr__NG__Request__Type(const BITSTRING& p__RequestValue); +extern NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template crs__AlwaysOn(const BITSTRING& p__Apsi); +extern NG__NAS__TypeDefs::EPSParameters_template cs__EPSParameter__QoS(const OCTETSTRING& p__Param); +extern NG__NAS__TypeDefs::EPSParameters_template cs__EPSParameter__TFT(const OCTETSTRING& p__Param); +extern NG__NAS__TypeDefs::MappedEPSContext_template cs__OneMappedEPSContext(const OCTETSTRING& p__EPSBearerId, const INTEGER& p__ParamLength, const NG__NAS__TypeDefs::EPSParameters_template& p__EPSParams); +extern NG__NAS__TypeDefs::MappedEPSContext_template cs__OneMappedEPSContextTwoParams(const OCTETSTRING& p__EPSBearerId, const INTEGER& p__ParamLength, const NG__NAS__TypeDefs::EPSParameters_template& p__EPSParam1, const NG__NAS__TypeDefs::EPSParameters_template& p__EPSParam2); +extern NG__NAS__TypeDefs::MappedEPSBearerContexts_template cs__OneMappedEPSBearerContextList(const NG__NAS__TypeDefs::MappedEPSContext_template& p__MappedEPSContext); +extern NG__NAS__TypeDefs::MappedEPSBearerContexts_template cs__TwoMappedEPSBearerContextList(const NG__NAS__TypeDefs::MappedEPSContext_template& p__MappedEPSContext1, const NG__NAS__TypeDefs::MappedEPSContext_template& p__MappedEPSContext2); +extern NG__NAS__TypeDefs::PDU__SessionType_template cs__PDU__SessionType(const BITSTRING& p__Type); +extern NG__NAS__TypeDefs::PDU__SessionType_template cr__PDU__SessionType(const BITSTRING_template& p__Type); +extern NG__NAS__TypeDefs::SSC__Mode_template crs__SSC__Mode(const HEXSTRING_template& p__IEI, const BITSTRING& p__SSCMode); +extern NAS__CommonTypeDefs::QoSParameters_template cs__QoSParameters(const OCTETSTRING& p__Id, const OCTETSTRING& p__Length, const OCTETSTRING& p__Param); +extern NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow(const BITSTRING& p__QFI, const NAS__CommonTypeDefs::QoSParametersList_template& p__ParamList); +extern NG__NAS__TypeDefs::PEIPS__AssistInfo_template cs__PEIPS__AssistInfo(const OCTETSTRING_template& p__IEI, const OCTETSTRING_template& p__IEL, const NG__NAS__TypeDefs::PEIPS__AssistIEList_template& p__EIPS__AssistIEList); +extern OCTETSTRING fl__FlowParameterBitRate(const INTEGER& p__Value, const INTEGER& p__Multiplier); +extern NG__NAS__TypeDefs::QoS__Flow_template f__BuildDefaultQosFlow(const CHARSTRING& p__FlowNumber, const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId); +extern NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow1(const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId); +extern NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow2(const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId); +extern NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow5(const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId); +extern NG__NAS__TypeDefs::QoS__Flow_template cs__QoS__Flow6(const BOOLEAN& p__InterworkWithEPS, const OCTETSTRING& p__EPSBearerId); +extern OCTETSTRING fl__NR5GC__QoSFlowsLength(const NG__NAS__TypeDefs::QoS__FlowList_template& p__FlowList); +extern NG__NAS__TypeDefs::QoSFlowDescr_template cs__QoSFlowDescr(const NG__NAS__TypeDefs::QoS__FlowList_template& p__QoS__Flows); +extern NG__NAS__TypeDefs::NG__PacketFilterList_template cs__PacketFilterList__MediaUDP(const BITSTRING& p__Id, const INTEGER& p__Port); +extern NG__NAS__TypeDefs::NG__PacketFilter__Type2_template cs__NG__PacketFilter__Type2(const BITSTRING& p__Dir, const BITSTRING& p__Id, const OCTETSTRING& p__Contents); +extern OCTETSTRING fl__BuildRemotePortRange(const INTEGER& p__Port); +extern OCTETSTRING fl__BuildProtocolIdNextHeaderUDP(); +extern NG__NAS__TypeDefs::QoS__Rule_template cs__QoS__Rule(const OCTETSTRING& p__Id, const BITSTRING& p__QFI, const OCTETSTRING& p__Precedence, const BITSTRING& p__OperationCode, const NG__NAS__TypeDefs::NG__PacketFilterList_template& p__FilterList, const BITSTRING& p__DQR); +extern NG__NAS__TypeDefs::QoS__Rules_template f__BuildDefaultQoSRules(const CHARSTRING& p__RuleNum, const OCTETSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::QoS__Rule_template f__BuildDefaultQoSRule(const CHARSTRING& p__RuleNum); +extern OCTETSTRING fl__NR5GC__QoSRuleLength(const NG__NAS__TypeDefs::NG__PacketFilterList_template& p__FilterList); +extern OCTETSTRING fl__NR5GC__QosRulesLength(const NG__NAS__TypeDefs::QoS__RuleList_template& p__Rules); +extern NG__NAS__TypeDefs::QoS__Rules_template cs__QoS__Rules(const NG__NAS__TypeDefs::QoS__RuleList_template& p__Rules, const OCTETSTRING_template& p__IEI); +extern NG__NAS__TypeDefs::Session__AMBR_template cs__Session__AMBR(const OCTETSTRING_template& p__Length, const OCTETSTRING& p__UnitDL, const OCTETSTRING& p__DL, const OCTETSTRING& p__UnitUL, const OCTETSTRING& p__UL); +extern NAS__CommonTypeDefs::IMEISV__Request_template cds__NG__IMEISV__Request(const BITSTRING& p__Value); +extern NG__NAS__TypeDefs::AllowedNSSAI_template cs__AllowedNSSAI(const OCTETSTRING_template& p__PLMN, const BITSTRING& p__AccessType); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__NSSAI__DELETE__REQUEST(const BITSTRING& p__DeleteNSSAI__Type, const OCTETSTRING_template& p__Configured, const NG__NAS__TypeDefs::AllowedNSSAI_template& p__Allowed); +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template cs__SET__UAI__REQUEST(const BITSTRING& p__PreferredRRCState); +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template cr__NG__GMM__STATUS(const NG__NAS__TypeDefs::GMM__GSM__Cause_template& p__Cause); +extern NG__NAS__TypeDefs::NSSAI__LV_template cs__NSSAI__LV(const OCTETSTRING& p__Length, const NG__NAS__TypeDefs::S__NSSAI__TypeList_template& p__S__NSSAI); +extern OCTETSTRING fl__NR5GC__NSAGLength(const NG__NAS__TypeDefs::NSSAI__LV_template& p__NSAG, const NG__NAS__TypeDefs::NG__TrackingAreaIdList__LV_template& p__TaiList); +extern NG__NAS__TypeDefs::NSAG_template cs__NSAG__InfoElement(const OCTETSTRING& p__Id, const NG__NAS__TypeDefs::NSSAI__LV_template& p__NSAG, const OCTETSTRING& p__Priority, const NG__NAS__TypeDefs::NG__TrackingAreaIdList__LV_template& p__TaiList); +extern NG__NAS__TypeDefs::NSAG__Info_template cs__NSAG__2Elements(const NG__NAS__TypeDefs::NSAG_template& p__NSAG1, const NG__NAS__TypeDefs::NSAG_template& p__NSAG2); +extern NG__NAS__TypeDefs::NID_template fl__BuildNIDTemplate(const INTEGER& p__NID, const INTEGER& p__AssignmentMode); +extern NG__NAS__TypeDefs::NID_template cs__NIDBlank(const BITSTRING& p__AssignmentMode); +extern NAS__CommonTypeDefs::ExtdDRXParams_template cs__NG__NAS__EDRXParams(const BITSTRING& p__PTW, const BITSTRING& p__EDRXVal, const BITSTRING_template& p__ExtdPTW); + +/* Global variable declarations */ + +extern Erroneous_descriptor_t* template_cs__NG__NAS__SecurityProtectionInfo_err_descr_ptr; +extern const BOOLEAN& cs__NG__NAS__SecurityProtectionInfo_p__ForceMacError_defval; +extern BOOLEAN const_cs__NG__NAS__SecurityProtectionInfo_p__ForceMacError_defval; +extern Erroneous_descriptor_t* template_cr__NG__NAS__SecurityProtectionInfo_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__NAS__Request_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__NAS__Ind_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__NAS__RequestWithPiggybacking_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__NAS__DL__PduWithPiggybacking_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__NAS__DL__PduWithoutPiggyback_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__NAS__IndWithPiggybacking_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__AUTHENTICATION__REQUEST_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__AUTHENTICATION__RESPONSE_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__AUTHENTICATION__RESULT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__AUTHENTICATION__FAILURE_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__AUTHENTICATION__REJECT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__REGISTRATION__REQUEST_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__Update_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__REGISTRATION__ACCEPT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__REGISTRATION__COMPLETE_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__SORTransparentContainer_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__SORTransparentContainer__IeiIel_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__SORTransparentContainerValue_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__SORTransparentContainerValue_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__SOR__Header_err_descr_ptr; +extern const BITSTRING& cs__NG__SOR__Header_p__Ap_defval; +extern BITSTRING const_cs__NG__SOR__Header_p__Ap_defval; +extern Erroneous_descriptor_t* template_cr__NG__SOR__Header_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__REGISTRATION__REJECT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__UL__NAS__TRANSPORT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__DL__NAS__TRANSPORT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__DEREGISTRATION__REQUEST__MO_err_descr_ptr; +extern const NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template& cs__NG__DEREGISTRATION__ACCEPT; +extern NG__NAS__MsgContainers::NG__NAS__DL__Message__Type_template template_cs__NG__DEREGISTRATION__ACCEPT; +extern const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& cr__NG__DEREGISTRATION__ACCEPT; +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template template_cr__NG__DEREGISTRATION__ACCEPT; +extern Erroneous_descriptor_t* template_cs__NG__DEREGISTRATION__REQUEST__MT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__CP__SERVICE__REQUEST_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__SERVICE__REQUEST_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__SERVICE__ACCEPT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__SERVICE__REJECT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__CONFIGURATION__UPDATE__COMMAND_err_descr_ptr; +extern const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& cr__NG__CONFIGURATION__UPDATE__COMPLETE; +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template template_cr__NG__CONFIGURATION__UPDATE__COMPLETE; +extern Erroneous_descriptor_t* template_cs__NG__IDENTITY__REQUEST_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__IDENTITY__RESPONSE_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__SECURITY__MODE__COMMAND_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__SECURITY__MODE__COMPLETE_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__SECURITY__MODE__REJECT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__ESTABLISHMENT__REQUEST_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__ESTABLISHMENT__REJECT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__AUTHENTICATION__COMMAND_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__AUTHENTICATION__COMPLETE_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__AUTHENTICATION__RESULT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__MODIFICATION__REQUEST_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__MODIFICATION__COMMAND_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__MODIFICATION__COMPLETE_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__RELEASE__REQUEST_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__RELEASE__REJECT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PDU__SESSION__RELEASE__COMMAND_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__PDU__SESSION__RELEASE__COMPLETE_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__GSM__STATUS_err_descr_ptr; +extern const NG__NAS__TypeDefs::EAP__Message_template& cs__DummyEAP__Message; +extern NG__NAS__TypeDefs::EAP__Message_template template_cs__DummyEAP__Message; +extern Erroneous_descriptor_t* template_cr__EAP__Message_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__EAP__Message_err_descr_ptr; +extern const NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template& cs__NG__NetworkFeatureSupport__Def; +extern NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template template_cs__NG__NetworkFeatureSupport__Def; +extern const NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template& cds__NG__NetworkFeatureSupport__NoN26; +extern NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template template_cds__NG__NetworkFeatureSupport__NoN26; +extern const NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template& cds__NG__NetworkFeatureSupport__NoImsVoPS__3GPP; +extern NG__NAS__TypeDefs::NG__NetworkFeatureSupport_template template_cds__NG__NetworkFeatureSupport__NoImsVoPS__3GPP; +extern Erroneous_descriptor_t* template_cs__RegistrationResult_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__RegistrationType_err_descr_ptr; +extern const NG__NAS__TypeDefs::CAGInfoList_template& cs__EmptyCAGInfoList; +extern NG__NAS__TypeDefs::CAGInfoList_template template_cs__EmptyCAGInfoList; +extern Erroneous_descriptor_t* template_cr__AuthenticationResponseParameter_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__NonConsecutivePartialTaiList_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__ListNonConsecutivePartialTaiList_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__TAIListNonConsecutive_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__ConsecutivePartialTaiList_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__ListConsecutivePartialTaiList_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__TAIListConsecutive_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PartialTai_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__TAI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__NAS__SecurityAlgorithms_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__CIoTSmallDataContainer_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__ConfigUpdateInd_err_descr_ptr; +extern const BITSTRING& cs__ConfigUpdateInd_p__Red_defval; +extern BITSTRING const_cs__ConfigUpdateInd_p__Red_defval; +extern const BITSTRING& cs__ConfigUpdateInd_p__Ack_defval; +extern BITSTRING const_cs__ConfigUpdateInd_p__Ack_defval; +extern Erroneous_descriptor_t* template_cs__DNN_err_descr_ptr; +extern Erroneous_descriptor_t* template_crs__DeregisterType_err_descr_ptr; +extern const BITSTRING& crs__DeregisterType_p__Access_defval; +extern BITSTRING const_crs__DeregisterType_p__Access_defval; +extern Erroneous_descriptor_t* template_cs__AdditionalSecurityInfo_err_descr_ptr; +extern const BITSTRING& cs__AdditionalSecurityInfo_p__Hdp_defval; +extern BITSTRING const_cs__AdditionalSecurityInfo_p__Hdp_defval; +extern Erroneous_descriptor_t* template_cs__NetworkSlicingInd_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__S__NSSAI__WithIEI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__S__NSSAI_err_descr_ptr; +extern const NG__NAS__TypeDefs::S__NSSAI__Type_template& cs__S__NSSAI__SST1eMBB__WithIEI; +extern NG__NAS__TypeDefs::S__NSSAI__Type_template template_cs__S__NSSAI__SST1eMBB__WithIEI; +extern const NG__NAS__TypeDefs::S__NSSAI__LV_template& cs__S__NSSAI__SST1eMBB; +extern NG__NAS__TypeDefs::S__NSSAI__LV_template template_cs__S__NSSAI__SST1eMBB; +extern const NG__NAS__TypeDefs::S__NSSAI__LV_template& cs__S__NSSAI__SST2__URLLC; +extern NG__NAS__TypeDefs::S__NSSAI__LV_template template_cs__S__NSSAI__SST2__URLLC; +extern const NG__NAS__TypeDefs::S__NSSAI__LV_template& cs__S__NSSAI__SST3__MIoT; +extern NG__NAS__TypeDefs::S__NSSAI__LV_template template_cs__S__NSSAI__SST3__MIoT; +extern const NG__NAS__TypeDefs::S__NSSAI__LV_template& cs__S__NSSAI__SST4__V2X; +extern NG__NAS__TypeDefs::S__NSSAI__LV_template template_cs__S__NSSAI__SST4__V2X; +extern Erroneous_descriptor_t* template_cs__NSSAI__SST1eMBB_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NSSAI__SSTs_err_descr_ptr; +extern const NG__NAS__TypeDefs::NSSAI_template& cs__NSSAI__Allowed__Def; +extern NG__NAS__TypeDefs::NSSAI_template template_cs__NSSAI__Allowed__Def; +extern Erroneous_descriptor_t* template_cs__NSSAI__Def_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__RejectedS__NSSAI_err_descr_ptr; +extern const BOOLEAN& f__MatchXtdRejectedNSSAI__WithATCommand_p__AtLeastThisList_defval; +extern BOOLEAN const_f__MatchXtdRejectedNSSAI__WithATCommand_p__AtLeastThisList_defval; +extern Erroneous_descriptor_t* template_cs__ExtdRejectedNSSAI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PartialXtdRejectedNSSAIType0_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PartialXtdRejectedNSSAIType1_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__XtdRejectedS__NSSAI_err_descr_ptr; +extern const NG__NAS__TypeDefs::NG__GMM__Cap_template& cr__NG__GMM__CapAny; +extern NG__NAS__TypeDefs::NG__GMM__Cap_template template_cr__NG__GMM__CapAny; +extern const NG__NAS__TypeDefs::NG__GMM__Cap_template& cdr__NG__GMM__Cap__RACS; +extern NG__NAS__TypeDefs::NG__GMM__Cap_template template_cdr__NG__GMM__Cap__RACS; +extern const NG__NAS__TypeDefs::NG__GMM__Cap_template& cdr__NG__GMM__Cap__S1; +extern NG__NAS__TypeDefs::NG__GMM__Cap_template template_cdr__NG__GMM__Cap__S1; +extern const NG__NAS__TypeDefs::NG__GMM__Cap_template& cdr__NG__GMM__Cap__ERNSSAI; +extern NG__NAS__TypeDefs::NG__GMM__Cap_template template_cdr__NG__GMM__Cap__ERNSSAI; +extern const NG__NAS__TypeDefs::PayloadContainer_template& cs__DummyPayloadContainer; +extern NG__NAS__TypeDefs::PayloadContainer_template template_cs__DummyPayloadContainer; +extern Erroneous_descriptor_t* template_cr__PayloadContainer_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PayloadContainerType_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__PayloadContainerType_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__PDU__SessionId_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PDU__SessionId_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__GMM__GSM__Cause_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__ABBA_err_descr_ptr; +extern const OCTETSTRING& cs__ABBA_p__Length_defval; +extern OCTETSTRING const_cs__ABBA_p__Length_defval; +extern Erroneous_descriptor_t* template_cr__GMM__GSM__Cause_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__PDU__SessionStatusAny_err_descr_ptr; +extern const OCTETSTRING& cr__PDU__SessionStatusAny_p__IEI_defval; +extern OCTETSTRING const_cr__PDU__SessionStatusAny_p__IEI_defval; +extern Erroneous_descriptor_t* template_cr__PDU__SessionStatus_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__NG__Request__Type_err_descr_ptr; +extern const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& cr__AlwaysOnRequested; +extern NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template template_cr__AlwaysOnRequested; +extern const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& cs__AlwaysOnAllowed; +extern NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template template_cs__AlwaysOnAllowed; +extern const NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template& cs__AlwaysOnNotAllowed; +extern NG__NAS__TypeDefs::AlwaysOnPDUSessionInd_template template_cs__AlwaysOnNotAllowed; +extern Erroneous_descriptor_t* template_crs__AlwaysOn_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__EPSParameter__QoS_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__EPSParameter__TFT_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__OneMappedEPSContext_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__OneMappedEPSContextTwoParams_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__OneMappedEPSBearerContextList_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__TwoMappedEPSBearerContextList_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PDU__SessionType_err_descr_ptr; +extern Erroneous_descriptor_t* template_cr__PDU__SessionType_err_descr_ptr; +extern Erroneous_descriptor_t* template_crs__SSC__Mode_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__QoSParameters_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__QoS__Flow_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__PEIPS__AssistInfo_err_descr_ptr; +extern const BOOLEAN& f__BuildDefaultQosFlow_p__InterworkWithEPS_defval; +extern BOOLEAN const_f__BuildDefaultQosFlow_p__InterworkWithEPS_defval; +extern const OCTETSTRING& f__BuildDefaultQosFlow_p__EPSBearerId_defval; +extern OCTETSTRING const_f__BuildDefaultQosFlow_p__EPSBearerId_defval; +extern Erroneous_descriptor_t* template_cs__QoS__Flow1_err_descr_ptr; +extern const BOOLEAN& cs__QoS__Flow1_p__InterworkWithEPS_defval; +extern BOOLEAN const_cs__QoS__Flow1_p__InterworkWithEPS_defval; +extern const OCTETSTRING& cs__QoS__Flow1_p__EPSBearerId_defval; +extern OCTETSTRING const_cs__QoS__Flow1_p__EPSBearerId_defval; +extern Erroneous_descriptor_t* template_cs__QoS__Flow2_err_descr_ptr; +extern const BOOLEAN& cs__QoS__Flow2_p__InterworkWithEPS_defval; +extern BOOLEAN const_cs__QoS__Flow2_p__InterworkWithEPS_defval; +extern const OCTETSTRING& cs__QoS__Flow2_p__EPSBearerId_defval; +extern OCTETSTRING const_cs__QoS__Flow2_p__EPSBearerId_defval; +extern const NG__NAS__TypeDefs::QoS__Flow_template& cs__QoS__Flow2a; +extern NG__NAS__TypeDefs::QoS__Flow_template template_cs__QoS__Flow2a; +extern const NG__NAS__TypeDefs::QoS__Flow_template& cs__QoS__Flow3; +extern NG__NAS__TypeDefs::QoS__Flow_template template_cs__QoS__Flow3; +extern const NG__NAS__TypeDefs::QoS__Flow_template& cs__QoS__Flow4; +extern NG__NAS__TypeDefs::QoS__Flow_template template_cs__QoS__Flow4; +extern Erroneous_descriptor_t* template_cs__QoS__Flow5_err_descr_ptr; +extern const BOOLEAN& cs__QoS__Flow5_p__InterworkWithEPS_defval; +extern BOOLEAN const_cs__QoS__Flow5_p__InterworkWithEPS_defval; +extern const OCTETSTRING& cs__QoS__Flow5_p__EPSBearerId_defval; +extern OCTETSTRING const_cs__QoS__Flow5_p__EPSBearerId_defval; +extern Erroneous_descriptor_t* template_cs__QoS__Flow6_err_descr_ptr; +extern const BOOLEAN& cs__QoS__Flow6_p__InterworkWithEPS_defval; +extern BOOLEAN const_cs__QoS__Flow6_p__InterworkWithEPS_defval; +extern const OCTETSTRING& cs__QoS__Flow6_p__EPSBearerId_defval; +extern OCTETSTRING const_cs__QoS__Flow6_p__EPSBearerId_defval; +extern Erroneous_descriptor_t* template_cs__QoSFlowDescr_err_descr_ptr; +extern const NG__NAS__TypeDefs::QoSFlowDescr_template& cs__QoSFlowDescr1; +extern NG__NAS__TypeDefs::QoSFlowDescr_template template_cs__QoSFlowDescr1; +extern const NG__NAS__TypeDefs::QoSFlowDescr_template& cs__QoSFlowDescr2; +extern NG__NAS__TypeDefs::QoSFlowDescr_template template_cs__QoSFlowDescr2; +extern const NG__NAS__TypeDefs::NG__PacketFilterList_template& cs__PacketFilterList__1MatchAll; +extern NG__NAS__TypeDefs::NG__PacketFilterList_template template_cs__PacketFilterList__1MatchAll; +extern Erroneous_descriptor_t* template_cs__PacketFilterList__MediaUDP_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__PacketFilter__Type2_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__QoS__Rule_err_descr_ptr; +extern const BITSTRING& cs__QoS__Rule_p__OperationCode_defval; +extern BITSTRING const_cs__QoS__Rule_p__OperationCode_defval; +extern const BITSTRING& cs__QoS__Rule_p__DQR_defval; +extern BITSTRING const_cs__QoS__Rule_p__DQR_defval; +extern Erroneous_descriptor_t* template_cs__QoS__Rules_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__Session__AMBR_err_descr_ptr; +extern Erroneous_descriptor_t* template_cds__NG__IMEISV__Request_err_descr_ptr; +extern const BITSTRING& cds__NG__IMEISV__Request_p__Value_defval; +extern BITSTRING const_cds__NG__IMEISV__Request_p__Value_defval; +extern Erroneous_descriptor_t* template_cs__AllowedNSSAI_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NSSAI__DELETE__REQUEST_err_descr_ptr; +extern const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& cr__NSSAI__DELETE__RESPONSE; +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template template_cr__NSSAI__DELETE__RESPONSE; +extern Erroneous_descriptor_t* template_cs__SET__UAI__REQUEST_err_descr_ptr; +extern const NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template& cr__SET__UAI__RESPONSE; +extern NG__NAS__MsgContainers::NG__NAS__UL__Message__Type_template template_cr__SET__UAI__RESPONSE; +extern Erroneous_descriptor_t* template_cr__NG__GMM__STATUS_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NSSAI__LV_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NSAG__InfoElement_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NSAG__2Elements_err_descr_ptr; +extern const INTEGER& fl__BuildNIDTemplate_p__AssignmentMode_defval; +extern INTEGER const_fl__BuildNIDTemplate_p__AssignmentMode_defval; +extern Erroneous_descriptor_t* template_cs__NIDBlank_err_descr_ptr; +extern Erroneous_descriptor_t* template_cs__NG__NAS__EDRXParams_err_descr_ptr; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NG_NAS_Templates.o b/build/Ats_NG_NAS/NG_NAS_Templates.o new file mode 100644 index 0000000000000000000000000000000000000000..882316a360cccd9e893c9e937464fc0208eba388 Binary files /dev/null and b/build/Ats_NG_NAS/NG_NAS_Templates.o differ diff --git a/build/Ats_NG_NAS/NG_NAS_TestCases.cc b/build/Ats_NG_NAS/NG_NAS_TestCases.cc new file mode 100644 index 0000000000000000000000000000000000000000..9e26bbef071d2df32bd4a1f79bf50caf4f7a772f --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_TestCases.cc @@ -0,0 +1,46 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NG_NAS_TestCases.hh" + +namespace NG__NAS__TestCases { + +/* Prototypes of static functions */ + +static void pre_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0x02, 0x4b, 0x6d, 0xb5, 0x9b, 0xf1, 0x10, 0x8c, 0xbf, 0xe9, 0x39, 0xde, 0xd9, 0x8f, 0x33, 0xd2 }; + +/* Global variable definitions */ + +TTCN_Module module_object("NG_NAS_TestCases", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + ttcn3_debugger.activate(); +} + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/NG_NAS_TestCases.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_TestCases"); +NG__NAS__TestCases::init_ttcn3_debugger(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NG_NAS_TestCases.hh b/build/Ats_NG_NAS/NG_NAS_TestCases.hh new file mode 100644 index 0000000000000000000000000000000000000000..fea5c2f26d639be0771d847b72c5f571e95262c0 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_TestCases.hh @@ -0,0 +1,39 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NG__NAS__TestCases_HH +#define NG__NAS__TestCases_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include + +#if TTCN3_VERSION != 100000 +#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 + +namespace NG__NAS__TestCases { + +/* Global variable declarations */ + +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NG_NAS_TestCases.o b/build/Ats_NG_NAS/NG_NAS_TestCases.o new file mode 100644 index 0000000000000000000000000000000000000000..ffa662314a0b5c49dfa4428b9c34cd2692fc222a Binary files /dev/null and b/build/Ats_NG_NAS/NG_NAS_TestCases.o differ diff --git a/build/Ats_NG_NAS/NG_NAS_TypeDefs.cc b/build/Ats_NG_NAS/NG_NAS_TypeDefs.cc new file mode 100644 index 0000000000000000000000000000000000000000..6b4d2eae16c4c33e66a7c25a82f22029554c60c6 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_TypeDefs.cc @@ -0,0 +1,49400 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NG_NAS_TypeDefs.hh" + +namespace NG__NAS__TypeDefs { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0xd5, 0x3b, 0xb8, 0x8f, 0x7e, 0x12, 0x78, 0x4e, 0xa7, 0xf5, 0xfe, 0xd4, 0x6c, 0xa4, 0x76, 0xc1 }; + +/* Global variable definitions */ + +// No XER for NAS__5GC__AKA__Type +const TTCN_Typedescriptor_t NAS__5GC__AKA__Type_descr_ = { "@NG_NAS_TypeDefs.NAS_5GC_AKA_Type", NULL, NULL, NULL, NULL, &ENUMERATED_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdProtocolDiscriminator_xer_ = { {"ExtdProtocolDiscriminator>\n", "ExtdProtocolDiscriminator>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ExtdProtocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ExtdProtocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.ExtdProtocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &ExtdProtocolDiscriminator_xer_, &BITSTRING_json_, &ExtdProtocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__Message_xer_ = { {"NG_NAS_Message>\n", "NG_NAS_Message>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NAS__Message_oer_ext_arr_[0] = {}; +const int NG__NAS__Message_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NAS__Message_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__NAS__Message_oer_ext_arr_, 0, NG__NAS__Message_oer_p_}; +const TTCN_Typedescriptor_t NG__NAS__Message_descr_ = { "@NG_NAS_TypeDefs.NG_NAS_Message", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__NAS__Message_xer_, &OCTETSTRING_json_, &NG__NAS__Message_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__AUTHENTICATION__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__AUTHENTICATION__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__REQUEST_messageType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__REQUEST_spareHalfOctet2_xer_ = { {"spareHalfOctet2>\n", "spareHalfOctet2>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_spareHalfOctet2_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REQUEST.spareHalfOctet2", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__AUTHENTICATION__REQUEST_spareHalfOctet2_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ABBA_abbaValue_xer_ = { {"abbaValue>\n", "abbaValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ABBA_abbaValue_oer_ext_arr_[0] = {}; +const int ABBA_abbaValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ABBA_abbaValue_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ABBA_abbaValue_oer_ext_arr_, 0, ABBA_abbaValue_oer_p_}; +const TTCN_Typedescriptor_t ABBA_abbaValue_descr_ = { "@NG_NAS_TypeDefs.ABBA.abbaValue", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ABBA_abbaValue_xer_, &OCTETSTRING_json_, &ABBA_abbaValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ABBA +const TTCN_Typedescriptor_t ABBA_descr_ = { "@NG_NAS_TypeDefs.ABBA", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ABBA_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ABBA_iei_oer_ext_arr_[0] = {}; +const int ABBA_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ABBA_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ABBA_iei_oer_ext_arr_, 0, ABBA_iei_oer_p_}; +const TTCN_Typedescriptor_t ABBA_iei_descr_ = { "@NG_NAS_TypeDefs.ABBA.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ABBA_iei_xer_, &OCTETSTRING_json_, &ABBA_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ABBA_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ABBA_iel_oer_ext_arr_[0] = {}; +const int ABBA_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ABBA_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ABBA_iel_oer_ext_arr_, 0, ABBA_iel_oer_p_}; +const TTCN_Typedescriptor_t ABBA_iel_descr_ = { "@NG_NAS_TypeDefs.ABBA.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ABBA_iel_xer_, &OCTETSTRING_json_, &ABBA_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__AUTHENTICATION__REQUEST +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Message_eapMsg_xer_ = { {"eapMsg>\n", "eapMsg>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Message_eapMsg_oer_ext_arr_[0] = {}; +const int EAP__Message_eapMsg_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Message_eapMsg_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EAP__Message_eapMsg_oer_ext_arr_, 0, EAP__Message_eapMsg_oer_p_}; +const TTCN_Typedescriptor_t EAP__Message_eapMsg_descr_ = { "@NG_NAS_TypeDefs.EAP_Message.eapMsg", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EAP__Message_eapMsg_xer_, &OCTETSTRING_json_, &EAP__Message_eapMsg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EAP__Message +const TTCN_Typedescriptor_t EAP__Message_descr_ = { "@NG_NAS_TypeDefs.EAP_Message", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Message_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Message_iei_oer_ext_arr_[0] = {}; +const int EAP__Message_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Message_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EAP__Message_iei_oer_ext_arr_, 0, EAP__Message_iei_oer_p_}; +const TTCN_Typedescriptor_t EAP__Message_iei_descr_ = { "@NG_NAS_TypeDefs.EAP_Message.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EAP__Message_iei_xer_, &OCTETSTRING_json_, &EAP__Message_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EAP__Message_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EAP__Message_iel_oer_ext_arr_[0] = {}; +const int EAP__Message_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EAP__Message_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EAP__Message_iel_oer_ext_arr_, 0, EAP__Message_iel_oer_p_}; +const TTCN_Typedescriptor_t EAP__Message_iel_descr_ = { "@NG_NAS_TypeDefs.EAP_Message.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EAP__Message_iel_xer_, &OCTETSTRING_json_, &EAP__Message_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__RESPONSE_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESPONSE.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__AUTHENTICATION__RESPONSE_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__RESPONSE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESPONSE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESPONSE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__AUTHENTICATION__RESPONSE_securityHeaderType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__RESPONSE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__RESPONSE_messageType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__AUTHENTICATION__RESPONSE +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__RESULT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESULT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESULT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__RESULT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__RESULT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__RESULT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESULT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__AUTHENTICATION__RESULT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__RESULT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESULT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESULT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__AUTHENTICATION__RESULT_securityHeaderType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__RESULT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__RESULT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESULT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESULT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__RESULT_messageType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__RESULT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__RESULT_spareHalfOctet2_xer_ = { {"spareHalfOctet2>\n", "spareHalfOctet2>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_spareHalfOctet2_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESULT.spareHalfOctet2", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__AUTHENTICATION__RESULT_spareHalfOctet2_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__AUTHENTICATION__RESULT +const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_RESULT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__FAILURE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__FAILURE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_FAILURE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__FAILURE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__FAILURE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__FAILURE_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_FAILURE.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__AUTHENTICATION__FAILURE_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__FAILURE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__FAILURE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_FAILURE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__AUTHENTICATION__FAILURE_securityHeaderType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__FAILURE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__FAILURE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__FAILURE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_FAILURE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__FAILURE_messageType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__FAILURE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GMM__GSM__Cause_causeValue_xer_ = { {"causeValue>\n", "causeValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t GMM__GSM__Cause_causeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t GMM__GSM__Cause_causeValue_descr_ = { "@NG_NAS_TypeDefs.GMM_GSM_Cause.causeValue", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &GMM__GSM__Cause_causeValue_xer_, &BITSTRING_json_, &GMM__GSM__Cause_causeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for GMM__GSM__Cause +const TTCN_Typedescriptor_t GMM__GSM__Cause_descr_ = { "@NG_NAS_TypeDefs.GMM_GSM_Cause", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t GMM__GSM__Cause_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int GMM__GSM__Cause_iei_oer_ext_arr_[0] = {}; +const int GMM__GSM__Cause_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t GMM__GSM__Cause_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, GMM__GSM__Cause_iei_oer_ext_arr_, 0, GMM__GSM__Cause_iei_oer_p_}; +const TTCN_Typedescriptor_t GMM__GSM__Cause_iei_descr_ = { "@NG_NAS_TypeDefs.GMM_GSM_Cause.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &GMM__GSM__Cause_iei_xer_, &OCTETSTRING_json_, &GMM__GSM__Cause_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__AUTHENTICATION__FAILURE +const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_FAILURE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__REJECT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REJECT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__AUTHENTICATION__REJECT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__REJECT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__REJECT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REJECT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__AUTHENTICATION__REJECT_securityHeaderType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__REJECT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AUTHENTICATION__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AUTHENTICATION__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__AUTHENTICATION__REJECT_messageType_xer_, &BITSTRING_json_, &NG__AUTHENTICATION__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__AUTHENTICATION__REJECT +const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_descr_ = { "@NG_NAS_TypeDefs.NG_AUTHENTICATION_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__REGISTRATION__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__REGISTRATION__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__REGISTRATION__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__REGISTRATION__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &NG__REGISTRATION__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__REGISTRATION__REQUEST_messageType_xer_, &BITSTRING_json_, &NG__REGISTRATION__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationType_fOR_xer_ = { {"fOR>\n", "fOR>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RegistrationType_fOR_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RegistrationType_fOR_descr_ = { "@NG_NAS_TypeDefs.RegistrationType.fOR", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &RegistrationType_fOR_xer_, &BITSTRING_json_, &RegistrationType_fOR_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationType_registrationType_xer_ = { {"registrationType>\n", "registrationType>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RegistrationType_registrationType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RegistrationType_registrationType_descr_ = { "@NG_NAS_TypeDefs.RegistrationType.registrationType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &RegistrationType_registrationType_xer_, &BITSTRING_json_, &RegistrationType_registrationType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RegistrationType +const TTCN_Typedescriptor_t RegistrationType_descr_ = { "@NG_NAS_TypeDefs.RegistrationType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__MobileIdentity_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__MobileIdentity_iel_oer_ext_arr_[0] = {}; +const int NG__MobileIdentity_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__MobileIdentity_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, NG__MobileIdentity_iel_oer_ext_arr_, 0, NG__MobileIdentity_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__MobileIdentity_iel_descr_ = { "@NG_NAS_TypeDefs.NG_MobileIdentity.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &NG__MobileIdentity_iel_xer_, &OCTETSTRING_json_, &NG__MobileIdentity_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__MobileIdentity_idDigit1_xer_ = { {"idDigit1>\n", "idDigit1>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__MobileIdentity_idDigit1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__MobileIdentity_idDigit1_descr_ = { "@NG_NAS_TypeDefs.NG_MobileIdentity.idDigit1", &BITSTRING_ber_, &NAS__CommonTypeDefs::BcdDigit__Bit_raw_, NULL, &NG__MobileIdentity_idDigit1_xer_, &BITSTRING_json_, &NG__MobileIdentity_idDigit1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__MobileIdentity_oddEvenInd_xer_ = { {"oddEvenInd>\n", "oddEvenInd>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__MobileIdentity_oddEvenInd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__MobileIdentity_oddEvenInd_descr_ = { "@NG_NAS_TypeDefs.NG_MobileIdentity.oddEvenInd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__MobileIdentity_oddEvenInd_xer_, &BITSTRING_json_, &NG__MobileIdentity_oddEvenInd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__MobileIdentity_typeOfId_xer_ = { {"typeOfId>\n", "typeOfId>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__MobileIdentity_typeOfId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__MobileIdentity_typeOfId_descr_ = { "@NG_NAS_TypeDefs.NG_MobileIdentity.typeOfId", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NG__MobileIdentity_typeOfId_xer_, &BITSTRING_json_, &NG__MobileIdentity_typeOfId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__MobileIdentity +const TTCN_Typedescriptor_t NG__MobileIdentity_descr_ = { "@NG_NAS_TypeDefs.NG_MobileIdentity", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__MobileIdentity_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__MobileIdentity_iei_oer_ext_arr_[0] = {}; +const int NG__MobileIdentity_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__MobileIdentity_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__MobileIdentity_iei_oer_ext_arr_, 0, NG__MobileIdentity_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__MobileIdentity_iei_descr_ = { "@NG_NAS_TypeDefs.NG_MobileIdentity.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__MobileIdentity_iei_xer_, &OCTETSTRING_json_, &NG__MobileIdentity_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__MobileIdentity_otherDigits_xer_ = { {"otherDigits>\n", "otherDigits>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__MobileIdentity_otherDigits_oer_ext_arr_[0] = {}; +const int NG__MobileIdentity_otherDigits_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__MobileIdentity_otherDigits_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__MobileIdentity_otherDigits_oer_ext_arr_, 0, NG__MobileIdentity_otherDigits_oer_p_}; +const TTCN_Typedescriptor_t NG__MobileIdentity_otherDigits_descr_ = { "@NG_NAS_TypeDefs.NG_MobileIdentity.otherDigits", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__MobileIdentity_otherDigits_xer_, &OCTETSTRING_json_, &NG__MobileIdentity_otherDigits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__REGISTRATION__REQUEST +const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_sgc_xer_ = { {"sgc>\n", "sgc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_sgc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_sgc_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.sgc", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_sgc_xer_, &BITSTRING_json_, &NG__GMM__Cap_sgc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngIPHC__CP__CIoT_xer_ = { {"ngIPHC_CP_CIoT>\n", "ngIPHC_CP_CIoT>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngIPHC__CP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngIPHC__CP__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngIPHC_CP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngIPHC__CP__CIoT_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngIPHC__CP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_n3Data_xer_ = { {"n3Data>\n", "n3Data>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_n3Data_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_n3Data_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.n3Data", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_n3Data_xer_, &BITSTRING_json_, &NG__GMM__Cap_n3Data_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ng__CP__CIoT_xer_ = { {"ng_CP_CIoT>\n", "ng_CP_CIoT>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ng__CP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ng__CP__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ng_CP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ng__CP__CIoT_xer_, &BITSTRING_json_, &NG__GMM__Cap_ng__CP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_restrictEC_xer_ = { {"restrictEC>\n", "restrictEC>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_restrictEC_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_restrictEC_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.restrictEC", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_restrictEC_xer_, &BITSTRING_json_, &NG__GMM__Cap_restrictEC_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_lpp_xer_ = { {"lpp>\n", "lpp>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_lpp_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_lpp_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.lpp", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_lpp_xer_, &BITSTRING_json_, &NG__GMM__Cap_lpp_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_hoAttach_xer_ = { {"hoAttach>\n", "hoAttach>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_hoAttach_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_hoAttach_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.hoAttach", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_hoAttach_xer_, &BITSTRING_json_, &NG__GMM__Cap_hoAttach_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_s1Cap_xer_ = { {"s1Cap>\n", "s1Cap>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_s1Cap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_s1Cap_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.s1Cap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_s1Cap_xer_, &BITSTRING_json_, &NG__GMM__Cap_s1Cap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__GMM__Cap +const TTCN_Typedescriptor_t NG__GMM__Cap_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__GMM__Cap_iei_oer_ext_arr_[0] = {}; +const int NG__GMM__Cap_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__GMM__Cap_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__GMM__Cap_iei_oer_ext_arr_, 0, NG__GMM__Cap_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__GMM__Cap_iei_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__GMM__Cap_iei_xer_, &OCTETSTRING_json_, &NG__GMM__Cap_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__GMM__Cap_iel_oer_ext_arr_[0] = {}; +const int NG__GMM__Cap_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__GMM__Cap_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__GMM__Cap_iel_oer_ext_arr_, 0, NG__GMM__Cap_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__GMM__Cap_iel_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__GMM__Cap_iel_xer_, &OCTETSTRING_json_, &NG__GMM__Cap_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_racs_xer_ = { {"racs>\n", "racs>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_racs_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_racs_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.racs", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_racs_xer_, &BITSTRING_json_, &NG__GMM__Cap_racs_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_nssaa_xer_ = { {"nssaa>\n", "nssaa>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_nssaa_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_nssaa_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.nssaa", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_nssaa_xer_, &BITSTRING_json_, &NG__GMM__Cap_nssaa_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngLCS_xer_ = { {"ngLCS>\n", "ngLCS>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngLCS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngLCS_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngLCS", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngLCS_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngLCS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_v2xNPC5_xer_ = { {"v2xNPC5>\n", "v2xNPC5>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_v2xNPC5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_v2xNPC5_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.v2xNPC5", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_v2xNPC5_xer_, &BITSTRING_json_, &NG__GMM__Cap_v2xNPC5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_v2xEPC5_xer_ = { {"v2xEPC5>\n", "v2xEPC5>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_v2xEPC5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_v2xEPC5_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.v2xEPC5", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_v2xEPC5_xer_, &BITSTRING_json_, &NG__GMM__Cap_v2xEPC5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_v2x_xer_ = { {"v2x>\n", "v2x>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_v2x_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_v2x_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.v2x", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_v2x_xer_, &BITSTRING_json_, &NG__GMM__Cap_v2x_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ng__UP__CIoT_xer_ = { {"ng_UP_CIoT>\n", "ng_UP_CIoT>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ng__UP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ng__UP__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ng_UP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ng__UP__CIoT_xer_, &BITSTRING_json_, &NG__GMM__Cap_ng__UP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngSRVCC_xer_ = { {"ngSRVCC>\n", "ngSRVCC>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngSRVCC_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngSRVCC_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngSRVCC", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngSRVCC_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngSRVCC_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngProSeL2relay_xer_ = { {"ngProSeL2relay>\n", "ngProSeL2relay>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSeL2relay_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSeL2relay_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngProSeL2relay", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngProSeL2relay_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngProSeL2relay_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngProSe__dc_xer_ = { {"ngProSe_dc>\n", "ngProSe_dc>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSe__dc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSe__dc_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngProSe_dc", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngProSe__dc_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngProSe__dc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngProSe__dd_xer_ = { {"ngProSe_dd>\n", "ngProSe_dd>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSe__dd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSe__dd_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngProSe_dd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngProSe__dd_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngProSe__dd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_erNSSAI_xer_ = { {"erNSSAI>\n", "erNSSAI>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_erNSSAI_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_erNSSAI_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.erNSSAI", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_erNSSAI_xer_, &BITSTRING_json_, &NG__GMM__Cap_erNSSAI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngEHC__CP__CIoT_xer_ = { {"ngEHC_CP_CIoT>\n", "ngEHC_CP_CIoT>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngEHC__CP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngEHC__CP__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngEHC_CP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngEHC__CP__CIoT_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngEHC__CP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_multipleUP_xer_ = { {"multipleUP>\n", "multipleUP>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_multipleUP_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_multipleUP_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.multipleUP", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_multipleUP_xer_, &BITSTRING_json_, &NG__GMM__Cap_multipleUP_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_wusa_xer_ = { {"wusa>\n", "wusa>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_wusa_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_wusa_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.wusa", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_wusa_xer_, &BITSTRING_json_, &NG__GMM__Cap_wusa_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_cag_xer_ = { {"cag>\n", "cag>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_cag_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_cag_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.cag", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_cag_xer_, &BITSTRING_json_, &NG__GMM__Cap_cag_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_pr_xer_ = { {"pr>\n", "pr>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_pr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_pr_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.pr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_pr_xer_, &BITSTRING_json_, &NG__GMM__Cap_pr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_rpr_xer_ = { {"rpr>\n", "rpr>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_rpr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_rpr_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.rpr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_rpr_xer_, &BITSTRING_json_, &NG__GMM__Cap_rpr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_piv_xer_ = { {"piv>\n", "piv>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_piv_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_piv_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.piv", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_piv_xer_, &BITSTRING_json_, &NG__GMM__Cap_piv_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ncr_xer_ = { {"ncr>\n", "ncr>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ncr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ncr_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ncr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ncr_xer_, &BITSTRING_json_, &NG__GMM__Cap_ncr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_nrPSSI_xer_ = { {"nrPSSI>\n", "nrPSSI>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_nrPSSI_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_nrPSSI_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.nrPSSI", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_nrPSSI_xer_, &BITSTRING_json_, &NG__GMM__Cap_nrPSSI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngProSeL3rmt_xer_ = { {"ngProSeL3rmt>\n", "ngProSeL3rmt>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSeL3rmt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSeL3rmt_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngProSeL3rmt", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngProSeL3rmt_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngProSeL3rmt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngProSeL2rmt_xer_ = { {"ngProSeL2rmt>\n", "ngProSeL2rmt>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSeL2rmt_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSeL2rmt_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngProSeL2rmt", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngProSeL2rmt_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngProSeL2rmt_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ngProSeL3relay_xer_ = { {"ngProSeL3relay>\n", "ngProSeL3relay>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSeL3relay_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSeL3relay_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ngProSeL3relay", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ngProSeL3relay_xer_, &BITSTRING_json_, &NG__GMM__Cap_ngProSeL3relay_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_mpsiu_xer_ = { {"mpsiu>\n", "mpsiu>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_mpsiu_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_mpsiu_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.mpsiu", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_mpsiu_xer_, &BITSTRING_json_, &NG__GMM__Cap_mpsiu_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_uas_xer_ = { {"uas>\n", "uas>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_uas_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_uas_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.uas", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_uas_xer_, &BITSTRING_json_, &NG__GMM__Cap_uas_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_nsag_xer_ = { {"nsag>\n", "nsag>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_nsag_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_nsag_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.nsag", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_nsag_xer_, &BITSTRING_json_, &NG__GMM__Cap_nsag_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_exCAG_xer_ = { {"exCAG>\n", "exCAG>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_exCAG_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_exCAG_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.exCAG", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_exCAG_xer_, &BITSTRING_json_, &NG__GMM__Cap_exCAG_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_ssnpnsi_xer_ = { {"ssnpnsi>\n", "ssnpnsi>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_ssnpnsi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_ssnpnsi_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.ssnpnsi", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_ssnpnsi_xer_, &BITSTRING_json_, &NG__GMM__Cap_ssnpnsi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_eventNotification_xer_ = { {"eventNotification>\n", "eventNotification>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_eventNotification_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_eventNotification_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.eventNotification", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_eventNotification_xer_, &BITSTRING_json_, &NG__GMM__Cap_eventNotification_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_mint_xer_ = { {"mint>\n", "mint>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_mint_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_mint_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.mint", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_mint_xer_, &BITSTRING_json_, &NG__GMM__Cap_mint_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_nssrg_xer_ = { {"nssrg>\n", "nssrg>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_nssrg_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_nssrg_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.nssrg", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_nssrg_xer_, &BITSTRING_json_, &NG__GMM__Cap_nssrg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_spareBits_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.spareBits", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &NG__GMM__Cap_spareBits_xer_, &BITSTRING_json_, &NG__GMM__Cap_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_rcman_xer_ = { {"rcman>\n", "rcman>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_rcman_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_rcman_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.rcman", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_rcman_xer_, &BITSTRING_json_, &NG__GMM__Cap_rcman_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_rcmap_xer_ = { {"rcmap>\n", "rcmap>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__Cap_rcmap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__Cap_rcmap_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.rcmap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__GMM__Cap_rcmap_xer_, &BITSTRING_json_, &NG__GMM__Cap_rcmap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__Cap_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__GMM__Cap_spare_oer_ext_arr_[0] = {}; +const int NG__GMM__Cap_spare_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__GMM__Cap_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__GMM__Cap_spare_oer_ext_arr_, 0, NG__GMM__Cap_spare_oer_p_}; +const TTCN_Typedescriptor_t NG__GMM__Cap_spare_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_Cap.spare", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__GMM__Cap_spare_xer_, &OCTETSTRING_json_, &NG__GMM__Cap_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SecurityCapability_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SecurityCapability_iel_oer_ext_arr_[0] = {}; +const int NG__UE__SecurityCapability_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SecurityCapability_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UE__SecurityCapability_iel_oer_ext_arr_, 0, NG__UE__SecurityCapability_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SecurityCapability_iel_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SecurityCapability.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UE__SecurityCapability_iel_xer_, &OCTETSTRING_json_, &NG__UE__SecurityCapability_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SecurityCapability_ngeaCap_xer_ = { {"ngeaCap>\n", "ngeaCap>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SecurityCapability_ngeaCap_oer_ext_arr_[0] = {}; +const int NG__UE__SecurityCapability_ngeaCap_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SecurityCapability_ngeaCap_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UE__SecurityCapability_ngeaCap_oer_ext_arr_, 0, NG__UE__SecurityCapability_ngeaCap_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SecurityCapability_ngeaCap_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SecurityCapability.ngeaCap", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UE__SecurityCapability_ngeaCap_xer_, &OCTETSTRING_json_, &NG__UE__SecurityCapability_ngeaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SecurityCapability_ngiaCap_xer_ = { {"ngiaCap>\n", "ngiaCap>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SecurityCapability_ngiaCap_oer_ext_arr_[0] = {}; +const int NG__UE__SecurityCapability_ngiaCap_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SecurityCapability_ngiaCap_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UE__SecurityCapability_ngiaCap_oer_ext_arr_, 0, NG__UE__SecurityCapability_ngiaCap_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SecurityCapability_ngiaCap_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SecurityCapability.ngiaCap", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UE__SecurityCapability_ngiaCap_xer_, &OCTETSTRING_json_, &NG__UE__SecurityCapability_ngiaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__UE__SecurityCapability +const TTCN_Typedescriptor_t NG__UE__SecurityCapability_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SecurityCapability", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SecurityCapability_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SecurityCapability_iei_oer_ext_arr_[0] = {}; +const int NG__UE__SecurityCapability_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SecurityCapability_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UE__SecurityCapability_iei_oer_ext_arr_, 0, NG__UE__SecurityCapability_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SecurityCapability_iei_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SecurityCapability.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UE__SecurityCapability_iei_xer_, &OCTETSTRING_json_, &NG__UE__SecurityCapability_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SecurityCapability_eeaCap_xer_ = { {"eeaCap>\n", "eeaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SecurityCapability_eeaCap_oer_ext_arr_[0] = {}; +const int NG__UE__SecurityCapability_eeaCap_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SecurityCapability_eeaCap_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UE__SecurityCapability_eeaCap_oer_ext_arr_, 0, NG__UE__SecurityCapability_eeaCap_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SecurityCapability_eeaCap_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SecurityCapability.eeaCap", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UE__SecurityCapability_eeaCap_xer_, &OCTETSTRING_json_, &NG__UE__SecurityCapability_eeaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SecurityCapability_eiaCap_xer_ = { {"eiaCap>\n", "eiaCap>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SecurityCapability_eiaCap_oer_ext_arr_[0] = {}; +const int NG__UE__SecurityCapability_eiaCap_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SecurityCapability_eiaCap_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UE__SecurityCapability_eiaCap_oer_ext_arr_, 0, NG__UE__SecurityCapability_eiaCap_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SecurityCapability_eiaCap_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SecurityCapability.eiaCap", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UE__SecurityCapability_eiaCap_xer_, &OCTETSTRING_json_, &NG__UE__SecurityCapability_eiaCap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SecurityCapability_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SecurityCapability_spare_oer_ext_arr_[0] = {}; +const int NG__UE__SecurityCapability_spare_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SecurityCapability_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__UE__SecurityCapability_spare_oer_ext_arr_, 0, NG__UE__SecurityCapability_spare_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SecurityCapability_spare_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SecurityCapability.spare", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__UE__SecurityCapability_spare_xer_, &OCTETSTRING_json_, &NG__UE__SecurityCapability_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for S__NSSAI__TypeList +const TTCN_Typedescriptor_t S__NSSAI__TypeList_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_TypeList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &S__NSSAI__LV_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S__NSSAI__V_sst_xer_ = { {"sst>\n", "sst>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int S__NSSAI__V_sst_oer_ext_arr_[0] = {}; +const int S__NSSAI__V_sst_oer_p_[0] = {}; +const TTCN_OERdescriptor_t S__NSSAI__V_sst_oer_ = { -1, TRUE, 1, FALSE, 0, 0, S__NSSAI__V_sst_oer_ext_arr_, 0, S__NSSAI__V_sst_oer_p_}; +const TTCN_Typedescriptor_t S__NSSAI__V_sst_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_V.sst", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &S__NSSAI__V_sst_xer_, &OCTETSTRING_json_, &S__NSSAI__V_sst_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for S__NSSAI__V +const TTCN_Typedescriptor_t S__NSSAI__V_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_V", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S__NSSAI__V_sd_xer_ = { {"sd>\n", "sd>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int S__NSSAI__V_sd_oer_ext_arr_[0] = {}; +const int S__NSSAI__V_sd_oer_p_[0] = {}; +const TTCN_OERdescriptor_t S__NSSAI__V_sd_oer_ = { -1, TRUE, 3, FALSE, 0, 0, S__NSSAI__V_sd_oer_ext_arr_, 0, S__NSSAI__V_sd_oer_p_}; +const TTCN_Typedescriptor_t S__NSSAI__V_sd_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_V.sd", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &S__NSSAI__V_sd_xer_, &OCTETSTRING_json_, &S__NSSAI__V_sd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S__NSSAI__V_mappedSST_xer_ = { {"mappedSST>\n", "mappedSST>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int S__NSSAI__V_mappedSST_oer_ext_arr_[0] = {}; +const int S__NSSAI__V_mappedSST_oer_p_[0] = {}; +const TTCN_OERdescriptor_t S__NSSAI__V_mappedSST_oer_ = { -1, TRUE, 1, FALSE, 0, 0, S__NSSAI__V_mappedSST_oer_ext_arr_, 0, S__NSSAI__V_mappedSST_oer_p_}; +const TTCN_Typedescriptor_t S__NSSAI__V_mappedSST_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_V.mappedSST", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &S__NSSAI__V_mappedSST_xer_, &OCTETSTRING_json_, &S__NSSAI__V_mappedSST_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S__NSSAI__V_mappedSD_xer_ = { {"mappedSD>\n", "mappedSD>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int S__NSSAI__V_mappedSD_oer_ext_arr_[0] = {}; +const int S__NSSAI__V_mappedSD_oer_p_[0] = {}; +const TTCN_OERdescriptor_t S__NSSAI__V_mappedSD_oer_ = { -1, TRUE, 3, FALSE, 0, 0, S__NSSAI__V_mappedSD_oer_ext_arr_, 0, S__NSSAI__V_mappedSD_oer_p_}; +const TTCN_Typedescriptor_t S__NSSAI__V_mappedSD_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_V.mappedSD", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &S__NSSAI__V_mappedSD_xer_, &OCTETSTRING_json_, &S__NSSAI__V_mappedSD_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for S__NSSAI__LV +const TTCN_Typedescriptor_t S__NSSAI__LV_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_LV", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S__NSSAI__LV_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int S__NSSAI__LV_iel_oer_ext_arr_[0] = {}; +const int S__NSSAI__LV_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t S__NSSAI__LV_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, S__NSSAI__LV_iel_oer_ext_arr_, 0, S__NSSAI__LV_iel_oer_p_}; +const TTCN_Typedescriptor_t S__NSSAI__LV_iel_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_LV.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &S__NSSAI__LV_iel_xer_, &OCTETSTRING_json_, &S__NSSAI__LV_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSSAI__LV +const TTCN_Typedescriptor_t NSSAI__LV_descr_ = { "@NG_NAS_TypeDefs.NSSAI_LV", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI__LV_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSSAI__LV_iel_oer_ext_arr_[0] = {}; +const int NSSAI__LV_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSSAI__LV_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NSSAI__LV_iel_oer_ext_arr_, 0, NSSAI__LV_iel_oer_p_}; +const TTCN_Typedescriptor_t NSSAI__LV_iel_descr_ = { "@NG_NAS_TypeDefs.NSSAI_LV.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NSSAI__LV_iel_xer_, &OCTETSTRING_json_, &NSSAI__LV_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSSAI +const TTCN_Typedescriptor_t NSSAI_descr_ = { "@NG_NAS_TypeDefs.NSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSSAI_iei_oer_ext_arr_[0] = {}; +const int NSSAI_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSSAI_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NSSAI_iei_oer_ext_arr_, 0, NSSAI_iei_oer_p_}; +const TTCN_Typedescriptor_t NSSAI_iei_descr_ = { "@NG_NAS_TypeDefs.NSSAI.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NSSAI_iei_xer_, &OCTETSTRING_json_, &NSSAI_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__TrackingAreaId_plmnId_xer_ = { {"plmnId>\n", "plmnId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__TrackingAreaId_plmnId_oer_ext_arr_[0] = {}; +const int NG__TrackingAreaId_plmnId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__TrackingAreaId_plmnId_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NG__TrackingAreaId_plmnId_oer_ext_arr_, 0, NG__TrackingAreaId_plmnId_oer_p_}; +const TTCN_Typedescriptor_t NG__TrackingAreaId_plmnId_descr_ = { "@NG_NAS_TypeDefs.NG_TrackingAreaId.plmnId", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NG__TrackingAreaId_plmnId_xer_, &OCTETSTRING_json_, &NG__TrackingAreaId_plmnId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__TrackingAreaId_tac_xer_ = { {"tac>\n", "tac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__TrackingAreaId_tac_oer_ext_arr_[0] = {}; +const int NG__TrackingAreaId_tac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__TrackingAreaId_tac_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NG__TrackingAreaId_tac_oer_ext_arr_, 0, NG__TrackingAreaId_tac_oer_p_}; +const TTCN_Typedescriptor_t NG__TrackingAreaId_tac_descr_ = { "@NG_NAS_TypeDefs.NG_TrackingAreaId.tac", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NG__TrackingAreaId_tac_xer_, &OCTETSTRING_json_, &NG__TrackingAreaId_tac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__TrackingAreaId +const TTCN_Typedescriptor_t NG__TrackingAreaId_descr_ = { "@NG_NAS_TypeDefs.NG_TrackingAreaId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__TrackingAreaId_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__TrackingAreaId_iei_oer_ext_arr_[0] = {}; +const int NG__TrackingAreaId_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__TrackingAreaId_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__TrackingAreaId_iei_oer_ext_arr_, 0, NG__TrackingAreaId_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__TrackingAreaId_iei_descr_ = { "@NG_NAS_TypeDefs.NG_TrackingAreaId.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__TrackingAreaId_iei_xer_, &OCTETSTRING_json_, &NG__TrackingAreaId_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionStatus_psi0__7_xer_ = { {"psi0_7>\n", "psi0_7>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDU__SessionStatus_psi0__7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDU__SessionStatus_psi0__7_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionStatus.psi0_7", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &PDU__SessionStatus_psi0__7_xer_, &BITSTRING_json_, &PDU__SessionStatus_psi0__7_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionStatus_psi8__15_xer_ = { {"psi8_15>\n", "psi8_15>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDU__SessionStatus_psi8__15_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDU__SessionStatus_psi8__15_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionStatus.psi8_15", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &PDU__SessionStatus_psi8__15_xer_, &BITSTRING_json_, &PDU__SessionStatus_psi8__15_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDU__SessionStatus +const TTCN_Typedescriptor_t PDU__SessionStatus_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionStatus", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionStatus_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__SessionStatus_iei_oer_ext_arr_[0] = {}; +const int PDU__SessionStatus_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__SessionStatus_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDU__SessionStatus_iei_oer_ext_arr_, 0, PDU__SessionStatus_iei_oer_p_}; +const TTCN_Typedescriptor_t PDU__SessionStatus_iei_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionStatus.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDU__SessionStatus_iei_xer_, &OCTETSTRING_json_, &PDU__SessionStatus_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionStatus_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__SessionStatus_iel_oer_ext_arr_[0] = {}; +const int PDU__SessionStatus_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__SessionStatus_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDU__SessionStatus_iel_oer_ext_arr_, 0, PDU__SessionStatus_iel_oer_p_}; +const TTCN_Typedescriptor_t PDU__SessionStatus_iel_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionStatus.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDU__SessionStatus_iel_xer_, &OCTETSTRING_json_, &PDU__SessionStatus_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionStatus_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__SessionStatus_spare_oer_ext_arr_[0] = {}; +const int PDU__SessionStatus_spare_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__SessionStatus_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PDU__SessionStatus_spare_oer_ext_arr_, 0, PDU__SessionStatus_spare_oer_p_}; +const TTCN_Typedescriptor_t PDU__SessionStatus_spare_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionStatus.spare", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &PDU__SessionStatus_spare_xer_, &OCTETSTRING_json_, &PDU__SessionStatus_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& ULDataStatus_descr_ = PDU__SessionStatus_descr_; +const XERdescriptor_t MICO__Ind_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t MICO__Ind_iei_descr_ = { "@NG_NAS_TypeDefs.MICO_Ind.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &MICO__Ind_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MICO__Ind_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MICO__Ind_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MICO__Ind_spare_descr_ = { "@NG_NAS_TypeDefs.MICO_Ind.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MICO__Ind_spare_xer_, &BITSTRING_json_, &MICO__Ind_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MICO__Ind_sprti_xer_ = { {"sprti>\n", "sprti>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MICO__Ind_sprti_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MICO__Ind_sprti_descr_ = { "@NG_NAS_TypeDefs.MICO_Ind.sprti", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MICO__Ind_sprti_xer_, &BITSTRING_json_, &MICO__Ind_sprti_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MICO__Ind_raai_xer_ = { {"raai>\n", "raai>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MICO__Ind_raai_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MICO__Ind_raai_descr_ = { "@NG_NAS_TypeDefs.MICO_Ind.raai", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MICO__Ind_raai_xer_, &BITSTRING_json_, &MICO__Ind_raai_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MICO__Ind +const TTCN_Typedescriptor_t MICO__Ind_descr_ = { "@NG_NAS_TypeDefs.MICO_Ind", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& AllowedPDU__SessionStatus_descr_ = PDU__SessionStatus_descr_; +const XERdescriptor_t UE__UsageSetting_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__UsageSetting_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__UsageSetting_spare_descr_ = { "@NG_NAS_TypeDefs.UE_UsageSetting.spare", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &UE__UsageSetting_spare_xer_, &BITSTRING_json_, &UE__UsageSetting_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__UsageSetting_ueUsageSetting_xer_ = { {"ueUsageSetting>\n", "ueUsageSetting>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__UsageSetting_ueUsageSetting_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__UsageSetting_ueUsageSetting_descr_ = { "@NG_NAS_TypeDefs.UE_UsageSetting.ueUsageSetting", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UE__UsageSetting_ueUsageSetting_xer_, &BITSTRING_json_, &UE__UsageSetting_ueUsageSetting_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__UsageSetting +const TTCN_Typedescriptor_t UE__UsageSetting_descr_ = { "@NG_NAS_TypeDefs.UE_UsageSetting", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__UsageSetting_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__UsageSetting_iei_oer_ext_arr_[0] = {}; +const int UE__UsageSetting_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__UsageSetting_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__UsageSetting_iei_oer_ext_arr_, 0, UE__UsageSetting_iei_oer_p_}; +const TTCN_Typedescriptor_t UE__UsageSetting_iei_descr_ = { "@NG_NAS_TypeDefs.UE_UsageSetting.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__UsageSetting_iei_xer_, &OCTETSTRING_json_, &UE__UsageSetting_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__UsageSetting_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__UsageSetting_iel_oer_ext_arr_[0] = {}; +const int UE__UsageSetting_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__UsageSetting_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__UsageSetting_iel_oer_ext_arr_, 0, UE__UsageSetting_iel_oer_p_}; +const TTCN_Typedescriptor_t UE__UsageSetting_iel_descr_ = { "@NG_NAS_TypeDefs.UE_UsageSetting.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__UsageSetting_iel_xer_, &OCTETSTRING_json_, &UE__UsageSetting_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& NG__DRXparameter_descr_ = NAS__CommonTypeDefs::DRXParamCommon_descr_; +const XERdescriptor_t EPS__MessageContainer_epsMsg_xer_ = { {"epsMsg>\n", "epsMsg>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__MessageContainer_epsMsg_oer_ext_arr_[0] = {}; +const int EPS__MessageContainer_epsMsg_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__MessageContainer_epsMsg_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EPS__MessageContainer_epsMsg_oer_ext_arr_, 0, EPS__MessageContainer_epsMsg_oer_p_}; +const TTCN_Typedescriptor_t EPS__MessageContainer_epsMsg_descr_ = { "@NG_NAS_TypeDefs.EPS_MessageContainer.epsMsg", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EPS__MessageContainer_epsMsg_xer_, &OCTETSTRING_json_, &EPS__MessageContainer_epsMsg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPS__MessageContainer +const TTCN_Typedescriptor_t EPS__MessageContainer_descr_ = { "@NG_NAS_TypeDefs.EPS_MessageContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__MessageContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__MessageContainer_iei_oer_ext_arr_[0] = {}; +const int EPS__MessageContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__MessageContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPS__MessageContainer_iei_oer_ext_arr_, 0, EPS__MessageContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t EPS__MessageContainer_iei_descr_ = { "@NG_NAS_TypeDefs.EPS_MessageContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPS__MessageContainer_iei_xer_, &OCTETSTRING_json_, &EPS__MessageContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPS__MessageContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPS__MessageContainer_iel_oer_ext_arr_[0] = {}; +const int EPS__MessageContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPS__MessageContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, EPS__MessageContainer_iel_oer_ext_arr_, 0, EPS__MessageContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t EPS__MessageContainer_iel_descr_ = { "@NG_NAS_TypeDefs.EPS_MessageContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &EPS__MessageContainer_iel_xer_, &OCTETSTRING_json_, &EPS__MessageContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LADN__Ind_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LADN__Ind_iel_oer_ext_arr_[0] = {}; +const int LADN__Ind_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LADN__Ind_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, LADN__Ind_iel_oer_ext_arr_, 0, LADN__Ind_iel_oer_p_}; +const TTCN_Typedescriptor_t LADN__Ind_iel_descr_ = { "@NG_NAS_TypeDefs.LADN_Ind.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &LADN__Ind_iel_xer_, &OCTETSTRING_json_, &LADN__Ind_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LADN__Ind +const TTCN_Typedescriptor_t LADN__Ind_descr_ = { "@NG_NAS_TypeDefs.LADN_Ind", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LADN__Ind_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LADN__Ind_iei_oer_ext_arr_[0] = {}; +const int LADN__Ind_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LADN__Ind_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, LADN__Ind_iei_oer_ext_arr_, 0, LADN__Ind_iei_oer_p_}; +const TTCN_Typedescriptor_t LADN__Ind_iei_descr_ = { "@NG_NAS_TypeDefs.LADN_Ind.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &LADN__Ind_iei_xer_, &OCTETSTRING_json_, &LADN__Ind_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LADN__Ind_listOfLADN__DNNValues_xer_ = { {"listOfLADN_DNNValues>\n", "listOfLADN_DNNValues>\n"}, {22, 22}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LADN__Ind_listOfLADN__DNNValues_oer_ext_arr_[0] = {}; +const int LADN__Ind_listOfLADN__DNNValues_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LADN__Ind_listOfLADN__DNNValues_oer_ = { -1, TRUE, -1, FALSE, 0, 0, LADN__Ind_listOfLADN__DNNValues_oer_ext_arr_, 0, LADN__Ind_listOfLADN__DNNValues_oer_p_}; +const TTCN_Typedescriptor_t LADN__Ind_listOfLADN__DNNValues_descr_ = { "@NG_NAS_TypeDefs.LADN_Ind.listOfLADN_DNNValues", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &LADN__Ind_listOfLADN__DNNValues_xer_, &OCTETSTRING_json_, &LADN__Ind_listOfLADN__DNNValues_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PayloadContainerType_container_xer_ = { {"container>\n", "container>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PayloadContainerType_container_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PayloadContainerType_container_descr_ = { "@NG_NAS_TypeDefs.PayloadContainerType.container", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PayloadContainerType_container_xer_, &BITSTRING_json_, &PayloadContainerType_container_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PayloadContainerType +const TTCN_Typedescriptor_t PayloadContainerType_descr_ = { "@NG_NAS_TypeDefs.PayloadContainerType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PayloadContainerType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PayloadContainerType_iei_descr_ = { "@NG_NAS_TypeDefs.PayloadContainerType.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &PayloadContainerType_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PayloadContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PayloadContainer_iel_oer_ext_arr_[0] = {}; +const int PayloadContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PayloadContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, PayloadContainer_iel_oer_ext_arr_, 0, PayloadContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t PayloadContainer_iel_descr_ = { "@NG_NAS_TypeDefs.PayloadContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &PayloadContainer_iel_xer_, &OCTETSTRING_json_, &PayloadContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PayloadContainer_payload_xer_ = { {"payload>\n", "payload>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PayloadContainer_payload_oer_ext_arr_[0] = {}; +const int PayloadContainer_payload_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PayloadContainer_payload_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PayloadContainer_payload_oer_ext_arr_, 0, PayloadContainer_payload_oer_p_}; +const TTCN_Typedescriptor_t PayloadContainer_payload_descr_ = { "@NG_NAS_TypeDefs.PayloadContainer.payload", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &PayloadContainer_payload_xer_, &OCTETSTRING_json_, &PayloadContainer_payload_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PayloadContainer +const TTCN_Typedescriptor_t PayloadContainer_descr_ = { "@NG_NAS_TypeDefs.PayloadContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PayloadContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PayloadContainer_iei_oer_ext_arr_[0] = {}; +const int PayloadContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PayloadContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PayloadContainer_iei_oer_ext_arr_, 0, PayloadContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t PayloadContainer_iei_descr_ = { "@NG_NAS_TypeDefs.PayloadContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PayloadContainer_iei_xer_, &OCTETSTRING_json_, &PayloadContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkSlicingInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NetworkSlicingInd_iei_descr_ = { "@NG_NAS_TypeDefs.NetworkSlicingInd.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NetworkSlicingInd_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkSlicingInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NetworkSlicingInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NetworkSlicingInd_spare_descr_ = { "@NG_NAS_TypeDefs.NetworkSlicingInd.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NetworkSlicingInd_spare_xer_, &BITSTRING_json_, &NetworkSlicingInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkSlicingInd_dcni_xer_ = { {"dcni>\n", "dcni>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NetworkSlicingInd_dcni_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NetworkSlicingInd_dcni_descr_ = { "@NG_NAS_TypeDefs.NetworkSlicingInd.dcni", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NetworkSlicingInd_dcni_xer_, &BITSTRING_json_, &NetworkSlicingInd_dcni_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NetworkSlicingInd_nssci_xer_ = { {"nssci>\n", "nssci>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NetworkSlicingInd_nssci_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NetworkSlicingInd_nssci_descr_ = { "@NG_NAS_TypeDefs.NetworkSlicingInd.nssci", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NetworkSlicingInd_nssci_xer_, &BITSTRING_json_, &NetworkSlicingInd_nssci_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NetworkSlicingInd +const TTCN_Typedescriptor_t NetworkSlicingInd_descr_ = { "@NG_NAS_TypeDefs.NetworkSlicingInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UpdateType_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UpdateType_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UpdateType_spare_descr_ = { "@NG_NAS_TypeDefs.NG_UpdateType.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__UpdateType_spare_xer_, &BITSTRING_json_, &NG__UpdateType_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UpdateType_eps__PNB__CIoT_xer_ = { {"eps_PNB_CIoT>\n", "eps_PNB_CIoT>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UpdateType_eps__PNB__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UpdateType_eps__PNB__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_UpdateType.eps_PNB_CIoT", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__UpdateType_eps__PNB__CIoT_xer_, &BITSTRING_json_, &NG__UpdateType_eps__PNB__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UpdateType_ng__PNB__CIoT_xer_ = { {"ng_PNB_CIoT>\n", "ng_PNB_CIoT>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UpdateType_ng__PNB__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UpdateType_ng__PNB__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_UpdateType.ng_PNB_CIoT", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__UpdateType_ng__PNB__CIoT_xer_, &BITSTRING_json_, &NG__UpdateType_ng__PNB__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UpdateType_ngRAN__RCU_xer_ = { {"ngRAN_RCU>\n", "ngRAN_RCU>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UpdateType_ngRAN__RCU_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UpdateType_ngRAN__RCU_descr_ = { "@NG_NAS_TypeDefs.NG_UpdateType.ngRAN_RCU", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__UpdateType_ngRAN__RCU_xer_, &BITSTRING_json_, &NG__UpdateType_ngRAN__RCU_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UpdateType_smsRequested_xer_ = { {"smsRequested>\n", "smsRequested>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UpdateType_smsRequested_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UpdateType_smsRequested_descr_ = { "@NG_NAS_TypeDefs.NG_UpdateType.smsRequested", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__UpdateType_smsRequested_xer_, &BITSTRING_json_, &NG__UpdateType_smsRequested_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__UpdateType +const TTCN_Typedescriptor_t NG__UpdateType_descr_ = { "@NG_NAS_TypeDefs.NG_UpdateType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UpdateType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UpdateType_iei_oer_ext_arr_[0] = {}; +const int NG__UpdateType_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UpdateType_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UpdateType_iei_oer_ext_arr_, 0, NG__UpdateType_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__UpdateType_iei_descr_ = { "@NG_NAS_TypeDefs.NG_UpdateType.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UpdateType_iei_xer_, &OCTETSTRING_json_, &NG__UpdateType_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UpdateType_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UpdateType_iel_oer_ext_arr_[0] = {}; +const int NG__UpdateType_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UpdateType_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UpdateType_iel_oer_ext_arr_, 0, NG__UpdateType_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__UpdateType_iel_descr_ = { "@NG_NAS_TypeDefs.NG_UpdateType.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UpdateType_iel_xer_, &OCTETSTRING_json_, &NG__UpdateType_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& NASMessageContainer_descr_ = NAS__CommonTypeDefs::ReplayedNASMessageContainer_descr_; +// No XER for MappedNSSAI_s__NSSAI +const TTCN_Typedescriptor_t MappedNSSAI_s__NSSAI_descr_ = { "@NG_NAS_TypeDefs.MappedNSSAI.s_NSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &Mapped__S__NSSAIValue_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Mapped__S__NSSAIValue_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Mapped__S__NSSAIValue_iel_oer_ext_arr_[0] = {}; +const int Mapped__S__NSSAIValue_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Mapped__S__NSSAIValue_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Mapped__S__NSSAIValue_iel_oer_ext_arr_, 0, Mapped__S__NSSAIValue_iel_oer_p_}; +const TTCN_Typedescriptor_t Mapped__S__NSSAIValue_iel_descr_ = { "@NG_NAS_TypeDefs.Mapped_S_NSSAIValue.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Mapped__S__NSSAIValue_iel_xer_, &OCTETSTRING_json_, &Mapped__S__NSSAIValue_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Mapped__S__NSSAIValue_sst_xer_ = { {"sst>\n", "sst>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Mapped__S__NSSAIValue_sst_oer_ext_arr_[0] = {}; +const int Mapped__S__NSSAIValue_sst_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Mapped__S__NSSAIValue_sst_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Mapped__S__NSSAIValue_sst_oer_ext_arr_, 0, Mapped__S__NSSAIValue_sst_oer_p_}; +const TTCN_Typedescriptor_t Mapped__S__NSSAIValue_sst_descr_ = { "@NG_NAS_TypeDefs.Mapped_S_NSSAIValue.sst", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Mapped__S__NSSAIValue_sst_xer_, &OCTETSTRING_json_, &Mapped__S__NSSAIValue_sst_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Mapped__S__NSSAIValue +const TTCN_Typedescriptor_t Mapped__S__NSSAIValue_descr_ = { "@NG_NAS_TypeDefs.Mapped_S_NSSAIValue", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Mapped__S__NSSAIValue_sd_xer_ = { {"sd>\n", "sd>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Mapped__S__NSSAIValue_sd_oer_ext_arr_[0] = {}; +const int Mapped__S__NSSAIValue_sd_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Mapped__S__NSSAIValue_sd_oer_ = { -1, TRUE, 3, FALSE, 0, 0, Mapped__S__NSSAIValue_sd_oer_ext_arr_, 0, Mapped__S__NSSAIValue_sd_oer_p_}; +const TTCN_Typedescriptor_t Mapped__S__NSSAIValue_sd_descr_ = { "@NG_NAS_TypeDefs.Mapped_S_NSSAIValue.sd", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &Mapped__S__NSSAIValue_sd_xer_, &OCTETSTRING_json_, &Mapped__S__NSSAIValue_sd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MappedNSSAI +const TTCN_Typedescriptor_t MappedNSSAI_descr_ = { "@NG_NAS_TypeDefs.MappedNSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedNSSAI_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MappedNSSAI_iei_oer_ext_arr_[0] = {}; +const int MappedNSSAI_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MappedNSSAI_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MappedNSSAI_iei_oer_ext_arr_, 0, MappedNSSAI_iei_oer_p_}; +const TTCN_Typedescriptor_t MappedNSSAI_iei_descr_ = { "@NG_NAS_TypeDefs.MappedNSSAI.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MappedNSSAI_iei_xer_, &OCTETSTRING_json_, &MappedNSSAI_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedNSSAI_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MappedNSSAI_iel_oer_ext_arr_[0] = {}; +const int MappedNSSAI_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MappedNSSAI_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MappedNSSAI_iel_oer_ext_arr_, 0, MappedNSSAI_iel_oer_p_}; +const TTCN_Typedescriptor_t MappedNSSAI_iel_descr_ = { "@NG_NAS_TypeDefs.MappedNSSAI.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MappedNSSAI_iel_xer_, &OCTETSTRING_json_, &MappedNSSAI_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AddInfoRequest_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AddInfoRequest_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AddInfoRequest_spareBits_descr_ = { "@NG_NAS_TypeDefs.AddInfoRequest.spareBits", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &AddInfoRequest_spareBits_xer_, &BITSTRING_json_, &AddInfoRequest_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AddInfoRequest_cipherKey_xer_ = { {"cipherKey>\n", "cipherKey>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AddInfoRequest_cipherKey_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AddInfoRequest_cipherKey_descr_ = { "@NG_NAS_TypeDefs.AddInfoRequest.cipherKey", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AddInfoRequest_cipherKey_xer_, &BITSTRING_json_, &AddInfoRequest_cipherKey_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AddInfoRequest +const TTCN_Typedescriptor_t AddInfoRequest_descr_ = { "@NG_NAS_TypeDefs.AddInfoRequest", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AddInfoRequest_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AddInfoRequest_iei_oer_ext_arr_[0] = {}; +const int AddInfoRequest_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AddInfoRequest_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AddInfoRequest_iei_oer_ext_arr_, 0, AddInfoRequest_iei_oer_p_}; +const TTCN_Typedescriptor_t AddInfoRequest_iei_descr_ = { "@NG_NAS_TypeDefs.AddInfoRequest.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AddInfoRequest_iei_xer_, &OCTETSTRING_json_, &AddInfoRequest_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AddInfoRequest_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AddInfoRequest_iel_oer_ext_arr_[0] = {}; +const int AddInfoRequest_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AddInfoRequest_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AddInfoRequest_iel_oer_ext_arr_, 0, AddInfoRequest_iel_oer_p_}; +const TTCN_Typedescriptor_t AddInfoRequest_iel_descr_ = { "@NG_NAS_TypeDefs.AddInfoRequest.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AddInfoRequest_iel_xer_, &OCTETSTRING_json_, &AddInfoRequest_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N5GCInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t N5GCInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t N5GCInd_spare_descr_ = { "@NG_NAS_TypeDefs.N5GCInd.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &N5GCInd_spare_xer_, &BITSTRING_json_, &N5GCInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N5GCInd_ngReg_xer_ = { {"ngReg>\n", "ngReg>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t N5GCInd_ngReg_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t N5GCInd_ngReg_descr_ = { "@NG_NAS_TypeDefs.N5GCInd.ngReg", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &N5GCInd_ngReg_xer_, &BITSTRING_json_, &N5GCInd_ngReg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for N5GCInd +const TTCN_Typedescriptor_t N5GCInd_descr_ = { "@NG_NAS_TypeDefs.N5GCInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t N5GCInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t N5GCInd_iei_descr_ = { "@NG_NAS_TypeDefs.N5GCInd.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &N5GCInd_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& NB__N1ModeDRXParams_descr_ = NAS__CommonTypeDefs::DRXParamCommon_descr_; +const XERdescriptor_t NG__PagingRestriction_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PagingRestriction_iel_oer_ext_arr_[0] = {}; +const int NG__PagingRestriction_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PagingRestriction_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PagingRestriction_iel_oer_ext_arr_, 0, NG__PagingRestriction_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__PagingRestriction_iel_descr_ = { "@NG_NAS_TypeDefs.NG_PagingRestriction.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PagingRestriction_iel_xer_, &OCTETSTRING_json_, &NG__PagingRestriction_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PagingRestriction_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PagingRestriction_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PagingRestriction_spareBits_descr_ = { "@NG_NAS_TypeDefs.NG_PagingRestriction.spareBits", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__PagingRestriction_spareBits_xer_, &BITSTRING_json_, &NG__PagingRestriction_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PagingRestriction_typeOfRestriction_xer_ = { {"typeOfRestriction>\n", "typeOfRestriction>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PagingRestriction_typeOfRestriction_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PagingRestriction_typeOfRestriction_descr_ = { "@NG_NAS_TypeDefs.NG_PagingRestriction.typeOfRestriction", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__PagingRestriction_typeOfRestriction_xer_, &BITSTRING_json_, &NG__PagingRestriction_typeOfRestriction_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PagingRestriction +const TTCN_Typedescriptor_t NG__PagingRestriction_descr_ = { "@NG_NAS_TypeDefs.NG_PagingRestriction", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PagingRestriction_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PagingRestriction_iei_oer_ext_arr_[0] = {}; +const int NG__PagingRestriction_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PagingRestriction_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PagingRestriction_iei_oer_ext_arr_, 0, NG__PagingRestriction_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__PagingRestriction_iei_descr_ = { "@NG_NAS_TypeDefs.NG_PagingRestriction.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PagingRestriction_iei_xer_, &OCTETSTRING_json_, &NG__PagingRestriction_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PagingRestriction_psi7__0_xer_ = { {"psi7_0>\n", "psi7_0>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PagingRestriction_psi7__0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PagingRestriction_psi7__0_descr_ = { "@NG_NAS_TypeDefs.NG_PagingRestriction.psi7_0", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PagingRestriction_psi7__0_xer_, &BITSTRING_json_, &NG__PagingRestriction_psi7__0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PagingRestriction_psi15__8_xer_ = { {"psi15_8>\n", "psi15_8>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PagingRestriction_psi15__8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PagingRestriction_psi15__8_descr_ = { "@NG_NAS_TypeDefs.NG_PagingRestriction.psi15_8", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PagingRestriction_psi15__8_xer_, &BITSTRING_json_, &NG__PagingRestriction_psi15__8_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PagingRestriction_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PagingRestriction_spare_oer_ext_arr_[0] = {}; +const int NG__PagingRestriction_spare_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PagingRestriction_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__PagingRestriction_spare_oer_ext_arr_, 0, NG__PagingRestriction_spare_oer_p_}; +const TTCN_Typedescriptor_t NG__PagingRestriction_spare_descr_ = { "@NG_NAS_TypeDefs.NG_PagingRestriction.spare", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__PagingRestriction_spare_xer_, &OCTETSTRING_json_, &NG__PagingRestriction_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ServiceLvlAAParamList +const TTCN_Typedescriptor_t ServiceLvlAAParamList_descr_ = { "@NG_NAS_TypeDefs.ServiceLvlAAParamList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &ServiceLvlAAParam_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ServiceLvlAAParam +const TTCN_Typedescriptor_t ServiceLvlAAParam_descr_ = { "@NG_NAS_TypeDefs.ServiceLvlAAParam", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t SL__AA__DeviceId_iei_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t SL__AA__DeviceId_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__DeviceId_iei_oer_ext_arr_[0] = {}; +const int SL__AA__DeviceId_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__DeviceId_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__DeviceId_iei_oer_ext_arr_, 0, SL__AA__DeviceId_iei_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__DeviceId_iei_descr_ = { "@NG_NAS_TypeDefs.SL_AA_DeviceId.iei", &OCTETSTRING_ber_, &SL__AA__DeviceId_iei_raw_, &OCTETSTRING_text_, &SL__AA__DeviceId_iei_xer_, &OCTETSTRING_json_, &SL__AA__DeviceId_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__DeviceId_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__DeviceId_iel_oer_ext_arr_[0] = {}; +const int SL__AA__DeviceId_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__DeviceId_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__DeviceId_iel_oer_ext_arr_, 0, SL__AA__DeviceId_iel_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__DeviceId_iel_descr_ = { "@NG_NAS_TypeDefs.SL_AA_DeviceId.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SL__AA__DeviceId_iel_xer_, &OCTETSTRING_json_, &SL__AA__DeviceId_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__DeviceId_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__DeviceId_id_oer_ext_arr_[0] = {}; +const int SL__AA__DeviceId_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__DeviceId_id_oer_ = { -1, TRUE, -1, FALSE, 0, 0, SL__AA__DeviceId_id_oer_ext_arr_, 0, SL__AA__DeviceId_id_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__DeviceId_id_descr_ = { "@NG_NAS_TypeDefs.SL_AA_DeviceId.id", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &SL__AA__DeviceId_id_xer_, &OCTETSTRING_json_, &SL__AA__DeviceId_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SL__AA__DeviceId +const TTCN_Typedescriptor_t SL__AA__DeviceId_descr_ = { "@NG_NAS_TypeDefs.SL_AA_DeviceId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t SL__AA__ServerAddr_iei_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t SL__AA__ServerAddr_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__ServerAddr_iei_oer_ext_arr_[0] = {}; +const int SL__AA__ServerAddr_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__ServerAddr_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__ServerAddr_iei_oer_ext_arr_, 0, SL__AA__ServerAddr_iei_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__ServerAddr_iei_descr_ = { "@NG_NAS_TypeDefs.SL_AA_ServerAddr.iei", &OCTETSTRING_ber_, &SL__AA__ServerAddr_iei_raw_, &OCTETSTRING_text_, &SL__AA__ServerAddr_iei_xer_, &OCTETSTRING_json_, &SL__AA__ServerAddr_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__ServerAddr_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__ServerAddr_iel_oer_ext_arr_[0] = {}; +const int SL__AA__ServerAddr_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__ServerAddr_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__ServerAddr_iel_oer_ext_arr_, 0, SL__AA__ServerAddr_iel_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__ServerAddr_iel_descr_ = { "@NG_NAS_TypeDefs.SL_AA_ServerAddr.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SL__AA__ServerAddr_iel_xer_, &OCTETSTRING_json_, &SL__AA__ServerAddr_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__ServerAddr_addrType_xer_ = { {"addrType>\n", "addrType>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__ServerAddr_addrType_oer_ext_arr_[0] = {}; +const int SL__AA__ServerAddr_addrType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__ServerAddr_addrType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__ServerAddr_addrType_oer_ext_arr_, 0, SL__AA__ServerAddr_addrType_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__ServerAddr_addrType_descr_ = { "@NG_NAS_TypeDefs.SL_AA_ServerAddr.addrType", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SL__AA__ServerAddr_addrType_xer_, &OCTETSTRING_json_, &SL__AA__ServerAddr_addrType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__ServerAddr_addr_xer_ = { {"addr>\n", "addr>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__ServerAddr_addr_oer_ext_arr_[0] = {}; +const int SL__AA__ServerAddr_addr_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__ServerAddr_addr_oer_ = { -1, TRUE, -1, FALSE, 0, 0, SL__AA__ServerAddr_addr_oer_ext_arr_, 0, SL__AA__ServerAddr_addr_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__ServerAddr_addr_descr_ = { "@NG_NAS_TypeDefs.SL_AA_ServerAddr.addr", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &SL__AA__ServerAddr_addr_xer_, &OCTETSTRING_json_, &SL__AA__ServerAddr_addr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SL__AA__ServerAddr +const TTCN_Typedescriptor_t SL__AA__ServerAddr_descr_ = { "@NG_NAS_TypeDefs.SL_AA_ServerAddr", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t SL__AA__Response_iei_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t SL__AA__Response_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__Response_iei_oer_ext_arr_[0] = {}; +const int SL__AA__Response_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__Response_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__Response_iei_oer_ext_arr_, 0, SL__AA__Response_iei_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__Response_iei_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Response.iei", &OCTETSTRING_ber_, &SL__AA__Response_iei_raw_, &OCTETSTRING_text_, &SL__AA__Response_iei_xer_, &OCTETSTRING_json_, &SL__AA__Response_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__Response_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__Response_iel_oer_ext_arr_[0] = {}; +const int SL__AA__Response_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__Response_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__Response_iel_oer_ext_arr_, 0, SL__AA__Response_iel_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__Response_iel_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Response.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SL__AA__Response_iel_xer_, &OCTETSTRING_json_, &SL__AA__Response_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__Response_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SL__AA__Response_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SL__AA__Response_spare_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Response.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SL__AA__Response_spare_xer_, &BITSTRING_json_, &SL__AA__Response_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__Response_c2ar_xer_ = { {"c2ar>\n", "c2ar>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SL__AA__Response_c2ar_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SL__AA__Response_c2ar_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Response.c2ar", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &SL__AA__Response_c2ar_xer_, &BITSTRING_json_, &SL__AA__Response_c2ar_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__Response_slar_xer_ = { {"slar>\n", "slar>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SL__AA__Response_slar_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SL__AA__Response_slar_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Response.slar", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &SL__AA__Response_slar_xer_, &BITSTRING_json_, &SL__AA__Response_slar_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SL__AA__Response +const TTCN_Typedescriptor_t SL__AA__Response_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Response", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t SL__AA__PayloadType_iei_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t SL__AA__PayloadType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__PayloadType_iei_oer_ext_arr_[0] = {}; +const int SL__AA__PayloadType_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__PayloadType_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__PayloadType_iei_oer_ext_arr_, 0, SL__AA__PayloadType_iei_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__PayloadType_iei_descr_ = { "@NG_NAS_TypeDefs.SL_AA_PayloadType.iei", &OCTETSTRING_ber_, &SL__AA__PayloadType_iei_raw_, &OCTETSTRING_text_, &SL__AA__PayloadType_iei_xer_, &OCTETSTRING_json_, &SL__AA__PayloadType_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__PayloadType_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__PayloadType_iel_oer_ext_arr_[0] = {}; +const int SL__AA__PayloadType_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__PayloadType_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__PayloadType_iel_oer_ext_arr_, 0, SL__AA__PayloadType_iel_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__PayloadType_iel_descr_ = { "@NG_NAS_TypeDefs.SL_AA_PayloadType.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SL__AA__PayloadType_iel_xer_, &OCTETSTRING_json_, &SL__AA__PayloadType_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__PayloadType_payloadType_xer_ = { {"payloadType>\n", "payloadType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__PayloadType_payloadType_oer_ext_arr_[0] = {}; +const int SL__AA__PayloadType_payloadType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__PayloadType_payloadType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__PayloadType_payloadType_oer_ext_arr_, 0, SL__AA__PayloadType_payloadType_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__PayloadType_payloadType_descr_ = { "@NG_NAS_TypeDefs.SL_AA_PayloadType.payloadType", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SL__AA__PayloadType_payloadType_xer_, &OCTETSTRING_json_, &SL__AA__PayloadType_payloadType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SL__AA__PayloadType +const TTCN_Typedescriptor_t SL__AA__PayloadType_descr_ = { "@NG_NAS_TypeDefs.SL_AA_PayloadType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t SL__AA__Payload_iei_raw_ = {8,SG_NO,ORDER_LSB,ORDER_MSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t SL__AA__Payload_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__Payload_iei_oer_ext_arr_[0] = {}; +const int SL__AA__Payload_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__Payload_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__Payload_iei_oer_ext_arr_, 0, SL__AA__Payload_iei_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__Payload_iei_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Payload.iei", &OCTETSTRING_ber_, &SL__AA__Payload_iei_raw_, &OCTETSTRING_text_, &SL__AA__Payload_iei_xer_, &OCTETSTRING_json_, &SL__AA__Payload_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__Payload_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__Payload_iel_oer_ext_arr_[0] = {}; +const int SL__AA__Payload_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__Payload_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, SL__AA__Payload_iel_oer_ext_arr_, 0, SL__AA__Payload_iel_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__Payload_iel_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Payload.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &SL__AA__Payload_iel_xer_, &OCTETSTRING_json_, &SL__AA__Payload_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__Payload_payload_xer_ = { {"payload>\n", "payload>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__Payload_payload_oer_ext_arr_[0] = {}; +const int SL__AA__Payload_payload_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__Payload_payload_oer_ = { -1, TRUE, -1, FALSE, 0, 0, SL__AA__Payload_payload_oer_ext_arr_, 0, SL__AA__Payload_payload_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__Payload_payload_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Payload.payload", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &SL__AA__Payload_payload_xer_, &OCTETSTRING_json_, &SL__AA__Payload_payload_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SL__AA__Payload +const TTCN_Typedescriptor_t SL__AA__Payload_descr_ = { "@NG_NAS_TypeDefs.SL_AA_Payload", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t SL__AA__PendingInd_iei_raw_ = {4,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t SL__AA__PendingInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t SL__AA__PendingInd_iei_descr_ = { "@NG_NAS_TypeDefs.SL_AA_PendingInd.iei", NULL, &SL__AA__PendingInd_iei_raw_, NULL, &SL__AA__PendingInd_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__PendingInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SL__AA__PendingInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SL__AA__PendingInd_spare_descr_ = { "@NG_NAS_TypeDefs.SL_AA_PendingInd.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &SL__AA__PendingInd_spare_xer_, &BITSTRING_json_, &SL__AA__PendingInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__PendingInd_slapi_xer_ = { {"slapi>\n", "slapi>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SL__AA__PendingInd_slapi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SL__AA__PendingInd_slapi_descr_ = { "@NG_NAS_TypeDefs.SL_AA_PendingInd.slapi", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SL__AA__PendingInd_slapi_xer_, &BITSTRING_json_, &SL__AA__PendingInd_slapi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SL__AA__PendingInd +const TTCN_Typedescriptor_t SL__AA__PendingInd_descr_ = { "@NG_NAS_TypeDefs.SL_AA_PendingInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__StatusInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__StatusInd_iei_oer_ext_arr_[0] = {}; +const int SL__AA__StatusInd_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__StatusInd_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__StatusInd_iei_oer_ext_arr_, 0, SL__AA__StatusInd_iei_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__StatusInd_iei_descr_ = { "@NG_NAS_TypeDefs.SL_AA_StatusInd.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SL__AA__StatusInd_iei_xer_, &OCTETSTRING_json_, &SL__AA__StatusInd_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__StatusInd_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SL__AA__StatusInd_iel_oer_ext_arr_[0] = {}; +const int SL__AA__StatusInd_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SL__AA__StatusInd_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SL__AA__StatusInd_iel_oer_ext_arr_, 0, SL__AA__StatusInd_iel_oer_p_}; +const TTCN_Typedescriptor_t SL__AA__StatusInd_iel_descr_ = { "@NG_NAS_TypeDefs.SL_AA_StatusInd.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SL__AA__StatusInd_iel_xer_, &OCTETSTRING_json_, &SL__AA__StatusInd_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__StatusInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SL__AA__StatusInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SL__AA__StatusInd_spare_descr_ = { "@NG_NAS_TypeDefs.SL_AA_StatusInd.spare", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &SL__AA__StatusInd_spare_xer_, &BITSTRING_json_, &SL__AA__StatusInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SL__AA__StatusInd_uas_xer_ = { {"uas>\n", "uas>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SL__AA__StatusInd_uas_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SL__AA__StatusInd_uas_descr_ = { "@NG_NAS_TypeDefs.SL_AA_StatusInd.uas", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SL__AA__StatusInd_uas_xer_, &BITSTRING_json_, &SL__AA__StatusInd_uas_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SL__AA__StatusInd +const TTCN_Typedescriptor_t SL__AA__StatusInd_descr_ = { "@NG_NAS_TypeDefs.SL_AA_StatusInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ServiceLvlAAContainer +const TTCN_Typedescriptor_t ServiceLvlAAContainer_descr_ = { "@NG_NAS_TypeDefs.ServiceLvlAAContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ServiceLvlAAContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ServiceLvlAAContainer_iei_oer_ext_arr_[0] = {}; +const int ServiceLvlAAContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ServiceLvlAAContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ServiceLvlAAContainer_iei_oer_ext_arr_, 0, ServiceLvlAAContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t ServiceLvlAAContainer_iei_descr_ = { "@NG_NAS_TypeDefs.ServiceLvlAAContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ServiceLvlAAContainer_iei_xer_, &OCTETSTRING_json_, &ServiceLvlAAContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ServiceLvlAAContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ServiceLvlAAContainer_iel_oer_ext_arr_[0] = {}; +const int ServiceLvlAAContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ServiceLvlAAContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ServiceLvlAAContainer_iel_oer_ext_arr_, 0, ServiceLvlAAContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t ServiceLvlAAContainer_iel_descr_ = { "@NG_NAS_TypeDefs.ServiceLvlAAContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ServiceLvlAAContainer_iel_xer_, &OCTETSTRING_json_, &ServiceLvlAAContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NID_digit1_xer_ = { {"digit1>\n", "digit1>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NID_digit1_descr_ = { "@NG_NAS_TypeDefs.NID.digit1", NULL, &CommonDefs::H1__Type_raw_, NULL, &NID_digit1_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NID_assignmentMode_xer_ = { {"assignmentMode>\n", "assignmentMode>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NID_assignmentMode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NID_assignmentMode_descr_ = { "@NG_NAS_TypeDefs.NID.assignmentMode", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NID_assignmentMode_xer_, &BITSTRING_json_, &NID_assignmentMode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t NID_digits2__9_raw_ = {32,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t NID_digits2__9_xer_ = { {"digits2_9>\n", "digits2_9>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NID_digits2__9_descr_ = { "@NG_NAS_TypeDefs.NID.digits2_9", NULL, &NID_digits2__9_raw_, NULL, &NID_digits2__9_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NID_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NID_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NID_spare_descr_ = { "@NG_NAS_TypeDefs.NID.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NID_spare_xer_, &BITSTRING_json_, &NID_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NID_digit10_xer_ = { {"digit10>\n", "digit10>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NID_digit10_descr_ = { "@NG_NAS_TypeDefs.NID.digit10", NULL, &CommonDefs::H1__Type_raw_, NULL, &NID_digit10_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NID +const TTCN_Typedescriptor_t NID_descr_ = { "@NG_NAS_TypeDefs.NID", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NID_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NID_iei_oer_ext_arr_[0] = {}; +const int NID_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NID_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NID_iei_oer_ext_arr_, 0, NID_iei_oer_p_}; +const TTCN_Typedescriptor_t NID_iei_descr_ = { "@NG_NAS_TypeDefs.NID.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NID_iei_xer_, &OCTETSTRING_json_, &NID_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NID_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NID_iel_oer_ext_arr_[0] = {}; +const int NID_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NID_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NID_iel_oer_ext_arr_, 0, NID_iel_oer_p_}; +const TTCN_Typedescriptor_t NID_iel_descr_ = { "@NG_NAS_TypeDefs.NID.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NID_iel_xer_, &OCTETSTRING_json_, &NID_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PEIPS__AssistInfo_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PEIPS__AssistInfo_iei_oer_ext_arr_[0] = {}; +const int PEIPS__AssistInfo_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PEIPS__AssistInfo_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PEIPS__AssistInfo_iei_oer_ext_arr_, 0, PEIPS__AssistInfo_iei_oer_p_}; +const TTCN_Typedescriptor_t PEIPS__AssistInfo_iei_descr_ = { "@NG_NAS_TypeDefs.PEIPS_AssistInfo.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PEIPS__AssistInfo_iei_xer_, &OCTETSTRING_json_, &PEIPS__AssistInfo_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PEIPS__AssistInfo_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PEIPS__AssistInfo_iel_oer_ext_arr_[0] = {}; +const int PEIPS__AssistInfo_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PEIPS__AssistInfo_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PEIPS__AssistInfo_iel_oer_ext_arr_, 0, PEIPS__AssistInfo_iel_oer_p_}; +const TTCN_Typedescriptor_t PEIPS__AssistInfo_iel_descr_ = { "@NG_NAS_TypeDefs.PEIPS_AssistInfo.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PEIPS__AssistInfo_iel_xer_, &OCTETSTRING_json_, &PEIPS__AssistInfo_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PEIPS__AssistIEList +const TTCN_Typedescriptor_t PEIPS__AssistIEList_descr_ = { "@NG_NAS_TypeDefs.PEIPS_AssistIEList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &PEIPS__AssistIE_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PEIPS__AssistIE_typeOfInfo_xer_ = { {"typeOfInfo>\n", "typeOfInfo>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PEIPS__AssistIE_typeOfInfo_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PEIPS__AssistIE_typeOfInfo_descr_ = { "@NG_NAS_TypeDefs.PEIPS_AssistIE.typeOfInfo", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &PEIPS__AssistIE_typeOfInfo_xer_, &BITSTRING_json_, &PEIPS__AssistIE_typeOfInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PEIPS__AssistIE_peipsValue_xer_ = { {"peipsValue>\n", "peipsValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PEIPS__AssistIE_peipsValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PEIPS__AssistIE_peipsValue_descr_ = { "@NG_NAS_TypeDefs.PEIPS_AssistIE.peipsValue", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &PEIPS__AssistIE_peipsValue_xer_, &BITSTRING_json_, &PEIPS__AssistIE_peipsValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PEIPS__AssistIE +const TTCN_Typedescriptor_t PEIPS__AssistIE_descr_ = { "@NG_NAS_TypeDefs.PEIPS_AssistIE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PEIPS__AssistInfo +const TTCN_Typedescriptor_t PEIPS__AssistInfo_descr_ = { "@NG_NAS_TypeDefs.PEIPS_AssistInfo", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__REGISTRATION__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__REGISTRATION__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__ACCEPT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_ACCEPT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__REGISTRATION__ACCEPT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__ACCEPT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__ACCEPT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_ACCEPT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__REGISTRATION__ACCEPT_securityHeaderType_xer_, &BITSTRING_json_, &NG__REGISTRATION__ACCEPT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__REGISTRATION__ACCEPT_messageType_xer_, &BITSTRING_json_, &NG__REGISTRATION__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationResult_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RegistrationResult_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RegistrationResult_spare_descr_ = { "@NG_NAS_TypeDefs.RegistrationResult.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &RegistrationResult_spare_xer_, &BITSTRING_json_, &RegistrationResult_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationResult_disasterRoamingResult_xer_ = { {"disasterRoamingResult>\n", "disasterRoamingResult>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RegistrationResult_disasterRoamingResult_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RegistrationResult_disasterRoamingResult_descr_ = { "@NG_NAS_TypeDefs.RegistrationResult.disasterRoamingResult", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &RegistrationResult_disasterRoamingResult_xer_, &BITSTRING_json_, &RegistrationResult_disasterRoamingResult_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationResult_emergencyRegistered_xer_ = { {"emergencyRegistered>\n", "emergencyRegistered>\n"}, {21, 21}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RegistrationResult_emergencyRegistered_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RegistrationResult_emergencyRegistered_descr_ = { "@NG_NAS_TypeDefs.RegistrationResult.emergencyRegistered", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &RegistrationResult_emergencyRegistered_xer_, &BITSTRING_json_, &RegistrationResult_emergencyRegistered_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationResult_nssaaPerformed_xer_ = { {"nssaaPerformed>\n", "nssaaPerformed>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RegistrationResult_nssaaPerformed_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RegistrationResult_nssaaPerformed_descr_ = { "@NG_NAS_TypeDefs.RegistrationResult.nssaaPerformed", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &RegistrationResult_nssaaPerformed_xer_, &BITSTRING_json_, &RegistrationResult_nssaaPerformed_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationResult_smsAllowed_xer_ = { {"smsAllowed>\n", "smsAllowed>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RegistrationResult_smsAllowed_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RegistrationResult_smsAllowed_descr_ = { "@NG_NAS_TypeDefs.RegistrationResult.smsAllowed", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &RegistrationResult_smsAllowed_xer_, &BITSTRING_json_, &RegistrationResult_smsAllowed_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationResult_resultValue_xer_ = { {"resultValue>\n", "resultValue>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RegistrationResult_resultValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RegistrationResult_resultValue_descr_ = { "@NG_NAS_TypeDefs.RegistrationResult.resultValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &RegistrationResult_resultValue_xer_, &BITSTRING_json_, &RegistrationResult_resultValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RegistrationResult +const TTCN_Typedescriptor_t RegistrationResult_descr_ = { "@NG_NAS_TypeDefs.RegistrationResult", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationResult_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RegistrationResult_iel_oer_ext_arr_[0] = {}; +const int RegistrationResult_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RegistrationResult_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RegistrationResult_iel_oer_ext_arr_, 0, RegistrationResult_iel_oer_p_}; +const TTCN_Typedescriptor_t RegistrationResult_iel_descr_ = { "@NG_NAS_TypeDefs.RegistrationResult.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RegistrationResult_iel_xer_, &OCTETSTRING_json_, &RegistrationResult_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__REGISTRATION__ACCEPT +const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__TrackingAreaIdList__LV_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__TrackingAreaIdList__LV_iel_oer_ext_arr_[0] = {}; +const int NG__TrackingAreaIdList__LV_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__TrackingAreaIdList__LV_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__TrackingAreaIdList__LV_iel_oer_ext_arr_, 0, NG__TrackingAreaIdList__LV_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__TrackingAreaIdList__LV_iel_descr_ = { "@NG_NAS_TypeDefs.NG_TrackingAreaIdList_LV.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__TrackingAreaIdList__LV_iel_xer_, &OCTETSTRING_json_, &NG__TrackingAreaIdList__LV_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__TrackingAreaIdList__LV_listOfPartialTais +const TTCN_Typedescriptor_t NG__TrackingAreaIdList__LV_listOfPartialTais_descr_ = { "@NG_NAS_TypeDefs.NG_TrackingAreaIdList_LV.listOfPartialTais", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__ListOfPartialTaiList_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__ListOfPartialTaiList_allowedType_xer_ = { {"allowedType>\n", "allowedType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__ListOfPartialTaiList_allowedType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__ListOfPartialTaiList_allowedType_descr_ = { "@NG_NAS_TypeDefs.NG_ListOfPartialTaiList.allowedType", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__ListOfPartialTaiList_allowedType_xer_, &BITSTRING_json_, &NG__ListOfPartialTaiList_allowedType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__ListOfPartialTaiList_typeOfList_xer_ = { {"typeOfList>\n", "typeOfList>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__ListOfPartialTaiList_typeOfList_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__ListOfPartialTaiList_typeOfList_descr_ = { "@NG_NAS_TypeDefs.NG_ListOfPartialTaiList.typeOfList", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__ListOfPartialTaiList_typeOfList_xer_, &BITSTRING_json_, &NG__ListOfPartialTaiList_typeOfList_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__ListOfPartialTaiList_numberOfElements_xer_ = { {"numberOfElements>\n", "numberOfElements>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__ListOfPartialTaiList_numberOfElements_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__ListOfPartialTaiList_numberOfElements_descr_ = { "@NG_NAS_TypeDefs.NG_ListOfPartialTaiList.numberOfElements", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &NG__ListOfPartialTaiList_numberOfElements_xer_, &BITSTRING_json_, &NG__ListOfPartialTaiList_numberOfElements_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PartialTaiType +const TTCN_Typedescriptor_t NG__PartialTaiType_descr_ = { "@NG_NAS_TypeDefs.NG_PartialTaiType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__Type0List +const TTCN_Typedescriptor_t NG__Type0List_descr_ = { "@NG_NAS_TypeDefs.NG_Type0List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__Type0Element_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__Type0Element_plmnId_xer_ = { {"plmnId>\n", "plmnId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__Type0Element_plmnId_oer_ext_arr_[0] = {}; +const int NG__Type0Element_plmnId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__Type0Element_plmnId_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NG__Type0Element_plmnId_oer_ext_arr_, 0, NG__Type0Element_plmnId_oer_p_}; +const TTCN_Typedescriptor_t NG__Type0Element_plmnId_descr_ = { "@NG_NAS_TypeDefs.NG_Type0Element.plmnId", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NG__Type0Element_plmnId_xer_, &OCTETSTRING_json_, &NG__Type0Element_plmnId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__TacList +const TTCN_Typedescriptor_t NG__NAS__TacList_descr_ = { "@NG_NAS_TypeDefs.NG_NAS_TacList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommonDefs::O3__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__TacList_0_xer_ = { {"O3_Type>\n", "O3_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NAS__TacList_0_oer_ext_arr_[0] = {}; +const int NG__NAS__TacList_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NAS__TacList_0_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NG__NAS__TacList_0_oer_ext_arr_, 0, NG__NAS__TacList_0_oer_p_}; +const TTCN_Typedescriptor_t NG__NAS__TacList_0_descr_ = { "@NG_NAS_TypeDefs.NG_NAS_TacList.", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NG__NAS__TacList_0_xer_, &OCTETSTRING_json_, &NG__NAS__TacList_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__Type0Element +const TTCN_Typedescriptor_t NG__Type0Element_descr_ = { "@NG_NAS_TypeDefs.NG_Type0Element", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__Type1List +const TTCN_Typedescriptor_t NG__Type1List_descr_ = { "@NG_NAS_TypeDefs.NG_Type1List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__Type1Element_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PartialTai_plmnId_xer_ = { {"plmnId>\n", "plmnId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PartialTai_plmnId_oer_ext_arr_[0] = {}; +const int NG__PartialTai_plmnId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PartialTai_plmnId_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NG__PartialTai_plmnId_oer_ext_arr_, 0, NG__PartialTai_plmnId_oer_p_}; +const TTCN_Typedescriptor_t NG__PartialTai_plmnId_descr_ = { "@NG_NAS_TypeDefs.NG_PartialTai.plmnId", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NG__PartialTai_plmnId_xer_, &OCTETSTRING_json_, &NG__PartialTai_plmnId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PartialTai_tac_xer_ = { {"tac>\n", "tac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PartialTai_tac_oer_ext_arr_[0] = {}; +const int NG__PartialTai_tac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PartialTai_tac_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NG__PartialTai_tac_oer_ext_arr_, 0, NG__PartialTai_tac_oer_p_}; +const TTCN_Typedescriptor_t NG__PartialTai_tac_descr_ = { "@NG_NAS_TypeDefs.NG_PartialTai.tac", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NG__PartialTai_tac_xer_, &OCTETSTRING_json_, &NG__PartialTai_tac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PartialTai +const TTCN_Typedescriptor_t NG__PartialTai_descr_ = { "@NG_NAS_TypeDefs.NG_PartialTai", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__Type1Element +const TTCN_Typedescriptor_t NG__Type1Element_descr_ = { "@NG_NAS_TypeDefs.NG_Type1Element", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__Type2List +const TTCN_Typedescriptor_t NG__Type2List_descr_ = { "@NG_NAS_TypeDefs.NG_Type2List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__Type2Element_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PlmnAndTacs +const TTCN_Typedescriptor_t NG__PlmnAndTacs_descr_ = { "@NG_NAS_TypeDefs.NG_PlmnAndTacs", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__PartialTai_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__Type2Element +const TTCN_Typedescriptor_t NG__Type2Element_descr_ = { "@NG_NAS_TypeDefs.NG_Type2Element", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__Type3Element_plmnId_xer_ = { {"plmnId>\n", "plmnId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__Type3Element_plmnId_oer_ext_arr_[0] = {}; +const int NG__Type3Element_plmnId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__Type3Element_plmnId_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NG__Type3Element_plmnId_oer_ext_arr_, 0, NG__Type3Element_plmnId_oer_p_}; +const TTCN_Typedescriptor_t NG__Type3Element_plmnId_descr_ = { "@NG_NAS_TypeDefs.NG_Type3Element.plmnId", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NG__Type3Element_plmnId_xer_, &OCTETSTRING_json_, &NG__Type3Element_plmnId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__Type3Element +const TTCN_Typedescriptor_t NG__Type3Element_descr_ = { "@NG_NAS_TypeDefs.NG_Type3Element", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__ListOfPartialTaiList +const TTCN_Typedescriptor_t NG__ListOfPartialTaiList_descr_ = { "@NG_NAS_TypeDefs.NG_ListOfPartialTaiList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__TrackingAreaIdList__LV +const TTCN_Typedescriptor_t NG__TrackingAreaIdList__LV_descr_ = { "@NG_NAS_TypeDefs.NG_TrackingAreaIdList_LV", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__TrackingAreaIdList +const TTCN_Typedescriptor_t NG__TrackingAreaIdList_descr_ = { "@NG_NAS_TypeDefs.NG_TrackingAreaIdList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__TrackingAreaIdList_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__TrackingAreaIdList_iei_oer_ext_arr_[0] = {}; +const int NG__TrackingAreaIdList_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__TrackingAreaIdList_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__TrackingAreaIdList_iei_oer_ext_arr_, 0, NG__TrackingAreaIdList_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__TrackingAreaIdList_iei_descr_ = { "@NG_NAS_TypeDefs.NG_TrackingAreaIdList.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__TrackingAreaIdList_iei_xer_, &OCTETSTRING_json_, &NG__TrackingAreaIdList_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RejectedNSSAI_rejectS__NSSAI +const TTCN_Typedescriptor_t RejectedNSSAI_rejectS__NSSAI_descr_ = { "@NG_NAS_TypeDefs.RejectedNSSAI.rejectS_NSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &RejectedS__NSSAI_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RejectedS__NSSAI_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RejectedS__NSSAI_len_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RejectedS__NSSAI_len_descr_ = { "@NG_NAS_TypeDefs.RejectedS_NSSAI.len", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &RejectedS__NSSAI_len_xer_, &BITSTRING_json_, &RejectedS__NSSAI_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RejectedS__NSSAI_causeValue_xer_ = { {"causeValue>\n", "causeValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t RejectedS__NSSAI_causeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t RejectedS__NSSAI_causeValue_descr_ = { "@NG_NAS_TypeDefs.RejectedS_NSSAI.causeValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &RejectedS__NSSAI_causeValue_xer_, &BITSTRING_json_, &RejectedS__NSSAI_causeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RejectedS__NSSAI_sst_xer_ = { {"sst>\n", "sst>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RejectedS__NSSAI_sst_oer_ext_arr_[0] = {}; +const int RejectedS__NSSAI_sst_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RejectedS__NSSAI_sst_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RejectedS__NSSAI_sst_oer_ext_arr_, 0, RejectedS__NSSAI_sst_oer_p_}; +const TTCN_Typedescriptor_t RejectedS__NSSAI_sst_descr_ = { "@NG_NAS_TypeDefs.RejectedS_NSSAI.sst", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RejectedS__NSSAI_sst_xer_, &OCTETSTRING_json_, &RejectedS__NSSAI_sst_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RejectedS__NSSAI +const TTCN_Typedescriptor_t RejectedS__NSSAI_descr_ = { "@NG_NAS_TypeDefs.RejectedS_NSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RejectedS__NSSAI_sd_xer_ = { {"sd>\n", "sd>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RejectedS__NSSAI_sd_oer_ext_arr_[0] = {}; +const int RejectedS__NSSAI_sd_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RejectedS__NSSAI_sd_oer_ = { -1, TRUE, 3, FALSE, 0, 0, RejectedS__NSSAI_sd_oer_ext_arr_, 0, RejectedS__NSSAI_sd_oer_p_}; +const TTCN_Typedescriptor_t RejectedS__NSSAI_sd_descr_ = { "@NG_NAS_TypeDefs.RejectedS_NSSAI.sd", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &RejectedS__NSSAI_sd_xer_, &OCTETSTRING_json_, &RejectedS__NSSAI_sd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RejectedNSSAI +const TTCN_Typedescriptor_t RejectedNSSAI_descr_ = { "@NG_NAS_TypeDefs.RejectedNSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RejectedNSSAI_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RejectedNSSAI_iei_oer_ext_arr_[0] = {}; +const int RejectedNSSAI_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RejectedNSSAI_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RejectedNSSAI_iei_oer_ext_arr_, 0, RejectedNSSAI_iei_oer_p_}; +const TTCN_Typedescriptor_t RejectedNSSAI_iei_descr_ = { "@NG_NAS_TypeDefs.RejectedNSSAI.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RejectedNSSAI_iei_xer_, &OCTETSTRING_json_, &RejectedNSSAI_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RejectedNSSAI_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RejectedNSSAI_iel_oer_ext_arr_[0] = {}; +const int RejectedNSSAI_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RejectedNSSAI_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RejectedNSSAI_iel_oer_ext_arr_, 0, RejectedNSSAI_iel_oer_p_}; +const TTCN_Typedescriptor_t RejectedNSSAI_iel_descr_ = { "@NG_NAS_TypeDefs.RejectedNSSAI.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RejectedNSSAI_iel_xer_, &OCTETSTRING_json_, &RejectedNSSAI_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_mpsi_xer_ = { {"mpsi>\n", "mpsi>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_mpsi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_mpsi_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.mpsi", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_mpsi_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_mpsi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_iwk__N26_xer_ = { {"iwk_N26>\n", "iwk_N26>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_iwk__N26_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_iwk__N26_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.iwk_N26", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_iwk__N26_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_iwk__N26_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_emf_xer_ = { {"emf>\n", "emf>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_emf_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_emf_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.emf", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__NetworkFeatureSupport_emf_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_emf_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_emc_xer_ = { {"emc>\n", "emc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_emc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_emc_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.emc", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__NetworkFeatureSupport_emc_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_emc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_imsVoPS__n3GPP_xer_ = { {"imsVoPS_n3GPP>\n", "imsVoPS_n3GPP>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_imsVoPS__n3GPP_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_imsVoPS__n3GPP_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.imsVoPS_n3GPP", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_imsVoPS__n3GPP_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_imsVoPS__n3GPP_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_imsVoPS__3GPP_xer_ = { {"imsVoPS_3GPP>\n", "imsVoPS_3GPP>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_imsVoPS__3GPP_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_imsVoPS__3GPP_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.imsVoPS_3GPP", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_imsVoPS__3GPP_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_imsVoPS__3GPP_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NetworkFeatureSupport +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NetworkFeatureSupport_iei_oer_ext_arr_[0] = {}; +const int NG__NetworkFeatureSupport_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__NetworkFeatureSupport_iei_oer_ext_arr_, 0, NG__NetworkFeatureSupport_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_iei_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__NetworkFeatureSupport_iei_xer_, &OCTETSTRING_json_, &NG__NetworkFeatureSupport_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NetworkFeatureSupport_iel_oer_ext_arr_[0] = {}; +const int NG__NetworkFeatureSupport_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__NetworkFeatureSupport_iel_oer_ext_arr_, 0, NG__NetworkFeatureSupport_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_iel_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__NetworkFeatureSupport_iel_xer_, &OCTETSTRING_json_, &NG__NetworkFeatureSupport_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_ng__UP__CIoT_xer_ = { {"ng_UP_CIoT>\n", "ng_UP_CIoT>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ng__UP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ng__UP__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.ng_UP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_ng__UP__CIoT_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_ng__UP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_ngIPHC__CP__CIoT_xer_ = { {"ngIPHC_CP_CIoT>\n", "ngIPHC_CP_CIoT>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ngIPHC__CP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ngIPHC__CP__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.ngIPHC_CP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_ngIPHC__CP__CIoT_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_ngIPHC__CP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_n3Data_xer_ = { {"n3Data>\n", "n3Data>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_n3Data_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_n3Data_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.n3Data", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_n3Data_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_n3Data_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_ng__CP__CIoT_xer_ = { {"ng_CP_CIoT>\n", "ng_CP_CIoT>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ng__CP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ng__CP__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.ng_CP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_ng__CP__CIoT_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_ng__CP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_restrictEC_xer_ = { {"restrictEC>\n", "restrictEC>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_restrictEC_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_restrictEC_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.restrictEC", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__NetworkFeatureSupport_restrictEC_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_restrictEC_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_mcsi_xer_ = { {"mcsi>\n", "mcsi>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_mcsi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_mcsi_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.mcsi", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_mcsi_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_mcsi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_emcn3_xer_ = { {"emcn3>\n", "emcn3>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_emcn3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_emcn3_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.emcn3", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_emcn3_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_emcn3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_spareBit_xer_ = { {"spareBit>\n", "spareBit>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_spareBit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_spareBit_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.spareBit", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_spareBit_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_spareBit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_pr_xer_ = { {"pr>\n", "pr>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_pr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_pr_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.pr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_pr_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_pr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_rpr_xer_ = { {"rpr>\n", "rpr>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_rpr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_rpr_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.rpr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_rpr_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_rpr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_piv_xer_ = { {"piv>\n", "piv>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_piv_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_piv_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.piv", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_piv_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_piv_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_ncr_xer_ = { {"ncr>\n", "ncr>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ncr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ncr_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.ncr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_ncr_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_ncr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_ngEHC__CP__CIoT_xer_ = { {"ngEHC_CP_CIoT>\n", "ngEHC_CP_CIoT>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ngEHC__CP__CIoT_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ngEHC__CP__CIoT_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.ngEHC_CP_CIoT", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_ngEHC__CP__CIoT_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_ngEHC__CP__CIoT_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_atsInd_xer_ = { {"atsInd>\n", "atsInd>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_atsInd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_atsInd_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.atsInd", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_atsInd_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_atsInd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NetworkFeatureSupport_ngLCS_xer_ = { {"ngLCS>\n", "ngLCS>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ngLCS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ngLCS_descr_ = { "@NG_NAS_TypeDefs.NG_NetworkFeatureSupport.ngLCS", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__NetworkFeatureSupport_ngLCS_xer_, &BITSTRING_json_, &NG__NetworkFeatureSupport_ngLCS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& PDU__SessionReactivationResult_descr_ = PDU__SessionStatus_descr_; +// No XER for PDU__SessionReactivationError_errorCause +const TTCN_Typedescriptor_t PDU__SessionReactivationError_errorCause_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionReactivationError.errorCause", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &PDU__SessionErrorCause_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionErrorCause_sessionId_xer_ = { {"sessionId>\n", "sessionId>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__SessionErrorCause_sessionId_oer_ext_arr_[0] = {}; +const int PDU__SessionErrorCause_sessionId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__SessionErrorCause_sessionId_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDU__SessionErrorCause_sessionId_oer_ext_arr_, 0, PDU__SessionErrorCause_sessionId_oer_p_}; +const TTCN_Typedescriptor_t PDU__SessionErrorCause_sessionId_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionErrorCause.sessionId", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDU__SessionErrorCause_sessionId_xer_, &OCTETSTRING_json_, &PDU__SessionErrorCause_sessionId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionErrorCause_causeValue_xer_ = { {"causeValue>\n", "causeValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__SessionErrorCause_causeValue_oer_ext_arr_[0] = {}; +const int PDU__SessionErrorCause_causeValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__SessionErrorCause_causeValue_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDU__SessionErrorCause_causeValue_oer_ext_arr_, 0, PDU__SessionErrorCause_causeValue_oer_p_}; +const TTCN_Typedescriptor_t PDU__SessionErrorCause_causeValue_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionErrorCause.causeValue", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDU__SessionErrorCause_causeValue_xer_, &OCTETSTRING_json_, &PDU__SessionErrorCause_causeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDU__SessionErrorCause +const TTCN_Typedescriptor_t PDU__SessionErrorCause_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionErrorCause", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDU__SessionReactivationError +const TTCN_Typedescriptor_t PDU__SessionReactivationError_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionReactivationError", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionReactivationError_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__SessionReactivationError_iei_oer_ext_arr_[0] = {}; +const int PDU__SessionReactivationError_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__SessionReactivationError_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDU__SessionReactivationError_iei_oer_ext_arr_, 0, PDU__SessionReactivationError_iei_oer_p_}; +const TTCN_Typedescriptor_t PDU__SessionReactivationError_iei_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionReactivationError.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDU__SessionReactivationError_iei_xer_, &OCTETSTRING_json_, &PDU__SessionReactivationError_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionReactivationError_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__SessionReactivationError_iel_oer_ext_arr_[0] = {}; +const int PDU__SessionReactivationError_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__SessionReactivationError_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, PDU__SessionReactivationError_iel_oer_ext_arr_, 0, PDU__SessionReactivationError_iel_oer_p_}; +const TTCN_Typedescriptor_t PDU__SessionReactivationError_iel_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionReactivationError.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &PDU__SessionReactivationError_iel_xer_, &OCTETSTRING_json_, &PDU__SessionReactivationError_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LADN__Info_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LADN__Info_iel_oer_ext_arr_[0] = {}; +const int LADN__Info_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LADN__Info_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, LADN__Info_iel_oer_ext_arr_, 0, LADN__Info_iel_oer_p_}; +const TTCN_Typedescriptor_t LADN__Info_iel_descr_ = { "@NG_NAS_TypeDefs.LADN_Info.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &LADN__Info_iel_xer_, &OCTETSTRING_json_, &LADN__Info_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LADN__Info_listOfLADN +const TTCN_Typedescriptor_t LADN__Info_listOfLADN_descr_ = { "@NG_NAS_TypeDefs.LADN_Info.listOfLADN", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &ListOfLADN_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ListOfLADN_dnnLength_xer_ = { {"dnnLength>\n", "dnnLength>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ListOfLADN_dnnLength_oer_ext_arr_[0] = {}; +const int ListOfLADN_dnnLength_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ListOfLADN_dnnLength_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ListOfLADN_dnnLength_oer_ext_arr_, 0, ListOfLADN_dnnLength_oer_p_}; +const TTCN_Typedescriptor_t ListOfLADN_dnnLength_descr_ = { "@NG_NAS_TypeDefs.ListOfLADN.dnnLength", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ListOfLADN_dnnLength_xer_, &OCTETSTRING_json_, &ListOfLADN_dnnLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ListOfLADN_dnnValue_xer_ = { {"dnnValue>\n", "dnnValue>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ListOfLADN_dnnValue_oer_ext_arr_[0] = {}; +const int ListOfLADN_dnnValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ListOfLADN_dnnValue_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ListOfLADN_dnnValue_oer_ext_arr_, 0, ListOfLADN_dnnValue_oer_p_}; +const TTCN_Typedescriptor_t ListOfLADN_dnnValue_descr_ = { "@NG_NAS_TypeDefs.ListOfLADN.dnnValue", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ListOfLADN_dnnValue_xer_, &OCTETSTRING_json_, &ListOfLADN_dnnValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ListOfLADN_listOfPartialTais +const TTCN_Typedescriptor_t ListOfLADN_listOfPartialTais_descr_ = { "@NG_NAS_TypeDefs.ListOfLADN.listOfPartialTais", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__ListOfPartialTaiList_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ListOfLADN +const TTCN_Typedescriptor_t ListOfLADN_descr_ = { "@NG_NAS_TypeDefs.ListOfLADN", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ListOfLADN_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ListOfLADN_iei_oer_ext_arr_[0] = {}; +const int ListOfLADN_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ListOfLADN_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ListOfLADN_iei_oer_ext_arr_, 0, ListOfLADN_iei_oer_p_}; +const TTCN_Typedescriptor_t ListOfLADN_iei_descr_ = { "@NG_NAS_TypeDefs.ListOfLADN.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ListOfLADN_iei_xer_, &OCTETSTRING_json_, &ListOfLADN_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for LADN__Info +const TTCN_Typedescriptor_t LADN__Info_descr_ = { "@NG_NAS_TypeDefs.LADN_Info", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t LADN__Info_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int LADN__Info_iei_oer_ext_arr_[0] = {}; +const int LADN__Info_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t LADN__Info_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, LADN__Info_iei_oer_ext_arr_, 0, LADN__Info_iei_oer_p_}; +const TTCN_Typedescriptor_t LADN__Info_iei_descr_ = { "@NG_NAS_TypeDefs.LADN_Info.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &LADN__Info_iei_xer_, &OCTETSTRING_json_, &LADN__Info_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& ServiceAreaIdList_descr_ = NG__TrackingAreaIdList_descr_; +const XERdescriptor_t SOR__Header_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SOR__Header_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SOR__Header_spare_descr_ = { "@NG_NAS_TypeDefs.SOR_Header.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &SOR__Header_spare_xer_, &BITSTRING_json_, &SOR__Header_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SOR__Header_ap_xer_ = { {"ap>\n", "ap>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SOR__Header_ap_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SOR__Header_ap_descr_ = { "@NG_NAS_TypeDefs.SOR_Header.ap", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SOR__Header_ap_xer_, &BITSTRING_json_, &SOR__Header_ap_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SOR__Header_ack_xer_ = { {"ack>\n", "ack>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SOR__Header_ack_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SOR__Header_ack_descr_ = { "@NG_NAS_TypeDefs.SOR_Header.ack", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SOR__Header_ack_xer_, &BITSTRING_json_, &SOR__Header_ack_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SOR__Header_listType__MSSNPNSI_xer_ = { {"listType_MSSNPNSI>\n", "listType_MSSNPNSI>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SOR__Header_listType__MSSNPNSI_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SOR__Header_listType__MSSNPNSI_descr_ = { "@NG_NAS_TypeDefs.SOR_Header.listType_MSSNPNSI", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SOR__Header_listType__MSSNPNSI_xer_, &BITSTRING_json_, &SOR__Header_listType__MSSNPNSI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SOR__Header_listInd__MSSI_xer_ = { {"listInd_MSSI>\n", "listInd_MSSI>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SOR__Header_listInd__MSSI_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SOR__Header_listInd__MSSI_descr_ = { "@NG_NAS_TypeDefs.SOR_Header.listInd_MSSI", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SOR__Header_listInd__MSSI_xer_, &BITSTRING_json_, &SOR__Header_listInd__MSSI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SOR__Header_dataType_xer_ = { {"dataType>\n", "dataType>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SOR__Header_dataType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SOR__Header_dataType_descr_ = { "@NG_NAS_TypeDefs.SOR_Header.dataType", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SOR__Header_dataType_xer_, &BITSTRING_json_, &SOR__Header_dataType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SOR__Header +const TTCN_Typedescriptor_t SOR__Header_descr_ = { "@NG_NAS_TypeDefs.SOR_Header", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SORTransparentContainer_mac_xer_ = { {"mac>\n", "mac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SORTransparentContainer_mac_oer_ext_arr_[0] = {}; +const int SORTransparentContainer_mac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SORTransparentContainer_mac_oer_ = { -1, TRUE, 16, FALSE, 0, 0, SORTransparentContainer_mac_oer_ext_arr_, 0, SORTransparentContainer_mac_oer_p_}; +const TTCN_Typedescriptor_t SORTransparentContainer_mac_descr_ = { "@NG_NAS_TypeDefs.SORTransparentContainer.mac", &OCTETSTRING_ber_, &CommonDefs::O16__Type_raw_, &OCTETSTRING_text_, &SORTransparentContainer_mac_xer_, &OCTETSTRING_json_, &SORTransparentContainer_mac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SORTransparentContainer +const TTCN_Typedescriptor_t SORTransparentContainer_descr_ = { "@NG_NAS_TypeDefs.SORTransparentContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SORTransparentContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SORTransparentContainer_iei_oer_ext_arr_[0] = {}; +const int SORTransparentContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SORTransparentContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SORTransparentContainer_iei_oer_ext_arr_, 0, SORTransparentContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t SORTransparentContainer_iei_descr_ = { "@NG_NAS_TypeDefs.SORTransparentContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SORTransparentContainer_iei_xer_, &OCTETSTRING_json_, &SORTransparentContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SORTransparentContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SORTransparentContainer_iel_oer_ext_arr_[0] = {}; +const int SORTransparentContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SORTransparentContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, SORTransparentContainer_iel_oer_ext_arr_, 0, SORTransparentContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t SORTransparentContainer_iel_descr_ = { "@NG_NAS_TypeDefs.SORTransparentContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &SORTransparentContainer_iel_xer_, &OCTETSTRING_json_, &SORTransparentContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SORTransparentContainer_counter_xer_ = { {"counter>\n", "counter>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SORTransparentContainer_counter_oer_ext_arr_[0] = {}; +const int SORTransparentContainer_counter_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SORTransparentContainer_counter_oer_ = { -1, TRUE, 2, FALSE, 0, 0, SORTransparentContainer_counter_oer_ext_arr_, 0, SORTransparentContainer_counter_oer_p_}; +const TTCN_Typedescriptor_t SORTransparentContainer_counter_descr_ = { "@NG_NAS_TypeDefs.SORTransparentContainer.counter", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &SORTransparentContainer_counter_xer_, &OCTETSTRING_json_, &SORTransparentContainer_counter_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SORTransparentContainer_data_xer_ = { {"data>\n", "data>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SORTransparentContainer_data_oer_ext_arr_[0] = {}; +const int SORTransparentContainer_data_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SORTransparentContainer_data_oer_ = { -1, TRUE, -1, FALSE, 0, 0, SORTransparentContainer_data_oer_ext_arr_, 0, SORTransparentContainer_data_oer_p_}; +const TTCN_Typedescriptor_t SORTransparentContainer_data_descr_ = { "@NG_NAS_TypeDefs.SORTransparentContainer.data", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &SORTransparentContainer_data_xer_, &OCTETSTRING_json_, &SORTransparentContainer_data_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t InclusionModeNSSAI_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t InclusionModeNSSAI_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t InclusionModeNSSAI_spare_descr_ = { "@NG_NAS_TypeDefs.InclusionModeNSSAI.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &InclusionModeNSSAI_spare_xer_, &BITSTRING_json_, &InclusionModeNSSAI_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t InclusionModeNSSAI_inclusionMode_xer_ = { {"inclusionMode>\n", "inclusionMode>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t InclusionModeNSSAI_inclusionMode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t InclusionModeNSSAI_inclusionMode_descr_ = { "@NG_NAS_TypeDefs.InclusionModeNSSAI.inclusionMode", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &InclusionModeNSSAI_inclusionMode_xer_, &BITSTRING_json_, &InclusionModeNSSAI_inclusionMode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for InclusionModeNSSAI +const TTCN_Typedescriptor_t InclusionModeNSSAI_descr_ = { "@NG_NAS_TypeDefs.InclusionModeNSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t InclusionModeNSSAI_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t InclusionModeNSSAI_iei_descr_ = { "@NG_NAS_TypeDefs.InclusionModeNSSAI.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &InclusionModeNSSAI_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t OperatorAccessCatDefinitions_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int OperatorAccessCatDefinitions_iel_oer_ext_arr_[0] = {}; +const int OperatorAccessCatDefinitions_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t OperatorAccessCatDefinitions_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, OperatorAccessCatDefinitions_iel_oer_ext_arr_, 0, OperatorAccessCatDefinitions_iel_oer_p_}; +const TTCN_Typedescriptor_t OperatorAccessCatDefinitions_iel_descr_ = { "@NG_NAS_TypeDefs.OperatorAccessCatDefinitions.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &OperatorAccessCatDefinitions_iel_xer_, &OCTETSTRING_json_, &OperatorAccessCatDefinitions_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for OperatorAccessCatDefinitions_definitions +const TTCN_Typedescriptor_t OperatorAccessCatDefinitions_definitions_descr_ = { "@NG_NAS_TypeDefs.OperatorAccessCatDefinitions.definitions", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &AccessCatDefinition_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessCatDefinition_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AccessCatDefinition_iel_oer_ext_arr_[0] = {}; +const int AccessCatDefinition_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AccessCatDefinition_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AccessCatDefinition_iel_oer_ext_arr_, 0, AccessCatDefinition_iel_oer_p_}; +const TTCN_Typedescriptor_t AccessCatDefinition_iel_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AccessCatDefinition_iel_xer_, &OCTETSTRING_json_, &AccessCatDefinition_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessCatDefinition_precendence_xer_ = { {"precendence>\n", "precendence>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AccessCatDefinition_precendence_oer_ext_arr_[0] = {}; +const int AccessCatDefinition_precendence_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AccessCatDefinition_precendence_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AccessCatDefinition_precendence_oer_ext_arr_, 0, AccessCatDefinition_precendence_oer_p_}; +const TTCN_Typedescriptor_t AccessCatDefinition_precendence_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition.precendence", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AccessCatDefinition_precendence_xer_, &OCTETSTRING_json_, &AccessCatDefinition_precendence_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessCatDefinition_psac_xer_ = { {"psac>\n", "psac>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AccessCatDefinition_psac_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AccessCatDefinition_psac_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition.psac", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AccessCatDefinition_psac_xer_, &BITSTRING_json_, &AccessCatDefinition_psac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessCatDefinition_spare2_xer_ = { {"spare2>\n", "spare2>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AccessCatDefinition_spare2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AccessCatDefinition_spare2_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition.spare2", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &AccessCatDefinition_spare2_xer_, &BITSTRING_json_, &AccessCatDefinition_spare2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessCatDefinition_catNum_xer_ = { {"catNum>\n", "catNum>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AccessCatDefinition_catNum_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AccessCatDefinition_catNum_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition.catNum", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &AccessCatDefinition_catNum_xer_, &BITSTRING_json_, &AccessCatDefinition_catNum_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessCatDefinition_criteriaLength_xer_ = { {"criteriaLength>\n", "criteriaLength>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AccessCatDefinition_criteriaLength_oer_ext_arr_[0] = {}; +const int AccessCatDefinition_criteriaLength_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AccessCatDefinition_criteriaLength_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AccessCatDefinition_criteriaLength_oer_ext_arr_, 0, AccessCatDefinition_criteriaLength_oer_p_}; +const TTCN_Typedescriptor_t AccessCatDefinition_criteriaLength_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition.criteriaLength", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AccessCatDefinition_criteriaLength_xer_, &OCTETSTRING_json_, &AccessCatDefinition_criteriaLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessCatDefinition_criteria_xer_ = { {"criteria>\n", "criteria>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AccessCatDefinition_criteria_oer_ext_arr_[0] = {}; +const int AccessCatDefinition_criteria_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AccessCatDefinition_criteria_oer_ = { -1, TRUE, -1, FALSE, 0, 0, AccessCatDefinition_criteria_oer_ext_arr_, 0, AccessCatDefinition_criteria_oer_p_}; +const TTCN_Typedescriptor_t AccessCatDefinition_criteria_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition.criteria", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &AccessCatDefinition_criteria_xer_, &OCTETSTRING_json_, &AccessCatDefinition_criteria_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AccessCatDefinition +const TTCN_Typedescriptor_t AccessCatDefinition_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessCatDefinition_spare3_xer_ = { {"spare3>\n", "spare3>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AccessCatDefinition_spare3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AccessCatDefinition_spare3_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition.spare3", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &AccessCatDefinition_spare3_xer_, &BITSTRING_json_, &AccessCatDefinition_spare3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessCatDefinition_standardAccessCat_xer_ = { {"standardAccessCat>\n", "standardAccessCat>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AccessCatDefinition_standardAccessCat_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AccessCatDefinition_standardAccessCat_descr_ = { "@NG_NAS_TypeDefs.AccessCatDefinition.standardAccessCat", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &AccessCatDefinition_standardAccessCat_xer_, &BITSTRING_json_, &AccessCatDefinition_standardAccessCat_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for OperatorAccessCatDefinitions +const TTCN_Typedescriptor_t OperatorAccessCatDefinitions_descr_ = { "@NG_NAS_TypeDefs.OperatorAccessCatDefinitions", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t OperatorAccessCatDefinitions_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int OperatorAccessCatDefinitions_iei_oer_ext_arr_[0] = {}; +const int OperatorAccessCatDefinitions_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t OperatorAccessCatDefinitions_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, OperatorAccessCatDefinitions_iei_oer_ext_arr_, 0, OperatorAccessCatDefinitions_iei_oer_p_}; +const TTCN_Typedescriptor_t OperatorAccessCatDefinitions_iei_descr_ = { "@NG_NAS_TypeDefs.OperatorAccessCatDefinitions.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &OperatorAccessCatDefinitions_iei_xer_, &OCTETSTRING_json_, &OperatorAccessCatDefinitions_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipheringKeyData_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipheringKeyData_iel_oer_ext_arr_[0] = {}; +const int NG__CipheringKeyData_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipheringKeyData_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, NG__CipheringKeyData_iel_oer_ext_arr_, 0, NG__CipheringKeyData_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__CipheringKeyData_iel_descr_ = { "@NG_NAS_TypeDefs.NG_CipheringKeyData.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &NG__CipheringKeyData_iel_xer_, &OCTETSTRING_json_, &NG__CipheringKeyData_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__CipheringKeyData +const TTCN_Typedescriptor_t NG__CipheringKeyData_descr_ = { "@NG_NAS_TypeDefs.NG_CipheringKeyData", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipheringKeyData_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipheringKeyData_iei_oer_ext_arr_[0] = {}; +const int NG__CipheringKeyData_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipheringKeyData_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipheringKeyData_iei_oer_ext_arr_, 0, NG__CipheringKeyData_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__CipheringKeyData_iei_descr_ = { "@NG_NAS_TypeDefs.NG_CipheringKeyData.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipheringKeyData_iei_xer_, &OCTETSTRING_json_, &NG__CipheringKeyData_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__CipheringKeyData_listOfCipherKeyData +const TTCN_Typedescriptor_t NG__CipheringKeyData_listOfCipherKeyData_descr_ = { "@NG_NAS_TypeDefs.NG_CipheringKeyData.listOfCipherKeyData", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__CipherDataSet_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_id_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_id_oer_ = { -1, TRUE, 2, FALSE, 0, 0, NG__CipherDataSet_id_oer_ext_arr_, 0, NG__CipherDataSet_id_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_id_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.id", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_id_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_key_xer_ = { {"key>\n", "key>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_key_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_key_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_key_oer_ = { -1, TRUE, 16, FALSE, 0, 0, NG__CipherDataSet_key_oer_ext_arr_, 0, NG__CipherDataSet_key_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_key_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.key", &OCTETSTRING_ber_, &CommonDefs::O16__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_key_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_key_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CipherDataSet_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CipherDataSet_spareBits_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.spareBits", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NG__CipherDataSet_spareBits_xer_, &BITSTRING_json_, &NG__CipherDataSet_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_c0Length_xer_ = { {"c0Length>\n", "c0Length>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CipherDataSet_c0Length_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CipherDataSet_c0Length_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.c0Length", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &NG__CipherDataSet_c0Length_xer_, &BITSTRING_json_, &NG__CipherDataSet_c0Length_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_c0_xer_ = { {"c0>\n", "c0>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_c0_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_c0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_c0_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__CipherDataSet_c0_oer_ext_arr_, 0, NG__CipherDataSet_c0_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_c0_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.c0", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_c0_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_c0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_eSpareBits_xer_ = { {"eSpareBits>\n", "eSpareBits>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CipherDataSet_eSpareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CipherDataSet_eSpareBits_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.eSpareBits", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__CipherDataSet_eSpareBits_xer_, &BITSTRING_json_, &NG__CipherDataSet_eSpareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_eSIBLength_xer_ = { {"eSIBLength>\n", "eSIBLength>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CipherDataSet_eSIBLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CipherDataSet_eSIBLength_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.eSIBLength", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__CipherDataSet_eSIBLength_xer_, &BITSTRING_json_, &NG__CipherDataSet_eSIBLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_nSpareBits_xer_ = { {"nSpareBits>\n", "nSpareBits>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CipherDataSet_nSpareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CipherDataSet_nSpareBits_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.nSpareBits", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__CipherDataSet_nSpareBits_xer_, &BITSTRING_json_, &NG__CipherDataSet_nSpareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_nSIBLength_xer_ = { {"nSIBLength>\n", "nSIBLength>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CipherDataSet_nSIBLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CipherDataSet_nSIBLength_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.nSIBLength", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__CipherDataSet_nSIBLength_xer_, &BITSTRING_json_, &NG__CipherDataSet_nSIBLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_validityStartTime_xer_ = { {"validityStartTime>\n", "validityStartTime>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_validityStartTime_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_validityStartTime_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_validityStartTime_oer_ = { -1, TRUE, 5, FALSE, 0, 0, NG__CipherDataSet_validityStartTime_oer_ext_arr_, 0, NG__CipherDataSet_validityStartTime_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_validityStartTime_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.validityStartTime", &OCTETSTRING_ber_, &CommonDefs::O5__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_validityStartTime_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_validityStartTime_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_validityDuration_xer_ = { {"validityDuration>\n", "validityDuration>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_validityDuration_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_validityDuration_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_validityDuration_oer_ = { -1, TRUE, 2, FALSE, 0, 0, NG__CipherDataSet_validityDuration_oer_ext_arr_, 0, NG__CipherDataSet_validityDuration_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_validityDuration_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.validityDuration", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_validityDuration_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_validityDuration_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_taiLength_xer_ = { {"taiLength>\n", "taiLength>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_taiLength_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_taiLength_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_taiLength_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_taiLength_oer_ext_arr_, 0, NG__CipherDataSet_taiLength_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_taiLength_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.taiLength", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_taiLength_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_taiLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__CipherDataSet +const TTCN_Typedescriptor_t NG__CipherDataSet_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_eposSIB1_xer_ = { {"eposSIB1>\n", "eposSIB1>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_eposSIB1_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_eposSIB1_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB1_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_eposSIB1_oer_ext_arr_, 0, NG__CipherDataSet_eposSIB1_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB1_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.eposSIB1", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_eposSIB1_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_eposSIB1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_eposSIB2__O1_xer_ = { {"eposSIB2_O1>\n", "eposSIB2_O1>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_eposSIB2__O1_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_eposSIB2__O1_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB2__O1_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_eposSIB2__O1_oer_ext_arr_, 0, NG__CipherDataSet_eposSIB2__O1_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB2__O1_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.eposSIB2_O1", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_eposSIB2__O1_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_eposSIB2__O1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_eposSIB2__O2_xer_ = { {"eposSIB2_O2>\n", "eposSIB2_O2>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_eposSIB2__O2_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_eposSIB2__O2_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB2__O2_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_eposSIB2__O2_oer_ext_arr_, 0, NG__CipherDataSet_eposSIB2__O2_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB2__O2_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.eposSIB2_O2", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_eposSIB2__O2_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_eposSIB2__O2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_eposSIB2__O3_xer_ = { {"eposSIB2_O3>\n", "eposSIB2_O3>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_eposSIB2__O3_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_eposSIB2__O3_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB2__O3_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_eposSIB2__O3_oer_ext_arr_, 0, NG__CipherDataSet_eposSIB2__O3_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB2__O3_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.eposSIB2_O3", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_eposSIB2__O3_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_eposSIB2__O3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_eposSIB2__SIB5_xer_ = { {"eposSIB2_SIB5>\n", "eposSIB2_SIB5>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_eposSIB2__SIB5_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_eposSIB2__SIB5_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB2__SIB5_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_eposSIB2__SIB5_oer_ext_arr_, 0, NG__CipherDataSet_eposSIB2__SIB5_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB2__SIB5_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.eposSIB2_SIB5", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_eposSIB2__SIB5_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_eposSIB2__SIB5_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_nposSIB1_xer_ = { {"nposSIB1>\n", "nposSIB1>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_nposSIB1_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_nposSIB1_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB1_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_nposSIB1_oer_ext_arr_, 0, NG__CipherDataSet_nposSIB1_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB1_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.nposSIB1", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_nposSIB1_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_nposSIB1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_nposSIB2__O1_xer_ = { {"nposSIB2_O1>\n", "nposSIB2_O1>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_nposSIB2__O1_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_nposSIB2__O1_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB2__O1_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_nposSIB2__O1_oer_ext_arr_, 0, NG__CipherDataSet_nposSIB2__O1_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB2__O1_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.nposSIB2_O1", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_nposSIB2__O1_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_nposSIB2__O1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_nposSIB2__O2_xer_ = { {"nposSIB2_O2>\n", "nposSIB2_O2>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_nposSIB2__O2_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_nposSIB2__O2_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB2__O2_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_nposSIB2__O2_oer_ext_arr_, 0, NG__CipherDataSet_nposSIB2__O2_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB2__O2_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.nposSIB2_O2", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_nposSIB2__O2_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_nposSIB2__O2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_nposSIB2__SIB3_xer_ = { {"nposSIB2_SIB3>\n", "nposSIB2_SIB3>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_nposSIB2__SIB3_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_nposSIB2__SIB3_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB2__SIB3_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_nposSIB2__SIB3_oer_ext_arr_, 0, NG__CipherDataSet_nposSIB2__SIB3_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB2__SIB3_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.nposSIB2_SIB3", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_nposSIB2__SIB3_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_nposSIB2__SIB3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CipherDataSet_nposSIB4__SIB6_xer_ = { {"nposSIB4_SIB6>\n", "nposSIB4_SIB6>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__CipherDataSet_nposSIB4__SIB6_oer_ext_arr_[0] = {}; +const int NG__CipherDataSet_nposSIB4__SIB6_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB4__SIB6_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__CipherDataSet_nposSIB4__SIB6_oer_ext_arr_, 0, NG__CipherDataSet_nposSIB4__SIB6_oer_p_}; +const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB4__SIB6_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.nposSIB4_SIB6", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__CipherDataSet_nposSIB4__SIB6_xer_, &OCTETSTRING_json_, &NG__CipherDataSet_nposSIB4__SIB6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__CipherDataSet_listOfPartialTais +const TTCN_Typedescriptor_t NG__CipherDataSet_listOfPartialTais_descr_ = { "@NG_NAS_TypeDefs.NG_CipherDataSet.listOfPartialTais", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__ListOfPartialTaiList_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CAGInfoList_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CAGInfoList_iel_oer_ext_arr_[0] = {}; +const int CAGInfoList_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CAGInfoList_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, CAGInfoList_iel_oer_ext_arr_, 0, CAGInfoList_iel_oer_p_}; +const TTCN_Typedescriptor_t CAGInfoList_iel_descr_ = { "@NG_NAS_TypeDefs.CAGInfoList.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &CAGInfoList_iel_xer_, &OCTETSTRING_json_, &CAGInfoList_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CAGInfoList +const TTCN_Typedescriptor_t CAGInfoList_descr_ = { "@NG_NAS_TypeDefs.CAGInfoList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CAGInfoList_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CAGInfoList_iei_oer_ext_arr_[0] = {}; +const int CAGInfoList_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CAGInfoList_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CAGInfoList_iei_oer_ext_arr_, 0, CAGInfoList_iei_oer_p_}; +const TTCN_Typedescriptor_t CAGInfoList_iei_descr_ = { "@NG_NAS_TypeDefs.CAGInfoList.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CAGInfoList_iei_xer_, &OCTETSTRING_json_, &CAGInfoList_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CAGInfoList_listOfCAGInfos +const TTCN_Typedescriptor_t CAGInfoList_listOfCAGInfos_descr_ = { "@NG_NAS_TypeDefs.CAGInfoList.listOfCAGInfos", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CAG__Info_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CAG__Info_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CAG__Info_iel_oer_ext_arr_[0] = {}; +const int CAG__Info_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CAG__Info_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CAG__Info_iel_oer_ext_arr_, 0, CAG__Info_iel_oer_p_}; +const TTCN_Typedescriptor_t CAG__Info_iel_descr_ = { "@NG_NAS_TypeDefs.CAG_Info.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CAG__Info_iel_xer_, &OCTETSTRING_json_, &CAG__Info_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CAG__Info__V_plmn_xer_ = { {"plmn>\n", "plmn>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CAG__Info__V_plmn_oer_ext_arr_[0] = {}; +const int CAG__Info__V_plmn_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CAG__Info__V_plmn_oer_ = { -1, TRUE, 3, FALSE, 0, 0, CAG__Info__V_plmn_oer_ext_arr_, 0, CAG__Info__V_plmn_oer_p_}; +const TTCN_Typedescriptor_t CAG__Info__V_plmn_descr_ = { "@NG_NAS_TypeDefs.CAG_Info_V.plmn", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &CAG__Info__V_plmn_xer_, &OCTETSTRING_json_, &CAG__Info__V_plmn_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CAG__Info__V_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CAG__Info__V_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CAG__Info__V_spareBits_descr_ = { "@NG_NAS_TypeDefs.CAG_Info_V.spareBits", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &CAG__Info__V_spareBits_xer_, &BITSTRING_json_, &CAG__Info__V_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CAG__Info__V_cagOnly_xer_ = { {"cagOnly>\n", "cagOnly>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CAG__Info__V_cagOnly_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CAG__Info__V_cagOnly_descr_ = { "@NG_NAS_TypeDefs.CAG_Info_V.cagOnly", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &CAG__Info__V_cagOnly_xer_, &BITSTRING_json_, &CAG__Info__V_cagOnly_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CAG__Info__V +const TTCN_Typedescriptor_t CAG__Info__V_descr_ = { "@NG_NAS_TypeDefs.CAG_Info_V", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CAG__Info__V_listOfCAGIds +const TTCN_Typedescriptor_t CAG__Info__V_listOfCAGIds_descr_ = { "@NG_NAS_TypeDefs.CAG_Info_V.listOfCAGIds", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommonDefs::O4__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CAG__Info__V_listOfCAGIds_0_xer_ = { {"O4_Type>\n", "O4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CAG__Info__V_listOfCAGIds_0_oer_ext_arr_[0] = {}; +const int CAG__Info__V_listOfCAGIds_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CAG__Info__V_listOfCAGIds_0_oer_ = { -1, TRUE, 4, FALSE, 0, 0, CAG__Info__V_listOfCAGIds_0_oer_ext_arr_, 0, CAG__Info__V_listOfCAGIds_0_oer_p_}; +const TTCN_Typedescriptor_t CAG__Info__V_listOfCAGIds_0_descr_ = { "@NG_NAS_TypeDefs.CAG_Info_V.listOfCAGIds.", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &CAG__Info__V_listOfCAGIds_0_xer_, &OCTETSTRING_json_, &CAG__Info__V_listOfCAGIds_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CAG__Info +const TTCN_Typedescriptor_t CAG__Info_descr_ = { "@NG_NAS_TypeDefs.CAG_Info", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TruncatedS__TMSIConfig_amfSetId_xer_ = { {"amfSetId>\n", "amfSetId>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TruncatedS__TMSIConfig_amfSetId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_amfSetId_descr_ = { "@NG_NAS_TypeDefs.TruncatedS_TMSIConfig.amfSetId", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TruncatedS__TMSIConfig_amfSetId_xer_, &BITSTRING_json_, &TruncatedS__TMSIConfig_amfSetId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TruncatedS__TMSIConfig_amfPointer_xer_ = { {"amfPointer>\n", "amfPointer>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t TruncatedS__TMSIConfig_amfPointer_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_amfPointer_descr_ = { "@NG_NAS_TypeDefs.TruncatedS_TMSIConfig.amfPointer", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &TruncatedS__TMSIConfig_amfPointer_xer_, &BITSTRING_json_, &TruncatedS__TMSIConfig_amfPointer_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TruncatedS__TMSIConfig +const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_descr_ = { "@NG_NAS_TypeDefs.TruncatedS_TMSIConfig", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TruncatedS__TMSIConfig_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TruncatedS__TMSIConfig_iei_oer_ext_arr_[0] = {}; +const int TruncatedS__TMSIConfig_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TruncatedS__TMSIConfig_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TruncatedS__TMSIConfig_iei_oer_ext_arr_, 0, TruncatedS__TMSIConfig_iei_oer_p_}; +const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_iei_descr_ = { "@NG_NAS_TypeDefs.TruncatedS_TMSIConfig.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TruncatedS__TMSIConfig_iei_xer_, &OCTETSTRING_json_, &TruncatedS__TMSIConfig_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TruncatedS__TMSIConfig_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TruncatedS__TMSIConfig_iel_oer_ext_arr_[0] = {}; +const int TruncatedS__TMSIConfig_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TruncatedS__TMSIConfig_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TruncatedS__TMSIConfig_iel_oer_ext_arr_, 0, TruncatedS__TMSIConfig_iel_oer_p_}; +const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_iel_descr_ = { "@NG_NAS_TypeDefs.TruncatedS_TMSIConfig.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TruncatedS__TMSIConfig_iel_xer_, &OCTETSTRING_json_, &TruncatedS__TMSIConfig_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdRejectedNSSAI_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdRejectedNSSAI_iel_oer_ext_arr_[0] = {}; +const int ExtdRejectedNSSAI_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdRejectedNSSAI_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtdRejectedNSSAI_iel_oer_ext_arr_, 0, ExtdRejectedNSSAI_iel_oer_p_}; +const TTCN_Typedescriptor_t ExtdRejectedNSSAI_iel_descr_ = { "@NG_NAS_TypeDefs.ExtdRejectedNSSAI.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ExtdRejectedNSSAI_iel_xer_, &OCTETSTRING_json_, &ExtdRejectedNSSAI_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PartialXtdRejectedNSSAI__List +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAI__List_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI_List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &PartialXtdRejectedNSSAI_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PartialXtdRejectedNSSAI +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAI_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PartialXtdRejectedNSSAIType0_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType0_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_spare_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &PartialXtdRejectedNSSAIType0_spare_xer_, &BITSTRING_json_, &PartialXtdRejectedNSSAIType0_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t PartialXtdRejectedNSSAIType0_typeOfList_raw_ = {3,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t PartialXtdRejectedNSSAIType0_typeOfList_xer_ = { {"typeOfList>\n", "typeOfList>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType0_typeOfList_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_typeOfList_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0.typeOfList", &BITSTRING_ber_, &PartialXtdRejectedNSSAIType0_typeOfList_raw_, NULL, &PartialXtdRejectedNSSAIType0_typeOfList_xer_, &BITSTRING_json_, &PartialXtdRejectedNSSAIType0_typeOfList_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PartialXtdRejectedNSSAIType0_numOfElements_xer_ = { {"numOfElements>\n", "numOfElements>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType0_numOfElements_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_numOfElements_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0.numOfElements", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PartialXtdRejectedNSSAIType0_numOfElements_xer_, &BITSTRING_json_, &PartialXtdRejectedNSSAIType0_numOfElements_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PartialXtdRejectedNSSAIType0_rejectS__NSSAI +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_rejectS__NSSAI_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0.rejectS_NSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &XtdRejectedS__NSSAI_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t XtdRejectedS__NSSAI_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t XtdRejectedS__NSSAI_len_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t XtdRejectedS__NSSAI_len_descr_ = { "@NG_NAS_TypeDefs.XtdRejectedS_NSSAI.len", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &XtdRejectedS__NSSAI_len_xer_, &BITSTRING_json_, &XtdRejectedS__NSSAI_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t XtdRejectedS__NSSAI_causeValue_xer_ = { {"causeValue>\n", "causeValue>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t XtdRejectedS__NSSAI_causeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t XtdRejectedS__NSSAI_causeValue_descr_ = { "@NG_NAS_TypeDefs.XtdRejectedS_NSSAI.causeValue", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &XtdRejectedS__NSSAI_causeValue_xer_, &BITSTRING_json_, &XtdRejectedS__NSSAI_causeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for XtdRejectedS__NSSAI +const TTCN_Typedescriptor_t XtdRejectedS__NSSAI_descr_ = { "@NG_NAS_TypeDefs.XtdRejectedS_NSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PartialXtdRejectedNSSAIType0 +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PartialXtdRejectedNSSAIType1_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType1_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_spare_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType1.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &PartialXtdRejectedNSSAIType1_spare_xer_, &BITSTRING_json_, &PartialXtdRejectedNSSAIType1_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_RAWdescriptor_t PartialXtdRejectedNSSAIType1_typeOfList_raw_ = {3,SG_NO,ORDER_LSB,ORDER_LSB,ORDER_LSB,ORDER_LSB,EXT_BIT_NO,ORDER_LSB,ORDER_LSB,TOP_BIT_INHERITED,0,0,0,8,0,NULL,-1,CharCoding::UNKNOWN_CHAR_CODING,NULL,false}; +const XERdescriptor_t PartialXtdRejectedNSSAIType1_typeOfList_xer_ = { {"typeOfList>\n", "typeOfList>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType1_typeOfList_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_typeOfList_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType1.typeOfList", &BITSTRING_ber_, &PartialXtdRejectedNSSAIType1_typeOfList_raw_, NULL, &PartialXtdRejectedNSSAIType1_typeOfList_xer_, &BITSTRING_json_, &PartialXtdRejectedNSSAIType1_typeOfList_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PartialXtdRejectedNSSAIType1_numOfElements_xer_ = { {"numOfElements>\n", "numOfElements>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType1_numOfElements_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_numOfElements_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType1.numOfElements", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PartialXtdRejectedNSSAIType1_numOfElements_xer_, &BITSTRING_json_, &PartialXtdRejectedNSSAIType1_numOfElements_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PartialXtdRejectedNSSAIType1_backOffTimerValue_xer_ = { {"backOffTimerValue>\n", "backOffTimerValue>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PartialXtdRejectedNSSAIType1_backOffTimerValue_oer_ext_arr_[0] = {}; +const int PartialXtdRejectedNSSAIType1_backOffTimerValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType1_backOffTimerValue_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PartialXtdRejectedNSSAIType1_backOffTimerValue_oer_ext_arr_, 0, PartialXtdRejectedNSSAIType1_backOffTimerValue_oer_p_}; +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_backOffTimerValue_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType1.backOffTimerValue", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PartialXtdRejectedNSSAIType1_backOffTimerValue_xer_, &OCTETSTRING_json_, &PartialXtdRejectedNSSAIType1_backOffTimerValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for XtdRejectedS__NSSAI__List +const TTCN_Typedescriptor_t XtdRejectedS__NSSAI__List_descr_ = { "@NG_NAS_TypeDefs.XtdRejectedS_NSSAI_List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &XtdRejectedS__NSSAI_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PartialXtdRejectedNSSAIType1 +const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_descr_ = { "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType1", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdRejectedNSSAI +const TTCN_Typedescriptor_t ExtdRejectedNSSAI_descr_ = { "@NG_NAS_TypeDefs.ExtdRejectedNSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdRejectedNSSAI_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdRejectedNSSAI_iei_oer_ext_arr_[0] = {}; +const int ExtdRejectedNSSAI_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdRejectedNSSAI_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtdRejectedNSSAI_iei_oer_ext_arr_, 0, ExtdRejectedNSSAI_iei_oer_p_}; +const TTCN_Typedescriptor_t ExtdRejectedNSSAI_iei_descr_ = { "@NG_NAS_TypeDefs.ExtdRejectedNSSAI.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ExtdRejectedNSSAI_iei_xer_, &OCTETSTRING_json_, &ExtdRejectedNSSAI_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AddReqResult_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__AddReqResult_iei_oer_ext_arr_[0] = {}; +const int NG__AddReqResult_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__AddReqResult_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__AddReqResult_iei_oer_ext_arr_, 0, NG__AddReqResult_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__AddReqResult_iei_descr_ = { "@NG_NAS_TypeDefs.NG_AddReqResult.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__AddReqResult_iei_xer_, &OCTETSTRING_json_, &NG__AddReqResult_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AddReqResult_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__AddReqResult_iel_oer_ext_arr_[0] = {}; +const int NG__AddReqResult_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__AddReqResult_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__AddReqResult_iel_oer_ext_arr_, 0, NG__AddReqResult_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__AddReqResult_iel_descr_ = { "@NG_NAS_TypeDefs.NG_AddReqResult.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__AddReqResult_iel_xer_, &OCTETSTRING_json_, &NG__AddReqResult_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AddReqResult_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AddReqResult_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AddReqResult_spare_descr_ = { "@NG_NAS_TypeDefs.NG_AddReqResult.spare", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &NG__AddReqResult_spare_xer_, &BITSTRING_json_, &NG__AddReqResult_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__AddReqResult_prd_xer_ = { {"prd>\n", "prd>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__AddReqResult_prd_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__AddReqResult_prd_descr_ = { "@NG_NAS_TypeDefs.NG_AddReqResult.prd", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__AddReqResult_prd_xer_, &BITSTRING_json_, &NG__AddReqResult_prd_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__AddReqResult +const TTCN_Typedescriptor_t NG__AddReqResult_descr_ = { "@NG_NAS_TypeDefs.NG_AddReqResult", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSRG__Info_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSSRG__Info_iei_oer_ext_arr_[0] = {}; +const int NSSRG__Info_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSSRG__Info_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NSSRG__Info_iei_oer_ext_arr_, 0, NSSRG__Info_iei_oer_p_}; +const TTCN_Typedescriptor_t NSSRG__Info_iei_descr_ = { "@NG_NAS_TypeDefs.NSSRG_Info.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NSSRG__Info_iei_xer_, &OCTETSTRING_json_, &NSSRG__Info_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSRG__Info_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSSRG__Info_iel_oer_ext_arr_[0] = {}; +const int NSSRG__Info_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSSRG__Info_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, NSSRG__Info_iel_oer_ext_arr_, 0, NSSRG__Info_iel_oer_p_}; +const TTCN_Typedescriptor_t NSSRG__Info_iel_descr_ = { "@NG_NAS_TypeDefs.NSSRG_Info.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &NSSRG__Info_iel_xer_, &OCTETSTRING_json_, &NSSRG__Info_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSSRG__ValueList +const TTCN_Typedescriptor_t NSSRG__ValueList_descr_ = { "@NG_NAS_TypeDefs.NSSRG_ValueList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NSSRG__Value_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSRG__Value_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSSRG__Value_iel_oer_ext_arr_[0] = {}; +const int NSSRG__Value_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSSRG__Value_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NSSRG__Value_iel_oer_ext_arr_, 0, NSSRG__Value_iel_oer_p_}; +const TTCN_Typedescriptor_t NSSRG__Value_iel_descr_ = { "@NG_NAS_TypeDefs.NSSRG_Value.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NSSRG__Value_iel_xer_, &OCTETSTRING_json_, &NSSRG__Value_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSSRG__Value_nssrgValues +const TTCN_Typedescriptor_t NSSRG__Value_nssrgValues_descr_ = { "@NG_NAS_TypeDefs.NSSRG_Value.nssrgValues", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommonDefs::O1__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSRG__Value_nssrgValues_0_xer_ = { {"O1_Type>\n", "O1_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSSRG__Value_nssrgValues_0_oer_ext_arr_[0] = {}; +const int NSSRG__Value_nssrgValues_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSSRG__Value_nssrgValues_0_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NSSRG__Value_nssrgValues_0_oer_ext_arr_, 0, NSSRG__Value_nssrgValues_0_oer_p_}; +const TTCN_Typedescriptor_t NSSRG__Value_nssrgValues_0_descr_ = { "@NG_NAS_TypeDefs.NSSRG_Value.nssrgValues.", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NSSRG__Value_nssrgValues_0_xer_, &OCTETSTRING_json_, &NSSRG__Value_nssrgValues_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSSRG__Value +const TTCN_Typedescriptor_t NSSRG__Value_descr_ = { "@NG_NAS_TypeDefs.NSSRG_Value", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSSRG__Info +const TTCN_Typedescriptor_t NSSRG__Info_descr_ = { "@NG_NAS_TypeDefs.NSSRG_Info", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationWaitRange_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RegistrationWaitRange_iei_oer_ext_arr_[0] = {}; +const int RegistrationWaitRange_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RegistrationWaitRange_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RegistrationWaitRange_iei_oer_ext_arr_, 0, RegistrationWaitRange_iei_oer_p_}; +const TTCN_Typedescriptor_t RegistrationWaitRange_iei_descr_ = { "@NG_NAS_TypeDefs.RegistrationWaitRange.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RegistrationWaitRange_iei_xer_, &OCTETSTRING_json_, &RegistrationWaitRange_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationWaitRange_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RegistrationWaitRange_iel_oer_ext_arr_[0] = {}; +const int RegistrationWaitRange_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RegistrationWaitRange_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RegistrationWaitRange_iel_oer_ext_arr_, 0, RegistrationWaitRange_iel_oer_p_}; +const TTCN_Typedescriptor_t RegistrationWaitRange_iel_descr_ = { "@NG_NAS_TypeDefs.RegistrationWaitRange.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RegistrationWaitRange_iel_xer_, &OCTETSTRING_json_, &RegistrationWaitRange_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationWaitRange_minWaitTime_xer_ = { {"minWaitTime>\n", "minWaitTime>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RegistrationWaitRange_minWaitTime_oer_ext_arr_[0] = {}; +const int RegistrationWaitRange_minWaitTime_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RegistrationWaitRange_minWaitTime_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RegistrationWaitRange_minWaitTime_oer_ext_arr_, 0, RegistrationWaitRange_minWaitTime_oer_p_}; +const TTCN_Typedescriptor_t RegistrationWaitRange_minWaitTime_descr_ = { "@NG_NAS_TypeDefs.RegistrationWaitRange.minWaitTime", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RegistrationWaitRange_minWaitTime_xer_, &OCTETSTRING_json_, &RegistrationWaitRange_minWaitTime_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RegistrationWaitRange_maxWaitTime_xer_ = { {"maxWaitTime>\n", "maxWaitTime>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RegistrationWaitRange_maxWaitTime_oer_ext_arr_[0] = {}; +const int RegistrationWaitRange_maxWaitTime_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RegistrationWaitRange_maxWaitTime_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RegistrationWaitRange_maxWaitTime_oer_ext_arr_, 0, RegistrationWaitRange_maxWaitTime_oer_p_}; +const TTCN_Typedescriptor_t RegistrationWaitRange_maxWaitTime_descr_ = { "@NG_NAS_TypeDefs.RegistrationWaitRange.maxWaitTime", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RegistrationWaitRange_maxWaitTime_xer_, &OCTETSTRING_json_, &RegistrationWaitRange_maxWaitTime_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RegistrationWaitRange +const TTCN_Typedescriptor_t RegistrationWaitRange_descr_ = { "@NG_NAS_TypeDefs.RegistrationWaitRange", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DisasterPLMNList_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DisasterPLMNList_iei_oer_ext_arr_[0] = {}; +const int DisasterPLMNList_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DisasterPLMNList_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DisasterPLMNList_iei_oer_ext_arr_, 0, DisasterPLMNList_iei_oer_p_}; +const TTCN_Typedescriptor_t DisasterPLMNList_iei_descr_ = { "@NG_NAS_TypeDefs.DisasterPLMNList.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DisasterPLMNList_iei_xer_, &OCTETSTRING_json_, &DisasterPLMNList_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DisasterPLMNList_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DisasterPLMNList_iel_oer_ext_arr_[0] = {}; +const int DisasterPLMNList_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DisasterPLMNList_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DisasterPLMNList_iel_oer_ext_arr_, 0, DisasterPLMNList_iel_oer_p_}; +const TTCN_Typedescriptor_t DisasterPLMNList_iel_descr_ = { "@NG_NAS_TypeDefs.DisasterPLMNList.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DisasterPLMNList_iel_xer_, &OCTETSTRING_json_, &DisasterPLMNList_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DisasterPLMNList +const TTCN_Typedescriptor_t DisasterPLMNList_descr_ = { "@NG_NAS_TypeDefs.DisasterPLMNList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DisasterPLMNList_plmnId +const TTCN_Typedescriptor_t DisasterPLMNList_plmnId_descr_ = { "@NG_NAS_TypeDefs.DisasterPLMNList.plmnId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NAS__CommonTypeDefs::NAS__PlmnId_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DisasterPLMNList_plmnId_0_xer_ = { {"NAS_PlmnId>\n", "NAS_PlmnId>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DisasterPLMNList_plmnId_0_oer_ext_arr_[0] = {}; +const int DisasterPLMNList_plmnId_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DisasterPLMNList_plmnId_0_oer_ = { -1, TRUE, 3, FALSE, 0, 0, DisasterPLMNList_plmnId_0_oer_ext_arr_, 0, DisasterPLMNList_plmnId_0_oer_p_}; +const TTCN_Typedescriptor_t DisasterPLMNList_plmnId_0_descr_ = { "@NG_NAS_TypeDefs.DisasterPLMNList.plmnId.", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &DisasterPLMNList_plmnId_0_xer_, &OCTETSTRING_json_, &DisasterPLMNList_plmnId_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdCAGInfoList_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdCAGInfoList_iei_oer_ext_arr_[0] = {}; +const int ExtdCAGInfoList_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdCAGInfoList_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ExtdCAGInfoList_iei_oer_ext_arr_, 0, ExtdCAGInfoList_iei_oer_p_}; +const TTCN_Typedescriptor_t ExtdCAGInfoList_iei_descr_ = { "@NG_NAS_TypeDefs.ExtdCAGInfoList.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ExtdCAGInfoList_iei_xer_, &OCTETSTRING_json_, &ExtdCAGInfoList_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdCAGInfoList_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdCAGInfoList_iel_oer_ext_arr_[0] = {}; +const int ExtdCAGInfoList_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdCAGInfoList_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ExtdCAGInfoList_iel_oer_ext_arr_, 0, ExtdCAGInfoList_iel_oer_p_}; +const TTCN_Typedescriptor_t ExtdCAGInfoList_iel_descr_ = { "@NG_NAS_TypeDefs.ExtdCAGInfoList.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ExtdCAGInfoList_iel_xer_, &OCTETSTRING_json_, &ExtdCAGInfoList_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdCAGInfoList +const TTCN_Typedescriptor_t ExtdCAGInfoList_descr_ = { "@NG_NAS_TypeDefs.ExtdCAGInfoList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdCAGInfoList_listOfCAGInfos +const TTCN_Typedescriptor_t ExtdCAGInfoList_listOfCAGInfos_descr_ = { "@NG_NAS_TypeDefs.ExtdCAGInfoList.listOfCAGInfos", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &ExtdCAG__Info_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ExtdCAG__Info_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ExtdCAG__Info_iel_oer_ext_arr_[0] = {}; +const int ExtdCAG__Info_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ExtdCAG__Info_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ExtdCAG__Info_iel_oer_ext_arr_, 0, ExtdCAG__Info_iel_oer_p_}; +const TTCN_Typedescriptor_t ExtdCAG__Info_iel_descr_ = { "@NG_NAS_TypeDefs.ExtdCAG_Info.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ExtdCAG__Info_iel_xer_, &OCTETSTRING_json_, &ExtdCAG__Info_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ExtdCAG__Info +const TTCN_Typedescriptor_t ExtdCAG__Info_descr_ = { "@NG_NAS_TypeDefs.ExtdCAG_Info", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSAG__Info_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSAG__Info_iei_oer_ext_arr_[0] = {}; +const int NSAG__Info_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSAG__Info_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NSAG__Info_iei_oer_ext_arr_, 0, NSAG__Info_iei_oer_p_}; +const TTCN_Typedescriptor_t NSAG__Info_iei_descr_ = { "@NG_NAS_TypeDefs.NSAG_Info.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NSAG__Info_iei_xer_, &OCTETSTRING_json_, &NSAG__Info_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSAG__Info_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSAG__Info_iel_oer_ext_arr_[0] = {}; +const int NSAG__Info_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSAG__Info_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, NSAG__Info_iel_oer_ext_arr_, 0, NSAG__Info_iel_oer_p_}; +const TTCN_Typedescriptor_t NSAG__Info_iel_descr_ = { "@NG_NAS_TypeDefs.NSAG_Info.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &NSAG__Info_iel_xer_, &OCTETSTRING_json_, &NSAG__Info_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSAG__Info_nsagList +const TTCN_Typedescriptor_t NSAG__Info_nsagList_descr_ = { "@NG_NAS_TypeDefs.NSAG_Info.nsagList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NSAG_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSAG_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSAG_iel_oer_ext_arr_[0] = {}; +const int NSAG_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSAG_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NSAG_iel_oer_ext_arr_, 0, NSAG_iel_oer_p_}; +const TTCN_Typedescriptor_t NSAG_iel_descr_ = { "@NG_NAS_TypeDefs.NSAG.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NSAG_iel_xer_, &OCTETSTRING_json_, &NSAG_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSAG_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSAG_id_oer_ext_arr_[0] = {}; +const int NSAG_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSAG_id_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NSAG_id_oer_ext_arr_, 0, NSAG_id_oer_p_}; +const TTCN_Typedescriptor_t NSAG_id_descr_ = { "@NG_NAS_TypeDefs.NSAG.id", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NSAG_id_xer_, &OCTETSTRING_json_, &NSAG_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSAG_priority_xer_ = { {"priority>\n", "priority>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSAG_priority_oer_ext_arr_[0] = {}; +const int NSAG_priority_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSAG_priority_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NSAG_priority_oer_ext_arr_, 0, NSAG_priority_oer_p_}; +const TTCN_Typedescriptor_t NSAG_priority_descr_ = { "@NG_NAS_TypeDefs.NSAG.priority", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NSAG_priority_xer_, &OCTETSTRING_json_, &NSAG_priority_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSAG +const TTCN_Typedescriptor_t NSAG_descr_ = { "@NG_NAS_TypeDefs.NSAG", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSAG__Info +const TTCN_Typedescriptor_t NSAG__Info_descr_ = { "@NG_NAS_TypeDefs.NSAG_Info", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__REGISTRATION__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__REGISTRATION__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__COMPLETE_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_COMPLETE.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__REGISTRATION__COMPLETE_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__COMPLETE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__COMPLETE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_COMPLETE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__REGISTRATION__COMPLETE_securityHeaderType_xer_, &BITSTRING_json_, &NG__REGISTRATION__COMPLETE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__REGISTRATION__COMPLETE_messageType_xer_, &BITSTRING_json_, &NG__REGISTRATION__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__REGISTRATION__COMPLETE +const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__REGISTRATION__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__REGISTRATION__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__REJECT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REJECT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__REGISTRATION__REJECT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__REJECT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__REJECT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REJECT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__REGISTRATION__REJECT_securityHeaderType_xer_, &BITSTRING_json_, &NG__REGISTRATION__REJECT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__REGISTRATION__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__REGISTRATION__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__REGISTRATION__REJECT_messageType_xer_, &BITSTRING_json_, &NG__REGISTRATION__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__REGISTRATION__REJECT +const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_descr_ = { "@NG_NAS_TypeDefs.NG_REGISTRATION_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UL__NAS__TRANSPORT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UL__NAS__TRANSPORT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_UL_NAS_TRANSPORT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__UL__NAS__TRANSPORT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__UL__NAS__TRANSPORT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UL__NAS__TRANSPORT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_UL_NAS_TRANSPORT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__UL__NAS__TRANSPORT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UL__NAS__TRANSPORT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UL__NAS__TRANSPORT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_UL_NAS_TRANSPORT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__UL__NAS__TRANSPORT_securityHeaderType_xer_, &BITSTRING_json_, &NG__UL__NAS__TRANSPORT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UL__NAS__TRANSPORT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UL__NAS__TRANSPORT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_UL_NAS_TRANSPORT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__UL__NAS__TRANSPORT_messageType_xer_, &BITSTRING_json_, &NG__UL__NAS__TRANSPORT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UL__NAS__TRANSPORT_spareHalfOctet2_xer_ = { {"spareHalfOctet2>\n", "spareHalfOctet2>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_spareHalfOctet2_descr_ = { "@NG_NAS_TypeDefs.NG_UL_NAS_TRANSPORT.spareHalfOctet2", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__UL__NAS__TRANSPORT_spareHalfOctet2_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__UL__NAS__TRANSPORT +const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_descr_ = { "@NG_NAS_TypeDefs.NG_UL_NAS_TRANSPORT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SessionId_sessionId_xer_ = { {"sessionId>\n", "sessionId>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SessionId_sessionId_oer_ext_arr_[0] = {}; +const int NG__PDU__SessionId_sessionId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SessionId_sessionId_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SessionId_sessionId_oer_ext_arr_, 0, NG__PDU__SessionId_sessionId_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SessionId_sessionId_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SessionId.sessionId", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SessionId_sessionId_xer_, &OCTETSTRING_json_, &NG__PDU__SessionId_sessionId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SessionId +const TTCN_Typedescriptor_t NG__PDU__SessionId_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SessionId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SessionId_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SessionId_iei_oer_ext_arr_[0] = {}; +const int NG__PDU__SessionId_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SessionId_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SessionId_iei_oer_ext_arr_, 0, NG__PDU__SessionId_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SessionId_iei_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SessionId.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SessionId_iei_xer_, &OCTETSTRING_json_, &NG__PDU__SessionId_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__Request__Type_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__Request__Type_iei_descr_ = { "@NG_NAS_TypeDefs.NG_Request_Type.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__Request__Type_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__Request__Type_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__Request__Type_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__Request__Type_spare_descr_ = { "@NG_NAS_TypeDefs.NG_Request_Type.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__Request__Type_spare_xer_, &BITSTRING_json_, &NG__Request__Type_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__Request__Type_requestValue_xer_ = { {"requestValue>\n", "requestValue>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__Request__Type_requestValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__Request__Type_requestValue_descr_ = { "@NG_NAS_TypeDefs.NG_Request_Type.requestValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &NG__Request__Type_requestValue_xer_, &BITSTRING_json_, &NG__Request__Type_requestValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__Request__Type +const TTCN_Typedescriptor_t NG__Request__Type_descr_ = { "@NG_NAS_TypeDefs.NG_Request_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for S__NSSAI__Type +const TTCN_Typedescriptor_t S__NSSAI__Type_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S__NSSAI__Type_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int S__NSSAI__Type_iei_oer_ext_arr_[0] = {}; +const int S__NSSAI__Type_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t S__NSSAI__Type_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, S__NSSAI__Type_iei_oer_ext_arr_, 0, S__NSSAI__Type_iei_oer_p_}; +const TTCN_Typedescriptor_t S__NSSAI__Type_iei_descr_ = { "@NG_NAS_TypeDefs.S_NSSAI_Type.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &S__NSSAI__Type_iei_xer_, &OCTETSTRING_json_, &S__NSSAI__Type_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DNN_dnnValue_xer_ = { {"dnnValue>\n", "dnnValue>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DNN_dnnValue_oer_ext_arr_[0] = {}; +const int DNN_dnnValue_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DNN_dnnValue_oer_ = { -1, TRUE, -1, FALSE, 0, 0, DNN_dnnValue_oer_ext_arr_, 0, DNN_dnnValue_oer_p_}; +const TTCN_Typedescriptor_t DNN_dnnValue_descr_ = { "@NG_NAS_TypeDefs.DNN.dnnValue", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &DNN_dnnValue_xer_, &OCTETSTRING_json_, &DNN_dnnValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DNN +const TTCN_Typedescriptor_t DNN_descr_ = { "@NG_NAS_TypeDefs.DNN", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DNN_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DNN_iei_oer_ext_arr_[0] = {}; +const int DNN_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DNN_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DNN_iei_oer_ext_arr_, 0, DNN_iei_oer_p_}; +const TTCN_Typedescriptor_t DNN_iei_descr_ = { "@NG_NAS_TypeDefs.DNN.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DNN_iei_xer_, &OCTETSTRING_json_, &DNN_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DNN_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DNN_iel_oer_ext_arr_[0] = {}; +const int DNN_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DNN_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DNN_iel_oer_ext_arr_, 0, DNN_iel_oer_p_}; +const TTCN_Typedescriptor_t DNN_iel_descr_ = { "@NG_NAS_TypeDefs.DNN.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DNN_iel_xer_, &OCTETSTRING_json_, &DNN_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MA__PDUSessionInfo_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t MA__PDUSessionInfo_iei_descr_ = { "@NG_NAS_TypeDefs.MA_PDUSessionInfo.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &MA__PDUSessionInfo_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MA__PDUSessionInfo_maPDUSession_xer_ = { {"maPDUSession>\n", "maPDUSession>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MA__PDUSessionInfo_maPDUSession_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MA__PDUSessionInfo_maPDUSession_descr_ = { "@NG_NAS_TypeDefs.MA_PDUSessionInfo.maPDUSession", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MA__PDUSessionInfo_maPDUSession_xer_, &BITSTRING_json_, &MA__PDUSessionInfo_maPDUSession_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MA__PDUSessionInfo +const TTCN_Typedescriptor_t MA__PDUSessionInfo_descr_ = { "@NG_NAS_TypeDefs.MA_PDUSessionInfo", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DL__NAS__TRANSPORT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DL__NAS__TRANSPORT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_DL_NAS_TRANSPORT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__DL__NAS__TRANSPORT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__DL__NAS__TRANSPORT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DL__NAS__TRANSPORT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_DL_NAS_TRANSPORT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__DL__NAS__TRANSPORT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DL__NAS__TRANSPORT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DL__NAS__TRANSPORT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_DL_NAS_TRANSPORT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__DL__NAS__TRANSPORT_securityHeaderType_xer_, &BITSTRING_json_, &NG__DL__NAS__TRANSPORT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DL__NAS__TRANSPORT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DL__NAS__TRANSPORT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_DL_NAS_TRANSPORT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__DL__NAS__TRANSPORT_messageType_xer_, &BITSTRING_json_, &NG__DL__NAS__TRANSPORT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DL__NAS__TRANSPORT_spareHalfOctet2_xer_ = { {"spareHalfOctet2>\n", "spareHalfOctet2>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_spareHalfOctet2_descr_ = { "@NG_NAS_TypeDefs.NG_DL_NAS_TRANSPORT.spareHalfOctet2", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__DL__NAS__TRANSPORT_spareHalfOctet2_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__DL__NAS__TRANSPORT +const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_descr_ = { "@NG_NAS_TypeDefs.NG_DL_NAS_TRANSPORT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MO.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__DEREGISTRATION__REQUEST__MO_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__DEREGISTRATION__REQUEST__MO_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MO.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__DEREGISTRATION__REQUEST__MO_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MO.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__DEREGISTRATION__REQUEST__MO_securityHeaderType_xer_, &BITSTRING_json_, &NG__DEREGISTRATION__REQUEST__MO_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MO.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__DEREGISTRATION__REQUEST__MO_messageType_xer_, &BITSTRING_json_, &NG__DEREGISTRATION__REQUEST__MO_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeregisterType_switchOff_xer_ = { {"switchOff>\n", "switchOff>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DeregisterType_switchOff_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DeregisterType_switchOff_descr_ = { "@NG_NAS_TypeDefs.DeregisterType.switchOff", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DeregisterType_switchOff_xer_, &BITSTRING_json_, &DeregisterType_switchOff_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeregisterType_reRegistration_xer_ = { {"reRegistration>\n", "reRegistration>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DeregisterType_reRegistration_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DeregisterType_reRegistration_descr_ = { "@NG_NAS_TypeDefs.DeregisterType.reRegistration", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &DeregisterType_reRegistration_xer_, &BITSTRING_json_, &DeregisterType_reRegistration_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DeregisterType_accessType_xer_ = { {"accessType>\n", "accessType>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t DeregisterType_accessType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t DeregisterType_accessType_descr_ = { "@NG_NAS_TypeDefs.DeregisterType.accessType", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &DeregisterType_accessType_xer_, &BITSTRING_json_, &DeregisterType_accessType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DeregisterType +const TTCN_Typedescriptor_t DeregisterType_descr_ = { "@NG_NAS_TypeDefs.DeregisterType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__DEREGISTRATION__REQUEST__MO +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MO", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DEREGISTRATION__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__DEREGISTRATION__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__DEREGISTRATION__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__ACCEPT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_ACCEPT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__DEREGISTRATION__ACCEPT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__ACCEPT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DEREGISTRATION__ACCEPT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_ACCEPT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__DEREGISTRATION__ACCEPT_securityHeaderType_xer_, &BITSTRING_json_, &NG__DEREGISTRATION__ACCEPT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DEREGISTRATION__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__DEREGISTRATION__ACCEPT_messageType_xer_, &BITSTRING_json_, &NG__DEREGISTRATION__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__DEREGISTRATION__ACCEPT +const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__DEREGISTRATION__REQUEST__MT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__DEREGISTRATION__REQUEST__MT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__DEREGISTRATION__REQUEST__MT_securityHeaderType_xer_, &BITSTRING_json_, &NG__DEREGISTRATION__REQUEST__MT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__DEREGISTRATION__REQUEST__MT_messageType_xer_, &BITSTRING_json_, &NG__DEREGISTRATION__REQUEST__MT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet2_xer_ = { {"spareHalfOctet2>\n", "spareHalfOctet2>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet2_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MT.spareHalfOctet2", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet2_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__DEREGISTRATION__REQUEST__MT +const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_descr_ = { "@NG_NAS_TypeDefs.NG_DEREGISTRATION_REQUEST_MT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SERVICE__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__SERVICE__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__SERVICE__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__SERVICE__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &NG__SERVICE__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SERVICE__REQUEST_messageType_xer_, &BITSTRING_json_, &NG__SERVICE__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__REQUEST_serviceType_xer_ = { {"serviceType>\n", "serviceType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__REQUEST_serviceType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_serviceType_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REQUEST.serviceType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__SERVICE__REQUEST_serviceType_xer_, &BITSTRING_json_, &NG__SERVICE__REQUEST_serviceType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__SERVICE__REQUEST +const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SERVICE__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__SERVICE__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__ACCEPT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_ACCEPT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__SERVICE__ACCEPT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__ACCEPT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__ACCEPT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_ACCEPT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__SERVICE__ACCEPT_securityHeaderType_xer_, &BITSTRING_json_, &NG__SERVICE__ACCEPT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SERVICE__ACCEPT_messageType_xer_, &BITSTRING_json_, &NG__SERVICE__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__SERVICE__ACCEPT +const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__REJECT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SERVICE__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__SERVICE__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__REJECT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__SERVICE__REJECT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REJECT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__SERVICE__REJECT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__REJECT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__REJECT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__REJECT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REJECT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__SERVICE__REJECT_securityHeaderType_xer_, &BITSTRING_json_, &NG__SERVICE__REJECT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SERVICE__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SERVICE__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SERVICE__REJECT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SERVICE__REJECT_messageType_xer_, &BITSTRING_json_, &NG__SERVICE__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__SERVICE__REJECT +const TTCN_Typedescriptor_t NG__SERVICE__REJECT_descr_ = { "@NG_NAS_TypeDefs.NG_SERVICE_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMMAND.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__CONFIGURATION__UPDATE__COMMAND_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__CONFIGURATION__UPDATE__COMMAND_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMMAND.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__CONFIGURATION__UPDATE__COMMAND_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMMAND.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__CONFIGURATION__UPDATE__COMMAND_securityHeaderType_xer_, &BITSTRING_json_, &NG__CONFIGURATION__UPDATE__COMMAND_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMMAND.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__CONFIGURATION__UPDATE__COMMAND_messageType_xer_, &BITSTRING_json_, &NG__CONFIGURATION__UPDATE__COMMAND_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__CONFIGURATION__UPDATE__COMMAND +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMMAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ConfigUpdateInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t ConfigUpdateInd_iei_descr_ = { "@NG_NAS_TypeDefs.ConfigUpdateInd.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &ConfigUpdateInd_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ConfigUpdateInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ConfigUpdateInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ConfigUpdateInd_spare_descr_ = { "@NG_NAS_TypeDefs.ConfigUpdateInd.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &ConfigUpdateInd_spare_xer_, &BITSTRING_json_, &ConfigUpdateInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ConfigUpdateInd_red_xer_ = { {"red>\n", "red>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ConfigUpdateInd_red_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ConfigUpdateInd_red_descr_ = { "@NG_NAS_TypeDefs.ConfigUpdateInd.red", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ConfigUpdateInd_red_xer_, &BITSTRING_json_, &ConfigUpdateInd_red_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ConfigUpdateInd_ack_xer_ = { {"ack>\n", "ack>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ConfigUpdateInd_ack_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ConfigUpdateInd_ack_descr_ = { "@NG_NAS_TypeDefs.ConfigUpdateInd.ack", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ConfigUpdateInd_ack_xer_, &BITSTRING_json_, &ConfigUpdateInd_ack_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ConfigUpdateInd +const TTCN_Typedescriptor_t ConfigUpdateInd_descr_ = { "@NG_NAS_TypeDefs.ConfigUpdateInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SMSInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t SMSInd_iei_descr_ = { "@NG_NAS_TypeDefs.SMSInd.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &SMSInd_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SMSInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SMSInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SMSInd_spare_descr_ = { "@NG_NAS_TypeDefs.SMSInd.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &SMSInd_spare_xer_, &BITSTRING_json_, &SMSInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SMSInd_sai_xer_ = { {"sai>\n", "sai>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SMSInd_sai_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SMSInd_sai_descr_ = { "@NG_NAS_TypeDefs.SMSInd.sai", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SMSInd_sai_xer_, &BITSTRING_json_, &SMSInd_sai_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SMSInd +const TTCN_Typedescriptor_t SMSInd_descr_ = { "@NG_NAS_TypeDefs.SMSInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AddConfigInfo_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AddConfigInfo_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AddConfigInfo_spare_descr_ = { "@NG_NAS_TypeDefs.AddConfigInfo.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &AddConfigInfo_spare_xer_, &BITSTRING_json_, &AddConfigInfo_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AddConfigInfo_scmr_xer_ = { {"scmr>\n", "scmr>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AddConfigInfo_scmr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AddConfigInfo_scmr_descr_ = { "@NG_NAS_TypeDefs.AddConfigInfo.scmr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AddConfigInfo_scmr_xer_, &BITSTRING_json_, &AddConfigInfo_scmr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AddConfigInfo +const TTCN_Typedescriptor_t AddConfigInfo_descr_ = { "@NG_NAS_TypeDefs.AddConfigInfo", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AddConfigInfo_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AddConfigInfo_iei_descr_ = { "@NG_NAS_TypeDefs.AddConfigInfo.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &AddConfigInfo_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PriorityInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PriorityInd_iei_descr_ = { "@NG_NAS_TypeDefs.PriorityInd.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &PriorityInd_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PriorityInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PriorityInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PriorityInd_spare_descr_ = { "@NG_NAS_TypeDefs.PriorityInd.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &PriorityInd_spare_xer_, &BITSTRING_json_, &PriorityInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PriorityInd_mpsi_xer_ = { {"mpsi>\n", "mpsi>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PriorityInd_mpsi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PriorityInd_mpsi_descr_ = { "@NG_NAS_TypeDefs.PriorityInd.mpsi", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &PriorityInd_mpsi_xer_, &BITSTRING_json_, &PriorityInd_mpsi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PriorityInd +const TTCN_Typedescriptor_t PriorityInd_descr_ = { "@NG_NAS_TypeDefs.PriorityInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__CONFIGURATION__UPDATE__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__CONFIGURATION__UPDATE__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMPLETE.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__CONFIGURATION__UPDATE__COMPLETE_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMPLETE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__CONFIGURATION__UPDATE__COMPLETE_securityHeaderType_xer_, &BITSTRING_json_, &NG__CONFIGURATION__UPDATE__COMPLETE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__CONFIGURATION__UPDATE__COMPLETE_messageType_xer_, &BITSTRING_json_, &NG__CONFIGURATION__UPDATE__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__CONFIGURATION__UPDATE__COMPLETE +const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_descr_ = { "@NG_NAS_TypeDefs.NG_CONFIGURATION_UPDATE_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__IDENTITY__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__IDENTITY__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__IDENTITY__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__IDENTITY__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__IDENTITY__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__IDENTITY__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__IDENTITY__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__IDENTITY__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__IDENTITY__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &NG__IDENTITY__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__IDENTITY__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__IDENTITY__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__IDENTITY__REQUEST_messageType_xer_, &BITSTRING_json_, &NG__IDENTITY__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__IDENTITY__REQUEST_spareHalfOctet2_xer_ = { {"spareHalfOctet2>\n", "spareHalfOctet2>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_spareHalfOctet2_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_REQUEST.spareHalfOctet2", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__IDENTITY__REQUEST_spareHalfOctet2_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__IDENTITY__REQUEST +const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__IDENTITY__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__IDENTITY__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__IDENTITY__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__IDENTITY__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__IDENTITY__RESPONSE_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_RESPONSE.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__IDENTITY__RESPONSE_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__IDENTITY__RESPONSE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__IDENTITY__RESPONSE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_RESPONSE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__IDENTITY__RESPONSE_securityHeaderType_xer_, &BITSTRING_json_, &NG__IDENTITY__RESPONSE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__IDENTITY__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__IDENTITY__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__IDENTITY__RESPONSE_messageType_xer_, &BITSTRING_json_, &NG__IDENTITY__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__IDENTITY__RESPONSE +const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_descr_ = { "@NG_NAS_TypeDefs.NG_IDENTITY_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NOTIFICATION_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NOTIFICATION_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NOTIFICATION_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NOTIFICATION_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__NOTIFICATION_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NOTIFICATION_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__NOTIFICATION_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__NOTIFICATION_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NOTIFICATION_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NOTIFICATION_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NOTIFICATION_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NOTIFICATION_securityHeaderType_xer_, &BITSTRING_json_, &NG__NOTIFICATION_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NOTIFICATION_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NOTIFICATION_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NOTIFICATION_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NOTIFICATION_messageType_xer_, &BITSTRING_json_, &NG__NOTIFICATION_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NOTIFICATION_spareHalfOctet2_xer_ = { {"spareHalfOctet2>\n", "spareHalfOctet2>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__NOTIFICATION_spareHalfOctet2_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION.spareHalfOctet2", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__NOTIFICATION_spareHalfOctet2_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessType_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AccessType_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AccessType_spare_descr_ = { "@NG_NAS_TypeDefs.AccessType.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &AccessType_spare_xer_, &BITSTRING_json_, &AccessType_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessType_accessType_xer_ = { {"accessType>\n", "accessType>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AccessType_accessType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AccessType_accessType_descr_ = { "@NG_NAS_TypeDefs.AccessType.accessType", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &AccessType_accessType_xer_, &BITSTRING_json_, &AccessType_accessType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AccessType +const TTCN_Typedescriptor_t AccessType_descr_ = { "@NG_NAS_TypeDefs.AccessType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AccessType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AccessType_iei_descr_ = { "@NG_NAS_TypeDefs.AccessType.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &AccessType_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NOTIFICATION +const TTCN_Typedescriptor_t NG__NOTIFICATION_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NOTIFICATION__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NOTIFICATION__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NOTIFICATION__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__NOTIFICATION__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NOTIFICATION__RESPONSE_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION_RESPONSE.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__NOTIFICATION__RESPONSE_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NOTIFICATION__RESPONSE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NOTIFICATION__RESPONSE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION_RESPONSE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NOTIFICATION__RESPONSE_securityHeaderType_xer_, &BITSTRING_json_, &NG__NOTIFICATION__RESPONSE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NOTIFICATION__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NOTIFICATION__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NOTIFICATION__RESPONSE_messageType_xer_, &BITSTRING_json_, &NG__NOTIFICATION__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NOTIFICATION__RESPONSE +const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_descr_ = { "@NG_NAS_TypeDefs.NG_NOTIFICATION_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__COMMAND_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMMAND_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMMAND.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SECURITY__MODE__COMMAND_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__SECURITY__MODE__COMMAND_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__COMMAND_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMMAND.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__SECURITY__MODE__COMMAND_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__COMMAND_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMMAND_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMMAND.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__SECURITY__MODE__COMMAND_securityHeaderType_xer_, &BITSTRING_json_, &NG__SECURITY__MODE__COMMAND_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__COMMAND_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMMAND_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMMAND.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SECURITY__MODE__COMMAND_messageType_xer_, &BITSTRING_json_, &NG__SECURITY__MODE__COMMAND_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityAlgorithms_cipheringType_xer_ = { {"cipheringType>\n", "cipheringType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityAlgorithms_cipheringType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityAlgorithms_cipheringType_descr_ = { "@NG_NAS_TypeDefs.NG_NAS_SecurityAlgorithms.cipheringType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NAS__SecurityAlgorithms_cipheringType_xer_, &BITSTRING_json_, &NG__NAS__SecurityAlgorithms_cipheringType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityAlgorithms_integrityType_xer_ = { {"integrityType>\n", "integrityType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityAlgorithms_integrityType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityAlgorithms_integrityType_descr_ = { "@NG_NAS_TypeDefs.NG_NAS_SecurityAlgorithms.integrityType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NAS__SecurityAlgorithms_integrityType_xer_, &BITSTRING_json_, &NG__NAS__SecurityAlgorithms_integrityType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__SecurityAlgorithms +const TTCN_Typedescriptor_t NG__NAS__SecurityAlgorithms_descr_ = { "@NG_NAS_TypeDefs.NG_NAS_SecurityAlgorithms", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityAlgorithms_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NAS__SecurityAlgorithms_iei_oer_ext_arr_[0] = {}; +const int NG__NAS__SecurityAlgorithms_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NAS__SecurityAlgorithms_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__NAS__SecurityAlgorithms_iei_oer_ext_arr_, 0, NG__NAS__SecurityAlgorithms_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__NAS__SecurityAlgorithms_iei_descr_ = { "@NG_NAS_TypeDefs.NG_NAS_SecurityAlgorithms.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__NAS__SecurityAlgorithms_iei_xer_, &OCTETSTRING_json_, &NG__NAS__SecurityAlgorithms_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__COMMAND_spareHalfOctet2_xer_ = { {"spareHalfOctet2>\n", "spareHalfOctet2>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_spareHalfOctet2_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMMAND.spareHalfOctet2", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__SECURITY__MODE__COMMAND_spareHalfOctet2_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__SECURITY__MODE__COMMAND +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMMAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalSecurityInfo_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalSecurityInfo_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalSecurityInfo_spareBits_descr_ = { "@NG_NAS_TypeDefs.AdditionalSecurityInfo.spareBits", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &AdditionalSecurityInfo_spareBits_xer_, &BITSTRING_json_, &AdditionalSecurityInfo_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalSecurityInfo_rinmr_xer_ = { {"rinmr>\n", "rinmr>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalSecurityInfo_rinmr_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalSecurityInfo_rinmr_descr_ = { "@NG_NAS_TypeDefs.AdditionalSecurityInfo.rinmr", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AdditionalSecurityInfo_rinmr_xer_, &BITSTRING_json_, &AdditionalSecurityInfo_rinmr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalSecurityInfo_hdp_xer_ = { {"hdp>\n", "hdp>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AdditionalSecurityInfo_hdp_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AdditionalSecurityInfo_hdp_descr_ = { "@NG_NAS_TypeDefs.AdditionalSecurityInfo.hdp", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AdditionalSecurityInfo_hdp_xer_, &BITSTRING_json_, &AdditionalSecurityInfo_hdp_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AdditionalSecurityInfo +const TTCN_Typedescriptor_t AdditionalSecurityInfo_descr_ = { "@NG_NAS_TypeDefs.AdditionalSecurityInfo", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalSecurityInfo_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AdditionalSecurityInfo_iei_oer_ext_arr_[0] = {}; +const int AdditionalSecurityInfo_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AdditionalSecurityInfo_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AdditionalSecurityInfo_iei_oer_ext_arr_, 0, AdditionalSecurityInfo_iei_oer_p_}; +const TTCN_Typedescriptor_t AdditionalSecurityInfo_iei_descr_ = { "@NG_NAS_TypeDefs.AdditionalSecurityInfo.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AdditionalSecurityInfo_iei_xer_, &OCTETSTRING_json_, &AdditionalSecurityInfo_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AdditionalSecurityInfo_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AdditionalSecurityInfo_iel_oer_ext_arr_[0] = {}; +const int AdditionalSecurityInfo_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AdditionalSecurityInfo_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, AdditionalSecurityInfo_iel_oer_ext_arr_, 0, AdditionalSecurityInfo_iel_oer_p_}; +const TTCN_Typedescriptor_t AdditionalSecurityInfo_iel_descr_ = { "@NG_NAS_TypeDefs.AdditionalSecurityInfo.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &AdditionalSecurityInfo_iel_xer_, &OCTETSTRING_json_, &AdditionalSecurityInfo_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for S1__UE__SecurityCapability +const TTCN_Typedescriptor_t S1__UE__SecurityCapability_descr_ = { "@NG_NAS_TypeDefs.S1_UE_SecurityCapability", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S1__UE__SecurityCapability_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int S1__UE__SecurityCapability_iei_oer_ext_arr_[0] = {}; +const int S1__UE__SecurityCapability_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t S1__UE__SecurityCapability_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, S1__UE__SecurityCapability_iei_oer_ext_arr_, 0, S1__UE__SecurityCapability_iei_oer_p_}; +const TTCN_Typedescriptor_t S1__UE__SecurityCapability_iei_descr_ = { "@NG_NAS_TypeDefs.S1_UE_SecurityCapability.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &S1__UE__SecurityCapability_iei_xer_, &OCTETSTRING_json_, &S1__UE__SecurityCapability_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SECURITY__MODE__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__SECURITY__MODE__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__COMPLETE_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMPLETE.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__SECURITY__MODE__COMPLETE_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__COMPLETE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMPLETE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMPLETE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__SECURITY__MODE__COMPLETE_securityHeaderType_xer_, &BITSTRING_json_, &NG__SECURITY__MODE__COMPLETE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SECURITY__MODE__COMPLETE_messageType_xer_, &BITSTRING_json_, &NG__SECURITY__MODE__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__SECURITY__MODE__COMPLETE +const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__MODE__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SECURITY__MODE__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__SECURITY__MODE__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__REJECT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_REJECT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__SECURITY__MODE__REJECT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__REJECT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__MODE__REJECT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_REJECT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__SECURITY__MODE__REJECT_securityHeaderType_xer_, &BITSTRING_json_, &NG__SECURITY__MODE__REJECT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__MODE__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__MODE__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SECURITY__MODE__REJECT_messageType_xer_, &BITSTRING_json_, &NG__SECURITY__MODE__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__SECURITY__MODE__REJECT +const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_MODE_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_PROTECTED_NAS_MESSAGE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_PROTECTED_NAS_MESSAGE.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__SECURITY__PROTECTED__NAS__MESSAGE_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_PROTECTED_NAS_MESSAGE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_xer_, &BITSTRING_json_, &NG__SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_xer_ = { {"messageAuthenticationCode>\n", "messageAuthenticationCode>\n"}, {27, 27}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_ext_arr_[0] = {}; +const int NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_ = { -1, TRUE, 4, FALSE, 0, 0, NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_ext_arr_, 0, NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_p_}; +const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_PROTECTED_NAS_MESSAGE.messageAuthenticationCode", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_xer_, &OCTETSTRING_json_, &NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_xer_ = { {"sequenceNumber>\n", "sequenceNumber>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_ext_arr_[0] = {}; +const int NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_ext_arr_, 0, NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_p_}; +const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_PROTECTED_NAS_MESSAGE.sequenceNumber", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_xer_, &OCTETSTRING_json_, &NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_xer_ = { {"plainNASMessage>\n", "plainNASMessage>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_oer_ext_arr_[0] = {}; +const int NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_oer_ext_arr_, 0, NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_oer_p_}; +const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_PROTECTED_NAS_MESSAGE.plainNASMessage", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_xer_, &OCTETSTRING_json_, &NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__SECURITY__PROTECTED__NAS__MESSAGE +const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_descr_ = { "@NG_NAS_TypeDefs.NG_SECURITY_PROTECTED_NAS_MESSAGE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__STATUS_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__STATUS_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__STATUS_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_STATUS.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__GMM__STATUS_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__GMM__STATUS_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__STATUS_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__GMM__STATUS_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_STATUS.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__GMM__STATUS_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__STATUS_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__STATUS_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__STATUS_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_STATUS.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__GMM__STATUS_securityHeaderType_xer_, &BITSTRING_json_, &NG__GMM__STATUS_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GMM__STATUS_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GMM__STATUS_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GMM__STATUS_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_STATUS.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__GMM__STATUS_messageType_xer_, &BITSTRING_json_, &NG__GMM__STATUS_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__GMM__STATUS +const TTCN_Typedescriptor_t NG__GMM__STATUS_descr_ = { "@NG_NAS_TypeDefs.NG_GMM_STATUS", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CP__SERVICE__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CP__SERVICE__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_CP_SERVICE_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__CP__SERVICE__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__CP__SERVICE__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CP__SERVICE__REQUEST_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_CP_SERVICE_REQUEST.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__CP__SERVICE__REQUEST_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CP__SERVICE__REQUEST_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CP__SERVICE__REQUEST_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_CP_SERVICE_REQUEST.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__CP__SERVICE__REQUEST_securityHeaderType_xer_, &BITSTRING_json_, &NG__CP__SERVICE__REQUEST_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__CP__SERVICE__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__CP__SERVICE__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_CP_SERVICE_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__CP__SERVICE__REQUEST_messageType_xer_, &BITSTRING_json_, &NG__CP__SERVICE__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CP__ServiceType_tsc_xer_ = { {"tsc>\n", "tsc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CP__ServiceType_tsc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CP__ServiceType_tsc_descr_ = { "@NG_NAS_TypeDefs.CP_ServiceType.tsc", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &CP__ServiceType_tsc_xer_, &BITSTRING_json_, &CP__ServiceType_tsc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CP__ServiceType_nasKeySetId_xer_ = { {"nasKeySetId>\n", "nasKeySetId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CP__ServiceType_nasKeySetId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CP__ServiceType_nasKeySetId_descr_ = { "@NG_NAS_TypeDefs.CP_ServiceType.nasKeySetId", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &CP__ServiceType_nasKeySetId_xer_, &BITSTRING_json_, &CP__ServiceType_nasKeySetId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CP__ServiceType +const TTCN_Typedescriptor_t CP__ServiceType_descr_ = { "@NG_NAS_TypeDefs.CP_ServiceType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CP__ServiceType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t CP__ServiceType_iei_descr_ = { "@NG_NAS_TypeDefs.CP_ServiceType.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &CP__ServiceType_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__CP__SERVICE__REQUEST +const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_descr_ = { "@NG_NAS_TypeDefs.NG_CP_SERVICE_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CIoTSmallDataRxdString_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CIoTSmallDataRxdString_iei_oer_ext_arr_[0] = {}; +const int CIoTSmallDataRxdString_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CIoTSmallDataRxdString_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CIoTSmallDataRxdString_iei_oer_ext_arr_, 0, CIoTSmallDataRxdString_iei_oer_p_}; +const TTCN_Typedescriptor_t CIoTSmallDataRxdString_iei_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataRxdString.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CIoTSmallDataRxdString_iei_xer_, &OCTETSTRING_json_, &CIoTSmallDataRxdString_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CIoTSmallDataRxdString_encodedstring_xer_ = { {"encodedstring>\n", "encodedstring>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CIoTSmallDataRxdString_encodedstring_oer_ext_arr_[0] = {}; +const int CIoTSmallDataRxdString_encodedstring_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CIoTSmallDataRxdString_encodedstring_oer_ = { -1, TRUE, -1, FALSE, 0, 0, CIoTSmallDataRxdString_encodedstring_oer_ext_arr_, 0, CIoTSmallDataRxdString_encodedstring_oer_p_}; +const TTCN_Typedescriptor_t CIoTSmallDataRxdString_encodedstring_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataRxdString.encodedstring", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &CIoTSmallDataRxdString_encodedstring_xer_, &OCTETSTRING_json_, &CIoTSmallDataRxdString_encodedstring_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CIoTSmallDataRxdString +const TTCN_Typedescriptor_t CIoTSmallDataRxdString_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataRxdString", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_securityHeaderType_xer_, &BITSTRING_json_, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_messageType_xer_, &BITSTRING_json_, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_securityHeaderType_xer_, &BITSTRING_json_, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_messageType_xer_, &BITSTRING_json_, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_spareHalfOctet_xer_ = { {"spareHalfOctet>\n", "spareHalfOctet>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_spareHalfOctet_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT.spareHalfOctet", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_spareHalfOctet_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_securityHeaderType_xer_ = { {"securityHeaderType>\n", "securityHeaderType>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_securityHeaderType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_securityHeaderType_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT.securityHeaderType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_securityHeaderType_xer_, &BITSTRING_json_, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_securityHeaderType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_messageType_xer_, &BITSTRING_json_, &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT +const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_descr_ = { "@NG_NAS_TypeDefs.NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__ESTABLISHMENT__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__ESTABLISHMENT__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__ESTABLISHMENT__REQUEST_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__ESTABLISHMENT__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntegrityProtMaxDataRate_maxDataRateUL_xer_ = { {"maxDataRateUL>\n", "maxDataRateUL>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IntegrityProtMaxDataRate_maxDataRateUL_oer_ext_arr_[0] = {}; +const int IntegrityProtMaxDataRate_maxDataRateUL_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IntegrityProtMaxDataRate_maxDataRateUL_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IntegrityProtMaxDataRate_maxDataRateUL_oer_ext_arr_, 0, IntegrityProtMaxDataRate_maxDataRateUL_oer_p_}; +const TTCN_Typedescriptor_t IntegrityProtMaxDataRate_maxDataRateUL_descr_ = { "@NG_NAS_TypeDefs.IntegrityProtMaxDataRate.maxDataRateUL", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IntegrityProtMaxDataRate_maxDataRateUL_xer_, &OCTETSTRING_json_, &IntegrityProtMaxDataRate_maxDataRateUL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntegrityProtMaxDataRate_maxDataRateDL_xer_ = { {"maxDataRateDL>\n", "maxDataRateDL>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IntegrityProtMaxDataRate_maxDataRateDL_oer_ext_arr_[0] = {}; +const int IntegrityProtMaxDataRate_maxDataRateDL_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IntegrityProtMaxDataRate_maxDataRateDL_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IntegrityProtMaxDataRate_maxDataRateDL_oer_ext_arr_, 0, IntegrityProtMaxDataRate_maxDataRateDL_oer_p_}; +const TTCN_Typedescriptor_t IntegrityProtMaxDataRate_maxDataRateDL_descr_ = { "@NG_NAS_TypeDefs.IntegrityProtMaxDataRate.maxDataRateDL", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IntegrityProtMaxDataRate_maxDataRateDL_xer_, &OCTETSTRING_json_, &IntegrityProtMaxDataRate_maxDataRateDL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IntegrityProtMaxDataRate +const TTCN_Typedescriptor_t IntegrityProtMaxDataRate_descr_ = { "@NG_NAS_TypeDefs.IntegrityProtMaxDataRate", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntegrityProtMaxDataRate_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IntegrityProtMaxDataRate_iei_oer_ext_arr_[0] = {}; +const int IntegrityProtMaxDataRate_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IntegrityProtMaxDataRate_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IntegrityProtMaxDataRate_iei_oer_ext_arr_, 0, IntegrityProtMaxDataRate_iei_oer_p_}; +const TTCN_Typedescriptor_t IntegrityProtMaxDataRate_iei_descr_ = { "@NG_NAS_TypeDefs.IntegrityProtMaxDataRate.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IntegrityProtMaxDataRate_iei_xer_, &OCTETSTRING_json_, &IntegrityProtMaxDataRate_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__ESTABLISHMENT__REQUEST +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionType_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDU__SessionType_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDU__SessionType_spare_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionType.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &PDU__SessionType_spare_xer_, &BITSTRING_json_, &PDU__SessionType_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionType_typeValue_xer_ = { {"typeValue>\n", "typeValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDU__SessionType_typeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDU__SessionType_typeValue_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionType.typeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &PDU__SessionType_typeValue_xer_, &BITSTRING_json_, &PDU__SessionType_typeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDU__SessionType +const TTCN_Typedescriptor_t PDU__SessionType_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionType", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__SessionType_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t PDU__SessionType_iei_descr_ = { "@NG_NAS_TypeDefs.PDU_SessionType.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &PDU__SessionType_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SSC__Mode_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SSC__Mode_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SSC__Mode_spare_descr_ = { "@NG_NAS_TypeDefs.SSC_Mode.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &SSC__Mode_spare_xer_, &BITSTRING_json_, &SSC__Mode_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SSC__Mode_sscModeValue_xer_ = { {"sscModeValue>\n", "sscModeValue>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SSC__Mode_sscModeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SSC__Mode_sscModeValue_descr_ = { "@NG_NAS_TypeDefs.SSC_Mode.sscModeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &SSC__Mode_sscModeValue_xer_, &BITSTRING_json_, &SSC__Mode_sscModeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SSC__Mode +const TTCN_Typedescriptor_t SSC__Mode_descr_ = { "@NG_NAS_TypeDefs.SSC_Mode", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SSC__Mode_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t SSC__Mode_iei_descr_ = { "@NG_NAS_TypeDefs.SSC_Mode.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &SSC__Mode_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_tpmic_xer_ = { {"tpmic>\n", "tpmic>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_tpmic_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_tpmic_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.tpmic", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__UE__SM__Cap_tpmic_xer_, &BITSTRING_json_, &NG__UE__SM__Cap_tpmic_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_atsssST_xer_ = { {"atsssST>\n", "atsssST>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_atsssST_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_atsssST_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.atsssST", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__UE__SM__Cap_atsssST_xer_, &BITSTRING_json_, &NG__UE__SM__Cap_atsssST_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_ept__S1_xer_ = { {"ept_S1>\n", "ept_S1>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_ept__S1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_ept__S1_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.ept_S1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__UE__SM__Cap_ept__S1_xer_, &BITSTRING_json_, &NG__UE__SM__Cap_ept__S1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_mh6__PDU_xer_ = { {"mh6_PDU>\n", "mh6_PDU>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_mh6__PDU_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_mh6__PDU_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.mh6_PDU", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__UE__SM__Cap_mh6__PDU_xer_, &BITSTRING_json_, &NG__UE__SM__Cap_mh6__PDU_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_rQoS_xer_ = { {"rQoS>\n", "rQoS>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_rQoS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_rQoS_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.rQoS", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__UE__SM__Cap_rQoS_xer_, &BITSTRING_json_, &NG__UE__SM__Cap_rQoS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__UE__SM__Cap +const TTCN_Typedescriptor_t NG__UE__SM__Cap_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SM__Cap_iei_oer_ext_arr_[0] = {}; +const int NG__UE__SM__Cap_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UE__SM__Cap_iei_oer_ext_arr_, 0, NG__UE__SM__Cap_iei_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_iei_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UE__SM__Cap_iei_xer_, &OCTETSTRING_json_, &NG__UE__SM__Cap_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SM__Cap_iel_oer_ext_arr_[0] = {}; +const int NG__UE__SM__Cap_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__UE__SM__Cap_iel_oer_ext_arr_, 0, NG__UE__SM__Cap_iel_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_iel_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__UE__SM__Cap_iel_xer_, &OCTETSTRING_json_, &NG__UE__SM__Cap_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_spareBits_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.spareBits", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &NG__UE__SM__Cap_spareBits_xer_, &BITSTRING_json_, &NG__UE__SM__Cap_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_apmqf_xer_ = { {"apmqf>\n", "apmqf>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_apmqf_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_apmqf_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.apmqf", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NG__UE__SM__Cap_apmqf_xer_, &BITSTRING_json_, &NG__UE__SM__Cap_apmqf_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__UE__SM__Cap_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__UE__SM__Cap_spare_oer_ext_arr_[0] = {}; +const int NG__UE__SM__Cap_spare_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__UE__SM__Cap_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__UE__SM__Cap_spare_oer_ext_arr_, 0, NG__UE__SM__Cap_spare_oer_p_}; +const TTCN_Typedescriptor_t NG__UE__SM__Cap_spare_descr_ = { "@NG_NAS_TypeDefs.NG_UE_SM_Cap.spare", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__UE__SM__Cap_spare_xer_, &OCTETSTRING_json_, &NG__UE__SM__Cap_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MaxNumPacketFilters_numOfFilters_xer_ = { {"numOfFilters>\n", "numOfFilters>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MaxNumPacketFilters_numOfFilters_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MaxNumPacketFilters_numOfFilters_descr_ = { "@NG_NAS_TypeDefs.MaxNumPacketFilters.numOfFilters", &BITSTRING_ber_, &CommonDefs::B11__Type_raw_, NULL, &MaxNumPacketFilters_numOfFilters_xer_, &BITSTRING_json_, &MaxNumPacketFilters_numOfFilters_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MaxNumPacketFilters_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MaxNumPacketFilters_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MaxNumPacketFilters_spareBits_descr_ = { "@NG_NAS_TypeDefs.MaxNumPacketFilters.spareBits", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &MaxNumPacketFilters_spareBits_xer_, &BITSTRING_json_, &MaxNumPacketFilters_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MaxNumPacketFilters +const TTCN_Typedescriptor_t MaxNumPacketFilters_descr_ = { "@NG_NAS_TypeDefs.MaxNumPacketFilters", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MaxNumPacketFilters_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MaxNumPacketFilters_iei_oer_ext_arr_[0] = {}; +const int MaxNumPacketFilters_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MaxNumPacketFilters_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MaxNumPacketFilters_iei_oer_ext_arr_, 0, MaxNumPacketFilters_iei_oer_p_}; +const TTCN_Typedescriptor_t MaxNumPacketFilters_iei_descr_ = { "@NG_NAS_TypeDefs.MaxNumPacketFilters.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MaxNumPacketFilters_iei_xer_, &OCTETSTRING_json_, &MaxNumPacketFilters_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AlwaysOnPDUSessionInd_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AlwaysOnPDUSessionInd_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AlwaysOnPDUSessionInd_spare_descr_ = { "@NG_NAS_TypeDefs.AlwaysOnPDUSessionInd.spare", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &AlwaysOnPDUSessionInd_spare_xer_, &BITSTRING_json_, &AlwaysOnPDUSessionInd_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AlwaysOnPDUSessionInd_apsi_xer_ = { {"apsi>\n", "apsi>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AlwaysOnPDUSessionInd_apsi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AlwaysOnPDUSessionInd_apsi_descr_ = { "@NG_NAS_TypeDefs.AlwaysOnPDUSessionInd.apsi", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AlwaysOnPDUSessionInd_apsi_xer_, &BITSTRING_json_, &AlwaysOnPDUSessionInd_apsi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AlwaysOnPDUSessionInd +const TTCN_Typedescriptor_t AlwaysOnPDUSessionInd_descr_ = { "@NG_NAS_TypeDefs.AlwaysOnPDUSessionInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AlwaysOnPDUSessionInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AlwaysOnPDUSessionInd_iei_descr_ = { "@NG_NAS_TypeDefs.AlwaysOnPDUSessionInd.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &AlwaysOnPDUSessionInd_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const TTCN_Typedescriptor_t& AlwaysOnPDUSessionReq_descr_ = AlwaysOnPDUSessionInd_descr_; +const XERdescriptor_t SM__PDU__DN__RequestContainer_dnSpecificId_xer_ = { {"dnSpecificId>\n", "dnSpecificId>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SM__PDU__DN__RequestContainer_dnSpecificId_oer_ext_arr_[0] = {}; +const int SM__PDU__DN__RequestContainer_dnSpecificId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SM__PDU__DN__RequestContainer_dnSpecificId_oer_ = { -1, TRUE, -1, FALSE, 0, 0, SM__PDU__DN__RequestContainer_dnSpecificId_oer_ext_arr_, 0, SM__PDU__DN__RequestContainer_dnSpecificId_oer_p_}; +const TTCN_Typedescriptor_t SM__PDU__DN__RequestContainer_dnSpecificId_descr_ = { "@NG_NAS_TypeDefs.SM_PDU_DN_RequestContainer.dnSpecificId", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &SM__PDU__DN__RequestContainer_dnSpecificId_xer_, &OCTETSTRING_json_, &SM__PDU__DN__RequestContainer_dnSpecificId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SM__PDU__DN__RequestContainer +const TTCN_Typedescriptor_t SM__PDU__DN__RequestContainer_descr_ = { "@NG_NAS_TypeDefs.SM_PDU_DN_RequestContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SM__PDU__DN__RequestContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SM__PDU__DN__RequestContainer_iei_oer_ext_arr_[0] = {}; +const int SM__PDU__DN__RequestContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SM__PDU__DN__RequestContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SM__PDU__DN__RequestContainer_iei_oer_ext_arr_, 0, SM__PDU__DN__RequestContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t SM__PDU__DN__RequestContainer_iei_descr_ = { "@NG_NAS_TypeDefs.SM_PDU_DN_RequestContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SM__PDU__DN__RequestContainer_iei_xer_, &OCTETSTRING_json_, &SM__PDU__DN__RequestContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SM__PDU__DN__RequestContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int SM__PDU__DN__RequestContainer_iel_oer_ext_arr_[0] = {}; +const int SM__PDU__DN__RequestContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t SM__PDU__DN__RequestContainer_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, SM__PDU__DN__RequestContainer_iel_oer_ext_arr_, 0, SM__PDU__DN__RequestContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t SM__PDU__DN__RequestContainer_iel_descr_ = { "@NG_NAS_TypeDefs.SM_PDU_DN_RequestContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &SM__PDU__DN__RequestContainer_iel_xer_, &OCTETSTRING_json_, &SM__PDU__DN__RequestContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_spare_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IPHeaderCompressionConfig_spare_xer_, &BITSTRING_json_, &IPHeaderCompressionConfig_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_profile104_xer_ = { {"profile104>\n", "profile104>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile104_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile104_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.profile104", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IPHeaderCompressionConfig_profile104_xer_, &BITSTRING_json_, &IPHeaderCompressionConfig_profile104_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_profile103_xer_ = { {"profile103>\n", "profile103>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile103_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile103_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.profile103", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IPHeaderCompressionConfig_profile103_xer_, &BITSTRING_json_, &IPHeaderCompressionConfig_profile103_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_profile102_xer_ = { {"profile102>\n", "profile102>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile102_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile102_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.profile102", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IPHeaderCompressionConfig_profile102_xer_, &BITSTRING_json_, &IPHeaderCompressionConfig_profile102_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_profile6_xer_ = { {"profile6>\n", "profile6>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile6_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.profile6", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IPHeaderCompressionConfig_profile6_xer_, &BITSTRING_json_, &IPHeaderCompressionConfig_profile6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_profile4_xer_ = { {"profile4>\n", "profile4>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile4_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.profile4", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IPHeaderCompressionConfig_profile4_xer_, &BITSTRING_json_, &IPHeaderCompressionConfig_profile4_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_profile3_xer_ = { {"profile3>\n", "profile3>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile3_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.profile3", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IPHeaderCompressionConfig_profile3_xer_, &BITSTRING_json_, &IPHeaderCompressionConfig_profile3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_profile2_xer_ = { {"profile2>\n", "profile2>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile2_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.profile2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IPHeaderCompressionConfig_profile2_xer_, &BITSTRING_json_, &IPHeaderCompressionConfig_profile2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_maxCID_xer_ = { {"maxCID>\n", "maxCID>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IPHeaderCompressionConfig_maxCID_oer_ext_arr_[0] = {}; +const int IPHeaderCompressionConfig_maxCID_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_maxCID_oer_ = { -1, TRUE, 2, FALSE, 0, 0, IPHeaderCompressionConfig_maxCID_oer_ext_arr_, 0, IPHeaderCompressionConfig_maxCID_oer_p_}; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_maxCID_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.maxCID", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &IPHeaderCompressionConfig_maxCID_xer_, &OCTETSTRING_json_, &IPHeaderCompressionConfig_maxCID_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IPHeaderCompressionConfig +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IPHeaderCompressionConfig_iei_oer_ext_arr_[0] = {}; +const int IPHeaderCompressionConfig_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IPHeaderCompressionConfig_iei_oer_ext_arr_, 0, IPHeaderCompressionConfig_iei_oer_p_}; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_iei_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IPHeaderCompressionConfig_iei_xer_, &OCTETSTRING_json_, &IPHeaderCompressionConfig_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IPHeaderCompressionConfig_iel_oer_ext_arr_[0] = {}; +const int IPHeaderCompressionConfig_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IPHeaderCompressionConfig_iel_oer_ext_arr_, 0, IPHeaderCompressionConfig_iel_oer_p_}; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_iel_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IPHeaderCompressionConfig_iel_xer_, &OCTETSTRING_json_, &IPHeaderCompressionConfig_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_addParamsType_xer_ = { {"addParamsType>\n", "addParamsType>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IPHeaderCompressionConfig_addParamsType_oer_ext_arr_[0] = {}; +const int IPHeaderCompressionConfig_addParamsType_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_addParamsType_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IPHeaderCompressionConfig_addParamsType_oer_ext_arr_, 0, IPHeaderCompressionConfig_addParamsType_oer_p_}; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_addParamsType_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.addParamsType", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IPHeaderCompressionConfig_addParamsType_xer_, &OCTETSTRING_json_, &IPHeaderCompressionConfig_addParamsType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IPHeaderCompressionConfig_addParamsContainer_xer_ = { {"addParamsContainer>\n", "addParamsContainer>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IPHeaderCompressionConfig_addParamsContainer_oer_ext_arr_[0] = {}; +const int IPHeaderCompressionConfig_addParamsContainer_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IPHeaderCompressionConfig_addParamsContainer_oer_ = { -1, TRUE, -1, FALSE, 0, 0, IPHeaderCompressionConfig_addParamsContainer_oer_ext_arr_, 0, IPHeaderCompressionConfig_addParamsContainer_oer_p_}; +const TTCN_Typedescriptor_t IPHeaderCompressionConfig_addParamsContainer_descr_ = { "@NG_NAS_TypeDefs.IPHeaderCompressionConfig.addParamsContainer", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &IPHeaderCompressionConfig_addParamsContainer_xer_, &OCTETSTRING_json_, &IPHeaderCompressionConfig_addParamsContainer_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DS__TT__EthernetPortMACAddr_addressContents_xer_ = { {"addressContents>\n", "addressContents>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DS__TT__EthernetPortMACAddr_addressContents_oer_ext_arr_[0] = {}; +const int DS__TT__EthernetPortMACAddr_addressContents_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DS__TT__EthernetPortMACAddr_addressContents_oer_ = { -1, TRUE, 6, FALSE, 0, 0, DS__TT__EthernetPortMACAddr_addressContents_oer_ext_arr_, 0, DS__TT__EthernetPortMACAddr_addressContents_oer_p_}; +const TTCN_Typedescriptor_t DS__TT__EthernetPortMACAddr_addressContents_descr_ = { "@NG_NAS_TypeDefs.DS_TT_EthernetPortMACAddr.addressContents", &OCTETSTRING_ber_, &CommonDefs::O6__Type_raw_, &OCTETSTRING_text_, &DS__TT__EthernetPortMACAddr_addressContents_xer_, &OCTETSTRING_json_, &DS__TT__EthernetPortMACAddr_addressContents_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for DS__TT__EthernetPortMACAddr +const TTCN_Typedescriptor_t DS__TT__EthernetPortMACAddr_descr_ = { "@NG_NAS_TypeDefs.DS_TT_EthernetPortMACAddr", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DS__TT__EthernetPortMACAddr_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DS__TT__EthernetPortMACAddr_iei_oer_ext_arr_[0] = {}; +const int DS__TT__EthernetPortMACAddr_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DS__TT__EthernetPortMACAddr_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DS__TT__EthernetPortMACAddr_iei_oer_ext_arr_, 0, DS__TT__EthernetPortMACAddr_iei_oer_p_}; +const TTCN_Typedescriptor_t DS__TT__EthernetPortMACAddr_iei_descr_ = { "@NG_NAS_TypeDefs.DS_TT_EthernetPortMACAddr.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DS__TT__EthernetPortMACAddr_iei_xer_, &OCTETSTRING_json_, &DS__TT__EthernetPortMACAddr_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t DS__TT__EthernetPortMACAddr_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int DS__TT__EthernetPortMACAddr_iel_oer_ext_arr_[0] = {}; +const int DS__TT__EthernetPortMACAddr_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t DS__TT__EthernetPortMACAddr_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, DS__TT__EthernetPortMACAddr_iel_oer_ext_arr_, 0, DS__TT__EthernetPortMACAddr_iel_oer_p_}; +const TTCN_Typedescriptor_t DS__TT__EthernetPortMACAddr_iel_descr_ = { "@NG_NAS_TypeDefs.DS_TT_EthernetPortMACAddr.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &DS__TT__EthernetPortMACAddr_iel_xer_, &OCTETSTRING_json_, &DS__TT__EthernetPortMACAddr_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__DS__TT__ResidenceTime_timeContents_xer_ = { {"timeContents>\n", "timeContents>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__DS__TT__ResidenceTime_timeContents_oer_ext_arr_[0] = {}; +const int UE__DS__TT__ResidenceTime_timeContents_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__DS__TT__ResidenceTime_timeContents_oer_ = { -1, TRUE, 8, FALSE, 0, 0, UE__DS__TT__ResidenceTime_timeContents_oer_ext_arr_, 0, UE__DS__TT__ResidenceTime_timeContents_oer_p_}; +const TTCN_Typedescriptor_t UE__DS__TT__ResidenceTime_timeContents_descr_ = { "@NG_NAS_TypeDefs.UE_DS_TT_ResidenceTime.timeContents", &OCTETSTRING_ber_, &CommonDefs::O8__Type_raw_, &OCTETSTRING_text_, &UE__DS__TT__ResidenceTime_timeContents_xer_, &OCTETSTRING_json_, &UE__DS__TT__ResidenceTime_timeContents_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__DS__TT__ResidenceTime +const TTCN_Typedescriptor_t UE__DS__TT__ResidenceTime_descr_ = { "@NG_NAS_TypeDefs.UE_DS_TT_ResidenceTime", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__DS__TT__ResidenceTime_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__DS__TT__ResidenceTime_iei_oer_ext_arr_[0] = {}; +const int UE__DS__TT__ResidenceTime_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__DS__TT__ResidenceTime_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__DS__TT__ResidenceTime_iei_oer_ext_arr_, 0, UE__DS__TT__ResidenceTime_iei_oer_p_}; +const TTCN_Typedescriptor_t UE__DS__TT__ResidenceTime_iei_descr_ = { "@NG_NAS_TypeDefs.UE_DS_TT_ResidenceTime.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__DS__TT__ResidenceTime_iei_xer_, &OCTETSTRING_json_, &UE__DS__TT__ResidenceTime_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__DS__TT__ResidenceTime_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UE__DS__TT__ResidenceTime_iel_oer_ext_arr_[0] = {}; +const int UE__DS__TT__ResidenceTime_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UE__DS__TT__ResidenceTime_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UE__DS__TT__ResidenceTime_iel_oer_ext_arr_, 0, UE__DS__TT__ResidenceTime_iel_oer_p_}; +const TTCN_Typedescriptor_t UE__DS__TT__ResidenceTime_iel_descr_ = { "@NG_NAS_TypeDefs.UE_DS_TT_ResidenceTime.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UE__DS__TT__ResidenceTime_iel_xer_, &OCTETSTRING_json_, &UE__DS__TT__ResidenceTime_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PortManagementInfoContainer_contents_xer_ = { {"contents>\n", "contents>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PortManagementInfoContainer_contents_oer_ext_arr_[0] = {}; +const int PortManagementInfoContainer_contents_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PortManagementInfoContainer_contents_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PortManagementInfoContainer_contents_oer_ext_arr_, 0, PortManagementInfoContainer_contents_oer_p_}; +const TTCN_Typedescriptor_t PortManagementInfoContainer_contents_descr_ = { "@NG_NAS_TypeDefs.PortManagementInfoContainer.contents", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &PortManagementInfoContainer_contents_xer_, &OCTETSTRING_json_, &PortManagementInfoContainer_contents_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PortManagementInfoContainer +const TTCN_Typedescriptor_t PortManagementInfoContainer_descr_ = { "@NG_NAS_TypeDefs.PortManagementInfoContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PortManagementInfoContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PortManagementInfoContainer_iei_oer_ext_arr_[0] = {}; +const int PortManagementInfoContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PortManagementInfoContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PortManagementInfoContainer_iei_oer_ext_arr_, 0, PortManagementInfoContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t PortManagementInfoContainer_iei_descr_ = { "@NG_NAS_TypeDefs.PortManagementInfoContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PortManagementInfoContainer_iei_xer_, &OCTETSTRING_json_, &PortManagementInfoContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PortManagementInfoContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PortManagementInfoContainer_iel_oer_ext_arr_[0] = {}; +const int PortManagementInfoContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PortManagementInfoContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, PortManagementInfoContainer_iel_oer_ext_arr_, 0, PortManagementInfoContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t PortManagementInfoContainer_iel_descr_ = { "@NG_NAS_TypeDefs.PortManagementInfoContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &PortManagementInfoContainer_iel_xer_, &OCTETSTRING_json_, &PortManagementInfoContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EthernetHeaderCompressConfig_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EthernetHeaderCompressConfig_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_spareBits_descr_ = { "@NG_NAS_TypeDefs.EthernetHeaderCompressConfig.spareBits", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &EthernetHeaderCompressConfig_spareBits_xer_, &BITSTRING_json_, &EthernetHeaderCompressConfig_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EthernetHeaderCompressConfig_cidLength_xer_ = { {"cidLength>\n", "cidLength>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t EthernetHeaderCompressConfig_cidLength_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_cidLength_descr_ = { "@NG_NAS_TypeDefs.EthernetHeaderCompressConfig.cidLength", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &EthernetHeaderCompressConfig_cidLength_xer_, &BITSTRING_json_, &EthernetHeaderCompressConfig_cidLength_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EthernetHeaderCompressConfig +const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_descr_ = { "@NG_NAS_TypeDefs.EthernetHeaderCompressConfig", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EthernetHeaderCompressConfig_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EthernetHeaderCompressConfig_iei_oer_ext_arr_[0] = {}; +const int EthernetHeaderCompressConfig_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EthernetHeaderCompressConfig_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EthernetHeaderCompressConfig_iei_oer_ext_arr_, 0, EthernetHeaderCompressConfig_iei_oer_p_}; +const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_iei_descr_ = { "@NG_NAS_TypeDefs.EthernetHeaderCompressConfig.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EthernetHeaderCompressConfig_iei_xer_, &OCTETSTRING_json_, &EthernetHeaderCompressConfig_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EthernetHeaderCompressConfig_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EthernetHeaderCompressConfig_iel_oer_ext_arr_[0] = {}; +const int EthernetHeaderCompressConfig_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EthernetHeaderCompressConfig_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EthernetHeaderCompressConfig_iel_oer_ext_arr_, 0, EthernetHeaderCompressConfig_iel_oer_p_}; +const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_iel_descr_ = { "@NG_NAS_TypeDefs.EthernetHeaderCompressConfig.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EthernetHeaderCompressConfig_iel_xer_, &OCTETSTRING_json_, &EthernetHeaderCompressConfig_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__Address_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDU__Address_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDU__Address_spare_descr_ = { "@NG_NAS_TypeDefs.PDU_Address.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &PDU__Address_spare_xer_, &BITSTRING_json_, &PDU__Address_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__Address_si16LLA_xer_ = { {"si16LLA>\n", "si16LLA>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDU__Address_si16LLA_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDU__Address_si16LLA_descr_ = { "@NG_NAS_TypeDefs.PDU_Address.si16LLA", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &PDU__Address_si16LLA_xer_, &BITSTRING_json_, &PDU__Address_si16LLA_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__Address_typeValue_xer_ = { {"typeValue>\n", "typeValue>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t PDU__Address_typeValue_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t PDU__Address_typeValue_descr_ = { "@NG_NAS_TypeDefs.PDU_Address.typeValue", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &PDU__Address_typeValue_xer_, &BITSTRING_json_, &PDU__Address_typeValue_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__Address_adressInfo_xer_ = { {"adressInfo>\n", "adressInfo>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__Address_adressInfo_oer_ext_arr_[0] = {}; +const int PDU__Address_adressInfo_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__Address_adressInfo_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PDU__Address_adressInfo_oer_ext_arr_, 0, PDU__Address_adressInfo_oer_p_}; +const TTCN_Typedescriptor_t PDU__Address_adressInfo_descr_ = { "@NG_NAS_TypeDefs.PDU_Address.adressInfo", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &PDU__Address_adressInfo_xer_, &OCTETSTRING_json_, &PDU__Address_adressInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDU__Address +const TTCN_Typedescriptor_t PDU__Address_descr_ = { "@NG_NAS_TypeDefs.PDU_Address", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__Address_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__Address_iei_oer_ext_arr_[0] = {}; +const int PDU__Address_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__Address_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDU__Address_iei_oer_ext_arr_, 0, PDU__Address_iei_oer_p_}; +const TTCN_Typedescriptor_t PDU__Address_iei_descr_ = { "@NG_NAS_TypeDefs.PDU_Address.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDU__Address_iei_xer_, &OCTETSTRING_json_, &PDU__Address_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__Address_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__Address_iel_oer_ext_arr_[0] = {}; +const int PDU__Address_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__Address_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDU__Address_iel_oer_ext_arr_, 0, PDU__Address_iel_oer_p_}; +const TTCN_Typedescriptor_t PDU__Address_iel_descr_ = { "@NG_NAS_TypeDefs.PDU_Address.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDU__Address_iel_xer_, &OCTETSTRING_json_, &PDU__Address_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDU__Address_ipv6Address_xer_ = { {"ipv6Address>\n", "ipv6Address>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDU__Address_ipv6Address_oer_ext_arr_[0] = {}; +const int PDU__Address_ipv6Address_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDU__Address_ipv6Address_oer_ = { -1, TRUE, -1, FALSE, 0, 0, PDU__Address_ipv6Address_oer_ext_arr_, 0, PDU__Address_ipv6Address_oer_p_}; +const TTCN_Typedescriptor_t PDU__Address_ipv6Address_descr_ = { "@NG_NAS_TypeDefs.PDU_Address.ipv6Address", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &PDU__Address_ipv6Address_xer_, &OCTETSTRING_json_, &PDU__Address_ipv6Address_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RequestedMBSContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RequestedMBSContainer_iei_oer_ext_arr_[0] = {}; +const int RequestedMBSContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RequestedMBSContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RequestedMBSContainer_iei_oer_ext_arr_, 0, RequestedMBSContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t RequestedMBSContainer_iei_descr_ = { "@NG_NAS_TypeDefs.RequestedMBSContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RequestedMBSContainer_iei_xer_, &OCTETSTRING_json_, &RequestedMBSContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RequestedMBSContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RequestedMBSContainer_iel_oer_ext_arr_[0] = {}; +const int RequestedMBSContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RequestedMBSContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, RequestedMBSContainer_iel_oer_ext_arr_, 0, RequestedMBSContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t RequestedMBSContainer_iel_descr_ = { "@NG_NAS_TypeDefs.RequestedMBSContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &RequestedMBSContainer_iel_xer_, &OCTETSTRING_json_, &RequestedMBSContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RequestedMBSContainer_sessionInfo +const TTCN_Typedescriptor_t RequestedMBSContainer_sessionInfo_descr_ = { "@NG_NAS_TypeDefs.RequestedMBSContainer.sessionInfo", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &MBSSessionInfo_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MBSSessionInfo_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MBSSessionInfo_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MBSSessionInfo_spareBits_descr_ = { "@NG_NAS_TypeDefs.MBSSessionInfo.spareBits", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MBSSessionInfo_spareBits_xer_, &BITSTRING_json_, &MBSSessionInfo_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MBSSessionInfo_operation_xer_ = { {"operation>\n", "operation>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MBSSessionInfo_operation_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MBSSessionInfo_operation_descr_ = { "@NG_NAS_TypeDefs.MBSSessionInfo.operation", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MBSSessionInfo_operation_xer_, &BITSTRING_json_, &MBSSessionInfo_operation_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MBSSessionInfo_typeOfSessionId_xer_ = { {"typeOfSessionId>\n", "typeOfSessionId>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MBSSessionInfo_typeOfSessionId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MBSSessionInfo_typeOfSessionId_descr_ = { "@NG_NAS_TypeDefs.MBSSessionInfo.typeOfSessionId", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MBSSessionInfo_typeOfSessionId_xer_, &BITSTRING_json_, &MBSSessionInfo_typeOfSessionId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MBSSessionInfo_sessionId_xer_ = { {"sessionId>\n", "sessionId>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MBSSessionInfo_sessionId_oer_ext_arr_[0] = {}; +const int MBSSessionInfo_sessionId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MBSSessionInfo_sessionId_oer_ = { -1, TRUE, -1, FALSE, 0, 0, MBSSessionInfo_sessionId_oer_ext_arr_, 0, MBSSessionInfo_sessionId_oer_p_}; +const TTCN_Typedescriptor_t MBSSessionInfo_sessionId_descr_ = { "@NG_NAS_TypeDefs.MBSSessionInfo.sessionId", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &MBSSessionInfo_sessionId_xer_, &OCTETSTRING_json_, &MBSSessionInfo_sessionId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MBSSessionInfo +const TTCN_Typedescriptor_t MBSSessionInfo_descr_ = { "@NG_NAS_TypeDefs.MBSSessionInfo", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RequestedMBSContainer +const TTCN_Typedescriptor_t RequestedMBSContainer_descr_ = { "@NG_NAS_TypeDefs.RequestedMBSContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDUSessionPairId_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDUSessionPairId_iei_oer_ext_arr_[0] = {}; +const int PDUSessionPairId_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDUSessionPairId_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDUSessionPairId_iei_oer_ext_arr_, 0, PDUSessionPairId_iei_oer_p_}; +const TTCN_Typedescriptor_t PDUSessionPairId_iei_descr_ = { "@NG_NAS_TypeDefs.PDUSessionPairId.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDUSessionPairId_iei_xer_, &OCTETSTRING_json_, &PDUSessionPairId_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDUSessionPairId_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDUSessionPairId_iel_oer_ext_arr_[0] = {}; +const int PDUSessionPairId_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDUSessionPairId_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDUSessionPairId_iel_oer_ext_arr_, 0, PDUSessionPairId_iel_oer_p_}; +const TTCN_Typedescriptor_t PDUSessionPairId_iel_descr_ = { "@NG_NAS_TypeDefs.PDUSessionPairId.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDUSessionPairId_iel_xer_, &OCTETSTRING_json_, &PDUSessionPairId_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PDUSessionPairId_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PDUSessionPairId_id_oer_ext_arr_[0] = {}; +const int PDUSessionPairId_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PDUSessionPairId_id_oer_ = { -1, TRUE, 1, FALSE, 0, 0, PDUSessionPairId_id_oer_ext_arr_, 0, PDUSessionPairId_id_oer_p_}; +const TTCN_Typedescriptor_t PDUSessionPairId_id_descr_ = { "@NG_NAS_TypeDefs.PDUSessionPairId.id", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &PDUSessionPairId_id_xer_, &OCTETSTRING_json_, &PDUSessionPairId_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PDUSessionPairId +const TTCN_Typedescriptor_t PDUSessionPairId_descr_ = { "@NG_NAS_TypeDefs.PDUSessionPairId", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RSN_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RSN_iei_oer_ext_arr_[0] = {}; +const int RSN_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RSN_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RSN_iei_oer_ext_arr_, 0, RSN_iei_oer_p_}; +const TTCN_Typedescriptor_t RSN_iei_descr_ = { "@NG_NAS_TypeDefs.RSN.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RSN_iei_xer_, &OCTETSTRING_json_, &RSN_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RSN_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RSN_iel_oer_ext_arr_[0] = {}; +const int RSN_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RSN_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RSN_iel_oer_ext_arr_, 0, RSN_iel_oer_p_}; +const TTCN_Typedescriptor_t RSN_iel_descr_ = { "@NG_NAS_TypeDefs.RSN.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RSN_iel_xer_, &OCTETSTRING_json_, &RSN_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t RSN_rsn_xer_ = { {"rsn>\n", "rsn>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int RSN_rsn_oer_ext_arr_[0] = {}; +const int RSN_rsn_oer_p_[0] = {}; +const TTCN_OERdescriptor_t RSN_rsn_oer_ = { -1, TRUE, 1, FALSE, 0, 0, RSN_rsn_oer_ext_arr_, 0, RSN_rsn_oer_p_}; +const TTCN_Typedescriptor_t RSN_rsn_descr_ = { "@NG_NAS_TypeDefs.RSN.rsn", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &RSN_rsn_xer_, &OCTETSTRING_json_, &RSN_rsn_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for RSN +const TTCN_Typedescriptor_t RSN_descr_ = { "@NG_NAS_TypeDefs.RSN", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_ACCEPT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_ACCEPT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_ACCEPT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rules_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoS__Rules_iel_oer_ext_arr_[0] = {}; +const int QoS__Rules_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoS__Rules_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, QoS__Rules_iel_oer_ext_arr_, 0, QoS__Rules_iel_oer_p_}; +const TTCN_Typedescriptor_t QoS__Rules_iel_descr_ = { "@NG_NAS_TypeDefs.QoS_Rules.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &QoS__Rules_iel_xer_, &OCTETSTRING_json_, &QoS__Rules_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoS__RuleList +const TTCN_Typedescriptor_t QoS__RuleList_descr_ = { "@NG_NAS_TypeDefs.QoS_RuleList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &QoS__Rule_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rule_identifier_xer_ = { {"identifier>\n", "identifier>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoS__Rule_identifier_oer_ext_arr_[0] = {}; +const int QoS__Rule_identifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoS__Rule_identifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, QoS__Rule_identifier_oer_ext_arr_, 0, QoS__Rule_identifier_oer_p_}; +const TTCN_Typedescriptor_t QoS__Rule_identifier_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule.identifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &QoS__Rule_identifier_xer_, &OCTETSTRING_json_, &QoS__Rule_identifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rule_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoS__Rule_iel_oer_ext_arr_[0] = {}; +const int QoS__Rule_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoS__Rule_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, QoS__Rule_iel_oer_ext_arr_, 0, QoS__Rule_iel_oer_p_}; +const TTCN_Typedescriptor_t QoS__Rule_iel_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &QoS__Rule_iel_xer_, &OCTETSTRING_json_, &QoS__Rule_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rule_ruleOperationCode_xer_ = { {"ruleOperationCode>\n", "ruleOperationCode>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Rule_ruleOperationCode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Rule_ruleOperationCode_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule.ruleOperationCode", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &QoS__Rule_ruleOperationCode_xer_, &BITSTRING_json_, &QoS__Rule_ruleOperationCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rule_dqrBit_xer_ = { {"dqrBit>\n", "dqrBit>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Rule_dqrBit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Rule_dqrBit_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule.dqrBit", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &QoS__Rule_dqrBit_xer_, &BITSTRING_json_, &QoS__Rule_dqrBit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rule_numOfPacketFilters_xer_ = { {"numOfPacketFilters>\n", "numOfPacketFilters>\n"}, {20, 20}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Rule_numOfPacketFilters_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Rule_numOfPacketFilters_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule.numOfPacketFilters", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &QoS__Rule_numOfPacketFilters_xer_, &BITSTRING_json_, &QoS__Rule_numOfPacketFilters_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoS__Rule +const TTCN_Typedescriptor_t QoS__Rule_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PacketFilterList +const TTCN_Typedescriptor_t NG__PacketFilterList_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilterList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PacketFilterList__Type1 +const TTCN_Typedescriptor_t NG__PacketFilterList__Type1_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilterList_Type1", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__PacketFilter__Type1_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PacketFilter__Type1_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PacketFilter__Type1_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PacketFilter__Type1_spare_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilter_Type1.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__PacketFilter__Type1_spare_xer_, &BITSTRING_json_, &NG__PacketFilter__Type1_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PacketFilter__Type1_packetFilterId_xer_ = { {"packetFilterId>\n", "packetFilterId>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PacketFilter__Type1_packetFilterId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PacketFilter__Type1_packetFilterId_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilter_Type1.packetFilterId", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__PacketFilter__Type1_packetFilterId_xer_, &BITSTRING_json_, &NG__PacketFilter__Type1_packetFilterId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PacketFilter__Type1 +const TTCN_Typedescriptor_t NG__PacketFilter__Type1_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilter_Type1", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PacketFilterList__Type2 +const TTCN_Typedescriptor_t NG__PacketFilterList__Type2_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilterList_Type2", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NG__PacketFilter__Type2_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PacketFilter__Type2_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PacketFilter__Type2_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PacketFilter__Type2_spare_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilter_Type2.spare", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__PacketFilter__Type2_spare_xer_, &BITSTRING_json_, &NG__PacketFilter__Type2_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PacketFilter__Type2_direction_xer_ = { {"direction>\n", "direction>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PacketFilter__Type2_direction_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PacketFilter__Type2_direction_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilter_Type2.direction", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &NG__PacketFilter__Type2_direction_xer_, &BITSTRING_json_, &NG__PacketFilter__Type2_direction_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PacketFilter__Type2_packetFilterId_xer_ = { {"packetFilterId>\n", "packetFilterId>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PacketFilter__Type2_packetFilterId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PacketFilter__Type2_packetFilterId_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilter_Type2.packetFilterId", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__PacketFilter__Type2_packetFilterId_xer_, &BITSTRING_json_, &NG__PacketFilter__Type2_packetFilterId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PacketFilter__Type2 +const TTCN_Typedescriptor_t NG__PacketFilter__Type2_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilter_Type2", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PacketFilter__Type2_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PacketFilter__Type2_len_oer_ext_arr_[0] = {}; +const int NG__PacketFilter__Type2_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PacketFilter__Type2_len_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PacketFilter__Type2_len_oer_ext_arr_, 0, NG__PacketFilter__Type2_len_oer_p_}; +const TTCN_Typedescriptor_t NG__PacketFilter__Type2_len_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilter_Type2.len", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PacketFilter__Type2_len_xer_, &OCTETSTRING_json_, &NG__PacketFilter__Type2_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PacketFilter__Type2_contents_xer_ = { {"contents>\n", "contents>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PacketFilter__Type2_contents_oer_ext_arr_[0] = {}; +const int NG__PacketFilter__Type2_contents_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PacketFilter__Type2_contents_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__PacketFilter__Type2_contents_oer_ext_arr_, 0, NG__PacketFilter__Type2_contents_oer_p_}; +const TTCN_Typedescriptor_t NG__PacketFilter__Type2_contents_descr_ = { "@NG_NAS_TypeDefs.NG_PacketFilter_Type2.contents", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NG__PacketFilter__Type2_contents_xer_, &OCTETSTRING_json_, &NG__PacketFilter__Type2_contents_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rule_precedence_xer_ = { {"precedence>\n", "precedence>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoS__Rule_precedence_oer_ext_arr_[0] = {}; +const int QoS__Rule_precedence_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoS__Rule_precedence_oer_ = { -1, TRUE, 1, FALSE, 0, 0, QoS__Rule_precedence_oer_ext_arr_, 0, QoS__Rule_precedence_oer_p_}; +const TTCN_Typedescriptor_t QoS__Rule_precedence_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule.precedence", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &QoS__Rule_precedence_xer_, &OCTETSTRING_json_, &QoS__Rule_precedence_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rule_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Rule_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Rule_spare_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &QoS__Rule_spare_xer_, &BITSTRING_json_, &QoS__Rule_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rule_segregation_xer_ = { {"segregation>\n", "segregation>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Rule_segregation_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Rule_segregation_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule.segregation", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &QoS__Rule_segregation_xer_, &BITSTRING_json_, &QoS__Rule_segregation_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rule_flowIdentifier_xer_ = { {"flowIdentifier>\n", "flowIdentifier>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Rule_flowIdentifier_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Rule_flowIdentifier_descr_ = { "@NG_NAS_TypeDefs.QoS_Rule.flowIdentifier", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &QoS__Rule_flowIdentifier_xer_, &BITSTRING_json_, &QoS__Rule_flowIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoS__Rules +const TTCN_Typedescriptor_t QoS__Rules_descr_ = { "@NG_NAS_TypeDefs.QoS_Rules", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Rules_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoS__Rules_iei_oer_ext_arr_[0] = {}; +const int QoS__Rules_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoS__Rules_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, QoS__Rules_iei_oer_ext_arr_, 0, QoS__Rules_iei_oer_p_}; +const TTCN_Typedescriptor_t QoS__Rules_iei_descr_ = { "@NG_NAS_TypeDefs.QoS_Rules.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &QoS__Rules_iei_xer_, &OCTETSTRING_json_, &QoS__Rules_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Session__AMBR_unitDL_xer_ = { {"unitDL>\n", "unitDL>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Session__AMBR_unitDL_oer_ext_arr_[0] = {}; +const int Session__AMBR_unitDL_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Session__AMBR_unitDL_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Session__AMBR_unitDL_oer_ext_arr_, 0, Session__AMBR_unitDL_oer_p_}; +const TTCN_Typedescriptor_t Session__AMBR_unitDL_descr_ = { "@NG_NAS_TypeDefs.Session_AMBR.unitDL", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Session__AMBR_unitDL_xer_, &OCTETSTRING_json_, &Session__AMBR_unitDL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Session__AMBR_downlink_xer_ = { {"downlink>\n", "downlink>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Session__AMBR_downlink_oer_ext_arr_[0] = {}; +const int Session__AMBR_downlink_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Session__AMBR_downlink_oer_ = { -1, TRUE, 2, FALSE, 0, 0, Session__AMBR_downlink_oer_ext_arr_, 0, Session__AMBR_downlink_oer_p_}; +const TTCN_Typedescriptor_t Session__AMBR_downlink_descr_ = { "@NG_NAS_TypeDefs.Session_AMBR.downlink", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &Session__AMBR_downlink_xer_, &OCTETSTRING_json_, &Session__AMBR_downlink_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Session__AMBR_unitUL_xer_ = { {"unitUL>\n", "unitUL>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Session__AMBR_unitUL_oer_ext_arr_[0] = {}; +const int Session__AMBR_unitUL_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Session__AMBR_unitUL_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Session__AMBR_unitUL_oer_ext_arr_, 0, Session__AMBR_unitUL_oer_p_}; +const TTCN_Typedescriptor_t Session__AMBR_unitUL_descr_ = { "@NG_NAS_TypeDefs.Session_AMBR.unitUL", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Session__AMBR_unitUL_xer_, &OCTETSTRING_json_, &Session__AMBR_unitUL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Session__AMBR_uplink_xer_ = { {"uplink>\n", "uplink>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Session__AMBR_uplink_oer_ext_arr_[0] = {}; +const int Session__AMBR_uplink_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Session__AMBR_uplink_oer_ = { -1, TRUE, 2, FALSE, 0, 0, Session__AMBR_uplink_oer_ext_arr_, 0, Session__AMBR_uplink_oer_p_}; +const TTCN_Typedescriptor_t Session__AMBR_uplink_descr_ = { "@NG_NAS_TypeDefs.Session_AMBR.uplink", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &Session__AMBR_uplink_xer_, &OCTETSTRING_json_, &Session__AMBR_uplink_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for Session__AMBR +const TTCN_Typedescriptor_t Session__AMBR_descr_ = { "@NG_NAS_TypeDefs.Session_AMBR", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Session__AMBR_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Session__AMBR_iei_oer_ext_arr_[0] = {}; +const int Session__AMBR_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Session__AMBR_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Session__AMBR_iei_oer_ext_arr_, 0, Session__AMBR_iei_oer_p_}; +const TTCN_Typedescriptor_t Session__AMBR_iei_descr_ = { "@NG_NAS_TypeDefs.Session_AMBR.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Session__AMBR_iei_xer_, &OCTETSTRING_json_, &Session__AMBR_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t Session__AMBR_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int Session__AMBR_iel_oer_ext_arr_[0] = {}; +const int Session__AMBR_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t Session__AMBR_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, Session__AMBR_iel_oer_ext_arr_, 0, Session__AMBR_iel_oer_p_}; +const TTCN_Typedescriptor_t Session__AMBR_iel_descr_ = { "@NG_NAS_TypeDefs.Session_AMBR.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &Session__AMBR_iel_xer_, &OCTETSTRING_json_, &Session__AMBR_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__ESTABLISHMENT__ACCEPT +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_ACCEPT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MappedEPSBearerContexts_mappedContextList +const TTCN_Typedescriptor_t MappedEPSBearerContexts_mappedContextList_descr_ = { "@NG_NAS_TypeDefs.MappedEPSBearerContexts.mappedContextList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &MappedEPSContext_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedEPSContext_epsBearerId_xer_ = { {"epsBearerId>\n", "epsBearerId>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MappedEPSContext_epsBearerId_oer_ext_arr_[0] = {}; +const int MappedEPSContext_epsBearerId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MappedEPSContext_epsBearerId_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MappedEPSContext_epsBearerId_oer_ext_arr_, 0, MappedEPSContext_epsBearerId_oer_p_}; +const TTCN_Typedescriptor_t MappedEPSContext_epsBearerId_descr_ = { "@NG_NAS_TypeDefs.MappedEPSContext.epsBearerId", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MappedEPSContext_epsBearerId_xer_, &OCTETSTRING_json_, &MappedEPSContext_epsBearerId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedEPSContext_lenOfContext_xer_ = { {"lenOfContext>\n", "lenOfContext>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MappedEPSContext_lenOfContext_oer_ext_arr_[0] = {}; +const int MappedEPSContext_lenOfContext_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MappedEPSContext_lenOfContext_oer_ = { -1, TRUE, 2, FALSE, 0, 0, MappedEPSContext_lenOfContext_oer_ext_arr_, 0, MappedEPSContext_lenOfContext_oer_p_}; +const TTCN_Typedescriptor_t MappedEPSContext_lenOfContext_descr_ = { "@NG_NAS_TypeDefs.MappedEPSContext.lenOfContext", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &MappedEPSContext_lenOfContext_xer_, &OCTETSTRING_json_, &MappedEPSContext_lenOfContext_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedEPSContext_operationCode_xer_ = { {"operationCode>\n", "operationCode>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MappedEPSContext_operationCode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MappedEPSContext_operationCode_descr_ = { "@NG_NAS_TypeDefs.MappedEPSContext.operationCode", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &MappedEPSContext_operationCode_xer_, &BITSTRING_json_, &MappedEPSContext_operationCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedEPSContext_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MappedEPSContext_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MappedEPSContext_spare_descr_ = { "@NG_NAS_TypeDefs.MappedEPSContext.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MappedEPSContext_spare_xer_, &BITSTRING_json_, &MappedEPSContext_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedEPSContext_eBit_xer_ = { {"eBit>\n", "eBit>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MappedEPSContext_eBit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MappedEPSContext_eBit_descr_ = { "@NG_NAS_TypeDefs.MappedEPSContext.eBit", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &MappedEPSContext_eBit_xer_, &BITSTRING_json_, &MappedEPSContext_eBit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedEPSContext_numOfParams_xer_ = { {"numOfParams>\n", "numOfParams>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t MappedEPSContext_numOfParams_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t MappedEPSContext_numOfParams_descr_ = { "@NG_NAS_TypeDefs.MappedEPSContext.numOfParams", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &MappedEPSContext_numOfParams_xer_, &BITSTRING_json_, &MappedEPSContext_numOfParams_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MappedEPSContext_epsParamsList +const TTCN_Typedescriptor_t MappedEPSContext_epsParamsList_descr_ = { "@NG_NAS_TypeDefs.MappedEPSContext.epsParamsList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &EPSParameters_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPSParameters_id_xer_ = { {"id>\n", "id>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPSParameters_id_oer_ext_arr_[0] = {}; +const int EPSParameters_id_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPSParameters_id_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPSParameters_id_oer_ext_arr_, 0, EPSParameters_id_oer_p_}; +const TTCN_Typedescriptor_t EPSParameters_id_descr_ = { "@NG_NAS_TypeDefs.EPSParameters.id", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPSParameters_id_xer_, &OCTETSTRING_json_, &EPSParameters_id_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPSParameters_epsParam_xer_ = { {"epsParam>\n", "epsParam>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPSParameters_epsParam_oer_ext_arr_[0] = {}; +const int EPSParameters_epsParam_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPSParameters_epsParam_oer_ = { -1, TRUE, -1, FALSE, 0, 0, EPSParameters_epsParam_oer_ext_arr_, 0, EPSParameters_epsParam_oer_p_}; +const TTCN_Typedescriptor_t EPSParameters_epsParam_descr_ = { "@NG_NAS_TypeDefs.EPSParameters.epsParam", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &EPSParameters_epsParam_xer_, &OCTETSTRING_json_, &EPSParameters_epsParam_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for EPSParameters +const TTCN_Typedescriptor_t EPSParameters_descr_ = { "@NG_NAS_TypeDefs.EPSParameters", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t EPSParameters_lenOfContent_xer_ = { {"lenOfContent>\n", "lenOfContent>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int EPSParameters_lenOfContent_oer_ext_arr_[0] = {}; +const int EPSParameters_lenOfContent_oer_p_[0] = {}; +const TTCN_OERdescriptor_t EPSParameters_lenOfContent_oer_ = { -1, TRUE, 1, FALSE, 0, 0, EPSParameters_lenOfContent_oer_ext_arr_, 0, EPSParameters_lenOfContent_oer_p_}; +const TTCN_Typedescriptor_t EPSParameters_lenOfContent_descr_ = { "@NG_NAS_TypeDefs.EPSParameters.lenOfContent", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &EPSParameters_lenOfContent_xer_, &OCTETSTRING_json_, &EPSParameters_lenOfContent_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MappedEPSContext +const TTCN_Typedescriptor_t MappedEPSContext_descr_ = { "@NG_NAS_TypeDefs.MappedEPSContext", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MappedEPSBearerContexts +const TTCN_Typedescriptor_t MappedEPSBearerContexts_descr_ = { "@NG_NAS_TypeDefs.MappedEPSBearerContexts", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedEPSBearerContexts_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MappedEPSBearerContexts_iei_oer_ext_arr_[0] = {}; +const int MappedEPSBearerContexts_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MappedEPSBearerContexts_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, MappedEPSBearerContexts_iei_oer_ext_arr_, 0, MappedEPSBearerContexts_iei_oer_p_}; +const TTCN_Typedescriptor_t MappedEPSBearerContexts_iei_descr_ = { "@NG_NAS_TypeDefs.MappedEPSBearerContexts.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &MappedEPSBearerContexts_iei_xer_, &OCTETSTRING_json_, &MappedEPSBearerContexts_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t MappedEPSBearerContexts_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int MappedEPSBearerContexts_iel_oer_ext_arr_[0] = {}; +const int MappedEPSBearerContexts_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t MappedEPSBearerContexts_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, MappedEPSBearerContexts_iel_oer_ext_arr_, 0, MappedEPSBearerContexts_iel_oer_p_}; +const TTCN_Typedescriptor_t MappedEPSBearerContexts_iel_descr_ = { "@NG_NAS_TypeDefs.MappedEPSBearerContexts.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &MappedEPSBearerContexts_iel_xer_, &OCTETSTRING_json_, &MappedEPSBearerContexts_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoSFlowDescr_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoSFlowDescr_iei_oer_ext_arr_[0] = {}; +const int QoSFlowDescr_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoSFlowDescr_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, QoSFlowDescr_iei_oer_ext_arr_, 0, QoSFlowDescr_iei_oer_p_}; +const TTCN_Typedescriptor_t QoSFlowDescr_iei_descr_ = { "@NG_NAS_TypeDefs.QoSFlowDescr.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &QoSFlowDescr_iei_xer_, &OCTETSTRING_json_, &QoSFlowDescr_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoSFlowDescr_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int QoSFlowDescr_iel_oer_ext_arr_[0] = {}; +const int QoSFlowDescr_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t QoSFlowDescr_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, QoSFlowDescr_iel_oer_ext_arr_, 0, QoSFlowDescr_iel_oer_p_}; +const TTCN_Typedescriptor_t QoSFlowDescr_iel_descr_ = { "@NG_NAS_TypeDefs.QoSFlowDescr.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &QoSFlowDescr_iel_xer_, &OCTETSTRING_json_, &QoSFlowDescr_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoSFlowDescr_listofFlows +const TTCN_Typedescriptor_t QoSFlowDescr_listofFlows_descr_ = { "@NG_NAS_TypeDefs.QoSFlowDescr.listofFlows", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &QoS__Flow_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Flow_spare2_xer_ = { {"spare2>\n", "spare2>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Flow_spare2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Flow_spare2_descr_ = { "@NG_NAS_TypeDefs.QoS_Flow.spare2", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &QoS__Flow_spare2_xer_, &BITSTRING_json_, &QoS__Flow_spare2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Flow_qfi_xer_ = { {"qfi>\n", "qfi>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Flow_qfi_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Flow_qfi_descr_ = { "@NG_NAS_TypeDefs.QoS_Flow.qfi", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &QoS__Flow_qfi_xer_, &BITSTRING_json_, &QoS__Flow_qfi_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Flow_operationCode_xer_ = { {"operationCode>\n", "operationCode>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Flow_operationCode_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Flow_operationCode_descr_ = { "@NG_NAS_TypeDefs.QoS_Flow.operationCode", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &QoS__Flow_operationCode_xer_, &BITSTRING_json_, &QoS__Flow_operationCode_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Flow_spare6_xer_ = { {"spare6>\n", "spare6>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Flow_spare6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Flow_spare6_descr_ = { "@NG_NAS_TypeDefs.QoS_Flow.spare6", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &QoS__Flow_spare6_xer_, &BITSTRING_json_, &QoS__Flow_spare6_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Flow_eBit_xer_ = { {"eBit>\n", "eBit>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Flow_eBit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Flow_eBit_descr_ = { "@NG_NAS_TypeDefs.QoS_Flow.eBit", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &QoS__Flow_eBit_xer_, &BITSTRING_json_, &QoS__Flow_eBit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t QoS__Flow_numOfParameters_xer_ = { {"numOfParameters>\n", "numOfParameters>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t QoS__Flow_numOfParameters_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t QoS__Flow_numOfParameters_descr_ = { "@NG_NAS_TypeDefs.QoS_Flow.numOfParameters", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &QoS__Flow_numOfParameters_xer_, &BITSTRING_json_, &QoS__Flow_numOfParameters_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoS__Flow +const TTCN_Typedescriptor_t QoS__Flow_descr_ = { "@NG_NAS_TypeDefs.QoS_Flow", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoS__Flow_parameterList +const TTCN_Typedescriptor_t QoS__Flow_parameterList_descr_ = { "@NG_NAS_TypeDefs.QoS_Flow.parameterList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NAS__CommonTypeDefs::QoSParameters_descr_, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoSFlowDescr +const TTCN_Typedescriptor_t QoSFlowDescr_descr_ = { "@NG_NAS_TypeDefs.QoSFlowDescr", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__NetworkFeatureSupport_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_spareBits_descr_ = { "@NG_NAS_TypeDefs.NGSM_NetworkFeatureSupport.spareBits", &BITSTRING_ber_, &CommonDefs::B7__Type_raw_, NULL, &NGSM__NetworkFeatureSupport_spareBits_xer_, &BITSTRING_json_, &NGSM__NetworkFeatureSupport_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__NetworkFeatureSupport_ept__S1_xer_ = { {"ept_S1>\n", "ept_S1>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_ept__S1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_ept__S1_descr_ = { "@NG_NAS_TypeDefs.NGSM_NetworkFeatureSupport.ept_S1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NGSM__NetworkFeatureSupport_ept__S1_xer_, &BITSTRING_json_, &NGSM__NetworkFeatureSupport_ept__S1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__NetworkFeatureSupport_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NGSM__NetworkFeatureSupport_spare_oer_ext_arr_[0] = {}; +const int NGSM__NetworkFeatureSupport_spare_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_spare_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NGSM__NetworkFeatureSupport_spare_oer_ext_arr_, 0, NGSM__NetworkFeatureSupport_spare_oer_p_}; +const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_spare_descr_ = { "@NG_NAS_TypeDefs.NGSM_NetworkFeatureSupport.spare", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NGSM__NetworkFeatureSupport_spare_xer_, &OCTETSTRING_json_, &NGSM__NetworkFeatureSupport_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NGSM__NetworkFeatureSupport +const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_descr_ = { "@NG_NAS_TypeDefs.NGSM_NetworkFeatureSupport", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__NetworkFeatureSupport_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NGSM__NetworkFeatureSupport_iei_oer_ext_arr_[0] = {}; +const int NGSM__NetworkFeatureSupport_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NGSM__NetworkFeatureSupport_iei_oer_ext_arr_, 0, NGSM__NetworkFeatureSupport_iei_oer_p_}; +const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_iei_descr_ = { "@NG_NAS_TypeDefs.NGSM_NetworkFeatureSupport.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NGSM__NetworkFeatureSupport_iei_xer_, &OCTETSTRING_json_, &NGSM__NetworkFeatureSupport_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__NetworkFeatureSupport_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NGSM__NetworkFeatureSupport_iel_oer_ext_arr_[0] = {}; +const int NGSM__NetworkFeatureSupport_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NGSM__NetworkFeatureSupport_iel_oer_ext_arr_, 0, NGSM__NetworkFeatureSupport_iel_oer_p_}; +const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_iel_descr_ = { "@NG_NAS_TypeDefs.NGSM_NetworkFeatureSupport.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NGSM__NetworkFeatureSupport_iel_xer_, &OCTETSTRING_json_, &NGSM__NetworkFeatureSupport_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATSSSContainer_contents_xer_ = { {"contents>\n", "contents>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ATSSSContainer_contents_oer_ext_arr_[0] = {}; +const int ATSSSContainer_contents_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ATSSSContainer_contents_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ATSSSContainer_contents_oer_ext_arr_, 0, ATSSSContainer_contents_oer_p_}; +const TTCN_Typedescriptor_t ATSSSContainer_contents_descr_ = { "@NG_NAS_TypeDefs.ATSSSContainer.contents", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ATSSSContainer_contents_xer_, &OCTETSTRING_json_, &ATSSSContainer_contents_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ATSSSContainer +const TTCN_Typedescriptor_t ATSSSContainer_descr_ = { "@NG_NAS_TypeDefs.ATSSSContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATSSSContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ATSSSContainer_iei_oer_ext_arr_[0] = {}; +const int ATSSSContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ATSSSContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ATSSSContainer_iei_oer_ext_arr_, 0, ATSSSContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t ATSSSContainer_iei_descr_ = { "@NG_NAS_TypeDefs.ATSSSContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ATSSSContainer_iei_xer_, &OCTETSTRING_json_, &ATSSSContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ATSSSContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ATSSSContainer_iel_oer_ext_arr_[0] = {}; +const int ATSSSContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ATSSSContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ATSSSContainer_iel_oer_ext_arr_, 0, ATSSSContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t ATSSSContainer_iel_descr_ = { "@NG_NAS_TypeDefs.ATSSSContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ATSSSContainer_iel_xer_, &OCTETSTRING_json_, &ATSSSContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReceivedMBSContainer_iei_oer_ext_arr_[0] = {}; +const int ReceivedMBSContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReceivedMBSContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, ReceivedMBSContainer_iei_oer_ext_arr_, 0, ReceivedMBSContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t ReceivedMBSContainer_iei_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &ReceivedMBSContainer_iei_xer_, &OCTETSTRING_json_, &ReceivedMBSContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReceivedMBSContainer_iel_oer_ext_arr_[0] = {}; +const int ReceivedMBSContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReceivedMBSContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, ReceivedMBSContainer_iel_oer_ext_arr_, 0, ReceivedMBSContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t ReceivedMBSContainer_iel_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &ReceivedMBSContainer_iel_xer_, &OCTETSTRING_json_, &ReceivedMBSContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ReceivedMBSContainer_info +const TTCN_Typedescriptor_t ReceivedMBSContainer_info_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSContainer.info", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &ReceivedMBSInfo_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_rejectCause_xer_ = { {"rejectCause>\n", "rejectCause>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReceivedMBSInfo_rejectCause_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReceivedMBSInfo_rejectCause_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.rejectCause", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &ReceivedMBSInfo_rejectCause_xer_, &BITSTRING_json_, &ReceivedMBSInfo_rejectCause_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_msai_xer_ = { {"msai>\n", "msai>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReceivedMBSInfo_msai_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReceivedMBSInfo_msai_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.msai", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &ReceivedMBSInfo_msai_xer_, &BITSTRING_json_, &ReceivedMBSInfo_msai_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_md_xer_ = { {"md>\n", "md>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReceivedMBSInfo_md_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReceivedMBSInfo_md_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.md", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &ReceivedMBSInfo_md_xer_, &BITSTRING_json_, &ReceivedMBSInfo_md_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReceivedMBSInfo_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReceivedMBSInfo_spareBits_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.spareBits", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &ReceivedMBSInfo_spareBits_xer_, &BITSTRING_json_, &ReceivedMBSInfo_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_ipat_xer_ = { {"ipat>\n", "ipat>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReceivedMBSInfo_ipat_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReceivedMBSInfo_ipat_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.ipat", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ReceivedMBSInfo_ipat_xer_, &BITSTRING_json_, &ReceivedMBSInfo_ipat_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_msci_xer_ = { {"msci>\n", "msci>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReceivedMBSInfo_msci_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReceivedMBSInfo_msci_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.msci", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ReceivedMBSInfo_msci_xer_, &BITSTRING_json_, &ReceivedMBSInfo_msci_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_mti_xer_ = { {"mti>\n", "mti>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReceivedMBSInfo_mti_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReceivedMBSInfo_mti_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.mti", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &ReceivedMBSInfo_mti_xer_, &BITSTRING_json_, &ReceivedMBSInfo_mti_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_ipae_xer_ = { {"ipae>\n", "ipae>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t ReceivedMBSInfo_ipae_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t ReceivedMBSInfo_ipae_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.ipae", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &ReceivedMBSInfo_ipae_xer_, &BITSTRING_json_, &ReceivedMBSInfo_ipae_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TMGI__LV_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TMGI__LV_iel_oer_ext_arr_[0] = {}; +const int TMGI__LV_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TMGI__LV_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, TMGI__LV_iel_oer_ext_arr_, 0, TMGI__LV_iel_oer_p_}; +const TTCN_Typedescriptor_t TMGI__LV_iel_descr_ = { "@NG_NAS_TypeDefs.TMGI_LV.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &TMGI__LV_iel_xer_, &OCTETSTRING_json_, &TMGI__LV_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TMGI__LV_serviceID_xer_ = { {"serviceID>\n", "serviceID>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TMGI__LV_serviceID_oer_ext_arr_[0] = {}; +const int TMGI__LV_serviceID_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TMGI__LV_serviceID_oer_ = { -1, TRUE, 3, FALSE, 0, 0, TMGI__LV_serviceID_oer_ext_arr_, 0, TMGI__LV_serviceID_oer_p_}; +const TTCN_Typedescriptor_t TMGI__LV_serviceID_descr_ = { "@NG_NAS_TypeDefs.TMGI_LV.serviceID", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &TMGI__LV_serviceID_xer_, &OCTETSTRING_json_, &TMGI__LV_serviceID_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for TMGI__LV +const TTCN_Typedescriptor_t TMGI__LV_descr_ = { "@NG_NAS_TypeDefs.TMGI_LV", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t TMGI__LV_plmn_xer_ = { {"plmn>\n", "plmn>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int TMGI__LV_plmn_oer_ext_arr_[0] = {}; +const int TMGI__LV_plmn_oer_p_[0] = {}; +const TTCN_OERdescriptor_t TMGI__LV_plmn_oer_ = { -1, TRUE, 3, FALSE, 0, 0, TMGI__LV_plmn_oer_ext_arr_, 0, TMGI__LV_plmn_oer_p_}; +const TTCN_Typedescriptor_t TMGI__LV_plmn_descr_ = { "@NG_NAS_TypeDefs.TMGI_LV.plmn", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &TMGI__LV_plmn_xer_, &OCTETSTRING_json_, &TMGI__LV_plmn_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ReceivedMBSInfo +const TTCN_Typedescriptor_t ReceivedMBSInfo_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_sourceIPaddr_xer_ = { {"sourceIPaddr>\n", "sourceIPaddr>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReceivedMBSInfo_sourceIPaddr_oer_ext_arr_[0] = {}; +const int ReceivedMBSInfo_sourceIPaddr_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReceivedMBSInfo_sourceIPaddr_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ReceivedMBSInfo_sourceIPaddr_oer_ext_arr_, 0, ReceivedMBSInfo_sourceIPaddr_oer_p_}; +const TTCN_Typedescriptor_t ReceivedMBSInfo_sourceIPaddr_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.sourceIPaddr", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ReceivedMBSInfo_sourceIPaddr_xer_, &OCTETSTRING_json_, &ReceivedMBSInfo_sourceIPaddr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_destIPaddr_xer_ = { {"destIPaddr>\n", "destIPaddr>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReceivedMBSInfo_destIPaddr_oer_ext_arr_[0] = {}; +const int ReceivedMBSInfo_destIPaddr_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReceivedMBSInfo_destIPaddr_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ReceivedMBSInfo_destIPaddr_oer_ext_arr_, 0, ReceivedMBSInfo_destIPaddr_oer_p_}; +const TTCN_Typedescriptor_t ReceivedMBSInfo_destIPaddr_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.destIPaddr", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ReceivedMBSInfo_destIPaddr_xer_, &OCTETSTRING_json_, &ReceivedMBSInfo_destIPaddr_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for MBS__ServiceArea +const TTCN_Typedescriptor_t MBS__ServiceArea_descr_ = { "@NG_NAS_TypeDefs.MBS_ServiceArea", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__CGI__List_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NR__CGI__List_iel_oer_ext_arr_[0] = {}; +const int NR__CGI__List_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NR__CGI__List_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NR__CGI__List_iel_oer_ext_arr_, 0, NR__CGI__List_iel_oer_p_}; +const TTCN_Typedescriptor_t NR__CGI__List_iel_descr_ = { "@NG_NAS_TypeDefs.NR_CGI_List.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NR__CGI__List_iel_xer_, &OCTETSTRING_json_, &NR__CGI__List_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__CGI__List_nrCGI +const TTCN_Typedescriptor_t NR__CGI__List_nrCGI_descr_ = { "@NG_NAS_TypeDefs.NR_CGI_List.nrCGI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &NR__CGI_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__CGI_cellId_xer_ = { {"cellId>\n", "cellId>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NR__CGI_cellId_oer_ext_arr_[0] = {}; +const int NR__CGI_cellId_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NR__CGI_cellId_oer_ = { -1, TRUE, 5, FALSE, 0, 0, NR__CGI_cellId_oer_ext_arr_, 0, NR__CGI_cellId_oer_p_}; +const TTCN_Typedescriptor_t NR__CGI_cellId_descr_ = { "@NG_NAS_TypeDefs.NR_CGI.cellId", &OCTETSTRING_ber_, &CommonDefs::O5__Type_raw_, &OCTETSTRING_text_, &NR__CGI_cellId_xer_, &OCTETSTRING_json_, &NR__CGI_cellId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__CGI_plmn_xer_ = { {"plmn>\n", "plmn>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NR__CGI_plmn_oer_ext_arr_[0] = {}; +const int NR__CGI_plmn_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NR__CGI_plmn_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NR__CGI_plmn_oer_ext_arr_, 0, NR__CGI_plmn_oer_p_}; +const TTCN_Typedescriptor_t NR__CGI_plmn_descr_ = { "@NG_NAS_TypeDefs.NR_CGI.plmn", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NR__CGI_plmn_xer_, &OCTETSTRING_json_, &NR__CGI_plmn_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__CGI +const TTCN_Typedescriptor_t NR__CGI_descr_ = { "@NG_NAS_TypeDefs.NR_CGI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__CGI__List +const TTCN_Typedescriptor_t NR__CGI__List_descr_ = { "@NG_NAS_TypeDefs.NR_CGI_List", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_timers_xer_ = { {"timers>\n", "timers>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReceivedMBSInfo_timers_oer_ext_arr_[0] = {}; +const int ReceivedMBSInfo_timers_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReceivedMBSInfo_timers_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ReceivedMBSInfo_timers_oer_ext_arr_, 0, ReceivedMBSInfo_timers_oer_p_}; +const TTCN_Typedescriptor_t ReceivedMBSInfo_timers_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.timers", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ReceivedMBSInfo_timers_xer_, &OCTETSTRING_json_, &ReceivedMBSInfo_timers_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t ReceivedMBSInfo_securityContainer_xer_ = { {"securityContainer>\n", "securityContainer>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int ReceivedMBSInfo_securityContainer_oer_ext_arr_[0] = {}; +const int ReceivedMBSInfo_securityContainer_oer_p_[0] = {}; +const TTCN_OERdescriptor_t ReceivedMBSInfo_securityContainer_oer_ = { -1, TRUE, -1, FALSE, 0, 0, ReceivedMBSInfo_securityContainer_oer_ext_arr_, 0, ReceivedMBSInfo_securityContainer_oer_p_}; +const TTCN_Typedescriptor_t ReceivedMBSInfo_securityContainer_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSInfo.securityContainer", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &ReceivedMBSInfo_securityContainer_xer_, &OCTETSTRING_json_, &ReceivedMBSInfo_securityContainer_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for ReceivedMBSContainer +const TTCN_Typedescriptor_t ReceivedMBSContainer_descr_ = { "@NG_NAS_TypeDefs.ReceivedMBSContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__ESTABLISHMENT__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__ESTABLISHMENT__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__ESTABLISHMENT__REJECT_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__ESTABLISHMENT__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__ESTABLISHMENT__REJECT +const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_ESTABLISHMENT_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AllowedSSCMode_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AllowedSSCMode_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AllowedSSCMode_spare_descr_ = { "@NG_NAS_TypeDefs.AllowedSSCMode.spare", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AllowedSSCMode_spare_xer_, &BITSTRING_json_, &AllowedSSCMode_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AllowedSSCMode_ssc3_xer_ = { {"ssc3>\n", "ssc3>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AllowedSSCMode_ssc3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AllowedSSCMode_ssc3_descr_ = { "@NG_NAS_TypeDefs.AllowedSSCMode.ssc3", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AllowedSSCMode_ssc3_xer_, &BITSTRING_json_, &AllowedSSCMode_ssc3_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AllowedSSCMode_ssc2_xer_ = { {"ssc2>\n", "ssc2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AllowedSSCMode_ssc2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AllowedSSCMode_ssc2_descr_ = { "@NG_NAS_TypeDefs.AllowedSSCMode.ssc2", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AllowedSSCMode_ssc2_xer_, &BITSTRING_json_, &AllowedSSCMode_ssc2_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AllowedSSCMode_ssc1_xer_ = { {"ssc1>\n", "ssc1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AllowedSSCMode_ssc1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AllowedSSCMode_ssc1_descr_ = { "@NG_NAS_TypeDefs.AllowedSSCMode.ssc1", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &AllowedSSCMode_ssc1_xer_, &BITSTRING_json_, &AllowedSSCMode_ssc1_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AllowedSSCMode +const TTCN_Typedescriptor_t AllowedSSCMode_descr_ = { "@NG_NAS_TypeDefs.AllowedSSCMode", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AllowedSSCMode_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_Typedescriptor_t AllowedSSCMode_iei_descr_ = { "@NG_NAS_TypeDefs.AllowedSSCMode.iei", NULL, &CommonDefs::HalfOctet__Type_raw_, NULL, &AllowedSSCMode_iei_xer_, &HEXSTRING_json_, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__CongestionReattemptInd_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_spareBits_descr_ = { "@NG_NAS_TypeDefs.NGSM_CongestionReattemptInd.spareBits", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &NGSM__CongestionReattemptInd_spareBits_xer_, &BITSTRING_json_, &NGSM__CongestionReattemptInd_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__CongestionReattemptInd_catbo_xer_ = { {"catbo>\n", "catbo>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_catbo_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_catbo_descr_ = { "@NG_NAS_TypeDefs.NGSM_CongestionReattemptInd.catbo", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NGSM__CongestionReattemptInd_catbo_xer_, &BITSTRING_json_, &NGSM__CongestionReattemptInd_catbo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__CongestionReattemptInd_abo_xer_ = { {"abo>\n", "abo>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_abo_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_abo_descr_ = { "@NG_NAS_TypeDefs.NGSM_CongestionReattemptInd.abo", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &NGSM__CongestionReattemptInd_abo_xer_, &BITSTRING_json_, &NGSM__CongestionReattemptInd_abo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NGSM__CongestionReattemptInd +const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_descr_ = { "@NG_NAS_TypeDefs.NGSM_CongestionReattemptInd", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__CongestionReattemptInd_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NGSM__CongestionReattemptInd_iei_oer_ext_arr_[0] = {}; +const int NGSM__CongestionReattemptInd_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NGSM__CongestionReattemptInd_iei_oer_ext_arr_, 0, NGSM__CongestionReattemptInd_iei_oer_p_}; +const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_iei_descr_ = { "@NG_NAS_TypeDefs.NGSM_CongestionReattemptInd.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NGSM__CongestionReattemptInd_iei_xer_, &OCTETSTRING_json_, &NGSM__CongestionReattemptInd_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NGSM__CongestionReattemptInd_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NGSM__CongestionReattemptInd_iel_oer_ext_arr_[0] = {}; +const int NGSM__CongestionReattemptInd_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NGSM__CongestionReattemptInd_iel_oer_ext_arr_, 0, NGSM__CongestionReattemptInd_iel_oer_p_}; +const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_iel_descr_ = { "@NG_NAS_TypeDefs.NGSM_CongestionReattemptInd.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NGSM__CongestionReattemptInd_iel_xer_, &OCTETSTRING_json_, &NGSM__CongestionReattemptInd_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_COMMAND.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__AUTHENTICATION__COMMAND_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__AUTHENTICATION__COMMAND_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_COMMAND.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_COMMAND.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__AUTHENTICATION__COMMAND_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__AUTHENTICATION__COMMAND_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__AUTHENTICATION__COMMAND +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_COMMAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__AUTHENTICATION__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__AUTHENTICATION__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_COMPLETE.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__AUTHENTICATION__COMPLETE_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__AUTHENTICATION__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__AUTHENTICATION__COMPLETE +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_RESULT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__AUTHENTICATION__RESULT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__AUTHENTICATION__RESULT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_RESULT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_RESULT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__AUTHENTICATION__RESULT_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__AUTHENTICATION__RESULT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__AUTHENTICATION__RESULT +const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_AUTHENTICATION_RESULT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__REQUEST_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__MODIFICATION__REQUEST +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__REJECT_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__MODIFICATION__REJECT +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMMAND.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__COMMAND_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__COMMAND_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMMAND.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMMAND.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__COMMAND_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__COMMAND_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__MODIFICATION__COMMAND +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMMAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMPLETE.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__COMPLETE_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__MODIFICATION__COMPLETE +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT +const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__RELEASE__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__RELEASE__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_REQUEST.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__RELEASE__REQUEST_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__RELEASE__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__RELEASE__REQUEST +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REJECT_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_REJECT.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__RELEASE__REJECT_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__RELEASE__REJECT_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_REJECT.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REJECT_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_REJECT.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__RELEASE__REJECT_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__RELEASE__REJECT_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__RELEASE__REJECT +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REJECT_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_REJECT", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_COMMAND.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__RELEASE__COMMAND_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__RELEASE__COMMAND_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_COMMAND.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_COMMAND.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__RELEASE__COMMAND_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__RELEASE__COMMAND_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__RELEASE__COMMAND +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_COMMAND", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_COMPLETE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__RELEASE__COMPLETE_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__PDU__SESSION__RELEASE__COMPLETE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_COMPLETE.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_COMPLETE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__PDU__SESSION__RELEASE__COMPLETE_messageType_xer_, &BITSTRING_json_, &NG__PDU__SESSION__RELEASE__COMPLETE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__PDU__SESSION__RELEASE__COMPLETE +const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_descr_ = { "@NG_NAS_TypeDefs.NG_PDU_SESSION_RELEASE_COMPLETE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GSM__STATUS_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GSM__STATUS_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GSM__STATUS_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NG_GSM_STATUS.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__GSM__STATUS_protocolDiscriminator_xer_, &BITSTRING_json_, &NG__GSM__STATUS_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GSM__STATUS_procedureTransactionIdentifier_xer_ = { {"procedureTransactionIdentifier>\n", "procedureTransactionIdentifier>\n"}, {32, 32}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__GSM__STATUS_procedureTransactionIdentifier_oer_ext_arr_[0] = {}; +const int NG__GSM__STATUS_procedureTransactionIdentifier_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__GSM__STATUS_procedureTransactionIdentifier_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NG__GSM__STATUS_procedureTransactionIdentifier_oer_ext_arr_, 0, NG__GSM__STATUS_procedureTransactionIdentifier_oer_p_}; +const TTCN_Typedescriptor_t NG__GSM__STATUS_procedureTransactionIdentifier_descr_ = { "@NG_NAS_TypeDefs.NG_GSM_STATUS.procedureTransactionIdentifier", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NG__GSM__STATUS_procedureTransactionIdentifier_xer_, &OCTETSTRING_json_, &NG__GSM__STATUS_procedureTransactionIdentifier_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__GSM__STATUS_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__GSM__STATUS_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__GSM__STATUS_messageType_descr_ = { "@NG_NAS_TypeDefs.NG_GSM_STATUS.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NG__GSM__STATUS_messageType_xer_, &BITSTRING_json_, &NG__GSM__STATUS_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__GSM__STATUS +const TTCN_Typedescriptor_t NG__GSM__STATUS_descr_ = { "@NG_NAS_TypeDefs.NG_GSM_STATUS", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CIoTSmallDataContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CIoTSmallDataContainer_iel_oer_ext_arr_[0] = {}; +const int CIoTSmallDataContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CIoTSmallDataContainer_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CIoTSmallDataContainer_iel_oer_ext_arr_, 0, CIoTSmallDataContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t CIoTSmallDataContainer_iel_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CIoTSmallDataContainer_iel_xer_, &OCTETSTRING_json_, &CIoTSmallDataContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CIoTSmallDataContainer_dataType_xer_ = { {"dataType>\n", "dataType>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CIoTSmallDataContainer_dataType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CIoTSmallDataContainer_dataType_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataContainer.dataType", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &CIoTSmallDataContainer_dataType_xer_, &BITSTRING_json_, &CIoTSmallDataContainer_dataType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CIoTSmallDataContainer_ddx_xer_ = { {"ddx>\n", "ddx>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CIoTSmallDataContainer_ddx_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CIoTSmallDataContainer_ddx_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataContainer.ddx", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &CIoTSmallDataContainer_ddx_xer_, &BITSTRING_json_, &CIoTSmallDataContainer_ddx_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CIoTSmallDataContainer_pduSessionId_xer_ = { {"pduSessionId>\n", "pduSessionId>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t CIoTSmallDataContainer_pduSessionId_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t CIoTSmallDataContainer_pduSessionId_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataContainer.pduSessionId", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &CIoTSmallDataContainer_pduSessionId_xer_, &BITSTRING_json_, &CIoTSmallDataContainer_pduSessionId_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CIoTSmallDataContainer_dataContents_xer_ = { {"dataContents>\n", "dataContents>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CIoTSmallDataContainer_dataContents_oer_ext_arr_[0] = {}; +const int CIoTSmallDataContainer_dataContents_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CIoTSmallDataContainer_dataContents_oer_ = { -1, TRUE, -1, FALSE, 0, 0, CIoTSmallDataContainer_dataContents_oer_ext_arr_, 0, CIoTSmallDataContainer_dataContents_oer_p_}; +const TTCN_Typedescriptor_t CIoTSmallDataContainer_dataContents_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataContainer.dataContents", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &CIoTSmallDataContainer_dataContents_xer_, &OCTETSTRING_json_, &CIoTSmallDataContainer_dataContents_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for CIoTSmallDataContainer +const TTCN_Typedescriptor_t CIoTSmallDataContainer_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CIoTSmallDataContainer_lengthOfAddInfo_xer_ = { {"lengthOfAddInfo>\n", "lengthOfAddInfo>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CIoTSmallDataContainer_lengthOfAddInfo_oer_ext_arr_[0] = {}; +const int CIoTSmallDataContainer_lengthOfAddInfo_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CIoTSmallDataContainer_lengthOfAddInfo_oer_ = { -1, TRUE, 1, FALSE, 0, 0, CIoTSmallDataContainer_lengthOfAddInfo_oer_ext_arr_, 0, CIoTSmallDataContainer_lengthOfAddInfo_oer_p_}; +const TTCN_Typedescriptor_t CIoTSmallDataContainer_lengthOfAddInfo_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataContainer.lengthOfAddInfo", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &CIoTSmallDataContainer_lengthOfAddInfo_xer_, &OCTETSTRING_json_, &CIoTSmallDataContainer_lengthOfAddInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t CIoTSmallDataContainer_addInfo_xer_ = { {"addInfo>\n", "addInfo>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int CIoTSmallDataContainer_addInfo_oer_ext_arr_[0] = {}; +const int CIoTSmallDataContainer_addInfo_oer_p_[0] = {}; +const TTCN_OERdescriptor_t CIoTSmallDataContainer_addInfo_oer_ = { -1, TRUE, -1, FALSE, 0, 0, CIoTSmallDataContainer_addInfo_oer_ext_arr_, 0, CIoTSmallDataContainer_addInfo_oer_p_}; +const TTCN_Typedescriptor_t CIoTSmallDataContainer_addInfo_descr_ = { "@NG_NAS_TypeDefs.CIoTSmallDataContainer.addInfo", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &CIoTSmallDataContainer_addInfo_xer_, &OCTETSTRING_json_, &CIoTSmallDataContainer_addInfo_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for QoS__FlowList +const TTCN_Typedescriptor_t QoS__FlowList_descr_ = { "@NG_NAS_TypeDefs.QoS_FlowList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &QoS__Flow_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__Header_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UPU__Header_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UPU__Header_spare_descr_ = { "@NG_NAS_TypeDefs.UPU_Header.spare", &BITSTRING_ber_, &CommonDefs::B5__Type_raw_, NULL, &UPU__Header_spare_xer_, &BITSTRING_json_, &UPU__Header_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__Header_reg_xer_ = { {"reg>\n", "reg>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UPU__Header_reg_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UPU__Header_reg_descr_ = { "@NG_NAS_TypeDefs.UPU_Header.reg", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UPU__Header_reg_xer_, &BITSTRING_json_, &UPU__Header_reg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__Header_ack_xer_ = { {"ack>\n", "ack>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UPU__Header_ack_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UPU__Header_ack_descr_ = { "@NG_NAS_TypeDefs.UPU_Header.ack", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UPU__Header_ack_xer_, &BITSTRING_json_, &UPU__Header_ack_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__Header_upuDataType_xer_ = { {"upuDataType>\n", "upuDataType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UPU__Header_upuDataType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UPU__Header_upuDataType_descr_ = { "@NG_NAS_TypeDefs.UPU_Header.upuDataType", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &UPU__Header_upuDataType_xer_, &BITSTRING_json_, &UPU__Header_upuDataType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UPU__Header +const TTCN_Typedescriptor_t UPU__Header_descr_ = { "@NG_NAS_TypeDefs.UPU_Header", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__Param_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UPU__Param_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UPU__Param_spare_descr_ = { "@NG_NAS_TypeDefs.UPU_Param.spare", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UPU__Param_spare_xer_, &BITSTRING_json_, &UPU__Param_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__Param_dataSetType_xer_ = { {"dataSetType>\n", "dataSetType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UPU__Param_dataSetType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UPU__Param_dataSetType_descr_ = { "@NG_NAS_TypeDefs.UPU_Param.dataSetType", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UPU__Param_dataSetType_xer_, &BITSTRING_json_, &UPU__Param_dataSetType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__Param_len_xer_ = { {"len>\n", "len>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UPU__Param_len_oer_ext_arr_[0] = {}; +const int UPU__Param_len_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UPU__Param_len_oer_ = { -1, TRUE, 2, FALSE, 0, 0, UPU__Param_len_oer_ext_arr_, 0, UPU__Param_len_oer_p_}; +const TTCN_Typedescriptor_t UPU__Param_len_descr_ = { "@NG_NAS_TypeDefs.UPU_Param.len", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &UPU__Param_len_xer_, &OCTETSTRING_json_, &UPU__Param_len_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__Param_dataSet_xer_ = { {"dataSet>\n", "dataSet>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UPU__Param_dataSet_oer_ext_arr_[0] = {}; +const int UPU__Param_dataSet_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UPU__Param_dataSet_oer_ = { -1, TRUE, -1, FALSE, 0, 0, UPU__Param_dataSet_oer_ext_arr_, 0, UPU__Param_dataSet_oer_p_}; +const TTCN_Typedescriptor_t UPU__Param_dataSet_descr_ = { "@NG_NAS_TypeDefs.UPU_Param.dataSet", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &UPU__Param_dataSet_xer_, &OCTETSTRING_json_, &UPU__Param_dataSet_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UPU__Param +const TTCN_Typedescriptor_t UPU__Param_descr_ = { "@NG_NAS_TypeDefs.UPU_Param", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UPU__ParamList +const TTCN_Typedescriptor_t UPU__ParamList_descr_ = { "@NG_NAS_TypeDefs.UPU_ParamList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &UPU__Param_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__TransparentContainer_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UPU__TransparentContainer_iel_oer_ext_arr_[0] = {}; +const int UPU__TransparentContainer_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UPU__TransparentContainer_iel_oer_ = { -1, TRUE, 2, FALSE, 0, 0, UPU__TransparentContainer_iel_oer_ext_arr_, 0, UPU__TransparentContainer_iel_oer_p_}; +const TTCN_Typedescriptor_t UPU__TransparentContainer_iel_descr_ = { "@NG_NAS_TypeDefs.UPU_TransparentContainer.iel", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &UPU__TransparentContainer_iel_xer_, &OCTETSTRING_json_, &UPU__TransparentContainer_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__TransparentContainer_upuMAC__I_xer_ = { {"upuMAC_I>\n", "upuMAC_I>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UPU__TransparentContainer_upuMAC__I_oer_ext_arr_[0] = {}; +const int UPU__TransparentContainer_upuMAC__I_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UPU__TransparentContainer_upuMAC__I_oer_ = { -1, TRUE, 16, FALSE, 0, 0, UPU__TransparentContainer_upuMAC__I_oer_ext_arr_, 0, UPU__TransparentContainer_upuMAC__I_oer_p_}; +const TTCN_Typedescriptor_t UPU__TransparentContainer_upuMAC__I_descr_ = { "@NG_NAS_TypeDefs.UPU_TransparentContainer.upuMAC_I", &OCTETSTRING_ber_, &CommonDefs::O16__Type_raw_, &OCTETSTRING_text_, &UPU__TransparentContainer_upuMAC__I_xer_, &OCTETSTRING_json_, &UPU__TransparentContainer_upuMAC__I_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UPU__TransparentContainer +const TTCN_Typedescriptor_t UPU__TransparentContainer_descr_ = { "@NG_NAS_TypeDefs.UPU_TransparentContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__TransparentContainer_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UPU__TransparentContainer_iei_oer_ext_arr_[0] = {}; +const int UPU__TransparentContainer_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UPU__TransparentContainer_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, UPU__TransparentContainer_iei_oer_ext_arr_, 0, UPU__TransparentContainer_iei_oer_p_}; +const TTCN_Typedescriptor_t UPU__TransparentContainer_iei_descr_ = { "@NG_NAS_TypeDefs.UPU_TransparentContainer.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &UPU__TransparentContainer_iei_xer_, &OCTETSTRING_json_, &UPU__TransparentContainer_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UPU__TransparentContainer_counter_xer_ = { {"counter>\n", "counter>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int UPU__TransparentContainer_counter_oer_ext_arr_[0] = {}; +const int UPU__TransparentContainer_counter_oer_p_[0] = {}; +const TTCN_OERdescriptor_t UPU__TransparentContainer_counter_oer_ = { -1, TRUE, 2, FALSE, 0, 0, UPU__TransparentContainer_counter_oer_ext_arr_, 0, UPU__TransparentContainer_counter_oer_p_}; +const TTCN_Typedescriptor_t UPU__TransparentContainer_counter_descr_ = { "@NG_NAS_TypeDefs.UPU_TransparentContainer.counter", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &UPU__TransparentContainer_counter_xer_, &OCTETSTRING_json_, &UPU__TransparentContainer_counter_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI__DELETE__REQUEST_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_skipIndicator_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_REQUEST.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NSSAI__DELETE__REQUEST_skipIndicator_xer_, &BITSTRING_json_, &NSSAI__DELETE__REQUEST_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI__DELETE__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NSSAI__DELETE__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &NSSAI__DELETE__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI__DELETE__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NSSAI__DELETE__REQUEST_messageType_xer_, &BITSTRING_json_, &NSSAI__DELETE__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI__DELETE__REQUEST_deleteNSSAI__Type_xer_ = { {"deleteNSSAI_Type>\n", "deleteNSSAI_Type>\n"}, {18, 18}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_deleteNSSAI__Type_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_deleteNSSAI__Type_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_REQUEST.deleteNSSAI_Type", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NSSAI__DELETE__REQUEST_deleteNSSAI__Type_xer_, &BITSTRING_json_, &NSSAI__DELETE__REQUEST_deleteNSSAI__Type_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSSAI__DELETE__REQUEST +const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI__DELETE__REQUEST_configuredNSSAI_xer_ = { {"configuredNSSAI>\n", "configuredNSSAI>\n"}, {17, 17}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NSSAI__DELETE__REQUEST_configuredNSSAI_oer_ext_arr_[0] = {}; +const int NSSAI__DELETE__REQUEST_configuredNSSAI_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_configuredNSSAI_oer_ = { -1, TRUE, 3, FALSE, 0, 0, NSSAI__DELETE__REQUEST_configuredNSSAI_oer_ext_arr_, 0, NSSAI__DELETE__REQUEST_configuredNSSAI_oer_p_}; +const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_configuredNSSAI_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_REQUEST.configuredNSSAI", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &NSSAI__DELETE__REQUEST_configuredNSSAI_xer_, &OCTETSTRING_json_, &NSSAI__DELETE__REQUEST_configuredNSSAI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AllowedNSSAI_allowedNSSAI_xer_ = { {"allowedNSSAI>\n", "allowedNSSAI>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int AllowedNSSAI_allowedNSSAI_oer_ext_arr_[0] = {}; +const int AllowedNSSAI_allowedNSSAI_oer_p_[0] = {}; +const TTCN_OERdescriptor_t AllowedNSSAI_allowedNSSAI_oer_ = { -1, TRUE, 3, FALSE, 0, 0, AllowedNSSAI_allowedNSSAI_oer_ext_arr_, 0, AllowedNSSAI_allowedNSSAI_oer_p_}; +const TTCN_Typedescriptor_t AllowedNSSAI_allowedNSSAI_descr_ = { "@NG_NAS_TypeDefs.AllowedNSSAI.allowedNSSAI", &OCTETSTRING_ber_, &CommonDefs::O3__Type_raw_, &OCTETSTRING_text_, &AllowedNSSAI_allowedNSSAI_xer_, &OCTETSTRING_json_, &AllowedNSSAI_allowedNSSAI_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AllowedNSSAI_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AllowedNSSAI_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AllowedNSSAI_spareBits_descr_ = { "@NG_NAS_TypeDefs.AllowedNSSAI.spareBits", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &AllowedNSSAI_spareBits_xer_, &BITSTRING_json_, &AllowedNSSAI_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t AllowedNSSAI_accessType_xer_ = { {"accessType>\n", "accessType>\n"}, {12, 12}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t AllowedNSSAI_accessType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t AllowedNSSAI_accessType_descr_ = { "@NG_NAS_TypeDefs.AllowedNSSAI.accessType", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &AllowedNSSAI_accessType_xer_, &BITSTRING_json_, &AllowedNSSAI_accessType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for AllowedNSSAI +const TTCN_Typedescriptor_t AllowedNSSAI_descr_ = { "@NG_NAS_TypeDefs.AllowedNSSAI", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI__DELETE__RESPONSE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NSSAI__DELETE__RESPONSE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NSSAI__DELETE__RESPONSE_skipIndicator_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_RESPONSE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NSSAI__DELETE__RESPONSE_skipIndicator_xer_, &BITSTRING_json_, &NSSAI__DELETE__RESPONSE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI__DELETE__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NSSAI__DELETE__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NSSAI__DELETE__RESPONSE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NSSAI__DELETE__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &NSSAI__DELETE__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NSSAI__DELETE__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NSSAI__DELETE__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NSSAI__DELETE__RESPONSE_messageType_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &NSSAI__DELETE__RESPONSE_messageType_xer_, &BITSTRING_json_, &NSSAI__DELETE__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NSSAI__DELETE__RESPONSE +const TTCN_Typedescriptor_t NSSAI__DELETE__RESPONSE_descr_ = { "@NG_NAS_TypeDefs.NSSAI_DELETE_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_skipIndicator_descr_ = { "@NG_NAS_TypeDefs.UE_TEST_LOOP_NR_SIDELINK_COUNTER_REQUEST.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_skipIndicator_xer_, &BITSTRING_json_, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.UE_TEST_LOOP_NR_SIDELINK_COUNTER_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.UE_TEST_LOOP_NR_SIDELINK_COUNTER_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_messageType_xer_, &BITSTRING_json_, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST +const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_descr_ = { "@NG_NAS_TypeDefs.UE_TEST_LOOP_NR_SIDELINK_COUNTER_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for PacketCounterValueList +const TTCN_Typedescriptor_t PacketCounterValueList_descr_ = { "@NG_NAS_TypeDefs.PacketCounterValueList", NULL, NULL, NULL, NULL, NULL, NULL, NULL, &CommonDefs::O4__Type_descr_, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t PacketCounterValueList_0_xer_ = { {"O4_Type>\n", "O4_Type>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int PacketCounterValueList_0_oer_ext_arr_[0] = {}; +const int PacketCounterValueList_0_oer_p_[0] = {}; +const TTCN_OERdescriptor_t PacketCounterValueList_0_oer_ = { -1, TRUE, 4, FALSE, 0, 0, PacketCounterValueList_0_oer_ext_arr_, 0, PacketCounterValueList_0_oer_p_}; +const TTCN_Typedescriptor_t PacketCounterValueList_0_descr_ = { "@NG_NAS_TypeDefs.PacketCounterValueList.", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &PacketCounterValueList_0_xer_, &OCTETSTRING_json_, &PacketCounterValueList_0_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__SidelinkCounter_iei_xer_ = { {"iei>\n", "iei>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NR__SidelinkCounter_iei_oer_ext_arr_[0] = {}; +const int NR__SidelinkCounter_iei_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NR__SidelinkCounter_iei_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NR__SidelinkCounter_iei_oer_ext_arr_, 0, NR__SidelinkCounter_iei_oer_p_}; +const TTCN_Typedescriptor_t NR__SidelinkCounter_iei_descr_ = { "@NG_NAS_TypeDefs.NR_SidelinkCounter.iei", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NR__SidelinkCounter_iei_xer_, &OCTETSTRING_json_, &NR__SidelinkCounter_iei_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NR__SidelinkCounter_iel_xer_ = { {"iel>\n", "iel>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NR__SidelinkCounter_iel_oer_ext_arr_[0] = {}; +const int NR__SidelinkCounter_iel_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NR__SidelinkCounter_iel_oer_ = { -1, TRUE, 1, FALSE, 0, 0, NR__SidelinkCounter_iel_oer_ext_arr_, 0, NR__SidelinkCounter_iel_oer_p_}; +const TTCN_Typedescriptor_t NR__SidelinkCounter_iel_descr_ = { "@NG_NAS_TypeDefs.NR_SidelinkCounter.iel", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &NR__SidelinkCounter_iel_xer_, &OCTETSTRING_json_, &NR__SidelinkCounter_iel_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NR__SidelinkCounter +const TTCN_Typedescriptor_t NR__SidelinkCounter_descr_ = { "@NG_NAS_TypeDefs.NR_SidelinkCounter", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_skipIndicator_descr_ = { "@NG_NAS_TypeDefs.UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_skipIndicator_xer_, &BITSTRING_json_, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_messageType_descr_ = { "@NG_NAS_TypeDefs.UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_messageType_xer_, &BITSTRING_json_, &UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE +const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_descr_ = { "@NG_NAS_TypeDefs.UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S1ToN1TransparentContainer_ciphAlg_xer_ = { {"ciphAlg>\n", "ciphAlg>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t S1ToN1TransparentContainer_ciphAlg_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t S1ToN1TransparentContainer_ciphAlg_descr_ = { "@NG_NAS_TypeDefs.S1ToN1TransparentContainer.ciphAlg", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &S1ToN1TransparentContainer_ciphAlg_xer_, &BITSTRING_json_, &S1ToN1TransparentContainer_ciphAlg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S1ToN1TransparentContainer_intAlg_xer_ = { {"intAlg>\n", "intAlg>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t S1ToN1TransparentContainer_intAlg_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t S1ToN1TransparentContainer_intAlg_descr_ = { "@NG_NAS_TypeDefs.S1ToN1TransparentContainer.intAlg", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &S1ToN1TransparentContainer_intAlg_xer_, &BITSTRING_json_, &S1ToN1TransparentContainer_intAlg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S1ToN1TransparentContainer_spareBit_xer_ = { {"spareBit>\n", "spareBit>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t S1ToN1TransparentContainer_spareBit_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t S1ToN1TransparentContainer_spareBit_descr_ = { "@NG_NAS_TypeDefs.S1ToN1TransparentContainer.spareBit", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &S1ToN1TransparentContainer_spareBit_xer_, &BITSTRING_json_, &S1ToN1TransparentContainer_spareBit_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S1ToN1TransparentContainer_ncc_xer_ = { {"ncc>\n", "ncc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t S1ToN1TransparentContainer_ncc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t S1ToN1TransparentContainer_ncc_descr_ = { "@NG_NAS_TypeDefs.S1ToN1TransparentContainer.ncc", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &S1ToN1TransparentContainer_ncc_xer_, &BITSTRING_json_, &S1ToN1TransparentContainer_ncc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S1ToN1TransparentContainer_tsc_xer_ = { {"tsc>\n", "tsc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t S1ToN1TransparentContainer_tsc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t S1ToN1TransparentContainer_tsc_descr_ = { "@NG_NAS_TypeDefs.S1ToN1TransparentContainer.tsc", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &S1ToN1TransparentContainer_tsc_xer_, &BITSTRING_json_, &S1ToN1TransparentContainer_tsc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S1ToN1TransparentContainer_ksi5G_xer_ = { {"ksi5G>\n", "ksi5G>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t S1ToN1TransparentContainer_ksi5G_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t S1ToN1TransparentContainer_ksi5G_descr_ = { "@NG_NAS_TypeDefs.S1ToN1TransparentContainer.ksi5G", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &S1ToN1TransparentContainer_ksi5G_xer_, &BITSTRING_json_, &S1ToN1TransparentContainer_ksi5G_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S1ToN1TransparentContainer_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int S1ToN1TransparentContainer_spare_oer_ext_arr_[0] = {}; +const int S1ToN1TransparentContainer_spare_oer_p_[0] = {}; +const TTCN_OERdescriptor_t S1ToN1TransparentContainer_spare_oer_ = { -1, TRUE, 2, FALSE, 0, 0, S1ToN1TransparentContainer_spare_oer_ext_arr_, 0, S1ToN1TransparentContainer_spare_oer_p_}; +const TTCN_Typedescriptor_t S1ToN1TransparentContainer_spare_descr_ = { "@NG_NAS_TypeDefs.S1ToN1TransparentContainer.spare", &OCTETSTRING_ber_, &CommonDefs::O2__Type_raw_, &OCTETSTRING_text_, &S1ToN1TransparentContainer_spare_xer_, &OCTETSTRING_json_, &S1ToN1TransparentContainer_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for S1ToN1TransparentContainer +const TTCN_Typedescriptor_t S1ToN1TransparentContainer_descr_ = { "@NG_NAS_TypeDefs.S1ToN1TransparentContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t S1ToN1TransparentContainer_mac_xer_ = { {"mac>\n", "mac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int S1ToN1TransparentContainer_mac_oer_ext_arr_[0] = {}; +const int S1ToN1TransparentContainer_mac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t S1ToN1TransparentContainer_mac_oer_ = { -1, TRUE, 4, FALSE, 0, 0, S1ToN1TransparentContainer_mac_oer_ext_arr_, 0, S1ToN1TransparentContainer_mac_oer_p_}; +const TTCN_Typedescriptor_t S1ToN1TransparentContainer_mac_descr_ = { "@NG_NAS_TypeDefs.S1ToN1TransparentContainer.mac", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &S1ToN1TransparentContainer_mac_xer_, &OCTETSTRING_json_, &S1ToN1TransparentContainer_mac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntraN1TransparentContainer_ciphAlg_xer_ = { {"ciphAlg>\n", "ciphAlg>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IntraN1TransparentContainer_ciphAlg_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IntraN1TransparentContainer_ciphAlg_descr_ = { "@NG_NAS_TypeDefs.IntraN1TransparentContainer.ciphAlg", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &IntraN1TransparentContainer_ciphAlg_xer_, &BITSTRING_json_, &IntraN1TransparentContainer_ciphAlg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntraN1TransparentContainer_intAlg_xer_ = { {"intAlg>\n", "intAlg>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IntraN1TransparentContainer_intAlg_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IntraN1TransparentContainer_intAlg_descr_ = { "@NG_NAS_TypeDefs.IntraN1TransparentContainer.intAlg", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &IntraN1TransparentContainer_intAlg_xer_, &BITSTRING_json_, &IntraN1TransparentContainer_intAlg_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntraN1TransparentContainer_spareBits_xer_ = { {"spareBits>\n", "spareBits>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IntraN1TransparentContainer_spareBits_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IntraN1TransparentContainer_spareBits_descr_ = { "@NG_NAS_TypeDefs.IntraN1TransparentContainer.spareBits", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &IntraN1TransparentContainer_spareBits_xer_, &BITSTRING_json_, &IntraN1TransparentContainer_spareBits_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntraN1TransparentContainer_kacf_xer_ = { {"kacf>\n", "kacf>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IntraN1TransparentContainer_kacf_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IntraN1TransparentContainer_kacf_descr_ = { "@NG_NAS_TypeDefs.IntraN1TransparentContainer.kacf", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IntraN1TransparentContainer_kacf_xer_, &BITSTRING_json_, &IntraN1TransparentContainer_kacf_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntraN1TransparentContainer_tsc_xer_ = { {"tsc>\n", "tsc>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IntraN1TransparentContainer_tsc_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IntraN1TransparentContainer_tsc_descr_ = { "@NG_NAS_TypeDefs.IntraN1TransparentContainer.tsc", &BITSTRING_ber_, &CommonDefs::B1__Type_raw_, NULL, &IntraN1TransparentContainer_tsc_xer_, &BITSTRING_json_, &IntraN1TransparentContainer_tsc_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntraN1TransparentContainer_ksi5G_xer_ = { {"ksi5G>\n", "ksi5G>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t IntraN1TransparentContainer_ksi5G_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t IntraN1TransparentContainer_ksi5G_descr_ = { "@NG_NAS_TypeDefs.IntraN1TransparentContainer.ksi5G", &BITSTRING_ber_, &CommonDefs::B3__Type_raw_, NULL, &IntraN1TransparentContainer_ksi5G_xer_, &BITSTRING_json_, &IntraN1TransparentContainer_ksi5G_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntraN1TransparentContainer_sequenceNum_xer_ = { {"sequenceNum>\n", "sequenceNum>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IntraN1TransparentContainer_sequenceNum_oer_ext_arr_[0] = {}; +const int IntraN1TransparentContainer_sequenceNum_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IntraN1TransparentContainer_sequenceNum_oer_ = { -1, TRUE, 1, FALSE, 0, 0, IntraN1TransparentContainer_sequenceNum_oer_ext_arr_, 0, IntraN1TransparentContainer_sequenceNum_oer_p_}; +const TTCN_Typedescriptor_t IntraN1TransparentContainer_sequenceNum_descr_ = { "@NG_NAS_TypeDefs.IntraN1TransparentContainer.sequenceNum", &OCTETSTRING_ber_, &CommonDefs::O1__Type_raw_, &OCTETSTRING_text_, &IntraN1TransparentContainer_sequenceNum_xer_, &OCTETSTRING_json_, &IntraN1TransparentContainer_sequenceNum_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for IntraN1TransparentContainer +const TTCN_Typedescriptor_t IntraN1TransparentContainer_descr_ = { "@NG_NAS_TypeDefs.IntraN1TransparentContainer", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t IntraN1TransparentContainer_mac_xer_ = { {"mac>\n", "mac>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int IntraN1TransparentContainer_mac_oer_ext_arr_[0] = {}; +const int IntraN1TransparentContainer_mac_oer_p_[0] = {}; +const TTCN_OERdescriptor_t IntraN1TransparentContainer_mac_oer_ = { -1, TRUE, 4, FALSE, 0, 0, IntraN1TransparentContainer_mac_oer_ext_arr_, 0, IntraN1TransparentContainer_mac_oer_p_}; +const TTCN_Typedescriptor_t IntraN1TransparentContainer_mac_descr_ = { "@NG_NAS_TypeDefs.IntraN1TransparentContainer.mac", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &IntraN1TransparentContainer_mac_xer_, &OCTETSTRING_json_, &IntraN1TransparentContainer_mac_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UAI__REQUEST_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UAI__REQUEST_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UAI__REQUEST_skipIndicator_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_REQUEST.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SET__UAI__REQUEST_skipIndicator_xer_, &BITSTRING_json_, &SET__UAI__REQUEST_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UAI__REQUEST_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UAI__REQUEST_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UAI__REQUEST_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_REQUEST.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SET__UAI__REQUEST_protocolDiscriminator_xer_, &BITSTRING_json_, &SET__UAI__REQUEST_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UAI__REQUEST_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UAI__REQUEST_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UAI__REQUEST_messageType_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_REQUEST.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &SET__UAI__REQUEST_messageType_xer_, &BITSTRING_json_, &SET__UAI__REQUEST_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UAI__REQUEST_spare_xer_ = { {"spare>\n", "spare>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UAI__REQUEST_spare_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UAI__REQUEST_spare_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_REQUEST.spare", &BITSTRING_ber_, &CommonDefs::B6__Type_raw_, NULL, &SET__UAI__REQUEST_spare_xer_, &BITSTRING_json_, &SET__UAI__REQUEST_spare_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UAI__REQUEST_preferredRRCState_xer_ = { {"preferredRRCState>\n", "preferredRRCState>\n"}, {19, 19}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UAI__REQUEST_preferredRRCState_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UAI__REQUEST_preferredRRCState_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_REQUEST.preferredRRCState", &BITSTRING_ber_, &CommonDefs::B2__Type_raw_, NULL, &SET__UAI__REQUEST_preferredRRCState_xer_, &BITSTRING_json_, &SET__UAI__REQUEST_preferredRRCState_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SET__UAI__REQUEST +const TTCN_Typedescriptor_t SET__UAI__REQUEST_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_REQUEST", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UAI__RESPONSE_skipIndicator_xer_ = { {"skipIndicator>\n", "skipIndicator>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UAI__RESPONSE_skipIndicator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UAI__RESPONSE_skipIndicator_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_RESPONSE.skipIndicator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SET__UAI__RESPONSE_skipIndicator_xer_, &BITSTRING_json_, &SET__UAI__RESPONSE_skipIndicator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UAI__RESPONSE_protocolDiscriminator_xer_ = { {"protocolDiscriminator>\n", "protocolDiscriminator>\n"}, {23, 23}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UAI__RESPONSE_protocolDiscriminator_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UAI__RESPONSE_protocolDiscriminator_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_RESPONSE.protocolDiscriminator", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &SET__UAI__RESPONSE_protocolDiscriminator_xer_, &BITSTRING_json_, &SET__UAI__RESPONSE_protocolDiscriminator_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t SET__UAI__RESPONSE_messageType_xer_ = { {"messageType>\n", "messageType>\n"}, {13, 13}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t SET__UAI__RESPONSE_messageType_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t SET__UAI__RESPONSE_messageType_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_RESPONSE.messageType", &BITSTRING_ber_, &CommonDefs::B8__Type_raw_, NULL, &SET__UAI__RESPONSE_messageType_xer_, &BITSTRING_json_, &SET__UAI__RESPONSE_messageType_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for SET__UAI__RESPONSE +const TTCN_Typedescriptor_t SET__UAI__RESPONSE_descr_ = { "@NG_NAS_TypeDefs.SET_UAI_RESPONSE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("NG_NAS_TypeDefs", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_NG_NAS_TypeDefs(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "ABBA")) { + ((const ABBA*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ABBA template")) { + ((const ABBA_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATSSSContainer")) { + ((const ATSSSContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ATSSSContainer template")) { + ((const ATSSSContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AccessCatDefinition")) { + ((const AccessCatDefinition*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AccessCatDefinition template")) { + ((const AccessCatDefinition_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AccessType")) { + ((const AccessType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AccessType template")) { + ((const AccessType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AddConfigInfo")) { + ((const AddConfigInfo*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AddConfigInfo template")) { + ((const AddConfigInfo_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AddInfoRequest")) { + ((const AddInfoRequest*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AddInfoRequest template")) { + ((const AddInfoRequest_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalSecurityInfo")) { + ((const AdditionalSecurityInfo*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AdditionalSecurityInfo template")) { + ((const AdditionalSecurityInfo_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AllowedNSSAI")) { + ((const AllowedNSSAI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AllowedNSSAI template")) { + ((const AllowedNSSAI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AllowedSSCMode")) { + ((const AllowedSSCMode*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AllowedSSCMode template")) { + ((const AllowedSSCMode_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AlwaysOnPDUSessionInd")) { + ((const AlwaysOnPDUSessionInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "AlwaysOnPDUSessionInd template")) { + ((const AlwaysOnPDUSessionInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CAGInfoList")) { + ((const CAGInfoList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CAGInfoList template")) { + ((const CAGInfoList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CAG_Info")) { + ((const CAG__Info*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CAG_Info template")) { + ((const CAG__Info_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CAG_Info_V")) { + ((const CAG__Info__V*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CAG_Info_V template")) { + ((const CAG__Info__V_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CIoTSmallDataContainer")) { + ((const CIoTSmallDataContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CIoTSmallDataContainer template")) { + ((const CIoTSmallDataContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CIoTSmallDataRxdString")) { + ((const CIoTSmallDataRxdString*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CIoTSmallDataRxdString template")) { + ((const CIoTSmallDataRxdString_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CP_ServiceType")) { + ((const CP__ServiceType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "CP_ServiceType template")) { + ((const CP__ServiceType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ConfigUpdateInd")) { + ((const ConfigUpdateInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ConfigUpdateInd template")) { + ((const ConfigUpdateInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DNN")) { + ((const DNN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DNN template")) { + ((const DNN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DS_TT_EthernetPortMACAddr")) { + ((const DS__TT__EthernetPortMACAddr*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DS_TT_EthernetPortMACAddr template")) { + ((const DS__TT__EthernetPortMACAddr_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DeregisterType")) { + ((const DeregisterType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DeregisterType template")) { + ((const DeregisterType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DisasterPLMNList")) { + ((const DisasterPLMNList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "DisasterPLMNList template")) { + ((const DisasterPLMNList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Message")) { + ((const EAP__Message*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EAP_Message template")) { + ((const EAP__Message_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPSParameters")) { + ((const EPSParameters*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPSParameters template")) { + ((const EPSParameters_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_MessageContainer")) { + ((const EPS__MessageContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EPS_MessageContainer template")) { + ((const EPS__MessageContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EthernetHeaderCompressConfig")) { + ((const EthernetHeaderCompressConfig*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "EthernetHeaderCompressConfig template")) { + ((const EthernetHeaderCompressConfig_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdCAGInfoList")) { + ((const ExtdCAGInfoList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdCAGInfoList template")) { + ((const ExtdCAGInfoList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdCAG_Info")) { + ((const ExtdCAG__Info*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdCAG_Info template")) { + ((const ExtdCAG__Info_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdRejectedNSSAI")) { + ((const ExtdRejectedNSSAI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ExtdRejectedNSSAI template")) { + ((const ExtdRejectedNSSAI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GMM_GSM_Cause")) { + ((const GMM__GSM__Cause*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "GMM_GSM_Cause template")) { + ((const GMM__GSM__Cause_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IPHeaderCompressionConfig")) { + ((const IPHeaderCompressionConfig*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IPHeaderCompressionConfig template")) { + ((const IPHeaderCompressionConfig_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "InclusionModeNSSAI")) { + ((const InclusionModeNSSAI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "InclusionModeNSSAI template")) { + ((const InclusionModeNSSAI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IntegrityProtMaxDataRate")) { + ((const IntegrityProtMaxDataRate*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IntegrityProtMaxDataRate template")) { + ((const IntegrityProtMaxDataRate_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IntraN1TransparentContainer")) { + ((const IntraN1TransparentContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "IntraN1TransparentContainer template")) { + ((const IntraN1TransparentContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LADN_Ind")) { + ((const LADN__Ind*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LADN_Ind template")) { + ((const LADN__Ind_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LADN_Info")) { + ((const LADN__Info*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "LADN_Info template")) { + ((const LADN__Info_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ListOfLADN")) { + ((const ListOfLADN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ListOfLADN template")) { + ((const ListOfLADN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MA_PDUSessionInfo")) { + ((const MA__PDUSessionInfo*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MA_PDUSessionInfo template")) { + ((const MA__PDUSessionInfo_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MBSSessionInfo")) { + ((const MBSSessionInfo*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MBSSessionInfo template")) { + ((const MBSSessionInfo_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MBS_ServiceArea")) { + ((const MBS__ServiceArea*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MBS_ServiceArea template")) { + ((const MBS__ServiceArea_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MICO_Ind")) { + ((const MICO__Ind*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MICO_Ind template")) { + ((const MICO__Ind_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MappedEPSBearerContexts")) { + ((const MappedEPSBearerContexts*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MappedEPSBearerContexts template")) { + ((const MappedEPSBearerContexts_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MappedEPSContext")) { + ((const MappedEPSContext*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MappedEPSContext template")) { + ((const MappedEPSContext_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MappedNSSAI")) { + ((const MappedNSSAI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MappedNSSAI template")) { + ((const MappedNSSAI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Mapped_S_NSSAIValue")) { + ((const Mapped__S__NSSAIValue*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Mapped_S_NSSAIValue template")) { + ((const Mapped__S__NSSAIValue_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MaxNumPacketFilters")) { + ((const MaxNumPacketFilters*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "MaxNumPacketFilters template")) { + ((const MaxNumPacketFilters_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "N5GCInd")) { + ((const N5GCInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "N5GCInd template")) { + ((const N5GCInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_5GC_AKA_Type")) { + ((const NAS__5GC__AKA__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_5GC_AKA_Type template")) { + ((const NAS__5GC__AKA__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NGSM_CongestionReattemptInd")) { + ((const NGSM__CongestionReattemptInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NGSM_CongestionReattemptInd template")) { + ((const NGSM__CongestionReattemptInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NGSM_NetworkFeatureSupport")) { + ((const NGSM__NetworkFeatureSupport*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NGSM_NetworkFeatureSupport template")) { + ((const NGSM__NetworkFeatureSupport_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_FAILURE")) { + ((const NG__AUTHENTICATION__FAILURE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_FAILURE template")) { + ((const NG__AUTHENTICATION__FAILURE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_REJECT")) { + ((const NG__AUTHENTICATION__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_REJECT template")) { + ((const NG__AUTHENTICATION__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_REQUEST")) { + ((const NG__AUTHENTICATION__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_REQUEST template")) { + ((const NG__AUTHENTICATION__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_RESPONSE")) { + ((const NG__AUTHENTICATION__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_RESPONSE template")) { + ((const NG__AUTHENTICATION__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_RESULT")) { + ((const NG__AUTHENTICATION__RESULT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_RESULT template")) { + ((const NG__AUTHENTICATION__RESULT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AddReqResult")) { + ((const NG__AddReqResult*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_AddReqResult template")) { + ((const NG__AddReqResult_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CONFIGURATION_UPDATE_COMMAND")) { + ((const NG__CONFIGURATION__UPDATE__COMMAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CONFIGURATION_UPDATE_COMMAND template")) { + ((const NG__CONFIGURATION__UPDATE__COMMAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CONFIGURATION_UPDATE_COMPLETE")) { + ((const NG__CONFIGURATION__UPDATE__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CONFIGURATION_UPDATE_COMPLETE template")) { + ((const NG__CONFIGURATION__UPDATE__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CP_SERVICE_REQUEST")) { + ((const NG__CP__SERVICE__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CP_SERVICE_REQUEST template")) { + ((const NG__CP__SERVICE__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CipherDataSet")) { + ((const NG__CipherDataSet*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CipherDataSet template")) { + ((const NG__CipherDataSet_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CipheringKeyData")) { + ((const NG__CipheringKeyData*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_CipheringKeyData template")) { + ((const NG__CipheringKeyData_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_ACCEPT")) { + ((const NG__DEREGISTRATION__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_ACCEPT template")) { + ((const NG__DEREGISTRATION__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_REQUEST_MO")) { + ((const NG__DEREGISTRATION__REQUEST__MO*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_REQUEST_MO template")) { + ((const NG__DEREGISTRATION__REQUEST__MO_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_REQUEST_MT")) { + ((const NG__DEREGISTRATION__REQUEST__MT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_REQUEST_MT template")) { + ((const NG__DEREGISTRATION__REQUEST__MT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_DL_NAS_TRANSPORT")) { + ((const NG__DL__NAS__TRANSPORT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_DL_NAS_TRANSPORT template")) { + ((const NG__DL__NAS__TRANSPORT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_GMM_Cap")) { + ((const NG__GMM__Cap*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_GMM_Cap template")) { + ((const NG__GMM__Cap_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_GMM_STATUS")) { + ((const NG__GMM__STATUS*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_GMM_STATUS template")) { + ((const NG__GMM__STATUS_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_GSM_STATUS")) { + ((const NG__GSM__STATUS*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_GSM_STATUS template")) { + ((const NG__GSM__STATUS_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_IDENTITY_REQUEST")) { + ((const NG__IDENTITY__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_IDENTITY_REQUEST template")) { + ((const NG__IDENTITY__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_IDENTITY_RESPONSE")) { + ((const NG__IDENTITY__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_IDENTITY_RESPONSE template")) { + ((const NG__IDENTITY__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_ListOfPartialTaiList")) { + ((const NG__ListOfPartialTaiList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_ListOfPartialTaiList template")) { + ((const NG__ListOfPartialTaiList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_MobileIdentity")) { + ((const NG__MobileIdentity*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_MobileIdentity template")) { + ((const NG__MobileIdentity_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_Message")) { + ((const OCTETSTRING*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_Message template")) { + ((const OCTETSTRING_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityAlgorithms")) { + ((const NG__NAS__SecurityAlgorithms*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityAlgorithms template")) { + ((const NG__NAS__SecurityAlgorithms_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_TacList")) { + ((const NG__NAS__TacList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_TacList template")) { + ((const NG__NAS__TacList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND")) { + ((const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND template")) { + ((const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE")) { + ((const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE template")) { + ((const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT")) { + ((const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT template")) { + ((const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NOTIFICATION")) { + ((const NG__NOTIFICATION*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NOTIFICATION template")) { + ((const NG__NOTIFICATION_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NOTIFICATION_RESPONSE")) { + ((const NG__NOTIFICATION__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NOTIFICATION_RESPONSE template")) { + ((const NG__NOTIFICATION__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NetworkFeatureSupport")) { + ((const NG__NetworkFeatureSupport*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NetworkFeatureSupport template")) { + ((const NG__NetworkFeatureSupport_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_COMMAND")) { + ((const NG__PDU__SESSION__AUTHENTICATION__COMMAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_COMMAND template")) { + ((const NG__PDU__SESSION__AUTHENTICATION__COMMAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_COMPLETE")) { + ((const NG__PDU__SESSION__AUTHENTICATION__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_COMPLETE template")) { + ((const NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_RESULT")) { + ((const NG__PDU__SESSION__AUTHENTICATION__RESULT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_RESULT template")) { + ((const NG__PDU__SESSION__AUTHENTICATION__RESULT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_ACCEPT")) { + ((const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_ACCEPT template")) { + ((const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_REJECT")) { + ((const NG__PDU__SESSION__ESTABLISHMENT__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_REJECT template")) { + ((const NG__PDU__SESSION__ESTABLISHMENT__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_REQUEST")) { + ((const NG__PDU__SESSION__ESTABLISHMENT__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_REQUEST template")) { + ((const NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMMAND")) { + ((const NG__PDU__SESSION__MODIFICATION__COMMAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMMAND template")) { + ((const NG__PDU__SESSION__MODIFICATION__COMMAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT")) { + ((const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT template")) { + ((const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMPLETE")) { + ((const NG__PDU__SESSION__MODIFICATION__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMPLETE template")) { + ((const NG__PDU__SESSION__MODIFICATION__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_REJECT")) { + ((const NG__PDU__SESSION__MODIFICATION__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_REJECT template")) { + ((const NG__PDU__SESSION__MODIFICATION__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_REQUEST")) { + ((const NG__PDU__SESSION__MODIFICATION__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_REQUEST template")) { + ((const NG__PDU__SESSION__MODIFICATION__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_COMMAND")) { + ((const NG__PDU__SESSION__RELEASE__COMMAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_COMMAND template")) { + ((const NG__PDU__SESSION__RELEASE__COMMAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_COMPLETE")) { + ((const NG__PDU__SESSION__RELEASE__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_COMPLETE template")) { + ((const NG__PDU__SESSION__RELEASE__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_REJECT")) { + ((const NG__PDU__SESSION__RELEASE__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_REJECT template")) { + ((const NG__PDU__SESSION__RELEASE__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_REQUEST")) { + ((const NG__PDU__SESSION__RELEASE__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_REQUEST template")) { + ((const NG__PDU__SESSION__RELEASE__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SessionId")) { + ((const NG__PDU__SessionId*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SessionId template")) { + ((const NG__PDU__SessionId_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList")) { + ((const NG__PacketFilterList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList template")) { + ((const NG__PacketFilterList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList_Type1")) { + ((const NG__PacketFilterList__Type1*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList_Type1 template")) { + ((const NG__PacketFilterList__Type1_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList_Type2")) { + ((const NG__PacketFilterList__Type2*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList_Type2 template")) { + ((const NG__PacketFilterList__Type2_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilter_Type1")) { + ((const NG__PacketFilter__Type1*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilter_Type1 template")) { + ((const NG__PacketFilter__Type1_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilter_Type2")) { + ((const NG__PacketFilter__Type2*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilter_Type2 template")) { + ((const NG__PacketFilter__Type2_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PagingRestriction")) { + ((const NG__PagingRestriction*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PagingRestriction template")) { + ((const NG__PagingRestriction_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PartialTai")) { + ((const NG__PartialTai*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PartialTai template")) { + ((const NG__PartialTai_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PartialTaiType")) { + ((const NG__PartialTaiType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PartialTaiType template")) { + ((const NG__PartialTaiType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PlmnAndTacs")) { + ((const NG__PlmnAndTacs*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_PlmnAndTacs template")) { + ((const NG__PlmnAndTacs_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_ACCEPT")) { + ((const NG__REGISTRATION__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_ACCEPT template")) { + ((const NG__REGISTRATION__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_COMPLETE")) { + ((const NG__REGISTRATION__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_COMPLETE template")) { + ((const NG__REGISTRATION__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_REJECT")) { + ((const NG__REGISTRATION__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_REJECT template")) { + ((const NG__REGISTRATION__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_REQUEST")) { + ((const NG__REGISTRATION__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_REQUEST template")) { + ((const NG__REGISTRATION__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Request_Type")) { + ((const NG__Request__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Request_Type template")) { + ((const NG__Request__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_COMMAND")) { + ((const NG__SECURITY__MODE__COMMAND*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_COMMAND template")) { + ((const NG__SECURITY__MODE__COMMAND_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_COMPLETE")) { + ((const NG__SECURITY__MODE__COMPLETE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_COMPLETE template")) { + ((const NG__SECURITY__MODE__COMPLETE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_REJECT")) { + ((const NG__SECURITY__MODE__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_REJECT template")) { + ((const NG__SECURITY__MODE__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_PROTECTED_NAS_MESSAGE")) { + ((const NG__SECURITY__PROTECTED__NAS__MESSAGE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_PROTECTED_NAS_MESSAGE template")) { + ((const NG__SECURITY__PROTECTED__NAS__MESSAGE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_ACCEPT")) { + ((const NG__SERVICE__ACCEPT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_ACCEPT template")) { + ((const NG__SERVICE__ACCEPT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_REJECT")) { + ((const NG__SERVICE__REJECT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_REJECT template")) { + ((const NG__SERVICE__REJECT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_REQUEST")) { + ((const NG__SERVICE__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_REQUEST template")) { + ((const NG__SERVICE__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaId")) { + ((const NG__TrackingAreaId*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaId template")) { + ((const NG__TrackingAreaId_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaIdList")) { + ((const NG__TrackingAreaIdList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaIdList template")) { + ((const NG__TrackingAreaIdList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaIdList_LV")) { + ((const NG__TrackingAreaIdList__LV*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaIdList_LV template")) { + ((const NG__TrackingAreaIdList__LV_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type0Element")) { + ((const NG__Type0Element*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type0Element template")) { + ((const NG__Type0Element_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type0List")) { + ((const NG__Type0List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type0List template")) { + ((const NG__Type0List_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type1Element")) { + ((const NG__Type1Element*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type1Element template")) { + ((const NG__Type1Element_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type1List")) { + ((const NG__Type1List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type1List template")) { + ((const NG__Type1List_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type2Element")) { + ((const NG__Type2Element*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type2Element template")) { + ((const NG__Type2Element_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type2List")) { + ((const NG__Type2List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type2List template")) { + ((const NG__Type2List_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type3Element")) { + ((const NG__Type3Element*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_Type3Element template")) { + ((const NG__Type3Element_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_UE_SM_Cap")) { + ((const NG__UE__SM__Cap*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_UE_SM_Cap template")) { + ((const NG__UE__SM__Cap_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_UE_SecurityCapability")) { + ((const NG__UE__SecurityCapability*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_UE_SecurityCapability template")) { + ((const NG__UE__SecurityCapability_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_UL_NAS_TRANSPORT")) { + ((const NG__UL__NAS__TRANSPORT*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_UL_NAS_TRANSPORT template")) { + ((const NG__UL__NAS__TRANSPORT_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_UpdateType")) { + ((const NG__UpdateType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_UpdateType template")) { + ((const NG__UpdateType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NID")) { + ((const NID*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NID template")) { + ((const NID_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CGI")) { + ((const NR__CGI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CGI template")) { + ((const NR__CGI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CGI_List")) { + ((const NR__CGI__List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_CGI_List template")) { + ((const NR__CGI__List_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_SidelinkCounter")) { + ((const NR__SidelinkCounter*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NR_SidelinkCounter template")) { + ((const NR__SidelinkCounter_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSAG")) { + ((const NSAG*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSAG template")) { + ((const NSAG_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSAG_Info")) { + ((const NSAG__Info*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSAG_Info template")) { + ((const NSAG__Info_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSAI")) { + ((const NSSAI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSAI template")) { + ((const NSSAI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSAI_DELETE_REQUEST")) { + ((const NSSAI__DELETE__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSAI_DELETE_REQUEST template")) { + ((const NSSAI__DELETE__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSAI_DELETE_RESPONSE")) { + ((const NSSAI__DELETE__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSAI_DELETE_RESPONSE template")) { + ((const NSSAI__DELETE__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSAI_LV")) { + ((const NSSAI__LV*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSAI_LV template")) { + ((const NSSAI__LV_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSRG_Info")) { + ((const NSSRG__Info*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSRG_Info template")) { + ((const NSSRG__Info_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSRG_Value")) { + ((const NSSRG__Value*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSRG_Value template")) { + ((const NSSRG__Value_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSRG_ValueList")) { + ((const NSSRG__ValueList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NSSRG_ValueList template")) { + ((const NSSRG__ValueList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NetworkSlicingInd")) { + ((const NetworkSlicingInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NetworkSlicingInd template")) { + ((const NetworkSlicingInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "OperatorAccessCatDefinitions")) { + ((const OperatorAccessCatDefinitions*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "OperatorAccessCatDefinitions template")) { + ((const OperatorAccessCatDefinitions_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDUSessionPairId")) { + ((const PDUSessionPairId*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDUSessionPairId template")) { + ((const PDUSessionPairId_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_Address")) { + ((const PDU__Address*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_Address template")) { + ((const PDU__Address_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_SessionErrorCause")) { + ((const PDU__SessionErrorCause*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_SessionErrorCause template")) { + ((const PDU__SessionErrorCause_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_SessionReactivationError")) { + ((const PDU__SessionReactivationError*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_SessionReactivationError template")) { + ((const PDU__SessionReactivationError_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_SessionStatus")) { + ((const PDU__SessionStatus*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_SessionStatus template")) { + ((const PDU__SessionStatus_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_SessionType")) { + ((const PDU__SessionType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PDU_SessionType template")) { + ((const PDU__SessionType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistIE")) { + ((const PEIPS__AssistIE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistIE template")) { + ((const PEIPS__AssistIE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistIEList")) { + ((const PEIPS__AssistIEList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistIEList template")) { + ((const PEIPS__AssistIEList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistInfo")) { + ((const PEIPS__AssistInfo*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistInfo template")) { + ((const PEIPS__AssistInfo_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketCounterValueList")) { + ((const PacketCounterValueList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PacketCounterValueList template")) { + ((const PacketCounterValueList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAI")) { + ((const PartialXtdRejectedNSSAI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAI template")) { + ((const PartialXtdRejectedNSSAI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAIType0")) { + ((const PartialXtdRejectedNSSAIType0*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAIType0 template")) { + ((const PartialXtdRejectedNSSAIType0_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAIType1")) { + ((const PartialXtdRejectedNSSAIType1*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAIType1 template")) { + ((const PartialXtdRejectedNSSAIType1_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAI_List")) { + ((const PartialXtdRejectedNSSAI__List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAI_List template")) { + ((const PartialXtdRejectedNSSAI__List_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PayloadContainer")) { + ((const PayloadContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PayloadContainer template")) { + ((const PayloadContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PayloadContainerType")) { + ((const PayloadContainerType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PayloadContainerType template")) { + ((const PayloadContainerType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PortManagementInfoContainer")) { + ((const PortManagementInfoContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PortManagementInfoContainer template")) { + ((const PortManagementInfoContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PriorityInd")) { + ((const PriorityInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "PriorityInd template")) { + ((const PriorityInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoSFlowDescr")) { + ((const QoSFlowDescr*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoSFlowDescr template")) { + ((const QoSFlowDescr_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_Flow")) { + ((const QoS__Flow*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_Flow template")) { + ((const QoS__Flow_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_FlowList")) { + ((const QoS__FlowList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_FlowList template")) { + ((const QoS__FlowList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_Rule")) { + ((const QoS__Rule*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_Rule template")) { + ((const QoS__Rule_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_RuleList")) { + ((const QoS__RuleList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_RuleList template")) { + ((const QoS__RuleList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_Rules")) { + ((const QoS__Rules*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "QoS_Rules template")) { + ((const QoS__Rules_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RSN")) { + ((const RSN*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RSN template")) { + ((const RSN_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReceivedMBSContainer")) { + ((const ReceivedMBSContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReceivedMBSContainer template")) { + ((const ReceivedMBSContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReceivedMBSInfo")) { + ((const ReceivedMBSInfo*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ReceivedMBSInfo template")) { + ((const ReceivedMBSInfo_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RegistrationResult")) { + ((const RegistrationResult*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RegistrationResult template")) { + ((const RegistrationResult_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RegistrationType")) { + ((const RegistrationType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RegistrationType template")) { + ((const RegistrationType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RegistrationWaitRange")) { + ((const RegistrationWaitRange*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RegistrationWaitRange template")) { + ((const RegistrationWaitRange_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RejectedNSSAI")) { + ((const RejectedNSSAI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RejectedNSSAI template")) { + ((const RejectedNSSAI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RejectedS_NSSAI")) { + ((const RejectedS__NSSAI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RejectedS_NSSAI template")) { + ((const RejectedS__NSSAI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RequestedMBSContainer")) { + ((const RequestedMBSContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "RequestedMBSContainer template")) { + ((const RequestedMBSContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S1ToN1TransparentContainer")) { + ((const S1ToN1TransparentContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S1ToN1TransparentContainer template")) { + ((const S1ToN1TransparentContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S1_UE_SecurityCapability")) { + ((const S1__UE__SecurityCapability*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S1_UE_SecurityCapability template")) { + ((const S1__UE__SecurityCapability_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SET_UAI_REQUEST")) { + ((const SET__UAI__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SET_UAI_REQUEST template")) { + ((const SET__UAI__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SET_UAI_RESPONSE")) { + ((const SET__UAI__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SET_UAI_RESPONSE template")) { + ((const SET__UAI__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_DeviceId")) { + ((const SL__AA__DeviceId*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_DeviceId template")) { + ((const SL__AA__DeviceId_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_Payload")) { + ((const SL__AA__Payload*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_Payload template")) { + ((const SL__AA__Payload_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_PayloadType")) { + ((const SL__AA__PayloadType*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_PayloadType template")) { + ((const SL__AA__PayloadType_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_PendingInd")) { + ((const SL__AA__PendingInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_PendingInd template")) { + ((const SL__AA__PendingInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_Response")) { + ((const SL__AA__Response*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_Response template")) { + ((const SL__AA__Response_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_ServerAddr")) { + ((const SL__AA__ServerAddr*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_ServerAddr template")) { + ((const SL__AA__ServerAddr_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_StatusInd")) { + ((const SL__AA__StatusInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SL_AA_StatusInd template")) { + ((const SL__AA__StatusInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SMSInd")) { + ((const SMSInd*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SMSInd template")) { + ((const SMSInd_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SM_PDU_DN_RequestContainer")) { + ((const SM__PDU__DN__RequestContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SM_PDU_DN_RequestContainer template")) { + ((const SM__PDU__DN__RequestContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SORTransparentContainer")) { + ((const SORTransparentContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SORTransparentContainer template")) { + ((const SORTransparentContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SOR_Header")) { + ((const SOR__Header*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SOR_Header template")) { + ((const SOR__Header_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SSC_Mode")) { + ((const SSC__Mode*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "SSC_Mode template")) { + ((const SSC__Mode_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_LV")) { + ((const S__NSSAI__LV*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_LV template")) { + ((const S__NSSAI__LV_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_Type")) { + ((const S__NSSAI__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_Type template")) { + ((const S__NSSAI__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_TypeList")) { + ((const S__NSSAI__TypeList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_TypeList template")) { + ((const S__NSSAI__TypeList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_V")) { + ((const S__NSSAI__V*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_V template")) { + ((const S__NSSAI__V_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAContainer")) { + ((const ServiceLvlAAContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAContainer template")) { + ((const ServiceLvlAAContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAParam")) { + ((const ServiceLvlAAParam*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAParam template")) { + ((const ServiceLvlAAParam_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAParamList")) { + ((const ServiceLvlAAParamList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAParamList template")) { + ((const ServiceLvlAAParamList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Session_AMBR")) { + ((const Session__AMBR*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "Session_AMBR template")) { + ((const Session__AMBR_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TMGI_LV")) { + ((const TMGI__LV*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TMGI_LV template")) { + ((const TMGI__LV_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TruncatedS_TMSIConfig")) { + ((const TruncatedS__TMSIConfig*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "TruncatedS_TMSIConfig template")) { + ((const TruncatedS__TMSIConfig_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_DS_TT_ResidenceTime")) { + ((const UE__DS__TT__ResidenceTime*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_DS_TT_ResidenceTime template")) { + ((const UE__DS__TT__ResidenceTime_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TEST_LOOP_NR_SIDELINK_COUNTER_REQUEST")) { + ((const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TEST_LOOP_NR_SIDELINK_COUNTER_REQUEST template")) { + ((const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE")) { + ((const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE template")) { + ((const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_UsageSetting")) { + ((const UE__UsageSetting*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UE_UsageSetting template")) { + ((const UE__UsageSetting_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPU_Header")) { + ((const UPU__Header*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPU_Header template")) { + ((const UPU__Header_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPU_Param")) { + ((const UPU__Param*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPU_Param template")) { + ((const UPU__Param_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPU_ParamList")) { + ((const UPU__ParamList*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPU_ParamList template")) { + ((const UPU__ParamList_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPU_TransparentContainer")) { + ((const UPU__TransparentContainer*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "UPU_TransparentContainer template")) { + ((const UPU__TransparentContainer_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "XtdRejectedS_NSSAI")) { + ((const XtdRejectedS__NSSAI*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "XtdRejectedS_NSSAI template")) { + ((const XtdRejectedS__NSSAI_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "XtdRejectedS_NSSAI_List")) { + ((const XtdRejectedS__NSSAI__List*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "XtdRejectedS_NSSAI_List template")) { + ((const XtdRejectedS__NSSAI__List_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_NG_NAS_TypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "ABBA")) { + ((ABBA*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ABBA template")) { + ((ABBA_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATSSSContainer")) { + ((ATSSSContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ATSSSContainer template")) { + ((ATSSSContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AccessCatDefinition")) { + ((AccessCatDefinition*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AccessCatDefinition template")) { + ((AccessCatDefinition_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AccessType")) { + ((AccessType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AccessType template")) { + ((AccessType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AddConfigInfo")) { + ((AddConfigInfo*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AddConfigInfo template")) { + ((AddConfigInfo_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AddInfoRequest")) { + ((AddInfoRequest*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AddInfoRequest template")) { + ((AddInfoRequest_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalSecurityInfo")) { + ((AdditionalSecurityInfo*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AdditionalSecurityInfo template")) { + ((AdditionalSecurityInfo_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AllowedNSSAI")) { + ((AllowedNSSAI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AllowedNSSAI template")) { + ((AllowedNSSAI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AllowedSSCMode")) { + ((AllowedSSCMode*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AllowedSSCMode template")) { + ((AllowedSSCMode_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AlwaysOnPDUSessionInd")) { + ((AlwaysOnPDUSessionInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "AlwaysOnPDUSessionInd template")) { + ((AlwaysOnPDUSessionInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CAGInfoList")) { + ((CAGInfoList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CAGInfoList template")) { + ((CAGInfoList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CAG_Info")) { + ((CAG__Info*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CAG_Info template")) { + ((CAG__Info_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CAG_Info_V")) { + ((CAG__Info__V*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CAG_Info_V template")) { + ((CAG__Info__V_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CIoTSmallDataContainer")) { + ((CIoTSmallDataContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CIoTSmallDataContainer template")) { + ((CIoTSmallDataContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CIoTSmallDataRxdString")) { + ((CIoTSmallDataRxdString*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CIoTSmallDataRxdString template")) { + ((CIoTSmallDataRxdString_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CP_ServiceType")) { + ((CP__ServiceType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "CP_ServiceType template")) { + ((CP__ServiceType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ConfigUpdateInd")) { + ((ConfigUpdateInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ConfigUpdateInd template")) { + ((ConfigUpdateInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DNN")) { + ((DNN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DNN template")) { + ((DNN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DS_TT_EthernetPortMACAddr")) { + ((DS__TT__EthernetPortMACAddr*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DS_TT_EthernetPortMACAddr template")) { + ((DS__TT__EthernetPortMACAddr_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DeregisterType")) { + ((DeregisterType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DeregisterType template")) { + ((DeregisterType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DisasterPLMNList")) { + ((DisasterPLMNList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "DisasterPLMNList template")) { + ((DisasterPLMNList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Message")) { + ((EAP__Message*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EAP_Message template")) { + ((EAP__Message_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPSParameters")) { + ((EPSParameters*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPSParameters template")) { + ((EPSParameters_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_MessageContainer")) { + ((EPS__MessageContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EPS_MessageContainer template")) { + ((EPS__MessageContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EthernetHeaderCompressConfig")) { + ((EthernetHeaderCompressConfig*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "EthernetHeaderCompressConfig template")) { + ((EthernetHeaderCompressConfig_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdCAGInfoList")) { + ((ExtdCAGInfoList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdCAGInfoList template")) { + ((ExtdCAGInfoList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdCAG_Info")) { + ((ExtdCAG__Info*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdCAG_Info template")) { + ((ExtdCAG__Info_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdRejectedNSSAI")) { + ((ExtdRejectedNSSAI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ExtdRejectedNSSAI template")) { + ((ExtdRejectedNSSAI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GMM_GSM_Cause")) { + ((GMM__GSM__Cause*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "GMM_GSM_Cause template")) { + ((GMM__GSM__Cause_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IPHeaderCompressionConfig")) { + ((IPHeaderCompressionConfig*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IPHeaderCompressionConfig template")) { + ((IPHeaderCompressionConfig_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "InclusionModeNSSAI")) { + ((InclusionModeNSSAI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "InclusionModeNSSAI template")) { + ((InclusionModeNSSAI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IntegrityProtMaxDataRate")) { + ((IntegrityProtMaxDataRate*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IntegrityProtMaxDataRate template")) { + ((IntegrityProtMaxDataRate_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IntraN1TransparentContainer")) { + ((IntraN1TransparentContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "IntraN1TransparentContainer template")) { + ((IntraN1TransparentContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LADN_Ind")) { + ((LADN__Ind*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LADN_Ind template")) { + ((LADN__Ind_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LADN_Info")) { + ((LADN__Info*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "LADN_Info template")) { + ((LADN__Info_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ListOfLADN")) { + ((ListOfLADN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ListOfLADN template")) { + ((ListOfLADN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MA_PDUSessionInfo")) { + ((MA__PDUSessionInfo*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MA_PDUSessionInfo template")) { + ((MA__PDUSessionInfo_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MBSSessionInfo")) { + ((MBSSessionInfo*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MBSSessionInfo template")) { + ((MBSSessionInfo_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MBS_ServiceArea")) { + ((MBS__ServiceArea*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MBS_ServiceArea template")) { + ((MBS__ServiceArea_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MICO_Ind")) { + ((MICO__Ind*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MICO_Ind template")) { + ((MICO__Ind_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MappedEPSBearerContexts")) { + ((MappedEPSBearerContexts*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MappedEPSBearerContexts template")) { + ((MappedEPSBearerContexts_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MappedEPSContext")) { + ((MappedEPSContext*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MappedEPSContext template")) { + ((MappedEPSContext_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MappedNSSAI")) { + ((MappedNSSAI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MappedNSSAI template")) { + ((MappedNSSAI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Mapped_S_NSSAIValue")) { + ((Mapped__S__NSSAIValue*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Mapped_S_NSSAIValue template")) { + ((Mapped__S__NSSAIValue_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MaxNumPacketFilters")) { + ((MaxNumPacketFilters*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "MaxNumPacketFilters template")) { + ((MaxNumPacketFilters_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "N5GCInd")) { + ((N5GCInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "N5GCInd template")) { + ((N5GCInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_5GC_AKA_Type")) { + ((NAS__5GC__AKA__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_5GC_AKA_Type template")) { + ((NAS__5GC__AKA__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NGSM_CongestionReattemptInd")) { + ((NGSM__CongestionReattemptInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NGSM_CongestionReattemptInd template")) { + ((NGSM__CongestionReattemptInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NGSM_NetworkFeatureSupport")) { + ((NGSM__NetworkFeatureSupport*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NGSM_NetworkFeatureSupport template")) { + ((NGSM__NetworkFeatureSupport_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_FAILURE")) { + ((NG__AUTHENTICATION__FAILURE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_FAILURE template")) { + ((NG__AUTHENTICATION__FAILURE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_REJECT")) { + ((NG__AUTHENTICATION__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_REJECT template")) { + ((NG__AUTHENTICATION__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_REQUEST")) { + ((NG__AUTHENTICATION__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_REQUEST template")) { + ((NG__AUTHENTICATION__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_RESPONSE")) { + ((NG__AUTHENTICATION__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_RESPONSE template")) { + ((NG__AUTHENTICATION__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_RESULT")) { + ((NG__AUTHENTICATION__RESULT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AUTHENTICATION_RESULT template")) { + ((NG__AUTHENTICATION__RESULT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AddReqResult")) { + ((NG__AddReqResult*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_AddReqResult template")) { + ((NG__AddReqResult_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CONFIGURATION_UPDATE_COMMAND")) { + ((NG__CONFIGURATION__UPDATE__COMMAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CONFIGURATION_UPDATE_COMMAND template")) { + ((NG__CONFIGURATION__UPDATE__COMMAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CONFIGURATION_UPDATE_COMPLETE")) { + ((NG__CONFIGURATION__UPDATE__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CONFIGURATION_UPDATE_COMPLETE template")) { + ((NG__CONFIGURATION__UPDATE__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CP_SERVICE_REQUEST")) { + ((NG__CP__SERVICE__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CP_SERVICE_REQUEST template")) { + ((NG__CP__SERVICE__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CipherDataSet")) { + ((NG__CipherDataSet*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CipherDataSet template")) { + ((NG__CipherDataSet_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CipheringKeyData")) { + ((NG__CipheringKeyData*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_CipheringKeyData template")) { + ((NG__CipheringKeyData_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_ACCEPT")) { + ((NG__DEREGISTRATION__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_ACCEPT template")) { + ((NG__DEREGISTRATION__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_REQUEST_MO")) { + ((NG__DEREGISTRATION__REQUEST__MO*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_REQUEST_MO template")) { + ((NG__DEREGISTRATION__REQUEST__MO_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_REQUEST_MT")) { + ((NG__DEREGISTRATION__REQUEST__MT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_DEREGISTRATION_REQUEST_MT template")) { + ((NG__DEREGISTRATION__REQUEST__MT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_DL_NAS_TRANSPORT")) { + ((NG__DL__NAS__TRANSPORT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_DL_NAS_TRANSPORT template")) { + ((NG__DL__NAS__TRANSPORT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_GMM_Cap")) { + ((NG__GMM__Cap*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_GMM_Cap template")) { + ((NG__GMM__Cap_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_GMM_STATUS")) { + ((NG__GMM__STATUS*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_GMM_STATUS template")) { + ((NG__GMM__STATUS_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_GSM_STATUS")) { + ((NG__GSM__STATUS*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_GSM_STATUS template")) { + ((NG__GSM__STATUS_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_IDENTITY_REQUEST")) { + ((NG__IDENTITY__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_IDENTITY_REQUEST template")) { + ((NG__IDENTITY__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_IDENTITY_RESPONSE")) { + ((NG__IDENTITY__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_IDENTITY_RESPONSE template")) { + ((NG__IDENTITY__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_ListOfPartialTaiList")) { + ((NG__ListOfPartialTaiList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_ListOfPartialTaiList template")) { + ((NG__ListOfPartialTaiList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_MobileIdentity")) { + ((NG__MobileIdentity*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_MobileIdentity template")) { + ((NG__MobileIdentity_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_Message")) { + ((OCTETSTRING*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_Message template")) { + ((OCTETSTRING_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityAlgorithms")) { + ((NG__NAS__SecurityAlgorithms*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityAlgorithms template")) { + ((NG__NAS__SecurityAlgorithms_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_TacList")) { + ((NG__NAS__TacList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_TacList template")) { + ((NG__NAS__TacList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND")) { + ((NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMMAND template")) { + ((NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE")) { + ((NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_COMPLETE template")) { + ((NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT")) { + ((NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NETWORK_SLICE_SPECIFIC_AUTHENTICATION_RESULT template")) { + ((NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NOTIFICATION")) { + ((NG__NOTIFICATION*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NOTIFICATION template")) { + ((NG__NOTIFICATION_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NOTIFICATION_RESPONSE")) { + ((NG__NOTIFICATION__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NOTIFICATION_RESPONSE template")) { + ((NG__NOTIFICATION__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NetworkFeatureSupport")) { + ((NG__NetworkFeatureSupport*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NetworkFeatureSupport template")) { + ((NG__NetworkFeatureSupport_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_COMMAND")) { + ((NG__PDU__SESSION__AUTHENTICATION__COMMAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_COMMAND template")) { + ((NG__PDU__SESSION__AUTHENTICATION__COMMAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_COMPLETE")) { + ((NG__PDU__SESSION__AUTHENTICATION__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_COMPLETE template")) { + ((NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_RESULT")) { + ((NG__PDU__SESSION__AUTHENTICATION__RESULT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_AUTHENTICATION_RESULT template")) { + ((NG__PDU__SESSION__AUTHENTICATION__RESULT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_ACCEPT")) { + ((NG__PDU__SESSION__ESTABLISHMENT__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_ACCEPT template")) { + ((NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_REJECT")) { + ((NG__PDU__SESSION__ESTABLISHMENT__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_REJECT template")) { + ((NG__PDU__SESSION__ESTABLISHMENT__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_REQUEST")) { + ((NG__PDU__SESSION__ESTABLISHMENT__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_ESTABLISHMENT_REQUEST template")) { + ((NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMMAND")) { + ((NG__PDU__SESSION__MODIFICATION__COMMAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMMAND template")) { + ((NG__PDU__SESSION__MODIFICATION__COMMAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT")) { + ((NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMMAND_REJECT template")) { + ((NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMPLETE")) { + ((NG__PDU__SESSION__MODIFICATION__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_COMPLETE template")) { + ((NG__PDU__SESSION__MODIFICATION__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_REJECT")) { + ((NG__PDU__SESSION__MODIFICATION__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_REJECT template")) { + ((NG__PDU__SESSION__MODIFICATION__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_REQUEST")) { + ((NG__PDU__SESSION__MODIFICATION__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_MODIFICATION_REQUEST template")) { + ((NG__PDU__SESSION__MODIFICATION__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_COMMAND")) { + ((NG__PDU__SESSION__RELEASE__COMMAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_COMMAND template")) { + ((NG__PDU__SESSION__RELEASE__COMMAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_COMPLETE")) { + ((NG__PDU__SESSION__RELEASE__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_COMPLETE template")) { + ((NG__PDU__SESSION__RELEASE__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_REJECT")) { + ((NG__PDU__SESSION__RELEASE__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_REJECT template")) { + ((NG__PDU__SESSION__RELEASE__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_REQUEST")) { + ((NG__PDU__SESSION__RELEASE__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SESSION_RELEASE_REQUEST template")) { + ((NG__PDU__SESSION__RELEASE__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SessionId")) { + ((NG__PDU__SessionId*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PDU_SessionId template")) { + ((NG__PDU__SessionId_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList")) { + ((NG__PacketFilterList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList template")) { + ((NG__PacketFilterList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList_Type1")) { + ((NG__PacketFilterList__Type1*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList_Type1 template")) { + ((NG__PacketFilterList__Type1_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList_Type2")) { + ((NG__PacketFilterList__Type2*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilterList_Type2 template")) { + ((NG__PacketFilterList__Type2_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilter_Type1")) { + ((NG__PacketFilter__Type1*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilter_Type1 template")) { + ((NG__PacketFilter__Type1_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilter_Type2")) { + ((NG__PacketFilter__Type2*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PacketFilter_Type2 template")) { + ((NG__PacketFilter__Type2_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PagingRestriction")) { + ((NG__PagingRestriction*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PagingRestriction template")) { + ((NG__PagingRestriction_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PartialTai")) { + ((NG__PartialTai*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PartialTai template")) { + ((NG__PartialTai_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PartialTaiType")) { + ((NG__PartialTaiType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PartialTaiType template")) { + ((NG__PartialTaiType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PlmnAndTacs")) { + ((NG__PlmnAndTacs*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_PlmnAndTacs template")) { + ((NG__PlmnAndTacs_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_ACCEPT")) { + ((NG__REGISTRATION__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_ACCEPT template")) { + ((NG__REGISTRATION__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_COMPLETE")) { + ((NG__REGISTRATION__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_COMPLETE template")) { + ((NG__REGISTRATION__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_REJECT")) { + ((NG__REGISTRATION__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_REJECT template")) { + ((NG__REGISTRATION__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_REQUEST")) { + ((NG__REGISTRATION__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_REGISTRATION_REQUEST template")) { + ((NG__REGISTRATION__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Request_Type")) { + ((NG__Request__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Request_Type template")) { + ((NG__Request__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_COMMAND")) { + ((NG__SECURITY__MODE__COMMAND*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_COMMAND template")) { + ((NG__SECURITY__MODE__COMMAND_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_COMPLETE")) { + ((NG__SECURITY__MODE__COMPLETE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_COMPLETE template")) { + ((NG__SECURITY__MODE__COMPLETE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_REJECT")) { + ((NG__SECURITY__MODE__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_MODE_REJECT template")) { + ((NG__SECURITY__MODE__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_PROTECTED_NAS_MESSAGE")) { + ((NG__SECURITY__PROTECTED__NAS__MESSAGE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SECURITY_PROTECTED_NAS_MESSAGE template")) { + ((NG__SECURITY__PROTECTED__NAS__MESSAGE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_ACCEPT")) { + ((NG__SERVICE__ACCEPT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_ACCEPT template")) { + ((NG__SERVICE__ACCEPT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_REJECT")) { + ((NG__SERVICE__REJECT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_REJECT template")) { + ((NG__SERVICE__REJECT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_REQUEST")) { + ((NG__SERVICE__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_SERVICE_REQUEST template")) { + ((NG__SERVICE__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaId")) { + ((NG__TrackingAreaId*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaId template")) { + ((NG__TrackingAreaId_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaIdList")) { + ((NG__TrackingAreaIdList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaIdList template")) { + ((NG__TrackingAreaIdList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaIdList_LV")) { + ((NG__TrackingAreaIdList__LV*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_TrackingAreaIdList_LV template")) { + ((NG__TrackingAreaIdList__LV_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type0Element")) { + ((NG__Type0Element*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type0Element template")) { + ((NG__Type0Element_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type0List")) { + ((NG__Type0List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type0List template")) { + ((NG__Type0List_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type1Element")) { + ((NG__Type1Element*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type1Element template")) { + ((NG__Type1Element_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type1List")) { + ((NG__Type1List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type1List template")) { + ((NG__Type1List_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type2Element")) { + ((NG__Type2Element*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type2Element template")) { + ((NG__Type2Element_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type2List")) { + ((NG__Type2List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type2List template")) { + ((NG__Type2List_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type3Element")) { + ((NG__Type3Element*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_Type3Element template")) { + ((NG__Type3Element_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_UE_SM_Cap")) { + ((NG__UE__SM__Cap*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_UE_SM_Cap template")) { + ((NG__UE__SM__Cap_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_UE_SecurityCapability")) { + ((NG__UE__SecurityCapability*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_UE_SecurityCapability template")) { + ((NG__UE__SecurityCapability_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_UL_NAS_TRANSPORT")) { + ((NG__UL__NAS__TRANSPORT*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_UL_NAS_TRANSPORT template")) { + ((NG__UL__NAS__TRANSPORT_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_UpdateType")) { + ((NG__UpdateType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_UpdateType template")) { + ((NG__UpdateType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NID")) { + ((NID*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NID template")) { + ((NID_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CGI")) { + ((NR__CGI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CGI template")) { + ((NR__CGI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CGI_List")) { + ((NR__CGI__List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_CGI_List template")) { + ((NR__CGI__List_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_SidelinkCounter")) { + ((NR__SidelinkCounter*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NR_SidelinkCounter template")) { + ((NR__SidelinkCounter_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSAG")) { + ((NSAG*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSAG template")) { + ((NSAG_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSAG_Info")) { + ((NSAG__Info*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSAG_Info template")) { + ((NSAG__Info_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSAI")) { + ((NSSAI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSAI template")) { + ((NSSAI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSAI_DELETE_REQUEST")) { + ((NSSAI__DELETE__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSAI_DELETE_REQUEST template")) { + ((NSSAI__DELETE__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSAI_DELETE_RESPONSE")) { + ((NSSAI__DELETE__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSAI_DELETE_RESPONSE template")) { + ((NSSAI__DELETE__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSAI_LV")) { + ((NSSAI__LV*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSAI_LV template")) { + ((NSSAI__LV_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSRG_Info")) { + ((NSSRG__Info*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSRG_Info template")) { + ((NSSRG__Info_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSRG_Value")) { + ((NSSRG__Value*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSRG_Value template")) { + ((NSSRG__Value_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSRG_ValueList")) { + ((NSSRG__ValueList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NSSRG_ValueList template")) { + ((NSSRG__ValueList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NetworkSlicingInd")) { + ((NetworkSlicingInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NetworkSlicingInd template")) { + ((NetworkSlicingInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "OperatorAccessCatDefinitions")) { + ((OperatorAccessCatDefinitions*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "OperatorAccessCatDefinitions template")) { + ((OperatorAccessCatDefinitions_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDUSessionPairId")) { + ((PDUSessionPairId*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDUSessionPairId template")) { + ((PDUSessionPairId_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_Address")) { + ((PDU__Address*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_Address template")) { + ((PDU__Address_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_SessionErrorCause")) { + ((PDU__SessionErrorCause*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_SessionErrorCause template")) { + ((PDU__SessionErrorCause_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_SessionReactivationError")) { + ((PDU__SessionReactivationError*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_SessionReactivationError template")) { + ((PDU__SessionReactivationError_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_SessionStatus")) { + ((PDU__SessionStatus*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_SessionStatus template")) { + ((PDU__SessionStatus_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_SessionType")) { + ((PDU__SessionType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PDU_SessionType template")) { + ((PDU__SessionType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistIE")) { + ((PEIPS__AssistIE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistIE template")) { + ((PEIPS__AssistIE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistIEList")) { + ((PEIPS__AssistIEList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistIEList template")) { + ((PEIPS__AssistIEList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistInfo")) { + ((PEIPS__AssistInfo*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PEIPS_AssistInfo template")) { + ((PEIPS__AssistInfo_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketCounterValueList")) { + ((PacketCounterValueList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PacketCounterValueList template")) { + ((PacketCounterValueList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAI")) { + ((PartialXtdRejectedNSSAI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAI template")) { + ((PartialXtdRejectedNSSAI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAIType0")) { + ((PartialXtdRejectedNSSAIType0*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAIType0 template")) { + ((PartialXtdRejectedNSSAIType0_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAIType1")) { + ((PartialXtdRejectedNSSAIType1*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAIType1 template")) { + ((PartialXtdRejectedNSSAIType1_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAI_List")) { + ((PartialXtdRejectedNSSAI__List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PartialXtdRejectedNSSAI_List template")) { + ((PartialXtdRejectedNSSAI__List_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PayloadContainer")) { + ((PayloadContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PayloadContainer template")) { + ((PayloadContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PayloadContainerType")) { + ((PayloadContainerType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PayloadContainerType template")) { + ((PayloadContainerType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PortManagementInfoContainer")) { + ((PortManagementInfoContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PortManagementInfoContainer template")) { + ((PortManagementInfoContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PriorityInd")) { + ((PriorityInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "PriorityInd template")) { + ((PriorityInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoSFlowDescr")) { + ((QoSFlowDescr*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoSFlowDescr template")) { + ((QoSFlowDescr_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_Flow")) { + ((QoS__Flow*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_Flow template")) { + ((QoS__Flow_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_FlowList")) { + ((QoS__FlowList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_FlowList template")) { + ((QoS__FlowList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_Rule")) { + ((QoS__Rule*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_Rule template")) { + ((QoS__Rule_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_RuleList")) { + ((QoS__RuleList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_RuleList template")) { + ((QoS__RuleList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_Rules")) { + ((QoS__Rules*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "QoS_Rules template")) { + ((QoS__Rules_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RSN")) { + ((RSN*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RSN template")) { + ((RSN_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReceivedMBSContainer")) { + ((ReceivedMBSContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReceivedMBSContainer template")) { + ((ReceivedMBSContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReceivedMBSInfo")) { + ((ReceivedMBSInfo*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ReceivedMBSInfo template")) { + ((ReceivedMBSInfo_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RegistrationResult")) { + ((RegistrationResult*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RegistrationResult template")) { + ((RegistrationResult_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RegistrationType")) { + ((RegistrationType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RegistrationType template")) { + ((RegistrationType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RegistrationWaitRange")) { + ((RegistrationWaitRange*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RegistrationWaitRange template")) { + ((RegistrationWaitRange_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RejectedNSSAI")) { + ((RejectedNSSAI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RejectedNSSAI template")) { + ((RejectedNSSAI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RejectedS_NSSAI")) { + ((RejectedS__NSSAI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RejectedS_NSSAI template")) { + ((RejectedS__NSSAI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RequestedMBSContainer")) { + ((RequestedMBSContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "RequestedMBSContainer template")) { + ((RequestedMBSContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S1ToN1TransparentContainer")) { + ((S1ToN1TransparentContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S1ToN1TransparentContainer template")) { + ((S1ToN1TransparentContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S1_UE_SecurityCapability")) { + ((S1__UE__SecurityCapability*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S1_UE_SecurityCapability template")) { + ((S1__UE__SecurityCapability_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SET_UAI_REQUEST")) { + ((SET__UAI__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SET_UAI_REQUEST template")) { + ((SET__UAI__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SET_UAI_RESPONSE")) { + ((SET__UAI__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SET_UAI_RESPONSE template")) { + ((SET__UAI__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_DeviceId")) { + ((SL__AA__DeviceId*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_DeviceId template")) { + ((SL__AA__DeviceId_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_Payload")) { + ((SL__AA__Payload*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_Payload template")) { + ((SL__AA__Payload_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_PayloadType")) { + ((SL__AA__PayloadType*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_PayloadType template")) { + ((SL__AA__PayloadType_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_PendingInd")) { + ((SL__AA__PendingInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_PendingInd template")) { + ((SL__AA__PendingInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_Response")) { + ((SL__AA__Response*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_Response template")) { + ((SL__AA__Response_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_ServerAddr")) { + ((SL__AA__ServerAddr*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_ServerAddr template")) { + ((SL__AA__ServerAddr_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_StatusInd")) { + ((SL__AA__StatusInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SL_AA_StatusInd template")) { + ((SL__AA__StatusInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SMSInd")) { + ((SMSInd*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SMSInd template")) { + ((SMSInd_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SM_PDU_DN_RequestContainer")) { + ((SM__PDU__DN__RequestContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SM_PDU_DN_RequestContainer template")) { + ((SM__PDU__DN__RequestContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SORTransparentContainer")) { + ((SORTransparentContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SORTransparentContainer template")) { + ((SORTransparentContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SOR_Header")) { + ((SOR__Header*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SOR_Header template")) { + ((SOR__Header_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SSC_Mode")) { + ((SSC__Mode*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "SSC_Mode template")) { + ((SSC__Mode_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_LV")) { + ((S__NSSAI__LV*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_LV template")) { + ((S__NSSAI__LV_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_Type")) { + ((S__NSSAI__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_Type template")) { + ((S__NSSAI__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_TypeList")) { + ((S__NSSAI__TypeList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_TypeList template")) { + ((S__NSSAI__TypeList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_V")) { + ((S__NSSAI__V*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "S_NSSAI_V template")) { + ((S__NSSAI__V_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAContainer")) { + ((ServiceLvlAAContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAContainer template")) { + ((ServiceLvlAAContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAParam")) { + ((ServiceLvlAAParam*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAParam template")) { + ((ServiceLvlAAParam_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAParamList")) { + ((ServiceLvlAAParamList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "ServiceLvlAAParamList template")) { + ((ServiceLvlAAParamList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Session_AMBR")) { + ((Session__AMBR*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "Session_AMBR template")) { + ((Session__AMBR_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TMGI_LV")) { + ((TMGI__LV*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TMGI_LV template")) { + ((TMGI__LV_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TruncatedS_TMSIConfig")) { + ((TruncatedS__TMSIConfig*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "TruncatedS_TMSIConfig template")) { + ((TruncatedS__TMSIConfig_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_DS_TT_ResidenceTime")) { + ((UE__DS__TT__ResidenceTime*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_DS_TT_ResidenceTime template")) { + ((UE__DS__TT__ResidenceTime_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TEST_LOOP_NR_SIDELINK_COUNTER_REQUEST")) { + ((UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TEST_LOOP_NR_SIDELINK_COUNTER_REQUEST template")) { + ((UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE")) { + ((UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE template")) { + ((UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_UsageSetting")) { + ((UE__UsageSetting*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UE_UsageSetting template")) { + ((UE__UsageSetting_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPU_Header")) { + ((UPU__Header*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPU_Header template")) { + ((UPU__Header_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPU_Param")) { + ((UPU__Param*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPU_Param template")) { + ((UPU__Param_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPU_ParamList")) { + ((UPU__ParamList*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPU_ParamList template")) { + ((UPU__ParamList_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPU_TransparentContainer")) { + ((UPU__TransparentContainer*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "UPU_TransparentContainer template")) { + ((UPU__TransparentContainer_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "XtdRejectedS_NSSAI")) { + ((XtdRejectedS__NSSAI*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "XtdRejectedS_NSSAI template")) { + ((XtdRejectedS__NSSAI_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "XtdRejectedS_NSSAI_List")) { + ((XtdRejectedS__NSSAI__List*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "XtdRejectedS_NSSAI_List template")) { + ((XtdRejectedS__NSSAI__List_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NG_NAS_TypeDefs"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +NAS__5GC__AKA__Type::NAS__5GC__AKA__Type() +{ +enum_value = UNBOUND_VALUE; +} + +NAS__5GC__AKA__Type::NAS__5GC__AKA__Type(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type with invalid numeric value %d.", other_value); +enum_value = (enum_type)other_value; +} + +NAS__5GC__AKA__Type::NAS__5GC__AKA__Type(enum_type other_value) +{ +enum_value = other_value; +} + +NAS__5GC__AKA__Type::NAS__5GC__AKA__Type(const NAS__5GC__AKA__Type& other_value) +: Enum_Type() +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +enum_value = other_value.enum_value; +} + +NAS__5GC__AKA__Type& NAS__5GC__AKA__Type::operator=(int other_value) +{ +if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type.", other_value); +enum_value = (enum_type)other_value; +return *this; +} + +NAS__5GC__AKA__Type& NAS__5GC__AKA__Type::operator=(enum_type other_value) +{ +enum_value = other_value; +return *this; +} + +NAS__5GC__AKA__Type& NAS__5GC__AKA__Type::operator=(const NAS__5GC__AKA__Type& other_value) +{ +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +enum_value = other_value.enum_value; +return *this; +} + +boolean NAS__5GC__AKA__Type::operator==(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +return enum_value == other_value; +} + +boolean NAS__5GC__AKA__Type::operator==(const NAS__5GC__AKA__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +return enum_value == other_value.enum_value; +} + +boolean NAS__5GC__AKA__Type::operator<(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +return enum_value < other_value; +} + +boolean NAS__5GC__AKA__Type::operator<(const NAS__5GC__AKA__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +return enum_value < other_value.enum_value; +} + +boolean NAS__5GC__AKA__Type::operator>(enum_type other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +return enum_value > other_value; +} + +boolean NAS__5GC__AKA__Type::operator>(const NAS__5GC__AKA__Type& other_value) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +return enum_value > other_value.enum_value; +} + +const char *NAS__5GC__AKA__Type::enum_to_str(enum_type enum_par) +{ +switch (enum_par) { +case AKA__5G: return "AKA_5G"; +case AKAP__EAP: return "AKAP_EAP"; +default: return ""; +} +} + +NAS__5GC__AKA__Type::enum_type NAS__5GC__AKA__Type::str_to_enum(const char *str_par) +{ +if (!strcmp(str_par, "AKA_5G")) return AKA__5G; +else if (!strcmp(str_par, "AKAP_EAP")) return AKAP__EAP; +else return UNKNOWN_VALUE; +} + +boolean NAS__5GC__AKA__Type::is_valid_enum(int int_par) +{ +switch (int_par) { +case 0: +case 1: +return TRUE; +default: +return FALSE; +} +} + +int NAS__5GC__AKA__Type::enum2int(enum_type enum_par) +{ +if (enum_par==UNBOUND_VALUE || enum_par==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par; +} + +int NAS__5GC__AKA__Type::enum2int(const NAS__5GC__AKA__Type& enum_par) +{ +if (enum_par.enum_value==UNBOUND_VALUE || enum_par.enum_value==UNKNOWN_VALUE) TTCN_error("The argument of function enum2int() is an %s value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type.", enum_par==UNBOUND_VALUE?"unbound":"invalid"); +return enum_par.enum_value; +} + +void NAS__5GC__AKA__Type::int2enum(int int_val) +{ +if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type.", int_val); +enum_value = (enum_type)int_val; +} + +NAS__5GC__AKA__Type::operator NAS__5GC__AKA__Type::enum_type() const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +return enum_value; +} + +boolean NAS__5GC__AKA__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NAS__5GC__AKA__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NAS__5GC__AKA__Type::clone() const { return new NAS__5GC__AKA__Type(*this); } +const TTCN_Typedescriptor_t* NAS__5GC__AKA__Type::get_descriptor() const { return &NAS__5GC__AKA__Type_descr_; } +void NAS__5GC__AKA__Type::log() const +{ +if (enum_value != UNBOUND_VALUE) TTCN_Logger::log_event_enum(enum_to_str(enum_value), enum_value); +else TTCN_Logger::log_event_unbound(); +} + +void NAS__5GC__AKA__Type::set_param(Module_Param& param) +{ + param.basic_check(Module_Param::BC_VALUE, "enumerated value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + char* enum_name = param.get_enumerated(); + enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : UNKNOWN_VALUE; + if (is_valid_enum(enum_value)) { + return; + } + m_p = param.get_referenced_param(); + } + if (m_p->get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@NG_NAS_TypeDefs.NAS_5GC_AKA_Type"); + enum_value = str_to_enum(m_p->get_enumerated()); + if (!is_valid_enum(enum_value)) { + param.error("Invalid enumerated value for type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); + } +} + +Module_Param* NAS__5GC__AKA__Type::get_param(Module_Param_Name& /* param_name */) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value))); +} + +void NAS__5GC__AKA__Type::encode_text(Text_Buf& text_buf) const +{ +if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +text_buf.push_int(enum_value); +} + +void NAS__5GC__AKA__Type::decode_text(Text_Buf& text_buf) +{ +enum_value = (enum_type)text_buf.pull_int().get_val(); +if (!is_valid_enum(enum_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type.", enum_value); +} + +void NAS__5GC__AKA__Type_template::copy_template(const NAS__5GC__AKA__Type_template& other_value) +{ +set_selection(other_value); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = other_value.single_value; +break; +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NAS__5GC__AKA__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NAS__5GC__AKA__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NAS__5GC__AKA__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized/unsupported template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +} +} + +NAS__5GC__AKA__Type_template::NAS__5GC__AKA__Type_template() +{ +} + +NAS__5GC__AKA__Type_template::NAS__5GC__AKA__Type_template(template_sel other_value) + : Base_Template(other_value) +{ +check_single_selection(other_value); +} + +NAS__5GC__AKA__Type_template::NAS__5GC__AKA__Type_template(int other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (!NAS__5GC__AKA__Type::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type with unknown numeric value %d.", other_value); +single_value = (NAS__5GC__AKA__Type::enum_type)other_value; +} + +NAS__5GC__AKA__Type_template::NAS__5GC__AKA__Type_template(NAS__5GC__AKA__Type::enum_type other_value) + : Base_Template(SPECIFIC_VALUE) +{ +single_value = other_value; +} + +NAS__5GC__AKA__Type_template::NAS__5GC__AKA__Type_template(const NAS__5GC__AKA__Type& other_value) + : Base_Template(SPECIFIC_VALUE) +{ +if (other_value.enum_value == NAS__5GC__AKA__Type::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +single_value = other_value.enum_value; +} + +NAS__5GC__AKA__Type_template::NAS__5GC__AKA__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NAS__5GC__AKA__Type::enum_type)(const NAS__5GC__AKA__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Creating a template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type from an unbound optional field."); +} +} + +NAS__5GC__AKA__Type_template::NAS__5GC__AKA__Type_template(NAS__5GC__AKA__Type_template* p_precondition, NAS__5GC__AKA__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NAS__5GC__AKA__Type_template::NAS__5GC__AKA__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NAS__5GC__AKA__Type_template::NAS__5GC__AKA__Type_template(const NAS__5GC__AKA__Type_template& other_value) + : Base_Template() +{ +copy_template(other_value); +} + +NAS__5GC__AKA__Type_template::~NAS__5GC__AKA__Type_template() +{ +clean_up(); +} + +boolean NAS__5GC__AKA__Type_template::is_bound() const +{ +if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE; +return TRUE; +} + +boolean NAS__5GC__AKA__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +return single_value != NAS__5GC__AKA__Type::UNBOUND_VALUE; +} + +void NAS__5GC__AKA__Type_template::clean_up() +{ +switch (template_selection) { +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NAS__5GC__AKA__Type_template& NAS__5GC__AKA__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NAS__5GC__AKA__Type_template& NAS__5GC__AKA__Type_template::operator=(int other_value) +{ +if (!NAS__5GC__AKA__Type::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type.", other_value); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = (NAS__5GC__AKA__Type::enum_type)other_value; +return *this; +} + +NAS__5GC__AKA__Type_template& NAS__5GC__AKA__Type_template::operator=(NAS__5GC__AKA__Type::enum_type other_value) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value; +return *this; +} + +NAS__5GC__AKA__Type_template& NAS__5GC__AKA__Type_template::operator=(const NAS__5GC__AKA__Type& other_value) +{ +if (other_value.enum_value == NAS__5GC__AKA__Type::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type to a template."); +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value = other_value.enum_value; +return *this; +} + +NAS__5GC__AKA__Type_template& NAS__5GC__AKA__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +set_selection(SPECIFIC_VALUE); +single_value = (NAS__5GC__AKA__Type::enum_type)(const NAS__5GC__AKA__Type&)other_value; +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +} +return *this; +} + +NAS__5GC__AKA__Type_template& NAS__5GC__AKA__Type_template::operator=(const NAS__5GC__AKA__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NAS__5GC__AKA__Type_template::match(NAS__5GC__AKA__Type::enum_type other_value, boolean) const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +return single_value == other_value; +case OMIT_VALUE: +return FALSE; +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error("Matching an uninitialized/unsupported template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +} +return FALSE; +} + +boolean NAS__5GC__AKA__Type_template::match(const NAS__5GC__AKA__Type& other_value, boolean) const +{ +if (other_value.enum_value == NAS__5GC__AKA__Type::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type with an unbound value."); +return match(other_value.enum_value); +} + +NAS__5GC__AKA__Type::enum_type NAS__5GC__AKA__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +return single_value; +} + +void NAS__5GC__AKA__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error("Setting an invalid list type for a template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NAS__5GC__AKA__Type_template[list_length]; +} + +NAS__5GC__AKA__Type_template& NAS__5GC__AKA__Type_template::list_item(unsigned int list_index) +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Accessing a list element in a non-list template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +return value_list.list_value[list_index]; +} + +void NAS__5GC__AKA__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NAS__5GC__AKA__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NAS__5GC__AKA__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NAS__5GC__AKA__Type_template::clone() const { return new NAS__5GC__AKA__Type_template(*this); } +const TTCN_Typedescriptor_t* NAS__5GC__AKA__Type_template::get_descriptor() const { return &NAS__5GC__AKA__Type_descr_; } +boolean NAS__5GC__AKA__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NAS__5GC__AKA__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NAS__5GC__AKA__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +TTCN_Logger::log_event_enum(NAS__5GC__AKA__Type::enum_to_str(single_value), single_value); +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) { +if (elem_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[elem_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +} + +void NAS__5GC__AKA__Type_template::log_match(const NAS__5GC__AKA__Type& match_value, boolean) const +{ +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} + +void NAS__5GC__AKA__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized/unsupported template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +} +} + +void NAS__5GC__AKA__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +single_value = (NAS__5GC__AKA__Type::enum_type)text_buf.pull_int().get_val(); +if (!NAS__5GC__AKA__Type::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type.", single_value); +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NAS__5GC__AKA__Type_template[value_list.n_values]; +for (unsigned int elem_count = 0; elem_count < value_list.n_values; elem_count++) +value_list.list_value[elem_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: An unknown/unsupported selection was received for a template of enumerated type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); +} +} + +boolean NAS__5GC__AKA__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NAS__5GC__AKA__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int i=0; iget_ifpresent(); + return; + } + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NAS__5GC__AKA__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Enumerated: { + NAS__5GC__AKA__Type::enum_type enum_val = NAS__5GC__AKA__Type::str_to_enum(m_p->get_enumerated()); + if (!NAS__5GC__AKA__Type::is_valid_enum(enum_val)) { + param.error("Invalid enumerated value for type @NG_NAS_TypeDefs.NAS_5GC_AKA_Type."); + } + *this = enum_val; + } break; + case Module_Param::MP_Implication_Template: { + NAS__5GC__AKA__Type_template* precondition = new NAS__5GC__AKA__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NAS__5GC__AKA__Type_template* implied_template = new NAS__5GC__AKA__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NAS__5GC__AKA__Type_template(precondition, implied_template); + } break; + default: + param.type_error("enumerated template", "@NG_NAS_TypeDefs.NAS_5GC_AKA_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NAS__5GC__AKA__Type_template::get_param(Module_Param_Name& param_name) const +{ + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: + m_p = new Module_Param_Enumerated(mcopystr(NAS__5GC__AKA__Type::enum_to_str(single_value))); + break; + case VALUE_LIST: + case COMPLEMENTED_LIST: + case CONJUNCTION_MATCH: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else if (template_selection == CONJUNCTION_MATCH) { + m_p = new Module_Param_ConjunctList_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + case IMPLICATION_MATCH: + m_p = new Module_Param_Implication_Template(); + m_p->add_elem(implication_.precondition->get_param(param_name)); + m_p->add_elem(implication_.implied_template->get_param(param_name)); + break; + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void ABBA::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_abbaValue; } + +ABBA::ABBA() : Record_Type() { init_vec(); } + +ABBA::ABBA(const ABBA& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_abbaValue.is_bound() ) + field_abbaValue = other_value.field_abbaValue; +init_vec(); +} + +ABBA::ABBA(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_abbaValue) : field_iei(par_iei), + field_iel(par_iel), + field_abbaValue(par_abbaValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ABBA::get_descriptor() const { return &ABBA_descr_; } +const TTCN_Typedescriptor_t* ABBA::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* ABBA::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ABBA::fld_names[] = { "iei", "iel", "abbaValue" }; +const char* ABBA::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ABBA::optional_indexes[] = { 0, 1, -1 }; +const int* ABBA::get_optional_indexes() const { return optional_indexes; } + +const int ABBA::optional_indexes_asn[] = { 0, 1, -1 }; +const int* ABBA::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ABBA_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +ABBA_template::ABBA_template(ABBA_template* p_precondition, ABBA_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ABBA_template::ABBA_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ABBA_template::~ABBA_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ABBA_template::match_dynamic(const Base_Type* match_value) const +{ +const ABBA* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ABBA_template& ABBA_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ABBA_template& ABBA_template::operator=(const ABBA& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ABBA_template& ABBA_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ABBA_template& ABBA_template::operator=(const ABBA_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ABBA ABBA_template::valueof() const +{ +ABBA ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ABBA_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ABBA_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ABBA_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ABBA_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ABBA_template::abbaValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ABBA_template::abbaValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ABBA_template::get_descriptor() const { return &ABBA_descr_; } +const char* ABBA_template::fld_name(int p_index) const { return ABBA::fld_names[p_index]; } +void NG__AUTHENTICATION__REQUEST::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet2; fld_vec[5]=&field_ngNasKeySetId; fld_vec[6]=&field_abba; fld_vec[7]=&field_rand; fld_vec[8]=&field_autn; fld_vec[9]=&field_eapMessage; } + +NG__AUTHENTICATION__REQUEST::NG__AUTHENTICATION__REQUEST() : Record_Type() { init_vec(); } + +NG__AUTHENTICATION__REQUEST::NG__AUTHENTICATION__REQUEST(const NG__AUTHENTICATION__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet2.is_bound() ) + field_spareHalfOctet2 = other_value.field_spareHalfOctet2; +if (other_value.field_ngNasKeySetId.is_bound() ) + field_ngNasKeySetId = other_value.field_ngNasKeySetId; +if (other_value.field_abba.is_bound() ) + field_abba = other_value.field_abba; +if (other_value.field_rand.is_bound() ) + field_rand = other_value.field_rand; +if (other_value.field_autn.is_bound() ) + field_autn = other_value.field_autn; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +init_vec(); +} + +NG__AUTHENTICATION__REQUEST::NG__AUTHENTICATION__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngNasKeySetId, + const ABBA& par_abba, + const OPTIONAL& par_rand, + const OPTIONAL& par_autn, + const OPTIONAL& par_eapMessage) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_spareHalfOctet2(par_spareHalfOctet2), + field_ngNasKeySetId(par_ngNasKeySetId), + field_abba(par_abba), + field_rand(par_rand), + field_autn(par_autn), + field_eapMessage(par_eapMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__REQUEST::get_descriptor() const { return &NG__AUTHENTICATION__REQUEST_descr_; } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__REQUEST::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &ABBA_descr_, &NAS__CommonTypeDefs::RAND_descr_, &NAS__CommonTypeDefs::AUTN_descr_, &EAP__Message_descr_ }; +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__AUTHENTICATION__REQUEST::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "spareHalfOctet2", "ngNasKeySetId", "abba", "rand", "autn", "eapMessage" }; +const char* NG__AUTHENTICATION__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__AUTHENTICATION__REQUEST::optional_indexes[] = { 7, 8, 9, -1 }; +const int* NG__AUTHENTICATION__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int NG__AUTHENTICATION__REQUEST::optional_indexes_asn[] = { 7, 8, 9, -1 }; +const int* NG__AUTHENTICATION__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__AUTHENTICATION__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[6] = was_any ? new ABBA_template(ANY_VALUE) : new ABBA_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::RAND_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::RAND_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::AUTN_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AUTN_template; +single_value.value_elements[9] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +} +} + +NG__AUTHENTICATION__REQUEST_template::NG__AUTHENTICATION__REQUEST_template(NG__AUTHENTICATION__REQUEST_template* p_precondition, NG__AUTHENTICATION__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__AUTHENTICATION__REQUEST_template::NG__AUTHENTICATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__AUTHENTICATION__REQUEST_template::~NG__AUTHENTICATION__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__AUTHENTICATION__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__AUTHENTICATION__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__AUTHENTICATION__REQUEST_template& NG__AUTHENTICATION__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__AUTHENTICATION__REQUEST_template& NG__AUTHENTICATION__REQUEST_template::operator=(const NG__AUTHENTICATION__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__AUTHENTICATION__REQUEST_template& NG__AUTHENTICATION__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__AUTHENTICATION__REQUEST_template& NG__AUTHENTICATION__REQUEST_template::operator=(const NG__AUTHENTICATION__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__AUTHENTICATION__REQUEST NG__AUTHENTICATION__REQUEST_template::valueof() const +{ +NG__AUTHENTICATION__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__AUTHENTICATION__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__AUTHENTICATION__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__AUTHENTICATION__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__AUTHENTICATION__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__AUTHENTICATION__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__AUTHENTICATION__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__AUTHENTICATION__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__AUTHENTICATION__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& NG__AUTHENTICATION__REQUEST_template::spareHalfOctet2() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& NG__AUTHENTICATION__REQUEST_template::spareHalfOctet2() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__AUTHENTICATION__REQUEST_template::ngNasKeySetId() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__AUTHENTICATION__REQUEST_template::ngNasKeySetId() const { return *(static_cast(get_at(5))); } +ABBA_template& NG__AUTHENTICATION__REQUEST_template::abba() { return *(static_cast(get_at(6))); } +const ABBA_template& NG__AUTHENTICATION__REQUEST_template::abba() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::RAND_template& NG__AUTHENTICATION__REQUEST_template::rand() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::RAND_template& NG__AUTHENTICATION__REQUEST_template::rand() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::AUTN_template& NG__AUTHENTICATION__REQUEST_template::autn() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::AUTN_template& NG__AUTHENTICATION__REQUEST_template::autn() const { return *(static_cast(get_at(8))); } +EAP__Message_template& NG__AUTHENTICATION__REQUEST_template::eapMessage() { return *(static_cast(get_at(9))); } +const EAP__Message_template& NG__AUTHENTICATION__REQUEST_template::eapMessage() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__REQUEST_template::get_descriptor() const { return &NG__AUTHENTICATION__REQUEST_descr_; } +const char* NG__AUTHENTICATION__REQUEST_template::fld_name(int p_index) const { return NG__AUTHENTICATION__REQUEST::fld_names[p_index]; } +void EAP__Message::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_eapMsg; } + +EAP__Message::EAP__Message() : Record_Type() { init_vec(); } + +EAP__Message::EAP__Message(const EAP__Message& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_eapMsg.is_bound() ) + field_eapMsg = other_value.field_eapMsg; +init_vec(); +} + +EAP__Message::EAP__Message(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_eapMsg) : field_iei(par_iei), + field_iel(par_iel), + field_eapMsg(par_eapMsg) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EAP__Message::get_descriptor() const { return &EAP__Message_descr_; } +const TTCN_Typedescriptor_t* EAP__Message::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EAP__Message::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EAP__Message::fld_names[] = { "iei", "iel", "eapMsg" }; +const char* EAP__Message::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EAP__Message::optional_indexes[] = { 0, 1, -1 }; +const int* EAP__Message::get_optional_indexes() const { return optional_indexes; } + +const int EAP__Message::optional_indexes_asn[] = { 0, 1, -1 }; +const int* EAP__Message::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EAP__Message_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EAP__Message_template::EAP__Message_template(EAP__Message_template* p_precondition, EAP__Message_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EAP__Message_template::EAP__Message_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EAP__Message_template::~EAP__Message_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EAP__Message_template::match_dynamic(const Base_Type* match_value) const +{ +const EAP__Message* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EAP__Message_template& EAP__Message_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EAP__Message_template& EAP__Message_template::operator=(const EAP__Message& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EAP__Message_template& EAP__Message_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EAP__Message_template& EAP__Message_template::operator=(const EAP__Message_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EAP__Message EAP__Message_template::valueof() const +{ +EAP__Message ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EAP__Message_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EAP__Message_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EAP__Message_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EAP__Message_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EAP__Message_template::eapMsg() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EAP__Message_template::eapMsg() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EAP__Message_template::get_descriptor() const { return &EAP__Message_descr_; } +const char* EAP__Message_template::fld_name(int p_index) const { return EAP__Message::fld_names[p_index]; } +void NG__AUTHENTICATION__RESPONSE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_authResponseParam; fld_vec[5]=&field_eapMessage; } + +NG__AUTHENTICATION__RESPONSE::NG__AUTHENTICATION__RESPONSE() : Record_Type() { init_vec(); } + +NG__AUTHENTICATION__RESPONSE::NG__AUTHENTICATION__RESPONSE(const NG__AUTHENTICATION__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_authResponseParam.is_bound() ) + field_authResponseParam = other_value.field_authResponseParam; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +init_vec(); +} + +NG__AUTHENTICATION__RESPONSE::NG__AUTHENTICATION__RESPONSE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_authResponseParam, + const OPTIONAL& par_eapMessage) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_authResponseParam(par_authResponseParam), + field_eapMessage(par_eapMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__RESPONSE::get_descriptor() const { return &NG__AUTHENTICATION__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__RESPONSE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::AuthenticationResponseParameter_descr_, &EAP__Message_descr_ }; +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__AUTHENTICATION__RESPONSE::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "authResponseParam", "eapMessage" }; +const char* NG__AUTHENTICATION__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__AUTHENTICATION__RESPONSE::optional_indexes[] = { 4, 5, -1 }; +const int* NG__AUTHENTICATION__RESPONSE::get_optional_indexes() const { return optional_indexes; } + +const int NG__AUTHENTICATION__RESPONSE::optional_indexes_asn[] = { 4, 5, -1 }; +const int* NG__AUTHENTICATION__RESPONSE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__AUTHENTICATION__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::AuthenticationResponseParameter_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AuthenticationResponseParameter_template; +single_value.value_elements[5] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +} +} + +NG__AUTHENTICATION__RESPONSE_template::NG__AUTHENTICATION__RESPONSE_template(NG__AUTHENTICATION__RESPONSE_template* p_precondition, NG__AUTHENTICATION__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__AUTHENTICATION__RESPONSE_template::NG__AUTHENTICATION__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__AUTHENTICATION__RESPONSE_template::~NG__AUTHENTICATION__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__AUTHENTICATION__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__AUTHENTICATION__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__AUTHENTICATION__RESPONSE_template& NG__AUTHENTICATION__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__AUTHENTICATION__RESPONSE_template& NG__AUTHENTICATION__RESPONSE_template::operator=(const NG__AUTHENTICATION__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__AUTHENTICATION__RESPONSE_template& NG__AUTHENTICATION__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__AUTHENTICATION__RESPONSE_template& NG__AUTHENTICATION__RESPONSE_template::operator=(const NG__AUTHENTICATION__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__AUTHENTICATION__RESPONSE NG__AUTHENTICATION__RESPONSE_template::valueof() const +{ +NG__AUTHENTICATION__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__AUTHENTICATION__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__AUTHENTICATION__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__AUTHENTICATION__RESPONSE_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__AUTHENTICATION__RESPONSE_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__AUTHENTICATION__RESPONSE_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__AUTHENTICATION__RESPONSE_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__AUTHENTICATION__RESPONSE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__AUTHENTICATION__RESPONSE_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::AuthenticationResponseParameter_template& NG__AUTHENTICATION__RESPONSE_template::authResponseParam() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::AuthenticationResponseParameter_template& NG__AUTHENTICATION__RESPONSE_template::authResponseParam() const { return *(static_cast(get_at(4))); } +EAP__Message_template& NG__AUTHENTICATION__RESPONSE_template::eapMessage() { return *(static_cast(get_at(5))); } +const EAP__Message_template& NG__AUTHENTICATION__RESPONSE_template::eapMessage() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__RESPONSE_template::get_descriptor() const { return &NG__AUTHENTICATION__RESPONSE_descr_; } +const char* NG__AUTHENTICATION__RESPONSE_template::fld_name(int p_index) const { return NG__AUTHENTICATION__RESPONSE::fld_names[p_index]; } +void NG__AUTHENTICATION__RESULT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet2; fld_vec[5]=&field_ngNasKeySetId; fld_vec[6]=&field_eapMessage; fld_vec[7]=&field_abba; } + +NG__AUTHENTICATION__RESULT::NG__AUTHENTICATION__RESULT() : Record_Type() { init_vec(); } + +NG__AUTHENTICATION__RESULT::NG__AUTHENTICATION__RESULT(const NG__AUTHENTICATION__RESULT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet2.is_bound() ) + field_spareHalfOctet2 = other_value.field_spareHalfOctet2; +if (other_value.field_ngNasKeySetId.is_bound() ) + field_ngNasKeySetId = other_value.field_ngNasKeySetId; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_abba.is_bound() ) + field_abba = other_value.field_abba; +init_vec(); +} + +NG__AUTHENTICATION__RESULT::NG__AUTHENTICATION__RESULT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngNasKeySetId, + const EAP__Message& par_eapMessage, + const OPTIONAL& par_abba) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_spareHalfOctet2(par_spareHalfOctet2), + field_ngNasKeySetId(par_ngNasKeySetId), + field_eapMessage(par_eapMessage), + field_abba(par_abba) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__RESULT::get_descriptor() const { return &NG__AUTHENTICATION__RESULT_descr_; } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__RESULT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &EAP__Message_descr_, &ABBA_descr_ }; +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__RESULT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__AUTHENTICATION__RESULT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "spareHalfOctet2", "ngNasKeySetId", "eapMessage", "abba" }; +const char* NG__AUTHENTICATION__RESULT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__AUTHENTICATION__RESULT::optional_indexes[] = { 7, -1 }; +const int* NG__AUTHENTICATION__RESULT::get_optional_indexes() const { return optional_indexes; } + +const int NG__AUTHENTICATION__RESULT::optional_indexes_asn[] = { 7, -1 }; +const int* NG__AUTHENTICATION__RESULT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__AUTHENTICATION__RESULT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[6] = was_any ? new EAP__Message_template(ANY_VALUE) : new EAP__Message_template; +single_value.value_elements[7] = was_any ? new ABBA_template(ANY_OR_OMIT) : new ABBA_template; +} +} + +NG__AUTHENTICATION__RESULT_template::NG__AUTHENTICATION__RESULT_template(NG__AUTHENTICATION__RESULT_template* p_precondition, NG__AUTHENTICATION__RESULT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__AUTHENTICATION__RESULT_template::NG__AUTHENTICATION__RESULT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__AUTHENTICATION__RESULT_template::~NG__AUTHENTICATION__RESULT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__AUTHENTICATION__RESULT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__AUTHENTICATION__RESULT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__AUTHENTICATION__RESULT_template& NG__AUTHENTICATION__RESULT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__AUTHENTICATION__RESULT_template& NG__AUTHENTICATION__RESULT_template::operator=(const NG__AUTHENTICATION__RESULT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__AUTHENTICATION__RESULT_template& NG__AUTHENTICATION__RESULT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__AUTHENTICATION__RESULT_template& NG__AUTHENTICATION__RESULT_template::operator=(const NG__AUTHENTICATION__RESULT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__AUTHENTICATION__RESULT NG__AUTHENTICATION__RESULT_template::valueof() const +{ +NG__AUTHENTICATION__RESULT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__AUTHENTICATION__RESULT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__AUTHENTICATION__RESULT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__AUTHENTICATION__RESULT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__AUTHENTICATION__RESULT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__AUTHENTICATION__RESULT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__AUTHENTICATION__RESULT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__AUTHENTICATION__RESULT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__AUTHENTICATION__RESULT_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& NG__AUTHENTICATION__RESULT_template::spareHalfOctet2() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& NG__AUTHENTICATION__RESULT_template::spareHalfOctet2() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__AUTHENTICATION__RESULT_template::ngNasKeySetId() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__AUTHENTICATION__RESULT_template::ngNasKeySetId() const { return *(static_cast(get_at(5))); } +EAP__Message_template& NG__AUTHENTICATION__RESULT_template::eapMessage() { return *(static_cast(get_at(6))); } +const EAP__Message_template& NG__AUTHENTICATION__RESULT_template::eapMessage() const { return *(static_cast(get_at(6))); } +ABBA_template& NG__AUTHENTICATION__RESULT_template::abba() { return *(static_cast(get_at(7))); } +const ABBA_template& NG__AUTHENTICATION__RESULT_template::abba() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__RESULT_template::get_descriptor() const { return &NG__AUTHENTICATION__RESULT_descr_; } +const char* NG__AUTHENTICATION__RESULT_template::fld_name(int p_index) const { return NG__AUTHENTICATION__RESULT::fld_names[p_index]; } +void GMM__GSM__Cause::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_causeValue; } + +GMM__GSM__Cause::GMM__GSM__Cause() : Record_Type() { init_vec(); } + +GMM__GSM__Cause::GMM__GSM__Cause(const GMM__GSM__Cause& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_causeValue.is_bound() ) + field_causeValue = other_value.field_causeValue; +init_vec(); +} + +GMM__GSM__Cause::GMM__GSM__Cause(const OPTIONAL& par_iei, + const BITSTRING& par_causeValue) : field_iei(par_iei), + field_causeValue(par_causeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* GMM__GSM__Cause::get_descriptor() const { return &GMM__GSM__Cause_descr_; } +const TTCN_Typedescriptor_t* GMM__GSM__Cause::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::NAS__CauseValue__Type_descr_ }; +const TTCN_Typedescriptor_t* GMM__GSM__Cause::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* GMM__GSM__Cause::fld_names[] = { "iei", "causeValue" }; +const char* GMM__GSM__Cause::fld_name(int p_index) const { return fld_names[p_index]; } + +const int GMM__GSM__Cause::optional_indexes[] = { 0, -1 }; +const int* GMM__GSM__Cause::get_optional_indexes() const { return optional_indexes; } + +const int GMM__GSM__Cause::optional_indexes_asn[] = { 0, -1 }; +const int* GMM__GSM__Cause::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void GMM__GSM__Cause_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +GMM__GSM__Cause_template::GMM__GSM__Cause_template(GMM__GSM__Cause_template* p_precondition, GMM__GSM__Cause_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +GMM__GSM__Cause_template::GMM__GSM__Cause_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +GMM__GSM__Cause_template::~GMM__GSM__Cause_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean GMM__GSM__Cause_template::match_dynamic(const Base_Type* match_value) const +{ +const GMM__GSM__Cause* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +GMM__GSM__Cause_template& GMM__GSM__Cause_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +GMM__GSM__Cause_template& GMM__GSM__Cause_template::operator=(const GMM__GSM__Cause& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +GMM__GSM__Cause_template& GMM__GSM__Cause_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +GMM__GSM__Cause_template& GMM__GSM__Cause_template::operator=(const GMM__GSM__Cause_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +GMM__GSM__Cause GMM__GSM__Cause_template::valueof() const +{ +GMM__GSM__Cause ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& GMM__GSM__Cause_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& GMM__GSM__Cause_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& GMM__GSM__Cause_template::causeValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& GMM__GSM__Cause_template::causeValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* GMM__GSM__Cause_template::get_descriptor() const { return &GMM__GSM__Cause_descr_; } +const char* GMM__GSM__Cause_template::fld_name(int p_index) const { return GMM__GSM__Cause::fld_names[p_index]; } +void NG__AUTHENTICATION__FAILURE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gmmCause; fld_vec[5]=&field_authFailureParam; } + +NG__AUTHENTICATION__FAILURE::NG__AUTHENTICATION__FAILURE() : Record_Type() { init_vec(); } + +NG__AUTHENTICATION__FAILURE::NG__AUTHENTICATION__FAILURE(const NG__AUTHENTICATION__FAILURE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gmmCause.is_bound() ) + field_gmmCause = other_value.field_gmmCause; +if (other_value.field_authFailureParam.is_bound() ) + field_authFailureParam = other_value.field_authFailureParam; +init_vec(); +} + +NG__AUTHENTICATION__FAILURE::NG__AUTHENTICATION__FAILURE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause, + const OPTIONAL& par_authFailureParam) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_gmmCause(par_gmmCause), + field_authFailureParam(par_authFailureParam) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__FAILURE::get_descriptor() const { return &NG__AUTHENTICATION__FAILURE_descr_; } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__FAILURE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::AuthenticationFailureParameter_descr_ }; +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__FAILURE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__AUTHENTICATION__FAILURE::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "gmmCause", "authFailureParam" }; +const char* NG__AUTHENTICATION__FAILURE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__AUTHENTICATION__FAILURE::optional_indexes[] = { 5, -1 }; +const int* NG__AUTHENTICATION__FAILURE::get_optional_indexes() const { return optional_indexes; } + +const int NG__AUTHENTICATION__FAILURE::optional_indexes_asn[] = { 5, -1 }; +const int* NG__AUTHENTICATION__FAILURE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__AUTHENTICATION__FAILURE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::AuthenticationFailureParameter_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AuthenticationFailureParameter_template; +} +} + +NG__AUTHENTICATION__FAILURE_template::NG__AUTHENTICATION__FAILURE_template(NG__AUTHENTICATION__FAILURE_template* p_precondition, NG__AUTHENTICATION__FAILURE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__AUTHENTICATION__FAILURE_template::NG__AUTHENTICATION__FAILURE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__AUTHENTICATION__FAILURE_template::~NG__AUTHENTICATION__FAILURE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__AUTHENTICATION__FAILURE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__AUTHENTICATION__FAILURE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__AUTHENTICATION__FAILURE_template& NG__AUTHENTICATION__FAILURE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__AUTHENTICATION__FAILURE_template& NG__AUTHENTICATION__FAILURE_template::operator=(const NG__AUTHENTICATION__FAILURE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__AUTHENTICATION__FAILURE_template& NG__AUTHENTICATION__FAILURE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__AUTHENTICATION__FAILURE_template& NG__AUTHENTICATION__FAILURE_template::operator=(const NG__AUTHENTICATION__FAILURE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__AUTHENTICATION__FAILURE NG__AUTHENTICATION__FAILURE_template::valueof() const +{ +NG__AUTHENTICATION__FAILURE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__AUTHENTICATION__FAILURE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__AUTHENTICATION__FAILURE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__AUTHENTICATION__FAILURE_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__AUTHENTICATION__FAILURE_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__AUTHENTICATION__FAILURE_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__AUTHENTICATION__FAILURE_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__AUTHENTICATION__FAILURE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__AUTHENTICATION__FAILURE_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__AUTHENTICATION__FAILURE_template::gmmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__AUTHENTICATION__FAILURE_template::gmmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::AuthenticationFailureParameter_template& NG__AUTHENTICATION__FAILURE_template::authFailureParam() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& NG__AUTHENTICATION__FAILURE_template::authFailureParam() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__FAILURE_template::get_descriptor() const { return &NG__AUTHENTICATION__FAILURE_descr_; } +const char* NG__AUTHENTICATION__FAILURE_template::fld_name(int p_index) const { return NG__AUTHENTICATION__FAILURE::fld_names[p_index]; } +void NG__AUTHENTICATION__REJECT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_eapMessage; } + +NG__AUTHENTICATION__REJECT::NG__AUTHENTICATION__REJECT() : Record_Type() { init_vec(); } + +NG__AUTHENTICATION__REJECT::NG__AUTHENTICATION__REJECT(const NG__AUTHENTICATION__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +init_vec(); +} + +NG__AUTHENTICATION__REJECT::NG__AUTHENTICATION__REJECT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_eapMessage) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_eapMessage(par_eapMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__REJECT::get_descriptor() const { return &NG__AUTHENTICATION__REJECT_descr_; } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__REJECT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EAP__Message_descr_ }; +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__AUTHENTICATION__REJECT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "eapMessage" }; +const char* NG__AUTHENTICATION__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__AUTHENTICATION__REJECT::optional_indexes[] = { 4, -1 }; +const int* NG__AUTHENTICATION__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int NG__AUTHENTICATION__REJECT::optional_indexes_asn[] = { 4, -1 }; +const int* NG__AUTHENTICATION__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__AUTHENTICATION__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +} +} + +NG__AUTHENTICATION__REJECT_template::NG__AUTHENTICATION__REJECT_template(NG__AUTHENTICATION__REJECT_template* p_precondition, NG__AUTHENTICATION__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__AUTHENTICATION__REJECT_template::NG__AUTHENTICATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__AUTHENTICATION__REJECT_template::~NG__AUTHENTICATION__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__AUTHENTICATION__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__AUTHENTICATION__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__AUTHENTICATION__REJECT_template& NG__AUTHENTICATION__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__AUTHENTICATION__REJECT_template& NG__AUTHENTICATION__REJECT_template::operator=(const NG__AUTHENTICATION__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__AUTHENTICATION__REJECT_template& NG__AUTHENTICATION__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__AUTHENTICATION__REJECT_template& NG__AUTHENTICATION__REJECT_template::operator=(const NG__AUTHENTICATION__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__AUTHENTICATION__REJECT NG__AUTHENTICATION__REJECT_template::valueof() const +{ +NG__AUTHENTICATION__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__AUTHENTICATION__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__AUTHENTICATION__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__AUTHENTICATION__REJECT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__AUTHENTICATION__REJECT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__AUTHENTICATION__REJECT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__AUTHENTICATION__REJECT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__AUTHENTICATION__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__AUTHENTICATION__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +EAP__Message_template& NG__AUTHENTICATION__REJECT_template::eapMessage() { return *(static_cast(get_at(4))); } +const EAP__Message_template& NG__AUTHENTICATION__REJECT_template::eapMessage() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NG__AUTHENTICATION__REJECT_template::get_descriptor() const { return &NG__AUTHENTICATION__REJECT_descr_; } +const char* NG__AUTHENTICATION__REJECT_template::fld_name(int p_index) const { return NG__AUTHENTICATION__REJECT::fld_names[p_index]; } +void RegistrationType::init_vec() { fld_vec[0]=&field_fOR; fld_vec[1]=&field_registrationType; } + +RegistrationType::RegistrationType() : Record_Type() { init_vec(); } + +RegistrationType::RegistrationType(const RegistrationType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_fOR.is_bound() ) + field_fOR = other_value.field_fOR; +if (other_value.field_registrationType.is_bound() ) + field_registrationType = other_value.field_registrationType; +init_vec(); +} + +RegistrationType::RegistrationType(const BITSTRING& par_fOR, + const BITSTRING& par_registrationType) : field_fOR(par_fOR), + field_registrationType(par_registrationType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RegistrationType::get_descriptor() const { return &RegistrationType_descr_; } +const TTCN_Typedescriptor_t* RegistrationType::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* RegistrationType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RegistrationType::fld_names[] = { "fOR", "registrationType" }; +const char* RegistrationType::fld_name(int p_index) const { return fld_names[p_index]; } + +void RegistrationType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +RegistrationType_template::RegistrationType_template(RegistrationType_template* p_precondition, RegistrationType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RegistrationType_template::RegistrationType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RegistrationType_template::~RegistrationType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RegistrationType_template::match_dynamic(const Base_Type* match_value) const +{ +const RegistrationType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RegistrationType_template& RegistrationType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RegistrationType_template& RegistrationType_template::operator=(const RegistrationType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RegistrationType_template& RegistrationType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RegistrationType_template& RegistrationType_template::operator=(const RegistrationType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RegistrationType RegistrationType_template::valueof() const +{ +RegistrationType ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& RegistrationType_template::fOR() { return *(static_cast(get_at(0))); } +const BITSTRING_template& RegistrationType_template::fOR() const { return *(static_cast(get_at(0))); } +BITSTRING_template& RegistrationType_template::registrationType() { return *(static_cast(get_at(1))); } +const BITSTRING_template& RegistrationType_template::registrationType() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* RegistrationType_template::get_descriptor() const { return &RegistrationType_descr_; } +const char* RegistrationType_template::fld_name(int p_index) const { return RegistrationType::fld_names[p_index]; } +void NG__MobileIdentity::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_idDigit1; fld_vec[3]=&field_oddEvenInd; fld_vec[4]=&field_typeOfId; fld_vec[5]=&field_otherDigits; } + +NG__MobileIdentity::NG__MobileIdentity() : Record_Type() { init_vec(); } + +NG__MobileIdentity::NG__MobileIdentity(const NG__MobileIdentity& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_idDigit1.is_bound() ) + field_idDigit1 = other_value.field_idDigit1; +if (other_value.field_oddEvenInd.is_bound() ) + field_oddEvenInd = other_value.field_oddEvenInd; +if (other_value.field_typeOfId.is_bound() ) + field_typeOfId = other_value.field_typeOfId; +if (other_value.field_otherDigits.is_bound() ) + field_otherDigits = other_value.field_otherDigits; +init_vec(); +} + +NG__MobileIdentity::NG__MobileIdentity(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_idDigit1, + const BITSTRING& par_oddEvenInd, + const BITSTRING& par_typeOfId, + const OPTIONAL& par_otherDigits) : field_iei(par_iei), + field_iel(par_iel), + field_idDigit1(par_idDigit1), + field_oddEvenInd(par_oddEvenInd), + field_typeOfId(par_typeOfId), + field_otherDigits(par_otherDigits) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__MobileIdentity::get_descriptor() const { return &NG__MobileIdentity_descr_; } +const TTCN_Typedescriptor_t* NG__MobileIdentity::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &NAS__CommonTypeDefs::BcdDigit__Bit_descr_, &CommonDefs::B1__Type_descr_, &NAS__CommonTypeDefs::NAS__IdType_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NG__MobileIdentity::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__MobileIdentity::fld_names[] = { "iei", "iel", "idDigit1", "oddEvenInd", "typeOfId", "otherDigits" }; +const char* NG__MobileIdentity::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__MobileIdentity::optional_indexes[] = { 0, 5, -1 }; +const int* NG__MobileIdentity::get_optional_indexes() const { return optional_indexes; } + +const int NG__MobileIdentity::optional_indexes_asn[] = { 0, 5, -1 }; +const int* NG__MobileIdentity::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__MobileIdentity_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +NG__MobileIdentity_template::NG__MobileIdentity_template(NG__MobileIdentity_template* p_precondition, NG__MobileIdentity_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__MobileIdentity_template::NG__MobileIdentity_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__MobileIdentity_template::~NG__MobileIdentity_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__MobileIdentity_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__MobileIdentity* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__MobileIdentity_template& NG__MobileIdentity_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__MobileIdentity_template& NG__MobileIdentity_template::operator=(const NG__MobileIdentity& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__MobileIdentity_template& NG__MobileIdentity_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__MobileIdentity_template& NG__MobileIdentity_template::operator=(const NG__MobileIdentity_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__MobileIdentity NG__MobileIdentity_template::valueof() const +{ +NG__MobileIdentity ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__MobileIdentity_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__MobileIdentity_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__MobileIdentity_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__MobileIdentity_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__MobileIdentity_template::idDigit1() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__MobileIdentity_template::idDigit1() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__MobileIdentity_template::oddEvenInd() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__MobileIdentity_template::oddEvenInd() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NG__MobileIdentity_template::typeOfId() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NG__MobileIdentity_template::typeOfId() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& NG__MobileIdentity_template::otherDigits() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& NG__MobileIdentity_template::otherDigits() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__MobileIdentity_template::get_descriptor() const { return &NG__MobileIdentity_descr_; } +const char* NG__MobileIdentity_template::fld_name(int p_index) const { return NG__MobileIdentity::fld_names[p_index]; } +void NG__REGISTRATION__REQUEST::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_ngNasKSI; fld_vec[5]=&field_registrationType; fld_vec[6]=&field_ngMobileId; fld_vec[7]=&field_nonCurrentNativeKSI; fld_vec[8]=&field_gmmCapability; fld_vec[9]=&field_ueSecurityCapability; fld_vec[10]=&field_requestedNSSAI; fld_vec[11]=&field_lastVisitedRegisteredTai; fld_vec[12]=&field_s1__UE__Capability; fld_vec[13]=&field_ulDataStatus; fld_vec[14]=&field_pduSessionStatus; fld_vec[15]=&field_micoInd; fld_vec[16]=&field_ueStatus; fld_vec[17]=&field_additionalGUTI; fld_vec[18]=&field_allowedPDUSessionStatus; fld_vec[19]=&field_ueUsageSetting; fld_vec[20]=&field_reqDRXParams; fld_vec[21]=&field_epsMessage; fld_vec[22]=&field_ladnInd; fld_vec[23]=&field_payloadContainerType; fld_vec[24]=&field_payload; fld_vec[25]=&field_networkSlicingInd; fld_vec[26]=&field_updateType; fld_vec[27]=&field_msClassmark2; fld_vec[28]=&field_supportedCodecs; fld_vec[29]=&field_nasMsg; fld_vec[30]=&field_epsBearerContextStatus; fld_vec[31]=&field_requestedExtdDRXParams; fld_vec[32]=&field_t3324Value; fld_vec[33]=&field_ueRadioCapabilityId; fld_vec[34]=&field_requestedMappedNSSAI; fld_vec[35]=&field_additionalInfoReq; fld_vec[36]=&field_requestedWUSAssistanceInfo; fld_vec[37]=&field_n5GCInd; fld_vec[38]=&field_requestedNB__N1DRXParams; fld_vec[39]=&field_ueRequestType; fld_vec[40]=&field_pagingRestrict; fld_vec[41]=&field_serviceLvlAA; fld_vec[42]=&field_nId; fld_vec[43]=&field_msPLMNwDisasterCondition; fld_vec[44]=&field_requestedPEIPS__AssistInfo; fld_vec[45]=&field_t3512Value; } + +NG__REGISTRATION__REQUEST::NG__REGISTRATION__REQUEST() : Record_Type() { init_vec(); } + +NG__REGISTRATION__REQUEST::NG__REGISTRATION__REQUEST(const NG__REGISTRATION__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_ngNasKSI.is_bound() ) + field_ngNasKSI = other_value.field_ngNasKSI; +if (other_value.field_registrationType.is_bound() ) + field_registrationType = other_value.field_registrationType; +if (other_value.field_ngMobileId.is_bound() ) + field_ngMobileId = other_value.field_ngMobileId; +if (other_value.field_nonCurrentNativeKSI.is_bound() ) + field_nonCurrentNativeKSI = other_value.field_nonCurrentNativeKSI; +if (other_value.field_gmmCapability.is_bound() ) + field_gmmCapability = other_value.field_gmmCapability; +if (other_value.field_ueSecurityCapability.is_bound() ) + field_ueSecurityCapability = other_value.field_ueSecurityCapability; +if (other_value.field_requestedNSSAI.is_bound() ) + field_requestedNSSAI = other_value.field_requestedNSSAI; +if (other_value.field_lastVisitedRegisteredTai.is_bound() ) + field_lastVisitedRegisteredTai = other_value.field_lastVisitedRegisteredTai; +if (other_value.field_s1__UE__Capability.is_bound() ) + field_s1__UE__Capability = other_value.field_s1__UE__Capability; +if (other_value.field_ulDataStatus.is_bound() ) + field_ulDataStatus = other_value.field_ulDataStatus; +if (other_value.field_pduSessionStatus.is_bound() ) + field_pduSessionStatus = other_value.field_pduSessionStatus; +if (other_value.field_micoInd.is_bound() ) + field_micoInd = other_value.field_micoInd; +if (other_value.field_ueStatus.is_bound() ) + field_ueStatus = other_value.field_ueStatus; +if (other_value.field_additionalGUTI.is_bound() ) + field_additionalGUTI = other_value.field_additionalGUTI; +if (other_value.field_allowedPDUSessionStatus.is_bound() ) + field_allowedPDUSessionStatus = other_value.field_allowedPDUSessionStatus; +if (other_value.field_ueUsageSetting.is_bound() ) + field_ueUsageSetting = other_value.field_ueUsageSetting; +if (other_value.field_reqDRXParams.is_bound() ) + field_reqDRXParams = other_value.field_reqDRXParams; +if (other_value.field_epsMessage.is_bound() ) + field_epsMessage = other_value.field_epsMessage; +if (other_value.field_ladnInd.is_bound() ) + field_ladnInd = other_value.field_ladnInd; +if (other_value.field_payloadContainerType.is_bound() ) + field_payloadContainerType = other_value.field_payloadContainerType; +if (other_value.field_payload.is_bound() ) + field_payload = other_value.field_payload; +if (other_value.field_networkSlicingInd.is_bound() ) + field_networkSlicingInd = other_value.field_networkSlicingInd; +if (other_value.field_updateType.is_bound() ) + field_updateType = other_value.field_updateType; +if (other_value.field_msClassmark2.is_bound() ) + field_msClassmark2 = other_value.field_msClassmark2; +if (other_value.field_supportedCodecs.is_bound() ) + field_supportedCodecs = other_value.field_supportedCodecs; +if (other_value.field_nasMsg.is_bound() ) + field_nasMsg = other_value.field_nasMsg; +if (other_value.field_epsBearerContextStatus.is_bound() ) + field_epsBearerContextStatus = other_value.field_epsBearerContextStatus; +if (other_value.field_requestedExtdDRXParams.is_bound() ) + field_requestedExtdDRXParams = other_value.field_requestedExtdDRXParams; +if (other_value.field_t3324Value.is_bound() ) + field_t3324Value = other_value.field_t3324Value; +if (other_value.field_ueRadioCapabilityId.is_bound() ) + field_ueRadioCapabilityId = other_value.field_ueRadioCapabilityId; +if (other_value.field_requestedMappedNSSAI.is_bound() ) + field_requestedMappedNSSAI = other_value.field_requestedMappedNSSAI; +if (other_value.field_additionalInfoReq.is_bound() ) + field_additionalInfoReq = other_value.field_additionalInfoReq; +if (other_value.field_requestedWUSAssistanceInfo.is_bound() ) + field_requestedWUSAssistanceInfo = other_value.field_requestedWUSAssistanceInfo; +if (other_value.field_n5GCInd.is_bound() ) + field_n5GCInd = other_value.field_n5GCInd; +if (other_value.field_requestedNB__N1DRXParams.is_bound() ) + field_requestedNB__N1DRXParams = other_value.field_requestedNB__N1DRXParams; +if (other_value.field_ueRequestType.is_bound() ) + field_ueRequestType = other_value.field_ueRequestType; +if (other_value.field_pagingRestrict.is_bound() ) + field_pagingRestrict = other_value.field_pagingRestrict; +if (other_value.field_serviceLvlAA.is_bound() ) + field_serviceLvlAA = other_value.field_serviceLvlAA; +if (other_value.field_nId.is_bound() ) + field_nId = other_value.field_nId; +if (other_value.field_msPLMNwDisasterCondition.is_bound() ) + field_msPLMNwDisasterCondition = other_value.field_msPLMNwDisasterCondition; +if (other_value.field_requestedPEIPS__AssistInfo.is_bound() ) + field_requestedPEIPS__AssistInfo = other_value.field_requestedPEIPS__AssistInfo; +if (other_value.field_t3512Value.is_bound() ) + field_t3512Value = other_value.field_t3512Value; +init_vec(); +} + +NG__REGISTRATION__REQUEST::NG__REGISTRATION__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngNasKSI, + const RegistrationType& par_registrationType, + const NG__MobileIdentity& par_ngMobileId, + const OPTIONAL& par_nonCurrentNativeKSI, + const OPTIONAL& par_gmmCapability, + const OPTIONAL& par_ueSecurityCapability, + const OPTIONAL& par_requestedNSSAI, + const OPTIONAL& par_lastVisitedRegisteredTai, + const OPTIONAL& par_s1__UE__Capability, + const OPTIONAL& par_ulDataStatus, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_micoInd, + const OPTIONAL& par_ueStatus, + const OPTIONAL& par_additionalGUTI, + const OPTIONAL& par_allowedPDUSessionStatus, + const OPTIONAL& par_ueUsageSetting, + const OPTIONAL& par_reqDRXParams, + const OPTIONAL& par_epsMessage, + const OPTIONAL& par_ladnInd, + const OPTIONAL& par_payloadContainerType, + const OPTIONAL& par_payload, + const OPTIONAL& par_networkSlicingInd, + const OPTIONAL& par_updateType, + const OPTIONAL& par_msClassmark2, + const OPTIONAL& par_supportedCodecs, + const OPTIONAL& par_nasMsg, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_requestedExtdDRXParams, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_ueRadioCapabilityId, + const OPTIONAL& par_requestedMappedNSSAI, + const OPTIONAL& par_additionalInfoReq, + const OPTIONAL& par_requestedWUSAssistanceInfo, + const OPTIONAL& par_n5GCInd, + const OPTIONAL& par_requestedNB__N1DRXParams, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestrict, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_nId, + const OPTIONAL& par_msPLMNwDisasterCondition, + const OPTIONAL& par_requestedPEIPS__AssistInfo, + const OPTIONAL& par_t3512Value) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_ngNasKSI(par_ngNasKSI), + field_registrationType(par_registrationType), + field_ngMobileId(par_ngMobileId), + field_nonCurrentNativeKSI(par_nonCurrentNativeKSI), + field_gmmCapability(par_gmmCapability), + field_ueSecurityCapability(par_ueSecurityCapability), + field_requestedNSSAI(par_requestedNSSAI), + field_lastVisitedRegisteredTai(par_lastVisitedRegisteredTai), + field_s1__UE__Capability(par_s1__UE__Capability), + field_ulDataStatus(par_ulDataStatus), + field_pduSessionStatus(par_pduSessionStatus), + field_micoInd(par_micoInd), + field_ueStatus(par_ueStatus), + field_additionalGUTI(par_additionalGUTI), + field_allowedPDUSessionStatus(par_allowedPDUSessionStatus), + field_ueUsageSetting(par_ueUsageSetting), + field_reqDRXParams(par_reqDRXParams), + field_epsMessage(par_epsMessage), + field_ladnInd(par_ladnInd), + field_payloadContainerType(par_payloadContainerType), + field_payload(par_payload), + field_networkSlicingInd(par_networkSlicingInd), + field_updateType(par_updateType), + field_msClassmark2(par_msClassmark2), + field_supportedCodecs(par_supportedCodecs), + field_nasMsg(par_nasMsg), + field_epsBearerContextStatus(par_epsBearerContextStatus), + field_requestedExtdDRXParams(par_requestedExtdDRXParams), + field_t3324Value(par_t3324Value), + field_ueRadioCapabilityId(par_ueRadioCapabilityId), + field_requestedMappedNSSAI(par_requestedMappedNSSAI), + field_additionalInfoReq(par_additionalInfoReq), + field_requestedWUSAssistanceInfo(par_requestedWUSAssistanceInfo), + field_n5GCInd(par_n5GCInd), + field_requestedNB__N1DRXParams(par_requestedNB__N1DRXParams), + field_ueRequestType(par_ueRequestType), + field_pagingRestrict(par_pagingRestrict), + field_serviceLvlAA(par_serviceLvlAA), + field_nId(par_nId), + field_msPLMNwDisasterCondition(par_msPLMNwDisasterCondition), + field_requestedPEIPS__AssistInfo(par_requestedPEIPS__AssistInfo), + field_t3512Value(par_t3512Value) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__REGISTRATION__REQUEST::get_descriptor() const { return &NG__REGISTRATION__REQUEST_descr_; } +const TTCN_Typedescriptor_t* NG__REGISTRATION__REQUEST::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &RegistrationType_descr_, &NG__MobileIdentity_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &NG__GMM__Cap_descr_, &NG__UE__SecurityCapability_descr_, &NSSAI_descr_, &NG__TrackingAreaId_descr_, &NAS__CommonTypeDefs::UE__NetworkCap_descr_, &PDU__SessionStatus_descr_, &PDU__SessionStatus_descr_, &MICO__Ind_descr_, &NAS__CommonTypeDefs::UE__Status_descr_, &NG__MobileIdentity_descr_, &PDU__SessionStatus_descr_, &UE__UsageSetting_descr_, &NAS__CommonTypeDefs::DRXParamCommon_descr_, &EPS__MessageContainer_descr_, &LADN__Ind_descr_, &PayloadContainerType_descr_, &PayloadContainer_descr_, &NetworkSlicingInd_descr_, &NG__UpdateType_descr_, &NAS__CommonTypeDefs::MS__Clsmk2_descr_, &NAS__CommonTypeDefs::CodecList_descr_, &NAS__CommonTypeDefs::ReplayedNASMessageContainer_descr_, &NAS__CommonTypeDefs::EPS__BearerContextStatus_descr_, &NAS__CommonTypeDefs::ExtdDRXParams_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::UERadioCapId_descr_, &MappedNSSAI_descr_, &AddInfoRequest_descr_, &NAS__CommonTypeDefs::WUSAssistInfo_descr_, &N5GCInd_descr_, &NAS__CommonTypeDefs::DRXParamCommon_descr_, &NAS__CommonTypeDefs::UE__RequestType_descr_, &NG__PagingRestriction_descr_, &ServiceLvlAAContainer_descr_, &NID_descr_, &NAS__CommonTypeDefs::PLMN__IdIE_descr_, &PEIPS__AssistInfo_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_ }; +const TTCN_Typedescriptor_t* NG__REGISTRATION__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__REGISTRATION__REQUEST::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "ngNasKSI", "registrationType", "ngMobileId", "nonCurrentNativeKSI", "gmmCapability", "ueSecurityCapability", "requestedNSSAI", "lastVisitedRegisteredTai", "s1_UE_Capability", "ulDataStatus", "pduSessionStatus", "micoInd", "ueStatus", "additionalGUTI", "allowedPDUSessionStatus", "ueUsageSetting", "reqDRXParams", "epsMessage", "ladnInd", "payloadContainerType", "payload", "networkSlicingInd", "updateType", "msClassmark2", "supportedCodecs", "nasMsg", "epsBearerContextStatus", "requestedExtdDRXParams", "t3324Value", "ueRadioCapabilityId", "requestedMappedNSSAI", "additionalInfoReq", "requestedWUSAssistanceInfo", "n5GCInd", "requestedNB_N1DRXParams", "ueRequestType", "pagingRestrict", "serviceLvlAA", "nId", "msPLMNwDisasterCondition", "requestedPEIPS_AssistInfo", "t3512Value" }; +const char* NG__REGISTRATION__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__REGISTRATION__REQUEST::optional_indexes[] = { 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1 }; +const int* NG__REGISTRATION__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int NG__REGISTRATION__REQUEST::optional_indexes_asn[] = { 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1 }; +const int* NG__REGISTRATION__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__REGISTRATION__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 46; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[5] = was_any ? new RegistrationType_template(ANY_VALUE) : new RegistrationType_template; +single_value.value_elements[6] = was_any ? new NG__MobileIdentity_template(ANY_VALUE) : new NG__MobileIdentity_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[8] = was_any ? new NG__GMM__Cap_template(ANY_OR_OMIT) : new NG__GMM__Cap_template; +single_value.value_elements[9] = was_any ? new NG__UE__SecurityCapability_template(ANY_OR_OMIT) : new NG__UE__SecurityCapability_template; +single_value.value_elements[10] = was_any ? new NSSAI_template(ANY_OR_OMIT) : new NSSAI_template; +single_value.value_elements[11] = was_any ? new NG__TrackingAreaId_template(ANY_OR_OMIT) : new NG__TrackingAreaId_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::UE__NetworkCap_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__NetworkCap_template; +single_value.value_elements[13] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[14] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[15] = was_any ? new MICO__Ind_template(ANY_OR_OMIT) : new MICO__Ind_template; +single_value.value_elements[16] = was_any ? new NAS__CommonTypeDefs::UE__Status_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__Status_template; +single_value.value_elements[17] = was_any ? new NG__MobileIdentity_template(ANY_OR_OMIT) : new NG__MobileIdentity_template; +single_value.value_elements[18] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[19] = was_any ? new UE__UsageSetting_template(ANY_OR_OMIT) : new UE__UsageSetting_template; +single_value.value_elements[20] = was_any ? new NAS__CommonTypeDefs::DRXParamCommon_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXParamCommon_template; +single_value.value_elements[21] = was_any ? new EPS__MessageContainer_template(ANY_OR_OMIT) : new EPS__MessageContainer_template; +single_value.value_elements[22] = was_any ? new LADN__Ind_template(ANY_OR_OMIT) : new LADN__Ind_template; +single_value.value_elements[23] = was_any ? new PayloadContainerType_template(ANY_OR_OMIT) : new PayloadContainerType_template; +single_value.value_elements[24] = was_any ? new PayloadContainer_template(ANY_OR_OMIT) : new PayloadContainer_template; +single_value.value_elements[25] = was_any ? new NetworkSlicingInd_template(ANY_OR_OMIT) : new NetworkSlicingInd_template; +single_value.value_elements[26] = was_any ? new NG__UpdateType_template(ANY_OR_OMIT) : new NG__UpdateType_template; +single_value.value_elements[27] = was_any ? new NAS__CommonTypeDefs::MS__Clsmk2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::MS__Clsmk2_template; +single_value.value_elements[28] = was_any ? new NAS__CommonTypeDefs::CodecList_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::CodecList_template; +single_value.value_elements[29] = was_any ? new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template; +single_value.value_elements[30] = was_any ? new NAS__CommonTypeDefs::EPS__BearerContextStatus_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__BearerContextStatus_template; +single_value.value_elements[31] = was_any ? new NAS__CommonTypeDefs::ExtdDRXParams_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdDRXParams_template; +single_value.value_elements[32] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[33] = was_any ? new NAS__CommonTypeDefs::UERadioCapId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapId_template; +single_value.value_elements[34] = was_any ? new MappedNSSAI_template(ANY_OR_OMIT) : new MappedNSSAI_template; +single_value.value_elements[35] = was_any ? new AddInfoRequest_template(ANY_OR_OMIT) : new AddInfoRequest_template; +single_value.value_elements[36] = was_any ? new NAS__CommonTypeDefs::WUSAssistInfo_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WUSAssistInfo_template; +single_value.value_elements[37] = was_any ? new N5GCInd_template(ANY_OR_OMIT) : new N5GCInd_template; +single_value.value_elements[38] = was_any ? new NAS__CommonTypeDefs::DRXParamCommon_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXParamCommon_template; +single_value.value_elements[39] = was_any ? new NAS__CommonTypeDefs::UE__RequestType_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__RequestType_template; +single_value.value_elements[40] = was_any ? new NG__PagingRestriction_template(ANY_OR_OMIT) : new NG__PagingRestriction_template; +single_value.value_elements[41] = was_any ? new ServiceLvlAAContainer_template(ANY_OR_OMIT) : new ServiceLvlAAContainer_template; +single_value.value_elements[42] = was_any ? new NID_template(ANY_OR_OMIT) : new NID_template; +single_value.value_elements[43] = was_any ? new NAS__CommonTypeDefs::PLMN__IdIE_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::PLMN__IdIE_template; +single_value.value_elements[44] = was_any ? new PEIPS__AssistInfo_template(ANY_OR_OMIT) : new PEIPS__AssistInfo_template; +single_value.value_elements[45] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +} +} + +NG__REGISTRATION__REQUEST_template::NG__REGISTRATION__REQUEST_template(NG__REGISTRATION__REQUEST_template* p_precondition, NG__REGISTRATION__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__REGISTRATION__REQUEST_template::NG__REGISTRATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__REGISTRATION__REQUEST_template::~NG__REGISTRATION__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__REGISTRATION__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__REGISTRATION__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__REGISTRATION__REQUEST_template& NG__REGISTRATION__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__REGISTRATION__REQUEST_template& NG__REGISTRATION__REQUEST_template::operator=(const NG__REGISTRATION__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__REGISTRATION__REQUEST_template& NG__REGISTRATION__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__REGISTRATION__REQUEST_template& NG__REGISTRATION__REQUEST_template::operator=(const NG__REGISTRATION__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__REGISTRATION__REQUEST NG__REGISTRATION__REQUEST_template::valueof() const +{ +NG__REGISTRATION__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__REGISTRATION__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__REGISTRATION__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__REGISTRATION__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__REGISTRATION__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__REGISTRATION__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__REGISTRATION__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__REGISTRATION__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__REGISTRATION__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__REGISTRATION__REQUEST_template::ngNasKSI() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__REGISTRATION__REQUEST_template::ngNasKSI() const { return *(static_cast(get_at(4))); } +RegistrationType_template& NG__REGISTRATION__REQUEST_template::registrationType() { return *(static_cast(get_at(5))); } +const RegistrationType_template& NG__REGISTRATION__REQUEST_template::registrationType() const { return *(static_cast(get_at(5))); } +NG__MobileIdentity_template& NG__REGISTRATION__REQUEST_template::ngMobileId() { return *(static_cast(get_at(6))); } +const NG__MobileIdentity_template& NG__REGISTRATION__REQUEST_template::ngMobileId() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__REGISTRATION__REQUEST_template::nonCurrentNativeKSI() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__REGISTRATION__REQUEST_template::nonCurrentNativeKSI() const { return *(static_cast(get_at(7))); } +NG__GMM__Cap_template& NG__REGISTRATION__REQUEST_template::gmmCapability() { return *(static_cast(get_at(8))); } +const NG__GMM__Cap_template& NG__REGISTRATION__REQUEST_template::gmmCapability() const { return *(static_cast(get_at(8))); } +NG__UE__SecurityCapability_template& NG__REGISTRATION__REQUEST_template::ueSecurityCapability() { return *(static_cast(get_at(9))); } +const NG__UE__SecurityCapability_template& NG__REGISTRATION__REQUEST_template::ueSecurityCapability() const { return *(static_cast(get_at(9))); } +NSSAI_template& NG__REGISTRATION__REQUEST_template::requestedNSSAI() { return *(static_cast(get_at(10))); } +const NSSAI_template& NG__REGISTRATION__REQUEST_template::requestedNSSAI() const { return *(static_cast(get_at(10))); } +NG__TrackingAreaId_template& NG__REGISTRATION__REQUEST_template::lastVisitedRegisteredTai() { return *(static_cast(get_at(11))); } +const NG__TrackingAreaId_template& NG__REGISTRATION__REQUEST_template::lastVisitedRegisteredTai() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::UE__NetworkCap_template& NG__REGISTRATION__REQUEST_template::s1__UE__Capability() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::UE__NetworkCap_template& NG__REGISTRATION__REQUEST_template::s1__UE__Capability() const { return *(static_cast(get_at(12))); } +PDU__SessionStatus_template& NG__REGISTRATION__REQUEST_template::ulDataStatus() { return *(static_cast(get_at(13))); } +const PDU__SessionStatus_template& NG__REGISTRATION__REQUEST_template::ulDataStatus() const { return *(static_cast(get_at(13))); } +PDU__SessionStatus_template& NG__REGISTRATION__REQUEST_template::pduSessionStatus() { return *(static_cast(get_at(14))); } +const PDU__SessionStatus_template& NG__REGISTRATION__REQUEST_template::pduSessionStatus() const { return *(static_cast(get_at(14))); } +MICO__Ind_template& NG__REGISTRATION__REQUEST_template::micoInd() { return *(static_cast(get_at(15))); } +const MICO__Ind_template& NG__REGISTRATION__REQUEST_template::micoInd() const { return *(static_cast(get_at(15))); } +NAS__CommonTypeDefs::UE__Status_template& NG__REGISTRATION__REQUEST_template::ueStatus() { return *(static_cast(get_at(16))); } +const NAS__CommonTypeDefs::UE__Status_template& NG__REGISTRATION__REQUEST_template::ueStatus() const { return *(static_cast(get_at(16))); } +NG__MobileIdentity_template& NG__REGISTRATION__REQUEST_template::additionalGUTI() { return *(static_cast(get_at(17))); } +const NG__MobileIdentity_template& NG__REGISTRATION__REQUEST_template::additionalGUTI() const { return *(static_cast(get_at(17))); } +PDU__SessionStatus_template& NG__REGISTRATION__REQUEST_template::allowedPDUSessionStatus() { return *(static_cast(get_at(18))); } +const PDU__SessionStatus_template& NG__REGISTRATION__REQUEST_template::allowedPDUSessionStatus() const { return *(static_cast(get_at(18))); } +UE__UsageSetting_template& NG__REGISTRATION__REQUEST_template::ueUsageSetting() { return *(static_cast(get_at(19))); } +const UE__UsageSetting_template& NG__REGISTRATION__REQUEST_template::ueUsageSetting() const { return *(static_cast(get_at(19))); } +NAS__CommonTypeDefs::DRXParamCommon_template& NG__REGISTRATION__REQUEST_template::reqDRXParams() { return *(static_cast(get_at(20))); } +const NAS__CommonTypeDefs::DRXParamCommon_template& NG__REGISTRATION__REQUEST_template::reqDRXParams() const { return *(static_cast(get_at(20))); } +EPS__MessageContainer_template& NG__REGISTRATION__REQUEST_template::epsMessage() { return *(static_cast(get_at(21))); } +const EPS__MessageContainer_template& NG__REGISTRATION__REQUEST_template::epsMessage() const { return *(static_cast(get_at(21))); } +LADN__Ind_template& NG__REGISTRATION__REQUEST_template::ladnInd() { return *(static_cast(get_at(22))); } +const LADN__Ind_template& NG__REGISTRATION__REQUEST_template::ladnInd() const { return *(static_cast(get_at(22))); } +PayloadContainerType_template& NG__REGISTRATION__REQUEST_template::payloadContainerType() { return *(static_cast(get_at(23))); } +const PayloadContainerType_template& NG__REGISTRATION__REQUEST_template::payloadContainerType() const { return *(static_cast(get_at(23))); } +PayloadContainer_template& NG__REGISTRATION__REQUEST_template::payload() { return *(static_cast(get_at(24))); } +const PayloadContainer_template& NG__REGISTRATION__REQUEST_template::payload() const { return *(static_cast(get_at(24))); } +NetworkSlicingInd_template& NG__REGISTRATION__REQUEST_template::networkSlicingInd() { return *(static_cast(get_at(25))); } +const NetworkSlicingInd_template& NG__REGISTRATION__REQUEST_template::networkSlicingInd() const { return *(static_cast(get_at(25))); } +NG__UpdateType_template& NG__REGISTRATION__REQUEST_template::updateType() { return *(static_cast(get_at(26))); } +const NG__UpdateType_template& NG__REGISTRATION__REQUEST_template::updateType() const { return *(static_cast(get_at(26))); } +NAS__CommonTypeDefs::MS__Clsmk2_template& NG__REGISTRATION__REQUEST_template::msClassmark2() { return *(static_cast(get_at(27))); } +const NAS__CommonTypeDefs::MS__Clsmk2_template& NG__REGISTRATION__REQUEST_template::msClassmark2() const { return *(static_cast(get_at(27))); } +NAS__CommonTypeDefs::CodecList_template& NG__REGISTRATION__REQUEST_template::supportedCodecs() { return *(static_cast(get_at(28))); } +const NAS__CommonTypeDefs::CodecList_template& NG__REGISTRATION__REQUEST_template::supportedCodecs() const { return *(static_cast(get_at(28))); } +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& NG__REGISTRATION__REQUEST_template::nasMsg() { return *(static_cast(get_at(29))); } +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& NG__REGISTRATION__REQUEST_template::nasMsg() const { return *(static_cast(get_at(29))); } +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& NG__REGISTRATION__REQUEST_template::epsBearerContextStatus() { return *(static_cast(get_at(30))); } +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& NG__REGISTRATION__REQUEST_template::epsBearerContextStatus() const { return *(static_cast(get_at(30))); } +NAS__CommonTypeDefs::ExtdDRXParams_template& NG__REGISTRATION__REQUEST_template::requestedExtdDRXParams() { return *(static_cast(get_at(31))); } +const NAS__CommonTypeDefs::ExtdDRXParams_template& NG__REGISTRATION__REQUEST_template::requestedExtdDRXParams() const { return *(static_cast(get_at(31))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REQUEST_template::t3324Value() { return *(static_cast(get_at(32))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REQUEST_template::t3324Value() const { return *(static_cast(get_at(32))); } +NAS__CommonTypeDefs::UERadioCapId_template& NG__REGISTRATION__REQUEST_template::ueRadioCapabilityId() { return *(static_cast(get_at(33))); } +const NAS__CommonTypeDefs::UERadioCapId_template& NG__REGISTRATION__REQUEST_template::ueRadioCapabilityId() const { return *(static_cast(get_at(33))); } +MappedNSSAI_template& NG__REGISTRATION__REQUEST_template::requestedMappedNSSAI() { return *(static_cast(get_at(34))); } +const MappedNSSAI_template& NG__REGISTRATION__REQUEST_template::requestedMappedNSSAI() const { return *(static_cast(get_at(34))); } +AddInfoRequest_template& NG__REGISTRATION__REQUEST_template::additionalInfoReq() { return *(static_cast(get_at(35))); } +const AddInfoRequest_template& NG__REGISTRATION__REQUEST_template::additionalInfoReq() const { return *(static_cast(get_at(35))); } +NAS__CommonTypeDefs::WUSAssistInfo_template& NG__REGISTRATION__REQUEST_template::requestedWUSAssistanceInfo() { return *(static_cast(get_at(36))); } +const NAS__CommonTypeDefs::WUSAssistInfo_template& NG__REGISTRATION__REQUEST_template::requestedWUSAssistanceInfo() const { return *(static_cast(get_at(36))); } +N5GCInd_template& NG__REGISTRATION__REQUEST_template::n5GCInd() { return *(static_cast(get_at(37))); } +const N5GCInd_template& NG__REGISTRATION__REQUEST_template::n5GCInd() const { return *(static_cast(get_at(37))); } +NAS__CommonTypeDefs::DRXParamCommon_template& NG__REGISTRATION__REQUEST_template::requestedNB__N1DRXParams() { return *(static_cast(get_at(38))); } +const NAS__CommonTypeDefs::DRXParamCommon_template& NG__REGISTRATION__REQUEST_template::requestedNB__N1DRXParams() const { return *(static_cast(get_at(38))); } +NAS__CommonTypeDefs::UE__RequestType_template& NG__REGISTRATION__REQUEST_template::ueRequestType() { return *(static_cast(get_at(39))); } +const NAS__CommonTypeDefs::UE__RequestType_template& NG__REGISTRATION__REQUEST_template::ueRequestType() const { return *(static_cast(get_at(39))); } +NG__PagingRestriction_template& NG__REGISTRATION__REQUEST_template::pagingRestrict() { return *(static_cast(get_at(40))); } +const NG__PagingRestriction_template& NG__REGISTRATION__REQUEST_template::pagingRestrict() const { return *(static_cast(get_at(40))); } +ServiceLvlAAContainer_template& NG__REGISTRATION__REQUEST_template::serviceLvlAA() { return *(static_cast(get_at(41))); } +const ServiceLvlAAContainer_template& NG__REGISTRATION__REQUEST_template::serviceLvlAA() const { return *(static_cast(get_at(41))); } +NID_template& NG__REGISTRATION__REQUEST_template::nId() { return *(static_cast(get_at(42))); } +const NID_template& NG__REGISTRATION__REQUEST_template::nId() const { return *(static_cast(get_at(42))); } +NAS__CommonTypeDefs::PLMN__IdIE_template& NG__REGISTRATION__REQUEST_template::msPLMNwDisasterCondition() { return *(static_cast(get_at(43))); } +const NAS__CommonTypeDefs::PLMN__IdIE_template& NG__REGISTRATION__REQUEST_template::msPLMNwDisasterCondition() const { return *(static_cast(get_at(43))); } +PEIPS__AssistInfo_template& NG__REGISTRATION__REQUEST_template::requestedPEIPS__AssistInfo() { return *(static_cast(get_at(44))); } +const PEIPS__AssistInfo_template& NG__REGISTRATION__REQUEST_template::requestedPEIPS__AssistInfo() const { return *(static_cast(get_at(44))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REQUEST_template::t3512Value() { return *(static_cast(get_at(45))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REQUEST_template::t3512Value() const { return *(static_cast(get_at(45))); } +const TTCN_Typedescriptor_t* NG__REGISTRATION__REQUEST_template::get_descriptor() const { return &NG__REGISTRATION__REQUEST_descr_; } +const char* NG__REGISTRATION__REQUEST_template::fld_name(int p_index) const { return NG__REGISTRATION__REQUEST::fld_names[p_index]; } +void NG__GMM__Cap::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_sgc; fld_vec[3]=&field_ngIPHC__CP__CIoT; fld_vec[4]=&field_n3Data; fld_vec[5]=&field_ng__CP__CIoT; fld_vec[6]=&field_restrictEC; fld_vec[7]=&field_lpp; fld_vec[8]=&field_hoAttach; fld_vec[9]=&field_s1Cap; fld_vec[10]=&field_racs; fld_vec[11]=&field_nssaa; fld_vec[12]=&field_ngLCS; fld_vec[13]=&field_v2xNPC5; fld_vec[14]=&field_v2xEPC5; fld_vec[15]=&field_v2x; fld_vec[16]=&field_ng__UP__CIoT; fld_vec[17]=&field_ngSRVCC; fld_vec[18]=&field_ngProSeL2relay; fld_vec[19]=&field_ngProSe__dc; fld_vec[20]=&field_ngProSe__dd; fld_vec[21]=&field_erNSSAI; fld_vec[22]=&field_ngEHC__CP__CIoT; fld_vec[23]=&field_multipleUP; fld_vec[24]=&field_wusa; fld_vec[25]=&field_cag; fld_vec[26]=&field_pr; fld_vec[27]=&field_rpr; fld_vec[28]=&field_piv; fld_vec[29]=&field_ncr; fld_vec[30]=&field_nrPSSI; fld_vec[31]=&field_ngProSeL3rmt; fld_vec[32]=&field_ngProSeL2rmt; fld_vec[33]=&field_ngProSeL3relay; fld_vec[34]=&field_mpsiu; fld_vec[35]=&field_uas; fld_vec[36]=&field_nsag; fld_vec[37]=&field_exCAG; fld_vec[38]=&field_ssnpnsi; fld_vec[39]=&field_eventNotification; fld_vec[40]=&field_mint; fld_vec[41]=&field_nssrg; fld_vec[42]=&field_spareBits; fld_vec[43]=&field_rcman; fld_vec[44]=&field_rcmap; fld_vec[45]=&field_spare; } + +NG__GMM__Cap::NG__GMM__Cap() : Record_Type() { init_vec(); } + +NG__GMM__Cap::NG__GMM__Cap(const NG__GMM__Cap& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_sgc.is_bound() ) + field_sgc = other_value.field_sgc; +if (other_value.field_ngIPHC__CP__CIoT.is_bound() ) + field_ngIPHC__CP__CIoT = other_value.field_ngIPHC__CP__CIoT; +if (other_value.field_n3Data.is_bound() ) + field_n3Data = other_value.field_n3Data; +if (other_value.field_ng__CP__CIoT.is_bound() ) + field_ng__CP__CIoT = other_value.field_ng__CP__CIoT; +if (other_value.field_restrictEC.is_bound() ) + field_restrictEC = other_value.field_restrictEC; +if (other_value.field_lpp.is_bound() ) + field_lpp = other_value.field_lpp; +if (other_value.field_hoAttach.is_bound() ) + field_hoAttach = other_value.field_hoAttach; +if (other_value.field_s1Cap.is_bound() ) + field_s1Cap = other_value.field_s1Cap; +if (other_value.field_racs.is_bound() ) + field_racs = other_value.field_racs; +if (other_value.field_nssaa.is_bound() ) + field_nssaa = other_value.field_nssaa; +if (other_value.field_ngLCS.is_bound() ) + field_ngLCS = other_value.field_ngLCS; +if (other_value.field_v2xNPC5.is_bound() ) + field_v2xNPC5 = other_value.field_v2xNPC5; +if (other_value.field_v2xEPC5.is_bound() ) + field_v2xEPC5 = other_value.field_v2xEPC5; +if (other_value.field_v2x.is_bound() ) + field_v2x = other_value.field_v2x; +if (other_value.field_ng__UP__CIoT.is_bound() ) + field_ng__UP__CIoT = other_value.field_ng__UP__CIoT; +if (other_value.field_ngSRVCC.is_bound() ) + field_ngSRVCC = other_value.field_ngSRVCC; +if (other_value.field_ngProSeL2relay.is_bound() ) + field_ngProSeL2relay = other_value.field_ngProSeL2relay; +if (other_value.field_ngProSe__dc.is_bound() ) + field_ngProSe__dc = other_value.field_ngProSe__dc; +if (other_value.field_ngProSe__dd.is_bound() ) + field_ngProSe__dd = other_value.field_ngProSe__dd; +if (other_value.field_erNSSAI.is_bound() ) + field_erNSSAI = other_value.field_erNSSAI; +if (other_value.field_ngEHC__CP__CIoT.is_bound() ) + field_ngEHC__CP__CIoT = other_value.field_ngEHC__CP__CIoT; +if (other_value.field_multipleUP.is_bound() ) + field_multipleUP = other_value.field_multipleUP; +if (other_value.field_wusa.is_bound() ) + field_wusa = other_value.field_wusa; +if (other_value.field_cag.is_bound() ) + field_cag = other_value.field_cag; +if (other_value.field_pr.is_bound() ) + field_pr = other_value.field_pr; +if (other_value.field_rpr.is_bound() ) + field_rpr = other_value.field_rpr; +if (other_value.field_piv.is_bound() ) + field_piv = other_value.field_piv; +if (other_value.field_ncr.is_bound() ) + field_ncr = other_value.field_ncr; +if (other_value.field_nrPSSI.is_bound() ) + field_nrPSSI = other_value.field_nrPSSI; +if (other_value.field_ngProSeL3rmt.is_bound() ) + field_ngProSeL3rmt = other_value.field_ngProSeL3rmt; +if (other_value.field_ngProSeL2rmt.is_bound() ) + field_ngProSeL2rmt = other_value.field_ngProSeL2rmt; +if (other_value.field_ngProSeL3relay.is_bound() ) + field_ngProSeL3relay = other_value.field_ngProSeL3relay; +if (other_value.field_mpsiu.is_bound() ) + field_mpsiu = other_value.field_mpsiu; +if (other_value.field_uas.is_bound() ) + field_uas = other_value.field_uas; +if (other_value.field_nsag.is_bound() ) + field_nsag = other_value.field_nsag; +if (other_value.field_exCAG.is_bound() ) + field_exCAG = other_value.field_exCAG; +if (other_value.field_ssnpnsi.is_bound() ) + field_ssnpnsi = other_value.field_ssnpnsi; +if (other_value.field_eventNotification.is_bound() ) + field_eventNotification = other_value.field_eventNotification; +if (other_value.field_mint.is_bound() ) + field_mint = other_value.field_mint; +if (other_value.field_nssrg.is_bound() ) + field_nssrg = other_value.field_nssrg; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_rcman.is_bound() ) + field_rcman = other_value.field_rcman; +if (other_value.field_rcmap.is_bound() ) + field_rcmap = other_value.field_rcmap; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +init_vec(); +} + +NG__GMM__Cap::NG__GMM__Cap(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_sgc, + const BITSTRING& par_ngIPHC__CP__CIoT, + const BITSTRING& par_n3Data, + const BITSTRING& par_ng__CP__CIoT, + const BITSTRING& par_restrictEC, + const BITSTRING& par_lpp, + const BITSTRING& par_hoAttach, + const BITSTRING& par_s1Cap, + const OPTIONAL& par_racs, + const OPTIONAL& par_nssaa, + const OPTIONAL& par_ngLCS, + const OPTIONAL& par_v2xNPC5, + const OPTIONAL& par_v2xEPC5, + const OPTIONAL& par_v2x, + const OPTIONAL& par_ng__UP__CIoT, + const OPTIONAL& par_ngSRVCC, + const OPTIONAL& par_ngProSeL2relay, + const OPTIONAL& par_ngProSe__dc, + const OPTIONAL& par_ngProSe__dd, + const OPTIONAL& par_erNSSAI, + const OPTIONAL& par_ngEHC__CP__CIoT, + const OPTIONAL& par_multipleUP, + const OPTIONAL& par_wusa, + const OPTIONAL& par_cag, + const OPTIONAL& par_pr, + const OPTIONAL& par_rpr, + const OPTIONAL& par_piv, + const OPTIONAL& par_ncr, + const OPTIONAL& par_nrPSSI, + const OPTIONAL& par_ngProSeL3rmt, + const OPTIONAL& par_ngProSeL2rmt, + const OPTIONAL& par_ngProSeL3relay, + const OPTIONAL& par_mpsiu, + const OPTIONAL& par_uas, + const OPTIONAL& par_nsag, + const OPTIONAL& par_exCAG, + const OPTIONAL& par_ssnpnsi, + const OPTIONAL& par_eventNotification, + const OPTIONAL& par_mint, + const OPTIONAL& par_nssrg, + const OPTIONAL& par_spareBits, + const OPTIONAL& par_rcman, + const OPTIONAL& par_rcmap, + const OPTIONAL& par_spare) : field_iei(par_iei), + field_iel(par_iel), + field_sgc(par_sgc), + field_ngIPHC__CP__CIoT(par_ngIPHC__CP__CIoT), + field_n3Data(par_n3Data), + field_ng__CP__CIoT(par_ng__CP__CIoT), + field_restrictEC(par_restrictEC), + field_lpp(par_lpp), + field_hoAttach(par_hoAttach), + field_s1Cap(par_s1Cap), + field_racs(par_racs), + field_nssaa(par_nssaa), + field_ngLCS(par_ngLCS), + field_v2xNPC5(par_v2xNPC5), + field_v2xEPC5(par_v2xEPC5), + field_v2x(par_v2x), + field_ng__UP__CIoT(par_ng__UP__CIoT), + field_ngSRVCC(par_ngSRVCC), + field_ngProSeL2relay(par_ngProSeL2relay), + field_ngProSe__dc(par_ngProSe__dc), + field_ngProSe__dd(par_ngProSe__dd), + field_erNSSAI(par_erNSSAI), + field_ngEHC__CP__CIoT(par_ngEHC__CP__CIoT), + field_multipleUP(par_multipleUP), + field_wusa(par_wusa), + field_cag(par_cag), + field_pr(par_pr), + field_rpr(par_rpr), + field_piv(par_piv), + field_ncr(par_ncr), + field_nrPSSI(par_nrPSSI), + field_ngProSeL3rmt(par_ngProSeL3rmt), + field_ngProSeL2rmt(par_ngProSeL2rmt), + field_ngProSeL3relay(par_ngProSeL3relay), + field_mpsiu(par_mpsiu), + field_uas(par_uas), + field_nsag(par_nsag), + field_exCAG(par_exCAG), + field_ssnpnsi(par_ssnpnsi), + field_eventNotification(par_eventNotification), + field_mint(par_mint), + field_nssrg(par_nssrg), + field_spareBits(par_spareBits), + field_rcman(par_rcman), + field_rcmap(par_rcmap), + field_spare(par_spare) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__GMM__Cap::get_descriptor() const { return &NG__GMM__Cap_descr_; } +const TTCN_Typedescriptor_t* NG__GMM__Cap::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NG__GMM__Cap::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__GMM__Cap::fld_names[] = { "iei", "iel", "sgc", "ngIPHC_CP_CIoT", "n3Data", "ng_CP_CIoT", "restrictEC", "lpp", "hoAttach", "s1Cap", "racs", "nssaa", "ngLCS", "v2xNPC5", "v2xEPC5", "v2x", "ng_UP_CIoT", "ngSRVCC", "ngProSeL2relay", "ngProSe_dc", "ngProSe_dd", "erNSSAI", "ngEHC_CP_CIoT", "multipleUP", "wusa", "cag", "pr", "rpr", "piv", "ncr", "nrPSSI", "ngProSeL3rmt", "ngProSeL2rmt", "ngProSeL3relay", "mpsiu", "uas", "nsag", "exCAG", "ssnpnsi", "eventNotification", "mint", "nssrg", "spareBits", "rcman", "rcmap", "spare" }; +const char* NG__GMM__Cap::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__GMM__Cap::optional_indexes[] = { 0, 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1 }; +const int* NG__GMM__Cap::get_optional_indexes() const { return optional_indexes; } + +const int NG__GMM__Cap::optional_indexes_asn[] = { 0, 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1 }; +const int* NG__GMM__Cap::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__GMM__Cap_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 46; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[12] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[13] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[14] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[15] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[16] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[17] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[18] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[19] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[20] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[21] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[22] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[23] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[24] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[25] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[26] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[27] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[28] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[29] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[30] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[31] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[32] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[33] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[34] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[35] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[36] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[37] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[38] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[39] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[40] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[41] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[42] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[43] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[44] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[45] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +NG__GMM__Cap_template::NG__GMM__Cap_template(NG__GMM__Cap_template* p_precondition, NG__GMM__Cap_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__GMM__Cap_template::NG__GMM__Cap_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__GMM__Cap_template::~NG__GMM__Cap_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__GMM__Cap_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__GMM__Cap* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__GMM__Cap_template& NG__GMM__Cap_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__GMM__Cap_template& NG__GMM__Cap_template::operator=(const NG__GMM__Cap& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__GMM__Cap_template& NG__GMM__Cap_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__GMM__Cap_template& NG__GMM__Cap_template::operator=(const NG__GMM__Cap_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__GMM__Cap NG__GMM__Cap_template::valueof() const +{ +NG__GMM__Cap ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__GMM__Cap_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__GMM__Cap_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__GMM__Cap_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__GMM__Cap_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__GMM__Cap_template::sgc() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__GMM__Cap_template::sgc() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__GMM__Cap_template::ngIPHC__CP__CIoT() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__GMM__Cap_template::ngIPHC__CP__CIoT() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NG__GMM__Cap_template::n3Data() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NG__GMM__Cap_template::n3Data() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NG__GMM__Cap_template::ng__CP__CIoT() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NG__GMM__Cap_template::ng__CP__CIoT() const { return *(static_cast(get_at(5))); } +BITSTRING_template& NG__GMM__Cap_template::restrictEC() { return *(static_cast(get_at(6))); } +const BITSTRING_template& NG__GMM__Cap_template::restrictEC() const { return *(static_cast(get_at(6))); } +BITSTRING_template& NG__GMM__Cap_template::lpp() { return *(static_cast(get_at(7))); } +const BITSTRING_template& NG__GMM__Cap_template::lpp() const { return *(static_cast(get_at(7))); } +BITSTRING_template& NG__GMM__Cap_template::hoAttach() { return *(static_cast(get_at(8))); } +const BITSTRING_template& NG__GMM__Cap_template::hoAttach() const { return *(static_cast(get_at(8))); } +BITSTRING_template& NG__GMM__Cap_template::s1Cap() { return *(static_cast(get_at(9))); } +const BITSTRING_template& NG__GMM__Cap_template::s1Cap() const { return *(static_cast(get_at(9))); } +BITSTRING_template& NG__GMM__Cap_template::racs() { return *(static_cast(get_at(10))); } +const BITSTRING_template& NG__GMM__Cap_template::racs() const { return *(static_cast(get_at(10))); } +BITSTRING_template& NG__GMM__Cap_template::nssaa() { return *(static_cast(get_at(11))); } +const BITSTRING_template& NG__GMM__Cap_template::nssaa() const { return *(static_cast(get_at(11))); } +BITSTRING_template& NG__GMM__Cap_template::ngLCS() { return *(static_cast(get_at(12))); } +const BITSTRING_template& NG__GMM__Cap_template::ngLCS() const { return *(static_cast(get_at(12))); } +BITSTRING_template& NG__GMM__Cap_template::v2xNPC5() { return *(static_cast(get_at(13))); } +const BITSTRING_template& NG__GMM__Cap_template::v2xNPC5() const { return *(static_cast(get_at(13))); } +BITSTRING_template& NG__GMM__Cap_template::v2xEPC5() { return *(static_cast(get_at(14))); } +const BITSTRING_template& NG__GMM__Cap_template::v2xEPC5() const { return *(static_cast(get_at(14))); } +BITSTRING_template& NG__GMM__Cap_template::v2x() { return *(static_cast(get_at(15))); } +const BITSTRING_template& NG__GMM__Cap_template::v2x() const { return *(static_cast(get_at(15))); } +BITSTRING_template& NG__GMM__Cap_template::ng__UP__CIoT() { return *(static_cast(get_at(16))); } +const BITSTRING_template& NG__GMM__Cap_template::ng__UP__CIoT() const { return *(static_cast(get_at(16))); } +BITSTRING_template& NG__GMM__Cap_template::ngSRVCC() { return *(static_cast(get_at(17))); } +const BITSTRING_template& NG__GMM__Cap_template::ngSRVCC() const { return *(static_cast(get_at(17))); } +BITSTRING_template& NG__GMM__Cap_template::ngProSeL2relay() { return *(static_cast(get_at(18))); } +const BITSTRING_template& NG__GMM__Cap_template::ngProSeL2relay() const { return *(static_cast(get_at(18))); } +BITSTRING_template& NG__GMM__Cap_template::ngProSe__dc() { return *(static_cast(get_at(19))); } +const BITSTRING_template& NG__GMM__Cap_template::ngProSe__dc() const { return *(static_cast(get_at(19))); } +BITSTRING_template& NG__GMM__Cap_template::ngProSe__dd() { return *(static_cast(get_at(20))); } +const BITSTRING_template& NG__GMM__Cap_template::ngProSe__dd() const { return *(static_cast(get_at(20))); } +BITSTRING_template& NG__GMM__Cap_template::erNSSAI() { return *(static_cast(get_at(21))); } +const BITSTRING_template& NG__GMM__Cap_template::erNSSAI() const { return *(static_cast(get_at(21))); } +BITSTRING_template& NG__GMM__Cap_template::ngEHC__CP__CIoT() { return *(static_cast(get_at(22))); } +const BITSTRING_template& NG__GMM__Cap_template::ngEHC__CP__CIoT() const { return *(static_cast(get_at(22))); } +BITSTRING_template& NG__GMM__Cap_template::multipleUP() { return *(static_cast(get_at(23))); } +const BITSTRING_template& NG__GMM__Cap_template::multipleUP() const { return *(static_cast(get_at(23))); } +BITSTRING_template& NG__GMM__Cap_template::wusa() { return *(static_cast(get_at(24))); } +const BITSTRING_template& NG__GMM__Cap_template::wusa() const { return *(static_cast(get_at(24))); } +BITSTRING_template& NG__GMM__Cap_template::cag() { return *(static_cast(get_at(25))); } +const BITSTRING_template& NG__GMM__Cap_template::cag() const { return *(static_cast(get_at(25))); } +BITSTRING_template& NG__GMM__Cap_template::pr() { return *(static_cast(get_at(26))); } +const BITSTRING_template& NG__GMM__Cap_template::pr() const { return *(static_cast(get_at(26))); } +BITSTRING_template& NG__GMM__Cap_template::rpr() { return *(static_cast(get_at(27))); } +const BITSTRING_template& NG__GMM__Cap_template::rpr() const { return *(static_cast(get_at(27))); } +BITSTRING_template& NG__GMM__Cap_template::piv() { return *(static_cast(get_at(28))); } +const BITSTRING_template& NG__GMM__Cap_template::piv() const { return *(static_cast(get_at(28))); } +BITSTRING_template& NG__GMM__Cap_template::ncr() { return *(static_cast(get_at(29))); } +const BITSTRING_template& NG__GMM__Cap_template::ncr() const { return *(static_cast(get_at(29))); } +BITSTRING_template& NG__GMM__Cap_template::nrPSSI() { return *(static_cast(get_at(30))); } +const BITSTRING_template& NG__GMM__Cap_template::nrPSSI() const { return *(static_cast(get_at(30))); } +BITSTRING_template& NG__GMM__Cap_template::ngProSeL3rmt() { return *(static_cast(get_at(31))); } +const BITSTRING_template& NG__GMM__Cap_template::ngProSeL3rmt() const { return *(static_cast(get_at(31))); } +BITSTRING_template& NG__GMM__Cap_template::ngProSeL2rmt() { return *(static_cast(get_at(32))); } +const BITSTRING_template& NG__GMM__Cap_template::ngProSeL2rmt() const { return *(static_cast(get_at(32))); } +BITSTRING_template& NG__GMM__Cap_template::ngProSeL3relay() { return *(static_cast(get_at(33))); } +const BITSTRING_template& NG__GMM__Cap_template::ngProSeL3relay() const { return *(static_cast(get_at(33))); } +BITSTRING_template& NG__GMM__Cap_template::mpsiu() { return *(static_cast(get_at(34))); } +const BITSTRING_template& NG__GMM__Cap_template::mpsiu() const { return *(static_cast(get_at(34))); } +BITSTRING_template& NG__GMM__Cap_template::uas() { return *(static_cast(get_at(35))); } +const BITSTRING_template& NG__GMM__Cap_template::uas() const { return *(static_cast(get_at(35))); } +BITSTRING_template& NG__GMM__Cap_template::nsag() { return *(static_cast(get_at(36))); } +const BITSTRING_template& NG__GMM__Cap_template::nsag() const { return *(static_cast(get_at(36))); } +BITSTRING_template& NG__GMM__Cap_template::exCAG() { return *(static_cast(get_at(37))); } +const BITSTRING_template& NG__GMM__Cap_template::exCAG() const { return *(static_cast(get_at(37))); } +BITSTRING_template& NG__GMM__Cap_template::ssnpnsi() { return *(static_cast(get_at(38))); } +const BITSTRING_template& NG__GMM__Cap_template::ssnpnsi() const { return *(static_cast(get_at(38))); } +BITSTRING_template& NG__GMM__Cap_template::eventNotification() { return *(static_cast(get_at(39))); } +const BITSTRING_template& NG__GMM__Cap_template::eventNotification() const { return *(static_cast(get_at(39))); } +BITSTRING_template& NG__GMM__Cap_template::mint() { return *(static_cast(get_at(40))); } +const BITSTRING_template& NG__GMM__Cap_template::mint() const { return *(static_cast(get_at(40))); } +BITSTRING_template& NG__GMM__Cap_template::nssrg() { return *(static_cast(get_at(41))); } +const BITSTRING_template& NG__GMM__Cap_template::nssrg() const { return *(static_cast(get_at(41))); } +BITSTRING_template& NG__GMM__Cap_template::spareBits() { return *(static_cast(get_at(42))); } +const BITSTRING_template& NG__GMM__Cap_template::spareBits() const { return *(static_cast(get_at(42))); } +BITSTRING_template& NG__GMM__Cap_template::rcman() { return *(static_cast(get_at(43))); } +const BITSTRING_template& NG__GMM__Cap_template::rcman() const { return *(static_cast(get_at(43))); } +BITSTRING_template& NG__GMM__Cap_template::rcmap() { return *(static_cast(get_at(44))); } +const BITSTRING_template& NG__GMM__Cap_template::rcmap() const { return *(static_cast(get_at(44))); } +OCTETSTRING_template& NG__GMM__Cap_template::spare() { return *(static_cast(get_at(45))); } +const OCTETSTRING_template& NG__GMM__Cap_template::spare() const { return *(static_cast(get_at(45))); } +const TTCN_Typedescriptor_t* NG__GMM__Cap_template::get_descriptor() const { return &NG__GMM__Cap_descr_; } +const char* NG__GMM__Cap_template::fld_name(int p_index) const { return NG__GMM__Cap::fld_names[p_index]; } +void NG__UE__SecurityCapability::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_ngeaCap; fld_vec[3]=&field_ngiaCap; fld_vec[4]=&field_eeaCap; fld_vec[5]=&field_eiaCap; fld_vec[6]=&field_spare; } + +NG__UE__SecurityCapability::NG__UE__SecurityCapability() : Record_Type() { init_vec(); } + +NG__UE__SecurityCapability::NG__UE__SecurityCapability(const NG__UE__SecurityCapability& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_ngeaCap.is_bound() ) + field_ngeaCap = other_value.field_ngeaCap; +if (other_value.field_ngiaCap.is_bound() ) + field_ngiaCap = other_value.field_ngiaCap; +if (other_value.field_eeaCap.is_bound() ) + field_eeaCap = other_value.field_eeaCap; +if (other_value.field_eiaCap.is_bound() ) + field_eiaCap = other_value.field_eiaCap; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +init_vec(); +} + +NG__UE__SecurityCapability::NG__UE__SecurityCapability(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_ngeaCap, + const OCTETSTRING& par_ngiaCap, + const OPTIONAL& par_eeaCap, + const OPTIONAL& par_eiaCap, + const OPTIONAL& par_spare) : field_iei(par_iei), + field_iel(par_iel), + field_ngeaCap(par_ngeaCap), + field_ngiaCap(par_ngiaCap), + field_eeaCap(par_eeaCap), + field_eiaCap(par_eiaCap), + field_spare(par_spare) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__UE__SecurityCapability::get_descriptor() const { return &NG__UE__SecurityCapability_descr_; } +const TTCN_Typedescriptor_t* NG__UE__SecurityCapability::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NG__UE__SecurityCapability::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__UE__SecurityCapability::fld_names[] = { "iei", "iel", "ngeaCap", "ngiaCap", "eeaCap", "eiaCap", "spare" }; +const char* NG__UE__SecurityCapability::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__UE__SecurityCapability::optional_indexes[] = { 0, 4, 5, 6, -1 }; +const int* NG__UE__SecurityCapability::get_optional_indexes() const { return optional_indexes; } + +const int NG__UE__SecurityCapability::optional_indexes_asn[] = { 0, 4, 5, 6, -1 }; +const int* NG__UE__SecurityCapability::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__UE__SecurityCapability_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[6] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +NG__UE__SecurityCapability_template::NG__UE__SecurityCapability_template(NG__UE__SecurityCapability_template* p_precondition, NG__UE__SecurityCapability_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__UE__SecurityCapability_template::NG__UE__SecurityCapability_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__UE__SecurityCapability_template::~NG__UE__SecurityCapability_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__UE__SecurityCapability_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__UE__SecurityCapability* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__UE__SecurityCapability_template& NG__UE__SecurityCapability_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__UE__SecurityCapability_template& NG__UE__SecurityCapability_template::operator=(const NG__UE__SecurityCapability& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__UE__SecurityCapability_template& NG__UE__SecurityCapability_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__UE__SecurityCapability_template& NG__UE__SecurityCapability_template::operator=(const NG__UE__SecurityCapability_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__UE__SecurityCapability NG__UE__SecurityCapability_template::valueof() const +{ +NG__UE__SecurityCapability ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__UE__SecurityCapability_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__UE__SecurityCapability_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__UE__SecurityCapability_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__UE__SecurityCapability_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__UE__SecurityCapability_template::ngeaCap() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__UE__SecurityCapability_template::ngeaCap() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& NG__UE__SecurityCapability_template::ngiaCap() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& NG__UE__SecurityCapability_template::ngiaCap() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& NG__UE__SecurityCapability_template::eeaCap() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& NG__UE__SecurityCapability_template::eeaCap() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& NG__UE__SecurityCapability_template::eiaCap() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& NG__UE__SecurityCapability_template::eiaCap() const { return *(static_cast(get_at(5))); } +OCTETSTRING_template& NG__UE__SecurityCapability_template::spare() { return *(static_cast(get_at(6))); } +const OCTETSTRING_template& NG__UE__SecurityCapability_template::spare() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* NG__UE__SecurityCapability_template::get_descriptor() const { return &NG__UE__SecurityCapability_descr_; } +const char* NG__UE__SecurityCapability_template::fld_name(int p_index) const { return NG__UE__SecurityCapability::fld_names[p_index]; } + +const S__NSSAI__LV S__NSSAI__TypeList::UNBOUND_ELEM; +S__NSSAI__LV& S__NSSAI__TypeList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +S__NSSAI__LV& S__NSSAI__TypeList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const S__NSSAI__LV& S__NSSAI__TypeList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const S__NSSAI__LV& S__NSSAI__TypeList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +S__NSSAI__TypeList S__NSSAI__TypeList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +S__NSSAI__TypeList S__NSSAI__TypeList::operator<<=(const INTEGER& rotate_count) const +{ +S__NSSAI__TypeList rec_of; +return *((S__NSSAI__TypeList*)rotl(rotate_count, &rec_of)); +} + +S__NSSAI__TypeList S__NSSAI__TypeList::operator>>=(const INTEGER& rotate_count) const +{ +S__NSSAI__TypeList rec_of; +return *((S__NSSAI__TypeList*)rotr(rotate_count, &rec_of)); +} + +S__NSSAI__TypeList S__NSSAI__TypeList::operator>>=(int rotate_count) const +{ +S__NSSAI__TypeList rec_of; +return *((S__NSSAI__TypeList*)rotr(rotate_count, &rec_of)); +} + +S__NSSAI__TypeList S__NSSAI__TypeList::operator+(const S__NSSAI__TypeList& other_value) const +{ +S__NSSAI__TypeList rec_of; +return *((S__NSSAI__TypeList*)concat(&other_value, &rec_of)); +} + +S__NSSAI__TypeList S__NSSAI__TypeList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const S__NSSAI__TypeList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.S_NSSAI_TypeList concatenation."); +} + +S__NSSAI__TypeList S__NSSAI__TypeList::operator+(null_type) const +{ +return *this; +} + +S__NSSAI__TypeList S__NSSAI__TypeList::substr(int index, int returncount) const +{ +S__NSSAI__TypeList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +S__NSSAI__TypeList S__NSSAI__TypeList::replace(int index, int len, const S__NSSAI__TypeList& repl) const +{ +S__NSSAI__TypeList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +S__NSSAI__TypeList S__NSSAI__TypeList::replace(int index, int len, const S__NSSAI__TypeList_template& repl) const +{ +S__NSSAI__TypeList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* S__NSSAI__TypeList::create_elem() const { return new S__NSSAI__LV; } +const Base_Type* S__NSSAI__TypeList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* S__NSSAI__TypeList::get_descriptor() const { return &S__NSSAI__TypeList_descr_; } +S__NSSAI__TypeList_template::S__NSSAI__TypeList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +S__NSSAI__TypeList_template::S__NSSAI__TypeList_template(S__NSSAI__TypeList_template* p_precondition, S__NSSAI__TypeList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +S__NSSAI__TypeList_template::S__NSSAI__TypeList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +S__NSSAI__TypeList_template::~S__NSSAI__TypeList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean S__NSSAI__TypeList_template::match_dynamic(const Base_Type* match_value) const +{ +const S__NSSAI__TypeList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +S__NSSAI__TypeList_template& S__NSSAI__TypeList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +S__NSSAI__TypeList_template& S__NSSAI__TypeList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +S__NSSAI__TypeList_template& S__NSSAI__TypeList_template::operator=(const S__NSSAI__TypeList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +S__NSSAI__TypeList_template& S__NSSAI__TypeList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +S__NSSAI__TypeList_template& S__NSSAI__TypeList_template::operator=(const S__NSSAI__TypeList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +S__NSSAI__TypeList_template S__NSSAI__TypeList_template::operator+(const S__NSSAI__TypeList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return S__NSSAI__TypeList_template(ANY_VALUE); +} +S__NSSAI__TypeList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +S__NSSAI__TypeList_template S__NSSAI__TypeList_template::operator+(const S__NSSAI__TypeList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +S__NSSAI__TypeList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +S__NSSAI__TypeList_template S__NSSAI__TypeList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return S__NSSAI__TypeList_template(ANY_VALUE); +} +S__NSSAI__TypeList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +S__NSSAI__TypeList_template S__NSSAI__TypeList_template::operator+(null_type) const +{ +return *this; +} + +S__NSSAI__LV_template& S__NSSAI__TypeList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +S__NSSAI__LV_template& S__NSSAI__TypeList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const S__NSSAI__LV_template& S__NSSAI__TypeList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const S__NSSAI__LV_template& S__NSSAI__TypeList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +S__NSSAI__TypeList S__NSSAI__TypeList_template::valueof() const +{ +S__NSSAI__TypeList ret_val; +valueofv(&ret_val); +return ret_val; +} + +S__NSSAI__TypeList S__NSSAI__TypeList_template::substr(int index, int returncount) const +{ +S__NSSAI__TypeList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +S__NSSAI__TypeList S__NSSAI__TypeList_template::replace(int index, int len, const S__NSSAI__TypeList_template& repl) const +{ +S__NSSAI__TypeList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +S__NSSAI__TypeList S__NSSAI__TypeList_template::replace(int index, int len, const S__NSSAI__TypeList& repl) const +{ +S__NSSAI__TypeList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* S__NSSAI__TypeList_template::create_elem() const { return new S__NSSAI__LV_template; } +const TTCN_Typedescriptor_t* S__NSSAI__TypeList_template::get_descriptor() const { return &S__NSSAI__TypeList_descr_; } +void S__NSSAI__V::init_vec() { fld_vec[0]=&field_sst; fld_vec[1]=&field_sd; fld_vec[2]=&field_mappedSST; fld_vec[3]=&field_mappedSD; } + +S__NSSAI__V::S__NSSAI__V() : Record_Type() { init_vec(); } + +S__NSSAI__V::S__NSSAI__V(const S__NSSAI__V& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_sst.is_bound() ) + field_sst = other_value.field_sst; +if (other_value.field_sd.is_bound() ) + field_sd = other_value.field_sd; +if (other_value.field_mappedSST.is_bound() ) + field_mappedSST = other_value.field_mappedSST; +if (other_value.field_mappedSD.is_bound() ) + field_mappedSD = other_value.field_mappedSD; +init_vec(); +} + +S__NSSAI__V::S__NSSAI__V(const OCTETSTRING& par_sst, + const OPTIONAL& par_sd, + const OPTIONAL& par_mappedSST, + const OPTIONAL& par_mappedSD) : field_sst(par_sst), + field_sd(par_sd), + field_mappedSST(par_mappedSST), + field_mappedSD(par_mappedSD) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* S__NSSAI__V::get_descriptor() const { return &S__NSSAI__V_descr_; } +const TTCN_Typedescriptor_t* S__NSSAI__V::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &CommonDefs::O3__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O3__Type_descr_ }; +const TTCN_Typedescriptor_t* S__NSSAI__V::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* S__NSSAI__V::fld_names[] = { "sst", "sd", "mappedSST", "mappedSD" }; +const char* S__NSSAI__V::fld_name(int p_index) const { return fld_names[p_index]; } + +const int S__NSSAI__V::optional_indexes[] = { 1, 2, 3, -1 }; +const int* S__NSSAI__V::get_optional_indexes() const { return optional_indexes; } + +const int S__NSSAI__V::optional_indexes_asn[] = { 1, 2, 3, -1 }; +const int* S__NSSAI__V::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void S__NSSAI__V_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +S__NSSAI__V_template::S__NSSAI__V_template(S__NSSAI__V_template* p_precondition, S__NSSAI__V_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +S__NSSAI__V_template::S__NSSAI__V_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +S__NSSAI__V_template::~S__NSSAI__V_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean S__NSSAI__V_template::match_dynamic(const Base_Type* match_value) const +{ +const S__NSSAI__V* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +S__NSSAI__V_template& S__NSSAI__V_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +S__NSSAI__V_template& S__NSSAI__V_template::operator=(const S__NSSAI__V& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +S__NSSAI__V_template& S__NSSAI__V_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +S__NSSAI__V_template& S__NSSAI__V_template::operator=(const S__NSSAI__V_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +S__NSSAI__V S__NSSAI__V_template::valueof() const +{ +S__NSSAI__V ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& S__NSSAI__V_template::sst() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& S__NSSAI__V_template::sst() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& S__NSSAI__V_template::sd() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& S__NSSAI__V_template::sd() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& S__NSSAI__V_template::mappedSST() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& S__NSSAI__V_template::mappedSST() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& S__NSSAI__V_template::mappedSD() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& S__NSSAI__V_template::mappedSD() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* S__NSSAI__V_template::get_descriptor() const { return &S__NSSAI__V_descr_; } +const char* S__NSSAI__V_template::fld_name(int p_index) const { return S__NSSAI__V::fld_names[p_index]; } +void S__NSSAI__LV::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_vPart; } + +S__NSSAI__LV::S__NSSAI__LV() : Record_Type() { init_vec(); } + +S__NSSAI__LV::S__NSSAI__LV(const S__NSSAI__LV& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_vPart.is_bound() ) + field_vPart = other_value.field_vPart; +init_vec(); +} + +S__NSSAI__LV::S__NSSAI__LV(const OPTIONAL& par_iel, + const S__NSSAI__V& par_vPart) : field_iel(par_iel), + field_vPart(par_vPart) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* S__NSSAI__LV::get_descriptor() const { return &S__NSSAI__LV_descr_; } +const TTCN_Typedescriptor_t* S__NSSAI__LV::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &S__NSSAI__V_descr_ }; +const TTCN_Typedescriptor_t* S__NSSAI__LV::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* S__NSSAI__LV::fld_names[] = { "iel", "vPart" }; +const char* S__NSSAI__LV::fld_name(int p_index) const { return fld_names[p_index]; } + +const int S__NSSAI__LV::optional_indexes[] = { 0, -1 }; +const int* S__NSSAI__LV::get_optional_indexes() const { return optional_indexes; } + +const int S__NSSAI__LV::optional_indexes_asn[] = { 0, -1 }; +const int* S__NSSAI__LV::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void S__NSSAI__LV_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new S__NSSAI__V_template(ANY_VALUE) : new S__NSSAI__V_template; +} +} + +S__NSSAI__LV_template::S__NSSAI__LV_template(S__NSSAI__LV_template* p_precondition, S__NSSAI__LV_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +S__NSSAI__LV_template::S__NSSAI__LV_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +S__NSSAI__LV_template::~S__NSSAI__LV_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean S__NSSAI__LV_template::match_dynamic(const Base_Type* match_value) const +{ +const S__NSSAI__LV* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +S__NSSAI__LV_template& S__NSSAI__LV_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +S__NSSAI__LV_template& S__NSSAI__LV_template::operator=(const S__NSSAI__LV& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +S__NSSAI__LV_template& S__NSSAI__LV_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +S__NSSAI__LV_template& S__NSSAI__LV_template::operator=(const S__NSSAI__LV_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +S__NSSAI__LV S__NSSAI__LV_template::valueof() const +{ +S__NSSAI__LV ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& S__NSSAI__LV_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& S__NSSAI__LV_template::iel() const { return *(static_cast(get_at(0))); } +S__NSSAI__V_template& S__NSSAI__LV_template::vPart() { return *(static_cast(get_at(1))); } +const S__NSSAI__V_template& S__NSSAI__LV_template::vPart() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* S__NSSAI__LV_template::get_descriptor() const { return &S__NSSAI__LV_descr_; } +const char* S__NSSAI__LV_template::fld_name(int p_index) const { return S__NSSAI__LV::fld_names[p_index]; } +void NSSAI__LV::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_s__nssai; } + +NSSAI__LV::NSSAI__LV() : Record_Type() { init_vec(); } + +NSSAI__LV::NSSAI__LV(const NSSAI__LV& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_s__nssai.is_bound() ) + field_s__nssai = other_value.field_s__nssai; +init_vec(); +} + +NSSAI__LV::NSSAI__LV(const OPTIONAL& par_iel, + const S__NSSAI__TypeList& par_s__nssai) : field_iel(par_iel), + field_s__nssai(par_s__nssai) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NSSAI__LV::get_descriptor() const { return &NSSAI__LV_descr_; } +const TTCN_Typedescriptor_t* NSSAI__LV::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &S__NSSAI__TypeList_descr_ }; +const TTCN_Typedescriptor_t* NSSAI__LV::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NSSAI__LV::fld_names[] = { "iel", "s_nssai" }; +const char* NSSAI__LV::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NSSAI__LV::optional_indexes[] = { 0, -1 }; +const int* NSSAI__LV::get_optional_indexes() const { return optional_indexes; } + +const int NSSAI__LV::optional_indexes_asn[] = { 0, -1 }; +const int* NSSAI__LV::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NSSAI__LV_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new S__NSSAI__TypeList_template(ANY_VALUE) : new S__NSSAI__TypeList_template; +} +} + +NSSAI__LV_template::NSSAI__LV_template(NSSAI__LV_template* p_precondition, NSSAI__LV_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSSAI__LV_template::NSSAI__LV_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSSAI__LV_template::~NSSAI__LV_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSSAI__LV_template::match_dynamic(const Base_Type* match_value) const +{ +const NSSAI__LV* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NSSAI__LV_template& NSSAI__LV_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSSAI__LV_template& NSSAI__LV_template::operator=(const NSSAI__LV& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSSAI__LV_template& NSSAI__LV_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSSAI__LV_template& NSSAI__LV_template::operator=(const NSSAI__LV_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSSAI__LV NSSAI__LV_template::valueof() const +{ +NSSAI__LV ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NSSAI__LV_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NSSAI__LV_template::iel() const { return *(static_cast(get_at(0))); } +S__NSSAI__TypeList_template& NSSAI__LV_template::s__nssai() { return *(static_cast(get_at(1))); } +const S__NSSAI__TypeList_template& NSSAI__LV_template::s__nssai() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NSSAI__LV_template::get_descriptor() const { return &NSSAI__LV_descr_; } +const char* NSSAI__LV_template::fld_name(int p_index) const { return NSSAI__LV::fld_names[p_index]; } +void NSSAI::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_lvPart; } + +NSSAI::NSSAI() : Record_Type() { init_vec(); } + +NSSAI::NSSAI(const NSSAI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_lvPart.is_bound() ) + field_lvPart = other_value.field_lvPart; +init_vec(); +} + +NSSAI::NSSAI(const OPTIONAL& par_iei, + const NSSAI__LV& par_lvPart) : field_iei(par_iei), + field_lvPart(par_lvPart) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NSSAI::get_descriptor() const { return &NSSAI_descr_; } +const TTCN_Typedescriptor_t* NSSAI::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NSSAI__LV_descr_ }; +const TTCN_Typedescriptor_t* NSSAI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NSSAI::fld_names[] = { "iei", "lvPart" }; +const char* NSSAI::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NSSAI::optional_indexes[] = { 0, -1 }; +const int* NSSAI::get_optional_indexes() const { return optional_indexes; } + +const int NSSAI::optional_indexes_asn[] = { 0, -1 }; +const int* NSSAI::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NSSAI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new NSSAI__LV_template(ANY_VALUE) : new NSSAI__LV_template; +} +} + +NSSAI_template::NSSAI_template(NSSAI_template* p_precondition, NSSAI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSSAI_template::NSSAI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSSAI_template::~NSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const NSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NSSAI_template& NSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSSAI_template& NSSAI_template::operator=(const NSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSSAI_template& NSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSSAI_template& NSSAI_template::operator=(const NSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSSAI NSSAI_template::valueof() const +{ +NSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NSSAI_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NSSAI_template::iei() const { return *(static_cast(get_at(0))); } +NSSAI__LV_template& NSSAI_template::lvPart() { return *(static_cast(get_at(1))); } +const NSSAI__LV_template& NSSAI_template::lvPart() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NSSAI_template::get_descriptor() const { return &NSSAI_descr_; } +const char* NSSAI_template::fld_name(int p_index) const { return NSSAI::fld_names[p_index]; } +void NG__TrackingAreaId::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_plmnId; fld_vec[2]=&field_tac; } + +NG__TrackingAreaId::NG__TrackingAreaId() : Record_Type() { init_vec(); } + +NG__TrackingAreaId::NG__TrackingAreaId(const NG__TrackingAreaId& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_plmnId.is_bound() ) + field_plmnId = other_value.field_plmnId; +if (other_value.field_tac.is_bound() ) + field_tac = other_value.field_tac; +init_vec(); +} + +NG__TrackingAreaId::NG__TrackingAreaId(const OPTIONAL& par_iei, + const OCTETSTRING& par_plmnId, + const OCTETSTRING& par_tac) : field_iei(par_iei), + field_plmnId(par_plmnId), + field_tac(par_tac) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__TrackingAreaId::get_descriptor() const { return &NG__TrackingAreaId_descr_; } +const TTCN_Typedescriptor_t* NG__TrackingAreaId::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::NAS__PlmnId_descr_, &CommonDefs::O3__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__TrackingAreaId::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__TrackingAreaId::fld_names[] = { "iei", "plmnId", "tac" }; +const char* NG__TrackingAreaId::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__TrackingAreaId::optional_indexes[] = { 0, -1 }; +const int* NG__TrackingAreaId::get_optional_indexes() const { return optional_indexes; } + +const int NG__TrackingAreaId::optional_indexes_asn[] = { 0, -1 }; +const int* NG__TrackingAreaId::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__TrackingAreaId_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NG__TrackingAreaId_template::NG__TrackingAreaId_template(NG__TrackingAreaId_template* p_precondition, NG__TrackingAreaId_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__TrackingAreaId_template::NG__TrackingAreaId_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__TrackingAreaId_template::~NG__TrackingAreaId_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__TrackingAreaId_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__TrackingAreaId* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__TrackingAreaId_template& NG__TrackingAreaId_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__TrackingAreaId_template& NG__TrackingAreaId_template::operator=(const NG__TrackingAreaId& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__TrackingAreaId_template& NG__TrackingAreaId_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__TrackingAreaId_template& NG__TrackingAreaId_template::operator=(const NG__TrackingAreaId_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__TrackingAreaId NG__TrackingAreaId_template::valueof() const +{ +NG__TrackingAreaId ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__TrackingAreaId_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__TrackingAreaId_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__TrackingAreaId_template::plmnId() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__TrackingAreaId_template::plmnId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__TrackingAreaId_template::tac() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__TrackingAreaId_template::tac() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NG__TrackingAreaId_template::get_descriptor() const { return &NG__TrackingAreaId_descr_; } +const char* NG__TrackingAreaId_template::fld_name(int p_index) const { return NG__TrackingAreaId::fld_names[p_index]; } +void PDU__SessionStatus::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_psi0__7; fld_vec[3]=&field_psi8__15; fld_vec[4]=&field_spare; } + +PDU__SessionStatus::PDU__SessionStatus() : Record_Type() { init_vec(); } + +PDU__SessionStatus::PDU__SessionStatus(const PDU__SessionStatus& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_psi0__7.is_bound() ) + field_psi0__7 = other_value.field_psi0__7; +if (other_value.field_psi8__15.is_bound() ) + field_psi8__15 = other_value.field_psi8__15; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +init_vec(); +} + +PDU__SessionStatus::PDU__SessionStatus(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_psi0__7, + const BITSTRING& par_psi8__15, + const OPTIONAL& par_spare) : field_iei(par_iei), + field_iel(par_iel), + field_psi0__7(par_psi0__7), + field_psi8__15(par_psi8__15), + field_spare(par_spare) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDU__SessionStatus::get_descriptor() const { return &PDU__SessionStatus_descr_; } +const TTCN_Typedescriptor_t* PDU__SessionStatus::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* PDU__SessionStatus::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDU__SessionStatus::fld_names[] = { "iei", "iel", "psi0_7", "psi8_15", "spare" }; +const char* PDU__SessionStatus::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PDU__SessionStatus::optional_indexes[] = { 0, 1, 4, -1 }; +const int* PDU__SessionStatus::get_optional_indexes() const { return optional_indexes; } + +const int PDU__SessionStatus::optional_indexes_asn[] = { 0, 1, 4, -1 }; +const int* PDU__SessionStatus::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PDU__SessionStatus_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +PDU__SessionStatus_template::PDU__SessionStatus_template(PDU__SessionStatus_template* p_precondition, PDU__SessionStatus_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDU__SessionStatus_template::PDU__SessionStatus_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDU__SessionStatus_template::~PDU__SessionStatus_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDU__SessionStatus_template::match_dynamic(const Base_Type* match_value) const +{ +const PDU__SessionStatus* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDU__SessionStatus_template& PDU__SessionStatus_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDU__SessionStatus_template& PDU__SessionStatus_template::operator=(const PDU__SessionStatus& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDU__SessionStatus_template& PDU__SessionStatus_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDU__SessionStatus_template& PDU__SessionStatus_template::operator=(const PDU__SessionStatus_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDU__SessionStatus PDU__SessionStatus_template::valueof() const +{ +PDU__SessionStatus ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PDU__SessionStatus_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PDU__SessionStatus_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PDU__SessionStatus_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PDU__SessionStatus_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PDU__SessionStatus_template::psi0__7() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PDU__SessionStatus_template::psi0__7() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PDU__SessionStatus_template::psi8__15() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PDU__SessionStatus_template::psi8__15() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& PDU__SessionStatus_template::spare() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& PDU__SessionStatus_template::spare() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* PDU__SessionStatus_template::get_descriptor() const { return &PDU__SessionStatus_descr_; } +const char* PDU__SessionStatus_template::fld_name(int p_index) const { return PDU__SessionStatus::fld_names[p_index]; } +void MICO__Ind::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_sprti; fld_vec[3]=&field_raai; } + +MICO__Ind::MICO__Ind() : Record_Type() { init_vec(); } + +MICO__Ind::MICO__Ind(const MICO__Ind& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_sprti.is_bound() ) + field_sprti = other_value.field_sprti; +if (other_value.field_raai.is_bound() ) + field_raai = other_value.field_raai; +init_vec(); +} + +MICO__Ind::MICO__Ind(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_sprti, + const BITSTRING& par_raai) : field_iei(par_iei), + field_spare(par_spare), + field_sprti(par_sprti), + field_raai(par_raai) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MICO__Ind::get_descriptor() const { return &MICO__Ind_descr_; } +const TTCN_Typedescriptor_t* MICO__Ind::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* MICO__Ind::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MICO__Ind::fld_names[] = { "iei", "spare", "sprti", "raai" }; +const char* MICO__Ind::fld_name(int p_index) const { return fld_names[p_index]; } + +void MICO__Ind_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +MICO__Ind_template::MICO__Ind_template(MICO__Ind_template* p_precondition, MICO__Ind_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MICO__Ind_template::MICO__Ind_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MICO__Ind_template::~MICO__Ind_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MICO__Ind_template::match_dynamic(const Base_Type* match_value) const +{ +const MICO__Ind* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MICO__Ind_template& MICO__Ind_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MICO__Ind_template& MICO__Ind_template::operator=(const MICO__Ind& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MICO__Ind_template& MICO__Ind_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MICO__Ind_template& MICO__Ind_template::operator=(const MICO__Ind_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MICO__Ind MICO__Ind_template::valueof() const +{ +MICO__Ind ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& MICO__Ind_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& MICO__Ind_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& MICO__Ind_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& MICO__Ind_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& MICO__Ind_template::sprti() { return *(static_cast(get_at(2))); } +const BITSTRING_template& MICO__Ind_template::sprti() const { return *(static_cast(get_at(2))); } +BITSTRING_template& MICO__Ind_template::raai() { return *(static_cast(get_at(3))); } +const BITSTRING_template& MICO__Ind_template::raai() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* MICO__Ind_template::get_descriptor() const { return &MICO__Ind_descr_; } +const char* MICO__Ind_template::fld_name(int p_index) const { return MICO__Ind::fld_names[p_index]; } +void UE__UsageSetting::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_ueUsageSetting; } + +UE__UsageSetting::UE__UsageSetting() : Record_Type() { init_vec(); } + +UE__UsageSetting::UE__UsageSetting(const UE__UsageSetting& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_ueUsageSetting.is_bound() ) + field_ueUsageSetting = other_value.field_ueUsageSetting; +init_vec(); +} + +UE__UsageSetting::UE__UsageSetting(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_ueUsageSetting) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_ueUsageSetting(par_ueUsageSetting) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__UsageSetting::get_descriptor() const { return &UE__UsageSetting_descr_; } +const TTCN_Typedescriptor_t* UE__UsageSetting::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__UsageSetting::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__UsageSetting::fld_names[] = { "iei", "iel", "spare", "ueUsageSetting" }; +const char* UE__UsageSetting::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__UsageSetting::optional_indexes[] = { 0, 1, -1 }; +const int* UE__UsageSetting::get_optional_indexes() const { return optional_indexes; } + +const int UE__UsageSetting::optional_indexes_asn[] = { 0, 1, -1 }; +const int* UE__UsageSetting::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__UsageSetting_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__UsageSetting_template::UE__UsageSetting_template(UE__UsageSetting_template* p_precondition, UE__UsageSetting_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__UsageSetting_template::UE__UsageSetting_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__UsageSetting_template::~UE__UsageSetting_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__UsageSetting_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__UsageSetting* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__UsageSetting_template& UE__UsageSetting_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__UsageSetting_template& UE__UsageSetting_template::operator=(const UE__UsageSetting& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__UsageSetting_template& UE__UsageSetting_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__UsageSetting_template& UE__UsageSetting_template::operator=(const UE__UsageSetting_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__UsageSetting UE__UsageSetting_template::valueof() const +{ +UE__UsageSetting ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UE__UsageSetting_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UE__UsageSetting_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UE__UsageSetting_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UE__UsageSetting_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__UsageSetting_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__UsageSetting_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UE__UsageSetting_template::ueUsageSetting() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UE__UsageSetting_template::ueUsageSetting() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UE__UsageSetting_template::get_descriptor() const { return &UE__UsageSetting_descr_; } +const char* UE__UsageSetting_template::fld_name(int p_index) const { return UE__UsageSetting::fld_names[p_index]; } +void EPS__MessageContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_epsMsg; } + +EPS__MessageContainer::EPS__MessageContainer() : Record_Type() { init_vec(); } + +EPS__MessageContainer::EPS__MessageContainer(const EPS__MessageContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_epsMsg.is_bound() ) + field_epsMsg = other_value.field_epsMsg; +init_vec(); +} + +EPS__MessageContainer::EPS__MessageContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_epsMsg) : field_iei(par_iei), + field_iel(par_iel), + field_epsMsg(par_epsMsg) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPS__MessageContainer::get_descriptor() const { return &EPS__MessageContainer_descr_; } +const TTCN_Typedescriptor_t* EPS__MessageContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EPS__MessageContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPS__MessageContainer::fld_names[] = { "iei", "iel", "epsMsg" }; +const char* EPS__MessageContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EPS__MessageContainer::optional_indexes[] = { 0, 1, -1 }; +const int* EPS__MessageContainer::get_optional_indexes() const { return optional_indexes; } + +const int EPS__MessageContainer::optional_indexes_asn[] = { 0, 1, -1 }; +const int* EPS__MessageContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EPS__MessageContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EPS__MessageContainer_template::EPS__MessageContainer_template(EPS__MessageContainer_template* p_precondition, EPS__MessageContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPS__MessageContainer_template::EPS__MessageContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPS__MessageContainer_template::~EPS__MessageContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPS__MessageContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const EPS__MessageContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPS__MessageContainer_template& EPS__MessageContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPS__MessageContainer_template& EPS__MessageContainer_template::operator=(const EPS__MessageContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPS__MessageContainer_template& EPS__MessageContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPS__MessageContainer_template& EPS__MessageContainer_template::operator=(const EPS__MessageContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPS__MessageContainer EPS__MessageContainer_template::valueof() const +{ +EPS__MessageContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EPS__MessageContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EPS__MessageContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EPS__MessageContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EPS__MessageContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EPS__MessageContainer_template::epsMsg() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EPS__MessageContainer_template::epsMsg() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EPS__MessageContainer_template::get_descriptor() const { return &EPS__MessageContainer_descr_; } +const char* EPS__MessageContainer_template::fld_name(int p_index) const { return EPS__MessageContainer::fld_names[p_index]; } +void LADN__Ind::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_listOfLADN__DNNValues; } + +LADN__Ind::LADN__Ind() : Record_Type() { init_vec(); } + +LADN__Ind::LADN__Ind(const LADN__Ind& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_listOfLADN__DNNValues.is_bound() ) + field_listOfLADN__DNNValues = other_value.field_listOfLADN__DNNValues; +init_vec(); +} + +LADN__Ind::LADN__Ind(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_listOfLADN__DNNValues) : field_iei(par_iei), + field_iel(par_iel), + field_listOfLADN__DNNValues(par_listOfLADN__DNNValues) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* LADN__Ind::get_descriptor() const { return &LADN__Ind_descr_; } +const TTCN_Typedescriptor_t* LADN__Ind::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* LADN__Ind::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* LADN__Ind::fld_names[] = { "iei", "iel", "listOfLADN_DNNValues" }; +const char* LADN__Ind::fld_name(int p_index) const { return fld_names[p_index]; } + +const int LADN__Ind::optional_indexes[] = { 0, 2, -1 }; +const int* LADN__Ind::get_optional_indexes() const { return optional_indexes; } + +const int LADN__Ind::optional_indexes_asn[] = { 0, 2, -1 }; +const int* LADN__Ind::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void LADN__Ind_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +LADN__Ind_template::LADN__Ind_template(LADN__Ind_template* p_precondition, LADN__Ind_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LADN__Ind_template::LADN__Ind_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LADN__Ind_template::~LADN__Ind_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LADN__Ind_template::match_dynamic(const Base_Type* match_value) const +{ +const LADN__Ind* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +LADN__Ind_template& LADN__Ind_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LADN__Ind_template& LADN__Ind_template::operator=(const LADN__Ind& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LADN__Ind_template& LADN__Ind_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LADN__Ind_template& LADN__Ind_template::operator=(const LADN__Ind_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LADN__Ind LADN__Ind_template::valueof() const +{ +LADN__Ind ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& LADN__Ind_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& LADN__Ind_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& LADN__Ind_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& LADN__Ind_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& LADN__Ind_template::listOfLADN__DNNValues() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& LADN__Ind_template::listOfLADN__DNNValues() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* LADN__Ind_template::get_descriptor() const { return &LADN__Ind_descr_; } +const char* LADN__Ind_template::fld_name(int p_index) const { return LADN__Ind::fld_names[p_index]; } +void PayloadContainerType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_container; } + +PayloadContainerType::PayloadContainerType() : Record_Type() { init_vec(); } + +PayloadContainerType::PayloadContainerType(const PayloadContainerType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_container.is_bound() ) + field_container = other_value.field_container; +init_vec(); +} + +PayloadContainerType::PayloadContainerType(const OPTIONAL& par_iei, + const BITSTRING& par_container) : field_iei(par_iei), + field_container(par_container) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PayloadContainerType::get_descriptor() const { return &PayloadContainerType_descr_; } +const TTCN_Typedescriptor_t* PayloadContainerType::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* PayloadContainerType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PayloadContainerType::fld_names[] = { "iei", "container" }; +const char* PayloadContainerType::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PayloadContainerType::optional_indexes[] = { 0, -1 }; +const int* PayloadContainerType::get_optional_indexes() const { return optional_indexes; } + +const int PayloadContainerType::optional_indexes_asn[] = { 0, -1 }; +const int* PayloadContainerType::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PayloadContainerType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +PayloadContainerType_template::PayloadContainerType_template(PayloadContainerType_template* p_precondition, PayloadContainerType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PayloadContainerType_template::PayloadContainerType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PayloadContainerType_template::~PayloadContainerType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PayloadContainerType_template::match_dynamic(const Base_Type* match_value) const +{ +const PayloadContainerType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PayloadContainerType_template& PayloadContainerType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PayloadContainerType_template& PayloadContainerType_template::operator=(const PayloadContainerType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PayloadContainerType_template& PayloadContainerType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PayloadContainerType_template& PayloadContainerType_template::operator=(const PayloadContainerType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PayloadContainerType PayloadContainerType_template::valueof() const +{ +PayloadContainerType ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& PayloadContainerType_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& PayloadContainerType_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PayloadContainerType_template::container() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PayloadContainerType_template::container() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* PayloadContainerType_template::get_descriptor() const { return &PayloadContainerType_descr_; } +const char* PayloadContainerType_template::fld_name(int p_index) const { return PayloadContainerType::fld_names[p_index]; } +void PayloadContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_payload; } + +PayloadContainer::PayloadContainer() : Record_Type() { init_vec(); } + +PayloadContainer::PayloadContainer(const PayloadContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_payload.is_bound() ) + field_payload = other_value.field_payload; +init_vec(); +} + +PayloadContainer::PayloadContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_payload) : field_iei(par_iei), + field_iel(par_iel), + field_payload(par_payload) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PayloadContainer::get_descriptor() const { return &PayloadContainer_descr_; } +const TTCN_Typedescriptor_t* PayloadContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* PayloadContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PayloadContainer::fld_names[] = { "iei", "iel", "payload" }; +const char* PayloadContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PayloadContainer::optional_indexes[] = { 0, -1 }; +const int* PayloadContainer::get_optional_indexes() const { return optional_indexes; } + +const int PayloadContainer::optional_indexes_asn[] = { 0, -1 }; +const int* PayloadContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PayloadContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +PayloadContainer_template::PayloadContainer_template(PayloadContainer_template* p_precondition, PayloadContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PayloadContainer_template::PayloadContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PayloadContainer_template::~PayloadContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PayloadContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const PayloadContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PayloadContainer_template& PayloadContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PayloadContainer_template& PayloadContainer_template::operator=(const PayloadContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PayloadContainer_template& PayloadContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PayloadContainer_template& PayloadContainer_template::operator=(const PayloadContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PayloadContainer PayloadContainer_template::valueof() const +{ +PayloadContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PayloadContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PayloadContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PayloadContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PayloadContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& PayloadContainer_template::payload() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& PayloadContainer_template::payload() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PayloadContainer_template::get_descriptor() const { return &PayloadContainer_descr_; } +const char* PayloadContainer_template::fld_name(int p_index) const { return PayloadContainer::fld_names[p_index]; } +void NetworkSlicingInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_dcni; fld_vec[3]=&field_nssci; } + +NetworkSlicingInd::NetworkSlicingInd() : Record_Type() { init_vec(); } + +NetworkSlicingInd::NetworkSlicingInd(const NetworkSlicingInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_dcni.is_bound() ) + field_dcni = other_value.field_dcni; +if (other_value.field_nssci.is_bound() ) + field_nssci = other_value.field_nssci; +init_vec(); +} + +NetworkSlicingInd::NetworkSlicingInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_dcni, + const BITSTRING& par_nssci) : field_iei(par_iei), + field_spare(par_spare), + field_dcni(par_dcni), + field_nssci(par_nssci) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NetworkSlicingInd::get_descriptor() const { return &NetworkSlicingInd_descr_; } +const TTCN_Typedescriptor_t* NetworkSlicingInd::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* NetworkSlicingInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NetworkSlicingInd::fld_names[] = { "iei", "spare", "dcni", "nssci" }; +const char* NetworkSlicingInd::fld_name(int p_index) const { return fld_names[p_index]; } + +void NetworkSlicingInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NetworkSlicingInd_template::NetworkSlicingInd_template(NetworkSlicingInd_template* p_precondition, NetworkSlicingInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NetworkSlicingInd_template::NetworkSlicingInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NetworkSlicingInd_template::~NetworkSlicingInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NetworkSlicingInd_template::match_dynamic(const Base_Type* match_value) const +{ +const NetworkSlicingInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NetworkSlicingInd_template& NetworkSlicingInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NetworkSlicingInd_template& NetworkSlicingInd_template::operator=(const NetworkSlicingInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NetworkSlicingInd_template& NetworkSlicingInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NetworkSlicingInd_template& NetworkSlicingInd_template::operator=(const NetworkSlicingInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NetworkSlicingInd NetworkSlicingInd_template::valueof() const +{ +NetworkSlicingInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& NetworkSlicingInd_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& NetworkSlicingInd_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NetworkSlicingInd_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NetworkSlicingInd_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NetworkSlicingInd_template::dcni() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NetworkSlicingInd_template::dcni() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NetworkSlicingInd_template::nssci() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NetworkSlicingInd_template::nssci() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* NetworkSlicingInd_template::get_descriptor() const { return &NetworkSlicingInd_descr_; } +const char* NetworkSlicingInd_template::fld_name(int p_index) const { return NetworkSlicingInd::fld_names[p_index]; } +void NG__UpdateType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_eps__PNB__CIoT; fld_vec[4]=&field_ng__PNB__CIoT; fld_vec[5]=&field_ngRAN__RCU; fld_vec[6]=&field_smsRequested; } + +NG__UpdateType::NG__UpdateType() : Record_Type() { init_vec(); } + +NG__UpdateType::NG__UpdateType(const NG__UpdateType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_eps__PNB__CIoT.is_bound() ) + field_eps__PNB__CIoT = other_value.field_eps__PNB__CIoT; +if (other_value.field_ng__PNB__CIoT.is_bound() ) + field_ng__PNB__CIoT = other_value.field_ng__PNB__CIoT; +if (other_value.field_ngRAN__RCU.is_bound() ) + field_ngRAN__RCU = other_value.field_ngRAN__RCU; +if (other_value.field_smsRequested.is_bound() ) + field_smsRequested = other_value.field_smsRequested; +init_vec(); +} + +NG__UpdateType::NG__UpdateType(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_eps__PNB__CIoT, + const BITSTRING& par_ng__PNB__CIoT, + const BITSTRING& par_ngRAN__RCU, + const BITSTRING& par_smsRequested) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_eps__PNB__CIoT(par_eps__PNB__CIoT), + field_ng__PNB__CIoT(par_ng__PNB__CIoT), + field_ngRAN__RCU(par_ngRAN__RCU), + field_smsRequested(par_smsRequested) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__UpdateType::get_descriptor() const { return &NG__UpdateType_descr_; } +const TTCN_Typedescriptor_t* NG__UpdateType::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__UpdateType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__UpdateType::fld_names[] = { "iei", "iel", "spare", "eps_PNB_CIoT", "ng_PNB_CIoT", "ngRAN_RCU", "smsRequested" }; +const char* NG__UpdateType::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__UpdateType::optional_indexes[] = { 0, 1, -1 }; +const int* NG__UpdateType::get_optional_indexes() const { return optional_indexes; } + +const int NG__UpdateType::optional_indexes_asn[] = { 0, 1, -1 }; +const int* NG__UpdateType::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__UpdateType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NG__UpdateType_template::NG__UpdateType_template(NG__UpdateType_template* p_precondition, NG__UpdateType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__UpdateType_template::NG__UpdateType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__UpdateType_template::~NG__UpdateType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__UpdateType_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__UpdateType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__UpdateType_template& NG__UpdateType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__UpdateType_template& NG__UpdateType_template::operator=(const NG__UpdateType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__UpdateType_template& NG__UpdateType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__UpdateType_template& NG__UpdateType_template::operator=(const NG__UpdateType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__UpdateType NG__UpdateType_template::valueof() const +{ +NG__UpdateType ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__UpdateType_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__UpdateType_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__UpdateType_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__UpdateType_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__UpdateType_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__UpdateType_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__UpdateType_template::eps__PNB__CIoT() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__UpdateType_template::eps__PNB__CIoT() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NG__UpdateType_template::ng__PNB__CIoT() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NG__UpdateType_template::ng__PNB__CIoT() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NG__UpdateType_template::ngRAN__RCU() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NG__UpdateType_template::ngRAN__RCU() const { return *(static_cast(get_at(5))); } +BITSTRING_template& NG__UpdateType_template::smsRequested() { return *(static_cast(get_at(6))); } +const BITSTRING_template& NG__UpdateType_template::smsRequested() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* NG__UpdateType_template::get_descriptor() const { return &NG__UpdateType_descr_; } +const char* NG__UpdateType_template::fld_name(int p_index) const { return NG__UpdateType::fld_names[p_index]; } + +const Mapped__S__NSSAIValue MappedNSSAI_s__NSSAI::UNBOUND_ELEM; +Mapped__S__NSSAIValue& MappedNSSAI_s__NSSAI::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Mapped__S__NSSAIValue& MappedNSSAI_s__NSSAI::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Mapped__S__NSSAIValue& MappedNSSAI_s__NSSAI::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Mapped__S__NSSAIValue& MappedNSSAI_s__NSSAI::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::operator<<=(const INTEGER& rotate_count) const +{ +MappedNSSAI_s__NSSAI rec_of; +return *((MappedNSSAI_s__NSSAI*)rotl(rotate_count, &rec_of)); +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::operator>>=(const INTEGER& rotate_count) const +{ +MappedNSSAI_s__NSSAI rec_of; +return *((MappedNSSAI_s__NSSAI*)rotr(rotate_count, &rec_of)); +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::operator>>=(int rotate_count) const +{ +MappedNSSAI_s__NSSAI rec_of; +return *((MappedNSSAI_s__NSSAI*)rotr(rotate_count, &rec_of)); +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::operator+(const MappedNSSAI_s__NSSAI& other_value) const +{ +MappedNSSAI_s__NSSAI rec_of; +return *((MappedNSSAI_s__NSSAI*)concat(&other_value, &rec_of)); +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const MappedNSSAI_s__NSSAI&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.MappedNSSAI.s_NSSAI concatenation."); +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::operator+(null_type) const +{ +return *this; +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::substr(int index, int returncount) const +{ +MappedNSSAI_s__NSSAI rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::replace(int index, int len, const MappedNSSAI_s__NSSAI& repl) const +{ +MappedNSSAI_s__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI::replace(int index, int len, const MappedNSSAI_s__NSSAI_template& repl) const +{ +MappedNSSAI_s__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* MappedNSSAI_s__NSSAI::create_elem() const { return new Mapped__S__NSSAIValue; } +const Base_Type* MappedNSSAI_s__NSSAI::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* MappedNSSAI_s__NSSAI::get_descriptor() const { return &MappedNSSAI_s__NSSAI_descr_; } +MappedNSSAI_s__NSSAI_template::MappedNSSAI_s__NSSAI_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +MappedNSSAI_s__NSSAI_template::MappedNSSAI_s__NSSAI_template(MappedNSSAI_s__NSSAI_template* p_precondition, MappedNSSAI_s__NSSAI_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MappedNSSAI_s__NSSAI_template::MappedNSSAI_s__NSSAI_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MappedNSSAI_s__NSSAI_template::~MappedNSSAI_s__NSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MappedNSSAI_s__NSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const MappedNSSAI_s__NSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +MappedNSSAI_s__NSSAI_template& MappedNSSAI_s__NSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MappedNSSAI_s__NSSAI_template& MappedNSSAI_s__NSSAI_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +MappedNSSAI_s__NSSAI_template& MappedNSSAI_s__NSSAI_template::operator=(const MappedNSSAI_s__NSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MappedNSSAI_s__NSSAI_template& MappedNSSAI_s__NSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MappedNSSAI_s__NSSAI_template& MappedNSSAI_s__NSSAI_template::operator=(const MappedNSSAI_s__NSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MappedNSSAI_s__NSSAI_template MappedNSSAI_s__NSSAI_template::operator+(const MappedNSSAI_s__NSSAI_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return MappedNSSAI_s__NSSAI_template(ANY_VALUE); +} +MappedNSSAI_s__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +MappedNSSAI_s__NSSAI_template MappedNSSAI_s__NSSAI_template::operator+(const MappedNSSAI_s__NSSAI& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +MappedNSSAI_s__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +MappedNSSAI_s__NSSAI_template MappedNSSAI_s__NSSAI_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return MappedNSSAI_s__NSSAI_template(ANY_VALUE); +} +MappedNSSAI_s__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +MappedNSSAI_s__NSSAI_template MappedNSSAI_s__NSSAI_template::operator+(null_type) const +{ +return *this; +} + +Mapped__S__NSSAIValue_template& MappedNSSAI_s__NSSAI_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +Mapped__S__NSSAIValue_template& MappedNSSAI_s__NSSAI_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const Mapped__S__NSSAIValue_template& MappedNSSAI_s__NSSAI_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const Mapped__S__NSSAIValue_template& MappedNSSAI_s__NSSAI_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI_template::valueof() const +{ +MappedNSSAI_s__NSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI_template::substr(int index, int returncount) const +{ +MappedNSSAI_s__NSSAI rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI_template::replace(int index, int len, const MappedNSSAI_s__NSSAI_template& repl) const +{ +MappedNSSAI_s__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +MappedNSSAI_s__NSSAI MappedNSSAI_s__NSSAI_template::replace(int index, int len, const MappedNSSAI_s__NSSAI& repl) const +{ +MappedNSSAI_s__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* MappedNSSAI_s__NSSAI_template::create_elem() const { return new Mapped__S__NSSAIValue_template; } +const TTCN_Typedescriptor_t* MappedNSSAI_s__NSSAI_template::get_descriptor() const { return &MappedNSSAI_s__NSSAI_descr_; } +void Mapped__S__NSSAIValue::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_sst; fld_vec[2]=&field_sd; } + +Mapped__S__NSSAIValue::Mapped__S__NSSAIValue() : Record_Type() { init_vec(); } + +Mapped__S__NSSAIValue::Mapped__S__NSSAIValue(const Mapped__S__NSSAIValue& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_sst.is_bound() ) + field_sst = other_value.field_sst; +if (other_value.field_sd.is_bound() ) + field_sd = other_value.field_sd; +init_vec(); +} + +Mapped__S__NSSAIValue::Mapped__S__NSSAIValue(const OCTETSTRING& par_iel, + const OCTETSTRING& par_sst, + const OPTIONAL& par_sd) : field_iel(par_iel), + field_sst(par_sst), + field_sd(par_sd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Mapped__S__NSSAIValue::get_descriptor() const { return &Mapped__S__NSSAIValue_descr_; } +const TTCN_Typedescriptor_t* Mapped__S__NSSAIValue::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O3__Type_descr_ }; +const TTCN_Typedescriptor_t* Mapped__S__NSSAIValue::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Mapped__S__NSSAIValue::fld_names[] = { "iel", "sst", "sd" }; +const char* Mapped__S__NSSAIValue::fld_name(int p_index) const { return fld_names[p_index]; } + +const int Mapped__S__NSSAIValue::optional_indexes[] = { 2, -1 }; +const int* Mapped__S__NSSAIValue::get_optional_indexes() const { return optional_indexes; } + +const int Mapped__S__NSSAIValue::optional_indexes_asn[] = { 2, -1 }; +const int* Mapped__S__NSSAIValue::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void Mapped__S__NSSAIValue_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +Mapped__S__NSSAIValue_template::Mapped__S__NSSAIValue_template(Mapped__S__NSSAIValue_template* p_precondition, Mapped__S__NSSAIValue_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Mapped__S__NSSAIValue_template::Mapped__S__NSSAIValue_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Mapped__S__NSSAIValue_template::~Mapped__S__NSSAIValue_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Mapped__S__NSSAIValue_template::match_dynamic(const Base_Type* match_value) const +{ +const Mapped__S__NSSAIValue* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Mapped__S__NSSAIValue_template& Mapped__S__NSSAIValue_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Mapped__S__NSSAIValue_template& Mapped__S__NSSAIValue_template::operator=(const Mapped__S__NSSAIValue& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Mapped__S__NSSAIValue_template& Mapped__S__NSSAIValue_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Mapped__S__NSSAIValue_template& Mapped__S__NSSAIValue_template::operator=(const Mapped__S__NSSAIValue_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Mapped__S__NSSAIValue Mapped__S__NSSAIValue_template::valueof() const +{ +Mapped__S__NSSAIValue ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& Mapped__S__NSSAIValue_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& Mapped__S__NSSAIValue_template::iel() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& Mapped__S__NSSAIValue_template::sst() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& Mapped__S__NSSAIValue_template::sst() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& Mapped__S__NSSAIValue_template::sd() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& Mapped__S__NSSAIValue_template::sd() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* Mapped__S__NSSAIValue_template::get_descriptor() const { return &Mapped__S__NSSAIValue_descr_; } +const char* Mapped__S__NSSAIValue_template::fld_name(int p_index) const { return Mapped__S__NSSAIValue::fld_names[p_index]; } +void MappedNSSAI::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_s__NSSAI; } + +MappedNSSAI::MappedNSSAI() : Record_Type() { init_vec(); } + +MappedNSSAI::MappedNSSAI(const MappedNSSAI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_s__NSSAI.is_bound() ) + field_s__NSSAI = other_value.field_s__NSSAI; +init_vec(); +} + +MappedNSSAI::MappedNSSAI(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const MappedNSSAI_s__NSSAI& par_s__NSSAI) : field_iei(par_iei), + field_iel(par_iel), + field_s__NSSAI(par_s__NSSAI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MappedNSSAI::get_descriptor() const { return &MappedNSSAI_descr_; } +const TTCN_Typedescriptor_t* MappedNSSAI::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &MappedNSSAI_s__NSSAI_descr_ }; +const TTCN_Typedescriptor_t* MappedNSSAI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MappedNSSAI::fld_names[] = { "iei", "iel", "s_NSSAI" }; +const char* MappedNSSAI::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MappedNSSAI::optional_indexes[] = { 0, 1, -1 }; +const int* MappedNSSAI::get_optional_indexes() const { return optional_indexes; } + +const int MappedNSSAI::optional_indexes_asn[] = { 0, 1, -1 }; +const int* MappedNSSAI::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MappedNSSAI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new MappedNSSAI_s__NSSAI_template(ANY_VALUE) : new MappedNSSAI_s__NSSAI_template; +} +} + +MappedNSSAI_template::MappedNSSAI_template(MappedNSSAI_template* p_precondition, MappedNSSAI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MappedNSSAI_template::MappedNSSAI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MappedNSSAI_template::~MappedNSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MappedNSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const MappedNSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MappedNSSAI_template& MappedNSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MappedNSSAI_template& MappedNSSAI_template::operator=(const MappedNSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MappedNSSAI_template& MappedNSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MappedNSSAI_template& MappedNSSAI_template::operator=(const MappedNSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MappedNSSAI MappedNSSAI_template::valueof() const +{ +MappedNSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& MappedNSSAI_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& MappedNSSAI_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& MappedNSSAI_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& MappedNSSAI_template::iel() const { return *(static_cast(get_at(1))); } +MappedNSSAI_s__NSSAI_template& MappedNSSAI_template::s__NSSAI() { return *(static_cast(get_at(2))); } +const MappedNSSAI_s__NSSAI_template& MappedNSSAI_template::s__NSSAI() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* MappedNSSAI_template::get_descriptor() const { return &MappedNSSAI_descr_; } +const char* MappedNSSAI_template::fld_name(int p_index) const { return MappedNSSAI::fld_names[p_index]; } +void AddInfoRequest::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spareBits; fld_vec[3]=&field_cipherKey; } + +AddInfoRequest::AddInfoRequest() : Record_Type() { init_vec(); } + +AddInfoRequest::AddInfoRequest(const AddInfoRequest& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_cipherKey.is_bound() ) + field_cipherKey = other_value.field_cipherKey; +init_vec(); +} + +AddInfoRequest::AddInfoRequest(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_cipherKey) : field_iei(par_iei), + field_iel(par_iel), + field_spareBits(par_spareBits), + field_cipherKey(par_cipherKey) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AddInfoRequest::get_descriptor() const { return &AddInfoRequest_descr_; } +const TTCN_Typedescriptor_t* AddInfoRequest::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* AddInfoRequest::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AddInfoRequest::fld_names[] = { "iei", "iel", "spareBits", "cipherKey" }; +const char* AddInfoRequest::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AddInfoRequest::optional_indexes[] = { 0, 1, -1 }; +const int* AddInfoRequest::get_optional_indexes() const { return optional_indexes; } + +const int AddInfoRequest::optional_indexes_asn[] = { 0, 1, -1 }; +const int* AddInfoRequest::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AddInfoRequest_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AddInfoRequest_template::AddInfoRequest_template(AddInfoRequest_template* p_precondition, AddInfoRequest_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AddInfoRequest_template::AddInfoRequest_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AddInfoRequest_template::~AddInfoRequest_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AddInfoRequest_template::match_dynamic(const Base_Type* match_value) const +{ +const AddInfoRequest* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AddInfoRequest_template& AddInfoRequest_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AddInfoRequest_template& AddInfoRequest_template::operator=(const AddInfoRequest& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AddInfoRequest_template& AddInfoRequest_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AddInfoRequest_template& AddInfoRequest_template::operator=(const AddInfoRequest_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AddInfoRequest AddInfoRequest_template::valueof() const +{ +AddInfoRequest ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AddInfoRequest_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AddInfoRequest_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& AddInfoRequest_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& AddInfoRequest_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AddInfoRequest_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AddInfoRequest_template::spareBits() const { return *(static_cast(get_at(2))); } +BITSTRING_template& AddInfoRequest_template::cipherKey() { return *(static_cast(get_at(3))); } +const BITSTRING_template& AddInfoRequest_template::cipherKey() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* AddInfoRequest_template::get_descriptor() const { return &AddInfoRequest_descr_; } +const char* AddInfoRequest_template::fld_name(int p_index) const { return AddInfoRequest::fld_names[p_index]; } +void N5GCInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_ngReg; } + +N5GCInd::N5GCInd() : Record_Type() { init_vec(); } + +N5GCInd::N5GCInd(const N5GCInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_ngReg.is_bound() ) + field_ngReg = other_value.field_ngReg; +init_vec(); +} + +N5GCInd::N5GCInd(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_ngReg) : field_iei(par_iei), + field_spare(par_spare), + field_ngReg(par_ngReg) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* N5GCInd::get_descriptor() const { return &N5GCInd_descr_; } +const TTCN_Typedescriptor_t* N5GCInd::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* N5GCInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* N5GCInd::fld_names[] = { "iei", "spare", "ngReg" }; +const char* N5GCInd::fld_name(int p_index) const { return fld_names[p_index]; } + +const int N5GCInd::optional_indexes[] = { 0, -1 }; +const int* N5GCInd::get_optional_indexes() const { return optional_indexes; } + +const int N5GCInd::optional_indexes_asn[] = { 0, -1 }; +const int* N5GCInd::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void N5GCInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +N5GCInd_template::N5GCInd_template(N5GCInd_template* p_precondition, N5GCInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +N5GCInd_template::N5GCInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +N5GCInd_template::~N5GCInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean N5GCInd_template::match_dynamic(const Base_Type* match_value) const +{ +const N5GCInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +N5GCInd_template& N5GCInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +N5GCInd_template& N5GCInd_template::operator=(const N5GCInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +N5GCInd_template& N5GCInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +N5GCInd_template& N5GCInd_template::operator=(const N5GCInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +N5GCInd N5GCInd_template::valueof() const +{ +N5GCInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& N5GCInd_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& N5GCInd_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& N5GCInd_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& N5GCInd_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& N5GCInd_template::ngReg() { return *(static_cast(get_at(2))); } +const BITSTRING_template& N5GCInd_template::ngReg() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* N5GCInd_template::get_descriptor() const { return &N5GCInd_descr_; } +const char* N5GCInd_template::fld_name(int p_index) const { return N5GCInd::fld_names[p_index]; } +void NG__PagingRestriction::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spareBits; fld_vec[3]=&field_typeOfRestriction; fld_vec[4]=&field_psi7__0; fld_vec[5]=&field_psi15__8; fld_vec[6]=&field_spare; } + +NG__PagingRestriction::NG__PagingRestriction() : Record_Type() { init_vec(); } + +NG__PagingRestriction::NG__PagingRestriction(const NG__PagingRestriction& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_typeOfRestriction.is_bound() ) + field_typeOfRestriction = other_value.field_typeOfRestriction; +if (other_value.field_psi7__0.is_bound() ) + field_psi7__0 = other_value.field_psi7__0; +if (other_value.field_psi15__8.is_bound() ) + field_psi15__8 = other_value.field_psi15__8; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +init_vec(); +} + +NG__PagingRestriction::NG__PagingRestriction(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_typeOfRestriction, + const OPTIONAL& par_psi7__0, + const OPTIONAL& par_psi15__8, + const OPTIONAL& par_spare) : field_iei(par_iei), + field_iel(par_iel), + field_spareBits(par_spareBits), + field_typeOfRestriction(par_typeOfRestriction), + field_psi7__0(par_psi7__0), + field_psi15__8(par_psi15__8), + field_spare(par_spare) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PagingRestriction::get_descriptor() const { return &NG__PagingRestriction_descr_; } +const TTCN_Typedescriptor_t* NG__PagingRestriction::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B8__Type_descr_, &CommonDefs::B8__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NG__PagingRestriction::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PagingRestriction::fld_names[] = { "iei", "iel", "spareBits", "typeOfRestriction", "psi7_0", "psi15_8", "spare" }; +const char* NG__PagingRestriction::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PagingRestriction::optional_indexes[] = { 0, 4, 5, 6, -1 }; +const int* NG__PagingRestriction::get_optional_indexes() const { return optional_indexes; } + +const int NG__PagingRestriction::optional_indexes_asn[] = { 0, 4, 5, 6, -1 }; +const int* NG__PagingRestriction::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PagingRestriction_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +NG__PagingRestriction_template::NG__PagingRestriction_template(NG__PagingRestriction_template* p_precondition, NG__PagingRestriction_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PagingRestriction_template::NG__PagingRestriction_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PagingRestriction_template::~NG__PagingRestriction_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PagingRestriction_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PagingRestriction* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PagingRestriction_template& NG__PagingRestriction_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PagingRestriction_template& NG__PagingRestriction_template::operator=(const NG__PagingRestriction& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PagingRestriction_template& NG__PagingRestriction_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PagingRestriction_template& NG__PagingRestriction_template::operator=(const NG__PagingRestriction_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PagingRestriction NG__PagingRestriction_template::valueof() const +{ +NG__PagingRestriction ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__PagingRestriction_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__PagingRestriction_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__PagingRestriction_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__PagingRestriction_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__PagingRestriction_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__PagingRestriction_template::spareBits() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PagingRestriction_template::typeOfRestriction() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PagingRestriction_template::typeOfRestriction() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NG__PagingRestriction_template::psi7__0() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NG__PagingRestriction_template::psi7__0() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NG__PagingRestriction_template::psi15__8() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NG__PagingRestriction_template::psi15__8() const { return *(static_cast(get_at(5))); } +OCTETSTRING_template& NG__PagingRestriction_template::spare() { return *(static_cast(get_at(6))); } +const OCTETSTRING_template& NG__PagingRestriction_template::spare() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* NG__PagingRestriction_template::get_descriptor() const { return &NG__PagingRestriction_descr_; } +const char* NG__PagingRestriction_template::fld_name(int p_index) const { return NG__PagingRestriction::fld_names[p_index]; } + +const ServiceLvlAAParam ServiceLvlAAParamList::UNBOUND_ELEM; +ServiceLvlAAParam& ServiceLvlAAParamList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ServiceLvlAAParam& ServiceLvlAAParamList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ServiceLvlAAParam& ServiceLvlAAParamList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ServiceLvlAAParam& ServiceLvlAAParamList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ServiceLvlAAParamList ServiceLvlAAParamList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +ServiceLvlAAParamList ServiceLvlAAParamList::operator<<=(const INTEGER& rotate_count) const +{ +ServiceLvlAAParamList rec_of; +return *((ServiceLvlAAParamList*)rotl(rotate_count, &rec_of)); +} + +ServiceLvlAAParamList ServiceLvlAAParamList::operator>>=(const INTEGER& rotate_count) const +{ +ServiceLvlAAParamList rec_of; +return *((ServiceLvlAAParamList*)rotr(rotate_count, &rec_of)); +} + +ServiceLvlAAParamList ServiceLvlAAParamList::operator>>=(int rotate_count) const +{ +ServiceLvlAAParamList rec_of; +return *((ServiceLvlAAParamList*)rotr(rotate_count, &rec_of)); +} + +ServiceLvlAAParamList ServiceLvlAAParamList::operator+(const ServiceLvlAAParamList& other_value) const +{ +ServiceLvlAAParamList rec_of; +return *((ServiceLvlAAParamList*)concat(&other_value, &rec_of)); +} + +ServiceLvlAAParamList ServiceLvlAAParamList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const ServiceLvlAAParamList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.ServiceLvlAAParamList concatenation."); +} + +ServiceLvlAAParamList ServiceLvlAAParamList::operator+(null_type) const +{ +return *this; +} + +ServiceLvlAAParamList ServiceLvlAAParamList::substr(int index, int returncount) const +{ +ServiceLvlAAParamList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ServiceLvlAAParamList ServiceLvlAAParamList::replace(int index, int len, const ServiceLvlAAParamList& repl) const +{ +ServiceLvlAAParamList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ServiceLvlAAParamList ServiceLvlAAParamList::replace(int index, int len, const ServiceLvlAAParamList_template& repl) const +{ +ServiceLvlAAParamList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* ServiceLvlAAParamList::create_elem() const { return new ServiceLvlAAParam; } +const Base_Type* ServiceLvlAAParamList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* ServiceLvlAAParamList::get_descriptor() const { return &ServiceLvlAAParamList_descr_; } +ServiceLvlAAParamList_template::ServiceLvlAAParamList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +ServiceLvlAAParamList_template::ServiceLvlAAParamList_template(ServiceLvlAAParamList_template* p_precondition, ServiceLvlAAParamList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ServiceLvlAAParamList_template::ServiceLvlAAParamList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ServiceLvlAAParamList_template::~ServiceLvlAAParamList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ServiceLvlAAParamList_template::match_dynamic(const Base_Type* match_value) const +{ +const ServiceLvlAAParamList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +ServiceLvlAAParamList_template& ServiceLvlAAParamList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ServiceLvlAAParamList_template& ServiceLvlAAParamList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +ServiceLvlAAParamList_template& ServiceLvlAAParamList_template::operator=(const ServiceLvlAAParamList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ServiceLvlAAParamList_template& ServiceLvlAAParamList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ServiceLvlAAParamList_template& ServiceLvlAAParamList_template::operator=(const ServiceLvlAAParamList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ServiceLvlAAParamList_template ServiceLvlAAParamList_template::operator+(const ServiceLvlAAParamList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return ServiceLvlAAParamList_template(ANY_VALUE); +} +ServiceLvlAAParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ServiceLvlAAParamList_template ServiceLvlAAParamList_template::operator+(const ServiceLvlAAParamList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +ServiceLvlAAParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ServiceLvlAAParamList_template ServiceLvlAAParamList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return ServiceLvlAAParamList_template(ANY_VALUE); +} +ServiceLvlAAParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +ServiceLvlAAParamList_template ServiceLvlAAParamList_template::operator+(null_type) const +{ +return *this; +} + +ServiceLvlAAParam_template& ServiceLvlAAParamList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ServiceLvlAAParam_template& ServiceLvlAAParamList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ServiceLvlAAParam_template& ServiceLvlAAParamList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ServiceLvlAAParam_template& ServiceLvlAAParamList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ServiceLvlAAParamList ServiceLvlAAParamList_template::valueof() const +{ +ServiceLvlAAParamList ret_val; +valueofv(&ret_val); +return ret_val; +} + +ServiceLvlAAParamList ServiceLvlAAParamList_template::substr(int index, int returncount) const +{ +ServiceLvlAAParamList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ServiceLvlAAParamList ServiceLvlAAParamList_template::replace(int index, int len, const ServiceLvlAAParamList_template& repl) const +{ +ServiceLvlAAParamList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ServiceLvlAAParamList ServiceLvlAAParamList_template::replace(int index, int len, const ServiceLvlAAParamList& repl) const +{ +ServiceLvlAAParamList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* ServiceLvlAAParamList_template::create_elem() const { return new ServiceLvlAAParam_template; } +const TTCN_Typedescriptor_t* ServiceLvlAAParamList_template::get_descriptor() const { return &ServiceLvlAAParamList_descr_; } +void ServiceLvlAAParam::copy_value(const ServiceLvlAAParam& other_value) +{ +switch (other_value.union_selection) { +case ALT_id: +field_id = new SL__AA__DeviceId(*other_value.field_id); +break; +case ALT_serverAddress: +field_serverAddress = new SL__AA__ServerAddr(*other_value.field_serverAddress); +break; +case ALT_response: +field_response = new SL__AA__Response(*other_value.field_response); +break; +case ALT_payloadType: +field_payloadType = new SL__AA__PayloadType(*other_value.field_payloadType); +break; +case ALT_payload: +field_payload = new SL__AA__Payload(*other_value.field_payload); +break; +case ALT_pendingInd: +field_pendingInd = new SL__AA__PendingInd(*other_value.field_pendingInd); +break; +case ALT_statusInd: +field_statusInd = new SL__AA__StatusInd(*other_value.field_statusInd); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +ServiceLvlAAParam::ServiceLvlAAParam(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +ServiceLvlAAParam::ServiceLvlAAParam(const ServiceLvlAAParam& other_value) +: Base_Type(){ +copy_value(other_value); +} + +ServiceLvlAAParam::~ServiceLvlAAParam() +{ +clean_up(); +} + +ServiceLvlAAParam& ServiceLvlAAParam::operator=(const ServiceLvlAAParam& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean ServiceLvlAAParam::operator==(const ServiceLvlAAParam& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_id: +return *field_id == *other_value.field_id; +case ALT_serverAddress: +return *field_serverAddress == *other_value.field_serverAddress; +case ALT_response: +return *field_response == *other_value.field_response; +case ALT_payloadType: +return *field_payloadType == *other_value.field_payloadType; +case ALT_payload: +return *field_payload == *other_value.field_payload; +case ALT_pendingInd: +return *field_pendingInd == *other_value.field_pendingInd; +case ALT_statusInd: +return *field_statusInd == *other_value.field_statusInd; +default: +return FALSE; +} +} + +SL__AA__DeviceId& ServiceLvlAAParam::id() +{ +if (union_selection != ALT_id) { +clean_up(); +field_id = new SL__AA__DeviceId; +union_selection = ALT_id; +} +return *field_id; +} + +const SL__AA__DeviceId& ServiceLvlAAParam::id() const +{ +if (union_selection != ALT_id) TTCN_error("Using non-selected field id in a value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *field_id; +} + +SL__AA__ServerAddr& ServiceLvlAAParam::serverAddress() +{ +if (union_selection != ALT_serverAddress) { +clean_up(); +field_serverAddress = new SL__AA__ServerAddr; +union_selection = ALT_serverAddress; +} +return *field_serverAddress; +} + +const SL__AA__ServerAddr& ServiceLvlAAParam::serverAddress() const +{ +if (union_selection != ALT_serverAddress) TTCN_error("Using non-selected field serverAddress in a value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *field_serverAddress; +} + +SL__AA__Response& ServiceLvlAAParam::response() +{ +if (union_selection != ALT_response) { +clean_up(); +field_response = new SL__AA__Response; +union_selection = ALT_response; +} +return *field_response; +} + +const SL__AA__Response& ServiceLvlAAParam::response() const +{ +if (union_selection != ALT_response) TTCN_error("Using non-selected field response in a value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *field_response; +} + +SL__AA__PayloadType& ServiceLvlAAParam::payloadType() +{ +if (union_selection != ALT_payloadType) { +clean_up(); +field_payloadType = new SL__AA__PayloadType; +union_selection = ALT_payloadType; +} +return *field_payloadType; +} + +const SL__AA__PayloadType& ServiceLvlAAParam::payloadType() const +{ +if (union_selection != ALT_payloadType) TTCN_error("Using non-selected field payloadType in a value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *field_payloadType; +} + +SL__AA__Payload& ServiceLvlAAParam::payload() +{ +if (union_selection != ALT_payload) { +clean_up(); +field_payload = new SL__AA__Payload; +union_selection = ALT_payload; +} +return *field_payload; +} + +const SL__AA__Payload& ServiceLvlAAParam::payload() const +{ +if (union_selection != ALT_payload) TTCN_error("Using non-selected field payload in a value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *field_payload; +} + +SL__AA__PendingInd& ServiceLvlAAParam::pendingInd() +{ +if (union_selection != ALT_pendingInd) { +clean_up(); +field_pendingInd = new SL__AA__PendingInd; +union_selection = ALT_pendingInd; +} +return *field_pendingInd; +} + +const SL__AA__PendingInd& ServiceLvlAAParam::pendingInd() const +{ +if (union_selection != ALT_pendingInd) TTCN_error("Using non-selected field pendingInd in a value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *field_pendingInd; +} + +SL__AA__StatusInd& ServiceLvlAAParam::statusInd() +{ +if (union_selection != ALT_statusInd) { +clean_up(); +field_statusInd = new SL__AA__StatusInd; +union_selection = ALT_statusInd; +} +return *field_statusInd; +} + +const SL__AA__StatusInd& ServiceLvlAAParam::statusInd() const +{ +if (union_selection != ALT_statusInd) TTCN_error("Using non-selected field statusInd in a value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *field_statusInd; +} + +boolean ServiceLvlAAParam::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return union_selection == checked_selection; +} + +boolean ServiceLvlAAParam::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean ServiceLvlAAParam::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_id: return field_id->is_value(); +case ALT_serverAddress: return field_serverAddress->is_value(); +case ALT_response: return field_response->is_value(); +case ALT_payloadType: return field_payloadType->is_value(); +case ALT_payload: return field_payload->is_value(); +case ALT_pendingInd: return field_pendingInd->is_value(); +case ALT_statusInd: return field_statusInd->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void ServiceLvlAAParam::clean_up() +{ +switch (union_selection) { +case ALT_id: + delete field_id; + break; +case ALT_serverAddress: + delete field_serverAddress; + break; +case ALT_response: + delete field_response; + break; +case ALT_payloadType: + delete field_payloadType; + break; +case ALT_payload: + delete field_payload; + break; +case ALT_pendingInd: + delete field_pendingInd; + break; +case ALT_statusInd: + delete field_statusInd; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean ServiceLvlAAParam::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void ServiceLvlAAParam::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* ServiceLvlAAParam::clone() const { return new ServiceLvlAAParam(*this); } +const TTCN_Typedescriptor_t* ServiceLvlAAParam::get_descriptor() const { return &ServiceLvlAAParam_descr_; } +void ServiceLvlAAParam::log() const +{ +switch (union_selection) { +case ALT_id: +TTCN_Logger::log_event_str("{ id := "); +field_id->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_serverAddress: +TTCN_Logger::log_event_str("{ serverAddress := "); +field_serverAddress->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_response: +TTCN_Logger::log_event_str("{ response := "); +field_response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_payloadType: +TTCN_Logger::log_event_str("{ payloadType := "); +field_payloadType->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_payload: +TTCN_Logger::log_event_str("{ payload := "); +field_payload->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_pendingInd: +TTCN_Logger::log_event_str("{ pendingInd := "); +field_pendingInd->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_statusInd: +TTCN_Logger::log_event_str("{ statusInd := "); +field_statusInd->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void ServiceLvlAAParam::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NG_NAS_TypeDefs.ServiceLvlAAParam'"); + } + if (strcmp("id", param_field) == 0) { + id().set_param(param); + return; + } else if (strcmp("serverAddress", param_field) == 0) { + serverAddress().set_param(param); + return; + } else if (strcmp("response", param_field) == 0) { + response().set_param(param); + return; + } else if (strcmp("payloadType", param_field) == 0) { + payloadType().set_param(param); + return; + } else if (strcmp("payload", param_field) == 0) { + payload().set_param(param); + return; + } else if (strcmp("pendingInd", param_field) == 0) { + pendingInd().set_param(param); + return; + } else if (strcmp("statusInd", param_field) == 0) { + statusInd().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NG_NAS_TypeDefs.ServiceLvlAAParam'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "id")) { + id().set_param(*mp_last); + if (!id().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "serverAddress")) { + serverAddress().set_param(*mp_last); + if (!serverAddress().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "response")) { + response().set_param(*mp_last); + if (!response().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "payloadType")) { + payloadType().set_param(*mp_last); + if (!payloadType().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "payload")) { + payload().set_param(*mp_last); + if (!payload().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "pendingInd")) { + pendingInd().set_param(*mp_last); + if (!pendingInd().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "statusInd")) { + statusInd().set_param(*mp_last); + if (!statusInd().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NG_NAS_TypeDefs.ServiceLvlAAParam.", last_name); +} + +Module_Param* ServiceLvlAAParam::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NG_NAS_TypeDefs.ServiceLvlAAParam'"); + } + if (strcmp("id", param_field) == 0) { + return id().get_param(param_name); + } else if (strcmp("serverAddress", param_field) == 0) { + return serverAddress().get_param(param_name); + } else if (strcmp("response", param_field) == 0) { + return response().get_param(param_name); + } else if (strcmp("payloadType", param_field) == 0) { + return payloadType().get_param(param_name); + } else if (strcmp("payload", param_field) == 0) { + return payload().get_param(param_name); + } else if (strcmp("pendingInd", param_field) == 0) { + return pendingInd().get_param(param_name); + } else if (strcmp("statusInd", param_field) == 0) { + return statusInd().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `ServiceLvlAAParam'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_id: + mp_field = field_id->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("id"))); + break; + case ALT_serverAddress: + mp_field = field_serverAddress->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("serverAddress"))); + break; + case ALT_response: + mp_field = field_response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("response"))); + break; + case ALT_payloadType: + mp_field = field_payloadType->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("payloadType"))); + break; + case ALT_payload: + mp_field = field_payload->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("payload"))); + break; + case ALT_pendingInd: + mp_field = field_pendingInd->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pendingInd"))); + break; + case ALT_statusInd: + mp_field = field_statusInd->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("statusInd"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void ServiceLvlAAParam::set_implicit_omit() +{ +switch (union_selection) { +case ALT_id: +field_id->set_implicit_omit(); break; +case ALT_serverAddress: +field_serverAddress->set_implicit_omit(); break; +case ALT_response: +field_response->set_implicit_omit(); break; +case ALT_payloadType: +field_payloadType->set_implicit_omit(); break; +case ALT_payload: +field_payload->set_implicit_omit(); break; +case ALT_pendingInd: +field_pendingInd->set_implicit_omit(); break; +case ALT_statusInd: +field_statusInd->set_implicit_omit(); break; +default: break; +} +} + +void ServiceLvlAAParam::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_id: +field_id->encode_text(text_buf); +break; +case ALT_serverAddress: +field_serverAddress->encode_text(text_buf); +break; +case ALT_response: +field_response->encode_text(text_buf); +break; +case ALT_payloadType: +field_payloadType->encode_text(text_buf); +break; +case ALT_payload: +field_payload->encode_text(text_buf); +break; +case ALT_pendingInd: +field_pendingInd->encode_text(text_buf); +break; +case ALT_statusInd: +field_statusInd->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +} + +void ServiceLvlAAParam::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_id: +id().decode_text(text_buf); +break; +case ALT_serverAddress: +serverAddress().decode_text(text_buf); +break; +case ALT_response: +response().decode_text(text_buf); +break; +case ALT_payloadType: +payloadType().decode_text(text_buf); +break; +case ALT_payload: +payload().decode_text(text_buf); +break; +case ALT_pendingInd: +pendingInd().decode_text(text_buf); +break; +case ALT_statusInd: +statusInd().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +} + +void ServiceLvlAAParam_template::copy_value(const ServiceLvlAAParam& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case ServiceLvlAAParam::ALT_id: +single_value.field_id = new SL__AA__DeviceId_template(other_value.id()); +break; +case ServiceLvlAAParam::ALT_serverAddress: +single_value.field_serverAddress = new SL__AA__ServerAddr_template(other_value.serverAddress()); +break; +case ServiceLvlAAParam::ALT_response: +single_value.field_response = new SL__AA__Response_template(other_value.response()); +break; +case ServiceLvlAAParam::ALT_payloadType: +single_value.field_payloadType = new SL__AA__PayloadType_template(other_value.payloadType()); +break; +case ServiceLvlAAParam::ALT_payload: +single_value.field_payload = new SL__AA__Payload_template(other_value.payload()); +break; +case ServiceLvlAAParam::ALT_pendingInd: +single_value.field_pendingInd = new SL__AA__PendingInd_template(other_value.pendingInd()); +break; +case ServiceLvlAAParam::ALT_statusInd: +single_value.field_statusInd = new SL__AA__StatusInd_template(other_value.statusInd()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void ServiceLvlAAParam_template::copy_template(const ServiceLvlAAParam_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case ServiceLvlAAParam::ALT_id: +single_value.field_id = new SL__AA__DeviceId_template(*other_value.single_value.field_id); +break; +case ServiceLvlAAParam::ALT_serverAddress: +single_value.field_serverAddress = new SL__AA__ServerAddr_template(*other_value.single_value.field_serverAddress); +break; +case ServiceLvlAAParam::ALT_response: +single_value.field_response = new SL__AA__Response_template(*other_value.single_value.field_response); +break; +case ServiceLvlAAParam::ALT_payloadType: +single_value.field_payloadType = new SL__AA__PayloadType_template(*other_value.single_value.field_payloadType); +break; +case ServiceLvlAAParam::ALT_payload: +single_value.field_payload = new SL__AA__Payload_template(*other_value.single_value.field_payload); +break; +case ServiceLvlAAParam::ALT_pendingInd: +single_value.field_pendingInd = new SL__AA__PendingInd_template(*other_value.single_value.field_pendingInd); +break; +case ServiceLvlAAParam::ALT_statusInd: +single_value.field_statusInd = new SL__AA__StatusInd_template(*other_value.single_value.field_statusInd); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new ServiceLvlAAParam_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new ServiceLvlAAParam_template(*other_value.implication_.precondition); +implication_.implied_template = new ServiceLvlAAParam_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +ServiceLvlAAParam_template::ServiceLvlAAParam_template(): err_descr(NULL) +{ +} + +ServiceLvlAAParam_template::ServiceLvlAAParam_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +ServiceLvlAAParam_template::ServiceLvlAAParam_template(const ServiceLvlAAParam& other_value) +{ +copy_value(other_value); +} + +ServiceLvlAAParam_template::ServiceLvlAAParam_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const ServiceLvlAAParam&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam from an unbound optional field."); +} +} + +ServiceLvlAAParam_template::ServiceLvlAAParam_template(ServiceLvlAAParam_template* p_precondition, ServiceLvlAAParam_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +ServiceLvlAAParam_template::ServiceLvlAAParam_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +ServiceLvlAAParam_template::ServiceLvlAAParam_template(const ServiceLvlAAParam_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +ServiceLvlAAParam_template::~ServiceLvlAAParam_template() +{ +clean_up(); +} + +void ServiceLvlAAParam_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case ServiceLvlAAParam::ALT_id: +delete single_value.field_id; +break; +case ServiceLvlAAParam::ALT_serverAddress: +delete single_value.field_serverAddress; +break; +case ServiceLvlAAParam::ALT_response: +delete single_value.field_response; +break; +case ServiceLvlAAParam::ALT_payloadType: +delete single_value.field_payloadType; +break; +case ServiceLvlAAParam::ALT_payload: +delete single_value.field_payload; +break; +case ServiceLvlAAParam::ALT_pendingInd: +delete single_value.field_pendingInd; +break; +case ServiceLvlAAParam::ALT_statusInd: +delete single_value.field_statusInd; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +ServiceLvlAAParam_template& ServiceLvlAAParam_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +ServiceLvlAAParam_template& ServiceLvlAAParam_template::operator=(const ServiceLvlAAParam& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +ServiceLvlAAParam_template& ServiceLvlAAParam_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const ServiceLvlAAParam&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +return *this; +} + +ServiceLvlAAParam_template& ServiceLvlAAParam_template::operator=(const ServiceLvlAAParam_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean ServiceLvlAAParam_template::match(const ServiceLvlAAParam& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +ServiceLvlAAParam::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == ServiceLvlAAParam::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case ServiceLvlAAParam::ALT_id: +return single_value.field_id->match(other_value.id(), legacy); +case ServiceLvlAAParam::ALT_serverAddress: +return single_value.field_serverAddress->match(other_value.serverAddress(), legacy); +case ServiceLvlAAParam::ALT_response: +return single_value.field_response->match(other_value.response(), legacy); +case ServiceLvlAAParam::ALT_payloadType: +return single_value.field_payloadType->match(other_value.payloadType(), legacy); +case ServiceLvlAAParam::ALT_payload: +return single_value.field_payload->match(other_value.payload(), legacy); +case ServiceLvlAAParam::ALT_pendingInd: +return single_value.field_pendingInd->match(other_value.pendingInd(), legacy); +case ServiceLvlAAParam::ALT_statusInd: +return single_value.field_statusInd->match(other_value.statusInd(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +return FALSE; +} + +boolean ServiceLvlAAParam_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case ServiceLvlAAParam::ALT_id: +return single_value.field_id->is_value(); +case ServiceLvlAAParam::ALT_serverAddress: +return single_value.field_serverAddress->is_value(); +case ServiceLvlAAParam::ALT_response: +return single_value.field_response->is_value(); +case ServiceLvlAAParam::ALT_payloadType: +return single_value.field_payloadType->is_value(); +case ServiceLvlAAParam::ALT_payload: +return single_value.field_payload->is_value(); +case ServiceLvlAAParam::ALT_pendingInd: +return single_value.field_pendingInd->is_value(); +case ServiceLvlAAParam::ALT_statusInd: +return single_value.field_statusInd->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +} + +ServiceLvlAAParam ServiceLvlAAParam_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +ServiceLvlAAParam ret_val; +switch (single_value.union_selection) { +case ServiceLvlAAParam::ALT_id: +ret_val.id() = single_value.field_id->valueof(); +break; +case ServiceLvlAAParam::ALT_serverAddress: +ret_val.serverAddress() = single_value.field_serverAddress->valueof(); +break; +case ServiceLvlAAParam::ALT_response: +ret_val.response() = single_value.field_response->valueof(); +break; +case ServiceLvlAAParam::ALT_payloadType: +ret_val.payloadType() = single_value.field_payloadType->valueof(); +break; +case ServiceLvlAAParam::ALT_payload: +ret_val.payload() = single_value.field_payload->valueof(); +break; +case ServiceLvlAAParam::ALT_pendingInd: +ret_val.pendingInd() = single_value.field_pendingInd->valueof(); +break; +case ServiceLvlAAParam::ALT_statusInd: +ret_val.statusInd() = single_value.field_statusInd->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +ServiceLvlAAParam_template& ServiceLvlAAParam_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return value_list.list_value[list_index]; +} +void ServiceLvlAAParam_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new ServiceLvlAAParam_template[list_length]; +} + +ServiceLvlAAParam::union_selection_type ServiceLvlAAParam_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam"); +return single_value.union_selection; +} + +SL__AA__DeviceId_template& ServiceLvlAAParam_template::id() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != ServiceLvlAAParam::ALT_id) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_id = new SL__AA__DeviceId_template(ANY_VALUE); +else single_value.field_id = new SL__AA__DeviceId_template; +single_value.union_selection = ServiceLvlAAParam::ALT_id; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_id; +} + +const SL__AA__DeviceId_template& ServiceLvlAAParam_template::id() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field id in a non-specific template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (single_value.union_selection != ServiceLvlAAParam::ALT_id) TTCN_error("Accessing non-selected field id in a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *single_value.field_id; +} + +SL__AA__ServerAddr_template& ServiceLvlAAParam_template::serverAddress() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != ServiceLvlAAParam::ALT_serverAddress) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_serverAddress = new SL__AA__ServerAddr_template(ANY_VALUE); +else single_value.field_serverAddress = new SL__AA__ServerAddr_template; +single_value.union_selection = ServiceLvlAAParam::ALT_serverAddress; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_serverAddress; +} + +const SL__AA__ServerAddr_template& ServiceLvlAAParam_template::serverAddress() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field serverAddress in a non-specific template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (single_value.union_selection != ServiceLvlAAParam::ALT_serverAddress) TTCN_error("Accessing non-selected field serverAddress in a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *single_value.field_serverAddress; +} + +SL__AA__Response_template& ServiceLvlAAParam_template::response() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != ServiceLvlAAParam::ALT_response) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_response = new SL__AA__Response_template(ANY_VALUE); +else single_value.field_response = new SL__AA__Response_template; +single_value.union_selection = ServiceLvlAAParam::ALT_response; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_response; +} + +const SL__AA__Response_template& ServiceLvlAAParam_template::response() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field response in a non-specific template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (single_value.union_selection != ServiceLvlAAParam::ALT_response) TTCN_error("Accessing non-selected field response in a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *single_value.field_response; +} + +SL__AA__PayloadType_template& ServiceLvlAAParam_template::payloadType() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != ServiceLvlAAParam::ALT_payloadType) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_payloadType = new SL__AA__PayloadType_template(ANY_VALUE); +else single_value.field_payloadType = new SL__AA__PayloadType_template; +single_value.union_selection = ServiceLvlAAParam::ALT_payloadType; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_payloadType; +} + +const SL__AA__PayloadType_template& ServiceLvlAAParam_template::payloadType() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field payloadType in a non-specific template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (single_value.union_selection != ServiceLvlAAParam::ALT_payloadType) TTCN_error("Accessing non-selected field payloadType in a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *single_value.field_payloadType; +} + +SL__AA__Payload_template& ServiceLvlAAParam_template::payload() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != ServiceLvlAAParam::ALT_payload) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_payload = new SL__AA__Payload_template(ANY_VALUE); +else single_value.field_payload = new SL__AA__Payload_template; +single_value.union_selection = ServiceLvlAAParam::ALT_payload; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_payload; +} + +const SL__AA__Payload_template& ServiceLvlAAParam_template::payload() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field payload in a non-specific template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (single_value.union_selection != ServiceLvlAAParam::ALT_payload) TTCN_error("Accessing non-selected field payload in a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *single_value.field_payload; +} + +SL__AA__PendingInd_template& ServiceLvlAAParam_template::pendingInd() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != ServiceLvlAAParam::ALT_pendingInd) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_pendingInd = new SL__AA__PendingInd_template(ANY_VALUE); +else single_value.field_pendingInd = new SL__AA__PendingInd_template; +single_value.union_selection = ServiceLvlAAParam::ALT_pendingInd; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_pendingInd; +} + +const SL__AA__PendingInd_template& ServiceLvlAAParam_template::pendingInd() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field pendingInd in a non-specific template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (single_value.union_selection != ServiceLvlAAParam::ALT_pendingInd) TTCN_error("Accessing non-selected field pendingInd in a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *single_value.field_pendingInd; +} + +SL__AA__StatusInd_template& ServiceLvlAAParam_template::statusInd() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != ServiceLvlAAParam::ALT_statusInd) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_statusInd = new SL__AA__StatusInd_template(ANY_VALUE); +else single_value.field_statusInd = new SL__AA__StatusInd_template; +single_value.union_selection = ServiceLvlAAParam::ALT_statusInd; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_statusInd; +} + +const SL__AA__StatusInd_template& ServiceLvlAAParam_template::statusInd() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field statusInd in a non-specific template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +if (single_value.union_selection != ServiceLvlAAParam::ALT_statusInd) TTCN_error("Accessing non-selected field statusInd in a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return *single_value.field_statusInd; +} + +boolean ServiceLvlAAParam_template::ischosen(ServiceLvlAAParam::union_selection_type checked_selection) const +{ +if (checked_selection == ServiceLvlAAParam::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == ServiceLvlAAParam::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void ServiceLvlAAParam_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void ServiceLvlAAParam_template::set_value(template_sel other_value) { *this = other_value; } +void ServiceLvlAAParam_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* ServiceLvlAAParam_template::clone() const { return new ServiceLvlAAParam_template(*this); } +const TTCN_Typedescriptor_t* ServiceLvlAAParam_template::get_descriptor() const { return &ServiceLvlAAParam_descr_; } +boolean ServiceLvlAAParam_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void ServiceLvlAAParam_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void ServiceLvlAAParam_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case ServiceLvlAAParam::ALT_id: +TTCN_Logger::log_event_str("{ id := "); +single_value.field_id->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ServiceLvlAAParam::ALT_serverAddress: +TTCN_Logger::log_event_str("{ serverAddress := "); +single_value.field_serverAddress->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ServiceLvlAAParam::ALT_response: +TTCN_Logger::log_event_str("{ response := "); +single_value.field_response->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ServiceLvlAAParam::ALT_payloadType: +TTCN_Logger::log_event_str("{ payloadType := "); +single_value.field_payloadType->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ServiceLvlAAParam::ALT_payload: +TTCN_Logger::log_event_str("{ payload := "); +single_value.field_payload->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ServiceLvlAAParam::ALT_pendingInd: +TTCN_Logger::log_event_str("{ pendingInd := "); +single_value.field_pendingInd->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ServiceLvlAAParam::ALT_statusInd: +TTCN_Logger::log_event_str("{ statusInd := "); +single_value.field_statusInd->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void ServiceLvlAAParam_template::log_match(const ServiceLvlAAParam& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case ServiceLvlAAParam::ALT_id: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".id"); +single_value.field_id->log_match(match_value.id(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ id := "); +single_value.field_id->log_match(match_value.id(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case ServiceLvlAAParam::ALT_serverAddress: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".serverAddress"); +single_value.field_serverAddress->log_match(match_value.serverAddress(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ serverAddress := "); +single_value.field_serverAddress->log_match(match_value.serverAddress(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case ServiceLvlAAParam::ALT_response: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".response"); +single_value.field_response->log_match(match_value.response(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ response := "); +single_value.field_response->log_match(match_value.response(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case ServiceLvlAAParam::ALT_payloadType: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".payloadType"); +single_value.field_payloadType->log_match(match_value.payloadType(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ payloadType := "); +single_value.field_payloadType->log_match(match_value.payloadType(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case ServiceLvlAAParam::ALT_payload: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".payload"); +single_value.field_payload->log_match(match_value.payload(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ payload := "); +single_value.field_payload->log_match(match_value.payload(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case ServiceLvlAAParam::ALT_pendingInd: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".pendingInd"); +single_value.field_pendingInd->log_match(match_value.pendingInd(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ pendingInd := "); +single_value.field_pendingInd->log_match(match_value.pendingInd(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case ServiceLvlAAParam::ALT_statusInd: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".statusInd"); +single_value.field_statusInd->log_match(match_value.statusInd(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ statusInd := "); +single_value.field_statusInd->log_match(match_value.statusInd(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void ServiceLvlAAParam_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case ServiceLvlAAParam::ALT_id: +single_value.field_id->encode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_serverAddress: +single_value.field_serverAddress->encode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_response: +single_value.field_response->encode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_payloadType: +single_value.field_payloadType->encode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_payload: +single_value.field_payload->encode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_pendingInd: +single_value.field_pendingInd->encode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_statusInd: +single_value.field_statusInd->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +} + +void ServiceLvlAAParam_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = ServiceLvlAAParam::UNBOUND_VALUE; +ServiceLvlAAParam::union_selection_type new_selection = (ServiceLvlAAParam::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case ServiceLvlAAParam::ALT_id: +single_value.field_id = new SL__AA__DeviceId_template; +single_value.field_id->decode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_serverAddress: +single_value.field_serverAddress = new SL__AA__ServerAddr_template; +single_value.field_serverAddress->decode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_response: +single_value.field_response = new SL__AA__Response_template; +single_value.field_response->decode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_payloadType: +single_value.field_payloadType = new SL__AA__PayloadType_template; +single_value.field_payloadType->decode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_payload: +single_value.field_payload = new SL__AA__Payload_template; +single_value.field_payload->decode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_pendingInd: +single_value.field_pendingInd = new SL__AA__PendingInd_template; +single_value.field_pendingInd->decode_text(text_buf); +break; +case ServiceLvlAAParam::ALT_statusInd: +single_value.field_statusInd = new SL__AA__StatusInd_template; +single_value.field_statusInd->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new ServiceLvlAAParam_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +} + +boolean ServiceLvlAAParam_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean ServiceLvlAAParam_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NG_NAS_TypeDefs.ServiceLvlAAParam'"); + } + if (strcmp("id", param_field) == 0) { + id().set_param(param); + return; + } else if (strcmp("serverAddress", param_field) == 0) { + serverAddress().set_param(param); + return; + } else if (strcmp("response", param_field) == 0) { + response().set_param(param); + return; + } else if (strcmp("payloadType", param_field) == 0) { + payloadType().set_param(param); + return; + } else if (strcmp("payload", param_field) == 0) { + payload().set_param(param); + return; + } else if (strcmp("pendingInd", param_field) == 0) { + pendingInd().set_param(param); + return; + } else if (strcmp("statusInd", param_field) == 0) { + statusInd().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NG_NAS_TypeDefs.ServiceLvlAAParam'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + ServiceLvlAAParam_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NG_NAS_TypeDefs.ServiceLvlAAParam"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "id")) { + id().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "serverAddress")) { + serverAddress().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "response")) { + response().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "payloadType")) { + payloadType().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "payload")) { + payload().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "pendingInd")) { + pendingInd().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "statusInd")) { + statusInd().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NG_NAS_TypeDefs.ServiceLvlAAParam.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + ServiceLvlAAParam_template* precondition = new ServiceLvlAAParam_template; + precondition->set_param(*m_p->get_elem(0)); + ServiceLvlAAParam_template* implied_template = new ServiceLvlAAParam_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = ServiceLvlAAParam_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NG_NAS_TypeDefs.ServiceLvlAAParam"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* ServiceLvlAAParam_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NG_NAS_TypeDefs.ServiceLvlAAParam'"); + } + if (strcmp("id", param_field) == 0) { + return id().get_param(param_name); + } else if (strcmp("serverAddress", param_field) == 0) { + return serverAddress().get_param(param_name); + } else if (strcmp("response", param_field) == 0) { + return response().get_param(param_name); + } else if (strcmp("payloadType", param_field) == 0) { + return payloadType().get_param(param_name); + } else if (strcmp("payload", param_field) == 0) { + return payload().get_param(param_name); + } else if (strcmp("pendingInd", param_field) == 0) { + return pendingInd().get_param(param_name); + } else if (strcmp("statusInd", param_field) == 0) { + return statusInd().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `ServiceLvlAAParam'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case ServiceLvlAAParam::ALT_id: + mp_field = single_value.field_id->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("id"))); + break; + case ServiceLvlAAParam::ALT_serverAddress: + mp_field = single_value.field_serverAddress->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("serverAddress"))); + break; + case ServiceLvlAAParam::ALT_response: + mp_field = single_value.field_response->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("response"))); + break; + case ServiceLvlAAParam::ALT_payloadType: + mp_field = single_value.field_payloadType->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("payloadType"))); + break; + case ServiceLvlAAParam::ALT_payload: + mp_field = single_value.field_payload->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("payload"))); + break; + case ServiceLvlAAParam::ALT_pendingInd: + mp_field = single_value.field_pendingInd->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("pendingInd"))); + break; + case ServiceLvlAAParam::ALT_statusInd: + mp_field = single_value.field_statusInd->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("statusInd"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void ServiceLvlAAParam_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case ServiceLvlAAParam::ALT_id: +single_value.field_id->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.ServiceLvlAAParam"); +return; +case ServiceLvlAAParam::ALT_serverAddress: +single_value.field_serverAddress->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.ServiceLvlAAParam"); +return; +case ServiceLvlAAParam::ALT_response: +single_value.field_response->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.ServiceLvlAAParam"); +return; +case ServiceLvlAAParam::ALT_payloadType: +single_value.field_payloadType->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.ServiceLvlAAParam"); +return; +case ServiceLvlAAParam::ALT_payload: +single_value.field_payload->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.ServiceLvlAAParam"); +return; +case ServiceLvlAAParam::ALT_pendingInd: +single_value.field_pendingInd->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.ServiceLvlAAParam"); +return; +case ServiceLvlAAParam::ALT_statusInd: +single_value.field_statusInd->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.ServiceLvlAAParam"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NG_NAS_TypeDefs.ServiceLvlAAParam."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NG_NAS_TypeDefs.ServiceLvlAAParam"); +} + +void SL__AA__DeviceId::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_id; } + +SL__AA__DeviceId::SL__AA__DeviceId() : Record_Type() { init_vec(); } + +SL__AA__DeviceId::SL__AA__DeviceId(const SL__AA__DeviceId& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +init_vec(); +} + +SL__AA__DeviceId::SL__AA__DeviceId(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_id) : field_iei(par_iei), + field_iel(par_iel), + field_id(par_id) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SL__AA__DeviceId::get_descriptor() const { return &SL__AA__DeviceId_descr_; } +const TTCN_Typedescriptor_t* SL__AA__DeviceId::fld_descriptors[] = { &SL__AA__DeviceId_iei_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* SL__AA__DeviceId::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SL__AA__DeviceId::fld_names[] = { "iei", "iel", "id" }; +const char* SL__AA__DeviceId::fld_name(int p_index) const { return fld_names[p_index]; } + +void SL__AA__DeviceId_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +SL__AA__DeviceId_template::SL__AA__DeviceId_template(SL__AA__DeviceId_template* p_precondition, SL__AA__DeviceId_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SL__AA__DeviceId_template::SL__AA__DeviceId_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SL__AA__DeviceId_template::~SL__AA__DeviceId_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SL__AA__DeviceId_template::match_dynamic(const Base_Type* match_value) const +{ +const SL__AA__DeviceId* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SL__AA__DeviceId_template& SL__AA__DeviceId_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SL__AA__DeviceId_template& SL__AA__DeviceId_template::operator=(const SL__AA__DeviceId& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SL__AA__DeviceId_template& SL__AA__DeviceId_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SL__AA__DeviceId_template& SL__AA__DeviceId_template::operator=(const SL__AA__DeviceId_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SL__AA__DeviceId SL__AA__DeviceId_template::valueof() const +{ +SL__AA__DeviceId ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SL__AA__DeviceId_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SL__AA__DeviceId_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SL__AA__DeviceId_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SL__AA__DeviceId_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& SL__AA__DeviceId_template::id() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& SL__AA__DeviceId_template::id() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SL__AA__DeviceId_template::get_descriptor() const { return &SL__AA__DeviceId_descr_; } +const char* SL__AA__DeviceId_template::fld_name(int p_index) const { return SL__AA__DeviceId::fld_names[p_index]; } +void SL__AA__ServerAddr::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_addrType; fld_vec[3]=&field_addr; } + +SL__AA__ServerAddr::SL__AA__ServerAddr() : Record_Type() { init_vec(); } + +SL__AA__ServerAddr::SL__AA__ServerAddr(const SL__AA__ServerAddr& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_addrType.is_bound() ) + field_addrType = other_value.field_addrType; +if (other_value.field_addr.is_bound() ) + field_addr = other_value.field_addr; +init_vec(); +} + +SL__AA__ServerAddr::SL__AA__ServerAddr(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_addrType, + const OCTETSTRING& par_addr) : field_iei(par_iei), + field_iel(par_iel), + field_addrType(par_addrType), + field_addr(par_addr) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SL__AA__ServerAddr::get_descriptor() const { return &SL__AA__ServerAddr_descr_; } +const TTCN_Typedescriptor_t* SL__AA__ServerAddr::fld_descriptors[] = { &SL__AA__ServerAddr_iei_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* SL__AA__ServerAddr::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SL__AA__ServerAddr::fld_names[] = { "iei", "iel", "addrType", "addr" }; +const char* SL__AA__ServerAddr::fld_name(int p_index) const { return fld_names[p_index]; } + +void SL__AA__ServerAddr_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +SL__AA__ServerAddr_template::SL__AA__ServerAddr_template(SL__AA__ServerAddr_template* p_precondition, SL__AA__ServerAddr_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SL__AA__ServerAddr_template::SL__AA__ServerAddr_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SL__AA__ServerAddr_template::~SL__AA__ServerAddr_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SL__AA__ServerAddr_template::match_dynamic(const Base_Type* match_value) const +{ +const SL__AA__ServerAddr* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SL__AA__ServerAddr_template& SL__AA__ServerAddr_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SL__AA__ServerAddr_template& SL__AA__ServerAddr_template::operator=(const SL__AA__ServerAddr& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SL__AA__ServerAddr_template& SL__AA__ServerAddr_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SL__AA__ServerAddr_template& SL__AA__ServerAddr_template::operator=(const SL__AA__ServerAddr_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SL__AA__ServerAddr SL__AA__ServerAddr_template::valueof() const +{ +SL__AA__ServerAddr ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SL__AA__ServerAddr_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SL__AA__ServerAddr_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SL__AA__ServerAddr_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SL__AA__ServerAddr_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& SL__AA__ServerAddr_template::addrType() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& SL__AA__ServerAddr_template::addrType() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& SL__AA__ServerAddr_template::addr() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& SL__AA__ServerAddr_template::addr() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* SL__AA__ServerAddr_template::get_descriptor() const { return &SL__AA__ServerAddr_descr_; } +const char* SL__AA__ServerAddr_template::fld_name(int p_index) const { return SL__AA__ServerAddr::fld_names[p_index]; } +void SL__AA__Response::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_c2ar; fld_vec[4]=&field_slar; } + +SL__AA__Response::SL__AA__Response() : Record_Type() { init_vec(); } + +SL__AA__Response::SL__AA__Response(const SL__AA__Response& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_c2ar.is_bound() ) + field_c2ar = other_value.field_c2ar; +if (other_value.field_slar.is_bound() ) + field_slar = other_value.field_slar; +init_vec(); +} + +SL__AA__Response::SL__AA__Response(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_c2ar, + const BITSTRING& par_slar) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_c2ar(par_c2ar), + field_slar(par_slar) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SL__AA__Response::get_descriptor() const { return &SL__AA__Response_descr_; } +const TTCN_Typedescriptor_t* SL__AA__Response::fld_descriptors[] = { &SL__AA__Response_iei_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* SL__AA__Response::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SL__AA__Response::fld_names[] = { "iei", "iel", "spare", "c2ar", "slar" }; +const char* SL__AA__Response::fld_name(int p_index) const { return fld_names[p_index]; } + +void SL__AA__Response_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SL__AA__Response_template::SL__AA__Response_template(SL__AA__Response_template* p_precondition, SL__AA__Response_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SL__AA__Response_template::SL__AA__Response_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SL__AA__Response_template::~SL__AA__Response_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SL__AA__Response_template::match_dynamic(const Base_Type* match_value) const +{ +const SL__AA__Response* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SL__AA__Response_template& SL__AA__Response_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SL__AA__Response_template& SL__AA__Response_template::operator=(const SL__AA__Response& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SL__AA__Response_template& SL__AA__Response_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SL__AA__Response_template& SL__AA__Response_template::operator=(const SL__AA__Response_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SL__AA__Response SL__AA__Response_template::valueof() const +{ +SL__AA__Response ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SL__AA__Response_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SL__AA__Response_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SL__AA__Response_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SL__AA__Response_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SL__AA__Response_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SL__AA__Response_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& SL__AA__Response_template::c2ar() { return *(static_cast(get_at(3))); } +const BITSTRING_template& SL__AA__Response_template::c2ar() const { return *(static_cast(get_at(3))); } +BITSTRING_template& SL__AA__Response_template::slar() { return *(static_cast(get_at(4))); } +const BITSTRING_template& SL__AA__Response_template::slar() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* SL__AA__Response_template::get_descriptor() const { return &SL__AA__Response_descr_; } +const char* SL__AA__Response_template::fld_name(int p_index) const { return SL__AA__Response::fld_names[p_index]; } +void SL__AA__PayloadType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_payloadType; } + +SL__AA__PayloadType::SL__AA__PayloadType() : Record_Type() { init_vec(); } + +SL__AA__PayloadType::SL__AA__PayloadType(const SL__AA__PayloadType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_payloadType.is_bound() ) + field_payloadType = other_value.field_payloadType; +init_vec(); +} + +SL__AA__PayloadType::SL__AA__PayloadType(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_payloadType) : field_iei(par_iei), + field_iel(par_iel), + field_payloadType(par_payloadType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SL__AA__PayloadType::get_descriptor() const { return &SL__AA__PayloadType_descr_; } +const TTCN_Typedescriptor_t* SL__AA__PayloadType::fld_descriptors[] = { &SL__AA__PayloadType_iei_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* SL__AA__PayloadType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SL__AA__PayloadType::fld_names[] = { "iei", "iel", "payloadType" }; +const char* SL__AA__PayloadType::fld_name(int p_index) const { return fld_names[p_index]; } + +void SL__AA__PayloadType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +SL__AA__PayloadType_template::SL__AA__PayloadType_template(SL__AA__PayloadType_template* p_precondition, SL__AA__PayloadType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SL__AA__PayloadType_template::SL__AA__PayloadType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SL__AA__PayloadType_template::~SL__AA__PayloadType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SL__AA__PayloadType_template::match_dynamic(const Base_Type* match_value) const +{ +const SL__AA__PayloadType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SL__AA__PayloadType_template& SL__AA__PayloadType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SL__AA__PayloadType_template& SL__AA__PayloadType_template::operator=(const SL__AA__PayloadType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SL__AA__PayloadType_template& SL__AA__PayloadType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SL__AA__PayloadType_template& SL__AA__PayloadType_template::operator=(const SL__AA__PayloadType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SL__AA__PayloadType SL__AA__PayloadType_template::valueof() const +{ +SL__AA__PayloadType ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SL__AA__PayloadType_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SL__AA__PayloadType_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SL__AA__PayloadType_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SL__AA__PayloadType_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& SL__AA__PayloadType_template::payloadType() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& SL__AA__PayloadType_template::payloadType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SL__AA__PayloadType_template::get_descriptor() const { return &SL__AA__PayloadType_descr_; } +const char* SL__AA__PayloadType_template::fld_name(int p_index) const { return SL__AA__PayloadType::fld_names[p_index]; } +void SL__AA__Payload::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_payload; } + +SL__AA__Payload::SL__AA__Payload() : Record_Type() { init_vec(); } + +SL__AA__Payload::SL__AA__Payload(const SL__AA__Payload& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_payload.is_bound() ) + field_payload = other_value.field_payload; +init_vec(); +} + +SL__AA__Payload::SL__AA__Payload(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_payload) : field_iei(par_iei), + field_iel(par_iel), + field_payload(par_payload) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SL__AA__Payload::get_descriptor() const { return &SL__AA__Payload_descr_; } +const TTCN_Typedescriptor_t* SL__AA__Payload::fld_descriptors[] = { &SL__AA__Payload_iei_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* SL__AA__Payload::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SL__AA__Payload::fld_names[] = { "iei", "iel", "payload" }; +const char* SL__AA__Payload::fld_name(int p_index) const { return fld_names[p_index]; } + +void SL__AA__Payload_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +SL__AA__Payload_template::SL__AA__Payload_template(SL__AA__Payload_template* p_precondition, SL__AA__Payload_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SL__AA__Payload_template::SL__AA__Payload_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SL__AA__Payload_template::~SL__AA__Payload_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SL__AA__Payload_template::match_dynamic(const Base_Type* match_value) const +{ +const SL__AA__Payload* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SL__AA__Payload_template& SL__AA__Payload_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SL__AA__Payload_template& SL__AA__Payload_template::operator=(const SL__AA__Payload& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SL__AA__Payload_template& SL__AA__Payload_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SL__AA__Payload_template& SL__AA__Payload_template::operator=(const SL__AA__Payload_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SL__AA__Payload SL__AA__Payload_template::valueof() const +{ +SL__AA__Payload ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SL__AA__Payload_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SL__AA__Payload_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SL__AA__Payload_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SL__AA__Payload_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& SL__AA__Payload_template::payload() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& SL__AA__Payload_template::payload() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SL__AA__Payload_template::get_descriptor() const { return &SL__AA__Payload_descr_; } +const char* SL__AA__Payload_template::fld_name(int p_index) const { return SL__AA__Payload::fld_names[p_index]; } +void SL__AA__PendingInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_slapi; } + +SL__AA__PendingInd::SL__AA__PendingInd() : Record_Type() { init_vec(); } + +SL__AA__PendingInd::SL__AA__PendingInd(const SL__AA__PendingInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_slapi.is_bound() ) + field_slapi = other_value.field_slapi; +init_vec(); +} + +SL__AA__PendingInd::SL__AA__PendingInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_slapi) : field_iei(par_iei), + field_spare(par_spare), + field_slapi(par_slapi) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SL__AA__PendingInd::get_descriptor() const { return &SL__AA__PendingInd_descr_; } +const TTCN_Typedescriptor_t* SL__AA__PendingInd::fld_descriptors[] = { &SL__AA__PendingInd_iei_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* SL__AA__PendingInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SL__AA__PendingInd::fld_names[] = { "iei", "spare", "slapi" }; +const char* SL__AA__PendingInd::fld_name(int p_index) const { return fld_names[p_index]; } + +void SL__AA__PendingInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SL__AA__PendingInd_template::SL__AA__PendingInd_template(SL__AA__PendingInd_template* p_precondition, SL__AA__PendingInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SL__AA__PendingInd_template::SL__AA__PendingInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SL__AA__PendingInd_template::~SL__AA__PendingInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SL__AA__PendingInd_template::match_dynamic(const Base_Type* match_value) const +{ +const SL__AA__PendingInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SL__AA__PendingInd_template& SL__AA__PendingInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SL__AA__PendingInd_template& SL__AA__PendingInd_template::operator=(const SL__AA__PendingInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SL__AA__PendingInd_template& SL__AA__PendingInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SL__AA__PendingInd_template& SL__AA__PendingInd_template::operator=(const SL__AA__PendingInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SL__AA__PendingInd SL__AA__PendingInd_template::valueof() const +{ +SL__AA__PendingInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& SL__AA__PendingInd_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& SL__AA__PendingInd_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SL__AA__PendingInd_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SL__AA__PendingInd_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SL__AA__PendingInd_template::slapi() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SL__AA__PendingInd_template::slapi() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SL__AA__PendingInd_template::get_descriptor() const { return &SL__AA__PendingInd_descr_; } +const char* SL__AA__PendingInd_template::fld_name(int p_index) const { return SL__AA__PendingInd::fld_names[p_index]; } +void SL__AA__StatusInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_uas; } + +SL__AA__StatusInd::SL__AA__StatusInd() : Record_Type() { init_vec(); } + +SL__AA__StatusInd::SL__AA__StatusInd(const SL__AA__StatusInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_uas.is_bound() ) + field_uas = other_value.field_uas; +init_vec(); +} + +SL__AA__StatusInd::SL__AA__StatusInd(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_uas) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_uas(par_uas) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SL__AA__StatusInd::get_descriptor() const { return &SL__AA__StatusInd_descr_; } +const TTCN_Typedescriptor_t* SL__AA__StatusInd::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* SL__AA__StatusInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SL__AA__StatusInd::fld_names[] = { "iei", "iel", "spare", "uas" }; +const char* SL__AA__StatusInd::fld_name(int p_index) const { return fld_names[p_index]; } + +void SL__AA__StatusInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SL__AA__StatusInd_template::SL__AA__StatusInd_template(SL__AA__StatusInd_template* p_precondition, SL__AA__StatusInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SL__AA__StatusInd_template::SL__AA__StatusInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SL__AA__StatusInd_template::~SL__AA__StatusInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SL__AA__StatusInd_template::match_dynamic(const Base_Type* match_value) const +{ +const SL__AA__StatusInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SL__AA__StatusInd_template& SL__AA__StatusInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SL__AA__StatusInd_template& SL__AA__StatusInd_template::operator=(const SL__AA__StatusInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SL__AA__StatusInd_template& SL__AA__StatusInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SL__AA__StatusInd_template& SL__AA__StatusInd_template::operator=(const SL__AA__StatusInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SL__AA__StatusInd SL__AA__StatusInd_template::valueof() const +{ +SL__AA__StatusInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SL__AA__StatusInd_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SL__AA__StatusInd_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SL__AA__StatusInd_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SL__AA__StatusInd_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SL__AA__StatusInd_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SL__AA__StatusInd_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& SL__AA__StatusInd_template::uas() { return *(static_cast(get_at(3))); } +const BITSTRING_template& SL__AA__StatusInd_template::uas() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* SL__AA__StatusInd_template::get_descriptor() const { return &SL__AA__StatusInd_descr_; } +const char* SL__AA__StatusInd_template::fld_name(int p_index) const { return SL__AA__StatusInd::fld_names[p_index]; } +void ServiceLvlAAContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_contents; } + +ServiceLvlAAContainer::ServiceLvlAAContainer() : Record_Type() { init_vec(); } + +ServiceLvlAAContainer::ServiceLvlAAContainer(const ServiceLvlAAContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_contents.is_bound() ) + field_contents = other_value.field_contents; +init_vec(); +} + +ServiceLvlAAContainer::ServiceLvlAAContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const ServiceLvlAAParamList& par_contents) : field_iei(par_iei), + field_iel(par_iel), + field_contents(par_contents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ServiceLvlAAContainer::get_descriptor() const { return &ServiceLvlAAContainer_descr_; } +const TTCN_Typedescriptor_t* ServiceLvlAAContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &ServiceLvlAAParamList_descr_ }; +const TTCN_Typedescriptor_t* ServiceLvlAAContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ServiceLvlAAContainer::fld_names[] = { "iei", "iel", "contents" }; +const char* ServiceLvlAAContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ServiceLvlAAContainer::optional_indexes[] = { 0, 1, -1 }; +const int* ServiceLvlAAContainer::get_optional_indexes() const { return optional_indexes; } + +const int ServiceLvlAAContainer::optional_indexes_asn[] = { 0, 1, -1 }; +const int* ServiceLvlAAContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ServiceLvlAAContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new ServiceLvlAAParamList_template(ANY_VALUE) : new ServiceLvlAAParamList_template; +} +} + +ServiceLvlAAContainer_template::ServiceLvlAAContainer_template(ServiceLvlAAContainer_template* p_precondition, ServiceLvlAAContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ServiceLvlAAContainer_template::ServiceLvlAAContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ServiceLvlAAContainer_template::~ServiceLvlAAContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ServiceLvlAAContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const ServiceLvlAAContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ServiceLvlAAContainer_template& ServiceLvlAAContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ServiceLvlAAContainer_template& ServiceLvlAAContainer_template::operator=(const ServiceLvlAAContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ServiceLvlAAContainer_template& ServiceLvlAAContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ServiceLvlAAContainer_template& ServiceLvlAAContainer_template::operator=(const ServiceLvlAAContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ServiceLvlAAContainer ServiceLvlAAContainer_template::valueof() const +{ +ServiceLvlAAContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ServiceLvlAAContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ServiceLvlAAContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ServiceLvlAAContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ServiceLvlAAContainer_template::iel() const { return *(static_cast(get_at(1))); } +ServiceLvlAAParamList_template& ServiceLvlAAContainer_template::contents() { return *(static_cast(get_at(2))); } +const ServiceLvlAAParamList_template& ServiceLvlAAContainer_template::contents() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ServiceLvlAAContainer_template::get_descriptor() const { return &ServiceLvlAAContainer_descr_; } +const char* ServiceLvlAAContainer_template::fld_name(int p_index) const { return ServiceLvlAAContainer::fld_names[p_index]; } +void NID::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_digit1; fld_vec[3]=&field_assignmentMode; fld_vec[4]=&field_digits2__9; fld_vec[5]=&field_spare; fld_vec[6]=&field_digit10; } + +NID::NID() : Record_Type() { init_vec(); } + +NID::NID(const NID& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_digit1.is_bound() ) + field_digit1 = other_value.field_digit1; +if (other_value.field_assignmentMode.is_bound() ) + field_assignmentMode = other_value.field_assignmentMode; +if (other_value.field_digits2__9.is_bound() ) + field_digits2__9 = other_value.field_digits2__9; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_digit10.is_bound() ) + field_digit10 = other_value.field_digit10; +init_vec(); +} + +NID::NID(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const HEXSTRING& par_digit1, + const BITSTRING& par_assignmentMode, + const HEXSTRING& par_digits2__9, + const BITSTRING& par_spare, + const HEXSTRING& par_digit10) : field_iei(par_iei), + field_iel(par_iel), + field_digit1(par_digit1), + field_assignmentMode(par_assignmentMode), + field_digits2__9(par_digits2__9), + field_spare(par_spare), + field_digit10(par_digit10) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NID::get_descriptor() const { return &NID_descr_; } +const TTCN_Typedescriptor_t* NID::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::H1__Type_descr_, &CommonDefs::B4__Type_descr_, &NID_digits2__9_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::H1__Type_descr_ }; +const TTCN_Typedescriptor_t* NID::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NID::fld_names[] = { "iei", "iel", "digit1", "assignmentMode", "digits2_9", "spare", "digit10" }; +const char* NID::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NID::optional_indexes[] = { 0, 1, -1 }; +const int* NID::get_optional_indexes() const { return optional_indexes; } + +const int NID::optional_indexes_asn[] = { 0, 1, -1 }; +const int* NID::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NID_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +} +} + +NID_template::NID_template(NID_template* p_precondition, NID_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NID_template::NID_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NID_template::~NID_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NID_template::match_dynamic(const Base_Type* match_value) const +{ +const NID* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NID_template& NID_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NID_template& NID_template::operator=(const NID& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NID_template& NID_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NID_template& NID_template::operator=(const NID_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NID NID_template::valueof() const +{ +NID ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NID_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NID_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NID_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NID_template::iel() const { return *(static_cast(get_at(1))); } +HEXSTRING_template& NID_template::digit1() { return *(static_cast(get_at(2))); } +const HEXSTRING_template& NID_template::digit1() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NID_template::assignmentMode() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NID_template::assignmentMode() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& NID_template::digits2__9() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& NID_template::digits2__9() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NID_template::spare() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NID_template::spare() const { return *(static_cast(get_at(5))); } +HEXSTRING_template& NID_template::digit10() { return *(static_cast(get_at(6))); } +const HEXSTRING_template& NID_template::digit10() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* NID_template::get_descriptor() const { return &NID_descr_; } +const char* NID_template::fld_name(int p_index) const { return NID::fld_names[p_index]; } + +const PEIPS__AssistIE PEIPS__AssistIEList::UNBOUND_ELEM; +PEIPS__AssistIE& PEIPS__AssistIEList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PEIPS__AssistIE& PEIPS__AssistIEList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PEIPS__AssistIE& PEIPS__AssistIEList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PEIPS__AssistIE& PEIPS__AssistIEList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PEIPS__AssistIEList PEIPS__AssistIEList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +PEIPS__AssistIEList PEIPS__AssistIEList::operator<<=(const INTEGER& rotate_count) const +{ +PEIPS__AssistIEList rec_of; +return *((PEIPS__AssistIEList*)rotl(rotate_count, &rec_of)); +} + +PEIPS__AssistIEList PEIPS__AssistIEList::operator>>=(const INTEGER& rotate_count) const +{ +PEIPS__AssistIEList rec_of; +return *((PEIPS__AssistIEList*)rotr(rotate_count, &rec_of)); +} + +PEIPS__AssistIEList PEIPS__AssistIEList::operator>>=(int rotate_count) const +{ +PEIPS__AssistIEList rec_of; +return *((PEIPS__AssistIEList*)rotr(rotate_count, &rec_of)); +} + +PEIPS__AssistIEList PEIPS__AssistIEList::operator+(const PEIPS__AssistIEList& other_value) const +{ +PEIPS__AssistIEList rec_of; +return *((PEIPS__AssistIEList*)concat(&other_value, &rec_of)); +} + +PEIPS__AssistIEList PEIPS__AssistIEList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const PEIPS__AssistIEList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.PEIPS_AssistIEList concatenation."); +} + +PEIPS__AssistIEList PEIPS__AssistIEList::operator+(null_type) const +{ +return *this; +} + +PEIPS__AssistIEList PEIPS__AssistIEList::substr(int index, int returncount) const +{ +PEIPS__AssistIEList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PEIPS__AssistIEList PEIPS__AssistIEList::replace(int index, int len, const PEIPS__AssistIEList& repl) const +{ +PEIPS__AssistIEList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PEIPS__AssistIEList PEIPS__AssistIEList::replace(int index, int len, const PEIPS__AssistIEList_template& repl) const +{ +PEIPS__AssistIEList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* PEIPS__AssistIEList::create_elem() const { return new PEIPS__AssistIE; } +const Base_Type* PEIPS__AssistIEList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* PEIPS__AssistIEList::get_descriptor() const { return &PEIPS__AssistIEList_descr_; } +PEIPS__AssistIEList_template::PEIPS__AssistIEList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +PEIPS__AssistIEList_template::PEIPS__AssistIEList_template(PEIPS__AssistIEList_template* p_precondition, PEIPS__AssistIEList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PEIPS__AssistIEList_template::PEIPS__AssistIEList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PEIPS__AssistIEList_template::~PEIPS__AssistIEList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PEIPS__AssistIEList_template::match_dynamic(const Base_Type* match_value) const +{ +const PEIPS__AssistIEList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +PEIPS__AssistIEList_template& PEIPS__AssistIEList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PEIPS__AssistIEList_template& PEIPS__AssistIEList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +PEIPS__AssistIEList_template& PEIPS__AssistIEList_template::operator=(const PEIPS__AssistIEList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PEIPS__AssistIEList_template& PEIPS__AssistIEList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PEIPS__AssistIEList_template& PEIPS__AssistIEList_template::operator=(const PEIPS__AssistIEList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PEIPS__AssistIEList_template PEIPS__AssistIEList_template::operator+(const PEIPS__AssistIEList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return PEIPS__AssistIEList_template(ANY_VALUE); +} +PEIPS__AssistIEList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PEIPS__AssistIEList_template PEIPS__AssistIEList_template::operator+(const PEIPS__AssistIEList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +PEIPS__AssistIEList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PEIPS__AssistIEList_template PEIPS__AssistIEList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return PEIPS__AssistIEList_template(ANY_VALUE); +} +PEIPS__AssistIEList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +PEIPS__AssistIEList_template PEIPS__AssistIEList_template::operator+(null_type) const +{ +return *this; +} + +PEIPS__AssistIE_template& PEIPS__AssistIEList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PEIPS__AssistIE_template& PEIPS__AssistIEList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PEIPS__AssistIE_template& PEIPS__AssistIEList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PEIPS__AssistIE_template& PEIPS__AssistIEList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PEIPS__AssistIEList PEIPS__AssistIEList_template::valueof() const +{ +PEIPS__AssistIEList ret_val; +valueofv(&ret_val); +return ret_val; +} + +PEIPS__AssistIEList PEIPS__AssistIEList_template::substr(int index, int returncount) const +{ +PEIPS__AssistIEList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PEIPS__AssistIEList PEIPS__AssistIEList_template::replace(int index, int len, const PEIPS__AssistIEList_template& repl) const +{ +PEIPS__AssistIEList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PEIPS__AssistIEList PEIPS__AssistIEList_template::replace(int index, int len, const PEIPS__AssistIEList& repl) const +{ +PEIPS__AssistIEList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* PEIPS__AssistIEList_template::create_elem() const { return new PEIPS__AssistIE_template; } +const TTCN_Typedescriptor_t* PEIPS__AssistIEList_template::get_descriptor() const { return &PEIPS__AssistIEList_descr_; } +void PEIPS__AssistIE::init_vec() { fld_vec[0]=&field_typeOfInfo; fld_vec[1]=&field_peipsValue; } + +PEIPS__AssistIE::PEIPS__AssistIE() : Record_Type() { init_vec(); } + +PEIPS__AssistIE::PEIPS__AssistIE(const PEIPS__AssistIE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_typeOfInfo.is_bound() ) + field_typeOfInfo = other_value.field_typeOfInfo; +if (other_value.field_peipsValue.is_bound() ) + field_peipsValue = other_value.field_peipsValue; +init_vec(); +} + +PEIPS__AssistIE::PEIPS__AssistIE(const BITSTRING& par_typeOfInfo, + const BITSTRING& par_peipsValue) : field_typeOfInfo(par_typeOfInfo), + field_peipsValue(par_peipsValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PEIPS__AssistIE::get_descriptor() const { return &PEIPS__AssistIE_descr_; } +const TTCN_Typedescriptor_t* PEIPS__AssistIE::fld_descriptors[] = { &CommonDefs::B3__Type_descr_, &CommonDefs::B5__Type_descr_ }; +const TTCN_Typedescriptor_t* PEIPS__AssistIE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PEIPS__AssistIE::fld_names[] = { "typeOfInfo", "peipsValue" }; +const char* PEIPS__AssistIE::fld_name(int p_index) const { return fld_names[p_index]; } + +void PEIPS__AssistIE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +PEIPS__AssistIE_template::PEIPS__AssistIE_template(PEIPS__AssistIE_template* p_precondition, PEIPS__AssistIE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PEIPS__AssistIE_template::PEIPS__AssistIE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PEIPS__AssistIE_template::~PEIPS__AssistIE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PEIPS__AssistIE_template::match_dynamic(const Base_Type* match_value) const +{ +const PEIPS__AssistIE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PEIPS__AssistIE_template& PEIPS__AssistIE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PEIPS__AssistIE_template& PEIPS__AssistIE_template::operator=(const PEIPS__AssistIE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PEIPS__AssistIE_template& PEIPS__AssistIE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PEIPS__AssistIE_template& PEIPS__AssistIE_template::operator=(const PEIPS__AssistIE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PEIPS__AssistIE PEIPS__AssistIE_template::valueof() const +{ +PEIPS__AssistIE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& PEIPS__AssistIE_template::typeOfInfo() { return *(static_cast(get_at(0))); } +const BITSTRING_template& PEIPS__AssistIE_template::typeOfInfo() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PEIPS__AssistIE_template::peipsValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PEIPS__AssistIE_template::peipsValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* PEIPS__AssistIE_template::get_descriptor() const { return &PEIPS__AssistIE_descr_; } +const char* PEIPS__AssistIE_template::fld_name(int p_index) const { return PEIPS__AssistIE::fld_names[p_index]; } +void PEIPS__AssistInfo::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_list; } + +PEIPS__AssistInfo::PEIPS__AssistInfo() : Record_Type() { init_vec(); } + +PEIPS__AssistInfo::PEIPS__AssistInfo(const PEIPS__AssistInfo& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_list.is_bound() ) + field_list = other_value.field_list; +init_vec(); +} + +PEIPS__AssistInfo::PEIPS__AssistInfo(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const PEIPS__AssistIEList& par_list) : field_iei(par_iei), + field_iel(par_iel), + field_list(par_list) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PEIPS__AssistInfo::get_descriptor() const { return &PEIPS__AssistInfo_descr_; } +const TTCN_Typedescriptor_t* PEIPS__AssistInfo::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &PEIPS__AssistIEList_descr_ }; +const TTCN_Typedescriptor_t* PEIPS__AssistInfo::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PEIPS__AssistInfo::fld_names[] = { "iei", "iel", "list" }; +const char* PEIPS__AssistInfo::fld_name(int p_index) const { return fld_names[p_index]; } + +void PEIPS__AssistInfo_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new PEIPS__AssistIEList_template(ANY_VALUE) : new PEIPS__AssistIEList_template; +} +} + +PEIPS__AssistInfo_template::PEIPS__AssistInfo_template(PEIPS__AssistInfo_template* p_precondition, PEIPS__AssistInfo_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PEIPS__AssistInfo_template::PEIPS__AssistInfo_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PEIPS__AssistInfo_template::~PEIPS__AssistInfo_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PEIPS__AssistInfo_template::match_dynamic(const Base_Type* match_value) const +{ +const PEIPS__AssistInfo* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PEIPS__AssistInfo_template& PEIPS__AssistInfo_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PEIPS__AssistInfo_template& PEIPS__AssistInfo_template::operator=(const PEIPS__AssistInfo& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PEIPS__AssistInfo_template& PEIPS__AssistInfo_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PEIPS__AssistInfo_template& PEIPS__AssistInfo_template::operator=(const PEIPS__AssistInfo_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PEIPS__AssistInfo PEIPS__AssistInfo_template::valueof() const +{ +PEIPS__AssistInfo ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PEIPS__AssistInfo_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PEIPS__AssistInfo_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PEIPS__AssistInfo_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PEIPS__AssistInfo_template::iel() const { return *(static_cast(get_at(1))); } +PEIPS__AssistIEList_template& PEIPS__AssistInfo_template::list() { return *(static_cast(get_at(2))); } +const PEIPS__AssistIEList_template& PEIPS__AssistInfo_template::list() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PEIPS__AssistInfo_template::get_descriptor() const { return &PEIPS__AssistInfo_descr_; } +const char* PEIPS__AssistInfo_template::fld_name(int p_index) const { return PEIPS__AssistInfo::fld_names[p_index]; } +void RegistrationResult::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_spare; fld_vec[2]=&field_disasterRoamingResult; fld_vec[3]=&field_emergencyRegistered; fld_vec[4]=&field_nssaaPerformed; fld_vec[5]=&field_smsAllowed; fld_vec[6]=&field_resultValue; } + +RegistrationResult::RegistrationResult() : Record_Type() { init_vec(); } + +RegistrationResult::RegistrationResult(const RegistrationResult& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_disasterRoamingResult.is_bound() ) + field_disasterRoamingResult = other_value.field_disasterRoamingResult; +if (other_value.field_emergencyRegistered.is_bound() ) + field_emergencyRegistered = other_value.field_emergencyRegistered; +if (other_value.field_nssaaPerformed.is_bound() ) + field_nssaaPerformed = other_value.field_nssaaPerformed; +if (other_value.field_smsAllowed.is_bound() ) + field_smsAllowed = other_value.field_smsAllowed; +if (other_value.field_resultValue.is_bound() ) + field_resultValue = other_value.field_resultValue; +init_vec(); +} + +RegistrationResult::RegistrationResult(const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_disasterRoamingResult, + const BITSTRING& par_emergencyRegistered, + const BITSTRING& par_nssaaPerformed, + const BITSTRING& par_smsAllowed, + const BITSTRING& par_resultValue) : field_iel(par_iel), + field_spare(par_spare), + field_disasterRoamingResult(par_disasterRoamingResult), + field_emergencyRegistered(par_emergencyRegistered), + field_nssaaPerformed(par_nssaaPerformed), + field_smsAllowed(par_smsAllowed), + field_resultValue(par_resultValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RegistrationResult::get_descriptor() const { return &RegistrationResult_descr_; } +const TTCN_Typedescriptor_t* RegistrationResult::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* RegistrationResult::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RegistrationResult::fld_names[] = { "iel", "spare", "disasterRoamingResult", "emergencyRegistered", "nssaaPerformed", "smsAllowed", "resultValue" }; +const char* RegistrationResult::fld_name(int p_index) const { return fld_names[p_index]; } + +const int RegistrationResult::optional_indexes[] = { 0, -1 }; +const int* RegistrationResult::get_optional_indexes() const { return optional_indexes; } + +const int RegistrationResult::optional_indexes_asn[] = { 0, -1 }; +const int* RegistrationResult::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void RegistrationResult_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +RegistrationResult_template::RegistrationResult_template(RegistrationResult_template* p_precondition, RegistrationResult_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RegistrationResult_template::RegistrationResult_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RegistrationResult_template::~RegistrationResult_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RegistrationResult_template::match_dynamic(const Base_Type* match_value) const +{ +const RegistrationResult* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RegistrationResult_template& RegistrationResult_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RegistrationResult_template& RegistrationResult_template::operator=(const RegistrationResult& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RegistrationResult_template& RegistrationResult_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RegistrationResult_template& RegistrationResult_template::operator=(const RegistrationResult_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RegistrationResult RegistrationResult_template::valueof() const +{ +RegistrationResult ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& RegistrationResult_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& RegistrationResult_template::iel() const { return *(static_cast(get_at(0))); } +BITSTRING_template& RegistrationResult_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& RegistrationResult_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& RegistrationResult_template::disasterRoamingResult() { return *(static_cast(get_at(2))); } +const BITSTRING_template& RegistrationResult_template::disasterRoamingResult() const { return *(static_cast(get_at(2))); } +BITSTRING_template& RegistrationResult_template::emergencyRegistered() { return *(static_cast(get_at(3))); } +const BITSTRING_template& RegistrationResult_template::emergencyRegistered() const { return *(static_cast(get_at(3))); } +BITSTRING_template& RegistrationResult_template::nssaaPerformed() { return *(static_cast(get_at(4))); } +const BITSTRING_template& RegistrationResult_template::nssaaPerformed() const { return *(static_cast(get_at(4))); } +BITSTRING_template& RegistrationResult_template::smsAllowed() { return *(static_cast(get_at(5))); } +const BITSTRING_template& RegistrationResult_template::smsAllowed() const { return *(static_cast(get_at(5))); } +BITSTRING_template& RegistrationResult_template::resultValue() { return *(static_cast(get_at(6))); } +const BITSTRING_template& RegistrationResult_template::resultValue() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* RegistrationResult_template::get_descriptor() const { return &RegistrationResult_descr_; } +const char* RegistrationResult_template::fld_name(int p_index) const { return RegistrationResult::fld_names[p_index]; } +void NG__REGISTRATION__ACCEPT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_registrationResult; fld_vec[5]=&field_guti; fld_vec[6]=&field_equivalentPlmns; fld_vec[7]=&field_taiList; fld_vec[8]=&field_allowedNSSAI; fld_vec[9]=&field_rejectedNSSAI; fld_vec[10]=&field_configuredNSSAI; fld_vec[11]=&field_ngs__NetworkFeatureSupport; fld_vec[12]=&field_pduSessionStatus; fld_vec[13]=&field_pduSessionReactivationResult; fld_vec[14]=&field_pduSessionReactResultError; fld_vec[15]=&field_ladnInfo; fld_vec[16]=&field_micoInd; fld_vec[17]=&field_networkSlicingInd; fld_vec[18]=&field_saiList; fld_vec[19]=&field_t3512Value; fld_vec[20]=&field_non3GPPDeregisterValue; fld_vec[21]=&field_t3502Value; fld_vec[22]=&field_emergencyNumberList; fld_vec[23]=&field_xtdEmergencyNumberList; fld_vec[24]=&field_sorTransparentContainer; fld_vec[25]=&field_eapMessage; fld_vec[26]=&field_inclusionModeNSSAI; fld_vec[27]=&field_operatorAccessCatDefs; fld_vec[28]=&field_negotiatedDRXParams; fld_vec[29]=&field_non3GPP__NW__ProvidedPolicies; fld_vec[30]=&field_epsBearerContextStatus; fld_vec[31]=&field_negotiatedExtdDRXParams; fld_vec[32]=&field_t3447Value; fld_vec[33]=&field_t3448Value; fld_vec[34]=&field_t3324Value; fld_vec[35]=&field_ueRadioCapabilityId; fld_vec[36]=&field_ueRadioCapIdDeletionInd; fld_vec[37]=&field_pendingNSSAI; fld_vec[38]=&field_cipheringKeyData; fld_vec[39]=&field_cagInfoList; fld_vec[40]=&field_truncatedS__TMSIConfig; fld_vec[41]=&field_negotiatedWUSAssistanceInfo; fld_vec[42]=&field_negotiatedNB__N1DRXParams; fld_vec[43]=&field_extdRejectedNSSAI; fld_vec[44]=&field_serviceLvlAA; fld_vec[45]=&field_negotiatedPEIPS__AssistInfo; fld_vec[46]=&field_ngAddRequestResult; fld_vec[47]=&field_nssrgInfo; fld_vec[48]=&field_disasterRoamingWaitRange; fld_vec[49]=&field_disasterReturnWaitRange; fld_vec[50]=&field_disasterPLMNList; fld_vec[51]=&field_forbidTAIList__Roaming; fld_vec[52]=&field_forbidTAIList__RegProvService; fld_vec[53]=&field_extdCAGInfoList; fld_vec[54]=&field_nsagInfo; } + +NG__REGISTRATION__ACCEPT::NG__REGISTRATION__ACCEPT() : Record_Type() { init_vec(); } + +NG__REGISTRATION__ACCEPT::NG__REGISTRATION__ACCEPT(const NG__REGISTRATION__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_registrationResult.is_bound() ) + field_registrationResult = other_value.field_registrationResult; +if (other_value.field_guti.is_bound() ) + field_guti = other_value.field_guti; +if (other_value.field_equivalentPlmns.is_bound() ) + field_equivalentPlmns = other_value.field_equivalentPlmns; +if (other_value.field_taiList.is_bound() ) + field_taiList = other_value.field_taiList; +if (other_value.field_allowedNSSAI.is_bound() ) + field_allowedNSSAI = other_value.field_allowedNSSAI; +if (other_value.field_rejectedNSSAI.is_bound() ) + field_rejectedNSSAI = other_value.field_rejectedNSSAI; +if (other_value.field_configuredNSSAI.is_bound() ) + field_configuredNSSAI = other_value.field_configuredNSSAI; +if (other_value.field_ngs__NetworkFeatureSupport.is_bound() ) + field_ngs__NetworkFeatureSupport = other_value.field_ngs__NetworkFeatureSupport; +if (other_value.field_pduSessionStatus.is_bound() ) + field_pduSessionStatus = other_value.field_pduSessionStatus; +if (other_value.field_pduSessionReactivationResult.is_bound() ) + field_pduSessionReactivationResult = other_value.field_pduSessionReactivationResult; +if (other_value.field_pduSessionReactResultError.is_bound() ) + field_pduSessionReactResultError = other_value.field_pduSessionReactResultError; +if (other_value.field_ladnInfo.is_bound() ) + field_ladnInfo = other_value.field_ladnInfo; +if (other_value.field_micoInd.is_bound() ) + field_micoInd = other_value.field_micoInd; +if (other_value.field_networkSlicingInd.is_bound() ) + field_networkSlicingInd = other_value.field_networkSlicingInd; +if (other_value.field_saiList.is_bound() ) + field_saiList = other_value.field_saiList; +if (other_value.field_t3512Value.is_bound() ) + field_t3512Value = other_value.field_t3512Value; +if (other_value.field_non3GPPDeregisterValue.is_bound() ) + field_non3GPPDeregisterValue = other_value.field_non3GPPDeregisterValue; +if (other_value.field_t3502Value.is_bound() ) + field_t3502Value = other_value.field_t3502Value; +if (other_value.field_emergencyNumberList.is_bound() ) + field_emergencyNumberList = other_value.field_emergencyNumberList; +if (other_value.field_xtdEmergencyNumberList.is_bound() ) + field_xtdEmergencyNumberList = other_value.field_xtdEmergencyNumberList; +if (other_value.field_sorTransparentContainer.is_bound() ) + field_sorTransparentContainer = other_value.field_sorTransparentContainer; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_inclusionModeNSSAI.is_bound() ) + field_inclusionModeNSSAI = other_value.field_inclusionModeNSSAI; +if (other_value.field_operatorAccessCatDefs.is_bound() ) + field_operatorAccessCatDefs = other_value.field_operatorAccessCatDefs; +if (other_value.field_negotiatedDRXParams.is_bound() ) + field_negotiatedDRXParams = other_value.field_negotiatedDRXParams; +if (other_value.field_non3GPP__NW__ProvidedPolicies.is_bound() ) + field_non3GPP__NW__ProvidedPolicies = other_value.field_non3GPP__NW__ProvidedPolicies; +if (other_value.field_epsBearerContextStatus.is_bound() ) + field_epsBearerContextStatus = other_value.field_epsBearerContextStatus; +if (other_value.field_negotiatedExtdDRXParams.is_bound() ) + field_negotiatedExtdDRXParams = other_value.field_negotiatedExtdDRXParams; +if (other_value.field_t3447Value.is_bound() ) + field_t3447Value = other_value.field_t3447Value; +if (other_value.field_t3448Value.is_bound() ) + field_t3448Value = other_value.field_t3448Value; +if (other_value.field_t3324Value.is_bound() ) + field_t3324Value = other_value.field_t3324Value; +if (other_value.field_ueRadioCapabilityId.is_bound() ) + field_ueRadioCapabilityId = other_value.field_ueRadioCapabilityId; +if (other_value.field_ueRadioCapIdDeletionInd.is_bound() ) + field_ueRadioCapIdDeletionInd = other_value.field_ueRadioCapIdDeletionInd; +if (other_value.field_pendingNSSAI.is_bound() ) + field_pendingNSSAI = other_value.field_pendingNSSAI; +if (other_value.field_cipheringKeyData.is_bound() ) + field_cipheringKeyData = other_value.field_cipheringKeyData; +if (other_value.field_cagInfoList.is_bound() ) + field_cagInfoList = other_value.field_cagInfoList; +if (other_value.field_truncatedS__TMSIConfig.is_bound() ) + field_truncatedS__TMSIConfig = other_value.field_truncatedS__TMSIConfig; +if (other_value.field_negotiatedWUSAssistanceInfo.is_bound() ) + field_negotiatedWUSAssistanceInfo = other_value.field_negotiatedWUSAssistanceInfo; +if (other_value.field_negotiatedNB__N1DRXParams.is_bound() ) + field_negotiatedNB__N1DRXParams = other_value.field_negotiatedNB__N1DRXParams; +if (other_value.field_extdRejectedNSSAI.is_bound() ) + field_extdRejectedNSSAI = other_value.field_extdRejectedNSSAI; +if (other_value.field_serviceLvlAA.is_bound() ) + field_serviceLvlAA = other_value.field_serviceLvlAA; +if (other_value.field_negotiatedPEIPS__AssistInfo.is_bound() ) + field_negotiatedPEIPS__AssistInfo = other_value.field_negotiatedPEIPS__AssistInfo; +if (other_value.field_ngAddRequestResult.is_bound() ) + field_ngAddRequestResult = other_value.field_ngAddRequestResult; +if (other_value.field_nssrgInfo.is_bound() ) + field_nssrgInfo = other_value.field_nssrgInfo; +if (other_value.field_disasterRoamingWaitRange.is_bound() ) + field_disasterRoamingWaitRange = other_value.field_disasterRoamingWaitRange; +if (other_value.field_disasterReturnWaitRange.is_bound() ) + field_disasterReturnWaitRange = other_value.field_disasterReturnWaitRange; +if (other_value.field_disasterPLMNList.is_bound() ) + field_disasterPLMNList = other_value.field_disasterPLMNList; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +if (other_value.field_extdCAGInfoList.is_bound() ) + field_extdCAGInfoList = other_value.field_extdCAGInfoList; +if (other_value.field_nsagInfo.is_bound() ) + field_nsagInfo = other_value.field_nsagInfo; +init_vec(); +} + +NG__REGISTRATION__ACCEPT::NG__REGISTRATION__ACCEPT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const RegistrationResult& par_registrationResult, + const OPTIONAL& par_guti, + const OPTIONAL& par_equivalentPlmns, + const OPTIONAL& par_taiList, + const OPTIONAL& par_allowedNSSAI, + const OPTIONAL& par_rejectedNSSAI, + const OPTIONAL& par_configuredNSSAI, + const OPTIONAL& par_ngs__NetworkFeatureSupport, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_pduSessionReactivationResult, + const OPTIONAL& par_pduSessionReactResultError, + const OPTIONAL& par_ladnInfo, + const OPTIONAL& par_micoInd, + const OPTIONAL& par_networkSlicingInd, + const OPTIONAL& par_saiList, + const OPTIONAL& par_t3512Value, + const OPTIONAL& par_non3GPPDeregisterValue, + const OPTIONAL& par_t3502Value, + const OPTIONAL& par_emergencyNumberList, + const OPTIONAL& par_xtdEmergencyNumberList, + const OPTIONAL& par_sorTransparentContainer, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_inclusionModeNSSAI, + const OPTIONAL& par_operatorAccessCatDefs, + const OPTIONAL& par_negotiatedDRXParams, + const OPTIONAL& par_non3GPP__NW__ProvidedPolicies, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_negotiatedExtdDRXParams, + const OPTIONAL& par_t3447Value, + const OPTIONAL& par_t3448Value, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_ueRadioCapabilityId, + const OPTIONAL& par_ueRadioCapIdDeletionInd, + const OPTIONAL& par_pendingNSSAI, + const OPTIONAL& par_cipheringKeyData, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_truncatedS__TMSIConfig, + const OPTIONAL& par_negotiatedWUSAssistanceInfo, + const OPTIONAL& par_negotiatedNB__N1DRXParams, + const OPTIONAL& par_extdRejectedNSSAI, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_negotiatedPEIPS__AssistInfo, + const OPTIONAL& par_ngAddRequestResult, + const OPTIONAL& par_nssrgInfo, + const OPTIONAL& par_disasterRoamingWaitRange, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_disasterPLMNList, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_nsagInfo) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_registrationResult(par_registrationResult), + field_guti(par_guti), + field_equivalentPlmns(par_equivalentPlmns), + field_taiList(par_taiList), + field_allowedNSSAI(par_allowedNSSAI), + field_rejectedNSSAI(par_rejectedNSSAI), + field_configuredNSSAI(par_configuredNSSAI), + field_ngs__NetworkFeatureSupport(par_ngs__NetworkFeatureSupport), + field_pduSessionStatus(par_pduSessionStatus), + field_pduSessionReactivationResult(par_pduSessionReactivationResult), + field_pduSessionReactResultError(par_pduSessionReactResultError), + field_ladnInfo(par_ladnInfo), + field_micoInd(par_micoInd), + field_networkSlicingInd(par_networkSlicingInd), + field_saiList(par_saiList), + field_t3512Value(par_t3512Value), + field_non3GPPDeregisterValue(par_non3GPPDeregisterValue), + field_t3502Value(par_t3502Value), + field_emergencyNumberList(par_emergencyNumberList), + field_xtdEmergencyNumberList(par_xtdEmergencyNumberList), + field_sorTransparentContainer(par_sorTransparentContainer), + field_eapMessage(par_eapMessage), + field_inclusionModeNSSAI(par_inclusionModeNSSAI), + field_operatorAccessCatDefs(par_operatorAccessCatDefs), + field_negotiatedDRXParams(par_negotiatedDRXParams), + field_non3GPP__NW__ProvidedPolicies(par_non3GPP__NW__ProvidedPolicies), + field_epsBearerContextStatus(par_epsBearerContextStatus), + field_negotiatedExtdDRXParams(par_negotiatedExtdDRXParams), + field_t3447Value(par_t3447Value), + field_t3448Value(par_t3448Value), + field_t3324Value(par_t3324Value), + field_ueRadioCapabilityId(par_ueRadioCapabilityId), + field_ueRadioCapIdDeletionInd(par_ueRadioCapIdDeletionInd), + field_pendingNSSAI(par_pendingNSSAI), + field_cipheringKeyData(par_cipheringKeyData), + field_cagInfoList(par_cagInfoList), + field_truncatedS__TMSIConfig(par_truncatedS__TMSIConfig), + field_negotiatedWUSAssistanceInfo(par_negotiatedWUSAssistanceInfo), + field_negotiatedNB__N1DRXParams(par_negotiatedNB__N1DRXParams), + field_extdRejectedNSSAI(par_extdRejectedNSSAI), + field_serviceLvlAA(par_serviceLvlAA), + field_negotiatedPEIPS__AssistInfo(par_negotiatedPEIPS__AssistInfo), + field_ngAddRequestResult(par_ngAddRequestResult), + field_nssrgInfo(par_nssrgInfo), + field_disasterRoamingWaitRange(par_disasterRoamingWaitRange), + field_disasterReturnWaitRange(par_disasterReturnWaitRange), + field_disasterPLMNList(par_disasterPLMNList), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService), + field_extdCAGInfoList(par_extdCAGInfoList), + field_nsagInfo(par_nsagInfo) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__REGISTRATION__ACCEPT::get_descriptor() const { return &NG__REGISTRATION__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* NG__REGISTRATION__ACCEPT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &RegistrationResult_descr_, &NG__MobileIdentity_descr_, &NAS__CommonTypeDefs::PLMN__List_descr_, &NG__TrackingAreaIdList_descr_, &NSSAI_descr_, &RejectedNSSAI_descr_, &NSSAI_descr_, &NG__NetworkFeatureSupport_descr_, &PDU__SessionStatus_descr_, &PDU__SessionStatus_descr_, &PDU__SessionReactivationError_descr_, &LADN__Info_descr_, &MICO__Ind_descr_, &NetworkSlicingInd_descr_, &NG__TrackingAreaIdList_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::EmergNumList_descr_, &NAS__CommonTypeDefs::ExtdEmergNumList_descr_, &SORTransparentContainer_descr_, &EAP__Message_descr_, &InclusionModeNSSAI_descr_, &OperatorAccessCatDefinitions_descr_, &NAS__CommonTypeDefs::DRXParamCommon_descr_, &NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_descr_, &NAS__CommonTypeDefs::EPS__BearerContextStatus_descr_, &NAS__CommonTypeDefs::ExtdDRXParams_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::UERadioCapId_descr_, &NAS__CommonTypeDefs::UERadioCapIdDeletion_descr_, &NSSAI_descr_, &NG__CipheringKeyData_descr_, &CAGInfoList_descr_, &TruncatedS__TMSIConfig_descr_, &NAS__CommonTypeDefs::WUSAssistInfo_descr_, &NAS__CommonTypeDefs::DRXParamCommon_descr_, &ExtdRejectedNSSAI_descr_, &ServiceLvlAAContainer_descr_, &PEIPS__AssistInfo_descr_, &NG__AddReqResult_descr_, &NSSRG__Info_descr_, &RegistrationWaitRange_descr_, &RegistrationWaitRange_descr_, &DisasterPLMNList_descr_, &NG__TrackingAreaIdList_descr_, &NG__TrackingAreaIdList_descr_, &ExtdCAGInfoList_descr_, &NSAG__Info_descr_ }; +const TTCN_Typedescriptor_t* NG__REGISTRATION__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__REGISTRATION__ACCEPT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "registrationResult", "guti", "equivalentPlmns", "taiList", "allowedNSSAI", "rejectedNSSAI", "configuredNSSAI", "ngs_NetworkFeatureSupport", "pduSessionStatus", "pduSessionReactivationResult", "pduSessionReactResultError", "ladnInfo", "micoInd", "networkSlicingInd", "saiList", "t3512Value", "non3GPPDeregisterValue", "t3502Value", "emergencyNumberList", "xtdEmergencyNumberList", "sorTransparentContainer", "eapMessage", "inclusionModeNSSAI", "operatorAccessCatDefs", "negotiatedDRXParams", "non3GPP_NW_ProvidedPolicies", "epsBearerContextStatus", "negotiatedExtdDRXParams", "t3447Value", "t3448Value", "t3324Value", "ueRadioCapabilityId", "ueRadioCapIdDeletionInd", "pendingNSSAI", "cipheringKeyData", "cagInfoList", "truncatedS_TMSIConfig", "negotiatedWUSAssistanceInfo", "negotiatedNB_N1DRXParams", "extdRejectedNSSAI", "serviceLvlAA", "negotiatedPEIPS_AssistInfo", "ngAddRequestResult", "nssrgInfo", "disasterRoamingWaitRange", "disasterReturnWaitRange", "disasterPLMNList", "forbidTAIList_Roaming", "forbidTAIList_RegProvService", "extdCAGInfoList", "nsagInfo" }; +const char* NG__REGISTRATION__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__REGISTRATION__ACCEPT::optional_indexes[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1 }; +const int* NG__REGISTRATION__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int NG__REGISTRATION__ACCEPT::optional_indexes_asn[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1 }; +const int* NG__REGISTRATION__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__REGISTRATION__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 55; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new RegistrationResult_template(ANY_VALUE) : new RegistrationResult_template; +single_value.value_elements[5] = was_any ? new NG__MobileIdentity_template(ANY_OR_OMIT) : new NG__MobileIdentity_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::PLMN__List_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::PLMN__List_template; +single_value.value_elements[7] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[8] = was_any ? new NSSAI_template(ANY_OR_OMIT) : new NSSAI_template; +single_value.value_elements[9] = was_any ? new RejectedNSSAI_template(ANY_OR_OMIT) : new RejectedNSSAI_template; +single_value.value_elements[10] = was_any ? new NSSAI_template(ANY_OR_OMIT) : new NSSAI_template; +single_value.value_elements[11] = was_any ? new NG__NetworkFeatureSupport_template(ANY_OR_OMIT) : new NG__NetworkFeatureSupport_template; +single_value.value_elements[12] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[13] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[14] = was_any ? new PDU__SessionReactivationError_template(ANY_OR_OMIT) : new PDU__SessionReactivationError_template; +single_value.value_elements[15] = was_any ? new LADN__Info_template(ANY_OR_OMIT) : new LADN__Info_template; +single_value.value_elements[16] = was_any ? new MICO__Ind_template(ANY_OR_OMIT) : new MICO__Ind_template; +single_value.value_elements[17] = was_any ? new NetworkSlicingInd_template(ANY_OR_OMIT) : new NetworkSlicingInd_template; +single_value.value_elements[18] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[19] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[20] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[21] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[22] = was_any ? new NAS__CommonTypeDefs::EmergNumList_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EmergNumList_template; +single_value.value_elements[23] = was_any ? new NAS__CommonTypeDefs::ExtdEmergNumList_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdEmergNumList_template; +single_value.value_elements[24] = was_any ? new SORTransparentContainer_template(ANY_OR_OMIT) : new SORTransparentContainer_template; +single_value.value_elements[25] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +single_value.value_elements[26] = was_any ? new InclusionModeNSSAI_template(ANY_OR_OMIT) : new InclusionModeNSSAI_template; +single_value.value_elements[27] = was_any ? new OperatorAccessCatDefinitions_template(ANY_OR_OMIT) : new OperatorAccessCatDefinitions_template; +single_value.value_elements[28] = was_any ? new NAS__CommonTypeDefs::DRXParamCommon_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXParamCommon_template; +single_value.value_elements[29] = was_any ? new NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template; +single_value.value_elements[30] = was_any ? new NAS__CommonTypeDefs::EPS__BearerContextStatus_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::EPS__BearerContextStatus_template; +single_value.value_elements[31] = was_any ? new NAS__CommonTypeDefs::ExtdDRXParams_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdDRXParams_template; +single_value.value_elements[32] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[33] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[34] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[35] = was_any ? new NAS__CommonTypeDefs::UERadioCapId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapId_template; +single_value.value_elements[36] = was_any ? new NAS__CommonTypeDefs::UERadioCapIdDeletion_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapIdDeletion_template; +single_value.value_elements[37] = was_any ? new NSSAI_template(ANY_OR_OMIT) : new NSSAI_template; +single_value.value_elements[38] = was_any ? new NG__CipheringKeyData_template(ANY_OR_OMIT) : new NG__CipheringKeyData_template; +single_value.value_elements[39] = was_any ? new CAGInfoList_template(ANY_OR_OMIT) : new CAGInfoList_template; +single_value.value_elements[40] = was_any ? new TruncatedS__TMSIConfig_template(ANY_OR_OMIT) : new TruncatedS__TMSIConfig_template; +single_value.value_elements[41] = was_any ? new NAS__CommonTypeDefs::WUSAssistInfo_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::WUSAssistInfo_template; +single_value.value_elements[42] = was_any ? new NAS__CommonTypeDefs::DRXParamCommon_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DRXParamCommon_template; +single_value.value_elements[43] = was_any ? new ExtdRejectedNSSAI_template(ANY_OR_OMIT) : new ExtdRejectedNSSAI_template; +single_value.value_elements[44] = was_any ? new ServiceLvlAAContainer_template(ANY_OR_OMIT) : new ServiceLvlAAContainer_template; +single_value.value_elements[45] = was_any ? new PEIPS__AssistInfo_template(ANY_OR_OMIT) : new PEIPS__AssistInfo_template; +single_value.value_elements[46] = was_any ? new NG__AddReqResult_template(ANY_OR_OMIT) : new NG__AddReqResult_template; +single_value.value_elements[47] = was_any ? new NSSRG__Info_template(ANY_OR_OMIT) : new NSSRG__Info_template; +single_value.value_elements[48] = was_any ? new RegistrationWaitRange_template(ANY_OR_OMIT) : new RegistrationWaitRange_template; +single_value.value_elements[49] = was_any ? new RegistrationWaitRange_template(ANY_OR_OMIT) : new RegistrationWaitRange_template; +single_value.value_elements[50] = was_any ? new DisasterPLMNList_template(ANY_OR_OMIT) : new DisasterPLMNList_template; +single_value.value_elements[51] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[52] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[53] = was_any ? new ExtdCAGInfoList_template(ANY_OR_OMIT) : new ExtdCAGInfoList_template; +single_value.value_elements[54] = was_any ? new NSAG__Info_template(ANY_OR_OMIT) : new NSAG__Info_template; +} +} + +NG__REGISTRATION__ACCEPT_template::NG__REGISTRATION__ACCEPT_template(NG__REGISTRATION__ACCEPT_template* p_precondition, NG__REGISTRATION__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__REGISTRATION__ACCEPT_template::NG__REGISTRATION__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__REGISTRATION__ACCEPT_template::~NG__REGISTRATION__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__REGISTRATION__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__REGISTRATION__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__REGISTRATION__ACCEPT_template& NG__REGISTRATION__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__REGISTRATION__ACCEPT_template& NG__REGISTRATION__ACCEPT_template::operator=(const NG__REGISTRATION__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__REGISTRATION__ACCEPT_template& NG__REGISTRATION__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__REGISTRATION__ACCEPT_template& NG__REGISTRATION__ACCEPT_template::operator=(const NG__REGISTRATION__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__REGISTRATION__ACCEPT NG__REGISTRATION__ACCEPT_template::valueof() const +{ +NG__REGISTRATION__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__REGISTRATION__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__REGISTRATION__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__REGISTRATION__ACCEPT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__REGISTRATION__ACCEPT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__REGISTRATION__ACCEPT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__REGISTRATION__ACCEPT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__REGISTRATION__ACCEPT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__REGISTRATION__ACCEPT_template::messageType() const { return *(static_cast(get_at(3))); } +RegistrationResult_template& NG__REGISTRATION__ACCEPT_template::registrationResult() { return *(static_cast(get_at(4))); } +const RegistrationResult_template& NG__REGISTRATION__ACCEPT_template::registrationResult() const { return *(static_cast(get_at(4))); } +NG__MobileIdentity_template& NG__REGISTRATION__ACCEPT_template::guti() { return *(static_cast(get_at(5))); } +const NG__MobileIdentity_template& NG__REGISTRATION__ACCEPT_template::guti() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::PLMN__List_template& NG__REGISTRATION__ACCEPT_template::equivalentPlmns() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::PLMN__List_template& NG__REGISTRATION__ACCEPT_template::equivalentPlmns() const { return *(static_cast(get_at(6))); } +NG__TrackingAreaIdList_template& NG__REGISTRATION__ACCEPT_template::taiList() { return *(static_cast(get_at(7))); } +const NG__TrackingAreaIdList_template& NG__REGISTRATION__ACCEPT_template::taiList() const { return *(static_cast(get_at(7))); } +NSSAI_template& NG__REGISTRATION__ACCEPT_template::allowedNSSAI() { return *(static_cast(get_at(8))); } +const NSSAI_template& NG__REGISTRATION__ACCEPT_template::allowedNSSAI() const { return *(static_cast(get_at(8))); } +RejectedNSSAI_template& NG__REGISTRATION__ACCEPT_template::rejectedNSSAI() { return *(static_cast(get_at(9))); } +const RejectedNSSAI_template& NG__REGISTRATION__ACCEPT_template::rejectedNSSAI() const { return *(static_cast(get_at(9))); } +NSSAI_template& NG__REGISTRATION__ACCEPT_template::configuredNSSAI() { return *(static_cast(get_at(10))); } +const NSSAI_template& NG__REGISTRATION__ACCEPT_template::configuredNSSAI() const { return *(static_cast(get_at(10))); } +NG__NetworkFeatureSupport_template& NG__REGISTRATION__ACCEPT_template::ngs__NetworkFeatureSupport() { return *(static_cast(get_at(11))); } +const NG__NetworkFeatureSupport_template& NG__REGISTRATION__ACCEPT_template::ngs__NetworkFeatureSupport() const { return *(static_cast(get_at(11))); } +PDU__SessionStatus_template& NG__REGISTRATION__ACCEPT_template::pduSessionStatus() { return *(static_cast(get_at(12))); } +const PDU__SessionStatus_template& NG__REGISTRATION__ACCEPT_template::pduSessionStatus() const { return *(static_cast(get_at(12))); } +PDU__SessionStatus_template& NG__REGISTRATION__ACCEPT_template::pduSessionReactivationResult() { return *(static_cast(get_at(13))); } +const PDU__SessionStatus_template& NG__REGISTRATION__ACCEPT_template::pduSessionReactivationResult() const { return *(static_cast(get_at(13))); } +PDU__SessionReactivationError_template& NG__REGISTRATION__ACCEPT_template::pduSessionReactResultError() { return *(static_cast(get_at(14))); } +const PDU__SessionReactivationError_template& NG__REGISTRATION__ACCEPT_template::pduSessionReactResultError() const { return *(static_cast(get_at(14))); } +LADN__Info_template& NG__REGISTRATION__ACCEPT_template::ladnInfo() { return *(static_cast(get_at(15))); } +const LADN__Info_template& NG__REGISTRATION__ACCEPT_template::ladnInfo() const { return *(static_cast(get_at(15))); } +MICO__Ind_template& NG__REGISTRATION__ACCEPT_template::micoInd() { return *(static_cast(get_at(16))); } +const MICO__Ind_template& NG__REGISTRATION__ACCEPT_template::micoInd() const { return *(static_cast(get_at(16))); } +NetworkSlicingInd_template& NG__REGISTRATION__ACCEPT_template::networkSlicingInd() { return *(static_cast(get_at(17))); } +const NetworkSlicingInd_template& NG__REGISTRATION__ACCEPT_template::networkSlicingInd() const { return *(static_cast(get_at(17))); } +NG__TrackingAreaIdList_template& NG__REGISTRATION__ACCEPT_template::saiList() { return *(static_cast(get_at(18))); } +const NG__TrackingAreaIdList_template& NG__REGISTRATION__ACCEPT_template::saiList() const { return *(static_cast(get_at(18))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3512Value() { return *(static_cast(get_at(19))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3512Value() const { return *(static_cast(get_at(19))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::non3GPPDeregisterValue() { return *(static_cast(get_at(20))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::non3GPPDeregisterValue() const { return *(static_cast(get_at(20))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3502Value() { return *(static_cast(get_at(21))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3502Value() const { return *(static_cast(get_at(21))); } +NAS__CommonTypeDefs::EmergNumList_template& NG__REGISTRATION__ACCEPT_template::emergencyNumberList() { return *(static_cast(get_at(22))); } +const NAS__CommonTypeDefs::EmergNumList_template& NG__REGISTRATION__ACCEPT_template::emergencyNumberList() const { return *(static_cast(get_at(22))); } +NAS__CommonTypeDefs::ExtdEmergNumList_template& NG__REGISTRATION__ACCEPT_template::xtdEmergencyNumberList() { return *(static_cast(get_at(23))); } +const NAS__CommonTypeDefs::ExtdEmergNumList_template& NG__REGISTRATION__ACCEPT_template::xtdEmergencyNumberList() const { return *(static_cast(get_at(23))); } +SORTransparentContainer_template& NG__REGISTRATION__ACCEPT_template::sorTransparentContainer() { return *(static_cast(get_at(24))); } +const SORTransparentContainer_template& NG__REGISTRATION__ACCEPT_template::sorTransparentContainer() const { return *(static_cast(get_at(24))); } +EAP__Message_template& NG__REGISTRATION__ACCEPT_template::eapMessage() { return *(static_cast(get_at(25))); } +const EAP__Message_template& NG__REGISTRATION__ACCEPT_template::eapMessage() const { return *(static_cast(get_at(25))); } +InclusionModeNSSAI_template& NG__REGISTRATION__ACCEPT_template::inclusionModeNSSAI() { return *(static_cast(get_at(26))); } +const InclusionModeNSSAI_template& NG__REGISTRATION__ACCEPT_template::inclusionModeNSSAI() const { return *(static_cast(get_at(26))); } +OperatorAccessCatDefinitions_template& NG__REGISTRATION__ACCEPT_template::operatorAccessCatDefs() { return *(static_cast(get_at(27))); } +const OperatorAccessCatDefinitions_template& NG__REGISTRATION__ACCEPT_template::operatorAccessCatDefs() const { return *(static_cast(get_at(27))); } +NAS__CommonTypeDefs::DRXParamCommon_template& NG__REGISTRATION__ACCEPT_template::negotiatedDRXParams() { return *(static_cast(get_at(28))); } +const NAS__CommonTypeDefs::DRXParamCommon_template& NG__REGISTRATION__ACCEPT_template::negotiatedDRXParams() const { return *(static_cast(get_at(28))); } +NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& NG__REGISTRATION__ACCEPT_template::non3GPP__NW__ProvidedPolicies() { return *(static_cast(get_at(29))); } +const NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& NG__REGISTRATION__ACCEPT_template::non3GPP__NW__ProvidedPolicies() const { return *(static_cast(get_at(29))); } +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& NG__REGISTRATION__ACCEPT_template::epsBearerContextStatus() { return *(static_cast(get_at(30))); } +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& NG__REGISTRATION__ACCEPT_template::epsBearerContextStatus() const { return *(static_cast(get_at(30))); } +NAS__CommonTypeDefs::ExtdDRXParams_template& NG__REGISTRATION__ACCEPT_template::negotiatedExtdDRXParams() { return *(static_cast(get_at(31))); } +const NAS__CommonTypeDefs::ExtdDRXParams_template& NG__REGISTRATION__ACCEPT_template::negotiatedExtdDRXParams() const { return *(static_cast(get_at(31))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3447Value() { return *(static_cast(get_at(32))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3447Value() const { return *(static_cast(get_at(32))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3448Value() { return *(static_cast(get_at(33))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3448Value() const { return *(static_cast(get_at(33))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3324Value() { return *(static_cast(get_at(34))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__ACCEPT_template::t3324Value() const { return *(static_cast(get_at(34))); } +NAS__CommonTypeDefs::UERadioCapId_template& NG__REGISTRATION__ACCEPT_template::ueRadioCapabilityId() { return *(static_cast(get_at(35))); } +const NAS__CommonTypeDefs::UERadioCapId_template& NG__REGISTRATION__ACCEPT_template::ueRadioCapabilityId() const { return *(static_cast(get_at(35))); } +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& NG__REGISTRATION__ACCEPT_template::ueRadioCapIdDeletionInd() { return *(static_cast(get_at(36))); } +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& NG__REGISTRATION__ACCEPT_template::ueRadioCapIdDeletionInd() const { return *(static_cast(get_at(36))); } +NSSAI_template& NG__REGISTRATION__ACCEPT_template::pendingNSSAI() { return *(static_cast(get_at(37))); } +const NSSAI_template& NG__REGISTRATION__ACCEPT_template::pendingNSSAI() const { return *(static_cast(get_at(37))); } +NG__CipheringKeyData_template& NG__REGISTRATION__ACCEPT_template::cipheringKeyData() { return *(static_cast(get_at(38))); } +const NG__CipheringKeyData_template& NG__REGISTRATION__ACCEPT_template::cipheringKeyData() const { return *(static_cast(get_at(38))); } +CAGInfoList_template& NG__REGISTRATION__ACCEPT_template::cagInfoList() { return *(static_cast(get_at(39))); } +const CAGInfoList_template& NG__REGISTRATION__ACCEPT_template::cagInfoList() const { return *(static_cast(get_at(39))); } +TruncatedS__TMSIConfig_template& NG__REGISTRATION__ACCEPT_template::truncatedS__TMSIConfig() { return *(static_cast(get_at(40))); } +const TruncatedS__TMSIConfig_template& NG__REGISTRATION__ACCEPT_template::truncatedS__TMSIConfig() const { return *(static_cast(get_at(40))); } +NAS__CommonTypeDefs::WUSAssistInfo_template& NG__REGISTRATION__ACCEPT_template::negotiatedWUSAssistanceInfo() { return *(static_cast(get_at(41))); } +const NAS__CommonTypeDefs::WUSAssistInfo_template& NG__REGISTRATION__ACCEPT_template::negotiatedWUSAssistanceInfo() const { return *(static_cast(get_at(41))); } +NAS__CommonTypeDefs::DRXParamCommon_template& NG__REGISTRATION__ACCEPT_template::negotiatedNB__N1DRXParams() { return *(static_cast(get_at(42))); } +const NAS__CommonTypeDefs::DRXParamCommon_template& NG__REGISTRATION__ACCEPT_template::negotiatedNB__N1DRXParams() const { return *(static_cast(get_at(42))); } +ExtdRejectedNSSAI_template& NG__REGISTRATION__ACCEPT_template::extdRejectedNSSAI() { return *(static_cast(get_at(43))); } +const ExtdRejectedNSSAI_template& NG__REGISTRATION__ACCEPT_template::extdRejectedNSSAI() const { return *(static_cast(get_at(43))); } +ServiceLvlAAContainer_template& NG__REGISTRATION__ACCEPT_template::serviceLvlAA() { return *(static_cast(get_at(44))); } +const ServiceLvlAAContainer_template& NG__REGISTRATION__ACCEPT_template::serviceLvlAA() const { return *(static_cast(get_at(44))); } +PEIPS__AssistInfo_template& NG__REGISTRATION__ACCEPT_template::negotiatedPEIPS__AssistInfo() { return *(static_cast(get_at(45))); } +const PEIPS__AssistInfo_template& NG__REGISTRATION__ACCEPT_template::negotiatedPEIPS__AssistInfo() const { return *(static_cast(get_at(45))); } +NG__AddReqResult_template& NG__REGISTRATION__ACCEPT_template::ngAddRequestResult() { return *(static_cast(get_at(46))); } +const NG__AddReqResult_template& NG__REGISTRATION__ACCEPT_template::ngAddRequestResult() const { return *(static_cast(get_at(46))); } +NSSRG__Info_template& NG__REGISTRATION__ACCEPT_template::nssrgInfo() { return *(static_cast(get_at(47))); } +const NSSRG__Info_template& NG__REGISTRATION__ACCEPT_template::nssrgInfo() const { return *(static_cast(get_at(47))); } +RegistrationWaitRange_template& NG__REGISTRATION__ACCEPT_template::disasterRoamingWaitRange() { return *(static_cast(get_at(48))); } +const RegistrationWaitRange_template& NG__REGISTRATION__ACCEPT_template::disasterRoamingWaitRange() const { return *(static_cast(get_at(48))); } +RegistrationWaitRange_template& NG__REGISTRATION__ACCEPT_template::disasterReturnWaitRange() { return *(static_cast(get_at(49))); } +const RegistrationWaitRange_template& NG__REGISTRATION__ACCEPT_template::disasterReturnWaitRange() const { return *(static_cast(get_at(49))); } +DisasterPLMNList_template& NG__REGISTRATION__ACCEPT_template::disasterPLMNList() { return *(static_cast(get_at(50))); } +const DisasterPLMNList_template& NG__REGISTRATION__ACCEPT_template::disasterPLMNList() const { return *(static_cast(get_at(50))); } +NG__TrackingAreaIdList_template& NG__REGISTRATION__ACCEPT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(51))); } +const NG__TrackingAreaIdList_template& NG__REGISTRATION__ACCEPT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(51))); } +NG__TrackingAreaIdList_template& NG__REGISTRATION__ACCEPT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(52))); } +const NG__TrackingAreaIdList_template& NG__REGISTRATION__ACCEPT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(52))); } +ExtdCAGInfoList_template& NG__REGISTRATION__ACCEPT_template::extdCAGInfoList() { return *(static_cast(get_at(53))); } +const ExtdCAGInfoList_template& NG__REGISTRATION__ACCEPT_template::extdCAGInfoList() const { return *(static_cast(get_at(53))); } +NSAG__Info_template& NG__REGISTRATION__ACCEPT_template::nsagInfo() { return *(static_cast(get_at(54))); } +const NSAG__Info_template& NG__REGISTRATION__ACCEPT_template::nsagInfo() const { return *(static_cast(get_at(54))); } +const TTCN_Typedescriptor_t* NG__REGISTRATION__ACCEPT_template::get_descriptor() const { return &NG__REGISTRATION__ACCEPT_descr_; } +const char* NG__REGISTRATION__ACCEPT_template::fld_name(int p_index) const { return NG__REGISTRATION__ACCEPT::fld_names[p_index]; } + +const NG__ListOfPartialTaiList NG__TrackingAreaIdList__LV_listOfPartialTais::UNBOUND_ELEM; +NG__ListOfPartialTaiList& NG__TrackingAreaIdList__LV_listOfPartialTais::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__ListOfPartialTaiList& NG__TrackingAreaIdList__LV_listOfPartialTais::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList& NG__TrackingAreaIdList__LV_listOfPartialTais::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList& NG__TrackingAreaIdList__LV_listOfPartialTais::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::operator<<=(const INTEGER& rotate_count) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +return *((NG__TrackingAreaIdList__LV_listOfPartialTais*)rotl(rotate_count, &rec_of)); +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::operator>>=(const INTEGER& rotate_count) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +return *((NG__TrackingAreaIdList__LV_listOfPartialTais*)rotr(rotate_count, &rec_of)); +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::operator>>=(int rotate_count) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +return *((NG__TrackingAreaIdList__LV_listOfPartialTais*)rotr(rotate_count, &rec_of)); +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +return *((NG__TrackingAreaIdList__LV_listOfPartialTais*)concat(&other_value, &rec_of)); +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__TrackingAreaIdList__LV_listOfPartialTais&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NG_TrackingAreaIdList_LV.listOfPartialTais concatenation."); +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::operator+(null_type) const +{ +return *this; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::substr(int index, int returncount) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::replace(int index, int len, const NG__TrackingAreaIdList__LV_listOfPartialTais& repl) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais::replace(int index, int len, const NG__TrackingAreaIdList__LV_listOfPartialTais_template& repl) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__TrackingAreaIdList__LV_listOfPartialTais::create_elem() const { return new NG__ListOfPartialTaiList; } +const Base_Type* NG__TrackingAreaIdList__LV_listOfPartialTais::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList__LV_listOfPartialTais::get_descriptor() const { return &NG__TrackingAreaIdList__LV_listOfPartialTais_descr_; } +NG__TrackingAreaIdList__LV_listOfPartialTais_template::NG__TrackingAreaIdList__LV_listOfPartialTais_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template::NG__TrackingAreaIdList__LV_listOfPartialTais_template(NG__TrackingAreaIdList__LV_listOfPartialTais_template* p_precondition, NG__TrackingAreaIdList__LV_listOfPartialTais_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__TrackingAreaIdList__LV_listOfPartialTais_template::NG__TrackingAreaIdList__LV_listOfPartialTais_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__TrackingAreaIdList__LV_listOfPartialTais_template::~NG__TrackingAreaIdList__LV_listOfPartialTais_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__TrackingAreaIdList__LV_listOfPartialTais_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__TrackingAreaIdList__LV_listOfPartialTais* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__TrackingAreaIdList__LV_listOfPartialTais_template& NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template& NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template& NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator=(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template& NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template& NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator=(const NG__TrackingAreaIdList__LV_listOfPartialTais_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__TrackingAreaIdList__LV_listOfPartialTais_template(ANY_VALUE); +} +NG__TrackingAreaIdList__LV_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__TrackingAreaIdList__LV_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__TrackingAreaIdList__LV_listOfPartialTais_template(ANY_VALUE); +} +NG__TrackingAreaIdList__LV_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator+(null_type) const +{ +return *this; +} + +NG__ListOfPartialTaiList_template& NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__ListOfPartialTaiList_template& NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList_template& NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList_template& NG__TrackingAreaIdList__LV_listOfPartialTais_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais_template::valueof() const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais_template::substr(int index, int returncount) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais_template::replace(int index, int len, const NG__TrackingAreaIdList__LV_listOfPartialTais_template& repl) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais NG__TrackingAreaIdList__LV_listOfPartialTais_template::replace(int index, int len, const NG__TrackingAreaIdList__LV_listOfPartialTais& repl) const +{ +NG__TrackingAreaIdList__LV_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__TrackingAreaIdList__LV_listOfPartialTais_template::create_elem() const { return new NG__ListOfPartialTaiList_template; } +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList__LV_listOfPartialTais_template::get_descriptor() const { return &NG__TrackingAreaIdList__LV_listOfPartialTais_descr_; } +void NG__PartialTaiType::copy_value(const NG__PartialTaiType& other_value) +{ +switch (other_value.union_selection) { +case ALT_type0List: +field_type0List = new NG__Type0List(*other_value.field_type0List); +break; +case ALT_type1List: +field_type1List = new NG__Type1List(*other_value.field_type1List); +break; +case ALT_type2List: +field_type2List = new NG__Type2List(*other_value.field_type2List); +break; +case ALT_type3: +field_type3 = new NG__Type3Element(*other_value.field_type3); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +NG__PartialTaiType::NG__PartialTaiType(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +NG__PartialTaiType::NG__PartialTaiType(const NG__PartialTaiType& other_value) +: Base_Type(){ +copy_value(other_value); +} + +NG__PartialTaiType::~NG__PartialTaiType() +{ +clean_up(); +} + +NG__PartialTaiType& NG__PartialTaiType::operator=(const NG__PartialTaiType& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean NG__PartialTaiType::operator==(const NG__PartialTaiType& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_type0List: +return *field_type0List == *other_value.field_type0List; +case ALT_type1List: +return *field_type1List == *other_value.field_type1List; +case ALT_type2List: +return *field_type2List == *other_value.field_type2List; +case ALT_type3: +return *field_type3 == *other_value.field_type3; +default: +return FALSE; +} +} + +NG__Type0List& NG__PartialTaiType::type0List() +{ +if (union_selection != ALT_type0List) { +clean_up(); +field_type0List = new NG__Type0List; +union_selection = ALT_type0List; +} +return *field_type0List; +} + +const NG__Type0List& NG__PartialTaiType::type0List() const +{ +if (union_selection != ALT_type0List) TTCN_error("Using non-selected field type0List in a value of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return *field_type0List; +} + +NG__Type1List& NG__PartialTaiType::type1List() +{ +if (union_selection != ALT_type1List) { +clean_up(); +field_type1List = new NG__Type1List; +union_selection = ALT_type1List; +} +return *field_type1List; +} + +const NG__Type1List& NG__PartialTaiType::type1List() const +{ +if (union_selection != ALT_type1List) TTCN_error("Using non-selected field type1List in a value of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return *field_type1List; +} + +NG__Type2List& NG__PartialTaiType::type2List() +{ +if (union_selection != ALT_type2List) { +clean_up(); +field_type2List = new NG__Type2List; +union_selection = ALT_type2List; +} +return *field_type2List; +} + +const NG__Type2List& NG__PartialTaiType::type2List() const +{ +if (union_selection != ALT_type2List) TTCN_error("Using non-selected field type2List in a value of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return *field_type2List; +} + +NG__Type3Element& NG__PartialTaiType::type3() +{ +if (union_selection != ALT_type3) { +clean_up(); +field_type3 = new NG__Type3Element; +union_selection = ALT_type3; +} +return *field_type3; +} + +const NG__Type3Element& NG__PartialTaiType::type3() const +{ +if (union_selection != ALT_type3) TTCN_error("Using non-selected field type3 in a value of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return *field_type3; +} + +boolean NG__PartialTaiType::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return union_selection == checked_selection; +} + +boolean NG__PartialTaiType::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean NG__PartialTaiType::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_type0List: return field_type0List->is_value(); +case ALT_type1List: return field_type1List->is_value(); +case ALT_type2List: return field_type2List->is_value(); +case ALT_type3: return field_type3->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void NG__PartialTaiType::clean_up() +{ +switch (union_selection) { +case ALT_type0List: + delete field_type0List; + break; +case ALT_type1List: + delete field_type1List; + break; +case ALT_type2List: + delete field_type2List; + break; +case ALT_type3: + delete field_type3; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean NG__PartialTaiType::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NG__PartialTaiType::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NG__PartialTaiType::clone() const { return new NG__PartialTaiType(*this); } +const TTCN_Typedescriptor_t* NG__PartialTaiType::get_descriptor() const { return &NG__PartialTaiType_descr_; } +void NG__PartialTaiType::log() const +{ +switch (union_selection) { +case ALT_type0List: +TTCN_Logger::log_event_str("{ type0List := "); +field_type0List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_type1List: +TTCN_Logger::log_event_str("{ type1List := "); +field_type1List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_type2List: +TTCN_Logger::log_event_str("{ type2List := "); +field_type2List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_type3: +TTCN_Logger::log_event_str("{ type3 := "); +field_type3->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void NG__PartialTaiType::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NG_NAS_TypeDefs.NG_PartialTaiType'"); + } + if (strcmp("type0List", param_field) == 0) { + type0List().set_param(param); + return; + } else if (strcmp("type1List", param_field) == 0) { + type1List().set_param(param); + return; + } else if (strcmp("type2List", param_field) == 0) { + type2List().set_param(param); + return; + } else if (strcmp("type3", param_field) == 0) { + type3().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NG_NAS_TypeDefs.NG_PartialTaiType'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "type0List")) { + type0List().set_param(*mp_last); + if (!type0List().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "type1List")) { + type1List().set_param(*mp_last); + if (!type1List().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "type2List")) { + type2List().set_param(*mp_last); + if (!type2List().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "type3")) { + type3().set_param(*mp_last); + if (!type3().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NG_NAS_TypeDefs.NG_PartialTaiType.", last_name); +} + +Module_Param* NG__PartialTaiType::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NG_NAS_TypeDefs.NG_PartialTaiType'"); + } + if (strcmp("type0List", param_field) == 0) { + return type0List().get_param(param_name); + } else if (strcmp("type1List", param_field) == 0) { + return type1List().get_param(param_name); + } else if (strcmp("type2List", param_field) == 0) { + return type2List().get_param(param_name); + } else if (strcmp("type3", param_field) == 0) { + return type3().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__PartialTaiType'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_type0List: + mp_field = field_type0List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type0List"))); + break; + case ALT_type1List: + mp_field = field_type1List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type1List"))); + break; + case ALT_type2List: + mp_field = field_type2List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type2List"))); + break; + case ALT_type3: + mp_field = field_type3->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type3"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void NG__PartialTaiType::set_implicit_omit() +{ +switch (union_selection) { +case ALT_type0List: +field_type0List->set_implicit_omit(); break; +case ALT_type1List: +field_type1List->set_implicit_omit(); break; +case ALT_type2List: +field_type2List->set_implicit_omit(); break; +case ALT_type3: +field_type3->set_implicit_omit(); break; +default: break; +} +} + +void NG__PartialTaiType::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_type0List: +field_type0List->encode_text(text_buf); +break; +case ALT_type1List: +field_type1List->encode_text(text_buf); +break; +case ALT_type2List: +field_type2List->encode_text(text_buf); +break; +case ALT_type3: +field_type3->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +} + +void NG__PartialTaiType::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_type0List: +type0List().decode_text(text_buf); +break; +case ALT_type1List: +type1List().decode_text(text_buf); +break; +case ALT_type2List: +type2List().decode_text(text_buf); +break; +case ALT_type3: +type3().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +} + +void NG__PartialTaiType_template::copy_value(const NG__PartialTaiType& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case NG__PartialTaiType::ALT_type0List: +single_value.field_type0List = new NG__Type0List_template(other_value.type0List()); +break; +case NG__PartialTaiType::ALT_type1List: +single_value.field_type1List = new NG__Type1List_template(other_value.type1List()); +break; +case NG__PartialTaiType::ALT_type2List: +single_value.field_type2List = new NG__Type2List_template(other_value.type2List()); +break; +case NG__PartialTaiType::ALT_type3: +single_value.field_type3 = new NG__Type3Element_template(other_value.type3()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void NG__PartialTaiType_template::copy_template(const NG__PartialTaiType_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case NG__PartialTaiType::ALT_type0List: +single_value.field_type0List = new NG__Type0List_template(*other_value.single_value.field_type0List); +break; +case NG__PartialTaiType::ALT_type1List: +single_value.field_type1List = new NG__Type1List_template(*other_value.single_value.field_type1List); +break; +case NG__PartialTaiType::ALT_type2List: +single_value.field_type2List = new NG__Type2List_template(*other_value.single_value.field_type2List); +break; +case NG__PartialTaiType::ALT_type3: +single_value.field_type3 = new NG__Type3Element_template(*other_value.single_value.field_type3); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NG__PartialTaiType_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NG__PartialTaiType_template(*other_value.implication_.precondition); +implication_.implied_template = new NG__PartialTaiType_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +NG__PartialTaiType_template::NG__PartialTaiType_template(): err_descr(NULL) +{ +} + +NG__PartialTaiType_template::NG__PartialTaiType_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +NG__PartialTaiType_template::NG__PartialTaiType_template(const NG__PartialTaiType& other_value) +{ +copy_value(other_value); +} + +NG__PartialTaiType_template::NG__PartialTaiType_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__PartialTaiType&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType from an unbound optional field."); +} +} + +NG__PartialTaiType_template::NG__PartialTaiType_template(NG__PartialTaiType_template* p_precondition, NG__PartialTaiType_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NG__PartialTaiType_template::NG__PartialTaiType_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NG__PartialTaiType_template::NG__PartialTaiType_template(const NG__PartialTaiType_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +NG__PartialTaiType_template::~NG__PartialTaiType_template() +{ +clean_up(); +} + +void NG__PartialTaiType_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__PartialTaiType::ALT_type0List: +delete single_value.field_type0List; +break; +case NG__PartialTaiType::ALT_type1List: +delete single_value.field_type1List; +break; +case NG__PartialTaiType::ALT_type2List: +delete single_value.field_type2List; +break; +case NG__PartialTaiType::ALT_type3: +delete single_value.field_type3; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NG__PartialTaiType_template& NG__PartialTaiType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +NG__PartialTaiType_template& NG__PartialTaiType_template::operator=(const NG__PartialTaiType& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +NG__PartialTaiType_template& NG__PartialTaiType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__PartialTaiType&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +return *this; +} + +NG__PartialTaiType_template& NG__PartialTaiType_template::operator=(const NG__PartialTaiType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NG__PartialTaiType_template::match(const NG__PartialTaiType& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +NG__PartialTaiType::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == NG__PartialTaiType::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case NG__PartialTaiType::ALT_type0List: +return single_value.field_type0List->match(other_value.type0List(), legacy); +case NG__PartialTaiType::ALT_type1List: +return single_value.field_type1List->match(other_value.type1List(), legacy); +case NG__PartialTaiType::ALT_type2List: +return single_value.field_type2List->match(other_value.type2List(), legacy); +case NG__PartialTaiType::ALT_type3: +return single_value.field_type3->match(other_value.type3(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +return FALSE; +} + +boolean NG__PartialTaiType_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case NG__PartialTaiType::ALT_type0List: +return single_value.field_type0List->is_value(); +case NG__PartialTaiType::ALT_type1List: +return single_value.field_type1List->is_value(); +case NG__PartialTaiType::ALT_type2List: +return single_value.field_type2List->is_value(); +case NG__PartialTaiType::ALT_type3: +return single_value.field_type3->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +} + +NG__PartialTaiType NG__PartialTaiType_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +NG__PartialTaiType ret_val; +switch (single_value.union_selection) { +case NG__PartialTaiType::ALT_type0List: +ret_val.type0List() = single_value.field_type0List->valueof(); +break; +case NG__PartialTaiType::ALT_type1List: +ret_val.type1List() = single_value.field_type1List->valueof(); +break; +case NG__PartialTaiType::ALT_type2List: +ret_val.type2List() = single_value.field_type2List->valueof(); +break; +case NG__PartialTaiType::ALT_type3: +ret_val.type3() = single_value.field_type3->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +NG__PartialTaiType_template& NG__PartialTaiType_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return value_list.list_value[list_index]; +} +void NG__PartialTaiType_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NG__PartialTaiType_template[list_length]; +} + +NG__PartialTaiType::union_selection_type NG__PartialTaiType_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NG_NAS_TypeDefs.NG_PartialTaiType"); +return single_value.union_selection; +} + +NG__Type0List_template& NG__PartialTaiType_template::type0List() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__PartialTaiType::ALT_type0List) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_type0List = new NG__Type0List_template(ANY_VALUE); +else single_value.field_type0List = new NG__Type0List_template; +single_value.union_selection = NG__PartialTaiType::ALT_type0List; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_type0List; +} + +const NG__Type0List_template& NG__PartialTaiType_template::type0List() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field type0List in a non-specific template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +if (single_value.union_selection != NG__PartialTaiType::ALT_type0List) TTCN_error("Accessing non-selected field type0List in a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return *single_value.field_type0List; +} + +NG__Type1List_template& NG__PartialTaiType_template::type1List() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__PartialTaiType::ALT_type1List) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_type1List = new NG__Type1List_template(ANY_VALUE); +else single_value.field_type1List = new NG__Type1List_template; +single_value.union_selection = NG__PartialTaiType::ALT_type1List; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_type1List; +} + +const NG__Type1List_template& NG__PartialTaiType_template::type1List() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field type1List in a non-specific template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +if (single_value.union_selection != NG__PartialTaiType::ALT_type1List) TTCN_error("Accessing non-selected field type1List in a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return *single_value.field_type1List; +} + +NG__Type2List_template& NG__PartialTaiType_template::type2List() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__PartialTaiType::ALT_type2List) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_type2List = new NG__Type2List_template(ANY_VALUE); +else single_value.field_type2List = new NG__Type2List_template; +single_value.union_selection = NG__PartialTaiType::ALT_type2List; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_type2List; +} + +const NG__Type2List_template& NG__PartialTaiType_template::type2List() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field type2List in a non-specific template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +if (single_value.union_selection != NG__PartialTaiType::ALT_type2List) TTCN_error("Accessing non-selected field type2List in a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return *single_value.field_type2List; +} + +NG__Type3Element_template& NG__PartialTaiType_template::type3() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__PartialTaiType::ALT_type3) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_type3 = new NG__Type3Element_template(ANY_VALUE); +else single_value.field_type3 = new NG__Type3Element_template; +single_value.union_selection = NG__PartialTaiType::ALT_type3; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_type3; +} + +const NG__Type3Element_template& NG__PartialTaiType_template::type3() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field type3 in a non-specific template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +if (single_value.union_selection != NG__PartialTaiType::ALT_type3) TTCN_error("Accessing non-selected field type3 in a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return *single_value.field_type3; +} + +boolean NG__PartialTaiType_template::ischosen(NG__PartialTaiType::union_selection_type checked_selection) const +{ +if (checked_selection == NG__PartialTaiType::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == NG__PartialTaiType::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void NG__PartialTaiType_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NG__PartialTaiType_template::set_value(template_sel other_value) { *this = other_value; } +void NG__PartialTaiType_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NG__PartialTaiType_template::clone() const { return new NG__PartialTaiType_template(*this); } +const TTCN_Typedescriptor_t* NG__PartialTaiType_template::get_descriptor() const { return &NG__PartialTaiType_descr_; } +boolean NG__PartialTaiType_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NG__PartialTaiType_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NG__PartialTaiType_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__PartialTaiType::ALT_type0List: +TTCN_Logger::log_event_str("{ type0List := "); +single_value.field_type0List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__PartialTaiType::ALT_type1List: +TTCN_Logger::log_event_str("{ type1List := "); +single_value.field_type1List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__PartialTaiType::ALT_type2List: +TTCN_Logger::log_event_str("{ type2List := "); +single_value.field_type2List->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__PartialTaiType::ALT_type3: +TTCN_Logger::log_event_str("{ type3 := "); +single_value.field_type3->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void NG__PartialTaiType_template::log_match(const NG__PartialTaiType& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case NG__PartialTaiType::ALT_type0List: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".type0List"); +single_value.field_type0List->log_match(match_value.type0List(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ type0List := "); +single_value.field_type0List->log_match(match_value.type0List(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__PartialTaiType::ALT_type1List: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".type1List"); +single_value.field_type1List->log_match(match_value.type1List(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ type1List := "); +single_value.field_type1List->log_match(match_value.type1List(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__PartialTaiType::ALT_type2List: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".type2List"); +single_value.field_type2List->log_match(match_value.type2List(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ type2List := "); +single_value.field_type2List->log_match(match_value.type2List(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__PartialTaiType::ALT_type3: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".type3"); +single_value.field_type3->log_match(match_value.type3(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ type3 := "); +single_value.field_type3->log_match(match_value.type3(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void NG__PartialTaiType_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case NG__PartialTaiType::ALT_type0List: +single_value.field_type0List->encode_text(text_buf); +break; +case NG__PartialTaiType::ALT_type1List: +single_value.field_type1List->encode_text(text_buf); +break; +case NG__PartialTaiType::ALT_type2List: +single_value.field_type2List->encode_text(text_buf); +break; +case NG__PartialTaiType::ALT_type3: +single_value.field_type3->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +} + +void NG__PartialTaiType_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = NG__PartialTaiType::UNBOUND_VALUE; +NG__PartialTaiType::union_selection_type new_selection = (NG__PartialTaiType::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case NG__PartialTaiType::ALT_type0List: +single_value.field_type0List = new NG__Type0List_template; +single_value.field_type0List->decode_text(text_buf); +break; +case NG__PartialTaiType::ALT_type1List: +single_value.field_type1List = new NG__Type1List_template; +single_value.field_type1List->decode_text(text_buf); +break; +case NG__PartialTaiType::ALT_type2List: +single_value.field_type2List = new NG__Type2List_template; +single_value.field_type2List->decode_text(text_buf); +break; +case NG__PartialTaiType::ALT_type3: +single_value.field_type3 = new NG__Type3Element_template; +single_value.field_type3->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NG__PartialTaiType_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +} + +boolean NG__PartialTaiType_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NG__PartialTaiType_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NG_NAS_TypeDefs.NG_PartialTaiType'"); + } + if (strcmp("type0List", param_field) == 0) { + type0List().set_param(param); + return; + } else if (strcmp("type1List", param_field) == 0) { + type1List().set_param(param); + return; + } else if (strcmp("type2List", param_field) == 0) { + type2List().set_param(param); + return; + } else if (strcmp("type3", param_field) == 0) { + type3().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NG_NAS_TypeDefs.NG_PartialTaiType'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NG__PartialTaiType_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NG_NAS_TypeDefs.NG_PartialTaiType"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "type0List")) { + type0List().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "type1List")) { + type1List().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "type2List")) { + type2List().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "type3")) { + type3().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NG_NAS_TypeDefs.NG_PartialTaiType.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + NG__PartialTaiType_template* precondition = new NG__PartialTaiType_template; + precondition->set_param(*m_p->get_elem(0)); + NG__PartialTaiType_template* implied_template = new NG__PartialTaiType_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NG__PartialTaiType_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NG_NAS_TypeDefs.NG_PartialTaiType"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NG__PartialTaiType_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NG_NAS_TypeDefs.NG_PartialTaiType'"); + } + if (strcmp("type0List", param_field) == 0) { + return type0List().get_param(param_name); + } else if (strcmp("type1List", param_field) == 0) { + return type1List().get_param(param_name); + } else if (strcmp("type2List", param_field) == 0) { + return type2List().get_param(param_name); + } else if (strcmp("type3", param_field) == 0) { + return type3().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__PartialTaiType'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case NG__PartialTaiType::ALT_type0List: + mp_field = single_value.field_type0List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type0List"))); + break; + case NG__PartialTaiType::ALT_type1List: + mp_field = single_value.field_type1List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type1List"))); + break; + case NG__PartialTaiType::ALT_type2List: + mp_field = single_value.field_type2List->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type2List"))); + break; + case NG__PartialTaiType::ALT_type3: + mp_field = single_value.field_type3->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type3"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NG__PartialTaiType_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case NG__PartialTaiType::ALT_type0List: +single_value.field_type0List->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.NG_PartialTaiType"); +return; +case NG__PartialTaiType::ALT_type1List: +single_value.field_type1List->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.NG_PartialTaiType"); +return; +case NG__PartialTaiType::ALT_type2List: +single_value.field_type2List->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.NG_PartialTaiType"); +return; +case NG__PartialTaiType::ALT_type3: +single_value.field_type3->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.NG_PartialTaiType"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NG_NAS_TypeDefs.NG_PartialTaiType."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NG_NAS_TypeDefs.NG_PartialTaiType"); +} + + +const NG__Type0Element NG__Type0List::UNBOUND_ELEM; +NG__Type0Element& NG__Type0List::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__Type0Element& NG__Type0List::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__Type0Element& NG__Type0List::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__Type0Element& NG__Type0List::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__Type0List NG__Type0List::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__Type0List NG__Type0List::operator<<=(const INTEGER& rotate_count) const +{ +NG__Type0List rec_of; +return *((NG__Type0List*)rotl(rotate_count, &rec_of)); +} + +NG__Type0List NG__Type0List::operator>>=(const INTEGER& rotate_count) const +{ +NG__Type0List rec_of; +return *((NG__Type0List*)rotr(rotate_count, &rec_of)); +} + +NG__Type0List NG__Type0List::operator>>=(int rotate_count) const +{ +NG__Type0List rec_of; +return *((NG__Type0List*)rotr(rotate_count, &rec_of)); +} + +NG__Type0List NG__Type0List::operator+(const NG__Type0List& other_value) const +{ +NG__Type0List rec_of; +return *((NG__Type0List*)concat(&other_value, &rec_of)); +} + +NG__Type0List NG__Type0List::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__Type0List&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NG_Type0List concatenation."); +} + +NG__Type0List NG__Type0List::operator+(null_type) const +{ +return *this; +} + +NG__Type0List NG__Type0List::substr(int index, int returncount) const +{ +NG__Type0List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__Type0List NG__Type0List::replace(int index, int len, const NG__Type0List& repl) const +{ +NG__Type0List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__Type0List NG__Type0List::replace(int index, int len, const NG__Type0List_template& repl) const +{ +NG__Type0List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__Type0List::create_elem() const { return new NG__Type0Element; } +const Base_Type* NG__Type0List::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__Type0List::get_descriptor() const { return &NG__Type0List_descr_; } +NG__Type0List_template::NG__Type0List_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__Type0List_template::NG__Type0List_template(NG__Type0List_template* p_precondition, NG__Type0List_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__Type0List_template::NG__Type0List_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__Type0List_template::~NG__Type0List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__Type0List_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__Type0List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__Type0List_template& NG__Type0List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__Type0List_template& NG__Type0List_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__Type0List_template& NG__Type0List_template::operator=(const NG__Type0List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__Type0List_template& NG__Type0List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__Type0List_template& NG__Type0List_template::operator=(const NG__Type0List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__Type0List_template NG__Type0List_template::operator+(const NG__Type0List_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__Type0List_template(ANY_VALUE); +} +NG__Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__Type0List_template NG__Type0List_template::operator+(const NG__Type0List& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__Type0List_template NG__Type0List_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__Type0List_template(ANY_VALUE); +} +NG__Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__Type0List_template NG__Type0List_template::operator+(null_type) const +{ +return *this; +} + +NG__Type0Element_template& NG__Type0List_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__Type0Element_template& NG__Type0List_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__Type0Element_template& NG__Type0List_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__Type0Element_template& NG__Type0List_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__Type0List NG__Type0List_template::valueof() const +{ +NG__Type0List ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__Type0List NG__Type0List_template::substr(int index, int returncount) const +{ +NG__Type0List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__Type0List NG__Type0List_template::replace(int index, int len, const NG__Type0List_template& repl) const +{ +NG__Type0List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__Type0List NG__Type0List_template::replace(int index, int len, const NG__Type0List& repl) const +{ +NG__Type0List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__Type0List_template::create_elem() const { return new NG__Type0Element_template; } +const TTCN_Typedescriptor_t* NG__Type0List_template::get_descriptor() const { return &NG__Type0List_descr_; } +void NG__Type0Element::init_vec() { fld_vec[0]=&field_plmnId; fld_vec[1]=&field_tacList; } + +NG__Type0Element::NG__Type0Element() : Record_Type() { init_vec(); } + +NG__Type0Element::NG__Type0Element(const NG__Type0Element& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_plmnId.is_bound() ) + field_plmnId = other_value.field_plmnId; +if (other_value.field_tacList.is_bound() ) + field_tacList = other_value.field_tacList; +init_vec(); +} + +NG__Type0Element::NG__Type0Element(const OCTETSTRING& par_plmnId, + const NG__NAS__TacList& par_tacList) : field_plmnId(par_plmnId), + field_tacList(par_tacList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__Type0Element::get_descriptor() const { return &NG__Type0Element_descr_; } +const TTCN_Typedescriptor_t* NG__Type0Element::fld_descriptors[] = { &NAS__CommonTypeDefs::NAS__PlmnId_descr_, &NG__NAS__TacList_descr_ }; +const TTCN_Typedescriptor_t* NG__Type0Element::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__Type0Element::fld_names[] = { "plmnId", "tacList" }; +const char* NG__Type0Element::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__Type0Element_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new NG__NAS__TacList_template(ANY_VALUE) : new NG__NAS__TacList_template; +} +} + +NG__Type0Element_template::NG__Type0Element_template(NG__Type0Element_template* p_precondition, NG__Type0Element_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__Type0Element_template::NG__Type0Element_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__Type0Element_template::~NG__Type0Element_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__Type0Element_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__Type0Element* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__Type0Element_template& NG__Type0Element_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__Type0Element_template& NG__Type0Element_template::operator=(const NG__Type0Element& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__Type0Element_template& NG__Type0Element_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__Type0Element_template& NG__Type0Element_template::operator=(const NG__Type0Element_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__Type0Element NG__Type0Element_template::valueof() const +{ +NG__Type0Element ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__Type0Element_template::plmnId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__Type0Element_template::plmnId() const { return *(static_cast(get_at(0))); } +NG__NAS__TacList_template& NG__Type0Element_template::tacList() { return *(static_cast(get_at(1))); } +const NG__NAS__TacList_template& NG__Type0Element_template::tacList() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__Type0Element_template::get_descriptor() const { return &NG__Type0Element_descr_; } +const char* NG__Type0Element_template::fld_name(int p_index) const { return NG__Type0Element::fld_names[p_index]; } + +const NG__Type1Element NG__Type1List::UNBOUND_ELEM; +NG__Type1Element& NG__Type1List::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__Type1Element& NG__Type1List::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__Type1Element& NG__Type1List::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__Type1Element& NG__Type1List::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__Type1List NG__Type1List::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__Type1List NG__Type1List::operator<<=(const INTEGER& rotate_count) const +{ +NG__Type1List rec_of; +return *((NG__Type1List*)rotl(rotate_count, &rec_of)); +} + +NG__Type1List NG__Type1List::operator>>=(const INTEGER& rotate_count) const +{ +NG__Type1List rec_of; +return *((NG__Type1List*)rotr(rotate_count, &rec_of)); +} + +NG__Type1List NG__Type1List::operator>>=(int rotate_count) const +{ +NG__Type1List rec_of; +return *((NG__Type1List*)rotr(rotate_count, &rec_of)); +} + +NG__Type1List NG__Type1List::operator+(const NG__Type1List& other_value) const +{ +NG__Type1List rec_of; +return *((NG__Type1List*)concat(&other_value, &rec_of)); +} + +NG__Type1List NG__Type1List::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__Type1List&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NG_Type1List concatenation."); +} + +NG__Type1List NG__Type1List::operator+(null_type) const +{ +return *this; +} + +NG__Type1List NG__Type1List::substr(int index, int returncount) const +{ +NG__Type1List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__Type1List NG__Type1List::replace(int index, int len, const NG__Type1List& repl) const +{ +NG__Type1List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__Type1List NG__Type1List::replace(int index, int len, const NG__Type1List_template& repl) const +{ +NG__Type1List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__Type1List::create_elem() const { return new NG__Type1Element; } +const Base_Type* NG__Type1List::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__Type1List::get_descriptor() const { return &NG__Type1List_descr_; } +NG__Type1List_template::NG__Type1List_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__Type1List_template::NG__Type1List_template(NG__Type1List_template* p_precondition, NG__Type1List_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__Type1List_template::NG__Type1List_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__Type1List_template::~NG__Type1List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__Type1List_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__Type1List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__Type1List_template& NG__Type1List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__Type1List_template& NG__Type1List_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__Type1List_template& NG__Type1List_template::operator=(const NG__Type1List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__Type1List_template& NG__Type1List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__Type1List_template& NG__Type1List_template::operator=(const NG__Type1List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__Type1List_template NG__Type1List_template::operator+(const NG__Type1List_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__Type1List_template(ANY_VALUE); +} +NG__Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__Type1List_template NG__Type1List_template::operator+(const NG__Type1List& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__Type1List_template NG__Type1List_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__Type1List_template(ANY_VALUE); +} +NG__Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__Type1List_template NG__Type1List_template::operator+(null_type) const +{ +return *this; +} + +NG__Type1Element_template& NG__Type1List_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__Type1Element_template& NG__Type1List_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__Type1Element_template& NG__Type1List_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__Type1Element_template& NG__Type1List_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__Type1List NG__Type1List_template::valueof() const +{ +NG__Type1List ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__Type1List NG__Type1List_template::substr(int index, int returncount) const +{ +NG__Type1List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__Type1List NG__Type1List_template::replace(int index, int len, const NG__Type1List_template& repl) const +{ +NG__Type1List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__Type1List NG__Type1List_template::replace(int index, int len, const NG__Type1List& repl) const +{ +NG__Type1List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__Type1List_template::create_elem() const { return new NG__Type1Element_template; } +const TTCN_Typedescriptor_t* NG__Type1List_template::get_descriptor() const { return &NG__Type1List_descr_; } +void NG__PartialTai::init_vec() { fld_vec[0]=&field_plmnId; fld_vec[1]=&field_tac; } + +NG__PartialTai::NG__PartialTai() : Record_Type() { init_vec(); } + +NG__PartialTai::NG__PartialTai(const NG__PartialTai& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_plmnId.is_bound() ) + field_plmnId = other_value.field_plmnId; +if (other_value.field_tac.is_bound() ) + field_tac = other_value.field_tac; +init_vec(); +} + +NG__PartialTai::NG__PartialTai(const OCTETSTRING& par_plmnId, + const OCTETSTRING& par_tac) : field_plmnId(par_plmnId), + field_tac(par_tac) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PartialTai::get_descriptor() const { return &NG__PartialTai_descr_; } +const TTCN_Typedescriptor_t* NG__PartialTai::fld_descriptors[] = { &NAS__CommonTypeDefs::NAS__PlmnId_descr_, &CommonDefs::O3__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__PartialTai::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PartialTai::fld_names[] = { "plmnId", "tac" }; +const char* NG__PartialTai::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__PartialTai_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NG__PartialTai_template::NG__PartialTai_template(NG__PartialTai_template* p_precondition, NG__PartialTai_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PartialTai_template::NG__PartialTai_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PartialTai_template::~NG__PartialTai_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PartialTai_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PartialTai* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PartialTai_template& NG__PartialTai_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PartialTai_template& NG__PartialTai_template::operator=(const NG__PartialTai& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PartialTai_template& NG__PartialTai_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PartialTai_template& NG__PartialTai_template::operator=(const NG__PartialTai_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PartialTai NG__PartialTai_template::valueof() const +{ +NG__PartialTai ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__PartialTai_template::plmnId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__PartialTai_template::plmnId() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__PartialTai_template::tac() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__PartialTai_template::tac() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__PartialTai_template::get_descriptor() const { return &NG__PartialTai_descr_; } +const char* NG__PartialTai_template::fld_name(int p_index) const { return NG__PartialTai::fld_names[p_index]; } +void NG__Type1Element::init_vec() { fld_vec[0]=&field_partialTac; } + +NG__Type1Element::NG__Type1Element() : Record_Type() { init_vec(); } + +NG__Type1Element::NG__Type1Element(const NG__Type1Element& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_partialTac.is_bound() ) + field_partialTac = other_value.field_partialTac; +init_vec(); +} + +NG__Type1Element::NG__Type1Element(const NG__PartialTai& par_partialTac) : field_partialTac(par_partialTac) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__Type1Element::get_descriptor() const { return &NG__Type1Element_descr_; } +const TTCN_Typedescriptor_t* NG__Type1Element::fld_descriptors[] = { &NG__PartialTai_descr_ }; +const TTCN_Typedescriptor_t* NG__Type1Element::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__Type1Element::fld_names[] = { "partialTac" }; +const char* NG__Type1Element::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__Type1Element_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NG__PartialTai_template(ANY_VALUE) : new NG__PartialTai_template; +} +} + +NG__Type1Element_template::NG__Type1Element_template(NG__Type1Element_template* p_precondition, NG__Type1Element_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__Type1Element_template::NG__Type1Element_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__Type1Element_template::~NG__Type1Element_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__Type1Element_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__Type1Element* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__Type1Element_template& NG__Type1Element_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__Type1Element_template& NG__Type1Element_template::operator=(const NG__Type1Element& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__Type1Element_template& NG__Type1Element_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__Type1Element_template& NG__Type1Element_template::operator=(const NG__Type1Element_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__Type1Element NG__Type1Element_template::valueof() const +{ +NG__Type1Element ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__PartialTai_template& NG__Type1Element_template::partialTac() { return *(static_cast(get_at(0))); } +const NG__PartialTai_template& NG__Type1Element_template::partialTac() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* NG__Type1Element_template::get_descriptor() const { return &NG__Type1Element_descr_; } +const char* NG__Type1Element_template::fld_name(int p_index) const { return NG__Type1Element::fld_names[p_index]; } + +const NG__Type2Element NG__Type2List::UNBOUND_ELEM; +NG__Type2Element& NG__Type2List::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__Type2Element& NG__Type2List::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__Type2Element& NG__Type2List::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__Type2Element& NG__Type2List::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__Type2List NG__Type2List::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__Type2List NG__Type2List::operator<<=(const INTEGER& rotate_count) const +{ +NG__Type2List rec_of; +return *((NG__Type2List*)rotl(rotate_count, &rec_of)); +} + +NG__Type2List NG__Type2List::operator>>=(const INTEGER& rotate_count) const +{ +NG__Type2List rec_of; +return *((NG__Type2List*)rotr(rotate_count, &rec_of)); +} + +NG__Type2List NG__Type2List::operator>>=(int rotate_count) const +{ +NG__Type2List rec_of; +return *((NG__Type2List*)rotr(rotate_count, &rec_of)); +} + +NG__Type2List NG__Type2List::operator+(const NG__Type2List& other_value) const +{ +NG__Type2List rec_of; +return *((NG__Type2List*)concat(&other_value, &rec_of)); +} + +NG__Type2List NG__Type2List::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__Type2List&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NG_Type2List concatenation."); +} + +NG__Type2List NG__Type2List::operator+(null_type) const +{ +return *this; +} + +NG__Type2List NG__Type2List::substr(int index, int returncount) const +{ +NG__Type2List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__Type2List NG__Type2List::replace(int index, int len, const NG__Type2List& repl) const +{ +NG__Type2List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__Type2List NG__Type2List::replace(int index, int len, const NG__Type2List_template& repl) const +{ +NG__Type2List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__Type2List::create_elem() const { return new NG__Type2Element; } +const Base_Type* NG__Type2List::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__Type2List::get_descriptor() const { return &NG__Type2List_descr_; } +NG__Type2List_template::NG__Type2List_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__Type2List_template::NG__Type2List_template(NG__Type2List_template* p_precondition, NG__Type2List_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__Type2List_template::NG__Type2List_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__Type2List_template::~NG__Type2List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__Type2List_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__Type2List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__Type2List_template& NG__Type2List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__Type2List_template& NG__Type2List_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__Type2List_template& NG__Type2List_template::operator=(const NG__Type2List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__Type2List_template& NG__Type2List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__Type2List_template& NG__Type2List_template::operator=(const NG__Type2List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__Type2List_template NG__Type2List_template::operator+(const NG__Type2List_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__Type2List_template(ANY_VALUE); +} +NG__Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__Type2List_template NG__Type2List_template::operator+(const NG__Type2List& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__Type2List_template NG__Type2List_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__Type2List_template(ANY_VALUE); +} +NG__Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__Type2List_template NG__Type2List_template::operator+(null_type) const +{ +return *this; +} + +NG__Type2Element_template& NG__Type2List_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__Type2Element_template& NG__Type2List_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__Type2Element_template& NG__Type2List_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__Type2Element_template& NG__Type2List_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__Type2List NG__Type2List_template::valueof() const +{ +NG__Type2List ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__Type2List NG__Type2List_template::substr(int index, int returncount) const +{ +NG__Type2List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__Type2List NG__Type2List_template::replace(int index, int len, const NG__Type2List_template& repl) const +{ +NG__Type2List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__Type2List NG__Type2List_template::replace(int index, int len, const NG__Type2List& repl) const +{ +NG__Type2List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__Type2List_template::create_elem() const { return new NG__Type2Element_template; } +const TTCN_Typedescriptor_t* NG__Type2List_template::get_descriptor() const { return &NG__Type2List_descr_; } + +const NG__PartialTai NG__PlmnAndTacs::UNBOUND_ELEM; +NG__PartialTai& NG__PlmnAndTacs::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__PartialTai& NG__PlmnAndTacs::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__PartialTai& NG__PlmnAndTacs::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__PartialTai& NG__PlmnAndTacs::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__PlmnAndTacs NG__PlmnAndTacs::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__PlmnAndTacs NG__PlmnAndTacs::operator<<=(const INTEGER& rotate_count) const +{ +NG__PlmnAndTacs rec_of; +return *((NG__PlmnAndTacs*)rotl(rotate_count, &rec_of)); +} + +NG__PlmnAndTacs NG__PlmnAndTacs::operator>>=(const INTEGER& rotate_count) const +{ +NG__PlmnAndTacs rec_of; +return *((NG__PlmnAndTacs*)rotr(rotate_count, &rec_of)); +} + +NG__PlmnAndTacs NG__PlmnAndTacs::operator>>=(int rotate_count) const +{ +NG__PlmnAndTacs rec_of; +return *((NG__PlmnAndTacs*)rotr(rotate_count, &rec_of)); +} + +NG__PlmnAndTacs NG__PlmnAndTacs::operator+(const NG__PlmnAndTacs& other_value) const +{ +NG__PlmnAndTacs rec_of; +return *((NG__PlmnAndTacs*)concat(&other_value, &rec_of)); +} + +NG__PlmnAndTacs NG__PlmnAndTacs::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__PlmnAndTacs&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NG_PlmnAndTacs concatenation."); +} + +NG__PlmnAndTacs NG__PlmnAndTacs::operator+(null_type) const +{ +return *this; +} + +NG__PlmnAndTacs NG__PlmnAndTacs::substr(int index, int returncount) const +{ +NG__PlmnAndTacs rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__PlmnAndTacs NG__PlmnAndTacs::replace(int index, int len, const NG__PlmnAndTacs& repl) const +{ +NG__PlmnAndTacs rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__PlmnAndTacs NG__PlmnAndTacs::replace(int index, int len, const NG__PlmnAndTacs_template& repl) const +{ +NG__PlmnAndTacs rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__PlmnAndTacs::create_elem() const { return new NG__PartialTai; } +const Base_Type* NG__PlmnAndTacs::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__PlmnAndTacs::get_descriptor() const { return &NG__PlmnAndTacs_descr_; } +NG__PlmnAndTacs_template::NG__PlmnAndTacs_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__PlmnAndTacs_template::NG__PlmnAndTacs_template(NG__PlmnAndTacs_template* p_precondition, NG__PlmnAndTacs_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PlmnAndTacs_template::NG__PlmnAndTacs_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PlmnAndTacs_template::~NG__PlmnAndTacs_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PlmnAndTacs_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PlmnAndTacs* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__PlmnAndTacs_template& NG__PlmnAndTacs_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PlmnAndTacs_template& NG__PlmnAndTacs_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__PlmnAndTacs_template& NG__PlmnAndTacs_template::operator=(const NG__PlmnAndTacs& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PlmnAndTacs_template& NG__PlmnAndTacs_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PlmnAndTacs_template& NG__PlmnAndTacs_template::operator=(const NG__PlmnAndTacs_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PlmnAndTacs_template NG__PlmnAndTacs_template::operator+(const NG__PlmnAndTacs_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__PlmnAndTacs_template(ANY_VALUE); +} +NG__PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__PlmnAndTacs_template NG__PlmnAndTacs_template::operator+(const NG__PlmnAndTacs& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__PlmnAndTacs_template NG__PlmnAndTacs_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__PlmnAndTacs_template(ANY_VALUE); +} +NG__PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__PlmnAndTacs_template NG__PlmnAndTacs_template::operator+(null_type) const +{ +return *this; +} + +NG__PartialTai_template& NG__PlmnAndTacs_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__PartialTai_template& NG__PlmnAndTacs_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__PartialTai_template& NG__PlmnAndTacs_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__PartialTai_template& NG__PlmnAndTacs_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__PlmnAndTacs NG__PlmnAndTacs_template::valueof() const +{ +NG__PlmnAndTacs ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__PlmnAndTacs NG__PlmnAndTacs_template::substr(int index, int returncount) const +{ +NG__PlmnAndTacs rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__PlmnAndTacs NG__PlmnAndTacs_template::replace(int index, int len, const NG__PlmnAndTacs_template& repl) const +{ +NG__PlmnAndTacs rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__PlmnAndTacs NG__PlmnAndTacs_template::replace(int index, int len, const NG__PlmnAndTacs& repl) const +{ +NG__PlmnAndTacs rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__PlmnAndTacs_template::create_elem() const { return new NG__PartialTai_template; } +const TTCN_Typedescriptor_t* NG__PlmnAndTacs_template::get_descriptor() const { return &NG__PlmnAndTacs_descr_; } +void NG__Type2Element::init_vec() { fld_vec[0]=&field_plmnAndTacs; } + +NG__Type2Element::NG__Type2Element() : Record_Type() { init_vec(); } + +NG__Type2Element::NG__Type2Element(const NG__Type2Element& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_plmnAndTacs.is_bound() ) + field_plmnAndTacs = other_value.field_plmnAndTacs; +init_vec(); +} + +NG__Type2Element::NG__Type2Element(const NG__PlmnAndTacs& par_plmnAndTacs) : field_plmnAndTacs(par_plmnAndTacs) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__Type2Element::get_descriptor() const { return &NG__Type2Element_descr_; } +const TTCN_Typedescriptor_t* NG__Type2Element::fld_descriptors[] = { &NG__PlmnAndTacs_descr_ }; +const TTCN_Typedescriptor_t* NG__Type2Element::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__Type2Element::fld_names[] = { "plmnAndTacs" }; +const char* NG__Type2Element::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__Type2Element_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NG__PlmnAndTacs_template(ANY_VALUE) : new NG__PlmnAndTacs_template; +} +} + +NG__Type2Element_template::NG__Type2Element_template(NG__Type2Element_template* p_precondition, NG__Type2Element_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__Type2Element_template::NG__Type2Element_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__Type2Element_template::~NG__Type2Element_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__Type2Element_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__Type2Element* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__Type2Element_template& NG__Type2Element_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__Type2Element_template& NG__Type2Element_template::operator=(const NG__Type2Element& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__Type2Element_template& NG__Type2Element_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__Type2Element_template& NG__Type2Element_template::operator=(const NG__Type2Element_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__Type2Element NG__Type2Element_template::valueof() const +{ +NG__Type2Element ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__PlmnAndTacs_template& NG__Type2Element_template::plmnAndTacs() { return *(static_cast(get_at(0))); } +const NG__PlmnAndTacs_template& NG__Type2Element_template::plmnAndTacs() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* NG__Type2Element_template::get_descriptor() const { return &NG__Type2Element_descr_; } +const char* NG__Type2Element_template::fld_name(int p_index) const { return NG__Type2Element::fld_names[p_index]; } +void NG__Type3Element::init_vec() { fld_vec[0]=&field_plmnId; } + +NG__Type3Element::NG__Type3Element() : Record_Type() { init_vec(); } + +NG__Type3Element::NG__Type3Element(const NG__Type3Element& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_plmnId.is_bound() ) + field_plmnId = other_value.field_plmnId; +init_vec(); +} + +NG__Type3Element::NG__Type3Element(const OCTETSTRING& par_plmnId) : field_plmnId(par_plmnId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__Type3Element::get_descriptor() const { return &NG__Type3Element_descr_; } +const TTCN_Typedescriptor_t* NG__Type3Element::fld_descriptors[] = { &NAS__CommonTypeDefs::NAS__PlmnId_descr_ }; +const TTCN_Typedescriptor_t* NG__Type3Element::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__Type3Element::fld_names[] = { "plmnId" }; +const char* NG__Type3Element::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__Type3Element_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NG__Type3Element_template::NG__Type3Element_template(NG__Type3Element_template* p_precondition, NG__Type3Element_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__Type3Element_template::NG__Type3Element_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__Type3Element_template::~NG__Type3Element_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__Type3Element_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__Type3Element* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__Type3Element_template& NG__Type3Element_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__Type3Element_template& NG__Type3Element_template::operator=(const NG__Type3Element& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__Type3Element_template& NG__Type3Element_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__Type3Element_template& NG__Type3Element_template::operator=(const NG__Type3Element_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__Type3Element NG__Type3Element_template::valueof() const +{ +NG__Type3Element ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__Type3Element_template::plmnId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__Type3Element_template::plmnId() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* NG__Type3Element_template::get_descriptor() const { return &NG__Type3Element_descr_; } +const char* NG__Type3Element_template::fld_name(int p_index) const { return NG__Type3Element::fld_names[p_index]; } +void NG__ListOfPartialTaiList::init_vec() { fld_vec[0]=&field_allowedType; fld_vec[1]=&field_typeOfList; fld_vec[2]=&field_numberOfElements; fld_vec[3]=&field_partialTaiList; } + +NG__ListOfPartialTaiList::NG__ListOfPartialTaiList() : Record_Type() { init_vec(); } + +NG__ListOfPartialTaiList::NG__ListOfPartialTaiList(const NG__ListOfPartialTaiList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_allowedType.is_bound() ) + field_allowedType = other_value.field_allowedType; +if (other_value.field_typeOfList.is_bound() ) + field_typeOfList = other_value.field_typeOfList; +if (other_value.field_numberOfElements.is_bound() ) + field_numberOfElements = other_value.field_numberOfElements; +if (other_value.field_partialTaiList.is_bound() ) + field_partialTaiList = other_value.field_partialTaiList; +init_vec(); +} + +NG__ListOfPartialTaiList::NG__ListOfPartialTaiList(const BITSTRING& par_allowedType, + const BITSTRING& par_typeOfList, + const BITSTRING& par_numberOfElements, + const NG__PartialTaiType& par_partialTaiList) : field_allowedType(par_allowedType), + field_typeOfList(par_typeOfList), + field_numberOfElements(par_numberOfElements), + field_partialTaiList(par_partialTaiList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__ListOfPartialTaiList::get_descriptor() const { return &NG__ListOfPartialTaiList_descr_; } +const TTCN_Typedescriptor_t* NG__ListOfPartialTaiList::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B5__Type_descr_, &NG__PartialTaiType_descr_ }; +const TTCN_Typedescriptor_t* NG__ListOfPartialTaiList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__ListOfPartialTaiList::fld_names[] = { "allowedType", "typeOfList", "numberOfElements", "partialTaiList" }; +const char* NG__ListOfPartialTaiList::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__ListOfPartialTaiList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NG__PartialTaiType_template(ANY_VALUE) : new NG__PartialTaiType_template; +} +} + +NG__ListOfPartialTaiList_template::NG__ListOfPartialTaiList_template(NG__ListOfPartialTaiList_template* p_precondition, NG__ListOfPartialTaiList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__ListOfPartialTaiList_template::NG__ListOfPartialTaiList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__ListOfPartialTaiList_template::~NG__ListOfPartialTaiList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__ListOfPartialTaiList_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__ListOfPartialTaiList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__ListOfPartialTaiList_template& NG__ListOfPartialTaiList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__ListOfPartialTaiList_template& NG__ListOfPartialTaiList_template::operator=(const NG__ListOfPartialTaiList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__ListOfPartialTaiList_template& NG__ListOfPartialTaiList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__ListOfPartialTaiList_template& NG__ListOfPartialTaiList_template::operator=(const NG__ListOfPartialTaiList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__ListOfPartialTaiList NG__ListOfPartialTaiList_template::valueof() const +{ +NG__ListOfPartialTaiList ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__ListOfPartialTaiList_template::allowedType() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__ListOfPartialTaiList_template::allowedType() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NG__ListOfPartialTaiList_template::typeOfList() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NG__ListOfPartialTaiList_template::typeOfList() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__ListOfPartialTaiList_template::numberOfElements() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__ListOfPartialTaiList_template::numberOfElements() const { return *(static_cast(get_at(2))); } +NG__PartialTaiType_template& NG__ListOfPartialTaiList_template::partialTaiList() { return *(static_cast(get_at(3))); } +const NG__PartialTaiType_template& NG__ListOfPartialTaiList_template::partialTaiList() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* NG__ListOfPartialTaiList_template::get_descriptor() const { return &NG__ListOfPartialTaiList_descr_; } +const char* NG__ListOfPartialTaiList_template::fld_name(int p_index) const { return NG__ListOfPartialTaiList::fld_names[p_index]; } +void NG__TrackingAreaIdList__LV::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_listOfPartialTais; } + +NG__TrackingAreaIdList__LV::NG__TrackingAreaIdList__LV() : Record_Type() { init_vec(); } + +NG__TrackingAreaIdList__LV::NG__TrackingAreaIdList__LV(const NG__TrackingAreaIdList__LV& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_listOfPartialTais.is_bound() ) + field_listOfPartialTais = other_value.field_listOfPartialTais; +init_vec(); +} + +NG__TrackingAreaIdList__LV::NG__TrackingAreaIdList__LV(const OCTETSTRING& par_iel, + const NG__TrackingAreaIdList__LV_listOfPartialTais& par_listOfPartialTais) : field_iel(par_iel), + field_listOfPartialTais(par_listOfPartialTais) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList__LV::get_descriptor() const { return &NG__TrackingAreaIdList__LV_descr_; } +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList__LV::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &NG__TrackingAreaIdList__LV_listOfPartialTais_descr_ }; +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList__LV::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__TrackingAreaIdList__LV::fld_names[] = { "iel", "listOfPartialTais" }; +const char* NG__TrackingAreaIdList__LV::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__TrackingAreaIdList__LV_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new NG__TrackingAreaIdList__LV_listOfPartialTais_template(ANY_VALUE) : new NG__TrackingAreaIdList__LV_listOfPartialTais_template; +} +} + +NG__TrackingAreaIdList__LV_template::NG__TrackingAreaIdList__LV_template(NG__TrackingAreaIdList__LV_template* p_precondition, NG__TrackingAreaIdList__LV_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__TrackingAreaIdList__LV_template::NG__TrackingAreaIdList__LV_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__TrackingAreaIdList__LV_template::~NG__TrackingAreaIdList__LV_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__TrackingAreaIdList__LV_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__TrackingAreaIdList__LV* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__TrackingAreaIdList__LV_template& NG__TrackingAreaIdList__LV_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__TrackingAreaIdList__LV_template& NG__TrackingAreaIdList__LV_template::operator=(const NG__TrackingAreaIdList__LV& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__TrackingAreaIdList__LV_template& NG__TrackingAreaIdList__LV_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__TrackingAreaIdList__LV_template& NG__TrackingAreaIdList__LV_template::operator=(const NG__TrackingAreaIdList__LV_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__TrackingAreaIdList__LV NG__TrackingAreaIdList__LV_template::valueof() const +{ +NG__TrackingAreaIdList__LV ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__TrackingAreaIdList__LV_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__TrackingAreaIdList__LV_template::iel() const { return *(static_cast(get_at(0))); } +NG__TrackingAreaIdList__LV_listOfPartialTais_template& NG__TrackingAreaIdList__LV_template::listOfPartialTais() { return *(static_cast(get_at(1))); } +const NG__TrackingAreaIdList__LV_listOfPartialTais_template& NG__TrackingAreaIdList__LV_template::listOfPartialTais() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList__LV_template::get_descriptor() const { return &NG__TrackingAreaIdList__LV_descr_; } +const char* NG__TrackingAreaIdList__LV_template::fld_name(int p_index) const { return NG__TrackingAreaIdList__LV::fld_names[p_index]; } +void NG__TrackingAreaIdList::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_lvPart; } + +NG__TrackingAreaIdList::NG__TrackingAreaIdList() : Record_Type() { init_vec(); } + +NG__TrackingAreaIdList::NG__TrackingAreaIdList(const NG__TrackingAreaIdList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_lvPart.is_bound() ) + field_lvPart = other_value.field_lvPart; +init_vec(); +} + +NG__TrackingAreaIdList::NG__TrackingAreaIdList(const OPTIONAL& par_iei, + const NG__TrackingAreaIdList__LV& par_lvPart) : field_iei(par_iei), + field_lvPart(par_lvPart) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList::get_descriptor() const { return &NG__TrackingAreaIdList_descr_; } +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NG__TrackingAreaIdList__LV_descr_ }; +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__TrackingAreaIdList::fld_names[] = { "iei", "lvPart" }; +const char* NG__TrackingAreaIdList::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__TrackingAreaIdList::optional_indexes[] = { 0, -1 }; +const int* NG__TrackingAreaIdList::get_optional_indexes() const { return optional_indexes; } + +const int NG__TrackingAreaIdList::optional_indexes_asn[] = { 0, -1 }; +const int* NG__TrackingAreaIdList::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__TrackingAreaIdList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new NG__TrackingAreaIdList__LV_template(ANY_VALUE) : new NG__TrackingAreaIdList__LV_template; +} +} + +NG__TrackingAreaIdList_template::NG__TrackingAreaIdList_template(NG__TrackingAreaIdList_template* p_precondition, NG__TrackingAreaIdList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__TrackingAreaIdList_template::NG__TrackingAreaIdList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__TrackingAreaIdList_template::~NG__TrackingAreaIdList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__TrackingAreaIdList_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__TrackingAreaIdList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__TrackingAreaIdList_template& NG__TrackingAreaIdList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__TrackingAreaIdList_template& NG__TrackingAreaIdList_template::operator=(const NG__TrackingAreaIdList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__TrackingAreaIdList_template& NG__TrackingAreaIdList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__TrackingAreaIdList_template& NG__TrackingAreaIdList_template::operator=(const NG__TrackingAreaIdList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__TrackingAreaIdList NG__TrackingAreaIdList_template::valueof() const +{ +NG__TrackingAreaIdList ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__TrackingAreaIdList_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__TrackingAreaIdList_template::iei() const { return *(static_cast(get_at(0))); } +NG__TrackingAreaIdList__LV_template& NG__TrackingAreaIdList_template::lvPart() { return *(static_cast(get_at(1))); } +const NG__TrackingAreaIdList__LV_template& NG__TrackingAreaIdList_template::lvPart() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__TrackingAreaIdList_template::get_descriptor() const { return &NG__TrackingAreaIdList_descr_; } +const char* NG__TrackingAreaIdList_template::fld_name(int p_index) const { return NG__TrackingAreaIdList::fld_names[p_index]; } + +const RejectedS__NSSAI RejectedNSSAI_rejectS__NSSAI::UNBOUND_ELEM; +RejectedS__NSSAI& RejectedNSSAI_rejectS__NSSAI::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +RejectedS__NSSAI& RejectedNSSAI_rejectS__NSSAI::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const RejectedS__NSSAI& RejectedNSSAI_rejectS__NSSAI::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const RejectedS__NSSAI& RejectedNSSAI_rejectS__NSSAI::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::operator<<=(const INTEGER& rotate_count) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +return *((RejectedNSSAI_rejectS__NSSAI*)rotl(rotate_count, &rec_of)); +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::operator>>=(const INTEGER& rotate_count) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +return *((RejectedNSSAI_rejectS__NSSAI*)rotr(rotate_count, &rec_of)); +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::operator>>=(int rotate_count) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +return *((RejectedNSSAI_rejectS__NSSAI*)rotr(rotate_count, &rec_of)); +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::operator+(const RejectedNSSAI_rejectS__NSSAI& other_value) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +return *((RejectedNSSAI_rejectS__NSSAI*)concat(&other_value, &rec_of)); +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const RejectedNSSAI_rejectS__NSSAI&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.RejectedNSSAI.rejectS_NSSAI concatenation."); +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::operator+(null_type) const +{ +return *this; +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::substr(int index, int returncount) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::replace(int index, int len, const RejectedNSSAI_rejectS__NSSAI& repl) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI::replace(int index, int len, const RejectedNSSAI_rejectS__NSSAI_template& repl) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* RejectedNSSAI_rejectS__NSSAI::create_elem() const { return new RejectedS__NSSAI; } +const Base_Type* RejectedNSSAI_rejectS__NSSAI::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* RejectedNSSAI_rejectS__NSSAI::get_descriptor() const { return &RejectedNSSAI_rejectS__NSSAI_descr_; } +RejectedNSSAI_rejectS__NSSAI_template::RejectedNSSAI_rejectS__NSSAI_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +RejectedNSSAI_rejectS__NSSAI_template::RejectedNSSAI_rejectS__NSSAI_template(RejectedNSSAI_rejectS__NSSAI_template* p_precondition, RejectedNSSAI_rejectS__NSSAI_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RejectedNSSAI_rejectS__NSSAI_template::RejectedNSSAI_rejectS__NSSAI_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RejectedNSSAI_rejectS__NSSAI_template::~RejectedNSSAI_rejectS__NSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RejectedNSSAI_rejectS__NSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const RejectedNSSAI_rejectS__NSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +RejectedNSSAI_rejectS__NSSAI_template& RejectedNSSAI_rejectS__NSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RejectedNSSAI_rejectS__NSSAI_template& RejectedNSSAI_rejectS__NSSAI_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +RejectedNSSAI_rejectS__NSSAI_template& RejectedNSSAI_rejectS__NSSAI_template::operator=(const RejectedNSSAI_rejectS__NSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RejectedNSSAI_rejectS__NSSAI_template& RejectedNSSAI_rejectS__NSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RejectedNSSAI_rejectS__NSSAI_template& RejectedNSSAI_rejectS__NSSAI_template::operator=(const RejectedNSSAI_rejectS__NSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RejectedNSSAI_rejectS__NSSAI_template RejectedNSSAI_rejectS__NSSAI_template::operator+(const RejectedNSSAI_rejectS__NSSAI_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return RejectedNSSAI_rejectS__NSSAI_template(ANY_VALUE); +} +RejectedNSSAI_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +RejectedNSSAI_rejectS__NSSAI_template RejectedNSSAI_rejectS__NSSAI_template::operator+(const RejectedNSSAI_rejectS__NSSAI& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +RejectedNSSAI_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +RejectedNSSAI_rejectS__NSSAI_template RejectedNSSAI_rejectS__NSSAI_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return RejectedNSSAI_rejectS__NSSAI_template(ANY_VALUE); +} +RejectedNSSAI_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +RejectedNSSAI_rejectS__NSSAI_template RejectedNSSAI_rejectS__NSSAI_template::operator+(null_type) const +{ +return *this; +} + +RejectedS__NSSAI_template& RejectedNSSAI_rejectS__NSSAI_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +RejectedS__NSSAI_template& RejectedNSSAI_rejectS__NSSAI_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const RejectedS__NSSAI_template& RejectedNSSAI_rejectS__NSSAI_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const RejectedS__NSSAI_template& RejectedNSSAI_rejectS__NSSAI_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI_template::valueof() const +{ +RejectedNSSAI_rejectS__NSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI_template::substr(int index, int returncount) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI_template::replace(int index, int len, const RejectedNSSAI_rejectS__NSSAI_template& repl) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +RejectedNSSAI_rejectS__NSSAI RejectedNSSAI_rejectS__NSSAI_template::replace(int index, int len, const RejectedNSSAI_rejectS__NSSAI& repl) const +{ +RejectedNSSAI_rejectS__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* RejectedNSSAI_rejectS__NSSAI_template::create_elem() const { return new RejectedS__NSSAI_template; } +const TTCN_Typedescriptor_t* RejectedNSSAI_rejectS__NSSAI_template::get_descriptor() const { return &RejectedNSSAI_rejectS__NSSAI_descr_; } +void RejectedS__NSSAI::init_vec() { fld_vec[0]=&field_len; fld_vec[1]=&field_causeValue; fld_vec[2]=&field_sst; fld_vec[3]=&field_sd; } + +RejectedS__NSSAI::RejectedS__NSSAI() : Record_Type() { init_vec(); } + +RejectedS__NSSAI::RejectedS__NSSAI(const RejectedS__NSSAI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_causeValue.is_bound() ) + field_causeValue = other_value.field_causeValue; +if (other_value.field_sst.is_bound() ) + field_sst = other_value.field_sst; +if (other_value.field_sd.is_bound() ) + field_sd = other_value.field_sd; +init_vec(); +} + +RejectedS__NSSAI::RejectedS__NSSAI(const BITSTRING& par_len, + const BITSTRING& par_causeValue, + const OCTETSTRING& par_sst, + const OPTIONAL& par_sd) : field_len(par_len), + field_causeValue(par_causeValue), + field_sst(par_sst), + field_sd(par_sd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RejectedS__NSSAI::get_descriptor() const { return &RejectedS__NSSAI_descr_; } +const TTCN_Typedescriptor_t* RejectedS__NSSAI::fld_descriptors[] = { &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O3__Type_descr_ }; +const TTCN_Typedescriptor_t* RejectedS__NSSAI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RejectedS__NSSAI::fld_names[] = { "len", "causeValue", "sst", "sd" }; +const char* RejectedS__NSSAI::fld_name(int p_index) const { return fld_names[p_index]; } + +const int RejectedS__NSSAI::optional_indexes[] = { 3, -1 }; +const int* RejectedS__NSSAI::get_optional_indexes() const { return optional_indexes; } + +const int RejectedS__NSSAI::optional_indexes_asn[] = { 3, -1 }; +const int* RejectedS__NSSAI::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void RejectedS__NSSAI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +RejectedS__NSSAI_template::RejectedS__NSSAI_template(RejectedS__NSSAI_template* p_precondition, RejectedS__NSSAI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RejectedS__NSSAI_template::RejectedS__NSSAI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RejectedS__NSSAI_template::~RejectedS__NSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RejectedS__NSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const RejectedS__NSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RejectedS__NSSAI_template& RejectedS__NSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RejectedS__NSSAI_template& RejectedS__NSSAI_template::operator=(const RejectedS__NSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RejectedS__NSSAI_template& RejectedS__NSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RejectedS__NSSAI_template& RejectedS__NSSAI_template::operator=(const RejectedS__NSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RejectedS__NSSAI RejectedS__NSSAI_template::valueof() const +{ +RejectedS__NSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& RejectedS__NSSAI_template::len() { return *(static_cast(get_at(0))); } +const BITSTRING_template& RejectedS__NSSAI_template::len() const { return *(static_cast(get_at(0))); } +BITSTRING_template& RejectedS__NSSAI_template::causeValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& RejectedS__NSSAI_template::causeValue() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& RejectedS__NSSAI_template::sst() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& RejectedS__NSSAI_template::sst() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& RejectedS__NSSAI_template::sd() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& RejectedS__NSSAI_template::sd() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* RejectedS__NSSAI_template::get_descriptor() const { return &RejectedS__NSSAI_descr_; } +const char* RejectedS__NSSAI_template::fld_name(int p_index) const { return RejectedS__NSSAI::fld_names[p_index]; } +void RejectedNSSAI::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_rejectS__NSSAI; } + +RejectedNSSAI::RejectedNSSAI() : Record_Type() { init_vec(); } + +RejectedNSSAI::RejectedNSSAI(const RejectedNSSAI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_rejectS__NSSAI.is_bound() ) + field_rejectS__NSSAI = other_value.field_rejectS__NSSAI; +init_vec(); +} + +RejectedNSSAI::RejectedNSSAI(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const RejectedNSSAI_rejectS__NSSAI& par_rejectS__NSSAI) : field_iei(par_iei), + field_iel(par_iel), + field_rejectS__NSSAI(par_rejectS__NSSAI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RejectedNSSAI::get_descriptor() const { return &RejectedNSSAI_descr_; } +const TTCN_Typedescriptor_t* RejectedNSSAI::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &RejectedNSSAI_rejectS__NSSAI_descr_ }; +const TTCN_Typedescriptor_t* RejectedNSSAI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RejectedNSSAI::fld_names[] = { "iei", "iel", "rejectS_NSSAI" }; +const char* RejectedNSSAI::fld_name(int p_index) const { return fld_names[p_index]; } + +const int RejectedNSSAI::optional_indexes[] = { 0, 1, -1 }; +const int* RejectedNSSAI::get_optional_indexes() const { return optional_indexes; } + +const int RejectedNSSAI::optional_indexes_asn[] = { 0, 1, -1 }; +const int* RejectedNSSAI::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void RejectedNSSAI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new RejectedNSSAI_rejectS__NSSAI_template(ANY_VALUE) : new RejectedNSSAI_rejectS__NSSAI_template; +} +} + +RejectedNSSAI_template::RejectedNSSAI_template(RejectedNSSAI_template* p_precondition, RejectedNSSAI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RejectedNSSAI_template::RejectedNSSAI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RejectedNSSAI_template::~RejectedNSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RejectedNSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const RejectedNSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RejectedNSSAI_template& RejectedNSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RejectedNSSAI_template& RejectedNSSAI_template::operator=(const RejectedNSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RejectedNSSAI_template& RejectedNSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RejectedNSSAI_template& RejectedNSSAI_template::operator=(const RejectedNSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RejectedNSSAI RejectedNSSAI_template::valueof() const +{ +RejectedNSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& RejectedNSSAI_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& RejectedNSSAI_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& RejectedNSSAI_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& RejectedNSSAI_template::iel() const { return *(static_cast(get_at(1))); } +RejectedNSSAI_rejectS__NSSAI_template& RejectedNSSAI_template::rejectS__NSSAI() { return *(static_cast(get_at(2))); } +const RejectedNSSAI_rejectS__NSSAI_template& RejectedNSSAI_template::rejectS__NSSAI() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* RejectedNSSAI_template::get_descriptor() const { return &RejectedNSSAI_descr_; } +const char* RejectedNSSAI_template::fld_name(int p_index) const { return RejectedNSSAI::fld_names[p_index]; } +void NG__NetworkFeatureSupport::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_mpsi; fld_vec[3]=&field_iwk__N26; fld_vec[4]=&field_emf; fld_vec[5]=&field_emc; fld_vec[6]=&field_imsVoPS__n3GPP; fld_vec[7]=&field_imsVoPS__3GPP; fld_vec[8]=&field_ng__UP__CIoT; fld_vec[9]=&field_ngIPHC__CP__CIoT; fld_vec[10]=&field_n3Data; fld_vec[11]=&field_ng__CP__CIoT; fld_vec[12]=&field_restrictEC; fld_vec[13]=&field_mcsi; fld_vec[14]=&field_emcn3; fld_vec[15]=&field_spareBit; fld_vec[16]=&field_pr; fld_vec[17]=&field_rpr; fld_vec[18]=&field_piv; fld_vec[19]=&field_ncr; fld_vec[20]=&field_ngEHC__CP__CIoT; fld_vec[21]=&field_atsInd; fld_vec[22]=&field_ngLCS; } + +NG__NetworkFeatureSupport::NG__NetworkFeatureSupport() : Record_Type() { init_vec(); } + +NG__NetworkFeatureSupport::NG__NetworkFeatureSupport(const NG__NetworkFeatureSupport& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_mpsi.is_bound() ) + field_mpsi = other_value.field_mpsi; +if (other_value.field_iwk__N26.is_bound() ) + field_iwk__N26 = other_value.field_iwk__N26; +if (other_value.field_emf.is_bound() ) + field_emf = other_value.field_emf; +if (other_value.field_emc.is_bound() ) + field_emc = other_value.field_emc; +if (other_value.field_imsVoPS__n3GPP.is_bound() ) + field_imsVoPS__n3GPP = other_value.field_imsVoPS__n3GPP; +if (other_value.field_imsVoPS__3GPP.is_bound() ) + field_imsVoPS__3GPP = other_value.field_imsVoPS__3GPP; +if (other_value.field_ng__UP__CIoT.is_bound() ) + field_ng__UP__CIoT = other_value.field_ng__UP__CIoT; +if (other_value.field_ngIPHC__CP__CIoT.is_bound() ) + field_ngIPHC__CP__CIoT = other_value.field_ngIPHC__CP__CIoT; +if (other_value.field_n3Data.is_bound() ) + field_n3Data = other_value.field_n3Data; +if (other_value.field_ng__CP__CIoT.is_bound() ) + field_ng__CP__CIoT = other_value.field_ng__CP__CIoT; +if (other_value.field_restrictEC.is_bound() ) + field_restrictEC = other_value.field_restrictEC; +if (other_value.field_mcsi.is_bound() ) + field_mcsi = other_value.field_mcsi; +if (other_value.field_emcn3.is_bound() ) + field_emcn3 = other_value.field_emcn3; +if (other_value.field_spareBit.is_bound() ) + field_spareBit = other_value.field_spareBit; +if (other_value.field_pr.is_bound() ) + field_pr = other_value.field_pr; +if (other_value.field_rpr.is_bound() ) + field_rpr = other_value.field_rpr; +if (other_value.field_piv.is_bound() ) + field_piv = other_value.field_piv; +if (other_value.field_ncr.is_bound() ) + field_ncr = other_value.field_ncr; +if (other_value.field_ngEHC__CP__CIoT.is_bound() ) + field_ngEHC__CP__CIoT = other_value.field_ngEHC__CP__CIoT; +if (other_value.field_atsInd.is_bound() ) + field_atsInd = other_value.field_atsInd; +if (other_value.field_ngLCS.is_bound() ) + field_ngLCS = other_value.field_ngLCS; +init_vec(); +} + +NG__NetworkFeatureSupport::NG__NetworkFeatureSupport(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_mpsi, + const BITSTRING& par_iwk__N26, + const BITSTRING& par_emf, + const BITSTRING& par_emc, + const BITSTRING& par_imsVoPS__n3GPP, + const BITSTRING& par_imsVoPS__3GPP, + const OPTIONAL& par_ng__UP__CIoT, + const OPTIONAL& par_ngIPHC__CP__CIoT, + const OPTIONAL& par_n3Data, + const OPTIONAL& par_ng__CP__CIoT, + const OPTIONAL& par_restrictEC, + const OPTIONAL& par_mcsi, + const OPTIONAL& par_emcn3, + const OPTIONAL& par_spareBit, + const OPTIONAL& par_pr, + const OPTIONAL& par_rpr, + const OPTIONAL& par_piv, + const OPTIONAL& par_ncr, + const OPTIONAL& par_ngEHC__CP__CIoT, + const OPTIONAL& par_atsInd, + const OPTIONAL& par_ngLCS) : field_iei(par_iei), + field_iel(par_iel), + field_mpsi(par_mpsi), + field_iwk__N26(par_iwk__N26), + field_emf(par_emf), + field_emc(par_emc), + field_imsVoPS__n3GPP(par_imsVoPS__n3GPP), + field_imsVoPS__3GPP(par_imsVoPS__3GPP), + field_ng__UP__CIoT(par_ng__UP__CIoT), + field_ngIPHC__CP__CIoT(par_ngIPHC__CP__CIoT), + field_n3Data(par_n3Data), + field_ng__CP__CIoT(par_ng__CP__CIoT), + field_restrictEC(par_restrictEC), + field_mcsi(par_mcsi), + field_emcn3(par_emcn3), + field_spareBit(par_spareBit), + field_pr(par_pr), + field_rpr(par_rpr), + field_piv(par_piv), + field_ncr(par_ncr), + field_ngEHC__CP__CIoT(par_ngEHC__CP__CIoT), + field_atsInd(par_atsInd), + field_ngLCS(par_ngLCS) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NetworkFeatureSupport::get_descriptor() const { return &NG__NetworkFeatureSupport_descr_; } +const TTCN_Typedescriptor_t* NG__NetworkFeatureSupport::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NetworkFeatureSupport::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NetworkFeatureSupport::fld_names[] = { "iei", "iel", "mpsi", "iwk_N26", "emf", "emc", "imsVoPS_n3GPP", "imsVoPS_3GPP", "ng_UP_CIoT", "ngIPHC_CP_CIoT", "n3Data", "ng_CP_CIoT", "restrictEC", "mcsi", "emcn3", "spareBit", "pr", "rpr", "piv", "ncr", "ngEHC_CP_CIoT", "atsInd", "ngLCS" }; +const char* NG__NetworkFeatureSupport::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__NetworkFeatureSupport::optional_indexes[] = { 0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1 }; +const int* NG__NetworkFeatureSupport::get_optional_indexes() const { return optional_indexes; } + +const int NG__NetworkFeatureSupport::optional_indexes_asn[] = { 0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1 }; +const int* NG__NetworkFeatureSupport::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__NetworkFeatureSupport_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 23; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[11] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[12] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[13] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[14] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[15] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[16] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[17] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[18] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[19] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[20] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[21] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[22] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +NG__NetworkFeatureSupport_template::NG__NetworkFeatureSupport_template(NG__NetworkFeatureSupport_template* p_precondition, NG__NetworkFeatureSupport_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NetworkFeatureSupport_template::NG__NetworkFeatureSupport_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NetworkFeatureSupport_template::~NG__NetworkFeatureSupport_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NetworkFeatureSupport_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NetworkFeatureSupport* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NetworkFeatureSupport_template& NG__NetworkFeatureSupport_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NetworkFeatureSupport_template& NG__NetworkFeatureSupport_template::operator=(const NG__NetworkFeatureSupport& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NetworkFeatureSupport_template& NG__NetworkFeatureSupport_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NetworkFeatureSupport_template& NG__NetworkFeatureSupport_template::operator=(const NG__NetworkFeatureSupport_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NetworkFeatureSupport NG__NetworkFeatureSupport_template::valueof() const +{ +NG__NetworkFeatureSupport ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__NetworkFeatureSupport_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__NetworkFeatureSupport_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__NetworkFeatureSupport_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__NetworkFeatureSupport_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::mpsi() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::mpsi() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::iwk__N26() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::iwk__N26() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::emf() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::emf() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::emc() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::emc() const { return *(static_cast(get_at(5))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::imsVoPS__n3GPP() { return *(static_cast(get_at(6))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::imsVoPS__n3GPP() const { return *(static_cast(get_at(6))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::imsVoPS__3GPP() { return *(static_cast(get_at(7))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::imsVoPS__3GPP() const { return *(static_cast(get_at(7))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::ng__UP__CIoT() { return *(static_cast(get_at(8))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::ng__UP__CIoT() const { return *(static_cast(get_at(8))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::ngIPHC__CP__CIoT() { return *(static_cast(get_at(9))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::ngIPHC__CP__CIoT() const { return *(static_cast(get_at(9))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::n3Data() { return *(static_cast(get_at(10))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::n3Data() const { return *(static_cast(get_at(10))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::ng__CP__CIoT() { return *(static_cast(get_at(11))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::ng__CP__CIoT() const { return *(static_cast(get_at(11))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::restrictEC() { return *(static_cast(get_at(12))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::restrictEC() const { return *(static_cast(get_at(12))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::mcsi() { return *(static_cast(get_at(13))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::mcsi() const { return *(static_cast(get_at(13))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::emcn3() { return *(static_cast(get_at(14))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::emcn3() const { return *(static_cast(get_at(14))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::spareBit() { return *(static_cast(get_at(15))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::spareBit() const { return *(static_cast(get_at(15))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::pr() { return *(static_cast(get_at(16))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::pr() const { return *(static_cast(get_at(16))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::rpr() { return *(static_cast(get_at(17))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::rpr() const { return *(static_cast(get_at(17))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::piv() { return *(static_cast(get_at(18))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::piv() const { return *(static_cast(get_at(18))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::ncr() { return *(static_cast(get_at(19))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::ncr() const { return *(static_cast(get_at(19))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::ngEHC__CP__CIoT() { return *(static_cast(get_at(20))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::ngEHC__CP__CIoT() const { return *(static_cast(get_at(20))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::atsInd() { return *(static_cast(get_at(21))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::atsInd() const { return *(static_cast(get_at(21))); } +BITSTRING_template& NG__NetworkFeatureSupport_template::ngLCS() { return *(static_cast(get_at(22))); } +const BITSTRING_template& NG__NetworkFeatureSupport_template::ngLCS() const { return *(static_cast(get_at(22))); } +const TTCN_Typedescriptor_t* NG__NetworkFeatureSupport_template::get_descriptor() const { return &NG__NetworkFeatureSupport_descr_; } +const char* NG__NetworkFeatureSupport_template::fld_name(int p_index) const { return NG__NetworkFeatureSupport::fld_names[p_index]; } + +const PDU__SessionErrorCause PDU__SessionReactivationError_errorCause::UNBOUND_ELEM; +PDU__SessionErrorCause& PDU__SessionReactivationError_errorCause::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PDU__SessionErrorCause& PDU__SessionReactivationError_errorCause::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PDU__SessionErrorCause& PDU__SessionReactivationError_errorCause::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PDU__SessionErrorCause& PDU__SessionReactivationError_errorCause::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::operator<<=(const INTEGER& rotate_count) const +{ +PDU__SessionReactivationError_errorCause rec_of; +return *((PDU__SessionReactivationError_errorCause*)rotl(rotate_count, &rec_of)); +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::operator>>=(const INTEGER& rotate_count) const +{ +PDU__SessionReactivationError_errorCause rec_of; +return *((PDU__SessionReactivationError_errorCause*)rotr(rotate_count, &rec_of)); +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::operator>>=(int rotate_count) const +{ +PDU__SessionReactivationError_errorCause rec_of; +return *((PDU__SessionReactivationError_errorCause*)rotr(rotate_count, &rec_of)); +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::operator+(const PDU__SessionReactivationError_errorCause& other_value) const +{ +PDU__SessionReactivationError_errorCause rec_of; +return *((PDU__SessionReactivationError_errorCause*)concat(&other_value, &rec_of)); +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const PDU__SessionReactivationError_errorCause&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.PDU_SessionReactivationError.errorCause concatenation."); +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::operator+(null_type) const +{ +return *this; +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::substr(int index, int returncount) const +{ +PDU__SessionReactivationError_errorCause rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::replace(int index, int len, const PDU__SessionReactivationError_errorCause& repl) const +{ +PDU__SessionReactivationError_errorCause rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause::replace(int index, int len, const PDU__SessionReactivationError_errorCause_template& repl) const +{ +PDU__SessionReactivationError_errorCause rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* PDU__SessionReactivationError_errorCause::create_elem() const { return new PDU__SessionErrorCause; } +const Base_Type* PDU__SessionReactivationError_errorCause::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* PDU__SessionReactivationError_errorCause::get_descriptor() const { return &PDU__SessionReactivationError_errorCause_descr_; } +PDU__SessionReactivationError_errorCause_template::PDU__SessionReactivationError_errorCause_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +PDU__SessionReactivationError_errorCause_template::PDU__SessionReactivationError_errorCause_template(PDU__SessionReactivationError_errorCause_template* p_precondition, PDU__SessionReactivationError_errorCause_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDU__SessionReactivationError_errorCause_template::PDU__SessionReactivationError_errorCause_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDU__SessionReactivationError_errorCause_template::~PDU__SessionReactivationError_errorCause_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDU__SessionReactivationError_errorCause_template::match_dynamic(const Base_Type* match_value) const +{ +const PDU__SessionReactivationError_errorCause* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +PDU__SessionReactivationError_errorCause_template& PDU__SessionReactivationError_errorCause_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDU__SessionReactivationError_errorCause_template& PDU__SessionReactivationError_errorCause_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +PDU__SessionReactivationError_errorCause_template& PDU__SessionReactivationError_errorCause_template::operator=(const PDU__SessionReactivationError_errorCause& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDU__SessionReactivationError_errorCause_template& PDU__SessionReactivationError_errorCause_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDU__SessionReactivationError_errorCause_template& PDU__SessionReactivationError_errorCause_template::operator=(const PDU__SessionReactivationError_errorCause_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDU__SessionReactivationError_errorCause_template PDU__SessionReactivationError_errorCause_template::operator+(const PDU__SessionReactivationError_errorCause_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return PDU__SessionReactivationError_errorCause_template(ANY_VALUE); +} +PDU__SessionReactivationError_errorCause_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PDU__SessionReactivationError_errorCause_template PDU__SessionReactivationError_errorCause_template::operator+(const PDU__SessionReactivationError_errorCause& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +PDU__SessionReactivationError_errorCause_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PDU__SessionReactivationError_errorCause_template PDU__SessionReactivationError_errorCause_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return PDU__SessionReactivationError_errorCause_template(ANY_VALUE); +} +PDU__SessionReactivationError_errorCause_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +PDU__SessionReactivationError_errorCause_template PDU__SessionReactivationError_errorCause_template::operator+(null_type) const +{ +return *this; +} + +PDU__SessionErrorCause_template& PDU__SessionReactivationError_errorCause_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PDU__SessionErrorCause_template& PDU__SessionReactivationError_errorCause_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PDU__SessionErrorCause_template& PDU__SessionReactivationError_errorCause_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PDU__SessionErrorCause_template& PDU__SessionReactivationError_errorCause_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause_template::valueof() const +{ +PDU__SessionReactivationError_errorCause ret_val; +valueofv(&ret_val); +return ret_val; +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause_template::substr(int index, int returncount) const +{ +PDU__SessionReactivationError_errorCause rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause_template::replace(int index, int len, const PDU__SessionReactivationError_errorCause_template& repl) const +{ +PDU__SessionReactivationError_errorCause rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PDU__SessionReactivationError_errorCause PDU__SessionReactivationError_errorCause_template::replace(int index, int len, const PDU__SessionReactivationError_errorCause& repl) const +{ +PDU__SessionReactivationError_errorCause rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* PDU__SessionReactivationError_errorCause_template::create_elem() const { return new PDU__SessionErrorCause_template; } +const TTCN_Typedescriptor_t* PDU__SessionReactivationError_errorCause_template::get_descriptor() const { return &PDU__SessionReactivationError_errorCause_descr_; } +void PDU__SessionErrorCause::init_vec() { fld_vec[0]=&field_sessionId; fld_vec[1]=&field_causeValue; } + +PDU__SessionErrorCause::PDU__SessionErrorCause() : Record_Type() { init_vec(); } + +PDU__SessionErrorCause::PDU__SessionErrorCause(const PDU__SessionErrorCause& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_sessionId.is_bound() ) + field_sessionId = other_value.field_sessionId; +if (other_value.field_causeValue.is_bound() ) + field_causeValue = other_value.field_causeValue; +init_vec(); +} + +PDU__SessionErrorCause::PDU__SessionErrorCause(const OCTETSTRING& par_sessionId, + const OCTETSTRING& par_causeValue) : field_sessionId(par_sessionId), + field_causeValue(par_causeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDU__SessionErrorCause::get_descriptor() const { return &PDU__SessionErrorCause_descr_; } +const TTCN_Typedescriptor_t* PDU__SessionErrorCause::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* PDU__SessionErrorCause::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDU__SessionErrorCause::fld_names[] = { "sessionId", "causeValue" }; +const char* PDU__SessionErrorCause::fld_name(int p_index) const { return fld_names[p_index]; } + +void PDU__SessionErrorCause_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +PDU__SessionErrorCause_template::PDU__SessionErrorCause_template(PDU__SessionErrorCause_template* p_precondition, PDU__SessionErrorCause_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDU__SessionErrorCause_template::PDU__SessionErrorCause_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDU__SessionErrorCause_template::~PDU__SessionErrorCause_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDU__SessionErrorCause_template::match_dynamic(const Base_Type* match_value) const +{ +const PDU__SessionErrorCause* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDU__SessionErrorCause_template& PDU__SessionErrorCause_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDU__SessionErrorCause_template& PDU__SessionErrorCause_template::operator=(const PDU__SessionErrorCause& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDU__SessionErrorCause_template& PDU__SessionErrorCause_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDU__SessionErrorCause_template& PDU__SessionErrorCause_template::operator=(const PDU__SessionErrorCause_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDU__SessionErrorCause PDU__SessionErrorCause_template::valueof() const +{ +PDU__SessionErrorCause ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PDU__SessionErrorCause_template::sessionId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PDU__SessionErrorCause_template::sessionId() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PDU__SessionErrorCause_template::causeValue() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PDU__SessionErrorCause_template::causeValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* PDU__SessionErrorCause_template::get_descriptor() const { return &PDU__SessionErrorCause_descr_; } +const char* PDU__SessionErrorCause_template::fld_name(int p_index) const { return PDU__SessionErrorCause::fld_names[p_index]; } +void PDU__SessionReactivationError::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_errorCause; } + +PDU__SessionReactivationError::PDU__SessionReactivationError() : Record_Type() { init_vec(); } + +PDU__SessionReactivationError::PDU__SessionReactivationError(const PDU__SessionReactivationError& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_errorCause.is_bound() ) + field_errorCause = other_value.field_errorCause; +init_vec(); +} + +PDU__SessionReactivationError::PDU__SessionReactivationError(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const PDU__SessionReactivationError_errorCause& par_errorCause) : field_iei(par_iei), + field_iel(par_iel), + field_errorCause(par_errorCause) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDU__SessionReactivationError::get_descriptor() const { return &PDU__SessionReactivationError_descr_; } +const TTCN_Typedescriptor_t* PDU__SessionReactivationError::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &PDU__SessionReactivationError_errorCause_descr_ }; +const TTCN_Typedescriptor_t* PDU__SessionReactivationError::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDU__SessionReactivationError::fld_names[] = { "iei", "iel", "errorCause" }; +const char* PDU__SessionReactivationError::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PDU__SessionReactivationError::optional_indexes[] = { 0, 1, -1 }; +const int* PDU__SessionReactivationError::get_optional_indexes() const { return optional_indexes; } + +const int PDU__SessionReactivationError::optional_indexes_asn[] = { 0, 1, -1 }; +const int* PDU__SessionReactivationError::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PDU__SessionReactivationError_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new PDU__SessionReactivationError_errorCause_template(ANY_VALUE) : new PDU__SessionReactivationError_errorCause_template; +} +} + +PDU__SessionReactivationError_template::PDU__SessionReactivationError_template(PDU__SessionReactivationError_template* p_precondition, PDU__SessionReactivationError_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDU__SessionReactivationError_template::PDU__SessionReactivationError_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDU__SessionReactivationError_template::~PDU__SessionReactivationError_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDU__SessionReactivationError_template::match_dynamic(const Base_Type* match_value) const +{ +const PDU__SessionReactivationError* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDU__SessionReactivationError_template& PDU__SessionReactivationError_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDU__SessionReactivationError_template& PDU__SessionReactivationError_template::operator=(const PDU__SessionReactivationError& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDU__SessionReactivationError_template& PDU__SessionReactivationError_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDU__SessionReactivationError_template& PDU__SessionReactivationError_template::operator=(const PDU__SessionReactivationError_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDU__SessionReactivationError PDU__SessionReactivationError_template::valueof() const +{ +PDU__SessionReactivationError ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PDU__SessionReactivationError_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PDU__SessionReactivationError_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PDU__SessionReactivationError_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PDU__SessionReactivationError_template::iel() const { return *(static_cast(get_at(1))); } +PDU__SessionReactivationError_errorCause_template& PDU__SessionReactivationError_template::errorCause() { return *(static_cast(get_at(2))); } +const PDU__SessionReactivationError_errorCause_template& PDU__SessionReactivationError_template::errorCause() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PDU__SessionReactivationError_template::get_descriptor() const { return &PDU__SessionReactivationError_descr_; } +const char* PDU__SessionReactivationError_template::fld_name(int p_index) const { return PDU__SessionReactivationError::fld_names[p_index]; } + +const ListOfLADN LADN__Info_listOfLADN::UNBOUND_ELEM; +ListOfLADN& LADN__Info_listOfLADN::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ListOfLADN& LADN__Info_listOfLADN::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ListOfLADN& LADN__Info_listOfLADN::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ListOfLADN& LADN__Info_listOfLADN::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +LADN__Info_listOfLADN LADN__Info_listOfLADN::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN::operator<<=(const INTEGER& rotate_count) const +{ +LADN__Info_listOfLADN rec_of; +return *((LADN__Info_listOfLADN*)rotl(rotate_count, &rec_of)); +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN::operator>>=(const INTEGER& rotate_count) const +{ +LADN__Info_listOfLADN rec_of; +return *((LADN__Info_listOfLADN*)rotr(rotate_count, &rec_of)); +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN::operator>>=(int rotate_count) const +{ +LADN__Info_listOfLADN rec_of; +return *((LADN__Info_listOfLADN*)rotr(rotate_count, &rec_of)); +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN::operator+(const LADN__Info_listOfLADN& other_value) const +{ +LADN__Info_listOfLADN rec_of; +return *((LADN__Info_listOfLADN*)concat(&other_value, &rec_of)); +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const LADN__Info_listOfLADN&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.LADN_Info.listOfLADN concatenation."); +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN::operator+(null_type) const +{ +return *this; +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN::substr(int index, int returncount) const +{ +LADN__Info_listOfLADN rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN::replace(int index, int len, const LADN__Info_listOfLADN& repl) const +{ +LADN__Info_listOfLADN rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN::replace(int index, int len, const LADN__Info_listOfLADN_template& repl) const +{ +LADN__Info_listOfLADN rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* LADN__Info_listOfLADN::create_elem() const { return new ListOfLADN; } +const Base_Type* LADN__Info_listOfLADN::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* LADN__Info_listOfLADN::get_descriptor() const { return &LADN__Info_listOfLADN_descr_; } +LADN__Info_listOfLADN_template::LADN__Info_listOfLADN_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +LADN__Info_listOfLADN_template::LADN__Info_listOfLADN_template(LADN__Info_listOfLADN_template* p_precondition, LADN__Info_listOfLADN_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LADN__Info_listOfLADN_template::LADN__Info_listOfLADN_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LADN__Info_listOfLADN_template::~LADN__Info_listOfLADN_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LADN__Info_listOfLADN_template::match_dynamic(const Base_Type* match_value) const +{ +const LADN__Info_listOfLADN* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +LADN__Info_listOfLADN_template& LADN__Info_listOfLADN_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LADN__Info_listOfLADN_template& LADN__Info_listOfLADN_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +LADN__Info_listOfLADN_template& LADN__Info_listOfLADN_template::operator=(const LADN__Info_listOfLADN& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LADN__Info_listOfLADN_template& LADN__Info_listOfLADN_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LADN__Info_listOfLADN_template& LADN__Info_listOfLADN_template::operator=(const LADN__Info_listOfLADN_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LADN__Info_listOfLADN_template LADN__Info_listOfLADN_template::operator+(const LADN__Info_listOfLADN_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return LADN__Info_listOfLADN_template(ANY_VALUE); +} +LADN__Info_listOfLADN_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +LADN__Info_listOfLADN_template LADN__Info_listOfLADN_template::operator+(const LADN__Info_listOfLADN& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +LADN__Info_listOfLADN_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +LADN__Info_listOfLADN_template LADN__Info_listOfLADN_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return LADN__Info_listOfLADN_template(ANY_VALUE); +} +LADN__Info_listOfLADN_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +LADN__Info_listOfLADN_template LADN__Info_listOfLADN_template::operator+(null_type) const +{ +return *this; +} + +ListOfLADN_template& LADN__Info_listOfLADN_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ListOfLADN_template& LADN__Info_listOfLADN_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ListOfLADN_template& LADN__Info_listOfLADN_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ListOfLADN_template& LADN__Info_listOfLADN_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +LADN__Info_listOfLADN LADN__Info_listOfLADN_template::valueof() const +{ +LADN__Info_listOfLADN ret_val; +valueofv(&ret_val); +return ret_val; +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN_template::substr(int index, int returncount) const +{ +LADN__Info_listOfLADN rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN_template::replace(int index, int len, const LADN__Info_listOfLADN_template& repl) const +{ +LADN__Info_listOfLADN rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +LADN__Info_listOfLADN LADN__Info_listOfLADN_template::replace(int index, int len, const LADN__Info_listOfLADN& repl) const +{ +LADN__Info_listOfLADN rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* LADN__Info_listOfLADN_template::create_elem() const { return new ListOfLADN_template; } +const TTCN_Typedescriptor_t* LADN__Info_listOfLADN_template::get_descriptor() const { return &LADN__Info_listOfLADN_descr_; } + +const NG__ListOfPartialTaiList ListOfLADN_listOfPartialTais::UNBOUND_ELEM; +NG__ListOfPartialTaiList& ListOfLADN_listOfPartialTais::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__ListOfPartialTaiList& ListOfLADN_listOfPartialTais::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList& ListOfLADN_listOfPartialTais::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList& ListOfLADN_listOfPartialTais::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::operator<<=(const INTEGER& rotate_count) const +{ +ListOfLADN_listOfPartialTais rec_of; +return *((ListOfLADN_listOfPartialTais*)rotl(rotate_count, &rec_of)); +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::operator>>=(const INTEGER& rotate_count) const +{ +ListOfLADN_listOfPartialTais rec_of; +return *((ListOfLADN_listOfPartialTais*)rotr(rotate_count, &rec_of)); +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::operator>>=(int rotate_count) const +{ +ListOfLADN_listOfPartialTais rec_of; +return *((ListOfLADN_listOfPartialTais*)rotr(rotate_count, &rec_of)); +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::operator+(const ListOfLADN_listOfPartialTais& other_value) const +{ +ListOfLADN_listOfPartialTais rec_of; +return *((ListOfLADN_listOfPartialTais*)concat(&other_value, &rec_of)); +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const ListOfLADN_listOfPartialTais&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.ListOfLADN.listOfPartialTais concatenation."); +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::operator+(null_type) const +{ +return *this; +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::substr(int index, int returncount) const +{ +ListOfLADN_listOfPartialTais rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::replace(int index, int len, const ListOfLADN_listOfPartialTais& repl) const +{ +ListOfLADN_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais::replace(int index, int len, const ListOfLADN_listOfPartialTais_template& repl) const +{ +ListOfLADN_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* ListOfLADN_listOfPartialTais::create_elem() const { return new NG__ListOfPartialTaiList; } +const Base_Type* ListOfLADN_listOfPartialTais::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* ListOfLADN_listOfPartialTais::get_descriptor() const { return &ListOfLADN_listOfPartialTais_descr_; } +ListOfLADN_listOfPartialTais_template::ListOfLADN_listOfPartialTais_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +ListOfLADN_listOfPartialTais_template::ListOfLADN_listOfPartialTais_template(ListOfLADN_listOfPartialTais_template* p_precondition, ListOfLADN_listOfPartialTais_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ListOfLADN_listOfPartialTais_template::ListOfLADN_listOfPartialTais_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ListOfLADN_listOfPartialTais_template::~ListOfLADN_listOfPartialTais_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ListOfLADN_listOfPartialTais_template::match_dynamic(const Base_Type* match_value) const +{ +const ListOfLADN_listOfPartialTais* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +ListOfLADN_listOfPartialTais_template& ListOfLADN_listOfPartialTais_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ListOfLADN_listOfPartialTais_template& ListOfLADN_listOfPartialTais_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +ListOfLADN_listOfPartialTais_template& ListOfLADN_listOfPartialTais_template::operator=(const ListOfLADN_listOfPartialTais& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ListOfLADN_listOfPartialTais_template& ListOfLADN_listOfPartialTais_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ListOfLADN_listOfPartialTais_template& ListOfLADN_listOfPartialTais_template::operator=(const ListOfLADN_listOfPartialTais_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ListOfLADN_listOfPartialTais_template ListOfLADN_listOfPartialTais_template::operator+(const ListOfLADN_listOfPartialTais_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return ListOfLADN_listOfPartialTais_template(ANY_VALUE); +} +ListOfLADN_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ListOfLADN_listOfPartialTais_template ListOfLADN_listOfPartialTais_template::operator+(const ListOfLADN_listOfPartialTais& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +ListOfLADN_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ListOfLADN_listOfPartialTais_template ListOfLADN_listOfPartialTais_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return ListOfLADN_listOfPartialTais_template(ANY_VALUE); +} +ListOfLADN_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +ListOfLADN_listOfPartialTais_template ListOfLADN_listOfPartialTais_template::operator+(null_type) const +{ +return *this; +} + +NG__ListOfPartialTaiList_template& ListOfLADN_listOfPartialTais_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__ListOfPartialTaiList_template& ListOfLADN_listOfPartialTais_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList_template& ListOfLADN_listOfPartialTais_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList_template& ListOfLADN_listOfPartialTais_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais_template::valueof() const +{ +ListOfLADN_listOfPartialTais ret_val; +valueofv(&ret_val); +return ret_val; +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais_template::substr(int index, int returncount) const +{ +ListOfLADN_listOfPartialTais rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais_template::replace(int index, int len, const ListOfLADN_listOfPartialTais_template& repl) const +{ +ListOfLADN_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ListOfLADN_listOfPartialTais ListOfLADN_listOfPartialTais_template::replace(int index, int len, const ListOfLADN_listOfPartialTais& repl) const +{ +ListOfLADN_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* ListOfLADN_listOfPartialTais_template::create_elem() const { return new NG__ListOfPartialTaiList_template; } +const TTCN_Typedescriptor_t* ListOfLADN_listOfPartialTais_template::get_descriptor() const { return &ListOfLADN_listOfPartialTais_descr_; } +void ListOfLADN::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_dnnLength; fld_vec[2]=&field_dnnValue; fld_vec[3]=&field_listOfPartialTais; } + +ListOfLADN::ListOfLADN() : Record_Type() { init_vec(); } + +ListOfLADN::ListOfLADN(const ListOfLADN& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_dnnLength.is_bound() ) + field_dnnLength = other_value.field_dnnLength; +if (other_value.field_dnnValue.is_bound() ) + field_dnnValue = other_value.field_dnnValue; +if (other_value.field_listOfPartialTais.is_bound() ) + field_listOfPartialTais = other_value.field_listOfPartialTais; +init_vec(); +} + +ListOfLADN::ListOfLADN(const OPTIONAL& par_iei, + const OCTETSTRING& par_dnnLength, + const OCTETSTRING& par_dnnValue, + const ListOfLADN_listOfPartialTais& par_listOfPartialTais) : field_iei(par_iei), + field_dnnLength(par_dnnLength), + field_dnnValue(par_dnnValue), + field_listOfPartialTais(par_listOfPartialTais) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ListOfLADN::get_descriptor() const { return &ListOfLADN_descr_; } +const TTCN_Typedescriptor_t* ListOfLADN::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_, &ListOfLADN_listOfPartialTais_descr_ }; +const TTCN_Typedescriptor_t* ListOfLADN::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ListOfLADN::fld_names[] = { "iei", "dnnLength", "dnnValue", "listOfPartialTais" }; +const char* ListOfLADN::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ListOfLADN::optional_indexes[] = { 0, -1 }; +const int* ListOfLADN::get_optional_indexes() const { return optional_indexes; } + +const int ListOfLADN::optional_indexes_asn[] = { 0, -1 }; +const int* ListOfLADN::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ListOfLADN_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new ListOfLADN_listOfPartialTais_template(ANY_VALUE) : new ListOfLADN_listOfPartialTais_template; +} +} + +ListOfLADN_template::ListOfLADN_template(ListOfLADN_template* p_precondition, ListOfLADN_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ListOfLADN_template::ListOfLADN_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ListOfLADN_template::~ListOfLADN_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ListOfLADN_template::match_dynamic(const Base_Type* match_value) const +{ +const ListOfLADN* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ListOfLADN_template& ListOfLADN_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ListOfLADN_template& ListOfLADN_template::operator=(const ListOfLADN& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ListOfLADN_template& ListOfLADN_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ListOfLADN_template& ListOfLADN_template::operator=(const ListOfLADN_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ListOfLADN ListOfLADN_template::valueof() const +{ +ListOfLADN ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ListOfLADN_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ListOfLADN_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ListOfLADN_template::dnnLength() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ListOfLADN_template::dnnLength() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ListOfLADN_template::dnnValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ListOfLADN_template::dnnValue() const { return *(static_cast(get_at(2))); } +ListOfLADN_listOfPartialTais_template& ListOfLADN_template::listOfPartialTais() { return *(static_cast(get_at(3))); } +const ListOfLADN_listOfPartialTais_template& ListOfLADN_template::listOfPartialTais() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* ListOfLADN_template::get_descriptor() const { return &ListOfLADN_descr_; } +const char* ListOfLADN_template::fld_name(int p_index) const { return ListOfLADN::fld_names[p_index]; } +void LADN__Info::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_listOfLADN; } + +LADN__Info::LADN__Info() : Record_Type() { init_vec(); } + +LADN__Info::LADN__Info(const LADN__Info& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_listOfLADN.is_bound() ) + field_listOfLADN = other_value.field_listOfLADN; +init_vec(); +} + +LADN__Info::LADN__Info(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const LADN__Info_listOfLADN& par_listOfLADN) : field_iei(par_iei), + field_iel(par_iel), + field_listOfLADN(par_listOfLADN) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* LADN__Info::get_descriptor() const { return &LADN__Info_descr_; } +const TTCN_Typedescriptor_t* LADN__Info::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &LADN__Info_listOfLADN_descr_ }; +const TTCN_Typedescriptor_t* LADN__Info::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* LADN__Info::fld_names[] = { "iei", "iel", "listOfLADN" }; +const char* LADN__Info::fld_name(int p_index) const { return fld_names[p_index]; } + +const int LADN__Info::optional_indexes[] = { 0, -1 }; +const int* LADN__Info::get_optional_indexes() const { return optional_indexes; } + +const int LADN__Info::optional_indexes_asn[] = { 0, -1 }; +const int* LADN__Info::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void LADN__Info_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new LADN__Info_listOfLADN_template(ANY_VALUE) : new LADN__Info_listOfLADN_template; +} +} + +LADN__Info_template::LADN__Info_template(LADN__Info_template* p_precondition, LADN__Info_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +LADN__Info_template::LADN__Info_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +LADN__Info_template::~LADN__Info_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean LADN__Info_template::match_dynamic(const Base_Type* match_value) const +{ +const LADN__Info* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +LADN__Info_template& LADN__Info_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +LADN__Info_template& LADN__Info_template::operator=(const LADN__Info& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +LADN__Info_template& LADN__Info_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +LADN__Info_template& LADN__Info_template::operator=(const LADN__Info_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +LADN__Info LADN__Info_template::valueof() const +{ +LADN__Info ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& LADN__Info_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& LADN__Info_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& LADN__Info_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& LADN__Info_template::iel() const { return *(static_cast(get_at(1))); } +LADN__Info_listOfLADN_template& LADN__Info_template::listOfLADN() { return *(static_cast(get_at(2))); } +const LADN__Info_listOfLADN_template& LADN__Info_template::listOfLADN() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* LADN__Info_template::get_descriptor() const { return &LADN__Info_descr_; } +const char* LADN__Info_template::fld_name(int p_index) const { return LADN__Info::fld_names[p_index]; } +void SOR__Header::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_ap; fld_vec[2]=&field_ack; fld_vec[3]=&field_listType__MSSNPNSI; fld_vec[4]=&field_listInd__MSSI; fld_vec[5]=&field_dataType; } + +SOR__Header::SOR__Header() : Record_Type() { init_vec(); } + +SOR__Header::SOR__Header(const SOR__Header& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_ap.is_bound() ) + field_ap = other_value.field_ap; +if (other_value.field_ack.is_bound() ) + field_ack = other_value.field_ack; +if (other_value.field_listType__MSSNPNSI.is_bound() ) + field_listType__MSSNPNSI = other_value.field_listType__MSSNPNSI; +if (other_value.field_listInd__MSSI.is_bound() ) + field_listInd__MSSI = other_value.field_listInd__MSSI; +if (other_value.field_dataType.is_bound() ) + field_dataType = other_value.field_dataType; +init_vec(); +} + +SOR__Header::SOR__Header(const BITSTRING& par_spare, + const BITSTRING& par_ap, + const BITSTRING& par_ack, + const BITSTRING& par_listType__MSSNPNSI, + const BITSTRING& par_listInd__MSSI, + const BITSTRING& par_dataType) : field_spare(par_spare), + field_ap(par_ap), + field_ack(par_ack), + field_listType__MSSNPNSI(par_listType__MSSNPNSI), + field_listInd__MSSI(par_listInd__MSSI), + field_dataType(par_dataType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SOR__Header::get_descriptor() const { return &SOR__Header_descr_; } +const TTCN_Typedescriptor_t* SOR__Header::fld_descriptors[] = { &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* SOR__Header::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SOR__Header::fld_names[] = { "spare", "ap", "ack", "listType_MSSNPNSI", "listInd_MSSI", "dataType" }; +const char* SOR__Header::fld_name(int p_index) const { return fld_names[p_index]; } + +void SOR__Header_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SOR__Header_template::SOR__Header_template(SOR__Header_template* p_precondition, SOR__Header_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SOR__Header_template::SOR__Header_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SOR__Header_template::~SOR__Header_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SOR__Header_template::match_dynamic(const Base_Type* match_value) const +{ +const SOR__Header* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SOR__Header_template& SOR__Header_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SOR__Header_template& SOR__Header_template::operator=(const SOR__Header& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SOR__Header_template& SOR__Header_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SOR__Header_template& SOR__Header_template::operator=(const SOR__Header_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SOR__Header SOR__Header_template::valueof() const +{ +SOR__Header ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SOR__Header_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SOR__Header_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SOR__Header_template::ap() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SOR__Header_template::ap() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SOR__Header_template::ack() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SOR__Header_template::ack() const { return *(static_cast(get_at(2))); } +BITSTRING_template& SOR__Header_template::listType__MSSNPNSI() { return *(static_cast(get_at(3))); } +const BITSTRING_template& SOR__Header_template::listType__MSSNPNSI() const { return *(static_cast(get_at(3))); } +BITSTRING_template& SOR__Header_template::listInd__MSSI() { return *(static_cast(get_at(4))); } +const BITSTRING_template& SOR__Header_template::listInd__MSSI() const { return *(static_cast(get_at(4))); } +BITSTRING_template& SOR__Header_template::dataType() { return *(static_cast(get_at(5))); } +const BITSTRING_template& SOR__Header_template::dataType() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* SOR__Header_template::get_descriptor() const { return &SOR__Header_descr_; } +const char* SOR__Header_template::fld_name(int p_index) const { return SOR__Header::fld_names[p_index]; } +void SORTransparentContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_header; fld_vec[3]=&field_mac; fld_vec[4]=&field_counter; fld_vec[5]=&field_data; } + +SORTransparentContainer::SORTransparentContainer() : Record_Type() { init_vec(); } + +SORTransparentContainer::SORTransparentContainer(const SORTransparentContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_header.is_bound() ) + field_header = other_value.field_header; +if (other_value.field_mac.is_bound() ) + field_mac = other_value.field_mac; +if (other_value.field_counter.is_bound() ) + field_counter = other_value.field_counter; +if (other_value.field_data.is_bound() ) + field_data = other_value.field_data; +init_vec(); +} + +SORTransparentContainer::SORTransparentContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const SOR__Header& par_header, + const OCTETSTRING& par_mac, + const OPTIONAL& par_counter, + const OPTIONAL& par_data) : field_iei(par_iei), + field_iel(par_iel), + field_header(par_header), + field_mac(par_mac), + field_counter(par_counter), + field_data(par_data) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SORTransparentContainer::get_descriptor() const { return &SORTransparentContainer_descr_; } +const TTCN_Typedescriptor_t* SORTransparentContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &SOR__Header_descr_, &CommonDefs::O16__Type_descr_, &CommonDefs::O2__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* SORTransparentContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SORTransparentContainer::fld_names[] = { "iei", "iel", "header", "mac", "counter", "data" }; +const char* SORTransparentContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int SORTransparentContainer::optional_indexes[] = { 0, 1, 4, 5, -1 }; +const int* SORTransparentContainer::get_optional_indexes() const { return optional_indexes; } + +const int SORTransparentContainer::optional_indexes_asn[] = { 0, 1, 4, 5, -1 }; +const int* SORTransparentContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void SORTransparentContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new SOR__Header_template(ANY_VALUE) : new SOR__Header_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +SORTransparentContainer_template::SORTransparentContainer_template(SORTransparentContainer_template* p_precondition, SORTransparentContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SORTransparentContainer_template::SORTransparentContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SORTransparentContainer_template::~SORTransparentContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SORTransparentContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const SORTransparentContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SORTransparentContainer_template& SORTransparentContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SORTransparentContainer_template& SORTransparentContainer_template::operator=(const SORTransparentContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SORTransparentContainer_template& SORTransparentContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SORTransparentContainer_template& SORTransparentContainer_template::operator=(const SORTransparentContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SORTransparentContainer SORTransparentContainer_template::valueof() const +{ +SORTransparentContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SORTransparentContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SORTransparentContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SORTransparentContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SORTransparentContainer_template::iel() const { return *(static_cast(get_at(1))); } +SOR__Header_template& SORTransparentContainer_template::header() { return *(static_cast(get_at(2))); } +const SOR__Header_template& SORTransparentContainer_template::header() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& SORTransparentContainer_template::mac() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& SORTransparentContainer_template::mac() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& SORTransparentContainer_template::counter() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& SORTransparentContainer_template::counter() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& SORTransparentContainer_template::data() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& SORTransparentContainer_template::data() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* SORTransparentContainer_template::get_descriptor() const { return &SORTransparentContainer_descr_; } +const char* SORTransparentContainer_template::fld_name(int p_index) const { return SORTransparentContainer::fld_names[p_index]; } +void InclusionModeNSSAI::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_inclusionMode; } + +InclusionModeNSSAI::InclusionModeNSSAI() : Record_Type() { init_vec(); } + +InclusionModeNSSAI::InclusionModeNSSAI(const InclusionModeNSSAI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_inclusionMode.is_bound() ) + field_inclusionMode = other_value.field_inclusionMode; +init_vec(); +} + +InclusionModeNSSAI::InclusionModeNSSAI(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_inclusionMode) : field_iei(par_iei), + field_spare(par_spare), + field_inclusionMode(par_inclusionMode) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* InclusionModeNSSAI::get_descriptor() const { return &InclusionModeNSSAI_descr_; } +const TTCN_Typedescriptor_t* InclusionModeNSSAI::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* InclusionModeNSSAI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* InclusionModeNSSAI::fld_names[] = { "iei", "spare", "inclusionMode" }; +const char* InclusionModeNSSAI::fld_name(int p_index) const { return fld_names[p_index]; } + +const int InclusionModeNSSAI::optional_indexes[] = { 0, -1 }; +const int* InclusionModeNSSAI::get_optional_indexes() const { return optional_indexes; } + +const int InclusionModeNSSAI::optional_indexes_asn[] = { 0, -1 }; +const int* InclusionModeNSSAI::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void InclusionModeNSSAI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +InclusionModeNSSAI_template::InclusionModeNSSAI_template(InclusionModeNSSAI_template* p_precondition, InclusionModeNSSAI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +InclusionModeNSSAI_template::InclusionModeNSSAI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +InclusionModeNSSAI_template::~InclusionModeNSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean InclusionModeNSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const InclusionModeNSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +InclusionModeNSSAI_template& InclusionModeNSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +InclusionModeNSSAI_template& InclusionModeNSSAI_template::operator=(const InclusionModeNSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +InclusionModeNSSAI_template& InclusionModeNSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +InclusionModeNSSAI_template& InclusionModeNSSAI_template::operator=(const InclusionModeNSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +InclusionModeNSSAI InclusionModeNSSAI_template::valueof() const +{ +InclusionModeNSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& InclusionModeNSSAI_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& InclusionModeNSSAI_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& InclusionModeNSSAI_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& InclusionModeNSSAI_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& InclusionModeNSSAI_template::inclusionMode() { return *(static_cast(get_at(2))); } +const BITSTRING_template& InclusionModeNSSAI_template::inclusionMode() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* InclusionModeNSSAI_template::get_descriptor() const { return &InclusionModeNSSAI_descr_; } +const char* InclusionModeNSSAI_template::fld_name(int p_index) const { return InclusionModeNSSAI::fld_names[p_index]; } + +const AccessCatDefinition OperatorAccessCatDefinitions_definitions::UNBOUND_ELEM; +AccessCatDefinition& OperatorAccessCatDefinitions_definitions::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +AccessCatDefinition& OperatorAccessCatDefinitions_definitions::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const AccessCatDefinition& OperatorAccessCatDefinitions_definitions::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const AccessCatDefinition& OperatorAccessCatDefinitions_definitions::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::operator<<=(const INTEGER& rotate_count) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +return *((OperatorAccessCatDefinitions_definitions*)rotl(rotate_count, &rec_of)); +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::operator>>=(const INTEGER& rotate_count) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +return *((OperatorAccessCatDefinitions_definitions*)rotr(rotate_count, &rec_of)); +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::operator>>=(int rotate_count) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +return *((OperatorAccessCatDefinitions_definitions*)rotr(rotate_count, &rec_of)); +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::operator+(const OperatorAccessCatDefinitions_definitions& other_value) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +return *((OperatorAccessCatDefinitions_definitions*)concat(&other_value, &rec_of)); +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const OperatorAccessCatDefinitions_definitions&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.OperatorAccessCatDefinitions.definitions concatenation."); +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::operator+(null_type) const +{ +return *this; +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::substr(int index, int returncount) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::replace(int index, int len, const OperatorAccessCatDefinitions_definitions& repl) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions::replace(int index, int len, const OperatorAccessCatDefinitions_definitions_template& repl) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* OperatorAccessCatDefinitions_definitions::create_elem() const { return new AccessCatDefinition; } +const Base_Type* OperatorAccessCatDefinitions_definitions::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* OperatorAccessCatDefinitions_definitions::get_descriptor() const { return &OperatorAccessCatDefinitions_definitions_descr_; } +OperatorAccessCatDefinitions_definitions_template::OperatorAccessCatDefinitions_definitions_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +OperatorAccessCatDefinitions_definitions_template::OperatorAccessCatDefinitions_definitions_template(OperatorAccessCatDefinitions_definitions_template* p_precondition, OperatorAccessCatDefinitions_definitions_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +OperatorAccessCatDefinitions_definitions_template::OperatorAccessCatDefinitions_definitions_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +OperatorAccessCatDefinitions_definitions_template::~OperatorAccessCatDefinitions_definitions_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean OperatorAccessCatDefinitions_definitions_template::match_dynamic(const Base_Type* match_value) const +{ +const OperatorAccessCatDefinitions_definitions* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +OperatorAccessCatDefinitions_definitions_template& OperatorAccessCatDefinitions_definitions_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +OperatorAccessCatDefinitions_definitions_template& OperatorAccessCatDefinitions_definitions_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +OperatorAccessCatDefinitions_definitions_template& OperatorAccessCatDefinitions_definitions_template::operator=(const OperatorAccessCatDefinitions_definitions& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +OperatorAccessCatDefinitions_definitions_template& OperatorAccessCatDefinitions_definitions_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +OperatorAccessCatDefinitions_definitions_template& OperatorAccessCatDefinitions_definitions_template::operator=(const OperatorAccessCatDefinitions_definitions_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +OperatorAccessCatDefinitions_definitions_template OperatorAccessCatDefinitions_definitions_template::operator+(const OperatorAccessCatDefinitions_definitions_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return OperatorAccessCatDefinitions_definitions_template(ANY_VALUE); +} +OperatorAccessCatDefinitions_definitions_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +OperatorAccessCatDefinitions_definitions_template OperatorAccessCatDefinitions_definitions_template::operator+(const OperatorAccessCatDefinitions_definitions& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +OperatorAccessCatDefinitions_definitions_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +OperatorAccessCatDefinitions_definitions_template OperatorAccessCatDefinitions_definitions_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return OperatorAccessCatDefinitions_definitions_template(ANY_VALUE); +} +OperatorAccessCatDefinitions_definitions_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +OperatorAccessCatDefinitions_definitions_template OperatorAccessCatDefinitions_definitions_template::operator+(null_type) const +{ +return *this; +} + +AccessCatDefinition_template& OperatorAccessCatDefinitions_definitions_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +AccessCatDefinition_template& OperatorAccessCatDefinitions_definitions_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const AccessCatDefinition_template& OperatorAccessCatDefinitions_definitions_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const AccessCatDefinition_template& OperatorAccessCatDefinitions_definitions_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions_template::valueof() const +{ +OperatorAccessCatDefinitions_definitions ret_val; +valueofv(&ret_val); +return ret_val; +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions_template::substr(int index, int returncount) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions_template::replace(int index, int len, const OperatorAccessCatDefinitions_definitions_template& repl) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +OperatorAccessCatDefinitions_definitions OperatorAccessCatDefinitions_definitions_template::replace(int index, int len, const OperatorAccessCatDefinitions_definitions& repl) const +{ +OperatorAccessCatDefinitions_definitions rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* OperatorAccessCatDefinitions_definitions_template::create_elem() const { return new AccessCatDefinition_template; } +const TTCN_Typedescriptor_t* OperatorAccessCatDefinitions_definitions_template::get_descriptor() const { return &OperatorAccessCatDefinitions_definitions_descr_; } +void AccessCatDefinition::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_precendence; fld_vec[2]=&field_psac; fld_vec[3]=&field_spare2; fld_vec[4]=&field_catNum; fld_vec[5]=&field_criteriaLength; fld_vec[6]=&field_criteria; fld_vec[7]=&field_spare3; fld_vec[8]=&field_standardAccessCat; } + +AccessCatDefinition::AccessCatDefinition() : Record_Type() { init_vec(); } + +AccessCatDefinition::AccessCatDefinition(const AccessCatDefinition& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_precendence.is_bound() ) + field_precendence = other_value.field_precendence; +if (other_value.field_psac.is_bound() ) + field_psac = other_value.field_psac; +if (other_value.field_spare2.is_bound() ) + field_spare2 = other_value.field_spare2; +if (other_value.field_catNum.is_bound() ) + field_catNum = other_value.field_catNum; +if (other_value.field_criteriaLength.is_bound() ) + field_criteriaLength = other_value.field_criteriaLength; +if (other_value.field_criteria.is_bound() ) + field_criteria = other_value.field_criteria; +if (other_value.field_spare3.is_bound() ) + field_spare3 = other_value.field_spare3; +if (other_value.field_standardAccessCat.is_bound() ) + field_standardAccessCat = other_value.field_standardAccessCat; +init_vec(); +} + +AccessCatDefinition::AccessCatDefinition(const OCTETSTRING& par_iel, + const OCTETSTRING& par_precendence, + const BITSTRING& par_psac, + const BITSTRING& par_spare2, + const BITSTRING& par_catNum, + const OCTETSTRING& par_criteriaLength, + const OCTETSTRING& par_criteria, + const OPTIONAL& par_spare3, + const OPTIONAL& par_standardAccessCat) : field_iel(par_iel), + field_precendence(par_precendence), + field_psac(par_psac), + field_spare2(par_spare2), + field_catNum(par_catNum), + field_criteriaLength(par_criteriaLength), + field_criteria(par_criteria), + field_spare3(par_spare3), + field_standardAccessCat(par_standardAccessCat) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AccessCatDefinition::get_descriptor() const { return &AccessCatDefinition_descr_; } +const TTCN_Typedescriptor_t* AccessCatDefinition::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B5__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B5__Type_descr_ }; +const TTCN_Typedescriptor_t* AccessCatDefinition::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AccessCatDefinition::fld_names[] = { "iel", "precendence", "psac", "spare2", "catNum", "criteriaLength", "criteria", "spare3", "standardAccessCat" }; +const char* AccessCatDefinition::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AccessCatDefinition::optional_indexes[] = { 7, 8, -1 }; +const int* AccessCatDefinition::get_optional_indexes() const { return optional_indexes; } + +const int AccessCatDefinition::optional_indexes_asn[] = { 7, 8, -1 }; +const int* AccessCatDefinition::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AccessCatDefinition_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 9; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[6] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +AccessCatDefinition_template::AccessCatDefinition_template(AccessCatDefinition_template* p_precondition, AccessCatDefinition_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AccessCatDefinition_template::AccessCatDefinition_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AccessCatDefinition_template::~AccessCatDefinition_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AccessCatDefinition_template::match_dynamic(const Base_Type* match_value) const +{ +const AccessCatDefinition* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AccessCatDefinition_template& AccessCatDefinition_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AccessCatDefinition_template& AccessCatDefinition_template::operator=(const AccessCatDefinition& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AccessCatDefinition_template& AccessCatDefinition_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AccessCatDefinition_template& AccessCatDefinition_template::operator=(const AccessCatDefinition_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AccessCatDefinition AccessCatDefinition_template::valueof() const +{ +AccessCatDefinition ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AccessCatDefinition_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AccessCatDefinition_template::iel() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& AccessCatDefinition_template::precendence() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& AccessCatDefinition_template::precendence() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AccessCatDefinition_template::psac() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AccessCatDefinition_template::psac() const { return *(static_cast(get_at(2))); } +BITSTRING_template& AccessCatDefinition_template::spare2() { return *(static_cast(get_at(3))); } +const BITSTRING_template& AccessCatDefinition_template::spare2() const { return *(static_cast(get_at(3))); } +BITSTRING_template& AccessCatDefinition_template::catNum() { return *(static_cast(get_at(4))); } +const BITSTRING_template& AccessCatDefinition_template::catNum() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& AccessCatDefinition_template::criteriaLength() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& AccessCatDefinition_template::criteriaLength() const { return *(static_cast(get_at(5))); } +OCTETSTRING_template& AccessCatDefinition_template::criteria() { return *(static_cast(get_at(6))); } +const OCTETSTRING_template& AccessCatDefinition_template::criteria() const { return *(static_cast(get_at(6))); } +BITSTRING_template& AccessCatDefinition_template::spare3() { return *(static_cast(get_at(7))); } +const BITSTRING_template& AccessCatDefinition_template::spare3() const { return *(static_cast(get_at(7))); } +BITSTRING_template& AccessCatDefinition_template::standardAccessCat() { return *(static_cast(get_at(8))); } +const BITSTRING_template& AccessCatDefinition_template::standardAccessCat() const { return *(static_cast(get_at(8))); } +const TTCN_Typedescriptor_t* AccessCatDefinition_template::get_descriptor() const { return &AccessCatDefinition_descr_; } +const char* AccessCatDefinition_template::fld_name(int p_index) const { return AccessCatDefinition::fld_names[p_index]; } +void OperatorAccessCatDefinitions::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_definitions; } + +OperatorAccessCatDefinitions::OperatorAccessCatDefinitions() : Record_Type() { init_vec(); } + +OperatorAccessCatDefinitions::OperatorAccessCatDefinitions(const OperatorAccessCatDefinitions& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_definitions.is_bound() ) + field_definitions = other_value.field_definitions; +init_vec(); +} + +OperatorAccessCatDefinitions::OperatorAccessCatDefinitions(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OperatorAccessCatDefinitions_definitions& par_definitions) : field_iei(par_iei), + field_iel(par_iel), + field_definitions(par_definitions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* OperatorAccessCatDefinitions::get_descriptor() const { return &OperatorAccessCatDefinitions_descr_; } +const TTCN_Typedescriptor_t* OperatorAccessCatDefinitions::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OperatorAccessCatDefinitions_definitions_descr_ }; +const TTCN_Typedescriptor_t* OperatorAccessCatDefinitions::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* OperatorAccessCatDefinitions::fld_names[] = { "iei", "iel", "definitions" }; +const char* OperatorAccessCatDefinitions::fld_name(int p_index) const { return fld_names[p_index]; } + +const int OperatorAccessCatDefinitions::optional_indexes[] = { 0, -1 }; +const int* OperatorAccessCatDefinitions::get_optional_indexes() const { return optional_indexes; } + +const int OperatorAccessCatDefinitions::optional_indexes_asn[] = { 0, -1 }; +const int* OperatorAccessCatDefinitions::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void OperatorAccessCatDefinitions_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OperatorAccessCatDefinitions_definitions_template(ANY_VALUE) : new OperatorAccessCatDefinitions_definitions_template; +} +} + +OperatorAccessCatDefinitions_template::OperatorAccessCatDefinitions_template(OperatorAccessCatDefinitions_template* p_precondition, OperatorAccessCatDefinitions_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +OperatorAccessCatDefinitions_template::OperatorAccessCatDefinitions_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +OperatorAccessCatDefinitions_template::~OperatorAccessCatDefinitions_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean OperatorAccessCatDefinitions_template::match_dynamic(const Base_Type* match_value) const +{ +const OperatorAccessCatDefinitions* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +OperatorAccessCatDefinitions_template& OperatorAccessCatDefinitions_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +OperatorAccessCatDefinitions_template& OperatorAccessCatDefinitions_template::operator=(const OperatorAccessCatDefinitions& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +OperatorAccessCatDefinitions_template& OperatorAccessCatDefinitions_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +OperatorAccessCatDefinitions_template& OperatorAccessCatDefinitions_template::operator=(const OperatorAccessCatDefinitions_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +OperatorAccessCatDefinitions OperatorAccessCatDefinitions_template::valueof() const +{ +OperatorAccessCatDefinitions ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& OperatorAccessCatDefinitions_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& OperatorAccessCatDefinitions_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& OperatorAccessCatDefinitions_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& OperatorAccessCatDefinitions_template::iel() const { return *(static_cast(get_at(1))); } +OperatorAccessCatDefinitions_definitions_template& OperatorAccessCatDefinitions_template::definitions() { return *(static_cast(get_at(2))); } +const OperatorAccessCatDefinitions_definitions_template& OperatorAccessCatDefinitions_template::definitions() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* OperatorAccessCatDefinitions_template::get_descriptor() const { return &OperatorAccessCatDefinitions_descr_; } +const char* OperatorAccessCatDefinitions_template::fld_name(int p_index) const { return OperatorAccessCatDefinitions::fld_names[p_index]; } +void NG__CipheringKeyData::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_listOfCipherKeyData; } + +NG__CipheringKeyData::NG__CipheringKeyData() : Record_Type() { init_vec(); } + +NG__CipheringKeyData::NG__CipheringKeyData(const NG__CipheringKeyData& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_listOfCipherKeyData.is_bound() ) + field_listOfCipherKeyData = other_value.field_listOfCipherKeyData; +init_vec(); +} + +NG__CipheringKeyData::NG__CipheringKeyData(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_listOfCipherKeyData) : field_iei(par_iei), + field_iel(par_iel), + field_listOfCipherKeyData(par_listOfCipherKeyData) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__CipheringKeyData::get_descriptor() const { return &NG__CipheringKeyData_descr_; } +const TTCN_Typedescriptor_t* NG__CipheringKeyData::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &NG__CipheringKeyData_listOfCipherKeyData_descr_ }; +const TTCN_Typedescriptor_t* NG__CipheringKeyData::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__CipheringKeyData::fld_names[] = { "iei", "iel", "listOfCipherKeyData" }; +const char* NG__CipheringKeyData::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__CipheringKeyData::optional_indexes[] = { 0, 2, -1 }; +const int* NG__CipheringKeyData::get_optional_indexes() const { return optional_indexes; } + +const int NG__CipheringKeyData::optional_indexes_asn[] = { 0, 2, -1 }; +const int* NG__CipheringKeyData::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__CipheringKeyData_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new NG__CipheringKeyData_listOfCipherKeyData_template(ANY_OR_OMIT) : new NG__CipheringKeyData_listOfCipherKeyData_template; +} +} + +NG__CipheringKeyData_template::NG__CipheringKeyData_template(NG__CipheringKeyData_template* p_precondition, NG__CipheringKeyData_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__CipheringKeyData_template::NG__CipheringKeyData_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__CipheringKeyData_template::~NG__CipheringKeyData_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__CipheringKeyData_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__CipheringKeyData* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__CipheringKeyData_template& NG__CipheringKeyData_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__CipheringKeyData_template& NG__CipheringKeyData_template::operator=(const NG__CipheringKeyData& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__CipheringKeyData_template& NG__CipheringKeyData_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__CipheringKeyData_template& NG__CipheringKeyData_template::operator=(const NG__CipheringKeyData_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__CipheringKeyData NG__CipheringKeyData_template::valueof() const +{ +NG__CipheringKeyData ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__CipheringKeyData_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__CipheringKeyData_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__CipheringKeyData_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__CipheringKeyData_template::iel() const { return *(static_cast(get_at(1))); } +NG__CipheringKeyData_listOfCipherKeyData_template& NG__CipheringKeyData_template::listOfCipherKeyData() { return *(static_cast(get_at(2))); } +const NG__CipheringKeyData_listOfCipherKeyData_template& NG__CipheringKeyData_template::listOfCipherKeyData() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NG__CipheringKeyData_template::get_descriptor() const { return &NG__CipheringKeyData_descr_; } +const char* NG__CipheringKeyData_template::fld_name(int p_index) const { return NG__CipheringKeyData::fld_names[p_index]; } + +const NG__CipherDataSet NG__CipheringKeyData_listOfCipherKeyData::UNBOUND_ELEM; +NG__CipherDataSet& NG__CipheringKeyData_listOfCipherKeyData::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__CipherDataSet& NG__CipheringKeyData_listOfCipherKeyData::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__CipherDataSet& NG__CipheringKeyData_listOfCipherKeyData::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__CipherDataSet& NG__CipheringKeyData_listOfCipherKeyData::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::operator<<=(const INTEGER& rotate_count) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +return *((NG__CipheringKeyData_listOfCipherKeyData*)rotl(rotate_count, &rec_of)); +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::operator>>=(const INTEGER& rotate_count) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +return *((NG__CipheringKeyData_listOfCipherKeyData*)rotr(rotate_count, &rec_of)); +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::operator>>=(int rotate_count) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +return *((NG__CipheringKeyData_listOfCipherKeyData*)rotr(rotate_count, &rec_of)); +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::operator+(const NG__CipheringKeyData_listOfCipherKeyData& other_value) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +return *((NG__CipheringKeyData_listOfCipherKeyData*)concat(&other_value, &rec_of)); +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__CipheringKeyData_listOfCipherKeyData&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NG_CipheringKeyData.listOfCipherKeyData concatenation."); +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::operator+(null_type) const +{ +return *this; +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::substr(int index, int returncount) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::replace(int index, int len, const NG__CipheringKeyData_listOfCipherKeyData& repl) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData::replace(int index, int len, const NG__CipheringKeyData_listOfCipherKeyData_template& repl) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__CipheringKeyData_listOfCipherKeyData::create_elem() const { return new NG__CipherDataSet; } +const Base_Type* NG__CipheringKeyData_listOfCipherKeyData::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__CipheringKeyData_listOfCipherKeyData::get_descriptor() const { return &NG__CipheringKeyData_listOfCipherKeyData_descr_; } +NG__CipheringKeyData_listOfCipherKeyData_template::NG__CipheringKeyData_listOfCipherKeyData_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__CipheringKeyData_listOfCipherKeyData_template::NG__CipheringKeyData_listOfCipherKeyData_template(NG__CipheringKeyData_listOfCipherKeyData_template* p_precondition, NG__CipheringKeyData_listOfCipherKeyData_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__CipheringKeyData_listOfCipherKeyData_template::NG__CipheringKeyData_listOfCipherKeyData_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__CipheringKeyData_listOfCipherKeyData_template::~NG__CipheringKeyData_listOfCipherKeyData_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__CipheringKeyData_listOfCipherKeyData_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__CipheringKeyData_listOfCipherKeyData* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__CipheringKeyData_listOfCipherKeyData_template& NG__CipheringKeyData_listOfCipherKeyData_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__CipheringKeyData_listOfCipherKeyData_template& NG__CipheringKeyData_listOfCipherKeyData_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__CipheringKeyData_listOfCipherKeyData_template& NG__CipheringKeyData_listOfCipherKeyData_template::operator=(const NG__CipheringKeyData_listOfCipherKeyData& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__CipheringKeyData_listOfCipherKeyData_template& NG__CipheringKeyData_listOfCipherKeyData_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__CipheringKeyData_listOfCipherKeyData_template& NG__CipheringKeyData_listOfCipherKeyData_template::operator=(const NG__CipheringKeyData_listOfCipherKeyData_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__CipheringKeyData_listOfCipherKeyData_template NG__CipheringKeyData_listOfCipherKeyData_template::operator+(const NG__CipheringKeyData_listOfCipherKeyData_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__CipheringKeyData_listOfCipherKeyData_template(ANY_VALUE); +} +NG__CipheringKeyData_listOfCipherKeyData_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__CipheringKeyData_listOfCipherKeyData_template NG__CipheringKeyData_listOfCipherKeyData_template::operator+(const NG__CipheringKeyData_listOfCipherKeyData& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__CipheringKeyData_listOfCipherKeyData_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__CipheringKeyData_listOfCipherKeyData_template NG__CipheringKeyData_listOfCipherKeyData_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__CipheringKeyData_listOfCipherKeyData_template(ANY_VALUE); +} +NG__CipheringKeyData_listOfCipherKeyData_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__CipheringKeyData_listOfCipherKeyData_template NG__CipheringKeyData_listOfCipherKeyData_template::operator+(null_type) const +{ +return *this; +} + +NG__CipherDataSet_template& NG__CipheringKeyData_listOfCipherKeyData_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__CipherDataSet_template& NG__CipheringKeyData_listOfCipherKeyData_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__CipherDataSet_template& NG__CipheringKeyData_listOfCipherKeyData_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__CipherDataSet_template& NG__CipheringKeyData_listOfCipherKeyData_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData_template::valueof() const +{ +NG__CipheringKeyData_listOfCipherKeyData ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData_template::substr(int index, int returncount) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData_template::replace(int index, int len, const NG__CipheringKeyData_listOfCipherKeyData_template& repl) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__CipheringKeyData_listOfCipherKeyData NG__CipheringKeyData_listOfCipherKeyData_template::replace(int index, int len, const NG__CipheringKeyData_listOfCipherKeyData& repl) const +{ +NG__CipheringKeyData_listOfCipherKeyData rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__CipheringKeyData_listOfCipherKeyData_template::create_elem() const { return new NG__CipherDataSet_template; } +const TTCN_Typedescriptor_t* NG__CipheringKeyData_listOfCipherKeyData_template::get_descriptor() const { return &NG__CipheringKeyData_listOfCipherKeyData_descr_; } +void NG__CipherDataSet::init_vec() { fld_vec[0]=&field_id; fld_vec[1]=&field_key; fld_vec[2]=&field_spareBits; fld_vec[3]=&field_c0Length; fld_vec[4]=&field_c0; fld_vec[5]=&field_eSpareBits; fld_vec[6]=&field_eSIBLength; fld_vec[7]=&field_eposSIB1; fld_vec[8]=&field_eposSIB2__O1; fld_vec[9]=&field_eposSIB2__O2; fld_vec[10]=&field_eposSIB2__O3; fld_vec[11]=&field_eposSIB2__SIB5; fld_vec[12]=&field_nSpareBits; fld_vec[13]=&field_nSIBLength; fld_vec[14]=&field_nposSIB1; fld_vec[15]=&field_nposSIB2__O1; fld_vec[16]=&field_nposSIB2__O2; fld_vec[17]=&field_nposSIB2__SIB3; fld_vec[18]=&field_nposSIB4__SIB6; fld_vec[19]=&field_validityStartTime; fld_vec[20]=&field_validityDuration; fld_vec[21]=&field_taiLength; fld_vec[22]=&field_listOfPartialTais; } + +NG__CipherDataSet::NG__CipherDataSet() : Record_Type() { init_vec(); } + +NG__CipherDataSet::NG__CipherDataSet(const NG__CipherDataSet& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_key.is_bound() ) + field_key = other_value.field_key; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_c0Length.is_bound() ) + field_c0Length = other_value.field_c0Length; +if (other_value.field_c0.is_bound() ) + field_c0 = other_value.field_c0; +if (other_value.field_eSpareBits.is_bound() ) + field_eSpareBits = other_value.field_eSpareBits; +if (other_value.field_eSIBLength.is_bound() ) + field_eSIBLength = other_value.field_eSIBLength; +if (other_value.field_eposSIB1.is_bound() ) + field_eposSIB1 = other_value.field_eposSIB1; +if (other_value.field_eposSIB2__O1.is_bound() ) + field_eposSIB2__O1 = other_value.field_eposSIB2__O1; +if (other_value.field_eposSIB2__O2.is_bound() ) + field_eposSIB2__O2 = other_value.field_eposSIB2__O2; +if (other_value.field_eposSIB2__O3.is_bound() ) + field_eposSIB2__O3 = other_value.field_eposSIB2__O3; +if (other_value.field_eposSIB2__SIB5.is_bound() ) + field_eposSIB2__SIB5 = other_value.field_eposSIB2__SIB5; +if (other_value.field_nSpareBits.is_bound() ) + field_nSpareBits = other_value.field_nSpareBits; +if (other_value.field_nSIBLength.is_bound() ) + field_nSIBLength = other_value.field_nSIBLength; +if (other_value.field_nposSIB1.is_bound() ) + field_nposSIB1 = other_value.field_nposSIB1; +if (other_value.field_nposSIB2__O1.is_bound() ) + field_nposSIB2__O1 = other_value.field_nposSIB2__O1; +if (other_value.field_nposSIB2__O2.is_bound() ) + field_nposSIB2__O2 = other_value.field_nposSIB2__O2; +if (other_value.field_nposSIB2__SIB3.is_bound() ) + field_nposSIB2__SIB3 = other_value.field_nposSIB2__SIB3; +if (other_value.field_nposSIB4__SIB6.is_bound() ) + field_nposSIB4__SIB6 = other_value.field_nposSIB4__SIB6; +if (other_value.field_validityStartTime.is_bound() ) + field_validityStartTime = other_value.field_validityStartTime; +if (other_value.field_validityDuration.is_bound() ) + field_validityDuration = other_value.field_validityDuration; +if (other_value.field_taiLength.is_bound() ) + field_taiLength = other_value.field_taiLength; +if (other_value.field_listOfPartialTais.is_bound() ) + field_listOfPartialTais = other_value.field_listOfPartialTais; +init_vec(); +} + +NG__CipherDataSet::NG__CipherDataSet(const OCTETSTRING& par_id, + const OCTETSTRING& par_key, + const BITSTRING& par_spareBits, + const BITSTRING& par_c0Length, + const OCTETSTRING& par_c0, + const BITSTRING& par_eSpareBits, + const BITSTRING& par_eSIBLength, + const OPTIONAL& par_eposSIB1, + const OPTIONAL& par_eposSIB2__O1, + const OPTIONAL& par_eposSIB2__O2, + const OPTIONAL& par_eposSIB2__O3, + const OPTIONAL& par_eposSIB2__SIB5, + const BITSTRING& par_nSpareBits, + const BITSTRING& par_nSIBLength, + const OPTIONAL& par_nposSIB1, + const OPTIONAL& par_nposSIB2__O1, + const OPTIONAL& par_nposSIB2__O2, + const OPTIONAL& par_nposSIB2__SIB3, + const OPTIONAL& par_nposSIB4__SIB6, + const OCTETSTRING& par_validityStartTime, + const OCTETSTRING& par_validityDuration, + const OCTETSTRING& par_taiLength, + const OPTIONAL& par_listOfPartialTais) : field_id(par_id), + field_key(par_key), + field_spareBits(par_spareBits), + field_c0Length(par_c0Length), + field_c0(par_c0), + field_eSpareBits(par_eSpareBits), + field_eSIBLength(par_eSIBLength), + field_eposSIB1(par_eposSIB1), + field_eposSIB2__O1(par_eposSIB2__O1), + field_eposSIB2__O2(par_eposSIB2__O2), + field_eposSIB2__O3(par_eposSIB2__O3), + field_eposSIB2__SIB5(par_eposSIB2__SIB5), + field_nSpareBits(par_nSpareBits), + field_nSIBLength(par_nSIBLength), + field_nposSIB1(par_nposSIB1), + field_nposSIB2__O1(par_nposSIB2__O1), + field_nposSIB2__O2(par_nposSIB2__O2), + field_nposSIB2__SIB3(par_nposSIB2__SIB3), + field_nposSIB4__SIB6(par_nposSIB4__SIB6), + field_validityStartTime(par_validityStartTime), + field_validityDuration(par_validityDuration), + field_taiLength(par_taiLength), + field_listOfPartialTais(par_listOfPartialTais) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__CipherDataSet::get_descriptor() const { return &NG__CipherDataSet_descr_; } +const TTCN_Typedescriptor_t* NG__CipherDataSet::fld_descriptors[] = { &CommonDefs::O2__Type_descr_, &CommonDefs::O16__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B5__Type_descr_, &OCTETSTRING_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O5__Type_descr_, &CommonDefs::O2__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &NG__CipherDataSet_listOfPartialTais_descr_ }; +const TTCN_Typedescriptor_t* NG__CipherDataSet::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__CipherDataSet::fld_names[] = { "id", "key", "spareBits", "c0Length", "c0", "eSpareBits", "eSIBLength", "eposSIB1", "eposSIB2_O1", "eposSIB2_O2", "eposSIB2_O3", "eposSIB2_SIB5", "nSpareBits", "nSIBLength", "nposSIB1", "nposSIB2_O1", "nposSIB2_O2", "nposSIB2_SIB3", "nposSIB4_SIB6", "validityStartTime", "validityDuration", "taiLength", "listOfPartialTais" }; +const char* NG__CipherDataSet::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__CipherDataSet::optional_indexes[] = { 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 22, -1 }; +const int* NG__CipherDataSet::get_optional_indexes() const { return optional_indexes; } + +const int NG__CipherDataSet::optional_indexes_asn[] = { 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 22, -1 }; +const int* NG__CipherDataSet::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__CipherDataSet_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 23; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[8] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[9] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[10] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[11] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[12] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[13] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[14] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[15] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[16] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[17] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[18] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[19] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[20] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[21] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[22] = was_any ? new NG__CipherDataSet_listOfPartialTais_template(ANY_OR_OMIT) : new NG__CipherDataSet_listOfPartialTais_template; +} +} + +NG__CipherDataSet_template::NG__CipherDataSet_template(NG__CipherDataSet_template* p_precondition, NG__CipherDataSet_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__CipherDataSet_template::NG__CipherDataSet_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__CipherDataSet_template::~NG__CipherDataSet_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__CipherDataSet_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__CipherDataSet* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__CipherDataSet_template& NG__CipherDataSet_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__CipherDataSet_template& NG__CipherDataSet_template::operator=(const NG__CipherDataSet& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__CipherDataSet_template& NG__CipherDataSet_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__CipherDataSet_template& NG__CipherDataSet_template::operator=(const NG__CipherDataSet_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__CipherDataSet NG__CipherDataSet_template::valueof() const +{ +NG__CipherDataSet ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__CipherDataSet_template::id() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__CipherDataSet_template::id() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__CipherDataSet_template::key() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__CipherDataSet_template::key() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__CipherDataSet_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__CipherDataSet_template::spareBits() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__CipherDataSet_template::c0Length() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__CipherDataSet_template::c0Length() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& NG__CipherDataSet_template::c0() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& NG__CipherDataSet_template::c0() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NG__CipherDataSet_template::eSpareBits() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NG__CipherDataSet_template::eSpareBits() const { return *(static_cast(get_at(5))); } +BITSTRING_template& NG__CipherDataSet_template::eSIBLength() { return *(static_cast(get_at(6))); } +const BITSTRING_template& NG__CipherDataSet_template::eSIBLength() const { return *(static_cast(get_at(6))); } +OCTETSTRING_template& NG__CipherDataSet_template::eposSIB1() { return *(static_cast(get_at(7))); } +const OCTETSTRING_template& NG__CipherDataSet_template::eposSIB1() const { return *(static_cast(get_at(7))); } +OCTETSTRING_template& NG__CipherDataSet_template::eposSIB2__O1() { return *(static_cast(get_at(8))); } +const OCTETSTRING_template& NG__CipherDataSet_template::eposSIB2__O1() const { return *(static_cast(get_at(8))); } +OCTETSTRING_template& NG__CipherDataSet_template::eposSIB2__O2() { return *(static_cast(get_at(9))); } +const OCTETSTRING_template& NG__CipherDataSet_template::eposSIB2__O2() const { return *(static_cast(get_at(9))); } +OCTETSTRING_template& NG__CipherDataSet_template::eposSIB2__O3() { return *(static_cast(get_at(10))); } +const OCTETSTRING_template& NG__CipherDataSet_template::eposSIB2__O3() const { return *(static_cast(get_at(10))); } +OCTETSTRING_template& NG__CipherDataSet_template::eposSIB2__SIB5() { return *(static_cast(get_at(11))); } +const OCTETSTRING_template& NG__CipherDataSet_template::eposSIB2__SIB5() const { return *(static_cast(get_at(11))); } +BITSTRING_template& NG__CipherDataSet_template::nSpareBits() { return *(static_cast(get_at(12))); } +const BITSTRING_template& NG__CipherDataSet_template::nSpareBits() const { return *(static_cast(get_at(12))); } +BITSTRING_template& NG__CipherDataSet_template::nSIBLength() { return *(static_cast(get_at(13))); } +const BITSTRING_template& NG__CipherDataSet_template::nSIBLength() const { return *(static_cast(get_at(13))); } +OCTETSTRING_template& NG__CipherDataSet_template::nposSIB1() { return *(static_cast(get_at(14))); } +const OCTETSTRING_template& NG__CipherDataSet_template::nposSIB1() const { return *(static_cast(get_at(14))); } +OCTETSTRING_template& NG__CipherDataSet_template::nposSIB2__O1() { return *(static_cast(get_at(15))); } +const OCTETSTRING_template& NG__CipherDataSet_template::nposSIB2__O1() const { return *(static_cast(get_at(15))); } +OCTETSTRING_template& NG__CipherDataSet_template::nposSIB2__O2() { return *(static_cast(get_at(16))); } +const OCTETSTRING_template& NG__CipherDataSet_template::nposSIB2__O2() const { return *(static_cast(get_at(16))); } +OCTETSTRING_template& NG__CipherDataSet_template::nposSIB2__SIB3() { return *(static_cast(get_at(17))); } +const OCTETSTRING_template& NG__CipherDataSet_template::nposSIB2__SIB3() const { return *(static_cast(get_at(17))); } +OCTETSTRING_template& NG__CipherDataSet_template::nposSIB4__SIB6() { return *(static_cast(get_at(18))); } +const OCTETSTRING_template& NG__CipherDataSet_template::nposSIB4__SIB6() const { return *(static_cast(get_at(18))); } +OCTETSTRING_template& NG__CipherDataSet_template::validityStartTime() { return *(static_cast(get_at(19))); } +const OCTETSTRING_template& NG__CipherDataSet_template::validityStartTime() const { return *(static_cast(get_at(19))); } +OCTETSTRING_template& NG__CipherDataSet_template::validityDuration() { return *(static_cast(get_at(20))); } +const OCTETSTRING_template& NG__CipherDataSet_template::validityDuration() const { return *(static_cast(get_at(20))); } +OCTETSTRING_template& NG__CipherDataSet_template::taiLength() { return *(static_cast(get_at(21))); } +const OCTETSTRING_template& NG__CipherDataSet_template::taiLength() const { return *(static_cast(get_at(21))); } +NG__CipherDataSet_listOfPartialTais_template& NG__CipherDataSet_template::listOfPartialTais() { return *(static_cast(get_at(22))); } +const NG__CipherDataSet_listOfPartialTais_template& NG__CipherDataSet_template::listOfPartialTais() const { return *(static_cast(get_at(22))); } +const TTCN_Typedescriptor_t* NG__CipherDataSet_template::get_descriptor() const { return &NG__CipherDataSet_descr_; } +const char* NG__CipherDataSet_template::fld_name(int p_index) const { return NG__CipherDataSet::fld_names[p_index]; } + +const NG__ListOfPartialTaiList NG__CipherDataSet_listOfPartialTais::UNBOUND_ELEM; +NG__ListOfPartialTaiList& NG__CipherDataSet_listOfPartialTais::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__ListOfPartialTaiList& NG__CipherDataSet_listOfPartialTais::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList& NG__CipherDataSet_listOfPartialTais::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList& NG__CipherDataSet_listOfPartialTais::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::operator<<=(const INTEGER& rotate_count) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +return *((NG__CipherDataSet_listOfPartialTais*)rotl(rotate_count, &rec_of)); +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::operator>>=(const INTEGER& rotate_count) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +return *((NG__CipherDataSet_listOfPartialTais*)rotr(rotate_count, &rec_of)); +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::operator>>=(int rotate_count) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +return *((NG__CipherDataSet_listOfPartialTais*)rotr(rotate_count, &rec_of)); +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::operator+(const NG__CipherDataSet_listOfPartialTais& other_value) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +return *((NG__CipherDataSet_listOfPartialTais*)concat(&other_value, &rec_of)); +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__CipherDataSet_listOfPartialTais&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NG_CipherDataSet.listOfPartialTais concatenation."); +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::operator+(null_type) const +{ +return *this; +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::substr(int index, int returncount) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::replace(int index, int len, const NG__CipherDataSet_listOfPartialTais& repl) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais::replace(int index, int len, const NG__CipherDataSet_listOfPartialTais_template& repl) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__CipherDataSet_listOfPartialTais::create_elem() const { return new NG__ListOfPartialTaiList; } +const Base_Type* NG__CipherDataSet_listOfPartialTais::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__CipherDataSet_listOfPartialTais::get_descriptor() const { return &NG__CipherDataSet_listOfPartialTais_descr_; } +NG__CipherDataSet_listOfPartialTais_template::NG__CipherDataSet_listOfPartialTais_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__CipherDataSet_listOfPartialTais_template::NG__CipherDataSet_listOfPartialTais_template(NG__CipherDataSet_listOfPartialTais_template* p_precondition, NG__CipherDataSet_listOfPartialTais_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__CipherDataSet_listOfPartialTais_template::NG__CipherDataSet_listOfPartialTais_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__CipherDataSet_listOfPartialTais_template::~NG__CipherDataSet_listOfPartialTais_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__CipherDataSet_listOfPartialTais_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__CipherDataSet_listOfPartialTais* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__CipherDataSet_listOfPartialTais_template& NG__CipherDataSet_listOfPartialTais_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__CipherDataSet_listOfPartialTais_template& NG__CipherDataSet_listOfPartialTais_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__CipherDataSet_listOfPartialTais_template& NG__CipherDataSet_listOfPartialTais_template::operator=(const NG__CipherDataSet_listOfPartialTais& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__CipherDataSet_listOfPartialTais_template& NG__CipherDataSet_listOfPartialTais_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__CipherDataSet_listOfPartialTais_template& NG__CipherDataSet_listOfPartialTais_template::operator=(const NG__CipherDataSet_listOfPartialTais_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__CipherDataSet_listOfPartialTais_template NG__CipherDataSet_listOfPartialTais_template::operator+(const NG__CipherDataSet_listOfPartialTais_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__CipherDataSet_listOfPartialTais_template(ANY_VALUE); +} +NG__CipherDataSet_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__CipherDataSet_listOfPartialTais_template NG__CipherDataSet_listOfPartialTais_template::operator+(const NG__CipherDataSet_listOfPartialTais& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__CipherDataSet_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__CipherDataSet_listOfPartialTais_template NG__CipherDataSet_listOfPartialTais_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__CipherDataSet_listOfPartialTais_template(ANY_VALUE); +} +NG__CipherDataSet_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__CipherDataSet_listOfPartialTais_template NG__CipherDataSet_listOfPartialTais_template::operator+(null_type) const +{ +return *this; +} + +NG__ListOfPartialTaiList_template& NG__CipherDataSet_listOfPartialTais_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__ListOfPartialTaiList_template& NG__CipherDataSet_listOfPartialTais_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList_template& NG__CipherDataSet_listOfPartialTais_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__ListOfPartialTaiList_template& NG__CipherDataSet_listOfPartialTais_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais_template::valueof() const +{ +NG__CipherDataSet_listOfPartialTais ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais_template::substr(int index, int returncount) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais_template::replace(int index, int len, const NG__CipherDataSet_listOfPartialTais_template& repl) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__CipherDataSet_listOfPartialTais NG__CipherDataSet_listOfPartialTais_template::replace(int index, int len, const NG__CipherDataSet_listOfPartialTais& repl) const +{ +NG__CipherDataSet_listOfPartialTais rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__CipherDataSet_listOfPartialTais_template::create_elem() const { return new NG__ListOfPartialTaiList_template; } +const TTCN_Typedescriptor_t* NG__CipherDataSet_listOfPartialTais_template::get_descriptor() const { return &NG__CipherDataSet_listOfPartialTais_descr_; } +void CAGInfoList::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_listOfCAGInfos; } + +CAGInfoList::CAGInfoList() : Record_Type() { init_vec(); } + +CAGInfoList::CAGInfoList(const CAGInfoList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_listOfCAGInfos.is_bound() ) + field_listOfCAGInfos = other_value.field_listOfCAGInfos; +init_vec(); +} + +CAGInfoList::CAGInfoList(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_listOfCAGInfos) : field_iei(par_iei), + field_iel(par_iel), + field_listOfCAGInfos(par_listOfCAGInfos) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CAGInfoList::get_descriptor() const { return &CAGInfoList_descr_; } +const TTCN_Typedescriptor_t* CAGInfoList::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &CAGInfoList_listOfCAGInfos_descr_ }; +const TTCN_Typedescriptor_t* CAGInfoList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CAGInfoList::fld_names[] = { "iei", "iel", "listOfCAGInfos" }; +const char* CAGInfoList::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CAGInfoList::optional_indexes[] = { 0, 2, -1 }; +const int* CAGInfoList::get_optional_indexes() const { return optional_indexes; } + +const int CAGInfoList::optional_indexes_asn[] = { 0, 2, -1 }; +const int* CAGInfoList::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CAGInfoList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new CAGInfoList_listOfCAGInfos_template(ANY_OR_OMIT) : new CAGInfoList_listOfCAGInfos_template; +} +} + +CAGInfoList_template::CAGInfoList_template(CAGInfoList_template* p_precondition, CAGInfoList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CAGInfoList_template::CAGInfoList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CAGInfoList_template::~CAGInfoList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CAGInfoList_template::match_dynamic(const Base_Type* match_value) const +{ +const CAGInfoList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CAGInfoList_template& CAGInfoList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CAGInfoList_template& CAGInfoList_template::operator=(const CAGInfoList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CAGInfoList_template& CAGInfoList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CAGInfoList_template& CAGInfoList_template::operator=(const CAGInfoList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CAGInfoList CAGInfoList_template::valueof() const +{ +CAGInfoList ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& CAGInfoList_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& CAGInfoList_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& CAGInfoList_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& CAGInfoList_template::iel() const { return *(static_cast(get_at(1))); } +CAGInfoList_listOfCAGInfos_template& CAGInfoList_template::listOfCAGInfos() { return *(static_cast(get_at(2))); } +const CAGInfoList_listOfCAGInfos_template& CAGInfoList_template::listOfCAGInfos() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* CAGInfoList_template::get_descriptor() const { return &CAGInfoList_descr_; } +const char* CAGInfoList_template::fld_name(int p_index) const { return CAGInfoList::fld_names[p_index]; } + +const CAG__Info CAGInfoList_listOfCAGInfos::UNBOUND_ELEM; +CAG__Info& CAGInfoList_listOfCAGInfos::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +CAG__Info& CAGInfoList_listOfCAGInfos::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const CAG__Info& CAGInfoList_listOfCAGInfos::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const CAG__Info& CAGInfoList_listOfCAGInfos::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::operator<<=(const INTEGER& rotate_count) const +{ +CAGInfoList_listOfCAGInfos rec_of; +return *((CAGInfoList_listOfCAGInfos*)rotl(rotate_count, &rec_of)); +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::operator>>=(const INTEGER& rotate_count) const +{ +CAGInfoList_listOfCAGInfos rec_of; +return *((CAGInfoList_listOfCAGInfos*)rotr(rotate_count, &rec_of)); +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::operator>>=(int rotate_count) const +{ +CAGInfoList_listOfCAGInfos rec_of; +return *((CAGInfoList_listOfCAGInfos*)rotr(rotate_count, &rec_of)); +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::operator+(const CAGInfoList_listOfCAGInfos& other_value) const +{ +CAGInfoList_listOfCAGInfos rec_of; +return *((CAGInfoList_listOfCAGInfos*)concat(&other_value, &rec_of)); +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const CAGInfoList_listOfCAGInfos&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.CAGInfoList.listOfCAGInfos concatenation."); +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::operator+(null_type) const +{ +return *this; +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::substr(int index, int returncount) const +{ +CAGInfoList_listOfCAGInfos rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::replace(int index, int len, const CAGInfoList_listOfCAGInfos& repl) const +{ +CAGInfoList_listOfCAGInfos rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos::replace(int index, int len, const CAGInfoList_listOfCAGInfos_template& repl) const +{ +CAGInfoList_listOfCAGInfos rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* CAGInfoList_listOfCAGInfos::create_elem() const { return new CAG__Info; } +const Base_Type* CAGInfoList_listOfCAGInfos::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* CAGInfoList_listOfCAGInfos::get_descriptor() const { return &CAGInfoList_listOfCAGInfos_descr_; } +CAGInfoList_listOfCAGInfos_template::CAGInfoList_listOfCAGInfos_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +CAGInfoList_listOfCAGInfos_template::CAGInfoList_listOfCAGInfos_template(CAGInfoList_listOfCAGInfos_template* p_precondition, CAGInfoList_listOfCAGInfos_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CAGInfoList_listOfCAGInfos_template::CAGInfoList_listOfCAGInfos_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CAGInfoList_listOfCAGInfos_template::~CAGInfoList_listOfCAGInfos_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CAGInfoList_listOfCAGInfos_template::match_dynamic(const Base_Type* match_value) const +{ +const CAGInfoList_listOfCAGInfos* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +CAGInfoList_listOfCAGInfos_template& CAGInfoList_listOfCAGInfos_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CAGInfoList_listOfCAGInfos_template& CAGInfoList_listOfCAGInfos_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +CAGInfoList_listOfCAGInfos_template& CAGInfoList_listOfCAGInfos_template::operator=(const CAGInfoList_listOfCAGInfos& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CAGInfoList_listOfCAGInfos_template& CAGInfoList_listOfCAGInfos_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CAGInfoList_listOfCAGInfos_template& CAGInfoList_listOfCAGInfos_template::operator=(const CAGInfoList_listOfCAGInfos_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CAGInfoList_listOfCAGInfos_template CAGInfoList_listOfCAGInfos_template::operator+(const CAGInfoList_listOfCAGInfos_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return CAGInfoList_listOfCAGInfos_template(ANY_VALUE); +} +CAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +CAGInfoList_listOfCAGInfos_template CAGInfoList_listOfCAGInfos_template::operator+(const CAGInfoList_listOfCAGInfos& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +CAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +CAGInfoList_listOfCAGInfos_template CAGInfoList_listOfCAGInfos_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return CAGInfoList_listOfCAGInfos_template(ANY_VALUE); +} +CAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +CAGInfoList_listOfCAGInfos_template CAGInfoList_listOfCAGInfos_template::operator+(null_type) const +{ +return *this; +} + +CAG__Info_template& CAGInfoList_listOfCAGInfos_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +CAG__Info_template& CAGInfoList_listOfCAGInfos_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const CAG__Info_template& CAGInfoList_listOfCAGInfos_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const CAG__Info_template& CAGInfoList_listOfCAGInfos_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos_template::valueof() const +{ +CAGInfoList_listOfCAGInfos ret_val; +valueofv(&ret_val); +return ret_val; +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos_template::substr(int index, int returncount) const +{ +CAGInfoList_listOfCAGInfos rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos_template::replace(int index, int len, const CAGInfoList_listOfCAGInfos_template& repl) const +{ +CAGInfoList_listOfCAGInfos rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +CAGInfoList_listOfCAGInfos CAGInfoList_listOfCAGInfos_template::replace(int index, int len, const CAGInfoList_listOfCAGInfos& repl) const +{ +CAGInfoList_listOfCAGInfos rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* CAGInfoList_listOfCAGInfos_template::create_elem() const { return new CAG__Info_template; } +const TTCN_Typedescriptor_t* CAGInfoList_listOfCAGInfos_template::get_descriptor() const { return &CAGInfoList_listOfCAGInfos_descr_; } +void CAG__Info__V::init_vec() { fld_vec[0]=&field_plmn; fld_vec[1]=&field_spareBits; fld_vec[2]=&field_cagOnly; fld_vec[3]=&field_listOfCAGIds; } + +CAG__Info__V::CAG__Info__V() : Record_Type() { init_vec(); } + +CAG__Info__V::CAG__Info__V(const CAG__Info__V& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_plmn.is_bound() ) + field_plmn = other_value.field_plmn; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_cagOnly.is_bound() ) + field_cagOnly = other_value.field_cagOnly; +if (other_value.field_listOfCAGIds.is_bound() ) + field_listOfCAGIds = other_value.field_listOfCAGIds; +init_vec(); +} + +CAG__Info__V::CAG__Info__V(const OCTETSTRING& par_plmn, + const BITSTRING& par_spareBits, + const BITSTRING& par_cagOnly, + const OPTIONAL& par_listOfCAGIds) : field_plmn(par_plmn), + field_spareBits(par_spareBits), + field_cagOnly(par_cagOnly), + field_listOfCAGIds(par_listOfCAGIds) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CAG__Info__V::get_descriptor() const { return &CAG__Info__V_descr_; } +const TTCN_Typedescriptor_t* CAG__Info__V::fld_descriptors[] = { &NAS__CommonTypeDefs::NAS__PlmnId_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_, &CAG__Info__V_listOfCAGIds_descr_ }; +const TTCN_Typedescriptor_t* CAG__Info__V::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CAG__Info__V::fld_names[] = { "plmn", "spareBits", "cagOnly", "listOfCAGIds" }; +const char* CAG__Info__V::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CAG__Info__V::optional_indexes[] = { 3, -1 }; +const int* CAG__Info__V::get_optional_indexes() const { return optional_indexes; } + +const int CAG__Info__V::optional_indexes_asn[] = { 3, -1 }; +const int* CAG__Info__V::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CAG__Info__V_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new CAG__Info__V_listOfCAGIds_template(ANY_OR_OMIT) : new CAG__Info__V_listOfCAGIds_template; +} +} + +CAG__Info__V_template::CAG__Info__V_template(CAG__Info__V_template* p_precondition, CAG__Info__V_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CAG__Info__V_template::CAG__Info__V_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CAG__Info__V_template::~CAG__Info__V_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CAG__Info__V_template::match_dynamic(const Base_Type* match_value) const +{ +const CAG__Info__V* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CAG__Info__V_template& CAG__Info__V_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CAG__Info__V_template& CAG__Info__V_template::operator=(const CAG__Info__V& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CAG__Info__V_template& CAG__Info__V_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CAG__Info__V_template& CAG__Info__V_template::operator=(const CAG__Info__V_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CAG__Info__V CAG__Info__V_template::valueof() const +{ +CAG__Info__V ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& CAG__Info__V_template::plmn() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& CAG__Info__V_template::plmn() const { return *(static_cast(get_at(0))); } +BITSTRING_template& CAG__Info__V_template::spareBits() { return *(static_cast(get_at(1))); } +const BITSTRING_template& CAG__Info__V_template::spareBits() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CAG__Info__V_template::cagOnly() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CAG__Info__V_template::cagOnly() const { return *(static_cast(get_at(2))); } +CAG__Info__V_listOfCAGIds_template& CAG__Info__V_template::listOfCAGIds() { return *(static_cast(get_at(3))); } +const CAG__Info__V_listOfCAGIds_template& CAG__Info__V_template::listOfCAGIds() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* CAG__Info__V_template::get_descriptor() const { return &CAG__Info__V_descr_; } +const char* CAG__Info__V_template::fld_name(int p_index) const { return CAG__Info__V::fld_names[p_index]; } +void CAG__Info::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_cagValue; } + +CAG__Info::CAG__Info() : Record_Type() { init_vec(); } + +CAG__Info::CAG__Info(const CAG__Info& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_cagValue.is_bound() ) + field_cagValue = other_value.field_cagValue; +init_vec(); +} + +CAG__Info::CAG__Info(const OCTETSTRING& par_iel, + const CAG__Info__V& par_cagValue) : field_iel(par_iel), + field_cagValue(par_cagValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CAG__Info::get_descriptor() const { return &CAG__Info_descr_; } +const TTCN_Typedescriptor_t* CAG__Info::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CAG__Info__V_descr_ }; +const TTCN_Typedescriptor_t* CAG__Info::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CAG__Info::fld_names[] = { "iel", "cagValue" }; +const char* CAG__Info::fld_name(int p_index) const { return fld_names[p_index]; } + +void CAG__Info_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new CAG__Info__V_template(ANY_VALUE) : new CAG__Info__V_template; +} +} + +CAG__Info_template::CAG__Info_template(CAG__Info_template* p_precondition, CAG__Info_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CAG__Info_template::CAG__Info_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CAG__Info_template::~CAG__Info_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CAG__Info_template::match_dynamic(const Base_Type* match_value) const +{ +const CAG__Info* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CAG__Info_template& CAG__Info_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CAG__Info_template& CAG__Info_template::operator=(const CAG__Info& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CAG__Info_template& CAG__Info_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CAG__Info_template& CAG__Info_template::operator=(const CAG__Info_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CAG__Info CAG__Info_template::valueof() const +{ +CAG__Info ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& CAG__Info_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& CAG__Info_template::iel() const { return *(static_cast(get_at(0))); } +CAG__Info__V_template& CAG__Info_template::cagValue() { return *(static_cast(get_at(1))); } +const CAG__Info__V_template& CAG__Info_template::cagValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* CAG__Info_template::get_descriptor() const { return &CAG__Info_descr_; } +const char* CAG__Info_template::fld_name(int p_index) const { return CAG__Info::fld_names[p_index]; } +void TruncatedS__TMSIConfig::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_amfSetId; fld_vec[3]=&field_amfPointer; } + +TruncatedS__TMSIConfig::TruncatedS__TMSIConfig() : Record_Type() { init_vec(); } + +TruncatedS__TMSIConfig::TruncatedS__TMSIConfig(const TruncatedS__TMSIConfig& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_amfSetId.is_bound() ) + field_amfSetId = other_value.field_amfSetId; +if (other_value.field_amfPointer.is_bound() ) + field_amfPointer = other_value.field_amfPointer; +init_vec(); +} + +TruncatedS__TMSIConfig::TruncatedS__TMSIConfig(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_amfSetId, + const BITSTRING& par_amfPointer) : field_iei(par_iei), + field_iel(par_iel), + field_amfSetId(par_amfSetId), + field_amfPointer(par_amfPointer) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TruncatedS__TMSIConfig::get_descriptor() const { return &TruncatedS__TMSIConfig_descr_; } +const TTCN_Typedescriptor_t* TruncatedS__TMSIConfig::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* TruncatedS__TMSIConfig::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TruncatedS__TMSIConfig::fld_names[] = { "iei", "iel", "amfSetId", "amfPointer" }; +const char* TruncatedS__TMSIConfig::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TruncatedS__TMSIConfig::optional_indexes[] = { 0, 1, -1 }; +const int* TruncatedS__TMSIConfig::get_optional_indexes() const { return optional_indexes; } + +const int TruncatedS__TMSIConfig::optional_indexes_asn[] = { 0, 1, -1 }; +const int* TruncatedS__TMSIConfig::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TruncatedS__TMSIConfig_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +TruncatedS__TMSIConfig_template::TruncatedS__TMSIConfig_template(TruncatedS__TMSIConfig_template* p_precondition, TruncatedS__TMSIConfig_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TruncatedS__TMSIConfig_template::TruncatedS__TMSIConfig_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TruncatedS__TMSIConfig_template::~TruncatedS__TMSIConfig_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TruncatedS__TMSIConfig_template::match_dynamic(const Base_Type* match_value) const +{ +const TruncatedS__TMSIConfig* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TruncatedS__TMSIConfig_template& TruncatedS__TMSIConfig_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TruncatedS__TMSIConfig_template& TruncatedS__TMSIConfig_template::operator=(const TruncatedS__TMSIConfig& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TruncatedS__TMSIConfig_template& TruncatedS__TMSIConfig_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TruncatedS__TMSIConfig_template& TruncatedS__TMSIConfig_template::operator=(const TruncatedS__TMSIConfig_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TruncatedS__TMSIConfig TruncatedS__TMSIConfig_template::valueof() const +{ +TruncatedS__TMSIConfig ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& TruncatedS__TMSIConfig_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& TruncatedS__TMSIConfig_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& TruncatedS__TMSIConfig_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& TruncatedS__TMSIConfig_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& TruncatedS__TMSIConfig_template::amfSetId() { return *(static_cast(get_at(2))); } +const BITSTRING_template& TruncatedS__TMSIConfig_template::amfSetId() const { return *(static_cast(get_at(2))); } +BITSTRING_template& TruncatedS__TMSIConfig_template::amfPointer() { return *(static_cast(get_at(3))); } +const BITSTRING_template& TruncatedS__TMSIConfig_template::amfPointer() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* TruncatedS__TMSIConfig_template::get_descriptor() const { return &TruncatedS__TMSIConfig_descr_; } +const char* TruncatedS__TMSIConfig_template::fld_name(int p_index) const { return TruncatedS__TMSIConfig::fld_names[p_index]; } + +const PartialXtdRejectedNSSAI PartialXtdRejectedNSSAI__List::UNBOUND_ELEM; +PartialXtdRejectedNSSAI& PartialXtdRejectedNSSAI__List::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PartialXtdRejectedNSSAI& PartialXtdRejectedNSSAI__List::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PartialXtdRejectedNSSAI& PartialXtdRejectedNSSAI__List::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PartialXtdRejectedNSSAI& PartialXtdRejectedNSSAI__List::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::operator<<=(const INTEGER& rotate_count) const +{ +PartialXtdRejectedNSSAI__List rec_of; +return *((PartialXtdRejectedNSSAI__List*)rotl(rotate_count, &rec_of)); +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::operator>>=(const INTEGER& rotate_count) const +{ +PartialXtdRejectedNSSAI__List rec_of; +return *((PartialXtdRejectedNSSAI__List*)rotr(rotate_count, &rec_of)); +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::operator>>=(int rotate_count) const +{ +PartialXtdRejectedNSSAI__List rec_of; +return *((PartialXtdRejectedNSSAI__List*)rotr(rotate_count, &rec_of)); +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::operator+(const PartialXtdRejectedNSSAI__List& other_value) const +{ +PartialXtdRejectedNSSAI__List rec_of; +return *((PartialXtdRejectedNSSAI__List*)concat(&other_value, &rec_of)); +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const PartialXtdRejectedNSSAI__List&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI_List concatenation."); +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::operator+(null_type) const +{ +return *this; +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::substr(int index, int returncount) const +{ +PartialXtdRejectedNSSAI__List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::replace(int index, int len, const PartialXtdRejectedNSSAI__List& repl) const +{ +PartialXtdRejectedNSSAI__List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List::replace(int index, int len, const PartialXtdRejectedNSSAI__List_template& repl) const +{ +PartialXtdRejectedNSSAI__List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* PartialXtdRejectedNSSAI__List::create_elem() const { return new PartialXtdRejectedNSSAI; } +const Base_Type* PartialXtdRejectedNSSAI__List::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAI__List::get_descriptor() const { return &PartialXtdRejectedNSSAI__List_descr_; } +PartialXtdRejectedNSSAI__List_template::PartialXtdRejectedNSSAI__List_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +PartialXtdRejectedNSSAI__List_template::PartialXtdRejectedNSSAI__List_template(PartialXtdRejectedNSSAI__List_template* p_precondition, PartialXtdRejectedNSSAI__List_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PartialXtdRejectedNSSAI__List_template::PartialXtdRejectedNSSAI__List_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PartialXtdRejectedNSSAI__List_template::~PartialXtdRejectedNSSAI__List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PartialXtdRejectedNSSAI__List_template::match_dynamic(const Base_Type* match_value) const +{ +const PartialXtdRejectedNSSAI__List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +PartialXtdRejectedNSSAI__List_template& PartialXtdRejectedNSSAI__List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PartialXtdRejectedNSSAI__List_template& PartialXtdRejectedNSSAI__List_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +PartialXtdRejectedNSSAI__List_template& PartialXtdRejectedNSSAI__List_template::operator=(const PartialXtdRejectedNSSAI__List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PartialXtdRejectedNSSAI__List_template& PartialXtdRejectedNSSAI__List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PartialXtdRejectedNSSAI__List_template& PartialXtdRejectedNSSAI__List_template::operator=(const PartialXtdRejectedNSSAI__List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PartialXtdRejectedNSSAI__List_template PartialXtdRejectedNSSAI__List_template::operator+(const PartialXtdRejectedNSSAI__List_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return PartialXtdRejectedNSSAI__List_template(ANY_VALUE); +} +PartialXtdRejectedNSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PartialXtdRejectedNSSAI__List_template PartialXtdRejectedNSSAI__List_template::operator+(const PartialXtdRejectedNSSAI__List& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +PartialXtdRejectedNSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PartialXtdRejectedNSSAI__List_template PartialXtdRejectedNSSAI__List_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return PartialXtdRejectedNSSAI__List_template(ANY_VALUE); +} +PartialXtdRejectedNSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +PartialXtdRejectedNSSAI__List_template PartialXtdRejectedNSSAI__List_template::operator+(null_type) const +{ +return *this; +} + +PartialXtdRejectedNSSAI_template& PartialXtdRejectedNSSAI__List_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +PartialXtdRejectedNSSAI_template& PartialXtdRejectedNSSAI__List_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const PartialXtdRejectedNSSAI_template& PartialXtdRejectedNSSAI__List_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const PartialXtdRejectedNSSAI_template& PartialXtdRejectedNSSAI__List_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List_template::valueof() const +{ +PartialXtdRejectedNSSAI__List ret_val; +valueofv(&ret_val); +return ret_val; +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List_template::substr(int index, int returncount) const +{ +PartialXtdRejectedNSSAI__List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List_template::replace(int index, int len, const PartialXtdRejectedNSSAI__List_template& repl) const +{ +PartialXtdRejectedNSSAI__List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PartialXtdRejectedNSSAI__List PartialXtdRejectedNSSAI__List_template::replace(int index, int len, const PartialXtdRejectedNSSAI__List& repl) const +{ +PartialXtdRejectedNSSAI__List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* PartialXtdRejectedNSSAI__List_template::create_elem() const { return new PartialXtdRejectedNSSAI_template; } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAI__List_template::get_descriptor() const { return &PartialXtdRejectedNSSAI__List_descr_; } +void PartialXtdRejectedNSSAI::copy_value(const PartialXtdRejectedNSSAI& other_value) +{ +switch (other_value.union_selection) { +case ALT_type0: +field_type0 = new PartialXtdRejectedNSSAIType0(*other_value.field_type0); +break; +case ALT_type1: +field_type1 = new PartialXtdRejectedNSSAIType1(*other_value.field_type1); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +PartialXtdRejectedNSSAI::PartialXtdRejectedNSSAI(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +PartialXtdRejectedNSSAI::PartialXtdRejectedNSSAI(const PartialXtdRejectedNSSAI& other_value) +: Base_Type(){ +copy_value(other_value); +} + +PartialXtdRejectedNSSAI::~PartialXtdRejectedNSSAI() +{ +clean_up(); +} + +PartialXtdRejectedNSSAI& PartialXtdRejectedNSSAI::operator=(const PartialXtdRejectedNSSAI& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean PartialXtdRejectedNSSAI::operator==(const PartialXtdRejectedNSSAI& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_type0: +return *field_type0 == *other_value.field_type0; +case ALT_type1: +return *field_type1 == *other_value.field_type1; +default: +return FALSE; +} +} + +PartialXtdRejectedNSSAIType0& PartialXtdRejectedNSSAI::type0() +{ +if (union_selection != ALT_type0) { +clean_up(); +field_type0 = new PartialXtdRejectedNSSAIType0; +union_selection = ALT_type0; +} +return *field_type0; +} + +const PartialXtdRejectedNSSAIType0& PartialXtdRejectedNSSAI::type0() const +{ +if (union_selection != ALT_type0) TTCN_error("Using non-selected field type0 in a value of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +return *field_type0; +} + +PartialXtdRejectedNSSAIType1& PartialXtdRejectedNSSAI::type1() +{ +if (union_selection != ALT_type1) { +clean_up(); +field_type1 = new PartialXtdRejectedNSSAIType1; +union_selection = ALT_type1; +} +return *field_type1; +} + +const PartialXtdRejectedNSSAIType1& PartialXtdRejectedNSSAI::type1() const +{ +if (union_selection != ALT_type1) TTCN_error("Using non-selected field type1 in a value of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +return *field_type1; +} + +boolean PartialXtdRejectedNSSAI::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +return union_selection == checked_selection; +} + +boolean PartialXtdRejectedNSSAI::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean PartialXtdRejectedNSSAI::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_type0: return field_type0->is_value(); +case ALT_type1: return field_type1->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void PartialXtdRejectedNSSAI::clean_up() +{ +switch (union_selection) { +case ALT_type0: + delete field_type0; + break; +case ALT_type1: + delete field_type1; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean PartialXtdRejectedNSSAI::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void PartialXtdRejectedNSSAI::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* PartialXtdRejectedNSSAI::clone() const { return new PartialXtdRejectedNSSAI(*this); } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAI::get_descriptor() const { return &PartialXtdRejectedNSSAI_descr_; } +void PartialXtdRejectedNSSAI::log() const +{ +switch (union_selection) { +case ALT_type0: +TTCN_Logger::log_event_str("{ type0 := "); +field_type0->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_type1: +TTCN_Logger::log_event_str("{ type1 := "); +field_type1->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void PartialXtdRejectedNSSAI::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI'"); + } + if (strcmp("type0", param_field) == 0) { + type0().set_param(param); + return; + } else if (strcmp("type1", param_field) == 0) { + type1().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "type0")) { + type0().set_param(*mp_last); + if (!type0().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "type1")) { + type1().set_param(*mp_last); + if (!type1().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI.", last_name); +} + +Module_Param* PartialXtdRejectedNSSAI::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI'"); + } + if (strcmp("type0", param_field) == 0) { + return type0().get_param(param_name); + } else if (strcmp("type1", param_field) == 0) { + return type1().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `PartialXtdRejectedNSSAI'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_type0: + mp_field = field_type0->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type0"))); + break; + case ALT_type1: + mp_field = field_type1->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type1"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void PartialXtdRejectedNSSAI::set_implicit_omit() +{ +switch (union_selection) { +case ALT_type0: +field_type0->set_implicit_omit(); break; +case ALT_type1: +field_type1->set_implicit_omit(); break; +default: break; +} +} + +void PartialXtdRejectedNSSAI::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_type0: +field_type0->encode_text(text_buf); +break; +case ALT_type1: +field_type1->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +} + +void PartialXtdRejectedNSSAI::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_type0: +type0().decode_text(text_buf); +break; +case ALT_type1: +type1().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +} + +void PartialXtdRejectedNSSAI_template::copy_value(const PartialXtdRejectedNSSAI& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +single_value.field_type0 = new PartialXtdRejectedNSSAIType0_template(other_value.type0()); +break; +case PartialXtdRejectedNSSAI::ALT_type1: +single_value.field_type1 = new PartialXtdRejectedNSSAIType1_template(other_value.type1()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void PartialXtdRejectedNSSAI_template::copy_template(const PartialXtdRejectedNSSAI_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +single_value.field_type0 = new PartialXtdRejectedNSSAIType0_template(*other_value.single_value.field_type0); +break; +case PartialXtdRejectedNSSAI::ALT_type1: +single_value.field_type1 = new PartialXtdRejectedNSSAIType1_template(*other_value.single_value.field_type1); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new PartialXtdRejectedNSSAI_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new PartialXtdRejectedNSSAI_template(*other_value.implication_.precondition); +implication_.implied_template = new PartialXtdRejectedNSSAI_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +PartialXtdRejectedNSSAI_template::PartialXtdRejectedNSSAI_template(): err_descr(NULL) +{ +} + +PartialXtdRejectedNSSAI_template::PartialXtdRejectedNSSAI_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +PartialXtdRejectedNSSAI_template::PartialXtdRejectedNSSAI_template(const PartialXtdRejectedNSSAI& other_value) +{ +copy_value(other_value); +} + +PartialXtdRejectedNSSAI_template::PartialXtdRejectedNSSAI_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const PartialXtdRejectedNSSAI&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI from an unbound optional field."); +} +} + +PartialXtdRejectedNSSAI_template::PartialXtdRejectedNSSAI_template(PartialXtdRejectedNSSAI_template* p_precondition, PartialXtdRejectedNSSAI_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +PartialXtdRejectedNSSAI_template::PartialXtdRejectedNSSAI_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +PartialXtdRejectedNSSAI_template::PartialXtdRejectedNSSAI_template(const PartialXtdRejectedNSSAI_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +PartialXtdRejectedNSSAI_template::~PartialXtdRejectedNSSAI_template() +{ +clean_up(); +} + +void PartialXtdRejectedNSSAI_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +delete single_value.field_type0; +break; +case PartialXtdRejectedNSSAI::ALT_type1: +delete single_value.field_type1; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +PartialXtdRejectedNSSAI_template& PartialXtdRejectedNSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +PartialXtdRejectedNSSAI_template& PartialXtdRejectedNSSAI_template::operator=(const PartialXtdRejectedNSSAI& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +PartialXtdRejectedNSSAI_template& PartialXtdRejectedNSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const PartialXtdRejectedNSSAI&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +return *this; +} + +PartialXtdRejectedNSSAI_template& PartialXtdRejectedNSSAI_template::operator=(const PartialXtdRejectedNSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean PartialXtdRejectedNSSAI_template::match(const PartialXtdRejectedNSSAI& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +PartialXtdRejectedNSSAI::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == PartialXtdRejectedNSSAI::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +return single_value.field_type0->match(other_value.type0(), legacy); +case PartialXtdRejectedNSSAI::ALT_type1: +return single_value.field_type1->match(other_value.type1(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +return FALSE; +} + +boolean PartialXtdRejectedNSSAI_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +return single_value.field_type0->is_value(); +case PartialXtdRejectedNSSAI::ALT_type1: +return single_value.field_type1->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +} + +PartialXtdRejectedNSSAI PartialXtdRejectedNSSAI_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +PartialXtdRejectedNSSAI ret_val; +switch (single_value.union_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +ret_val.type0() = single_value.field_type0->valueof(); +break; +case PartialXtdRejectedNSSAI::ALT_type1: +ret_val.type1() = single_value.field_type1->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +PartialXtdRejectedNSSAI_template& PartialXtdRejectedNSSAI_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +return value_list.list_value[list_index]; +} +void PartialXtdRejectedNSSAI_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new PartialXtdRejectedNSSAI_template[list_length]; +} + +PartialXtdRejectedNSSAI::union_selection_type PartialXtdRejectedNSSAI_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI"); +return single_value.union_selection; +} + +PartialXtdRejectedNSSAIType0_template& PartialXtdRejectedNSSAI_template::type0() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PartialXtdRejectedNSSAI::ALT_type0) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_type0 = new PartialXtdRejectedNSSAIType0_template(ANY_VALUE); +else single_value.field_type0 = new PartialXtdRejectedNSSAIType0_template; +single_value.union_selection = PartialXtdRejectedNSSAI::ALT_type0; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_type0; +} + +const PartialXtdRejectedNSSAIType0_template& PartialXtdRejectedNSSAI_template::type0() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field type0 in a non-specific template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +if (single_value.union_selection != PartialXtdRejectedNSSAI::ALT_type0) TTCN_error("Accessing non-selected field type0 in a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +return *single_value.field_type0; +} + +PartialXtdRejectedNSSAIType1_template& PartialXtdRejectedNSSAI_template::type1() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != PartialXtdRejectedNSSAI::ALT_type1) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_type1 = new PartialXtdRejectedNSSAIType1_template(ANY_VALUE); +else single_value.field_type1 = new PartialXtdRejectedNSSAIType1_template; +single_value.union_selection = PartialXtdRejectedNSSAI::ALT_type1; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_type1; +} + +const PartialXtdRejectedNSSAIType1_template& PartialXtdRejectedNSSAI_template::type1() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field type1 in a non-specific template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +if (single_value.union_selection != PartialXtdRejectedNSSAI::ALT_type1) TTCN_error("Accessing non-selected field type1 in a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +return *single_value.field_type1; +} + +boolean PartialXtdRejectedNSSAI_template::ischosen(PartialXtdRejectedNSSAI::union_selection_type checked_selection) const +{ +if (checked_selection == PartialXtdRejectedNSSAI::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == PartialXtdRejectedNSSAI::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void PartialXtdRejectedNSSAI_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void PartialXtdRejectedNSSAI_template::set_value(template_sel other_value) { *this = other_value; } +void PartialXtdRejectedNSSAI_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* PartialXtdRejectedNSSAI_template::clone() const { return new PartialXtdRejectedNSSAI_template(*this); } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAI_template::get_descriptor() const { return &PartialXtdRejectedNSSAI_descr_; } +boolean PartialXtdRejectedNSSAI_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void PartialXtdRejectedNSSAI_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void PartialXtdRejectedNSSAI_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +TTCN_Logger::log_event_str("{ type0 := "); +single_value.field_type0->log(); +TTCN_Logger::log_event_str(" }"); +break; +case PartialXtdRejectedNSSAI::ALT_type1: +TTCN_Logger::log_event_str("{ type1 := "); +single_value.field_type1->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void PartialXtdRejectedNSSAI_template::log_match(const PartialXtdRejectedNSSAI& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".type0"); +single_value.field_type0->log_match(match_value.type0(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ type0 := "); +single_value.field_type0->log_match(match_value.type0(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case PartialXtdRejectedNSSAI::ALT_type1: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".type1"); +single_value.field_type1->log_match(match_value.type1(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ type1 := "); +single_value.field_type1->log_match(match_value.type1(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void PartialXtdRejectedNSSAI_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +single_value.field_type0->encode_text(text_buf); +break; +case PartialXtdRejectedNSSAI::ALT_type1: +single_value.field_type1->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +} + +void PartialXtdRejectedNSSAI_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = PartialXtdRejectedNSSAI::UNBOUND_VALUE; +PartialXtdRejectedNSSAI::union_selection_type new_selection = (PartialXtdRejectedNSSAI::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +single_value.field_type0 = new PartialXtdRejectedNSSAIType0_template; +single_value.field_type0->decode_text(text_buf); +break; +case PartialXtdRejectedNSSAI::ALT_type1: +single_value.field_type1 = new PartialXtdRejectedNSSAIType1_template; +single_value.field_type1->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new PartialXtdRejectedNSSAI_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +} + +boolean PartialXtdRejectedNSSAI_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean PartialXtdRejectedNSSAI_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI'"); + } + if (strcmp("type0", param_field) == 0) { + type0().set_param(param); + return; + } else if (strcmp("type1", param_field) == 0) { + type1().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + PartialXtdRejectedNSSAI_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "type0")) { + type0().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "type1")) { + type1().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + PartialXtdRejectedNSSAI_template* precondition = new PartialXtdRejectedNSSAI_template; + precondition->set_param(*m_p->get_elem(0)); + PartialXtdRejectedNSSAI_template* implied_template = new PartialXtdRejectedNSSAI_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = PartialXtdRejectedNSSAI_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* PartialXtdRejectedNSSAI_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI'"); + } + if (strcmp("type0", param_field) == 0) { + return type0().get_param(param_name); + } else if (strcmp("type1", param_field) == 0) { + return type1().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `PartialXtdRejectedNSSAI'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case PartialXtdRejectedNSSAI::ALT_type0: + mp_field = single_value.field_type0->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type0"))); + break; + case PartialXtdRejectedNSSAI::ALT_type1: + mp_field = single_value.field_type1->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("type1"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void PartialXtdRejectedNSSAI_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case PartialXtdRejectedNSSAI::ALT_type0: +single_value.field_type0->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI"); +return; +case PartialXtdRejectedNSSAI::ALT_type1: +single_value.field_type1->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NG_NAS_TypeDefs.PartialXtdRejectedNSSAI."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NG_NAS_TypeDefs.PartialXtdRejectedNSSAI"); +} + + +const XtdRejectedS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::UNBOUND_ELEM; +XtdRejectedS__NSSAI& PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +XtdRejectedS__NSSAI& PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const XtdRejectedS__NSSAI& PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const XtdRejectedS__NSSAI& PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator<<=(const INTEGER& rotate_count) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +return *((PartialXtdRejectedNSSAIType0_rejectS__NSSAI*)rotl(rotate_count, &rec_of)); +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator>>=(const INTEGER& rotate_count) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +return *((PartialXtdRejectedNSSAIType0_rejectS__NSSAI*)rotr(rotate_count, &rec_of)); +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator>>=(int rotate_count) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +return *((PartialXtdRejectedNSSAIType0_rejectS__NSSAI*)rotr(rotate_count, &rec_of)); +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +return *((PartialXtdRejectedNSSAIType0_rejectS__NSSAI*)concat(&other_value, &rec_of)); +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const PartialXtdRejectedNSSAIType0_rejectS__NSSAI&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0.rejectS_NSSAI concatenation."); +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::operator+(null_type) const +{ +return *this; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::substr(int index, int returncount) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::replace(int index, int len, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& repl) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI::replace(int index, int len, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& repl) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* PartialXtdRejectedNSSAIType0_rejectS__NSSAI::create_elem() const { return new XtdRejectedS__NSSAI; } +const Base_Type* PartialXtdRejectedNSSAIType0_rejectS__NSSAI::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType0_rejectS__NSSAI::get_descriptor() const { return &PartialXtdRejectedNSSAIType0_rejectS__NSSAI_descr_; } +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template* p_precondition, PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::~PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const PartialXtdRejectedNSSAIType0_rejectS__NSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator=(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator=(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(ANY_VALUE); +} +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(ANY_VALUE); +} +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator+(null_type) const +{ +return *this; +} + +XtdRejectedS__NSSAI_template& PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +XtdRejectedS__NSSAI_template& PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const XtdRejectedS__NSSAI_template& PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const XtdRejectedS__NSSAI_template& PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::valueof() const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::substr(int index, int returncount) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::replace(int index, int len, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& repl) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::replace(int index, int len, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& repl) const +{ +PartialXtdRejectedNSSAIType0_rejectS__NSSAI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::create_elem() const { return new XtdRejectedS__NSSAI_template; } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::get_descriptor() const { return &PartialXtdRejectedNSSAIType0_rejectS__NSSAI_descr_; } +void XtdRejectedS__NSSAI::init_vec() { fld_vec[0]=&field_len; fld_vec[1]=&field_causeValue; fld_vec[2]=&field_snssai; } + +XtdRejectedS__NSSAI::XtdRejectedS__NSSAI() : Record_Type() { init_vec(); } + +XtdRejectedS__NSSAI::XtdRejectedS__NSSAI(const XtdRejectedS__NSSAI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_causeValue.is_bound() ) + field_causeValue = other_value.field_causeValue; +if (other_value.field_snssai.is_bound() ) + field_snssai = other_value.field_snssai; +init_vec(); +} + +XtdRejectedS__NSSAI::XtdRejectedS__NSSAI(const BITSTRING& par_len, + const BITSTRING& par_causeValue, + const S__NSSAI__V& par_snssai) : field_len(par_len), + field_causeValue(par_causeValue), + field_snssai(par_snssai) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* XtdRejectedS__NSSAI::get_descriptor() const { return &XtdRejectedS__NSSAI_descr_; } +const TTCN_Typedescriptor_t* XtdRejectedS__NSSAI::fld_descriptors[] = { &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &S__NSSAI__V_descr_ }; +const TTCN_Typedescriptor_t* XtdRejectedS__NSSAI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* XtdRejectedS__NSSAI::fld_names[] = { "len", "causeValue", "snssai" }; +const char* XtdRejectedS__NSSAI::fld_name(int p_index) const { return fld_names[p_index]; } + +void XtdRejectedS__NSSAI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new S__NSSAI__V_template(ANY_VALUE) : new S__NSSAI__V_template; +} +} + +XtdRejectedS__NSSAI_template::XtdRejectedS__NSSAI_template(XtdRejectedS__NSSAI_template* p_precondition, XtdRejectedS__NSSAI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +XtdRejectedS__NSSAI_template::XtdRejectedS__NSSAI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +XtdRejectedS__NSSAI_template::~XtdRejectedS__NSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean XtdRejectedS__NSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const XtdRejectedS__NSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +XtdRejectedS__NSSAI_template& XtdRejectedS__NSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +XtdRejectedS__NSSAI_template& XtdRejectedS__NSSAI_template::operator=(const XtdRejectedS__NSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +XtdRejectedS__NSSAI_template& XtdRejectedS__NSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +XtdRejectedS__NSSAI_template& XtdRejectedS__NSSAI_template::operator=(const XtdRejectedS__NSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +XtdRejectedS__NSSAI XtdRejectedS__NSSAI_template::valueof() const +{ +XtdRejectedS__NSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& XtdRejectedS__NSSAI_template::len() { return *(static_cast(get_at(0))); } +const BITSTRING_template& XtdRejectedS__NSSAI_template::len() const { return *(static_cast(get_at(0))); } +BITSTRING_template& XtdRejectedS__NSSAI_template::causeValue() { return *(static_cast(get_at(1))); } +const BITSTRING_template& XtdRejectedS__NSSAI_template::causeValue() const { return *(static_cast(get_at(1))); } +S__NSSAI__V_template& XtdRejectedS__NSSAI_template::snssai() { return *(static_cast(get_at(2))); } +const S__NSSAI__V_template& XtdRejectedS__NSSAI_template::snssai() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* XtdRejectedS__NSSAI_template::get_descriptor() const { return &XtdRejectedS__NSSAI_descr_; } +const char* XtdRejectedS__NSSAI_template::fld_name(int p_index) const { return XtdRejectedS__NSSAI::fld_names[p_index]; } +void PartialXtdRejectedNSSAIType0::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_typeOfList; fld_vec[2]=&field_numOfElements; fld_vec[3]=&field_rejectS__NSSAI; } + +PartialXtdRejectedNSSAIType0::PartialXtdRejectedNSSAIType0() : Record_Type() { init_vec(); } + +PartialXtdRejectedNSSAIType0::PartialXtdRejectedNSSAIType0(const PartialXtdRejectedNSSAIType0& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_typeOfList.is_bound() ) + field_typeOfList = other_value.field_typeOfList; +if (other_value.field_numOfElements.is_bound() ) + field_numOfElements = other_value.field_numOfElements; +if (other_value.field_rejectS__NSSAI.is_bound() ) + field_rejectS__NSSAI = other_value.field_rejectS__NSSAI; +init_vec(); +} + +PartialXtdRejectedNSSAIType0::PartialXtdRejectedNSSAIType0(const BITSTRING& par_spare, + const BITSTRING& par_typeOfList, + const BITSTRING& par_numOfElements, + const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& par_rejectS__NSSAI) : field_spare(par_spare), + field_typeOfList(par_typeOfList), + field_numOfElements(par_numOfElements), + field_rejectS__NSSAI(par_rejectS__NSSAI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType0::get_descriptor() const { return &PartialXtdRejectedNSSAIType0_descr_; } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType0::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &PartialXtdRejectedNSSAIType0_typeOfList_descr_, &CommonDefs::B4__Type_descr_, &PartialXtdRejectedNSSAIType0_rejectS__NSSAI_descr_ }; +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType0::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PartialXtdRejectedNSSAIType0::fld_names[] = { "spare", "typeOfList", "numOfElements", "rejectS_NSSAI" }; +const char* PartialXtdRejectedNSSAIType0::fld_name(int p_index) const { return fld_names[p_index]; } + +void PartialXtdRejectedNSSAIType0_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(ANY_VALUE) : new PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template; +} +} + +PartialXtdRejectedNSSAIType0_template::PartialXtdRejectedNSSAIType0_template(PartialXtdRejectedNSSAIType0_template* p_precondition, PartialXtdRejectedNSSAIType0_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PartialXtdRejectedNSSAIType0_template::PartialXtdRejectedNSSAIType0_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PartialXtdRejectedNSSAIType0_template::~PartialXtdRejectedNSSAIType0_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PartialXtdRejectedNSSAIType0_template::match_dynamic(const Base_Type* match_value) const +{ +const PartialXtdRejectedNSSAIType0* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PartialXtdRejectedNSSAIType0_template& PartialXtdRejectedNSSAIType0_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PartialXtdRejectedNSSAIType0_template& PartialXtdRejectedNSSAIType0_template::operator=(const PartialXtdRejectedNSSAIType0& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PartialXtdRejectedNSSAIType0_template& PartialXtdRejectedNSSAIType0_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PartialXtdRejectedNSSAIType0_template& PartialXtdRejectedNSSAIType0_template::operator=(const PartialXtdRejectedNSSAIType0_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PartialXtdRejectedNSSAIType0 PartialXtdRejectedNSSAIType0_template::valueof() const +{ +PartialXtdRejectedNSSAIType0 ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& PartialXtdRejectedNSSAIType0_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& PartialXtdRejectedNSSAIType0_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PartialXtdRejectedNSSAIType0_template::typeOfList() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PartialXtdRejectedNSSAIType0_template::typeOfList() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PartialXtdRejectedNSSAIType0_template::numOfElements() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PartialXtdRejectedNSSAIType0_template::numOfElements() const { return *(static_cast(get_at(2))); } +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& PartialXtdRejectedNSSAIType0_template::rejectS__NSSAI() { return *(static_cast(get_at(3))); } +const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& PartialXtdRejectedNSSAIType0_template::rejectS__NSSAI() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType0_template::get_descriptor() const { return &PartialXtdRejectedNSSAIType0_descr_; } +const char* PartialXtdRejectedNSSAIType0_template::fld_name(int p_index) const { return PartialXtdRejectedNSSAIType0::fld_names[p_index]; } + +const XtdRejectedS__NSSAI XtdRejectedS__NSSAI__List::UNBOUND_ELEM; +XtdRejectedS__NSSAI& XtdRejectedS__NSSAI__List::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +XtdRejectedS__NSSAI& XtdRejectedS__NSSAI__List::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const XtdRejectedS__NSSAI& XtdRejectedS__NSSAI__List::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const XtdRejectedS__NSSAI& XtdRejectedS__NSSAI__List::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::operator<<=(const INTEGER& rotate_count) const +{ +XtdRejectedS__NSSAI__List rec_of; +return *((XtdRejectedS__NSSAI__List*)rotl(rotate_count, &rec_of)); +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::operator>>=(const INTEGER& rotate_count) const +{ +XtdRejectedS__NSSAI__List rec_of; +return *((XtdRejectedS__NSSAI__List*)rotr(rotate_count, &rec_of)); +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::operator>>=(int rotate_count) const +{ +XtdRejectedS__NSSAI__List rec_of; +return *((XtdRejectedS__NSSAI__List*)rotr(rotate_count, &rec_of)); +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::operator+(const XtdRejectedS__NSSAI__List& other_value) const +{ +XtdRejectedS__NSSAI__List rec_of; +return *((XtdRejectedS__NSSAI__List*)concat(&other_value, &rec_of)); +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const XtdRejectedS__NSSAI__List&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.XtdRejectedS_NSSAI_List concatenation."); +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::operator+(null_type) const +{ +return *this; +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::substr(int index, int returncount) const +{ +XtdRejectedS__NSSAI__List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::replace(int index, int len, const XtdRejectedS__NSSAI__List& repl) const +{ +XtdRejectedS__NSSAI__List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List::replace(int index, int len, const XtdRejectedS__NSSAI__List_template& repl) const +{ +XtdRejectedS__NSSAI__List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* XtdRejectedS__NSSAI__List::create_elem() const { return new XtdRejectedS__NSSAI; } +const Base_Type* XtdRejectedS__NSSAI__List::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* XtdRejectedS__NSSAI__List::get_descriptor() const { return &XtdRejectedS__NSSAI__List_descr_; } +XtdRejectedS__NSSAI__List_template::XtdRejectedS__NSSAI__List_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +XtdRejectedS__NSSAI__List_template::XtdRejectedS__NSSAI__List_template(XtdRejectedS__NSSAI__List_template* p_precondition, XtdRejectedS__NSSAI__List_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +XtdRejectedS__NSSAI__List_template::XtdRejectedS__NSSAI__List_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +XtdRejectedS__NSSAI__List_template::~XtdRejectedS__NSSAI__List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean XtdRejectedS__NSSAI__List_template::match_dynamic(const Base_Type* match_value) const +{ +const XtdRejectedS__NSSAI__List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +XtdRejectedS__NSSAI__List_template& XtdRejectedS__NSSAI__List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +XtdRejectedS__NSSAI__List_template& XtdRejectedS__NSSAI__List_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +XtdRejectedS__NSSAI__List_template& XtdRejectedS__NSSAI__List_template::operator=(const XtdRejectedS__NSSAI__List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +XtdRejectedS__NSSAI__List_template& XtdRejectedS__NSSAI__List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +XtdRejectedS__NSSAI__List_template& XtdRejectedS__NSSAI__List_template::operator=(const XtdRejectedS__NSSAI__List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +XtdRejectedS__NSSAI__List_template XtdRejectedS__NSSAI__List_template::operator+(const XtdRejectedS__NSSAI__List_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return XtdRejectedS__NSSAI__List_template(ANY_VALUE); +} +XtdRejectedS__NSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +XtdRejectedS__NSSAI__List_template XtdRejectedS__NSSAI__List_template::operator+(const XtdRejectedS__NSSAI__List& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +XtdRejectedS__NSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +XtdRejectedS__NSSAI__List_template XtdRejectedS__NSSAI__List_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return XtdRejectedS__NSSAI__List_template(ANY_VALUE); +} +XtdRejectedS__NSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +XtdRejectedS__NSSAI__List_template XtdRejectedS__NSSAI__List_template::operator+(null_type) const +{ +return *this; +} + +XtdRejectedS__NSSAI_template& XtdRejectedS__NSSAI__List_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +XtdRejectedS__NSSAI_template& XtdRejectedS__NSSAI__List_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const XtdRejectedS__NSSAI_template& XtdRejectedS__NSSAI__List_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const XtdRejectedS__NSSAI_template& XtdRejectedS__NSSAI__List_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List_template::valueof() const +{ +XtdRejectedS__NSSAI__List ret_val; +valueofv(&ret_val); +return ret_val; +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List_template::substr(int index, int returncount) const +{ +XtdRejectedS__NSSAI__List rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List_template::replace(int index, int len, const XtdRejectedS__NSSAI__List_template& repl) const +{ +XtdRejectedS__NSSAI__List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +XtdRejectedS__NSSAI__List XtdRejectedS__NSSAI__List_template::replace(int index, int len, const XtdRejectedS__NSSAI__List& repl) const +{ +XtdRejectedS__NSSAI__List rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* XtdRejectedS__NSSAI__List_template::create_elem() const { return new XtdRejectedS__NSSAI_template; } +const TTCN_Typedescriptor_t* XtdRejectedS__NSSAI__List_template::get_descriptor() const { return &XtdRejectedS__NSSAI__List_descr_; } +void PartialXtdRejectedNSSAIType1::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_typeOfList; fld_vec[2]=&field_numOfElements; fld_vec[3]=&field_backOffTimerValue; fld_vec[4]=&field_rejectS__NSSAI; } + +PartialXtdRejectedNSSAIType1::PartialXtdRejectedNSSAIType1() : Record_Type() { init_vec(); } + +PartialXtdRejectedNSSAIType1::PartialXtdRejectedNSSAIType1(const PartialXtdRejectedNSSAIType1& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_typeOfList.is_bound() ) + field_typeOfList = other_value.field_typeOfList; +if (other_value.field_numOfElements.is_bound() ) + field_numOfElements = other_value.field_numOfElements; +if (other_value.field_backOffTimerValue.is_bound() ) + field_backOffTimerValue = other_value.field_backOffTimerValue; +if (other_value.field_rejectS__NSSAI.is_bound() ) + field_rejectS__NSSAI = other_value.field_rejectS__NSSAI; +init_vec(); +} + +PartialXtdRejectedNSSAIType1::PartialXtdRejectedNSSAIType1(const BITSTRING& par_spare, + const BITSTRING& par_typeOfList, + const BITSTRING& par_numOfElements, + const OCTETSTRING& par_backOffTimerValue, + const XtdRejectedS__NSSAI__List& par_rejectS__NSSAI) : field_spare(par_spare), + field_typeOfList(par_typeOfList), + field_numOfElements(par_numOfElements), + field_backOffTimerValue(par_backOffTimerValue), + field_rejectS__NSSAI(par_rejectS__NSSAI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType1::get_descriptor() const { return &PartialXtdRejectedNSSAIType1_descr_; } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType1::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &PartialXtdRejectedNSSAIType1_typeOfList_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::O1__Type_descr_, &XtdRejectedS__NSSAI__List_descr_ }; +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType1::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PartialXtdRejectedNSSAIType1::fld_names[] = { "spare", "typeOfList", "numOfElements", "backOffTimerValue", "rejectS_NSSAI" }; +const char* PartialXtdRejectedNSSAIType1::fld_name(int p_index) const { return fld_names[p_index]; } + +void PartialXtdRejectedNSSAIType1_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new XtdRejectedS__NSSAI__List_template(ANY_VALUE) : new XtdRejectedS__NSSAI__List_template; +} +} + +PartialXtdRejectedNSSAIType1_template::PartialXtdRejectedNSSAIType1_template(PartialXtdRejectedNSSAIType1_template* p_precondition, PartialXtdRejectedNSSAIType1_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PartialXtdRejectedNSSAIType1_template::PartialXtdRejectedNSSAIType1_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PartialXtdRejectedNSSAIType1_template::~PartialXtdRejectedNSSAIType1_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PartialXtdRejectedNSSAIType1_template::match_dynamic(const Base_Type* match_value) const +{ +const PartialXtdRejectedNSSAIType1* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PartialXtdRejectedNSSAIType1_template& PartialXtdRejectedNSSAIType1_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PartialXtdRejectedNSSAIType1_template& PartialXtdRejectedNSSAIType1_template::operator=(const PartialXtdRejectedNSSAIType1& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PartialXtdRejectedNSSAIType1_template& PartialXtdRejectedNSSAIType1_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PartialXtdRejectedNSSAIType1_template& PartialXtdRejectedNSSAIType1_template::operator=(const PartialXtdRejectedNSSAIType1_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PartialXtdRejectedNSSAIType1 PartialXtdRejectedNSSAIType1_template::valueof() const +{ +PartialXtdRejectedNSSAIType1 ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& PartialXtdRejectedNSSAIType1_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& PartialXtdRejectedNSSAIType1_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PartialXtdRejectedNSSAIType1_template::typeOfList() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PartialXtdRejectedNSSAIType1_template::typeOfList() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PartialXtdRejectedNSSAIType1_template::numOfElements() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PartialXtdRejectedNSSAIType1_template::numOfElements() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& PartialXtdRejectedNSSAIType1_template::backOffTimerValue() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& PartialXtdRejectedNSSAIType1_template::backOffTimerValue() const { return *(static_cast(get_at(3))); } +XtdRejectedS__NSSAI__List_template& PartialXtdRejectedNSSAIType1_template::rejectS__NSSAI() { return *(static_cast(get_at(4))); } +const XtdRejectedS__NSSAI__List_template& PartialXtdRejectedNSSAIType1_template::rejectS__NSSAI() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* PartialXtdRejectedNSSAIType1_template::get_descriptor() const { return &PartialXtdRejectedNSSAIType1_descr_; } +const char* PartialXtdRejectedNSSAIType1_template::fld_name(int p_index) const { return PartialXtdRejectedNSSAIType1::fld_names[p_index]; } +void ExtdRejectedNSSAI::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_partialXtd; } + +ExtdRejectedNSSAI::ExtdRejectedNSSAI() : Record_Type() { init_vec(); } + +ExtdRejectedNSSAI::ExtdRejectedNSSAI(const ExtdRejectedNSSAI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_partialXtd.is_bound() ) + field_partialXtd = other_value.field_partialXtd; +init_vec(); +} + +ExtdRejectedNSSAI::ExtdRejectedNSSAI(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const PartialXtdRejectedNSSAI__List& par_partialXtd) : field_iei(par_iei), + field_iel(par_iel), + field_partialXtd(par_partialXtd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ExtdRejectedNSSAI::get_descriptor() const { return &ExtdRejectedNSSAI_descr_; } +const TTCN_Typedescriptor_t* ExtdRejectedNSSAI::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &PartialXtdRejectedNSSAI__List_descr_ }; +const TTCN_Typedescriptor_t* ExtdRejectedNSSAI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ExtdRejectedNSSAI::fld_names[] = { "iei", "iel", "partialXtd" }; +const char* ExtdRejectedNSSAI::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ExtdRejectedNSSAI::optional_indexes[] = { 0, -1 }; +const int* ExtdRejectedNSSAI::get_optional_indexes() const { return optional_indexes; } + +const int ExtdRejectedNSSAI::optional_indexes_asn[] = { 0, -1 }; +const int* ExtdRejectedNSSAI::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ExtdRejectedNSSAI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new PartialXtdRejectedNSSAI__List_template(ANY_VALUE) : new PartialXtdRejectedNSSAI__List_template; +} +} + +ExtdRejectedNSSAI_template::ExtdRejectedNSSAI_template(ExtdRejectedNSSAI_template* p_precondition, ExtdRejectedNSSAI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdRejectedNSSAI_template::ExtdRejectedNSSAI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdRejectedNSSAI_template::~ExtdRejectedNSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdRejectedNSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdRejectedNSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ExtdRejectedNSSAI_template& ExtdRejectedNSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdRejectedNSSAI_template& ExtdRejectedNSSAI_template::operator=(const ExtdRejectedNSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdRejectedNSSAI_template& ExtdRejectedNSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdRejectedNSSAI_template& ExtdRejectedNSSAI_template::operator=(const ExtdRejectedNSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdRejectedNSSAI ExtdRejectedNSSAI_template::valueof() const +{ +ExtdRejectedNSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ExtdRejectedNSSAI_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ExtdRejectedNSSAI_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ExtdRejectedNSSAI_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ExtdRejectedNSSAI_template::iel() const { return *(static_cast(get_at(1))); } +PartialXtdRejectedNSSAI__List_template& ExtdRejectedNSSAI_template::partialXtd() { return *(static_cast(get_at(2))); } +const PartialXtdRejectedNSSAI__List_template& ExtdRejectedNSSAI_template::partialXtd() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ExtdRejectedNSSAI_template::get_descriptor() const { return &ExtdRejectedNSSAI_descr_; } +const char* ExtdRejectedNSSAI_template::fld_name(int p_index) const { return ExtdRejectedNSSAI::fld_names[p_index]; } +void NG__AddReqResult::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_prd; } + +NG__AddReqResult::NG__AddReqResult() : Record_Type() { init_vec(); } + +NG__AddReqResult::NG__AddReqResult(const NG__AddReqResult& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_prd.is_bound() ) + field_prd = other_value.field_prd; +init_vec(); +} + +NG__AddReqResult::NG__AddReqResult(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_prd) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_prd(par_prd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__AddReqResult::get_descriptor() const { return &NG__AddReqResult_descr_; } +const TTCN_Typedescriptor_t* NG__AddReqResult::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__AddReqResult::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__AddReqResult::fld_names[] = { "iei", "iel", "spare", "prd" }; +const char* NG__AddReqResult::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__AddReqResult_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NG__AddReqResult_template::NG__AddReqResult_template(NG__AddReqResult_template* p_precondition, NG__AddReqResult_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__AddReqResult_template::NG__AddReqResult_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__AddReqResult_template::~NG__AddReqResult_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__AddReqResult_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__AddReqResult* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__AddReqResult_template& NG__AddReqResult_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__AddReqResult_template& NG__AddReqResult_template::operator=(const NG__AddReqResult& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__AddReqResult_template& NG__AddReqResult_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__AddReqResult_template& NG__AddReqResult_template::operator=(const NG__AddReqResult_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__AddReqResult NG__AddReqResult_template::valueof() const +{ +NG__AddReqResult ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__AddReqResult_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__AddReqResult_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__AddReqResult_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__AddReqResult_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__AddReqResult_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__AddReqResult_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__AddReqResult_template::prd() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__AddReqResult_template::prd() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* NG__AddReqResult_template::get_descriptor() const { return &NG__AddReqResult_descr_; } +const char* NG__AddReqResult_template::fld_name(int p_index) const { return NG__AddReqResult::fld_names[p_index]; } + +const NSSRG__Value NSSRG__ValueList::UNBOUND_ELEM; +NSSRG__Value& NSSRG__ValueList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NSSRG__Value& NSSRG__ValueList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NSSRG__Value& NSSRG__ValueList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NSSRG__Value& NSSRG__ValueList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NSSRG__ValueList NSSRG__ValueList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NSSRG__ValueList NSSRG__ValueList::operator<<=(const INTEGER& rotate_count) const +{ +NSSRG__ValueList rec_of; +return *((NSSRG__ValueList*)rotl(rotate_count, &rec_of)); +} + +NSSRG__ValueList NSSRG__ValueList::operator>>=(const INTEGER& rotate_count) const +{ +NSSRG__ValueList rec_of; +return *((NSSRG__ValueList*)rotr(rotate_count, &rec_of)); +} + +NSSRG__ValueList NSSRG__ValueList::operator>>=(int rotate_count) const +{ +NSSRG__ValueList rec_of; +return *((NSSRG__ValueList*)rotr(rotate_count, &rec_of)); +} + +NSSRG__ValueList NSSRG__ValueList::operator+(const NSSRG__ValueList& other_value) const +{ +NSSRG__ValueList rec_of; +return *((NSSRG__ValueList*)concat(&other_value, &rec_of)); +} + +NSSRG__ValueList NSSRG__ValueList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NSSRG__ValueList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NSSRG_ValueList concatenation."); +} + +NSSRG__ValueList NSSRG__ValueList::operator+(null_type) const +{ +return *this; +} + +NSSRG__ValueList NSSRG__ValueList::substr(int index, int returncount) const +{ +NSSRG__ValueList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NSSRG__ValueList NSSRG__ValueList::replace(int index, int len, const NSSRG__ValueList& repl) const +{ +NSSRG__ValueList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NSSRG__ValueList NSSRG__ValueList::replace(int index, int len, const NSSRG__ValueList_template& repl) const +{ +NSSRG__ValueList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NSSRG__ValueList::create_elem() const { return new NSSRG__Value; } +const Base_Type* NSSRG__ValueList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NSSRG__ValueList::get_descriptor() const { return &NSSRG__ValueList_descr_; } +NSSRG__ValueList_template::NSSRG__ValueList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NSSRG__ValueList_template::NSSRG__ValueList_template(NSSRG__ValueList_template* p_precondition, NSSRG__ValueList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSSRG__ValueList_template::NSSRG__ValueList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSSRG__ValueList_template::~NSSRG__ValueList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSSRG__ValueList_template::match_dynamic(const Base_Type* match_value) const +{ +const NSSRG__ValueList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NSSRG__ValueList_template& NSSRG__ValueList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSSRG__ValueList_template& NSSRG__ValueList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NSSRG__ValueList_template& NSSRG__ValueList_template::operator=(const NSSRG__ValueList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSSRG__ValueList_template& NSSRG__ValueList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSSRG__ValueList_template& NSSRG__ValueList_template::operator=(const NSSRG__ValueList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSSRG__ValueList_template NSSRG__ValueList_template::operator+(const NSSRG__ValueList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NSSRG__ValueList_template(ANY_VALUE); +} +NSSRG__ValueList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NSSRG__ValueList_template NSSRG__ValueList_template::operator+(const NSSRG__ValueList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NSSRG__ValueList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NSSRG__ValueList_template NSSRG__ValueList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NSSRG__ValueList_template(ANY_VALUE); +} +NSSRG__ValueList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NSSRG__ValueList_template NSSRG__ValueList_template::operator+(null_type) const +{ +return *this; +} + +NSSRG__Value_template& NSSRG__ValueList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NSSRG__Value_template& NSSRG__ValueList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NSSRG__Value_template& NSSRG__ValueList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NSSRG__Value_template& NSSRG__ValueList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NSSRG__ValueList NSSRG__ValueList_template::valueof() const +{ +NSSRG__ValueList ret_val; +valueofv(&ret_val); +return ret_val; +} + +NSSRG__ValueList NSSRG__ValueList_template::substr(int index, int returncount) const +{ +NSSRG__ValueList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NSSRG__ValueList NSSRG__ValueList_template::replace(int index, int len, const NSSRG__ValueList_template& repl) const +{ +NSSRG__ValueList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NSSRG__ValueList NSSRG__ValueList_template::replace(int index, int len, const NSSRG__ValueList& repl) const +{ +NSSRG__ValueList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NSSRG__ValueList_template::create_elem() const { return new NSSRG__Value_template; } +const TTCN_Typedescriptor_t* NSSRG__ValueList_template::get_descriptor() const { return &NSSRG__ValueList_descr_; } +void NSSRG__Value::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_sNSSAI; fld_vec[2]=&field_nssrgValues; } + +NSSRG__Value::NSSRG__Value() : Record_Type() { init_vec(); } + +NSSRG__Value::NSSRG__Value(const NSSRG__Value& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_sNSSAI.is_bound() ) + field_sNSSAI = other_value.field_sNSSAI; +if (other_value.field_nssrgValues.is_bound() ) + field_nssrgValues = other_value.field_nssrgValues; +init_vec(); +} + +NSSRG__Value::NSSRG__Value(const OCTETSTRING& par_iel, + const S__NSSAI__LV& par_sNSSAI, + const NSSRG__Value_nssrgValues& par_nssrgValues) : field_iel(par_iel), + field_sNSSAI(par_sNSSAI), + field_nssrgValues(par_nssrgValues) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NSSRG__Value::get_descriptor() const { return &NSSRG__Value_descr_; } +const TTCN_Typedescriptor_t* NSSRG__Value::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &S__NSSAI__LV_descr_, &NSSRG__Value_nssrgValues_descr_ }; +const TTCN_Typedescriptor_t* NSSRG__Value::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NSSRG__Value::fld_names[] = { "iel", "sNSSAI", "nssrgValues" }; +const char* NSSRG__Value::fld_name(int p_index) const { return fld_names[p_index]; } + +void NSSRG__Value_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new S__NSSAI__LV_template(ANY_VALUE) : new S__NSSAI__LV_template; +single_value.value_elements[2] = was_any ? new NSSRG__Value_nssrgValues_template(ANY_VALUE) : new NSSRG__Value_nssrgValues_template; +} +} + +NSSRG__Value_template::NSSRG__Value_template(NSSRG__Value_template* p_precondition, NSSRG__Value_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSSRG__Value_template::NSSRG__Value_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSSRG__Value_template::~NSSRG__Value_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSSRG__Value_template::match_dynamic(const Base_Type* match_value) const +{ +const NSSRG__Value* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NSSRG__Value_template& NSSRG__Value_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSSRG__Value_template& NSSRG__Value_template::operator=(const NSSRG__Value& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSSRG__Value_template& NSSRG__Value_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSSRG__Value_template& NSSRG__Value_template::operator=(const NSSRG__Value_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSSRG__Value NSSRG__Value_template::valueof() const +{ +NSSRG__Value ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NSSRG__Value_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NSSRG__Value_template::iel() const { return *(static_cast(get_at(0))); } +S__NSSAI__LV_template& NSSRG__Value_template::sNSSAI() { return *(static_cast(get_at(1))); } +const S__NSSAI__LV_template& NSSRG__Value_template::sNSSAI() const { return *(static_cast(get_at(1))); } +NSSRG__Value_nssrgValues_template& NSSRG__Value_template::nssrgValues() { return *(static_cast(get_at(2))); } +const NSSRG__Value_nssrgValues_template& NSSRG__Value_template::nssrgValues() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NSSRG__Value_template::get_descriptor() const { return &NSSRG__Value_descr_; } +const char* NSSRG__Value_template::fld_name(int p_index) const { return NSSRG__Value::fld_names[p_index]; } +void NSSRG__Info::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_valueList; } + +NSSRG__Info::NSSRG__Info() : Record_Type() { init_vec(); } + +NSSRG__Info::NSSRG__Info(const NSSRG__Info& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_valueList.is_bound() ) + field_valueList = other_value.field_valueList; +init_vec(); +} + +NSSRG__Info::NSSRG__Info(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const NSSRG__ValueList& par_valueList) : field_iei(par_iei), + field_iel(par_iel), + field_valueList(par_valueList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NSSRG__Info::get_descriptor() const { return &NSSRG__Info_descr_; } +const TTCN_Typedescriptor_t* NSSRG__Info::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &NSSRG__ValueList_descr_ }; +const TTCN_Typedescriptor_t* NSSRG__Info::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NSSRG__Info::fld_names[] = { "iei", "iel", "valueList" }; +const char* NSSRG__Info::fld_name(int p_index) const { return fld_names[p_index]; } + +void NSSRG__Info_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new NSSRG__ValueList_template(ANY_VALUE) : new NSSRG__ValueList_template; +} +} + +NSSRG__Info_template::NSSRG__Info_template(NSSRG__Info_template* p_precondition, NSSRG__Info_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSSRG__Info_template::NSSRG__Info_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSSRG__Info_template::~NSSRG__Info_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSSRG__Info_template::match_dynamic(const Base_Type* match_value) const +{ +const NSSRG__Info* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NSSRG__Info_template& NSSRG__Info_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSSRG__Info_template& NSSRG__Info_template::operator=(const NSSRG__Info& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSSRG__Info_template& NSSRG__Info_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSSRG__Info_template& NSSRG__Info_template::operator=(const NSSRG__Info_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSSRG__Info NSSRG__Info_template::valueof() const +{ +NSSRG__Info ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NSSRG__Info_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NSSRG__Info_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NSSRG__Info_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NSSRG__Info_template::iel() const { return *(static_cast(get_at(1))); } +NSSRG__ValueList_template& NSSRG__Info_template::valueList() { return *(static_cast(get_at(2))); } +const NSSRG__ValueList_template& NSSRG__Info_template::valueList() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NSSRG__Info_template::get_descriptor() const { return &NSSRG__Info_descr_; } +const char* NSSRG__Info_template::fld_name(int p_index) const { return NSSRG__Info::fld_names[p_index]; } +void RegistrationWaitRange::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_minWaitTime; fld_vec[3]=&field_maxWaitTime; } + +RegistrationWaitRange::RegistrationWaitRange() : Record_Type() { init_vec(); } + +RegistrationWaitRange::RegistrationWaitRange(const RegistrationWaitRange& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_minWaitTime.is_bound() ) + field_minWaitTime = other_value.field_minWaitTime; +if (other_value.field_maxWaitTime.is_bound() ) + field_maxWaitTime = other_value.field_maxWaitTime; +init_vec(); +} + +RegistrationWaitRange::RegistrationWaitRange(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_minWaitTime, + const OCTETSTRING& par_maxWaitTime) : field_iei(par_iei), + field_iel(par_iel), + field_minWaitTime(par_minWaitTime), + field_maxWaitTime(par_maxWaitTime) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RegistrationWaitRange::get_descriptor() const { return &RegistrationWaitRange_descr_; } +const TTCN_Typedescriptor_t* RegistrationWaitRange::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* RegistrationWaitRange::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RegistrationWaitRange::fld_names[] = { "iei", "iel", "minWaitTime", "maxWaitTime" }; +const char* RegistrationWaitRange::fld_name(int p_index) const { return fld_names[p_index]; } + +void RegistrationWaitRange_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +RegistrationWaitRange_template::RegistrationWaitRange_template(RegistrationWaitRange_template* p_precondition, RegistrationWaitRange_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RegistrationWaitRange_template::RegistrationWaitRange_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RegistrationWaitRange_template::~RegistrationWaitRange_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RegistrationWaitRange_template::match_dynamic(const Base_Type* match_value) const +{ +const RegistrationWaitRange* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RegistrationWaitRange_template& RegistrationWaitRange_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RegistrationWaitRange_template& RegistrationWaitRange_template::operator=(const RegistrationWaitRange& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RegistrationWaitRange_template& RegistrationWaitRange_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RegistrationWaitRange_template& RegistrationWaitRange_template::operator=(const RegistrationWaitRange_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RegistrationWaitRange RegistrationWaitRange_template::valueof() const +{ +RegistrationWaitRange ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& RegistrationWaitRange_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& RegistrationWaitRange_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& RegistrationWaitRange_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& RegistrationWaitRange_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& RegistrationWaitRange_template::minWaitTime() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& RegistrationWaitRange_template::minWaitTime() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& RegistrationWaitRange_template::maxWaitTime() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& RegistrationWaitRange_template::maxWaitTime() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* RegistrationWaitRange_template::get_descriptor() const { return &RegistrationWaitRange_descr_; } +const char* RegistrationWaitRange_template::fld_name(int p_index) const { return RegistrationWaitRange::fld_names[p_index]; } +void DisasterPLMNList::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_plmnId; } + +DisasterPLMNList::DisasterPLMNList() : Record_Type() { init_vec(); } + +DisasterPLMNList::DisasterPLMNList(const DisasterPLMNList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_plmnId.is_bound() ) + field_plmnId = other_value.field_plmnId; +init_vec(); +} + +DisasterPLMNList::DisasterPLMNList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_plmnId) : field_iei(par_iei), + field_iel(par_iel), + field_plmnId(par_plmnId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DisasterPLMNList::get_descriptor() const { return &DisasterPLMNList_descr_; } +const TTCN_Typedescriptor_t* DisasterPLMNList::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &DisasterPLMNList_plmnId_descr_ }; +const TTCN_Typedescriptor_t* DisasterPLMNList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DisasterPLMNList::fld_names[] = { "iei", "iel", "plmnId" }; +const char* DisasterPLMNList::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DisasterPLMNList::optional_indexes[] = { 2, -1 }; +const int* DisasterPLMNList::get_optional_indexes() const { return optional_indexes; } + +const int DisasterPLMNList::optional_indexes_asn[] = { 2, -1 }; +const int* DisasterPLMNList::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DisasterPLMNList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new DisasterPLMNList_plmnId_template(ANY_OR_OMIT) : new DisasterPLMNList_plmnId_template; +} +} + +DisasterPLMNList_template::DisasterPLMNList_template(DisasterPLMNList_template* p_precondition, DisasterPLMNList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DisasterPLMNList_template::DisasterPLMNList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DisasterPLMNList_template::~DisasterPLMNList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DisasterPLMNList_template::match_dynamic(const Base_Type* match_value) const +{ +const DisasterPLMNList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DisasterPLMNList_template& DisasterPLMNList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DisasterPLMNList_template& DisasterPLMNList_template::operator=(const DisasterPLMNList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DisasterPLMNList_template& DisasterPLMNList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DisasterPLMNList_template& DisasterPLMNList_template::operator=(const DisasterPLMNList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DisasterPLMNList DisasterPLMNList_template::valueof() const +{ +DisasterPLMNList ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& DisasterPLMNList_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& DisasterPLMNList_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& DisasterPLMNList_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& DisasterPLMNList_template::iel() const { return *(static_cast(get_at(1))); } +DisasterPLMNList_plmnId_template& DisasterPLMNList_template::plmnId() { return *(static_cast(get_at(2))); } +const DisasterPLMNList_plmnId_template& DisasterPLMNList_template::plmnId() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* DisasterPLMNList_template::get_descriptor() const { return &DisasterPLMNList_descr_; } +const char* DisasterPLMNList_template::fld_name(int p_index) const { return DisasterPLMNList::fld_names[p_index]; } +void ExtdCAGInfoList::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_listOfCAGInfos; } + +ExtdCAGInfoList::ExtdCAGInfoList() : Record_Type() { init_vec(); } + +ExtdCAGInfoList::ExtdCAGInfoList(const ExtdCAGInfoList& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_listOfCAGInfos.is_bound() ) + field_listOfCAGInfos = other_value.field_listOfCAGInfos; +init_vec(); +} + +ExtdCAGInfoList::ExtdCAGInfoList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_listOfCAGInfos) : field_iei(par_iei), + field_iel(par_iel), + field_listOfCAGInfos(par_listOfCAGInfos) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ExtdCAGInfoList::get_descriptor() const { return &ExtdCAGInfoList_descr_; } +const TTCN_Typedescriptor_t* ExtdCAGInfoList::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &ExtdCAGInfoList_listOfCAGInfos_descr_ }; +const TTCN_Typedescriptor_t* ExtdCAGInfoList::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ExtdCAGInfoList::fld_names[] = { "iei", "iel", "listOfCAGInfos" }; +const char* ExtdCAGInfoList::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ExtdCAGInfoList::optional_indexes[] = { 2, -1 }; +const int* ExtdCAGInfoList::get_optional_indexes() const { return optional_indexes; } + +const int ExtdCAGInfoList::optional_indexes_asn[] = { 2, -1 }; +const int* ExtdCAGInfoList::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ExtdCAGInfoList_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new ExtdCAGInfoList_listOfCAGInfos_template(ANY_OR_OMIT) : new ExtdCAGInfoList_listOfCAGInfos_template; +} +} + +ExtdCAGInfoList_template::ExtdCAGInfoList_template(ExtdCAGInfoList_template* p_precondition, ExtdCAGInfoList_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdCAGInfoList_template::ExtdCAGInfoList_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdCAGInfoList_template::~ExtdCAGInfoList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdCAGInfoList_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdCAGInfoList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ExtdCAGInfoList_template& ExtdCAGInfoList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdCAGInfoList_template& ExtdCAGInfoList_template::operator=(const ExtdCAGInfoList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdCAGInfoList_template& ExtdCAGInfoList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdCAGInfoList_template& ExtdCAGInfoList_template::operator=(const ExtdCAGInfoList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdCAGInfoList ExtdCAGInfoList_template::valueof() const +{ +ExtdCAGInfoList ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ExtdCAGInfoList_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ExtdCAGInfoList_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ExtdCAGInfoList_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ExtdCAGInfoList_template::iel() const { return *(static_cast(get_at(1))); } +ExtdCAGInfoList_listOfCAGInfos_template& ExtdCAGInfoList_template::listOfCAGInfos() { return *(static_cast(get_at(2))); } +const ExtdCAGInfoList_listOfCAGInfos_template& ExtdCAGInfoList_template::listOfCAGInfos() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ExtdCAGInfoList_template::get_descriptor() const { return &ExtdCAGInfoList_descr_; } +const char* ExtdCAGInfoList_template::fld_name(int p_index) const { return ExtdCAGInfoList::fld_names[p_index]; } + +const ExtdCAG__Info ExtdCAGInfoList_listOfCAGInfos::UNBOUND_ELEM; +ExtdCAG__Info& ExtdCAGInfoList_listOfCAGInfos::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ExtdCAG__Info& ExtdCAGInfoList_listOfCAGInfos::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ExtdCAG__Info& ExtdCAGInfoList_listOfCAGInfos::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ExtdCAG__Info& ExtdCAGInfoList_listOfCAGInfos::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::operator<<=(const INTEGER& rotate_count) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +return *((ExtdCAGInfoList_listOfCAGInfos*)rotl(rotate_count, &rec_of)); +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::operator>>=(const INTEGER& rotate_count) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +return *((ExtdCAGInfoList_listOfCAGInfos*)rotr(rotate_count, &rec_of)); +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::operator>>=(int rotate_count) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +return *((ExtdCAGInfoList_listOfCAGInfos*)rotr(rotate_count, &rec_of)); +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::operator+(const ExtdCAGInfoList_listOfCAGInfos& other_value) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +return *((ExtdCAGInfoList_listOfCAGInfos*)concat(&other_value, &rec_of)); +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const ExtdCAGInfoList_listOfCAGInfos&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.ExtdCAGInfoList.listOfCAGInfos concatenation."); +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::operator+(null_type) const +{ +return *this; +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::substr(int index, int returncount) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::replace(int index, int len, const ExtdCAGInfoList_listOfCAGInfos& repl) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos::replace(int index, int len, const ExtdCAGInfoList_listOfCAGInfos_template& repl) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* ExtdCAGInfoList_listOfCAGInfos::create_elem() const { return new ExtdCAG__Info; } +const Base_Type* ExtdCAGInfoList_listOfCAGInfos::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* ExtdCAGInfoList_listOfCAGInfos::get_descriptor() const { return &ExtdCAGInfoList_listOfCAGInfos_descr_; } +ExtdCAGInfoList_listOfCAGInfos_template::ExtdCAGInfoList_listOfCAGInfos_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +ExtdCAGInfoList_listOfCAGInfos_template::ExtdCAGInfoList_listOfCAGInfos_template(ExtdCAGInfoList_listOfCAGInfos_template* p_precondition, ExtdCAGInfoList_listOfCAGInfos_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdCAGInfoList_listOfCAGInfos_template::ExtdCAGInfoList_listOfCAGInfos_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdCAGInfoList_listOfCAGInfos_template::~ExtdCAGInfoList_listOfCAGInfos_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdCAGInfoList_listOfCAGInfos_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdCAGInfoList_listOfCAGInfos* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +ExtdCAGInfoList_listOfCAGInfos_template& ExtdCAGInfoList_listOfCAGInfos_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdCAGInfoList_listOfCAGInfos_template& ExtdCAGInfoList_listOfCAGInfos_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +ExtdCAGInfoList_listOfCAGInfos_template& ExtdCAGInfoList_listOfCAGInfos_template::operator=(const ExtdCAGInfoList_listOfCAGInfos& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdCAGInfoList_listOfCAGInfos_template& ExtdCAGInfoList_listOfCAGInfos_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdCAGInfoList_listOfCAGInfos_template& ExtdCAGInfoList_listOfCAGInfos_template::operator=(const ExtdCAGInfoList_listOfCAGInfos_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdCAGInfoList_listOfCAGInfos_template ExtdCAGInfoList_listOfCAGInfos_template::operator+(const ExtdCAGInfoList_listOfCAGInfos_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return ExtdCAGInfoList_listOfCAGInfos_template(ANY_VALUE); +} +ExtdCAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ExtdCAGInfoList_listOfCAGInfos_template ExtdCAGInfoList_listOfCAGInfos_template::operator+(const ExtdCAGInfoList_listOfCAGInfos& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +ExtdCAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ExtdCAGInfoList_listOfCAGInfos_template ExtdCAGInfoList_listOfCAGInfos_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return ExtdCAGInfoList_listOfCAGInfos_template(ANY_VALUE); +} +ExtdCAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +ExtdCAGInfoList_listOfCAGInfos_template ExtdCAGInfoList_listOfCAGInfos_template::operator+(null_type) const +{ +return *this; +} + +ExtdCAG__Info_template& ExtdCAGInfoList_listOfCAGInfos_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ExtdCAG__Info_template& ExtdCAGInfoList_listOfCAGInfos_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ExtdCAG__Info_template& ExtdCAGInfoList_listOfCAGInfos_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ExtdCAG__Info_template& ExtdCAGInfoList_listOfCAGInfos_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos_template::valueof() const +{ +ExtdCAGInfoList_listOfCAGInfos ret_val; +valueofv(&ret_val); +return ret_val; +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos_template::substr(int index, int returncount) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos_template::replace(int index, int len, const ExtdCAGInfoList_listOfCAGInfos_template& repl) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ExtdCAGInfoList_listOfCAGInfos ExtdCAGInfoList_listOfCAGInfos_template::replace(int index, int len, const ExtdCAGInfoList_listOfCAGInfos& repl) const +{ +ExtdCAGInfoList_listOfCAGInfos rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* ExtdCAGInfoList_listOfCAGInfos_template::create_elem() const { return new ExtdCAG__Info_template; } +const TTCN_Typedescriptor_t* ExtdCAGInfoList_listOfCAGInfos_template::get_descriptor() const { return &ExtdCAGInfoList_listOfCAGInfos_descr_; } +void ExtdCAG__Info::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_cagValue; } + +ExtdCAG__Info::ExtdCAG__Info() : Record_Type() { init_vec(); } + +ExtdCAG__Info::ExtdCAG__Info(const ExtdCAG__Info& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_cagValue.is_bound() ) + field_cagValue = other_value.field_cagValue; +init_vec(); +} + +ExtdCAG__Info::ExtdCAG__Info(const OCTETSTRING& par_iel, + const CAG__Info__V& par_cagValue) : field_iel(par_iel), + field_cagValue(par_cagValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ExtdCAG__Info::get_descriptor() const { return &ExtdCAG__Info_descr_; } +const TTCN_Typedescriptor_t* ExtdCAG__Info::fld_descriptors[] = { &NAS__CommonTypeDefs::Type6Length__Type_descr_, &CAG__Info__V_descr_ }; +const TTCN_Typedescriptor_t* ExtdCAG__Info::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ExtdCAG__Info::fld_names[] = { "iel", "cagValue" }; +const char* ExtdCAG__Info::fld_name(int p_index) const { return fld_names[p_index]; } + +void ExtdCAG__Info_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new CAG__Info__V_template(ANY_VALUE) : new CAG__Info__V_template; +} +} + +ExtdCAG__Info_template::ExtdCAG__Info_template(ExtdCAG__Info_template* p_precondition, ExtdCAG__Info_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ExtdCAG__Info_template::ExtdCAG__Info_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ExtdCAG__Info_template::~ExtdCAG__Info_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ExtdCAG__Info_template::match_dynamic(const Base_Type* match_value) const +{ +const ExtdCAG__Info* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ExtdCAG__Info_template& ExtdCAG__Info_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ExtdCAG__Info_template& ExtdCAG__Info_template::operator=(const ExtdCAG__Info& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ExtdCAG__Info_template& ExtdCAG__Info_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ExtdCAG__Info_template& ExtdCAG__Info_template::operator=(const ExtdCAG__Info_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ExtdCAG__Info ExtdCAG__Info_template::valueof() const +{ +ExtdCAG__Info ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ExtdCAG__Info_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ExtdCAG__Info_template::iel() const { return *(static_cast(get_at(0))); } +CAG__Info__V_template& ExtdCAG__Info_template::cagValue() { return *(static_cast(get_at(1))); } +const CAG__Info__V_template& ExtdCAG__Info_template::cagValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* ExtdCAG__Info_template::get_descriptor() const { return &ExtdCAG__Info_descr_; } +const char* ExtdCAG__Info_template::fld_name(int p_index) const { return ExtdCAG__Info::fld_names[p_index]; } + +const NSAG NSAG__Info_nsagList::UNBOUND_ELEM; +NSAG& NSAG__Info_nsagList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NSAG& NSAG__Info_nsagList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NSAG& NSAG__Info_nsagList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NSAG& NSAG__Info_nsagList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NSAG__Info_nsagList NSAG__Info_nsagList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NSAG__Info_nsagList NSAG__Info_nsagList::operator<<=(const INTEGER& rotate_count) const +{ +NSAG__Info_nsagList rec_of; +return *((NSAG__Info_nsagList*)rotl(rotate_count, &rec_of)); +} + +NSAG__Info_nsagList NSAG__Info_nsagList::operator>>=(const INTEGER& rotate_count) const +{ +NSAG__Info_nsagList rec_of; +return *((NSAG__Info_nsagList*)rotr(rotate_count, &rec_of)); +} + +NSAG__Info_nsagList NSAG__Info_nsagList::operator>>=(int rotate_count) const +{ +NSAG__Info_nsagList rec_of; +return *((NSAG__Info_nsagList*)rotr(rotate_count, &rec_of)); +} + +NSAG__Info_nsagList NSAG__Info_nsagList::operator+(const NSAG__Info_nsagList& other_value) const +{ +NSAG__Info_nsagList rec_of; +return *((NSAG__Info_nsagList*)concat(&other_value, &rec_of)); +} + +NSAG__Info_nsagList NSAG__Info_nsagList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NSAG__Info_nsagList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NSAG_Info.nsagList concatenation."); +} + +NSAG__Info_nsagList NSAG__Info_nsagList::operator+(null_type) const +{ +return *this; +} + +NSAG__Info_nsagList NSAG__Info_nsagList::substr(int index, int returncount) const +{ +NSAG__Info_nsagList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NSAG__Info_nsagList NSAG__Info_nsagList::replace(int index, int len, const NSAG__Info_nsagList& repl) const +{ +NSAG__Info_nsagList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NSAG__Info_nsagList NSAG__Info_nsagList::replace(int index, int len, const NSAG__Info_nsagList_template& repl) const +{ +NSAG__Info_nsagList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NSAG__Info_nsagList::create_elem() const { return new NSAG; } +const Base_Type* NSAG__Info_nsagList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NSAG__Info_nsagList::get_descriptor() const { return &NSAG__Info_nsagList_descr_; } +NSAG__Info_nsagList_template::NSAG__Info_nsagList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NSAG__Info_nsagList_template::NSAG__Info_nsagList_template(NSAG__Info_nsagList_template* p_precondition, NSAG__Info_nsagList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSAG__Info_nsagList_template::NSAG__Info_nsagList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSAG__Info_nsagList_template::~NSAG__Info_nsagList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSAG__Info_nsagList_template::match_dynamic(const Base_Type* match_value) const +{ +const NSAG__Info_nsagList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NSAG__Info_nsagList_template& NSAG__Info_nsagList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSAG__Info_nsagList_template& NSAG__Info_nsagList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NSAG__Info_nsagList_template& NSAG__Info_nsagList_template::operator=(const NSAG__Info_nsagList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSAG__Info_nsagList_template& NSAG__Info_nsagList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSAG__Info_nsagList_template& NSAG__Info_nsagList_template::operator=(const NSAG__Info_nsagList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSAG__Info_nsagList_template NSAG__Info_nsagList_template::operator+(const NSAG__Info_nsagList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NSAG__Info_nsagList_template(ANY_VALUE); +} +NSAG__Info_nsagList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NSAG__Info_nsagList_template NSAG__Info_nsagList_template::operator+(const NSAG__Info_nsagList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NSAG__Info_nsagList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NSAG__Info_nsagList_template NSAG__Info_nsagList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NSAG__Info_nsagList_template(ANY_VALUE); +} +NSAG__Info_nsagList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NSAG__Info_nsagList_template NSAG__Info_nsagList_template::operator+(null_type) const +{ +return *this; +} + +NSAG_template& NSAG__Info_nsagList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NSAG_template& NSAG__Info_nsagList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NSAG_template& NSAG__Info_nsagList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NSAG_template& NSAG__Info_nsagList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NSAG__Info_nsagList NSAG__Info_nsagList_template::valueof() const +{ +NSAG__Info_nsagList ret_val; +valueofv(&ret_val); +return ret_val; +} + +NSAG__Info_nsagList NSAG__Info_nsagList_template::substr(int index, int returncount) const +{ +NSAG__Info_nsagList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NSAG__Info_nsagList NSAG__Info_nsagList_template::replace(int index, int len, const NSAG__Info_nsagList_template& repl) const +{ +NSAG__Info_nsagList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NSAG__Info_nsagList NSAG__Info_nsagList_template::replace(int index, int len, const NSAG__Info_nsagList& repl) const +{ +NSAG__Info_nsagList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NSAG__Info_nsagList_template::create_elem() const { return new NSAG_template; } +const TTCN_Typedescriptor_t* NSAG__Info_nsagList_template::get_descriptor() const { return &NSAG__Info_nsagList_descr_; } +void NSAG::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_id; fld_vec[2]=&field_sNSSAIList; fld_vec[3]=&field_priority; fld_vec[4]=&field_taiList; } + +NSAG::NSAG() : Record_Type() { init_vec(); } + +NSAG::NSAG(const NSAG& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_sNSSAIList.is_bound() ) + field_sNSSAIList = other_value.field_sNSSAIList; +if (other_value.field_priority.is_bound() ) + field_priority = other_value.field_priority; +if (other_value.field_taiList.is_bound() ) + field_taiList = other_value.field_taiList; +init_vec(); +} + +NSAG::NSAG(const OCTETSTRING& par_iel, + const OCTETSTRING& par_id, + const NSSAI__LV& par_sNSSAIList, + const OCTETSTRING& par_priority, + const NG__TrackingAreaIdList__LV& par_taiList) : field_iel(par_iel), + field_id(par_id), + field_sNSSAIList(par_sNSSAIList), + field_priority(par_priority), + field_taiList(par_taiList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NSAG::get_descriptor() const { return &NSAG_descr_; } +const TTCN_Typedescriptor_t* NSAG::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &NSSAI__LV_descr_, &CommonDefs::O1__Type_descr_, &NG__TrackingAreaIdList__LV_descr_ }; +const TTCN_Typedescriptor_t* NSAG::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NSAG::fld_names[] = { "iel", "id", "sNSSAIList", "priority", "taiList" }; +const char* NSAG::fld_name(int p_index) const { return fld_names[p_index]; } + +void NSAG_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new NSSAI__LV_template(ANY_VALUE) : new NSSAI__LV_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new NG__TrackingAreaIdList__LV_template(ANY_VALUE) : new NG__TrackingAreaIdList__LV_template; +} +} + +NSAG_template::NSAG_template(NSAG_template* p_precondition, NSAG_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSAG_template::NSAG_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSAG_template::~NSAG_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSAG_template::match_dynamic(const Base_Type* match_value) const +{ +const NSAG* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NSAG_template& NSAG_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSAG_template& NSAG_template::operator=(const NSAG& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSAG_template& NSAG_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSAG_template& NSAG_template::operator=(const NSAG_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSAG NSAG_template::valueof() const +{ +NSAG ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NSAG_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NSAG_template::iel() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NSAG_template::id() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NSAG_template::id() const { return *(static_cast(get_at(1))); } +NSSAI__LV_template& NSAG_template::sNSSAIList() { return *(static_cast(get_at(2))); } +const NSSAI__LV_template& NSAG_template::sNSSAIList() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& NSAG_template::priority() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& NSAG_template::priority() const { return *(static_cast(get_at(3))); } +NG__TrackingAreaIdList__LV_template& NSAG_template::taiList() { return *(static_cast(get_at(4))); } +const NG__TrackingAreaIdList__LV_template& NSAG_template::taiList() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NSAG_template::get_descriptor() const { return &NSAG_descr_; } +const char* NSAG_template::fld_name(int p_index) const { return NSAG::fld_names[p_index]; } +void NSAG__Info::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_nsagList; } + +NSAG__Info::NSAG__Info() : Record_Type() { init_vec(); } + +NSAG__Info::NSAG__Info(const NSAG__Info& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_nsagList.is_bound() ) + field_nsagList = other_value.field_nsagList; +init_vec(); +} + +NSAG__Info::NSAG__Info(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const NSAG__Info_nsagList& par_nsagList) : field_iei(par_iei), + field_iel(par_iel), + field_nsagList(par_nsagList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NSAG__Info::get_descriptor() const { return &NSAG__Info_descr_; } +const TTCN_Typedescriptor_t* NSAG__Info::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &NSAG__Info_nsagList_descr_ }; +const TTCN_Typedescriptor_t* NSAG__Info::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NSAG__Info::fld_names[] = { "iei", "iel", "nsagList" }; +const char* NSAG__Info::fld_name(int p_index) const { return fld_names[p_index]; } + +void NSAG__Info_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new NSAG__Info_nsagList_template(ANY_VALUE) : new NSAG__Info_nsagList_template; +} +} + +NSAG__Info_template::NSAG__Info_template(NSAG__Info_template* p_precondition, NSAG__Info_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSAG__Info_template::NSAG__Info_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSAG__Info_template::~NSAG__Info_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSAG__Info_template::match_dynamic(const Base_Type* match_value) const +{ +const NSAG__Info* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NSAG__Info_template& NSAG__Info_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSAG__Info_template& NSAG__Info_template::operator=(const NSAG__Info& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSAG__Info_template& NSAG__Info_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSAG__Info_template& NSAG__Info_template::operator=(const NSAG__Info_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSAG__Info NSAG__Info_template::valueof() const +{ +NSAG__Info ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NSAG__Info_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NSAG__Info_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NSAG__Info_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NSAG__Info_template::iel() const { return *(static_cast(get_at(1))); } +NSAG__Info_nsagList_template& NSAG__Info_template::nsagList() { return *(static_cast(get_at(2))); } +const NSAG__Info_nsagList_template& NSAG__Info_template::nsagList() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NSAG__Info_template::get_descriptor() const { return &NSAG__Info_descr_; } +const char* NSAG__Info_template::fld_name(int p_index) const { return NSAG__Info::fld_names[p_index]; } +void NG__REGISTRATION__COMPLETE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_sorTransparentContainer; } + +NG__REGISTRATION__COMPLETE::NG__REGISTRATION__COMPLETE() : Record_Type() { init_vec(); } + +NG__REGISTRATION__COMPLETE::NG__REGISTRATION__COMPLETE(const NG__REGISTRATION__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_sorTransparentContainer.is_bound() ) + field_sorTransparentContainer = other_value.field_sorTransparentContainer; +init_vec(); +} + +NG__REGISTRATION__COMPLETE::NG__REGISTRATION__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_sorTransparentContainer) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_sorTransparentContainer(par_sorTransparentContainer) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__REGISTRATION__COMPLETE::get_descriptor() const { return &NG__REGISTRATION__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* NG__REGISTRATION__COMPLETE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &SORTransparentContainer_descr_ }; +const TTCN_Typedescriptor_t* NG__REGISTRATION__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__REGISTRATION__COMPLETE::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "sorTransparentContainer" }; +const char* NG__REGISTRATION__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__REGISTRATION__COMPLETE::optional_indexes[] = { 4, -1 }; +const int* NG__REGISTRATION__COMPLETE::get_optional_indexes() const { return optional_indexes; } + +const int NG__REGISTRATION__COMPLETE::optional_indexes_asn[] = { 4, -1 }; +const int* NG__REGISTRATION__COMPLETE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__REGISTRATION__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new SORTransparentContainer_template(ANY_OR_OMIT) : new SORTransparentContainer_template; +} +} + +NG__REGISTRATION__COMPLETE_template::NG__REGISTRATION__COMPLETE_template(NG__REGISTRATION__COMPLETE_template* p_precondition, NG__REGISTRATION__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__REGISTRATION__COMPLETE_template::NG__REGISTRATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__REGISTRATION__COMPLETE_template::~NG__REGISTRATION__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__REGISTRATION__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__REGISTRATION__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__REGISTRATION__COMPLETE_template& NG__REGISTRATION__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__REGISTRATION__COMPLETE_template& NG__REGISTRATION__COMPLETE_template::operator=(const NG__REGISTRATION__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__REGISTRATION__COMPLETE_template& NG__REGISTRATION__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__REGISTRATION__COMPLETE_template& NG__REGISTRATION__COMPLETE_template::operator=(const NG__REGISTRATION__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__REGISTRATION__COMPLETE NG__REGISTRATION__COMPLETE_template::valueof() const +{ +NG__REGISTRATION__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__REGISTRATION__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__REGISTRATION__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__REGISTRATION__COMPLETE_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__REGISTRATION__COMPLETE_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__REGISTRATION__COMPLETE_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__REGISTRATION__COMPLETE_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__REGISTRATION__COMPLETE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__REGISTRATION__COMPLETE_template::messageType() const { return *(static_cast(get_at(3))); } +SORTransparentContainer_template& NG__REGISTRATION__COMPLETE_template::sorTransparentContainer() { return *(static_cast(get_at(4))); } +const SORTransparentContainer_template& NG__REGISTRATION__COMPLETE_template::sorTransparentContainer() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NG__REGISTRATION__COMPLETE_template::get_descriptor() const { return &NG__REGISTRATION__COMPLETE_descr_; } +const char* NG__REGISTRATION__COMPLETE_template::fld_name(int p_index) const { return NG__REGISTRATION__COMPLETE::fld_names[p_index]; } +void NG__REGISTRATION__REJECT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gmmCause; fld_vec[5]=&field_t3346; fld_vec[6]=&field_t3502; fld_vec[7]=&field_eapMessage; fld_vec[8]=&field_rejectedNSSAI; fld_vec[9]=&field_cagInfoList; fld_vec[10]=&field_extdRejectedNSSAI; fld_vec[11]=&field_disasterReturnWaitRange; fld_vec[12]=&field_extdCAGInfoList; fld_vec[13]=&field_lowerBoundTimerValue; fld_vec[14]=&field_forbidTAIList__Roaming; fld_vec[15]=&field_forbidTAIList__RegProvService; } + +NG__REGISTRATION__REJECT::NG__REGISTRATION__REJECT() : Record_Type() { init_vec(); } + +NG__REGISTRATION__REJECT::NG__REGISTRATION__REJECT(const NG__REGISTRATION__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gmmCause.is_bound() ) + field_gmmCause = other_value.field_gmmCause; +if (other_value.field_t3346.is_bound() ) + field_t3346 = other_value.field_t3346; +if (other_value.field_t3502.is_bound() ) + field_t3502 = other_value.field_t3502; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_rejectedNSSAI.is_bound() ) + field_rejectedNSSAI = other_value.field_rejectedNSSAI; +if (other_value.field_cagInfoList.is_bound() ) + field_cagInfoList = other_value.field_cagInfoList; +if (other_value.field_extdRejectedNSSAI.is_bound() ) + field_extdRejectedNSSAI = other_value.field_extdRejectedNSSAI; +if (other_value.field_disasterReturnWaitRange.is_bound() ) + field_disasterReturnWaitRange = other_value.field_disasterReturnWaitRange; +if (other_value.field_extdCAGInfoList.is_bound() ) + field_extdCAGInfoList = other_value.field_extdCAGInfoList; +if (other_value.field_lowerBoundTimerValue.is_bound() ) + field_lowerBoundTimerValue = other_value.field_lowerBoundTimerValue; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +NG__REGISTRATION__REJECT::NG__REGISTRATION__REJECT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause, + const OPTIONAL& par_t3346, + const OPTIONAL& par_t3502, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_rejectedNSSAI, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_extdRejectedNSSAI, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_gmmCause(par_gmmCause), + field_t3346(par_t3346), + field_t3502(par_t3502), + field_eapMessage(par_eapMessage), + field_rejectedNSSAI(par_rejectedNSSAI), + field_cagInfoList(par_cagInfoList), + field_extdRejectedNSSAI(par_extdRejectedNSSAI), + field_disasterReturnWaitRange(par_disasterReturnWaitRange), + field_extdCAGInfoList(par_extdCAGInfoList), + field_lowerBoundTimerValue(par_lowerBoundTimerValue), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__REGISTRATION__REJECT::get_descriptor() const { return &NG__REGISTRATION__REJECT_descr_; } +const TTCN_Typedescriptor_t* NG__REGISTRATION__REJECT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &EAP__Message_descr_, &RejectedNSSAI_descr_, &CAGInfoList_descr_, &ExtdRejectedNSSAI_descr_, &RegistrationWaitRange_descr_, &ExtdCAGInfoList_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NG__TrackingAreaIdList_descr_, &NG__TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* NG__REGISTRATION__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__REGISTRATION__REJECT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "gmmCause", "t3346", "t3502", "eapMessage", "rejectedNSSAI", "cagInfoList", "extdRejectedNSSAI", "disasterReturnWaitRange", "extdCAGInfoList", "lowerBoundTimerValue", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* NG__REGISTRATION__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__REGISTRATION__REJECT::optional_indexes[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1 }; +const int* NG__REGISTRATION__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int NG__REGISTRATION__REJECT::optional_indexes_asn[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1 }; +const int* NG__REGISTRATION__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__REGISTRATION__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 16; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +single_value.value_elements[8] = was_any ? new RejectedNSSAI_template(ANY_OR_OMIT) : new RejectedNSSAI_template; +single_value.value_elements[9] = was_any ? new CAGInfoList_template(ANY_OR_OMIT) : new CAGInfoList_template; +single_value.value_elements[10] = was_any ? new ExtdRejectedNSSAI_template(ANY_OR_OMIT) : new ExtdRejectedNSSAI_template; +single_value.value_elements[11] = was_any ? new RegistrationWaitRange_template(ANY_OR_OMIT) : new RegistrationWaitRange_template; +single_value.value_elements[12] = was_any ? new ExtdCAGInfoList_template(ANY_OR_OMIT) : new ExtdCAGInfoList_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[14] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[15] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +} +} + +NG__REGISTRATION__REJECT_template::NG__REGISTRATION__REJECT_template(NG__REGISTRATION__REJECT_template* p_precondition, NG__REGISTRATION__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__REGISTRATION__REJECT_template::NG__REGISTRATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__REGISTRATION__REJECT_template::~NG__REGISTRATION__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__REGISTRATION__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__REGISTRATION__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__REGISTRATION__REJECT_template& NG__REGISTRATION__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__REGISTRATION__REJECT_template& NG__REGISTRATION__REJECT_template::operator=(const NG__REGISTRATION__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__REGISTRATION__REJECT_template& NG__REGISTRATION__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__REGISTRATION__REJECT_template& NG__REGISTRATION__REJECT_template::operator=(const NG__REGISTRATION__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__REGISTRATION__REJECT NG__REGISTRATION__REJECT_template::valueof() const +{ +NG__REGISTRATION__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__REGISTRATION__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__REGISTRATION__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__REGISTRATION__REJECT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__REGISTRATION__REJECT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__REGISTRATION__REJECT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__REGISTRATION__REJECT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__REGISTRATION__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__REGISTRATION__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__REGISTRATION__REJECT_template::gmmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__REGISTRATION__REJECT_template::gmmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REJECT_template::t3346() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REJECT_template::t3346() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REJECT_template::t3502() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REJECT_template::t3502() const { return *(static_cast(get_at(6))); } +EAP__Message_template& NG__REGISTRATION__REJECT_template::eapMessage() { return *(static_cast(get_at(7))); } +const EAP__Message_template& NG__REGISTRATION__REJECT_template::eapMessage() const { return *(static_cast(get_at(7))); } +RejectedNSSAI_template& NG__REGISTRATION__REJECT_template::rejectedNSSAI() { return *(static_cast(get_at(8))); } +const RejectedNSSAI_template& NG__REGISTRATION__REJECT_template::rejectedNSSAI() const { return *(static_cast(get_at(8))); } +CAGInfoList_template& NG__REGISTRATION__REJECT_template::cagInfoList() { return *(static_cast(get_at(9))); } +const CAGInfoList_template& NG__REGISTRATION__REJECT_template::cagInfoList() const { return *(static_cast(get_at(9))); } +ExtdRejectedNSSAI_template& NG__REGISTRATION__REJECT_template::extdRejectedNSSAI() { return *(static_cast(get_at(10))); } +const ExtdRejectedNSSAI_template& NG__REGISTRATION__REJECT_template::extdRejectedNSSAI() const { return *(static_cast(get_at(10))); } +RegistrationWaitRange_template& NG__REGISTRATION__REJECT_template::disasterReturnWaitRange() { return *(static_cast(get_at(11))); } +const RegistrationWaitRange_template& NG__REGISTRATION__REJECT_template::disasterReturnWaitRange() const { return *(static_cast(get_at(11))); } +ExtdCAGInfoList_template& NG__REGISTRATION__REJECT_template::extdCAGInfoList() { return *(static_cast(get_at(12))); } +const ExtdCAGInfoList_template& NG__REGISTRATION__REJECT_template::extdCAGInfoList() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REJECT_template::lowerBoundTimerValue() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__REGISTRATION__REJECT_template::lowerBoundTimerValue() const { return *(static_cast(get_at(13))); } +NG__TrackingAreaIdList_template& NG__REGISTRATION__REJECT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(14))); } +const NG__TrackingAreaIdList_template& NG__REGISTRATION__REJECT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(14))); } +NG__TrackingAreaIdList_template& NG__REGISTRATION__REJECT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(15))); } +const NG__TrackingAreaIdList_template& NG__REGISTRATION__REJECT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(15))); } +const TTCN_Typedescriptor_t* NG__REGISTRATION__REJECT_template::get_descriptor() const { return &NG__REGISTRATION__REJECT_descr_; } +const char* NG__REGISTRATION__REJECT_template::fld_name(int p_index) const { return NG__REGISTRATION__REJECT::fld_names[p_index]; } +void NG__UL__NAS__TRANSPORT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet2; fld_vec[5]=&field_payloadContainerType; fld_vec[6]=&field_payload; fld_vec[7]=&field_pduSessionId; fld_vec[8]=&field_oldPDUSessionId; fld_vec[9]=&field_requestType; fld_vec[10]=&field_s__NSSAI; fld_vec[11]=&field_dnn; fld_vec[12]=&field_additionalInfo; fld_vec[13]=&field_maPDUSessionInfo; fld_vec[14]=&field_releaseAssistanceInd; } + +NG__UL__NAS__TRANSPORT::NG__UL__NAS__TRANSPORT() : Record_Type() { init_vec(); } + +NG__UL__NAS__TRANSPORT::NG__UL__NAS__TRANSPORT(const NG__UL__NAS__TRANSPORT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet2.is_bound() ) + field_spareHalfOctet2 = other_value.field_spareHalfOctet2; +if (other_value.field_payloadContainerType.is_bound() ) + field_payloadContainerType = other_value.field_payloadContainerType; +if (other_value.field_payload.is_bound() ) + field_payload = other_value.field_payload; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_oldPDUSessionId.is_bound() ) + field_oldPDUSessionId = other_value.field_oldPDUSessionId; +if (other_value.field_requestType.is_bound() ) + field_requestType = other_value.field_requestType; +if (other_value.field_s__NSSAI.is_bound() ) + field_s__NSSAI = other_value.field_s__NSSAI; +if (other_value.field_dnn.is_bound() ) + field_dnn = other_value.field_dnn; +if (other_value.field_additionalInfo.is_bound() ) + field_additionalInfo = other_value.field_additionalInfo; +if (other_value.field_maPDUSessionInfo.is_bound() ) + field_maPDUSessionInfo = other_value.field_maPDUSessionInfo; +if (other_value.field_releaseAssistanceInd.is_bound() ) + field_releaseAssistanceInd = other_value.field_releaseAssistanceInd; +init_vec(); +} + +NG__UL__NAS__TRANSPORT::NG__UL__NAS__TRANSPORT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const PayloadContainerType& par_payloadContainerType, + const PayloadContainer& par_payload, + const OPTIONAL& par_pduSessionId, + const OPTIONAL& par_oldPDUSessionId, + const OPTIONAL& par_requestType, + const OPTIONAL& par_s__NSSAI, + const OPTIONAL& par_dnn, + const OPTIONAL& par_additionalInfo, + const OPTIONAL& par_maPDUSessionInfo, + const OPTIONAL& par_releaseAssistanceInd) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_spareHalfOctet2(par_spareHalfOctet2), + field_payloadContainerType(par_payloadContainerType), + field_payload(par_payload), + field_pduSessionId(par_pduSessionId), + field_oldPDUSessionId(par_oldPDUSessionId), + field_requestType(par_requestType), + field_s__NSSAI(par_s__NSSAI), + field_dnn(par_dnn), + field_additionalInfo(par_additionalInfo), + field_maPDUSessionInfo(par_maPDUSessionInfo), + field_releaseAssistanceInd(par_releaseAssistanceInd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__UL__NAS__TRANSPORT::get_descriptor() const { return &NG__UL__NAS__TRANSPORT_descr_; } +const TTCN_Typedescriptor_t* NG__UL__NAS__TRANSPORT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &PayloadContainerType_descr_, &PayloadContainer_descr_, &NG__PDU__SessionId_descr_, &NG__PDU__SessionId_descr_, &NG__Request__Type_descr_, &S__NSSAI__Type_descr_, &DNN_descr_, &NAS__CommonTypeDefs::AdditionalInformation_descr_, &MA__PDUSessionInfo_descr_, &NAS__CommonTypeDefs::ReleaseAssistanceInd_descr_ }; +const TTCN_Typedescriptor_t* NG__UL__NAS__TRANSPORT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__UL__NAS__TRANSPORT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "spareHalfOctet2", "payloadContainerType", "payload", "pduSessionId", "oldPDUSessionId", "requestType", "s_NSSAI", "dnn", "additionalInfo", "maPDUSessionInfo", "releaseAssistanceInd" }; +const char* NG__UL__NAS__TRANSPORT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__UL__NAS__TRANSPORT::optional_indexes[] = { 7, 8, 9, 10, 11, 12, 13, 14, -1 }; +const int* NG__UL__NAS__TRANSPORT::get_optional_indexes() const { return optional_indexes; } + +const int NG__UL__NAS__TRANSPORT::optional_indexes_asn[] = { 7, 8, 9, 10, 11, 12, 13, 14, -1 }; +const int* NG__UL__NAS__TRANSPORT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__UL__NAS__TRANSPORT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 15; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new PayloadContainerType_template(ANY_VALUE) : new PayloadContainerType_template; +single_value.value_elements[6] = was_any ? new PayloadContainer_template(ANY_VALUE) : new PayloadContainer_template; +single_value.value_elements[7] = was_any ? new NG__PDU__SessionId_template(ANY_OR_OMIT) : new NG__PDU__SessionId_template; +single_value.value_elements[8] = was_any ? new NG__PDU__SessionId_template(ANY_OR_OMIT) : new NG__PDU__SessionId_template; +single_value.value_elements[9] = was_any ? new NG__Request__Type_template(ANY_OR_OMIT) : new NG__Request__Type_template; +single_value.value_elements[10] = was_any ? new S__NSSAI__Type_template(ANY_OR_OMIT) : new S__NSSAI__Type_template; +single_value.value_elements[11] = was_any ? new DNN_template(ANY_OR_OMIT) : new DNN_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::AdditionalInformation_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AdditionalInformation_template; +single_value.value_elements[13] = was_any ? new MA__PDUSessionInfo_template(ANY_OR_OMIT) : new MA__PDUSessionInfo_template; +single_value.value_elements[14] = was_any ? new NAS__CommonTypeDefs::ReleaseAssistanceInd_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReleaseAssistanceInd_template; +} +} + +NG__UL__NAS__TRANSPORT_template::NG__UL__NAS__TRANSPORT_template(NG__UL__NAS__TRANSPORT_template* p_precondition, NG__UL__NAS__TRANSPORT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__UL__NAS__TRANSPORT_template::NG__UL__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__UL__NAS__TRANSPORT_template::~NG__UL__NAS__TRANSPORT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__UL__NAS__TRANSPORT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__UL__NAS__TRANSPORT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__UL__NAS__TRANSPORT_template& NG__UL__NAS__TRANSPORT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__UL__NAS__TRANSPORT_template& NG__UL__NAS__TRANSPORT_template::operator=(const NG__UL__NAS__TRANSPORT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__UL__NAS__TRANSPORT_template& NG__UL__NAS__TRANSPORT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__UL__NAS__TRANSPORT_template& NG__UL__NAS__TRANSPORT_template::operator=(const NG__UL__NAS__TRANSPORT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__UL__NAS__TRANSPORT NG__UL__NAS__TRANSPORT_template::valueof() const +{ +NG__UL__NAS__TRANSPORT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__UL__NAS__TRANSPORT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__UL__NAS__TRANSPORT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__UL__NAS__TRANSPORT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__UL__NAS__TRANSPORT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__UL__NAS__TRANSPORT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__UL__NAS__TRANSPORT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__UL__NAS__TRANSPORT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__UL__NAS__TRANSPORT_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& NG__UL__NAS__TRANSPORT_template::spareHalfOctet2() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& NG__UL__NAS__TRANSPORT_template::spareHalfOctet2() const { return *(static_cast(get_at(4))); } +PayloadContainerType_template& NG__UL__NAS__TRANSPORT_template::payloadContainerType() { return *(static_cast(get_at(5))); } +const PayloadContainerType_template& NG__UL__NAS__TRANSPORT_template::payloadContainerType() const { return *(static_cast(get_at(5))); } +PayloadContainer_template& NG__UL__NAS__TRANSPORT_template::payload() { return *(static_cast(get_at(6))); } +const PayloadContainer_template& NG__UL__NAS__TRANSPORT_template::payload() const { return *(static_cast(get_at(6))); } +NG__PDU__SessionId_template& NG__UL__NAS__TRANSPORT_template::pduSessionId() { return *(static_cast(get_at(7))); } +const NG__PDU__SessionId_template& NG__UL__NAS__TRANSPORT_template::pduSessionId() const { return *(static_cast(get_at(7))); } +NG__PDU__SessionId_template& NG__UL__NAS__TRANSPORT_template::oldPDUSessionId() { return *(static_cast(get_at(8))); } +const NG__PDU__SessionId_template& NG__UL__NAS__TRANSPORT_template::oldPDUSessionId() const { return *(static_cast(get_at(8))); } +NG__Request__Type_template& NG__UL__NAS__TRANSPORT_template::requestType() { return *(static_cast(get_at(9))); } +const NG__Request__Type_template& NG__UL__NAS__TRANSPORT_template::requestType() const { return *(static_cast(get_at(9))); } +S__NSSAI__Type_template& NG__UL__NAS__TRANSPORT_template::s__NSSAI() { return *(static_cast(get_at(10))); } +const S__NSSAI__Type_template& NG__UL__NAS__TRANSPORT_template::s__NSSAI() const { return *(static_cast(get_at(10))); } +DNN_template& NG__UL__NAS__TRANSPORT_template::dnn() { return *(static_cast(get_at(11))); } +const DNN_template& NG__UL__NAS__TRANSPORT_template::dnn() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::AdditionalInformation_template& NG__UL__NAS__TRANSPORT_template::additionalInfo() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::AdditionalInformation_template& NG__UL__NAS__TRANSPORT_template::additionalInfo() const { return *(static_cast(get_at(12))); } +MA__PDUSessionInfo_template& NG__UL__NAS__TRANSPORT_template::maPDUSessionInfo() { return *(static_cast(get_at(13))); } +const MA__PDUSessionInfo_template& NG__UL__NAS__TRANSPORT_template::maPDUSessionInfo() const { return *(static_cast(get_at(13))); } +NAS__CommonTypeDefs::ReleaseAssistanceInd_template& NG__UL__NAS__TRANSPORT_template::releaseAssistanceInd() { return *(static_cast(get_at(14))); } +const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& NG__UL__NAS__TRANSPORT_template::releaseAssistanceInd() const { return *(static_cast(get_at(14))); } +const TTCN_Typedescriptor_t* NG__UL__NAS__TRANSPORT_template::get_descriptor() const { return &NG__UL__NAS__TRANSPORT_descr_; } +const char* NG__UL__NAS__TRANSPORT_template::fld_name(int p_index) const { return NG__UL__NAS__TRANSPORT::fld_names[p_index]; } +void NG__PDU__SessionId::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_sessionId; } + +NG__PDU__SessionId::NG__PDU__SessionId() : Record_Type() { init_vec(); } + +NG__PDU__SessionId::NG__PDU__SessionId(const NG__PDU__SessionId& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_sessionId.is_bound() ) + field_sessionId = other_value.field_sessionId; +init_vec(); +} + +NG__PDU__SessionId::NG__PDU__SessionId(const OPTIONAL& par_iei, + const OCTETSTRING& par_sessionId) : field_iei(par_iei), + field_sessionId(par_sessionId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SessionId::get_descriptor() const { return &NG__PDU__SessionId_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SessionId::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SessionId::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SessionId::fld_names[] = { "iei", "sessionId" }; +const char* NG__PDU__SessionId::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SessionId::optional_indexes[] = { 0, -1 }; +const int* NG__PDU__SessionId::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SessionId::optional_indexes_asn[] = { 0, -1 }; +const int* NG__PDU__SessionId::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SessionId_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NG__PDU__SessionId_template::NG__PDU__SessionId_template(NG__PDU__SessionId_template* p_precondition, NG__PDU__SessionId_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SessionId_template::NG__PDU__SessionId_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SessionId_template::~NG__PDU__SessionId_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SessionId_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SessionId* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SessionId_template& NG__PDU__SessionId_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SessionId_template& NG__PDU__SessionId_template::operator=(const NG__PDU__SessionId& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SessionId_template& NG__PDU__SessionId_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SessionId_template& NG__PDU__SessionId_template::operator=(const NG__PDU__SessionId_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SessionId NG__PDU__SessionId_template::valueof() const +{ +NG__PDU__SessionId ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__PDU__SessionId_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__PDU__SessionId_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__PDU__SessionId_template::sessionId() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__PDU__SessionId_template::sessionId() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__PDU__SessionId_template::get_descriptor() const { return &NG__PDU__SessionId_descr_; } +const char* NG__PDU__SessionId_template::fld_name(int p_index) const { return NG__PDU__SessionId::fld_names[p_index]; } +void NG__Request__Type::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_requestValue; } + +NG__Request__Type::NG__Request__Type() : Record_Type() { init_vec(); } + +NG__Request__Type::NG__Request__Type(const NG__Request__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_requestValue.is_bound() ) + field_requestValue = other_value.field_requestValue; +init_vec(); +} + +NG__Request__Type::NG__Request__Type(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_requestValue) : field_iei(par_iei), + field_spare(par_spare), + field_requestValue(par_requestValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__Request__Type::get_descriptor() const { return &NG__Request__Type_descr_; } +const TTCN_Typedescriptor_t* NG__Request__Type::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__Request__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__Request__Type::fld_names[] = { "iei", "spare", "requestValue" }; +const char* NG__Request__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__Request__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NG__Request__Type_template::NG__Request__Type_template(NG__Request__Type_template* p_precondition, NG__Request__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__Request__Type_template::NG__Request__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__Request__Type_template::~NG__Request__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__Request__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__Request__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__Request__Type_template& NG__Request__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__Request__Type_template& NG__Request__Type_template::operator=(const NG__Request__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__Request__Type_template& NG__Request__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__Request__Type_template& NG__Request__Type_template::operator=(const NG__Request__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__Request__Type NG__Request__Type_template::valueof() const +{ +NG__Request__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& NG__Request__Type_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& NG__Request__Type_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NG__Request__Type_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NG__Request__Type_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__Request__Type_template::requestValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__Request__Type_template::requestValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NG__Request__Type_template::get_descriptor() const { return &NG__Request__Type_descr_; } +const char* NG__Request__Type_template::fld_name(int p_index) const { return NG__Request__Type::fld_names[p_index]; } +void S__NSSAI__Type::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_lvPart; } + +S__NSSAI__Type::S__NSSAI__Type() : Record_Type() { init_vec(); } + +S__NSSAI__Type::S__NSSAI__Type(const S__NSSAI__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_lvPart.is_bound() ) + field_lvPart = other_value.field_lvPart; +init_vec(); +} + +S__NSSAI__Type::S__NSSAI__Type(const OPTIONAL& par_iei, + const S__NSSAI__LV& par_lvPart) : field_iei(par_iei), + field_lvPart(par_lvPart) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* S__NSSAI__Type::get_descriptor() const { return &S__NSSAI__Type_descr_; } +const TTCN_Typedescriptor_t* S__NSSAI__Type::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &S__NSSAI__LV_descr_ }; +const TTCN_Typedescriptor_t* S__NSSAI__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* S__NSSAI__Type::fld_names[] = { "iei", "lvPart" }; +const char* S__NSSAI__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int S__NSSAI__Type::optional_indexes[] = { 0, -1 }; +const int* S__NSSAI__Type::get_optional_indexes() const { return optional_indexes; } + +const int S__NSSAI__Type::optional_indexes_asn[] = { 0, -1 }; +const int* S__NSSAI__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void S__NSSAI__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new S__NSSAI__LV_template(ANY_VALUE) : new S__NSSAI__LV_template; +} +} + +S__NSSAI__Type_template::S__NSSAI__Type_template(S__NSSAI__Type_template* p_precondition, S__NSSAI__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +S__NSSAI__Type_template::S__NSSAI__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +S__NSSAI__Type_template::~S__NSSAI__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean S__NSSAI__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const S__NSSAI__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +S__NSSAI__Type_template& S__NSSAI__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +S__NSSAI__Type_template& S__NSSAI__Type_template::operator=(const S__NSSAI__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +S__NSSAI__Type_template& S__NSSAI__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +S__NSSAI__Type_template& S__NSSAI__Type_template::operator=(const S__NSSAI__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +S__NSSAI__Type S__NSSAI__Type_template::valueof() const +{ +S__NSSAI__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& S__NSSAI__Type_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& S__NSSAI__Type_template::iei() const { return *(static_cast(get_at(0))); } +S__NSSAI__LV_template& S__NSSAI__Type_template::lvPart() { return *(static_cast(get_at(1))); } +const S__NSSAI__LV_template& S__NSSAI__Type_template::lvPart() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* S__NSSAI__Type_template::get_descriptor() const { return &S__NSSAI__Type_descr_; } +const char* S__NSSAI__Type_template::fld_name(int p_index) const { return S__NSSAI__Type::fld_names[p_index]; } +void DNN::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_dnnValue; } + +DNN::DNN() : Record_Type() { init_vec(); } + +DNN::DNN(const DNN& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_dnnValue.is_bound() ) + field_dnnValue = other_value.field_dnnValue; +init_vec(); +} + +DNN::DNN(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_dnnValue) : field_iei(par_iei), + field_iel(par_iel), + field_dnnValue(par_dnnValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DNN::get_descriptor() const { return &DNN_descr_; } +const TTCN_Typedescriptor_t* DNN::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* DNN::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DNN::fld_names[] = { "iei", "iel", "dnnValue" }; +const char* DNN::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DNN::optional_indexes[] = { 0, 1, -1 }; +const int* DNN::get_optional_indexes() const { return optional_indexes; } + +const int DNN::optional_indexes_asn[] = { 0, 1, -1 }; +const int* DNN::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DNN_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +DNN_template::DNN_template(DNN_template* p_precondition, DNN_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DNN_template::DNN_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DNN_template::~DNN_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DNN_template::match_dynamic(const Base_Type* match_value) const +{ +const DNN* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DNN_template& DNN_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DNN_template& DNN_template::operator=(const DNN& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DNN_template& DNN_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DNN_template& DNN_template::operator=(const DNN_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DNN DNN_template::valueof() const +{ +DNN ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& DNN_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& DNN_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& DNN_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& DNN_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& DNN_template::dnnValue() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& DNN_template::dnnValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* DNN_template::get_descriptor() const { return &DNN_descr_; } +const char* DNN_template::fld_name(int p_index) const { return DNN::fld_names[p_index]; } +void MA__PDUSessionInfo::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_maPDUSession; } + +MA__PDUSessionInfo::MA__PDUSessionInfo() : Record_Type() { init_vec(); } + +MA__PDUSessionInfo::MA__PDUSessionInfo(const MA__PDUSessionInfo& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_maPDUSession.is_bound() ) + field_maPDUSession = other_value.field_maPDUSession; +init_vec(); +} + +MA__PDUSessionInfo::MA__PDUSessionInfo(const HEXSTRING& par_iei, + const BITSTRING& par_maPDUSession) : field_iei(par_iei), + field_maPDUSession(par_maPDUSession) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MA__PDUSessionInfo::get_descriptor() const { return &MA__PDUSessionInfo_descr_; } +const TTCN_Typedescriptor_t* MA__PDUSessionInfo::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* MA__PDUSessionInfo::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MA__PDUSessionInfo::fld_names[] = { "iei", "maPDUSession" }; +const char* MA__PDUSessionInfo::fld_name(int p_index) const { return fld_names[p_index]; } + +void MA__PDUSessionInfo_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +MA__PDUSessionInfo_template::MA__PDUSessionInfo_template(MA__PDUSessionInfo_template* p_precondition, MA__PDUSessionInfo_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MA__PDUSessionInfo_template::MA__PDUSessionInfo_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MA__PDUSessionInfo_template::~MA__PDUSessionInfo_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MA__PDUSessionInfo_template::match_dynamic(const Base_Type* match_value) const +{ +const MA__PDUSessionInfo* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MA__PDUSessionInfo_template& MA__PDUSessionInfo_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MA__PDUSessionInfo_template& MA__PDUSessionInfo_template::operator=(const MA__PDUSessionInfo& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MA__PDUSessionInfo_template& MA__PDUSessionInfo_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MA__PDUSessionInfo_template& MA__PDUSessionInfo_template::operator=(const MA__PDUSessionInfo_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MA__PDUSessionInfo MA__PDUSessionInfo_template::valueof() const +{ +MA__PDUSessionInfo ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& MA__PDUSessionInfo_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& MA__PDUSessionInfo_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& MA__PDUSessionInfo_template::maPDUSession() { return *(static_cast(get_at(1))); } +const BITSTRING_template& MA__PDUSessionInfo_template::maPDUSession() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* MA__PDUSessionInfo_template::get_descriptor() const { return &MA__PDUSessionInfo_descr_; } +const char* MA__PDUSessionInfo_template::fld_name(int p_index) const { return MA__PDUSessionInfo::fld_names[p_index]; } +void NG__DL__NAS__TRANSPORT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet2; fld_vec[5]=&field_payloadContainerType; fld_vec[6]=&field_payload; fld_vec[7]=&field_pduSessionId; fld_vec[8]=&field_additionalInfo; fld_vec[9]=&field_gmmCause; fld_vec[10]=&field_backOffTimerValue; fld_vec[11]=&field_lowerBoundTimerValue; } + +NG__DL__NAS__TRANSPORT::NG__DL__NAS__TRANSPORT() : Record_Type() { init_vec(); } + +NG__DL__NAS__TRANSPORT::NG__DL__NAS__TRANSPORT(const NG__DL__NAS__TRANSPORT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet2.is_bound() ) + field_spareHalfOctet2 = other_value.field_spareHalfOctet2; +if (other_value.field_payloadContainerType.is_bound() ) + field_payloadContainerType = other_value.field_payloadContainerType; +if (other_value.field_payload.is_bound() ) + field_payload = other_value.field_payload; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_additionalInfo.is_bound() ) + field_additionalInfo = other_value.field_additionalInfo; +if (other_value.field_gmmCause.is_bound() ) + field_gmmCause = other_value.field_gmmCause; +if (other_value.field_backOffTimerValue.is_bound() ) + field_backOffTimerValue = other_value.field_backOffTimerValue; +if (other_value.field_lowerBoundTimerValue.is_bound() ) + field_lowerBoundTimerValue = other_value.field_lowerBoundTimerValue; +init_vec(); +} + +NG__DL__NAS__TRANSPORT::NG__DL__NAS__TRANSPORT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const PayloadContainerType& par_payloadContainerType, + const PayloadContainer& par_payload, + const OPTIONAL& par_pduSessionId, + const OPTIONAL& par_additionalInfo, + const OPTIONAL& par_gmmCause, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_lowerBoundTimerValue) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_spareHalfOctet2(par_spareHalfOctet2), + field_payloadContainerType(par_payloadContainerType), + field_payload(par_payload), + field_pduSessionId(par_pduSessionId), + field_additionalInfo(par_additionalInfo), + field_gmmCause(par_gmmCause), + field_backOffTimerValue(par_backOffTimerValue), + field_lowerBoundTimerValue(par_lowerBoundTimerValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__DL__NAS__TRANSPORT::get_descriptor() const { return &NG__DL__NAS__TRANSPORT_descr_; } +const TTCN_Typedescriptor_t* NG__DL__NAS__TRANSPORT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &PayloadContainerType_descr_, &PayloadContainer_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::AdditionalInformation_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_ }; +const TTCN_Typedescriptor_t* NG__DL__NAS__TRANSPORT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__DL__NAS__TRANSPORT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "spareHalfOctet2", "payloadContainerType", "payload", "pduSessionId", "additionalInfo", "gmmCause", "backOffTimerValue", "lowerBoundTimerValue" }; +const char* NG__DL__NAS__TRANSPORT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__DL__NAS__TRANSPORT::optional_indexes[] = { 7, 8, 9, 10, 11, -1 }; +const int* NG__DL__NAS__TRANSPORT::get_optional_indexes() const { return optional_indexes; } + +const int NG__DL__NAS__TRANSPORT::optional_indexes_asn[] = { 7, 8, 9, 10, 11, -1 }; +const int* NG__DL__NAS__TRANSPORT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__DL__NAS__TRANSPORT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 12; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new PayloadContainerType_template(ANY_VALUE) : new PayloadContainerType_template; +single_value.value_elements[6] = was_any ? new PayloadContainer_template(ANY_VALUE) : new PayloadContainer_template; +single_value.value_elements[7] = was_any ? new NG__PDU__SessionId_template(ANY_OR_OMIT) : new NG__PDU__SessionId_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::AdditionalInformation_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AdditionalInformation_template; +single_value.value_elements[9] = was_any ? new GMM__GSM__Cause_template(ANY_OR_OMIT) : new GMM__GSM__Cause_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +} +} + +NG__DL__NAS__TRANSPORT_template::NG__DL__NAS__TRANSPORT_template(NG__DL__NAS__TRANSPORT_template* p_precondition, NG__DL__NAS__TRANSPORT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__DL__NAS__TRANSPORT_template::NG__DL__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__DL__NAS__TRANSPORT_template::~NG__DL__NAS__TRANSPORT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__DL__NAS__TRANSPORT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__DL__NAS__TRANSPORT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__DL__NAS__TRANSPORT_template& NG__DL__NAS__TRANSPORT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__DL__NAS__TRANSPORT_template& NG__DL__NAS__TRANSPORT_template::operator=(const NG__DL__NAS__TRANSPORT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__DL__NAS__TRANSPORT_template& NG__DL__NAS__TRANSPORT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__DL__NAS__TRANSPORT_template& NG__DL__NAS__TRANSPORT_template::operator=(const NG__DL__NAS__TRANSPORT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__DL__NAS__TRANSPORT NG__DL__NAS__TRANSPORT_template::valueof() const +{ +NG__DL__NAS__TRANSPORT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__DL__NAS__TRANSPORT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__DL__NAS__TRANSPORT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__DL__NAS__TRANSPORT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__DL__NAS__TRANSPORT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__DL__NAS__TRANSPORT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__DL__NAS__TRANSPORT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__DL__NAS__TRANSPORT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__DL__NAS__TRANSPORT_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& NG__DL__NAS__TRANSPORT_template::spareHalfOctet2() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& NG__DL__NAS__TRANSPORT_template::spareHalfOctet2() const { return *(static_cast(get_at(4))); } +PayloadContainerType_template& NG__DL__NAS__TRANSPORT_template::payloadContainerType() { return *(static_cast(get_at(5))); } +const PayloadContainerType_template& NG__DL__NAS__TRANSPORT_template::payloadContainerType() const { return *(static_cast(get_at(5))); } +PayloadContainer_template& NG__DL__NAS__TRANSPORT_template::payload() { return *(static_cast(get_at(6))); } +const PayloadContainer_template& NG__DL__NAS__TRANSPORT_template::payload() const { return *(static_cast(get_at(6))); } +NG__PDU__SessionId_template& NG__DL__NAS__TRANSPORT_template::pduSessionId() { return *(static_cast(get_at(7))); } +const NG__PDU__SessionId_template& NG__DL__NAS__TRANSPORT_template::pduSessionId() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::AdditionalInformation_template& NG__DL__NAS__TRANSPORT_template::additionalInfo() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::AdditionalInformation_template& NG__DL__NAS__TRANSPORT_template::additionalInfo() const { return *(static_cast(get_at(8))); } +GMM__GSM__Cause_template& NG__DL__NAS__TRANSPORT_template::gmmCause() { return *(static_cast(get_at(9))); } +const GMM__GSM__Cause_template& NG__DL__NAS__TRANSPORT_template::gmmCause() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__DL__NAS__TRANSPORT_template::backOffTimerValue() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__DL__NAS__TRANSPORT_template::backOffTimerValue() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__DL__NAS__TRANSPORT_template::lowerBoundTimerValue() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__DL__NAS__TRANSPORT_template::lowerBoundTimerValue() const { return *(static_cast(get_at(11))); } +const TTCN_Typedescriptor_t* NG__DL__NAS__TRANSPORT_template::get_descriptor() const { return &NG__DL__NAS__TRANSPORT_descr_; } +const char* NG__DL__NAS__TRANSPORT_template::fld_name(int p_index) const { return NG__DL__NAS__TRANSPORT::fld_names[p_index]; } +void DeregisterType::init_vec() { fld_vec[0]=&field_switchOff; fld_vec[1]=&field_reRegistration; fld_vec[2]=&field_accessType; } + +DeregisterType::DeregisterType() : Record_Type() { init_vec(); } + +DeregisterType::DeregisterType(const DeregisterType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_switchOff.is_bound() ) + field_switchOff = other_value.field_switchOff; +if (other_value.field_reRegistration.is_bound() ) + field_reRegistration = other_value.field_reRegistration; +if (other_value.field_accessType.is_bound() ) + field_accessType = other_value.field_accessType; +init_vec(); +} + +DeregisterType::DeregisterType(const BITSTRING& par_switchOff, + const BITSTRING& par_reRegistration, + const BITSTRING& par_accessType) : field_switchOff(par_switchOff), + field_reRegistration(par_reRegistration), + field_accessType(par_accessType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DeregisterType::get_descriptor() const { return &DeregisterType_descr_; } +const TTCN_Typedescriptor_t* DeregisterType::fld_descriptors[] = { &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* DeregisterType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DeregisterType::fld_names[] = { "switchOff", "reRegistration", "accessType" }; +const char* DeregisterType::fld_name(int p_index) const { return fld_names[p_index]; } + +void DeregisterType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +DeregisterType_template::DeregisterType_template(DeregisterType_template* p_precondition, DeregisterType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DeregisterType_template::DeregisterType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DeregisterType_template::~DeregisterType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DeregisterType_template::match_dynamic(const Base_Type* match_value) const +{ +const DeregisterType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DeregisterType_template& DeregisterType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DeregisterType_template& DeregisterType_template::operator=(const DeregisterType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DeregisterType_template& DeregisterType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DeregisterType_template& DeregisterType_template::operator=(const DeregisterType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DeregisterType DeregisterType_template::valueof() const +{ +DeregisterType ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& DeregisterType_template::switchOff() { return *(static_cast(get_at(0))); } +const BITSTRING_template& DeregisterType_template::switchOff() const { return *(static_cast(get_at(0))); } +BITSTRING_template& DeregisterType_template::reRegistration() { return *(static_cast(get_at(1))); } +const BITSTRING_template& DeregisterType_template::reRegistration() const { return *(static_cast(get_at(1))); } +BITSTRING_template& DeregisterType_template::accessType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& DeregisterType_template::accessType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* DeregisterType_template::get_descriptor() const { return &DeregisterType_descr_; } +const char* DeregisterType_template::fld_name(int p_index) const { return DeregisterType::fld_names[p_index]; } +void NG__DEREGISTRATION__REQUEST__MO::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_ngKSI; fld_vec[5]=&field_deregistrationType; fld_vec[6]=&field_ngMobileId; } + +NG__DEREGISTRATION__REQUEST__MO::NG__DEREGISTRATION__REQUEST__MO() : Record_Type() { init_vec(); } + +NG__DEREGISTRATION__REQUEST__MO::NG__DEREGISTRATION__REQUEST__MO(const NG__DEREGISTRATION__REQUEST__MO& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_ngKSI.is_bound() ) + field_ngKSI = other_value.field_ngKSI; +if (other_value.field_deregistrationType.is_bound() ) + field_deregistrationType = other_value.field_deregistrationType; +if (other_value.field_ngMobileId.is_bound() ) + field_ngMobileId = other_value.field_ngMobileId; +init_vec(); +} + +NG__DEREGISTRATION__REQUEST__MO::NG__DEREGISTRATION__REQUEST__MO(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngKSI, + const DeregisterType& par_deregistrationType, + const NG__MobileIdentity& par_ngMobileId) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_ngKSI(par_ngKSI), + field_deregistrationType(par_deregistrationType), + field_ngMobileId(par_ngMobileId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__REQUEST__MO::get_descriptor() const { return &NG__DEREGISTRATION__REQUEST__MO_descr_; } +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__REQUEST__MO::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &DeregisterType_descr_, &NG__MobileIdentity_descr_ }; +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__REQUEST__MO::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__DEREGISTRATION__REQUEST__MO::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "ngKSI", "deregistrationType", "ngMobileId" }; +const char* NG__DEREGISTRATION__REQUEST__MO::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__DEREGISTRATION__REQUEST__MO_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[5] = was_any ? new DeregisterType_template(ANY_VALUE) : new DeregisterType_template; +single_value.value_elements[6] = was_any ? new NG__MobileIdentity_template(ANY_VALUE) : new NG__MobileIdentity_template; +} +} + +NG__DEREGISTRATION__REQUEST__MO_template::NG__DEREGISTRATION__REQUEST__MO_template(NG__DEREGISTRATION__REQUEST__MO_template* p_precondition, NG__DEREGISTRATION__REQUEST__MO_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__DEREGISTRATION__REQUEST__MO_template::NG__DEREGISTRATION__REQUEST__MO_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__DEREGISTRATION__REQUEST__MO_template::~NG__DEREGISTRATION__REQUEST__MO_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__DEREGISTRATION__REQUEST__MO_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__DEREGISTRATION__REQUEST__MO* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__DEREGISTRATION__REQUEST__MO_template& NG__DEREGISTRATION__REQUEST__MO_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__DEREGISTRATION__REQUEST__MO_template& NG__DEREGISTRATION__REQUEST__MO_template::operator=(const NG__DEREGISTRATION__REQUEST__MO& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__DEREGISTRATION__REQUEST__MO_template& NG__DEREGISTRATION__REQUEST__MO_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__DEREGISTRATION__REQUEST__MO_template& NG__DEREGISTRATION__REQUEST__MO_template::operator=(const NG__DEREGISTRATION__REQUEST__MO_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__DEREGISTRATION__REQUEST__MO NG__DEREGISTRATION__REQUEST__MO_template::valueof() const +{ +NG__DEREGISTRATION__REQUEST__MO ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__DEREGISTRATION__REQUEST__MO_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__DEREGISTRATION__REQUEST__MO_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__DEREGISTRATION__REQUEST__MO_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__DEREGISTRATION__REQUEST__MO_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__DEREGISTRATION__REQUEST__MO_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__DEREGISTRATION__REQUEST__MO_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__DEREGISTRATION__REQUEST__MO_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__DEREGISTRATION__REQUEST__MO_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__DEREGISTRATION__REQUEST__MO_template::ngKSI() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__DEREGISTRATION__REQUEST__MO_template::ngKSI() const { return *(static_cast(get_at(4))); } +DeregisterType_template& NG__DEREGISTRATION__REQUEST__MO_template::deregistrationType() { return *(static_cast(get_at(5))); } +const DeregisterType_template& NG__DEREGISTRATION__REQUEST__MO_template::deregistrationType() const { return *(static_cast(get_at(5))); } +NG__MobileIdentity_template& NG__DEREGISTRATION__REQUEST__MO_template::ngMobileId() { return *(static_cast(get_at(6))); } +const NG__MobileIdentity_template& NG__DEREGISTRATION__REQUEST__MO_template::ngMobileId() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__REQUEST__MO_template::get_descriptor() const { return &NG__DEREGISTRATION__REQUEST__MO_descr_; } +const char* NG__DEREGISTRATION__REQUEST__MO_template::fld_name(int p_index) const { return NG__DEREGISTRATION__REQUEST__MO::fld_names[p_index]; } +void NG__DEREGISTRATION__ACCEPT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; } + +NG__DEREGISTRATION__ACCEPT::NG__DEREGISTRATION__ACCEPT() : Record_Type() { init_vec(); } + +NG__DEREGISTRATION__ACCEPT::NG__DEREGISTRATION__ACCEPT(const NG__DEREGISTRATION__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +NG__DEREGISTRATION__ACCEPT::NG__DEREGISTRATION__ACCEPT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__ACCEPT::get_descriptor() const { return &NG__DEREGISTRATION__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__ACCEPT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__DEREGISTRATION__ACCEPT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType" }; +const char* NG__DEREGISTRATION__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__DEREGISTRATION__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NG__DEREGISTRATION__ACCEPT_template::NG__DEREGISTRATION__ACCEPT_template(NG__DEREGISTRATION__ACCEPT_template* p_precondition, NG__DEREGISTRATION__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__DEREGISTRATION__ACCEPT_template::NG__DEREGISTRATION__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__DEREGISTRATION__ACCEPT_template::~NG__DEREGISTRATION__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__DEREGISTRATION__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__DEREGISTRATION__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__DEREGISTRATION__ACCEPT_template& NG__DEREGISTRATION__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__DEREGISTRATION__ACCEPT_template& NG__DEREGISTRATION__ACCEPT_template::operator=(const NG__DEREGISTRATION__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__DEREGISTRATION__ACCEPT_template& NG__DEREGISTRATION__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__DEREGISTRATION__ACCEPT_template& NG__DEREGISTRATION__ACCEPT_template::operator=(const NG__DEREGISTRATION__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__DEREGISTRATION__ACCEPT NG__DEREGISTRATION__ACCEPT_template::valueof() const +{ +NG__DEREGISTRATION__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__DEREGISTRATION__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__DEREGISTRATION__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__DEREGISTRATION__ACCEPT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__DEREGISTRATION__ACCEPT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__DEREGISTRATION__ACCEPT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__DEREGISTRATION__ACCEPT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__DEREGISTRATION__ACCEPT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__DEREGISTRATION__ACCEPT_template::messageType() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__ACCEPT_template::get_descriptor() const { return &NG__DEREGISTRATION__ACCEPT_descr_; } +const char* NG__DEREGISTRATION__ACCEPT_template::fld_name(int p_index) const { return NG__DEREGISTRATION__ACCEPT::fld_names[p_index]; } +void NG__DEREGISTRATION__REQUEST__MT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet2; fld_vec[5]=&field_deregistrationType; fld_vec[6]=&field_gmmCause; fld_vec[7]=&field_t3346; fld_vec[8]=&field_rejectedNSSAI; fld_vec[9]=&field_cagInfoList; fld_vec[10]=&field_extdRejectedNSSAI; fld_vec[11]=&field_disasterReturnWaitRange; fld_vec[12]=&field_extdCAGInfoList; fld_vec[13]=&field_lowerBoundTimerValue; fld_vec[14]=&field_forbidTAIList__Roaming; fld_vec[15]=&field_forbidTAIList__RegProvService; } + +NG__DEREGISTRATION__REQUEST__MT::NG__DEREGISTRATION__REQUEST__MT() : Record_Type() { init_vec(); } + +NG__DEREGISTRATION__REQUEST__MT::NG__DEREGISTRATION__REQUEST__MT(const NG__DEREGISTRATION__REQUEST__MT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet2.is_bound() ) + field_spareHalfOctet2 = other_value.field_spareHalfOctet2; +if (other_value.field_deregistrationType.is_bound() ) + field_deregistrationType = other_value.field_deregistrationType; +if (other_value.field_gmmCause.is_bound() ) + field_gmmCause = other_value.field_gmmCause; +if (other_value.field_t3346.is_bound() ) + field_t3346 = other_value.field_t3346; +if (other_value.field_rejectedNSSAI.is_bound() ) + field_rejectedNSSAI = other_value.field_rejectedNSSAI; +if (other_value.field_cagInfoList.is_bound() ) + field_cagInfoList = other_value.field_cagInfoList; +if (other_value.field_extdRejectedNSSAI.is_bound() ) + field_extdRejectedNSSAI = other_value.field_extdRejectedNSSAI; +if (other_value.field_disasterReturnWaitRange.is_bound() ) + field_disasterReturnWaitRange = other_value.field_disasterReturnWaitRange; +if (other_value.field_extdCAGInfoList.is_bound() ) + field_extdCAGInfoList = other_value.field_extdCAGInfoList; +if (other_value.field_lowerBoundTimerValue.is_bound() ) + field_lowerBoundTimerValue = other_value.field_lowerBoundTimerValue; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +NG__DEREGISTRATION__REQUEST__MT::NG__DEREGISTRATION__REQUEST__MT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const DeregisterType& par_deregistrationType, + const OPTIONAL& par_gmmCause, + const OPTIONAL& par_t3346, + const OPTIONAL& par_rejectedNSSAI, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_extdRejectedNSSAI, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_spareHalfOctet2(par_spareHalfOctet2), + field_deregistrationType(par_deregistrationType), + field_gmmCause(par_gmmCause), + field_t3346(par_t3346), + field_rejectedNSSAI(par_rejectedNSSAI), + field_cagInfoList(par_cagInfoList), + field_extdRejectedNSSAI(par_extdRejectedNSSAI), + field_disasterReturnWaitRange(par_disasterReturnWaitRange), + field_extdCAGInfoList(par_extdCAGInfoList), + field_lowerBoundTimerValue(par_lowerBoundTimerValue), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__REQUEST__MT::get_descriptor() const { return &NG__DEREGISTRATION__REQUEST__MT_descr_; } +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__REQUEST__MT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &DeregisterType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &RejectedNSSAI_descr_, &CAGInfoList_descr_, &ExtdRejectedNSSAI_descr_, &RegistrationWaitRange_descr_, &ExtdCAGInfoList_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NG__TrackingAreaIdList_descr_, &NG__TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__REQUEST__MT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__DEREGISTRATION__REQUEST__MT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "spareHalfOctet2", "deregistrationType", "gmmCause", "t3346", "rejectedNSSAI", "cagInfoList", "extdRejectedNSSAI", "disasterReturnWaitRange", "extdCAGInfoList", "lowerBoundTimerValue", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* NG__DEREGISTRATION__REQUEST__MT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__DEREGISTRATION__REQUEST__MT::optional_indexes[] = { 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1 }; +const int* NG__DEREGISTRATION__REQUEST__MT::get_optional_indexes() const { return optional_indexes; } + +const int NG__DEREGISTRATION__REQUEST__MT::optional_indexes_asn[] = { 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1 }; +const int* NG__DEREGISTRATION__REQUEST__MT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__DEREGISTRATION__REQUEST__MT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 16; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new DeregisterType_template(ANY_VALUE) : new DeregisterType_template; +single_value.value_elements[6] = was_any ? new GMM__GSM__Cause_template(ANY_OR_OMIT) : new GMM__GSM__Cause_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[8] = was_any ? new RejectedNSSAI_template(ANY_OR_OMIT) : new RejectedNSSAI_template; +single_value.value_elements[9] = was_any ? new CAGInfoList_template(ANY_OR_OMIT) : new CAGInfoList_template; +single_value.value_elements[10] = was_any ? new ExtdRejectedNSSAI_template(ANY_OR_OMIT) : new ExtdRejectedNSSAI_template; +single_value.value_elements[11] = was_any ? new RegistrationWaitRange_template(ANY_OR_OMIT) : new RegistrationWaitRange_template; +single_value.value_elements[12] = was_any ? new ExtdCAGInfoList_template(ANY_OR_OMIT) : new ExtdCAGInfoList_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[14] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[15] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +} +} + +NG__DEREGISTRATION__REQUEST__MT_template::NG__DEREGISTRATION__REQUEST__MT_template(NG__DEREGISTRATION__REQUEST__MT_template* p_precondition, NG__DEREGISTRATION__REQUEST__MT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__DEREGISTRATION__REQUEST__MT_template::NG__DEREGISTRATION__REQUEST__MT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__DEREGISTRATION__REQUEST__MT_template::~NG__DEREGISTRATION__REQUEST__MT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__DEREGISTRATION__REQUEST__MT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__DEREGISTRATION__REQUEST__MT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__DEREGISTRATION__REQUEST__MT_template& NG__DEREGISTRATION__REQUEST__MT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__DEREGISTRATION__REQUEST__MT_template& NG__DEREGISTRATION__REQUEST__MT_template::operator=(const NG__DEREGISTRATION__REQUEST__MT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__DEREGISTRATION__REQUEST__MT_template& NG__DEREGISTRATION__REQUEST__MT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__DEREGISTRATION__REQUEST__MT_template& NG__DEREGISTRATION__REQUEST__MT_template::operator=(const NG__DEREGISTRATION__REQUEST__MT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__DEREGISTRATION__REQUEST__MT NG__DEREGISTRATION__REQUEST__MT_template::valueof() const +{ +NG__DEREGISTRATION__REQUEST__MT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::spareHalfOctet2() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& NG__DEREGISTRATION__REQUEST__MT_template::spareHalfOctet2() const { return *(static_cast(get_at(4))); } +DeregisterType_template& NG__DEREGISTRATION__REQUEST__MT_template::deregistrationType() { return *(static_cast(get_at(5))); } +const DeregisterType_template& NG__DEREGISTRATION__REQUEST__MT_template::deregistrationType() const { return *(static_cast(get_at(5))); } +GMM__GSM__Cause_template& NG__DEREGISTRATION__REQUEST__MT_template::gmmCause() { return *(static_cast(get_at(6))); } +const GMM__GSM__Cause_template& NG__DEREGISTRATION__REQUEST__MT_template::gmmCause() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__DEREGISTRATION__REQUEST__MT_template::t3346() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__DEREGISTRATION__REQUEST__MT_template::t3346() const { return *(static_cast(get_at(7))); } +RejectedNSSAI_template& NG__DEREGISTRATION__REQUEST__MT_template::rejectedNSSAI() { return *(static_cast(get_at(8))); } +const RejectedNSSAI_template& NG__DEREGISTRATION__REQUEST__MT_template::rejectedNSSAI() const { return *(static_cast(get_at(8))); } +CAGInfoList_template& NG__DEREGISTRATION__REQUEST__MT_template::cagInfoList() { return *(static_cast(get_at(9))); } +const CAGInfoList_template& NG__DEREGISTRATION__REQUEST__MT_template::cagInfoList() const { return *(static_cast(get_at(9))); } +ExtdRejectedNSSAI_template& NG__DEREGISTRATION__REQUEST__MT_template::extdRejectedNSSAI() { return *(static_cast(get_at(10))); } +const ExtdRejectedNSSAI_template& NG__DEREGISTRATION__REQUEST__MT_template::extdRejectedNSSAI() const { return *(static_cast(get_at(10))); } +RegistrationWaitRange_template& NG__DEREGISTRATION__REQUEST__MT_template::disasterReturnWaitRange() { return *(static_cast(get_at(11))); } +const RegistrationWaitRange_template& NG__DEREGISTRATION__REQUEST__MT_template::disasterReturnWaitRange() const { return *(static_cast(get_at(11))); } +ExtdCAGInfoList_template& NG__DEREGISTRATION__REQUEST__MT_template::extdCAGInfoList() { return *(static_cast(get_at(12))); } +const ExtdCAGInfoList_template& NG__DEREGISTRATION__REQUEST__MT_template::extdCAGInfoList() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__DEREGISTRATION__REQUEST__MT_template::lowerBoundTimerValue() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__DEREGISTRATION__REQUEST__MT_template::lowerBoundTimerValue() const { return *(static_cast(get_at(13))); } +NG__TrackingAreaIdList_template& NG__DEREGISTRATION__REQUEST__MT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(14))); } +const NG__TrackingAreaIdList_template& NG__DEREGISTRATION__REQUEST__MT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(14))); } +NG__TrackingAreaIdList_template& NG__DEREGISTRATION__REQUEST__MT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(15))); } +const NG__TrackingAreaIdList_template& NG__DEREGISTRATION__REQUEST__MT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(15))); } +const TTCN_Typedescriptor_t* NG__DEREGISTRATION__REQUEST__MT_template::get_descriptor() const { return &NG__DEREGISTRATION__REQUEST__MT_descr_; } +const char* NG__DEREGISTRATION__REQUEST__MT_template::fld_name(int p_index) const { return NG__DEREGISTRATION__REQUEST__MT::fld_names[p_index]; } +void NG__SERVICE__REQUEST::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_serviceType; fld_vec[5]=&field_ngKSI; fld_vec[6]=&field_s__TMSI; fld_vec[7]=&field_ulDataStatus; fld_vec[8]=&field_pduSessionStatus; fld_vec[9]=&field_allowedPDUSessionStatus; fld_vec[10]=&field_nasMsg; fld_vec[11]=&field_ueRequestType; fld_vec[12]=&field_pagingRestrict; } + +NG__SERVICE__REQUEST::NG__SERVICE__REQUEST() : Record_Type() { init_vec(); } + +NG__SERVICE__REQUEST::NG__SERVICE__REQUEST(const NG__SERVICE__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_serviceType.is_bound() ) + field_serviceType = other_value.field_serviceType; +if (other_value.field_ngKSI.is_bound() ) + field_ngKSI = other_value.field_ngKSI; +if (other_value.field_s__TMSI.is_bound() ) + field_s__TMSI = other_value.field_s__TMSI; +if (other_value.field_ulDataStatus.is_bound() ) + field_ulDataStatus = other_value.field_ulDataStatus; +if (other_value.field_pduSessionStatus.is_bound() ) + field_pduSessionStatus = other_value.field_pduSessionStatus; +if (other_value.field_allowedPDUSessionStatus.is_bound() ) + field_allowedPDUSessionStatus = other_value.field_allowedPDUSessionStatus; +if (other_value.field_nasMsg.is_bound() ) + field_nasMsg = other_value.field_nasMsg; +if (other_value.field_ueRequestType.is_bound() ) + field_ueRequestType = other_value.field_ueRequestType; +if (other_value.field_pagingRestrict.is_bound() ) + field_pagingRestrict = other_value.field_pagingRestrict; +init_vec(); +} + +NG__SERVICE__REQUEST::NG__SERVICE__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const BITSTRING& par_serviceType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngKSI, + const NG__MobileIdentity& par_s__TMSI, + const OPTIONAL& par_ulDataStatus, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_allowedPDUSessionStatus, + const OPTIONAL& par_nasMsg, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestrict) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_serviceType(par_serviceType), + field_ngKSI(par_ngKSI), + field_s__TMSI(par_s__TMSI), + field_ulDataStatus(par_ulDataStatus), + field_pduSessionStatus(par_pduSessionStatus), + field_allowedPDUSessionStatus(par_allowedPDUSessionStatus), + field_nasMsg(par_nasMsg), + field_ueRequestType(par_ueRequestType), + field_pagingRestrict(par_pagingRestrict) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__SERVICE__REQUEST::get_descriptor() const { return &NG__SERVICE__REQUEST_descr_; } +const TTCN_Typedescriptor_t* NG__SERVICE__REQUEST::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::B4__Type_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &NG__MobileIdentity_descr_, &PDU__SessionStatus_descr_, &PDU__SessionStatus_descr_, &PDU__SessionStatus_descr_, &NAS__CommonTypeDefs::ReplayedNASMessageContainer_descr_, &NAS__CommonTypeDefs::UE__RequestType_descr_, &NG__PagingRestriction_descr_ }; +const TTCN_Typedescriptor_t* NG__SERVICE__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__SERVICE__REQUEST::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "serviceType", "ngKSI", "s_TMSI", "ulDataStatus", "pduSessionStatus", "allowedPDUSessionStatus", "nasMsg", "ueRequestType", "pagingRestrict" }; +const char* NG__SERVICE__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__SERVICE__REQUEST::optional_indexes[] = { 7, 8, 9, 10, 11, 12, -1 }; +const int* NG__SERVICE__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int NG__SERVICE__REQUEST::optional_indexes_asn[] = { 7, 8, 9, 10, 11, 12, -1 }; +const int* NG__SERVICE__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__SERVICE__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 13; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[6] = was_any ? new NG__MobileIdentity_template(ANY_VALUE) : new NG__MobileIdentity_template; +single_value.value_elements[7] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[8] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[9] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::UE__RequestType_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__RequestType_template; +single_value.value_elements[12] = was_any ? new NG__PagingRestriction_template(ANY_OR_OMIT) : new NG__PagingRestriction_template; +} +} + +NG__SERVICE__REQUEST_template::NG__SERVICE__REQUEST_template(NG__SERVICE__REQUEST_template* p_precondition, NG__SERVICE__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__SERVICE__REQUEST_template::NG__SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__SERVICE__REQUEST_template::~NG__SERVICE__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__SERVICE__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__SERVICE__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__SERVICE__REQUEST_template& NG__SERVICE__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__SERVICE__REQUEST_template& NG__SERVICE__REQUEST_template::operator=(const NG__SERVICE__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__SERVICE__REQUEST_template& NG__SERVICE__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__SERVICE__REQUEST_template& NG__SERVICE__REQUEST_template::operator=(const NG__SERVICE__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__SERVICE__REQUEST NG__SERVICE__REQUEST_template::valueof() const +{ +NG__SERVICE__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__SERVICE__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__SERVICE__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__SERVICE__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__SERVICE__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__SERVICE__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__SERVICE__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__SERVICE__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__SERVICE__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NG__SERVICE__REQUEST_template::serviceType() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NG__SERVICE__REQUEST_template::serviceType() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__SERVICE__REQUEST_template::ngKSI() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__SERVICE__REQUEST_template::ngKSI() const { return *(static_cast(get_at(5))); } +NG__MobileIdentity_template& NG__SERVICE__REQUEST_template::s__TMSI() { return *(static_cast(get_at(6))); } +const NG__MobileIdentity_template& NG__SERVICE__REQUEST_template::s__TMSI() const { return *(static_cast(get_at(6))); } +PDU__SessionStatus_template& NG__SERVICE__REQUEST_template::ulDataStatus() { return *(static_cast(get_at(7))); } +const PDU__SessionStatus_template& NG__SERVICE__REQUEST_template::ulDataStatus() const { return *(static_cast(get_at(7))); } +PDU__SessionStatus_template& NG__SERVICE__REQUEST_template::pduSessionStatus() { return *(static_cast(get_at(8))); } +const PDU__SessionStatus_template& NG__SERVICE__REQUEST_template::pduSessionStatus() const { return *(static_cast(get_at(8))); } +PDU__SessionStatus_template& NG__SERVICE__REQUEST_template::allowedPDUSessionStatus() { return *(static_cast(get_at(9))); } +const PDU__SessionStatus_template& NG__SERVICE__REQUEST_template::allowedPDUSessionStatus() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& NG__SERVICE__REQUEST_template::nasMsg() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& NG__SERVICE__REQUEST_template::nasMsg() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::UE__RequestType_template& NG__SERVICE__REQUEST_template::ueRequestType() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::UE__RequestType_template& NG__SERVICE__REQUEST_template::ueRequestType() const { return *(static_cast(get_at(11))); } +NG__PagingRestriction_template& NG__SERVICE__REQUEST_template::pagingRestrict() { return *(static_cast(get_at(12))); } +const NG__PagingRestriction_template& NG__SERVICE__REQUEST_template::pagingRestrict() const { return *(static_cast(get_at(12))); } +const TTCN_Typedescriptor_t* NG__SERVICE__REQUEST_template::get_descriptor() const { return &NG__SERVICE__REQUEST_descr_; } +const char* NG__SERVICE__REQUEST_template::fld_name(int p_index) const { return NG__SERVICE__REQUEST::fld_names[p_index]; } +void NG__SERVICE__ACCEPT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_pduSessionStatus; fld_vec[5]=&field_pduSessionReactivationResult; fld_vec[6]=&field_pduSessionReactResultError; fld_vec[7]=&field_eapMessage; fld_vec[8]=&field_t3448; fld_vec[9]=&field_ngAddRequestResult; fld_vec[10]=&field_forbidTAIList__Roaming; fld_vec[11]=&field_forbidTAIList__RegProvService; } + +NG__SERVICE__ACCEPT::NG__SERVICE__ACCEPT() : Record_Type() { init_vec(); } + +NG__SERVICE__ACCEPT::NG__SERVICE__ACCEPT(const NG__SERVICE__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_pduSessionStatus.is_bound() ) + field_pduSessionStatus = other_value.field_pduSessionStatus; +if (other_value.field_pduSessionReactivationResult.is_bound() ) + field_pduSessionReactivationResult = other_value.field_pduSessionReactivationResult; +if (other_value.field_pduSessionReactResultError.is_bound() ) + field_pduSessionReactResultError = other_value.field_pduSessionReactResultError; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_t3448.is_bound() ) + field_t3448 = other_value.field_t3448; +if (other_value.field_ngAddRequestResult.is_bound() ) + field_ngAddRequestResult = other_value.field_ngAddRequestResult; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +NG__SERVICE__ACCEPT::NG__SERVICE__ACCEPT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_pduSessionReactivationResult, + const OPTIONAL& par_pduSessionReactResultError, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_t3448, + const OPTIONAL& par_ngAddRequestResult, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_pduSessionStatus(par_pduSessionStatus), + field_pduSessionReactivationResult(par_pduSessionReactivationResult), + field_pduSessionReactResultError(par_pduSessionReactResultError), + field_eapMessage(par_eapMessage), + field_t3448(par_t3448), + field_ngAddRequestResult(par_ngAddRequestResult), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__SERVICE__ACCEPT::get_descriptor() const { return &NG__SERVICE__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* NG__SERVICE__ACCEPT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &PDU__SessionStatus_descr_, &PDU__SessionStatus_descr_, &PDU__SessionReactivationError_descr_, &EAP__Message_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NG__AddReqResult_descr_, &NG__TrackingAreaIdList_descr_, &NG__TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* NG__SERVICE__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__SERVICE__ACCEPT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "pduSessionStatus", "pduSessionReactivationResult", "pduSessionReactResultError", "eapMessage", "t3448", "ngAddRequestResult", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* NG__SERVICE__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__SERVICE__ACCEPT::optional_indexes[] = { 4, 5, 6, 7, 8, 9, 10, 11, -1 }; +const int* NG__SERVICE__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int NG__SERVICE__ACCEPT::optional_indexes_asn[] = { 4, 5, 6, 7, 8, 9, 10, 11, -1 }; +const int* NG__SERVICE__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__SERVICE__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 12; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[5] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[6] = was_any ? new PDU__SessionReactivationError_template(ANY_OR_OMIT) : new PDU__SessionReactivationError_template; +single_value.value_elements[7] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[9] = was_any ? new NG__AddReqResult_template(ANY_OR_OMIT) : new NG__AddReqResult_template; +single_value.value_elements[10] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[11] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +} +} + +NG__SERVICE__ACCEPT_template::NG__SERVICE__ACCEPT_template(NG__SERVICE__ACCEPT_template* p_precondition, NG__SERVICE__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__SERVICE__ACCEPT_template::NG__SERVICE__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__SERVICE__ACCEPT_template::~NG__SERVICE__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__SERVICE__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__SERVICE__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__SERVICE__ACCEPT_template& NG__SERVICE__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__SERVICE__ACCEPT_template& NG__SERVICE__ACCEPT_template::operator=(const NG__SERVICE__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__SERVICE__ACCEPT_template& NG__SERVICE__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__SERVICE__ACCEPT_template& NG__SERVICE__ACCEPT_template::operator=(const NG__SERVICE__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__SERVICE__ACCEPT NG__SERVICE__ACCEPT_template::valueof() const +{ +NG__SERVICE__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__SERVICE__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__SERVICE__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__SERVICE__ACCEPT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__SERVICE__ACCEPT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__SERVICE__ACCEPT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__SERVICE__ACCEPT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__SERVICE__ACCEPT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__SERVICE__ACCEPT_template::messageType() const { return *(static_cast(get_at(3))); } +PDU__SessionStatus_template& NG__SERVICE__ACCEPT_template::pduSessionStatus() { return *(static_cast(get_at(4))); } +const PDU__SessionStatus_template& NG__SERVICE__ACCEPT_template::pduSessionStatus() const { return *(static_cast(get_at(4))); } +PDU__SessionStatus_template& NG__SERVICE__ACCEPT_template::pduSessionReactivationResult() { return *(static_cast(get_at(5))); } +const PDU__SessionStatus_template& NG__SERVICE__ACCEPT_template::pduSessionReactivationResult() const { return *(static_cast(get_at(5))); } +PDU__SessionReactivationError_template& NG__SERVICE__ACCEPT_template::pduSessionReactResultError() { return *(static_cast(get_at(6))); } +const PDU__SessionReactivationError_template& NG__SERVICE__ACCEPT_template::pduSessionReactResultError() const { return *(static_cast(get_at(6))); } +EAP__Message_template& NG__SERVICE__ACCEPT_template::eapMessage() { return *(static_cast(get_at(7))); } +const EAP__Message_template& NG__SERVICE__ACCEPT_template::eapMessage() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__SERVICE__ACCEPT_template::t3448() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__SERVICE__ACCEPT_template::t3448() const { return *(static_cast(get_at(8))); } +NG__AddReqResult_template& NG__SERVICE__ACCEPT_template::ngAddRequestResult() { return *(static_cast(get_at(9))); } +const NG__AddReqResult_template& NG__SERVICE__ACCEPT_template::ngAddRequestResult() const { return *(static_cast(get_at(9))); } +NG__TrackingAreaIdList_template& NG__SERVICE__ACCEPT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(10))); } +const NG__TrackingAreaIdList_template& NG__SERVICE__ACCEPT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(10))); } +NG__TrackingAreaIdList_template& NG__SERVICE__ACCEPT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(11))); } +const NG__TrackingAreaIdList_template& NG__SERVICE__ACCEPT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(11))); } +const TTCN_Typedescriptor_t* NG__SERVICE__ACCEPT_template::get_descriptor() const { return &NG__SERVICE__ACCEPT_descr_; } +const char* NG__SERVICE__ACCEPT_template::fld_name(int p_index) const { return NG__SERVICE__ACCEPT::fld_names[p_index]; } +void NG__SERVICE__REJECT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gmmCause; fld_vec[5]=&field_pduSessionStatus; fld_vec[6]=&field_t3346; fld_vec[7]=&field_eapMessage; fld_vec[8]=&field_t3448; fld_vec[9]=&field_cagInfoList; fld_vec[10]=&field_disasterReturnWaitRange; fld_vec[11]=&field_extdCAGInfoList; fld_vec[12]=&field_lowerBoundTimerValue; fld_vec[13]=&field_forbidTAIList__Roaming; fld_vec[14]=&field_forbidTAIList__RegProvService; } + +NG__SERVICE__REJECT::NG__SERVICE__REJECT() : Record_Type() { init_vec(); } + +NG__SERVICE__REJECT::NG__SERVICE__REJECT(const NG__SERVICE__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gmmCause.is_bound() ) + field_gmmCause = other_value.field_gmmCause; +if (other_value.field_pduSessionStatus.is_bound() ) + field_pduSessionStatus = other_value.field_pduSessionStatus; +if (other_value.field_t3346.is_bound() ) + field_t3346 = other_value.field_t3346; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_t3448.is_bound() ) + field_t3448 = other_value.field_t3448; +if (other_value.field_cagInfoList.is_bound() ) + field_cagInfoList = other_value.field_cagInfoList; +if (other_value.field_disasterReturnWaitRange.is_bound() ) + field_disasterReturnWaitRange = other_value.field_disasterReturnWaitRange; +if (other_value.field_extdCAGInfoList.is_bound() ) + field_extdCAGInfoList = other_value.field_extdCAGInfoList; +if (other_value.field_lowerBoundTimerValue.is_bound() ) + field_lowerBoundTimerValue = other_value.field_lowerBoundTimerValue; +if (other_value.field_forbidTAIList__Roaming.is_bound() ) + field_forbidTAIList__Roaming = other_value.field_forbidTAIList__Roaming; +if (other_value.field_forbidTAIList__RegProvService.is_bound() ) + field_forbidTAIList__RegProvService = other_value.field_forbidTAIList__RegProvService; +init_vec(); +} + +NG__SERVICE__REJECT::NG__SERVICE__REJECT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_t3346, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_t3448, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_gmmCause(par_gmmCause), + field_pduSessionStatus(par_pduSessionStatus), + field_t3346(par_t3346), + field_eapMessage(par_eapMessage), + field_t3448(par_t3448), + field_cagInfoList(par_cagInfoList), + field_disasterReturnWaitRange(par_disasterReturnWaitRange), + field_extdCAGInfoList(par_extdCAGInfoList), + field_lowerBoundTimerValue(par_lowerBoundTimerValue), + field_forbidTAIList__Roaming(par_forbidTAIList__Roaming), + field_forbidTAIList__RegProvService(par_forbidTAIList__RegProvService) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__SERVICE__REJECT::get_descriptor() const { return &NG__SERVICE__REJECT_descr_; } +const TTCN_Typedescriptor_t* NG__SERVICE__REJECT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &PDU__SessionStatus_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &EAP__Message_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &CAGInfoList_descr_, &RegistrationWaitRange_descr_, &ExtdCAGInfoList_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NG__TrackingAreaIdList_descr_, &NG__TrackingAreaIdList_descr_ }; +const TTCN_Typedescriptor_t* NG__SERVICE__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__SERVICE__REJECT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "gmmCause", "pduSessionStatus", "t3346", "eapMessage", "t3448", "cagInfoList", "disasterReturnWaitRange", "extdCAGInfoList", "lowerBoundTimerValue", "forbidTAIList_Roaming", "forbidTAIList_RegProvService" }; +const char* NG__SERVICE__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__SERVICE__REJECT::optional_indexes[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1 }; +const int* NG__SERVICE__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int NG__SERVICE__REJECT::optional_indexes_asn[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1 }; +const int* NG__SERVICE__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__SERVICE__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 15; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[7] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[9] = was_any ? new CAGInfoList_template(ANY_OR_OMIT) : new CAGInfoList_template; +single_value.value_elements[10] = was_any ? new RegistrationWaitRange_template(ANY_OR_OMIT) : new RegistrationWaitRange_template; +single_value.value_elements[11] = was_any ? new ExtdCAGInfoList_template(ANY_OR_OMIT) : new ExtdCAGInfoList_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[13] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[14] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +} +} + +NG__SERVICE__REJECT_template::NG__SERVICE__REJECT_template(NG__SERVICE__REJECT_template* p_precondition, NG__SERVICE__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__SERVICE__REJECT_template::NG__SERVICE__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__SERVICE__REJECT_template::~NG__SERVICE__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__SERVICE__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__SERVICE__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__SERVICE__REJECT_template& NG__SERVICE__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__SERVICE__REJECT_template& NG__SERVICE__REJECT_template::operator=(const NG__SERVICE__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__SERVICE__REJECT_template& NG__SERVICE__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__SERVICE__REJECT_template& NG__SERVICE__REJECT_template::operator=(const NG__SERVICE__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__SERVICE__REJECT NG__SERVICE__REJECT_template::valueof() const +{ +NG__SERVICE__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__SERVICE__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__SERVICE__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__SERVICE__REJECT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__SERVICE__REJECT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__SERVICE__REJECT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__SERVICE__REJECT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__SERVICE__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__SERVICE__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__SERVICE__REJECT_template::gmmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__SERVICE__REJECT_template::gmmCause() const { return *(static_cast(get_at(4))); } +PDU__SessionStatus_template& NG__SERVICE__REJECT_template::pduSessionStatus() { return *(static_cast(get_at(5))); } +const PDU__SessionStatus_template& NG__SERVICE__REJECT_template::pduSessionStatus() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__SERVICE__REJECT_template::t3346() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__SERVICE__REJECT_template::t3346() const { return *(static_cast(get_at(6))); } +EAP__Message_template& NG__SERVICE__REJECT_template::eapMessage() { return *(static_cast(get_at(7))); } +const EAP__Message_template& NG__SERVICE__REJECT_template::eapMessage() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__SERVICE__REJECT_template::t3448() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__SERVICE__REJECT_template::t3448() const { return *(static_cast(get_at(8))); } +CAGInfoList_template& NG__SERVICE__REJECT_template::cagInfoList() { return *(static_cast(get_at(9))); } +const CAGInfoList_template& NG__SERVICE__REJECT_template::cagInfoList() const { return *(static_cast(get_at(9))); } +RegistrationWaitRange_template& NG__SERVICE__REJECT_template::disasterReturnWaitRange() { return *(static_cast(get_at(10))); } +const RegistrationWaitRange_template& NG__SERVICE__REJECT_template::disasterReturnWaitRange() const { return *(static_cast(get_at(10))); } +ExtdCAGInfoList_template& NG__SERVICE__REJECT_template::extdCAGInfoList() { return *(static_cast(get_at(11))); } +const ExtdCAGInfoList_template& NG__SERVICE__REJECT_template::extdCAGInfoList() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__SERVICE__REJECT_template::lowerBoundTimerValue() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__SERVICE__REJECT_template::lowerBoundTimerValue() const { return *(static_cast(get_at(12))); } +NG__TrackingAreaIdList_template& NG__SERVICE__REJECT_template::forbidTAIList__Roaming() { return *(static_cast(get_at(13))); } +const NG__TrackingAreaIdList_template& NG__SERVICE__REJECT_template::forbidTAIList__Roaming() const { return *(static_cast(get_at(13))); } +NG__TrackingAreaIdList_template& NG__SERVICE__REJECT_template::forbidTAIList__RegProvService() { return *(static_cast(get_at(14))); } +const NG__TrackingAreaIdList_template& NG__SERVICE__REJECT_template::forbidTAIList__RegProvService() const { return *(static_cast(get_at(14))); } +const TTCN_Typedescriptor_t* NG__SERVICE__REJECT_template::get_descriptor() const { return &NG__SERVICE__REJECT_descr_; } +const char* NG__SERVICE__REJECT_template::fld_name(int p_index) const { return NG__SERVICE__REJECT::fld_names[p_index]; } +void NG__CONFIGURATION__UPDATE__COMMAND::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_configUpdateInd; fld_vec[5]=&field_guti; fld_vec[6]=&field_taiList; fld_vec[7]=&field_allowedNSSAI; fld_vec[8]=&field_saiList; fld_vec[9]=&field_fullNetworkName; fld_vec[10]=&field_shortNetworkName; fld_vec[11]=&field_localTimeZone; fld_vec[12]=&field_localTimeZoneAndTime; fld_vec[13]=&field_daylightSavingTime; fld_vec[14]=&field_ladnInfo; fld_vec[15]=&field_micoInd; fld_vec[16]=&field_networkSlicingInd; fld_vec[17]=&field_configuredNSSAI; fld_vec[18]=&field_rejectedNSSAI; fld_vec[19]=&field_operatorAccessCatDefs; fld_vec[20]=&field_smsInd; fld_vec[21]=&field_t3447Value; fld_vec[22]=&field_cagInfoList; fld_vec[23]=&field_ueRadioCapabilityId; fld_vec[24]=&field_ueRadioCapIdDeletionInd; fld_vec[25]=&field_registrationResult; fld_vec[26]=&field_truncatedS__TMSIConfig; fld_vec[27]=&field_addConfigInfo; fld_vec[28]=&field_extdRejectedNSSAI; fld_vec[29]=&field_serviceLvlAA; fld_vec[30]=&field_nssrgInfo; fld_vec[31]=&field_disasterRoamingWaitRange; fld_vec[32]=&field_disasterReturnWaitRange; fld_vec[33]=&field_disasterPLMNList; fld_vec[34]=&field_extdCAGInfoList; fld_vec[35]=&field_updatedPEIPS__AssistInfo; fld_vec[36]=&field_nsagInfo; fld_vec[37]=&field_priorityInd; } + +NG__CONFIGURATION__UPDATE__COMMAND::NG__CONFIGURATION__UPDATE__COMMAND() : Record_Type() { init_vec(); } + +NG__CONFIGURATION__UPDATE__COMMAND::NG__CONFIGURATION__UPDATE__COMMAND(const NG__CONFIGURATION__UPDATE__COMMAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_configUpdateInd.is_bound() ) + field_configUpdateInd = other_value.field_configUpdateInd; +if (other_value.field_guti.is_bound() ) + field_guti = other_value.field_guti; +if (other_value.field_taiList.is_bound() ) + field_taiList = other_value.field_taiList; +if (other_value.field_allowedNSSAI.is_bound() ) + field_allowedNSSAI = other_value.field_allowedNSSAI; +if (other_value.field_saiList.is_bound() ) + field_saiList = other_value.field_saiList; +if (other_value.field_fullNetworkName.is_bound() ) + field_fullNetworkName = other_value.field_fullNetworkName; +if (other_value.field_shortNetworkName.is_bound() ) + field_shortNetworkName = other_value.field_shortNetworkName; +if (other_value.field_localTimeZone.is_bound() ) + field_localTimeZone = other_value.field_localTimeZone; +if (other_value.field_localTimeZoneAndTime.is_bound() ) + field_localTimeZoneAndTime = other_value.field_localTimeZoneAndTime; +if (other_value.field_daylightSavingTime.is_bound() ) + field_daylightSavingTime = other_value.field_daylightSavingTime; +if (other_value.field_ladnInfo.is_bound() ) + field_ladnInfo = other_value.field_ladnInfo; +if (other_value.field_micoInd.is_bound() ) + field_micoInd = other_value.field_micoInd; +if (other_value.field_networkSlicingInd.is_bound() ) + field_networkSlicingInd = other_value.field_networkSlicingInd; +if (other_value.field_configuredNSSAI.is_bound() ) + field_configuredNSSAI = other_value.field_configuredNSSAI; +if (other_value.field_rejectedNSSAI.is_bound() ) + field_rejectedNSSAI = other_value.field_rejectedNSSAI; +if (other_value.field_operatorAccessCatDefs.is_bound() ) + field_operatorAccessCatDefs = other_value.field_operatorAccessCatDefs; +if (other_value.field_smsInd.is_bound() ) + field_smsInd = other_value.field_smsInd; +if (other_value.field_t3447Value.is_bound() ) + field_t3447Value = other_value.field_t3447Value; +if (other_value.field_cagInfoList.is_bound() ) + field_cagInfoList = other_value.field_cagInfoList; +if (other_value.field_ueRadioCapabilityId.is_bound() ) + field_ueRadioCapabilityId = other_value.field_ueRadioCapabilityId; +if (other_value.field_ueRadioCapIdDeletionInd.is_bound() ) + field_ueRadioCapIdDeletionInd = other_value.field_ueRadioCapIdDeletionInd; +if (other_value.field_registrationResult.is_bound() ) + field_registrationResult = other_value.field_registrationResult; +if (other_value.field_truncatedS__TMSIConfig.is_bound() ) + field_truncatedS__TMSIConfig = other_value.field_truncatedS__TMSIConfig; +if (other_value.field_addConfigInfo.is_bound() ) + field_addConfigInfo = other_value.field_addConfigInfo; +if (other_value.field_extdRejectedNSSAI.is_bound() ) + field_extdRejectedNSSAI = other_value.field_extdRejectedNSSAI; +if (other_value.field_serviceLvlAA.is_bound() ) + field_serviceLvlAA = other_value.field_serviceLvlAA; +if (other_value.field_nssrgInfo.is_bound() ) + field_nssrgInfo = other_value.field_nssrgInfo; +if (other_value.field_disasterRoamingWaitRange.is_bound() ) + field_disasterRoamingWaitRange = other_value.field_disasterRoamingWaitRange; +if (other_value.field_disasterReturnWaitRange.is_bound() ) + field_disasterReturnWaitRange = other_value.field_disasterReturnWaitRange; +if (other_value.field_disasterPLMNList.is_bound() ) + field_disasterPLMNList = other_value.field_disasterPLMNList; +if (other_value.field_extdCAGInfoList.is_bound() ) + field_extdCAGInfoList = other_value.field_extdCAGInfoList; +if (other_value.field_updatedPEIPS__AssistInfo.is_bound() ) + field_updatedPEIPS__AssistInfo = other_value.field_updatedPEIPS__AssistInfo; +if (other_value.field_nsagInfo.is_bound() ) + field_nsagInfo = other_value.field_nsagInfo; +if (other_value.field_priorityInd.is_bound() ) + field_priorityInd = other_value.field_priorityInd; +init_vec(); +} + +NG__CONFIGURATION__UPDATE__COMMAND::NG__CONFIGURATION__UPDATE__COMMAND(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_configUpdateInd, + const OPTIONAL& par_guti, + const OPTIONAL& par_taiList, + const OPTIONAL& par_allowedNSSAI, + const OPTIONAL& par_saiList, + const OPTIONAL& par_fullNetworkName, + const OPTIONAL& par_shortNetworkName, + const OPTIONAL& par_localTimeZone, + const OPTIONAL& par_localTimeZoneAndTime, + const OPTIONAL& par_daylightSavingTime, + const OPTIONAL& par_ladnInfo, + const OPTIONAL& par_micoInd, + const OPTIONAL& par_networkSlicingInd, + const OPTIONAL& par_configuredNSSAI, + const OPTIONAL& par_rejectedNSSAI, + const OPTIONAL& par_operatorAccessCatDefs, + const OPTIONAL& par_smsInd, + const OPTIONAL& par_t3447Value, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_ueRadioCapabilityId, + const OPTIONAL& par_ueRadioCapIdDeletionInd, + const OPTIONAL& par_registrationResult, + const OPTIONAL& par_truncatedS__TMSIConfig, + const OPTIONAL& par_addConfigInfo, + const OPTIONAL& par_extdRejectedNSSAI, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_nssrgInfo, + const OPTIONAL& par_disasterRoamingWaitRange, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_disasterPLMNList, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_updatedPEIPS__AssistInfo, + const OPTIONAL& par_nsagInfo, + const OPTIONAL& par_priorityInd) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_configUpdateInd(par_configUpdateInd), + field_guti(par_guti), + field_taiList(par_taiList), + field_allowedNSSAI(par_allowedNSSAI), + field_saiList(par_saiList), + field_fullNetworkName(par_fullNetworkName), + field_shortNetworkName(par_shortNetworkName), + field_localTimeZone(par_localTimeZone), + field_localTimeZoneAndTime(par_localTimeZoneAndTime), + field_daylightSavingTime(par_daylightSavingTime), + field_ladnInfo(par_ladnInfo), + field_micoInd(par_micoInd), + field_networkSlicingInd(par_networkSlicingInd), + field_configuredNSSAI(par_configuredNSSAI), + field_rejectedNSSAI(par_rejectedNSSAI), + field_operatorAccessCatDefs(par_operatorAccessCatDefs), + field_smsInd(par_smsInd), + field_t3447Value(par_t3447Value), + field_cagInfoList(par_cagInfoList), + field_ueRadioCapabilityId(par_ueRadioCapabilityId), + field_ueRadioCapIdDeletionInd(par_ueRadioCapIdDeletionInd), + field_registrationResult(par_registrationResult), + field_truncatedS__TMSIConfig(par_truncatedS__TMSIConfig), + field_addConfigInfo(par_addConfigInfo), + field_extdRejectedNSSAI(par_extdRejectedNSSAI), + field_serviceLvlAA(par_serviceLvlAA), + field_nssrgInfo(par_nssrgInfo), + field_disasterRoamingWaitRange(par_disasterRoamingWaitRange), + field_disasterReturnWaitRange(par_disasterReturnWaitRange), + field_disasterPLMNList(par_disasterPLMNList), + field_extdCAGInfoList(par_extdCAGInfoList), + field_updatedPEIPS__AssistInfo(par_updatedPEIPS__AssistInfo), + field_nsagInfo(par_nsagInfo), + field_priorityInd(par_priorityInd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__CONFIGURATION__UPDATE__COMMAND::get_descriptor() const { return &NG__CONFIGURATION__UPDATE__COMMAND_descr_; } +const TTCN_Typedescriptor_t* NG__CONFIGURATION__UPDATE__COMMAND::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &ConfigUpdateInd_descr_, &NG__MobileIdentity_descr_, &NG__TrackingAreaIdList_descr_, &NSSAI_descr_, &NG__TrackingAreaIdList_descr_, &NAS__CommonTypeDefs::NetworkName_descr_, &NAS__CommonTypeDefs::NetworkName_descr_, &NAS__CommonTypeDefs::TimeZone_descr_, &NAS__CommonTypeDefs::TimeZoneAndTime_descr_, &NAS__CommonTypeDefs::DaylightSavingTime_descr_, &LADN__Info_descr_, &MICO__Ind_descr_, &NetworkSlicingInd_descr_, &NSSAI_descr_, &RejectedNSSAI_descr_, &OperatorAccessCatDefinitions_descr_, &SMSInd_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &CAGInfoList_descr_, &NAS__CommonTypeDefs::UERadioCapId_descr_, &NAS__CommonTypeDefs::UERadioCapIdDeletion_descr_, &RegistrationResult_descr_, &TruncatedS__TMSIConfig_descr_, &AddConfigInfo_descr_, &ExtdRejectedNSSAI_descr_, &ServiceLvlAAContainer_descr_, &NSSRG__Info_descr_, &RegistrationWaitRange_descr_, &RegistrationWaitRange_descr_, &DisasterPLMNList_descr_, &ExtdCAGInfoList_descr_, &PEIPS__AssistInfo_descr_, &NSAG__Info_descr_, &PriorityInd_descr_ }; +const TTCN_Typedescriptor_t* NG__CONFIGURATION__UPDATE__COMMAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__CONFIGURATION__UPDATE__COMMAND::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "configUpdateInd", "guti", "taiList", "allowedNSSAI", "saiList", "fullNetworkName", "shortNetworkName", "localTimeZone", "localTimeZoneAndTime", "daylightSavingTime", "ladnInfo", "micoInd", "networkSlicingInd", "configuredNSSAI", "rejectedNSSAI", "operatorAccessCatDefs", "smsInd", "t3447Value", "cagInfoList", "ueRadioCapabilityId", "ueRadioCapIdDeletionInd", "registrationResult", "truncatedS_TMSIConfig", "addConfigInfo", "extdRejectedNSSAI", "serviceLvlAA", "nssrgInfo", "disasterRoamingWaitRange", "disasterReturnWaitRange", "disasterPLMNList", "extdCAGInfoList", "updatedPEIPS_AssistInfo", "nsagInfo", "priorityInd" }; +const char* NG__CONFIGURATION__UPDATE__COMMAND::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__CONFIGURATION__UPDATE__COMMAND::optional_indexes[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1 }; +const int* NG__CONFIGURATION__UPDATE__COMMAND::get_optional_indexes() const { return optional_indexes; } + +const int NG__CONFIGURATION__UPDATE__COMMAND::optional_indexes_asn[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1 }; +const int* NG__CONFIGURATION__UPDATE__COMMAND::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__CONFIGURATION__UPDATE__COMMAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 38; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new ConfigUpdateInd_template(ANY_OR_OMIT) : new ConfigUpdateInd_template; +single_value.value_elements[5] = was_any ? new NG__MobileIdentity_template(ANY_OR_OMIT) : new NG__MobileIdentity_template; +single_value.value_elements[6] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[7] = was_any ? new NSSAI_template(ANY_OR_OMIT) : new NSSAI_template; +single_value.value_elements[8] = was_any ? new NG__TrackingAreaIdList_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::NetworkName_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NetworkName_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::NetworkName_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NetworkName_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::TimeZone_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::TimeZone_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::TimeZoneAndTime_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::TimeZoneAndTime_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::DaylightSavingTime_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::DaylightSavingTime_template; +single_value.value_elements[14] = was_any ? new LADN__Info_template(ANY_OR_OMIT) : new LADN__Info_template; +single_value.value_elements[15] = was_any ? new MICO__Ind_template(ANY_OR_OMIT) : new MICO__Ind_template; +single_value.value_elements[16] = was_any ? new NetworkSlicingInd_template(ANY_OR_OMIT) : new NetworkSlicingInd_template; +single_value.value_elements[17] = was_any ? new NSSAI_template(ANY_OR_OMIT) : new NSSAI_template; +single_value.value_elements[18] = was_any ? new RejectedNSSAI_template(ANY_OR_OMIT) : new RejectedNSSAI_template; +single_value.value_elements[19] = was_any ? new OperatorAccessCatDefinitions_template(ANY_OR_OMIT) : new OperatorAccessCatDefinitions_template; +single_value.value_elements[20] = was_any ? new SMSInd_template(ANY_OR_OMIT) : new SMSInd_template; +single_value.value_elements[21] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[22] = was_any ? new CAGInfoList_template(ANY_OR_OMIT) : new CAGInfoList_template; +single_value.value_elements[23] = was_any ? new NAS__CommonTypeDefs::UERadioCapId_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapId_template; +single_value.value_elements[24] = was_any ? new NAS__CommonTypeDefs::UERadioCapIdDeletion_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UERadioCapIdDeletion_template; +single_value.value_elements[25] = was_any ? new RegistrationResult_template(ANY_OR_OMIT) : new RegistrationResult_template; +single_value.value_elements[26] = was_any ? new TruncatedS__TMSIConfig_template(ANY_OR_OMIT) : new TruncatedS__TMSIConfig_template; +single_value.value_elements[27] = was_any ? new AddConfigInfo_template(ANY_OR_OMIT) : new AddConfigInfo_template; +single_value.value_elements[28] = was_any ? new ExtdRejectedNSSAI_template(ANY_OR_OMIT) : new ExtdRejectedNSSAI_template; +single_value.value_elements[29] = was_any ? new ServiceLvlAAContainer_template(ANY_OR_OMIT) : new ServiceLvlAAContainer_template; +single_value.value_elements[30] = was_any ? new NSSRG__Info_template(ANY_OR_OMIT) : new NSSRG__Info_template; +single_value.value_elements[31] = was_any ? new RegistrationWaitRange_template(ANY_OR_OMIT) : new RegistrationWaitRange_template; +single_value.value_elements[32] = was_any ? new RegistrationWaitRange_template(ANY_OR_OMIT) : new RegistrationWaitRange_template; +single_value.value_elements[33] = was_any ? new DisasterPLMNList_template(ANY_OR_OMIT) : new DisasterPLMNList_template; +single_value.value_elements[34] = was_any ? new ExtdCAGInfoList_template(ANY_OR_OMIT) : new ExtdCAGInfoList_template; +single_value.value_elements[35] = was_any ? new PEIPS__AssistInfo_template(ANY_OR_OMIT) : new PEIPS__AssistInfo_template; +single_value.value_elements[36] = was_any ? new NSAG__Info_template(ANY_OR_OMIT) : new NSAG__Info_template; +single_value.value_elements[37] = was_any ? new PriorityInd_template(ANY_OR_OMIT) : new PriorityInd_template; +} +} + +NG__CONFIGURATION__UPDATE__COMMAND_template::NG__CONFIGURATION__UPDATE__COMMAND_template(NG__CONFIGURATION__UPDATE__COMMAND_template* p_precondition, NG__CONFIGURATION__UPDATE__COMMAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__CONFIGURATION__UPDATE__COMMAND_template::NG__CONFIGURATION__UPDATE__COMMAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__CONFIGURATION__UPDATE__COMMAND_template::~NG__CONFIGURATION__UPDATE__COMMAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__CONFIGURATION__UPDATE__COMMAND_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__CONFIGURATION__UPDATE__COMMAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__CONFIGURATION__UPDATE__COMMAND_template& NG__CONFIGURATION__UPDATE__COMMAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__CONFIGURATION__UPDATE__COMMAND_template& NG__CONFIGURATION__UPDATE__COMMAND_template::operator=(const NG__CONFIGURATION__UPDATE__COMMAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__CONFIGURATION__UPDATE__COMMAND_template& NG__CONFIGURATION__UPDATE__COMMAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__CONFIGURATION__UPDATE__COMMAND_template& NG__CONFIGURATION__UPDATE__COMMAND_template::operator=(const NG__CONFIGURATION__UPDATE__COMMAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__CONFIGURATION__UPDATE__COMMAND NG__CONFIGURATION__UPDATE__COMMAND_template::valueof() const +{ +NG__CONFIGURATION__UPDATE__COMMAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__CONFIGURATION__UPDATE__COMMAND_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__CONFIGURATION__UPDATE__COMMAND_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__CONFIGURATION__UPDATE__COMMAND_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__CONFIGURATION__UPDATE__COMMAND_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__CONFIGURATION__UPDATE__COMMAND_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__CONFIGURATION__UPDATE__COMMAND_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__CONFIGURATION__UPDATE__COMMAND_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__CONFIGURATION__UPDATE__COMMAND_template::messageType() const { return *(static_cast(get_at(3))); } +ConfigUpdateInd_template& NG__CONFIGURATION__UPDATE__COMMAND_template::configUpdateInd() { return *(static_cast(get_at(4))); } +const ConfigUpdateInd_template& NG__CONFIGURATION__UPDATE__COMMAND_template::configUpdateInd() const { return *(static_cast(get_at(4))); } +NG__MobileIdentity_template& NG__CONFIGURATION__UPDATE__COMMAND_template::guti() { return *(static_cast(get_at(5))); } +const NG__MobileIdentity_template& NG__CONFIGURATION__UPDATE__COMMAND_template::guti() const { return *(static_cast(get_at(5))); } +NG__TrackingAreaIdList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::taiList() { return *(static_cast(get_at(6))); } +const NG__TrackingAreaIdList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::taiList() const { return *(static_cast(get_at(6))); } +NSSAI_template& NG__CONFIGURATION__UPDATE__COMMAND_template::allowedNSSAI() { return *(static_cast(get_at(7))); } +const NSSAI_template& NG__CONFIGURATION__UPDATE__COMMAND_template::allowedNSSAI() const { return *(static_cast(get_at(7))); } +NG__TrackingAreaIdList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::saiList() { return *(static_cast(get_at(8))); } +const NG__TrackingAreaIdList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::saiList() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::NetworkName_template& NG__CONFIGURATION__UPDATE__COMMAND_template::fullNetworkName() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::NetworkName_template& NG__CONFIGURATION__UPDATE__COMMAND_template::fullNetworkName() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::NetworkName_template& NG__CONFIGURATION__UPDATE__COMMAND_template::shortNetworkName() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::NetworkName_template& NG__CONFIGURATION__UPDATE__COMMAND_template::shortNetworkName() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::TimeZone_template& NG__CONFIGURATION__UPDATE__COMMAND_template::localTimeZone() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::TimeZone_template& NG__CONFIGURATION__UPDATE__COMMAND_template::localTimeZone() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::TimeZoneAndTime_template& NG__CONFIGURATION__UPDATE__COMMAND_template::localTimeZoneAndTime() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::TimeZoneAndTime_template& NG__CONFIGURATION__UPDATE__COMMAND_template::localTimeZoneAndTime() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::DaylightSavingTime_template& NG__CONFIGURATION__UPDATE__COMMAND_template::daylightSavingTime() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::DaylightSavingTime_template& NG__CONFIGURATION__UPDATE__COMMAND_template::daylightSavingTime() const { return *(static_cast(get_at(13))); } +LADN__Info_template& NG__CONFIGURATION__UPDATE__COMMAND_template::ladnInfo() { return *(static_cast(get_at(14))); } +const LADN__Info_template& NG__CONFIGURATION__UPDATE__COMMAND_template::ladnInfo() const { return *(static_cast(get_at(14))); } +MICO__Ind_template& NG__CONFIGURATION__UPDATE__COMMAND_template::micoInd() { return *(static_cast(get_at(15))); } +const MICO__Ind_template& NG__CONFIGURATION__UPDATE__COMMAND_template::micoInd() const { return *(static_cast(get_at(15))); } +NetworkSlicingInd_template& NG__CONFIGURATION__UPDATE__COMMAND_template::networkSlicingInd() { return *(static_cast(get_at(16))); } +const NetworkSlicingInd_template& NG__CONFIGURATION__UPDATE__COMMAND_template::networkSlicingInd() const { return *(static_cast(get_at(16))); } +NSSAI_template& NG__CONFIGURATION__UPDATE__COMMAND_template::configuredNSSAI() { return *(static_cast(get_at(17))); } +const NSSAI_template& NG__CONFIGURATION__UPDATE__COMMAND_template::configuredNSSAI() const { return *(static_cast(get_at(17))); } +RejectedNSSAI_template& NG__CONFIGURATION__UPDATE__COMMAND_template::rejectedNSSAI() { return *(static_cast(get_at(18))); } +const RejectedNSSAI_template& NG__CONFIGURATION__UPDATE__COMMAND_template::rejectedNSSAI() const { return *(static_cast(get_at(18))); } +OperatorAccessCatDefinitions_template& NG__CONFIGURATION__UPDATE__COMMAND_template::operatorAccessCatDefs() { return *(static_cast(get_at(19))); } +const OperatorAccessCatDefinitions_template& NG__CONFIGURATION__UPDATE__COMMAND_template::operatorAccessCatDefs() const { return *(static_cast(get_at(19))); } +SMSInd_template& NG__CONFIGURATION__UPDATE__COMMAND_template::smsInd() { return *(static_cast(get_at(20))); } +const SMSInd_template& NG__CONFIGURATION__UPDATE__COMMAND_template::smsInd() const { return *(static_cast(get_at(20))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__CONFIGURATION__UPDATE__COMMAND_template::t3447Value() { return *(static_cast(get_at(21))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__CONFIGURATION__UPDATE__COMMAND_template::t3447Value() const { return *(static_cast(get_at(21))); } +CAGInfoList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::cagInfoList() { return *(static_cast(get_at(22))); } +const CAGInfoList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::cagInfoList() const { return *(static_cast(get_at(22))); } +NAS__CommonTypeDefs::UERadioCapId_template& NG__CONFIGURATION__UPDATE__COMMAND_template::ueRadioCapabilityId() { return *(static_cast(get_at(23))); } +const NAS__CommonTypeDefs::UERadioCapId_template& NG__CONFIGURATION__UPDATE__COMMAND_template::ueRadioCapabilityId() const { return *(static_cast(get_at(23))); } +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& NG__CONFIGURATION__UPDATE__COMMAND_template::ueRadioCapIdDeletionInd() { return *(static_cast(get_at(24))); } +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& NG__CONFIGURATION__UPDATE__COMMAND_template::ueRadioCapIdDeletionInd() const { return *(static_cast(get_at(24))); } +RegistrationResult_template& NG__CONFIGURATION__UPDATE__COMMAND_template::registrationResult() { return *(static_cast(get_at(25))); } +const RegistrationResult_template& NG__CONFIGURATION__UPDATE__COMMAND_template::registrationResult() const { return *(static_cast(get_at(25))); } +TruncatedS__TMSIConfig_template& NG__CONFIGURATION__UPDATE__COMMAND_template::truncatedS__TMSIConfig() { return *(static_cast(get_at(26))); } +const TruncatedS__TMSIConfig_template& NG__CONFIGURATION__UPDATE__COMMAND_template::truncatedS__TMSIConfig() const { return *(static_cast(get_at(26))); } +AddConfigInfo_template& NG__CONFIGURATION__UPDATE__COMMAND_template::addConfigInfo() { return *(static_cast(get_at(27))); } +const AddConfigInfo_template& NG__CONFIGURATION__UPDATE__COMMAND_template::addConfigInfo() const { return *(static_cast(get_at(27))); } +ExtdRejectedNSSAI_template& NG__CONFIGURATION__UPDATE__COMMAND_template::extdRejectedNSSAI() { return *(static_cast(get_at(28))); } +const ExtdRejectedNSSAI_template& NG__CONFIGURATION__UPDATE__COMMAND_template::extdRejectedNSSAI() const { return *(static_cast(get_at(28))); } +ServiceLvlAAContainer_template& NG__CONFIGURATION__UPDATE__COMMAND_template::serviceLvlAA() { return *(static_cast(get_at(29))); } +const ServiceLvlAAContainer_template& NG__CONFIGURATION__UPDATE__COMMAND_template::serviceLvlAA() const { return *(static_cast(get_at(29))); } +NSSRG__Info_template& NG__CONFIGURATION__UPDATE__COMMAND_template::nssrgInfo() { return *(static_cast(get_at(30))); } +const NSSRG__Info_template& NG__CONFIGURATION__UPDATE__COMMAND_template::nssrgInfo() const { return *(static_cast(get_at(30))); } +RegistrationWaitRange_template& NG__CONFIGURATION__UPDATE__COMMAND_template::disasterRoamingWaitRange() { return *(static_cast(get_at(31))); } +const RegistrationWaitRange_template& NG__CONFIGURATION__UPDATE__COMMAND_template::disasterRoamingWaitRange() const { return *(static_cast(get_at(31))); } +RegistrationWaitRange_template& NG__CONFIGURATION__UPDATE__COMMAND_template::disasterReturnWaitRange() { return *(static_cast(get_at(32))); } +const RegistrationWaitRange_template& NG__CONFIGURATION__UPDATE__COMMAND_template::disasterReturnWaitRange() const { return *(static_cast(get_at(32))); } +DisasterPLMNList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::disasterPLMNList() { return *(static_cast(get_at(33))); } +const DisasterPLMNList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::disasterPLMNList() const { return *(static_cast(get_at(33))); } +ExtdCAGInfoList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::extdCAGInfoList() { return *(static_cast(get_at(34))); } +const ExtdCAGInfoList_template& NG__CONFIGURATION__UPDATE__COMMAND_template::extdCAGInfoList() const { return *(static_cast(get_at(34))); } +PEIPS__AssistInfo_template& NG__CONFIGURATION__UPDATE__COMMAND_template::updatedPEIPS__AssistInfo() { return *(static_cast(get_at(35))); } +const PEIPS__AssistInfo_template& NG__CONFIGURATION__UPDATE__COMMAND_template::updatedPEIPS__AssistInfo() const { return *(static_cast(get_at(35))); } +NSAG__Info_template& NG__CONFIGURATION__UPDATE__COMMAND_template::nsagInfo() { return *(static_cast(get_at(36))); } +const NSAG__Info_template& NG__CONFIGURATION__UPDATE__COMMAND_template::nsagInfo() const { return *(static_cast(get_at(36))); } +PriorityInd_template& NG__CONFIGURATION__UPDATE__COMMAND_template::priorityInd() { return *(static_cast(get_at(37))); } +const PriorityInd_template& NG__CONFIGURATION__UPDATE__COMMAND_template::priorityInd() const { return *(static_cast(get_at(37))); } +const TTCN_Typedescriptor_t* NG__CONFIGURATION__UPDATE__COMMAND_template::get_descriptor() const { return &NG__CONFIGURATION__UPDATE__COMMAND_descr_; } +const char* NG__CONFIGURATION__UPDATE__COMMAND_template::fld_name(int p_index) const { return NG__CONFIGURATION__UPDATE__COMMAND::fld_names[p_index]; } +void ConfigUpdateInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_red; fld_vec[3]=&field_ack; } + +ConfigUpdateInd::ConfigUpdateInd() : Record_Type() { init_vec(); } + +ConfigUpdateInd::ConfigUpdateInd(const ConfigUpdateInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_red.is_bound() ) + field_red = other_value.field_red; +if (other_value.field_ack.is_bound() ) + field_ack = other_value.field_ack; +init_vec(); +} + +ConfigUpdateInd::ConfigUpdateInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_red, + const BITSTRING& par_ack) : field_iei(par_iei), + field_spare(par_spare), + field_red(par_red), + field_ack(par_ack) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ConfigUpdateInd::get_descriptor() const { return &ConfigUpdateInd_descr_; } +const TTCN_Typedescriptor_t* ConfigUpdateInd::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* ConfigUpdateInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ConfigUpdateInd::fld_names[] = { "iei", "spare", "red", "ack" }; +const char* ConfigUpdateInd::fld_name(int p_index) const { return fld_names[p_index]; } + +void ConfigUpdateInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +ConfigUpdateInd_template::ConfigUpdateInd_template(ConfigUpdateInd_template* p_precondition, ConfigUpdateInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ConfigUpdateInd_template::ConfigUpdateInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ConfigUpdateInd_template::~ConfigUpdateInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ConfigUpdateInd_template::match_dynamic(const Base_Type* match_value) const +{ +const ConfigUpdateInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ConfigUpdateInd_template& ConfigUpdateInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ConfigUpdateInd_template& ConfigUpdateInd_template::operator=(const ConfigUpdateInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ConfigUpdateInd_template& ConfigUpdateInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ConfigUpdateInd_template& ConfigUpdateInd_template::operator=(const ConfigUpdateInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ConfigUpdateInd ConfigUpdateInd_template::valueof() const +{ +ConfigUpdateInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& ConfigUpdateInd_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& ConfigUpdateInd_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ConfigUpdateInd_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ConfigUpdateInd_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ConfigUpdateInd_template::red() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ConfigUpdateInd_template::red() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ConfigUpdateInd_template::ack() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ConfigUpdateInd_template::ack() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* ConfigUpdateInd_template::get_descriptor() const { return &ConfigUpdateInd_descr_; } +const char* ConfigUpdateInd_template::fld_name(int p_index) const { return ConfigUpdateInd::fld_names[p_index]; } +void SMSInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_sai; } + +SMSInd::SMSInd() : Record_Type() { init_vec(); } + +SMSInd::SMSInd(const SMSInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_sai.is_bound() ) + field_sai = other_value.field_sai; +init_vec(); +} + +SMSInd::SMSInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_sai) : field_iei(par_iei), + field_spare(par_spare), + field_sai(par_sai) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SMSInd::get_descriptor() const { return &SMSInd_descr_; } +const TTCN_Typedescriptor_t* SMSInd::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* SMSInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SMSInd::fld_names[] = { "iei", "spare", "sai" }; +const char* SMSInd::fld_name(int p_index) const { return fld_names[p_index]; } + +void SMSInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SMSInd_template::SMSInd_template(SMSInd_template* p_precondition, SMSInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SMSInd_template::SMSInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SMSInd_template::~SMSInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SMSInd_template::match_dynamic(const Base_Type* match_value) const +{ +const SMSInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SMSInd_template& SMSInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SMSInd_template& SMSInd_template::operator=(const SMSInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SMSInd_template& SMSInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SMSInd_template& SMSInd_template::operator=(const SMSInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SMSInd SMSInd_template::valueof() const +{ +SMSInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& SMSInd_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& SMSInd_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SMSInd_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SMSInd_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SMSInd_template::sai() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SMSInd_template::sai() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SMSInd_template::get_descriptor() const { return &SMSInd_descr_; } +const char* SMSInd_template::fld_name(int p_index) const { return SMSInd::fld_names[p_index]; } +void AddConfigInfo::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_scmr; } + +AddConfigInfo::AddConfigInfo() : Record_Type() { init_vec(); } + +AddConfigInfo::AddConfigInfo(const AddConfigInfo& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_scmr.is_bound() ) + field_scmr = other_value.field_scmr; +init_vec(); +} + +AddConfigInfo::AddConfigInfo(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_scmr) : field_iei(par_iei), + field_spare(par_spare), + field_scmr(par_scmr) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AddConfigInfo::get_descriptor() const { return &AddConfigInfo_descr_; } +const TTCN_Typedescriptor_t* AddConfigInfo::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* AddConfigInfo::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AddConfigInfo::fld_names[] = { "iei", "spare", "scmr" }; +const char* AddConfigInfo::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AddConfigInfo::optional_indexes[] = { 0, -1 }; +const int* AddConfigInfo::get_optional_indexes() const { return optional_indexes; } + +const int AddConfigInfo::optional_indexes_asn[] = { 0, -1 }; +const int* AddConfigInfo::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AddConfigInfo_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AddConfigInfo_template::AddConfigInfo_template(AddConfigInfo_template* p_precondition, AddConfigInfo_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AddConfigInfo_template::AddConfigInfo_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AddConfigInfo_template::~AddConfigInfo_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AddConfigInfo_template::match_dynamic(const Base_Type* match_value) const +{ +const AddConfigInfo* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AddConfigInfo_template& AddConfigInfo_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AddConfigInfo_template& AddConfigInfo_template::operator=(const AddConfigInfo& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AddConfigInfo_template& AddConfigInfo_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AddConfigInfo_template& AddConfigInfo_template::operator=(const AddConfigInfo_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AddConfigInfo AddConfigInfo_template::valueof() const +{ +AddConfigInfo ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& AddConfigInfo_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& AddConfigInfo_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AddConfigInfo_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AddConfigInfo_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AddConfigInfo_template::scmr() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AddConfigInfo_template::scmr() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AddConfigInfo_template::get_descriptor() const { return &AddConfigInfo_descr_; } +const char* AddConfigInfo_template::fld_name(int p_index) const { return AddConfigInfo::fld_names[p_index]; } +void PriorityInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_mpsi; } + +PriorityInd::PriorityInd() : Record_Type() { init_vec(); } + +PriorityInd::PriorityInd(const PriorityInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_mpsi.is_bound() ) + field_mpsi = other_value.field_mpsi; +init_vec(); +} + +PriorityInd::PriorityInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_mpsi) : field_iei(par_iei), + field_spare(par_spare), + field_mpsi(par_mpsi) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PriorityInd::get_descriptor() const { return &PriorityInd_descr_; } +const TTCN_Typedescriptor_t* PriorityInd::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* PriorityInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PriorityInd::fld_names[] = { "iei", "spare", "mpsi" }; +const char* PriorityInd::fld_name(int p_index) const { return fld_names[p_index]; } + +void PriorityInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +PriorityInd_template::PriorityInd_template(PriorityInd_template* p_precondition, PriorityInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PriorityInd_template::PriorityInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PriorityInd_template::~PriorityInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PriorityInd_template::match_dynamic(const Base_Type* match_value) const +{ +const PriorityInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PriorityInd_template& PriorityInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PriorityInd_template& PriorityInd_template::operator=(const PriorityInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PriorityInd_template& PriorityInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PriorityInd_template& PriorityInd_template::operator=(const PriorityInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PriorityInd PriorityInd_template::valueof() const +{ +PriorityInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& PriorityInd_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& PriorityInd_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PriorityInd_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PriorityInd_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PriorityInd_template::mpsi() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PriorityInd_template::mpsi() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PriorityInd_template::get_descriptor() const { return &PriorityInd_descr_; } +const char* PriorityInd_template::fld_name(int p_index) const { return PriorityInd::fld_names[p_index]; } +void NG__CONFIGURATION__UPDATE__COMPLETE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; } + +NG__CONFIGURATION__UPDATE__COMPLETE::NG__CONFIGURATION__UPDATE__COMPLETE() : Record_Type() { init_vec(); } + +NG__CONFIGURATION__UPDATE__COMPLETE::NG__CONFIGURATION__UPDATE__COMPLETE(const NG__CONFIGURATION__UPDATE__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +NG__CONFIGURATION__UPDATE__COMPLETE::NG__CONFIGURATION__UPDATE__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__CONFIGURATION__UPDATE__COMPLETE::get_descriptor() const { return &NG__CONFIGURATION__UPDATE__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* NG__CONFIGURATION__UPDATE__COMPLETE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* NG__CONFIGURATION__UPDATE__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__CONFIGURATION__UPDATE__COMPLETE::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType" }; +const char* NG__CONFIGURATION__UPDATE__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__CONFIGURATION__UPDATE__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NG__CONFIGURATION__UPDATE__COMPLETE_template::NG__CONFIGURATION__UPDATE__COMPLETE_template(NG__CONFIGURATION__UPDATE__COMPLETE_template* p_precondition, NG__CONFIGURATION__UPDATE__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__CONFIGURATION__UPDATE__COMPLETE_template::NG__CONFIGURATION__UPDATE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__CONFIGURATION__UPDATE__COMPLETE_template::~NG__CONFIGURATION__UPDATE__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__CONFIGURATION__UPDATE__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__CONFIGURATION__UPDATE__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__CONFIGURATION__UPDATE__COMPLETE_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__CONFIGURATION__UPDATE__COMPLETE_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::operator=(const NG__CONFIGURATION__UPDATE__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__CONFIGURATION__UPDATE__COMPLETE_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__CONFIGURATION__UPDATE__COMPLETE_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::operator=(const NG__CONFIGURATION__UPDATE__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__CONFIGURATION__UPDATE__COMPLETE NG__CONFIGURATION__UPDATE__COMPLETE_template::valueof() const +{ +NG__CONFIGURATION__UPDATE__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__CONFIGURATION__UPDATE__COMPLETE_template::messageType() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* NG__CONFIGURATION__UPDATE__COMPLETE_template::get_descriptor() const { return &NG__CONFIGURATION__UPDATE__COMPLETE_descr_; } +const char* NG__CONFIGURATION__UPDATE__COMPLETE_template::fld_name(int p_index) const { return NG__CONFIGURATION__UPDATE__COMPLETE::fld_names[p_index]; } +void NG__IDENTITY__REQUEST::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet2; fld_vec[5]=&field_identityType; } + +NG__IDENTITY__REQUEST::NG__IDENTITY__REQUEST() : Record_Type() { init_vec(); } + +NG__IDENTITY__REQUEST::NG__IDENTITY__REQUEST(const NG__IDENTITY__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet2.is_bound() ) + field_spareHalfOctet2 = other_value.field_spareHalfOctet2; +if (other_value.field_identityType.is_bound() ) + field_identityType = other_value.field_identityType; +init_vec(); +} + +NG__IDENTITY__REQUEST::NG__IDENTITY__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const NAS__CommonTypeDefs::IdentityType& par_identityType) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_spareHalfOctet2(par_spareHalfOctet2), + field_identityType(par_identityType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__IDENTITY__REQUEST::get_descriptor() const { return &NG__IDENTITY__REQUEST_descr_; } +const TTCN_Typedescriptor_t* NG__IDENTITY__REQUEST::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::IdentityType_descr_ }; +const TTCN_Typedescriptor_t* NG__IDENTITY__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__IDENTITY__REQUEST::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "spareHalfOctet2", "identityType" }; +const char* NG__IDENTITY__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__IDENTITY__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::IdentityType_template(ANY_VALUE) : new NAS__CommonTypeDefs::IdentityType_template; +} +} + +NG__IDENTITY__REQUEST_template::NG__IDENTITY__REQUEST_template(NG__IDENTITY__REQUEST_template* p_precondition, NG__IDENTITY__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__IDENTITY__REQUEST_template::NG__IDENTITY__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__IDENTITY__REQUEST_template::~NG__IDENTITY__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__IDENTITY__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__IDENTITY__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__IDENTITY__REQUEST_template& NG__IDENTITY__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__IDENTITY__REQUEST_template& NG__IDENTITY__REQUEST_template::operator=(const NG__IDENTITY__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__IDENTITY__REQUEST_template& NG__IDENTITY__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__IDENTITY__REQUEST_template& NG__IDENTITY__REQUEST_template::operator=(const NG__IDENTITY__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__IDENTITY__REQUEST NG__IDENTITY__REQUEST_template::valueof() const +{ +NG__IDENTITY__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__IDENTITY__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__IDENTITY__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__IDENTITY__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__IDENTITY__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__IDENTITY__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__IDENTITY__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__IDENTITY__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__IDENTITY__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& NG__IDENTITY__REQUEST_template::spareHalfOctet2() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& NG__IDENTITY__REQUEST_template::spareHalfOctet2() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::IdentityType_template& NG__IDENTITY__REQUEST_template::identityType() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::IdentityType_template& NG__IDENTITY__REQUEST_template::identityType() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__IDENTITY__REQUEST_template::get_descriptor() const { return &NG__IDENTITY__REQUEST_descr_; } +const char* NG__IDENTITY__REQUEST_template::fld_name(int p_index) const { return NG__IDENTITY__REQUEST::fld_names[p_index]; } +void NG__IDENTITY__RESPONSE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_ngMobileId; } + +NG__IDENTITY__RESPONSE::NG__IDENTITY__RESPONSE() : Record_Type() { init_vec(); } + +NG__IDENTITY__RESPONSE::NG__IDENTITY__RESPONSE(const NG__IDENTITY__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_ngMobileId.is_bound() ) + field_ngMobileId = other_value.field_ngMobileId; +init_vec(); +} + +NG__IDENTITY__RESPONSE::NG__IDENTITY__RESPONSE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NG__MobileIdentity& par_ngMobileId) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_ngMobileId(par_ngMobileId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__IDENTITY__RESPONSE::get_descriptor() const { return &NG__IDENTITY__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* NG__IDENTITY__RESPONSE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NG__MobileIdentity_descr_ }; +const TTCN_Typedescriptor_t* NG__IDENTITY__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__IDENTITY__RESPONSE::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "ngMobileId" }; +const char* NG__IDENTITY__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__IDENTITY__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NG__MobileIdentity_template(ANY_VALUE) : new NG__MobileIdentity_template; +} +} + +NG__IDENTITY__RESPONSE_template::NG__IDENTITY__RESPONSE_template(NG__IDENTITY__RESPONSE_template* p_precondition, NG__IDENTITY__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__IDENTITY__RESPONSE_template::NG__IDENTITY__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__IDENTITY__RESPONSE_template::~NG__IDENTITY__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__IDENTITY__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__IDENTITY__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__IDENTITY__RESPONSE_template& NG__IDENTITY__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__IDENTITY__RESPONSE_template& NG__IDENTITY__RESPONSE_template::operator=(const NG__IDENTITY__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__IDENTITY__RESPONSE_template& NG__IDENTITY__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__IDENTITY__RESPONSE_template& NG__IDENTITY__RESPONSE_template::operator=(const NG__IDENTITY__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__IDENTITY__RESPONSE NG__IDENTITY__RESPONSE_template::valueof() const +{ +NG__IDENTITY__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__IDENTITY__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__IDENTITY__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__IDENTITY__RESPONSE_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__IDENTITY__RESPONSE_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__IDENTITY__RESPONSE_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__IDENTITY__RESPONSE_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__IDENTITY__RESPONSE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__IDENTITY__RESPONSE_template::messageType() const { return *(static_cast(get_at(3))); } +NG__MobileIdentity_template& NG__IDENTITY__RESPONSE_template::ngMobileId() { return *(static_cast(get_at(4))); } +const NG__MobileIdentity_template& NG__IDENTITY__RESPONSE_template::ngMobileId() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NG__IDENTITY__RESPONSE_template::get_descriptor() const { return &NG__IDENTITY__RESPONSE_descr_; } +const char* NG__IDENTITY__RESPONSE_template::fld_name(int p_index) const { return NG__IDENTITY__RESPONSE::fld_names[p_index]; } +void AccessType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_accessType; } + +AccessType::AccessType() : Record_Type() { init_vec(); } + +AccessType::AccessType(const AccessType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_accessType.is_bound() ) + field_accessType = other_value.field_accessType; +init_vec(); +} + +AccessType::AccessType(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_accessType) : field_iei(par_iei), + field_spare(par_spare), + field_accessType(par_accessType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AccessType::get_descriptor() const { return &AccessType_descr_; } +const TTCN_Typedescriptor_t* AccessType::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* AccessType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AccessType::fld_names[] = { "iei", "spare", "accessType" }; +const char* AccessType::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AccessType::optional_indexes[] = { 0, -1 }; +const int* AccessType::get_optional_indexes() const { return optional_indexes; } + +const int AccessType::optional_indexes_asn[] = { 0, -1 }; +const int* AccessType::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AccessType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AccessType_template::AccessType_template(AccessType_template* p_precondition, AccessType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AccessType_template::AccessType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AccessType_template::~AccessType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AccessType_template::match_dynamic(const Base_Type* match_value) const +{ +const AccessType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AccessType_template& AccessType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AccessType_template& AccessType_template::operator=(const AccessType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AccessType_template& AccessType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AccessType_template& AccessType_template::operator=(const AccessType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AccessType AccessType_template::valueof() const +{ +AccessType ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& AccessType_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& AccessType_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AccessType_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AccessType_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AccessType_template::accessType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AccessType_template::accessType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AccessType_template::get_descriptor() const { return &AccessType_descr_; } +const char* AccessType_template::fld_name(int p_index) const { return AccessType::fld_names[p_index]; } +void NG__NOTIFICATION::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_spareHalfOctet2; fld_vec[5]=&field_accessType; } + +NG__NOTIFICATION::NG__NOTIFICATION() : Record_Type() { init_vec(); } + +NG__NOTIFICATION::NG__NOTIFICATION(const NG__NOTIFICATION& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spareHalfOctet2.is_bound() ) + field_spareHalfOctet2 = other_value.field_spareHalfOctet2; +if (other_value.field_accessType.is_bound() ) + field_accessType = other_value.field_accessType; +init_vec(); +} + +NG__NOTIFICATION::NG__NOTIFICATION(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const AccessType& par_accessType) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_spareHalfOctet2(par_spareHalfOctet2), + field_accessType(par_accessType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NOTIFICATION::get_descriptor() const { return &NG__NOTIFICATION_descr_; } +const TTCN_Typedescriptor_t* NG__NOTIFICATION::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &AccessType_descr_ }; +const TTCN_Typedescriptor_t* NG__NOTIFICATION::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NOTIFICATION::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "spareHalfOctet2", "accessType" }; +const char* NG__NOTIFICATION::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NOTIFICATION_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[5] = was_any ? new AccessType_template(ANY_VALUE) : new AccessType_template; +} +} + +NG__NOTIFICATION_template::NG__NOTIFICATION_template(NG__NOTIFICATION_template* p_precondition, NG__NOTIFICATION_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NOTIFICATION_template::NG__NOTIFICATION_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NOTIFICATION_template::~NG__NOTIFICATION_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NOTIFICATION_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NOTIFICATION* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NOTIFICATION_template& NG__NOTIFICATION_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NOTIFICATION_template& NG__NOTIFICATION_template::operator=(const NG__NOTIFICATION& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NOTIFICATION_template& NG__NOTIFICATION_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NOTIFICATION_template& NG__NOTIFICATION_template::operator=(const NG__NOTIFICATION_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NOTIFICATION NG__NOTIFICATION_template::valueof() const +{ +NG__NOTIFICATION ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__NOTIFICATION_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__NOTIFICATION_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__NOTIFICATION_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__NOTIFICATION_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__NOTIFICATION_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__NOTIFICATION_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__NOTIFICATION_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__NOTIFICATION_template::messageType() const { return *(static_cast(get_at(3))); } +HEXSTRING_template& NG__NOTIFICATION_template::spareHalfOctet2() { return *(static_cast(get_at(4))); } +const HEXSTRING_template& NG__NOTIFICATION_template::spareHalfOctet2() const { return *(static_cast(get_at(4))); } +AccessType_template& NG__NOTIFICATION_template::accessType() { return *(static_cast(get_at(5))); } +const AccessType_template& NG__NOTIFICATION_template::accessType() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__NOTIFICATION_template::get_descriptor() const { return &NG__NOTIFICATION_descr_; } +const char* NG__NOTIFICATION_template::fld_name(int p_index) const { return NG__NOTIFICATION::fld_names[p_index]; } +void NG__NOTIFICATION__RESPONSE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_pduSessionStatus; } + +NG__NOTIFICATION__RESPONSE::NG__NOTIFICATION__RESPONSE() : Record_Type() { init_vec(); } + +NG__NOTIFICATION__RESPONSE::NG__NOTIFICATION__RESPONSE(const NG__NOTIFICATION__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_pduSessionStatus.is_bound() ) + field_pduSessionStatus = other_value.field_pduSessionStatus; +init_vec(); +} + +NG__NOTIFICATION__RESPONSE::NG__NOTIFICATION__RESPONSE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_pduSessionStatus) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_pduSessionStatus(par_pduSessionStatus) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NOTIFICATION__RESPONSE::get_descriptor() const { return &NG__NOTIFICATION__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* NG__NOTIFICATION__RESPONSE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &PDU__SessionStatus_descr_ }; +const TTCN_Typedescriptor_t* NG__NOTIFICATION__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NOTIFICATION__RESPONSE::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "pduSessionStatus" }; +const char* NG__NOTIFICATION__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__NOTIFICATION__RESPONSE::optional_indexes[] = { 4, -1 }; +const int* NG__NOTIFICATION__RESPONSE::get_optional_indexes() const { return optional_indexes; } + +const int NG__NOTIFICATION__RESPONSE::optional_indexes_asn[] = { 4, -1 }; +const int* NG__NOTIFICATION__RESPONSE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__NOTIFICATION__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +} +} + +NG__NOTIFICATION__RESPONSE_template::NG__NOTIFICATION__RESPONSE_template(NG__NOTIFICATION__RESPONSE_template* p_precondition, NG__NOTIFICATION__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NOTIFICATION__RESPONSE_template::NG__NOTIFICATION__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NOTIFICATION__RESPONSE_template::~NG__NOTIFICATION__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NOTIFICATION__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NOTIFICATION__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NOTIFICATION__RESPONSE_template& NG__NOTIFICATION__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NOTIFICATION__RESPONSE_template& NG__NOTIFICATION__RESPONSE_template::operator=(const NG__NOTIFICATION__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NOTIFICATION__RESPONSE_template& NG__NOTIFICATION__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NOTIFICATION__RESPONSE_template& NG__NOTIFICATION__RESPONSE_template::operator=(const NG__NOTIFICATION__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NOTIFICATION__RESPONSE NG__NOTIFICATION__RESPONSE_template::valueof() const +{ +NG__NOTIFICATION__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__NOTIFICATION__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__NOTIFICATION__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__NOTIFICATION__RESPONSE_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__NOTIFICATION__RESPONSE_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__NOTIFICATION__RESPONSE_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__NOTIFICATION__RESPONSE_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__NOTIFICATION__RESPONSE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__NOTIFICATION__RESPONSE_template::messageType() const { return *(static_cast(get_at(3))); } +PDU__SessionStatus_template& NG__NOTIFICATION__RESPONSE_template::pduSessionStatus() { return *(static_cast(get_at(4))); } +const PDU__SessionStatus_template& NG__NOTIFICATION__RESPONSE_template::pduSessionStatus() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NG__NOTIFICATION__RESPONSE_template::get_descriptor() const { return &NG__NOTIFICATION__RESPONSE_descr_; } +const char* NG__NOTIFICATION__RESPONSE_template::fld_name(int p_index) const { return NG__NOTIFICATION__RESPONSE::fld_names[p_index]; } +void NG__NAS__SecurityAlgorithms::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_cipheringType; fld_vec[2]=&field_integrityType; } + +NG__NAS__SecurityAlgorithms::NG__NAS__SecurityAlgorithms() : Record_Type() { init_vec(); } + +NG__NAS__SecurityAlgorithms::NG__NAS__SecurityAlgorithms(const NG__NAS__SecurityAlgorithms& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_cipheringType.is_bound() ) + field_cipheringType = other_value.field_cipheringType; +if (other_value.field_integrityType.is_bound() ) + field_integrityType = other_value.field_integrityType; +init_vec(); +} + +NG__NAS__SecurityAlgorithms::NG__NAS__SecurityAlgorithms(const OPTIONAL& par_iei, + const BITSTRING& par_cipheringType, + const BITSTRING& par_integrityType) : field_iei(par_iei), + field_cipheringType(par_cipheringType), + field_integrityType(par_integrityType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__SecurityAlgorithms::get_descriptor() const { return &NG__NAS__SecurityAlgorithms_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__SecurityAlgorithms::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__SecurityAlgorithms::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__SecurityAlgorithms::fld_names[] = { "iei", "cipheringType", "integrityType" }; +const char* NG__NAS__SecurityAlgorithms::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__NAS__SecurityAlgorithms::optional_indexes[] = { 0, -1 }; +const int* NG__NAS__SecurityAlgorithms::get_optional_indexes() const { return optional_indexes; } + +const int NG__NAS__SecurityAlgorithms::optional_indexes_asn[] = { 0, -1 }; +const int* NG__NAS__SecurityAlgorithms::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__NAS__SecurityAlgorithms_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NG__NAS__SecurityAlgorithms_template::NG__NAS__SecurityAlgorithms_template(NG__NAS__SecurityAlgorithms_template* p_precondition, NG__NAS__SecurityAlgorithms_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__SecurityAlgorithms_template::NG__NAS__SecurityAlgorithms_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__SecurityAlgorithms_template::~NG__NAS__SecurityAlgorithms_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__SecurityAlgorithms_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__SecurityAlgorithms* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__SecurityAlgorithms_template& NG__NAS__SecurityAlgorithms_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__SecurityAlgorithms_template& NG__NAS__SecurityAlgorithms_template::operator=(const NG__NAS__SecurityAlgorithms& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__SecurityAlgorithms_template& NG__NAS__SecurityAlgorithms_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__SecurityAlgorithms_template& NG__NAS__SecurityAlgorithms_template::operator=(const NG__NAS__SecurityAlgorithms_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__SecurityAlgorithms NG__NAS__SecurityAlgorithms_template::valueof() const +{ +NG__NAS__SecurityAlgorithms ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__NAS__SecurityAlgorithms_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__NAS__SecurityAlgorithms_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NG__NAS__SecurityAlgorithms_template::cipheringType() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NG__NAS__SecurityAlgorithms_template::cipheringType() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__NAS__SecurityAlgorithms_template::integrityType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__NAS__SecurityAlgorithms_template::integrityType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NG__NAS__SecurityAlgorithms_template::get_descriptor() const { return &NG__NAS__SecurityAlgorithms_descr_; } +const char* NG__NAS__SecurityAlgorithms_template::fld_name(int p_index) const { return NG__NAS__SecurityAlgorithms::fld_names[p_index]; } +void NG__SECURITY__MODE__COMMAND::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_nasSecurityAlgorithms; fld_vec[5]=&field_spareHalfOctet2; fld_vec[6]=&field_ngNasKSI; fld_vec[7]=&field_ueSecurityCapability; fld_vec[8]=&field_imeisvRequest; fld_vec[9]=&field_epsSecurityAlgorithms; fld_vec[10]=&field_add5GSecurityInfo; fld_vec[11]=&field_eapMessage; fld_vec[12]=&field_abba; fld_vec[13]=&field_replayedUESecurityCap; } + +NG__SECURITY__MODE__COMMAND::NG__SECURITY__MODE__COMMAND() : Record_Type() { init_vec(); } + +NG__SECURITY__MODE__COMMAND::NG__SECURITY__MODE__COMMAND(const NG__SECURITY__MODE__COMMAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_nasSecurityAlgorithms.is_bound() ) + field_nasSecurityAlgorithms = other_value.field_nasSecurityAlgorithms; +if (other_value.field_spareHalfOctet2.is_bound() ) + field_spareHalfOctet2 = other_value.field_spareHalfOctet2; +if (other_value.field_ngNasKSI.is_bound() ) + field_ngNasKSI = other_value.field_ngNasKSI; +if (other_value.field_ueSecurityCapability.is_bound() ) + field_ueSecurityCapability = other_value.field_ueSecurityCapability; +if (other_value.field_imeisvRequest.is_bound() ) + field_imeisvRequest = other_value.field_imeisvRequest; +if (other_value.field_epsSecurityAlgorithms.is_bound() ) + field_epsSecurityAlgorithms = other_value.field_epsSecurityAlgorithms; +if (other_value.field_add5GSecurityInfo.is_bound() ) + field_add5GSecurityInfo = other_value.field_add5GSecurityInfo; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_abba.is_bound() ) + field_abba = other_value.field_abba; +if (other_value.field_replayedUESecurityCap.is_bound() ) + field_replayedUESecurityCap = other_value.field_replayedUESecurityCap; +init_vec(); +} + +NG__SECURITY__MODE__COMMAND::NG__SECURITY__MODE__COMMAND(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NG__NAS__SecurityAlgorithms& par_nasSecurityAlgorithms, + const HEXSTRING& par_spareHalfOctet2, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngNasKSI, + const NG__UE__SecurityCapability& par_ueSecurityCapability, + const OPTIONAL& par_imeisvRequest, + const OPTIONAL& par_epsSecurityAlgorithms, + const OPTIONAL& par_add5GSecurityInfo, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_abba, + const OPTIONAL& par_replayedUESecurityCap) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_nasSecurityAlgorithms(par_nasSecurityAlgorithms), + field_spareHalfOctet2(par_spareHalfOctet2), + field_ngNasKSI(par_ngNasKSI), + field_ueSecurityCapability(par_ueSecurityCapability), + field_imeisvRequest(par_imeisvRequest), + field_epsSecurityAlgorithms(par_epsSecurityAlgorithms), + field_add5GSecurityInfo(par_add5GSecurityInfo), + field_eapMessage(par_eapMessage), + field_abba(par_abba), + field_replayedUESecurityCap(par_replayedUESecurityCap) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__COMMAND::get_descriptor() const { return &NG__SECURITY__MODE__COMMAND_descr_; } +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__COMMAND::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NG__NAS__SecurityAlgorithms_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &NG__UE__SecurityCapability_descr_, &NAS__CommonTypeDefs::IMEISV__Request_descr_, &NAS__CommonTypeDefs::NAS__SecurityAlgorithms_descr_, &AdditionalSecurityInfo_descr_, &EAP__Message_descr_, &ABBA_descr_, &S1__UE__SecurityCapability_descr_ }; +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__COMMAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__SECURITY__MODE__COMMAND::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "nasSecurityAlgorithms", "spareHalfOctet2", "ngNasKSI", "ueSecurityCapability", "imeisvRequest", "epsSecurityAlgorithms", "add5GSecurityInfo", "eapMessage", "abba", "replayedUESecurityCap" }; +const char* NG__SECURITY__MODE__COMMAND::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__SECURITY__MODE__COMMAND::optional_indexes[] = { 8, 9, 10, 11, 12, 13, -1 }; +const int* NG__SECURITY__MODE__COMMAND::get_optional_indexes() const { return optional_indexes; } + +const int NG__SECURITY__MODE__COMMAND::optional_indexes_asn[] = { 8, 9, 10, 11, 12, 13, -1 }; +const int* NG__SECURITY__MODE__COMMAND::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__SECURITY__MODE__COMMAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 14; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NG__NAS__SecurityAlgorithms_template(ANY_VALUE) : new NG__NAS__SecurityAlgorithms_template; +single_value.value_elements[5] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[7] = was_any ? new NG__UE__SecurityCapability_template(ANY_VALUE) : new NG__UE__SecurityCapability_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::IMEISV__Request_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::IMEISV__Request_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template; +single_value.value_elements[10] = was_any ? new AdditionalSecurityInfo_template(ANY_OR_OMIT) : new AdditionalSecurityInfo_template; +single_value.value_elements[11] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +single_value.value_elements[12] = was_any ? new ABBA_template(ANY_OR_OMIT) : new ABBA_template; +single_value.value_elements[13] = was_any ? new S1__UE__SecurityCapability_template(ANY_OR_OMIT) : new S1__UE__SecurityCapability_template; +} +} + +NG__SECURITY__MODE__COMMAND_template::NG__SECURITY__MODE__COMMAND_template(NG__SECURITY__MODE__COMMAND_template* p_precondition, NG__SECURITY__MODE__COMMAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__SECURITY__MODE__COMMAND_template::NG__SECURITY__MODE__COMMAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__SECURITY__MODE__COMMAND_template::~NG__SECURITY__MODE__COMMAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__SECURITY__MODE__COMMAND_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__SECURITY__MODE__COMMAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__SECURITY__MODE__COMMAND_template& NG__SECURITY__MODE__COMMAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__SECURITY__MODE__COMMAND_template& NG__SECURITY__MODE__COMMAND_template::operator=(const NG__SECURITY__MODE__COMMAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__SECURITY__MODE__COMMAND_template& NG__SECURITY__MODE__COMMAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__SECURITY__MODE__COMMAND_template& NG__SECURITY__MODE__COMMAND_template::operator=(const NG__SECURITY__MODE__COMMAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__SECURITY__MODE__COMMAND NG__SECURITY__MODE__COMMAND_template::valueof() const +{ +NG__SECURITY__MODE__COMMAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__SECURITY__MODE__COMMAND_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__SECURITY__MODE__COMMAND_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__SECURITY__MODE__COMMAND_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__SECURITY__MODE__COMMAND_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__SECURITY__MODE__COMMAND_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__SECURITY__MODE__COMMAND_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__SECURITY__MODE__COMMAND_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__SECURITY__MODE__COMMAND_template::messageType() const { return *(static_cast(get_at(3))); } +NG__NAS__SecurityAlgorithms_template& NG__SECURITY__MODE__COMMAND_template::nasSecurityAlgorithms() { return *(static_cast(get_at(4))); } +const NG__NAS__SecurityAlgorithms_template& NG__SECURITY__MODE__COMMAND_template::nasSecurityAlgorithms() const { return *(static_cast(get_at(4))); } +HEXSTRING_template& NG__SECURITY__MODE__COMMAND_template::spareHalfOctet2() { return *(static_cast(get_at(5))); } +const HEXSTRING_template& NG__SECURITY__MODE__COMMAND_template::spareHalfOctet2() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__SECURITY__MODE__COMMAND_template::ngNasKSI() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__SECURITY__MODE__COMMAND_template::ngNasKSI() const { return *(static_cast(get_at(6))); } +NG__UE__SecurityCapability_template& NG__SECURITY__MODE__COMMAND_template::ueSecurityCapability() { return *(static_cast(get_at(7))); } +const NG__UE__SecurityCapability_template& NG__SECURITY__MODE__COMMAND_template::ueSecurityCapability() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::IMEISV__Request_template& NG__SECURITY__MODE__COMMAND_template::imeisvRequest() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::IMEISV__Request_template& NG__SECURITY__MODE__COMMAND_template::imeisvRequest() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& NG__SECURITY__MODE__COMMAND_template::epsSecurityAlgorithms() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& NG__SECURITY__MODE__COMMAND_template::epsSecurityAlgorithms() const { return *(static_cast(get_at(9))); } +AdditionalSecurityInfo_template& NG__SECURITY__MODE__COMMAND_template::add5GSecurityInfo() { return *(static_cast(get_at(10))); } +const AdditionalSecurityInfo_template& NG__SECURITY__MODE__COMMAND_template::add5GSecurityInfo() const { return *(static_cast(get_at(10))); } +EAP__Message_template& NG__SECURITY__MODE__COMMAND_template::eapMessage() { return *(static_cast(get_at(11))); } +const EAP__Message_template& NG__SECURITY__MODE__COMMAND_template::eapMessage() const { return *(static_cast(get_at(11))); } +ABBA_template& NG__SECURITY__MODE__COMMAND_template::abba() { return *(static_cast(get_at(12))); } +const ABBA_template& NG__SECURITY__MODE__COMMAND_template::abba() const { return *(static_cast(get_at(12))); } +S1__UE__SecurityCapability_template& NG__SECURITY__MODE__COMMAND_template::replayedUESecurityCap() { return *(static_cast(get_at(13))); } +const S1__UE__SecurityCapability_template& NG__SECURITY__MODE__COMMAND_template::replayedUESecurityCap() const { return *(static_cast(get_at(13))); } +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__COMMAND_template::get_descriptor() const { return &NG__SECURITY__MODE__COMMAND_descr_; } +const char* NG__SECURITY__MODE__COMMAND_template::fld_name(int p_index) const { return NG__SECURITY__MODE__COMMAND::fld_names[p_index]; } +void AdditionalSecurityInfo::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spareBits; fld_vec[3]=&field_rinmr; fld_vec[4]=&field_hdp; } + +AdditionalSecurityInfo::AdditionalSecurityInfo() : Record_Type() { init_vec(); } + +AdditionalSecurityInfo::AdditionalSecurityInfo(const AdditionalSecurityInfo& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_rinmr.is_bound() ) + field_rinmr = other_value.field_rinmr; +if (other_value.field_hdp.is_bound() ) + field_hdp = other_value.field_hdp; +init_vec(); +} + +AdditionalSecurityInfo::AdditionalSecurityInfo(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_rinmr, + const BITSTRING& par_hdp) : field_iei(par_iei), + field_iel(par_iel), + field_spareBits(par_spareBits), + field_rinmr(par_rinmr), + field_hdp(par_hdp) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AdditionalSecurityInfo::get_descriptor() const { return &AdditionalSecurityInfo_descr_; } +const TTCN_Typedescriptor_t* AdditionalSecurityInfo::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* AdditionalSecurityInfo::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AdditionalSecurityInfo::fld_names[] = { "iei", "iel", "spareBits", "rinmr", "hdp" }; +const char* AdditionalSecurityInfo::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AdditionalSecurityInfo::optional_indexes[] = { 0, 1, -1 }; +const int* AdditionalSecurityInfo::get_optional_indexes() const { return optional_indexes; } + +const int AdditionalSecurityInfo::optional_indexes_asn[] = { 0, 1, -1 }; +const int* AdditionalSecurityInfo::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AdditionalSecurityInfo_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AdditionalSecurityInfo_template::AdditionalSecurityInfo_template(AdditionalSecurityInfo_template* p_precondition, AdditionalSecurityInfo_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AdditionalSecurityInfo_template::AdditionalSecurityInfo_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AdditionalSecurityInfo_template::~AdditionalSecurityInfo_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AdditionalSecurityInfo_template::match_dynamic(const Base_Type* match_value) const +{ +const AdditionalSecurityInfo* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AdditionalSecurityInfo_template& AdditionalSecurityInfo_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AdditionalSecurityInfo_template& AdditionalSecurityInfo_template::operator=(const AdditionalSecurityInfo& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AdditionalSecurityInfo_template& AdditionalSecurityInfo_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AdditionalSecurityInfo_template& AdditionalSecurityInfo_template::operator=(const AdditionalSecurityInfo_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AdditionalSecurityInfo AdditionalSecurityInfo_template::valueof() const +{ +AdditionalSecurityInfo ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AdditionalSecurityInfo_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AdditionalSecurityInfo_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& AdditionalSecurityInfo_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& AdditionalSecurityInfo_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AdditionalSecurityInfo_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AdditionalSecurityInfo_template::spareBits() const { return *(static_cast(get_at(2))); } +BITSTRING_template& AdditionalSecurityInfo_template::rinmr() { return *(static_cast(get_at(3))); } +const BITSTRING_template& AdditionalSecurityInfo_template::rinmr() const { return *(static_cast(get_at(3))); } +BITSTRING_template& AdditionalSecurityInfo_template::hdp() { return *(static_cast(get_at(4))); } +const BITSTRING_template& AdditionalSecurityInfo_template::hdp() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* AdditionalSecurityInfo_template::get_descriptor() const { return &AdditionalSecurityInfo_descr_; } +const char* AdditionalSecurityInfo_template::fld_name(int p_index) const { return AdditionalSecurityInfo::fld_names[p_index]; } +void S1__UE__SecurityCapability::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_ieValue; } + +S1__UE__SecurityCapability::S1__UE__SecurityCapability() : Record_Type() { init_vec(); } + +S1__UE__SecurityCapability::S1__UE__SecurityCapability(const S1__UE__SecurityCapability& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_ieValue.is_bound() ) + field_ieValue = other_value.field_ieValue; +init_vec(); +} + +S1__UE__SecurityCapability::S1__UE__SecurityCapability(const OPTIONAL& par_iei, + const NAS__CommonTypeDefs::UE__SecurityCapability& par_ieValue) : field_iei(par_iei), + field_ieValue(par_ieValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* S1__UE__SecurityCapability::get_descriptor() const { return &S1__UE__SecurityCapability_descr_; } +const TTCN_Typedescriptor_t* S1__UE__SecurityCapability::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::UE__SecurityCapability_descr_ }; +const TTCN_Typedescriptor_t* S1__UE__SecurityCapability::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* S1__UE__SecurityCapability::fld_names[] = { "iei", "ieValue" }; +const char* S1__UE__SecurityCapability::fld_name(int p_index) const { return fld_names[p_index]; } + +const int S1__UE__SecurityCapability::optional_indexes[] = { 0, -1 }; +const int* S1__UE__SecurityCapability::get_optional_indexes() const { return optional_indexes; } + +const int S1__UE__SecurityCapability::optional_indexes_asn[] = { 0, -1 }; +const int* S1__UE__SecurityCapability::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void S1__UE__SecurityCapability_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new NAS__CommonTypeDefs::UE__SecurityCapability_template(ANY_VALUE) : new NAS__CommonTypeDefs::UE__SecurityCapability_template; +} +} + +S1__UE__SecurityCapability_template::S1__UE__SecurityCapability_template(S1__UE__SecurityCapability_template* p_precondition, S1__UE__SecurityCapability_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +S1__UE__SecurityCapability_template::S1__UE__SecurityCapability_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +S1__UE__SecurityCapability_template::~S1__UE__SecurityCapability_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean S1__UE__SecurityCapability_template::match_dynamic(const Base_Type* match_value) const +{ +const S1__UE__SecurityCapability* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +S1__UE__SecurityCapability_template& S1__UE__SecurityCapability_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +S1__UE__SecurityCapability_template& S1__UE__SecurityCapability_template::operator=(const S1__UE__SecurityCapability& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +S1__UE__SecurityCapability_template& S1__UE__SecurityCapability_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +S1__UE__SecurityCapability_template& S1__UE__SecurityCapability_template::operator=(const S1__UE__SecurityCapability_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +S1__UE__SecurityCapability S1__UE__SecurityCapability_template::valueof() const +{ +S1__UE__SecurityCapability ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& S1__UE__SecurityCapability_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& S1__UE__SecurityCapability_template::iei() const { return *(static_cast(get_at(0))); } +NAS__CommonTypeDefs::UE__SecurityCapability_template& S1__UE__SecurityCapability_template::ieValue() { return *(static_cast(get_at(1))); } +const NAS__CommonTypeDefs::UE__SecurityCapability_template& S1__UE__SecurityCapability_template::ieValue() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* S1__UE__SecurityCapability_template::get_descriptor() const { return &S1__UE__SecurityCapability_descr_; } +const char* S1__UE__SecurityCapability_template::fld_name(int p_index) const { return S1__UE__SecurityCapability::fld_names[p_index]; } +void NG__SECURITY__MODE__COMPLETE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_imeisv; fld_vec[5]=&field_nasMsg; fld_vec[6]=&field_nonIMEISV__PEI; } + +NG__SECURITY__MODE__COMPLETE::NG__SECURITY__MODE__COMPLETE() : Record_Type() { init_vec(); } + +NG__SECURITY__MODE__COMPLETE::NG__SECURITY__MODE__COMPLETE(const NG__SECURITY__MODE__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_imeisv.is_bound() ) + field_imeisv = other_value.field_imeisv; +if (other_value.field_nasMsg.is_bound() ) + field_nasMsg = other_value.field_nasMsg; +if (other_value.field_nonIMEISV__PEI.is_bound() ) + field_nonIMEISV__PEI = other_value.field_nonIMEISV__PEI; +init_vec(); +} + +NG__SECURITY__MODE__COMPLETE::NG__SECURITY__MODE__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_imeisv, + const OPTIONAL& par_nasMsg, + const OPTIONAL& par_nonIMEISV__PEI) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_imeisv(par_imeisv), + field_nasMsg(par_nasMsg), + field_nonIMEISV__PEI(par_nonIMEISV__PEI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__COMPLETE::get_descriptor() const { return &NG__SECURITY__MODE__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__COMPLETE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NG__MobileIdentity_descr_, &NAS__CommonTypeDefs::ReplayedNASMessageContainer_descr_, &NG__MobileIdentity_descr_ }; +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__SECURITY__MODE__COMPLETE::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "imeisv", "nasMsg", "nonIMEISV_PEI" }; +const char* NG__SECURITY__MODE__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__SECURITY__MODE__COMPLETE::optional_indexes[] = { 4, 5, 6, -1 }; +const int* NG__SECURITY__MODE__COMPLETE::get_optional_indexes() const { return optional_indexes; } + +const int NG__SECURITY__MODE__COMPLETE::optional_indexes_asn[] = { 4, 5, 6, -1 }; +const int* NG__SECURITY__MODE__COMPLETE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__SECURITY__MODE__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NG__MobileIdentity_template(ANY_OR_OMIT) : new NG__MobileIdentity_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template; +single_value.value_elements[6] = was_any ? new NG__MobileIdentity_template(ANY_OR_OMIT) : new NG__MobileIdentity_template; +} +} + +NG__SECURITY__MODE__COMPLETE_template::NG__SECURITY__MODE__COMPLETE_template(NG__SECURITY__MODE__COMPLETE_template* p_precondition, NG__SECURITY__MODE__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__SECURITY__MODE__COMPLETE_template::NG__SECURITY__MODE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__SECURITY__MODE__COMPLETE_template::~NG__SECURITY__MODE__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__SECURITY__MODE__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__SECURITY__MODE__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__SECURITY__MODE__COMPLETE_template& NG__SECURITY__MODE__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__SECURITY__MODE__COMPLETE_template& NG__SECURITY__MODE__COMPLETE_template::operator=(const NG__SECURITY__MODE__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__SECURITY__MODE__COMPLETE_template& NG__SECURITY__MODE__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__SECURITY__MODE__COMPLETE_template& NG__SECURITY__MODE__COMPLETE_template::operator=(const NG__SECURITY__MODE__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__SECURITY__MODE__COMPLETE NG__SECURITY__MODE__COMPLETE_template::valueof() const +{ +NG__SECURITY__MODE__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__SECURITY__MODE__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__SECURITY__MODE__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__SECURITY__MODE__COMPLETE_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__SECURITY__MODE__COMPLETE_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__SECURITY__MODE__COMPLETE_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__SECURITY__MODE__COMPLETE_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__SECURITY__MODE__COMPLETE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__SECURITY__MODE__COMPLETE_template::messageType() const { return *(static_cast(get_at(3))); } +NG__MobileIdentity_template& NG__SECURITY__MODE__COMPLETE_template::imeisv() { return *(static_cast(get_at(4))); } +const NG__MobileIdentity_template& NG__SECURITY__MODE__COMPLETE_template::imeisv() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& NG__SECURITY__MODE__COMPLETE_template::nasMsg() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& NG__SECURITY__MODE__COMPLETE_template::nasMsg() const { return *(static_cast(get_at(5))); } +NG__MobileIdentity_template& NG__SECURITY__MODE__COMPLETE_template::nonIMEISV__PEI() { return *(static_cast(get_at(6))); } +const NG__MobileIdentity_template& NG__SECURITY__MODE__COMPLETE_template::nonIMEISV__PEI() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__COMPLETE_template::get_descriptor() const { return &NG__SECURITY__MODE__COMPLETE_descr_; } +const char* NG__SECURITY__MODE__COMPLETE_template::fld_name(int p_index) const { return NG__SECURITY__MODE__COMPLETE::fld_names[p_index]; } +void NG__SECURITY__MODE__REJECT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gmmCause; } + +NG__SECURITY__MODE__REJECT::NG__SECURITY__MODE__REJECT() : Record_Type() { init_vec(); } + +NG__SECURITY__MODE__REJECT::NG__SECURITY__MODE__REJECT(const NG__SECURITY__MODE__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gmmCause.is_bound() ) + field_gmmCause = other_value.field_gmmCause; +init_vec(); +} + +NG__SECURITY__MODE__REJECT::NG__SECURITY__MODE__REJECT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_gmmCause(par_gmmCause) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__REJECT::get_descriptor() const { return &NG__SECURITY__MODE__REJECT_descr_; } +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__REJECT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_ }; +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__SECURITY__MODE__REJECT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "gmmCause" }; +const char* NG__SECURITY__MODE__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__SECURITY__MODE__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +} +} + +NG__SECURITY__MODE__REJECT_template::NG__SECURITY__MODE__REJECT_template(NG__SECURITY__MODE__REJECT_template* p_precondition, NG__SECURITY__MODE__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__SECURITY__MODE__REJECT_template::NG__SECURITY__MODE__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__SECURITY__MODE__REJECT_template::~NG__SECURITY__MODE__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__SECURITY__MODE__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__SECURITY__MODE__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__SECURITY__MODE__REJECT_template& NG__SECURITY__MODE__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__SECURITY__MODE__REJECT_template& NG__SECURITY__MODE__REJECT_template::operator=(const NG__SECURITY__MODE__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__SECURITY__MODE__REJECT_template& NG__SECURITY__MODE__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__SECURITY__MODE__REJECT_template& NG__SECURITY__MODE__REJECT_template::operator=(const NG__SECURITY__MODE__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__SECURITY__MODE__REJECT NG__SECURITY__MODE__REJECT_template::valueof() const +{ +NG__SECURITY__MODE__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__SECURITY__MODE__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__SECURITY__MODE__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__SECURITY__MODE__REJECT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__SECURITY__MODE__REJECT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__SECURITY__MODE__REJECT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__SECURITY__MODE__REJECT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__SECURITY__MODE__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__SECURITY__MODE__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__SECURITY__MODE__REJECT_template::gmmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__SECURITY__MODE__REJECT_template::gmmCause() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NG__SECURITY__MODE__REJECT_template::get_descriptor() const { return &NG__SECURITY__MODE__REJECT_descr_; } +const char* NG__SECURITY__MODE__REJECT_template::fld_name(int p_index) const { return NG__SECURITY__MODE__REJECT::fld_names[p_index]; } +void NG__SECURITY__PROTECTED__NAS__MESSAGE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageAuthenticationCode; fld_vec[4]=&field_sequenceNumber; fld_vec[5]=&field_plainNASMessage; } + +NG__SECURITY__PROTECTED__NAS__MESSAGE::NG__SECURITY__PROTECTED__NAS__MESSAGE() : Record_Type() { init_vec(); } + +NG__SECURITY__PROTECTED__NAS__MESSAGE::NG__SECURITY__PROTECTED__NAS__MESSAGE(const NG__SECURITY__PROTECTED__NAS__MESSAGE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageAuthenticationCode.is_bound() ) + field_messageAuthenticationCode = other_value.field_messageAuthenticationCode; +if (other_value.field_sequenceNumber.is_bound() ) + field_sequenceNumber = other_value.field_sequenceNumber; +if (other_value.field_plainNASMessage.is_bound() ) + field_plainNASMessage = other_value.field_plainNASMessage; +init_vec(); +} + +NG__SECURITY__PROTECTED__NAS__MESSAGE::NG__SECURITY__PROTECTED__NAS__MESSAGE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const OCTETSTRING& par_messageAuthenticationCode, + const OCTETSTRING& par_sequenceNumber, + const OCTETSTRING& par_plainNASMessage) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageAuthenticationCode(par_messageAuthenticationCode), + field_sequenceNumber(par_sequenceNumber), + field_plainNASMessage(par_plainNASMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__SECURITY__PROTECTED__NAS__MESSAGE::get_descriptor() const { return &NG__SECURITY__PROTECTED__NAS__MESSAGE_descr_; } +const TTCN_Typedescriptor_t* NG__SECURITY__PROTECTED__NAS__MESSAGE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &CommonDefs::MessageAuthenticationCode_descr_, &NAS__CommonTypeDefs::NAS__SequenceNumber_descr_, &NG__NAS__Message_descr_ }; +const TTCN_Typedescriptor_t* NG__SECURITY__PROTECTED__NAS__MESSAGE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__SECURITY__PROTECTED__NAS__MESSAGE::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageAuthenticationCode", "sequenceNumber", "plainNASMessage" }; +const char* NG__SECURITY__PROTECTED__NAS__MESSAGE::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__SECURITY__PROTECTED__NAS__MESSAGE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NG__SECURITY__PROTECTED__NAS__MESSAGE_template::NG__SECURITY__PROTECTED__NAS__MESSAGE_template(NG__SECURITY__PROTECTED__NAS__MESSAGE_template* p_precondition, NG__SECURITY__PROTECTED__NAS__MESSAGE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__SECURITY__PROTECTED__NAS__MESSAGE_template::NG__SECURITY__PROTECTED__NAS__MESSAGE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__SECURITY__PROTECTED__NAS__MESSAGE_template::~NG__SECURITY__PROTECTED__NAS__MESSAGE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__SECURITY__PROTECTED__NAS__MESSAGE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__SECURITY__PROTECTED__NAS__MESSAGE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__SECURITY__PROTECTED__NAS__MESSAGE_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__SECURITY__PROTECTED__NAS__MESSAGE_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::operator=(const NG__SECURITY__PROTECTED__NAS__MESSAGE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__SECURITY__PROTECTED__NAS__MESSAGE_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__SECURITY__PROTECTED__NAS__MESSAGE_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::operator=(const NG__SECURITY__PROTECTED__NAS__MESSAGE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__SECURITY__PROTECTED__NAS__MESSAGE NG__SECURITY__PROTECTED__NAS__MESSAGE_template::valueof() const +{ +NG__SECURITY__PROTECTED__NAS__MESSAGE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::messageAuthenticationCode() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::messageAuthenticationCode() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::sequenceNumber() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::sequenceNumber() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::plainNASMessage() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& NG__SECURITY__PROTECTED__NAS__MESSAGE_template::plainNASMessage() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__SECURITY__PROTECTED__NAS__MESSAGE_template::get_descriptor() const { return &NG__SECURITY__PROTECTED__NAS__MESSAGE_descr_; } +const char* NG__SECURITY__PROTECTED__NAS__MESSAGE_template::fld_name(int p_index) const { return NG__SECURITY__PROTECTED__NAS__MESSAGE::fld_names[p_index]; } +void NG__GMM__STATUS::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gmmCause; } + +NG__GMM__STATUS::NG__GMM__STATUS() : Record_Type() { init_vec(); } + +NG__GMM__STATUS::NG__GMM__STATUS(const NG__GMM__STATUS& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gmmCause.is_bound() ) + field_gmmCause = other_value.field_gmmCause; +init_vec(); +} + +NG__GMM__STATUS::NG__GMM__STATUS(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_gmmCause(par_gmmCause) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__GMM__STATUS::get_descriptor() const { return &NG__GMM__STATUS_descr_; } +const TTCN_Typedescriptor_t* NG__GMM__STATUS::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_ }; +const TTCN_Typedescriptor_t* NG__GMM__STATUS::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__GMM__STATUS::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "gmmCause" }; +const char* NG__GMM__STATUS::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__GMM__STATUS_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +} +} + +NG__GMM__STATUS_template::NG__GMM__STATUS_template(NG__GMM__STATUS_template* p_precondition, NG__GMM__STATUS_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__GMM__STATUS_template::NG__GMM__STATUS_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__GMM__STATUS_template::~NG__GMM__STATUS_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__GMM__STATUS_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__GMM__STATUS* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__GMM__STATUS_template& NG__GMM__STATUS_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__GMM__STATUS_template& NG__GMM__STATUS_template::operator=(const NG__GMM__STATUS& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__GMM__STATUS_template& NG__GMM__STATUS_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__GMM__STATUS_template& NG__GMM__STATUS_template::operator=(const NG__GMM__STATUS_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__GMM__STATUS NG__GMM__STATUS_template::valueof() const +{ +NG__GMM__STATUS ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__GMM__STATUS_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__GMM__STATUS_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__GMM__STATUS_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__GMM__STATUS_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__GMM__STATUS_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__GMM__STATUS_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__GMM__STATUS_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__GMM__STATUS_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__GMM__STATUS_template::gmmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__GMM__STATUS_template::gmmCause() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NG__GMM__STATUS_template::get_descriptor() const { return &NG__GMM__STATUS_descr_; } +const char* NG__GMM__STATUS_template::fld_name(int p_index) const { return NG__GMM__STATUS::fld_names[p_index]; } +void CP__ServiceType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_tsc; fld_vec[2]=&field_nasKeySetId; } + +CP__ServiceType::CP__ServiceType() : Record_Type() { init_vec(); } + +CP__ServiceType::CP__ServiceType(const CP__ServiceType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_tsc.is_bound() ) + field_tsc = other_value.field_tsc; +if (other_value.field_nasKeySetId.is_bound() ) + field_nasKeySetId = other_value.field_nasKeySetId; +init_vec(); +} + +CP__ServiceType::CP__ServiceType(const OPTIONAL& par_iei, + const BITSTRING& par_tsc, + const BITSTRING& par_nasKeySetId) : field_iei(par_iei), + field_tsc(par_tsc), + field_nasKeySetId(par_nasKeySetId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CP__ServiceType::get_descriptor() const { return &CP__ServiceType_descr_; } +const TTCN_Typedescriptor_t* CP__ServiceType::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &NAS__CommonTypeDefs::NAS__KsiValue_descr_ }; +const TTCN_Typedescriptor_t* CP__ServiceType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CP__ServiceType::fld_names[] = { "iei", "tsc", "nasKeySetId" }; +const char* CP__ServiceType::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CP__ServiceType::optional_indexes[] = { 0, -1 }; +const int* CP__ServiceType::get_optional_indexes() const { return optional_indexes; } + +const int CP__ServiceType::optional_indexes_asn[] = { 0, -1 }; +const int* CP__ServiceType::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CP__ServiceType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +CP__ServiceType_template::CP__ServiceType_template(CP__ServiceType_template* p_precondition, CP__ServiceType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CP__ServiceType_template::CP__ServiceType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CP__ServiceType_template::~CP__ServiceType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CP__ServiceType_template::match_dynamic(const Base_Type* match_value) const +{ +const CP__ServiceType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CP__ServiceType_template& CP__ServiceType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CP__ServiceType_template& CP__ServiceType_template::operator=(const CP__ServiceType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CP__ServiceType_template& CP__ServiceType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CP__ServiceType_template& CP__ServiceType_template::operator=(const CP__ServiceType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CP__ServiceType CP__ServiceType_template::valueof() const +{ +CP__ServiceType ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& CP__ServiceType_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& CP__ServiceType_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& CP__ServiceType_template::tsc() { return *(static_cast(get_at(1))); } +const BITSTRING_template& CP__ServiceType_template::tsc() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CP__ServiceType_template::nasKeySetId() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CP__ServiceType_template::nasKeySetId() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* CP__ServiceType_template::get_descriptor() const { return &CP__ServiceType_descr_; } +const char* CP__ServiceType_template::fld_name(int p_index) const { return CP__ServiceType::fld_names[p_index]; } +void NG__CP__SERVICE__REQUEST::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_ngKSI; fld_vec[5]=&field_cpServiceType; fld_vec[6]=&field_cIoTSmallDataContainer; fld_vec[7]=&field_payloadContainerType; fld_vec[8]=&field_payload; fld_vec[9]=&field_pduSessionId; fld_vec[10]=&field_pduSessionStatus; fld_vec[11]=&field_releaseAssistanceInd; fld_vec[12]=&field_ulDataStatus; fld_vec[13]=&field_nasMsg; fld_vec[14]=&field_additionalInfo; fld_vec[15]=&field_allowedPDUSessionStatus; fld_vec[16]=&field_ueRequestType; fld_vec[17]=&field_pagingRestrict; } + +NG__CP__SERVICE__REQUEST::NG__CP__SERVICE__REQUEST() : Record_Type() { init_vec(); } + +NG__CP__SERVICE__REQUEST::NG__CP__SERVICE__REQUEST(const NG__CP__SERVICE__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_ngKSI.is_bound() ) + field_ngKSI = other_value.field_ngKSI; +if (other_value.field_cpServiceType.is_bound() ) + field_cpServiceType = other_value.field_cpServiceType; +if (other_value.field_cIoTSmallDataContainer.is_bound() ) + field_cIoTSmallDataContainer = other_value.field_cIoTSmallDataContainer; +if (other_value.field_payloadContainerType.is_bound() ) + field_payloadContainerType = other_value.field_payloadContainerType; +if (other_value.field_payload.is_bound() ) + field_payload = other_value.field_payload; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_pduSessionStatus.is_bound() ) + field_pduSessionStatus = other_value.field_pduSessionStatus; +if (other_value.field_releaseAssistanceInd.is_bound() ) + field_releaseAssistanceInd = other_value.field_releaseAssistanceInd; +if (other_value.field_ulDataStatus.is_bound() ) + field_ulDataStatus = other_value.field_ulDataStatus; +if (other_value.field_nasMsg.is_bound() ) + field_nasMsg = other_value.field_nasMsg; +if (other_value.field_additionalInfo.is_bound() ) + field_additionalInfo = other_value.field_additionalInfo; +if (other_value.field_allowedPDUSessionStatus.is_bound() ) + field_allowedPDUSessionStatus = other_value.field_allowedPDUSessionStatus; +if (other_value.field_ueRequestType.is_bound() ) + field_ueRequestType = other_value.field_ueRequestType; +if (other_value.field_pagingRestrict.is_bound() ) + field_pagingRestrict = other_value.field_pagingRestrict; +init_vec(); +} + +NG__CP__SERVICE__REQUEST::NG__CP__SERVICE__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngKSI, + const CP__ServiceType& par_cpServiceType, + const OPTIONAL& par_cIoTSmallDataContainer, + const OPTIONAL& par_payloadContainerType, + const OPTIONAL& par_payload, + const OPTIONAL& par_pduSessionId, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_releaseAssistanceInd, + const OPTIONAL& par_ulDataStatus, + const OPTIONAL& par_nasMsg, + const OPTIONAL& par_additionalInfo, + const OPTIONAL& par_allowedPDUSessionStatus, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestrict) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_ngKSI(par_ngKSI), + field_cpServiceType(par_cpServiceType), + field_cIoTSmallDataContainer(par_cIoTSmallDataContainer), + field_payloadContainerType(par_payloadContainerType), + field_payload(par_payload), + field_pduSessionId(par_pduSessionId), + field_pduSessionStatus(par_pduSessionStatus), + field_releaseAssistanceInd(par_releaseAssistanceInd), + field_ulDataStatus(par_ulDataStatus), + field_nasMsg(par_nasMsg), + field_additionalInfo(par_additionalInfo), + field_allowedPDUSessionStatus(par_allowedPDUSessionStatus), + field_ueRequestType(par_ueRequestType), + field_pagingRestrict(par_pagingRestrict) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__CP__SERVICE__REQUEST::get_descriptor() const { return &NG__CP__SERVICE__REQUEST_descr_; } +const TTCN_Typedescriptor_t* NG__CP__SERVICE__REQUEST::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::NAS__KeySetIdentifier_descr_, &CP__ServiceType_descr_, &CIoTSmallDataRxdString_descr_, &PayloadContainerType_descr_, &PayloadContainer_descr_, &NG__PDU__SessionId_descr_, &PDU__SessionStatus_descr_, &NAS__CommonTypeDefs::ReleaseAssistanceInd_descr_, &PDU__SessionStatus_descr_, &NAS__CommonTypeDefs::ReplayedNASMessageContainer_descr_, &NAS__CommonTypeDefs::AdditionalInformation_descr_, &PDU__SessionStatus_descr_, &NAS__CommonTypeDefs::UE__RequestType_descr_, &NG__PagingRestriction_descr_ }; +const TTCN_Typedescriptor_t* NG__CP__SERVICE__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__CP__SERVICE__REQUEST::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "ngKSI", "cpServiceType", "cIoTSmallDataContainer", "payloadContainerType", "payload", "pduSessionId", "pduSessionStatus", "releaseAssistanceInd", "ulDataStatus", "nasMsg", "additionalInfo", "allowedPDUSessionStatus", "ueRequestType", "pagingRestrict" }; +const char* NG__CP__SERVICE__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__CP__SERVICE__REQUEST::optional_indexes[] = { 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1 }; +const int* NG__CP__SERVICE__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int NG__CP__SERVICE__REQUEST::optional_indexes_asn[] = { 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1 }; +const int* NG__CP__SERVICE__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__CP__SERVICE__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 18; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template(ANY_VALUE) : new NAS__CommonTypeDefs::NAS__KeySetIdentifier_template; +single_value.value_elements[5] = was_any ? new CP__ServiceType_template(ANY_VALUE) : new CP__ServiceType_template; +single_value.value_elements[6] = was_any ? new CIoTSmallDataRxdString_template(ANY_OR_OMIT) : new CIoTSmallDataRxdString_template; +single_value.value_elements[7] = was_any ? new PayloadContainerType_template(ANY_OR_OMIT) : new PayloadContainerType_template; +single_value.value_elements[8] = was_any ? new PayloadContainer_template(ANY_OR_OMIT) : new PayloadContainer_template; +single_value.value_elements[9] = was_any ? new NG__PDU__SessionId_template(ANY_OR_OMIT) : new NG__PDU__SessionId_template; +single_value.value_elements[10] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::ReleaseAssistanceInd_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReleaseAssistanceInd_template; +single_value.value_elements[12] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[13] = was_any ? new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReplayedNASMessageContainer_template; +single_value.value_elements[14] = was_any ? new NAS__CommonTypeDefs::AdditionalInformation_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::AdditionalInformation_template; +single_value.value_elements[15] = was_any ? new PDU__SessionStatus_template(ANY_OR_OMIT) : new PDU__SessionStatus_template; +single_value.value_elements[16] = was_any ? new NAS__CommonTypeDefs::UE__RequestType_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::UE__RequestType_template; +single_value.value_elements[17] = was_any ? new NG__PagingRestriction_template(ANY_OR_OMIT) : new NG__PagingRestriction_template; +} +} + +NG__CP__SERVICE__REQUEST_template::NG__CP__SERVICE__REQUEST_template(NG__CP__SERVICE__REQUEST_template* p_precondition, NG__CP__SERVICE__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__CP__SERVICE__REQUEST_template::NG__CP__SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__CP__SERVICE__REQUEST_template::~NG__CP__SERVICE__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__CP__SERVICE__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__CP__SERVICE__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__CP__SERVICE__REQUEST_template& NG__CP__SERVICE__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__CP__SERVICE__REQUEST_template& NG__CP__SERVICE__REQUEST_template::operator=(const NG__CP__SERVICE__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__CP__SERVICE__REQUEST_template& NG__CP__SERVICE__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__CP__SERVICE__REQUEST_template& NG__CP__SERVICE__REQUEST_template::operator=(const NG__CP__SERVICE__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__CP__SERVICE__REQUEST NG__CP__SERVICE__REQUEST_template::valueof() const +{ +NG__CP__SERVICE__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__CP__SERVICE__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__CP__SERVICE__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__CP__SERVICE__REQUEST_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__CP__SERVICE__REQUEST_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__CP__SERVICE__REQUEST_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__CP__SERVICE__REQUEST_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__CP__SERVICE__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__CP__SERVICE__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__CP__SERVICE__REQUEST_template::ngKSI() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& NG__CP__SERVICE__REQUEST_template::ngKSI() const { return *(static_cast(get_at(4))); } +CP__ServiceType_template& NG__CP__SERVICE__REQUEST_template::cpServiceType() { return *(static_cast(get_at(5))); } +const CP__ServiceType_template& NG__CP__SERVICE__REQUEST_template::cpServiceType() const { return *(static_cast(get_at(5))); } +CIoTSmallDataRxdString_template& NG__CP__SERVICE__REQUEST_template::cIoTSmallDataContainer() { return *(static_cast(get_at(6))); } +const CIoTSmallDataRxdString_template& NG__CP__SERVICE__REQUEST_template::cIoTSmallDataContainer() const { return *(static_cast(get_at(6))); } +PayloadContainerType_template& NG__CP__SERVICE__REQUEST_template::payloadContainerType() { return *(static_cast(get_at(7))); } +const PayloadContainerType_template& NG__CP__SERVICE__REQUEST_template::payloadContainerType() const { return *(static_cast(get_at(7))); } +PayloadContainer_template& NG__CP__SERVICE__REQUEST_template::payload() { return *(static_cast(get_at(8))); } +const PayloadContainer_template& NG__CP__SERVICE__REQUEST_template::payload() const { return *(static_cast(get_at(8))); } +NG__PDU__SessionId_template& NG__CP__SERVICE__REQUEST_template::pduSessionId() { return *(static_cast(get_at(9))); } +const NG__PDU__SessionId_template& NG__CP__SERVICE__REQUEST_template::pduSessionId() const { return *(static_cast(get_at(9))); } +PDU__SessionStatus_template& NG__CP__SERVICE__REQUEST_template::pduSessionStatus() { return *(static_cast(get_at(10))); } +const PDU__SessionStatus_template& NG__CP__SERVICE__REQUEST_template::pduSessionStatus() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::ReleaseAssistanceInd_template& NG__CP__SERVICE__REQUEST_template::releaseAssistanceInd() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& NG__CP__SERVICE__REQUEST_template::releaseAssistanceInd() const { return *(static_cast(get_at(11))); } +PDU__SessionStatus_template& NG__CP__SERVICE__REQUEST_template::ulDataStatus() { return *(static_cast(get_at(12))); } +const PDU__SessionStatus_template& NG__CP__SERVICE__REQUEST_template::ulDataStatus() const { return *(static_cast(get_at(12))); } +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& NG__CP__SERVICE__REQUEST_template::nasMsg() { return *(static_cast(get_at(13))); } +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& NG__CP__SERVICE__REQUEST_template::nasMsg() const { return *(static_cast(get_at(13))); } +NAS__CommonTypeDefs::AdditionalInformation_template& NG__CP__SERVICE__REQUEST_template::additionalInfo() { return *(static_cast(get_at(14))); } +const NAS__CommonTypeDefs::AdditionalInformation_template& NG__CP__SERVICE__REQUEST_template::additionalInfo() const { return *(static_cast(get_at(14))); } +PDU__SessionStatus_template& NG__CP__SERVICE__REQUEST_template::allowedPDUSessionStatus() { return *(static_cast(get_at(15))); } +const PDU__SessionStatus_template& NG__CP__SERVICE__REQUEST_template::allowedPDUSessionStatus() const { return *(static_cast(get_at(15))); } +NAS__CommonTypeDefs::UE__RequestType_template& NG__CP__SERVICE__REQUEST_template::ueRequestType() { return *(static_cast(get_at(16))); } +const NAS__CommonTypeDefs::UE__RequestType_template& NG__CP__SERVICE__REQUEST_template::ueRequestType() const { return *(static_cast(get_at(16))); } +NG__PagingRestriction_template& NG__CP__SERVICE__REQUEST_template::pagingRestrict() { return *(static_cast(get_at(17))); } +const NG__PagingRestriction_template& NG__CP__SERVICE__REQUEST_template::pagingRestrict() const { return *(static_cast(get_at(17))); } +const TTCN_Typedescriptor_t* NG__CP__SERVICE__REQUEST_template::get_descriptor() const { return &NG__CP__SERVICE__REQUEST_descr_; } +const char* NG__CP__SERVICE__REQUEST_template::fld_name(int p_index) const { return NG__CP__SERVICE__REQUEST::fld_names[p_index]; } +void CIoTSmallDataRxdString::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_encodedstring; } + +CIoTSmallDataRxdString::CIoTSmallDataRxdString() : Record_Type() { init_vec(); } + +CIoTSmallDataRxdString::CIoTSmallDataRxdString(const CIoTSmallDataRxdString& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_encodedstring.is_bound() ) + field_encodedstring = other_value.field_encodedstring; +init_vec(); +} + +CIoTSmallDataRxdString::CIoTSmallDataRxdString(const OCTETSTRING& par_iei, + const OCTETSTRING& par_encodedstring) : field_iei(par_iei), + field_encodedstring(par_encodedstring) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CIoTSmallDataRxdString::get_descriptor() const { return &CIoTSmallDataRxdString_descr_; } +const TTCN_Typedescriptor_t* CIoTSmallDataRxdString::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* CIoTSmallDataRxdString::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CIoTSmallDataRxdString::fld_names[] = { "iei", "encodedstring" }; +const char* CIoTSmallDataRxdString::fld_name(int p_index) const { return fld_names[p_index]; } + +void CIoTSmallDataRxdString_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +CIoTSmallDataRxdString_template::CIoTSmallDataRxdString_template(CIoTSmallDataRxdString_template* p_precondition, CIoTSmallDataRxdString_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CIoTSmallDataRxdString_template::CIoTSmallDataRxdString_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CIoTSmallDataRxdString_template::~CIoTSmallDataRxdString_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CIoTSmallDataRxdString_template::match_dynamic(const Base_Type* match_value) const +{ +const CIoTSmallDataRxdString* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CIoTSmallDataRxdString_template& CIoTSmallDataRxdString_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CIoTSmallDataRxdString_template& CIoTSmallDataRxdString_template::operator=(const CIoTSmallDataRxdString& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CIoTSmallDataRxdString_template& CIoTSmallDataRxdString_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CIoTSmallDataRxdString_template& CIoTSmallDataRxdString_template::operator=(const CIoTSmallDataRxdString_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CIoTSmallDataRxdString CIoTSmallDataRxdString_template::valueof() const +{ +CIoTSmallDataRxdString ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& CIoTSmallDataRxdString_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& CIoTSmallDataRxdString_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& CIoTSmallDataRxdString_template::encodedstring() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& CIoTSmallDataRxdString_template::encodedstring() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* CIoTSmallDataRxdString_template::get_descriptor() const { return &CIoTSmallDataRxdString_descr_; } +const char* CIoTSmallDataRxdString_template::fld_name(int p_index) const { return CIoTSmallDataRxdString::fld_names[p_index]; } +void NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_sNSSAI; fld_vec[5]=&field_eapMessage; } + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND() : Record_Type() { init_vec(); } + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_sNSSAI.is_bound() ) + field_sNSSAI = other_value.field_sNSSAI; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +init_vec(); +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const S__NSSAI__LV& par_sNSSAI, + const EAP__Message& par_eapMessage) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_sNSSAI(par_sNSSAI), + field_eapMessage(par_eapMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::get_descriptor() const { return &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_descr_; } +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &S__NSSAI__LV_descr_, &EAP__Message_descr_ }; +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "sNSSAI", "eapMessage" }; +const char* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new S__NSSAI__LV_template(ANY_VALUE) : new S__NSSAI__LV_template; +single_value.value_elements[5] = was_any ? new EAP__Message_template(ANY_VALUE) : new EAP__Message_template; +} +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template* p_precondition, NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::~NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::valueof() const +{ +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::messageType() const { return *(static_cast(get_at(3))); } +S__NSSAI__LV_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::sNSSAI() { return *(static_cast(get_at(4))); } +const S__NSSAI__LV_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::sNSSAI() const { return *(static_cast(get_at(4))); } +EAP__Message_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::eapMessage() { return *(static_cast(get_at(5))); } +const EAP__Message_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::eapMessage() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::get_descriptor() const { return &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_descr_; } +const char* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template::fld_name(int p_index) const { return NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND::fld_names[p_index]; } +void NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_sNSSAI; fld_vec[5]=&field_eapMessage; } + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE() : Record_Type() { init_vec(); } + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_sNSSAI.is_bound() ) + field_sNSSAI = other_value.field_sNSSAI; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +init_vec(); +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const S__NSSAI__LV& par_sNSSAI, + const EAP__Message& par_eapMessage) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_sNSSAI(par_sNSSAI), + field_eapMessage(par_eapMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::get_descriptor() const { return &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &S__NSSAI__LV_descr_, &EAP__Message_descr_ }; +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "sNSSAI", "eapMessage" }; +const char* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new S__NSSAI__LV_template(ANY_VALUE) : new S__NSSAI__LV_template; +single_value.value_elements[5] = was_any ? new EAP__Message_template(ANY_VALUE) : new EAP__Message_template; +} +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template* p_precondition, NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::~NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::valueof() const +{ +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::messageType() const { return *(static_cast(get_at(3))); } +S__NSSAI__LV_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::sNSSAI() { return *(static_cast(get_at(4))); } +const S__NSSAI__LV_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::sNSSAI() const { return *(static_cast(get_at(4))); } +EAP__Message_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::eapMessage() { return *(static_cast(get_at(5))); } +const EAP__Message_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::eapMessage() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::get_descriptor() const { return &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_descr_; } +const char* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template::fld_name(int p_index) const { return NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE::fld_names[p_index]; } +void NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_spareHalfOctet; fld_vec[2]=&field_securityHeaderType; fld_vec[3]=&field_messageType; fld_vec[4]=&field_sNSSAI; fld_vec[5]=&field_eapMessage; } + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT() : Record_Type() { init_vec(); } + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_spareHalfOctet.is_bound() ) + field_spareHalfOctet = other_value.field_spareHalfOctet; +if (other_value.field_securityHeaderType.is_bound() ) + field_securityHeaderType = other_value.field_securityHeaderType; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_sNSSAI.is_bound() ) + field_sNSSAI = other_value.field_sNSSAI; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +init_vec(); +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const S__NSSAI__LV& par_sNSSAI, + const EAP__Message& par_eapMessage) : field_protocolDiscriminator(par_protocolDiscriminator), + field_spareHalfOctet(par_spareHalfOctet), + field_securityHeaderType(par_securityHeaderType), + field_messageType(par_messageType), + field_sNSSAI(par_sNSSAI), + field_eapMessage(par_eapMessage) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::get_descriptor() const { return &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_descr_; } +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::SpareHalfOctet_descr_, &NAS__CommonTypeDefs::SecurityHeaderType_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &S__NSSAI__LV_descr_, &EAP__Message_descr_ }; +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::fld_names[] = { "protocolDiscriminator", "spareHalfOctet", "securityHeaderType", "messageType", "sNSSAI", "eapMessage" }; +const char* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new HEXSTRING_template(ANY_VALUE) : new HEXSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new S__NSSAI__LV_template(ANY_VALUE) : new S__NSSAI__LV_template; +single_value.value_elements[5] = was_any ? new EAP__Message_template(ANY_VALUE) : new EAP__Message_template; +} +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template* p_precondition, NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::~NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::valueof() const +{ +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +HEXSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::spareHalfOctet() { return *(static_cast(get_at(1))); } +const HEXSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::spareHalfOctet() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::securityHeaderType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::securityHeaderType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::messageType() const { return *(static_cast(get_at(3))); } +S__NSSAI__LV_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::sNSSAI() { return *(static_cast(get_at(4))); } +const S__NSSAI__LV_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::sNSSAI() const { return *(static_cast(get_at(4))); } +EAP__Message_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::eapMessage() { return *(static_cast(get_at(5))); } +const EAP__Message_template& NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::eapMessage() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::get_descriptor() const { return &NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_descr_; } +const char* NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template::fld_name(int p_index) const { return NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT::fld_names[p_index]; } +void IntegrityProtMaxDataRate::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_maxDataRateUL; fld_vec[2]=&field_maxDataRateDL; } + +IntegrityProtMaxDataRate::IntegrityProtMaxDataRate() : Record_Type() { init_vec(); } + +IntegrityProtMaxDataRate::IntegrityProtMaxDataRate(const IntegrityProtMaxDataRate& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_maxDataRateUL.is_bound() ) + field_maxDataRateUL = other_value.field_maxDataRateUL; +if (other_value.field_maxDataRateDL.is_bound() ) + field_maxDataRateDL = other_value.field_maxDataRateDL; +init_vec(); +} + +IntegrityProtMaxDataRate::IntegrityProtMaxDataRate(const OPTIONAL& par_iei, + const OCTETSTRING& par_maxDataRateUL, + const OCTETSTRING& par_maxDataRateDL) : field_iei(par_iei), + field_maxDataRateUL(par_maxDataRateUL), + field_maxDataRateDL(par_maxDataRateDL) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IntegrityProtMaxDataRate::get_descriptor() const { return &IntegrityProtMaxDataRate_descr_; } +const TTCN_Typedescriptor_t* IntegrityProtMaxDataRate::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* IntegrityProtMaxDataRate::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IntegrityProtMaxDataRate::fld_names[] = { "iei", "maxDataRateUL", "maxDataRateDL" }; +const char* IntegrityProtMaxDataRate::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IntegrityProtMaxDataRate::optional_indexes[] = { 0, -1 }; +const int* IntegrityProtMaxDataRate::get_optional_indexes() const { return optional_indexes; } + +const int IntegrityProtMaxDataRate::optional_indexes_asn[] = { 0, -1 }; +const int* IntegrityProtMaxDataRate::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IntegrityProtMaxDataRate_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +IntegrityProtMaxDataRate_template::IntegrityProtMaxDataRate_template(IntegrityProtMaxDataRate_template* p_precondition, IntegrityProtMaxDataRate_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IntegrityProtMaxDataRate_template::IntegrityProtMaxDataRate_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IntegrityProtMaxDataRate_template::~IntegrityProtMaxDataRate_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IntegrityProtMaxDataRate_template::match_dynamic(const Base_Type* match_value) const +{ +const IntegrityProtMaxDataRate* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IntegrityProtMaxDataRate_template& IntegrityProtMaxDataRate_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IntegrityProtMaxDataRate_template& IntegrityProtMaxDataRate_template::operator=(const IntegrityProtMaxDataRate& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IntegrityProtMaxDataRate_template& IntegrityProtMaxDataRate_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IntegrityProtMaxDataRate_template& IntegrityProtMaxDataRate_template::operator=(const IntegrityProtMaxDataRate_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IntegrityProtMaxDataRate IntegrityProtMaxDataRate_template::valueof() const +{ +IntegrityProtMaxDataRate ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& IntegrityProtMaxDataRate_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& IntegrityProtMaxDataRate_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& IntegrityProtMaxDataRate_template::maxDataRateUL() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& IntegrityProtMaxDataRate_template::maxDataRateUL() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& IntegrityProtMaxDataRate_template::maxDataRateDL() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& IntegrityProtMaxDataRate_template::maxDataRateDL() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* IntegrityProtMaxDataRate_template::get_descriptor() const { return &IntegrityProtMaxDataRate_descr_; } +const char* IntegrityProtMaxDataRate_template::fld_name(int p_index) const { return IntegrityProtMaxDataRate::fld_names[p_index]; } +void NG__PDU__SESSION__ESTABLISHMENT__REQUEST::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_integrityProtMaxDataRate; fld_vec[5]=&field_pduSessionType; fld_vec[6]=&field_sscMode; fld_vec[7]=&field_smCapability; fld_vec[8]=&field_maxNumPacketFilters; fld_vec[9]=&field_alwaysOnPDUSessionReq; fld_vec[10]=&field_smPDU__RequestContainer; fld_vec[11]=&field_extdProtocolConfigurationOptions; fld_vec[12]=&field_ipHeaderCompressionConfig; fld_vec[13]=&field_ds__TT__EthernetPortMACAddr; fld_vec[14]=&field_ueDS__TT__ResidenceTime; fld_vec[15]=&field_portManagementInfoContainer; fld_vec[16]=&field_ethernetHeaderCompressConfig; fld_vec[17]=&field_suggestedInterfaceId; fld_vec[18]=&field_serviceLvlAA; fld_vec[19]=&field_requestedMBS; fld_vec[20]=&field_pduSessionPairId; fld_vec[21]=&field_rsn; } + +NG__PDU__SESSION__ESTABLISHMENT__REQUEST::NG__PDU__SESSION__ESTABLISHMENT__REQUEST() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__ESTABLISHMENT__REQUEST::NG__PDU__SESSION__ESTABLISHMENT__REQUEST(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_integrityProtMaxDataRate.is_bound() ) + field_integrityProtMaxDataRate = other_value.field_integrityProtMaxDataRate; +if (other_value.field_pduSessionType.is_bound() ) + field_pduSessionType = other_value.field_pduSessionType; +if (other_value.field_sscMode.is_bound() ) + field_sscMode = other_value.field_sscMode; +if (other_value.field_smCapability.is_bound() ) + field_smCapability = other_value.field_smCapability; +if (other_value.field_maxNumPacketFilters.is_bound() ) + field_maxNumPacketFilters = other_value.field_maxNumPacketFilters; +if (other_value.field_alwaysOnPDUSessionReq.is_bound() ) + field_alwaysOnPDUSessionReq = other_value.field_alwaysOnPDUSessionReq; +if (other_value.field_smPDU__RequestContainer.is_bound() ) + field_smPDU__RequestContainer = other_value.field_smPDU__RequestContainer; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_ipHeaderCompressionConfig.is_bound() ) + field_ipHeaderCompressionConfig = other_value.field_ipHeaderCompressionConfig; +if (other_value.field_ds__TT__EthernetPortMACAddr.is_bound() ) + field_ds__TT__EthernetPortMACAddr = other_value.field_ds__TT__EthernetPortMACAddr; +if (other_value.field_ueDS__TT__ResidenceTime.is_bound() ) + field_ueDS__TT__ResidenceTime = other_value.field_ueDS__TT__ResidenceTime; +if (other_value.field_portManagementInfoContainer.is_bound() ) + field_portManagementInfoContainer = other_value.field_portManagementInfoContainer; +if (other_value.field_ethernetHeaderCompressConfig.is_bound() ) + field_ethernetHeaderCompressConfig = other_value.field_ethernetHeaderCompressConfig; +if (other_value.field_suggestedInterfaceId.is_bound() ) + field_suggestedInterfaceId = other_value.field_suggestedInterfaceId; +if (other_value.field_serviceLvlAA.is_bound() ) + field_serviceLvlAA = other_value.field_serviceLvlAA; +if (other_value.field_requestedMBS.is_bound() ) + field_requestedMBS = other_value.field_requestedMBS; +if (other_value.field_pduSessionPairId.is_bound() ) + field_pduSessionPairId = other_value.field_pduSessionPairId; +if (other_value.field_rsn.is_bound() ) + field_rsn = other_value.field_rsn; +init_vec(); +} + +NG__PDU__SESSION__ESTABLISHMENT__REQUEST::NG__PDU__SESSION__ESTABLISHMENT__REQUEST(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const IntegrityProtMaxDataRate& par_integrityProtMaxDataRate, + const OPTIONAL& par_pduSessionType, + const OPTIONAL& par_sscMode, + const OPTIONAL& par_smCapability, + const OPTIONAL& par_maxNumPacketFilters, + const OPTIONAL& par_alwaysOnPDUSessionReq, + const OPTIONAL& par_smPDU__RequestContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_ipHeaderCompressionConfig, + const OPTIONAL& par_ds__TT__EthernetPortMACAddr, + const OPTIONAL& par_ueDS__TT__ResidenceTime, + const OPTIONAL& par_portManagementInfoContainer, + const OPTIONAL& par_ethernetHeaderCompressConfig, + const OPTIONAL& par_suggestedInterfaceId, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_requestedMBS, + const OPTIONAL& par_pduSessionPairId, + const OPTIONAL& par_rsn) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_integrityProtMaxDataRate(par_integrityProtMaxDataRate), + field_pduSessionType(par_pduSessionType), + field_sscMode(par_sscMode), + field_smCapability(par_smCapability), + field_maxNumPacketFilters(par_maxNumPacketFilters), + field_alwaysOnPDUSessionReq(par_alwaysOnPDUSessionReq), + field_smPDU__RequestContainer(par_smPDU__RequestContainer), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_ipHeaderCompressionConfig(par_ipHeaderCompressionConfig), + field_ds__TT__EthernetPortMACAddr(par_ds__TT__EthernetPortMACAddr), + field_ueDS__TT__ResidenceTime(par_ueDS__TT__ResidenceTime), + field_portManagementInfoContainer(par_portManagementInfoContainer), + field_ethernetHeaderCompressConfig(par_ethernetHeaderCompressConfig), + field_suggestedInterfaceId(par_suggestedInterfaceId), + field_serviceLvlAA(par_serviceLvlAA), + field_requestedMBS(par_requestedMBS), + field_pduSessionPairId(par_pduSessionPairId), + field_rsn(par_rsn) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__REQUEST::get_descriptor() const { return &NG__PDU__SESSION__ESTABLISHMENT__REQUEST_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__REQUEST::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &IntegrityProtMaxDataRate_descr_, &PDU__SessionType_descr_, &SSC__Mode_descr_, &NG__UE__SM__Cap_descr_, &MaxNumPacketFilters_descr_, &AlwaysOnPDUSessionInd_descr_, &SM__PDU__DN__RequestContainer_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &IPHeaderCompressionConfig_descr_, &DS__TT__EthernetPortMACAddr_descr_, &UE__DS__TT__ResidenceTime_descr_, &PortManagementInfoContainer_descr_, &EthernetHeaderCompressConfig_descr_, &PDU__Address_descr_, &ServiceLvlAAContainer_descr_, &RequestedMBSContainer_descr_, &PDUSessionPairId_descr_, &RSN_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__ESTABLISHMENT__REQUEST::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "integrityProtMaxDataRate", "pduSessionType", "sscMode", "smCapability", "maxNumPacketFilters", "alwaysOnPDUSessionReq", "smPDU_RequestContainer", "extdProtocolConfigurationOptions", "ipHeaderCompressionConfig", "ds_TT_EthernetPortMACAddr", "ueDS_TT_ResidenceTime", "portManagementInfoContainer", "ethernetHeaderCompressConfig", "suggestedInterfaceId", "serviceLvlAA", "requestedMBS", "pduSessionPairId", "rsn" }; +const char* NG__PDU__SESSION__ESTABLISHMENT__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__ESTABLISHMENT__REQUEST::optional_indexes[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1 }; +const int* NG__PDU__SESSION__ESTABLISHMENT__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__ESTABLISHMENT__REQUEST::optional_indexes_asn[] = { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1 }; +const int* NG__PDU__SESSION__ESTABLISHMENT__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 22; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new IntegrityProtMaxDataRate_template(ANY_VALUE) : new IntegrityProtMaxDataRate_template; +single_value.value_elements[5] = was_any ? new PDU__SessionType_template(ANY_OR_OMIT) : new PDU__SessionType_template; +single_value.value_elements[6] = was_any ? new SSC__Mode_template(ANY_OR_OMIT) : new SSC__Mode_template; +single_value.value_elements[7] = was_any ? new NG__UE__SM__Cap_template(ANY_OR_OMIT) : new NG__UE__SM__Cap_template; +single_value.value_elements[8] = was_any ? new MaxNumPacketFilters_template(ANY_OR_OMIT) : new MaxNumPacketFilters_template; +single_value.value_elements[9] = was_any ? new AlwaysOnPDUSessionInd_template(ANY_OR_OMIT) : new AlwaysOnPDUSessionInd_template; +single_value.value_elements[10] = was_any ? new SM__PDU__DN__RequestContainer_template(ANY_OR_OMIT) : new SM__PDU__DN__RequestContainer_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[12] = was_any ? new IPHeaderCompressionConfig_template(ANY_OR_OMIT) : new IPHeaderCompressionConfig_template; +single_value.value_elements[13] = was_any ? new DS__TT__EthernetPortMACAddr_template(ANY_OR_OMIT) : new DS__TT__EthernetPortMACAddr_template; +single_value.value_elements[14] = was_any ? new UE__DS__TT__ResidenceTime_template(ANY_OR_OMIT) : new UE__DS__TT__ResidenceTime_template; +single_value.value_elements[15] = was_any ? new PortManagementInfoContainer_template(ANY_OR_OMIT) : new PortManagementInfoContainer_template; +single_value.value_elements[16] = was_any ? new EthernetHeaderCompressConfig_template(ANY_OR_OMIT) : new EthernetHeaderCompressConfig_template; +single_value.value_elements[17] = was_any ? new PDU__Address_template(ANY_OR_OMIT) : new PDU__Address_template; +single_value.value_elements[18] = was_any ? new ServiceLvlAAContainer_template(ANY_OR_OMIT) : new ServiceLvlAAContainer_template; +single_value.value_elements[19] = was_any ? new RequestedMBSContainer_template(ANY_OR_OMIT) : new RequestedMBSContainer_template; +single_value.value_elements[20] = was_any ? new PDUSessionPairId_template(ANY_OR_OMIT) : new PDUSessionPairId_template; +single_value.value_elements[21] = was_any ? new RSN_template(ANY_OR_OMIT) : new RSN_template; +} +} + +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template* p_precondition, NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::~NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__ESTABLISHMENT__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::operator=(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::operator=(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__REQUEST NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::valueof() const +{ +NG__PDU__SESSION__ESTABLISHMENT__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +IntegrityProtMaxDataRate_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::integrityProtMaxDataRate() { return *(static_cast(get_at(4))); } +const IntegrityProtMaxDataRate_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::integrityProtMaxDataRate() const { return *(static_cast(get_at(4))); } +PDU__SessionType_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::pduSessionType() { return *(static_cast(get_at(5))); } +const PDU__SessionType_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::pduSessionType() const { return *(static_cast(get_at(5))); } +SSC__Mode_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::sscMode() { return *(static_cast(get_at(6))); } +const SSC__Mode_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::sscMode() const { return *(static_cast(get_at(6))); } +NG__UE__SM__Cap_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::smCapability() { return *(static_cast(get_at(7))); } +const NG__UE__SM__Cap_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::smCapability() const { return *(static_cast(get_at(7))); } +MaxNumPacketFilters_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::maxNumPacketFilters() { return *(static_cast(get_at(8))); } +const MaxNumPacketFilters_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::maxNumPacketFilters() const { return *(static_cast(get_at(8))); } +AlwaysOnPDUSessionInd_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::alwaysOnPDUSessionReq() { return *(static_cast(get_at(9))); } +const AlwaysOnPDUSessionInd_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::alwaysOnPDUSessionReq() const { return *(static_cast(get_at(9))); } +SM__PDU__DN__RequestContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::smPDU__RequestContainer() { return *(static_cast(get_at(10))); } +const SM__PDU__DN__RequestContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::smPDU__RequestContainer() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(11))); } +IPHeaderCompressionConfig_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::ipHeaderCompressionConfig() { return *(static_cast(get_at(12))); } +const IPHeaderCompressionConfig_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::ipHeaderCompressionConfig() const { return *(static_cast(get_at(12))); } +DS__TT__EthernetPortMACAddr_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::ds__TT__EthernetPortMACAddr() { return *(static_cast(get_at(13))); } +const DS__TT__EthernetPortMACAddr_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::ds__TT__EthernetPortMACAddr() const { return *(static_cast(get_at(13))); } +UE__DS__TT__ResidenceTime_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::ueDS__TT__ResidenceTime() { return *(static_cast(get_at(14))); } +const UE__DS__TT__ResidenceTime_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::ueDS__TT__ResidenceTime() const { return *(static_cast(get_at(14))); } +PortManagementInfoContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::portManagementInfoContainer() { return *(static_cast(get_at(15))); } +const PortManagementInfoContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::portManagementInfoContainer() const { return *(static_cast(get_at(15))); } +EthernetHeaderCompressConfig_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::ethernetHeaderCompressConfig() { return *(static_cast(get_at(16))); } +const EthernetHeaderCompressConfig_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::ethernetHeaderCompressConfig() const { return *(static_cast(get_at(16))); } +PDU__Address_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::suggestedInterfaceId() { return *(static_cast(get_at(17))); } +const PDU__Address_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::suggestedInterfaceId() const { return *(static_cast(get_at(17))); } +ServiceLvlAAContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::serviceLvlAA() { return *(static_cast(get_at(18))); } +const ServiceLvlAAContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::serviceLvlAA() const { return *(static_cast(get_at(18))); } +RequestedMBSContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::requestedMBS() { return *(static_cast(get_at(19))); } +const RequestedMBSContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::requestedMBS() const { return *(static_cast(get_at(19))); } +PDUSessionPairId_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::pduSessionPairId() { return *(static_cast(get_at(20))); } +const PDUSessionPairId_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::pduSessionPairId() const { return *(static_cast(get_at(20))); } +RSN_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::rsn() { return *(static_cast(get_at(21))); } +const RSN_template& NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::rsn() const { return *(static_cast(get_at(21))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::get_descriptor() const { return &NG__PDU__SESSION__ESTABLISHMENT__REQUEST_descr_; } +const char* NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template::fld_name(int p_index) const { return NG__PDU__SESSION__ESTABLISHMENT__REQUEST::fld_names[p_index]; } +void PDU__SessionType::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_typeValue; } + +PDU__SessionType::PDU__SessionType() : Record_Type() { init_vec(); } + +PDU__SessionType::PDU__SessionType(const PDU__SessionType& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_typeValue.is_bound() ) + field_typeValue = other_value.field_typeValue; +init_vec(); +} + +PDU__SessionType::PDU__SessionType(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_typeValue) : field_iei(par_iei), + field_spare(par_spare), + field_typeValue(par_typeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDU__SessionType::get_descriptor() const { return &PDU__SessionType_descr_; } +const TTCN_Typedescriptor_t* PDU__SessionType::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* PDU__SessionType::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDU__SessionType::fld_names[] = { "iei", "spare", "typeValue" }; +const char* PDU__SessionType::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PDU__SessionType::optional_indexes[] = { 0, -1 }; +const int* PDU__SessionType::get_optional_indexes() const { return optional_indexes; } + +const int PDU__SessionType::optional_indexes_asn[] = { 0, -1 }; +const int* PDU__SessionType::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PDU__SessionType_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +PDU__SessionType_template::PDU__SessionType_template(PDU__SessionType_template* p_precondition, PDU__SessionType_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDU__SessionType_template::PDU__SessionType_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDU__SessionType_template::~PDU__SessionType_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDU__SessionType_template::match_dynamic(const Base_Type* match_value) const +{ +const PDU__SessionType* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDU__SessionType_template& PDU__SessionType_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDU__SessionType_template& PDU__SessionType_template::operator=(const PDU__SessionType& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDU__SessionType_template& PDU__SessionType_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDU__SessionType_template& PDU__SessionType_template::operator=(const PDU__SessionType_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDU__SessionType PDU__SessionType_template::valueof() const +{ +PDU__SessionType ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& PDU__SessionType_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& PDU__SessionType_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& PDU__SessionType_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& PDU__SessionType_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PDU__SessionType_template::typeValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PDU__SessionType_template::typeValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PDU__SessionType_template::get_descriptor() const { return &PDU__SessionType_descr_; } +const char* PDU__SessionType_template::fld_name(int p_index) const { return PDU__SessionType::fld_names[p_index]; } +void SSC__Mode::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_sscModeValue; } + +SSC__Mode::SSC__Mode() : Record_Type() { init_vec(); } + +SSC__Mode::SSC__Mode(const SSC__Mode& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_sscModeValue.is_bound() ) + field_sscModeValue = other_value.field_sscModeValue; +init_vec(); +} + +SSC__Mode::SSC__Mode(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_sscModeValue) : field_iei(par_iei), + field_spare(par_spare), + field_sscModeValue(par_sscModeValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SSC__Mode::get_descriptor() const { return &SSC__Mode_descr_; } +const TTCN_Typedescriptor_t* SSC__Mode::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_ }; +const TTCN_Typedescriptor_t* SSC__Mode::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SSC__Mode::fld_names[] = { "iei", "spare", "sscModeValue" }; +const char* SSC__Mode::fld_name(int p_index) const { return fld_names[p_index]; } + +const int SSC__Mode::optional_indexes[] = { 0, -1 }; +const int* SSC__Mode::get_optional_indexes() const { return optional_indexes; } + +const int SSC__Mode::optional_indexes_asn[] = { 0, -1 }; +const int* SSC__Mode::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void SSC__Mode_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SSC__Mode_template::SSC__Mode_template(SSC__Mode_template* p_precondition, SSC__Mode_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SSC__Mode_template::SSC__Mode_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SSC__Mode_template::~SSC__Mode_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SSC__Mode_template::match_dynamic(const Base_Type* match_value) const +{ +const SSC__Mode* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SSC__Mode_template& SSC__Mode_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SSC__Mode_template& SSC__Mode_template::operator=(const SSC__Mode& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SSC__Mode_template& SSC__Mode_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SSC__Mode_template& SSC__Mode_template::operator=(const SSC__Mode_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SSC__Mode SSC__Mode_template::valueof() const +{ +SSC__Mode ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& SSC__Mode_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& SSC__Mode_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SSC__Mode_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SSC__Mode_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SSC__Mode_template::sscModeValue() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SSC__Mode_template::sscModeValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SSC__Mode_template::get_descriptor() const { return &SSC__Mode_descr_; } +const char* SSC__Mode_template::fld_name(int p_index) const { return SSC__Mode::fld_names[p_index]; } +void NG__UE__SM__Cap::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_tpmic; fld_vec[3]=&field_atsssST; fld_vec[4]=&field_ept__S1; fld_vec[5]=&field_mh6__PDU; fld_vec[6]=&field_rQoS; fld_vec[7]=&field_spareBits; fld_vec[8]=&field_apmqf; fld_vec[9]=&field_spare; } + +NG__UE__SM__Cap::NG__UE__SM__Cap() : Record_Type() { init_vec(); } + +NG__UE__SM__Cap::NG__UE__SM__Cap(const NG__UE__SM__Cap& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_tpmic.is_bound() ) + field_tpmic = other_value.field_tpmic; +if (other_value.field_atsssST.is_bound() ) + field_atsssST = other_value.field_atsssST; +if (other_value.field_ept__S1.is_bound() ) + field_ept__S1 = other_value.field_ept__S1; +if (other_value.field_mh6__PDU.is_bound() ) + field_mh6__PDU = other_value.field_mh6__PDU; +if (other_value.field_rQoS.is_bound() ) + field_rQoS = other_value.field_rQoS; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_apmqf.is_bound() ) + field_apmqf = other_value.field_apmqf; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +init_vec(); +} + +NG__UE__SM__Cap::NG__UE__SM__Cap(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_tpmic, + const BITSTRING& par_atsssST, + const BITSTRING& par_ept__S1, + const BITSTRING& par_mh6__PDU, + const BITSTRING& par_rQoS, + const OPTIONAL& par_spareBits, + const OPTIONAL& par_apmqf, + const OPTIONAL& par_spare) : field_iei(par_iei), + field_iel(par_iel), + field_tpmic(par_tpmic), + field_atsssST(par_atsssST), + field_ept__S1(par_ept__S1), + field_mh6__PDU(par_mh6__PDU), + field_rQoS(par_rQoS), + field_spareBits(par_spareBits), + field_apmqf(par_apmqf), + field_spare(par_spare) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__UE__SM__Cap::get_descriptor() const { return &NG__UE__SM__Cap_descr_; } +const TTCN_Typedescriptor_t* NG__UE__SM__Cap::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NG__UE__SM__Cap::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__UE__SM__Cap::fld_names[] = { "iei", "iel", "tpmic", "atsssST", "ept_S1", "mh6_PDU", "rQoS", "spareBits", "apmqf", "spare" }; +const char* NG__UE__SM__Cap::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__UE__SM__Cap::optional_indexes[] = { 0, 1, 7, 8, 9, -1 }; +const int* NG__UE__SM__Cap::get_optional_indexes() const { return optional_indexes; } + +const int NG__UE__SM__Cap::optional_indexes_asn[] = { 0, 1, 7, 8, 9, -1 }; +const int* NG__UE__SM__Cap::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__UE__SM__Cap_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +NG__UE__SM__Cap_template::NG__UE__SM__Cap_template(NG__UE__SM__Cap_template* p_precondition, NG__UE__SM__Cap_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__UE__SM__Cap_template::NG__UE__SM__Cap_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__UE__SM__Cap_template::~NG__UE__SM__Cap_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__UE__SM__Cap_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__UE__SM__Cap* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__UE__SM__Cap_template& NG__UE__SM__Cap_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__UE__SM__Cap_template& NG__UE__SM__Cap_template::operator=(const NG__UE__SM__Cap& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__UE__SM__Cap_template& NG__UE__SM__Cap_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__UE__SM__Cap_template& NG__UE__SM__Cap_template::operator=(const NG__UE__SM__Cap_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__UE__SM__Cap NG__UE__SM__Cap_template::valueof() const +{ +NG__UE__SM__Cap ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NG__UE__SM__Cap_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NG__UE__SM__Cap_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NG__UE__SM__Cap_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NG__UE__SM__Cap_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__UE__SM__Cap_template::tpmic() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__UE__SM__Cap_template::tpmic() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__UE__SM__Cap_template::atsssST() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__UE__SM__Cap_template::atsssST() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NG__UE__SM__Cap_template::ept__S1() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NG__UE__SM__Cap_template::ept__S1() const { return *(static_cast(get_at(4))); } +BITSTRING_template& NG__UE__SM__Cap_template::mh6__PDU() { return *(static_cast(get_at(5))); } +const BITSTRING_template& NG__UE__SM__Cap_template::mh6__PDU() const { return *(static_cast(get_at(5))); } +BITSTRING_template& NG__UE__SM__Cap_template::rQoS() { return *(static_cast(get_at(6))); } +const BITSTRING_template& NG__UE__SM__Cap_template::rQoS() const { return *(static_cast(get_at(6))); } +BITSTRING_template& NG__UE__SM__Cap_template::spareBits() { return *(static_cast(get_at(7))); } +const BITSTRING_template& NG__UE__SM__Cap_template::spareBits() const { return *(static_cast(get_at(7))); } +BITSTRING_template& NG__UE__SM__Cap_template::apmqf() { return *(static_cast(get_at(8))); } +const BITSTRING_template& NG__UE__SM__Cap_template::apmqf() const { return *(static_cast(get_at(8))); } +OCTETSTRING_template& NG__UE__SM__Cap_template::spare() { return *(static_cast(get_at(9))); } +const OCTETSTRING_template& NG__UE__SM__Cap_template::spare() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* NG__UE__SM__Cap_template::get_descriptor() const { return &NG__UE__SM__Cap_descr_; } +const char* NG__UE__SM__Cap_template::fld_name(int p_index) const { return NG__UE__SM__Cap::fld_names[p_index]; } +void MaxNumPacketFilters::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_numOfFilters; fld_vec[2]=&field_spareBits; } + +MaxNumPacketFilters::MaxNumPacketFilters() : Record_Type() { init_vec(); } + +MaxNumPacketFilters::MaxNumPacketFilters(const MaxNumPacketFilters& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_numOfFilters.is_bound() ) + field_numOfFilters = other_value.field_numOfFilters; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +init_vec(); +} + +MaxNumPacketFilters::MaxNumPacketFilters(const OPTIONAL& par_iei, + const BITSTRING& par_numOfFilters, + const BITSTRING& par_spareBits) : field_iei(par_iei), + field_numOfFilters(par_numOfFilters), + field_spareBits(par_spareBits) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MaxNumPacketFilters::get_descriptor() const { return &MaxNumPacketFilters_descr_; } +const TTCN_Typedescriptor_t* MaxNumPacketFilters::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &CommonDefs::B11__Type_descr_, &CommonDefs::B5__Type_descr_ }; +const TTCN_Typedescriptor_t* MaxNumPacketFilters::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MaxNumPacketFilters::fld_names[] = { "iei", "numOfFilters", "spareBits" }; +const char* MaxNumPacketFilters::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MaxNumPacketFilters::optional_indexes[] = { 0, -1 }; +const int* MaxNumPacketFilters::get_optional_indexes() const { return optional_indexes; } + +const int MaxNumPacketFilters::optional_indexes_asn[] = { 0, -1 }; +const int* MaxNumPacketFilters::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MaxNumPacketFilters_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +MaxNumPacketFilters_template::MaxNumPacketFilters_template(MaxNumPacketFilters_template* p_precondition, MaxNumPacketFilters_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MaxNumPacketFilters_template::MaxNumPacketFilters_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MaxNumPacketFilters_template::~MaxNumPacketFilters_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MaxNumPacketFilters_template::match_dynamic(const Base_Type* match_value) const +{ +const MaxNumPacketFilters* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MaxNumPacketFilters_template& MaxNumPacketFilters_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MaxNumPacketFilters_template& MaxNumPacketFilters_template::operator=(const MaxNumPacketFilters& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MaxNumPacketFilters_template& MaxNumPacketFilters_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MaxNumPacketFilters_template& MaxNumPacketFilters_template::operator=(const MaxNumPacketFilters_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MaxNumPacketFilters MaxNumPacketFilters_template::valueof() const +{ +MaxNumPacketFilters ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& MaxNumPacketFilters_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& MaxNumPacketFilters_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& MaxNumPacketFilters_template::numOfFilters() { return *(static_cast(get_at(1))); } +const BITSTRING_template& MaxNumPacketFilters_template::numOfFilters() const { return *(static_cast(get_at(1))); } +BITSTRING_template& MaxNumPacketFilters_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& MaxNumPacketFilters_template::spareBits() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* MaxNumPacketFilters_template::get_descriptor() const { return &MaxNumPacketFilters_descr_; } +const char* MaxNumPacketFilters_template::fld_name(int p_index) const { return MaxNumPacketFilters::fld_names[p_index]; } +void AlwaysOnPDUSessionInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_apsi; } + +AlwaysOnPDUSessionInd::AlwaysOnPDUSessionInd() : Record_Type() { init_vec(); } + +AlwaysOnPDUSessionInd::AlwaysOnPDUSessionInd(const AlwaysOnPDUSessionInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_apsi.is_bound() ) + field_apsi = other_value.field_apsi; +init_vec(); +} + +AlwaysOnPDUSessionInd::AlwaysOnPDUSessionInd(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_apsi) : field_iei(par_iei), + field_spare(par_spare), + field_apsi(par_apsi) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AlwaysOnPDUSessionInd::get_descriptor() const { return &AlwaysOnPDUSessionInd_descr_; } +const TTCN_Typedescriptor_t* AlwaysOnPDUSessionInd::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* AlwaysOnPDUSessionInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AlwaysOnPDUSessionInd::fld_names[] = { "iei", "spare", "apsi" }; +const char* AlwaysOnPDUSessionInd::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AlwaysOnPDUSessionInd::optional_indexes[] = { 0, -1 }; +const int* AlwaysOnPDUSessionInd::get_optional_indexes() const { return optional_indexes; } + +const int AlwaysOnPDUSessionInd::optional_indexes_asn[] = { 0, -1 }; +const int* AlwaysOnPDUSessionInd::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AlwaysOnPDUSessionInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AlwaysOnPDUSessionInd_template::AlwaysOnPDUSessionInd_template(AlwaysOnPDUSessionInd_template* p_precondition, AlwaysOnPDUSessionInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AlwaysOnPDUSessionInd_template::AlwaysOnPDUSessionInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AlwaysOnPDUSessionInd_template::~AlwaysOnPDUSessionInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AlwaysOnPDUSessionInd_template::match_dynamic(const Base_Type* match_value) const +{ +const AlwaysOnPDUSessionInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AlwaysOnPDUSessionInd_template& AlwaysOnPDUSessionInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AlwaysOnPDUSessionInd_template& AlwaysOnPDUSessionInd_template::operator=(const AlwaysOnPDUSessionInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AlwaysOnPDUSessionInd_template& AlwaysOnPDUSessionInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AlwaysOnPDUSessionInd_template& AlwaysOnPDUSessionInd_template::operator=(const AlwaysOnPDUSessionInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AlwaysOnPDUSessionInd AlwaysOnPDUSessionInd_template::valueof() const +{ +AlwaysOnPDUSessionInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& AlwaysOnPDUSessionInd_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& AlwaysOnPDUSessionInd_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AlwaysOnPDUSessionInd_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AlwaysOnPDUSessionInd_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AlwaysOnPDUSessionInd_template::apsi() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AlwaysOnPDUSessionInd_template::apsi() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AlwaysOnPDUSessionInd_template::get_descriptor() const { return &AlwaysOnPDUSessionInd_descr_; } +const char* AlwaysOnPDUSessionInd_template::fld_name(int p_index) const { return AlwaysOnPDUSessionInd::fld_names[p_index]; } +void SM__PDU__DN__RequestContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_dnSpecificId; } + +SM__PDU__DN__RequestContainer::SM__PDU__DN__RequestContainer() : Record_Type() { init_vec(); } + +SM__PDU__DN__RequestContainer::SM__PDU__DN__RequestContainer(const SM__PDU__DN__RequestContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_dnSpecificId.is_bound() ) + field_dnSpecificId = other_value.field_dnSpecificId; +init_vec(); +} + +SM__PDU__DN__RequestContainer::SM__PDU__DN__RequestContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_dnSpecificId) : field_iei(par_iei), + field_iel(par_iel), + field_dnSpecificId(par_dnSpecificId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SM__PDU__DN__RequestContainer::get_descriptor() const { return &SM__PDU__DN__RequestContainer_descr_; } +const TTCN_Typedescriptor_t* SM__PDU__DN__RequestContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* SM__PDU__DN__RequestContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SM__PDU__DN__RequestContainer::fld_names[] = { "iei", "iel", "dnSpecificId" }; +const char* SM__PDU__DN__RequestContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int SM__PDU__DN__RequestContainer::optional_indexes[] = { 0, 1, -1 }; +const int* SM__PDU__DN__RequestContainer::get_optional_indexes() const { return optional_indexes; } + +const int SM__PDU__DN__RequestContainer::optional_indexes_asn[] = { 0, 1, -1 }; +const int* SM__PDU__DN__RequestContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void SM__PDU__DN__RequestContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +SM__PDU__DN__RequestContainer_template::SM__PDU__DN__RequestContainer_template(SM__PDU__DN__RequestContainer_template* p_precondition, SM__PDU__DN__RequestContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SM__PDU__DN__RequestContainer_template::SM__PDU__DN__RequestContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SM__PDU__DN__RequestContainer_template::~SM__PDU__DN__RequestContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SM__PDU__DN__RequestContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const SM__PDU__DN__RequestContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SM__PDU__DN__RequestContainer_template& SM__PDU__DN__RequestContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SM__PDU__DN__RequestContainer_template& SM__PDU__DN__RequestContainer_template::operator=(const SM__PDU__DN__RequestContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SM__PDU__DN__RequestContainer_template& SM__PDU__DN__RequestContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SM__PDU__DN__RequestContainer_template& SM__PDU__DN__RequestContainer_template::operator=(const SM__PDU__DN__RequestContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SM__PDU__DN__RequestContainer SM__PDU__DN__RequestContainer_template::valueof() const +{ +SM__PDU__DN__RequestContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& SM__PDU__DN__RequestContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& SM__PDU__DN__RequestContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& SM__PDU__DN__RequestContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& SM__PDU__DN__RequestContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& SM__PDU__DN__RequestContainer_template::dnSpecificId() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& SM__PDU__DN__RequestContainer_template::dnSpecificId() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SM__PDU__DN__RequestContainer_template::get_descriptor() const { return &SM__PDU__DN__RequestContainer_descr_; } +const char* SM__PDU__DN__RequestContainer_template::fld_name(int p_index) const { return SM__PDU__DN__RequestContainer::fld_names[p_index]; } +void IPHeaderCompressionConfig::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_profile104; fld_vec[4]=&field_profile103; fld_vec[5]=&field_profile102; fld_vec[6]=&field_profile6; fld_vec[7]=&field_profile4; fld_vec[8]=&field_profile3; fld_vec[9]=&field_profile2; fld_vec[10]=&field_maxCID; fld_vec[11]=&field_addParamsType; fld_vec[12]=&field_addParamsContainer; } + +IPHeaderCompressionConfig::IPHeaderCompressionConfig() : Record_Type() { init_vec(); } + +IPHeaderCompressionConfig::IPHeaderCompressionConfig(const IPHeaderCompressionConfig& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_profile104.is_bound() ) + field_profile104 = other_value.field_profile104; +if (other_value.field_profile103.is_bound() ) + field_profile103 = other_value.field_profile103; +if (other_value.field_profile102.is_bound() ) + field_profile102 = other_value.field_profile102; +if (other_value.field_profile6.is_bound() ) + field_profile6 = other_value.field_profile6; +if (other_value.field_profile4.is_bound() ) + field_profile4 = other_value.field_profile4; +if (other_value.field_profile3.is_bound() ) + field_profile3 = other_value.field_profile3; +if (other_value.field_profile2.is_bound() ) + field_profile2 = other_value.field_profile2; +if (other_value.field_maxCID.is_bound() ) + field_maxCID = other_value.field_maxCID; +if (other_value.field_addParamsType.is_bound() ) + field_addParamsType = other_value.field_addParamsType; +if (other_value.field_addParamsContainer.is_bound() ) + field_addParamsContainer = other_value.field_addParamsContainer; +init_vec(); +} + +IPHeaderCompressionConfig::IPHeaderCompressionConfig(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_profile104, + const BITSTRING& par_profile103, + const BITSTRING& par_profile102, + const BITSTRING& par_profile6, + const BITSTRING& par_profile4, + const BITSTRING& par_profile3, + const BITSTRING& par_profile2, + const OCTETSTRING& par_maxCID, + const OPTIONAL& par_addParamsType, + const OPTIONAL& par_addParamsContainer) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_profile104(par_profile104), + field_profile103(par_profile103), + field_profile102(par_profile102), + field_profile6(par_profile6), + field_profile4(par_profile4), + field_profile3(par_profile3), + field_profile2(par_profile2), + field_maxCID(par_maxCID), + field_addParamsType(par_addParamsType), + field_addParamsContainer(par_addParamsContainer) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IPHeaderCompressionConfig::get_descriptor() const { return &IPHeaderCompressionConfig_descr_; } +const TTCN_Typedescriptor_t* IPHeaderCompressionConfig::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::O2__Type_descr_, &CommonDefs::O1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* IPHeaderCompressionConfig::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IPHeaderCompressionConfig::fld_names[] = { "iei", "iel", "spare", "profile104", "profile103", "profile102", "profile6", "profile4", "profile3", "profile2", "maxCID", "addParamsType", "addParamsContainer" }; +const char* IPHeaderCompressionConfig::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IPHeaderCompressionConfig::optional_indexes[] = { 0, 1, 11, 12, -1 }; +const int* IPHeaderCompressionConfig::get_optional_indexes() const { return optional_indexes; } + +const int IPHeaderCompressionConfig::optional_indexes_asn[] = { 0, 1, 11, 12, -1 }; +const int* IPHeaderCompressionConfig::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IPHeaderCompressionConfig_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 13; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[10] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[11] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[12] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +IPHeaderCompressionConfig_template::IPHeaderCompressionConfig_template(IPHeaderCompressionConfig_template* p_precondition, IPHeaderCompressionConfig_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IPHeaderCompressionConfig_template::IPHeaderCompressionConfig_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IPHeaderCompressionConfig_template::~IPHeaderCompressionConfig_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IPHeaderCompressionConfig_template::match_dynamic(const Base_Type* match_value) const +{ +const IPHeaderCompressionConfig* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IPHeaderCompressionConfig_template& IPHeaderCompressionConfig_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IPHeaderCompressionConfig_template& IPHeaderCompressionConfig_template::operator=(const IPHeaderCompressionConfig& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IPHeaderCompressionConfig_template& IPHeaderCompressionConfig_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IPHeaderCompressionConfig_template& IPHeaderCompressionConfig_template::operator=(const IPHeaderCompressionConfig_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IPHeaderCompressionConfig IPHeaderCompressionConfig_template::valueof() const +{ +IPHeaderCompressionConfig ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& IPHeaderCompressionConfig_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& IPHeaderCompressionConfig_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& IPHeaderCompressionConfig_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& IPHeaderCompressionConfig_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& IPHeaderCompressionConfig_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& IPHeaderCompressionConfig_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& IPHeaderCompressionConfig_template::profile104() { return *(static_cast(get_at(3))); } +const BITSTRING_template& IPHeaderCompressionConfig_template::profile104() const { return *(static_cast(get_at(3))); } +BITSTRING_template& IPHeaderCompressionConfig_template::profile103() { return *(static_cast(get_at(4))); } +const BITSTRING_template& IPHeaderCompressionConfig_template::profile103() const { return *(static_cast(get_at(4))); } +BITSTRING_template& IPHeaderCompressionConfig_template::profile102() { return *(static_cast(get_at(5))); } +const BITSTRING_template& IPHeaderCompressionConfig_template::profile102() const { return *(static_cast(get_at(5))); } +BITSTRING_template& IPHeaderCompressionConfig_template::profile6() { return *(static_cast(get_at(6))); } +const BITSTRING_template& IPHeaderCompressionConfig_template::profile6() const { return *(static_cast(get_at(6))); } +BITSTRING_template& IPHeaderCompressionConfig_template::profile4() { return *(static_cast(get_at(7))); } +const BITSTRING_template& IPHeaderCompressionConfig_template::profile4() const { return *(static_cast(get_at(7))); } +BITSTRING_template& IPHeaderCompressionConfig_template::profile3() { return *(static_cast(get_at(8))); } +const BITSTRING_template& IPHeaderCompressionConfig_template::profile3() const { return *(static_cast(get_at(8))); } +BITSTRING_template& IPHeaderCompressionConfig_template::profile2() { return *(static_cast(get_at(9))); } +const BITSTRING_template& IPHeaderCompressionConfig_template::profile2() const { return *(static_cast(get_at(9))); } +OCTETSTRING_template& IPHeaderCompressionConfig_template::maxCID() { return *(static_cast(get_at(10))); } +const OCTETSTRING_template& IPHeaderCompressionConfig_template::maxCID() const { return *(static_cast(get_at(10))); } +OCTETSTRING_template& IPHeaderCompressionConfig_template::addParamsType() { return *(static_cast(get_at(11))); } +const OCTETSTRING_template& IPHeaderCompressionConfig_template::addParamsType() const { return *(static_cast(get_at(11))); } +OCTETSTRING_template& IPHeaderCompressionConfig_template::addParamsContainer() { return *(static_cast(get_at(12))); } +const OCTETSTRING_template& IPHeaderCompressionConfig_template::addParamsContainer() const { return *(static_cast(get_at(12))); } +const TTCN_Typedescriptor_t* IPHeaderCompressionConfig_template::get_descriptor() const { return &IPHeaderCompressionConfig_descr_; } +const char* IPHeaderCompressionConfig_template::fld_name(int p_index) const { return IPHeaderCompressionConfig::fld_names[p_index]; } +void DS__TT__EthernetPortMACAddr::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_addressContents; } + +DS__TT__EthernetPortMACAddr::DS__TT__EthernetPortMACAddr() : Record_Type() { init_vec(); } + +DS__TT__EthernetPortMACAddr::DS__TT__EthernetPortMACAddr(const DS__TT__EthernetPortMACAddr& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_addressContents.is_bound() ) + field_addressContents = other_value.field_addressContents; +init_vec(); +} + +DS__TT__EthernetPortMACAddr::DS__TT__EthernetPortMACAddr(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_addressContents) : field_iei(par_iei), + field_iel(par_iel), + field_addressContents(par_addressContents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* DS__TT__EthernetPortMACAddr::get_descriptor() const { return &DS__TT__EthernetPortMACAddr_descr_; } +const TTCN_Typedescriptor_t* DS__TT__EthernetPortMACAddr::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O6__Type_descr_ }; +const TTCN_Typedescriptor_t* DS__TT__EthernetPortMACAddr::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* DS__TT__EthernetPortMACAddr::fld_names[] = { "iei", "iel", "addressContents" }; +const char* DS__TT__EthernetPortMACAddr::fld_name(int p_index) const { return fld_names[p_index]; } + +const int DS__TT__EthernetPortMACAddr::optional_indexes[] = { 0, 1, -1 }; +const int* DS__TT__EthernetPortMACAddr::get_optional_indexes() const { return optional_indexes; } + +const int DS__TT__EthernetPortMACAddr::optional_indexes_asn[] = { 0, 1, -1 }; +const int* DS__TT__EthernetPortMACAddr::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void DS__TT__EthernetPortMACAddr_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +DS__TT__EthernetPortMACAddr_template::DS__TT__EthernetPortMACAddr_template(DS__TT__EthernetPortMACAddr_template* p_precondition, DS__TT__EthernetPortMACAddr_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +DS__TT__EthernetPortMACAddr_template::DS__TT__EthernetPortMACAddr_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +DS__TT__EthernetPortMACAddr_template::~DS__TT__EthernetPortMACAddr_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean DS__TT__EthernetPortMACAddr_template::match_dynamic(const Base_Type* match_value) const +{ +const DS__TT__EthernetPortMACAddr* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +DS__TT__EthernetPortMACAddr_template& DS__TT__EthernetPortMACAddr_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +DS__TT__EthernetPortMACAddr_template& DS__TT__EthernetPortMACAddr_template::operator=(const DS__TT__EthernetPortMACAddr& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +DS__TT__EthernetPortMACAddr_template& DS__TT__EthernetPortMACAddr_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +DS__TT__EthernetPortMACAddr_template& DS__TT__EthernetPortMACAddr_template::operator=(const DS__TT__EthernetPortMACAddr_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +DS__TT__EthernetPortMACAddr DS__TT__EthernetPortMACAddr_template::valueof() const +{ +DS__TT__EthernetPortMACAddr ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& DS__TT__EthernetPortMACAddr_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& DS__TT__EthernetPortMACAddr_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& DS__TT__EthernetPortMACAddr_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& DS__TT__EthernetPortMACAddr_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& DS__TT__EthernetPortMACAddr_template::addressContents() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& DS__TT__EthernetPortMACAddr_template::addressContents() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* DS__TT__EthernetPortMACAddr_template::get_descriptor() const { return &DS__TT__EthernetPortMACAddr_descr_; } +const char* DS__TT__EthernetPortMACAddr_template::fld_name(int p_index) const { return DS__TT__EthernetPortMACAddr::fld_names[p_index]; } +void UE__DS__TT__ResidenceTime::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_timeContents; } + +UE__DS__TT__ResidenceTime::UE__DS__TT__ResidenceTime() : Record_Type() { init_vec(); } + +UE__DS__TT__ResidenceTime::UE__DS__TT__ResidenceTime(const UE__DS__TT__ResidenceTime& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_timeContents.is_bound() ) + field_timeContents = other_value.field_timeContents; +init_vec(); +} + +UE__DS__TT__ResidenceTime::UE__DS__TT__ResidenceTime(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_timeContents) : field_iei(par_iei), + field_iel(par_iel), + field_timeContents(par_timeContents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__DS__TT__ResidenceTime::get_descriptor() const { return &UE__DS__TT__ResidenceTime_descr_; } +const TTCN_Typedescriptor_t* UE__DS__TT__ResidenceTime::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O8__Type_descr_ }; +const TTCN_Typedescriptor_t* UE__DS__TT__ResidenceTime::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__DS__TT__ResidenceTime::fld_names[] = { "iei", "iel", "timeContents" }; +const char* UE__DS__TT__ResidenceTime::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__DS__TT__ResidenceTime::optional_indexes[] = { 0, 1, -1 }; +const int* UE__DS__TT__ResidenceTime::get_optional_indexes() const { return optional_indexes; } + +const int UE__DS__TT__ResidenceTime::optional_indexes_asn[] = { 0, 1, -1 }; +const int* UE__DS__TT__ResidenceTime::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__DS__TT__ResidenceTime_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +UE__DS__TT__ResidenceTime_template::UE__DS__TT__ResidenceTime_template(UE__DS__TT__ResidenceTime_template* p_precondition, UE__DS__TT__ResidenceTime_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__DS__TT__ResidenceTime_template::UE__DS__TT__ResidenceTime_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__DS__TT__ResidenceTime_template::~UE__DS__TT__ResidenceTime_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__DS__TT__ResidenceTime_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__DS__TT__ResidenceTime* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__DS__TT__ResidenceTime_template& UE__DS__TT__ResidenceTime_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__DS__TT__ResidenceTime_template& UE__DS__TT__ResidenceTime_template::operator=(const UE__DS__TT__ResidenceTime& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__DS__TT__ResidenceTime_template& UE__DS__TT__ResidenceTime_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__DS__TT__ResidenceTime_template& UE__DS__TT__ResidenceTime_template::operator=(const UE__DS__TT__ResidenceTime_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__DS__TT__ResidenceTime UE__DS__TT__ResidenceTime_template::valueof() const +{ +UE__DS__TT__ResidenceTime ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UE__DS__TT__ResidenceTime_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UE__DS__TT__ResidenceTime_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UE__DS__TT__ResidenceTime_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UE__DS__TT__ResidenceTime_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& UE__DS__TT__ResidenceTime_template::timeContents() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& UE__DS__TT__ResidenceTime_template::timeContents() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UE__DS__TT__ResidenceTime_template::get_descriptor() const { return &UE__DS__TT__ResidenceTime_descr_; } +const char* UE__DS__TT__ResidenceTime_template::fld_name(int p_index) const { return UE__DS__TT__ResidenceTime::fld_names[p_index]; } +void PortManagementInfoContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_contents; } + +PortManagementInfoContainer::PortManagementInfoContainer() : Record_Type() { init_vec(); } + +PortManagementInfoContainer::PortManagementInfoContainer(const PortManagementInfoContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_contents.is_bound() ) + field_contents = other_value.field_contents; +init_vec(); +} + +PortManagementInfoContainer::PortManagementInfoContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_contents) : field_iei(par_iei), + field_iel(par_iel), + field_contents(par_contents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PortManagementInfoContainer::get_descriptor() const { return &PortManagementInfoContainer_descr_; } +const TTCN_Typedescriptor_t* PortManagementInfoContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* PortManagementInfoContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PortManagementInfoContainer::fld_names[] = { "iei", "iel", "contents" }; +const char* PortManagementInfoContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PortManagementInfoContainer::optional_indexes[] = { 0, 1, -1 }; +const int* PortManagementInfoContainer::get_optional_indexes() const { return optional_indexes; } + +const int PortManagementInfoContainer::optional_indexes_asn[] = { 0, 1, -1 }; +const int* PortManagementInfoContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PortManagementInfoContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +PortManagementInfoContainer_template::PortManagementInfoContainer_template(PortManagementInfoContainer_template* p_precondition, PortManagementInfoContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PortManagementInfoContainer_template::PortManagementInfoContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PortManagementInfoContainer_template::~PortManagementInfoContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PortManagementInfoContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const PortManagementInfoContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PortManagementInfoContainer_template& PortManagementInfoContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PortManagementInfoContainer_template& PortManagementInfoContainer_template::operator=(const PortManagementInfoContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PortManagementInfoContainer_template& PortManagementInfoContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PortManagementInfoContainer_template& PortManagementInfoContainer_template::operator=(const PortManagementInfoContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PortManagementInfoContainer PortManagementInfoContainer_template::valueof() const +{ +PortManagementInfoContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PortManagementInfoContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PortManagementInfoContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PortManagementInfoContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PortManagementInfoContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& PortManagementInfoContainer_template::contents() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& PortManagementInfoContainer_template::contents() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PortManagementInfoContainer_template::get_descriptor() const { return &PortManagementInfoContainer_descr_; } +const char* PortManagementInfoContainer_template::fld_name(int p_index) const { return PortManagementInfoContainer::fld_names[p_index]; } +void EthernetHeaderCompressConfig::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spareBits; fld_vec[3]=&field_cidLength; } + +EthernetHeaderCompressConfig::EthernetHeaderCompressConfig() : Record_Type() { init_vec(); } + +EthernetHeaderCompressConfig::EthernetHeaderCompressConfig(const EthernetHeaderCompressConfig& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_cidLength.is_bound() ) + field_cidLength = other_value.field_cidLength; +init_vec(); +} + +EthernetHeaderCompressConfig::EthernetHeaderCompressConfig(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_cidLength) : field_iei(par_iei), + field_iel(par_iel), + field_spareBits(par_spareBits), + field_cidLength(par_cidLength) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EthernetHeaderCompressConfig::get_descriptor() const { return &EthernetHeaderCompressConfig_descr_; } +const TTCN_Typedescriptor_t* EthernetHeaderCompressConfig::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* EthernetHeaderCompressConfig::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EthernetHeaderCompressConfig::fld_names[] = { "iei", "iel", "spareBits", "cidLength" }; +const char* EthernetHeaderCompressConfig::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EthernetHeaderCompressConfig::optional_indexes[] = { 0, 1, -1 }; +const int* EthernetHeaderCompressConfig::get_optional_indexes() const { return optional_indexes; } + +const int EthernetHeaderCompressConfig::optional_indexes_asn[] = { 0, 1, -1 }; +const int* EthernetHeaderCompressConfig::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EthernetHeaderCompressConfig_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +EthernetHeaderCompressConfig_template::EthernetHeaderCompressConfig_template(EthernetHeaderCompressConfig_template* p_precondition, EthernetHeaderCompressConfig_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EthernetHeaderCompressConfig_template::EthernetHeaderCompressConfig_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EthernetHeaderCompressConfig_template::~EthernetHeaderCompressConfig_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EthernetHeaderCompressConfig_template::match_dynamic(const Base_Type* match_value) const +{ +const EthernetHeaderCompressConfig* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EthernetHeaderCompressConfig_template& EthernetHeaderCompressConfig_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EthernetHeaderCompressConfig_template& EthernetHeaderCompressConfig_template::operator=(const EthernetHeaderCompressConfig& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EthernetHeaderCompressConfig_template& EthernetHeaderCompressConfig_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EthernetHeaderCompressConfig_template& EthernetHeaderCompressConfig_template::operator=(const EthernetHeaderCompressConfig_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EthernetHeaderCompressConfig EthernetHeaderCompressConfig_template::valueof() const +{ +EthernetHeaderCompressConfig ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EthernetHeaderCompressConfig_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EthernetHeaderCompressConfig_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EthernetHeaderCompressConfig_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EthernetHeaderCompressConfig_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& EthernetHeaderCompressConfig_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& EthernetHeaderCompressConfig_template::spareBits() const { return *(static_cast(get_at(2))); } +BITSTRING_template& EthernetHeaderCompressConfig_template::cidLength() { return *(static_cast(get_at(3))); } +const BITSTRING_template& EthernetHeaderCompressConfig_template::cidLength() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* EthernetHeaderCompressConfig_template::get_descriptor() const { return &EthernetHeaderCompressConfig_descr_; } +const char* EthernetHeaderCompressConfig_template::fld_name(int p_index) const { return EthernetHeaderCompressConfig::fld_names[p_index]; } +void PDU__Address::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spare; fld_vec[3]=&field_si16LLA; fld_vec[4]=&field_typeValue; fld_vec[5]=&field_adressInfo; fld_vec[6]=&field_ipv6Address; } + +PDU__Address::PDU__Address() : Record_Type() { init_vec(); } + +PDU__Address::PDU__Address(const PDU__Address& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_si16LLA.is_bound() ) + field_si16LLA = other_value.field_si16LLA; +if (other_value.field_typeValue.is_bound() ) + field_typeValue = other_value.field_typeValue; +if (other_value.field_adressInfo.is_bound() ) + field_adressInfo = other_value.field_adressInfo; +if (other_value.field_ipv6Address.is_bound() ) + field_ipv6Address = other_value.field_ipv6Address; +init_vec(); +} + +PDU__Address::PDU__Address(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_si16LLA, + const BITSTRING& par_typeValue, + const OCTETSTRING& par_adressInfo, + const OPTIONAL& par_ipv6Address) : field_iei(par_iei), + field_iel(par_iel), + field_spare(par_spare), + field_si16LLA(par_si16LLA), + field_typeValue(par_typeValue), + field_adressInfo(par_adressInfo), + field_ipv6Address(par_ipv6Address) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDU__Address::get_descriptor() const { return &PDU__Address_descr_; } +const TTCN_Typedescriptor_t* PDU__Address::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &OCTETSTRING_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* PDU__Address::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDU__Address::fld_names[] = { "iei", "iel", "spare", "si16LLA", "typeValue", "adressInfo", "ipv6Address" }; +const char* PDU__Address::fld_name(int p_index) const { return fld_names[p_index]; } + +const int PDU__Address::optional_indexes[] = { 0, 1, 6, -1 }; +const int* PDU__Address::get_optional_indexes() const { return optional_indexes; } + +const int PDU__Address::optional_indexes_asn[] = { 0, 1, 6, -1 }; +const int* PDU__Address::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void PDU__Address_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[6] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +PDU__Address_template::PDU__Address_template(PDU__Address_template* p_precondition, PDU__Address_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDU__Address_template::PDU__Address_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDU__Address_template::~PDU__Address_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDU__Address_template::match_dynamic(const Base_Type* match_value) const +{ +const PDU__Address* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDU__Address_template& PDU__Address_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDU__Address_template& PDU__Address_template::operator=(const PDU__Address& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDU__Address_template& PDU__Address_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDU__Address_template& PDU__Address_template::operator=(const PDU__Address_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDU__Address PDU__Address_template::valueof() const +{ +PDU__Address ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PDU__Address_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PDU__Address_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PDU__Address_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PDU__Address_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& PDU__Address_template::spare() { return *(static_cast(get_at(2))); } +const BITSTRING_template& PDU__Address_template::spare() const { return *(static_cast(get_at(2))); } +BITSTRING_template& PDU__Address_template::si16LLA() { return *(static_cast(get_at(3))); } +const BITSTRING_template& PDU__Address_template::si16LLA() const { return *(static_cast(get_at(3))); } +BITSTRING_template& PDU__Address_template::typeValue() { return *(static_cast(get_at(4))); } +const BITSTRING_template& PDU__Address_template::typeValue() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& PDU__Address_template::adressInfo() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& PDU__Address_template::adressInfo() const { return *(static_cast(get_at(5))); } +OCTETSTRING_template& PDU__Address_template::ipv6Address() { return *(static_cast(get_at(6))); } +const OCTETSTRING_template& PDU__Address_template::ipv6Address() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* PDU__Address_template::get_descriptor() const { return &PDU__Address_descr_; } +const char* PDU__Address_template::fld_name(int p_index) const { return PDU__Address::fld_names[p_index]; } + +const MBSSessionInfo RequestedMBSContainer_sessionInfo::UNBOUND_ELEM; +MBSSessionInfo& RequestedMBSContainer_sessionInfo::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +MBSSessionInfo& RequestedMBSContainer_sessionInfo::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const MBSSessionInfo& RequestedMBSContainer_sessionInfo::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const MBSSessionInfo& RequestedMBSContainer_sessionInfo::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::operator<<=(const INTEGER& rotate_count) const +{ +RequestedMBSContainer_sessionInfo rec_of; +return *((RequestedMBSContainer_sessionInfo*)rotl(rotate_count, &rec_of)); +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::operator>>=(const INTEGER& rotate_count) const +{ +RequestedMBSContainer_sessionInfo rec_of; +return *((RequestedMBSContainer_sessionInfo*)rotr(rotate_count, &rec_of)); +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::operator>>=(int rotate_count) const +{ +RequestedMBSContainer_sessionInfo rec_of; +return *((RequestedMBSContainer_sessionInfo*)rotr(rotate_count, &rec_of)); +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::operator+(const RequestedMBSContainer_sessionInfo& other_value) const +{ +RequestedMBSContainer_sessionInfo rec_of; +return *((RequestedMBSContainer_sessionInfo*)concat(&other_value, &rec_of)); +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const RequestedMBSContainer_sessionInfo&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.RequestedMBSContainer.sessionInfo concatenation."); +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::operator+(null_type) const +{ +return *this; +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::substr(int index, int returncount) const +{ +RequestedMBSContainer_sessionInfo rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::replace(int index, int len, const RequestedMBSContainer_sessionInfo& repl) const +{ +RequestedMBSContainer_sessionInfo rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo::replace(int index, int len, const RequestedMBSContainer_sessionInfo_template& repl) const +{ +RequestedMBSContainer_sessionInfo rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* RequestedMBSContainer_sessionInfo::create_elem() const { return new MBSSessionInfo; } +const Base_Type* RequestedMBSContainer_sessionInfo::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* RequestedMBSContainer_sessionInfo::get_descriptor() const { return &RequestedMBSContainer_sessionInfo_descr_; } +RequestedMBSContainer_sessionInfo_template::RequestedMBSContainer_sessionInfo_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +RequestedMBSContainer_sessionInfo_template::RequestedMBSContainer_sessionInfo_template(RequestedMBSContainer_sessionInfo_template* p_precondition, RequestedMBSContainer_sessionInfo_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RequestedMBSContainer_sessionInfo_template::RequestedMBSContainer_sessionInfo_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RequestedMBSContainer_sessionInfo_template::~RequestedMBSContainer_sessionInfo_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RequestedMBSContainer_sessionInfo_template::match_dynamic(const Base_Type* match_value) const +{ +const RequestedMBSContainer_sessionInfo* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +RequestedMBSContainer_sessionInfo_template& RequestedMBSContainer_sessionInfo_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RequestedMBSContainer_sessionInfo_template& RequestedMBSContainer_sessionInfo_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +RequestedMBSContainer_sessionInfo_template& RequestedMBSContainer_sessionInfo_template::operator=(const RequestedMBSContainer_sessionInfo& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RequestedMBSContainer_sessionInfo_template& RequestedMBSContainer_sessionInfo_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RequestedMBSContainer_sessionInfo_template& RequestedMBSContainer_sessionInfo_template::operator=(const RequestedMBSContainer_sessionInfo_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RequestedMBSContainer_sessionInfo_template RequestedMBSContainer_sessionInfo_template::operator+(const RequestedMBSContainer_sessionInfo_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return RequestedMBSContainer_sessionInfo_template(ANY_VALUE); +} +RequestedMBSContainer_sessionInfo_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +RequestedMBSContainer_sessionInfo_template RequestedMBSContainer_sessionInfo_template::operator+(const RequestedMBSContainer_sessionInfo& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +RequestedMBSContainer_sessionInfo_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +RequestedMBSContainer_sessionInfo_template RequestedMBSContainer_sessionInfo_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return RequestedMBSContainer_sessionInfo_template(ANY_VALUE); +} +RequestedMBSContainer_sessionInfo_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +RequestedMBSContainer_sessionInfo_template RequestedMBSContainer_sessionInfo_template::operator+(null_type) const +{ +return *this; +} + +MBSSessionInfo_template& RequestedMBSContainer_sessionInfo_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +MBSSessionInfo_template& RequestedMBSContainer_sessionInfo_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const MBSSessionInfo_template& RequestedMBSContainer_sessionInfo_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const MBSSessionInfo_template& RequestedMBSContainer_sessionInfo_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo_template::valueof() const +{ +RequestedMBSContainer_sessionInfo ret_val; +valueofv(&ret_val); +return ret_val; +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo_template::substr(int index, int returncount) const +{ +RequestedMBSContainer_sessionInfo rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo_template::replace(int index, int len, const RequestedMBSContainer_sessionInfo_template& repl) const +{ +RequestedMBSContainer_sessionInfo rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +RequestedMBSContainer_sessionInfo RequestedMBSContainer_sessionInfo_template::replace(int index, int len, const RequestedMBSContainer_sessionInfo& repl) const +{ +RequestedMBSContainer_sessionInfo rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* RequestedMBSContainer_sessionInfo_template::create_elem() const { return new MBSSessionInfo_template; } +const TTCN_Typedescriptor_t* RequestedMBSContainer_sessionInfo_template::get_descriptor() const { return &RequestedMBSContainer_sessionInfo_descr_; } +void MBSSessionInfo::init_vec() { fld_vec[0]=&field_spareBits; fld_vec[1]=&field_operation; fld_vec[2]=&field_typeOfSessionId; fld_vec[3]=&field_sessionId; } + +MBSSessionInfo::MBSSessionInfo() : Record_Type() { init_vec(); } + +MBSSessionInfo::MBSSessionInfo(const MBSSessionInfo& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_operation.is_bound() ) + field_operation = other_value.field_operation; +if (other_value.field_typeOfSessionId.is_bound() ) + field_typeOfSessionId = other_value.field_typeOfSessionId; +if (other_value.field_sessionId.is_bound() ) + field_sessionId = other_value.field_sessionId; +init_vec(); +} + +MBSSessionInfo::MBSSessionInfo(const BITSTRING& par_spareBits, + const BITSTRING& par_operation, + const BITSTRING& par_typeOfSessionId, + const OCTETSTRING& par_sessionId) : field_spareBits(par_spareBits), + field_operation(par_operation), + field_typeOfSessionId(par_typeOfSessionId), + field_sessionId(par_sessionId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MBSSessionInfo::get_descriptor() const { return &MBSSessionInfo_descr_; } +const TTCN_Typedescriptor_t* MBSSessionInfo::fld_descriptors[] = { &CommonDefs::B4__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* MBSSessionInfo::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MBSSessionInfo::fld_names[] = { "spareBits", "operation", "typeOfSessionId", "sessionId" }; +const char* MBSSessionInfo::fld_name(int p_index) const { return fld_names[p_index]; } + +void MBSSessionInfo_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +MBSSessionInfo_template::MBSSessionInfo_template(MBSSessionInfo_template* p_precondition, MBSSessionInfo_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MBSSessionInfo_template::MBSSessionInfo_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MBSSessionInfo_template::~MBSSessionInfo_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MBSSessionInfo_template::match_dynamic(const Base_Type* match_value) const +{ +const MBSSessionInfo* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MBSSessionInfo_template& MBSSessionInfo_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MBSSessionInfo_template& MBSSessionInfo_template::operator=(const MBSSessionInfo& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MBSSessionInfo_template& MBSSessionInfo_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MBSSessionInfo_template& MBSSessionInfo_template::operator=(const MBSSessionInfo_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MBSSessionInfo MBSSessionInfo_template::valueof() const +{ +MBSSessionInfo ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& MBSSessionInfo_template::spareBits() { return *(static_cast(get_at(0))); } +const BITSTRING_template& MBSSessionInfo_template::spareBits() const { return *(static_cast(get_at(0))); } +BITSTRING_template& MBSSessionInfo_template::operation() { return *(static_cast(get_at(1))); } +const BITSTRING_template& MBSSessionInfo_template::operation() const { return *(static_cast(get_at(1))); } +BITSTRING_template& MBSSessionInfo_template::typeOfSessionId() { return *(static_cast(get_at(2))); } +const BITSTRING_template& MBSSessionInfo_template::typeOfSessionId() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& MBSSessionInfo_template::sessionId() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& MBSSessionInfo_template::sessionId() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* MBSSessionInfo_template::get_descriptor() const { return &MBSSessionInfo_descr_; } +const char* MBSSessionInfo_template::fld_name(int p_index) const { return MBSSessionInfo::fld_names[p_index]; } +void RequestedMBSContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_sessionInfo; } + +RequestedMBSContainer::RequestedMBSContainer() : Record_Type() { init_vec(); } + +RequestedMBSContainer::RequestedMBSContainer(const RequestedMBSContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_sessionInfo.is_bound() ) + field_sessionInfo = other_value.field_sessionInfo; +init_vec(); +} + +RequestedMBSContainer::RequestedMBSContainer(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const RequestedMBSContainer_sessionInfo& par_sessionInfo) : field_iei(par_iei), + field_iel(par_iel), + field_sessionInfo(par_sessionInfo) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RequestedMBSContainer::get_descriptor() const { return &RequestedMBSContainer_descr_; } +const TTCN_Typedescriptor_t* RequestedMBSContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &RequestedMBSContainer_sessionInfo_descr_ }; +const TTCN_Typedescriptor_t* RequestedMBSContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RequestedMBSContainer::fld_names[] = { "iei", "iel", "sessionInfo" }; +const char* RequestedMBSContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +void RequestedMBSContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new RequestedMBSContainer_sessionInfo_template(ANY_VALUE) : new RequestedMBSContainer_sessionInfo_template; +} +} + +RequestedMBSContainer_template::RequestedMBSContainer_template(RequestedMBSContainer_template* p_precondition, RequestedMBSContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RequestedMBSContainer_template::RequestedMBSContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RequestedMBSContainer_template::~RequestedMBSContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RequestedMBSContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const RequestedMBSContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RequestedMBSContainer_template& RequestedMBSContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RequestedMBSContainer_template& RequestedMBSContainer_template::operator=(const RequestedMBSContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RequestedMBSContainer_template& RequestedMBSContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RequestedMBSContainer_template& RequestedMBSContainer_template::operator=(const RequestedMBSContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RequestedMBSContainer RequestedMBSContainer_template::valueof() const +{ +RequestedMBSContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& RequestedMBSContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& RequestedMBSContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& RequestedMBSContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& RequestedMBSContainer_template::iel() const { return *(static_cast(get_at(1))); } +RequestedMBSContainer_sessionInfo_template& RequestedMBSContainer_template::sessionInfo() { return *(static_cast(get_at(2))); } +const RequestedMBSContainer_sessionInfo_template& RequestedMBSContainer_template::sessionInfo() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* RequestedMBSContainer_template::get_descriptor() const { return &RequestedMBSContainer_descr_; } +const char* RequestedMBSContainer_template::fld_name(int p_index) const { return RequestedMBSContainer::fld_names[p_index]; } +void PDUSessionPairId::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_id; } + +PDUSessionPairId::PDUSessionPairId() : Record_Type() { init_vec(); } + +PDUSessionPairId::PDUSessionPairId(const PDUSessionPairId& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +init_vec(); +} + +PDUSessionPairId::PDUSessionPairId(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_id) : field_iei(par_iei), + field_iel(par_iel), + field_id(par_id) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* PDUSessionPairId::get_descriptor() const { return &PDUSessionPairId_descr_; } +const TTCN_Typedescriptor_t* PDUSessionPairId::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* PDUSessionPairId::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* PDUSessionPairId::fld_names[] = { "iei", "iel", "id" }; +const char* PDUSessionPairId::fld_name(int p_index) const { return fld_names[p_index]; } + +void PDUSessionPairId_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +PDUSessionPairId_template::PDUSessionPairId_template(PDUSessionPairId_template* p_precondition, PDUSessionPairId_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +PDUSessionPairId_template::PDUSessionPairId_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +PDUSessionPairId_template::~PDUSessionPairId_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean PDUSessionPairId_template::match_dynamic(const Base_Type* match_value) const +{ +const PDUSessionPairId* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +PDUSessionPairId_template& PDUSessionPairId_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +PDUSessionPairId_template& PDUSessionPairId_template::operator=(const PDUSessionPairId& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +PDUSessionPairId_template& PDUSessionPairId_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +PDUSessionPairId_template& PDUSessionPairId_template::operator=(const PDUSessionPairId_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +PDUSessionPairId PDUSessionPairId_template::valueof() const +{ +PDUSessionPairId ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& PDUSessionPairId_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& PDUSessionPairId_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& PDUSessionPairId_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& PDUSessionPairId_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& PDUSessionPairId_template::id() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& PDUSessionPairId_template::id() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* PDUSessionPairId_template::get_descriptor() const { return &PDUSessionPairId_descr_; } +const char* PDUSessionPairId_template::fld_name(int p_index) const { return PDUSessionPairId::fld_names[p_index]; } +void RSN::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_rsn; } + +RSN::RSN() : Record_Type() { init_vec(); } + +RSN::RSN(const RSN& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_rsn.is_bound() ) + field_rsn = other_value.field_rsn; +init_vec(); +} + +RSN::RSN(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_rsn) : field_iei(par_iei), + field_iel(par_iel), + field_rsn(par_rsn) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* RSN::get_descriptor() const { return &RSN_descr_; } +const TTCN_Typedescriptor_t* RSN::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* RSN::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* RSN::fld_names[] = { "iei", "iel", "rsn" }; +const char* RSN::fld_name(int p_index) const { return fld_names[p_index]; } + +void RSN_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +RSN_template::RSN_template(RSN_template* p_precondition, RSN_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +RSN_template::RSN_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +RSN_template::~RSN_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean RSN_template::match_dynamic(const Base_Type* match_value) const +{ +const RSN* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +RSN_template& RSN_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +RSN_template& RSN_template::operator=(const RSN& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +RSN_template& RSN_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +RSN_template& RSN_template::operator=(const RSN_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +RSN RSN_template::valueof() const +{ +RSN ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& RSN_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& RSN_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& RSN_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& RSN_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& RSN_template::rsn() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& RSN_template::rsn() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* RSN_template::get_descriptor() const { return &RSN_descr_; } +const char* RSN_template::fld_name(int p_index) const { return RSN::fld_names[p_index]; } + +const QoS__Rule QoS__RuleList::UNBOUND_ELEM; +QoS__Rule& QoS__RuleList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +QoS__Rule& QoS__RuleList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const QoS__Rule& QoS__RuleList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const QoS__Rule& QoS__RuleList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoS__RuleList QoS__RuleList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +QoS__RuleList QoS__RuleList::operator<<=(const INTEGER& rotate_count) const +{ +QoS__RuleList rec_of; +return *((QoS__RuleList*)rotl(rotate_count, &rec_of)); +} + +QoS__RuleList QoS__RuleList::operator>>=(const INTEGER& rotate_count) const +{ +QoS__RuleList rec_of; +return *((QoS__RuleList*)rotr(rotate_count, &rec_of)); +} + +QoS__RuleList QoS__RuleList::operator>>=(int rotate_count) const +{ +QoS__RuleList rec_of; +return *((QoS__RuleList*)rotr(rotate_count, &rec_of)); +} + +QoS__RuleList QoS__RuleList::operator+(const QoS__RuleList& other_value) const +{ +QoS__RuleList rec_of; +return *((QoS__RuleList*)concat(&other_value, &rec_of)); +} + +QoS__RuleList QoS__RuleList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const QoS__RuleList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.QoS_RuleList concatenation."); +} + +QoS__RuleList QoS__RuleList::operator+(null_type) const +{ +return *this; +} + +QoS__RuleList QoS__RuleList::substr(int index, int returncount) const +{ +QoS__RuleList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoS__RuleList QoS__RuleList::replace(int index, int len, const QoS__RuleList& repl) const +{ +QoS__RuleList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoS__RuleList QoS__RuleList::replace(int index, int len, const QoS__RuleList_template& repl) const +{ +QoS__RuleList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* QoS__RuleList::create_elem() const { return new QoS__Rule; } +const Base_Type* QoS__RuleList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* QoS__RuleList::get_descriptor() const { return &QoS__RuleList_descr_; } +QoS__RuleList_template::QoS__RuleList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +QoS__RuleList_template::QoS__RuleList_template(QoS__RuleList_template* p_precondition, QoS__RuleList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoS__RuleList_template::QoS__RuleList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoS__RuleList_template::~QoS__RuleList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoS__RuleList_template::match_dynamic(const Base_Type* match_value) const +{ +const QoS__RuleList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +QoS__RuleList_template& QoS__RuleList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoS__RuleList_template& QoS__RuleList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +QoS__RuleList_template& QoS__RuleList_template::operator=(const QoS__RuleList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoS__RuleList_template& QoS__RuleList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoS__RuleList_template& QoS__RuleList_template::operator=(const QoS__RuleList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoS__RuleList_template QoS__RuleList_template::operator+(const QoS__RuleList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return QoS__RuleList_template(ANY_VALUE); +} +QoS__RuleList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoS__RuleList_template QoS__RuleList_template::operator+(const QoS__RuleList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +QoS__RuleList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoS__RuleList_template QoS__RuleList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return QoS__RuleList_template(ANY_VALUE); +} +QoS__RuleList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +QoS__RuleList_template QoS__RuleList_template::operator+(null_type) const +{ +return *this; +} + +QoS__Rule_template& QoS__RuleList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +QoS__Rule_template& QoS__RuleList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const QoS__Rule_template& QoS__RuleList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const QoS__Rule_template& QoS__RuleList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoS__RuleList QoS__RuleList_template::valueof() const +{ +QoS__RuleList ret_val; +valueofv(&ret_val); +return ret_val; +} + +QoS__RuleList QoS__RuleList_template::substr(int index, int returncount) const +{ +QoS__RuleList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoS__RuleList QoS__RuleList_template::replace(int index, int len, const QoS__RuleList_template& repl) const +{ +QoS__RuleList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoS__RuleList QoS__RuleList_template::replace(int index, int len, const QoS__RuleList& repl) const +{ +QoS__RuleList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* QoS__RuleList_template::create_elem() const { return new QoS__Rule_template; } +const TTCN_Typedescriptor_t* QoS__RuleList_template::get_descriptor() const { return &QoS__RuleList_descr_; } +void QoS__Rule::init_vec() { fld_vec[0]=&field_identifier; fld_vec[1]=&field_iel; fld_vec[2]=&field_ruleOperationCode; fld_vec[3]=&field_dqrBit; fld_vec[4]=&field_numOfPacketFilters; fld_vec[5]=&field_packetFilterList; fld_vec[6]=&field_precedence; fld_vec[7]=&field_spare; fld_vec[8]=&field_segregation; fld_vec[9]=&field_flowIdentifier; } + +QoS__Rule::QoS__Rule() : Record_Type() { init_vec(); } + +QoS__Rule::QoS__Rule(const QoS__Rule& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_identifier.is_bound() ) + field_identifier = other_value.field_identifier; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_ruleOperationCode.is_bound() ) + field_ruleOperationCode = other_value.field_ruleOperationCode; +if (other_value.field_dqrBit.is_bound() ) + field_dqrBit = other_value.field_dqrBit; +if (other_value.field_numOfPacketFilters.is_bound() ) + field_numOfPacketFilters = other_value.field_numOfPacketFilters; +if (other_value.field_packetFilterList.is_bound() ) + field_packetFilterList = other_value.field_packetFilterList; +if (other_value.field_precedence.is_bound() ) + field_precedence = other_value.field_precedence; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_segregation.is_bound() ) + field_segregation = other_value.field_segregation; +if (other_value.field_flowIdentifier.is_bound() ) + field_flowIdentifier = other_value.field_flowIdentifier; +init_vec(); +} + +QoS__Rule::QoS__Rule(const OCTETSTRING& par_identifier, + const OCTETSTRING& par_iel, + const BITSTRING& par_ruleOperationCode, + const BITSTRING& par_dqrBit, + const BITSTRING& par_numOfPacketFilters, + const OPTIONAL& par_packetFilterList, + const OPTIONAL& par_precedence, + const OPTIONAL& par_spare, + const OPTIONAL& par_segregation, + const OPTIONAL& par_flowIdentifier) : field_identifier(par_identifier), + field_iel(par_iel), + field_ruleOperationCode(par_ruleOperationCode), + field_dqrBit(par_dqrBit), + field_numOfPacketFilters(par_numOfPacketFilters), + field_packetFilterList(par_packetFilterList), + field_precedence(par_precedence), + field_spare(par_spare), + field_segregation(par_segregation), + field_flowIdentifier(par_flowIdentifier) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* QoS__Rule::get_descriptor() const { return &QoS__Rule_descr_; } +const TTCN_Typedescriptor_t* QoS__Rule::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &NG__PacketFilterList_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B6__Type_descr_ }; +const TTCN_Typedescriptor_t* QoS__Rule::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* QoS__Rule::fld_names[] = { "identifier", "iel", "ruleOperationCode", "dqrBit", "numOfPacketFilters", "packetFilterList", "precedence", "spare", "segregation", "flowIdentifier" }; +const char* QoS__Rule::fld_name(int p_index) const { return fld_names[p_index]; } + +const int QoS__Rule::optional_indexes[] = { 5, 6, 7, 8, 9, -1 }; +const int* QoS__Rule::get_optional_indexes() const { return optional_indexes; } + +const int QoS__Rule::optional_indexes_asn[] = { 5, 6, 7, 8, 9, -1 }; +const int* QoS__Rule::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void QoS__Rule_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 10; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new NG__PacketFilterList_template(ANY_OR_OMIT) : new NG__PacketFilterList_template; +single_value.value_elements[6] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +single_value.value_elements[9] = was_any ? new BITSTRING_template(ANY_OR_OMIT) : new BITSTRING_template; +} +} + +QoS__Rule_template::QoS__Rule_template(QoS__Rule_template* p_precondition, QoS__Rule_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoS__Rule_template::QoS__Rule_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoS__Rule_template::~QoS__Rule_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoS__Rule_template::match_dynamic(const Base_Type* match_value) const +{ +const QoS__Rule* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +QoS__Rule_template& QoS__Rule_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoS__Rule_template& QoS__Rule_template::operator=(const QoS__Rule& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoS__Rule_template& QoS__Rule_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoS__Rule_template& QoS__Rule_template::operator=(const QoS__Rule_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoS__Rule QoS__Rule_template::valueof() const +{ +QoS__Rule ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& QoS__Rule_template::identifier() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& QoS__Rule_template::identifier() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& QoS__Rule_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& QoS__Rule_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& QoS__Rule_template::ruleOperationCode() { return *(static_cast(get_at(2))); } +const BITSTRING_template& QoS__Rule_template::ruleOperationCode() const { return *(static_cast(get_at(2))); } +BITSTRING_template& QoS__Rule_template::dqrBit() { return *(static_cast(get_at(3))); } +const BITSTRING_template& QoS__Rule_template::dqrBit() const { return *(static_cast(get_at(3))); } +BITSTRING_template& QoS__Rule_template::numOfPacketFilters() { return *(static_cast(get_at(4))); } +const BITSTRING_template& QoS__Rule_template::numOfPacketFilters() const { return *(static_cast(get_at(4))); } +NG__PacketFilterList_template& QoS__Rule_template::packetFilterList() { return *(static_cast(get_at(5))); } +const NG__PacketFilterList_template& QoS__Rule_template::packetFilterList() const { return *(static_cast(get_at(5))); } +OCTETSTRING_template& QoS__Rule_template::precedence() { return *(static_cast(get_at(6))); } +const OCTETSTRING_template& QoS__Rule_template::precedence() const { return *(static_cast(get_at(6))); } +BITSTRING_template& QoS__Rule_template::spare() { return *(static_cast(get_at(7))); } +const BITSTRING_template& QoS__Rule_template::spare() const { return *(static_cast(get_at(7))); } +BITSTRING_template& QoS__Rule_template::segregation() { return *(static_cast(get_at(8))); } +const BITSTRING_template& QoS__Rule_template::segregation() const { return *(static_cast(get_at(8))); } +BITSTRING_template& QoS__Rule_template::flowIdentifier() { return *(static_cast(get_at(9))); } +const BITSTRING_template& QoS__Rule_template::flowIdentifier() const { return *(static_cast(get_at(9))); } +const TTCN_Typedescriptor_t* QoS__Rule_template::get_descriptor() const { return &QoS__Rule_descr_; } +const char* QoS__Rule_template::fld_name(int p_index) const { return QoS__Rule::fld_names[p_index]; } +void NG__PacketFilterList::copy_value(const NG__PacketFilterList& other_value) +{ +switch (other_value.union_selection) { +case ALT_modify: +field_modify = new NG__PacketFilterList__Type1(*other_value.field_modify); +break; +case ALT_new_: +field_new_ = new NG__PacketFilterList__Type2(*other_value.field_new_); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +NG__PacketFilterList::NG__PacketFilterList(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +NG__PacketFilterList::NG__PacketFilterList(const NG__PacketFilterList& other_value) +: Base_Type(){ +copy_value(other_value); +} + +NG__PacketFilterList::~NG__PacketFilterList() +{ +clean_up(); +} + +NG__PacketFilterList& NG__PacketFilterList::operator=(const NG__PacketFilterList& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean NG__PacketFilterList::operator==(const NG__PacketFilterList& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_modify: +return *field_modify == *other_value.field_modify; +case ALT_new_: +return *field_new_ == *other_value.field_new_; +default: +return FALSE; +} +} + +NG__PacketFilterList__Type1& NG__PacketFilterList::modify() +{ +if (union_selection != ALT_modify) { +clean_up(); +field_modify = new NG__PacketFilterList__Type1; +union_selection = ALT_modify; +} +return *field_modify; +} + +const NG__PacketFilterList__Type1& NG__PacketFilterList::modify() const +{ +if (union_selection != ALT_modify) TTCN_error("Using non-selected field modify in a value of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +return *field_modify; +} + +NG__PacketFilterList__Type2& NG__PacketFilterList::new_() +{ +if (union_selection != ALT_new_) { +clean_up(); +field_new_ = new NG__PacketFilterList__Type2; +union_selection = ALT_new_; +} +return *field_new_; +} + +const NG__PacketFilterList__Type2& NG__PacketFilterList::new_() const +{ +if (union_selection != ALT_new_) TTCN_error("Using non-selected field new in a value of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +return *field_new_; +} + +boolean NG__PacketFilterList::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +return union_selection == checked_selection; +} + +boolean NG__PacketFilterList::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean NG__PacketFilterList::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_modify: return field_modify->is_value(); +case ALT_new_: return field_new_->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void NG__PacketFilterList::clean_up() +{ +switch (union_selection) { +case ALT_modify: + delete field_modify; + break; +case ALT_new_: + delete field_new_; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean NG__PacketFilterList::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NG__PacketFilterList::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NG__PacketFilterList::clone() const { return new NG__PacketFilterList(*this); } +const TTCN_Typedescriptor_t* NG__PacketFilterList::get_descriptor() const { return &NG__PacketFilterList_descr_; } +void NG__PacketFilterList::log() const +{ +switch (union_selection) { +case ALT_modify: +TTCN_Logger::log_event_str("{ modify := "); +field_modify->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_new_: +TTCN_Logger::log_event_str("{ new := "); +field_new_->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void NG__PacketFilterList::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NG_NAS_TypeDefs.NG_PacketFilterList'"); + } + if (strcmp("modify", param_field) == 0) { + modify().set_param(param); + return; + } else if (strcmp("new", param_field) == 0) { + new_().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NG_NAS_TypeDefs.NG_PacketFilterList'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "modify")) { + modify().set_param(*mp_last); + if (!modify().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "new")) { + new_().set_param(*mp_last); + if (!new_().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NG_NAS_TypeDefs.NG_PacketFilterList.", last_name); +} + +Module_Param* NG__PacketFilterList::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NG_NAS_TypeDefs.NG_PacketFilterList'"); + } + if (strcmp("modify", param_field) == 0) { + return modify().get_param(param_name); + } else if (strcmp("new", param_field) == 0) { + return new_().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__PacketFilterList'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_modify: + mp_field = field_modify->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("modify"))); + break; + case ALT_new_: + mp_field = field_new_->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("new"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void NG__PacketFilterList::set_implicit_omit() +{ +switch (union_selection) { +case ALT_modify: +field_modify->set_implicit_omit(); break; +case ALT_new_: +field_new_->set_implicit_omit(); break; +default: break; +} +} + +void NG__PacketFilterList::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_modify: +field_modify->encode_text(text_buf); +break; +case ALT_new_: +field_new_->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +} + +void NG__PacketFilterList::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_modify: +modify().decode_text(text_buf); +break; +case ALT_new_: +new_().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +} + +void NG__PacketFilterList_template::copy_value(const NG__PacketFilterList& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case NG__PacketFilterList::ALT_modify: +single_value.field_modify = new NG__PacketFilterList__Type1_template(other_value.modify()); +break; +case NG__PacketFilterList::ALT_new_: +single_value.field_new_ = new NG__PacketFilterList__Type2_template(other_value.new_()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void NG__PacketFilterList_template::copy_template(const NG__PacketFilterList_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case NG__PacketFilterList::ALT_modify: +single_value.field_modify = new NG__PacketFilterList__Type1_template(*other_value.single_value.field_modify); +break; +case NG__PacketFilterList::ALT_new_: +single_value.field_new_ = new NG__PacketFilterList__Type2_template(*other_value.single_value.field_new_); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NG__PacketFilterList_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NG__PacketFilterList_template(*other_value.implication_.precondition); +implication_.implied_template = new NG__PacketFilterList_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +NG__PacketFilterList_template::NG__PacketFilterList_template(): err_descr(NULL) +{ +} + +NG__PacketFilterList_template::NG__PacketFilterList_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +NG__PacketFilterList_template::NG__PacketFilterList_template(const NG__PacketFilterList& other_value) +{ +copy_value(other_value); +} + +NG__PacketFilterList_template::NG__PacketFilterList_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__PacketFilterList&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList from an unbound optional field."); +} +} + +NG__PacketFilterList_template::NG__PacketFilterList_template(NG__PacketFilterList_template* p_precondition, NG__PacketFilterList_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NG__PacketFilterList_template::NG__PacketFilterList_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NG__PacketFilterList_template::NG__PacketFilterList_template(const NG__PacketFilterList_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +NG__PacketFilterList_template::~NG__PacketFilterList_template() +{ +clean_up(); +} + +void NG__PacketFilterList_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__PacketFilterList::ALT_modify: +delete single_value.field_modify; +break; +case NG__PacketFilterList::ALT_new_: +delete single_value.field_new_; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NG__PacketFilterList_template& NG__PacketFilterList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +NG__PacketFilterList_template& NG__PacketFilterList_template::operator=(const NG__PacketFilterList& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +NG__PacketFilterList_template& NG__PacketFilterList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__PacketFilterList&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +return *this; +} + +NG__PacketFilterList_template& NG__PacketFilterList_template::operator=(const NG__PacketFilterList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NG__PacketFilterList_template::match(const NG__PacketFilterList& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +NG__PacketFilterList::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == NG__PacketFilterList::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case NG__PacketFilterList::ALT_modify: +return single_value.field_modify->match(other_value.modify(), legacy); +case NG__PacketFilterList::ALT_new_: +return single_value.field_new_->match(other_value.new_(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +return FALSE; +} + +boolean NG__PacketFilterList_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case NG__PacketFilterList::ALT_modify: +return single_value.field_modify->is_value(); +case NG__PacketFilterList::ALT_new_: +return single_value.field_new_->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +} + +NG__PacketFilterList NG__PacketFilterList_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +NG__PacketFilterList ret_val; +switch (single_value.union_selection) { +case NG__PacketFilterList::ALT_modify: +ret_val.modify() = single_value.field_modify->valueof(); +break; +case NG__PacketFilterList::ALT_new_: +ret_val.new_() = single_value.field_new_->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +NG__PacketFilterList_template& NG__PacketFilterList_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +return value_list.list_value[list_index]; +} +void NG__PacketFilterList_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NG__PacketFilterList_template[list_length]; +} + +NG__PacketFilterList::union_selection_type NG__PacketFilterList_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NG_NAS_TypeDefs.NG_PacketFilterList"); +return single_value.union_selection; +} + +NG__PacketFilterList__Type1_template& NG__PacketFilterList_template::modify() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__PacketFilterList::ALT_modify) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_modify = new NG__PacketFilterList__Type1_template(ANY_VALUE); +else single_value.field_modify = new NG__PacketFilterList__Type1_template; +single_value.union_selection = NG__PacketFilterList::ALT_modify; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_modify; +} + +const NG__PacketFilterList__Type1_template& NG__PacketFilterList_template::modify() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field modify in a non-specific template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +if (single_value.union_selection != NG__PacketFilterList::ALT_modify) TTCN_error("Accessing non-selected field modify in a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +return *single_value.field_modify; +} + +NG__PacketFilterList__Type2_template& NG__PacketFilterList_template::new_() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__PacketFilterList::ALT_new_) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_new_ = new NG__PacketFilterList__Type2_template(ANY_VALUE); +else single_value.field_new_ = new NG__PacketFilterList__Type2_template; +single_value.union_selection = NG__PacketFilterList::ALT_new_; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_new_; +} + +const NG__PacketFilterList__Type2_template& NG__PacketFilterList_template::new_() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field new in a non-specific template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +if (single_value.union_selection != NG__PacketFilterList::ALT_new_) TTCN_error("Accessing non-selected field new in a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +return *single_value.field_new_; +} + +boolean NG__PacketFilterList_template::ischosen(NG__PacketFilterList::union_selection_type checked_selection) const +{ +if (checked_selection == NG__PacketFilterList::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == NG__PacketFilterList::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void NG__PacketFilterList_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NG__PacketFilterList_template::set_value(template_sel other_value) { *this = other_value; } +void NG__PacketFilterList_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NG__PacketFilterList_template::clone() const { return new NG__PacketFilterList_template(*this); } +const TTCN_Typedescriptor_t* NG__PacketFilterList_template::get_descriptor() const { return &NG__PacketFilterList_descr_; } +boolean NG__PacketFilterList_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NG__PacketFilterList_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NG__PacketFilterList_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__PacketFilterList::ALT_modify: +TTCN_Logger::log_event_str("{ modify := "); +single_value.field_modify->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__PacketFilterList::ALT_new_: +TTCN_Logger::log_event_str("{ new := "); +single_value.field_new_->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void NG__PacketFilterList_template::log_match(const NG__PacketFilterList& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case NG__PacketFilterList::ALT_modify: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".modify"); +single_value.field_modify->log_match(match_value.modify(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ modify := "); +single_value.field_modify->log_match(match_value.modify(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__PacketFilterList::ALT_new_: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".new"); +single_value.field_new_->log_match(match_value.new_(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ new := "); +single_value.field_new_->log_match(match_value.new_(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void NG__PacketFilterList_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case NG__PacketFilterList::ALT_modify: +single_value.field_modify->encode_text(text_buf); +break; +case NG__PacketFilterList::ALT_new_: +single_value.field_new_->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +} + +void NG__PacketFilterList_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = NG__PacketFilterList::UNBOUND_VALUE; +NG__PacketFilterList::union_selection_type new_selection = (NG__PacketFilterList::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case NG__PacketFilterList::ALT_modify: +single_value.field_modify = new NG__PacketFilterList__Type1_template; +single_value.field_modify->decode_text(text_buf); +break; +case NG__PacketFilterList::ALT_new_: +single_value.field_new_ = new NG__PacketFilterList__Type2_template; +single_value.field_new_->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NG__PacketFilterList_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +} + +boolean NG__PacketFilterList_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NG__PacketFilterList_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NG_NAS_TypeDefs.NG_PacketFilterList'"); + } + if (strcmp("modify", param_field) == 0) { + modify().set_param(param); + return; + } else if (strcmp("new", param_field) == 0) { + new_().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NG_NAS_TypeDefs.NG_PacketFilterList'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NG__PacketFilterList_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NG_NAS_TypeDefs.NG_PacketFilterList"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "modify")) { + modify().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "new")) { + new_().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NG_NAS_TypeDefs.NG_PacketFilterList.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + NG__PacketFilterList_template* precondition = new NG__PacketFilterList_template; + precondition->set_param(*m_p->get_elem(0)); + NG__PacketFilterList_template* implied_template = new NG__PacketFilterList_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NG__PacketFilterList_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NG_NAS_TypeDefs.NG_PacketFilterList"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NG__PacketFilterList_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NG_NAS_TypeDefs.NG_PacketFilterList'"); + } + if (strcmp("modify", param_field) == 0) { + return modify().get_param(param_name); + } else if (strcmp("new", param_field) == 0) { + return new_().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__PacketFilterList'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case NG__PacketFilterList::ALT_modify: + mp_field = single_value.field_modify->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("modify"))); + break; + case NG__PacketFilterList::ALT_new_: + mp_field = single_value.field_new_->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("new"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NG__PacketFilterList_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case NG__PacketFilterList::ALT_modify: +single_value.field_modify->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.NG_PacketFilterList"); +return; +case NG__PacketFilterList::ALT_new_: +single_value.field_new_->check_restriction(t_res, t_name ? t_name : "@NG_NAS_TypeDefs.NG_PacketFilterList"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NG_NAS_TypeDefs.NG_PacketFilterList."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NG_NAS_TypeDefs.NG_PacketFilterList"); +} + + +const NG__PacketFilter__Type1 NG__PacketFilterList__Type1::UNBOUND_ELEM; +NG__PacketFilter__Type1& NG__PacketFilterList__Type1::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__PacketFilter__Type1& NG__PacketFilterList__Type1::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__PacketFilter__Type1& NG__PacketFilterList__Type1::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__PacketFilter__Type1& NG__PacketFilterList__Type1::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::operator<<=(const INTEGER& rotate_count) const +{ +NG__PacketFilterList__Type1 rec_of; +return *((NG__PacketFilterList__Type1*)rotl(rotate_count, &rec_of)); +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::operator>>=(const INTEGER& rotate_count) const +{ +NG__PacketFilterList__Type1 rec_of; +return *((NG__PacketFilterList__Type1*)rotr(rotate_count, &rec_of)); +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::operator>>=(int rotate_count) const +{ +NG__PacketFilterList__Type1 rec_of; +return *((NG__PacketFilterList__Type1*)rotr(rotate_count, &rec_of)); +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::operator+(const NG__PacketFilterList__Type1& other_value) const +{ +NG__PacketFilterList__Type1 rec_of; +return *((NG__PacketFilterList__Type1*)concat(&other_value, &rec_of)); +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__PacketFilterList__Type1&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NG_PacketFilterList_Type1 concatenation."); +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::operator+(null_type) const +{ +return *this; +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::substr(int index, int returncount) const +{ +NG__PacketFilterList__Type1 rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::replace(int index, int len, const NG__PacketFilterList__Type1& repl) const +{ +NG__PacketFilterList__Type1 rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1::replace(int index, int len, const NG__PacketFilterList__Type1_template& repl) const +{ +NG__PacketFilterList__Type1 rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__PacketFilterList__Type1::create_elem() const { return new NG__PacketFilter__Type1; } +const Base_Type* NG__PacketFilterList__Type1::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__PacketFilterList__Type1::get_descriptor() const { return &NG__PacketFilterList__Type1_descr_; } +NG__PacketFilterList__Type1_template::NG__PacketFilterList__Type1_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__PacketFilterList__Type1_template::NG__PacketFilterList__Type1_template(NG__PacketFilterList__Type1_template* p_precondition, NG__PacketFilterList__Type1_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PacketFilterList__Type1_template::NG__PacketFilterList__Type1_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PacketFilterList__Type1_template::~NG__PacketFilterList__Type1_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PacketFilterList__Type1_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PacketFilterList__Type1* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__PacketFilterList__Type1_template& NG__PacketFilterList__Type1_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PacketFilterList__Type1_template& NG__PacketFilterList__Type1_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__PacketFilterList__Type1_template& NG__PacketFilterList__Type1_template::operator=(const NG__PacketFilterList__Type1& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PacketFilterList__Type1_template& NG__PacketFilterList__Type1_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PacketFilterList__Type1_template& NG__PacketFilterList__Type1_template::operator=(const NG__PacketFilterList__Type1_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PacketFilterList__Type1_template NG__PacketFilterList__Type1_template::operator+(const NG__PacketFilterList__Type1_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__PacketFilterList__Type1_template(ANY_VALUE); +} +NG__PacketFilterList__Type1_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__PacketFilterList__Type1_template NG__PacketFilterList__Type1_template::operator+(const NG__PacketFilterList__Type1& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__PacketFilterList__Type1_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__PacketFilterList__Type1_template NG__PacketFilterList__Type1_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__PacketFilterList__Type1_template(ANY_VALUE); +} +NG__PacketFilterList__Type1_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__PacketFilterList__Type1_template NG__PacketFilterList__Type1_template::operator+(null_type) const +{ +return *this; +} + +NG__PacketFilter__Type1_template& NG__PacketFilterList__Type1_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__PacketFilter__Type1_template& NG__PacketFilterList__Type1_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__PacketFilter__Type1_template& NG__PacketFilterList__Type1_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__PacketFilter__Type1_template& NG__PacketFilterList__Type1_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1_template::valueof() const +{ +NG__PacketFilterList__Type1 ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1_template::substr(int index, int returncount) const +{ +NG__PacketFilterList__Type1 rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1_template::replace(int index, int len, const NG__PacketFilterList__Type1_template& repl) const +{ +NG__PacketFilterList__Type1 rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__PacketFilterList__Type1 NG__PacketFilterList__Type1_template::replace(int index, int len, const NG__PacketFilterList__Type1& repl) const +{ +NG__PacketFilterList__Type1 rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__PacketFilterList__Type1_template::create_elem() const { return new NG__PacketFilter__Type1_template; } +const TTCN_Typedescriptor_t* NG__PacketFilterList__Type1_template::get_descriptor() const { return &NG__PacketFilterList__Type1_descr_; } +void NG__PacketFilter__Type1::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_packetFilterId; } + +NG__PacketFilter__Type1::NG__PacketFilter__Type1() : Record_Type() { init_vec(); } + +NG__PacketFilter__Type1::NG__PacketFilter__Type1(const NG__PacketFilter__Type1& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_packetFilterId.is_bound() ) + field_packetFilterId = other_value.field_packetFilterId; +init_vec(); +} + +NG__PacketFilter__Type1::NG__PacketFilter__Type1(const BITSTRING& par_spare, + const BITSTRING& par_packetFilterId) : field_spare(par_spare), + field_packetFilterId(par_packetFilterId) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PacketFilter__Type1::get_descriptor() const { return &NG__PacketFilter__Type1_descr_; } +const TTCN_Typedescriptor_t* NG__PacketFilter__Type1::fld_descriptors[] = { &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__PacketFilter__Type1::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PacketFilter__Type1::fld_names[] = { "spare", "packetFilterId" }; +const char* NG__PacketFilter__Type1::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__PacketFilter__Type1_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NG__PacketFilter__Type1_template::NG__PacketFilter__Type1_template(NG__PacketFilter__Type1_template* p_precondition, NG__PacketFilter__Type1_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PacketFilter__Type1_template::NG__PacketFilter__Type1_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PacketFilter__Type1_template::~NG__PacketFilter__Type1_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PacketFilter__Type1_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PacketFilter__Type1* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PacketFilter__Type1_template& NG__PacketFilter__Type1_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PacketFilter__Type1_template& NG__PacketFilter__Type1_template::operator=(const NG__PacketFilter__Type1& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PacketFilter__Type1_template& NG__PacketFilter__Type1_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PacketFilter__Type1_template& NG__PacketFilter__Type1_template::operator=(const NG__PacketFilter__Type1_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PacketFilter__Type1 NG__PacketFilter__Type1_template::valueof() const +{ +NG__PacketFilter__Type1 ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PacketFilter__Type1_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PacketFilter__Type1_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NG__PacketFilter__Type1_template::packetFilterId() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NG__PacketFilter__Type1_template::packetFilterId() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__PacketFilter__Type1_template::get_descriptor() const { return &NG__PacketFilter__Type1_descr_; } +const char* NG__PacketFilter__Type1_template::fld_name(int p_index) const { return NG__PacketFilter__Type1::fld_names[p_index]; } + +const NG__PacketFilter__Type2 NG__PacketFilterList__Type2::UNBOUND_ELEM; +NG__PacketFilter__Type2& NG__PacketFilterList__Type2::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__PacketFilter__Type2& NG__PacketFilterList__Type2::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__PacketFilter__Type2& NG__PacketFilterList__Type2::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__PacketFilter__Type2& NG__PacketFilterList__Type2::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::operator<<=(const INTEGER& rotate_count) const +{ +NG__PacketFilterList__Type2 rec_of; +return *((NG__PacketFilterList__Type2*)rotl(rotate_count, &rec_of)); +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::operator>>=(const INTEGER& rotate_count) const +{ +NG__PacketFilterList__Type2 rec_of; +return *((NG__PacketFilterList__Type2*)rotr(rotate_count, &rec_of)); +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::operator>>=(int rotate_count) const +{ +NG__PacketFilterList__Type2 rec_of; +return *((NG__PacketFilterList__Type2*)rotr(rotate_count, &rec_of)); +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::operator+(const NG__PacketFilterList__Type2& other_value) const +{ +NG__PacketFilterList__Type2 rec_of; +return *((NG__PacketFilterList__Type2*)concat(&other_value, &rec_of)); +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NG__PacketFilterList__Type2&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NG_PacketFilterList_Type2 concatenation."); +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::operator+(null_type) const +{ +return *this; +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::substr(int index, int returncount) const +{ +NG__PacketFilterList__Type2 rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::replace(int index, int len, const NG__PacketFilterList__Type2& repl) const +{ +NG__PacketFilterList__Type2 rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2::replace(int index, int len, const NG__PacketFilterList__Type2_template& repl) const +{ +NG__PacketFilterList__Type2 rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NG__PacketFilterList__Type2::create_elem() const { return new NG__PacketFilter__Type2; } +const Base_Type* NG__PacketFilterList__Type2::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NG__PacketFilterList__Type2::get_descriptor() const { return &NG__PacketFilterList__Type2_descr_; } +NG__PacketFilterList__Type2_template::NG__PacketFilterList__Type2_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NG__PacketFilterList__Type2_template::NG__PacketFilterList__Type2_template(NG__PacketFilterList__Type2_template* p_precondition, NG__PacketFilterList__Type2_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PacketFilterList__Type2_template::NG__PacketFilterList__Type2_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PacketFilterList__Type2_template::~NG__PacketFilterList__Type2_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PacketFilterList__Type2_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PacketFilterList__Type2* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NG__PacketFilterList__Type2_template& NG__PacketFilterList__Type2_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PacketFilterList__Type2_template& NG__PacketFilterList__Type2_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NG__PacketFilterList__Type2_template& NG__PacketFilterList__Type2_template::operator=(const NG__PacketFilterList__Type2& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PacketFilterList__Type2_template& NG__PacketFilterList__Type2_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PacketFilterList__Type2_template& NG__PacketFilterList__Type2_template::operator=(const NG__PacketFilterList__Type2_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PacketFilterList__Type2_template NG__PacketFilterList__Type2_template::operator+(const NG__PacketFilterList__Type2_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NG__PacketFilterList__Type2_template(ANY_VALUE); +} +NG__PacketFilterList__Type2_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__PacketFilterList__Type2_template NG__PacketFilterList__Type2_template::operator+(const NG__PacketFilterList__Type2& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NG__PacketFilterList__Type2_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NG__PacketFilterList__Type2_template NG__PacketFilterList__Type2_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NG__PacketFilterList__Type2_template(ANY_VALUE); +} +NG__PacketFilterList__Type2_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NG__PacketFilterList__Type2_template NG__PacketFilterList__Type2_template::operator+(null_type) const +{ +return *this; +} + +NG__PacketFilter__Type2_template& NG__PacketFilterList__Type2_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NG__PacketFilter__Type2_template& NG__PacketFilterList__Type2_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NG__PacketFilter__Type2_template& NG__PacketFilterList__Type2_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NG__PacketFilter__Type2_template& NG__PacketFilterList__Type2_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2_template::valueof() const +{ +NG__PacketFilterList__Type2 ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2_template::substr(int index, int returncount) const +{ +NG__PacketFilterList__Type2 rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2_template::replace(int index, int len, const NG__PacketFilterList__Type2_template& repl) const +{ +NG__PacketFilterList__Type2 rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NG__PacketFilterList__Type2 NG__PacketFilterList__Type2_template::replace(int index, int len, const NG__PacketFilterList__Type2& repl) const +{ +NG__PacketFilterList__Type2 rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NG__PacketFilterList__Type2_template::create_elem() const { return new NG__PacketFilter__Type2_template; } +const TTCN_Typedescriptor_t* NG__PacketFilterList__Type2_template::get_descriptor() const { return &NG__PacketFilterList__Type2_descr_; } +void NG__PacketFilter__Type2::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_direction; fld_vec[2]=&field_packetFilterId; fld_vec[3]=&field_len; fld_vec[4]=&field_contents; } + +NG__PacketFilter__Type2::NG__PacketFilter__Type2() : Record_Type() { init_vec(); } + +NG__PacketFilter__Type2::NG__PacketFilter__Type2(const NG__PacketFilter__Type2& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_direction.is_bound() ) + field_direction = other_value.field_direction; +if (other_value.field_packetFilterId.is_bound() ) + field_packetFilterId = other_value.field_packetFilterId; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_contents.is_bound() ) + field_contents = other_value.field_contents; +init_vec(); +} + +NG__PacketFilter__Type2::NG__PacketFilter__Type2(const BITSTRING& par_spare, + const BITSTRING& par_direction, + const BITSTRING& par_packetFilterId, + const OPTIONAL& par_len, + const OPTIONAL& par_contents) : field_spare(par_spare), + field_direction(par_direction), + field_packetFilterId(par_packetFilterId), + field_len(par_len), + field_contents(par_contents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PacketFilter__Type2::get_descriptor() const { return &NG__PacketFilter__Type2_descr_; } +const TTCN_Typedescriptor_t* NG__PacketFilter__Type2::fld_descriptors[] = { &CommonDefs::B2__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B4__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NG__PacketFilter__Type2::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PacketFilter__Type2::fld_names[] = { "spare", "direction", "packetFilterId", "len", "contents" }; +const char* NG__PacketFilter__Type2::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PacketFilter__Type2::optional_indexes[] = { 3, 4, -1 }; +const int* NG__PacketFilter__Type2::get_optional_indexes() const { return optional_indexes; } + +const int NG__PacketFilter__Type2::optional_indexes_asn[] = { 3, 4, -1 }; +const int* NG__PacketFilter__Type2::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PacketFilter__Type2_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +NG__PacketFilter__Type2_template::NG__PacketFilter__Type2_template(NG__PacketFilter__Type2_template* p_precondition, NG__PacketFilter__Type2_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PacketFilter__Type2_template::NG__PacketFilter__Type2_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PacketFilter__Type2_template::~NG__PacketFilter__Type2_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PacketFilter__Type2_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PacketFilter__Type2* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PacketFilter__Type2_template& NG__PacketFilter__Type2_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PacketFilter__Type2_template& NG__PacketFilter__Type2_template::operator=(const NG__PacketFilter__Type2& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PacketFilter__Type2_template& NG__PacketFilter__Type2_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PacketFilter__Type2_template& NG__PacketFilter__Type2_template::operator=(const NG__PacketFilter__Type2_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PacketFilter__Type2 NG__PacketFilter__Type2_template::valueof() const +{ +NG__PacketFilter__Type2 ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PacketFilter__Type2_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PacketFilter__Type2_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NG__PacketFilter__Type2_template::direction() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NG__PacketFilter__Type2_template::direction() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NG__PacketFilter__Type2_template::packetFilterId() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NG__PacketFilter__Type2_template::packetFilterId() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& NG__PacketFilter__Type2_template::len() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& NG__PacketFilter__Type2_template::len() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& NG__PacketFilter__Type2_template::contents() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& NG__PacketFilter__Type2_template::contents() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NG__PacketFilter__Type2_template::get_descriptor() const { return &NG__PacketFilter__Type2_descr_; } +const char* NG__PacketFilter__Type2_template::fld_name(int p_index) const { return NG__PacketFilter__Type2::fld_names[p_index]; } +void QoS__Rules::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_listofQoSRules; } + +QoS__Rules::QoS__Rules() : Record_Type() { init_vec(); } + +QoS__Rules::QoS__Rules(const QoS__Rules& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_listofQoSRules.is_bound() ) + field_listofQoSRules = other_value.field_listofQoSRules; +init_vec(); +} + +QoS__Rules::QoS__Rules(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const QoS__RuleList& par_listofQoSRules) : field_iei(par_iei), + field_iel(par_iel), + field_listofQoSRules(par_listofQoSRules) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* QoS__Rules::get_descriptor() const { return &QoS__Rules_descr_; } +const TTCN_Typedescriptor_t* QoS__Rules::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &QoS__RuleList_descr_ }; +const TTCN_Typedescriptor_t* QoS__Rules::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* QoS__Rules::fld_names[] = { "iei", "iel", "listofQoSRules" }; +const char* QoS__Rules::fld_name(int p_index) const { return fld_names[p_index]; } + +const int QoS__Rules::optional_indexes[] = { 0, -1 }; +const int* QoS__Rules::get_optional_indexes() const { return optional_indexes; } + +const int QoS__Rules::optional_indexes_asn[] = { 0, -1 }; +const int* QoS__Rules::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void QoS__Rules_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new QoS__RuleList_template(ANY_VALUE) : new QoS__RuleList_template; +} +} + +QoS__Rules_template::QoS__Rules_template(QoS__Rules_template* p_precondition, QoS__Rules_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoS__Rules_template::QoS__Rules_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoS__Rules_template::~QoS__Rules_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoS__Rules_template::match_dynamic(const Base_Type* match_value) const +{ +const QoS__Rules* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +QoS__Rules_template& QoS__Rules_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoS__Rules_template& QoS__Rules_template::operator=(const QoS__Rules& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoS__Rules_template& QoS__Rules_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoS__Rules_template& QoS__Rules_template::operator=(const QoS__Rules_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoS__Rules QoS__Rules_template::valueof() const +{ +QoS__Rules ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& QoS__Rules_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& QoS__Rules_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& QoS__Rules_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& QoS__Rules_template::iel() const { return *(static_cast(get_at(1))); } +QoS__RuleList_template& QoS__Rules_template::listofQoSRules() { return *(static_cast(get_at(2))); } +const QoS__RuleList_template& QoS__Rules_template::listofQoSRules() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* QoS__Rules_template::get_descriptor() const { return &QoS__Rules_descr_; } +const char* QoS__Rules_template::fld_name(int p_index) const { return QoS__Rules::fld_names[p_index]; } +void Session__AMBR::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_unitDL; fld_vec[3]=&field_downlink; fld_vec[4]=&field_unitUL; fld_vec[5]=&field_uplink; } + +Session__AMBR::Session__AMBR() : Record_Type() { init_vec(); } + +Session__AMBR::Session__AMBR(const Session__AMBR& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_unitDL.is_bound() ) + field_unitDL = other_value.field_unitDL; +if (other_value.field_downlink.is_bound() ) + field_downlink = other_value.field_downlink; +if (other_value.field_unitUL.is_bound() ) + field_unitUL = other_value.field_unitUL; +if (other_value.field_uplink.is_bound() ) + field_uplink = other_value.field_uplink; +init_vec(); +} + +Session__AMBR::Session__AMBR(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_unitDL, + const OCTETSTRING& par_downlink, + const OCTETSTRING& par_unitUL, + const OCTETSTRING& par_uplink) : field_iei(par_iei), + field_iel(par_iel), + field_unitDL(par_unitDL), + field_downlink(par_downlink), + field_unitUL(par_unitUL), + field_uplink(par_uplink) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* Session__AMBR::get_descriptor() const { return &Session__AMBR_descr_; } +const TTCN_Typedescriptor_t* Session__AMBR::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_, &CommonDefs::O1__Type_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* Session__AMBR::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* Session__AMBR::fld_names[] = { "iei", "iel", "unitDL", "downlink", "unitUL", "uplink" }; +const char* Session__AMBR::fld_name(int p_index) const { return fld_names[p_index]; } + +const int Session__AMBR::optional_indexes[] = { 0, 1, -1 }; +const int* Session__AMBR::get_optional_indexes() const { return optional_indexes; } + +const int Session__AMBR::optional_indexes_asn[] = { 0, 1, -1 }; +const int* Session__AMBR::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void Session__AMBR_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +Session__AMBR_template::Session__AMBR_template(Session__AMBR_template* p_precondition, Session__AMBR_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +Session__AMBR_template::Session__AMBR_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +Session__AMBR_template::~Session__AMBR_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean Session__AMBR_template::match_dynamic(const Base_Type* match_value) const +{ +const Session__AMBR* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +Session__AMBR_template& Session__AMBR_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +Session__AMBR_template& Session__AMBR_template::operator=(const Session__AMBR& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +Session__AMBR_template& Session__AMBR_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +Session__AMBR_template& Session__AMBR_template::operator=(const Session__AMBR_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +Session__AMBR Session__AMBR_template::valueof() const +{ +Session__AMBR ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& Session__AMBR_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& Session__AMBR_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& Session__AMBR_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& Session__AMBR_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& Session__AMBR_template::unitDL() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& Session__AMBR_template::unitDL() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& Session__AMBR_template::downlink() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& Session__AMBR_template::downlink() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& Session__AMBR_template::unitUL() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& Session__AMBR_template::unitUL() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& Session__AMBR_template::uplink() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& Session__AMBR_template::uplink() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* Session__AMBR_template::get_descriptor() const { return &Session__AMBR_descr_; } +const char* Session__AMBR_template::fld_name(int p_index) const { return Session__AMBR::fld_names[p_index]; } +void NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_sscMode; fld_vec[5]=&field_pduSessionType; fld_vec[6]=&field_authorizedQoSRules; fld_vec[7]=&field_sessionAMBR; fld_vec[8]=&field_gsmCause; fld_vec[9]=&field_pduAddress; fld_vec[10]=&field_rqTimerValue; fld_vec[11]=&field_s__NSSAI; fld_vec[12]=&field_alwaysOnPDUSessionInd; fld_vec[13]=&field_mappedEPSContexts; fld_vec[14]=&field_eapMessage; fld_vec[15]=&field_authorizedQoSFlowDescr; fld_vec[16]=&field_extdProtocolConfigurationOptions; fld_vec[17]=&field_dnn; fld_vec[18]=&field_ngs__NetworkFeatureSupport; fld_vec[19]=&field_servingPLMNRateControl; fld_vec[20]=&field_atsssContainer; fld_vec[21]=&field_controlPlaneOnlyIndication; fld_vec[22]=&field_ipHeaderCompressionConfig; fld_vec[23]=&field_ethernetHeaderCompressConfig; fld_vec[24]=&field_serviceLvlAA; fld_vec[25]=&field_receivedMBS; } + +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_sscMode.is_bound() ) + field_sscMode = other_value.field_sscMode; +if (other_value.field_pduSessionType.is_bound() ) + field_pduSessionType = other_value.field_pduSessionType; +if (other_value.field_authorizedQoSRules.is_bound() ) + field_authorizedQoSRules = other_value.field_authorizedQoSRules; +if (other_value.field_sessionAMBR.is_bound() ) + field_sessionAMBR = other_value.field_sessionAMBR; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_pduAddress.is_bound() ) + field_pduAddress = other_value.field_pduAddress; +if (other_value.field_rqTimerValue.is_bound() ) + field_rqTimerValue = other_value.field_rqTimerValue; +if (other_value.field_s__NSSAI.is_bound() ) + field_s__NSSAI = other_value.field_s__NSSAI; +if (other_value.field_alwaysOnPDUSessionInd.is_bound() ) + field_alwaysOnPDUSessionInd = other_value.field_alwaysOnPDUSessionInd; +if (other_value.field_mappedEPSContexts.is_bound() ) + field_mappedEPSContexts = other_value.field_mappedEPSContexts; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_authorizedQoSFlowDescr.is_bound() ) + field_authorizedQoSFlowDescr = other_value.field_authorizedQoSFlowDescr; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_dnn.is_bound() ) + field_dnn = other_value.field_dnn; +if (other_value.field_ngs__NetworkFeatureSupport.is_bound() ) + field_ngs__NetworkFeatureSupport = other_value.field_ngs__NetworkFeatureSupport; +if (other_value.field_servingPLMNRateControl.is_bound() ) + field_servingPLMNRateControl = other_value.field_servingPLMNRateControl; +if (other_value.field_atsssContainer.is_bound() ) + field_atsssContainer = other_value.field_atsssContainer; +if (other_value.field_controlPlaneOnlyIndication.is_bound() ) + field_controlPlaneOnlyIndication = other_value.field_controlPlaneOnlyIndication; +if (other_value.field_ipHeaderCompressionConfig.is_bound() ) + field_ipHeaderCompressionConfig = other_value.field_ipHeaderCompressionConfig; +if (other_value.field_ethernetHeaderCompressConfig.is_bound() ) + field_ethernetHeaderCompressConfig = other_value.field_ethernetHeaderCompressConfig; +if (other_value.field_serviceLvlAA.is_bound() ) + field_serviceLvlAA = other_value.field_serviceLvlAA; +if (other_value.field_receivedMBS.is_bound() ) + field_receivedMBS = other_value.field_receivedMBS; +init_vec(); +} + +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const SSC__Mode& par_sscMode, + const PDU__SessionType& par_pduSessionType, + const QoS__Rules& par_authorizedQoSRules, + const Session__AMBR& par_sessionAMBR, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_pduAddress, + const OPTIONAL& par_rqTimerValue, + const OPTIONAL& par_s__NSSAI, + const OPTIONAL& par_alwaysOnPDUSessionInd, + const OPTIONAL& par_mappedEPSContexts, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_authorizedQoSFlowDescr, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_dnn, + const OPTIONAL& par_ngs__NetworkFeatureSupport, + const OPTIONAL& par_servingPLMNRateControl, + const OPTIONAL& par_atsssContainer, + const OPTIONAL& par_controlPlaneOnlyIndication, + const OPTIONAL& par_ipHeaderCompressionConfig, + const OPTIONAL& par_ethernetHeaderCompressConfig, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_receivedMBS) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_sscMode(par_sscMode), + field_pduSessionType(par_pduSessionType), + field_authorizedQoSRules(par_authorizedQoSRules), + field_sessionAMBR(par_sessionAMBR), + field_gsmCause(par_gsmCause), + field_pduAddress(par_pduAddress), + field_rqTimerValue(par_rqTimerValue), + field_s__NSSAI(par_s__NSSAI), + field_alwaysOnPDUSessionInd(par_alwaysOnPDUSessionInd), + field_mappedEPSContexts(par_mappedEPSContexts), + field_eapMessage(par_eapMessage), + field_authorizedQoSFlowDescr(par_authorizedQoSFlowDescr), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_dnn(par_dnn), + field_ngs__NetworkFeatureSupport(par_ngs__NetworkFeatureSupport), + field_servingPLMNRateControl(par_servingPLMNRateControl), + field_atsssContainer(par_atsssContainer), + field_controlPlaneOnlyIndication(par_controlPlaneOnlyIndication), + field_ipHeaderCompressionConfig(par_ipHeaderCompressionConfig), + field_ethernetHeaderCompressConfig(par_ethernetHeaderCompressConfig), + field_serviceLvlAA(par_serviceLvlAA), + field_receivedMBS(par_receivedMBS) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::get_descriptor() const { return &NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &SSC__Mode_descr_, &PDU__SessionType_descr_, &QoS__Rules_descr_, &Session__AMBR_descr_, &GMM__GSM__Cause_descr_, &PDU__Address_descr_, &NAS__CommonTypeDefs::GPRS__Timer_descr_, &S__NSSAI__Type_descr_, &AlwaysOnPDUSessionInd_descr_, &MappedEPSBearerContexts_descr_, &EAP__Message_descr_, &QoSFlowDescr_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &DNN_descr_, &NGSM__NetworkFeatureSupport_descr_, &NAS__CommonTypeDefs::ServingPLMNRateControl_descr_, &ATSSSContainer_descr_, &NAS__CommonTypeDefs::ControlPlaneInd_descr_, &IPHeaderCompressionConfig_descr_, &EthernetHeaderCompressConfig_descr_, &ServiceLvlAAContainer_descr_, &ReceivedMBSContainer_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "sscMode", "pduSessionType", "authorizedQoSRules", "sessionAMBR", "gsmCause", "pduAddress", "rqTimerValue", "s_NSSAI", "alwaysOnPDUSessionInd", "mappedEPSContexts", "eapMessage", "authorizedQoSFlowDescr", "extdProtocolConfigurationOptions", "dnn", "ngs_NetworkFeatureSupport", "servingPLMNRateControl", "atsssContainer", "controlPlaneOnlyIndication", "ipHeaderCompressionConfig", "ethernetHeaderCompressConfig", "serviceLvlAA", "receivedMBS" }; +const char* NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::optional_indexes[] = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1 }; +const int* NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::optional_indexes_asn[] = { 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1 }; +const int* NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 26; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new SSC__Mode_template(ANY_VALUE) : new SSC__Mode_template; +single_value.value_elements[5] = was_any ? new PDU__SessionType_template(ANY_VALUE) : new PDU__SessionType_template; +single_value.value_elements[6] = was_any ? new QoS__Rules_template(ANY_VALUE) : new QoS__Rules_template; +single_value.value_elements[7] = was_any ? new Session__AMBR_template(ANY_VALUE) : new Session__AMBR_template; +single_value.value_elements[8] = was_any ? new GMM__GSM__Cause_template(ANY_OR_OMIT) : new GMM__GSM__Cause_template; +single_value.value_elements[9] = was_any ? new PDU__Address_template(ANY_OR_OMIT) : new PDU__Address_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer_template; +single_value.value_elements[11] = was_any ? new S__NSSAI__Type_template(ANY_OR_OMIT) : new S__NSSAI__Type_template; +single_value.value_elements[12] = was_any ? new AlwaysOnPDUSessionInd_template(ANY_OR_OMIT) : new AlwaysOnPDUSessionInd_template; +single_value.value_elements[13] = was_any ? new MappedEPSBearerContexts_template(ANY_OR_OMIT) : new MappedEPSBearerContexts_template; +single_value.value_elements[14] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +single_value.value_elements[15] = was_any ? new QoSFlowDescr_template(ANY_OR_OMIT) : new QoSFlowDescr_template; +single_value.value_elements[16] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[17] = was_any ? new DNN_template(ANY_OR_OMIT) : new DNN_template; +single_value.value_elements[18] = was_any ? new NGSM__NetworkFeatureSupport_template(ANY_OR_OMIT) : new NGSM__NetworkFeatureSupport_template; +single_value.value_elements[19] = was_any ? new NAS__CommonTypeDefs::ServingPLMNRateControl_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ServingPLMNRateControl_template; +single_value.value_elements[20] = was_any ? new ATSSSContainer_template(ANY_OR_OMIT) : new ATSSSContainer_template; +single_value.value_elements[21] = was_any ? new NAS__CommonTypeDefs::ControlPlaneInd_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ControlPlaneInd_template; +single_value.value_elements[22] = was_any ? new IPHeaderCompressionConfig_template(ANY_OR_OMIT) : new IPHeaderCompressionConfig_template; +single_value.value_elements[23] = was_any ? new EthernetHeaderCompressConfig_template(ANY_OR_OMIT) : new EthernetHeaderCompressConfig_template; +single_value.value_elements[24] = was_any ? new ServiceLvlAAContainer_template(ANY_OR_OMIT) : new ServiceLvlAAContainer_template; +single_value.value_elements[25] = was_any ? new ReceivedMBSContainer_template(ANY_OR_OMIT) : new ReceivedMBSContainer_template; +} +} + +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template* p_precondition, NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::~NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::operator=(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::operator=(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::valueof() const +{ +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::messageType() const { return *(static_cast(get_at(3))); } +SSC__Mode_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::sscMode() { return *(static_cast(get_at(4))); } +const SSC__Mode_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::sscMode() const { return *(static_cast(get_at(4))); } +PDU__SessionType_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::pduSessionType() { return *(static_cast(get_at(5))); } +const PDU__SessionType_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::pduSessionType() const { return *(static_cast(get_at(5))); } +QoS__Rules_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::authorizedQoSRules() { return *(static_cast(get_at(6))); } +const QoS__Rules_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::authorizedQoSRules() const { return *(static_cast(get_at(6))); } +Session__AMBR_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::sessionAMBR() { return *(static_cast(get_at(7))); } +const Session__AMBR_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::sessionAMBR() const { return *(static_cast(get_at(7))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::gsmCause() { return *(static_cast(get_at(8))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::gsmCause() const { return *(static_cast(get_at(8))); } +PDU__Address_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::pduAddress() { return *(static_cast(get_at(9))); } +const PDU__Address_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::pduAddress() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::GPRS__Timer_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::rqTimerValue() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::GPRS__Timer_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::rqTimerValue() const { return *(static_cast(get_at(10))); } +S__NSSAI__Type_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::s__NSSAI() { return *(static_cast(get_at(11))); } +const S__NSSAI__Type_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::s__NSSAI() const { return *(static_cast(get_at(11))); } +AlwaysOnPDUSessionInd_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::alwaysOnPDUSessionInd() { return *(static_cast(get_at(12))); } +const AlwaysOnPDUSessionInd_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::alwaysOnPDUSessionInd() const { return *(static_cast(get_at(12))); } +MappedEPSBearerContexts_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::mappedEPSContexts() { return *(static_cast(get_at(13))); } +const MappedEPSBearerContexts_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::mappedEPSContexts() const { return *(static_cast(get_at(13))); } +EAP__Message_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::eapMessage() { return *(static_cast(get_at(14))); } +const EAP__Message_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::eapMessage() const { return *(static_cast(get_at(14))); } +QoSFlowDescr_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::authorizedQoSFlowDescr() { return *(static_cast(get_at(15))); } +const QoSFlowDescr_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::authorizedQoSFlowDescr() const { return *(static_cast(get_at(15))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(16))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(16))); } +DNN_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::dnn() { return *(static_cast(get_at(17))); } +const DNN_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::dnn() const { return *(static_cast(get_at(17))); } +NGSM__NetworkFeatureSupport_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::ngs__NetworkFeatureSupport() { return *(static_cast(get_at(18))); } +const NGSM__NetworkFeatureSupport_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::ngs__NetworkFeatureSupport() const { return *(static_cast(get_at(18))); } +NAS__CommonTypeDefs::ServingPLMNRateControl_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::servingPLMNRateControl() { return *(static_cast(get_at(19))); } +const NAS__CommonTypeDefs::ServingPLMNRateControl_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::servingPLMNRateControl() const { return *(static_cast(get_at(19))); } +ATSSSContainer_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::atsssContainer() { return *(static_cast(get_at(20))); } +const ATSSSContainer_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::atsssContainer() const { return *(static_cast(get_at(20))); } +NAS__CommonTypeDefs::ControlPlaneInd_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::controlPlaneOnlyIndication() { return *(static_cast(get_at(21))); } +const NAS__CommonTypeDefs::ControlPlaneInd_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::controlPlaneOnlyIndication() const { return *(static_cast(get_at(21))); } +IPHeaderCompressionConfig_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::ipHeaderCompressionConfig() { return *(static_cast(get_at(22))); } +const IPHeaderCompressionConfig_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::ipHeaderCompressionConfig() const { return *(static_cast(get_at(22))); } +EthernetHeaderCompressConfig_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::ethernetHeaderCompressConfig() { return *(static_cast(get_at(23))); } +const EthernetHeaderCompressConfig_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::ethernetHeaderCompressConfig() const { return *(static_cast(get_at(23))); } +ServiceLvlAAContainer_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::serviceLvlAA() { return *(static_cast(get_at(24))); } +const ServiceLvlAAContainer_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::serviceLvlAA() const { return *(static_cast(get_at(24))); } +ReceivedMBSContainer_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::receivedMBS() { return *(static_cast(get_at(25))); } +const ReceivedMBSContainer_template& NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::receivedMBS() const { return *(static_cast(get_at(25))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::get_descriptor() const { return &NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_descr_; } +const char* NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template::fld_name(int p_index) const { return NG__PDU__SESSION__ESTABLISHMENT__ACCEPT::fld_names[p_index]; } + +const MappedEPSContext MappedEPSBearerContexts_mappedContextList::UNBOUND_ELEM; +MappedEPSContext& MappedEPSBearerContexts_mappedContextList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +MappedEPSContext& MappedEPSBearerContexts_mappedContextList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const MappedEPSContext& MappedEPSBearerContexts_mappedContextList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const MappedEPSContext& MappedEPSBearerContexts_mappedContextList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::operator<<=(const INTEGER& rotate_count) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +return *((MappedEPSBearerContexts_mappedContextList*)rotl(rotate_count, &rec_of)); +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::operator>>=(const INTEGER& rotate_count) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +return *((MappedEPSBearerContexts_mappedContextList*)rotr(rotate_count, &rec_of)); +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::operator>>=(int rotate_count) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +return *((MappedEPSBearerContexts_mappedContextList*)rotr(rotate_count, &rec_of)); +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::operator+(const MappedEPSBearerContexts_mappedContextList& other_value) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +return *((MappedEPSBearerContexts_mappedContextList*)concat(&other_value, &rec_of)); +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const MappedEPSBearerContexts_mappedContextList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.MappedEPSBearerContexts.mappedContextList concatenation."); +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::operator+(null_type) const +{ +return *this; +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::substr(int index, int returncount) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::replace(int index, int len, const MappedEPSBearerContexts_mappedContextList& repl) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList::replace(int index, int len, const MappedEPSBearerContexts_mappedContextList_template& repl) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* MappedEPSBearerContexts_mappedContextList::create_elem() const { return new MappedEPSContext; } +const Base_Type* MappedEPSBearerContexts_mappedContextList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* MappedEPSBearerContexts_mappedContextList::get_descriptor() const { return &MappedEPSBearerContexts_mappedContextList_descr_; } +MappedEPSBearerContexts_mappedContextList_template::MappedEPSBearerContexts_mappedContextList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +MappedEPSBearerContexts_mappedContextList_template::MappedEPSBearerContexts_mappedContextList_template(MappedEPSBearerContexts_mappedContextList_template* p_precondition, MappedEPSBearerContexts_mappedContextList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MappedEPSBearerContexts_mappedContextList_template::MappedEPSBearerContexts_mappedContextList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MappedEPSBearerContexts_mappedContextList_template::~MappedEPSBearerContexts_mappedContextList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MappedEPSBearerContexts_mappedContextList_template::match_dynamic(const Base_Type* match_value) const +{ +const MappedEPSBearerContexts_mappedContextList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +MappedEPSBearerContexts_mappedContextList_template& MappedEPSBearerContexts_mappedContextList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MappedEPSBearerContexts_mappedContextList_template& MappedEPSBearerContexts_mappedContextList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +MappedEPSBearerContexts_mappedContextList_template& MappedEPSBearerContexts_mappedContextList_template::operator=(const MappedEPSBearerContexts_mappedContextList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MappedEPSBearerContexts_mappedContextList_template& MappedEPSBearerContexts_mappedContextList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MappedEPSBearerContexts_mappedContextList_template& MappedEPSBearerContexts_mappedContextList_template::operator=(const MappedEPSBearerContexts_mappedContextList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MappedEPSBearerContexts_mappedContextList_template MappedEPSBearerContexts_mappedContextList_template::operator+(const MappedEPSBearerContexts_mappedContextList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return MappedEPSBearerContexts_mappedContextList_template(ANY_VALUE); +} +MappedEPSBearerContexts_mappedContextList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +MappedEPSBearerContexts_mappedContextList_template MappedEPSBearerContexts_mappedContextList_template::operator+(const MappedEPSBearerContexts_mappedContextList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +MappedEPSBearerContexts_mappedContextList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +MappedEPSBearerContexts_mappedContextList_template MappedEPSBearerContexts_mappedContextList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return MappedEPSBearerContexts_mappedContextList_template(ANY_VALUE); +} +MappedEPSBearerContexts_mappedContextList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +MappedEPSBearerContexts_mappedContextList_template MappedEPSBearerContexts_mappedContextList_template::operator+(null_type) const +{ +return *this; +} + +MappedEPSContext_template& MappedEPSBearerContexts_mappedContextList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +MappedEPSContext_template& MappedEPSBearerContexts_mappedContextList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const MappedEPSContext_template& MappedEPSBearerContexts_mappedContextList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const MappedEPSContext_template& MappedEPSBearerContexts_mappedContextList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList_template::valueof() const +{ +MappedEPSBearerContexts_mappedContextList ret_val; +valueofv(&ret_val); +return ret_val; +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList_template::substr(int index, int returncount) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList_template::replace(int index, int len, const MappedEPSBearerContexts_mappedContextList_template& repl) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +MappedEPSBearerContexts_mappedContextList MappedEPSBearerContexts_mappedContextList_template::replace(int index, int len, const MappedEPSBearerContexts_mappedContextList& repl) const +{ +MappedEPSBearerContexts_mappedContextList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* MappedEPSBearerContexts_mappedContextList_template::create_elem() const { return new MappedEPSContext_template; } +const TTCN_Typedescriptor_t* MappedEPSBearerContexts_mappedContextList_template::get_descriptor() const { return &MappedEPSBearerContexts_mappedContextList_descr_; } + +const EPSParameters MappedEPSContext_epsParamsList::UNBOUND_ELEM; +EPSParameters& MappedEPSContext_epsParamsList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +EPSParameters& MappedEPSContext_epsParamsList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const EPSParameters& MappedEPSContext_epsParamsList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const EPSParameters& MappedEPSContext_epsParamsList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::operator<<=(const INTEGER& rotate_count) const +{ +MappedEPSContext_epsParamsList rec_of; +return *((MappedEPSContext_epsParamsList*)rotl(rotate_count, &rec_of)); +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::operator>>=(const INTEGER& rotate_count) const +{ +MappedEPSContext_epsParamsList rec_of; +return *((MappedEPSContext_epsParamsList*)rotr(rotate_count, &rec_of)); +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::operator>>=(int rotate_count) const +{ +MappedEPSContext_epsParamsList rec_of; +return *((MappedEPSContext_epsParamsList*)rotr(rotate_count, &rec_of)); +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::operator+(const MappedEPSContext_epsParamsList& other_value) const +{ +MappedEPSContext_epsParamsList rec_of; +return *((MappedEPSContext_epsParamsList*)concat(&other_value, &rec_of)); +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const MappedEPSContext_epsParamsList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.MappedEPSContext.epsParamsList concatenation."); +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::operator+(null_type) const +{ +return *this; +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::substr(int index, int returncount) const +{ +MappedEPSContext_epsParamsList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::replace(int index, int len, const MappedEPSContext_epsParamsList& repl) const +{ +MappedEPSContext_epsParamsList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList::replace(int index, int len, const MappedEPSContext_epsParamsList_template& repl) const +{ +MappedEPSContext_epsParamsList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* MappedEPSContext_epsParamsList::create_elem() const { return new EPSParameters; } +const Base_Type* MappedEPSContext_epsParamsList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* MappedEPSContext_epsParamsList::get_descriptor() const { return &MappedEPSContext_epsParamsList_descr_; } +MappedEPSContext_epsParamsList_template::MappedEPSContext_epsParamsList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +MappedEPSContext_epsParamsList_template::MappedEPSContext_epsParamsList_template(MappedEPSContext_epsParamsList_template* p_precondition, MappedEPSContext_epsParamsList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MappedEPSContext_epsParamsList_template::MappedEPSContext_epsParamsList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MappedEPSContext_epsParamsList_template::~MappedEPSContext_epsParamsList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MappedEPSContext_epsParamsList_template::match_dynamic(const Base_Type* match_value) const +{ +const MappedEPSContext_epsParamsList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +MappedEPSContext_epsParamsList_template& MappedEPSContext_epsParamsList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MappedEPSContext_epsParamsList_template& MappedEPSContext_epsParamsList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +MappedEPSContext_epsParamsList_template& MappedEPSContext_epsParamsList_template::operator=(const MappedEPSContext_epsParamsList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MappedEPSContext_epsParamsList_template& MappedEPSContext_epsParamsList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MappedEPSContext_epsParamsList_template& MappedEPSContext_epsParamsList_template::operator=(const MappedEPSContext_epsParamsList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MappedEPSContext_epsParamsList_template MappedEPSContext_epsParamsList_template::operator+(const MappedEPSContext_epsParamsList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return MappedEPSContext_epsParamsList_template(ANY_VALUE); +} +MappedEPSContext_epsParamsList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +MappedEPSContext_epsParamsList_template MappedEPSContext_epsParamsList_template::operator+(const MappedEPSContext_epsParamsList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +MappedEPSContext_epsParamsList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +MappedEPSContext_epsParamsList_template MappedEPSContext_epsParamsList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return MappedEPSContext_epsParamsList_template(ANY_VALUE); +} +MappedEPSContext_epsParamsList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +MappedEPSContext_epsParamsList_template MappedEPSContext_epsParamsList_template::operator+(null_type) const +{ +return *this; +} + +EPSParameters_template& MappedEPSContext_epsParamsList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +EPSParameters_template& MappedEPSContext_epsParamsList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const EPSParameters_template& MappedEPSContext_epsParamsList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const EPSParameters_template& MappedEPSContext_epsParamsList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList_template::valueof() const +{ +MappedEPSContext_epsParamsList ret_val; +valueofv(&ret_val); +return ret_val; +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList_template::substr(int index, int returncount) const +{ +MappedEPSContext_epsParamsList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList_template::replace(int index, int len, const MappedEPSContext_epsParamsList_template& repl) const +{ +MappedEPSContext_epsParamsList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +MappedEPSContext_epsParamsList MappedEPSContext_epsParamsList_template::replace(int index, int len, const MappedEPSContext_epsParamsList& repl) const +{ +MappedEPSContext_epsParamsList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* MappedEPSContext_epsParamsList_template::create_elem() const { return new EPSParameters_template; } +const TTCN_Typedescriptor_t* MappedEPSContext_epsParamsList_template::get_descriptor() const { return &MappedEPSContext_epsParamsList_descr_; } +void EPSParameters::init_vec() { fld_vec[0]=&field_id; fld_vec[1]=&field_lenOfContent; fld_vec[2]=&field_epsParam; } + +EPSParameters::EPSParameters() : Record_Type() { init_vec(); } + +EPSParameters::EPSParameters(const EPSParameters& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_id.is_bound() ) + field_id = other_value.field_id; +if (other_value.field_lenOfContent.is_bound() ) + field_lenOfContent = other_value.field_lenOfContent; +if (other_value.field_epsParam.is_bound() ) + field_epsParam = other_value.field_epsParam; +init_vec(); +} + +EPSParameters::EPSParameters(const OCTETSTRING& par_id, + const OPTIONAL& par_lenOfContent, + const OCTETSTRING& par_epsParam) : field_id(par_id), + field_lenOfContent(par_lenOfContent), + field_epsParam(par_epsParam) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* EPSParameters::get_descriptor() const { return &EPSParameters_descr_; } +const TTCN_Typedescriptor_t* EPSParameters::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* EPSParameters::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* EPSParameters::fld_names[] = { "id", "lenOfContent", "epsParam" }; +const char* EPSParameters::fld_name(int p_index) const { return fld_names[p_index]; } + +const int EPSParameters::optional_indexes[] = { 1, -1 }; +const int* EPSParameters::get_optional_indexes() const { return optional_indexes; } + +const int EPSParameters::optional_indexes_asn[] = { 1, -1 }; +const int* EPSParameters::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void EPSParameters_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +EPSParameters_template::EPSParameters_template(EPSParameters_template* p_precondition, EPSParameters_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +EPSParameters_template::EPSParameters_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +EPSParameters_template::~EPSParameters_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean EPSParameters_template::match_dynamic(const Base_Type* match_value) const +{ +const EPSParameters* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +EPSParameters_template& EPSParameters_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +EPSParameters_template& EPSParameters_template::operator=(const EPSParameters& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +EPSParameters_template& EPSParameters_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +EPSParameters_template& EPSParameters_template::operator=(const EPSParameters_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +EPSParameters EPSParameters_template::valueof() const +{ +EPSParameters ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& EPSParameters_template::id() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& EPSParameters_template::id() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& EPSParameters_template::lenOfContent() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& EPSParameters_template::lenOfContent() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& EPSParameters_template::epsParam() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& EPSParameters_template::epsParam() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* EPSParameters_template::get_descriptor() const { return &EPSParameters_descr_; } +const char* EPSParameters_template::fld_name(int p_index) const { return EPSParameters::fld_names[p_index]; } +void MappedEPSContext::init_vec() { fld_vec[0]=&field_epsBearerId; fld_vec[1]=&field_lenOfContext; fld_vec[2]=&field_operationCode; fld_vec[3]=&field_spare; fld_vec[4]=&field_eBit; fld_vec[5]=&field_numOfParams; fld_vec[6]=&field_epsParamsList; } + +MappedEPSContext::MappedEPSContext() : Record_Type() { init_vec(); } + +MappedEPSContext::MappedEPSContext(const MappedEPSContext& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_epsBearerId.is_bound() ) + field_epsBearerId = other_value.field_epsBearerId; +if (other_value.field_lenOfContext.is_bound() ) + field_lenOfContext = other_value.field_lenOfContext; +if (other_value.field_operationCode.is_bound() ) + field_operationCode = other_value.field_operationCode; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_eBit.is_bound() ) + field_eBit = other_value.field_eBit; +if (other_value.field_numOfParams.is_bound() ) + field_numOfParams = other_value.field_numOfParams; +if (other_value.field_epsParamsList.is_bound() ) + field_epsParamsList = other_value.field_epsParamsList; +init_vec(); +} + +MappedEPSContext::MappedEPSContext(const OCTETSTRING& par_epsBearerId, + const OCTETSTRING& par_lenOfContext, + const BITSTRING& par_operationCode, + const BITSTRING& par_spare, + const BITSTRING& par_eBit, + const BITSTRING& par_numOfParams, + const MappedEPSContext_epsParamsList& par_epsParamsList) : field_epsBearerId(par_epsBearerId), + field_lenOfContext(par_lenOfContext), + field_operationCode(par_operationCode), + field_spare(par_spare), + field_eBit(par_eBit), + field_numOfParams(par_numOfParams), + field_epsParamsList(par_epsParamsList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MappedEPSContext::get_descriptor() const { return &MappedEPSContext_descr_; } +const TTCN_Typedescriptor_t* MappedEPSContext::fld_descriptors[] = { &CommonDefs::O1__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B4__Type_descr_, &MappedEPSContext_epsParamsList_descr_ }; +const TTCN_Typedescriptor_t* MappedEPSContext::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MappedEPSContext::fld_names[] = { "epsBearerId", "lenOfContext", "operationCode", "spare", "eBit", "numOfParams", "epsParamsList" }; +const char* MappedEPSContext::fld_name(int p_index) const { return fld_names[p_index]; } + +void MappedEPSContext_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new MappedEPSContext_epsParamsList_template(ANY_VALUE) : new MappedEPSContext_epsParamsList_template; +} +} + +MappedEPSContext_template::MappedEPSContext_template(MappedEPSContext_template* p_precondition, MappedEPSContext_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MappedEPSContext_template::MappedEPSContext_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MappedEPSContext_template::~MappedEPSContext_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MappedEPSContext_template::match_dynamic(const Base_Type* match_value) const +{ +const MappedEPSContext* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MappedEPSContext_template& MappedEPSContext_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MappedEPSContext_template& MappedEPSContext_template::operator=(const MappedEPSContext& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MappedEPSContext_template& MappedEPSContext_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MappedEPSContext_template& MappedEPSContext_template::operator=(const MappedEPSContext_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MappedEPSContext MappedEPSContext_template::valueof() const +{ +MappedEPSContext ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& MappedEPSContext_template::epsBearerId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& MappedEPSContext_template::epsBearerId() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& MappedEPSContext_template::lenOfContext() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& MappedEPSContext_template::lenOfContext() const { return *(static_cast(get_at(1))); } +BITSTRING_template& MappedEPSContext_template::operationCode() { return *(static_cast(get_at(2))); } +const BITSTRING_template& MappedEPSContext_template::operationCode() const { return *(static_cast(get_at(2))); } +BITSTRING_template& MappedEPSContext_template::spare() { return *(static_cast(get_at(3))); } +const BITSTRING_template& MappedEPSContext_template::spare() const { return *(static_cast(get_at(3))); } +BITSTRING_template& MappedEPSContext_template::eBit() { return *(static_cast(get_at(4))); } +const BITSTRING_template& MappedEPSContext_template::eBit() const { return *(static_cast(get_at(4))); } +BITSTRING_template& MappedEPSContext_template::numOfParams() { return *(static_cast(get_at(5))); } +const BITSTRING_template& MappedEPSContext_template::numOfParams() const { return *(static_cast(get_at(5))); } +MappedEPSContext_epsParamsList_template& MappedEPSContext_template::epsParamsList() { return *(static_cast(get_at(6))); } +const MappedEPSContext_epsParamsList_template& MappedEPSContext_template::epsParamsList() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* MappedEPSContext_template::get_descriptor() const { return &MappedEPSContext_descr_; } +const char* MappedEPSContext_template::fld_name(int p_index) const { return MappedEPSContext::fld_names[p_index]; } +void MappedEPSBearerContexts::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_mappedContextList; } + +MappedEPSBearerContexts::MappedEPSBearerContexts() : Record_Type() { init_vec(); } + +MappedEPSBearerContexts::MappedEPSBearerContexts(const MappedEPSBearerContexts& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_mappedContextList.is_bound() ) + field_mappedContextList = other_value.field_mappedContextList; +init_vec(); +} + +MappedEPSBearerContexts::MappedEPSBearerContexts(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const MappedEPSBearerContexts_mappedContextList& par_mappedContextList) : field_iei(par_iei), + field_iel(par_iel), + field_mappedContextList(par_mappedContextList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MappedEPSBearerContexts::get_descriptor() const { return &MappedEPSBearerContexts_descr_; } +const TTCN_Typedescriptor_t* MappedEPSBearerContexts::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &MappedEPSBearerContexts_mappedContextList_descr_ }; +const TTCN_Typedescriptor_t* MappedEPSBearerContexts::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MappedEPSBearerContexts::fld_names[] = { "iei", "iel", "mappedContextList" }; +const char* MappedEPSBearerContexts::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MappedEPSBearerContexts::optional_indexes[] = { 0, 1, -1 }; +const int* MappedEPSBearerContexts::get_optional_indexes() const { return optional_indexes; } + +const int MappedEPSBearerContexts::optional_indexes_asn[] = { 0, 1, -1 }; +const int* MappedEPSBearerContexts::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MappedEPSBearerContexts_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new MappedEPSBearerContexts_mappedContextList_template(ANY_VALUE) : new MappedEPSBearerContexts_mappedContextList_template; +} +} + +MappedEPSBearerContexts_template::MappedEPSBearerContexts_template(MappedEPSBearerContexts_template* p_precondition, MappedEPSBearerContexts_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MappedEPSBearerContexts_template::MappedEPSBearerContexts_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MappedEPSBearerContexts_template::~MappedEPSBearerContexts_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MappedEPSBearerContexts_template::match_dynamic(const Base_Type* match_value) const +{ +const MappedEPSBearerContexts* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MappedEPSBearerContexts_template& MappedEPSBearerContexts_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MappedEPSBearerContexts_template& MappedEPSBearerContexts_template::operator=(const MappedEPSBearerContexts& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MappedEPSBearerContexts_template& MappedEPSBearerContexts_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MappedEPSBearerContexts_template& MappedEPSBearerContexts_template::operator=(const MappedEPSBearerContexts_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MappedEPSBearerContexts MappedEPSBearerContexts_template::valueof() const +{ +MappedEPSBearerContexts ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& MappedEPSBearerContexts_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& MappedEPSBearerContexts_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& MappedEPSBearerContexts_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& MappedEPSBearerContexts_template::iel() const { return *(static_cast(get_at(1))); } +MappedEPSBearerContexts_mappedContextList_template& MappedEPSBearerContexts_template::mappedContextList() { return *(static_cast(get_at(2))); } +const MappedEPSBearerContexts_mappedContextList_template& MappedEPSBearerContexts_template::mappedContextList() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* MappedEPSBearerContexts_template::get_descriptor() const { return &MappedEPSBearerContexts_descr_; } +const char* MappedEPSBearerContexts_template::fld_name(int p_index) const { return MappedEPSBearerContexts::fld_names[p_index]; } + +const QoS__Flow QoSFlowDescr_listofFlows::UNBOUND_ELEM; +QoS__Flow& QoSFlowDescr_listofFlows::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +QoS__Flow& QoSFlowDescr_listofFlows::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const QoS__Flow& QoSFlowDescr_listofFlows::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const QoS__Flow& QoSFlowDescr_listofFlows::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::operator<<=(const INTEGER& rotate_count) const +{ +QoSFlowDescr_listofFlows rec_of; +return *((QoSFlowDescr_listofFlows*)rotl(rotate_count, &rec_of)); +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::operator>>=(const INTEGER& rotate_count) const +{ +QoSFlowDescr_listofFlows rec_of; +return *((QoSFlowDescr_listofFlows*)rotr(rotate_count, &rec_of)); +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::operator>>=(int rotate_count) const +{ +QoSFlowDescr_listofFlows rec_of; +return *((QoSFlowDescr_listofFlows*)rotr(rotate_count, &rec_of)); +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::operator+(const QoSFlowDescr_listofFlows& other_value) const +{ +QoSFlowDescr_listofFlows rec_of; +return *((QoSFlowDescr_listofFlows*)concat(&other_value, &rec_of)); +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const QoSFlowDescr_listofFlows&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.QoSFlowDescr.listofFlows concatenation."); +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::operator+(null_type) const +{ +return *this; +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::substr(int index, int returncount) const +{ +QoSFlowDescr_listofFlows rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::replace(int index, int len, const QoSFlowDescr_listofFlows& repl) const +{ +QoSFlowDescr_listofFlows rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows::replace(int index, int len, const QoSFlowDescr_listofFlows_template& repl) const +{ +QoSFlowDescr_listofFlows rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* QoSFlowDescr_listofFlows::create_elem() const { return new QoS__Flow; } +const Base_Type* QoSFlowDescr_listofFlows::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* QoSFlowDescr_listofFlows::get_descriptor() const { return &QoSFlowDescr_listofFlows_descr_; } +QoSFlowDescr_listofFlows_template::QoSFlowDescr_listofFlows_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +QoSFlowDescr_listofFlows_template::QoSFlowDescr_listofFlows_template(QoSFlowDescr_listofFlows_template* p_precondition, QoSFlowDescr_listofFlows_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoSFlowDescr_listofFlows_template::QoSFlowDescr_listofFlows_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoSFlowDescr_listofFlows_template::~QoSFlowDescr_listofFlows_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoSFlowDescr_listofFlows_template::match_dynamic(const Base_Type* match_value) const +{ +const QoSFlowDescr_listofFlows* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +QoSFlowDescr_listofFlows_template& QoSFlowDescr_listofFlows_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoSFlowDescr_listofFlows_template& QoSFlowDescr_listofFlows_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +QoSFlowDescr_listofFlows_template& QoSFlowDescr_listofFlows_template::operator=(const QoSFlowDescr_listofFlows& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoSFlowDescr_listofFlows_template& QoSFlowDescr_listofFlows_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoSFlowDescr_listofFlows_template& QoSFlowDescr_listofFlows_template::operator=(const QoSFlowDescr_listofFlows_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoSFlowDescr_listofFlows_template QoSFlowDescr_listofFlows_template::operator+(const QoSFlowDescr_listofFlows_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return QoSFlowDescr_listofFlows_template(ANY_VALUE); +} +QoSFlowDescr_listofFlows_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoSFlowDescr_listofFlows_template QoSFlowDescr_listofFlows_template::operator+(const QoSFlowDescr_listofFlows& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +QoSFlowDescr_listofFlows_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoSFlowDescr_listofFlows_template QoSFlowDescr_listofFlows_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return QoSFlowDescr_listofFlows_template(ANY_VALUE); +} +QoSFlowDescr_listofFlows_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +QoSFlowDescr_listofFlows_template QoSFlowDescr_listofFlows_template::operator+(null_type) const +{ +return *this; +} + +QoS__Flow_template& QoSFlowDescr_listofFlows_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +QoS__Flow_template& QoSFlowDescr_listofFlows_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const QoS__Flow_template& QoSFlowDescr_listofFlows_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const QoS__Flow_template& QoSFlowDescr_listofFlows_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows_template::valueof() const +{ +QoSFlowDescr_listofFlows ret_val; +valueofv(&ret_val); +return ret_val; +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows_template::substr(int index, int returncount) const +{ +QoSFlowDescr_listofFlows rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows_template::replace(int index, int len, const QoSFlowDescr_listofFlows_template& repl) const +{ +QoSFlowDescr_listofFlows rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoSFlowDescr_listofFlows QoSFlowDescr_listofFlows_template::replace(int index, int len, const QoSFlowDescr_listofFlows& repl) const +{ +QoSFlowDescr_listofFlows rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* QoSFlowDescr_listofFlows_template::create_elem() const { return new QoS__Flow_template; } +const TTCN_Typedescriptor_t* QoSFlowDescr_listofFlows_template::get_descriptor() const { return &QoSFlowDescr_listofFlows_descr_; } +void QoS__Flow::init_vec() { fld_vec[0]=&field_spare2; fld_vec[1]=&field_qfi; fld_vec[2]=&field_operationCode; fld_vec[3]=&field_spare6; fld_vec[4]=&field_eBit; fld_vec[5]=&field_numOfParameters; fld_vec[6]=&field_parameterList; } + +QoS__Flow::QoS__Flow() : Record_Type() { init_vec(); } + +QoS__Flow::QoS__Flow(const QoS__Flow& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare2.is_bound() ) + field_spare2 = other_value.field_spare2; +if (other_value.field_qfi.is_bound() ) + field_qfi = other_value.field_qfi; +if (other_value.field_operationCode.is_bound() ) + field_operationCode = other_value.field_operationCode; +if (other_value.field_spare6.is_bound() ) + field_spare6 = other_value.field_spare6; +if (other_value.field_eBit.is_bound() ) + field_eBit = other_value.field_eBit; +if (other_value.field_numOfParameters.is_bound() ) + field_numOfParameters = other_value.field_numOfParameters; +if (other_value.field_parameterList.is_bound() ) + field_parameterList = other_value.field_parameterList; +init_vec(); +} + +QoS__Flow::QoS__Flow(const BITSTRING& par_spare2, + const BITSTRING& par_qfi, + const BITSTRING& par_operationCode, + const BITSTRING& par_spare6, + const BITSTRING& par_eBit, + const BITSTRING& par_numOfParameters, + const OPTIONAL& par_parameterList) : field_spare2(par_spare2), + field_qfi(par_qfi), + field_operationCode(par_operationCode), + field_spare6(par_spare6), + field_eBit(par_eBit), + field_numOfParameters(par_numOfParameters), + field_parameterList(par_parameterList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* QoS__Flow::get_descriptor() const { return &QoS__Flow_descr_; } +const TTCN_Typedescriptor_t* QoS__Flow::fld_descriptors[] = { &CommonDefs::B2__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B6__Type_descr_, &QoS__Flow_parameterList_descr_ }; +const TTCN_Typedescriptor_t* QoS__Flow::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* QoS__Flow::fld_names[] = { "spare2", "qfi", "operationCode", "spare6", "eBit", "numOfParameters", "parameterList" }; +const char* QoS__Flow::fld_name(int p_index) const { return fld_names[p_index]; } + +const int QoS__Flow::optional_indexes[] = { 6, -1 }; +const int* QoS__Flow::get_optional_indexes() const { return optional_indexes; } + +const int QoS__Flow::optional_indexes_asn[] = { 6, -1 }; +const int* QoS__Flow::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void QoS__Flow_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new QoS__Flow_parameterList_template(ANY_OR_OMIT) : new QoS__Flow_parameterList_template; +} +} + +QoS__Flow_template::QoS__Flow_template(QoS__Flow_template* p_precondition, QoS__Flow_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoS__Flow_template::QoS__Flow_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoS__Flow_template::~QoS__Flow_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoS__Flow_template::match_dynamic(const Base_Type* match_value) const +{ +const QoS__Flow* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +QoS__Flow_template& QoS__Flow_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoS__Flow_template& QoS__Flow_template::operator=(const QoS__Flow& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoS__Flow_template& QoS__Flow_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoS__Flow_template& QoS__Flow_template::operator=(const QoS__Flow_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoS__Flow QoS__Flow_template::valueof() const +{ +QoS__Flow ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& QoS__Flow_template::spare2() { return *(static_cast(get_at(0))); } +const BITSTRING_template& QoS__Flow_template::spare2() const { return *(static_cast(get_at(0))); } +BITSTRING_template& QoS__Flow_template::qfi() { return *(static_cast(get_at(1))); } +const BITSTRING_template& QoS__Flow_template::qfi() const { return *(static_cast(get_at(1))); } +BITSTRING_template& QoS__Flow_template::operationCode() { return *(static_cast(get_at(2))); } +const BITSTRING_template& QoS__Flow_template::operationCode() const { return *(static_cast(get_at(2))); } +BITSTRING_template& QoS__Flow_template::spare6() { return *(static_cast(get_at(3))); } +const BITSTRING_template& QoS__Flow_template::spare6() const { return *(static_cast(get_at(3))); } +BITSTRING_template& QoS__Flow_template::eBit() { return *(static_cast(get_at(4))); } +const BITSTRING_template& QoS__Flow_template::eBit() const { return *(static_cast(get_at(4))); } +BITSTRING_template& QoS__Flow_template::numOfParameters() { return *(static_cast(get_at(5))); } +const BITSTRING_template& QoS__Flow_template::numOfParameters() const { return *(static_cast(get_at(5))); } +QoS__Flow_parameterList_template& QoS__Flow_template::parameterList() { return *(static_cast(get_at(6))); } +const QoS__Flow_parameterList_template& QoS__Flow_template::parameterList() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* QoS__Flow_template::get_descriptor() const { return &QoS__Flow_descr_; } +const char* QoS__Flow_template::fld_name(int p_index) const { return QoS__Flow::fld_names[p_index]; } + +const NAS__CommonTypeDefs::QoSParameters QoS__Flow_parameterList::UNBOUND_ELEM; +NAS__CommonTypeDefs::QoSParameters& QoS__Flow_parameterList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NAS__CommonTypeDefs::QoSParameters& QoS__Flow_parameterList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NAS__CommonTypeDefs::QoSParameters& QoS__Flow_parameterList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NAS__CommonTypeDefs::QoSParameters& QoS__Flow_parameterList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoS__Flow_parameterList QoS__Flow_parameterList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +QoS__Flow_parameterList QoS__Flow_parameterList::operator<<=(const INTEGER& rotate_count) const +{ +QoS__Flow_parameterList rec_of; +return *((QoS__Flow_parameterList*)rotl(rotate_count, &rec_of)); +} + +QoS__Flow_parameterList QoS__Flow_parameterList::operator>>=(const INTEGER& rotate_count) const +{ +QoS__Flow_parameterList rec_of; +return *((QoS__Flow_parameterList*)rotr(rotate_count, &rec_of)); +} + +QoS__Flow_parameterList QoS__Flow_parameterList::operator>>=(int rotate_count) const +{ +QoS__Flow_parameterList rec_of; +return *((QoS__Flow_parameterList*)rotr(rotate_count, &rec_of)); +} + +QoS__Flow_parameterList QoS__Flow_parameterList::operator+(const QoS__Flow_parameterList& other_value) const +{ +QoS__Flow_parameterList rec_of; +return *((QoS__Flow_parameterList*)concat(&other_value, &rec_of)); +} + +QoS__Flow_parameterList QoS__Flow_parameterList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const QoS__Flow_parameterList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.QoS_Flow.parameterList concatenation."); +} + +QoS__Flow_parameterList QoS__Flow_parameterList::operator+(null_type) const +{ +return *this; +} + +QoS__Flow_parameterList QoS__Flow_parameterList::substr(int index, int returncount) const +{ +QoS__Flow_parameterList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoS__Flow_parameterList QoS__Flow_parameterList::replace(int index, int len, const QoS__Flow_parameterList& repl) const +{ +QoS__Flow_parameterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoS__Flow_parameterList QoS__Flow_parameterList::replace(int index, int len, const QoS__Flow_parameterList_template& repl) const +{ +QoS__Flow_parameterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* QoS__Flow_parameterList::create_elem() const { return new NAS__CommonTypeDefs::QoSParameters; } +const Base_Type* QoS__Flow_parameterList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* QoS__Flow_parameterList::get_descriptor() const { return &QoS__Flow_parameterList_descr_; } +QoS__Flow_parameterList_template::QoS__Flow_parameterList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +QoS__Flow_parameterList_template::QoS__Flow_parameterList_template(QoS__Flow_parameterList_template* p_precondition, QoS__Flow_parameterList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoS__Flow_parameterList_template::QoS__Flow_parameterList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoS__Flow_parameterList_template::~QoS__Flow_parameterList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoS__Flow_parameterList_template::match_dynamic(const Base_Type* match_value) const +{ +const QoS__Flow_parameterList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +QoS__Flow_parameterList_template& QoS__Flow_parameterList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoS__Flow_parameterList_template& QoS__Flow_parameterList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +QoS__Flow_parameterList_template& QoS__Flow_parameterList_template::operator=(const QoS__Flow_parameterList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoS__Flow_parameterList_template& QoS__Flow_parameterList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoS__Flow_parameterList_template& QoS__Flow_parameterList_template::operator=(const QoS__Flow_parameterList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoS__Flow_parameterList_template QoS__Flow_parameterList_template::operator+(const QoS__Flow_parameterList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return QoS__Flow_parameterList_template(ANY_VALUE); +} +QoS__Flow_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoS__Flow_parameterList_template QoS__Flow_parameterList_template::operator+(const QoS__Flow_parameterList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +QoS__Flow_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoS__Flow_parameterList_template QoS__Flow_parameterList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return QoS__Flow_parameterList_template(ANY_VALUE); +} +QoS__Flow_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +QoS__Flow_parameterList_template QoS__Flow_parameterList_template::operator+(null_type) const +{ +return *this; +} + +NAS__CommonTypeDefs::QoSParameters_template& QoS__Flow_parameterList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NAS__CommonTypeDefs::QoSParameters_template& QoS__Flow_parameterList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NAS__CommonTypeDefs::QoSParameters_template& QoS__Flow_parameterList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NAS__CommonTypeDefs::QoSParameters_template& QoS__Flow_parameterList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoS__Flow_parameterList QoS__Flow_parameterList_template::valueof() const +{ +QoS__Flow_parameterList ret_val; +valueofv(&ret_val); +return ret_val; +} + +QoS__Flow_parameterList QoS__Flow_parameterList_template::substr(int index, int returncount) const +{ +QoS__Flow_parameterList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoS__Flow_parameterList QoS__Flow_parameterList_template::replace(int index, int len, const QoS__Flow_parameterList_template& repl) const +{ +QoS__Flow_parameterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoS__Flow_parameterList QoS__Flow_parameterList_template::replace(int index, int len, const QoS__Flow_parameterList& repl) const +{ +QoS__Flow_parameterList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* QoS__Flow_parameterList_template::create_elem() const { return new NAS__CommonTypeDefs::QoSParameters_template; } +const TTCN_Typedescriptor_t* QoS__Flow_parameterList_template::get_descriptor() const { return &QoS__Flow_parameterList_descr_; } +void QoSFlowDescr::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_listofFlows; } + +QoSFlowDescr::QoSFlowDescr() : Record_Type() { init_vec(); } + +QoSFlowDescr::QoSFlowDescr(const QoSFlowDescr& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_listofFlows.is_bound() ) + field_listofFlows = other_value.field_listofFlows; +init_vec(); +} + +QoSFlowDescr::QoSFlowDescr(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const QoSFlowDescr_listofFlows& par_listofFlows) : field_iei(par_iei), + field_iel(par_iel), + field_listofFlows(par_listofFlows) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* QoSFlowDescr::get_descriptor() const { return &QoSFlowDescr_descr_; } +const TTCN_Typedescriptor_t* QoSFlowDescr::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &QoSFlowDescr_listofFlows_descr_ }; +const TTCN_Typedescriptor_t* QoSFlowDescr::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* QoSFlowDescr::fld_names[] = { "iei", "iel", "listofFlows" }; +const char* QoSFlowDescr::fld_name(int p_index) const { return fld_names[p_index]; } + +void QoSFlowDescr_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new QoSFlowDescr_listofFlows_template(ANY_VALUE) : new QoSFlowDescr_listofFlows_template; +} +} + +QoSFlowDescr_template::QoSFlowDescr_template(QoSFlowDescr_template* p_precondition, QoSFlowDescr_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoSFlowDescr_template::QoSFlowDescr_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoSFlowDescr_template::~QoSFlowDescr_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoSFlowDescr_template::match_dynamic(const Base_Type* match_value) const +{ +const QoSFlowDescr* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +QoSFlowDescr_template& QoSFlowDescr_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoSFlowDescr_template& QoSFlowDescr_template::operator=(const QoSFlowDescr& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoSFlowDescr_template& QoSFlowDescr_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoSFlowDescr_template& QoSFlowDescr_template::operator=(const QoSFlowDescr_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoSFlowDescr QoSFlowDescr_template::valueof() const +{ +QoSFlowDescr ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& QoSFlowDescr_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& QoSFlowDescr_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& QoSFlowDescr_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& QoSFlowDescr_template::iel() const { return *(static_cast(get_at(1))); } +QoSFlowDescr_listofFlows_template& QoSFlowDescr_template::listofFlows() { return *(static_cast(get_at(2))); } +const QoSFlowDescr_listofFlows_template& QoSFlowDescr_template::listofFlows() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* QoSFlowDescr_template::get_descriptor() const { return &QoSFlowDescr_descr_; } +const char* QoSFlowDescr_template::fld_name(int p_index) const { return QoSFlowDescr::fld_names[p_index]; } +void NGSM__NetworkFeatureSupport::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spareBits; fld_vec[3]=&field_ept__S1; fld_vec[4]=&field_spare; } + +NGSM__NetworkFeatureSupport::NGSM__NetworkFeatureSupport() : Record_Type() { init_vec(); } + +NGSM__NetworkFeatureSupport::NGSM__NetworkFeatureSupport(const NGSM__NetworkFeatureSupport& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_ept__S1.is_bound() ) + field_ept__S1 = other_value.field_ept__S1; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +init_vec(); +} + +NGSM__NetworkFeatureSupport::NGSM__NetworkFeatureSupport(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_ept__S1, + const OCTETSTRING& par_spare) : field_iei(par_iei), + field_iel(par_iel), + field_spareBits(par_spareBits), + field_ept__S1(par_ept__S1), + field_spare(par_spare) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NGSM__NetworkFeatureSupport::get_descriptor() const { return &NGSM__NetworkFeatureSupport_descr_; } +const TTCN_Typedescriptor_t* NGSM__NetworkFeatureSupport::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B7__Type_descr_, &CommonDefs::B1__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* NGSM__NetworkFeatureSupport::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NGSM__NetworkFeatureSupport::fld_names[] = { "iei", "iel", "spareBits", "ept_S1", "spare" }; +const char* NGSM__NetworkFeatureSupport::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NGSM__NetworkFeatureSupport::optional_indexes[] = { 0, 1, -1 }; +const int* NGSM__NetworkFeatureSupport::get_optional_indexes() const { return optional_indexes; } + +const int NGSM__NetworkFeatureSupport::optional_indexes_asn[] = { 0, 1, -1 }; +const int* NGSM__NetworkFeatureSupport::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NGSM__NetworkFeatureSupport_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NGSM__NetworkFeatureSupport_template::NGSM__NetworkFeatureSupport_template(NGSM__NetworkFeatureSupport_template* p_precondition, NGSM__NetworkFeatureSupport_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NGSM__NetworkFeatureSupport_template::NGSM__NetworkFeatureSupport_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NGSM__NetworkFeatureSupport_template::~NGSM__NetworkFeatureSupport_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NGSM__NetworkFeatureSupport_template::match_dynamic(const Base_Type* match_value) const +{ +const NGSM__NetworkFeatureSupport* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NGSM__NetworkFeatureSupport_template& NGSM__NetworkFeatureSupport_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NGSM__NetworkFeatureSupport_template& NGSM__NetworkFeatureSupport_template::operator=(const NGSM__NetworkFeatureSupport& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NGSM__NetworkFeatureSupport_template& NGSM__NetworkFeatureSupport_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NGSM__NetworkFeatureSupport_template& NGSM__NetworkFeatureSupport_template::operator=(const NGSM__NetworkFeatureSupport_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NGSM__NetworkFeatureSupport NGSM__NetworkFeatureSupport_template::valueof() const +{ +NGSM__NetworkFeatureSupport ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NGSM__NetworkFeatureSupport_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NGSM__NetworkFeatureSupport_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NGSM__NetworkFeatureSupport_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NGSM__NetworkFeatureSupport_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NGSM__NetworkFeatureSupport_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NGSM__NetworkFeatureSupport_template::spareBits() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NGSM__NetworkFeatureSupport_template::ept__S1() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NGSM__NetworkFeatureSupport_template::ept__S1() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& NGSM__NetworkFeatureSupport_template::spare() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& NGSM__NetworkFeatureSupport_template::spare() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NGSM__NetworkFeatureSupport_template::get_descriptor() const { return &NGSM__NetworkFeatureSupport_descr_; } +const char* NGSM__NetworkFeatureSupport_template::fld_name(int p_index) const { return NGSM__NetworkFeatureSupport::fld_names[p_index]; } +void ATSSSContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_contents; } + +ATSSSContainer::ATSSSContainer() : Record_Type() { init_vec(); } + +ATSSSContainer::ATSSSContainer(const ATSSSContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_contents.is_bound() ) + field_contents = other_value.field_contents; +init_vec(); +} + +ATSSSContainer::ATSSSContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_contents) : field_iei(par_iei), + field_iel(par_iel), + field_contents(par_contents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ATSSSContainer::get_descriptor() const { return &ATSSSContainer_descr_; } +const TTCN_Typedescriptor_t* ATSSSContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* ATSSSContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ATSSSContainer::fld_names[] = { "iei", "iel", "contents" }; +const char* ATSSSContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ATSSSContainer::optional_indexes[] = { 0, 1, -1 }; +const int* ATSSSContainer::get_optional_indexes() const { return optional_indexes; } + +const int ATSSSContainer::optional_indexes_asn[] = { 0, 1, -1 }; +const int* ATSSSContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ATSSSContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +ATSSSContainer_template::ATSSSContainer_template(ATSSSContainer_template* p_precondition, ATSSSContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ATSSSContainer_template::ATSSSContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ATSSSContainer_template::~ATSSSContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ATSSSContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const ATSSSContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ATSSSContainer_template& ATSSSContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ATSSSContainer_template& ATSSSContainer_template::operator=(const ATSSSContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ATSSSContainer_template& ATSSSContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ATSSSContainer_template& ATSSSContainer_template::operator=(const ATSSSContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ATSSSContainer ATSSSContainer_template::valueof() const +{ +ATSSSContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ATSSSContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ATSSSContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ATSSSContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ATSSSContainer_template::iel() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& ATSSSContainer_template::contents() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& ATSSSContainer_template::contents() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ATSSSContainer_template::get_descriptor() const { return &ATSSSContainer_descr_; } +const char* ATSSSContainer_template::fld_name(int p_index) const { return ATSSSContainer::fld_names[p_index]; } + +const ReceivedMBSInfo ReceivedMBSContainer_info::UNBOUND_ELEM; +ReceivedMBSInfo& ReceivedMBSContainer_info::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ReceivedMBSInfo& ReceivedMBSContainer_info::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ReceivedMBSInfo& ReceivedMBSContainer_info::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ReceivedMBSInfo& ReceivedMBSContainer_info::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ReceivedMBSContainer_info ReceivedMBSContainer_info::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info::operator<<=(const INTEGER& rotate_count) const +{ +ReceivedMBSContainer_info rec_of; +return *((ReceivedMBSContainer_info*)rotl(rotate_count, &rec_of)); +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info::operator>>=(const INTEGER& rotate_count) const +{ +ReceivedMBSContainer_info rec_of; +return *((ReceivedMBSContainer_info*)rotr(rotate_count, &rec_of)); +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info::operator>>=(int rotate_count) const +{ +ReceivedMBSContainer_info rec_of; +return *((ReceivedMBSContainer_info*)rotr(rotate_count, &rec_of)); +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info::operator+(const ReceivedMBSContainer_info& other_value) const +{ +ReceivedMBSContainer_info rec_of; +return *((ReceivedMBSContainer_info*)concat(&other_value, &rec_of)); +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const ReceivedMBSContainer_info&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.ReceivedMBSContainer.info concatenation."); +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info::operator+(null_type) const +{ +return *this; +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info::substr(int index, int returncount) const +{ +ReceivedMBSContainer_info rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info::replace(int index, int len, const ReceivedMBSContainer_info& repl) const +{ +ReceivedMBSContainer_info rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info::replace(int index, int len, const ReceivedMBSContainer_info_template& repl) const +{ +ReceivedMBSContainer_info rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* ReceivedMBSContainer_info::create_elem() const { return new ReceivedMBSInfo; } +const Base_Type* ReceivedMBSContainer_info::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* ReceivedMBSContainer_info::get_descriptor() const { return &ReceivedMBSContainer_info_descr_; } +ReceivedMBSContainer_info_template::ReceivedMBSContainer_info_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +ReceivedMBSContainer_info_template::ReceivedMBSContainer_info_template(ReceivedMBSContainer_info_template* p_precondition, ReceivedMBSContainer_info_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ReceivedMBSContainer_info_template::ReceivedMBSContainer_info_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ReceivedMBSContainer_info_template::~ReceivedMBSContainer_info_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ReceivedMBSContainer_info_template::match_dynamic(const Base_Type* match_value) const +{ +const ReceivedMBSContainer_info* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +ReceivedMBSContainer_info_template& ReceivedMBSContainer_info_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ReceivedMBSContainer_info_template& ReceivedMBSContainer_info_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +ReceivedMBSContainer_info_template& ReceivedMBSContainer_info_template::operator=(const ReceivedMBSContainer_info& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ReceivedMBSContainer_info_template& ReceivedMBSContainer_info_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ReceivedMBSContainer_info_template& ReceivedMBSContainer_info_template::operator=(const ReceivedMBSContainer_info_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ReceivedMBSContainer_info_template ReceivedMBSContainer_info_template::operator+(const ReceivedMBSContainer_info_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return ReceivedMBSContainer_info_template(ANY_VALUE); +} +ReceivedMBSContainer_info_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ReceivedMBSContainer_info_template ReceivedMBSContainer_info_template::operator+(const ReceivedMBSContainer_info& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +ReceivedMBSContainer_info_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +ReceivedMBSContainer_info_template ReceivedMBSContainer_info_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return ReceivedMBSContainer_info_template(ANY_VALUE); +} +ReceivedMBSContainer_info_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +ReceivedMBSContainer_info_template ReceivedMBSContainer_info_template::operator+(null_type) const +{ +return *this; +} + +ReceivedMBSInfo_template& ReceivedMBSContainer_info_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +ReceivedMBSInfo_template& ReceivedMBSContainer_info_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const ReceivedMBSInfo_template& ReceivedMBSContainer_info_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const ReceivedMBSInfo_template& ReceivedMBSContainer_info_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +ReceivedMBSContainer_info ReceivedMBSContainer_info_template::valueof() const +{ +ReceivedMBSContainer_info ret_val; +valueofv(&ret_val); +return ret_val; +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info_template::substr(int index, int returncount) const +{ +ReceivedMBSContainer_info rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info_template::replace(int index, int len, const ReceivedMBSContainer_info_template& repl) const +{ +ReceivedMBSContainer_info rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +ReceivedMBSContainer_info ReceivedMBSContainer_info_template::replace(int index, int len, const ReceivedMBSContainer_info& repl) const +{ +ReceivedMBSContainer_info rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* ReceivedMBSContainer_info_template::create_elem() const { return new ReceivedMBSInfo_template; } +const TTCN_Typedescriptor_t* ReceivedMBSContainer_info_template::get_descriptor() const { return &ReceivedMBSContainer_info_descr_; } +void TMGI__LV::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_serviceID; fld_vec[2]=&field_plmn; } + +TMGI__LV::TMGI__LV() : Record_Type() { init_vec(); } + +TMGI__LV::TMGI__LV(const TMGI__LV& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_serviceID.is_bound() ) + field_serviceID = other_value.field_serviceID; +if (other_value.field_plmn.is_bound() ) + field_plmn = other_value.field_plmn; +init_vec(); +} + +TMGI__LV::TMGI__LV(const OCTETSTRING& par_iel, + const OCTETSTRING& par_serviceID, + const OPTIONAL& par_plmn) : field_iel(par_iel), + field_serviceID(par_serviceID), + field_plmn(par_plmn) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* TMGI__LV::get_descriptor() const { return &TMGI__LV_descr_; } +const TTCN_Typedescriptor_t* TMGI__LV::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::O3__Type_descr_, &NAS__CommonTypeDefs::NAS__PlmnId_descr_ }; +const TTCN_Typedescriptor_t* TMGI__LV::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* TMGI__LV::fld_names[] = { "iel", "serviceID", "plmn" }; +const char* TMGI__LV::fld_name(int p_index) const { return fld_names[p_index]; } + +const int TMGI__LV::optional_indexes[] = { 2, -1 }; +const int* TMGI__LV::get_optional_indexes() const { return optional_indexes; } + +const int TMGI__LV::optional_indexes_asn[] = { 2, -1 }; +const int* TMGI__LV::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void TMGI__LV_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +TMGI__LV_template::TMGI__LV_template(TMGI__LV_template* p_precondition, TMGI__LV_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +TMGI__LV_template::TMGI__LV_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +TMGI__LV_template::~TMGI__LV_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean TMGI__LV_template::match_dynamic(const Base_Type* match_value) const +{ +const TMGI__LV* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +TMGI__LV_template& TMGI__LV_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +TMGI__LV_template& TMGI__LV_template::operator=(const TMGI__LV& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +TMGI__LV_template& TMGI__LV_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +TMGI__LV_template& TMGI__LV_template::operator=(const TMGI__LV_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +TMGI__LV TMGI__LV_template::valueof() const +{ +TMGI__LV ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& TMGI__LV_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& TMGI__LV_template::iel() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& TMGI__LV_template::serviceID() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& TMGI__LV_template::serviceID() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& TMGI__LV_template::plmn() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& TMGI__LV_template::plmn() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* TMGI__LV_template::get_descriptor() const { return &TMGI__LV_descr_; } +const char* TMGI__LV_template::fld_name(int p_index) const { return TMGI__LV::fld_names[p_index]; } +void ReceivedMBSInfo::init_vec() { fld_vec[0]=&field_rejectCause; fld_vec[1]=&field_msai; fld_vec[2]=&field_md; fld_vec[3]=&field_spareBits; fld_vec[4]=&field_ipat; fld_vec[5]=&field_msci; fld_vec[6]=&field_mti; fld_vec[7]=&field_ipae; fld_vec[8]=&field_tmgi; fld_vec[9]=&field_sourceIPaddr; fld_vec[10]=&field_destIPaddr; fld_vec[11]=&field_serviceArea; fld_vec[12]=&field_timers; fld_vec[13]=&field_securityContainer; } + +ReceivedMBSInfo::ReceivedMBSInfo() : Record_Type() { init_vec(); } + +ReceivedMBSInfo::ReceivedMBSInfo(const ReceivedMBSInfo& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_rejectCause.is_bound() ) + field_rejectCause = other_value.field_rejectCause; +if (other_value.field_msai.is_bound() ) + field_msai = other_value.field_msai; +if (other_value.field_md.is_bound() ) + field_md = other_value.field_md; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_ipat.is_bound() ) + field_ipat = other_value.field_ipat; +if (other_value.field_msci.is_bound() ) + field_msci = other_value.field_msci; +if (other_value.field_mti.is_bound() ) + field_mti = other_value.field_mti; +if (other_value.field_ipae.is_bound() ) + field_ipae = other_value.field_ipae; +if (other_value.field_tmgi.is_bound() ) + field_tmgi = other_value.field_tmgi; +if (other_value.field_sourceIPaddr.is_bound() ) + field_sourceIPaddr = other_value.field_sourceIPaddr; +if (other_value.field_destIPaddr.is_bound() ) + field_destIPaddr = other_value.field_destIPaddr; +if (other_value.field_serviceArea.is_bound() ) + field_serviceArea = other_value.field_serviceArea; +if (other_value.field_timers.is_bound() ) + field_timers = other_value.field_timers; +if (other_value.field_securityContainer.is_bound() ) + field_securityContainer = other_value.field_securityContainer; +init_vec(); +} + +ReceivedMBSInfo::ReceivedMBSInfo(const BITSTRING& par_rejectCause, + const BITSTRING& par_msai, + const BITSTRING& par_md, + const BITSTRING& par_spareBits, + const BITSTRING& par_ipat, + const BITSTRING& par_msci, + const BITSTRING& par_mti, + const BITSTRING& par_ipae, + const TMGI__LV& par_tmgi, + const OPTIONAL& par_sourceIPaddr, + const OPTIONAL& par_destIPaddr, + const OPTIONAL& par_serviceArea, + const OPTIONAL& par_timers, + const OPTIONAL& par_securityContainer) : field_rejectCause(par_rejectCause), + field_msai(par_msai), + field_md(par_md), + field_spareBits(par_spareBits), + field_ipat(par_ipat), + field_msci(par_msci), + field_mti(par_mti), + field_ipae(par_ipae), + field_tmgi(par_tmgi), + field_sourceIPaddr(par_sourceIPaddr), + field_destIPaddr(par_destIPaddr), + field_serviceArea(par_serviceArea), + field_timers(par_timers), + field_securityContainer(par_securityContainer) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ReceivedMBSInfo::get_descriptor() const { return &ReceivedMBSInfo_descr_; } +const TTCN_Typedescriptor_t* ReceivedMBSInfo::fld_descriptors[] = { &CommonDefs::B3__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B1__Type_descr_, &TMGI__LV_descr_, &OCTETSTRING_descr_, &OCTETSTRING_descr_, &MBS__ServiceArea_descr_, &OCTETSTRING_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* ReceivedMBSInfo::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ReceivedMBSInfo::fld_names[] = { "rejectCause", "msai", "md", "spareBits", "ipat", "msci", "mti", "ipae", "tmgi", "sourceIPaddr", "destIPaddr", "serviceArea", "timers", "securityContainer" }; +const char* ReceivedMBSInfo::fld_name(int p_index) const { return fld_names[p_index]; } + +const int ReceivedMBSInfo::optional_indexes[] = { 9, 10, 11, 12, 13, -1 }; +const int* ReceivedMBSInfo::get_optional_indexes() const { return optional_indexes; } + +const int ReceivedMBSInfo::optional_indexes_asn[] = { 9, 10, 11, 12, 13, -1 }; +const int* ReceivedMBSInfo::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void ReceivedMBSInfo_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 14; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[8] = was_any ? new TMGI__LV_template(ANY_VALUE) : new TMGI__LV_template; +single_value.value_elements[9] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[10] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[11] = was_any ? new MBS__ServiceArea_template(ANY_OR_OMIT) : new MBS__ServiceArea_template; +single_value.value_elements[12] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[13] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +ReceivedMBSInfo_template::ReceivedMBSInfo_template(ReceivedMBSInfo_template* p_precondition, ReceivedMBSInfo_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ReceivedMBSInfo_template::ReceivedMBSInfo_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ReceivedMBSInfo_template::~ReceivedMBSInfo_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ReceivedMBSInfo_template::match_dynamic(const Base_Type* match_value) const +{ +const ReceivedMBSInfo* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ReceivedMBSInfo_template& ReceivedMBSInfo_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ReceivedMBSInfo_template& ReceivedMBSInfo_template::operator=(const ReceivedMBSInfo& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ReceivedMBSInfo_template& ReceivedMBSInfo_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ReceivedMBSInfo_template& ReceivedMBSInfo_template::operator=(const ReceivedMBSInfo_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ReceivedMBSInfo ReceivedMBSInfo_template::valueof() const +{ +ReceivedMBSInfo ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& ReceivedMBSInfo_template::rejectCause() { return *(static_cast(get_at(0))); } +const BITSTRING_template& ReceivedMBSInfo_template::rejectCause() const { return *(static_cast(get_at(0))); } +BITSTRING_template& ReceivedMBSInfo_template::msai() { return *(static_cast(get_at(1))); } +const BITSTRING_template& ReceivedMBSInfo_template::msai() const { return *(static_cast(get_at(1))); } +BITSTRING_template& ReceivedMBSInfo_template::md() { return *(static_cast(get_at(2))); } +const BITSTRING_template& ReceivedMBSInfo_template::md() const { return *(static_cast(get_at(2))); } +BITSTRING_template& ReceivedMBSInfo_template::spareBits() { return *(static_cast(get_at(3))); } +const BITSTRING_template& ReceivedMBSInfo_template::spareBits() const { return *(static_cast(get_at(3))); } +BITSTRING_template& ReceivedMBSInfo_template::ipat() { return *(static_cast(get_at(4))); } +const BITSTRING_template& ReceivedMBSInfo_template::ipat() const { return *(static_cast(get_at(4))); } +BITSTRING_template& ReceivedMBSInfo_template::msci() { return *(static_cast(get_at(5))); } +const BITSTRING_template& ReceivedMBSInfo_template::msci() const { return *(static_cast(get_at(5))); } +BITSTRING_template& ReceivedMBSInfo_template::mti() { return *(static_cast(get_at(6))); } +const BITSTRING_template& ReceivedMBSInfo_template::mti() const { return *(static_cast(get_at(6))); } +BITSTRING_template& ReceivedMBSInfo_template::ipae() { return *(static_cast(get_at(7))); } +const BITSTRING_template& ReceivedMBSInfo_template::ipae() const { return *(static_cast(get_at(7))); } +TMGI__LV_template& ReceivedMBSInfo_template::tmgi() { return *(static_cast(get_at(8))); } +const TMGI__LV_template& ReceivedMBSInfo_template::tmgi() const { return *(static_cast(get_at(8))); } +OCTETSTRING_template& ReceivedMBSInfo_template::sourceIPaddr() { return *(static_cast(get_at(9))); } +const OCTETSTRING_template& ReceivedMBSInfo_template::sourceIPaddr() const { return *(static_cast(get_at(9))); } +OCTETSTRING_template& ReceivedMBSInfo_template::destIPaddr() { return *(static_cast(get_at(10))); } +const OCTETSTRING_template& ReceivedMBSInfo_template::destIPaddr() const { return *(static_cast(get_at(10))); } +MBS__ServiceArea_template& ReceivedMBSInfo_template::serviceArea() { return *(static_cast(get_at(11))); } +const MBS__ServiceArea_template& ReceivedMBSInfo_template::serviceArea() const { return *(static_cast(get_at(11))); } +OCTETSTRING_template& ReceivedMBSInfo_template::timers() { return *(static_cast(get_at(12))); } +const OCTETSTRING_template& ReceivedMBSInfo_template::timers() const { return *(static_cast(get_at(12))); } +OCTETSTRING_template& ReceivedMBSInfo_template::securityContainer() { return *(static_cast(get_at(13))); } +const OCTETSTRING_template& ReceivedMBSInfo_template::securityContainer() const { return *(static_cast(get_at(13))); } +const TTCN_Typedescriptor_t* ReceivedMBSInfo_template::get_descriptor() const { return &ReceivedMBSInfo_descr_; } +const char* ReceivedMBSInfo_template::fld_name(int p_index) const { return ReceivedMBSInfo::fld_names[p_index]; } +void MBS__ServiceArea::init_vec() { fld_vec[0]=&field_taiList; fld_vec[1]=&field_nrCGIList; } + +MBS__ServiceArea::MBS__ServiceArea() : Record_Type() { init_vec(); } + +MBS__ServiceArea::MBS__ServiceArea(const MBS__ServiceArea& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_taiList.is_bound() ) + field_taiList = other_value.field_taiList; +if (other_value.field_nrCGIList.is_bound() ) + field_nrCGIList = other_value.field_nrCGIList; +init_vec(); +} + +MBS__ServiceArea::MBS__ServiceArea(const OPTIONAL& par_taiList, + const OPTIONAL& par_nrCGIList) : field_taiList(par_taiList), + field_nrCGIList(par_nrCGIList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* MBS__ServiceArea::get_descriptor() const { return &MBS__ServiceArea_descr_; } +const TTCN_Typedescriptor_t* MBS__ServiceArea::fld_descriptors[] = { &NG__TrackingAreaIdList__LV_descr_, &NR__CGI__List_descr_ }; +const TTCN_Typedescriptor_t* MBS__ServiceArea::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* MBS__ServiceArea::fld_names[] = { "taiList", "nrCGIList" }; +const char* MBS__ServiceArea::fld_name(int p_index) const { return fld_names[p_index]; } + +const int MBS__ServiceArea::optional_indexes[] = { 0, 1, -1 }; +const int* MBS__ServiceArea::get_optional_indexes() const { return optional_indexes; } + +const int MBS__ServiceArea::optional_indexes_asn[] = { 0, 1, -1 }; +const int* MBS__ServiceArea::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void MBS__ServiceArea_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NG__TrackingAreaIdList__LV_template(ANY_OR_OMIT) : new NG__TrackingAreaIdList__LV_template; +single_value.value_elements[1] = was_any ? new NR__CGI__List_template(ANY_OR_OMIT) : new NR__CGI__List_template; +} +} + +MBS__ServiceArea_template::MBS__ServiceArea_template(MBS__ServiceArea_template* p_precondition, MBS__ServiceArea_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +MBS__ServiceArea_template::MBS__ServiceArea_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +MBS__ServiceArea_template::~MBS__ServiceArea_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean MBS__ServiceArea_template::match_dynamic(const Base_Type* match_value) const +{ +const MBS__ServiceArea* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +MBS__ServiceArea_template& MBS__ServiceArea_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +MBS__ServiceArea_template& MBS__ServiceArea_template::operator=(const MBS__ServiceArea& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +MBS__ServiceArea_template& MBS__ServiceArea_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +MBS__ServiceArea_template& MBS__ServiceArea_template::operator=(const MBS__ServiceArea_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +MBS__ServiceArea MBS__ServiceArea_template::valueof() const +{ +MBS__ServiceArea ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__TrackingAreaIdList__LV_template& MBS__ServiceArea_template::taiList() { return *(static_cast(get_at(0))); } +const NG__TrackingAreaIdList__LV_template& MBS__ServiceArea_template::taiList() const { return *(static_cast(get_at(0))); } +NR__CGI__List_template& MBS__ServiceArea_template::nrCGIList() { return *(static_cast(get_at(1))); } +const NR__CGI__List_template& MBS__ServiceArea_template::nrCGIList() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* MBS__ServiceArea_template::get_descriptor() const { return &MBS__ServiceArea_descr_; } +const char* MBS__ServiceArea_template::fld_name(int p_index) const { return MBS__ServiceArea::fld_names[p_index]; } + +const NR__CGI NR__CGI__List_nrCGI::UNBOUND_ELEM; +NR__CGI& NR__CGI__List_nrCGI::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NR__CGI& NR__CGI__List_nrCGI::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NR__CGI& NR__CGI__List_nrCGI::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NR__CGI& NR__CGI__List_nrCGI::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::operator<<=(const INTEGER& rotate_count) const +{ +NR__CGI__List_nrCGI rec_of; +return *((NR__CGI__List_nrCGI*)rotl(rotate_count, &rec_of)); +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::operator>>=(const INTEGER& rotate_count) const +{ +NR__CGI__List_nrCGI rec_of; +return *((NR__CGI__List_nrCGI*)rotr(rotate_count, &rec_of)); +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::operator>>=(int rotate_count) const +{ +NR__CGI__List_nrCGI rec_of; +return *((NR__CGI__List_nrCGI*)rotr(rotate_count, &rec_of)); +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::operator+(const NR__CGI__List_nrCGI& other_value) const +{ +NR__CGI__List_nrCGI rec_of; +return *((NR__CGI__List_nrCGI*)concat(&other_value, &rec_of)); +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const NR__CGI__List_nrCGI&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.NR_CGI_List.nrCGI concatenation."); +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::operator+(null_type) const +{ +return *this; +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::substr(int index, int returncount) const +{ +NR__CGI__List_nrCGI rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::replace(int index, int len, const NR__CGI__List_nrCGI& repl) const +{ +NR__CGI__List_nrCGI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI::replace(int index, int len, const NR__CGI__List_nrCGI_template& repl) const +{ +NR__CGI__List_nrCGI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* NR__CGI__List_nrCGI::create_elem() const { return new NR__CGI; } +const Base_Type* NR__CGI__List_nrCGI::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* NR__CGI__List_nrCGI::get_descriptor() const { return &NR__CGI__List_nrCGI_descr_; } +NR__CGI__List_nrCGI_template::NR__CGI__List_nrCGI_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +NR__CGI__List_nrCGI_template::NR__CGI__List_nrCGI_template(NR__CGI__List_nrCGI_template* p_precondition, NR__CGI__List_nrCGI_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NR__CGI__List_nrCGI_template::NR__CGI__List_nrCGI_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NR__CGI__List_nrCGI_template::~NR__CGI__List_nrCGI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NR__CGI__List_nrCGI_template::match_dynamic(const Base_Type* match_value) const +{ +const NR__CGI__List_nrCGI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +NR__CGI__List_nrCGI_template& NR__CGI__List_nrCGI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__CGI__List_nrCGI_template& NR__CGI__List_nrCGI_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +NR__CGI__List_nrCGI_template& NR__CGI__List_nrCGI_template::operator=(const NR__CGI__List_nrCGI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NR__CGI__List_nrCGI_template& NR__CGI__List_nrCGI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NR__CGI__List_nrCGI_template& NR__CGI__List_nrCGI_template::operator=(const NR__CGI__List_nrCGI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NR__CGI__List_nrCGI_template NR__CGI__List_nrCGI_template::operator+(const NR__CGI__List_nrCGI_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return NR__CGI__List_nrCGI_template(ANY_VALUE); +} +NR__CGI__List_nrCGI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NR__CGI__List_nrCGI_template NR__CGI__List_nrCGI_template::operator+(const NR__CGI__List_nrCGI& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +NR__CGI__List_nrCGI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +NR__CGI__List_nrCGI_template NR__CGI__List_nrCGI_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return NR__CGI__List_nrCGI_template(ANY_VALUE); +} +NR__CGI__List_nrCGI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +NR__CGI__List_nrCGI_template NR__CGI__List_nrCGI_template::operator+(null_type) const +{ +return *this; +} + +NR__CGI_template& NR__CGI__List_nrCGI_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +NR__CGI_template& NR__CGI__List_nrCGI_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const NR__CGI_template& NR__CGI__List_nrCGI_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const NR__CGI_template& NR__CGI__List_nrCGI_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI_template::valueof() const +{ +NR__CGI__List_nrCGI ret_val; +valueofv(&ret_val); +return ret_val; +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI_template::substr(int index, int returncount) const +{ +NR__CGI__List_nrCGI rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI_template::replace(int index, int len, const NR__CGI__List_nrCGI_template& repl) const +{ +NR__CGI__List_nrCGI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +NR__CGI__List_nrCGI NR__CGI__List_nrCGI_template::replace(int index, int len, const NR__CGI__List_nrCGI& repl) const +{ +NR__CGI__List_nrCGI rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* NR__CGI__List_nrCGI_template::create_elem() const { return new NR__CGI_template; } +const TTCN_Typedescriptor_t* NR__CGI__List_nrCGI_template::get_descriptor() const { return &NR__CGI__List_nrCGI_descr_; } +void NR__CGI::init_vec() { fld_vec[0]=&field_cellId; fld_vec[1]=&field_plmn; } + +NR__CGI::NR__CGI() : Record_Type() { init_vec(); } + +NR__CGI::NR__CGI(const NR__CGI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_cellId.is_bound() ) + field_cellId = other_value.field_cellId; +if (other_value.field_plmn.is_bound() ) + field_plmn = other_value.field_plmn; +init_vec(); +} + +NR__CGI::NR__CGI(const OCTETSTRING& par_cellId, + const OCTETSTRING& par_plmn) : field_cellId(par_cellId), + field_plmn(par_plmn) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NR__CGI::get_descriptor() const { return &NR__CGI_descr_; } +const TTCN_Typedescriptor_t* NR__CGI::fld_descriptors[] = { &CommonDefs::O5__Type_descr_, &NAS__CommonTypeDefs::NAS__PlmnId_descr_ }; +const TTCN_Typedescriptor_t* NR__CGI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NR__CGI::fld_names[] = { "cellId", "plmn" }; +const char* NR__CGI::fld_name(int p_index) const { return fld_names[p_index]; } + +void NR__CGI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NR__CGI_template::NR__CGI_template(NR__CGI_template* p_precondition, NR__CGI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NR__CGI_template::NR__CGI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NR__CGI_template::~NR__CGI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NR__CGI_template::match_dynamic(const Base_Type* match_value) const +{ +const NR__CGI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NR__CGI_template& NR__CGI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__CGI_template& NR__CGI_template::operator=(const NR__CGI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NR__CGI_template& NR__CGI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NR__CGI_template& NR__CGI_template::operator=(const NR__CGI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NR__CGI NR__CGI_template::valueof() const +{ +NR__CGI ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NR__CGI_template::cellId() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NR__CGI_template::cellId() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NR__CGI_template::plmn() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NR__CGI_template::plmn() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NR__CGI_template::get_descriptor() const { return &NR__CGI_descr_; } +const char* NR__CGI_template::fld_name(int p_index) const { return NR__CGI::fld_names[p_index]; } +void NR__CGI__List::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_nrCGI; } + +NR__CGI__List::NR__CGI__List() : Record_Type() { init_vec(); } + +NR__CGI__List::NR__CGI__List(const NR__CGI__List& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_nrCGI.is_bound() ) + field_nrCGI = other_value.field_nrCGI; +init_vec(); +} + +NR__CGI__List::NR__CGI__List(const OCTETSTRING& par_iel, + const NR__CGI__List_nrCGI& par_nrCGI) : field_iel(par_iel), + field_nrCGI(par_nrCGI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NR__CGI__List::get_descriptor() const { return &NR__CGI__List_descr_; } +const TTCN_Typedescriptor_t* NR__CGI__List::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &NR__CGI__List_nrCGI_descr_ }; +const TTCN_Typedescriptor_t* NR__CGI__List::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NR__CGI__List::fld_names[] = { "iel", "nrCGI" }; +const char* NR__CGI__List::fld_name(int p_index) const { return fld_names[p_index]; } + +void NR__CGI__List_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new NR__CGI__List_nrCGI_template(ANY_VALUE) : new NR__CGI__List_nrCGI_template; +} +} + +NR__CGI__List_template::NR__CGI__List_template(NR__CGI__List_template* p_precondition, NR__CGI__List_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NR__CGI__List_template::NR__CGI__List_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NR__CGI__List_template::~NR__CGI__List_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NR__CGI__List_template::match_dynamic(const Base_Type* match_value) const +{ +const NR__CGI__List* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NR__CGI__List_template& NR__CGI__List_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__CGI__List_template& NR__CGI__List_template::operator=(const NR__CGI__List& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NR__CGI__List_template& NR__CGI__List_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NR__CGI__List_template& NR__CGI__List_template::operator=(const NR__CGI__List_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NR__CGI__List NR__CGI__List_template::valueof() const +{ +NR__CGI__List ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NR__CGI__List_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NR__CGI__List_template::iel() const { return *(static_cast(get_at(0))); } +NR__CGI__List_nrCGI_template& NR__CGI__List_template::nrCGI() { return *(static_cast(get_at(1))); } +const NR__CGI__List_nrCGI_template& NR__CGI__List_template::nrCGI() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NR__CGI__List_template::get_descriptor() const { return &NR__CGI__List_descr_; } +const char* NR__CGI__List_template::fld_name(int p_index) const { return NR__CGI__List::fld_names[p_index]; } +void ReceivedMBSContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_info; } + +ReceivedMBSContainer::ReceivedMBSContainer() : Record_Type() { init_vec(); } + +ReceivedMBSContainer::ReceivedMBSContainer(const ReceivedMBSContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_info.is_bound() ) + field_info = other_value.field_info; +init_vec(); +} + +ReceivedMBSContainer::ReceivedMBSContainer(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const ReceivedMBSContainer_info& par_info) : field_iei(par_iei), + field_iel(par_iel), + field_info(par_info) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* ReceivedMBSContainer::get_descriptor() const { return &ReceivedMBSContainer_descr_; } +const TTCN_Typedescriptor_t* ReceivedMBSContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &ReceivedMBSContainer_info_descr_ }; +const TTCN_Typedescriptor_t* ReceivedMBSContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* ReceivedMBSContainer::fld_names[] = { "iei", "iel", "info" }; +const char* ReceivedMBSContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +void ReceivedMBSContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new ReceivedMBSContainer_info_template(ANY_VALUE) : new ReceivedMBSContainer_info_template; +} +} + +ReceivedMBSContainer_template::ReceivedMBSContainer_template(ReceivedMBSContainer_template* p_precondition, ReceivedMBSContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +ReceivedMBSContainer_template::ReceivedMBSContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +ReceivedMBSContainer_template::~ReceivedMBSContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean ReceivedMBSContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const ReceivedMBSContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +ReceivedMBSContainer_template& ReceivedMBSContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +ReceivedMBSContainer_template& ReceivedMBSContainer_template::operator=(const ReceivedMBSContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +ReceivedMBSContainer_template& ReceivedMBSContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +ReceivedMBSContainer_template& ReceivedMBSContainer_template::operator=(const ReceivedMBSContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +ReceivedMBSContainer ReceivedMBSContainer_template::valueof() const +{ +ReceivedMBSContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& ReceivedMBSContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& ReceivedMBSContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& ReceivedMBSContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& ReceivedMBSContainer_template::iel() const { return *(static_cast(get_at(1))); } +ReceivedMBSContainer_info_template& ReceivedMBSContainer_template::info() { return *(static_cast(get_at(2))); } +const ReceivedMBSContainer_info_template& ReceivedMBSContainer_template::info() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* ReceivedMBSContainer_template::get_descriptor() const { return &ReceivedMBSContainer_descr_; } +const char* ReceivedMBSContainer_template::fld_name(int p_index) const { return ReceivedMBSContainer::fld_names[p_index]; } +void NG__PDU__SESSION__ESTABLISHMENT__REJECT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gsmCause; fld_vec[5]=&field_backOffTimerValue; fld_vec[6]=&field_allowedSSCMode; fld_vec[7]=&field_eapMessage; fld_vec[8]=&field_ngsmCongestionReattemptInd; fld_vec[9]=&field_extdProtocolConfigurationOptions; fld_vec[10]=&field_reattemptInd; fld_vec[11]=&field_serviceLvlAA; } + +NG__PDU__SESSION__ESTABLISHMENT__REJECT::NG__PDU__SESSION__ESTABLISHMENT__REJECT() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__ESTABLISHMENT__REJECT::NG__PDU__SESSION__ESTABLISHMENT__REJECT(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_backOffTimerValue.is_bound() ) + field_backOffTimerValue = other_value.field_backOffTimerValue; +if (other_value.field_allowedSSCMode.is_bound() ) + field_allowedSSCMode = other_value.field_allowedSSCMode; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_ngsmCongestionReattemptInd.is_bound() ) + field_ngsmCongestionReattemptInd = other_value.field_ngsmCongestionReattemptInd; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_reattemptInd.is_bound() ) + field_reattemptInd = other_value.field_reattemptInd; +if (other_value.field_serviceLvlAA.is_bound() ) + field_serviceLvlAA = other_value.field_serviceLvlAA; +init_vec(); +} + +NG__PDU__SESSION__ESTABLISHMENT__REJECT::NG__PDU__SESSION__ESTABLISHMENT__REJECT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_allowedSSCMode, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_ngsmCongestionReattemptInd, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_reattemptInd, + const OPTIONAL& par_serviceLvlAA) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_gsmCause(par_gsmCause), + field_backOffTimerValue(par_backOffTimerValue), + field_allowedSSCMode(par_allowedSSCMode), + field_eapMessage(par_eapMessage), + field_ngsmCongestionReattemptInd(par_ngsmCongestionReattemptInd), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_reattemptInd(par_reattemptInd), + field_serviceLvlAA(par_serviceLvlAA) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__REJECT::get_descriptor() const { return &NG__PDU__SESSION__ESTABLISHMENT__REJECT_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__REJECT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &AllowedSSCMode_descr_, &EAP__Message_descr_, &NGSM__CongestionReattemptInd_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ReAttemptIndicator_descr_, &ServiceLvlAAContainer_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__ESTABLISHMENT__REJECT::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "gsmCause", "backOffTimerValue", "allowedSSCMode", "eapMessage", "ngsmCongestionReattemptInd", "extdProtocolConfigurationOptions", "reattemptInd", "serviceLvlAA" }; +const char* NG__PDU__SESSION__ESTABLISHMENT__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__ESTABLISHMENT__REJECT::optional_indexes[] = { 5, 6, 7, 8, 9, 10, 11, -1 }; +const int* NG__PDU__SESSION__ESTABLISHMENT__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__ESTABLISHMENT__REJECT::optional_indexes_asn[] = { 5, 6, 7, 8, 9, 10, 11, -1 }; +const int* NG__PDU__SESSION__ESTABLISHMENT__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 12; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[6] = was_any ? new AllowedSSCMode_template(ANY_OR_OMIT) : new AllowedSSCMode_template; +single_value.value_elements[7] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +single_value.value_elements[8] = was_any ? new NGSM__CongestionReattemptInd_template(ANY_OR_OMIT) : new NGSM__CongestionReattemptInd_template; +single_value.value_elements[9] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[10] = was_any ? new NAS__CommonTypeDefs::ReAttemptIndicator_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReAttemptIndicator_template; +single_value.value_elements[11] = was_any ? new ServiceLvlAAContainer_template(ANY_OR_OMIT) : new ServiceLvlAAContainer_template; +} +} + +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(NG__PDU__SESSION__ESTABLISHMENT__REJECT_template* p_precondition, NG__PDU__SESSION__ESTABLISHMENT__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::~NG__PDU__SESSION__ESTABLISHMENT__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__ESTABLISHMENT__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::operator=(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::operator=(const NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__ESTABLISHMENT__REJECT NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::valueof() const +{ +NG__PDU__SESSION__ESTABLISHMENT__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::gsmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::gsmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::backOffTimerValue() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::backOffTimerValue() const { return *(static_cast(get_at(5))); } +AllowedSSCMode_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::allowedSSCMode() { return *(static_cast(get_at(6))); } +const AllowedSSCMode_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::allowedSSCMode() const { return *(static_cast(get_at(6))); } +EAP__Message_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::eapMessage() { return *(static_cast(get_at(7))); } +const EAP__Message_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::eapMessage() const { return *(static_cast(get_at(7))); } +NGSM__CongestionReattemptInd_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::ngsmCongestionReattemptInd() { return *(static_cast(get_at(8))); } +const NGSM__CongestionReattemptInd_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::ngsmCongestionReattemptInd() const { return *(static_cast(get_at(8))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(9))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(9))); } +NAS__CommonTypeDefs::ReAttemptIndicator_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::reattemptInd() { return *(static_cast(get_at(10))); } +const NAS__CommonTypeDefs::ReAttemptIndicator_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::reattemptInd() const { return *(static_cast(get_at(10))); } +ServiceLvlAAContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::serviceLvlAA() { return *(static_cast(get_at(11))); } +const ServiceLvlAAContainer_template& NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::serviceLvlAA() const { return *(static_cast(get_at(11))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::get_descriptor() const { return &NG__PDU__SESSION__ESTABLISHMENT__REJECT_descr_; } +const char* NG__PDU__SESSION__ESTABLISHMENT__REJECT_template::fld_name(int p_index) const { return NG__PDU__SESSION__ESTABLISHMENT__REJECT::fld_names[p_index]; } +void AllowedSSCMode::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_spare; fld_vec[2]=&field_ssc3; fld_vec[3]=&field_ssc2; fld_vec[4]=&field_ssc1; } + +AllowedSSCMode::AllowedSSCMode() : Record_Type() { init_vec(); } + +AllowedSSCMode::AllowedSSCMode(const AllowedSSCMode& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_ssc3.is_bound() ) + field_ssc3 = other_value.field_ssc3; +if (other_value.field_ssc2.is_bound() ) + field_ssc2 = other_value.field_ssc2; +if (other_value.field_ssc1.is_bound() ) + field_ssc1 = other_value.field_ssc1; +init_vec(); +} + +AllowedSSCMode::AllowedSSCMode(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_ssc3, + const BITSTRING& par_ssc2, + const BITSTRING& par_ssc1) : field_iei(par_iei), + field_spare(par_spare), + field_ssc3(par_ssc3), + field_ssc2(par_ssc2), + field_ssc1(par_ssc1) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AllowedSSCMode::get_descriptor() const { return &AllowedSSCMode_descr_; } +const TTCN_Typedescriptor_t* AllowedSSCMode::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* AllowedSSCMode::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AllowedSSCMode::fld_names[] = { "iei", "spare", "ssc3", "ssc2", "ssc1" }; +const char* AllowedSSCMode::fld_name(int p_index) const { return fld_names[p_index]; } + +const int AllowedSSCMode::optional_indexes[] = { 0, -1 }; +const int* AllowedSSCMode::get_optional_indexes() const { return optional_indexes; } + +const int AllowedSSCMode::optional_indexes_asn[] = { 0, -1 }; +const int* AllowedSSCMode::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void AllowedSSCMode_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new HEXSTRING_template(ANY_OR_OMIT) : new HEXSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AllowedSSCMode_template::AllowedSSCMode_template(AllowedSSCMode_template* p_precondition, AllowedSSCMode_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AllowedSSCMode_template::AllowedSSCMode_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AllowedSSCMode_template::~AllowedSSCMode_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AllowedSSCMode_template::match_dynamic(const Base_Type* match_value) const +{ +const AllowedSSCMode* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AllowedSSCMode_template& AllowedSSCMode_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AllowedSSCMode_template& AllowedSSCMode_template::operator=(const AllowedSSCMode& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AllowedSSCMode_template& AllowedSSCMode_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AllowedSSCMode_template& AllowedSSCMode_template::operator=(const AllowedSSCMode_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AllowedSSCMode AllowedSSCMode_template::valueof() const +{ +AllowedSSCMode ret_val; +valueofv(&ret_val); +return ret_val; +} + +HEXSTRING_template& AllowedSSCMode_template::iei() { return *(static_cast(get_at(0))); } +const HEXSTRING_template& AllowedSSCMode_template::iei() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AllowedSSCMode_template::spare() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AllowedSSCMode_template::spare() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AllowedSSCMode_template::ssc3() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AllowedSSCMode_template::ssc3() const { return *(static_cast(get_at(2))); } +BITSTRING_template& AllowedSSCMode_template::ssc2() { return *(static_cast(get_at(3))); } +const BITSTRING_template& AllowedSSCMode_template::ssc2() const { return *(static_cast(get_at(3))); } +BITSTRING_template& AllowedSSCMode_template::ssc1() { return *(static_cast(get_at(4))); } +const BITSTRING_template& AllowedSSCMode_template::ssc1() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* AllowedSSCMode_template::get_descriptor() const { return &AllowedSSCMode_descr_; } +const char* AllowedSSCMode_template::fld_name(int p_index) const { return AllowedSSCMode::fld_names[p_index]; } +void NGSM__CongestionReattemptInd::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_spareBits; fld_vec[3]=&field_catbo; fld_vec[4]=&field_abo; } + +NGSM__CongestionReattemptInd::NGSM__CongestionReattemptInd() : Record_Type() { init_vec(); } + +NGSM__CongestionReattemptInd::NGSM__CongestionReattemptInd(const NGSM__CongestionReattemptInd& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_catbo.is_bound() ) + field_catbo = other_value.field_catbo; +if (other_value.field_abo.is_bound() ) + field_abo = other_value.field_abo; +init_vec(); +} + +NGSM__CongestionReattemptInd::NGSM__CongestionReattemptInd(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_catbo, + const BITSTRING& par_abo) : field_iei(par_iei), + field_iel(par_iel), + field_spareBits(par_spareBits), + field_catbo(par_catbo), + field_abo(par_abo) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NGSM__CongestionReattemptInd::get_descriptor() const { return &NGSM__CongestionReattemptInd_descr_; } +const TTCN_Typedescriptor_t* NGSM__CongestionReattemptInd::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* NGSM__CongestionReattemptInd::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NGSM__CongestionReattemptInd::fld_names[] = { "iei", "iel", "spareBits", "catbo", "abo" }; +const char* NGSM__CongestionReattemptInd::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NGSM__CongestionReattemptInd::optional_indexes[] = { 0, 1, -1 }; +const int* NGSM__CongestionReattemptInd::get_optional_indexes() const { return optional_indexes; } + +const int NGSM__CongestionReattemptInd::optional_indexes_asn[] = { 0, 1, -1 }; +const int* NGSM__CongestionReattemptInd::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NGSM__CongestionReattemptInd_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NGSM__CongestionReattemptInd_template::NGSM__CongestionReattemptInd_template(NGSM__CongestionReattemptInd_template* p_precondition, NGSM__CongestionReattemptInd_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NGSM__CongestionReattemptInd_template::NGSM__CongestionReattemptInd_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NGSM__CongestionReattemptInd_template::~NGSM__CongestionReattemptInd_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NGSM__CongestionReattemptInd_template::match_dynamic(const Base_Type* match_value) const +{ +const NGSM__CongestionReattemptInd* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NGSM__CongestionReattemptInd_template& NGSM__CongestionReattemptInd_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NGSM__CongestionReattemptInd_template& NGSM__CongestionReattemptInd_template::operator=(const NGSM__CongestionReattemptInd& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NGSM__CongestionReattemptInd_template& NGSM__CongestionReattemptInd_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NGSM__CongestionReattemptInd_template& NGSM__CongestionReattemptInd_template::operator=(const NGSM__CongestionReattemptInd_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NGSM__CongestionReattemptInd NGSM__CongestionReattemptInd_template::valueof() const +{ +NGSM__CongestionReattemptInd ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NGSM__CongestionReattemptInd_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NGSM__CongestionReattemptInd_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NGSM__CongestionReattemptInd_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NGSM__CongestionReattemptInd_template::iel() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NGSM__CongestionReattemptInd_template::spareBits() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NGSM__CongestionReattemptInd_template::spareBits() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NGSM__CongestionReattemptInd_template::catbo() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NGSM__CongestionReattemptInd_template::catbo() const { return *(static_cast(get_at(3))); } +BITSTRING_template& NGSM__CongestionReattemptInd_template::abo() { return *(static_cast(get_at(4))); } +const BITSTRING_template& NGSM__CongestionReattemptInd_template::abo() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NGSM__CongestionReattemptInd_template::get_descriptor() const { return &NGSM__CongestionReattemptInd_descr_; } +const char* NGSM__CongestionReattemptInd_template::fld_name(int p_index) const { return NGSM__CongestionReattemptInd::fld_names[p_index]; } +void NG__PDU__SESSION__AUTHENTICATION__COMMAND::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_eapMessage; fld_vec[5]=&field_extdProtocolConfigurationOptions; } + +NG__PDU__SESSION__AUTHENTICATION__COMMAND::NG__PDU__SESSION__AUTHENTICATION__COMMAND() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__AUTHENTICATION__COMMAND::NG__PDU__SESSION__AUTHENTICATION__COMMAND(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +NG__PDU__SESSION__AUTHENTICATION__COMMAND::NG__PDU__SESSION__AUTHENTICATION__COMMAND(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const EAP__Message& par_eapMessage, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_eapMessage(par_eapMessage), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__COMMAND::get_descriptor() const { return &NG__PDU__SESSION__AUTHENTICATION__COMMAND_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__COMMAND::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EAP__Message_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__COMMAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__AUTHENTICATION__COMMAND::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "eapMessage", "extdProtocolConfigurationOptions" }; +const char* NG__PDU__SESSION__AUTHENTICATION__COMMAND::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__AUTHENTICATION__COMMAND::optional_indexes[] = { 5, -1 }; +const int* NG__PDU__SESSION__AUTHENTICATION__COMMAND::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__AUTHENTICATION__COMMAND::optional_indexes_asn[] = { 5, -1 }; +const int* NG__PDU__SESSION__AUTHENTICATION__COMMAND::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new EAP__Message_template(ANY_VALUE) : new EAP__Message_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(NG__PDU__SESSION__AUTHENTICATION__COMMAND_template* p_precondition, NG__PDU__SESSION__AUTHENTICATION__COMMAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::~NG__PDU__SESSION__AUTHENTICATION__COMMAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__AUTHENTICATION__COMMAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::operator=(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::operator=(const NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__COMMAND NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::valueof() const +{ +NG__PDU__SESSION__AUTHENTICATION__COMMAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::messageType() const { return *(static_cast(get_at(3))); } +EAP__Message_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::eapMessage() { return *(static_cast(get_at(4))); } +const EAP__Message_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::eapMessage() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::get_descriptor() const { return &NG__PDU__SESSION__AUTHENTICATION__COMMAND_descr_; } +const char* NG__PDU__SESSION__AUTHENTICATION__COMMAND_template::fld_name(int p_index) const { return NG__PDU__SESSION__AUTHENTICATION__COMMAND::fld_names[p_index]; } +void NG__PDU__SESSION__AUTHENTICATION__COMPLETE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_eapMessage; fld_vec[5]=&field_extdProtocolConfigurationOptions; } + +NG__PDU__SESSION__AUTHENTICATION__COMPLETE::NG__PDU__SESSION__AUTHENTICATION__COMPLETE() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__AUTHENTICATION__COMPLETE::NG__PDU__SESSION__AUTHENTICATION__COMPLETE(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +NG__PDU__SESSION__AUTHENTICATION__COMPLETE::NG__PDU__SESSION__AUTHENTICATION__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const EAP__Message& par_eapMessage, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_eapMessage(par_eapMessage), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__COMPLETE::get_descriptor() const { return &NG__PDU__SESSION__AUTHENTICATION__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__COMPLETE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EAP__Message_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__AUTHENTICATION__COMPLETE::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "eapMessage", "extdProtocolConfigurationOptions" }; +const char* NG__PDU__SESSION__AUTHENTICATION__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__AUTHENTICATION__COMPLETE::optional_indexes[] = { 5, -1 }; +const int* NG__PDU__SESSION__AUTHENTICATION__COMPLETE::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__AUTHENTICATION__COMPLETE::optional_indexes_asn[] = { 5, -1 }; +const int* NG__PDU__SESSION__AUTHENTICATION__COMPLETE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new EAP__Message_template(ANY_VALUE) : new EAP__Message_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template* p_precondition, NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::~NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__AUTHENTICATION__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::operator=(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::operator=(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__COMPLETE NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::valueof() const +{ +NG__PDU__SESSION__AUTHENTICATION__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::messageType() const { return *(static_cast(get_at(3))); } +EAP__Message_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::eapMessage() { return *(static_cast(get_at(4))); } +const EAP__Message_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::eapMessage() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::get_descriptor() const { return &NG__PDU__SESSION__AUTHENTICATION__COMPLETE_descr_; } +const char* NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template::fld_name(int p_index) const { return NG__PDU__SESSION__AUTHENTICATION__COMPLETE::fld_names[p_index]; } +void NG__PDU__SESSION__AUTHENTICATION__RESULT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_eapMessage; fld_vec[5]=&field_extdProtocolConfigurationOptions; } + +NG__PDU__SESSION__AUTHENTICATION__RESULT::NG__PDU__SESSION__AUTHENTICATION__RESULT() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__AUTHENTICATION__RESULT::NG__PDU__SESSION__AUTHENTICATION__RESULT(const NG__PDU__SESSION__AUTHENTICATION__RESULT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +NG__PDU__SESSION__AUTHENTICATION__RESULT::NG__PDU__SESSION__AUTHENTICATION__RESULT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_eapMessage(par_eapMessage), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__RESULT::get_descriptor() const { return &NG__PDU__SESSION__AUTHENTICATION__RESULT_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__RESULT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &EAP__Message_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__RESULT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__AUTHENTICATION__RESULT::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "eapMessage", "extdProtocolConfigurationOptions" }; +const char* NG__PDU__SESSION__AUTHENTICATION__RESULT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__AUTHENTICATION__RESULT::optional_indexes[] = { 4, 5, -1 }; +const int* NG__PDU__SESSION__AUTHENTICATION__RESULT::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__AUTHENTICATION__RESULT::optional_indexes_asn[] = { 4, 5, -1 }; +const int* NG__PDU__SESSION__AUTHENTICATION__RESULT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__AUTHENTICATION__RESULT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +NG__PDU__SESSION__AUTHENTICATION__RESULT_template::NG__PDU__SESSION__AUTHENTICATION__RESULT_template(NG__PDU__SESSION__AUTHENTICATION__RESULT_template* p_precondition, NG__PDU__SESSION__AUTHENTICATION__RESULT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__AUTHENTICATION__RESULT_template::NG__PDU__SESSION__AUTHENTICATION__RESULT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__AUTHENTICATION__RESULT_template::~NG__PDU__SESSION__AUTHENTICATION__RESULT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__AUTHENTICATION__RESULT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__AUTHENTICATION__RESULT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__AUTHENTICATION__RESULT_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__RESULT_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::operator=(const NG__PDU__SESSION__AUTHENTICATION__RESULT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__RESULT_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__RESULT_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::operator=(const NG__PDU__SESSION__AUTHENTICATION__RESULT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__AUTHENTICATION__RESULT NG__PDU__SESSION__AUTHENTICATION__RESULT_template::valueof() const +{ +NG__PDU__SESSION__AUTHENTICATION__RESULT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::messageType() const { return *(static_cast(get_at(3))); } +EAP__Message_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::eapMessage() { return *(static_cast(get_at(4))); } +const EAP__Message_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::eapMessage() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__AUTHENTICATION__RESULT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__AUTHENTICATION__RESULT_template::get_descriptor() const { return &NG__PDU__SESSION__AUTHENTICATION__RESULT_descr_; } +const char* NG__PDU__SESSION__AUTHENTICATION__RESULT_template::fld_name(int p_index) const { return NG__PDU__SESSION__AUTHENTICATION__RESULT::fld_names[p_index]; } +void NG__PDU__SESSION__MODIFICATION__REQUEST::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_smCapability; fld_vec[5]=&field_gsmCause; fld_vec[6]=&field_maxNumPacketFilters; fld_vec[7]=&field_alwaysOnPDUSessionReq; fld_vec[8]=&field_integrityProtMaxDataRate; fld_vec[9]=&field_requestedQoSRules; fld_vec[10]=&field_requestedQoSFlowDescr; fld_vec[11]=&field_mappedEPSbearerContexts; fld_vec[12]=&field_extdProtocolConfigurationOptions; fld_vec[13]=&field_portManagementInfoContainer; fld_vec[14]=&field_ipHeaderCompressionConfig; fld_vec[15]=&field_ethernetHeaderCompressConfig; fld_vec[16]=&field_requestedMBS; fld_vec[17]=&field_serviceLvlAA; } + +NG__PDU__SESSION__MODIFICATION__REQUEST::NG__PDU__SESSION__MODIFICATION__REQUEST() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__MODIFICATION__REQUEST::NG__PDU__SESSION__MODIFICATION__REQUEST(const NG__PDU__SESSION__MODIFICATION__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_smCapability.is_bound() ) + field_smCapability = other_value.field_smCapability; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_maxNumPacketFilters.is_bound() ) + field_maxNumPacketFilters = other_value.field_maxNumPacketFilters; +if (other_value.field_alwaysOnPDUSessionReq.is_bound() ) + field_alwaysOnPDUSessionReq = other_value.field_alwaysOnPDUSessionReq; +if (other_value.field_integrityProtMaxDataRate.is_bound() ) + field_integrityProtMaxDataRate = other_value.field_integrityProtMaxDataRate; +if (other_value.field_requestedQoSRules.is_bound() ) + field_requestedQoSRules = other_value.field_requestedQoSRules; +if (other_value.field_requestedQoSFlowDescr.is_bound() ) + field_requestedQoSFlowDescr = other_value.field_requestedQoSFlowDescr; +if (other_value.field_mappedEPSbearerContexts.is_bound() ) + field_mappedEPSbearerContexts = other_value.field_mappedEPSbearerContexts; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_portManagementInfoContainer.is_bound() ) + field_portManagementInfoContainer = other_value.field_portManagementInfoContainer; +if (other_value.field_ipHeaderCompressionConfig.is_bound() ) + field_ipHeaderCompressionConfig = other_value.field_ipHeaderCompressionConfig; +if (other_value.field_ethernetHeaderCompressConfig.is_bound() ) + field_ethernetHeaderCompressConfig = other_value.field_ethernetHeaderCompressConfig; +if (other_value.field_requestedMBS.is_bound() ) + field_requestedMBS = other_value.field_requestedMBS; +if (other_value.field_serviceLvlAA.is_bound() ) + field_serviceLvlAA = other_value.field_serviceLvlAA; +init_vec(); +} + +NG__PDU__SESSION__MODIFICATION__REQUEST::NG__PDU__SESSION__MODIFICATION__REQUEST(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_smCapability, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_maxNumPacketFilters, + const OPTIONAL& par_alwaysOnPDUSessionReq, + const OPTIONAL& par_integrityProtMaxDataRate, + const OPTIONAL& par_requestedQoSRules, + const OPTIONAL& par_requestedQoSFlowDescr, + const OPTIONAL& par_mappedEPSbearerContexts, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_portManagementInfoContainer, + const OPTIONAL& par_ipHeaderCompressionConfig, + const OPTIONAL& par_ethernetHeaderCompressConfig, + const OPTIONAL& par_requestedMBS, + const OPTIONAL& par_serviceLvlAA) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_smCapability(par_smCapability), + field_gsmCause(par_gsmCause), + field_maxNumPacketFilters(par_maxNumPacketFilters), + field_alwaysOnPDUSessionReq(par_alwaysOnPDUSessionReq), + field_integrityProtMaxDataRate(par_integrityProtMaxDataRate), + field_requestedQoSRules(par_requestedQoSRules), + field_requestedQoSFlowDescr(par_requestedQoSFlowDescr), + field_mappedEPSbearerContexts(par_mappedEPSbearerContexts), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_portManagementInfoContainer(par_portManagementInfoContainer), + field_ipHeaderCompressionConfig(par_ipHeaderCompressionConfig), + field_ethernetHeaderCompressConfig(par_ethernetHeaderCompressConfig), + field_requestedMBS(par_requestedMBS), + field_serviceLvlAA(par_serviceLvlAA) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__REQUEST::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__REQUEST_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__REQUEST::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NG__UE__SM__Cap_descr_, &GMM__GSM__Cause_descr_, &MaxNumPacketFilters_descr_, &AlwaysOnPDUSessionInd_descr_, &IntegrityProtMaxDataRate_descr_, &QoS__Rules_descr_, &QoSFlowDescr_descr_, &MappedEPSBearerContexts_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &PortManagementInfoContainer_descr_, &IPHeaderCompressionConfig_descr_, &EthernetHeaderCompressConfig_descr_, &RequestedMBSContainer_descr_, &ServiceLvlAAContainer_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__MODIFICATION__REQUEST::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "smCapability", "gsmCause", "maxNumPacketFilters", "alwaysOnPDUSessionReq", "integrityProtMaxDataRate", "requestedQoSRules", "requestedQoSFlowDescr", "mappedEPSbearerContexts", "extdProtocolConfigurationOptions", "portManagementInfoContainer", "ipHeaderCompressionConfig", "ethernetHeaderCompressConfig", "requestedMBS", "serviceLvlAA" }; +const char* NG__PDU__SESSION__MODIFICATION__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__MODIFICATION__REQUEST::optional_indexes[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__MODIFICATION__REQUEST::optional_indexes_asn[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__MODIFICATION__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 18; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NG__UE__SM__Cap_template(ANY_OR_OMIT) : new NG__UE__SM__Cap_template; +single_value.value_elements[5] = was_any ? new GMM__GSM__Cause_template(ANY_OR_OMIT) : new GMM__GSM__Cause_template; +single_value.value_elements[6] = was_any ? new MaxNumPacketFilters_template(ANY_OR_OMIT) : new MaxNumPacketFilters_template; +single_value.value_elements[7] = was_any ? new AlwaysOnPDUSessionInd_template(ANY_OR_OMIT) : new AlwaysOnPDUSessionInd_template; +single_value.value_elements[8] = was_any ? new IntegrityProtMaxDataRate_template(ANY_OR_OMIT) : new IntegrityProtMaxDataRate_template; +single_value.value_elements[9] = was_any ? new QoS__Rules_template(ANY_OR_OMIT) : new QoS__Rules_template; +single_value.value_elements[10] = was_any ? new QoSFlowDescr_template(ANY_OR_OMIT) : new QoSFlowDescr_template; +single_value.value_elements[11] = was_any ? new MappedEPSBearerContexts_template(ANY_OR_OMIT) : new MappedEPSBearerContexts_template; +single_value.value_elements[12] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[13] = was_any ? new PortManagementInfoContainer_template(ANY_OR_OMIT) : new PortManagementInfoContainer_template; +single_value.value_elements[14] = was_any ? new IPHeaderCompressionConfig_template(ANY_OR_OMIT) : new IPHeaderCompressionConfig_template; +single_value.value_elements[15] = was_any ? new EthernetHeaderCompressConfig_template(ANY_OR_OMIT) : new EthernetHeaderCompressConfig_template; +single_value.value_elements[16] = was_any ? new RequestedMBSContainer_template(ANY_OR_OMIT) : new RequestedMBSContainer_template; +single_value.value_elements[17] = was_any ? new ServiceLvlAAContainer_template(ANY_OR_OMIT) : new ServiceLvlAAContainer_template; +} +} + +NG__PDU__SESSION__MODIFICATION__REQUEST_template::NG__PDU__SESSION__MODIFICATION__REQUEST_template(NG__PDU__SESSION__MODIFICATION__REQUEST_template* p_precondition, NG__PDU__SESSION__MODIFICATION__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__MODIFICATION__REQUEST_template::NG__PDU__SESSION__MODIFICATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__MODIFICATION__REQUEST_template::~NG__PDU__SESSION__MODIFICATION__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__MODIFICATION__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__MODIFICATION__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__MODIFICATION__REQUEST_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__REQUEST_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::operator=(const NG__PDU__SESSION__MODIFICATION__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__REQUEST_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__REQUEST_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::operator=(const NG__PDU__SESSION__MODIFICATION__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__MODIFICATION__REQUEST NG__PDU__SESSION__MODIFICATION__REQUEST_template::valueof() const +{ +NG__PDU__SESSION__MODIFICATION__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +NG__UE__SM__Cap_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::smCapability() { return *(static_cast(get_at(4))); } +const NG__UE__SM__Cap_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::smCapability() const { return *(static_cast(get_at(4))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::gsmCause() { return *(static_cast(get_at(5))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::gsmCause() const { return *(static_cast(get_at(5))); } +MaxNumPacketFilters_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::maxNumPacketFilters() { return *(static_cast(get_at(6))); } +const MaxNumPacketFilters_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::maxNumPacketFilters() const { return *(static_cast(get_at(6))); } +AlwaysOnPDUSessionInd_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::alwaysOnPDUSessionReq() { return *(static_cast(get_at(7))); } +const AlwaysOnPDUSessionInd_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::alwaysOnPDUSessionReq() const { return *(static_cast(get_at(7))); } +IntegrityProtMaxDataRate_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::integrityProtMaxDataRate() { return *(static_cast(get_at(8))); } +const IntegrityProtMaxDataRate_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::integrityProtMaxDataRate() const { return *(static_cast(get_at(8))); } +QoS__Rules_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::requestedQoSRules() { return *(static_cast(get_at(9))); } +const QoS__Rules_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::requestedQoSRules() const { return *(static_cast(get_at(9))); } +QoSFlowDescr_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::requestedQoSFlowDescr() { return *(static_cast(get_at(10))); } +const QoSFlowDescr_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::requestedQoSFlowDescr() const { return *(static_cast(get_at(10))); } +MappedEPSBearerContexts_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::mappedEPSbearerContexts() { return *(static_cast(get_at(11))); } +const MappedEPSBearerContexts_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::mappedEPSbearerContexts() const { return *(static_cast(get_at(11))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(12))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(12))); } +PortManagementInfoContainer_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::portManagementInfoContainer() { return *(static_cast(get_at(13))); } +const PortManagementInfoContainer_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::portManagementInfoContainer() const { return *(static_cast(get_at(13))); } +IPHeaderCompressionConfig_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::ipHeaderCompressionConfig() { return *(static_cast(get_at(14))); } +const IPHeaderCompressionConfig_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::ipHeaderCompressionConfig() const { return *(static_cast(get_at(14))); } +EthernetHeaderCompressConfig_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::ethernetHeaderCompressConfig() { return *(static_cast(get_at(15))); } +const EthernetHeaderCompressConfig_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::ethernetHeaderCompressConfig() const { return *(static_cast(get_at(15))); } +RequestedMBSContainer_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::requestedMBS() { return *(static_cast(get_at(16))); } +const RequestedMBSContainer_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::requestedMBS() const { return *(static_cast(get_at(16))); } +ServiceLvlAAContainer_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::serviceLvlAA() { return *(static_cast(get_at(17))); } +const ServiceLvlAAContainer_template& NG__PDU__SESSION__MODIFICATION__REQUEST_template::serviceLvlAA() const { return *(static_cast(get_at(17))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__REQUEST_template::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__REQUEST_descr_; } +const char* NG__PDU__SESSION__MODIFICATION__REQUEST_template::fld_name(int p_index) const { return NG__PDU__SESSION__MODIFICATION__REQUEST::fld_names[p_index]; } +void NG__PDU__SESSION__MODIFICATION__REJECT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gsmCause; fld_vec[5]=&field_backOffTimerValue; fld_vec[6]=&field_ngsmCongestionReattemptInd; fld_vec[7]=&field_extdProtocolConfigurationOptions; fld_vec[8]=&field_reattemptInd; } + +NG__PDU__SESSION__MODIFICATION__REJECT::NG__PDU__SESSION__MODIFICATION__REJECT() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__MODIFICATION__REJECT::NG__PDU__SESSION__MODIFICATION__REJECT(const NG__PDU__SESSION__MODIFICATION__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_backOffTimerValue.is_bound() ) + field_backOffTimerValue = other_value.field_backOffTimerValue; +if (other_value.field_ngsmCongestionReattemptInd.is_bound() ) + field_ngsmCongestionReattemptInd = other_value.field_ngsmCongestionReattemptInd; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_reattemptInd.is_bound() ) + field_reattemptInd = other_value.field_reattemptInd; +init_vec(); +} + +NG__PDU__SESSION__MODIFICATION__REJECT::NG__PDU__SESSION__MODIFICATION__REJECT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_ngsmCongestionReattemptInd, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_reattemptInd) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_gsmCause(par_gsmCause), + field_backOffTimerValue(par_backOffTimerValue), + field_ngsmCongestionReattemptInd(par_ngsmCongestionReattemptInd), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_reattemptInd(par_reattemptInd) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__REJECT::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__REJECT_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__REJECT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &NGSM__CongestionReattemptInd_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &NAS__CommonTypeDefs::ReAttemptIndicator_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__MODIFICATION__REJECT::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "gsmCause", "backOffTimerValue", "ngsmCongestionReattemptInd", "extdProtocolConfigurationOptions", "reattemptInd" }; +const char* NG__PDU__SESSION__MODIFICATION__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__MODIFICATION__REJECT::optional_indexes[] = { 5, 6, 7, 8, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__MODIFICATION__REJECT::optional_indexes_asn[] = { 5, 6, 7, 8, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__MODIFICATION__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 9; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[6] = was_any ? new NGSM__CongestionReattemptInd_template(ANY_OR_OMIT) : new NGSM__CongestionReattemptInd_template; +single_value.value_elements[7] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::ReAttemptIndicator_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ReAttemptIndicator_template; +} +} + +NG__PDU__SESSION__MODIFICATION__REJECT_template::NG__PDU__SESSION__MODIFICATION__REJECT_template(NG__PDU__SESSION__MODIFICATION__REJECT_template* p_precondition, NG__PDU__SESSION__MODIFICATION__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__MODIFICATION__REJECT_template::NG__PDU__SESSION__MODIFICATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__MODIFICATION__REJECT_template::~NG__PDU__SESSION__MODIFICATION__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__MODIFICATION__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__MODIFICATION__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__MODIFICATION__REJECT_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__REJECT_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::operator=(const NG__PDU__SESSION__MODIFICATION__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__REJECT_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__REJECT_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::operator=(const NG__PDU__SESSION__MODIFICATION__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__MODIFICATION__REJECT NG__PDU__SESSION__MODIFICATION__REJECT_template::valueof() const +{ +NG__PDU__SESSION__MODIFICATION__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::gsmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::gsmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::backOffTimerValue() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::backOffTimerValue() const { return *(static_cast(get_at(5))); } +NGSM__CongestionReattemptInd_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::ngsmCongestionReattemptInd() { return *(static_cast(get_at(6))); } +const NGSM__CongestionReattemptInd_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::ngsmCongestionReattemptInd() const { return *(static_cast(get_at(6))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(7))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::ReAttemptIndicator_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::reattemptInd() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::ReAttemptIndicator_template& NG__PDU__SESSION__MODIFICATION__REJECT_template::reattemptInd() const { return *(static_cast(get_at(8))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__REJECT_template::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__REJECT_descr_; } +const char* NG__PDU__SESSION__MODIFICATION__REJECT_template::fld_name(int p_index) const { return NG__PDU__SESSION__MODIFICATION__REJECT::fld_names[p_index]; } +void NG__PDU__SESSION__MODIFICATION__COMMAND::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gsmCause; fld_vec[5]=&field_sessionAMBR; fld_vec[6]=&field_rqTimerValue; fld_vec[7]=&field_alwaysOnPDUSessionInd; fld_vec[8]=&field_authorizedQoSRules; fld_vec[9]=&field_mappedEPSContexts; fld_vec[10]=&field_authorizedQoSFlowDescr; fld_vec[11]=&field_extdProtocolConfigurationOptions; fld_vec[12]=&field_atsssContainer; fld_vec[13]=&field_ipHeaderCompressionConfig; fld_vec[14]=&field_portManagementInfoContainer; fld_vec[15]=&field_servingPLMNRateControl; fld_vec[16]=&field_ethernetHeaderCompressConfig; fld_vec[17]=&field_receivedMBS; fld_vec[18]=&field_serviceLvlAA; } + +NG__PDU__SESSION__MODIFICATION__COMMAND::NG__PDU__SESSION__MODIFICATION__COMMAND() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__MODIFICATION__COMMAND::NG__PDU__SESSION__MODIFICATION__COMMAND(const NG__PDU__SESSION__MODIFICATION__COMMAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_sessionAMBR.is_bound() ) + field_sessionAMBR = other_value.field_sessionAMBR; +if (other_value.field_rqTimerValue.is_bound() ) + field_rqTimerValue = other_value.field_rqTimerValue; +if (other_value.field_alwaysOnPDUSessionInd.is_bound() ) + field_alwaysOnPDUSessionInd = other_value.field_alwaysOnPDUSessionInd; +if (other_value.field_authorizedQoSRules.is_bound() ) + field_authorizedQoSRules = other_value.field_authorizedQoSRules; +if (other_value.field_mappedEPSContexts.is_bound() ) + field_mappedEPSContexts = other_value.field_mappedEPSContexts; +if (other_value.field_authorizedQoSFlowDescr.is_bound() ) + field_authorizedQoSFlowDescr = other_value.field_authorizedQoSFlowDescr; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_atsssContainer.is_bound() ) + field_atsssContainer = other_value.field_atsssContainer; +if (other_value.field_ipHeaderCompressionConfig.is_bound() ) + field_ipHeaderCompressionConfig = other_value.field_ipHeaderCompressionConfig; +if (other_value.field_portManagementInfoContainer.is_bound() ) + field_portManagementInfoContainer = other_value.field_portManagementInfoContainer; +if (other_value.field_servingPLMNRateControl.is_bound() ) + field_servingPLMNRateControl = other_value.field_servingPLMNRateControl; +if (other_value.field_ethernetHeaderCompressConfig.is_bound() ) + field_ethernetHeaderCompressConfig = other_value.field_ethernetHeaderCompressConfig; +if (other_value.field_receivedMBS.is_bound() ) + field_receivedMBS = other_value.field_receivedMBS; +if (other_value.field_serviceLvlAA.is_bound() ) + field_serviceLvlAA = other_value.field_serviceLvlAA; +init_vec(); +} + +NG__PDU__SESSION__MODIFICATION__COMMAND::NG__PDU__SESSION__MODIFICATION__COMMAND(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_sessionAMBR, + const OPTIONAL& par_rqTimerValue, + const OPTIONAL& par_alwaysOnPDUSessionInd, + const OPTIONAL& par_authorizedQoSRules, + const OPTIONAL& par_mappedEPSContexts, + const OPTIONAL& par_authorizedQoSFlowDescr, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_atsssContainer, + const OPTIONAL& par_ipHeaderCompressionConfig, + const OPTIONAL& par_portManagementInfoContainer, + const OPTIONAL& par_servingPLMNRateControl, + const OPTIONAL& par_ethernetHeaderCompressConfig, + const OPTIONAL& par_receivedMBS, + const OPTIONAL& par_serviceLvlAA) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_gsmCause(par_gsmCause), + field_sessionAMBR(par_sessionAMBR), + field_rqTimerValue(par_rqTimerValue), + field_alwaysOnPDUSessionInd(par_alwaysOnPDUSessionInd), + field_authorizedQoSRules(par_authorizedQoSRules), + field_mappedEPSContexts(par_mappedEPSContexts), + field_authorizedQoSFlowDescr(par_authorizedQoSFlowDescr), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_atsssContainer(par_atsssContainer), + field_ipHeaderCompressionConfig(par_ipHeaderCompressionConfig), + field_portManagementInfoContainer(par_portManagementInfoContainer), + field_servingPLMNRateControl(par_servingPLMNRateControl), + field_ethernetHeaderCompressConfig(par_ethernetHeaderCompressConfig), + field_receivedMBS(par_receivedMBS), + field_serviceLvlAA(par_serviceLvlAA) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMMAND::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__COMMAND_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMMAND::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &Session__AMBR_descr_, &NAS__CommonTypeDefs::GPRS__Timer_descr_, &AlwaysOnPDUSessionInd_descr_, &QoS__Rules_descr_, &MappedEPSBearerContexts_descr_, &QoSFlowDescr_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &ATSSSContainer_descr_, &IPHeaderCompressionConfig_descr_, &PortManagementInfoContainer_descr_, &NAS__CommonTypeDefs::ServingPLMNRateControl_descr_, &EthernetHeaderCompressConfig_descr_, &ReceivedMBSContainer_descr_, &ServiceLvlAAContainer_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMMAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__MODIFICATION__COMMAND::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "gsmCause", "sessionAMBR", "rqTimerValue", "alwaysOnPDUSessionInd", "authorizedQoSRules", "mappedEPSContexts", "authorizedQoSFlowDescr", "extdProtocolConfigurationOptions", "atsssContainer", "ipHeaderCompressionConfig", "portManagementInfoContainer", "servingPLMNRateControl", "ethernetHeaderCompressConfig", "receivedMBS", "serviceLvlAA" }; +const char* NG__PDU__SESSION__MODIFICATION__COMMAND::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__MODIFICATION__COMMAND::optional_indexes[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__COMMAND::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__MODIFICATION__COMMAND::optional_indexes_asn[] = { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__COMMAND::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__MODIFICATION__COMMAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 19; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_OR_OMIT) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new Session__AMBR_template(ANY_OR_OMIT) : new Session__AMBR_template; +single_value.value_elements[6] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer_template; +single_value.value_elements[7] = was_any ? new AlwaysOnPDUSessionInd_template(ANY_OR_OMIT) : new AlwaysOnPDUSessionInd_template; +single_value.value_elements[8] = was_any ? new QoS__Rules_template(ANY_OR_OMIT) : new QoS__Rules_template; +single_value.value_elements[9] = was_any ? new MappedEPSBearerContexts_template(ANY_OR_OMIT) : new MappedEPSBearerContexts_template; +single_value.value_elements[10] = was_any ? new QoSFlowDescr_template(ANY_OR_OMIT) : new QoSFlowDescr_template; +single_value.value_elements[11] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[12] = was_any ? new ATSSSContainer_template(ANY_OR_OMIT) : new ATSSSContainer_template; +single_value.value_elements[13] = was_any ? new IPHeaderCompressionConfig_template(ANY_OR_OMIT) : new IPHeaderCompressionConfig_template; +single_value.value_elements[14] = was_any ? new PortManagementInfoContainer_template(ANY_OR_OMIT) : new PortManagementInfoContainer_template; +single_value.value_elements[15] = was_any ? new NAS__CommonTypeDefs::ServingPLMNRateControl_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ServingPLMNRateControl_template; +single_value.value_elements[16] = was_any ? new EthernetHeaderCompressConfig_template(ANY_OR_OMIT) : new EthernetHeaderCompressConfig_template; +single_value.value_elements[17] = was_any ? new ReceivedMBSContainer_template(ANY_OR_OMIT) : new ReceivedMBSContainer_template; +single_value.value_elements[18] = was_any ? new ServiceLvlAAContainer_template(ANY_OR_OMIT) : new ServiceLvlAAContainer_template; +} +} + +NG__PDU__SESSION__MODIFICATION__COMMAND_template::NG__PDU__SESSION__MODIFICATION__COMMAND_template(NG__PDU__SESSION__MODIFICATION__COMMAND_template* p_precondition, NG__PDU__SESSION__MODIFICATION__COMMAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__MODIFICATION__COMMAND_template::NG__PDU__SESSION__MODIFICATION__COMMAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__MODIFICATION__COMMAND_template::~NG__PDU__SESSION__MODIFICATION__COMMAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__MODIFICATION__COMMAND_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__MODIFICATION__COMMAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__MODIFICATION__COMMAND_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMMAND_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMMAND_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMMAND_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMMAND NG__PDU__SESSION__MODIFICATION__COMMAND_template::valueof() const +{ +NG__PDU__SESSION__MODIFICATION__COMMAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::gsmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::gsmCause() const { return *(static_cast(get_at(4))); } +Session__AMBR_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::sessionAMBR() { return *(static_cast(get_at(5))); } +const Session__AMBR_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::sessionAMBR() const { return *(static_cast(get_at(5))); } +NAS__CommonTypeDefs::GPRS__Timer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::rqTimerValue() { return *(static_cast(get_at(6))); } +const NAS__CommonTypeDefs::GPRS__Timer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::rqTimerValue() const { return *(static_cast(get_at(6))); } +AlwaysOnPDUSessionInd_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::alwaysOnPDUSessionInd() { return *(static_cast(get_at(7))); } +const AlwaysOnPDUSessionInd_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::alwaysOnPDUSessionInd() const { return *(static_cast(get_at(7))); } +QoS__Rules_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::authorizedQoSRules() { return *(static_cast(get_at(8))); } +const QoS__Rules_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::authorizedQoSRules() const { return *(static_cast(get_at(8))); } +MappedEPSBearerContexts_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::mappedEPSContexts() { return *(static_cast(get_at(9))); } +const MappedEPSBearerContexts_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::mappedEPSContexts() const { return *(static_cast(get_at(9))); } +QoSFlowDescr_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::authorizedQoSFlowDescr() { return *(static_cast(get_at(10))); } +const QoSFlowDescr_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::authorizedQoSFlowDescr() const { return *(static_cast(get_at(10))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(11))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(11))); } +ATSSSContainer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::atsssContainer() { return *(static_cast(get_at(12))); } +const ATSSSContainer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::atsssContainer() const { return *(static_cast(get_at(12))); } +IPHeaderCompressionConfig_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::ipHeaderCompressionConfig() { return *(static_cast(get_at(13))); } +const IPHeaderCompressionConfig_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::ipHeaderCompressionConfig() const { return *(static_cast(get_at(13))); } +PortManagementInfoContainer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::portManagementInfoContainer() { return *(static_cast(get_at(14))); } +const PortManagementInfoContainer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::portManagementInfoContainer() const { return *(static_cast(get_at(14))); } +NAS__CommonTypeDefs::ServingPLMNRateControl_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::servingPLMNRateControl() { return *(static_cast(get_at(15))); } +const NAS__CommonTypeDefs::ServingPLMNRateControl_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::servingPLMNRateControl() const { return *(static_cast(get_at(15))); } +EthernetHeaderCompressConfig_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::ethernetHeaderCompressConfig() { return *(static_cast(get_at(16))); } +const EthernetHeaderCompressConfig_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::ethernetHeaderCompressConfig() const { return *(static_cast(get_at(16))); } +ReceivedMBSContainer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::receivedMBS() { return *(static_cast(get_at(17))); } +const ReceivedMBSContainer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::receivedMBS() const { return *(static_cast(get_at(17))); } +ServiceLvlAAContainer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::serviceLvlAA() { return *(static_cast(get_at(18))); } +const ServiceLvlAAContainer_template& NG__PDU__SESSION__MODIFICATION__COMMAND_template::serviceLvlAA() const { return *(static_cast(get_at(18))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMMAND_template::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__COMMAND_descr_; } +const char* NG__PDU__SESSION__MODIFICATION__COMMAND_template::fld_name(int p_index) const { return NG__PDU__SESSION__MODIFICATION__COMMAND::fld_names[p_index]; } +void NG__PDU__SESSION__MODIFICATION__COMPLETE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_extdProtocolConfigurationOptions; fld_vec[5]=&field_portManagementInfoContainer; } + +NG__PDU__SESSION__MODIFICATION__COMPLETE::NG__PDU__SESSION__MODIFICATION__COMPLETE() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__MODIFICATION__COMPLETE::NG__PDU__SESSION__MODIFICATION__COMPLETE(const NG__PDU__SESSION__MODIFICATION__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_portManagementInfoContainer.is_bound() ) + field_portManagementInfoContainer = other_value.field_portManagementInfoContainer; +init_vec(); +} + +NG__PDU__SESSION__MODIFICATION__COMPLETE::NG__PDU__SESSION__MODIFICATION__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_portManagementInfoContainer) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_portManagementInfoContainer(par_portManagementInfoContainer) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMPLETE::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMPLETE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &PortManagementInfoContainer_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__MODIFICATION__COMPLETE::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "extdProtocolConfigurationOptions", "portManagementInfoContainer" }; +const char* NG__PDU__SESSION__MODIFICATION__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__MODIFICATION__COMPLETE::optional_indexes[] = { 4, 5, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__COMPLETE::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__MODIFICATION__COMPLETE::optional_indexes_asn[] = { 4, 5, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__COMPLETE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__MODIFICATION__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[5] = was_any ? new PortManagementInfoContainer_template(ANY_OR_OMIT) : new PortManagementInfoContainer_template; +} +} + +NG__PDU__SESSION__MODIFICATION__COMPLETE_template::NG__PDU__SESSION__MODIFICATION__COMPLETE_template(NG__PDU__SESSION__MODIFICATION__COMPLETE_template* p_precondition, NG__PDU__SESSION__MODIFICATION__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__MODIFICATION__COMPLETE_template::NG__PDU__SESSION__MODIFICATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__MODIFICATION__COMPLETE_template::~NG__PDU__SESSION__MODIFICATION__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__MODIFICATION__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__MODIFICATION__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__MODIFICATION__COMPLETE_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMPLETE_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::operator=(const NG__PDU__SESSION__MODIFICATION__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMPLETE_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMPLETE_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::operator=(const NG__PDU__SESSION__MODIFICATION__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMPLETE NG__PDU__SESSION__MODIFICATION__COMPLETE_template::valueof() const +{ +NG__PDU__SESSION__MODIFICATION__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::messageType() const { return *(static_cast(get_at(3))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(4))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(4))); } +PortManagementInfoContainer_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::portManagementInfoContainer() { return *(static_cast(get_at(5))); } +const PortManagementInfoContainer_template& NG__PDU__SESSION__MODIFICATION__COMPLETE_template::portManagementInfoContainer() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMPLETE_template::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__COMPLETE_descr_; } +const char* NG__PDU__SESSION__MODIFICATION__COMPLETE_template::fld_name(int p_index) const { return NG__PDU__SESSION__MODIFICATION__COMPLETE::fld_names[p_index]; } +void NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gsmCause; fld_vec[5]=&field_extdProtocolConfigurationOptions; } + +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_gsmCause(par_gsmCause), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "gsmCause", "extdProtocolConfigurationOptions" }; +const char* NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::optional_indexes[] = { 5, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::optional_indexes_asn[] = { 5, -1 }; +const int* NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template* p_precondition, NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::~NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::valueof() const +{ +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::gsmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::gsmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::get_descriptor() const { return &NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_descr_; } +const char* NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template::fld_name(int p_index) const { return NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT::fld_names[p_index]; } +void NG__PDU__SESSION__RELEASE__REQUEST::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gsmCause; fld_vec[5]=&field_extdProtocolConfigurationOptions; } + +NG__PDU__SESSION__RELEASE__REQUEST::NG__PDU__SESSION__RELEASE__REQUEST() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__RELEASE__REQUEST::NG__PDU__SESSION__RELEASE__REQUEST(const NG__PDU__SESSION__RELEASE__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +NG__PDU__SESSION__RELEASE__REQUEST::NG__PDU__SESSION__RELEASE__REQUEST(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_gsmCause(par_gsmCause), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__REQUEST::get_descriptor() const { return &NG__PDU__SESSION__RELEASE__REQUEST_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__REQUEST::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__RELEASE__REQUEST::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "gsmCause", "extdProtocolConfigurationOptions" }; +const char* NG__PDU__SESSION__RELEASE__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__RELEASE__REQUEST::optional_indexes[] = { 4, 5, -1 }; +const int* NG__PDU__SESSION__RELEASE__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__RELEASE__REQUEST::optional_indexes_asn[] = { 4, 5, -1 }; +const int* NG__PDU__SESSION__RELEASE__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__RELEASE__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_OR_OMIT) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +NG__PDU__SESSION__RELEASE__REQUEST_template::NG__PDU__SESSION__RELEASE__REQUEST_template(NG__PDU__SESSION__RELEASE__REQUEST_template* p_precondition, NG__PDU__SESSION__RELEASE__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__RELEASE__REQUEST_template::NG__PDU__SESSION__RELEASE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__RELEASE__REQUEST_template::~NG__PDU__SESSION__RELEASE__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__RELEASE__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__RELEASE__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__RELEASE__REQUEST_template& NG__PDU__SESSION__RELEASE__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__REQUEST_template& NG__PDU__SESSION__RELEASE__REQUEST_template::operator=(const NG__PDU__SESSION__RELEASE__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__REQUEST_template& NG__PDU__SESSION__RELEASE__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__REQUEST_template& NG__PDU__SESSION__RELEASE__REQUEST_template::operator=(const NG__PDU__SESSION__RELEASE__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__RELEASE__REQUEST NG__PDU__SESSION__RELEASE__REQUEST_template::valueof() const +{ +NG__PDU__SESSION__RELEASE__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__RELEASE__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__RELEASE__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__RELEASE__REQUEST_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__RELEASE__REQUEST_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__RELEASE__REQUEST_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__RELEASE__REQUEST_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__RELEASE__REQUEST_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__RELEASE__REQUEST_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__RELEASE__REQUEST_template::gsmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__RELEASE__REQUEST_template::gsmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__RELEASE__REQUEST_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__RELEASE__REQUEST_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__REQUEST_template::get_descriptor() const { return &NG__PDU__SESSION__RELEASE__REQUEST_descr_; } +const char* NG__PDU__SESSION__RELEASE__REQUEST_template::fld_name(int p_index) const { return NG__PDU__SESSION__RELEASE__REQUEST::fld_names[p_index]; } +void NG__PDU__SESSION__RELEASE__REJECT::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gsmCause; fld_vec[5]=&field_extdProtocolConfigurationOptions; } + +NG__PDU__SESSION__RELEASE__REJECT::NG__PDU__SESSION__RELEASE__REJECT() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__RELEASE__REJECT::NG__PDU__SESSION__RELEASE__REJECT(const NG__PDU__SESSION__RELEASE__REJECT& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +NG__PDU__SESSION__RELEASE__REJECT::NG__PDU__SESSION__RELEASE__REJECT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_gsmCause(par_gsmCause), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__REJECT::get_descriptor() const { return &NG__PDU__SESSION__RELEASE__REJECT_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__REJECT::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__REJECT::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__RELEASE__REJECT::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "gsmCause", "extdProtocolConfigurationOptions" }; +const char* NG__PDU__SESSION__RELEASE__REJECT::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__RELEASE__REJECT::optional_indexes[] = { 5, -1 }; +const int* NG__PDU__SESSION__RELEASE__REJECT::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__RELEASE__REJECT::optional_indexes_asn[] = { 5, -1 }; +const int* NG__PDU__SESSION__RELEASE__REJECT::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__RELEASE__REJECT_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +NG__PDU__SESSION__RELEASE__REJECT_template::NG__PDU__SESSION__RELEASE__REJECT_template(NG__PDU__SESSION__RELEASE__REJECT_template* p_precondition, NG__PDU__SESSION__RELEASE__REJECT_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__RELEASE__REJECT_template::NG__PDU__SESSION__RELEASE__REJECT_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__RELEASE__REJECT_template::~NG__PDU__SESSION__RELEASE__REJECT_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__RELEASE__REJECT_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__RELEASE__REJECT* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__RELEASE__REJECT_template& NG__PDU__SESSION__RELEASE__REJECT_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__REJECT_template& NG__PDU__SESSION__RELEASE__REJECT_template::operator=(const NG__PDU__SESSION__RELEASE__REJECT& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__REJECT_template& NG__PDU__SESSION__RELEASE__REJECT_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__REJECT_template& NG__PDU__SESSION__RELEASE__REJECT_template::operator=(const NG__PDU__SESSION__RELEASE__REJECT_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__RELEASE__REJECT NG__PDU__SESSION__RELEASE__REJECT_template::valueof() const +{ +NG__PDU__SESSION__RELEASE__REJECT ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__RELEASE__REJECT_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__RELEASE__REJECT_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__RELEASE__REJECT_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__RELEASE__REJECT_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__RELEASE__REJECT_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__RELEASE__REJECT_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__RELEASE__REJECT_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__RELEASE__REJECT_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__RELEASE__REJECT_template::gsmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__RELEASE__REJECT_template::gsmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__RELEASE__REJECT_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__RELEASE__REJECT_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__REJECT_template::get_descriptor() const { return &NG__PDU__SESSION__RELEASE__REJECT_descr_; } +const char* NG__PDU__SESSION__RELEASE__REJECT_template::fld_name(int p_index) const { return NG__PDU__SESSION__RELEASE__REJECT::fld_names[p_index]; } +void NG__PDU__SESSION__RELEASE__COMMAND::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gsmCause; fld_vec[5]=&field_backOffTimerValue; fld_vec[6]=&field_eapMessage; fld_vec[7]=&field_ngsmCongestionReattemptInd; fld_vec[8]=&field_extdProtocolConfigurationOptions; fld_vec[9]=&field_accessType; fld_vec[10]=&field_serviceLvlAA; } + +NG__PDU__SESSION__RELEASE__COMMAND::NG__PDU__SESSION__RELEASE__COMMAND() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__RELEASE__COMMAND::NG__PDU__SESSION__RELEASE__COMMAND(const NG__PDU__SESSION__RELEASE__COMMAND& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_backOffTimerValue.is_bound() ) + field_backOffTimerValue = other_value.field_backOffTimerValue; +if (other_value.field_eapMessage.is_bound() ) + field_eapMessage = other_value.field_eapMessage; +if (other_value.field_ngsmCongestionReattemptInd.is_bound() ) + field_ngsmCongestionReattemptInd = other_value.field_ngsmCongestionReattemptInd; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +if (other_value.field_accessType.is_bound() ) + field_accessType = other_value.field_accessType; +if (other_value.field_serviceLvlAA.is_bound() ) + field_serviceLvlAA = other_value.field_serviceLvlAA; +init_vec(); +} + +NG__PDU__SESSION__RELEASE__COMMAND::NG__PDU__SESSION__RELEASE__COMMAND(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_ngsmCongestionReattemptInd, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_accessType, + const OPTIONAL& par_serviceLvlAA) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_gsmCause(par_gsmCause), + field_backOffTimerValue(par_backOffTimerValue), + field_eapMessage(par_eapMessage), + field_ngsmCongestionReattemptInd(par_ngsmCongestionReattemptInd), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions), + field_accessType(par_accessType), + field_serviceLvlAA(par_serviceLvlAA) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__COMMAND::get_descriptor() const { return &NG__PDU__SESSION__RELEASE__COMMAND_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__COMMAND::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::GPRS__Timer2_descr_, &EAP__Message_descr_, &NGSM__CongestionReattemptInd_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_, &AccessType_descr_, &ServiceLvlAAContainer_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__COMMAND::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__RELEASE__COMMAND::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "gsmCause", "backOffTimerValue", "eapMessage", "ngsmCongestionReattemptInd", "extdProtocolConfigurationOptions", "accessType", "serviceLvlAA" }; +const char* NG__PDU__SESSION__RELEASE__COMMAND::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__RELEASE__COMMAND::optional_indexes[] = { 5, 6, 7, 8, 9, 10, -1 }; +const int* NG__PDU__SESSION__RELEASE__COMMAND::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__RELEASE__COMMAND::optional_indexes_asn[] = { 5, 6, 7, 8, 9, 10, -1 }; +const int* NG__PDU__SESSION__RELEASE__COMMAND::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__RELEASE__COMMAND_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 11; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::GPRS__Timer2_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::GPRS__Timer2_template; +single_value.value_elements[6] = was_any ? new EAP__Message_template(ANY_OR_OMIT) : new EAP__Message_template; +single_value.value_elements[7] = was_any ? new NGSM__CongestionReattemptInd_template(ANY_OR_OMIT) : new NGSM__CongestionReattemptInd_template; +single_value.value_elements[8] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +single_value.value_elements[9] = was_any ? new AccessType_template(ANY_OR_OMIT) : new AccessType_template; +single_value.value_elements[10] = was_any ? new ServiceLvlAAContainer_template(ANY_OR_OMIT) : new ServiceLvlAAContainer_template; +} +} + +NG__PDU__SESSION__RELEASE__COMMAND_template::NG__PDU__SESSION__RELEASE__COMMAND_template(NG__PDU__SESSION__RELEASE__COMMAND_template* p_precondition, NG__PDU__SESSION__RELEASE__COMMAND_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__RELEASE__COMMAND_template::NG__PDU__SESSION__RELEASE__COMMAND_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__RELEASE__COMMAND_template::~NG__PDU__SESSION__RELEASE__COMMAND_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__RELEASE__COMMAND_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__RELEASE__COMMAND* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__RELEASE__COMMAND_template& NG__PDU__SESSION__RELEASE__COMMAND_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__COMMAND_template& NG__PDU__SESSION__RELEASE__COMMAND_template::operator=(const NG__PDU__SESSION__RELEASE__COMMAND& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__COMMAND_template& NG__PDU__SESSION__RELEASE__COMMAND_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__COMMAND_template& NG__PDU__SESSION__RELEASE__COMMAND_template::operator=(const NG__PDU__SESSION__RELEASE__COMMAND_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__RELEASE__COMMAND NG__PDU__SESSION__RELEASE__COMMAND_template::valueof() const +{ +NG__PDU__SESSION__RELEASE__COMMAND ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__RELEASE__COMMAND_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__RELEASE__COMMAND_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__RELEASE__COMMAND_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__RELEASE__COMMAND_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__RELEASE__COMMAND_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__RELEASE__COMMAND_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__RELEASE__COMMAND_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__RELEASE__COMMAND_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__RELEASE__COMMAND_template::gsmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__RELEASE__COMMAND_template::gsmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::GPRS__Timer2_template& NG__PDU__SESSION__RELEASE__COMMAND_template::backOffTimerValue() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::GPRS__Timer2_template& NG__PDU__SESSION__RELEASE__COMMAND_template::backOffTimerValue() const { return *(static_cast(get_at(5))); } +EAP__Message_template& NG__PDU__SESSION__RELEASE__COMMAND_template::eapMessage() { return *(static_cast(get_at(6))); } +const EAP__Message_template& NG__PDU__SESSION__RELEASE__COMMAND_template::eapMessage() const { return *(static_cast(get_at(6))); } +NGSM__CongestionReattemptInd_template& NG__PDU__SESSION__RELEASE__COMMAND_template::ngsmCongestionReattemptInd() { return *(static_cast(get_at(7))); } +const NGSM__CongestionReattemptInd_template& NG__PDU__SESSION__RELEASE__COMMAND_template::ngsmCongestionReattemptInd() const { return *(static_cast(get_at(7))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__RELEASE__COMMAND_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(8))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__RELEASE__COMMAND_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(8))); } +AccessType_template& NG__PDU__SESSION__RELEASE__COMMAND_template::accessType() { return *(static_cast(get_at(9))); } +const AccessType_template& NG__PDU__SESSION__RELEASE__COMMAND_template::accessType() const { return *(static_cast(get_at(9))); } +ServiceLvlAAContainer_template& NG__PDU__SESSION__RELEASE__COMMAND_template::serviceLvlAA() { return *(static_cast(get_at(10))); } +const ServiceLvlAAContainer_template& NG__PDU__SESSION__RELEASE__COMMAND_template::serviceLvlAA() const { return *(static_cast(get_at(10))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__COMMAND_template::get_descriptor() const { return &NG__PDU__SESSION__RELEASE__COMMAND_descr_; } +const char* NG__PDU__SESSION__RELEASE__COMMAND_template::fld_name(int p_index) const { return NG__PDU__SESSION__RELEASE__COMMAND::fld_names[p_index]; } +void NG__PDU__SESSION__RELEASE__COMPLETE::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gsmCause; fld_vec[5]=&field_extdProtocolConfigurationOptions; } + +NG__PDU__SESSION__RELEASE__COMPLETE::NG__PDU__SESSION__RELEASE__COMPLETE() : Record_Type() { init_vec(); } + +NG__PDU__SESSION__RELEASE__COMPLETE::NG__PDU__SESSION__RELEASE__COMPLETE(const NG__PDU__SESSION__RELEASE__COMPLETE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +if (other_value.field_extdProtocolConfigurationOptions.is_bound() ) + field_extdProtocolConfigurationOptions = other_value.field_extdProtocolConfigurationOptions; +init_vec(); +} + +NG__PDU__SESSION__RELEASE__COMPLETE::NG__PDU__SESSION__RELEASE__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_extdProtocolConfigurationOptions) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_gsmCause(par_gsmCause), + field_extdProtocolConfigurationOptions(par_extdProtocolConfigurationOptions) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__COMPLETE::get_descriptor() const { return &NG__PDU__SESSION__RELEASE__COMPLETE_descr_; } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__COMPLETE::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_, &NAS__CommonTypeDefs::ExtdProtocolConfigOptions_descr_ }; +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__COMPLETE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__PDU__SESSION__RELEASE__COMPLETE::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "gsmCause", "extdProtocolConfigurationOptions" }; +const char* NG__PDU__SESSION__RELEASE__COMPLETE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__PDU__SESSION__RELEASE__COMPLETE::optional_indexes[] = { 4, 5, -1 }; +const int* NG__PDU__SESSION__RELEASE__COMPLETE::get_optional_indexes() const { return optional_indexes; } + +const int NG__PDU__SESSION__RELEASE__COMPLETE::optional_indexes_asn[] = { 4, 5, -1 }; +const int* NG__PDU__SESSION__RELEASE__COMPLETE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__PDU__SESSION__RELEASE__COMPLETE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_OR_OMIT) : new GMM__GSM__Cause_template; +single_value.value_elements[5] = was_any ? new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template(ANY_OR_OMIT) : new NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template; +} +} + +NG__PDU__SESSION__RELEASE__COMPLETE_template::NG__PDU__SESSION__RELEASE__COMPLETE_template(NG__PDU__SESSION__RELEASE__COMPLETE_template* p_precondition, NG__PDU__SESSION__RELEASE__COMPLETE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__PDU__SESSION__RELEASE__COMPLETE_template::NG__PDU__SESSION__RELEASE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__PDU__SESSION__RELEASE__COMPLETE_template::~NG__PDU__SESSION__RELEASE__COMPLETE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__PDU__SESSION__RELEASE__COMPLETE_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__PDU__SESSION__RELEASE__COMPLETE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__PDU__SESSION__RELEASE__COMPLETE_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__COMPLETE_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::operator=(const NG__PDU__SESSION__RELEASE__COMPLETE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__COMPLETE_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__PDU__SESSION__RELEASE__COMPLETE_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::operator=(const NG__PDU__SESSION__RELEASE__COMPLETE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__PDU__SESSION__RELEASE__COMPLETE NG__PDU__SESSION__RELEASE__COMPLETE_template::valueof() const +{ +NG__PDU__SESSION__RELEASE__COMPLETE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::gsmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::gsmCause() const { return *(static_cast(get_at(4))); } +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::extdProtocolConfigurationOptions() { return *(static_cast(get_at(5))); } +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& NG__PDU__SESSION__RELEASE__COMPLETE_template::extdProtocolConfigurationOptions() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NG__PDU__SESSION__RELEASE__COMPLETE_template::get_descriptor() const { return &NG__PDU__SESSION__RELEASE__COMPLETE_descr_; } +const char* NG__PDU__SESSION__RELEASE__COMPLETE_template::fld_name(int p_index) const { return NG__PDU__SESSION__RELEASE__COMPLETE::fld_names[p_index]; } +void NG__GSM__STATUS::init_vec() { fld_vec[0]=&field_protocolDiscriminator; fld_vec[1]=&field_pduSessionId; fld_vec[2]=&field_procedureTransactionIdentifier; fld_vec[3]=&field_messageType; fld_vec[4]=&field_gsmCause; } + +NG__GSM__STATUS::NG__GSM__STATUS() : Record_Type() { init_vec(); } + +NG__GSM__STATUS::NG__GSM__STATUS(const NG__GSM__STATUS& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_procedureTransactionIdentifier.is_bound() ) + field_procedureTransactionIdentifier = other_value.field_procedureTransactionIdentifier; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_gsmCause.is_bound() ) + field_gsmCause = other_value.field_gsmCause; +init_vec(); +} + +NG__GSM__STATUS::NG__GSM__STATUS(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause) : field_protocolDiscriminator(par_protocolDiscriminator), + field_pduSessionId(par_pduSessionId), + field_procedureTransactionIdentifier(par_procedureTransactionIdentifier), + field_messageType(par_messageType), + field_gsmCause(par_gsmCause) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__GSM__STATUS::get_descriptor() const { return &NG__GSM__STATUS_descr_; } +const TTCN_Typedescriptor_t* NG__GSM__STATUS::fld_descriptors[] = { &ExtdProtocolDiscriminator_descr_, &NG__PDU__SessionId_descr_, &NAS__CommonTypeDefs::ProcedureTransactionIdentifier_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &GMM__GSM__Cause_descr_ }; +const TTCN_Typedescriptor_t* NG__GSM__STATUS::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__GSM__STATUS::fld_names[] = { "protocolDiscriminator", "pduSessionId", "procedureTransactionIdentifier", "messageType", "gsmCause" }; +const char* NG__GSM__STATUS::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__GSM__STATUS_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new NG__PDU__SessionId_template(ANY_VALUE) : new NG__PDU__SessionId_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new GMM__GSM__Cause_template(ANY_VALUE) : new GMM__GSM__Cause_template; +} +} + +NG__GSM__STATUS_template::NG__GSM__STATUS_template(NG__GSM__STATUS_template* p_precondition, NG__GSM__STATUS_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__GSM__STATUS_template::NG__GSM__STATUS_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__GSM__STATUS_template::~NG__GSM__STATUS_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__GSM__STATUS_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__GSM__STATUS* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__GSM__STATUS_template& NG__GSM__STATUS_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__GSM__STATUS_template& NG__GSM__STATUS_template::operator=(const NG__GSM__STATUS& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__GSM__STATUS_template& NG__GSM__STATUS_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__GSM__STATUS_template& NG__GSM__STATUS_template::operator=(const NG__GSM__STATUS_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__GSM__STATUS NG__GSM__STATUS_template::valueof() const +{ +NG__GSM__STATUS ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__GSM__STATUS_template::protocolDiscriminator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__GSM__STATUS_template::protocolDiscriminator() const { return *(static_cast(get_at(0))); } +NG__PDU__SessionId_template& NG__GSM__STATUS_template::pduSessionId() { return *(static_cast(get_at(1))); } +const NG__PDU__SessionId_template& NG__GSM__STATUS_template::pduSessionId() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& NG__GSM__STATUS_template::procedureTransactionIdentifier() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& NG__GSM__STATUS_template::procedureTransactionIdentifier() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NG__GSM__STATUS_template::messageType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NG__GSM__STATUS_template::messageType() const { return *(static_cast(get_at(3))); } +GMM__GSM__Cause_template& NG__GSM__STATUS_template::gsmCause() { return *(static_cast(get_at(4))); } +const GMM__GSM__Cause_template& NG__GSM__STATUS_template::gsmCause() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* NG__GSM__STATUS_template::get_descriptor() const { return &NG__GSM__STATUS_descr_; } +const char* NG__GSM__STATUS_template::fld_name(int p_index) const { return NG__GSM__STATUS::fld_names[p_index]; } +void CIoTSmallDataContainer::init_vec() { fld_vec[0]=&field_iel; fld_vec[1]=&field_dataType; fld_vec[2]=&field_ddx; fld_vec[3]=&field_pduSessionId; fld_vec[4]=&field_lengthOfAddInfo; fld_vec[5]=&field_addInfo; fld_vec[6]=&field_dataContents; } + +CIoTSmallDataContainer::CIoTSmallDataContainer() : Record_Type() { init_vec(); } + +CIoTSmallDataContainer::CIoTSmallDataContainer(const CIoTSmallDataContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_dataType.is_bound() ) + field_dataType = other_value.field_dataType; +if (other_value.field_ddx.is_bound() ) + field_ddx = other_value.field_ddx; +if (other_value.field_pduSessionId.is_bound() ) + field_pduSessionId = other_value.field_pduSessionId; +if (other_value.field_lengthOfAddInfo.is_bound() ) + field_lengthOfAddInfo = other_value.field_lengthOfAddInfo; +if (other_value.field_addInfo.is_bound() ) + field_addInfo = other_value.field_addInfo; +if (other_value.field_dataContents.is_bound() ) + field_dataContents = other_value.field_dataContents; +init_vec(); +} + +CIoTSmallDataContainer::CIoTSmallDataContainer(const OCTETSTRING& par_iel, + const BITSTRING& par_dataType, + const BITSTRING& par_ddx, + const BITSTRING& par_pduSessionId, + const OPTIONAL& par_lengthOfAddInfo, + const OPTIONAL& par_addInfo, + const OCTETSTRING& par_dataContents) : field_iel(par_iel), + field_dataType(par_dataType), + field_ddx(par_ddx), + field_pduSessionId(par_pduSessionId), + field_lengthOfAddInfo(par_lengthOfAddInfo), + field_addInfo(par_addInfo), + field_dataContents(par_dataContents) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* CIoTSmallDataContainer::get_descriptor() const { return &CIoTSmallDataContainer_descr_; } +const TTCN_Typedescriptor_t* CIoTSmallDataContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::Type4Length__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B2__Type_descr_, &CommonDefs::B3__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &OCTETSTRING_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* CIoTSmallDataContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* CIoTSmallDataContainer::fld_names[] = { "iel", "dataType", "ddx", "pduSessionId", "lengthOfAddInfo", "addInfo", "dataContents" }; +const char* CIoTSmallDataContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int CIoTSmallDataContainer::optional_indexes[] = { 4, 5, -1 }; +const int* CIoTSmallDataContainer::get_optional_indexes() const { return optional_indexes; } + +const int CIoTSmallDataContainer::optional_indexes_asn[] = { 4, 5, -1 }; +const int* CIoTSmallDataContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void CIoTSmallDataContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 7; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[6] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +CIoTSmallDataContainer_template::CIoTSmallDataContainer_template(CIoTSmallDataContainer_template* p_precondition, CIoTSmallDataContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +CIoTSmallDataContainer_template::CIoTSmallDataContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +CIoTSmallDataContainer_template::~CIoTSmallDataContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean CIoTSmallDataContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const CIoTSmallDataContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +CIoTSmallDataContainer_template& CIoTSmallDataContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +CIoTSmallDataContainer_template& CIoTSmallDataContainer_template::operator=(const CIoTSmallDataContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +CIoTSmallDataContainer_template& CIoTSmallDataContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +CIoTSmallDataContainer_template& CIoTSmallDataContainer_template::operator=(const CIoTSmallDataContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +CIoTSmallDataContainer CIoTSmallDataContainer_template::valueof() const +{ +CIoTSmallDataContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& CIoTSmallDataContainer_template::iel() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& CIoTSmallDataContainer_template::iel() const { return *(static_cast(get_at(0))); } +BITSTRING_template& CIoTSmallDataContainer_template::dataType() { return *(static_cast(get_at(1))); } +const BITSTRING_template& CIoTSmallDataContainer_template::dataType() const { return *(static_cast(get_at(1))); } +BITSTRING_template& CIoTSmallDataContainer_template::ddx() { return *(static_cast(get_at(2))); } +const BITSTRING_template& CIoTSmallDataContainer_template::ddx() const { return *(static_cast(get_at(2))); } +BITSTRING_template& CIoTSmallDataContainer_template::pduSessionId() { return *(static_cast(get_at(3))); } +const BITSTRING_template& CIoTSmallDataContainer_template::pduSessionId() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& CIoTSmallDataContainer_template::lengthOfAddInfo() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& CIoTSmallDataContainer_template::lengthOfAddInfo() const { return *(static_cast(get_at(4))); } +OCTETSTRING_template& CIoTSmallDataContainer_template::addInfo() { return *(static_cast(get_at(5))); } +const OCTETSTRING_template& CIoTSmallDataContainer_template::addInfo() const { return *(static_cast(get_at(5))); } +OCTETSTRING_template& CIoTSmallDataContainer_template::dataContents() { return *(static_cast(get_at(6))); } +const OCTETSTRING_template& CIoTSmallDataContainer_template::dataContents() const { return *(static_cast(get_at(6))); } +const TTCN_Typedescriptor_t* CIoTSmallDataContainer_template::get_descriptor() const { return &CIoTSmallDataContainer_descr_; } +const char* CIoTSmallDataContainer_template::fld_name(int p_index) const { return CIoTSmallDataContainer::fld_names[p_index]; } + +const QoS__Flow QoS__FlowList::UNBOUND_ELEM; +QoS__Flow& QoS__FlowList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +QoS__Flow& QoS__FlowList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const QoS__Flow& QoS__FlowList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const QoS__Flow& QoS__FlowList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoS__FlowList QoS__FlowList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +QoS__FlowList QoS__FlowList::operator<<=(const INTEGER& rotate_count) const +{ +QoS__FlowList rec_of; +return *((QoS__FlowList*)rotl(rotate_count, &rec_of)); +} + +QoS__FlowList QoS__FlowList::operator>>=(const INTEGER& rotate_count) const +{ +QoS__FlowList rec_of; +return *((QoS__FlowList*)rotr(rotate_count, &rec_of)); +} + +QoS__FlowList QoS__FlowList::operator>>=(int rotate_count) const +{ +QoS__FlowList rec_of; +return *((QoS__FlowList*)rotr(rotate_count, &rec_of)); +} + +QoS__FlowList QoS__FlowList::operator+(const QoS__FlowList& other_value) const +{ +QoS__FlowList rec_of; +return *((QoS__FlowList*)concat(&other_value, &rec_of)); +} + +QoS__FlowList QoS__FlowList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const QoS__FlowList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.QoS_FlowList concatenation."); +} + +QoS__FlowList QoS__FlowList::operator+(null_type) const +{ +return *this; +} + +QoS__FlowList QoS__FlowList::substr(int index, int returncount) const +{ +QoS__FlowList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoS__FlowList QoS__FlowList::replace(int index, int len, const QoS__FlowList& repl) const +{ +QoS__FlowList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoS__FlowList QoS__FlowList::replace(int index, int len, const QoS__FlowList_template& repl) const +{ +QoS__FlowList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* QoS__FlowList::create_elem() const { return new QoS__Flow; } +const Base_Type* QoS__FlowList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* QoS__FlowList::get_descriptor() const { return &QoS__FlowList_descr_; } +QoS__FlowList_template::QoS__FlowList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +QoS__FlowList_template::QoS__FlowList_template(QoS__FlowList_template* p_precondition, QoS__FlowList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +QoS__FlowList_template::QoS__FlowList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +QoS__FlowList_template::~QoS__FlowList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean QoS__FlowList_template::match_dynamic(const Base_Type* match_value) const +{ +const QoS__FlowList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +QoS__FlowList_template& QoS__FlowList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +QoS__FlowList_template& QoS__FlowList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +QoS__FlowList_template& QoS__FlowList_template::operator=(const QoS__FlowList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +QoS__FlowList_template& QoS__FlowList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +QoS__FlowList_template& QoS__FlowList_template::operator=(const QoS__FlowList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +QoS__FlowList_template QoS__FlowList_template::operator+(const QoS__FlowList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return QoS__FlowList_template(ANY_VALUE); +} +QoS__FlowList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoS__FlowList_template QoS__FlowList_template::operator+(const QoS__FlowList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +QoS__FlowList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +QoS__FlowList_template QoS__FlowList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return QoS__FlowList_template(ANY_VALUE); +} +QoS__FlowList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +QoS__FlowList_template QoS__FlowList_template::operator+(null_type) const +{ +return *this; +} + +QoS__Flow_template& QoS__FlowList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +QoS__Flow_template& QoS__FlowList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const QoS__Flow_template& QoS__FlowList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const QoS__Flow_template& QoS__FlowList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +QoS__FlowList QoS__FlowList_template::valueof() const +{ +QoS__FlowList ret_val; +valueofv(&ret_val); +return ret_val; +} + +QoS__FlowList QoS__FlowList_template::substr(int index, int returncount) const +{ +QoS__FlowList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +QoS__FlowList QoS__FlowList_template::replace(int index, int len, const QoS__FlowList_template& repl) const +{ +QoS__FlowList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +QoS__FlowList QoS__FlowList_template::replace(int index, int len, const QoS__FlowList& repl) const +{ +QoS__FlowList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* QoS__FlowList_template::create_elem() const { return new QoS__Flow_template; } +const TTCN_Typedescriptor_t* QoS__FlowList_template::get_descriptor() const { return &QoS__FlowList_descr_; } +void UPU__Header::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_reg; fld_vec[2]=&field_ack; fld_vec[3]=&field_upuDataType; } + +UPU__Header::UPU__Header() : Record_Type() { init_vec(); } + +UPU__Header::UPU__Header(const UPU__Header& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_reg.is_bound() ) + field_reg = other_value.field_reg; +if (other_value.field_ack.is_bound() ) + field_ack = other_value.field_ack; +if (other_value.field_upuDataType.is_bound() ) + field_upuDataType = other_value.field_upuDataType; +init_vec(); +} + +UPU__Header::UPU__Header(const BITSTRING& par_spare, + const BITSTRING& par_reg, + const BITSTRING& par_ack, + const BITSTRING& par_upuDataType) : field_spare(par_spare), + field_reg(par_reg), + field_ack(par_ack), + field_upuDataType(par_upuDataType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UPU__Header::get_descriptor() const { return &UPU__Header_descr_; } +const TTCN_Typedescriptor_t* UPU__Header::fld_descriptors[] = { &CommonDefs::B5__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_ }; +const TTCN_Typedescriptor_t* UPU__Header::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UPU__Header::fld_names[] = { "spare", "reg", "ack", "upuDataType" }; +const char* UPU__Header::fld_name(int p_index) const { return fld_names[p_index]; } + +void UPU__Header_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UPU__Header_template::UPU__Header_template(UPU__Header_template* p_precondition, UPU__Header_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UPU__Header_template::UPU__Header_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UPU__Header_template::~UPU__Header_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UPU__Header_template::match_dynamic(const Base_Type* match_value) const +{ +const UPU__Header* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UPU__Header_template& UPU__Header_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UPU__Header_template& UPU__Header_template::operator=(const UPU__Header& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UPU__Header_template& UPU__Header_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UPU__Header_template& UPU__Header_template::operator=(const UPU__Header_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UPU__Header UPU__Header_template::valueof() const +{ +UPU__Header ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UPU__Header_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UPU__Header_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UPU__Header_template::reg() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UPU__Header_template::reg() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UPU__Header_template::ack() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UPU__Header_template::ack() const { return *(static_cast(get_at(2))); } +BITSTRING_template& UPU__Header_template::upuDataType() { return *(static_cast(get_at(3))); } +const BITSTRING_template& UPU__Header_template::upuDataType() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UPU__Header_template::get_descriptor() const { return &UPU__Header_descr_; } +const char* UPU__Header_template::fld_name(int p_index) const { return UPU__Header::fld_names[p_index]; } +void UPU__Param::init_vec() { fld_vec[0]=&field_spare; fld_vec[1]=&field_dataSetType; fld_vec[2]=&field_len; fld_vec[3]=&field_dataSet; } + +UPU__Param::UPU__Param() : Record_Type() { init_vec(); } + +UPU__Param::UPU__Param(const UPU__Param& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_dataSetType.is_bound() ) + field_dataSetType = other_value.field_dataSetType; +if (other_value.field_len.is_bound() ) + field_len = other_value.field_len; +if (other_value.field_dataSet.is_bound() ) + field_dataSet = other_value.field_dataSet; +init_vec(); +} + +UPU__Param::UPU__Param(const BITSTRING& par_spare, + const BITSTRING& par_dataSetType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_dataSet) : field_spare(par_spare), + field_dataSetType(par_dataSetType), + field_len(par_len), + field_dataSet(par_dataSet) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UPU__Param::get_descriptor() const { return &UPU__Param_descr_; } +const TTCN_Typedescriptor_t* UPU__Param::fld_descriptors[] = { &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &OCTETSTRING_descr_ }; +const TTCN_Typedescriptor_t* UPU__Param::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UPU__Param::fld_names[] = { "spare", "dataSetType", "len", "dataSet" }; +const char* UPU__Param::fld_name(int p_index) const { return fld_names[p_index]; } + +void UPU__Param_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 4; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +UPU__Param_template::UPU__Param_template(UPU__Param_template* p_precondition, UPU__Param_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UPU__Param_template::UPU__Param_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UPU__Param_template::~UPU__Param_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UPU__Param_template::match_dynamic(const Base_Type* match_value) const +{ +const UPU__Param* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UPU__Param_template& UPU__Param_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UPU__Param_template& UPU__Param_template::operator=(const UPU__Param& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UPU__Param_template& UPU__Param_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UPU__Param_template& UPU__Param_template::operator=(const UPU__Param_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UPU__Param UPU__Param_template::valueof() const +{ +UPU__Param ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UPU__Param_template::spare() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UPU__Param_template::spare() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UPU__Param_template::dataSetType() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UPU__Param_template::dataSetType() const { return *(static_cast(get_at(1))); } +OCTETSTRING_template& UPU__Param_template::len() { return *(static_cast(get_at(2))); } +const OCTETSTRING_template& UPU__Param_template::len() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& UPU__Param_template::dataSet() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& UPU__Param_template::dataSet() const { return *(static_cast(get_at(3))); } +const TTCN_Typedescriptor_t* UPU__Param_template::get_descriptor() const { return &UPU__Param_descr_; } +const char* UPU__Param_template::fld_name(int p_index) const { return UPU__Param::fld_names[p_index]; } + +const UPU__Param UPU__ParamList::UNBOUND_ELEM; +UPU__Param& UPU__ParamList::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +UPU__Param& UPU__ParamList::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const UPU__Param& UPU__ParamList::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const UPU__Param& UPU__ParamList::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +UPU__ParamList UPU__ParamList::operator<<=(int rotate_count) const +{ +return *this >>= (-rotate_count); +} + +UPU__ParamList UPU__ParamList::operator<<=(const INTEGER& rotate_count) const +{ +UPU__ParamList rec_of; +return *((UPU__ParamList*)rotl(rotate_count, &rec_of)); +} + +UPU__ParamList UPU__ParamList::operator>>=(const INTEGER& rotate_count) const +{ +UPU__ParamList rec_of; +return *((UPU__ParamList*)rotr(rotate_count, &rec_of)); +} + +UPU__ParamList UPU__ParamList::operator>>=(int rotate_count) const +{ +UPU__ParamList rec_of; +return *((UPU__ParamList*)rotr(rotate_count, &rec_of)); +} + +UPU__ParamList UPU__ParamList::operator+(const UPU__ParamList& other_value) const +{ +UPU__ParamList rec_of; +return *((UPU__ParamList*)concat(&other_value, &rec_of)); +} + +UPU__ParamList UPU__ParamList::operator+(const OPTIONAL& other_value) const +{ +if (other_value.is_present()) { +return *this + (const UPU__ParamList&)other_value; +} +TTCN_error("Unbound or omitted right operand of @NG_NAS_TypeDefs.UPU_ParamList concatenation."); +} + +UPU__ParamList UPU__ParamList::operator+(null_type) const +{ +return *this; +} + +UPU__ParamList UPU__ParamList::substr(int index, int returncount) const +{ +UPU__ParamList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +UPU__ParamList UPU__ParamList::replace(int index, int len, const UPU__ParamList& repl) const +{ +UPU__ParamList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +UPU__ParamList UPU__ParamList::replace(int index, int len, const UPU__ParamList_template& repl) const +{ +UPU__ParamList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Type* UPU__ParamList::create_elem() const { return new UPU__Param; } +const Base_Type* UPU__ParamList::get_unbound_elem() const { return &UNBOUND_ELEM; } +const TTCN_Typedescriptor_t* UPU__ParamList::get_descriptor() const { return &UPU__ParamList_descr_; } +UPU__ParamList_template::UPU__ParamList_template(null_type) + : Record_Of_Template(SPECIFIC_VALUE) +{ +single_value.n_elements = 0; +single_value.value_elements = NULL; +} + +UPU__ParamList_template::UPU__ParamList_template(UPU__ParamList_template* p_precondition, UPU__ParamList_template* p_implied_template) +: Record_Of_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UPU__ParamList_template::UPU__ParamList_template(Dynamic_Match_Interface* p_dyn_match) +: Record_Of_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UPU__ParamList_template::~UPU__ParamList_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UPU__ParamList_template::match_dynamic(const Base_Type* match_value) const +{ +const UPU__ParamList* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} +UPU__ParamList_template& UPU__ParamList_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UPU__ParamList_template& UPU__ParamList_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +single_value.n_elements = 0; +single_value.value_elements = NULL; +return *this; +} + +UPU__ParamList_template& UPU__ParamList_template::operator=(const UPU__ParamList& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UPU__ParamList_template& UPU__ParamList_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UPU__ParamList_template& UPU__ParamList_template::operator=(const UPU__ParamList_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UPU__ParamList_template UPU__ParamList_template::operator+(const UPU__ParamList_template& other_value) const +{ +boolean left_is_any_value = FALSE; +boolean right_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + other_value.get_length_for_concat(right_is_any_value); +if (left_is_any_value && right_is_any_value) { +return UPU__ParamList_template(ANY_VALUE); +} +UPU__ParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +UPU__ParamList_template UPU__ParamList_template::operator+(const UPU__ParamList& other_value) const +{ +boolean dummy = FALSE; +int res_length = get_length_for_concat(dummy) + get_length_for_concat(other_value); +UPU__ParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos, other_value); +return ret_val; +} + +UPU__ParamList_template UPU__ParamList_template::operator+(template_sel other_value) const +{ +boolean left_is_any_value = FALSE; +int res_length = get_length_for_concat(left_is_any_value) + get_length_for_concat(other_value); +if (left_is_any_value) { +return UPU__ParamList_template(ANY_VALUE); +} +UPU__ParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, *this); +ret_val.concat(pos); +return ret_val; +} + +UPU__ParamList_template UPU__ParamList_template::operator+(null_type) const +{ +return *this; +} + +UPU__Param_template& UPU__ParamList_template::operator[](int index_value) { return *(static_cast(get_at(index_value))); } +UPU__Param_template& UPU__ParamList_template::operator[](const INTEGER& index_value) { return *(static_cast(get_at(index_value))); } +const UPU__Param_template& UPU__ParamList_template::operator[](int index_value) const { return *(static_cast(get_at(index_value))); } +const UPU__Param_template& UPU__ParamList_template::operator[](const INTEGER& index_value) const { return *(static_cast(get_at(index_value))); } + +UPU__ParamList UPU__ParamList_template::valueof() const +{ +UPU__ParamList ret_val; +valueofv(&ret_val); +return ret_val; +} + +UPU__ParamList UPU__ParamList_template::substr(int index, int returncount) const +{ +UPU__ParamList rec_of; +substr_(index, returncount, &rec_of); +return rec_of; +} + +UPU__ParamList UPU__ParamList_template::replace(int index, int len, const UPU__ParamList_template& repl) const +{ +UPU__ParamList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +UPU__ParamList UPU__ParamList_template::replace(int index, int len, const UPU__ParamList& repl) const +{ +UPU__ParamList rec_of; +replace_(index, len, &repl, &rec_of); +return rec_of; +} + +Base_Template* UPU__ParamList_template::create_elem() const { return new UPU__Param_template; } +const TTCN_Typedescriptor_t* UPU__ParamList_template::get_descriptor() const { return &UPU__ParamList_descr_; } +void UPU__TransparentContainer::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_octet4; fld_vec[3]=&field_upuMAC__I; fld_vec[4]=&field_counter; fld_vec[5]=&field_upuList; } + +UPU__TransparentContainer::UPU__TransparentContainer() : Record_Type() { init_vec(); } + +UPU__TransparentContainer::UPU__TransparentContainer(const UPU__TransparentContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_octet4.is_bound() ) + field_octet4 = other_value.field_octet4; +if (other_value.field_upuMAC__I.is_bound() ) + field_upuMAC__I = other_value.field_upuMAC__I; +if (other_value.field_counter.is_bound() ) + field_counter = other_value.field_counter; +if (other_value.field_upuList.is_bound() ) + field_upuList = other_value.field_upuList; +init_vec(); +} + +UPU__TransparentContainer::UPU__TransparentContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const UPU__Header& par_octet4, + const OCTETSTRING& par_upuMAC__I, + const OPTIONAL& par_counter, + const OPTIONAL& par_upuList) : field_iei(par_iei), + field_iel(par_iel), + field_octet4(par_octet4), + field_upuMAC__I(par_upuMAC__I), + field_counter(par_counter), + field_upuList(par_upuList) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UPU__TransparentContainer::get_descriptor() const { return &UPU__TransparentContainer_descr_; } +const TTCN_Typedescriptor_t* UPU__TransparentContainer::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type6Length__Type_descr_, &UPU__Header_descr_, &CommonDefs::O16__Type_descr_, &CommonDefs::O2__Type_descr_, &UPU__ParamList_descr_ }; +const TTCN_Typedescriptor_t* UPU__TransparentContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UPU__TransparentContainer::fld_names[] = { "iei", "iel", "octet4", "upuMAC_I", "counter", "upuList" }; +const char* UPU__TransparentContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UPU__TransparentContainer::optional_indexes[] = { 0, 4, 5, -1 }; +const int* UPU__TransparentContainer::get_optional_indexes() const { return optional_indexes; } + +const int UPU__TransparentContainer::optional_indexes_asn[] = { 0, 4, 5, -1 }; +const int* UPU__TransparentContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UPU__TransparentContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new UPU__Header_template(ANY_VALUE) : new UPU__Header_template; +single_value.value_elements[3] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new UPU__ParamList_template(ANY_OR_OMIT) : new UPU__ParamList_template; +} +} + +UPU__TransparentContainer_template::UPU__TransparentContainer_template(UPU__TransparentContainer_template* p_precondition, UPU__TransparentContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UPU__TransparentContainer_template::UPU__TransparentContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UPU__TransparentContainer_template::~UPU__TransparentContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UPU__TransparentContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const UPU__TransparentContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UPU__TransparentContainer_template& UPU__TransparentContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UPU__TransparentContainer_template& UPU__TransparentContainer_template::operator=(const UPU__TransparentContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UPU__TransparentContainer_template& UPU__TransparentContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UPU__TransparentContainer_template& UPU__TransparentContainer_template::operator=(const UPU__TransparentContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UPU__TransparentContainer UPU__TransparentContainer_template::valueof() const +{ +UPU__TransparentContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& UPU__TransparentContainer_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& UPU__TransparentContainer_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& UPU__TransparentContainer_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& UPU__TransparentContainer_template::iel() const { return *(static_cast(get_at(1))); } +UPU__Header_template& UPU__TransparentContainer_template::octet4() { return *(static_cast(get_at(2))); } +const UPU__Header_template& UPU__TransparentContainer_template::octet4() const { return *(static_cast(get_at(2))); } +OCTETSTRING_template& UPU__TransparentContainer_template::upuMAC__I() { return *(static_cast(get_at(3))); } +const OCTETSTRING_template& UPU__TransparentContainer_template::upuMAC__I() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& UPU__TransparentContainer_template::counter() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& UPU__TransparentContainer_template::counter() const { return *(static_cast(get_at(4))); } +UPU__ParamList_template& UPU__TransparentContainer_template::upuList() { return *(static_cast(get_at(5))); } +const UPU__ParamList_template& UPU__TransparentContainer_template::upuList() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* UPU__TransparentContainer_template::get_descriptor() const { return &UPU__TransparentContainer_descr_; } +const char* UPU__TransparentContainer_template::fld_name(int p_index) const { return UPU__TransparentContainer::fld_names[p_index]; } +void NSSAI__DELETE__REQUEST::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_deleteNSSAI__Type; fld_vec[4]=&field_configuredNSSAI; fld_vec[5]=&field_allowedNSSAI; } + +NSSAI__DELETE__REQUEST::NSSAI__DELETE__REQUEST() : Record_Type() { init_vec(); } + +NSSAI__DELETE__REQUEST::NSSAI__DELETE__REQUEST(const NSSAI__DELETE__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_deleteNSSAI__Type.is_bound() ) + field_deleteNSSAI__Type = other_value.field_deleteNSSAI__Type; +if (other_value.field_configuredNSSAI.is_bound() ) + field_configuredNSSAI = other_value.field_configuredNSSAI; +if (other_value.field_allowedNSSAI.is_bound() ) + field_allowedNSSAI = other_value.field_allowedNSSAI; +init_vec(); +} + +NSSAI__DELETE__REQUEST::NSSAI__DELETE__REQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_deleteNSSAI__Type, + const OPTIONAL& par_configuredNSSAI, + const OPTIONAL& par_allowedNSSAI) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_deleteNSSAI__Type(par_deleteNSSAI__Type), + field_configuredNSSAI(par_configuredNSSAI), + field_allowedNSSAI(par_allowedNSSAI) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NSSAI__DELETE__REQUEST::get_descriptor() const { return &NSSAI__DELETE__REQUEST_descr_; } +const TTCN_Typedescriptor_t* NSSAI__DELETE__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::B8__Type_descr_, &NAS__CommonTypeDefs::NAS__PlmnId_descr_, &AllowedNSSAI_descr_ }; +const TTCN_Typedescriptor_t* NSSAI__DELETE__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NSSAI__DELETE__REQUEST::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "deleteNSSAI_Type", "configuredNSSAI", "allowedNSSAI" }; +const char* NSSAI__DELETE__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NSSAI__DELETE__REQUEST::optional_indexes[] = { 4, 5, -1 }; +const int* NSSAI__DELETE__REQUEST::get_optional_indexes() const { return optional_indexes; } + +const int NSSAI__DELETE__REQUEST::optional_indexes_asn[] = { 4, 5, -1 }; +const int* NSSAI__DELETE__REQUEST::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NSSAI__DELETE__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[5] = was_any ? new AllowedNSSAI_template(ANY_OR_OMIT) : new AllowedNSSAI_template; +} +} + +NSSAI__DELETE__REQUEST_template::NSSAI__DELETE__REQUEST_template(NSSAI__DELETE__REQUEST_template* p_precondition, NSSAI__DELETE__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSSAI__DELETE__REQUEST_template::NSSAI__DELETE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSSAI__DELETE__REQUEST_template::~NSSAI__DELETE__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSSAI__DELETE__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const NSSAI__DELETE__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NSSAI__DELETE__REQUEST_template& NSSAI__DELETE__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSSAI__DELETE__REQUEST_template& NSSAI__DELETE__REQUEST_template::operator=(const NSSAI__DELETE__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSSAI__DELETE__REQUEST_template& NSSAI__DELETE__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSSAI__DELETE__REQUEST_template& NSSAI__DELETE__REQUEST_template::operator=(const NSSAI__DELETE__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSSAI__DELETE__REQUEST NSSAI__DELETE__REQUEST_template::valueof() const +{ +NSSAI__DELETE__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NSSAI__DELETE__REQUEST_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NSSAI__DELETE__REQUEST_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NSSAI__DELETE__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NSSAI__DELETE__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NSSAI__DELETE__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NSSAI__DELETE__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& NSSAI__DELETE__REQUEST_template::deleteNSSAI__Type() { return *(static_cast(get_at(3))); } +const BITSTRING_template& NSSAI__DELETE__REQUEST_template::deleteNSSAI__Type() const { return *(static_cast(get_at(3))); } +OCTETSTRING_template& NSSAI__DELETE__REQUEST_template::configuredNSSAI() { return *(static_cast(get_at(4))); } +const OCTETSTRING_template& NSSAI__DELETE__REQUEST_template::configuredNSSAI() const { return *(static_cast(get_at(4))); } +AllowedNSSAI_template& NSSAI__DELETE__REQUEST_template::allowedNSSAI() { return *(static_cast(get_at(5))); } +const AllowedNSSAI_template& NSSAI__DELETE__REQUEST_template::allowedNSSAI() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* NSSAI__DELETE__REQUEST_template::get_descriptor() const { return &NSSAI__DELETE__REQUEST_descr_; } +const char* NSSAI__DELETE__REQUEST_template::fld_name(int p_index) const { return NSSAI__DELETE__REQUEST::fld_names[p_index]; } +void AllowedNSSAI::init_vec() { fld_vec[0]=&field_allowedNSSAI; fld_vec[1]=&field_spareBits; fld_vec[2]=&field_accessType; } + +AllowedNSSAI::AllowedNSSAI() : Record_Type() { init_vec(); } + +AllowedNSSAI::AllowedNSSAI(const AllowedNSSAI& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_allowedNSSAI.is_bound() ) + field_allowedNSSAI = other_value.field_allowedNSSAI; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_accessType.is_bound() ) + field_accessType = other_value.field_accessType; +init_vec(); +} + +AllowedNSSAI::AllowedNSSAI(const OCTETSTRING& par_allowedNSSAI, + const BITSTRING& par_spareBits, + const BITSTRING& par_accessType) : field_allowedNSSAI(par_allowedNSSAI), + field_spareBits(par_spareBits), + field_accessType(par_accessType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* AllowedNSSAI::get_descriptor() const { return &AllowedNSSAI_descr_; } +const TTCN_Typedescriptor_t* AllowedNSSAI::fld_descriptors[] = { &NAS__CommonTypeDefs::NAS__PlmnId_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* AllowedNSSAI::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* AllowedNSSAI::fld_names[] = { "allowedNSSAI", "spareBits", "accessType" }; +const char* AllowedNSSAI::fld_name(int p_index) const { return fld_names[p_index]; } + +void AllowedNSSAI_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +AllowedNSSAI_template::AllowedNSSAI_template(AllowedNSSAI_template* p_precondition, AllowedNSSAI_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +AllowedNSSAI_template::AllowedNSSAI_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +AllowedNSSAI_template::~AllowedNSSAI_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean AllowedNSSAI_template::match_dynamic(const Base_Type* match_value) const +{ +const AllowedNSSAI* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +AllowedNSSAI_template& AllowedNSSAI_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +AllowedNSSAI_template& AllowedNSSAI_template::operator=(const AllowedNSSAI& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +AllowedNSSAI_template& AllowedNSSAI_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +AllowedNSSAI_template& AllowedNSSAI_template::operator=(const AllowedNSSAI_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +AllowedNSSAI AllowedNSSAI_template::valueof() const +{ +AllowedNSSAI ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& AllowedNSSAI_template::allowedNSSAI() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& AllowedNSSAI_template::allowedNSSAI() const { return *(static_cast(get_at(0))); } +BITSTRING_template& AllowedNSSAI_template::spareBits() { return *(static_cast(get_at(1))); } +const BITSTRING_template& AllowedNSSAI_template::spareBits() const { return *(static_cast(get_at(1))); } +BITSTRING_template& AllowedNSSAI_template::accessType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& AllowedNSSAI_template::accessType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* AllowedNSSAI_template::get_descriptor() const { return &AllowedNSSAI_descr_; } +const char* AllowedNSSAI_template::fld_name(int p_index) const { return AllowedNSSAI::fld_names[p_index]; } +void NSSAI__DELETE__RESPONSE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +NSSAI__DELETE__RESPONSE::NSSAI__DELETE__RESPONSE() : Record_Type() { init_vec(); } + +NSSAI__DELETE__RESPONSE::NSSAI__DELETE__RESPONSE(const NSSAI__DELETE__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +NSSAI__DELETE__RESPONSE::NSSAI__DELETE__RESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NSSAI__DELETE__RESPONSE::get_descriptor() const { return &NSSAI__DELETE__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* NSSAI__DELETE__RESPONSE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* NSSAI__DELETE__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NSSAI__DELETE__RESPONSE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* NSSAI__DELETE__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +void NSSAI__DELETE__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NSSAI__DELETE__RESPONSE_template::NSSAI__DELETE__RESPONSE_template(NSSAI__DELETE__RESPONSE_template* p_precondition, NSSAI__DELETE__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NSSAI__DELETE__RESPONSE_template::NSSAI__DELETE__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NSSAI__DELETE__RESPONSE_template::~NSSAI__DELETE__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NSSAI__DELETE__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const NSSAI__DELETE__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NSSAI__DELETE__RESPONSE_template& NSSAI__DELETE__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NSSAI__DELETE__RESPONSE_template& NSSAI__DELETE__RESPONSE_template::operator=(const NSSAI__DELETE__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NSSAI__DELETE__RESPONSE_template& NSSAI__DELETE__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NSSAI__DELETE__RESPONSE_template& NSSAI__DELETE__RESPONSE_template::operator=(const NSSAI__DELETE__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NSSAI__DELETE__RESPONSE NSSAI__DELETE__RESPONSE_template::valueof() const +{ +NSSAI__DELETE__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NSSAI__DELETE__RESPONSE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NSSAI__DELETE__RESPONSE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NSSAI__DELETE__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NSSAI__DELETE__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& NSSAI__DELETE__RESPONSE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& NSSAI__DELETE__RESPONSE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NSSAI__DELETE__RESPONSE_template::get_descriptor() const { return &NSSAI__DELETE__RESPONSE_descr_; } +const char* NSSAI__DELETE__RESPONSE_template::fld_name(int p_index) const { return NSSAI__DELETE__RESPONSE::fld_names[p_index]; } +void UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST() : Record_Type() { init_vec(); } + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::get_descriptor() const { return &UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_descr_; } +const TTCN_Typedescriptor_t* UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template* p_precondition, UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::~UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::valueof() const +{ +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::get_descriptor() const { return &UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_descr_; } +const char* UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template::fld_name(int p_index) const { return UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST::fld_names[p_index]; } +void NR__SidelinkCounter::init_vec() { fld_vec[0]=&field_iei; fld_vec[1]=&field_iel; fld_vec[2]=&field_counterValue; } + +NR__SidelinkCounter::NR__SidelinkCounter() : Record_Type() { init_vec(); } + +NR__SidelinkCounter::NR__SidelinkCounter(const NR__SidelinkCounter& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_iei.is_bound() ) + field_iei = other_value.field_iei; +if (other_value.field_iel.is_bound() ) + field_iel = other_value.field_iel; +if (other_value.field_counterValue.is_bound() ) + field_counterValue = other_value.field_counterValue; +init_vec(); +} + +NR__SidelinkCounter::NR__SidelinkCounter(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const PacketCounterValueList& par_counterValue) : field_iei(par_iei), + field_iel(par_iel), + field_counterValue(par_counterValue) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NR__SidelinkCounter::get_descriptor() const { return &NR__SidelinkCounter_descr_; } +const TTCN_Typedescriptor_t* NR__SidelinkCounter::fld_descriptors[] = { &NAS__CommonTypeDefs::IEI8__Type_descr_, &NAS__CommonTypeDefs::Type4Length__Type_descr_, &PacketCounterValueList_descr_ }; +const TTCN_Typedescriptor_t* NR__SidelinkCounter::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NR__SidelinkCounter::fld_names[] = { "iei", "iel", "counterValue" }; +const char* NR__SidelinkCounter::fld_name(int p_index) const { return fld_names[p_index]; } + +void NR__SidelinkCounter_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[2] = was_any ? new PacketCounterValueList_template(ANY_VALUE) : new PacketCounterValueList_template; +} +} + +NR__SidelinkCounter_template::NR__SidelinkCounter_template(NR__SidelinkCounter_template* p_precondition, NR__SidelinkCounter_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NR__SidelinkCounter_template::NR__SidelinkCounter_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NR__SidelinkCounter_template::~NR__SidelinkCounter_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NR__SidelinkCounter_template::match_dynamic(const Base_Type* match_value) const +{ +const NR__SidelinkCounter* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NR__SidelinkCounter_template& NR__SidelinkCounter_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NR__SidelinkCounter_template& NR__SidelinkCounter_template::operator=(const NR__SidelinkCounter& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NR__SidelinkCounter_template& NR__SidelinkCounter_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NR__SidelinkCounter_template& NR__SidelinkCounter_template::operator=(const NR__SidelinkCounter_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NR__SidelinkCounter NR__SidelinkCounter_template::valueof() const +{ +NR__SidelinkCounter ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NR__SidelinkCounter_template::iei() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NR__SidelinkCounter_template::iei() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NR__SidelinkCounter_template::iel() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NR__SidelinkCounter_template::iel() const { return *(static_cast(get_at(1))); } +PacketCounterValueList_template& NR__SidelinkCounter_template::counterValue() { return *(static_cast(get_at(2))); } +const PacketCounterValueList_template& NR__SidelinkCounter_template::counterValue() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NR__SidelinkCounter_template::get_descriptor() const { return &NR__SidelinkCounter_descr_; } +const char* NR__SidelinkCounter_template::fld_name(int p_index) const { return NR__SidelinkCounter::fld_names[p_index]; } +void UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_pscch; fld_vec[4]=&field_stch; fld_vec[5]=&field_pssch; } + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE() : Record_Type() { init_vec(); } + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_pscch.is_bound() ) + field_pscch = other_value.field_pscch; +if (other_value.field_stch.is_bound() ) + field_stch = other_value.field_stch; +if (other_value.field_pssch.is_bound() ) + field_pssch = other_value.field_pssch; +init_vec(); +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_pscch, + const OPTIONAL& par_stch, + const OPTIONAL& par_pssch) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_pscch(par_pscch), + field_stch(par_stch), + field_pssch(par_pssch) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::get_descriptor() const { return &UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &NR__SidelinkCounter_descr_, &NR__SidelinkCounter_descr_, &NR__SidelinkCounter_descr_ }; +const TTCN_Typedescriptor_t* UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "pscch", "stch", "pssch" }; +const char* UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +const int UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::optional_indexes[] = { 3, 4, 5, -1 }; +const int* UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::get_optional_indexes() const { return optional_indexes; } + +const int UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::optional_indexes_asn[] = { 3, 4, 5, -1 }; +const int* UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 6; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new NR__SidelinkCounter_template(ANY_OR_OMIT) : new NR__SidelinkCounter_template; +single_value.value_elements[4] = was_any ? new NR__SidelinkCounter_template(ANY_OR_OMIT) : new NR__SidelinkCounter_template; +single_value.value_elements[5] = was_any ? new NR__SidelinkCounter_template(ANY_OR_OMIT) : new NR__SidelinkCounter_template; +} +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template* p_precondition, UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::~UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::valueof() const +{ +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::messageType() const { return *(static_cast(get_at(2))); } +NR__SidelinkCounter_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::pscch() { return *(static_cast(get_at(3))); } +const NR__SidelinkCounter_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::pscch() const { return *(static_cast(get_at(3))); } +NR__SidelinkCounter_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::stch() { return *(static_cast(get_at(4))); } +const NR__SidelinkCounter_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::stch() const { return *(static_cast(get_at(4))); } +NR__SidelinkCounter_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::pssch() { return *(static_cast(get_at(5))); } +const NR__SidelinkCounter_template& UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::pssch() const { return *(static_cast(get_at(5))); } +const TTCN_Typedescriptor_t* UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::get_descriptor() const { return &UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_descr_; } +const char* UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template::fld_name(int p_index) const { return UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE::fld_names[p_index]; } +void S1ToN1TransparentContainer::init_vec() { fld_vec[0]=&field_mac; fld_vec[1]=&field_ciphAlg; fld_vec[2]=&field_intAlg; fld_vec[3]=&field_spareBit; fld_vec[4]=&field_ncc; fld_vec[5]=&field_tsc; fld_vec[6]=&field_ksi5G; fld_vec[7]=&field_spare; } + +S1ToN1TransparentContainer::S1ToN1TransparentContainer() : Record_Type() { init_vec(); } + +S1ToN1TransparentContainer::S1ToN1TransparentContainer(const S1ToN1TransparentContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_mac.is_bound() ) + field_mac = other_value.field_mac; +if (other_value.field_ciphAlg.is_bound() ) + field_ciphAlg = other_value.field_ciphAlg; +if (other_value.field_intAlg.is_bound() ) + field_intAlg = other_value.field_intAlg; +if (other_value.field_spareBit.is_bound() ) + field_spareBit = other_value.field_spareBit; +if (other_value.field_ncc.is_bound() ) + field_ncc = other_value.field_ncc; +if (other_value.field_tsc.is_bound() ) + field_tsc = other_value.field_tsc; +if (other_value.field_ksi5G.is_bound() ) + field_ksi5G = other_value.field_ksi5G; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +init_vec(); +} + +S1ToN1TransparentContainer::S1ToN1TransparentContainer(const OPTIONAL& par_mac, + const BITSTRING& par_ciphAlg, + const BITSTRING& par_intAlg, + const BITSTRING& par_spareBit, + const BITSTRING& par_ncc, + const BITSTRING& par_tsc, + const BITSTRING& par_ksi5G, + const OCTETSTRING& par_spare) : field_mac(par_mac), + field_ciphAlg(par_ciphAlg), + field_intAlg(par_intAlg), + field_spareBit(par_spareBit), + field_ncc(par_ncc), + field_tsc(par_tsc), + field_ksi5G(par_ksi5G), + field_spare(par_spare) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* S1ToN1TransparentContainer::get_descriptor() const { return &S1ToN1TransparentContainer_descr_; } +const TTCN_Typedescriptor_t* S1ToN1TransparentContainer::fld_descriptors[] = { &CommonDefs::O4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::O2__Type_descr_ }; +const TTCN_Typedescriptor_t* S1ToN1TransparentContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* S1ToN1TransparentContainer::fld_names[] = { "mac", "ciphAlg", "intAlg", "spareBit", "ncc", "tsc", "ksi5G", "spare" }; +const char* S1ToN1TransparentContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int S1ToN1TransparentContainer::optional_indexes[] = { 0, -1 }; +const int* S1ToN1TransparentContainer::get_optional_indexes() const { return optional_indexes; } + +const int S1ToN1TransparentContainer::optional_indexes_asn[] = { 0, -1 }; +const int* S1ToN1TransparentContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void S1ToN1TransparentContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +S1ToN1TransparentContainer_template::S1ToN1TransparentContainer_template(S1ToN1TransparentContainer_template* p_precondition, S1ToN1TransparentContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +S1ToN1TransparentContainer_template::S1ToN1TransparentContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +S1ToN1TransparentContainer_template::~S1ToN1TransparentContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean S1ToN1TransparentContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const S1ToN1TransparentContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +S1ToN1TransparentContainer_template& S1ToN1TransparentContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +S1ToN1TransparentContainer_template& S1ToN1TransparentContainer_template::operator=(const S1ToN1TransparentContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +S1ToN1TransparentContainer_template& S1ToN1TransparentContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +S1ToN1TransparentContainer_template& S1ToN1TransparentContainer_template::operator=(const S1ToN1TransparentContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +S1ToN1TransparentContainer S1ToN1TransparentContainer_template::valueof() const +{ +S1ToN1TransparentContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& S1ToN1TransparentContainer_template::mac() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& S1ToN1TransparentContainer_template::mac() const { return *(static_cast(get_at(0))); } +BITSTRING_template& S1ToN1TransparentContainer_template::ciphAlg() { return *(static_cast(get_at(1))); } +const BITSTRING_template& S1ToN1TransparentContainer_template::ciphAlg() const { return *(static_cast(get_at(1))); } +BITSTRING_template& S1ToN1TransparentContainer_template::intAlg() { return *(static_cast(get_at(2))); } +const BITSTRING_template& S1ToN1TransparentContainer_template::intAlg() const { return *(static_cast(get_at(2))); } +BITSTRING_template& S1ToN1TransparentContainer_template::spareBit() { return *(static_cast(get_at(3))); } +const BITSTRING_template& S1ToN1TransparentContainer_template::spareBit() const { return *(static_cast(get_at(3))); } +BITSTRING_template& S1ToN1TransparentContainer_template::ncc() { return *(static_cast(get_at(4))); } +const BITSTRING_template& S1ToN1TransparentContainer_template::ncc() const { return *(static_cast(get_at(4))); } +BITSTRING_template& S1ToN1TransparentContainer_template::tsc() { return *(static_cast(get_at(5))); } +const BITSTRING_template& S1ToN1TransparentContainer_template::tsc() const { return *(static_cast(get_at(5))); } +BITSTRING_template& S1ToN1TransparentContainer_template::ksi5G() { return *(static_cast(get_at(6))); } +const BITSTRING_template& S1ToN1TransparentContainer_template::ksi5G() const { return *(static_cast(get_at(6))); } +OCTETSTRING_template& S1ToN1TransparentContainer_template::spare() { return *(static_cast(get_at(7))); } +const OCTETSTRING_template& S1ToN1TransparentContainer_template::spare() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* S1ToN1TransparentContainer_template::get_descriptor() const { return &S1ToN1TransparentContainer_descr_; } +const char* S1ToN1TransparentContainer_template::fld_name(int p_index) const { return S1ToN1TransparentContainer::fld_names[p_index]; } +void IntraN1TransparentContainer::init_vec() { fld_vec[0]=&field_mac; fld_vec[1]=&field_ciphAlg; fld_vec[2]=&field_intAlg; fld_vec[3]=&field_spareBits; fld_vec[4]=&field_kacf; fld_vec[5]=&field_tsc; fld_vec[6]=&field_ksi5G; fld_vec[7]=&field_sequenceNum; } + +IntraN1TransparentContainer::IntraN1TransparentContainer() : Record_Type() { init_vec(); } + +IntraN1TransparentContainer::IntraN1TransparentContainer(const IntraN1TransparentContainer& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_mac.is_bound() ) + field_mac = other_value.field_mac; +if (other_value.field_ciphAlg.is_bound() ) + field_ciphAlg = other_value.field_ciphAlg; +if (other_value.field_intAlg.is_bound() ) + field_intAlg = other_value.field_intAlg; +if (other_value.field_spareBits.is_bound() ) + field_spareBits = other_value.field_spareBits; +if (other_value.field_kacf.is_bound() ) + field_kacf = other_value.field_kacf; +if (other_value.field_tsc.is_bound() ) + field_tsc = other_value.field_tsc; +if (other_value.field_ksi5G.is_bound() ) + field_ksi5G = other_value.field_ksi5G; +if (other_value.field_sequenceNum.is_bound() ) + field_sequenceNum = other_value.field_sequenceNum; +init_vec(); +} + +IntraN1TransparentContainer::IntraN1TransparentContainer(const OPTIONAL& par_mac, + const BITSTRING& par_ciphAlg, + const BITSTRING& par_intAlg, + const BITSTRING& par_spareBits, + const BITSTRING& par_kacf, + const BITSTRING& par_tsc, + const BITSTRING& par_ksi5G, + const OCTETSTRING& par_sequenceNum) : field_mac(par_mac), + field_ciphAlg(par_ciphAlg), + field_intAlg(par_intAlg), + field_spareBits(par_spareBits), + field_kacf(par_kacf), + field_tsc(par_tsc), + field_ksi5G(par_ksi5G), + field_sequenceNum(par_sequenceNum) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* IntraN1TransparentContainer::get_descriptor() const { return &IntraN1TransparentContainer_descr_; } +const TTCN_Typedescriptor_t* IntraN1TransparentContainer::fld_descriptors[] = { &CommonDefs::O4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B4__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B1__Type_descr_, &CommonDefs::B3__Type_descr_, &CommonDefs::O1__Type_descr_ }; +const TTCN_Typedescriptor_t* IntraN1TransparentContainer::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* IntraN1TransparentContainer::fld_names[] = { "mac", "ciphAlg", "intAlg", "spareBits", "kacf", "tsc", "ksi5G", "sequenceNum" }; +const char* IntraN1TransparentContainer::fld_name(int p_index) const { return fld_names[p_index]; } + +const int IntraN1TransparentContainer::optional_indexes[] = { 0, -1 }; +const int* IntraN1TransparentContainer::get_optional_indexes() const { return optional_indexes; } + +const int IntraN1TransparentContainer::optional_indexes_asn[] = { 0, -1 }; +const int* IntraN1TransparentContainer::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void IntraN1TransparentContainer_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 8; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[5] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[6] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[7] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +IntraN1TransparentContainer_template::IntraN1TransparentContainer_template(IntraN1TransparentContainer_template* p_precondition, IntraN1TransparentContainer_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +IntraN1TransparentContainer_template::IntraN1TransparentContainer_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +IntraN1TransparentContainer_template::~IntraN1TransparentContainer_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean IntraN1TransparentContainer_template::match_dynamic(const Base_Type* match_value) const +{ +const IntraN1TransparentContainer* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +IntraN1TransparentContainer_template& IntraN1TransparentContainer_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +IntraN1TransparentContainer_template& IntraN1TransparentContainer_template::operator=(const IntraN1TransparentContainer& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +IntraN1TransparentContainer_template& IntraN1TransparentContainer_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +IntraN1TransparentContainer_template& IntraN1TransparentContainer_template::operator=(const IntraN1TransparentContainer_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +IntraN1TransparentContainer IntraN1TransparentContainer_template::valueof() const +{ +IntraN1TransparentContainer ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& IntraN1TransparentContainer_template::mac() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& IntraN1TransparentContainer_template::mac() const { return *(static_cast(get_at(0))); } +BITSTRING_template& IntraN1TransparentContainer_template::ciphAlg() { return *(static_cast(get_at(1))); } +const BITSTRING_template& IntraN1TransparentContainer_template::ciphAlg() const { return *(static_cast(get_at(1))); } +BITSTRING_template& IntraN1TransparentContainer_template::intAlg() { return *(static_cast(get_at(2))); } +const BITSTRING_template& IntraN1TransparentContainer_template::intAlg() const { return *(static_cast(get_at(2))); } +BITSTRING_template& IntraN1TransparentContainer_template::spareBits() { return *(static_cast(get_at(3))); } +const BITSTRING_template& IntraN1TransparentContainer_template::spareBits() const { return *(static_cast(get_at(3))); } +BITSTRING_template& IntraN1TransparentContainer_template::kacf() { return *(static_cast(get_at(4))); } +const BITSTRING_template& IntraN1TransparentContainer_template::kacf() const { return *(static_cast(get_at(4))); } +BITSTRING_template& IntraN1TransparentContainer_template::tsc() { return *(static_cast(get_at(5))); } +const BITSTRING_template& IntraN1TransparentContainer_template::tsc() const { return *(static_cast(get_at(5))); } +BITSTRING_template& IntraN1TransparentContainer_template::ksi5G() { return *(static_cast(get_at(6))); } +const BITSTRING_template& IntraN1TransparentContainer_template::ksi5G() const { return *(static_cast(get_at(6))); } +OCTETSTRING_template& IntraN1TransparentContainer_template::sequenceNum() { return *(static_cast(get_at(7))); } +const OCTETSTRING_template& IntraN1TransparentContainer_template::sequenceNum() const { return *(static_cast(get_at(7))); } +const TTCN_Typedescriptor_t* IntraN1TransparentContainer_template::get_descriptor() const { return &IntraN1TransparentContainer_descr_; } +const char* IntraN1TransparentContainer_template::fld_name(int p_index) const { return IntraN1TransparentContainer::fld_names[p_index]; } +void SET__UAI__REQUEST::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; fld_vec[3]=&field_spare; fld_vec[4]=&field_preferredRRCState; } + +SET__UAI__REQUEST::SET__UAI__REQUEST() : Record_Type() { init_vec(); } + +SET__UAI__REQUEST::SET__UAI__REQUEST(const SET__UAI__REQUEST& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +if (other_value.field_spare.is_bound() ) + field_spare = other_value.field_spare; +if (other_value.field_preferredRRCState.is_bound() ) + field_preferredRRCState = other_value.field_preferredRRCState; +init_vec(); +} + +SET__UAI__REQUEST::SET__UAI__REQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_spare, + const BITSTRING& par_preferredRRCState) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType), + field_spare(par_spare), + field_preferredRRCState(par_preferredRRCState) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SET__UAI__REQUEST::get_descriptor() const { return &SET__UAI__REQUEST_descr_; } +const TTCN_Typedescriptor_t* SET__UAI__REQUEST::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_, &CommonDefs::B6__Type_descr_, &CommonDefs::B2__Type_descr_ }; +const TTCN_Typedescriptor_t* SET__UAI__REQUEST::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SET__UAI__REQUEST::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType", "spare", "preferredRRCState" }; +const char* SET__UAI__REQUEST::fld_name(int p_index) const { return fld_names[p_index]; } + +void SET__UAI__REQUEST_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 5; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[3] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[4] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SET__UAI__REQUEST_template::SET__UAI__REQUEST_template(SET__UAI__REQUEST_template* p_precondition, SET__UAI__REQUEST_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SET__UAI__REQUEST_template::SET__UAI__REQUEST_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SET__UAI__REQUEST_template::~SET__UAI__REQUEST_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SET__UAI__REQUEST_template::match_dynamic(const Base_Type* match_value) const +{ +const SET__UAI__REQUEST* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SET__UAI__REQUEST_template& SET__UAI__REQUEST_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SET__UAI__REQUEST_template& SET__UAI__REQUEST_template::operator=(const SET__UAI__REQUEST& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SET__UAI__REQUEST_template& SET__UAI__REQUEST_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SET__UAI__REQUEST_template& SET__UAI__REQUEST_template::operator=(const SET__UAI__REQUEST_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SET__UAI__REQUEST SET__UAI__REQUEST_template::valueof() const +{ +SET__UAI__REQUEST ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SET__UAI__REQUEST_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SET__UAI__REQUEST_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SET__UAI__REQUEST_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SET__UAI__REQUEST_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SET__UAI__REQUEST_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SET__UAI__REQUEST_template::messageType() const { return *(static_cast(get_at(2))); } +BITSTRING_template& SET__UAI__REQUEST_template::spare() { return *(static_cast(get_at(3))); } +const BITSTRING_template& SET__UAI__REQUEST_template::spare() const { return *(static_cast(get_at(3))); } +BITSTRING_template& SET__UAI__REQUEST_template::preferredRRCState() { return *(static_cast(get_at(4))); } +const BITSTRING_template& SET__UAI__REQUEST_template::preferredRRCState() const { return *(static_cast(get_at(4))); } +const TTCN_Typedescriptor_t* SET__UAI__REQUEST_template::get_descriptor() const { return &SET__UAI__REQUEST_descr_; } +const char* SET__UAI__REQUEST_template::fld_name(int p_index) const { return SET__UAI__REQUEST::fld_names[p_index]; } +void SET__UAI__RESPONSE::init_vec() { fld_vec[0]=&field_skipIndicator; fld_vec[1]=&field_protocolDiscriminator; fld_vec[2]=&field_messageType; } + +SET__UAI__RESPONSE::SET__UAI__RESPONSE() : Record_Type() { init_vec(); } + +SET__UAI__RESPONSE::SET__UAI__RESPONSE(const SET__UAI__RESPONSE& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_skipIndicator.is_bound() ) + field_skipIndicator = other_value.field_skipIndicator; +if (other_value.field_protocolDiscriminator.is_bound() ) + field_protocolDiscriminator = other_value.field_protocolDiscriminator; +if (other_value.field_messageType.is_bound() ) + field_messageType = other_value.field_messageType; +init_vec(); +} + +SET__UAI__RESPONSE::SET__UAI__RESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType) : field_skipIndicator(par_skipIndicator), + field_protocolDiscriminator(par_protocolDiscriminator), + field_messageType(par_messageType) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* SET__UAI__RESPONSE::get_descriptor() const { return &SET__UAI__RESPONSE_descr_; } +const TTCN_Typedescriptor_t* SET__UAI__RESPONSE::fld_descriptors[] = { &NAS__CommonTypeDefs::SkipIndicator_descr_, &NAS__CommonTypeDefs::ProtocolDiscriminator_descr_, &NAS__CommonTypeDefs::MessageType_descr_ }; +const TTCN_Typedescriptor_t* SET__UAI__RESPONSE::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* SET__UAI__RESPONSE::fld_names[] = { "skipIndicator", "protocolDiscriminator", "messageType" }; +const char* SET__UAI__RESPONSE::fld_name(int p_index) const { return fld_names[p_index]; } + +void SET__UAI__RESPONSE_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[2] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +SET__UAI__RESPONSE_template::SET__UAI__RESPONSE_template(SET__UAI__RESPONSE_template* p_precondition, SET__UAI__RESPONSE_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +SET__UAI__RESPONSE_template::SET__UAI__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +SET__UAI__RESPONSE_template::~SET__UAI__RESPONSE_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean SET__UAI__RESPONSE_template::match_dynamic(const Base_Type* match_value) const +{ +const SET__UAI__RESPONSE* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +SET__UAI__RESPONSE_template& SET__UAI__RESPONSE_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +SET__UAI__RESPONSE_template& SET__UAI__RESPONSE_template::operator=(const SET__UAI__RESPONSE& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +SET__UAI__RESPONSE_template& SET__UAI__RESPONSE_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +SET__UAI__RESPONSE_template& SET__UAI__RESPONSE_template::operator=(const SET__UAI__RESPONSE_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +SET__UAI__RESPONSE SET__UAI__RESPONSE_template::valueof() const +{ +SET__UAI__RESPONSE ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& SET__UAI__RESPONSE_template::skipIndicator() { return *(static_cast(get_at(0))); } +const BITSTRING_template& SET__UAI__RESPONSE_template::skipIndicator() const { return *(static_cast(get_at(0))); } +BITSTRING_template& SET__UAI__RESPONSE_template::protocolDiscriminator() { return *(static_cast(get_at(1))); } +const BITSTRING_template& SET__UAI__RESPONSE_template::protocolDiscriminator() const { return *(static_cast(get_at(1))); } +BITSTRING_template& SET__UAI__RESPONSE_template::messageType() { return *(static_cast(get_at(2))); } +const BITSTRING_template& SET__UAI__RESPONSE_template::messageType() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* SET__UAI__RESPONSE_template::get_descriptor() const { return &SET__UAI__RESPONSE_descr_; } +const char* SET__UAI__RESPONSE_template::fld_name(int p_index) const { return SET__UAI__RESPONSE::fld_names[p_index]; } + +/* Bodies of functions, altsteps and testcases */ + +S__NSSAI__TypeList_template operator+(template_sel left_template, const S__NSSAI__TypeList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = S__NSSAI__TypeList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return S__NSSAI__TypeList_template(ANY_VALUE); +} +S__NSSAI__TypeList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +S__NSSAI__TypeList_template operator+(const S__NSSAI__TypeList& left_value, const S__NSSAI__TypeList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = S__NSSAI__TypeList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +S__NSSAI__TypeList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +S__NSSAI__TypeList_template operator+(template_sel left_template, const S__NSSAI__TypeList& right_value) +{ +int res_length = S__NSSAI__TypeList_template::get_length_for_concat(left_template) + S__NSSAI__TypeList_template::get_length_for_concat(right_value); +S__NSSAI__TypeList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +S__NSSAI__TypeList_template operator+(const S__NSSAI__TypeList& left_value, template_sel right_template) +{ +int res_length = S__NSSAI__TypeList_template::get_length_for_concat(left_value) + S__NSSAI__TypeList_template::get_length_for_concat(right_template); +S__NSSAI__TypeList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +MappedNSSAI_s__NSSAI_template operator+(template_sel left_template, const MappedNSSAI_s__NSSAI_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = MappedNSSAI_s__NSSAI_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return MappedNSSAI_s__NSSAI_template(ANY_VALUE); +} +MappedNSSAI_s__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +MappedNSSAI_s__NSSAI_template operator+(const MappedNSSAI_s__NSSAI& left_value, const MappedNSSAI_s__NSSAI_template& right_template) +{ +boolean dummy = FALSE; +int res_length = MappedNSSAI_s__NSSAI_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +MappedNSSAI_s__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +MappedNSSAI_s__NSSAI_template operator+(template_sel left_template, const MappedNSSAI_s__NSSAI& right_value) +{ +int res_length = MappedNSSAI_s__NSSAI_template::get_length_for_concat(left_template) + MappedNSSAI_s__NSSAI_template::get_length_for_concat(right_value); +MappedNSSAI_s__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +MappedNSSAI_s__NSSAI_template operator+(const MappedNSSAI_s__NSSAI& left_value, template_sel right_template) +{ +int res_length = MappedNSSAI_s__NSSAI_template::get_length_for_concat(left_value) + MappedNSSAI_s__NSSAI_template::get_length_for_concat(right_template); +MappedNSSAI_s__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +ServiceLvlAAParamList_template operator+(template_sel left_template, const ServiceLvlAAParamList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = ServiceLvlAAParamList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return ServiceLvlAAParamList_template(ANY_VALUE); +} +ServiceLvlAAParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +ServiceLvlAAParamList_template operator+(const ServiceLvlAAParamList& left_value, const ServiceLvlAAParamList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = ServiceLvlAAParamList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +ServiceLvlAAParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +ServiceLvlAAParamList_template operator+(template_sel left_template, const ServiceLvlAAParamList& right_value) +{ +int res_length = ServiceLvlAAParamList_template::get_length_for_concat(left_template) + ServiceLvlAAParamList_template::get_length_for_concat(right_value); +ServiceLvlAAParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +ServiceLvlAAParamList_template operator+(const ServiceLvlAAParamList& left_value, template_sel right_template) +{ +int res_length = ServiceLvlAAParamList_template::get_length_for_concat(left_value) + ServiceLvlAAParamList_template::get_length_for_concat(right_template); +ServiceLvlAAParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +PEIPS__AssistIEList_template operator+(template_sel left_template, const PEIPS__AssistIEList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = PEIPS__AssistIEList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return PEIPS__AssistIEList_template(ANY_VALUE); +} +PEIPS__AssistIEList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +PEIPS__AssistIEList_template operator+(const PEIPS__AssistIEList& left_value, const PEIPS__AssistIEList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = PEIPS__AssistIEList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +PEIPS__AssistIEList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +PEIPS__AssistIEList_template operator+(template_sel left_template, const PEIPS__AssistIEList& right_value) +{ +int res_length = PEIPS__AssistIEList_template::get_length_for_concat(left_template) + PEIPS__AssistIEList_template::get_length_for_concat(right_value); +PEIPS__AssistIEList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +PEIPS__AssistIEList_template operator+(const PEIPS__AssistIEList& left_value, template_sel right_template) +{ +int res_length = PEIPS__AssistIEList_template::get_length_for_concat(left_value) + PEIPS__AssistIEList_template::get_length_for_concat(right_template); +PEIPS__AssistIEList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(template_sel left_template, const NG__TrackingAreaIdList__LV_listOfPartialTais_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__TrackingAreaIdList__LV_listOfPartialTais_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__TrackingAreaIdList__LV_listOfPartialTais_template(ANY_VALUE); +} +NG__TrackingAreaIdList__LV_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais& left_value, const NG__TrackingAreaIdList__LV_listOfPartialTais_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__TrackingAreaIdList__LV_listOfPartialTais_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__TrackingAreaIdList__LV_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(template_sel left_template, const NG__TrackingAreaIdList__LV_listOfPartialTais& right_value) +{ +int res_length = NG__TrackingAreaIdList__LV_listOfPartialTais_template::get_length_for_concat(left_template) + NG__TrackingAreaIdList__LV_listOfPartialTais_template::get_length_for_concat(right_value); +NG__TrackingAreaIdList__LV_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais& left_value, template_sel right_template) +{ +int res_length = NG__TrackingAreaIdList__LV_listOfPartialTais_template::get_length_for_concat(left_value) + NG__TrackingAreaIdList__LV_listOfPartialTais_template::get_length_for_concat(right_template); +NG__TrackingAreaIdList__LV_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__Type0List_template operator+(template_sel left_template, const NG__Type0List_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__Type0List_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__Type0List_template(ANY_VALUE); +} +NG__Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__Type0List_template operator+(const NG__Type0List& left_value, const NG__Type0List_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__Type0List_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__Type0List_template operator+(template_sel left_template, const NG__Type0List& right_value) +{ +int res_length = NG__Type0List_template::get_length_for_concat(left_template) + NG__Type0List_template::get_length_for_concat(right_value); +NG__Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__Type0List_template operator+(const NG__Type0List& left_value, template_sel right_template) +{ +int res_length = NG__Type0List_template::get_length_for_concat(left_value) + NG__Type0List_template::get_length_for_concat(right_template); +NG__Type0List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__Type1List_template operator+(template_sel left_template, const NG__Type1List_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__Type1List_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__Type1List_template(ANY_VALUE); +} +NG__Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__Type1List_template operator+(const NG__Type1List& left_value, const NG__Type1List_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__Type1List_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__Type1List_template operator+(template_sel left_template, const NG__Type1List& right_value) +{ +int res_length = NG__Type1List_template::get_length_for_concat(left_template) + NG__Type1List_template::get_length_for_concat(right_value); +NG__Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__Type1List_template operator+(const NG__Type1List& left_value, template_sel right_template) +{ +int res_length = NG__Type1List_template::get_length_for_concat(left_value) + NG__Type1List_template::get_length_for_concat(right_template); +NG__Type1List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__Type2List_template operator+(template_sel left_template, const NG__Type2List_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__Type2List_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__Type2List_template(ANY_VALUE); +} +NG__Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__Type2List_template operator+(const NG__Type2List& left_value, const NG__Type2List_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__Type2List_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__Type2List_template operator+(template_sel left_template, const NG__Type2List& right_value) +{ +int res_length = NG__Type2List_template::get_length_for_concat(left_template) + NG__Type2List_template::get_length_for_concat(right_value); +NG__Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__Type2List_template operator+(const NG__Type2List& left_value, template_sel right_template) +{ +int res_length = NG__Type2List_template::get_length_for_concat(left_value) + NG__Type2List_template::get_length_for_concat(right_template); +NG__Type2List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__PlmnAndTacs_template operator+(template_sel left_template, const NG__PlmnAndTacs_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__PlmnAndTacs_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__PlmnAndTacs_template(ANY_VALUE); +} +NG__PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__PlmnAndTacs_template operator+(const NG__PlmnAndTacs& left_value, const NG__PlmnAndTacs_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__PlmnAndTacs_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__PlmnAndTacs_template operator+(template_sel left_template, const NG__PlmnAndTacs& right_value) +{ +int res_length = NG__PlmnAndTacs_template::get_length_for_concat(left_template) + NG__PlmnAndTacs_template::get_length_for_concat(right_value); +NG__PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__PlmnAndTacs_template operator+(const NG__PlmnAndTacs& left_value, template_sel right_template) +{ +int res_length = NG__PlmnAndTacs_template::get_length_for_concat(left_value) + NG__PlmnAndTacs_template::get_length_for_concat(right_template); +NG__PlmnAndTacs_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +RejectedNSSAI_rejectS__NSSAI_template operator+(template_sel left_template, const RejectedNSSAI_rejectS__NSSAI_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = RejectedNSSAI_rejectS__NSSAI_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return RejectedNSSAI_rejectS__NSSAI_template(ANY_VALUE); +} +RejectedNSSAI_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +RejectedNSSAI_rejectS__NSSAI_template operator+(const RejectedNSSAI_rejectS__NSSAI& left_value, const RejectedNSSAI_rejectS__NSSAI_template& right_template) +{ +boolean dummy = FALSE; +int res_length = RejectedNSSAI_rejectS__NSSAI_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +RejectedNSSAI_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +RejectedNSSAI_rejectS__NSSAI_template operator+(template_sel left_template, const RejectedNSSAI_rejectS__NSSAI& right_value) +{ +int res_length = RejectedNSSAI_rejectS__NSSAI_template::get_length_for_concat(left_template) + RejectedNSSAI_rejectS__NSSAI_template::get_length_for_concat(right_value); +RejectedNSSAI_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +RejectedNSSAI_rejectS__NSSAI_template operator+(const RejectedNSSAI_rejectS__NSSAI& left_value, template_sel right_template) +{ +int res_length = RejectedNSSAI_rejectS__NSSAI_template::get_length_for_concat(left_value) + RejectedNSSAI_rejectS__NSSAI_template::get_length_for_concat(right_template); +RejectedNSSAI_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +PDU__SessionReactivationError_errorCause_template operator+(template_sel left_template, const PDU__SessionReactivationError_errorCause_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = PDU__SessionReactivationError_errorCause_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return PDU__SessionReactivationError_errorCause_template(ANY_VALUE); +} +PDU__SessionReactivationError_errorCause_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +PDU__SessionReactivationError_errorCause_template operator+(const PDU__SessionReactivationError_errorCause& left_value, const PDU__SessionReactivationError_errorCause_template& right_template) +{ +boolean dummy = FALSE; +int res_length = PDU__SessionReactivationError_errorCause_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +PDU__SessionReactivationError_errorCause_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +PDU__SessionReactivationError_errorCause_template operator+(template_sel left_template, const PDU__SessionReactivationError_errorCause& right_value) +{ +int res_length = PDU__SessionReactivationError_errorCause_template::get_length_for_concat(left_template) + PDU__SessionReactivationError_errorCause_template::get_length_for_concat(right_value); +PDU__SessionReactivationError_errorCause_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +PDU__SessionReactivationError_errorCause_template operator+(const PDU__SessionReactivationError_errorCause& left_value, template_sel right_template) +{ +int res_length = PDU__SessionReactivationError_errorCause_template::get_length_for_concat(left_value) + PDU__SessionReactivationError_errorCause_template::get_length_for_concat(right_template); +PDU__SessionReactivationError_errorCause_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +LADN__Info_listOfLADN_template operator+(template_sel left_template, const LADN__Info_listOfLADN_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = LADN__Info_listOfLADN_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return LADN__Info_listOfLADN_template(ANY_VALUE); +} +LADN__Info_listOfLADN_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +LADN__Info_listOfLADN_template operator+(const LADN__Info_listOfLADN& left_value, const LADN__Info_listOfLADN_template& right_template) +{ +boolean dummy = FALSE; +int res_length = LADN__Info_listOfLADN_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +LADN__Info_listOfLADN_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +LADN__Info_listOfLADN_template operator+(template_sel left_template, const LADN__Info_listOfLADN& right_value) +{ +int res_length = LADN__Info_listOfLADN_template::get_length_for_concat(left_template) + LADN__Info_listOfLADN_template::get_length_for_concat(right_value); +LADN__Info_listOfLADN_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +LADN__Info_listOfLADN_template operator+(const LADN__Info_listOfLADN& left_value, template_sel right_template) +{ +int res_length = LADN__Info_listOfLADN_template::get_length_for_concat(left_value) + LADN__Info_listOfLADN_template::get_length_for_concat(right_template); +LADN__Info_listOfLADN_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +ListOfLADN_listOfPartialTais_template operator+(template_sel left_template, const ListOfLADN_listOfPartialTais_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = ListOfLADN_listOfPartialTais_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return ListOfLADN_listOfPartialTais_template(ANY_VALUE); +} +ListOfLADN_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +ListOfLADN_listOfPartialTais_template operator+(const ListOfLADN_listOfPartialTais& left_value, const ListOfLADN_listOfPartialTais_template& right_template) +{ +boolean dummy = FALSE; +int res_length = ListOfLADN_listOfPartialTais_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +ListOfLADN_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +ListOfLADN_listOfPartialTais_template operator+(template_sel left_template, const ListOfLADN_listOfPartialTais& right_value) +{ +int res_length = ListOfLADN_listOfPartialTais_template::get_length_for_concat(left_template) + ListOfLADN_listOfPartialTais_template::get_length_for_concat(right_value); +ListOfLADN_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +ListOfLADN_listOfPartialTais_template operator+(const ListOfLADN_listOfPartialTais& left_value, template_sel right_template) +{ +int res_length = ListOfLADN_listOfPartialTais_template::get_length_for_concat(left_value) + ListOfLADN_listOfPartialTais_template::get_length_for_concat(right_template); +ListOfLADN_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +OperatorAccessCatDefinitions_definitions_template operator+(template_sel left_template, const OperatorAccessCatDefinitions_definitions_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = OperatorAccessCatDefinitions_definitions_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return OperatorAccessCatDefinitions_definitions_template(ANY_VALUE); +} +OperatorAccessCatDefinitions_definitions_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +OperatorAccessCatDefinitions_definitions_template operator+(const OperatorAccessCatDefinitions_definitions& left_value, const OperatorAccessCatDefinitions_definitions_template& right_template) +{ +boolean dummy = FALSE; +int res_length = OperatorAccessCatDefinitions_definitions_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +OperatorAccessCatDefinitions_definitions_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +OperatorAccessCatDefinitions_definitions_template operator+(template_sel left_template, const OperatorAccessCatDefinitions_definitions& right_value) +{ +int res_length = OperatorAccessCatDefinitions_definitions_template::get_length_for_concat(left_template) + OperatorAccessCatDefinitions_definitions_template::get_length_for_concat(right_value); +OperatorAccessCatDefinitions_definitions_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +OperatorAccessCatDefinitions_definitions_template operator+(const OperatorAccessCatDefinitions_definitions& left_value, template_sel right_template) +{ +int res_length = OperatorAccessCatDefinitions_definitions_template::get_length_for_concat(left_value) + OperatorAccessCatDefinitions_definitions_template::get_length_for_concat(right_template); +OperatorAccessCatDefinitions_definitions_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__CipheringKeyData_listOfCipherKeyData_template operator+(template_sel left_template, const NG__CipheringKeyData_listOfCipherKeyData_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__CipheringKeyData_listOfCipherKeyData_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__CipheringKeyData_listOfCipherKeyData_template(ANY_VALUE); +} +NG__CipheringKeyData_listOfCipherKeyData_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__CipheringKeyData_listOfCipherKeyData_template operator+(const NG__CipheringKeyData_listOfCipherKeyData& left_value, const NG__CipheringKeyData_listOfCipherKeyData_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__CipheringKeyData_listOfCipherKeyData_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__CipheringKeyData_listOfCipherKeyData_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__CipheringKeyData_listOfCipherKeyData_template operator+(template_sel left_template, const NG__CipheringKeyData_listOfCipherKeyData& right_value) +{ +int res_length = NG__CipheringKeyData_listOfCipherKeyData_template::get_length_for_concat(left_template) + NG__CipheringKeyData_listOfCipherKeyData_template::get_length_for_concat(right_value); +NG__CipheringKeyData_listOfCipherKeyData_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__CipheringKeyData_listOfCipherKeyData_template operator+(const NG__CipheringKeyData_listOfCipherKeyData& left_value, template_sel right_template) +{ +int res_length = NG__CipheringKeyData_listOfCipherKeyData_template::get_length_for_concat(left_value) + NG__CipheringKeyData_listOfCipherKeyData_template::get_length_for_concat(right_template); +NG__CipheringKeyData_listOfCipherKeyData_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__CipherDataSet_listOfPartialTais_template operator+(template_sel left_template, const NG__CipherDataSet_listOfPartialTais_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__CipherDataSet_listOfPartialTais_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__CipherDataSet_listOfPartialTais_template(ANY_VALUE); +} +NG__CipherDataSet_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__CipherDataSet_listOfPartialTais_template operator+(const NG__CipherDataSet_listOfPartialTais& left_value, const NG__CipherDataSet_listOfPartialTais_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__CipherDataSet_listOfPartialTais_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__CipherDataSet_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__CipherDataSet_listOfPartialTais_template operator+(template_sel left_template, const NG__CipherDataSet_listOfPartialTais& right_value) +{ +int res_length = NG__CipherDataSet_listOfPartialTais_template::get_length_for_concat(left_template) + NG__CipherDataSet_listOfPartialTais_template::get_length_for_concat(right_value); +NG__CipherDataSet_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__CipherDataSet_listOfPartialTais_template operator+(const NG__CipherDataSet_listOfPartialTais& left_value, template_sel right_template) +{ +int res_length = NG__CipherDataSet_listOfPartialTais_template::get_length_for_concat(left_value) + NG__CipherDataSet_listOfPartialTais_template::get_length_for_concat(right_template); +NG__CipherDataSet_listOfPartialTais_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +CAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const CAGInfoList_listOfCAGInfos_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = CAGInfoList_listOfCAGInfos_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return CAGInfoList_listOfCAGInfos_template(ANY_VALUE); +} +CAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +CAGInfoList_listOfCAGInfos_template operator+(const CAGInfoList_listOfCAGInfos& left_value, const CAGInfoList_listOfCAGInfos_template& right_template) +{ +boolean dummy = FALSE; +int res_length = CAGInfoList_listOfCAGInfos_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +CAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +CAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const CAGInfoList_listOfCAGInfos& right_value) +{ +int res_length = CAGInfoList_listOfCAGInfos_template::get_length_for_concat(left_template) + CAGInfoList_listOfCAGInfos_template::get_length_for_concat(right_value); +CAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +CAGInfoList_listOfCAGInfos_template operator+(const CAGInfoList_listOfCAGInfos& left_value, template_sel right_template) +{ +int res_length = CAGInfoList_listOfCAGInfos_template::get_length_for_concat(left_value) + CAGInfoList_listOfCAGInfos_template::get_length_for_concat(right_template); +CAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +PartialXtdRejectedNSSAI__List_template operator+(template_sel left_template, const PartialXtdRejectedNSSAI__List_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = PartialXtdRejectedNSSAI__List_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return PartialXtdRejectedNSSAI__List_template(ANY_VALUE); +} +PartialXtdRejectedNSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +PartialXtdRejectedNSSAI__List_template operator+(const PartialXtdRejectedNSSAI__List& left_value, const PartialXtdRejectedNSSAI__List_template& right_template) +{ +boolean dummy = FALSE; +int res_length = PartialXtdRejectedNSSAI__List_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +PartialXtdRejectedNSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +PartialXtdRejectedNSSAI__List_template operator+(template_sel left_template, const PartialXtdRejectedNSSAI__List& right_value) +{ +int res_length = PartialXtdRejectedNSSAI__List_template::get_length_for_concat(left_template) + PartialXtdRejectedNSSAI__List_template::get_length_for_concat(right_value); +PartialXtdRejectedNSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +PartialXtdRejectedNSSAI__List_template operator+(const PartialXtdRejectedNSSAI__List& left_value, template_sel right_template) +{ +int res_length = PartialXtdRejectedNSSAI__List_template::get_length_for_concat(left_value) + PartialXtdRejectedNSSAI__List_template::get_length_for_concat(right_template); +PartialXtdRejectedNSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(template_sel left_template, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(ANY_VALUE); +} +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& left_value, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& right_template) +{ +boolean dummy = FALSE; +int res_length = PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(template_sel left_template, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& right_value) +{ +int res_length = PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::get_length_for_concat(left_template) + PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::get_length_for_concat(right_value); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& left_value, template_sel right_template) +{ +int res_length = PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::get_length_for_concat(left_value) + PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template::get_length_for_concat(right_template); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +XtdRejectedS__NSSAI__List_template operator+(template_sel left_template, const XtdRejectedS__NSSAI__List_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = XtdRejectedS__NSSAI__List_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return XtdRejectedS__NSSAI__List_template(ANY_VALUE); +} +XtdRejectedS__NSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +XtdRejectedS__NSSAI__List_template operator+(const XtdRejectedS__NSSAI__List& left_value, const XtdRejectedS__NSSAI__List_template& right_template) +{ +boolean dummy = FALSE; +int res_length = XtdRejectedS__NSSAI__List_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +XtdRejectedS__NSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +XtdRejectedS__NSSAI__List_template operator+(template_sel left_template, const XtdRejectedS__NSSAI__List& right_value) +{ +int res_length = XtdRejectedS__NSSAI__List_template::get_length_for_concat(left_template) + XtdRejectedS__NSSAI__List_template::get_length_for_concat(right_value); +XtdRejectedS__NSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +XtdRejectedS__NSSAI__List_template operator+(const XtdRejectedS__NSSAI__List& left_value, template_sel right_template) +{ +int res_length = XtdRejectedS__NSSAI__List_template::get_length_for_concat(left_value) + XtdRejectedS__NSSAI__List_template::get_length_for_concat(right_template); +XtdRejectedS__NSSAI__List_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NSSRG__ValueList_template operator+(template_sel left_template, const NSSRG__ValueList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NSSRG__ValueList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NSSRG__ValueList_template(ANY_VALUE); +} +NSSRG__ValueList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NSSRG__ValueList_template operator+(const NSSRG__ValueList& left_value, const NSSRG__ValueList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NSSRG__ValueList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NSSRG__ValueList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NSSRG__ValueList_template operator+(template_sel left_template, const NSSRG__ValueList& right_value) +{ +int res_length = NSSRG__ValueList_template::get_length_for_concat(left_template) + NSSRG__ValueList_template::get_length_for_concat(right_value); +NSSRG__ValueList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NSSRG__ValueList_template operator+(const NSSRG__ValueList& left_value, template_sel right_template) +{ +int res_length = NSSRG__ValueList_template::get_length_for_concat(left_value) + NSSRG__ValueList_template::get_length_for_concat(right_template); +NSSRG__ValueList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +ExtdCAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const ExtdCAGInfoList_listOfCAGInfos_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = ExtdCAGInfoList_listOfCAGInfos_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return ExtdCAGInfoList_listOfCAGInfos_template(ANY_VALUE); +} +ExtdCAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +ExtdCAGInfoList_listOfCAGInfos_template operator+(const ExtdCAGInfoList_listOfCAGInfos& left_value, const ExtdCAGInfoList_listOfCAGInfos_template& right_template) +{ +boolean dummy = FALSE; +int res_length = ExtdCAGInfoList_listOfCAGInfos_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +ExtdCAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +ExtdCAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const ExtdCAGInfoList_listOfCAGInfos& right_value) +{ +int res_length = ExtdCAGInfoList_listOfCAGInfos_template::get_length_for_concat(left_template) + ExtdCAGInfoList_listOfCAGInfos_template::get_length_for_concat(right_value); +ExtdCAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +ExtdCAGInfoList_listOfCAGInfos_template operator+(const ExtdCAGInfoList_listOfCAGInfos& left_value, template_sel right_template) +{ +int res_length = ExtdCAGInfoList_listOfCAGInfos_template::get_length_for_concat(left_value) + ExtdCAGInfoList_listOfCAGInfos_template::get_length_for_concat(right_template); +ExtdCAGInfoList_listOfCAGInfos_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NSAG__Info_nsagList_template operator+(template_sel left_template, const NSAG__Info_nsagList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NSAG__Info_nsagList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NSAG__Info_nsagList_template(ANY_VALUE); +} +NSAG__Info_nsagList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NSAG__Info_nsagList_template operator+(const NSAG__Info_nsagList& left_value, const NSAG__Info_nsagList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NSAG__Info_nsagList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NSAG__Info_nsagList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NSAG__Info_nsagList_template operator+(template_sel left_template, const NSAG__Info_nsagList& right_value) +{ +int res_length = NSAG__Info_nsagList_template::get_length_for_concat(left_template) + NSAG__Info_nsagList_template::get_length_for_concat(right_value); +NSAG__Info_nsagList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NSAG__Info_nsagList_template operator+(const NSAG__Info_nsagList& left_value, template_sel right_template) +{ +int res_length = NSAG__Info_nsagList_template::get_length_for_concat(left_value) + NSAG__Info_nsagList_template::get_length_for_concat(right_template); +NSAG__Info_nsagList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +RequestedMBSContainer_sessionInfo_template operator+(template_sel left_template, const RequestedMBSContainer_sessionInfo_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = RequestedMBSContainer_sessionInfo_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return RequestedMBSContainer_sessionInfo_template(ANY_VALUE); +} +RequestedMBSContainer_sessionInfo_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +RequestedMBSContainer_sessionInfo_template operator+(const RequestedMBSContainer_sessionInfo& left_value, const RequestedMBSContainer_sessionInfo_template& right_template) +{ +boolean dummy = FALSE; +int res_length = RequestedMBSContainer_sessionInfo_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +RequestedMBSContainer_sessionInfo_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +RequestedMBSContainer_sessionInfo_template operator+(template_sel left_template, const RequestedMBSContainer_sessionInfo& right_value) +{ +int res_length = RequestedMBSContainer_sessionInfo_template::get_length_for_concat(left_template) + RequestedMBSContainer_sessionInfo_template::get_length_for_concat(right_value); +RequestedMBSContainer_sessionInfo_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +RequestedMBSContainer_sessionInfo_template operator+(const RequestedMBSContainer_sessionInfo& left_value, template_sel right_template) +{ +int res_length = RequestedMBSContainer_sessionInfo_template::get_length_for_concat(left_value) + RequestedMBSContainer_sessionInfo_template::get_length_for_concat(right_template); +RequestedMBSContainer_sessionInfo_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +QoS__RuleList_template operator+(template_sel left_template, const QoS__RuleList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = QoS__RuleList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return QoS__RuleList_template(ANY_VALUE); +} +QoS__RuleList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoS__RuleList_template operator+(const QoS__RuleList& left_value, const QoS__RuleList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = QoS__RuleList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +QoS__RuleList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoS__RuleList_template operator+(template_sel left_template, const QoS__RuleList& right_value) +{ +int res_length = QoS__RuleList_template::get_length_for_concat(left_template) + QoS__RuleList_template::get_length_for_concat(right_value); +QoS__RuleList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +QoS__RuleList_template operator+(const QoS__RuleList& left_value, template_sel right_template) +{ +int res_length = QoS__RuleList_template::get_length_for_concat(left_value) + QoS__RuleList_template::get_length_for_concat(right_template); +QoS__RuleList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__PacketFilterList__Type1_template operator+(template_sel left_template, const NG__PacketFilterList__Type1_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__PacketFilterList__Type1_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__PacketFilterList__Type1_template(ANY_VALUE); +} +NG__PacketFilterList__Type1_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__PacketFilterList__Type1_template operator+(const NG__PacketFilterList__Type1& left_value, const NG__PacketFilterList__Type1_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__PacketFilterList__Type1_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__PacketFilterList__Type1_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__PacketFilterList__Type1_template operator+(template_sel left_template, const NG__PacketFilterList__Type1& right_value) +{ +int res_length = NG__PacketFilterList__Type1_template::get_length_for_concat(left_template) + NG__PacketFilterList__Type1_template::get_length_for_concat(right_value); +NG__PacketFilterList__Type1_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__PacketFilterList__Type1_template operator+(const NG__PacketFilterList__Type1& left_value, template_sel right_template) +{ +int res_length = NG__PacketFilterList__Type1_template::get_length_for_concat(left_value) + NG__PacketFilterList__Type1_template::get_length_for_concat(right_template); +NG__PacketFilterList__Type1_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NG__PacketFilterList__Type2_template operator+(template_sel left_template, const NG__PacketFilterList__Type2_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NG__PacketFilterList__Type2_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NG__PacketFilterList__Type2_template(ANY_VALUE); +} +NG__PacketFilterList__Type2_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__PacketFilterList__Type2_template operator+(const NG__PacketFilterList__Type2& left_value, const NG__PacketFilterList__Type2_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NG__PacketFilterList__Type2_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NG__PacketFilterList__Type2_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NG__PacketFilterList__Type2_template operator+(template_sel left_template, const NG__PacketFilterList__Type2& right_value) +{ +int res_length = NG__PacketFilterList__Type2_template::get_length_for_concat(left_template) + NG__PacketFilterList__Type2_template::get_length_for_concat(right_value); +NG__PacketFilterList__Type2_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NG__PacketFilterList__Type2_template operator+(const NG__PacketFilterList__Type2& left_value, template_sel right_template) +{ +int res_length = NG__PacketFilterList__Type2_template::get_length_for_concat(left_value) + NG__PacketFilterList__Type2_template::get_length_for_concat(right_template); +NG__PacketFilterList__Type2_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +MappedEPSBearerContexts_mappedContextList_template operator+(template_sel left_template, const MappedEPSBearerContexts_mappedContextList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = MappedEPSBearerContexts_mappedContextList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return MappedEPSBearerContexts_mappedContextList_template(ANY_VALUE); +} +MappedEPSBearerContexts_mappedContextList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +MappedEPSBearerContexts_mappedContextList_template operator+(const MappedEPSBearerContexts_mappedContextList& left_value, const MappedEPSBearerContexts_mappedContextList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = MappedEPSBearerContexts_mappedContextList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +MappedEPSBearerContexts_mappedContextList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +MappedEPSBearerContexts_mappedContextList_template operator+(template_sel left_template, const MappedEPSBearerContexts_mappedContextList& right_value) +{ +int res_length = MappedEPSBearerContexts_mappedContextList_template::get_length_for_concat(left_template) + MappedEPSBearerContexts_mappedContextList_template::get_length_for_concat(right_value); +MappedEPSBearerContexts_mappedContextList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +MappedEPSBearerContexts_mappedContextList_template operator+(const MappedEPSBearerContexts_mappedContextList& left_value, template_sel right_template) +{ +int res_length = MappedEPSBearerContexts_mappedContextList_template::get_length_for_concat(left_value) + MappedEPSBearerContexts_mappedContextList_template::get_length_for_concat(right_template); +MappedEPSBearerContexts_mappedContextList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +MappedEPSContext_epsParamsList_template operator+(template_sel left_template, const MappedEPSContext_epsParamsList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = MappedEPSContext_epsParamsList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return MappedEPSContext_epsParamsList_template(ANY_VALUE); +} +MappedEPSContext_epsParamsList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +MappedEPSContext_epsParamsList_template operator+(const MappedEPSContext_epsParamsList& left_value, const MappedEPSContext_epsParamsList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = MappedEPSContext_epsParamsList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +MappedEPSContext_epsParamsList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +MappedEPSContext_epsParamsList_template operator+(template_sel left_template, const MappedEPSContext_epsParamsList& right_value) +{ +int res_length = MappedEPSContext_epsParamsList_template::get_length_for_concat(left_template) + MappedEPSContext_epsParamsList_template::get_length_for_concat(right_value); +MappedEPSContext_epsParamsList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +MappedEPSContext_epsParamsList_template operator+(const MappedEPSContext_epsParamsList& left_value, template_sel right_template) +{ +int res_length = MappedEPSContext_epsParamsList_template::get_length_for_concat(left_value) + MappedEPSContext_epsParamsList_template::get_length_for_concat(right_template); +MappedEPSContext_epsParamsList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +QoSFlowDescr_listofFlows_template operator+(template_sel left_template, const QoSFlowDescr_listofFlows_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = QoSFlowDescr_listofFlows_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return QoSFlowDescr_listofFlows_template(ANY_VALUE); +} +QoSFlowDescr_listofFlows_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoSFlowDescr_listofFlows_template operator+(const QoSFlowDescr_listofFlows& left_value, const QoSFlowDescr_listofFlows_template& right_template) +{ +boolean dummy = FALSE; +int res_length = QoSFlowDescr_listofFlows_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +QoSFlowDescr_listofFlows_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoSFlowDescr_listofFlows_template operator+(template_sel left_template, const QoSFlowDescr_listofFlows& right_value) +{ +int res_length = QoSFlowDescr_listofFlows_template::get_length_for_concat(left_template) + QoSFlowDescr_listofFlows_template::get_length_for_concat(right_value); +QoSFlowDescr_listofFlows_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +QoSFlowDescr_listofFlows_template operator+(const QoSFlowDescr_listofFlows& left_value, template_sel right_template) +{ +int res_length = QoSFlowDescr_listofFlows_template::get_length_for_concat(left_value) + QoSFlowDescr_listofFlows_template::get_length_for_concat(right_template); +QoSFlowDescr_listofFlows_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +QoS__Flow_parameterList_template operator+(template_sel left_template, const QoS__Flow_parameterList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = QoS__Flow_parameterList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return QoS__Flow_parameterList_template(ANY_VALUE); +} +QoS__Flow_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoS__Flow_parameterList_template operator+(const QoS__Flow_parameterList& left_value, const QoS__Flow_parameterList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = QoS__Flow_parameterList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +QoS__Flow_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoS__Flow_parameterList_template operator+(template_sel left_template, const QoS__Flow_parameterList& right_value) +{ +int res_length = QoS__Flow_parameterList_template::get_length_for_concat(left_template) + QoS__Flow_parameterList_template::get_length_for_concat(right_value); +QoS__Flow_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +QoS__Flow_parameterList_template operator+(const QoS__Flow_parameterList& left_value, template_sel right_template) +{ +int res_length = QoS__Flow_parameterList_template::get_length_for_concat(left_value) + QoS__Flow_parameterList_template::get_length_for_concat(right_template); +QoS__Flow_parameterList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +ReceivedMBSContainer_info_template operator+(template_sel left_template, const ReceivedMBSContainer_info_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = ReceivedMBSContainer_info_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return ReceivedMBSContainer_info_template(ANY_VALUE); +} +ReceivedMBSContainer_info_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +ReceivedMBSContainer_info_template operator+(const ReceivedMBSContainer_info& left_value, const ReceivedMBSContainer_info_template& right_template) +{ +boolean dummy = FALSE; +int res_length = ReceivedMBSContainer_info_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +ReceivedMBSContainer_info_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +ReceivedMBSContainer_info_template operator+(template_sel left_template, const ReceivedMBSContainer_info& right_value) +{ +int res_length = ReceivedMBSContainer_info_template::get_length_for_concat(left_template) + ReceivedMBSContainer_info_template::get_length_for_concat(right_value); +ReceivedMBSContainer_info_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +ReceivedMBSContainer_info_template operator+(const ReceivedMBSContainer_info& left_value, template_sel right_template) +{ +int res_length = ReceivedMBSContainer_info_template::get_length_for_concat(left_value) + ReceivedMBSContainer_info_template::get_length_for_concat(right_template); +ReceivedMBSContainer_info_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +NR__CGI__List_nrCGI_template operator+(template_sel left_template, const NR__CGI__List_nrCGI_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = NR__CGI__List_nrCGI_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return NR__CGI__List_nrCGI_template(ANY_VALUE); +} +NR__CGI__List_nrCGI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +NR__CGI__List_nrCGI_template operator+(const NR__CGI__List_nrCGI& left_value, const NR__CGI__List_nrCGI_template& right_template) +{ +boolean dummy = FALSE; +int res_length = NR__CGI__List_nrCGI_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +NR__CGI__List_nrCGI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +NR__CGI__List_nrCGI_template operator+(template_sel left_template, const NR__CGI__List_nrCGI& right_value) +{ +int res_length = NR__CGI__List_nrCGI_template::get_length_for_concat(left_template) + NR__CGI__List_nrCGI_template::get_length_for_concat(right_value); +NR__CGI__List_nrCGI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +NR__CGI__List_nrCGI_template operator+(const NR__CGI__List_nrCGI& left_value, template_sel right_template) +{ +int res_length = NR__CGI__List_nrCGI_template::get_length_for_concat(left_value) + NR__CGI__List_nrCGI_template::get_length_for_concat(right_template); +NR__CGI__List_nrCGI_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +QoS__FlowList_template operator+(template_sel left_template, const QoS__FlowList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = QoS__FlowList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return QoS__FlowList_template(ANY_VALUE); +} +QoS__FlowList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoS__FlowList_template operator+(const QoS__FlowList& left_value, const QoS__FlowList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = QoS__FlowList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +QoS__FlowList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +QoS__FlowList_template operator+(template_sel left_template, const QoS__FlowList& right_value) +{ +int res_length = QoS__FlowList_template::get_length_for_concat(left_template) + QoS__FlowList_template::get_length_for_concat(right_value); +QoS__FlowList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +QoS__FlowList_template operator+(const QoS__FlowList& left_value, template_sel right_template) +{ +int res_length = QoS__FlowList_template::get_length_for_concat(left_value) + QoS__FlowList_template::get_length_for_concat(right_template); +QoS__FlowList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + +UPU__ParamList_template operator+(template_sel left_template, const UPU__ParamList_template& right_template) +{ +boolean right_is_any_value = FALSE; +int res_length = UPU__ParamList_template::get_length_for_concat(left_template) + right_template.get_length_for_concat(right_is_any_value); +if (right_is_any_value) { +return UPU__ParamList_template(ANY_VALUE); +} +UPU__ParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_template); +return ret_val; +} + +UPU__ParamList_template operator+(const UPU__ParamList& left_value, const UPU__ParamList_template& right_template) +{ +boolean dummy = FALSE; +int res_length = UPU__ParamList_template::get_length_for_concat(left_value) + right_template.get_length_for_concat(dummy); +UPU__ParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos, right_template); +return ret_val; +} + +UPU__ParamList_template operator+(template_sel left_template, const UPU__ParamList& right_value) +{ +int res_length = UPU__ParamList_template::get_length_for_concat(left_template) + UPU__ParamList_template::get_length_for_concat(right_value); +UPU__ParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos); +ret_val.concat(pos, right_value); +return ret_val; +} + +UPU__ParamList_template operator+(const UPU__ParamList& left_value, template_sel right_template) +{ +int res_length = UPU__ParamList_template::get_length_for_concat(left_value) + UPU__ParamList_template::get_length_for_concat(right_template); +UPU__ParamList_template ret_val; +ret_val.template_selection = SPECIFIC_VALUE; +ret_val.single_value.n_elements = res_length; +ret_val.single_value.value_elements = (Base_Template**)allocate_pointers(res_length); +int pos = 0; +ret_val.concat(pos, left_value); +ret_val.concat(pos); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_TypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_TypeDefs"); +NG__NAS__TypeDefs::init_ttcn3_debugger(); +NAS__CommonTypeDefs::module_object.pre_init_module(); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NG_NAS/NG_NAS_TypeDefs.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NAS_TypeDefs"); +NAS__CommonTypeDefs::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NG_NAS_TypeDefs.hh b/build/Ats_NG_NAS/NG_NAS_TypeDefs.hh new file mode 100644 index 0000000000000000000000000000000000000000..f97e98037f8a85fb657d4f12fb60545f8f40a222 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NAS_TypeDefs.hh @@ -0,0 +1,27773 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NG__NAS__TypeDefs_HH +#define NG__NAS__TypeDefs_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NAS_CommonTypeDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 NG__NAS__TypeDefs_HH +#endif + +namespace NG__NAS__TypeDefs { + +/* Forward declarations of classes */ + +class NAS__5GC__AKA__Type; +class NAS__5GC__AKA__Type_template; +class ABBA; +class ABBA_template; +class NG__AUTHENTICATION__REQUEST; +class NG__AUTHENTICATION__REQUEST_template; +class EAP__Message; +class EAP__Message_template; +class NG__AUTHENTICATION__RESPONSE; +class NG__AUTHENTICATION__RESPONSE_template; +class NG__AUTHENTICATION__RESULT; +class NG__AUTHENTICATION__RESULT_template; +class GMM__GSM__Cause; +class GMM__GSM__Cause_template; +class NG__AUTHENTICATION__FAILURE; +class NG__AUTHENTICATION__FAILURE_template; +class NG__AUTHENTICATION__REJECT; +class NG__AUTHENTICATION__REJECT_template; +class RegistrationType; +class RegistrationType_template; +class NG__MobileIdentity; +class NG__MobileIdentity_template; +class NG__REGISTRATION__REQUEST; +class NG__REGISTRATION__REQUEST_template; +class NG__GMM__Cap; +class NG__GMM__Cap_template; +class NG__UE__SecurityCapability; +class NG__UE__SecurityCapability_template; +class S__NSSAI__TypeList; +class S__NSSAI__TypeList_template; +class S__NSSAI__V; +class S__NSSAI__V_template; +class S__NSSAI__LV; +class S__NSSAI__LV_template; +class NSSAI__LV; +class NSSAI__LV_template; +class NSSAI; +class NSSAI_template; +class NG__TrackingAreaId; +class NG__TrackingAreaId_template; +class PDU__SessionStatus; +class PDU__SessionStatus_template; +class MICO__Ind; +class MICO__Ind_template; +class UE__UsageSetting; +class UE__UsageSetting_template; +class EPS__MessageContainer; +class EPS__MessageContainer_template; +class LADN__Ind; +class LADN__Ind_template; +class PayloadContainerType; +class PayloadContainerType_template; +class PayloadContainer; +class PayloadContainer_template; +class NetworkSlicingInd; +class NetworkSlicingInd_template; +class NG__UpdateType; +class NG__UpdateType_template; +class MappedNSSAI_s__NSSAI; +class MappedNSSAI_s__NSSAI_template; +class Mapped__S__NSSAIValue; +class Mapped__S__NSSAIValue_template; +class MappedNSSAI; +class MappedNSSAI_template; +class AddInfoRequest; +class AddInfoRequest_template; +class N5GCInd; +class N5GCInd_template; +class NG__PagingRestriction; +class NG__PagingRestriction_template; +class ServiceLvlAAParamList; +class ServiceLvlAAParamList_template; +class ServiceLvlAAParam; +class ServiceLvlAAParam_template; +class SL__AA__DeviceId; +class SL__AA__DeviceId_template; +class SL__AA__ServerAddr; +class SL__AA__ServerAddr_template; +class SL__AA__Response; +class SL__AA__Response_template; +class SL__AA__PayloadType; +class SL__AA__PayloadType_template; +class SL__AA__Payload; +class SL__AA__Payload_template; +class SL__AA__PendingInd; +class SL__AA__PendingInd_template; +class SL__AA__StatusInd; +class SL__AA__StatusInd_template; +class ServiceLvlAAContainer; +class ServiceLvlAAContainer_template; +class NID; +class NID_template; +class PEIPS__AssistIEList; +class PEIPS__AssistIEList_template; +class PEIPS__AssistIE; +class PEIPS__AssistIE_template; +class PEIPS__AssistInfo; +class PEIPS__AssistInfo_template; +class RegistrationResult; +class RegistrationResult_template; +class NG__REGISTRATION__ACCEPT; +class NG__REGISTRATION__ACCEPT_template; +class NG__TrackingAreaIdList__LV_listOfPartialTais; +class NG__TrackingAreaIdList__LV_listOfPartialTais_template; +class NG__PartialTaiType; +class NG__PartialTaiType_template; +class NG__Type0List; +class NG__Type0List_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING NG__NAS__TacList; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template NG__NAS__TacList_template; +class NG__Type0Element; +class NG__Type0Element_template; +class NG__Type1List; +class NG__Type1List_template; +class NG__PartialTai; +class NG__PartialTai_template; +class NG__Type1Element; +class NG__Type1Element_template; +class NG__Type2List; +class NG__Type2List_template; +class NG__PlmnAndTacs; +class NG__PlmnAndTacs_template; +class NG__Type2Element; +class NG__Type2Element_template; +class NG__Type3Element; +class NG__Type3Element_template; +class NG__ListOfPartialTaiList; +class NG__ListOfPartialTaiList_template; +class NG__TrackingAreaIdList__LV; +class NG__TrackingAreaIdList__LV_template; +class NG__TrackingAreaIdList; +class NG__TrackingAreaIdList_template; +class RejectedNSSAI_rejectS__NSSAI; +class RejectedNSSAI_rejectS__NSSAI_template; +class RejectedS__NSSAI; +class RejectedS__NSSAI_template; +class RejectedNSSAI; +class RejectedNSSAI_template; +class NG__NetworkFeatureSupport; +class NG__NetworkFeatureSupport_template; +class PDU__SessionReactivationError_errorCause; +class PDU__SessionReactivationError_errorCause_template; +class PDU__SessionErrorCause; +class PDU__SessionErrorCause_template; +class PDU__SessionReactivationError; +class PDU__SessionReactivationError_template; +class LADN__Info_listOfLADN; +class LADN__Info_listOfLADN_template; +class ListOfLADN_listOfPartialTais; +class ListOfLADN_listOfPartialTais_template; +class ListOfLADN; +class ListOfLADN_template; +class LADN__Info; +class LADN__Info_template; +class SOR__Header; +class SOR__Header_template; +class SORTransparentContainer; +class SORTransparentContainer_template; +class InclusionModeNSSAI; +class InclusionModeNSSAI_template; +class OperatorAccessCatDefinitions_definitions; +class OperatorAccessCatDefinitions_definitions_template; +class AccessCatDefinition; +class AccessCatDefinition_template; +class OperatorAccessCatDefinitions; +class OperatorAccessCatDefinitions_template; +class NG__CipheringKeyData; +class NG__CipheringKeyData_template; +class NG__CipheringKeyData_listOfCipherKeyData; +class NG__CipheringKeyData_listOfCipherKeyData_template; +class NG__CipherDataSet; +class NG__CipherDataSet_template; +class NG__CipherDataSet_listOfPartialTais; +class NG__CipherDataSet_listOfPartialTais_template; +class CAGInfoList; +class CAGInfoList_template; +class CAGInfoList_listOfCAGInfos; +class CAGInfoList_listOfCAGInfos_template; +class CAG__Info__V; +class CAG__Info__V_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING CAG__Info__V_listOfCAGIds; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template CAG__Info__V_listOfCAGIds_template; +class CAG__Info; +class CAG__Info_template; +class TruncatedS__TMSIConfig; +class TruncatedS__TMSIConfig_template; +class PartialXtdRejectedNSSAI__List; +class PartialXtdRejectedNSSAI__List_template; +class PartialXtdRejectedNSSAI; +class PartialXtdRejectedNSSAI_template; +class PartialXtdRejectedNSSAIType0_rejectS__NSSAI; +class PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template; +class XtdRejectedS__NSSAI; +class XtdRejectedS__NSSAI_template; +class PartialXtdRejectedNSSAIType0; +class PartialXtdRejectedNSSAIType0_template; +class XtdRejectedS__NSSAI__List; +class XtdRejectedS__NSSAI__List_template; +class PartialXtdRejectedNSSAIType1; +class PartialXtdRejectedNSSAIType1_template; +class ExtdRejectedNSSAI; +class ExtdRejectedNSSAI_template; +class NG__AddReqResult; +class NG__AddReqResult_template; +class NSSRG__ValueList; +class NSSRG__ValueList_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING NSSRG__Value_nssrgValues; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template NSSRG__Value_nssrgValues_template; +class NSSRG__Value; +class NSSRG__Value_template; +class NSSRG__Info; +class NSSRG__Info_template; +class RegistrationWaitRange; +class RegistrationWaitRange_template; +class DisasterPLMNList; +class DisasterPLMNList_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING DisasterPLMNList_plmnId; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template DisasterPLMNList_plmnId_template; +class ExtdCAGInfoList; +class ExtdCAGInfoList_template; +class ExtdCAGInfoList_listOfCAGInfos; +class ExtdCAGInfoList_listOfCAGInfos_template; +class ExtdCAG__Info; +class ExtdCAG__Info_template; +class NSAG__Info_nsagList; +class NSAG__Info_nsagList_template; +class NSAG; +class NSAG_template; +class NSAG__Info; +class NSAG__Info_template; +class NG__REGISTRATION__COMPLETE; +class NG__REGISTRATION__COMPLETE_template; +class NG__REGISTRATION__REJECT; +class NG__REGISTRATION__REJECT_template; +class NG__UL__NAS__TRANSPORT; +class NG__UL__NAS__TRANSPORT_template; +class NG__PDU__SessionId; +class NG__PDU__SessionId_template; +class NG__Request__Type; +class NG__Request__Type_template; +class S__NSSAI__Type; +class S__NSSAI__Type_template; +class DNN; +class DNN_template; +class MA__PDUSessionInfo; +class MA__PDUSessionInfo_template; +class NG__DL__NAS__TRANSPORT; +class NG__DL__NAS__TRANSPORT_template; +class DeregisterType; +class DeregisterType_template; +class NG__DEREGISTRATION__REQUEST__MO; +class NG__DEREGISTRATION__REQUEST__MO_template; +class NG__DEREGISTRATION__ACCEPT; +class NG__DEREGISTRATION__ACCEPT_template; +class NG__DEREGISTRATION__REQUEST__MT; +class NG__DEREGISTRATION__REQUEST__MT_template; +class NG__SERVICE__REQUEST; +class NG__SERVICE__REQUEST_template; +class NG__SERVICE__ACCEPT; +class NG__SERVICE__ACCEPT_template; +class NG__SERVICE__REJECT; +class NG__SERVICE__REJECT_template; +class NG__CONFIGURATION__UPDATE__COMMAND; +class NG__CONFIGURATION__UPDATE__COMMAND_template; +class ConfigUpdateInd; +class ConfigUpdateInd_template; +class SMSInd; +class SMSInd_template; +class AddConfigInfo; +class AddConfigInfo_template; +class PriorityInd; +class PriorityInd_template; +class NG__CONFIGURATION__UPDATE__COMPLETE; +class NG__CONFIGURATION__UPDATE__COMPLETE_template; +class NG__IDENTITY__REQUEST; +class NG__IDENTITY__REQUEST_template; +class NG__IDENTITY__RESPONSE; +class NG__IDENTITY__RESPONSE_template; +class AccessType; +class AccessType_template; +class NG__NOTIFICATION; +class NG__NOTIFICATION_template; +class NG__NOTIFICATION__RESPONSE; +class NG__NOTIFICATION__RESPONSE_template; +class NG__NAS__SecurityAlgorithms; +class NG__NAS__SecurityAlgorithms_template; +class NG__SECURITY__MODE__COMMAND; +class NG__SECURITY__MODE__COMMAND_template; +class AdditionalSecurityInfo; +class AdditionalSecurityInfo_template; +class S1__UE__SecurityCapability; +class S1__UE__SecurityCapability_template; +class NG__SECURITY__MODE__COMPLETE; +class NG__SECURITY__MODE__COMPLETE_template; +class NG__SECURITY__MODE__REJECT; +class NG__SECURITY__MODE__REJECT_template; +class NG__SECURITY__PROTECTED__NAS__MESSAGE; +class NG__SECURITY__PROTECTED__NAS__MESSAGE_template; +class NG__GMM__STATUS; +class NG__GMM__STATUS_template; +class CP__ServiceType; +class CP__ServiceType_template; +class NG__CP__SERVICE__REQUEST; +class NG__CP__SERVICE__REQUEST_template; +class CIoTSmallDataRxdString; +class CIoTSmallDataRxdString_template; +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND; +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template; +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE; +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template; +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT; +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template; +class IntegrityProtMaxDataRate; +class IntegrityProtMaxDataRate_template; +class NG__PDU__SESSION__ESTABLISHMENT__REQUEST; +class NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template; +class PDU__SessionType; +class PDU__SessionType_template; +class SSC__Mode; +class SSC__Mode_template; +class NG__UE__SM__Cap; +class NG__UE__SM__Cap_template; +class MaxNumPacketFilters; +class MaxNumPacketFilters_template; +class AlwaysOnPDUSessionInd; +class AlwaysOnPDUSessionInd_template; +class SM__PDU__DN__RequestContainer; +class SM__PDU__DN__RequestContainer_template; +class IPHeaderCompressionConfig; +class IPHeaderCompressionConfig_template; +class DS__TT__EthernetPortMACAddr; +class DS__TT__EthernetPortMACAddr_template; +class UE__DS__TT__ResidenceTime; +class UE__DS__TT__ResidenceTime_template; +class PortManagementInfoContainer; +class PortManagementInfoContainer_template; +class EthernetHeaderCompressConfig; +class EthernetHeaderCompressConfig_template; +class PDU__Address; +class PDU__Address_template; +class RequestedMBSContainer_sessionInfo; +class RequestedMBSContainer_sessionInfo_template; +class MBSSessionInfo; +class MBSSessionInfo_template; +class RequestedMBSContainer; +class RequestedMBSContainer_template; +class PDUSessionPairId; +class PDUSessionPairId_template; +class RSN; +class RSN_template; +class QoS__RuleList; +class QoS__RuleList_template; +class QoS__Rule; +class QoS__Rule_template; +class NG__PacketFilterList; +class NG__PacketFilterList_template; +class NG__PacketFilterList__Type1; +class NG__PacketFilterList__Type1_template; +class NG__PacketFilter__Type1; +class NG__PacketFilter__Type1_template; +class NG__PacketFilterList__Type2; +class NG__PacketFilterList__Type2_template; +class NG__PacketFilter__Type2; +class NG__PacketFilter__Type2_template; +class QoS__Rules; +class QoS__Rules_template; +class Session__AMBR; +class Session__AMBR_template; +class NG__PDU__SESSION__ESTABLISHMENT__ACCEPT; +class NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template; +class MappedEPSBearerContexts_mappedContextList; +class MappedEPSBearerContexts_mappedContextList_template; +class MappedEPSContext_epsParamsList; +class MappedEPSContext_epsParamsList_template; +class EPSParameters; +class EPSParameters_template; +class MappedEPSContext; +class MappedEPSContext_template; +class MappedEPSBearerContexts; +class MappedEPSBearerContexts_template; +class QoSFlowDescr_listofFlows; +class QoSFlowDescr_listofFlows_template; +class QoS__Flow; +class QoS__Flow_template; +class QoS__Flow_parameterList; +class QoS__Flow_parameterList_template; +class QoSFlowDescr; +class QoSFlowDescr_template; +class NGSM__NetworkFeatureSupport; +class NGSM__NetworkFeatureSupport_template; +class ATSSSContainer; +class ATSSSContainer_template; +class ReceivedMBSContainer_info; +class ReceivedMBSContainer_info_template; +class TMGI__LV; +class TMGI__LV_template; +class ReceivedMBSInfo; +class ReceivedMBSInfo_template; +class MBS__ServiceArea; +class MBS__ServiceArea_template; +class NR__CGI__List_nrCGI; +class NR__CGI__List_nrCGI_template; +class NR__CGI; +class NR__CGI_template; +class NR__CGI__List; +class NR__CGI__List_template; +class ReceivedMBSContainer; +class ReceivedMBSContainer_template; +class NG__PDU__SESSION__ESTABLISHMENT__REJECT; +class NG__PDU__SESSION__ESTABLISHMENT__REJECT_template; +class AllowedSSCMode; +class AllowedSSCMode_template; +class NGSM__CongestionReattemptInd; +class NGSM__CongestionReattemptInd_template; +class NG__PDU__SESSION__AUTHENTICATION__COMMAND; +class NG__PDU__SESSION__AUTHENTICATION__COMMAND_template; +class NG__PDU__SESSION__AUTHENTICATION__COMPLETE; +class NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template; +class NG__PDU__SESSION__AUTHENTICATION__RESULT; +class NG__PDU__SESSION__AUTHENTICATION__RESULT_template; +class NG__PDU__SESSION__MODIFICATION__REQUEST; +class NG__PDU__SESSION__MODIFICATION__REQUEST_template; +class NG__PDU__SESSION__MODIFICATION__REJECT; +class NG__PDU__SESSION__MODIFICATION__REJECT_template; +class NG__PDU__SESSION__MODIFICATION__COMMAND; +class NG__PDU__SESSION__MODIFICATION__COMMAND_template; +class NG__PDU__SESSION__MODIFICATION__COMPLETE; +class NG__PDU__SESSION__MODIFICATION__COMPLETE_template; +class NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT; +class NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template; +class NG__PDU__SESSION__RELEASE__REQUEST; +class NG__PDU__SESSION__RELEASE__REQUEST_template; +class NG__PDU__SESSION__RELEASE__REJECT; +class NG__PDU__SESSION__RELEASE__REJECT_template; +class NG__PDU__SESSION__RELEASE__COMMAND; +class NG__PDU__SESSION__RELEASE__COMMAND_template; +class NG__PDU__SESSION__RELEASE__COMPLETE; +class NG__PDU__SESSION__RELEASE__COMPLETE_template; +class NG__GSM__STATUS; +class NG__GSM__STATUS_template; +class CIoTSmallDataContainer; +class CIoTSmallDataContainer_template; +class QoS__FlowList; +class QoS__FlowList_template; +class UPU__Header; +class UPU__Header_template; +class UPU__Param; +class UPU__Param_template; +class UPU__ParamList; +class UPU__ParamList_template; +class UPU__TransparentContainer; +class UPU__TransparentContainer_template; +class NSSAI__DELETE__REQUEST; +class NSSAI__DELETE__REQUEST_template; +class AllowedNSSAI; +class AllowedNSSAI_template; +class NSSAI__DELETE__RESPONSE; +class NSSAI__DELETE__RESPONSE_template; +class UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST; +class UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING PacketCounterValueList; +typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template PacketCounterValueList_template; +class NR__SidelinkCounter; +class NR__SidelinkCounter_template; +class UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE; +class UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template; +class S1ToN1TransparentContainer; +class S1ToN1TransparentContainer_template; +class IntraN1TransparentContainer; +class IntraN1TransparentContainer_template; +class SET__UAI__REQUEST; +class SET__UAI__REQUEST_template; +class SET__UAI__RESPONSE; +class SET__UAI__RESPONSE_template; + +} /* end of namespace */ + +#ifndef NG__NAS__TypeDefs_HH +#define NG__NAS__TypeDefs_HH + +namespace NG__NAS__TypeDefs { + +/* Type definitions */ + +typedef BITSTRING ExtdProtocolDiscriminator; +typedef BITSTRING_template ExtdProtocolDiscriminator_template; +typedef OCTETSTRING NG__NAS__Message; +typedef OCTETSTRING_template NG__NAS__Message_template; +typedef PDU__SessionStatus ULDataStatus; +typedef PDU__SessionStatus_template ULDataStatus_template; +typedef PDU__SessionStatus AllowedPDU__SessionStatus; +typedef PDU__SessionStatus_template AllowedPDU__SessionStatus_template; +typedef NAS__CommonTypeDefs::DRXParamCommon NG__DRXparameter; +typedef NAS__CommonTypeDefs::DRXParamCommon_template NG__DRXparameter_template; +typedef NAS__CommonTypeDefs::ReplayedNASMessageContainer NASMessageContainer; +typedef NAS__CommonTypeDefs::ReplayedNASMessageContainer_template NASMessageContainer_template; +typedef NAS__CommonTypeDefs::DRXParamCommon NB__N1ModeDRXParams; +typedef NAS__CommonTypeDefs::DRXParamCommon_template NB__N1ModeDRXParams_template; +typedef PDU__SessionStatus PDU__SessionReactivationResult; +typedef PDU__SessionStatus_template PDU__SessionReactivationResult_template; +typedef NG__TrackingAreaIdList ServiceAreaIdList; +typedef NG__TrackingAreaIdList_template ServiceAreaIdList_template; +typedef AlwaysOnPDUSessionInd AlwaysOnPDUSessionReq; +typedef AlwaysOnPDUSessionInd_template AlwaysOnPDUSessionReq_template; + +/* Class definitions */ + +class NAS__5GC__AKA__Type : public Enum_Type { // enum +friend class NAS__5GC__AKA__Type_template; +public: +enum enum_type { AKA__5G = 0, AKAP__EAP = 1, UNKNOWN_VALUE = 2, UNBOUND_VALUE = 3 }; +private: +enum_type enum_value; + +public: +NAS__5GC__AKA__Type(); +NAS__5GC__AKA__Type(int other_value); +NAS__5GC__AKA__Type(enum_type other_value); +NAS__5GC__AKA__Type(const NAS__5GC__AKA__Type& other_value); + +NAS__5GC__AKA__Type& operator=(int other_value); +NAS__5GC__AKA__Type& operator=(enum_type other_value); +NAS__5GC__AKA__Type& operator=(const NAS__5GC__AKA__Type& other_value); + +boolean operator==(enum_type other_value) const; +boolean operator==(const NAS__5GC__AKA__Type& other_value) const; +inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); } +inline boolean operator!=(const NAS__5GC__AKA__Type& other_value) const { return !(*this == other_value); } +boolean operator<(enum_type other_value) const; +boolean operator<(const NAS__5GC__AKA__Type& other_value) const; +boolean operator>(enum_type other_value) const; +boolean operator>(const NAS__5GC__AKA__Type& other_value) const; +inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); } +inline boolean operator<=(const NAS__5GC__AKA__Type& other_value) const { return !(*this > other_value); } +inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); } +inline boolean operator>=(const NAS__5GC__AKA__Type& other_value) const { return !(*this < other_value); } + +static const char *enum_to_str(enum_type enum_par); +static enum_type str_to_enum(const char *str_par); +static boolean is_valid_enum(int int_par); + +static int enum2int(enum_type enum_par); +static int enum2int(const NAS__5GC__AKA__Type& enum_par); +int as_int() const { return enum2int(enum_value); } +void from_int(int p_val) { *this = p_val; } +void int2enum(int int_val); +operator enum_type() const; +inline boolean is_bound() const { return enum_value != UNBOUND_VALUE; } +inline boolean is_value() const { return enum_value != UNBOUND_VALUE; } +inline void clean_up(){ enum_value = UNBOUND_VALUE; } +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NAS__5GC__AKA__Type_template : public Base_Template { +union { +NAS__5GC__AKA__Type::enum_type single_value; +struct { +unsigned int n_values; +NAS__5GC__AKA__Type_template *list_value; +} value_list; +struct { +NAS__5GC__AKA__Type_template* precondition; +NAS__5GC__AKA__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; + +void copy_template(const NAS__5GC__AKA__Type_template& other_value); + +public: +NAS__5GC__AKA__Type_template(); +NAS__5GC__AKA__Type_template(template_sel other_value); +NAS__5GC__AKA__Type_template(int other_value); +NAS__5GC__AKA__Type_template(NAS__5GC__AKA__Type::enum_type other_value); +NAS__5GC__AKA__Type_template(const NAS__5GC__AKA__Type& other_value); +NAS__5GC__AKA__Type_template(const OPTIONAL& other_value); +NAS__5GC__AKA__Type_template(NAS__5GC__AKA__Type_template* p_precondition, NAS__5GC__AKA__Type_template* p_implied_template); +NAS__5GC__AKA__Type_template(Dynamic_Match_Interface* p_dyn_match); +NAS__5GC__AKA__Type_template(const NAS__5GC__AKA__Type_template& other_value); +~NAS__5GC__AKA__Type_template(); + +boolean is_bound() const; +boolean is_value() const; +void clean_up(); +NAS__5GC__AKA__Type_template& operator=(template_sel other_value); +NAS__5GC__AKA__Type_template& operator=(int other_value); +NAS__5GC__AKA__Type_template& operator=(NAS__5GC__AKA__Type::enum_type other_value); +NAS__5GC__AKA__Type_template& operator=(const NAS__5GC__AKA__Type& other_value); +NAS__5GC__AKA__Type_template& operator=(const OPTIONAL& other_value); +NAS__5GC__AKA__Type_template& operator=(const NAS__5GC__AKA__Type_template& other_value); + +boolean match(NAS__5GC__AKA__Type::enum_type other_value, boolean legacy = FALSE) const; +boolean match(const NAS__5GC__AKA__Type& other_value, boolean legacy = FALSE) const; +NAS__5GC__AKA__Type::enum_type valueof() const; +void set_type(template_sel template_type, unsigned int list_length); +NAS__5GC__AKA__Type_template& list_item(unsigned int list_index); +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NAS__5GC__AKA__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +}; + +class ABBA : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_abbaValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ABBA(); + ABBA(const ABBA& other_value); + ABBA(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_abbaValue); +inline ABBA& operator=(const ABBA& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ABBA& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ABBA& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& abbaValue() + {return field_abbaValue;} + inline const OCTETSTRING& abbaValue() const + {return field_abbaValue;} +Base_Type* clone() const { return new ABBA(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ABBA_template : public Record_Template { +void set_specific(); +public: +ABBA_template(): Record_Template() {} +ABBA_template(template_sel other_value): Record_Template(other_value) {} +ABBA_template(const ABBA& other_value): Record_Template() { copy_value(&other_value); } +ABBA_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ABBA_template(ABBA_template* p_precondition, ABBA_template* p_implied_template); +ABBA_template(Dynamic_Match_Interface* p_dyn_match); +ABBA_template(const ABBA_template& other_value): Record_Template() { copy_template(other_value); } +~ABBA_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ABBA_template& operator=(template_sel other_value); +ABBA_template& operator=(const ABBA& other_value); +ABBA_template& operator=(const OPTIONAL& other_value); +ABBA_template& operator=(const ABBA_template& other_value); +inline boolean match(const ABBA& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ABBA& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ABBA valueof() const; +inline ABBA_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& abbaValue(); +const OCTETSTRING_template& abbaValue() const; +Record_Template* create() const { return new ABBA_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__AUTHENTICATION__REQUEST : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet2; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_ngNasKeySetId; + ABBA field_abba; + OPTIONAL field_rand; + OPTIONAL field_autn; + OPTIONAL field_eapMessage; + Base_Type* fld_vec[10]; + void init_vec(); +public: + NG__AUTHENTICATION__REQUEST(); + NG__AUTHENTICATION__REQUEST(const NG__AUTHENTICATION__REQUEST& other_value); + NG__AUTHENTICATION__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngNasKeySetId, + const ABBA& par_abba, + const OPTIONAL& par_rand, + const OPTIONAL& par_autn, + const OPTIONAL& par_eapMessage); +inline NG__AUTHENTICATION__REQUEST& operator=(const NG__AUTHENTICATION__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__AUTHENTICATION__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__AUTHENTICATION__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet2() + {return field_spareHalfOctet2;} + inline const HEXSTRING& spareHalfOctet2() const + {return field_spareHalfOctet2;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngNasKeySetId() + {return field_ngNasKeySetId;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngNasKeySetId() const + {return field_ngNasKeySetId;} + inline ABBA& abba() + {return field_abba;} + inline const ABBA& abba() const + {return field_abba;} + inline OPTIONAL& rand() + {return field_rand;} + inline const OPTIONAL& rand() const + {return field_rand;} + inline OPTIONAL& autn() + {return field_autn;} + inline const OPTIONAL& autn() const + {return field_autn;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} +Base_Type* clone() const { return new NG__AUTHENTICATION__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__AUTHENTICATION__REQUEST_template : public Record_Template { +void set_specific(); +public: +NG__AUTHENTICATION__REQUEST_template(): Record_Template() {} +NG__AUTHENTICATION__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +NG__AUTHENTICATION__REQUEST_template(const NG__AUTHENTICATION__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +NG__AUTHENTICATION__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__AUTHENTICATION__REQUEST_template(NG__AUTHENTICATION__REQUEST_template* p_precondition, NG__AUTHENTICATION__REQUEST_template* p_implied_template); +NG__AUTHENTICATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +NG__AUTHENTICATION__REQUEST_template(const NG__AUTHENTICATION__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~NG__AUTHENTICATION__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__AUTHENTICATION__REQUEST_template& operator=(template_sel other_value); +NG__AUTHENTICATION__REQUEST_template& operator=(const NG__AUTHENTICATION__REQUEST& other_value); +NG__AUTHENTICATION__REQUEST_template& operator=(const OPTIONAL& other_value); +NG__AUTHENTICATION__REQUEST_template& operator=(const NG__AUTHENTICATION__REQUEST_template& other_value); +inline boolean match(const NG__AUTHENTICATION__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__AUTHENTICATION__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__AUTHENTICATION__REQUEST valueof() const; +inline NG__AUTHENTICATION__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet2(); +const HEXSTRING_template& spareHalfOctet2() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngNasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngNasKeySetId() const; +ABBA_template& abba(); +const ABBA_template& abba() const; +NAS__CommonTypeDefs::RAND_template& rand(); +const NAS__CommonTypeDefs::RAND_template& rand() const; +NAS__CommonTypeDefs::AUTN_template& autn(); +const NAS__CommonTypeDefs::AUTN_template& autn() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +Record_Template* create() const { return new NG__AUTHENTICATION__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EAP__Message : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_eapMsg; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EAP__Message(); + EAP__Message(const EAP__Message& other_value); + EAP__Message(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_eapMsg); +inline EAP__Message& operator=(const EAP__Message& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EAP__Message& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EAP__Message& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& eapMsg() + {return field_eapMsg;} + inline const OCTETSTRING& eapMsg() const + {return field_eapMsg;} +Base_Type* clone() const { return new EAP__Message(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EAP__Message_template : public Record_Template { +void set_specific(); +public: +EAP__Message_template(): Record_Template() {} +EAP__Message_template(template_sel other_value): Record_Template(other_value) {} +EAP__Message_template(const EAP__Message& other_value): Record_Template() { copy_value(&other_value); } +EAP__Message_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EAP__Message_template(EAP__Message_template* p_precondition, EAP__Message_template* p_implied_template); +EAP__Message_template(Dynamic_Match_Interface* p_dyn_match); +EAP__Message_template(const EAP__Message_template& other_value): Record_Template() { copy_template(other_value); } +~EAP__Message_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EAP__Message_template& operator=(template_sel other_value); +EAP__Message_template& operator=(const EAP__Message& other_value); +EAP__Message_template& operator=(const OPTIONAL& other_value); +EAP__Message_template& operator=(const EAP__Message_template& other_value); +inline boolean match(const EAP__Message& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EAP__Message& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EAP__Message valueof() const; +inline EAP__Message_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& eapMsg(); +const OCTETSTRING_template& eapMsg() const; +Record_Template* create() const { return new EAP__Message_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__AUTHENTICATION__RESPONSE : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + OPTIONAL field_authResponseParam; + OPTIONAL field_eapMessage; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__AUTHENTICATION__RESPONSE(); + NG__AUTHENTICATION__RESPONSE(const NG__AUTHENTICATION__RESPONSE& other_value); + NG__AUTHENTICATION__RESPONSE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_authResponseParam, + const OPTIONAL& par_eapMessage); +inline NG__AUTHENTICATION__RESPONSE& operator=(const NG__AUTHENTICATION__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__AUTHENTICATION__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__AUTHENTICATION__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& authResponseParam() + {return field_authResponseParam;} + inline const OPTIONAL& authResponseParam() const + {return field_authResponseParam;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} +Base_Type* clone() const { return new NG__AUTHENTICATION__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__AUTHENTICATION__RESPONSE_template : public Record_Template { +void set_specific(); +public: +NG__AUTHENTICATION__RESPONSE_template(): Record_Template() {} +NG__AUTHENTICATION__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +NG__AUTHENTICATION__RESPONSE_template(const NG__AUTHENTICATION__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +NG__AUTHENTICATION__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__AUTHENTICATION__RESPONSE_template(NG__AUTHENTICATION__RESPONSE_template* p_precondition, NG__AUTHENTICATION__RESPONSE_template* p_implied_template); +NG__AUTHENTICATION__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +NG__AUTHENTICATION__RESPONSE_template(const NG__AUTHENTICATION__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__AUTHENTICATION__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__AUTHENTICATION__RESPONSE_template& operator=(template_sel other_value); +NG__AUTHENTICATION__RESPONSE_template& operator=(const NG__AUTHENTICATION__RESPONSE& other_value); +NG__AUTHENTICATION__RESPONSE_template& operator=(const OPTIONAL& other_value); +NG__AUTHENTICATION__RESPONSE_template& operator=(const NG__AUTHENTICATION__RESPONSE_template& other_value); +inline boolean match(const NG__AUTHENTICATION__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__AUTHENTICATION__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__AUTHENTICATION__RESPONSE valueof() const; +inline NG__AUTHENTICATION__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::AuthenticationResponseParameter_template& authResponseParam(); +const NAS__CommonTypeDefs::AuthenticationResponseParameter_template& authResponseParam() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +Record_Template* create() const { return new NG__AUTHENTICATION__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__AUTHENTICATION__RESULT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet2; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_ngNasKeySetId; + EAP__Message field_eapMessage; + OPTIONAL field_abba; + Base_Type* fld_vec[8]; + void init_vec(); +public: + NG__AUTHENTICATION__RESULT(); + NG__AUTHENTICATION__RESULT(const NG__AUTHENTICATION__RESULT& other_value); + NG__AUTHENTICATION__RESULT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngNasKeySetId, + const EAP__Message& par_eapMessage, + const OPTIONAL& par_abba); +inline NG__AUTHENTICATION__RESULT& operator=(const NG__AUTHENTICATION__RESULT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__AUTHENTICATION__RESULT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__AUTHENTICATION__RESULT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet2() + {return field_spareHalfOctet2;} + inline const HEXSTRING& spareHalfOctet2() const + {return field_spareHalfOctet2;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngNasKeySetId() + {return field_ngNasKeySetId;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngNasKeySetId() const + {return field_ngNasKeySetId;} + inline EAP__Message& eapMessage() + {return field_eapMessage;} + inline const EAP__Message& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& abba() + {return field_abba;} + inline const OPTIONAL& abba() const + {return field_abba;} +Base_Type* clone() const { return new NG__AUTHENTICATION__RESULT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__AUTHENTICATION__RESULT_template : public Record_Template { +void set_specific(); +public: +NG__AUTHENTICATION__RESULT_template(): Record_Template() {} +NG__AUTHENTICATION__RESULT_template(template_sel other_value): Record_Template(other_value) {} +NG__AUTHENTICATION__RESULT_template(const NG__AUTHENTICATION__RESULT& other_value): Record_Template() { copy_value(&other_value); } +NG__AUTHENTICATION__RESULT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__AUTHENTICATION__RESULT_template(NG__AUTHENTICATION__RESULT_template* p_precondition, NG__AUTHENTICATION__RESULT_template* p_implied_template); +NG__AUTHENTICATION__RESULT_template(Dynamic_Match_Interface* p_dyn_match); +NG__AUTHENTICATION__RESULT_template(const NG__AUTHENTICATION__RESULT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__AUTHENTICATION__RESULT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__AUTHENTICATION__RESULT_template& operator=(template_sel other_value); +NG__AUTHENTICATION__RESULT_template& operator=(const NG__AUTHENTICATION__RESULT& other_value); +NG__AUTHENTICATION__RESULT_template& operator=(const OPTIONAL& other_value); +NG__AUTHENTICATION__RESULT_template& operator=(const NG__AUTHENTICATION__RESULT_template& other_value); +inline boolean match(const NG__AUTHENTICATION__RESULT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__AUTHENTICATION__RESULT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__AUTHENTICATION__RESULT valueof() const; +inline NG__AUTHENTICATION__RESULT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet2(); +const HEXSTRING_template& spareHalfOctet2() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngNasKeySetId(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngNasKeySetId() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +ABBA_template& abba(); +const ABBA_template& abba() const; +Record_Template* create() const { return new NG__AUTHENTICATION__RESULT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class GMM__GSM__Cause : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_causeValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + GMM__GSM__Cause(); + GMM__GSM__Cause(const GMM__GSM__Cause& other_value); + GMM__GSM__Cause(const OPTIONAL& par_iei, + const BITSTRING& par_causeValue); +inline GMM__GSM__Cause& operator=(const GMM__GSM__Cause& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const GMM__GSM__Cause& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const GMM__GSM__Cause& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& causeValue() + {return field_causeValue;} + inline const BITSTRING& causeValue() const + {return field_causeValue;} +Base_Type* clone() const { return new GMM__GSM__Cause(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class GMM__GSM__Cause_template : public Record_Template { +void set_specific(); +public: +GMM__GSM__Cause_template(): Record_Template() {} +GMM__GSM__Cause_template(template_sel other_value): Record_Template(other_value) {} +GMM__GSM__Cause_template(const GMM__GSM__Cause& other_value): Record_Template() { copy_value(&other_value); } +GMM__GSM__Cause_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +GMM__GSM__Cause_template(GMM__GSM__Cause_template* p_precondition, GMM__GSM__Cause_template* p_implied_template); +GMM__GSM__Cause_template(Dynamic_Match_Interface* p_dyn_match); +GMM__GSM__Cause_template(const GMM__GSM__Cause_template& other_value): Record_Template() { copy_template(other_value); } +~GMM__GSM__Cause_template(); +boolean match_dynamic(const Base_Type* match_value) const; +GMM__GSM__Cause_template& operator=(template_sel other_value); +GMM__GSM__Cause_template& operator=(const GMM__GSM__Cause& other_value); +GMM__GSM__Cause_template& operator=(const OPTIONAL& other_value); +GMM__GSM__Cause_template& operator=(const GMM__GSM__Cause_template& other_value); +inline boolean match(const GMM__GSM__Cause& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const GMM__GSM__Cause& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +GMM__GSM__Cause valueof() const; +inline GMM__GSM__Cause_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& causeValue(); +const BITSTRING_template& causeValue() const; +Record_Template* create() const { return new GMM__GSM__Cause_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__AUTHENTICATION__FAILURE : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + GMM__GSM__Cause field_gmmCause; + OPTIONAL field_authFailureParam; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__AUTHENTICATION__FAILURE(); + NG__AUTHENTICATION__FAILURE(const NG__AUTHENTICATION__FAILURE& other_value); + NG__AUTHENTICATION__FAILURE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause, + const OPTIONAL& par_authFailureParam); +inline NG__AUTHENTICATION__FAILURE& operator=(const NG__AUTHENTICATION__FAILURE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__AUTHENTICATION__FAILURE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__AUTHENTICATION__FAILURE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gmmCause() + {return field_gmmCause;} + inline const GMM__GSM__Cause& gmmCause() const + {return field_gmmCause;} + inline OPTIONAL& authFailureParam() + {return field_authFailureParam;} + inline const OPTIONAL& authFailureParam() const + {return field_authFailureParam;} +Base_Type* clone() const { return new NG__AUTHENTICATION__FAILURE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__AUTHENTICATION__FAILURE_template : public Record_Template { +void set_specific(); +public: +NG__AUTHENTICATION__FAILURE_template(): Record_Template() {} +NG__AUTHENTICATION__FAILURE_template(template_sel other_value): Record_Template(other_value) {} +NG__AUTHENTICATION__FAILURE_template(const NG__AUTHENTICATION__FAILURE& other_value): Record_Template() { copy_value(&other_value); } +NG__AUTHENTICATION__FAILURE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__AUTHENTICATION__FAILURE_template(NG__AUTHENTICATION__FAILURE_template* p_precondition, NG__AUTHENTICATION__FAILURE_template* p_implied_template); +NG__AUTHENTICATION__FAILURE_template(Dynamic_Match_Interface* p_dyn_match); +NG__AUTHENTICATION__FAILURE_template(const NG__AUTHENTICATION__FAILURE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__AUTHENTICATION__FAILURE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__AUTHENTICATION__FAILURE_template& operator=(template_sel other_value); +NG__AUTHENTICATION__FAILURE_template& operator=(const NG__AUTHENTICATION__FAILURE& other_value); +NG__AUTHENTICATION__FAILURE_template& operator=(const OPTIONAL& other_value); +NG__AUTHENTICATION__FAILURE_template& operator=(const NG__AUTHENTICATION__FAILURE_template& other_value); +inline boolean match(const NG__AUTHENTICATION__FAILURE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__AUTHENTICATION__FAILURE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__AUTHENTICATION__FAILURE valueof() const; +inline NG__AUTHENTICATION__FAILURE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gmmCause(); +const GMM__GSM__Cause_template& gmmCause() const; +NAS__CommonTypeDefs::AuthenticationFailureParameter_template& authFailureParam(); +const NAS__CommonTypeDefs::AuthenticationFailureParameter_template& authFailureParam() const; +Record_Template* create() const { return new NG__AUTHENTICATION__FAILURE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__AUTHENTICATION__REJECT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + OPTIONAL field_eapMessage; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NG__AUTHENTICATION__REJECT(); + NG__AUTHENTICATION__REJECT(const NG__AUTHENTICATION__REJECT& other_value); + NG__AUTHENTICATION__REJECT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_eapMessage); +inline NG__AUTHENTICATION__REJECT& operator=(const NG__AUTHENTICATION__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__AUTHENTICATION__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__AUTHENTICATION__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} +Base_Type* clone() const { return new NG__AUTHENTICATION__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__AUTHENTICATION__REJECT_template : public Record_Template { +void set_specific(); +public: +NG__AUTHENTICATION__REJECT_template(): Record_Template() {} +NG__AUTHENTICATION__REJECT_template(template_sel other_value): Record_Template(other_value) {} +NG__AUTHENTICATION__REJECT_template(const NG__AUTHENTICATION__REJECT& other_value): Record_Template() { copy_value(&other_value); } +NG__AUTHENTICATION__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__AUTHENTICATION__REJECT_template(NG__AUTHENTICATION__REJECT_template* p_precondition, NG__AUTHENTICATION__REJECT_template* p_implied_template); +NG__AUTHENTICATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +NG__AUTHENTICATION__REJECT_template(const NG__AUTHENTICATION__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__AUTHENTICATION__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__AUTHENTICATION__REJECT_template& operator=(template_sel other_value); +NG__AUTHENTICATION__REJECT_template& operator=(const NG__AUTHENTICATION__REJECT& other_value); +NG__AUTHENTICATION__REJECT_template& operator=(const OPTIONAL& other_value); +NG__AUTHENTICATION__REJECT_template& operator=(const NG__AUTHENTICATION__REJECT_template& other_value); +inline boolean match(const NG__AUTHENTICATION__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__AUTHENTICATION__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__AUTHENTICATION__REJECT valueof() const; +inline NG__AUTHENTICATION__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +Record_Template* create() const { return new NG__AUTHENTICATION__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RegistrationType : public Record_Type { + BITSTRING field_fOR; + BITSTRING field_registrationType; + Base_Type* fld_vec[2]; + void init_vec(); +public: + RegistrationType(); + RegistrationType(const RegistrationType& other_value); + RegistrationType(const BITSTRING& par_fOR, + const BITSTRING& par_registrationType); +inline RegistrationType& operator=(const RegistrationType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RegistrationType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RegistrationType& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& fOR() + {return field_fOR;} + inline const BITSTRING& fOR() const + {return field_fOR;} + inline BITSTRING& registrationType() + {return field_registrationType;} + inline const BITSTRING& registrationType() const + {return field_registrationType;} +Base_Type* clone() const { return new RegistrationType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RegistrationType_template : public Record_Template { +void set_specific(); +public: +RegistrationType_template(): Record_Template() {} +RegistrationType_template(template_sel other_value): Record_Template(other_value) {} +RegistrationType_template(const RegistrationType& other_value): Record_Template() { copy_value(&other_value); } +RegistrationType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RegistrationType_template(RegistrationType_template* p_precondition, RegistrationType_template* p_implied_template); +RegistrationType_template(Dynamic_Match_Interface* p_dyn_match); +RegistrationType_template(const RegistrationType_template& other_value): Record_Template() { copy_template(other_value); } +~RegistrationType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RegistrationType_template& operator=(template_sel other_value); +RegistrationType_template& operator=(const RegistrationType& other_value); +RegistrationType_template& operator=(const OPTIONAL& other_value); +RegistrationType_template& operator=(const RegistrationType_template& other_value); +inline boolean match(const RegistrationType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RegistrationType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RegistrationType valueof() const; +inline RegistrationType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& fOR(); +const BITSTRING_template& fOR() const; +BITSTRING_template& registrationType(); +const BITSTRING_template& registrationType() const; +Record_Template* create() const { return new RegistrationType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__MobileIdentity : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_idDigit1; + BITSTRING field_oddEvenInd; + BITSTRING field_typeOfId; + OPTIONAL field_otherDigits; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__MobileIdentity(); + NG__MobileIdentity(const NG__MobileIdentity& other_value); + NG__MobileIdentity(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_idDigit1, + const BITSTRING& par_oddEvenInd, + const BITSTRING& par_typeOfId, + const OPTIONAL& par_otherDigits); +inline NG__MobileIdentity& operator=(const NG__MobileIdentity& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__MobileIdentity& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__MobileIdentity& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& idDigit1() + {return field_idDigit1;} + inline const BITSTRING& idDigit1() const + {return field_idDigit1;} + inline BITSTRING& oddEvenInd() + {return field_oddEvenInd;} + inline const BITSTRING& oddEvenInd() const + {return field_oddEvenInd;} + inline BITSTRING& typeOfId() + {return field_typeOfId;} + inline const BITSTRING& typeOfId() const + {return field_typeOfId;} + inline OPTIONAL& otherDigits() + {return field_otherDigits;} + inline const OPTIONAL& otherDigits() const + {return field_otherDigits;} +Base_Type* clone() const { return new NG__MobileIdentity(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__MobileIdentity_template : public Record_Template { +void set_specific(); +public: +NG__MobileIdentity_template(): Record_Template() {} +NG__MobileIdentity_template(template_sel other_value): Record_Template(other_value) {} +NG__MobileIdentity_template(const NG__MobileIdentity& other_value): Record_Template() { copy_value(&other_value); } +NG__MobileIdentity_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__MobileIdentity_template(NG__MobileIdentity_template* p_precondition, NG__MobileIdentity_template* p_implied_template); +NG__MobileIdentity_template(Dynamic_Match_Interface* p_dyn_match); +NG__MobileIdentity_template(const NG__MobileIdentity_template& other_value): Record_Template() { copy_template(other_value); } +~NG__MobileIdentity_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__MobileIdentity_template& operator=(template_sel other_value); +NG__MobileIdentity_template& operator=(const NG__MobileIdentity& other_value); +NG__MobileIdentity_template& operator=(const OPTIONAL& other_value); +NG__MobileIdentity_template& operator=(const NG__MobileIdentity_template& other_value); +inline boolean match(const NG__MobileIdentity& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__MobileIdentity& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__MobileIdentity valueof() const; +inline NG__MobileIdentity_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& idDigit1(); +const BITSTRING_template& idDigit1() const; +BITSTRING_template& oddEvenInd(); +const BITSTRING_template& oddEvenInd() const; +BITSTRING_template& typeOfId(); +const BITSTRING_template& typeOfId() const; +OCTETSTRING_template& otherDigits(); +const OCTETSTRING_template& otherDigits() const; +Record_Template* create() const { return new NG__MobileIdentity_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__REGISTRATION__REQUEST : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_ngNasKSI; + RegistrationType field_registrationType; + NG__MobileIdentity field_ngMobileId; + OPTIONAL field_nonCurrentNativeKSI; + OPTIONAL field_gmmCapability; + OPTIONAL field_ueSecurityCapability; + OPTIONAL field_requestedNSSAI; + OPTIONAL field_lastVisitedRegisteredTai; + OPTIONAL field_s1__UE__Capability; + OPTIONAL field_ulDataStatus; + OPTIONAL field_pduSessionStatus; + OPTIONAL field_micoInd; + OPTIONAL field_ueStatus; + OPTIONAL field_additionalGUTI; + OPTIONAL field_allowedPDUSessionStatus; + OPTIONAL field_ueUsageSetting; + OPTIONAL field_reqDRXParams; + OPTIONAL field_epsMessage; + OPTIONAL field_ladnInd; + OPTIONAL field_payloadContainerType; + OPTIONAL field_payload; + OPTIONAL field_networkSlicingInd; + OPTIONAL field_updateType; + OPTIONAL field_msClassmark2; + OPTIONAL field_supportedCodecs; + OPTIONAL field_nasMsg; + OPTIONAL field_epsBearerContextStatus; + OPTIONAL field_requestedExtdDRXParams; + OPTIONAL field_t3324Value; + OPTIONAL field_ueRadioCapabilityId; + OPTIONAL field_requestedMappedNSSAI; + OPTIONAL field_additionalInfoReq; + OPTIONAL field_requestedWUSAssistanceInfo; + OPTIONAL field_n5GCInd; + OPTIONAL field_requestedNB__N1DRXParams; + OPTIONAL field_ueRequestType; + OPTIONAL field_pagingRestrict; + OPTIONAL field_serviceLvlAA; + OPTIONAL field_nId; + OPTIONAL field_msPLMNwDisasterCondition; + OPTIONAL field_requestedPEIPS__AssistInfo; + OPTIONAL field_t3512Value; + Base_Type* fld_vec[46]; + void init_vec(); +public: + NG__REGISTRATION__REQUEST(); + NG__REGISTRATION__REQUEST(const NG__REGISTRATION__REQUEST& other_value); + NG__REGISTRATION__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngNasKSI, + const RegistrationType& par_registrationType, + const NG__MobileIdentity& par_ngMobileId, + const OPTIONAL& par_nonCurrentNativeKSI, + const OPTIONAL& par_gmmCapability, + const OPTIONAL& par_ueSecurityCapability, + const OPTIONAL& par_requestedNSSAI, + const OPTIONAL& par_lastVisitedRegisteredTai, + const OPTIONAL& par_s1__UE__Capability, + const OPTIONAL& par_ulDataStatus, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_micoInd, + const OPTIONAL& par_ueStatus, + const OPTIONAL& par_additionalGUTI, + const OPTIONAL& par_allowedPDUSessionStatus, + const OPTIONAL& par_ueUsageSetting, + const OPTIONAL& par_reqDRXParams, + const OPTIONAL& par_epsMessage, + const OPTIONAL& par_ladnInd, + const OPTIONAL& par_payloadContainerType, + const OPTIONAL& par_payload, + const OPTIONAL& par_networkSlicingInd, + const OPTIONAL& par_updateType, + const OPTIONAL& par_msClassmark2, + const OPTIONAL& par_supportedCodecs, + const OPTIONAL& par_nasMsg, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_requestedExtdDRXParams, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_ueRadioCapabilityId, + const OPTIONAL& par_requestedMappedNSSAI, + const OPTIONAL& par_additionalInfoReq, + const OPTIONAL& par_requestedWUSAssistanceInfo, + const OPTIONAL& par_n5GCInd, + const OPTIONAL& par_requestedNB__N1DRXParams, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestrict, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_nId, + const OPTIONAL& par_msPLMNwDisasterCondition, + const OPTIONAL& par_requestedPEIPS__AssistInfo, + const OPTIONAL& par_t3512Value); +inline NG__REGISTRATION__REQUEST& operator=(const NG__REGISTRATION__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__REGISTRATION__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__REGISTRATION__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngNasKSI() + {return field_ngNasKSI;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngNasKSI() const + {return field_ngNasKSI;} + inline RegistrationType& registrationType() + {return field_registrationType;} + inline const RegistrationType& registrationType() const + {return field_registrationType;} + inline NG__MobileIdentity& ngMobileId() + {return field_ngMobileId;} + inline const NG__MobileIdentity& ngMobileId() const + {return field_ngMobileId;} + inline OPTIONAL& nonCurrentNativeKSI() + {return field_nonCurrentNativeKSI;} + inline const OPTIONAL& nonCurrentNativeKSI() const + {return field_nonCurrentNativeKSI;} + inline OPTIONAL& gmmCapability() + {return field_gmmCapability;} + inline const OPTIONAL& gmmCapability() const + {return field_gmmCapability;} + inline OPTIONAL& ueSecurityCapability() + {return field_ueSecurityCapability;} + inline const OPTIONAL& ueSecurityCapability() const + {return field_ueSecurityCapability;} + inline OPTIONAL& requestedNSSAI() + {return field_requestedNSSAI;} + inline const OPTIONAL& requestedNSSAI() const + {return field_requestedNSSAI;} + inline OPTIONAL& lastVisitedRegisteredTai() + {return field_lastVisitedRegisteredTai;} + inline const OPTIONAL& lastVisitedRegisteredTai() const + {return field_lastVisitedRegisteredTai;} + inline OPTIONAL& s1__UE__Capability() + {return field_s1__UE__Capability;} + inline const OPTIONAL& s1__UE__Capability() const + {return field_s1__UE__Capability;} + inline OPTIONAL& ulDataStatus() + {return field_ulDataStatus;} + inline const OPTIONAL& ulDataStatus() const + {return field_ulDataStatus;} + inline OPTIONAL& pduSessionStatus() + {return field_pduSessionStatus;} + inline const OPTIONAL& pduSessionStatus() const + {return field_pduSessionStatus;} + inline OPTIONAL& micoInd() + {return field_micoInd;} + inline const OPTIONAL& micoInd() const + {return field_micoInd;} + inline OPTIONAL& ueStatus() + {return field_ueStatus;} + inline const OPTIONAL& ueStatus() const + {return field_ueStatus;} + inline OPTIONAL& additionalGUTI() + {return field_additionalGUTI;} + inline const OPTIONAL& additionalGUTI() const + {return field_additionalGUTI;} + inline OPTIONAL& allowedPDUSessionStatus() + {return field_allowedPDUSessionStatus;} + inline const OPTIONAL& allowedPDUSessionStatus() const + {return field_allowedPDUSessionStatus;} + inline OPTIONAL& ueUsageSetting() + {return field_ueUsageSetting;} + inline const OPTIONAL& ueUsageSetting() const + {return field_ueUsageSetting;} + inline OPTIONAL& reqDRXParams() + {return field_reqDRXParams;} + inline const OPTIONAL& reqDRXParams() const + {return field_reqDRXParams;} + inline OPTIONAL& epsMessage() + {return field_epsMessage;} + inline const OPTIONAL& epsMessage() const + {return field_epsMessage;} + inline OPTIONAL& ladnInd() + {return field_ladnInd;} + inline const OPTIONAL& ladnInd() const + {return field_ladnInd;} + inline OPTIONAL& payloadContainerType() + {return field_payloadContainerType;} + inline const OPTIONAL& payloadContainerType() const + {return field_payloadContainerType;} + inline OPTIONAL& payload() + {return field_payload;} + inline const OPTIONAL& payload() const + {return field_payload;} + inline OPTIONAL& networkSlicingInd() + {return field_networkSlicingInd;} + inline const OPTIONAL& networkSlicingInd() const + {return field_networkSlicingInd;} + inline OPTIONAL& updateType() + {return field_updateType;} + inline const OPTIONAL& updateType() const + {return field_updateType;} + inline OPTIONAL& msClassmark2() + {return field_msClassmark2;} + inline const OPTIONAL& msClassmark2() const + {return field_msClassmark2;} + inline OPTIONAL& supportedCodecs() + {return field_supportedCodecs;} + inline const OPTIONAL& supportedCodecs() const + {return field_supportedCodecs;} + inline OPTIONAL& nasMsg() + {return field_nasMsg;} + inline const OPTIONAL& nasMsg() const + {return field_nasMsg;} + inline OPTIONAL& epsBearerContextStatus() + {return field_epsBearerContextStatus;} + inline const OPTIONAL& epsBearerContextStatus() const + {return field_epsBearerContextStatus;} + inline OPTIONAL& requestedExtdDRXParams() + {return field_requestedExtdDRXParams;} + inline const OPTIONAL& requestedExtdDRXParams() const + {return field_requestedExtdDRXParams;} + inline OPTIONAL& t3324Value() + {return field_t3324Value;} + inline const OPTIONAL& t3324Value() const + {return field_t3324Value;} + inline OPTIONAL& ueRadioCapabilityId() + {return field_ueRadioCapabilityId;} + inline const OPTIONAL& ueRadioCapabilityId() const + {return field_ueRadioCapabilityId;} + inline OPTIONAL& requestedMappedNSSAI() + {return field_requestedMappedNSSAI;} + inline const OPTIONAL& requestedMappedNSSAI() const + {return field_requestedMappedNSSAI;} + inline OPTIONAL& additionalInfoReq() + {return field_additionalInfoReq;} + inline const OPTIONAL& additionalInfoReq() const + {return field_additionalInfoReq;} + inline OPTIONAL& requestedWUSAssistanceInfo() + {return field_requestedWUSAssistanceInfo;} + inline const OPTIONAL& requestedWUSAssistanceInfo() const + {return field_requestedWUSAssistanceInfo;} + inline OPTIONAL& n5GCInd() + {return field_n5GCInd;} + inline const OPTIONAL& n5GCInd() const + {return field_n5GCInd;} + inline OPTIONAL& requestedNB__N1DRXParams() + {return field_requestedNB__N1DRXParams;} + inline const OPTIONAL& requestedNB__N1DRXParams() const + {return field_requestedNB__N1DRXParams;} + inline OPTIONAL& ueRequestType() + {return field_ueRequestType;} + inline const OPTIONAL& ueRequestType() const + {return field_ueRequestType;} + inline OPTIONAL& pagingRestrict() + {return field_pagingRestrict;} + inline const OPTIONAL& pagingRestrict() const + {return field_pagingRestrict;} + inline OPTIONAL& serviceLvlAA() + {return field_serviceLvlAA;} + inline const OPTIONAL& serviceLvlAA() const + {return field_serviceLvlAA;} + inline OPTIONAL& nId() + {return field_nId;} + inline const OPTIONAL& nId() const + {return field_nId;} + inline OPTIONAL& msPLMNwDisasterCondition() + {return field_msPLMNwDisasterCondition;} + inline const OPTIONAL& msPLMNwDisasterCondition() const + {return field_msPLMNwDisasterCondition;} + inline OPTIONAL& requestedPEIPS__AssistInfo() + {return field_requestedPEIPS__AssistInfo;} + inline const OPTIONAL& requestedPEIPS__AssistInfo() const + {return field_requestedPEIPS__AssistInfo;} + inline OPTIONAL& t3512Value() + {return field_t3512Value;} + inline const OPTIONAL& t3512Value() const + {return field_t3512Value;} +Base_Type* clone() const { return new NG__REGISTRATION__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 46; } +int optional_count() const { return 39; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__REGISTRATION__REQUEST_template : public Record_Template { +void set_specific(); +public: +NG__REGISTRATION__REQUEST_template(): Record_Template() {} +NG__REGISTRATION__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +NG__REGISTRATION__REQUEST_template(const NG__REGISTRATION__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +NG__REGISTRATION__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__REGISTRATION__REQUEST_template(NG__REGISTRATION__REQUEST_template* p_precondition, NG__REGISTRATION__REQUEST_template* p_implied_template); +NG__REGISTRATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +NG__REGISTRATION__REQUEST_template(const NG__REGISTRATION__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~NG__REGISTRATION__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__REGISTRATION__REQUEST_template& operator=(template_sel other_value); +NG__REGISTRATION__REQUEST_template& operator=(const NG__REGISTRATION__REQUEST& other_value); +NG__REGISTRATION__REQUEST_template& operator=(const OPTIONAL& other_value); +NG__REGISTRATION__REQUEST_template& operator=(const NG__REGISTRATION__REQUEST_template& other_value); +inline boolean match(const NG__REGISTRATION__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__REGISTRATION__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__REGISTRATION__REQUEST valueof() const; +inline NG__REGISTRATION__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngNasKSI(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngNasKSI() const; +RegistrationType_template& registrationType(); +const RegistrationType_template& registrationType() const; +NG__MobileIdentity_template& ngMobileId(); +const NG__MobileIdentity_template& ngMobileId() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nonCurrentNativeKSI(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& nonCurrentNativeKSI() const; +NG__GMM__Cap_template& gmmCapability(); +const NG__GMM__Cap_template& gmmCapability() const; +NG__UE__SecurityCapability_template& ueSecurityCapability(); +const NG__UE__SecurityCapability_template& ueSecurityCapability() const; +NSSAI_template& requestedNSSAI(); +const NSSAI_template& requestedNSSAI() const; +NG__TrackingAreaId_template& lastVisitedRegisteredTai(); +const NG__TrackingAreaId_template& lastVisitedRegisteredTai() const; +NAS__CommonTypeDefs::UE__NetworkCap_template& s1__UE__Capability(); +const NAS__CommonTypeDefs::UE__NetworkCap_template& s1__UE__Capability() const; +PDU__SessionStatus_template& ulDataStatus(); +const PDU__SessionStatus_template& ulDataStatus() const; +PDU__SessionStatus_template& pduSessionStatus(); +const PDU__SessionStatus_template& pduSessionStatus() const; +MICO__Ind_template& micoInd(); +const MICO__Ind_template& micoInd() const; +NAS__CommonTypeDefs::UE__Status_template& ueStatus(); +const NAS__CommonTypeDefs::UE__Status_template& ueStatus() const; +NG__MobileIdentity_template& additionalGUTI(); +const NG__MobileIdentity_template& additionalGUTI() const; +PDU__SessionStatus_template& allowedPDUSessionStatus(); +const PDU__SessionStatus_template& allowedPDUSessionStatus() const; +UE__UsageSetting_template& ueUsageSetting(); +const UE__UsageSetting_template& ueUsageSetting() const; +NAS__CommonTypeDefs::DRXParamCommon_template& reqDRXParams(); +const NAS__CommonTypeDefs::DRXParamCommon_template& reqDRXParams() const; +EPS__MessageContainer_template& epsMessage(); +const EPS__MessageContainer_template& epsMessage() const; +LADN__Ind_template& ladnInd(); +const LADN__Ind_template& ladnInd() const; +PayloadContainerType_template& payloadContainerType(); +const PayloadContainerType_template& payloadContainerType() const; +PayloadContainer_template& payload(); +const PayloadContainer_template& payload() const; +NetworkSlicingInd_template& networkSlicingInd(); +const NetworkSlicingInd_template& networkSlicingInd() const; +NG__UpdateType_template& updateType(); +const NG__UpdateType_template& updateType() const; +NAS__CommonTypeDefs::MS__Clsmk2_template& msClassmark2(); +const NAS__CommonTypeDefs::MS__Clsmk2_template& msClassmark2() const; +NAS__CommonTypeDefs::CodecList_template& supportedCodecs(); +const NAS__CommonTypeDefs::CodecList_template& supportedCodecs() const; +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& nasMsg(); +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& nasMsg() const; +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus(); +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus() const; +NAS__CommonTypeDefs::ExtdDRXParams_template& requestedExtdDRXParams(); +const NAS__CommonTypeDefs::ExtdDRXParams_template& requestedExtdDRXParams() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value() const; +NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapabilityId(); +const NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapabilityId() const; +MappedNSSAI_template& requestedMappedNSSAI(); +const MappedNSSAI_template& requestedMappedNSSAI() const; +AddInfoRequest_template& additionalInfoReq(); +const AddInfoRequest_template& additionalInfoReq() const; +NAS__CommonTypeDefs::WUSAssistInfo_template& requestedWUSAssistanceInfo(); +const NAS__CommonTypeDefs::WUSAssistInfo_template& requestedWUSAssistanceInfo() const; +N5GCInd_template& n5GCInd(); +const N5GCInd_template& n5GCInd() const; +NAS__CommonTypeDefs::DRXParamCommon_template& requestedNB__N1DRXParams(); +const NAS__CommonTypeDefs::DRXParamCommon_template& requestedNB__N1DRXParams() const; +NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType(); +const NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType() const; +NG__PagingRestriction_template& pagingRestrict(); +const NG__PagingRestriction_template& pagingRestrict() const; +ServiceLvlAAContainer_template& serviceLvlAA(); +const ServiceLvlAAContainer_template& serviceLvlAA() const; +NID_template& nId(); +const NID_template& nId() const; +NAS__CommonTypeDefs::PLMN__IdIE_template& msPLMNwDisasterCondition(); +const NAS__CommonTypeDefs::PLMN__IdIE_template& msPLMNwDisasterCondition() const; +PEIPS__AssistInfo_template& requestedPEIPS__AssistInfo(); +const PEIPS__AssistInfo_template& requestedPEIPS__AssistInfo() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3512Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3512Value() const; +Record_Template* create() const { return new NG__REGISTRATION__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__GMM__Cap : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_sgc; + BITSTRING field_ngIPHC__CP__CIoT; + BITSTRING field_n3Data; + BITSTRING field_ng__CP__CIoT; + BITSTRING field_restrictEC; + BITSTRING field_lpp; + BITSTRING field_hoAttach; + BITSTRING field_s1Cap; + OPTIONAL field_racs; + OPTIONAL field_nssaa; + OPTIONAL field_ngLCS; + OPTIONAL field_v2xNPC5; + OPTIONAL field_v2xEPC5; + OPTIONAL field_v2x; + OPTIONAL field_ng__UP__CIoT; + OPTIONAL field_ngSRVCC; + OPTIONAL field_ngProSeL2relay; + OPTIONAL field_ngProSe__dc; + OPTIONAL field_ngProSe__dd; + OPTIONAL field_erNSSAI; + OPTIONAL field_ngEHC__CP__CIoT; + OPTIONAL field_multipleUP; + OPTIONAL field_wusa; + OPTIONAL field_cag; + OPTIONAL field_pr; + OPTIONAL field_rpr; + OPTIONAL field_piv; + OPTIONAL field_ncr; + OPTIONAL field_nrPSSI; + OPTIONAL field_ngProSeL3rmt; + OPTIONAL field_ngProSeL2rmt; + OPTIONAL field_ngProSeL3relay; + OPTIONAL field_mpsiu; + OPTIONAL field_uas; + OPTIONAL field_nsag; + OPTIONAL field_exCAG; + OPTIONAL field_ssnpnsi; + OPTIONAL field_eventNotification; + OPTIONAL field_mint; + OPTIONAL field_nssrg; + OPTIONAL field_spareBits; + OPTIONAL field_rcman; + OPTIONAL field_rcmap; + OPTIONAL field_spare; + Base_Type* fld_vec[46]; + void init_vec(); +public: + NG__GMM__Cap(); + NG__GMM__Cap(const NG__GMM__Cap& other_value); + NG__GMM__Cap(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_sgc, + const BITSTRING& par_ngIPHC__CP__CIoT, + const BITSTRING& par_n3Data, + const BITSTRING& par_ng__CP__CIoT, + const BITSTRING& par_restrictEC, + const BITSTRING& par_lpp, + const BITSTRING& par_hoAttach, + const BITSTRING& par_s1Cap, + const OPTIONAL& par_racs, + const OPTIONAL& par_nssaa, + const OPTIONAL& par_ngLCS, + const OPTIONAL& par_v2xNPC5, + const OPTIONAL& par_v2xEPC5, + const OPTIONAL& par_v2x, + const OPTIONAL& par_ng__UP__CIoT, + const OPTIONAL& par_ngSRVCC, + const OPTIONAL& par_ngProSeL2relay, + const OPTIONAL& par_ngProSe__dc, + const OPTIONAL& par_ngProSe__dd, + const OPTIONAL& par_erNSSAI, + const OPTIONAL& par_ngEHC__CP__CIoT, + const OPTIONAL& par_multipleUP, + const OPTIONAL& par_wusa, + const OPTIONAL& par_cag, + const OPTIONAL& par_pr, + const OPTIONAL& par_rpr, + const OPTIONAL& par_piv, + const OPTIONAL& par_ncr, + const OPTIONAL& par_nrPSSI, + const OPTIONAL& par_ngProSeL3rmt, + const OPTIONAL& par_ngProSeL2rmt, + const OPTIONAL& par_ngProSeL3relay, + const OPTIONAL& par_mpsiu, + const OPTIONAL& par_uas, + const OPTIONAL& par_nsag, + const OPTIONAL& par_exCAG, + const OPTIONAL& par_ssnpnsi, + const OPTIONAL& par_eventNotification, + const OPTIONAL& par_mint, + const OPTIONAL& par_nssrg, + const OPTIONAL& par_spareBits, + const OPTIONAL& par_rcman, + const OPTIONAL& par_rcmap, + const OPTIONAL& par_spare); +inline NG__GMM__Cap& operator=(const NG__GMM__Cap& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__GMM__Cap& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__GMM__Cap& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& sgc() + {return field_sgc;} + inline const BITSTRING& sgc() const + {return field_sgc;} + inline BITSTRING& ngIPHC__CP__CIoT() + {return field_ngIPHC__CP__CIoT;} + inline const BITSTRING& ngIPHC__CP__CIoT() const + {return field_ngIPHC__CP__CIoT;} + inline BITSTRING& n3Data() + {return field_n3Data;} + inline const BITSTRING& n3Data() const + {return field_n3Data;} + inline BITSTRING& ng__CP__CIoT() + {return field_ng__CP__CIoT;} + inline const BITSTRING& ng__CP__CIoT() const + {return field_ng__CP__CIoT;} + inline BITSTRING& restrictEC() + {return field_restrictEC;} + inline const BITSTRING& restrictEC() const + {return field_restrictEC;} + inline BITSTRING& lpp() + {return field_lpp;} + inline const BITSTRING& lpp() const + {return field_lpp;} + inline BITSTRING& hoAttach() + {return field_hoAttach;} + inline const BITSTRING& hoAttach() const + {return field_hoAttach;} + inline BITSTRING& s1Cap() + {return field_s1Cap;} + inline const BITSTRING& s1Cap() const + {return field_s1Cap;} + inline OPTIONAL& racs() + {return field_racs;} + inline const OPTIONAL& racs() const + {return field_racs;} + inline OPTIONAL& nssaa() + {return field_nssaa;} + inline const OPTIONAL& nssaa() const + {return field_nssaa;} + inline OPTIONAL& ngLCS() + {return field_ngLCS;} + inline const OPTIONAL& ngLCS() const + {return field_ngLCS;} + inline OPTIONAL& v2xNPC5() + {return field_v2xNPC5;} + inline const OPTIONAL& v2xNPC5() const + {return field_v2xNPC5;} + inline OPTIONAL& v2xEPC5() + {return field_v2xEPC5;} + inline const OPTIONAL& v2xEPC5() const + {return field_v2xEPC5;} + inline OPTIONAL& v2x() + {return field_v2x;} + inline const OPTIONAL& v2x() const + {return field_v2x;} + inline OPTIONAL& ng__UP__CIoT() + {return field_ng__UP__CIoT;} + inline const OPTIONAL& ng__UP__CIoT() const + {return field_ng__UP__CIoT;} + inline OPTIONAL& ngSRVCC() + {return field_ngSRVCC;} + inline const OPTIONAL& ngSRVCC() const + {return field_ngSRVCC;} + inline OPTIONAL& ngProSeL2relay() + {return field_ngProSeL2relay;} + inline const OPTIONAL& ngProSeL2relay() const + {return field_ngProSeL2relay;} + inline OPTIONAL& ngProSe__dc() + {return field_ngProSe__dc;} + inline const OPTIONAL& ngProSe__dc() const + {return field_ngProSe__dc;} + inline OPTIONAL& ngProSe__dd() + {return field_ngProSe__dd;} + inline const OPTIONAL& ngProSe__dd() const + {return field_ngProSe__dd;} + inline OPTIONAL& erNSSAI() + {return field_erNSSAI;} + inline const OPTIONAL& erNSSAI() const + {return field_erNSSAI;} + inline OPTIONAL& ngEHC__CP__CIoT() + {return field_ngEHC__CP__CIoT;} + inline const OPTIONAL& ngEHC__CP__CIoT() const + {return field_ngEHC__CP__CIoT;} + inline OPTIONAL& multipleUP() + {return field_multipleUP;} + inline const OPTIONAL& multipleUP() const + {return field_multipleUP;} + inline OPTIONAL& wusa() + {return field_wusa;} + inline const OPTIONAL& wusa() const + {return field_wusa;} + inline OPTIONAL& cag() + {return field_cag;} + inline const OPTIONAL& cag() const + {return field_cag;} + inline OPTIONAL& pr() + {return field_pr;} + inline const OPTIONAL& pr() const + {return field_pr;} + inline OPTIONAL& rpr() + {return field_rpr;} + inline const OPTIONAL& rpr() const + {return field_rpr;} + inline OPTIONAL& piv() + {return field_piv;} + inline const OPTIONAL& piv() const + {return field_piv;} + inline OPTIONAL& ncr() + {return field_ncr;} + inline const OPTIONAL& ncr() const + {return field_ncr;} + inline OPTIONAL& nrPSSI() + {return field_nrPSSI;} + inline const OPTIONAL& nrPSSI() const + {return field_nrPSSI;} + inline OPTIONAL& ngProSeL3rmt() + {return field_ngProSeL3rmt;} + inline const OPTIONAL& ngProSeL3rmt() const + {return field_ngProSeL3rmt;} + inline OPTIONAL& ngProSeL2rmt() + {return field_ngProSeL2rmt;} + inline const OPTIONAL& ngProSeL2rmt() const + {return field_ngProSeL2rmt;} + inline OPTIONAL& ngProSeL3relay() + {return field_ngProSeL3relay;} + inline const OPTIONAL& ngProSeL3relay() const + {return field_ngProSeL3relay;} + inline OPTIONAL& mpsiu() + {return field_mpsiu;} + inline const OPTIONAL& mpsiu() const + {return field_mpsiu;} + inline OPTIONAL& uas() + {return field_uas;} + inline const OPTIONAL& uas() const + {return field_uas;} + inline OPTIONAL& nsag() + {return field_nsag;} + inline const OPTIONAL& nsag() const + {return field_nsag;} + inline OPTIONAL& exCAG() + {return field_exCAG;} + inline const OPTIONAL& exCAG() const + {return field_exCAG;} + inline OPTIONAL& ssnpnsi() + {return field_ssnpnsi;} + inline const OPTIONAL& ssnpnsi() const + {return field_ssnpnsi;} + inline OPTIONAL& eventNotification() + {return field_eventNotification;} + inline const OPTIONAL& eventNotification() const + {return field_eventNotification;} + inline OPTIONAL& mint() + {return field_mint;} + inline const OPTIONAL& mint() const + {return field_mint;} + inline OPTIONAL& nssrg() + {return field_nssrg;} + inline const OPTIONAL& nssrg() const + {return field_nssrg;} + inline OPTIONAL& spareBits() + {return field_spareBits;} + inline const OPTIONAL& spareBits() const + {return field_spareBits;} + inline OPTIONAL& rcman() + {return field_rcman;} + inline const OPTIONAL& rcman() const + {return field_rcman;} + inline OPTIONAL& rcmap() + {return field_rcmap;} + inline const OPTIONAL& rcmap() const + {return field_rcmap;} + inline OPTIONAL& spare() + {return field_spare;} + inline const OPTIONAL& spare() const + {return field_spare;} +Base_Type* clone() const { return new NG__GMM__Cap(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 46; } +int optional_count() const { return 38; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__GMM__Cap_template : public Record_Template { +void set_specific(); +public: +NG__GMM__Cap_template(): Record_Template() {} +NG__GMM__Cap_template(template_sel other_value): Record_Template(other_value) {} +NG__GMM__Cap_template(const NG__GMM__Cap& other_value): Record_Template() { copy_value(&other_value); } +NG__GMM__Cap_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__GMM__Cap_template(NG__GMM__Cap_template* p_precondition, NG__GMM__Cap_template* p_implied_template); +NG__GMM__Cap_template(Dynamic_Match_Interface* p_dyn_match); +NG__GMM__Cap_template(const NG__GMM__Cap_template& other_value): Record_Template() { copy_template(other_value); } +~NG__GMM__Cap_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__GMM__Cap_template& operator=(template_sel other_value); +NG__GMM__Cap_template& operator=(const NG__GMM__Cap& other_value); +NG__GMM__Cap_template& operator=(const OPTIONAL& other_value); +NG__GMM__Cap_template& operator=(const NG__GMM__Cap_template& other_value); +inline boolean match(const NG__GMM__Cap& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__GMM__Cap& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__GMM__Cap valueof() const; +inline NG__GMM__Cap_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& sgc(); +const BITSTRING_template& sgc() const; +BITSTRING_template& ngIPHC__CP__CIoT(); +const BITSTRING_template& ngIPHC__CP__CIoT() const; +BITSTRING_template& n3Data(); +const BITSTRING_template& n3Data() const; +BITSTRING_template& ng__CP__CIoT(); +const BITSTRING_template& ng__CP__CIoT() const; +BITSTRING_template& restrictEC(); +const BITSTRING_template& restrictEC() const; +BITSTRING_template& lpp(); +const BITSTRING_template& lpp() const; +BITSTRING_template& hoAttach(); +const BITSTRING_template& hoAttach() const; +BITSTRING_template& s1Cap(); +const BITSTRING_template& s1Cap() const; +BITSTRING_template& racs(); +const BITSTRING_template& racs() const; +BITSTRING_template& nssaa(); +const BITSTRING_template& nssaa() const; +BITSTRING_template& ngLCS(); +const BITSTRING_template& ngLCS() const; +BITSTRING_template& v2xNPC5(); +const BITSTRING_template& v2xNPC5() const; +BITSTRING_template& v2xEPC5(); +const BITSTRING_template& v2xEPC5() const; +BITSTRING_template& v2x(); +const BITSTRING_template& v2x() const; +BITSTRING_template& ng__UP__CIoT(); +const BITSTRING_template& ng__UP__CIoT() const; +BITSTRING_template& ngSRVCC(); +const BITSTRING_template& ngSRVCC() const; +BITSTRING_template& ngProSeL2relay(); +const BITSTRING_template& ngProSeL2relay() const; +BITSTRING_template& ngProSe__dc(); +const BITSTRING_template& ngProSe__dc() const; +BITSTRING_template& ngProSe__dd(); +const BITSTRING_template& ngProSe__dd() const; +BITSTRING_template& erNSSAI(); +const BITSTRING_template& erNSSAI() const; +BITSTRING_template& ngEHC__CP__CIoT(); +const BITSTRING_template& ngEHC__CP__CIoT() const; +BITSTRING_template& multipleUP(); +const BITSTRING_template& multipleUP() const; +BITSTRING_template& wusa(); +const BITSTRING_template& wusa() const; +BITSTRING_template& cag(); +const BITSTRING_template& cag() const; +BITSTRING_template& pr(); +const BITSTRING_template& pr() const; +BITSTRING_template& rpr(); +const BITSTRING_template& rpr() const; +BITSTRING_template& piv(); +const BITSTRING_template& piv() const; +BITSTRING_template& ncr(); +const BITSTRING_template& ncr() const; +BITSTRING_template& nrPSSI(); +const BITSTRING_template& nrPSSI() const; +BITSTRING_template& ngProSeL3rmt(); +const BITSTRING_template& ngProSeL3rmt() const; +BITSTRING_template& ngProSeL2rmt(); +const BITSTRING_template& ngProSeL2rmt() const; +BITSTRING_template& ngProSeL3relay(); +const BITSTRING_template& ngProSeL3relay() const; +BITSTRING_template& mpsiu(); +const BITSTRING_template& mpsiu() const; +BITSTRING_template& uas(); +const BITSTRING_template& uas() const; +BITSTRING_template& nsag(); +const BITSTRING_template& nsag() const; +BITSTRING_template& exCAG(); +const BITSTRING_template& exCAG() const; +BITSTRING_template& ssnpnsi(); +const BITSTRING_template& ssnpnsi() const; +BITSTRING_template& eventNotification(); +const BITSTRING_template& eventNotification() const; +BITSTRING_template& mint(); +const BITSTRING_template& mint() const; +BITSTRING_template& nssrg(); +const BITSTRING_template& nssrg() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& rcman(); +const BITSTRING_template& rcman() const; +BITSTRING_template& rcmap(); +const BITSTRING_template& rcmap() const; +OCTETSTRING_template& spare(); +const OCTETSTRING_template& spare() const; +Record_Template* create() const { return new NG__GMM__Cap_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__UE__SecurityCapability : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_ngeaCap; + OCTETSTRING field_ngiaCap; + OPTIONAL field_eeaCap; + OPTIONAL field_eiaCap; + OPTIONAL field_spare; + Base_Type* fld_vec[7]; + void init_vec(); +public: + NG__UE__SecurityCapability(); + NG__UE__SecurityCapability(const NG__UE__SecurityCapability& other_value); + NG__UE__SecurityCapability(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_ngeaCap, + const OCTETSTRING& par_ngiaCap, + const OPTIONAL& par_eeaCap, + const OPTIONAL& par_eiaCap, + const OPTIONAL& par_spare); +inline NG__UE__SecurityCapability& operator=(const NG__UE__SecurityCapability& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__UE__SecurityCapability& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__UE__SecurityCapability& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& ngeaCap() + {return field_ngeaCap;} + inline const OCTETSTRING& ngeaCap() const + {return field_ngeaCap;} + inline OCTETSTRING& ngiaCap() + {return field_ngiaCap;} + inline const OCTETSTRING& ngiaCap() const + {return field_ngiaCap;} + inline OPTIONAL& eeaCap() + {return field_eeaCap;} + inline const OPTIONAL& eeaCap() const + {return field_eeaCap;} + inline OPTIONAL& eiaCap() + {return field_eiaCap;} + inline const OPTIONAL& eiaCap() const + {return field_eiaCap;} + inline OPTIONAL& spare() + {return field_spare;} + inline const OPTIONAL& spare() const + {return field_spare;} +Base_Type* clone() const { return new NG__UE__SecurityCapability(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__UE__SecurityCapability_template : public Record_Template { +void set_specific(); +public: +NG__UE__SecurityCapability_template(): Record_Template() {} +NG__UE__SecurityCapability_template(template_sel other_value): Record_Template(other_value) {} +NG__UE__SecurityCapability_template(const NG__UE__SecurityCapability& other_value): Record_Template() { copy_value(&other_value); } +NG__UE__SecurityCapability_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__UE__SecurityCapability_template(NG__UE__SecurityCapability_template* p_precondition, NG__UE__SecurityCapability_template* p_implied_template); +NG__UE__SecurityCapability_template(Dynamic_Match_Interface* p_dyn_match); +NG__UE__SecurityCapability_template(const NG__UE__SecurityCapability_template& other_value): Record_Template() { copy_template(other_value); } +~NG__UE__SecurityCapability_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__UE__SecurityCapability_template& operator=(template_sel other_value); +NG__UE__SecurityCapability_template& operator=(const NG__UE__SecurityCapability& other_value); +NG__UE__SecurityCapability_template& operator=(const OPTIONAL& other_value); +NG__UE__SecurityCapability_template& operator=(const NG__UE__SecurityCapability_template& other_value); +inline boolean match(const NG__UE__SecurityCapability& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__UE__SecurityCapability& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__UE__SecurityCapability valueof() const; +inline NG__UE__SecurityCapability_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& ngeaCap(); +const OCTETSTRING_template& ngeaCap() const; +OCTETSTRING_template& ngiaCap(); +const OCTETSTRING_template& ngiaCap() const; +OCTETSTRING_template& eeaCap(); +const OCTETSTRING_template& eeaCap() const; +OCTETSTRING_template& eiaCap(); +const OCTETSTRING_template& eiaCap() const; +OCTETSTRING_template& spare(); +const OCTETSTRING_template& spare() const; +Record_Template* create() const { return new NG__UE__SecurityCapability_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class S__NSSAI__TypeList : public Record_Of_Type { + +static const S__NSSAI__LV UNBOUND_ELEM; + +public: +S__NSSAI__TypeList(): Record_Of_Type() {} +S__NSSAI__TypeList(null_type other_value): Record_Of_Type(other_value) {} +S__NSSAI__TypeList(const S__NSSAI__TypeList& other_value): Record_Of_Type(other_value) {} +~S__NSSAI__TypeList() { clean_up(); } + +inline S__NSSAI__TypeList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline S__NSSAI__TypeList& operator=(const S__NSSAI__TypeList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const S__NSSAI__TypeList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const S__NSSAI__TypeList& other_value) const { return !is_equal(&other_value); } +S__NSSAI__LV& operator[](int index_value); +S__NSSAI__LV& operator[](const INTEGER& index_value); +const S__NSSAI__LV& operator[](int index_value) const; +const S__NSSAI__LV& operator[](const INTEGER& index_value) const; +S__NSSAI__TypeList operator<<=(int rotate_count) const; +S__NSSAI__TypeList operator<<=(const INTEGER& rotate_count) const; +S__NSSAI__TypeList operator>>=(int rotate_count) const; +S__NSSAI__TypeList operator>>=(const INTEGER& rotate_count) const; + +S__NSSAI__TypeList operator+(const S__NSSAI__TypeList& other_value) const; + +S__NSSAI__TypeList operator+(const OPTIONAL& other_value) const; + +S__NSSAI__TypeList operator+(null_type) const; + +S__NSSAI__TypeList substr(int index, int returncount) const; + +S__NSSAI__TypeList replace(int index, int len, const S__NSSAI__TypeList& repl) const; + +S__NSSAI__TypeList replace(int index, int len, const S__NSSAI__TypeList_template& repl) const; + +Base_Type* clone() const { return new S__NSSAI__TypeList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class S__NSSAI__TypeList_template : public Record_Of_Template { +friend S__NSSAI__TypeList_template operator+(template_sel left_template, const S__NSSAI__TypeList_template& right_template); +friend S__NSSAI__TypeList_template operator+(const S__NSSAI__TypeList& left_value, const S__NSSAI__TypeList_template& right_template); +friend S__NSSAI__TypeList_template operator+(template_sel left_template, const S__NSSAI__TypeList& right_value); +friend S__NSSAI__TypeList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend S__NSSAI__TypeList_template operator+(const S__NSSAI__TypeList& left_value, template_sel right_template); + +public: +S__NSSAI__TypeList_template() {} +S__NSSAI__TypeList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +S__NSSAI__TypeList_template(null_type other_value); +S__NSSAI__TypeList_template(const S__NSSAI__TypeList& other_value) { copy_value(&other_value); } +S__NSSAI__TypeList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +S__NSSAI__TypeList_template(S__NSSAI__TypeList_template* p_precondition, S__NSSAI__TypeList_template* p_implied_template); +S__NSSAI__TypeList_template(Dynamic_Match_Interface* p_dyn_match); +S__NSSAI__TypeList_template(const S__NSSAI__TypeList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~S__NSSAI__TypeList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +S__NSSAI__TypeList_template& operator=(template_sel other_value); +S__NSSAI__TypeList_template& operator=(null_type other_value); +S__NSSAI__TypeList_template& operator=(const S__NSSAI__TypeList& other_value); +S__NSSAI__TypeList_template& operator=(const OPTIONAL& other_value); +S__NSSAI__TypeList_template& operator=(const S__NSSAI__TypeList_template& other_value); + +S__NSSAI__TypeList_template operator+(const S__NSSAI__TypeList_template& other_value) const; +S__NSSAI__TypeList_template operator+(const S__NSSAI__TypeList& other_value) const; +S__NSSAI__TypeList_template operator+(template_sel other_value) const; +S__NSSAI__TypeList_template operator+(null_type) const; + +S__NSSAI__LV_template& operator[](int index_value); +S__NSSAI__LV_template& operator[](const INTEGER& index_value); +const S__NSSAI__LV_template& operator[](int index_value) const; +const S__NSSAI__LV_template& operator[](const INTEGER& index_value) const; +inline boolean match(const S__NSSAI__TypeList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +S__NSSAI__TypeList valueof() const; +S__NSSAI__TypeList substr(int index, int returncount) const; + +S__NSSAI__TypeList replace(int index, int len, const S__NSSAI__TypeList_template& repl) const; + +S__NSSAI__TypeList replace(int index, int len, const S__NSSAI__TypeList& repl) const; + +inline S__NSSAI__TypeList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const S__NSSAI__TypeList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new S__NSSAI__TypeList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class S__NSSAI__V : public Record_Type { + OCTETSTRING field_sst; + OPTIONAL field_sd; + OPTIONAL field_mappedSST; + OPTIONAL field_mappedSD; + Base_Type* fld_vec[4]; + void init_vec(); +public: + S__NSSAI__V(); + S__NSSAI__V(const S__NSSAI__V& other_value); + S__NSSAI__V(const OCTETSTRING& par_sst, + const OPTIONAL& par_sd, + const OPTIONAL& par_mappedSST, + const OPTIONAL& par_mappedSD); +inline S__NSSAI__V& operator=(const S__NSSAI__V& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const S__NSSAI__V& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const S__NSSAI__V& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& sst() + {return field_sst;} + inline const OCTETSTRING& sst() const + {return field_sst;} + inline OPTIONAL& sd() + {return field_sd;} + inline const OPTIONAL& sd() const + {return field_sd;} + inline OPTIONAL& mappedSST() + {return field_mappedSST;} + inline const OPTIONAL& mappedSST() const + {return field_mappedSST;} + inline OPTIONAL& mappedSD() + {return field_mappedSD;} + inline const OPTIONAL& mappedSD() const + {return field_mappedSD;} +Base_Type* clone() const { return new S__NSSAI__V(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class S__NSSAI__V_template : public Record_Template { +void set_specific(); +public: +S__NSSAI__V_template(): Record_Template() {} +S__NSSAI__V_template(template_sel other_value): Record_Template(other_value) {} +S__NSSAI__V_template(const S__NSSAI__V& other_value): Record_Template() { copy_value(&other_value); } +S__NSSAI__V_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +S__NSSAI__V_template(S__NSSAI__V_template* p_precondition, S__NSSAI__V_template* p_implied_template); +S__NSSAI__V_template(Dynamic_Match_Interface* p_dyn_match); +S__NSSAI__V_template(const S__NSSAI__V_template& other_value): Record_Template() { copy_template(other_value); } +~S__NSSAI__V_template(); +boolean match_dynamic(const Base_Type* match_value) const; +S__NSSAI__V_template& operator=(template_sel other_value); +S__NSSAI__V_template& operator=(const S__NSSAI__V& other_value); +S__NSSAI__V_template& operator=(const OPTIONAL& other_value); +S__NSSAI__V_template& operator=(const S__NSSAI__V_template& other_value); +inline boolean match(const S__NSSAI__V& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const S__NSSAI__V& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +S__NSSAI__V valueof() const; +inline S__NSSAI__V_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& sst(); +const OCTETSTRING_template& sst() const; +OCTETSTRING_template& sd(); +const OCTETSTRING_template& sd() const; +OCTETSTRING_template& mappedSST(); +const OCTETSTRING_template& mappedSST() const; +OCTETSTRING_template& mappedSD(); +const OCTETSTRING_template& mappedSD() const; +Record_Template* create() const { return new S__NSSAI__V_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class S__NSSAI__LV : public Record_Type { + OPTIONAL field_iel; + S__NSSAI__V field_vPart; + Base_Type* fld_vec[2]; + void init_vec(); +public: + S__NSSAI__LV(); + S__NSSAI__LV(const S__NSSAI__LV& other_value); + S__NSSAI__LV(const OPTIONAL& par_iel, + const S__NSSAI__V& par_vPart); +inline S__NSSAI__LV& operator=(const S__NSSAI__LV& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const S__NSSAI__LV& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const S__NSSAI__LV& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline S__NSSAI__V& vPart() + {return field_vPart;} + inline const S__NSSAI__V& vPart() const + {return field_vPart;} +Base_Type* clone() const { return new S__NSSAI__LV(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class S__NSSAI__LV_template : public Record_Template { +void set_specific(); +public: +S__NSSAI__LV_template(): Record_Template() {} +S__NSSAI__LV_template(template_sel other_value): Record_Template(other_value) {} +S__NSSAI__LV_template(const S__NSSAI__LV& other_value): Record_Template() { copy_value(&other_value); } +S__NSSAI__LV_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +S__NSSAI__LV_template(S__NSSAI__LV_template* p_precondition, S__NSSAI__LV_template* p_implied_template); +S__NSSAI__LV_template(Dynamic_Match_Interface* p_dyn_match); +S__NSSAI__LV_template(const S__NSSAI__LV_template& other_value): Record_Template() { copy_template(other_value); } +~S__NSSAI__LV_template(); +boolean match_dynamic(const Base_Type* match_value) const; +S__NSSAI__LV_template& operator=(template_sel other_value); +S__NSSAI__LV_template& operator=(const S__NSSAI__LV& other_value); +S__NSSAI__LV_template& operator=(const OPTIONAL& other_value); +S__NSSAI__LV_template& operator=(const S__NSSAI__LV_template& other_value); +inline boolean match(const S__NSSAI__LV& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const S__NSSAI__LV& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +S__NSSAI__LV valueof() const; +inline S__NSSAI__LV_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +S__NSSAI__V_template& vPart(); +const S__NSSAI__V_template& vPart() const; +Record_Template* create() const { return new S__NSSAI__LV_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NSSAI__LV : public Record_Type { + OPTIONAL field_iel; + S__NSSAI__TypeList field_s__nssai; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NSSAI__LV(); + NSSAI__LV(const NSSAI__LV& other_value); + NSSAI__LV(const OPTIONAL& par_iel, + const S__NSSAI__TypeList& par_s__nssai); +inline NSSAI__LV& operator=(const NSSAI__LV& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSSAI__LV& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NSSAI__LV& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline S__NSSAI__TypeList& s__nssai() + {return field_s__nssai;} + inline const S__NSSAI__TypeList& s__nssai() const + {return field_s__nssai;} +Base_Type* clone() const { return new NSSAI__LV(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NSSAI__LV_template : public Record_Template { +void set_specific(); +public: +NSSAI__LV_template(): Record_Template() {} +NSSAI__LV_template(template_sel other_value): Record_Template(other_value) {} +NSSAI__LV_template(const NSSAI__LV& other_value): Record_Template() { copy_value(&other_value); } +NSSAI__LV_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NSSAI__LV_template(NSSAI__LV_template* p_precondition, NSSAI__LV_template* p_implied_template); +NSSAI__LV_template(Dynamic_Match_Interface* p_dyn_match); +NSSAI__LV_template(const NSSAI__LV_template& other_value): Record_Template() { copy_template(other_value); } +~NSSAI__LV_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSSAI__LV_template& operator=(template_sel other_value); +NSSAI__LV_template& operator=(const NSSAI__LV& other_value); +NSSAI__LV_template& operator=(const OPTIONAL& other_value); +NSSAI__LV_template& operator=(const NSSAI__LV_template& other_value); +inline boolean match(const NSSAI__LV& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NSSAI__LV& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NSSAI__LV valueof() const; +inline NSSAI__LV_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +S__NSSAI__TypeList_template& s__nssai(); +const S__NSSAI__TypeList_template& s__nssai() const; +Record_Template* create() const { return new NSSAI__LV_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NSSAI : public Record_Type { + OPTIONAL field_iei; + NSSAI__LV field_lvPart; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NSSAI(); + NSSAI(const NSSAI& other_value); + NSSAI(const OPTIONAL& par_iei, + const NSSAI__LV& par_lvPart); +inline NSSAI& operator=(const NSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSSAI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NSSAI& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline NSSAI__LV& lvPart() + {return field_lvPart;} + inline const NSSAI__LV& lvPart() const + {return field_lvPart;} +Base_Type* clone() const { return new NSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NSSAI_template : public Record_Template { +void set_specific(); +public: +NSSAI_template(): Record_Template() {} +NSSAI_template(template_sel other_value): Record_Template(other_value) {} +NSSAI_template(const NSSAI& other_value): Record_Template() { copy_value(&other_value); } +NSSAI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NSSAI_template(NSSAI_template* p_precondition, NSSAI_template* p_implied_template); +NSSAI_template(Dynamic_Match_Interface* p_dyn_match); +NSSAI_template(const NSSAI_template& other_value): Record_Template() { copy_template(other_value); } +~NSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSSAI_template& operator=(template_sel other_value); +NSSAI_template& operator=(const NSSAI& other_value); +NSSAI_template& operator=(const OPTIONAL& other_value); +NSSAI_template& operator=(const NSSAI_template& other_value); +inline boolean match(const NSSAI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NSSAI valueof() const; +inline NSSAI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +NSSAI__LV_template& lvPart(); +const NSSAI__LV_template& lvPart() const; +Record_Template* create() const { return new NSSAI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__TrackingAreaId : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_plmnId; + OCTETSTRING field_tac; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NG__TrackingAreaId(); + NG__TrackingAreaId(const NG__TrackingAreaId& other_value); + NG__TrackingAreaId(const OPTIONAL& par_iei, + const OCTETSTRING& par_plmnId, + const OCTETSTRING& par_tac); +inline NG__TrackingAreaId& operator=(const NG__TrackingAreaId& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__TrackingAreaId& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__TrackingAreaId& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& plmnId() + {return field_plmnId;} + inline const OCTETSTRING& plmnId() const + {return field_plmnId;} + inline OCTETSTRING& tac() + {return field_tac;} + inline const OCTETSTRING& tac() const + {return field_tac;} +Base_Type* clone() const { return new NG__TrackingAreaId(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__TrackingAreaId_template : public Record_Template { +void set_specific(); +public: +NG__TrackingAreaId_template(): Record_Template() {} +NG__TrackingAreaId_template(template_sel other_value): Record_Template(other_value) {} +NG__TrackingAreaId_template(const NG__TrackingAreaId& other_value): Record_Template() { copy_value(&other_value); } +NG__TrackingAreaId_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__TrackingAreaId_template(NG__TrackingAreaId_template* p_precondition, NG__TrackingAreaId_template* p_implied_template); +NG__TrackingAreaId_template(Dynamic_Match_Interface* p_dyn_match); +NG__TrackingAreaId_template(const NG__TrackingAreaId_template& other_value): Record_Template() { copy_template(other_value); } +~NG__TrackingAreaId_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__TrackingAreaId_template& operator=(template_sel other_value); +NG__TrackingAreaId_template& operator=(const NG__TrackingAreaId& other_value); +NG__TrackingAreaId_template& operator=(const OPTIONAL& other_value); +NG__TrackingAreaId_template& operator=(const NG__TrackingAreaId_template& other_value); +inline boolean match(const NG__TrackingAreaId& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__TrackingAreaId& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__TrackingAreaId valueof() const; +inline NG__TrackingAreaId_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& plmnId(); +const OCTETSTRING_template& plmnId() const; +OCTETSTRING_template& tac(); +const OCTETSTRING_template& tac() const; +Record_Template* create() const { return new NG__TrackingAreaId_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDU__SessionStatus : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_psi0__7; + BITSTRING field_psi8__15; + OPTIONAL field_spare; + Base_Type* fld_vec[5]; + void init_vec(); +public: + PDU__SessionStatus(); + PDU__SessionStatus(const PDU__SessionStatus& other_value); + PDU__SessionStatus(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_psi0__7, + const BITSTRING& par_psi8__15, + const OPTIONAL& par_spare); +inline PDU__SessionStatus& operator=(const PDU__SessionStatus& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDU__SessionStatus& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDU__SessionStatus& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& psi0__7() + {return field_psi0__7;} + inline const BITSTRING& psi0__7() const + {return field_psi0__7;} + inline BITSTRING& psi8__15() + {return field_psi8__15;} + inline const BITSTRING& psi8__15() const + {return field_psi8__15;} + inline OPTIONAL& spare() + {return field_spare;} + inline const OPTIONAL& spare() const + {return field_spare;} +Base_Type* clone() const { return new PDU__SessionStatus(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDU__SessionStatus_template : public Record_Template { +void set_specific(); +public: +PDU__SessionStatus_template(): Record_Template() {} +PDU__SessionStatus_template(template_sel other_value): Record_Template(other_value) {} +PDU__SessionStatus_template(const PDU__SessionStatus& other_value): Record_Template() { copy_value(&other_value); } +PDU__SessionStatus_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDU__SessionStatus_template(PDU__SessionStatus_template* p_precondition, PDU__SessionStatus_template* p_implied_template); +PDU__SessionStatus_template(Dynamic_Match_Interface* p_dyn_match); +PDU__SessionStatus_template(const PDU__SessionStatus_template& other_value): Record_Template() { copy_template(other_value); } +~PDU__SessionStatus_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDU__SessionStatus_template& operator=(template_sel other_value); +PDU__SessionStatus_template& operator=(const PDU__SessionStatus& other_value); +PDU__SessionStatus_template& operator=(const OPTIONAL& other_value); +PDU__SessionStatus_template& operator=(const PDU__SessionStatus_template& other_value); +inline boolean match(const PDU__SessionStatus& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDU__SessionStatus& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDU__SessionStatus valueof() const; +inline PDU__SessionStatus_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& psi0__7(); +const BITSTRING_template& psi0__7() const; +BITSTRING_template& psi8__15(); +const BITSTRING_template& psi8__15() const; +OCTETSTRING_template& spare(); +const OCTETSTRING_template& spare() const; +Record_Template* create() const { return new PDU__SessionStatus_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MICO__Ind : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_sprti; + BITSTRING field_raai; + Base_Type* fld_vec[4]; + void init_vec(); +public: + MICO__Ind(); + MICO__Ind(const MICO__Ind& other_value); + MICO__Ind(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_sprti, + const BITSTRING& par_raai); +inline MICO__Ind& operator=(const MICO__Ind& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MICO__Ind& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MICO__Ind& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& sprti() + {return field_sprti;} + inline const BITSTRING& sprti() const + {return field_sprti;} + inline BITSTRING& raai() + {return field_raai;} + inline const BITSTRING& raai() const + {return field_raai;} +Base_Type* clone() const { return new MICO__Ind(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MICO__Ind_template : public Record_Template { +void set_specific(); +public: +MICO__Ind_template(): Record_Template() {} +MICO__Ind_template(template_sel other_value): Record_Template(other_value) {} +MICO__Ind_template(const MICO__Ind& other_value): Record_Template() { copy_value(&other_value); } +MICO__Ind_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MICO__Ind_template(MICO__Ind_template* p_precondition, MICO__Ind_template* p_implied_template); +MICO__Ind_template(Dynamic_Match_Interface* p_dyn_match); +MICO__Ind_template(const MICO__Ind_template& other_value): Record_Template() { copy_template(other_value); } +~MICO__Ind_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MICO__Ind_template& operator=(template_sel other_value); +MICO__Ind_template& operator=(const MICO__Ind& other_value); +MICO__Ind_template& operator=(const OPTIONAL& other_value); +MICO__Ind_template& operator=(const MICO__Ind_template& other_value); +inline boolean match(const MICO__Ind& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MICO__Ind& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MICO__Ind valueof() const; +inline MICO__Ind_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& sprti(); +const BITSTRING_template& sprti() const; +BITSTRING_template& raai(); +const BITSTRING_template& raai() const; +Record_Template* create() const { return new MICO__Ind_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__UsageSetting : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_ueUsageSetting; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UE__UsageSetting(); + UE__UsageSetting(const UE__UsageSetting& other_value); + UE__UsageSetting(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_ueUsageSetting); +inline UE__UsageSetting& operator=(const UE__UsageSetting& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__UsageSetting& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__UsageSetting& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& ueUsageSetting() + {return field_ueUsageSetting;} + inline const BITSTRING& ueUsageSetting() const + {return field_ueUsageSetting;} +Base_Type* clone() const { return new UE__UsageSetting(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__UsageSetting_template : public Record_Template { +void set_specific(); +public: +UE__UsageSetting_template(): Record_Template() {} +UE__UsageSetting_template(template_sel other_value): Record_Template(other_value) {} +UE__UsageSetting_template(const UE__UsageSetting& other_value): Record_Template() { copy_value(&other_value); } +UE__UsageSetting_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__UsageSetting_template(UE__UsageSetting_template* p_precondition, UE__UsageSetting_template* p_implied_template); +UE__UsageSetting_template(Dynamic_Match_Interface* p_dyn_match); +UE__UsageSetting_template(const UE__UsageSetting_template& other_value): Record_Template() { copy_template(other_value); } +~UE__UsageSetting_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__UsageSetting_template& operator=(template_sel other_value); +UE__UsageSetting_template& operator=(const UE__UsageSetting& other_value); +UE__UsageSetting_template& operator=(const OPTIONAL& other_value); +UE__UsageSetting_template& operator=(const UE__UsageSetting_template& other_value); +inline boolean match(const UE__UsageSetting& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__UsageSetting& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__UsageSetting valueof() const; +inline UE__UsageSetting_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& ueUsageSetting(); +const BITSTRING_template& ueUsageSetting() const; +Record_Template* create() const { return new UE__UsageSetting_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EPS__MessageContainer : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_epsMsg; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EPS__MessageContainer(); + EPS__MessageContainer(const EPS__MessageContainer& other_value); + EPS__MessageContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_epsMsg); +inline EPS__MessageContainer& operator=(const EPS__MessageContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPS__MessageContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPS__MessageContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& epsMsg() + {return field_epsMsg;} + inline const OCTETSTRING& epsMsg() const + {return field_epsMsg;} +Base_Type* clone() const { return new EPS__MessageContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPS__MessageContainer_template : public Record_Template { +void set_specific(); +public: +EPS__MessageContainer_template(): Record_Template() {} +EPS__MessageContainer_template(template_sel other_value): Record_Template(other_value) {} +EPS__MessageContainer_template(const EPS__MessageContainer& other_value): Record_Template() { copy_value(&other_value); } +EPS__MessageContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPS__MessageContainer_template(EPS__MessageContainer_template* p_precondition, EPS__MessageContainer_template* p_implied_template); +EPS__MessageContainer_template(Dynamic_Match_Interface* p_dyn_match); +EPS__MessageContainer_template(const EPS__MessageContainer_template& other_value): Record_Template() { copy_template(other_value); } +~EPS__MessageContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPS__MessageContainer_template& operator=(template_sel other_value); +EPS__MessageContainer_template& operator=(const EPS__MessageContainer& other_value); +EPS__MessageContainer_template& operator=(const OPTIONAL& other_value); +EPS__MessageContainer_template& operator=(const EPS__MessageContainer_template& other_value); +inline boolean match(const EPS__MessageContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPS__MessageContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPS__MessageContainer valueof() const; +inline EPS__MessageContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& epsMsg(); +const OCTETSTRING_template& epsMsg() const; +Record_Template* create() const { return new EPS__MessageContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class LADN__Ind : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OPTIONAL field_listOfLADN__DNNValues; + Base_Type* fld_vec[3]; + void init_vec(); +public: + LADN__Ind(); + LADN__Ind(const LADN__Ind& other_value); + LADN__Ind(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_listOfLADN__DNNValues); +inline LADN__Ind& operator=(const LADN__Ind& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LADN__Ind& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const LADN__Ind& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OPTIONAL& listOfLADN__DNNValues() + {return field_listOfLADN__DNNValues;} + inline const OPTIONAL& listOfLADN__DNNValues() const + {return field_listOfLADN__DNNValues;} +Base_Type* clone() const { return new LADN__Ind(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class LADN__Ind_template : public Record_Template { +void set_specific(); +public: +LADN__Ind_template(): Record_Template() {} +LADN__Ind_template(template_sel other_value): Record_Template(other_value) {} +LADN__Ind_template(const LADN__Ind& other_value): Record_Template() { copy_value(&other_value); } +LADN__Ind_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +LADN__Ind_template(LADN__Ind_template* p_precondition, LADN__Ind_template* p_implied_template); +LADN__Ind_template(Dynamic_Match_Interface* p_dyn_match); +LADN__Ind_template(const LADN__Ind_template& other_value): Record_Template() { copy_template(other_value); } +~LADN__Ind_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LADN__Ind_template& operator=(template_sel other_value); +LADN__Ind_template& operator=(const LADN__Ind& other_value); +LADN__Ind_template& operator=(const OPTIONAL& other_value); +LADN__Ind_template& operator=(const LADN__Ind_template& other_value); +inline boolean match(const LADN__Ind& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const LADN__Ind& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +LADN__Ind valueof() const; +inline LADN__Ind_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& listOfLADN__DNNValues(); +const OCTETSTRING_template& listOfLADN__DNNValues() const; +Record_Template* create() const { return new LADN__Ind_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PayloadContainerType : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_container; + Base_Type* fld_vec[2]; + void init_vec(); +public: + PayloadContainerType(); + PayloadContainerType(const PayloadContainerType& other_value); + PayloadContainerType(const OPTIONAL& par_iei, + const BITSTRING& par_container); +inline PayloadContainerType& operator=(const PayloadContainerType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PayloadContainerType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PayloadContainerType& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& container() + {return field_container;} + inline const BITSTRING& container() const + {return field_container;} +Base_Type* clone() const { return new PayloadContainerType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PayloadContainerType_template : public Record_Template { +void set_specific(); +public: +PayloadContainerType_template(): Record_Template() {} +PayloadContainerType_template(template_sel other_value): Record_Template(other_value) {} +PayloadContainerType_template(const PayloadContainerType& other_value): Record_Template() { copy_value(&other_value); } +PayloadContainerType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PayloadContainerType_template(PayloadContainerType_template* p_precondition, PayloadContainerType_template* p_implied_template); +PayloadContainerType_template(Dynamic_Match_Interface* p_dyn_match); +PayloadContainerType_template(const PayloadContainerType_template& other_value): Record_Template() { copy_template(other_value); } +~PayloadContainerType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PayloadContainerType_template& operator=(template_sel other_value); +PayloadContainerType_template& operator=(const PayloadContainerType& other_value); +PayloadContainerType_template& operator=(const OPTIONAL& other_value); +PayloadContainerType_template& operator=(const PayloadContainerType_template& other_value); +inline boolean match(const PayloadContainerType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PayloadContainerType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PayloadContainerType valueof() const; +inline PayloadContainerType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& container(); +const BITSTRING_template& container() const; +Record_Template* create() const { return new PayloadContainerType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PayloadContainer : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_payload; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PayloadContainer(); + PayloadContainer(const PayloadContainer& other_value); + PayloadContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_payload); +inline PayloadContainer& operator=(const PayloadContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PayloadContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PayloadContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& payload() + {return field_payload;} + inline const OCTETSTRING& payload() const + {return field_payload;} +Base_Type* clone() const { return new PayloadContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PayloadContainer_template : public Record_Template { +void set_specific(); +public: +PayloadContainer_template(): Record_Template() {} +PayloadContainer_template(template_sel other_value): Record_Template(other_value) {} +PayloadContainer_template(const PayloadContainer& other_value): Record_Template() { copy_value(&other_value); } +PayloadContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PayloadContainer_template(PayloadContainer_template* p_precondition, PayloadContainer_template* p_implied_template); +PayloadContainer_template(Dynamic_Match_Interface* p_dyn_match); +PayloadContainer_template(const PayloadContainer_template& other_value): Record_Template() { copy_template(other_value); } +~PayloadContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PayloadContainer_template& operator=(template_sel other_value); +PayloadContainer_template& operator=(const PayloadContainer& other_value); +PayloadContainer_template& operator=(const OPTIONAL& other_value); +PayloadContainer_template& operator=(const PayloadContainer_template& other_value); +inline boolean match(const PayloadContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PayloadContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PayloadContainer valueof() const; +inline PayloadContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& payload(); +const OCTETSTRING_template& payload() const; +Record_Template* create() const { return new PayloadContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NetworkSlicingInd : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_dcni; + BITSTRING field_nssci; + Base_Type* fld_vec[4]; + void init_vec(); +public: + NetworkSlicingInd(); + NetworkSlicingInd(const NetworkSlicingInd& other_value); + NetworkSlicingInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_dcni, + const BITSTRING& par_nssci); +inline NetworkSlicingInd& operator=(const NetworkSlicingInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NetworkSlicingInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NetworkSlicingInd& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& dcni() + {return field_dcni;} + inline const BITSTRING& dcni() const + {return field_dcni;} + inline BITSTRING& nssci() + {return field_nssci;} + inline const BITSTRING& nssci() const + {return field_nssci;} +Base_Type* clone() const { return new NetworkSlicingInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NetworkSlicingInd_template : public Record_Template { +void set_specific(); +public: +NetworkSlicingInd_template(): Record_Template() {} +NetworkSlicingInd_template(template_sel other_value): Record_Template(other_value) {} +NetworkSlicingInd_template(const NetworkSlicingInd& other_value): Record_Template() { copy_value(&other_value); } +NetworkSlicingInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NetworkSlicingInd_template(NetworkSlicingInd_template* p_precondition, NetworkSlicingInd_template* p_implied_template); +NetworkSlicingInd_template(Dynamic_Match_Interface* p_dyn_match); +NetworkSlicingInd_template(const NetworkSlicingInd_template& other_value): Record_Template() { copy_template(other_value); } +~NetworkSlicingInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NetworkSlicingInd_template& operator=(template_sel other_value); +NetworkSlicingInd_template& operator=(const NetworkSlicingInd& other_value); +NetworkSlicingInd_template& operator=(const OPTIONAL& other_value); +NetworkSlicingInd_template& operator=(const NetworkSlicingInd_template& other_value); +inline boolean match(const NetworkSlicingInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NetworkSlicingInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NetworkSlicingInd valueof() const; +inline NetworkSlicingInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& dcni(); +const BITSTRING_template& dcni() const; +BITSTRING_template& nssci(); +const BITSTRING_template& nssci() const; +Record_Template* create() const { return new NetworkSlicingInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__UpdateType : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_eps__PNB__CIoT; + BITSTRING field_ng__PNB__CIoT; + BITSTRING field_ngRAN__RCU; + BITSTRING field_smsRequested; + Base_Type* fld_vec[7]; + void init_vec(); +public: + NG__UpdateType(); + NG__UpdateType(const NG__UpdateType& other_value); + NG__UpdateType(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_eps__PNB__CIoT, + const BITSTRING& par_ng__PNB__CIoT, + const BITSTRING& par_ngRAN__RCU, + const BITSTRING& par_smsRequested); +inline NG__UpdateType& operator=(const NG__UpdateType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__UpdateType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__UpdateType& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& eps__PNB__CIoT() + {return field_eps__PNB__CIoT;} + inline const BITSTRING& eps__PNB__CIoT() const + {return field_eps__PNB__CIoT;} + inline BITSTRING& ng__PNB__CIoT() + {return field_ng__PNB__CIoT;} + inline const BITSTRING& ng__PNB__CIoT() const + {return field_ng__PNB__CIoT;} + inline BITSTRING& ngRAN__RCU() + {return field_ngRAN__RCU;} + inline const BITSTRING& ngRAN__RCU() const + {return field_ngRAN__RCU;} + inline BITSTRING& smsRequested() + {return field_smsRequested;} + inline const BITSTRING& smsRequested() const + {return field_smsRequested;} +Base_Type* clone() const { return new NG__UpdateType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__UpdateType_template : public Record_Template { +void set_specific(); +public: +NG__UpdateType_template(): Record_Template() {} +NG__UpdateType_template(template_sel other_value): Record_Template(other_value) {} +NG__UpdateType_template(const NG__UpdateType& other_value): Record_Template() { copy_value(&other_value); } +NG__UpdateType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__UpdateType_template(NG__UpdateType_template* p_precondition, NG__UpdateType_template* p_implied_template); +NG__UpdateType_template(Dynamic_Match_Interface* p_dyn_match); +NG__UpdateType_template(const NG__UpdateType_template& other_value): Record_Template() { copy_template(other_value); } +~NG__UpdateType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__UpdateType_template& operator=(template_sel other_value); +NG__UpdateType_template& operator=(const NG__UpdateType& other_value); +NG__UpdateType_template& operator=(const OPTIONAL& other_value); +NG__UpdateType_template& operator=(const NG__UpdateType_template& other_value); +inline boolean match(const NG__UpdateType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__UpdateType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__UpdateType valueof() const; +inline NG__UpdateType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& eps__PNB__CIoT(); +const BITSTRING_template& eps__PNB__CIoT() const; +BITSTRING_template& ng__PNB__CIoT(); +const BITSTRING_template& ng__PNB__CIoT() const; +BITSTRING_template& ngRAN__RCU(); +const BITSTRING_template& ngRAN__RCU() const; +BITSTRING_template& smsRequested(); +const BITSTRING_template& smsRequested() const; +Record_Template* create() const { return new NG__UpdateType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MappedNSSAI_s__NSSAI : public Record_Of_Type { + +static const Mapped__S__NSSAIValue UNBOUND_ELEM; + +public: +MappedNSSAI_s__NSSAI(): Record_Of_Type() {} +MappedNSSAI_s__NSSAI(null_type other_value): Record_Of_Type(other_value) {} +MappedNSSAI_s__NSSAI(const MappedNSSAI_s__NSSAI& other_value): Record_Of_Type(other_value) {} +~MappedNSSAI_s__NSSAI() { clean_up(); } + +inline MappedNSSAI_s__NSSAI& operator=(null_type other_value) { set_val(other_value); return *this; } +inline MappedNSSAI_s__NSSAI& operator=(const MappedNSSAI_s__NSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MappedNSSAI_s__NSSAI& other_value) const { return is_equal(&other_value); } +boolean operator!=(const MappedNSSAI_s__NSSAI& other_value) const { return !is_equal(&other_value); } +Mapped__S__NSSAIValue& operator[](int index_value); +Mapped__S__NSSAIValue& operator[](const INTEGER& index_value); +const Mapped__S__NSSAIValue& operator[](int index_value) const; +const Mapped__S__NSSAIValue& operator[](const INTEGER& index_value) const; +MappedNSSAI_s__NSSAI operator<<=(int rotate_count) const; +MappedNSSAI_s__NSSAI operator<<=(const INTEGER& rotate_count) const; +MappedNSSAI_s__NSSAI operator>>=(int rotate_count) const; +MappedNSSAI_s__NSSAI operator>>=(const INTEGER& rotate_count) const; + +MappedNSSAI_s__NSSAI operator+(const MappedNSSAI_s__NSSAI& other_value) const; + +MappedNSSAI_s__NSSAI operator+(const OPTIONAL& other_value) const; + +MappedNSSAI_s__NSSAI operator+(null_type) const; + +MappedNSSAI_s__NSSAI substr(int index, int returncount) const; + +MappedNSSAI_s__NSSAI replace(int index, int len, const MappedNSSAI_s__NSSAI& repl) const; + +MappedNSSAI_s__NSSAI replace(int index, int len, const MappedNSSAI_s__NSSAI_template& repl) const; + +Base_Type* clone() const { return new MappedNSSAI_s__NSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class MappedNSSAI_s__NSSAI_template : public Record_Of_Template { +friend MappedNSSAI_s__NSSAI_template operator+(template_sel left_template, const MappedNSSAI_s__NSSAI_template& right_template); +friend MappedNSSAI_s__NSSAI_template operator+(const MappedNSSAI_s__NSSAI& left_value, const MappedNSSAI_s__NSSAI_template& right_template); +friend MappedNSSAI_s__NSSAI_template operator+(template_sel left_template, const MappedNSSAI_s__NSSAI& right_value); +friend MappedNSSAI_s__NSSAI_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend MappedNSSAI_s__NSSAI_template operator+(const MappedNSSAI_s__NSSAI& left_value, template_sel right_template); + +public: +MappedNSSAI_s__NSSAI_template() {} +MappedNSSAI_s__NSSAI_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +MappedNSSAI_s__NSSAI_template(null_type other_value); +MappedNSSAI_s__NSSAI_template(const MappedNSSAI_s__NSSAI& other_value) { copy_value(&other_value); } +MappedNSSAI_s__NSSAI_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +MappedNSSAI_s__NSSAI_template(MappedNSSAI_s__NSSAI_template* p_precondition, MappedNSSAI_s__NSSAI_template* p_implied_template); +MappedNSSAI_s__NSSAI_template(Dynamic_Match_Interface* p_dyn_match); +MappedNSSAI_s__NSSAI_template(const MappedNSSAI_s__NSSAI_template& other_value): Record_Of_Template() { copy_template(other_value); } +~MappedNSSAI_s__NSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MappedNSSAI_s__NSSAI_template& operator=(template_sel other_value); +MappedNSSAI_s__NSSAI_template& operator=(null_type other_value); +MappedNSSAI_s__NSSAI_template& operator=(const MappedNSSAI_s__NSSAI& other_value); +MappedNSSAI_s__NSSAI_template& operator=(const OPTIONAL& other_value); +MappedNSSAI_s__NSSAI_template& operator=(const MappedNSSAI_s__NSSAI_template& other_value); + +MappedNSSAI_s__NSSAI_template operator+(const MappedNSSAI_s__NSSAI_template& other_value) const; +MappedNSSAI_s__NSSAI_template operator+(const MappedNSSAI_s__NSSAI& other_value) const; +MappedNSSAI_s__NSSAI_template operator+(template_sel other_value) const; +MappedNSSAI_s__NSSAI_template operator+(null_type) const; + +Mapped__S__NSSAIValue_template& operator[](int index_value); +Mapped__S__NSSAIValue_template& operator[](const INTEGER& index_value); +const Mapped__S__NSSAIValue_template& operator[](int index_value) const; +const Mapped__S__NSSAIValue_template& operator[](const INTEGER& index_value) const; +inline boolean match(const MappedNSSAI_s__NSSAI& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +MappedNSSAI_s__NSSAI valueof() const; +MappedNSSAI_s__NSSAI substr(int index, int returncount) const; + +MappedNSSAI_s__NSSAI replace(int index, int len, const MappedNSSAI_s__NSSAI_template& repl) const; + +MappedNSSAI_s__NSSAI replace(int index, int len, const MappedNSSAI_s__NSSAI& repl) const; + +inline MappedNSSAI_s__NSSAI_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const MappedNSSAI_s__NSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new MappedNSSAI_s__NSSAI_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class Mapped__S__NSSAIValue : public Record_Type { + OCTETSTRING field_iel; + OCTETSTRING field_sst; + OPTIONAL field_sd; + Base_Type* fld_vec[3]; + void init_vec(); +public: + Mapped__S__NSSAIValue(); + Mapped__S__NSSAIValue(const Mapped__S__NSSAIValue& other_value); + Mapped__S__NSSAIValue(const OCTETSTRING& par_iel, + const OCTETSTRING& par_sst, + const OPTIONAL& par_sd); +inline Mapped__S__NSSAIValue& operator=(const Mapped__S__NSSAIValue& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Mapped__S__NSSAIValue& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Mapped__S__NSSAIValue& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& sst() + {return field_sst;} + inline const OCTETSTRING& sst() const + {return field_sst;} + inline OPTIONAL& sd() + {return field_sd;} + inline const OPTIONAL& sd() const + {return field_sd;} +Base_Type* clone() const { return new Mapped__S__NSSAIValue(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Mapped__S__NSSAIValue_template : public Record_Template { +void set_specific(); +public: +Mapped__S__NSSAIValue_template(): Record_Template() {} +Mapped__S__NSSAIValue_template(template_sel other_value): Record_Template(other_value) {} +Mapped__S__NSSAIValue_template(const Mapped__S__NSSAIValue& other_value): Record_Template() { copy_value(&other_value); } +Mapped__S__NSSAIValue_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Mapped__S__NSSAIValue_template(Mapped__S__NSSAIValue_template* p_precondition, Mapped__S__NSSAIValue_template* p_implied_template); +Mapped__S__NSSAIValue_template(Dynamic_Match_Interface* p_dyn_match); +Mapped__S__NSSAIValue_template(const Mapped__S__NSSAIValue_template& other_value): Record_Template() { copy_template(other_value); } +~Mapped__S__NSSAIValue_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Mapped__S__NSSAIValue_template& operator=(template_sel other_value); +Mapped__S__NSSAIValue_template& operator=(const Mapped__S__NSSAIValue& other_value); +Mapped__S__NSSAIValue_template& operator=(const OPTIONAL& other_value); +Mapped__S__NSSAIValue_template& operator=(const Mapped__S__NSSAIValue_template& other_value); +inline boolean match(const Mapped__S__NSSAIValue& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Mapped__S__NSSAIValue& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Mapped__S__NSSAIValue valueof() const; +inline Mapped__S__NSSAIValue_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& sst(); +const OCTETSTRING_template& sst() const; +OCTETSTRING_template& sd(); +const OCTETSTRING_template& sd() const; +Record_Template* create() const { return new Mapped__S__NSSAIValue_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MappedNSSAI : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + MappedNSSAI_s__NSSAI field_s__NSSAI; + Base_Type* fld_vec[3]; + void init_vec(); +public: + MappedNSSAI(); + MappedNSSAI(const MappedNSSAI& other_value); + MappedNSSAI(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const MappedNSSAI_s__NSSAI& par_s__NSSAI); +inline MappedNSSAI& operator=(const MappedNSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MappedNSSAI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MappedNSSAI& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline MappedNSSAI_s__NSSAI& s__NSSAI() + {return field_s__NSSAI;} + inline const MappedNSSAI_s__NSSAI& s__NSSAI() const + {return field_s__NSSAI;} +Base_Type* clone() const { return new MappedNSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MappedNSSAI_template : public Record_Template { +void set_specific(); +public: +MappedNSSAI_template(): Record_Template() {} +MappedNSSAI_template(template_sel other_value): Record_Template(other_value) {} +MappedNSSAI_template(const MappedNSSAI& other_value): Record_Template() { copy_value(&other_value); } +MappedNSSAI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MappedNSSAI_template(MappedNSSAI_template* p_precondition, MappedNSSAI_template* p_implied_template); +MappedNSSAI_template(Dynamic_Match_Interface* p_dyn_match); +MappedNSSAI_template(const MappedNSSAI_template& other_value): Record_Template() { copy_template(other_value); } +~MappedNSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MappedNSSAI_template& operator=(template_sel other_value); +MappedNSSAI_template& operator=(const MappedNSSAI& other_value); +MappedNSSAI_template& operator=(const OPTIONAL& other_value); +MappedNSSAI_template& operator=(const MappedNSSAI_template& other_value); +inline boolean match(const MappedNSSAI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MappedNSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MappedNSSAI valueof() const; +inline MappedNSSAI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +MappedNSSAI_s__NSSAI_template& s__NSSAI(); +const MappedNSSAI_s__NSSAI_template& s__NSSAI() const; +Record_Template* create() const { return new MappedNSSAI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AddInfoRequest : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spareBits; + BITSTRING field_cipherKey; + Base_Type* fld_vec[4]; + void init_vec(); +public: + AddInfoRequest(); + AddInfoRequest(const AddInfoRequest& other_value); + AddInfoRequest(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_cipherKey); +inline AddInfoRequest& operator=(const AddInfoRequest& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AddInfoRequest& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AddInfoRequest& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& cipherKey() + {return field_cipherKey;} + inline const BITSTRING& cipherKey() const + {return field_cipherKey;} +Base_Type* clone() const { return new AddInfoRequest(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AddInfoRequest_template : public Record_Template { +void set_specific(); +public: +AddInfoRequest_template(): Record_Template() {} +AddInfoRequest_template(template_sel other_value): Record_Template(other_value) {} +AddInfoRequest_template(const AddInfoRequest& other_value): Record_Template() { copy_value(&other_value); } +AddInfoRequest_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AddInfoRequest_template(AddInfoRequest_template* p_precondition, AddInfoRequest_template* p_implied_template); +AddInfoRequest_template(Dynamic_Match_Interface* p_dyn_match); +AddInfoRequest_template(const AddInfoRequest_template& other_value): Record_Template() { copy_template(other_value); } +~AddInfoRequest_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AddInfoRequest_template& operator=(template_sel other_value); +AddInfoRequest_template& operator=(const AddInfoRequest& other_value); +AddInfoRequest_template& operator=(const OPTIONAL& other_value); +AddInfoRequest_template& operator=(const AddInfoRequest_template& other_value); +inline boolean match(const AddInfoRequest& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AddInfoRequest& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AddInfoRequest valueof() const; +inline AddInfoRequest_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& cipherKey(); +const BITSTRING_template& cipherKey() const; +Record_Template* create() const { return new AddInfoRequest_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class N5GCInd : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_ngReg; + Base_Type* fld_vec[3]; + void init_vec(); +public: + N5GCInd(); + N5GCInd(const N5GCInd& other_value); + N5GCInd(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_ngReg); +inline N5GCInd& operator=(const N5GCInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const N5GCInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const N5GCInd& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& ngReg() + {return field_ngReg;} + inline const BITSTRING& ngReg() const + {return field_ngReg;} +Base_Type* clone() const { return new N5GCInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class N5GCInd_template : public Record_Template { +void set_specific(); +public: +N5GCInd_template(): Record_Template() {} +N5GCInd_template(template_sel other_value): Record_Template(other_value) {} +N5GCInd_template(const N5GCInd& other_value): Record_Template() { copy_value(&other_value); } +N5GCInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +N5GCInd_template(N5GCInd_template* p_precondition, N5GCInd_template* p_implied_template); +N5GCInd_template(Dynamic_Match_Interface* p_dyn_match); +N5GCInd_template(const N5GCInd_template& other_value): Record_Template() { copy_template(other_value); } +~N5GCInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +N5GCInd_template& operator=(template_sel other_value); +N5GCInd_template& operator=(const N5GCInd& other_value); +N5GCInd_template& operator=(const OPTIONAL& other_value); +N5GCInd_template& operator=(const N5GCInd_template& other_value); +inline boolean match(const N5GCInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const N5GCInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +N5GCInd valueof() const; +inline N5GCInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& ngReg(); +const BITSTRING_template& ngReg() const; +Record_Template* create() const { return new N5GCInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PagingRestriction : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + BITSTRING field_spareBits; + BITSTRING field_typeOfRestriction; + OPTIONAL field_psi7__0; + OPTIONAL field_psi15__8; + OPTIONAL field_spare; + Base_Type* fld_vec[7]; + void init_vec(); +public: + NG__PagingRestriction(); + NG__PagingRestriction(const NG__PagingRestriction& other_value); + NG__PagingRestriction(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_typeOfRestriction, + const OPTIONAL& par_psi7__0, + const OPTIONAL& par_psi15__8, + const OPTIONAL& par_spare); +inline NG__PagingRestriction& operator=(const NG__PagingRestriction& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PagingRestriction& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PagingRestriction& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& typeOfRestriction() + {return field_typeOfRestriction;} + inline const BITSTRING& typeOfRestriction() const + {return field_typeOfRestriction;} + inline OPTIONAL& psi7__0() + {return field_psi7__0;} + inline const OPTIONAL& psi7__0() const + {return field_psi7__0;} + inline OPTIONAL& psi15__8() + {return field_psi15__8;} + inline const OPTIONAL& psi15__8() const + {return field_psi15__8;} + inline OPTIONAL& spare() + {return field_spare;} + inline const OPTIONAL& spare() const + {return field_spare;} +Base_Type* clone() const { return new NG__PagingRestriction(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PagingRestriction_template : public Record_Template { +void set_specific(); +public: +NG__PagingRestriction_template(): Record_Template() {} +NG__PagingRestriction_template(template_sel other_value): Record_Template(other_value) {} +NG__PagingRestriction_template(const NG__PagingRestriction& other_value): Record_Template() { copy_value(&other_value); } +NG__PagingRestriction_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PagingRestriction_template(NG__PagingRestriction_template* p_precondition, NG__PagingRestriction_template* p_implied_template); +NG__PagingRestriction_template(Dynamic_Match_Interface* p_dyn_match); +NG__PagingRestriction_template(const NG__PagingRestriction_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PagingRestriction_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PagingRestriction_template& operator=(template_sel other_value); +NG__PagingRestriction_template& operator=(const NG__PagingRestriction& other_value); +NG__PagingRestriction_template& operator=(const OPTIONAL& other_value); +NG__PagingRestriction_template& operator=(const NG__PagingRestriction_template& other_value); +inline boolean match(const NG__PagingRestriction& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PagingRestriction& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PagingRestriction valueof() const; +inline NG__PagingRestriction_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& typeOfRestriction(); +const BITSTRING_template& typeOfRestriction() const; +BITSTRING_template& psi7__0(); +const BITSTRING_template& psi7__0() const; +BITSTRING_template& psi15__8(); +const BITSTRING_template& psi15__8() const; +OCTETSTRING_template& spare(); +const OCTETSTRING_template& spare() const; +Record_Template* create() const { return new NG__PagingRestriction_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ServiceLvlAAParamList : public Record_Of_Type { + +static const ServiceLvlAAParam UNBOUND_ELEM; + +public: +ServiceLvlAAParamList(): Record_Of_Type() {} +ServiceLvlAAParamList(null_type other_value): Record_Of_Type(other_value) {} +ServiceLvlAAParamList(const ServiceLvlAAParamList& other_value): Record_Of_Type(other_value) {} +~ServiceLvlAAParamList() { clean_up(); } + +inline ServiceLvlAAParamList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline ServiceLvlAAParamList& operator=(const ServiceLvlAAParamList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ServiceLvlAAParamList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const ServiceLvlAAParamList& other_value) const { return !is_equal(&other_value); } +ServiceLvlAAParam& operator[](int index_value); +ServiceLvlAAParam& operator[](const INTEGER& index_value); +const ServiceLvlAAParam& operator[](int index_value) const; +const ServiceLvlAAParam& operator[](const INTEGER& index_value) const; +ServiceLvlAAParamList operator<<=(int rotate_count) const; +ServiceLvlAAParamList operator<<=(const INTEGER& rotate_count) const; +ServiceLvlAAParamList operator>>=(int rotate_count) const; +ServiceLvlAAParamList operator>>=(const INTEGER& rotate_count) const; + +ServiceLvlAAParamList operator+(const ServiceLvlAAParamList& other_value) const; + +ServiceLvlAAParamList operator+(const OPTIONAL& other_value) const; + +ServiceLvlAAParamList operator+(null_type) const; + +ServiceLvlAAParamList substr(int index, int returncount) const; + +ServiceLvlAAParamList replace(int index, int len, const ServiceLvlAAParamList& repl) const; + +ServiceLvlAAParamList replace(int index, int len, const ServiceLvlAAParamList_template& repl) const; + +Base_Type* clone() const { return new ServiceLvlAAParamList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class ServiceLvlAAParamList_template : public Record_Of_Template { +friend ServiceLvlAAParamList_template operator+(template_sel left_template, const ServiceLvlAAParamList_template& right_template); +friend ServiceLvlAAParamList_template operator+(const ServiceLvlAAParamList& left_value, const ServiceLvlAAParamList_template& right_template); +friend ServiceLvlAAParamList_template operator+(template_sel left_template, const ServiceLvlAAParamList& right_value); +friend ServiceLvlAAParamList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend ServiceLvlAAParamList_template operator+(const ServiceLvlAAParamList& left_value, template_sel right_template); + +public: +ServiceLvlAAParamList_template() {} +ServiceLvlAAParamList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +ServiceLvlAAParamList_template(null_type other_value); +ServiceLvlAAParamList_template(const ServiceLvlAAParamList& other_value) { copy_value(&other_value); } +ServiceLvlAAParamList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +ServiceLvlAAParamList_template(ServiceLvlAAParamList_template* p_precondition, ServiceLvlAAParamList_template* p_implied_template); +ServiceLvlAAParamList_template(Dynamic_Match_Interface* p_dyn_match); +ServiceLvlAAParamList_template(const ServiceLvlAAParamList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~ServiceLvlAAParamList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ServiceLvlAAParamList_template& operator=(template_sel other_value); +ServiceLvlAAParamList_template& operator=(null_type other_value); +ServiceLvlAAParamList_template& operator=(const ServiceLvlAAParamList& other_value); +ServiceLvlAAParamList_template& operator=(const OPTIONAL& other_value); +ServiceLvlAAParamList_template& operator=(const ServiceLvlAAParamList_template& other_value); + +ServiceLvlAAParamList_template operator+(const ServiceLvlAAParamList_template& other_value) const; +ServiceLvlAAParamList_template operator+(const ServiceLvlAAParamList& other_value) const; +ServiceLvlAAParamList_template operator+(template_sel other_value) const; +ServiceLvlAAParamList_template operator+(null_type) const; + +ServiceLvlAAParam_template& operator[](int index_value); +ServiceLvlAAParam_template& operator[](const INTEGER& index_value); +const ServiceLvlAAParam_template& operator[](int index_value) const; +const ServiceLvlAAParam_template& operator[](const INTEGER& index_value) const; +inline boolean match(const ServiceLvlAAParamList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +ServiceLvlAAParamList valueof() const; +ServiceLvlAAParamList substr(int index, int returncount) const; + +ServiceLvlAAParamList replace(int index, int len, const ServiceLvlAAParamList_template& repl) const; + +ServiceLvlAAParamList replace(int index, int len, const ServiceLvlAAParamList& repl) const; + +inline ServiceLvlAAParamList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const ServiceLvlAAParamList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new ServiceLvlAAParamList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class ServiceLvlAAParam : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_id = 1, ALT_serverAddress = 2, ALT_response = 3, ALT_payloadType = 4, ALT_payload = 5, ALT_pendingInd = 6, ALT_statusInd = 7 }; +private: +union_selection_type union_selection; +union { +SL__AA__DeviceId *field_id; +SL__AA__ServerAddr *field_serverAddress; +SL__AA__Response *field_response; +SL__AA__PayloadType *field_payloadType; +SL__AA__Payload *field_payload; +SL__AA__PendingInd *field_pendingInd; +SL__AA__StatusInd *field_statusInd; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const ServiceLvlAAParam& other_value); + +public: +ServiceLvlAAParam(); +ServiceLvlAAParam(const ServiceLvlAAParam& other_value); +~ServiceLvlAAParam(); +ServiceLvlAAParam& operator=(const ServiceLvlAAParam& other_value); +boolean operator==(const ServiceLvlAAParam& other_value) const; +inline boolean operator!=(const ServiceLvlAAParam& other_value) const { return !(*this == other_value); } +SL__AA__DeviceId& id(); +const SL__AA__DeviceId& id() const; +SL__AA__ServerAddr& serverAddress(); +const SL__AA__ServerAddr& serverAddress() const; +SL__AA__Response& response(); +const SL__AA__Response& response() const; +SL__AA__PayloadType& payloadType(); +const SL__AA__PayloadType& payloadType() const; +SL__AA__Payload& payload(); +const SL__AA__Payload& payload() const; +SL__AA__PendingInd& pendingInd(); +const SL__AA__PendingInd& pendingInd() const; +SL__AA__StatusInd& statusInd(); +const SL__AA__StatusInd& statusInd() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class ServiceLvlAAParam_template : public Base_Template { +union { +struct { +ServiceLvlAAParam::union_selection_type union_selection; +union { +SL__AA__DeviceId_template *field_id; +SL__AA__ServerAddr_template *field_serverAddress; +SL__AA__Response_template *field_response; +SL__AA__PayloadType_template *field_payloadType; +SL__AA__Payload_template *field_payload; +SL__AA__PendingInd_template *field_pendingInd; +SL__AA__StatusInd_template *field_statusInd; +}; +} single_value; +struct { +unsigned int n_values; +ServiceLvlAAParam_template *list_value; +} value_list; +struct { +ServiceLvlAAParam_template* precondition; +ServiceLvlAAParam_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const ServiceLvlAAParam& other_value); + +void copy_template(const ServiceLvlAAParam_template& other_value); + +public: +ServiceLvlAAParam_template(); +ServiceLvlAAParam_template(template_sel other_value); +ServiceLvlAAParam_template(const ServiceLvlAAParam& other_value); +ServiceLvlAAParam_template(const OPTIONAL& other_value); +ServiceLvlAAParam_template(ServiceLvlAAParam_template* p_precondition, ServiceLvlAAParam_template* p_implied_template); +ServiceLvlAAParam_template(Dynamic_Match_Interface* p_dyn_match); +ServiceLvlAAParam_template(const ServiceLvlAAParam_template& other_value); +~ServiceLvlAAParam_template(); +void clean_up(); +ServiceLvlAAParam_template& operator=(template_sel other_value); +ServiceLvlAAParam_template& operator=(const ServiceLvlAAParam& other_value); +ServiceLvlAAParam_template& operator=(const OPTIONAL& other_value); +ServiceLvlAAParam_template& operator=(const ServiceLvlAAParam_template& other_value); +boolean match(const ServiceLvlAAParam& other_value, boolean legacy = FALSE) const; +boolean is_value() const;ServiceLvlAAParam valueof() const; +ServiceLvlAAParam_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +ServiceLvlAAParam::union_selection_type get_union_selection() const; +SL__AA__DeviceId_template& id(); +const SL__AA__DeviceId_template& id() const; +SL__AA__ServerAddr_template& serverAddress(); +const SL__AA__ServerAddr_template& serverAddress() const; +SL__AA__Response_template& response(); +const SL__AA__Response_template& response() const; +SL__AA__PayloadType_template& payloadType(); +const SL__AA__PayloadType_template& payloadType() const; +SL__AA__Payload_template& payload(); +const SL__AA__Payload_template& payload() const; +SL__AA__PendingInd_template& pendingInd(); +const SL__AA__PendingInd_template& pendingInd() const; +SL__AA__StatusInd_template& statusInd(); +const SL__AA__StatusInd_template& statusInd() const; +boolean ischosen(ServiceLvlAAParam::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const ServiceLvlAAParam& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class SL__AA__DeviceId : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_id; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SL__AA__DeviceId(); + SL__AA__DeviceId(const SL__AA__DeviceId& other_value); + SL__AA__DeviceId(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_id); +inline SL__AA__DeviceId& operator=(const SL__AA__DeviceId& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SL__AA__DeviceId& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SL__AA__DeviceId& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} +Base_Type* clone() const { return new SL__AA__DeviceId(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SL__AA__DeviceId_template : public Record_Template { +void set_specific(); +public: +SL__AA__DeviceId_template(): Record_Template() {} +SL__AA__DeviceId_template(template_sel other_value): Record_Template(other_value) {} +SL__AA__DeviceId_template(const SL__AA__DeviceId& other_value): Record_Template() { copy_value(&other_value); } +SL__AA__DeviceId_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SL__AA__DeviceId_template(SL__AA__DeviceId_template* p_precondition, SL__AA__DeviceId_template* p_implied_template); +SL__AA__DeviceId_template(Dynamic_Match_Interface* p_dyn_match); +SL__AA__DeviceId_template(const SL__AA__DeviceId_template& other_value): Record_Template() { copy_template(other_value); } +~SL__AA__DeviceId_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SL__AA__DeviceId_template& operator=(template_sel other_value); +SL__AA__DeviceId_template& operator=(const SL__AA__DeviceId& other_value); +SL__AA__DeviceId_template& operator=(const OPTIONAL& other_value); +SL__AA__DeviceId_template& operator=(const SL__AA__DeviceId_template& other_value); +inline boolean match(const SL__AA__DeviceId& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SL__AA__DeviceId& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SL__AA__DeviceId valueof() const; +inline SL__AA__DeviceId_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +Record_Template* create() const { return new SL__AA__DeviceId_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SL__AA__ServerAddr : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_addrType; + OCTETSTRING field_addr; + Base_Type* fld_vec[4]; + void init_vec(); +public: + SL__AA__ServerAddr(); + SL__AA__ServerAddr(const SL__AA__ServerAddr& other_value); + SL__AA__ServerAddr(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_addrType, + const OCTETSTRING& par_addr); +inline SL__AA__ServerAddr& operator=(const SL__AA__ServerAddr& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SL__AA__ServerAddr& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SL__AA__ServerAddr& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& addrType() + {return field_addrType;} + inline const OCTETSTRING& addrType() const + {return field_addrType;} + inline OCTETSTRING& addr() + {return field_addr;} + inline const OCTETSTRING& addr() const + {return field_addr;} +Base_Type* clone() const { return new SL__AA__ServerAddr(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SL__AA__ServerAddr_template : public Record_Template { +void set_specific(); +public: +SL__AA__ServerAddr_template(): Record_Template() {} +SL__AA__ServerAddr_template(template_sel other_value): Record_Template(other_value) {} +SL__AA__ServerAddr_template(const SL__AA__ServerAddr& other_value): Record_Template() { copy_value(&other_value); } +SL__AA__ServerAddr_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SL__AA__ServerAddr_template(SL__AA__ServerAddr_template* p_precondition, SL__AA__ServerAddr_template* p_implied_template); +SL__AA__ServerAddr_template(Dynamic_Match_Interface* p_dyn_match); +SL__AA__ServerAddr_template(const SL__AA__ServerAddr_template& other_value): Record_Template() { copy_template(other_value); } +~SL__AA__ServerAddr_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SL__AA__ServerAddr_template& operator=(template_sel other_value); +SL__AA__ServerAddr_template& operator=(const SL__AA__ServerAddr& other_value); +SL__AA__ServerAddr_template& operator=(const OPTIONAL& other_value); +SL__AA__ServerAddr_template& operator=(const SL__AA__ServerAddr_template& other_value); +inline boolean match(const SL__AA__ServerAddr& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SL__AA__ServerAddr& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SL__AA__ServerAddr valueof() const; +inline SL__AA__ServerAddr_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& addrType(); +const OCTETSTRING_template& addrType() const; +OCTETSTRING_template& addr(); +const OCTETSTRING_template& addr() const; +Record_Template* create() const { return new SL__AA__ServerAddr_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SL__AA__Response : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare; + BITSTRING field_c2ar; + BITSTRING field_slar; + Base_Type* fld_vec[5]; + void init_vec(); +public: + SL__AA__Response(); + SL__AA__Response(const SL__AA__Response& other_value); + SL__AA__Response(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_c2ar, + const BITSTRING& par_slar); +inline SL__AA__Response& operator=(const SL__AA__Response& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SL__AA__Response& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SL__AA__Response& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& c2ar() + {return field_c2ar;} + inline const BITSTRING& c2ar() const + {return field_c2ar;} + inline BITSTRING& slar() + {return field_slar;} + inline const BITSTRING& slar() const + {return field_slar;} +Base_Type* clone() const { return new SL__AA__Response(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SL__AA__Response_template : public Record_Template { +void set_specific(); +public: +SL__AA__Response_template(): Record_Template() {} +SL__AA__Response_template(template_sel other_value): Record_Template(other_value) {} +SL__AA__Response_template(const SL__AA__Response& other_value): Record_Template() { copy_value(&other_value); } +SL__AA__Response_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SL__AA__Response_template(SL__AA__Response_template* p_precondition, SL__AA__Response_template* p_implied_template); +SL__AA__Response_template(Dynamic_Match_Interface* p_dyn_match); +SL__AA__Response_template(const SL__AA__Response_template& other_value): Record_Template() { copy_template(other_value); } +~SL__AA__Response_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SL__AA__Response_template& operator=(template_sel other_value); +SL__AA__Response_template& operator=(const SL__AA__Response& other_value); +SL__AA__Response_template& operator=(const OPTIONAL& other_value); +SL__AA__Response_template& operator=(const SL__AA__Response_template& other_value); +inline boolean match(const SL__AA__Response& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SL__AA__Response& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SL__AA__Response valueof() const; +inline SL__AA__Response_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& c2ar(); +const BITSTRING_template& c2ar() const; +BITSTRING_template& slar(); +const BITSTRING_template& slar() const; +Record_Template* create() const { return new SL__AA__Response_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SL__AA__PayloadType : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_payloadType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SL__AA__PayloadType(); + SL__AA__PayloadType(const SL__AA__PayloadType& other_value); + SL__AA__PayloadType(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_payloadType); +inline SL__AA__PayloadType& operator=(const SL__AA__PayloadType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SL__AA__PayloadType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SL__AA__PayloadType& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& payloadType() + {return field_payloadType;} + inline const OCTETSTRING& payloadType() const + {return field_payloadType;} +Base_Type* clone() const { return new SL__AA__PayloadType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SL__AA__PayloadType_template : public Record_Template { +void set_specific(); +public: +SL__AA__PayloadType_template(): Record_Template() {} +SL__AA__PayloadType_template(template_sel other_value): Record_Template(other_value) {} +SL__AA__PayloadType_template(const SL__AA__PayloadType& other_value): Record_Template() { copy_value(&other_value); } +SL__AA__PayloadType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SL__AA__PayloadType_template(SL__AA__PayloadType_template* p_precondition, SL__AA__PayloadType_template* p_implied_template); +SL__AA__PayloadType_template(Dynamic_Match_Interface* p_dyn_match); +SL__AA__PayloadType_template(const SL__AA__PayloadType_template& other_value): Record_Template() { copy_template(other_value); } +~SL__AA__PayloadType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SL__AA__PayloadType_template& operator=(template_sel other_value); +SL__AA__PayloadType_template& operator=(const SL__AA__PayloadType& other_value); +SL__AA__PayloadType_template& operator=(const OPTIONAL& other_value); +SL__AA__PayloadType_template& operator=(const SL__AA__PayloadType_template& other_value); +inline boolean match(const SL__AA__PayloadType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SL__AA__PayloadType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SL__AA__PayloadType valueof() const; +inline SL__AA__PayloadType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& payloadType(); +const OCTETSTRING_template& payloadType() const; +Record_Template* create() const { return new SL__AA__PayloadType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SL__AA__Payload : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_payload; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SL__AA__Payload(); + SL__AA__Payload(const SL__AA__Payload& other_value); + SL__AA__Payload(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_payload); +inline SL__AA__Payload& operator=(const SL__AA__Payload& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SL__AA__Payload& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SL__AA__Payload& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& payload() + {return field_payload;} + inline const OCTETSTRING& payload() const + {return field_payload;} +Base_Type* clone() const { return new SL__AA__Payload(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SL__AA__Payload_template : public Record_Template { +void set_specific(); +public: +SL__AA__Payload_template(): Record_Template() {} +SL__AA__Payload_template(template_sel other_value): Record_Template(other_value) {} +SL__AA__Payload_template(const SL__AA__Payload& other_value): Record_Template() { copy_value(&other_value); } +SL__AA__Payload_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SL__AA__Payload_template(SL__AA__Payload_template* p_precondition, SL__AA__Payload_template* p_implied_template); +SL__AA__Payload_template(Dynamic_Match_Interface* p_dyn_match); +SL__AA__Payload_template(const SL__AA__Payload_template& other_value): Record_Template() { copy_template(other_value); } +~SL__AA__Payload_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SL__AA__Payload_template& operator=(template_sel other_value); +SL__AA__Payload_template& operator=(const SL__AA__Payload& other_value); +SL__AA__Payload_template& operator=(const OPTIONAL& other_value); +SL__AA__Payload_template& operator=(const SL__AA__Payload_template& other_value); +inline boolean match(const SL__AA__Payload& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SL__AA__Payload& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SL__AA__Payload valueof() const; +inline SL__AA__Payload_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& payload(); +const OCTETSTRING_template& payload() const; +Record_Template* create() const { return new SL__AA__Payload_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SL__AA__PendingInd : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_slapi; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SL__AA__PendingInd(); + SL__AA__PendingInd(const SL__AA__PendingInd& other_value); + SL__AA__PendingInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_slapi); +inline SL__AA__PendingInd& operator=(const SL__AA__PendingInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SL__AA__PendingInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SL__AA__PendingInd& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& slapi() + {return field_slapi;} + inline const BITSTRING& slapi() const + {return field_slapi;} +Base_Type* clone() const { return new SL__AA__PendingInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SL__AA__PendingInd_template : public Record_Template { +void set_specific(); +public: +SL__AA__PendingInd_template(): Record_Template() {} +SL__AA__PendingInd_template(template_sel other_value): Record_Template(other_value) {} +SL__AA__PendingInd_template(const SL__AA__PendingInd& other_value): Record_Template() { copy_value(&other_value); } +SL__AA__PendingInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SL__AA__PendingInd_template(SL__AA__PendingInd_template* p_precondition, SL__AA__PendingInd_template* p_implied_template); +SL__AA__PendingInd_template(Dynamic_Match_Interface* p_dyn_match); +SL__AA__PendingInd_template(const SL__AA__PendingInd_template& other_value): Record_Template() { copy_template(other_value); } +~SL__AA__PendingInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SL__AA__PendingInd_template& operator=(template_sel other_value); +SL__AA__PendingInd_template& operator=(const SL__AA__PendingInd& other_value); +SL__AA__PendingInd_template& operator=(const OPTIONAL& other_value); +SL__AA__PendingInd_template& operator=(const SL__AA__PendingInd_template& other_value); +inline boolean match(const SL__AA__PendingInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SL__AA__PendingInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SL__AA__PendingInd valueof() const; +inline SL__AA__PendingInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& slapi(); +const BITSTRING_template& slapi() const; +Record_Template* create() const { return new SL__AA__PendingInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SL__AA__StatusInd : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare; + BITSTRING field_uas; + Base_Type* fld_vec[4]; + void init_vec(); +public: + SL__AA__StatusInd(); + SL__AA__StatusInd(const SL__AA__StatusInd& other_value); + SL__AA__StatusInd(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_uas); +inline SL__AA__StatusInd& operator=(const SL__AA__StatusInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SL__AA__StatusInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SL__AA__StatusInd& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& uas() + {return field_uas;} + inline const BITSTRING& uas() const + {return field_uas;} +Base_Type* clone() const { return new SL__AA__StatusInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SL__AA__StatusInd_template : public Record_Template { +void set_specific(); +public: +SL__AA__StatusInd_template(): Record_Template() {} +SL__AA__StatusInd_template(template_sel other_value): Record_Template(other_value) {} +SL__AA__StatusInd_template(const SL__AA__StatusInd& other_value): Record_Template() { copy_value(&other_value); } +SL__AA__StatusInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SL__AA__StatusInd_template(SL__AA__StatusInd_template* p_precondition, SL__AA__StatusInd_template* p_implied_template); +SL__AA__StatusInd_template(Dynamic_Match_Interface* p_dyn_match); +SL__AA__StatusInd_template(const SL__AA__StatusInd_template& other_value): Record_Template() { copy_template(other_value); } +~SL__AA__StatusInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SL__AA__StatusInd_template& operator=(template_sel other_value); +SL__AA__StatusInd_template& operator=(const SL__AA__StatusInd& other_value); +SL__AA__StatusInd_template& operator=(const OPTIONAL& other_value); +SL__AA__StatusInd_template& operator=(const SL__AA__StatusInd_template& other_value); +inline boolean match(const SL__AA__StatusInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SL__AA__StatusInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SL__AA__StatusInd valueof() const; +inline SL__AA__StatusInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& uas(); +const BITSTRING_template& uas() const; +Record_Template* create() const { return new SL__AA__StatusInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ServiceLvlAAContainer : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + ServiceLvlAAParamList field_contents; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ServiceLvlAAContainer(); + ServiceLvlAAContainer(const ServiceLvlAAContainer& other_value); + ServiceLvlAAContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const ServiceLvlAAParamList& par_contents); +inline ServiceLvlAAContainer& operator=(const ServiceLvlAAContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ServiceLvlAAContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ServiceLvlAAContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline ServiceLvlAAParamList& contents() + {return field_contents;} + inline const ServiceLvlAAParamList& contents() const + {return field_contents;} +Base_Type* clone() const { return new ServiceLvlAAContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ServiceLvlAAContainer_template : public Record_Template { +void set_specific(); +public: +ServiceLvlAAContainer_template(): Record_Template() {} +ServiceLvlAAContainer_template(template_sel other_value): Record_Template(other_value) {} +ServiceLvlAAContainer_template(const ServiceLvlAAContainer& other_value): Record_Template() { copy_value(&other_value); } +ServiceLvlAAContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ServiceLvlAAContainer_template(ServiceLvlAAContainer_template* p_precondition, ServiceLvlAAContainer_template* p_implied_template); +ServiceLvlAAContainer_template(Dynamic_Match_Interface* p_dyn_match); +ServiceLvlAAContainer_template(const ServiceLvlAAContainer_template& other_value): Record_Template() { copy_template(other_value); } +~ServiceLvlAAContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ServiceLvlAAContainer_template& operator=(template_sel other_value); +ServiceLvlAAContainer_template& operator=(const ServiceLvlAAContainer& other_value); +ServiceLvlAAContainer_template& operator=(const OPTIONAL& other_value); +ServiceLvlAAContainer_template& operator=(const ServiceLvlAAContainer_template& other_value); +inline boolean match(const ServiceLvlAAContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ServiceLvlAAContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ServiceLvlAAContainer valueof() const; +inline ServiceLvlAAContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +ServiceLvlAAParamList_template& contents(); +const ServiceLvlAAParamList_template& contents() const; +Record_Template* create() const { return new ServiceLvlAAContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NID : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + HEXSTRING field_digit1; + BITSTRING field_assignmentMode; + HEXSTRING field_digits2__9; + BITSTRING field_spare; + HEXSTRING field_digit10; + Base_Type* fld_vec[7]; + void init_vec(); +public: + NID(); + NID(const NID& other_value); + NID(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const HEXSTRING& par_digit1, + const BITSTRING& par_assignmentMode, + const HEXSTRING& par_digits2__9, + const BITSTRING& par_spare, + const HEXSTRING& par_digit10); +inline NID& operator=(const NID& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NID& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NID& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline HEXSTRING& digit1() + {return field_digit1;} + inline const HEXSTRING& digit1() const + {return field_digit1;} + inline BITSTRING& assignmentMode() + {return field_assignmentMode;} + inline const BITSTRING& assignmentMode() const + {return field_assignmentMode;} + inline HEXSTRING& digits2__9() + {return field_digits2__9;} + inline const HEXSTRING& digits2__9() const + {return field_digits2__9;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline HEXSTRING& digit10() + {return field_digit10;} + inline const HEXSTRING& digit10() const + {return field_digit10;} +Base_Type* clone() const { return new NID(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NID_template : public Record_Template { +void set_specific(); +public: +NID_template(): Record_Template() {} +NID_template(template_sel other_value): Record_Template(other_value) {} +NID_template(const NID& other_value): Record_Template() { copy_value(&other_value); } +NID_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NID_template(NID_template* p_precondition, NID_template* p_implied_template); +NID_template(Dynamic_Match_Interface* p_dyn_match); +NID_template(const NID_template& other_value): Record_Template() { copy_template(other_value); } +~NID_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NID_template& operator=(template_sel other_value); +NID_template& operator=(const NID& other_value); +NID_template& operator=(const OPTIONAL& other_value); +NID_template& operator=(const NID_template& other_value); +inline boolean match(const NID& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NID& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NID valueof() const; +inline NID_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +HEXSTRING_template& digit1(); +const HEXSTRING_template& digit1() const; +BITSTRING_template& assignmentMode(); +const BITSTRING_template& assignmentMode() const; +HEXSTRING_template& digits2__9(); +const HEXSTRING_template& digits2__9() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +HEXSTRING_template& digit10(); +const HEXSTRING_template& digit10() const; +Record_Template* create() const { return new NID_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PEIPS__AssistIEList : public Record_Of_Type { + +static const PEIPS__AssistIE UNBOUND_ELEM; + +public: +PEIPS__AssistIEList(): Record_Of_Type() {} +PEIPS__AssistIEList(null_type other_value): Record_Of_Type(other_value) {} +PEIPS__AssistIEList(const PEIPS__AssistIEList& other_value): Record_Of_Type(other_value) {} +~PEIPS__AssistIEList() { clean_up(); } + +inline PEIPS__AssistIEList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline PEIPS__AssistIEList& operator=(const PEIPS__AssistIEList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PEIPS__AssistIEList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const PEIPS__AssistIEList& other_value) const { return !is_equal(&other_value); } +PEIPS__AssistIE& operator[](int index_value); +PEIPS__AssistIE& operator[](const INTEGER& index_value); +const PEIPS__AssistIE& operator[](int index_value) const; +const PEIPS__AssistIE& operator[](const INTEGER& index_value) const; +PEIPS__AssistIEList operator<<=(int rotate_count) const; +PEIPS__AssistIEList operator<<=(const INTEGER& rotate_count) const; +PEIPS__AssistIEList operator>>=(int rotate_count) const; +PEIPS__AssistIEList operator>>=(const INTEGER& rotate_count) const; + +PEIPS__AssistIEList operator+(const PEIPS__AssistIEList& other_value) const; + +PEIPS__AssistIEList operator+(const OPTIONAL& other_value) const; + +PEIPS__AssistIEList operator+(null_type) const; + +PEIPS__AssistIEList substr(int index, int returncount) const; + +PEIPS__AssistIEList replace(int index, int len, const PEIPS__AssistIEList& repl) const; + +PEIPS__AssistIEList replace(int index, int len, const PEIPS__AssistIEList_template& repl) const; + +Base_Type* clone() const { return new PEIPS__AssistIEList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class PEIPS__AssistIEList_template : public Record_Of_Template { +friend PEIPS__AssistIEList_template operator+(template_sel left_template, const PEIPS__AssistIEList_template& right_template); +friend PEIPS__AssistIEList_template operator+(const PEIPS__AssistIEList& left_value, const PEIPS__AssistIEList_template& right_template); +friend PEIPS__AssistIEList_template operator+(template_sel left_template, const PEIPS__AssistIEList& right_value); +friend PEIPS__AssistIEList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend PEIPS__AssistIEList_template operator+(const PEIPS__AssistIEList& left_value, template_sel right_template); + +public: +PEIPS__AssistIEList_template() {} +PEIPS__AssistIEList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +PEIPS__AssistIEList_template(null_type other_value); +PEIPS__AssistIEList_template(const PEIPS__AssistIEList& other_value) { copy_value(&other_value); } +PEIPS__AssistIEList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +PEIPS__AssistIEList_template(PEIPS__AssistIEList_template* p_precondition, PEIPS__AssistIEList_template* p_implied_template); +PEIPS__AssistIEList_template(Dynamic_Match_Interface* p_dyn_match); +PEIPS__AssistIEList_template(const PEIPS__AssistIEList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~PEIPS__AssistIEList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PEIPS__AssistIEList_template& operator=(template_sel other_value); +PEIPS__AssistIEList_template& operator=(null_type other_value); +PEIPS__AssistIEList_template& operator=(const PEIPS__AssistIEList& other_value); +PEIPS__AssistIEList_template& operator=(const OPTIONAL& other_value); +PEIPS__AssistIEList_template& operator=(const PEIPS__AssistIEList_template& other_value); + +PEIPS__AssistIEList_template operator+(const PEIPS__AssistIEList_template& other_value) const; +PEIPS__AssistIEList_template operator+(const PEIPS__AssistIEList& other_value) const; +PEIPS__AssistIEList_template operator+(template_sel other_value) const; +PEIPS__AssistIEList_template operator+(null_type) const; + +PEIPS__AssistIE_template& operator[](int index_value); +PEIPS__AssistIE_template& operator[](const INTEGER& index_value); +const PEIPS__AssistIE_template& operator[](int index_value) const; +const PEIPS__AssistIE_template& operator[](const INTEGER& index_value) const; +inline boolean match(const PEIPS__AssistIEList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +PEIPS__AssistIEList valueof() const; +PEIPS__AssistIEList substr(int index, int returncount) const; + +PEIPS__AssistIEList replace(int index, int len, const PEIPS__AssistIEList_template& repl) const; + +PEIPS__AssistIEList replace(int index, int len, const PEIPS__AssistIEList& repl) const; + +inline PEIPS__AssistIEList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const PEIPS__AssistIEList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new PEIPS__AssistIEList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class PEIPS__AssistIE : public Record_Type { + BITSTRING field_typeOfInfo; + BITSTRING field_peipsValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + PEIPS__AssistIE(); + PEIPS__AssistIE(const PEIPS__AssistIE& other_value); + PEIPS__AssistIE(const BITSTRING& par_typeOfInfo, + const BITSTRING& par_peipsValue); +inline PEIPS__AssistIE& operator=(const PEIPS__AssistIE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PEIPS__AssistIE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PEIPS__AssistIE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& typeOfInfo() + {return field_typeOfInfo;} + inline const BITSTRING& typeOfInfo() const + {return field_typeOfInfo;} + inline BITSTRING& peipsValue() + {return field_peipsValue;} + inline const BITSTRING& peipsValue() const + {return field_peipsValue;} +Base_Type* clone() const { return new PEIPS__AssistIE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PEIPS__AssistIE_template : public Record_Template { +void set_specific(); +public: +PEIPS__AssistIE_template(): Record_Template() {} +PEIPS__AssistIE_template(template_sel other_value): Record_Template(other_value) {} +PEIPS__AssistIE_template(const PEIPS__AssistIE& other_value): Record_Template() { copy_value(&other_value); } +PEIPS__AssistIE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PEIPS__AssistIE_template(PEIPS__AssistIE_template* p_precondition, PEIPS__AssistIE_template* p_implied_template); +PEIPS__AssistIE_template(Dynamic_Match_Interface* p_dyn_match); +PEIPS__AssistIE_template(const PEIPS__AssistIE_template& other_value): Record_Template() { copy_template(other_value); } +~PEIPS__AssistIE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PEIPS__AssistIE_template& operator=(template_sel other_value); +PEIPS__AssistIE_template& operator=(const PEIPS__AssistIE& other_value); +PEIPS__AssistIE_template& operator=(const OPTIONAL& other_value); +PEIPS__AssistIE_template& operator=(const PEIPS__AssistIE_template& other_value); +inline boolean match(const PEIPS__AssistIE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PEIPS__AssistIE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PEIPS__AssistIE valueof() const; +inline PEIPS__AssistIE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& typeOfInfo(); +const BITSTRING_template& typeOfInfo() const; +BITSTRING_template& peipsValue(); +const BITSTRING_template& peipsValue() const; +Record_Template* create() const { return new PEIPS__AssistIE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PEIPS__AssistInfo : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + PEIPS__AssistIEList field_list; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PEIPS__AssistInfo(); + PEIPS__AssistInfo(const PEIPS__AssistInfo& other_value); + PEIPS__AssistInfo(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const PEIPS__AssistIEList& par_list); +inline PEIPS__AssistInfo& operator=(const PEIPS__AssistInfo& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PEIPS__AssistInfo& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PEIPS__AssistInfo& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline PEIPS__AssistIEList& list() + {return field_list;} + inline const PEIPS__AssistIEList& list() const + {return field_list;} +Base_Type* clone() const { return new PEIPS__AssistInfo(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PEIPS__AssistInfo_template : public Record_Template { +void set_specific(); +public: +PEIPS__AssistInfo_template(): Record_Template() {} +PEIPS__AssistInfo_template(template_sel other_value): Record_Template(other_value) {} +PEIPS__AssistInfo_template(const PEIPS__AssistInfo& other_value): Record_Template() { copy_value(&other_value); } +PEIPS__AssistInfo_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PEIPS__AssistInfo_template(PEIPS__AssistInfo_template* p_precondition, PEIPS__AssistInfo_template* p_implied_template); +PEIPS__AssistInfo_template(Dynamic_Match_Interface* p_dyn_match); +PEIPS__AssistInfo_template(const PEIPS__AssistInfo_template& other_value): Record_Template() { copy_template(other_value); } +~PEIPS__AssistInfo_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PEIPS__AssistInfo_template& operator=(template_sel other_value); +PEIPS__AssistInfo_template& operator=(const PEIPS__AssistInfo& other_value); +PEIPS__AssistInfo_template& operator=(const OPTIONAL& other_value); +PEIPS__AssistInfo_template& operator=(const PEIPS__AssistInfo_template& other_value); +inline boolean match(const PEIPS__AssistInfo& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PEIPS__AssistInfo& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PEIPS__AssistInfo valueof() const; +inline PEIPS__AssistInfo_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +PEIPS__AssistIEList_template& list(); +const PEIPS__AssistIEList_template& list() const; +Record_Template* create() const { return new PEIPS__AssistInfo_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RegistrationResult : public Record_Type { + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_disasterRoamingResult; + BITSTRING field_emergencyRegistered; + BITSTRING field_nssaaPerformed; + BITSTRING field_smsAllowed; + BITSTRING field_resultValue; + Base_Type* fld_vec[7]; + void init_vec(); +public: + RegistrationResult(); + RegistrationResult(const RegistrationResult& other_value); + RegistrationResult(const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_disasterRoamingResult, + const BITSTRING& par_emergencyRegistered, + const BITSTRING& par_nssaaPerformed, + const BITSTRING& par_smsAllowed, + const BITSTRING& par_resultValue); +inline RegistrationResult& operator=(const RegistrationResult& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RegistrationResult& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RegistrationResult& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& disasterRoamingResult() + {return field_disasterRoamingResult;} + inline const BITSTRING& disasterRoamingResult() const + {return field_disasterRoamingResult;} + inline BITSTRING& emergencyRegistered() + {return field_emergencyRegistered;} + inline const BITSTRING& emergencyRegistered() const + {return field_emergencyRegistered;} + inline BITSTRING& nssaaPerformed() + {return field_nssaaPerformed;} + inline const BITSTRING& nssaaPerformed() const + {return field_nssaaPerformed;} + inline BITSTRING& smsAllowed() + {return field_smsAllowed;} + inline const BITSTRING& smsAllowed() const + {return field_smsAllowed;} + inline BITSTRING& resultValue() + {return field_resultValue;} + inline const BITSTRING& resultValue() const + {return field_resultValue;} +Base_Type* clone() const { return new RegistrationResult(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RegistrationResult_template : public Record_Template { +void set_specific(); +public: +RegistrationResult_template(): Record_Template() {} +RegistrationResult_template(template_sel other_value): Record_Template(other_value) {} +RegistrationResult_template(const RegistrationResult& other_value): Record_Template() { copy_value(&other_value); } +RegistrationResult_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RegistrationResult_template(RegistrationResult_template* p_precondition, RegistrationResult_template* p_implied_template); +RegistrationResult_template(Dynamic_Match_Interface* p_dyn_match); +RegistrationResult_template(const RegistrationResult_template& other_value): Record_Template() { copy_template(other_value); } +~RegistrationResult_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RegistrationResult_template& operator=(template_sel other_value); +RegistrationResult_template& operator=(const RegistrationResult& other_value); +RegistrationResult_template& operator=(const OPTIONAL& other_value); +RegistrationResult_template& operator=(const RegistrationResult_template& other_value); +inline boolean match(const RegistrationResult& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RegistrationResult& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RegistrationResult valueof() const; +inline RegistrationResult_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& disasterRoamingResult(); +const BITSTRING_template& disasterRoamingResult() const; +BITSTRING_template& emergencyRegistered(); +const BITSTRING_template& emergencyRegistered() const; +BITSTRING_template& nssaaPerformed(); +const BITSTRING_template& nssaaPerformed() const; +BITSTRING_template& smsAllowed(); +const BITSTRING_template& smsAllowed() const; +BITSTRING_template& resultValue(); +const BITSTRING_template& resultValue() const; +Record_Template* create() const { return new RegistrationResult_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__REGISTRATION__ACCEPT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + RegistrationResult field_registrationResult; + OPTIONAL field_guti; + OPTIONAL field_equivalentPlmns; + OPTIONAL field_taiList; + OPTIONAL field_allowedNSSAI; + OPTIONAL field_rejectedNSSAI; + OPTIONAL field_configuredNSSAI; + OPTIONAL field_ngs__NetworkFeatureSupport; + OPTIONAL field_pduSessionStatus; + OPTIONAL field_pduSessionReactivationResult; + OPTIONAL field_pduSessionReactResultError; + OPTIONAL field_ladnInfo; + OPTIONAL field_micoInd; + OPTIONAL field_networkSlicingInd; + OPTIONAL field_saiList; + OPTIONAL field_t3512Value; + OPTIONAL field_non3GPPDeregisterValue; + OPTIONAL field_t3502Value; + OPTIONAL field_emergencyNumberList; + OPTIONAL field_xtdEmergencyNumberList; + OPTIONAL field_sorTransparentContainer; + OPTIONAL field_eapMessage; + OPTIONAL field_inclusionModeNSSAI; + OPTIONAL field_operatorAccessCatDefs; + OPTIONAL field_negotiatedDRXParams; + OPTIONAL field_non3GPP__NW__ProvidedPolicies; + OPTIONAL field_epsBearerContextStatus; + OPTIONAL field_negotiatedExtdDRXParams; + OPTIONAL field_t3447Value; + OPTIONAL field_t3448Value; + OPTIONAL field_t3324Value; + OPTIONAL field_ueRadioCapabilityId; + OPTIONAL field_ueRadioCapIdDeletionInd; + OPTIONAL field_pendingNSSAI; + OPTIONAL field_cipheringKeyData; + OPTIONAL field_cagInfoList; + OPTIONAL field_truncatedS__TMSIConfig; + OPTIONAL field_negotiatedWUSAssistanceInfo; + OPTIONAL field_negotiatedNB__N1DRXParams; + OPTIONAL field_extdRejectedNSSAI; + OPTIONAL field_serviceLvlAA; + OPTIONAL field_negotiatedPEIPS__AssistInfo; + OPTIONAL field_ngAddRequestResult; + OPTIONAL field_nssrgInfo; + OPTIONAL field_disasterRoamingWaitRange; + OPTIONAL field_disasterReturnWaitRange; + OPTIONAL field_disasterPLMNList; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + OPTIONAL field_extdCAGInfoList; + OPTIONAL field_nsagInfo; + Base_Type* fld_vec[55]; + void init_vec(); +public: + NG__REGISTRATION__ACCEPT(); + NG__REGISTRATION__ACCEPT(const NG__REGISTRATION__ACCEPT& other_value); + NG__REGISTRATION__ACCEPT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const RegistrationResult& par_registrationResult, + const OPTIONAL& par_guti, + const OPTIONAL& par_equivalentPlmns, + const OPTIONAL& par_taiList, + const OPTIONAL& par_allowedNSSAI, + const OPTIONAL& par_rejectedNSSAI, + const OPTIONAL& par_configuredNSSAI, + const OPTIONAL& par_ngs__NetworkFeatureSupport, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_pduSessionReactivationResult, + const OPTIONAL& par_pduSessionReactResultError, + const OPTIONAL& par_ladnInfo, + const OPTIONAL& par_micoInd, + const OPTIONAL& par_networkSlicingInd, + const OPTIONAL& par_saiList, + const OPTIONAL& par_t3512Value, + const OPTIONAL& par_non3GPPDeregisterValue, + const OPTIONAL& par_t3502Value, + const OPTIONAL& par_emergencyNumberList, + const OPTIONAL& par_xtdEmergencyNumberList, + const OPTIONAL& par_sorTransparentContainer, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_inclusionModeNSSAI, + const OPTIONAL& par_operatorAccessCatDefs, + const OPTIONAL& par_negotiatedDRXParams, + const OPTIONAL& par_non3GPP__NW__ProvidedPolicies, + const OPTIONAL& par_epsBearerContextStatus, + const OPTIONAL& par_negotiatedExtdDRXParams, + const OPTIONAL& par_t3447Value, + const OPTIONAL& par_t3448Value, + const OPTIONAL& par_t3324Value, + const OPTIONAL& par_ueRadioCapabilityId, + const OPTIONAL& par_ueRadioCapIdDeletionInd, + const OPTIONAL& par_pendingNSSAI, + const OPTIONAL& par_cipheringKeyData, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_truncatedS__TMSIConfig, + const OPTIONAL& par_negotiatedWUSAssistanceInfo, + const OPTIONAL& par_negotiatedNB__N1DRXParams, + const OPTIONAL& par_extdRejectedNSSAI, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_negotiatedPEIPS__AssistInfo, + const OPTIONAL& par_ngAddRequestResult, + const OPTIONAL& par_nssrgInfo, + const OPTIONAL& par_disasterRoamingWaitRange, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_disasterPLMNList, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_nsagInfo); +inline NG__REGISTRATION__ACCEPT& operator=(const NG__REGISTRATION__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__REGISTRATION__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__REGISTRATION__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline RegistrationResult& registrationResult() + {return field_registrationResult;} + inline const RegistrationResult& registrationResult() const + {return field_registrationResult;} + inline OPTIONAL& guti() + {return field_guti;} + inline const OPTIONAL& guti() const + {return field_guti;} + inline OPTIONAL& equivalentPlmns() + {return field_equivalentPlmns;} + inline const OPTIONAL& equivalentPlmns() const + {return field_equivalentPlmns;} + inline OPTIONAL& taiList() + {return field_taiList;} + inline const OPTIONAL& taiList() const + {return field_taiList;} + inline OPTIONAL& allowedNSSAI() + {return field_allowedNSSAI;} + inline const OPTIONAL& allowedNSSAI() const + {return field_allowedNSSAI;} + inline OPTIONAL& rejectedNSSAI() + {return field_rejectedNSSAI;} + inline const OPTIONAL& rejectedNSSAI() const + {return field_rejectedNSSAI;} + inline OPTIONAL& configuredNSSAI() + {return field_configuredNSSAI;} + inline const OPTIONAL& configuredNSSAI() const + {return field_configuredNSSAI;} + inline OPTIONAL& ngs__NetworkFeatureSupport() + {return field_ngs__NetworkFeatureSupport;} + inline const OPTIONAL& ngs__NetworkFeatureSupport() const + {return field_ngs__NetworkFeatureSupport;} + inline OPTIONAL& pduSessionStatus() + {return field_pduSessionStatus;} + inline const OPTIONAL& pduSessionStatus() const + {return field_pduSessionStatus;} + inline OPTIONAL& pduSessionReactivationResult() + {return field_pduSessionReactivationResult;} + inline const OPTIONAL& pduSessionReactivationResult() const + {return field_pduSessionReactivationResult;} + inline OPTIONAL& pduSessionReactResultError() + {return field_pduSessionReactResultError;} + inline const OPTIONAL& pduSessionReactResultError() const + {return field_pduSessionReactResultError;} + inline OPTIONAL& ladnInfo() + {return field_ladnInfo;} + inline const OPTIONAL& ladnInfo() const + {return field_ladnInfo;} + inline OPTIONAL& micoInd() + {return field_micoInd;} + inline const OPTIONAL& micoInd() const + {return field_micoInd;} + inline OPTIONAL& networkSlicingInd() + {return field_networkSlicingInd;} + inline const OPTIONAL& networkSlicingInd() const + {return field_networkSlicingInd;} + inline OPTIONAL& saiList() + {return field_saiList;} + inline const OPTIONAL& saiList() const + {return field_saiList;} + inline OPTIONAL& t3512Value() + {return field_t3512Value;} + inline const OPTIONAL& t3512Value() const + {return field_t3512Value;} + inline OPTIONAL& non3GPPDeregisterValue() + {return field_non3GPPDeregisterValue;} + inline const OPTIONAL& non3GPPDeregisterValue() const + {return field_non3GPPDeregisterValue;} + inline OPTIONAL& t3502Value() + {return field_t3502Value;} + inline const OPTIONAL& t3502Value() const + {return field_t3502Value;} + inline OPTIONAL& emergencyNumberList() + {return field_emergencyNumberList;} + inline const OPTIONAL& emergencyNumberList() const + {return field_emergencyNumberList;} + inline OPTIONAL& xtdEmergencyNumberList() + {return field_xtdEmergencyNumberList;} + inline const OPTIONAL& xtdEmergencyNumberList() const + {return field_xtdEmergencyNumberList;} + inline OPTIONAL& sorTransparentContainer() + {return field_sorTransparentContainer;} + inline const OPTIONAL& sorTransparentContainer() const + {return field_sorTransparentContainer;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& inclusionModeNSSAI() + {return field_inclusionModeNSSAI;} + inline const OPTIONAL& inclusionModeNSSAI() const + {return field_inclusionModeNSSAI;} + inline OPTIONAL& operatorAccessCatDefs() + {return field_operatorAccessCatDefs;} + inline const OPTIONAL& operatorAccessCatDefs() const + {return field_operatorAccessCatDefs;} + inline OPTIONAL& negotiatedDRXParams() + {return field_negotiatedDRXParams;} + inline const OPTIONAL& negotiatedDRXParams() const + {return field_negotiatedDRXParams;} + inline OPTIONAL& non3GPP__NW__ProvidedPolicies() + {return field_non3GPP__NW__ProvidedPolicies;} + inline const OPTIONAL& non3GPP__NW__ProvidedPolicies() const + {return field_non3GPP__NW__ProvidedPolicies;} + inline OPTIONAL& epsBearerContextStatus() + {return field_epsBearerContextStatus;} + inline const OPTIONAL& epsBearerContextStatus() const + {return field_epsBearerContextStatus;} + inline OPTIONAL& negotiatedExtdDRXParams() + {return field_negotiatedExtdDRXParams;} + inline const OPTIONAL& negotiatedExtdDRXParams() const + {return field_negotiatedExtdDRXParams;} + inline OPTIONAL& t3447Value() + {return field_t3447Value;} + inline const OPTIONAL& t3447Value() const + {return field_t3447Value;} + inline OPTIONAL& t3448Value() + {return field_t3448Value;} + inline const OPTIONAL& t3448Value() const + {return field_t3448Value;} + inline OPTIONAL& t3324Value() + {return field_t3324Value;} + inline const OPTIONAL& t3324Value() const + {return field_t3324Value;} + inline OPTIONAL& ueRadioCapabilityId() + {return field_ueRadioCapabilityId;} + inline const OPTIONAL& ueRadioCapabilityId() const + {return field_ueRadioCapabilityId;} + inline OPTIONAL& ueRadioCapIdDeletionInd() + {return field_ueRadioCapIdDeletionInd;} + inline const OPTIONAL& ueRadioCapIdDeletionInd() const + {return field_ueRadioCapIdDeletionInd;} + inline OPTIONAL& pendingNSSAI() + {return field_pendingNSSAI;} + inline const OPTIONAL& pendingNSSAI() const + {return field_pendingNSSAI;} + inline OPTIONAL& cipheringKeyData() + {return field_cipheringKeyData;} + inline const OPTIONAL& cipheringKeyData() const + {return field_cipheringKeyData;} + inline OPTIONAL& cagInfoList() + {return field_cagInfoList;} + inline const OPTIONAL& cagInfoList() const + {return field_cagInfoList;} + inline OPTIONAL& truncatedS__TMSIConfig() + {return field_truncatedS__TMSIConfig;} + inline const OPTIONAL& truncatedS__TMSIConfig() const + {return field_truncatedS__TMSIConfig;} + inline OPTIONAL& negotiatedWUSAssistanceInfo() + {return field_negotiatedWUSAssistanceInfo;} + inline const OPTIONAL& negotiatedWUSAssistanceInfo() const + {return field_negotiatedWUSAssistanceInfo;} + inline OPTIONAL& negotiatedNB__N1DRXParams() + {return field_negotiatedNB__N1DRXParams;} + inline const OPTIONAL& negotiatedNB__N1DRXParams() const + {return field_negotiatedNB__N1DRXParams;} + inline OPTIONAL& extdRejectedNSSAI() + {return field_extdRejectedNSSAI;} + inline const OPTIONAL& extdRejectedNSSAI() const + {return field_extdRejectedNSSAI;} + inline OPTIONAL& serviceLvlAA() + {return field_serviceLvlAA;} + inline const OPTIONAL& serviceLvlAA() const + {return field_serviceLvlAA;} + inline OPTIONAL& negotiatedPEIPS__AssistInfo() + {return field_negotiatedPEIPS__AssistInfo;} + inline const OPTIONAL& negotiatedPEIPS__AssistInfo() const + {return field_negotiatedPEIPS__AssistInfo;} + inline OPTIONAL& ngAddRequestResult() + {return field_ngAddRequestResult;} + inline const OPTIONAL& ngAddRequestResult() const + {return field_ngAddRequestResult;} + inline OPTIONAL& nssrgInfo() + {return field_nssrgInfo;} + inline const OPTIONAL& nssrgInfo() const + {return field_nssrgInfo;} + inline OPTIONAL& disasterRoamingWaitRange() + {return field_disasterRoamingWaitRange;} + inline const OPTIONAL& disasterRoamingWaitRange() const + {return field_disasterRoamingWaitRange;} + inline OPTIONAL& disasterReturnWaitRange() + {return field_disasterReturnWaitRange;} + inline const OPTIONAL& disasterReturnWaitRange() const + {return field_disasterReturnWaitRange;} + inline OPTIONAL& disasterPLMNList() + {return field_disasterPLMNList;} + inline const OPTIONAL& disasterPLMNList() const + {return field_disasterPLMNList;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} + inline OPTIONAL& extdCAGInfoList() + {return field_extdCAGInfoList;} + inline const OPTIONAL& extdCAGInfoList() const + {return field_extdCAGInfoList;} + inline OPTIONAL& nsagInfo() + {return field_nsagInfo;} + inline const OPTIONAL& nsagInfo() const + {return field_nsagInfo;} +Base_Type* clone() const { return new NG__REGISTRATION__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 55; } +int optional_count() const { return 50; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__REGISTRATION__ACCEPT_template : public Record_Template { +void set_specific(); +public: +NG__REGISTRATION__ACCEPT_template(): Record_Template() {} +NG__REGISTRATION__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +NG__REGISTRATION__ACCEPT_template(const NG__REGISTRATION__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +NG__REGISTRATION__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__REGISTRATION__ACCEPT_template(NG__REGISTRATION__ACCEPT_template* p_precondition, NG__REGISTRATION__ACCEPT_template* p_implied_template); +NG__REGISTRATION__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +NG__REGISTRATION__ACCEPT_template(const NG__REGISTRATION__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__REGISTRATION__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__REGISTRATION__ACCEPT_template& operator=(template_sel other_value); +NG__REGISTRATION__ACCEPT_template& operator=(const NG__REGISTRATION__ACCEPT& other_value); +NG__REGISTRATION__ACCEPT_template& operator=(const OPTIONAL& other_value); +NG__REGISTRATION__ACCEPT_template& operator=(const NG__REGISTRATION__ACCEPT_template& other_value); +inline boolean match(const NG__REGISTRATION__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__REGISTRATION__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__REGISTRATION__ACCEPT valueof() const; +inline NG__REGISTRATION__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +RegistrationResult_template& registrationResult(); +const RegistrationResult_template& registrationResult() const; +NG__MobileIdentity_template& guti(); +const NG__MobileIdentity_template& guti() const; +NAS__CommonTypeDefs::PLMN__List_template& equivalentPlmns(); +const NAS__CommonTypeDefs::PLMN__List_template& equivalentPlmns() const; +NG__TrackingAreaIdList_template& taiList(); +const NG__TrackingAreaIdList_template& taiList() const; +NSSAI_template& allowedNSSAI(); +const NSSAI_template& allowedNSSAI() const; +RejectedNSSAI_template& rejectedNSSAI(); +const RejectedNSSAI_template& rejectedNSSAI() const; +NSSAI_template& configuredNSSAI(); +const NSSAI_template& configuredNSSAI() const; +NG__NetworkFeatureSupport_template& ngs__NetworkFeatureSupport(); +const NG__NetworkFeatureSupport_template& ngs__NetworkFeatureSupport() const; +PDU__SessionStatus_template& pduSessionStatus(); +const PDU__SessionStatus_template& pduSessionStatus() const; +PDU__SessionStatus_template& pduSessionReactivationResult(); +const PDU__SessionStatus_template& pduSessionReactivationResult() const; +PDU__SessionReactivationError_template& pduSessionReactResultError(); +const PDU__SessionReactivationError_template& pduSessionReactResultError() const; +LADN__Info_template& ladnInfo(); +const LADN__Info_template& ladnInfo() const; +MICO__Ind_template& micoInd(); +const MICO__Ind_template& micoInd() const; +NetworkSlicingInd_template& networkSlicingInd(); +const NetworkSlicingInd_template& networkSlicingInd() const; +NG__TrackingAreaIdList_template& saiList(); +const NG__TrackingAreaIdList_template& saiList() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3512Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3512Value() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& non3GPPDeregisterValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& non3GPPDeregisterValue() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3502Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3502Value() const; +NAS__CommonTypeDefs::EmergNumList_template& emergencyNumberList(); +const NAS__CommonTypeDefs::EmergNumList_template& emergencyNumberList() const; +NAS__CommonTypeDefs::ExtdEmergNumList_template& xtdEmergencyNumberList(); +const NAS__CommonTypeDefs::ExtdEmergNumList_template& xtdEmergencyNumberList() const; +SORTransparentContainer_template& sorTransparentContainer(); +const SORTransparentContainer_template& sorTransparentContainer() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +InclusionModeNSSAI_template& inclusionModeNSSAI(); +const InclusionModeNSSAI_template& inclusionModeNSSAI() const; +OperatorAccessCatDefinitions_template& operatorAccessCatDefs(); +const OperatorAccessCatDefinitions_template& operatorAccessCatDefs() const; +NAS__CommonTypeDefs::DRXParamCommon_template& negotiatedDRXParams(); +const NAS__CommonTypeDefs::DRXParamCommon_template& negotiatedDRXParams() const; +NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& non3GPP__NW__ProvidedPolicies(); +const NAS__CommonTypeDefs::Non3GPP__NW__ProvidedPolicies_template& non3GPP__NW__ProvidedPolicies() const; +NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus(); +const NAS__CommonTypeDefs::EPS__BearerContextStatus_template& epsBearerContextStatus() const; +NAS__CommonTypeDefs::ExtdDRXParams_template& negotiatedExtdDRXParams(); +const NAS__CommonTypeDefs::ExtdDRXParams_template& negotiatedExtdDRXParams() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3447Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3447Value() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3448Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3448Value() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3324Value() const; +NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapabilityId(); +const NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapabilityId() const; +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeletionInd(); +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeletionInd() const; +NSSAI_template& pendingNSSAI(); +const NSSAI_template& pendingNSSAI() const; +NG__CipheringKeyData_template& cipheringKeyData(); +const NG__CipheringKeyData_template& cipheringKeyData() const; +CAGInfoList_template& cagInfoList(); +const CAGInfoList_template& cagInfoList() const; +TruncatedS__TMSIConfig_template& truncatedS__TMSIConfig(); +const TruncatedS__TMSIConfig_template& truncatedS__TMSIConfig() const; +NAS__CommonTypeDefs::WUSAssistInfo_template& negotiatedWUSAssistanceInfo(); +const NAS__CommonTypeDefs::WUSAssistInfo_template& negotiatedWUSAssistanceInfo() const; +NAS__CommonTypeDefs::DRXParamCommon_template& negotiatedNB__N1DRXParams(); +const NAS__CommonTypeDefs::DRXParamCommon_template& negotiatedNB__N1DRXParams() const; +ExtdRejectedNSSAI_template& extdRejectedNSSAI(); +const ExtdRejectedNSSAI_template& extdRejectedNSSAI() const; +ServiceLvlAAContainer_template& serviceLvlAA(); +const ServiceLvlAAContainer_template& serviceLvlAA() const; +PEIPS__AssistInfo_template& negotiatedPEIPS__AssistInfo(); +const PEIPS__AssistInfo_template& negotiatedPEIPS__AssistInfo() const; +NG__AddReqResult_template& ngAddRequestResult(); +const NG__AddReqResult_template& ngAddRequestResult() const; +NSSRG__Info_template& nssrgInfo(); +const NSSRG__Info_template& nssrgInfo() const; +RegistrationWaitRange_template& disasterRoamingWaitRange(); +const RegistrationWaitRange_template& disasterRoamingWaitRange() const; +RegistrationWaitRange_template& disasterReturnWaitRange(); +const RegistrationWaitRange_template& disasterReturnWaitRange() const; +DisasterPLMNList_template& disasterPLMNList(); +const DisasterPLMNList_template& disasterPLMNList() const; +NG__TrackingAreaIdList_template& forbidTAIList__Roaming(); +const NG__TrackingAreaIdList_template& forbidTAIList__Roaming() const; +NG__TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const NG__TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +ExtdCAGInfoList_template& extdCAGInfoList(); +const ExtdCAGInfoList_template& extdCAGInfoList() const; +NSAG__Info_template& nsagInfo(); +const NSAG__Info_template& nsagInfo() const; +Record_Template* create() const { return new NG__REGISTRATION__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__TrackingAreaIdList__LV_listOfPartialTais : public Record_Of_Type { + +static const NG__ListOfPartialTaiList UNBOUND_ELEM; + +public: +NG__TrackingAreaIdList__LV_listOfPartialTais(): Record_Of_Type() {} +NG__TrackingAreaIdList__LV_listOfPartialTais(null_type other_value): Record_Of_Type(other_value) {} +NG__TrackingAreaIdList__LV_listOfPartialTais(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value): Record_Of_Type(other_value) {} +~NG__TrackingAreaIdList__LV_listOfPartialTais() { clean_up(); } + +inline NG__TrackingAreaIdList__LV_listOfPartialTais& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__TrackingAreaIdList__LV_listOfPartialTais& operator=(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value) const { return !is_equal(&other_value); } +NG__ListOfPartialTaiList& operator[](int index_value); +NG__ListOfPartialTaiList& operator[](const INTEGER& index_value); +const NG__ListOfPartialTaiList& operator[](int index_value) const; +const NG__ListOfPartialTaiList& operator[](const INTEGER& index_value) const; +NG__TrackingAreaIdList__LV_listOfPartialTais operator<<=(int rotate_count) const; +NG__TrackingAreaIdList__LV_listOfPartialTais operator<<=(const INTEGER& rotate_count) const; +NG__TrackingAreaIdList__LV_listOfPartialTais operator>>=(int rotate_count) const; +NG__TrackingAreaIdList__LV_listOfPartialTais operator>>=(const INTEGER& rotate_count) const; + +NG__TrackingAreaIdList__LV_listOfPartialTais operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value) const; + +NG__TrackingAreaIdList__LV_listOfPartialTais operator+(const OPTIONAL& other_value) const; + +NG__TrackingAreaIdList__LV_listOfPartialTais operator+(null_type) const; + +NG__TrackingAreaIdList__LV_listOfPartialTais substr(int index, int returncount) const; + +NG__TrackingAreaIdList__LV_listOfPartialTais replace(int index, int len, const NG__TrackingAreaIdList__LV_listOfPartialTais& repl) const; + +NG__TrackingAreaIdList__LV_listOfPartialTais replace(int index, int len, const NG__TrackingAreaIdList__LV_listOfPartialTais_template& repl) const; + +Base_Type* clone() const { return new NG__TrackingAreaIdList__LV_listOfPartialTais(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__TrackingAreaIdList__LV_listOfPartialTais_template : public Record_Of_Template { +friend NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(template_sel left_template, const NG__TrackingAreaIdList__LV_listOfPartialTais_template& right_template); +friend NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais& left_value, const NG__TrackingAreaIdList__LV_listOfPartialTais_template& right_template); +friend NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(template_sel left_template, const NG__TrackingAreaIdList__LV_listOfPartialTais& right_value); +friend NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais& left_value, template_sel right_template); + +public: +NG__TrackingAreaIdList__LV_listOfPartialTais_template() {} +NG__TrackingAreaIdList__LV_listOfPartialTais_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__TrackingAreaIdList__LV_listOfPartialTais_template(null_type other_value); +NG__TrackingAreaIdList__LV_listOfPartialTais_template(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value) { copy_value(&other_value); } +NG__TrackingAreaIdList__LV_listOfPartialTais_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__TrackingAreaIdList__LV_listOfPartialTais_template(NG__TrackingAreaIdList__LV_listOfPartialTais_template* p_precondition, NG__TrackingAreaIdList__LV_listOfPartialTais_template* p_implied_template); +NG__TrackingAreaIdList__LV_listOfPartialTais_template(Dynamic_Match_Interface* p_dyn_match); +NG__TrackingAreaIdList__LV_listOfPartialTais_template(const NG__TrackingAreaIdList__LV_listOfPartialTais_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__TrackingAreaIdList__LV_listOfPartialTais_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__TrackingAreaIdList__LV_listOfPartialTais_template& operator=(template_sel other_value); +NG__TrackingAreaIdList__LV_listOfPartialTais_template& operator=(null_type other_value); +NG__TrackingAreaIdList__LV_listOfPartialTais_template& operator=(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value); +NG__TrackingAreaIdList__LV_listOfPartialTais_template& operator=(const OPTIONAL& other_value); +NG__TrackingAreaIdList__LV_listOfPartialTais_template& operator=(const NG__TrackingAreaIdList__LV_listOfPartialTais_template& other_value); + +NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais_template& other_value) const; +NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais& other_value) const; +NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(template_sel other_value) const; +NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(null_type) const; + +NG__ListOfPartialTaiList_template& operator[](int index_value); +NG__ListOfPartialTaiList_template& operator[](const INTEGER& index_value); +const NG__ListOfPartialTaiList_template& operator[](int index_value) const; +const NG__ListOfPartialTaiList_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__TrackingAreaIdList__LV_listOfPartialTais& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__TrackingAreaIdList__LV_listOfPartialTais valueof() const; +NG__TrackingAreaIdList__LV_listOfPartialTais substr(int index, int returncount) const; + +NG__TrackingAreaIdList__LV_listOfPartialTais replace(int index, int len, const NG__TrackingAreaIdList__LV_listOfPartialTais_template& repl) const; + +NG__TrackingAreaIdList__LV_listOfPartialTais replace(int index, int len, const NG__TrackingAreaIdList__LV_listOfPartialTais& repl) const; + +inline NG__TrackingAreaIdList__LV_listOfPartialTais_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__TrackingAreaIdList__LV_listOfPartialTais& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__TrackingAreaIdList__LV_listOfPartialTais_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__PartialTaiType : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_type0List = 1, ALT_type1List = 2, ALT_type2List = 3, ALT_type3 = 4 }; +private: +union_selection_type union_selection; +union { +NG__Type0List *field_type0List; +NG__Type1List *field_type1List; +NG__Type2List *field_type2List; +NG__Type3Element *field_type3; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__PartialTaiType& other_value); + +public: +NG__PartialTaiType(); +NG__PartialTaiType(const NG__PartialTaiType& other_value); +~NG__PartialTaiType(); +NG__PartialTaiType& operator=(const NG__PartialTaiType& other_value); +boolean operator==(const NG__PartialTaiType& other_value) const; +inline boolean operator!=(const NG__PartialTaiType& other_value) const { return !(*this == other_value); } +NG__Type0List& type0List(); +const NG__Type0List& type0List() const; +NG__Type1List& type1List(); +const NG__Type1List& type1List() const; +NG__Type2List& type2List(); +const NG__Type2List& type2List() const; +NG__Type3Element& type3(); +const NG__Type3Element& type3() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NG__PartialTaiType_template : public Base_Template { +union { +struct { +NG__PartialTaiType::union_selection_type union_selection; +union { +NG__Type0List_template *field_type0List; +NG__Type1List_template *field_type1List; +NG__Type2List_template *field_type2List; +NG__Type3Element_template *field_type3; +}; +} single_value; +struct { +unsigned int n_values; +NG__PartialTaiType_template *list_value; +} value_list; +struct { +NG__PartialTaiType_template* precondition; +NG__PartialTaiType_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__PartialTaiType& other_value); + +void copy_template(const NG__PartialTaiType_template& other_value); + +public: +NG__PartialTaiType_template(); +NG__PartialTaiType_template(template_sel other_value); +NG__PartialTaiType_template(const NG__PartialTaiType& other_value); +NG__PartialTaiType_template(const OPTIONAL& other_value); +NG__PartialTaiType_template(NG__PartialTaiType_template* p_precondition, NG__PartialTaiType_template* p_implied_template); +NG__PartialTaiType_template(Dynamic_Match_Interface* p_dyn_match); +NG__PartialTaiType_template(const NG__PartialTaiType_template& other_value); +~NG__PartialTaiType_template(); +void clean_up(); +NG__PartialTaiType_template& operator=(template_sel other_value); +NG__PartialTaiType_template& operator=(const NG__PartialTaiType& other_value); +NG__PartialTaiType_template& operator=(const OPTIONAL& other_value); +NG__PartialTaiType_template& operator=(const NG__PartialTaiType_template& other_value); +boolean match(const NG__PartialTaiType& other_value, boolean legacy = FALSE) const; +boolean is_value() const;NG__PartialTaiType valueof() const; +NG__PartialTaiType_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +NG__PartialTaiType::union_selection_type get_union_selection() const; +NG__Type0List_template& type0List(); +const NG__Type0List_template& type0List() const; +NG__Type1List_template& type1List(); +const NG__Type1List_template& type1List() const; +NG__Type2List_template& type2List(); +const NG__Type2List_template& type2List() const; +NG__Type3Element_template& type3(); +const NG__Type3Element_template& type3() const; +boolean ischosen(NG__PartialTaiType::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NG__PartialTaiType& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class NG__Type0List : public Record_Of_Type { + +static const NG__Type0Element UNBOUND_ELEM; + +public: +NG__Type0List(): Record_Of_Type() {} +NG__Type0List(null_type other_value): Record_Of_Type(other_value) {} +NG__Type0List(const NG__Type0List& other_value): Record_Of_Type(other_value) {} +~NG__Type0List() { clean_up(); } + +inline NG__Type0List& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__Type0List& operator=(const NG__Type0List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__Type0List& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__Type0List& other_value) const { return !is_equal(&other_value); } +NG__Type0Element& operator[](int index_value); +NG__Type0Element& operator[](const INTEGER& index_value); +const NG__Type0Element& operator[](int index_value) const; +const NG__Type0Element& operator[](const INTEGER& index_value) const; +NG__Type0List operator<<=(int rotate_count) const; +NG__Type0List operator<<=(const INTEGER& rotate_count) const; +NG__Type0List operator>>=(int rotate_count) const; +NG__Type0List operator>>=(const INTEGER& rotate_count) const; + +NG__Type0List operator+(const NG__Type0List& other_value) const; + +NG__Type0List operator+(const OPTIONAL& other_value) const; + +NG__Type0List operator+(null_type) const; + +NG__Type0List substr(int index, int returncount) const; + +NG__Type0List replace(int index, int len, const NG__Type0List& repl) const; + +NG__Type0List replace(int index, int len, const NG__Type0List_template& repl) const; + +Base_Type* clone() const { return new NG__Type0List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__Type0List_template : public Record_Of_Template { +friend NG__Type0List_template operator+(template_sel left_template, const NG__Type0List_template& right_template); +friend NG__Type0List_template operator+(const NG__Type0List& left_value, const NG__Type0List_template& right_template); +friend NG__Type0List_template operator+(template_sel left_template, const NG__Type0List& right_value); +friend NG__Type0List_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__Type0List_template operator+(const NG__Type0List& left_value, template_sel right_template); + +public: +NG__Type0List_template() {} +NG__Type0List_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__Type0List_template(null_type other_value); +NG__Type0List_template(const NG__Type0List& other_value) { copy_value(&other_value); } +NG__Type0List_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__Type0List_template(NG__Type0List_template* p_precondition, NG__Type0List_template* p_implied_template); +NG__Type0List_template(Dynamic_Match_Interface* p_dyn_match); +NG__Type0List_template(const NG__Type0List_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__Type0List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__Type0List_template& operator=(template_sel other_value); +NG__Type0List_template& operator=(null_type other_value); +NG__Type0List_template& operator=(const NG__Type0List& other_value); +NG__Type0List_template& operator=(const OPTIONAL& other_value); +NG__Type0List_template& operator=(const NG__Type0List_template& other_value); + +NG__Type0List_template operator+(const NG__Type0List_template& other_value) const; +NG__Type0List_template operator+(const NG__Type0List& other_value) const; +NG__Type0List_template operator+(template_sel other_value) const; +NG__Type0List_template operator+(null_type) const; + +NG__Type0Element_template& operator[](int index_value); +NG__Type0Element_template& operator[](const INTEGER& index_value); +const NG__Type0Element_template& operator[](int index_value) const; +const NG__Type0Element_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__Type0List& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__Type0List valueof() const; +NG__Type0List substr(int index, int returncount) const; + +NG__Type0List replace(int index, int len, const NG__Type0List_template& repl) const; + +NG__Type0List replace(int index, int len, const NG__Type0List& repl) const; + +inline NG__Type0List_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__Type0List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__Type0List_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__Type0Element : public Record_Type { + OCTETSTRING field_plmnId; + NG__NAS__TacList field_tacList; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__Type0Element(); + NG__Type0Element(const NG__Type0Element& other_value); + NG__Type0Element(const OCTETSTRING& par_plmnId, + const NG__NAS__TacList& par_tacList); +inline NG__Type0Element& operator=(const NG__Type0Element& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__Type0Element& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__Type0Element& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& plmnId() + {return field_plmnId;} + inline const OCTETSTRING& plmnId() const + {return field_plmnId;} + inline NG__NAS__TacList& tacList() + {return field_tacList;} + inline const NG__NAS__TacList& tacList() const + {return field_tacList;} +Base_Type* clone() const { return new NG__Type0Element(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__Type0Element_template : public Record_Template { +void set_specific(); +public: +NG__Type0Element_template(): Record_Template() {} +NG__Type0Element_template(template_sel other_value): Record_Template(other_value) {} +NG__Type0Element_template(const NG__Type0Element& other_value): Record_Template() { copy_value(&other_value); } +NG__Type0Element_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__Type0Element_template(NG__Type0Element_template* p_precondition, NG__Type0Element_template* p_implied_template); +NG__Type0Element_template(Dynamic_Match_Interface* p_dyn_match); +NG__Type0Element_template(const NG__Type0Element_template& other_value): Record_Template() { copy_template(other_value); } +~NG__Type0Element_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__Type0Element_template& operator=(template_sel other_value); +NG__Type0Element_template& operator=(const NG__Type0Element& other_value); +NG__Type0Element_template& operator=(const OPTIONAL& other_value); +NG__Type0Element_template& operator=(const NG__Type0Element_template& other_value); +inline boolean match(const NG__Type0Element& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__Type0Element& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__Type0Element valueof() const; +inline NG__Type0Element_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& plmnId(); +const OCTETSTRING_template& plmnId() const; +NG__NAS__TacList_template& tacList(); +const NG__NAS__TacList_template& tacList() const; +Record_Template* create() const { return new NG__Type0Element_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__Type1List : public Record_Of_Type { + +static const NG__Type1Element UNBOUND_ELEM; + +public: +NG__Type1List(): Record_Of_Type() {} +NG__Type1List(null_type other_value): Record_Of_Type(other_value) {} +NG__Type1List(const NG__Type1List& other_value): Record_Of_Type(other_value) {} +~NG__Type1List() { clean_up(); } + +inline NG__Type1List& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__Type1List& operator=(const NG__Type1List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__Type1List& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__Type1List& other_value) const { return !is_equal(&other_value); } +NG__Type1Element& operator[](int index_value); +NG__Type1Element& operator[](const INTEGER& index_value); +const NG__Type1Element& operator[](int index_value) const; +const NG__Type1Element& operator[](const INTEGER& index_value) const; +NG__Type1List operator<<=(int rotate_count) const; +NG__Type1List operator<<=(const INTEGER& rotate_count) const; +NG__Type1List operator>>=(int rotate_count) const; +NG__Type1List operator>>=(const INTEGER& rotate_count) const; + +NG__Type1List operator+(const NG__Type1List& other_value) const; + +NG__Type1List operator+(const OPTIONAL& other_value) const; + +NG__Type1List operator+(null_type) const; + +NG__Type1List substr(int index, int returncount) const; + +NG__Type1List replace(int index, int len, const NG__Type1List& repl) const; + +NG__Type1List replace(int index, int len, const NG__Type1List_template& repl) const; + +Base_Type* clone() const { return new NG__Type1List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__Type1List_template : public Record_Of_Template { +friend NG__Type1List_template operator+(template_sel left_template, const NG__Type1List_template& right_template); +friend NG__Type1List_template operator+(const NG__Type1List& left_value, const NG__Type1List_template& right_template); +friend NG__Type1List_template operator+(template_sel left_template, const NG__Type1List& right_value); +friend NG__Type1List_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__Type1List_template operator+(const NG__Type1List& left_value, template_sel right_template); + +public: +NG__Type1List_template() {} +NG__Type1List_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__Type1List_template(null_type other_value); +NG__Type1List_template(const NG__Type1List& other_value) { copy_value(&other_value); } +NG__Type1List_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__Type1List_template(NG__Type1List_template* p_precondition, NG__Type1List_template* p_implied_template); +NG__Type1List_template(Dynamic_Match_Interface* p_dyn_match); +NG__Type1List_template(const NG__Type1List_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__Type1List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__Type1List_template& operator=(template_sel other_value); +NG__Type1List_template& operator=(null_type other_value); +NG__Type1List_template& operator=(const NG__Type1List& other_value); +NG__Type1List_template& operator=(const OPTIONAL& other_value); +NG__Type1List_template& operator=(const NG__Type1List_template& other_value); + +NG__Type1List_template operator+(const NG__Type1List_template& other_value) const; +NG__Type1List_template operator+(const NG__Type1List& other_value) const; +NG__Type1List_template operator+(template_sel other_value) const; +NG__Type1List_template operator+(null_type) const; + +NG__Type1Element_template& operator[](int index_value); +NG__Type1Element_template& operator[](const INTEGER& index_value); +const NG__Type1Element_template& operator[](int index_value) const; +const NG__Type1Element_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__Type1List& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__Type1List valueof() const; +NG__Type1List substr(int index, int returncount) const; + +NG__Type1List replace(int index, int len, const NG__Type1List_template& repl) const; + +NG__Type1List replace(int index, int len, const NG__Type1List& repl) const; + +inline NG__Type1List_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__Type1List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__Type1List_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__PartialTai : public Record_Type { + OCTETSTRING field_plmnId; + OCTETSTRING field_tac; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__PartialTai(); + NG__PartialTai(const NG__PartialTai& other_value); + NG__PartialTai(const OCTETSTRING& par_plmnId, + const OCTETSTRING& par_tac); +inline NG__PartialTai& operator=(const NG__PartialTai& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PartialTai& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PartialTai& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& plmnId() + {return field_plmnId;} + inline const OCTETSTRING& plmnId() const + {return field_plmnId;} + inline OCTETSTRING& tac() + {return field_tac;} + inline const OCTETSTRING& tac() const + {return field_tac;} +Base_Type* clone() const { return new NG__PartialTai(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PartialTai_template : public Record_Template { +void set_specific(); +public: +NG__PartialTai_template(): Record_Template() {} +NG__PartialTai_template(template_sel other_value): Record_Template(other_value) {} +NG__PartialTai_template(const NG__PartialTai& other_value): Record_Template() { copy_value(&other_value); } +NG__PartialTai_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PartialTai_template(NG__PartialTai_template* p_precondition, NG__PartialTai_template* p_implied_template); +NG__PartialTai_template(Dynamic_Match_Interface* p_dyn_match); +NG__PartialTai_template(const NG__PartialTai_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PartialTai_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PartialTai_template& operator=(template_sel other_value); +NG__PartialTai_template& operator=(const NG__PartialTai& other_value); +NG__PartialTai_template& operator=(const OPTIONAL& other_value); +NG__PartialTai_template& operator=(const NG__PartialTai_template& other_value); +inline boolean match(const NG__PartialTai& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PartialTai& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PartialTai valueof() const; +inline NG__PartialTai_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& plmnId(); +const OCTETSTRING_template& plmnId() const; +OCTETSTRING_template& tac(); +const OCTETSTRING_template& tac() const; +Record_Template* create() const { return new NG__PartialTai_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__Type1Element : public Record_Type { + NG__PartialTai field_partialTac; + Base_Type* fld_vec[1]; + void init_vec(); +public: + NG__Type1Element(); + NG__Type1Element(const NG__Type1Element& other_value); + NG__Type1Element(const NG__PartialTai& par_partialTac); +inline NG__Type1Element& operator=(const NG__Type1Element& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__Type1Element& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__Type1Element& other_value) const + { return !is_equal(&other_value); } + + inline NG__PartialTai& partialTac() + {return field_partialTac;} + inline const NG__PartialTai& partialTac() const + {return field_partialTac;} +Base_Type* clone() const { return new NG__Type1Element(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__Type1Element_template : public Record_Template { +void set_specific(); +public: +NG__Type1Element_template(): Record_Template() {} +NG__Type1Element_template(template_sel other_value): Record_Template(other_value) {} +NG__Type1Element_template(const NG__Type1Element& other_value): Record_Template() { copy_value(&other_value); } +NG__Type1Element_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__Type1Element_template(NG__Type1Element_template* p_precondition, NG__Type1Element_template* p_implied_template); +NG__Type1Element_template(Dynamic_Match_Interface* p_dyn_match); +NG__Type1Element_template(const NG__Type1Element_template& other_value): Record_Template() { copy_template(other_value); } +~NG__Type1Element_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__Type1Element_template& operator=(template_sel other_value); +NG__Type1Element_template& operator=(const NG__Type1Element& other_value); +NG__Type1Element_template& operator=(const OPTIONAL& other_value); +NG__Type1Element_template& operator=(const NG__Type1Element_template& other_value); +inline boolean match(const NG__Type1Element& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__Type1Element& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__Type1Element valueof() const; +inline NG__Type1Element_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NG__PartialTai_template& partialTac(); +const NG__PartialTai_template& partialTac() const; +Record_Template* create() const { return new NG__Type1Element_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__Type2List : public Record_Of_Type { + +static const NG__Type2Element UNBOUND_ELEM; + +public: +NG__Type2List(): Record_Of_Type() {} +NG__Type2List(null_type other_value): Record_Of_Type(other_value) {} +NG__Type2List(const NG__Type2List& other_value): Record_Of_Type(other_value) {} +~NG__Type2List() { clean_up(); } + +inline NG__Type2List& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__Type2List& operator=(const NG__Type2List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__Type2List& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__Type2List& other_value) const { return !is_equal(&other_value); } +NG__Type2Element& operator[](int index_value); +NG__Type2Element& operator[](const INTEGER& index_value); +const NG__Type2Element& operator[](int index_value) const; +const NG__Type2Element& operator[](const INTEGER& index_value) const; +NG__Type2List operator<<=(int rotate_count) const; +NG__Type2List operator<<=(const INTEGER& rotate_count) const; +NG__Type2List operator>>=(int rotate_count) const; +NG__Type2List operator>>=(const INTEGER& rotate_count) const; + +NG__Type2List operator+(const NG__Type2List& other_value) const; + +NG__Type2List operator+(const OPTIONAL& other_value) const; + +NG__Type2List operator+(null_type) const; + +NG__Type2List substr(int index, int returncount) const; + +NG__Type2List replace(int index, int len, const NG__Type2List& repl) const; + +NG__Type2List replace(int index, int len, const NG__Type2List_template& repl) const; + +Base_Type* clone() const { return new NG__Type2List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__Type2List_template : public Record_Of_Template { +friend NG__Type2List_template operator+(template_sel left_template, const NG__Type2List_template& right_template); +friend NG__Type2List_template operator+(const NG__Type2List& left_value, const NG__Type2List_template& right_template); +friend NG__Type2List_template operator+(template_sel left_template, const NG__Type2List& right_value); +friend NG__Type2List_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__Type2List_template operator+(const NG__Type2List& left_value, template_sel right_template); + +public: +NG__Type2List_template() {} +NG__Type2List_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__Type2List_template(null_type other_value); +NG__Type2List_template(const NG__Type2List& other_value) { copy_value(&other_value); } +NG__Type2List_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__Type2List_template(NG__Type2List_template* p_precondition, NG__Type2List_template* p_implied_template); +NG__Type2List_template(Dynamic_Match_Interface* p_dyn_match); +NG__Type2List_template(const NG__Type2List_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__Type2List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__Type2List_template& operator=(template_sel other_value); +NG__Type2List_template& operator=(null_type other_value); +NG__Type2List_template& operator=(const NG__Type2List& other_value); +NG__Type2List_template& operator=(const OPTIONAL& other_value); +NG__Type2List_template& operator=(const NG__Type2List_template& other_value); + +NG__Type2List_template operator+(const NG__Type2List_template& other_value) const; +NG__Type2List_template operator+(const NG__Type2List& other_value) const; +NG__Type2List_template operator+(template_sel other_value) const; +NG__Type2List_template operator+(null_type) const; + +NG__Type2Element_template& operator[](int index_value); +NG__Type2Element_template& operator[](const INTEGER& index_value); +const NG__Type2Element_template& operator[](int index_value) const; +const NG__Type2Element_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__Type2List& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__Type2List valueof() const; +NG__Type2List substr(int index, int returncount) const; + +NG__Type2List replace(int index, int len, const NG__Type2List_template& repl) const; + +NG__Type2List replace(int index, int len, const NG__Type2List& repl) const; + +inline NG__Type2List_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__Type2List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__Type2List_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__PlmnAndTacs : public Record_Of_Type { + +static const NG__PartialTai UNBOUND_ELEM; + +public: +NG__PlmnAndTacs(): Record_Of_Type() {} +NG__PlmnAndTacs(null_type other_value): Record_Of_Type(other_value) {} +NG__PlmnAndTacs(const NG__PlmnAndTacs& other_value): Record_Of_Type(other_value) {} +~NG__PlmnAndTacs() { clean_up(); } + +inline NG__PlmnAndTacs& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__PlmnAndTacs& operator=(const NG__PlmnAndTacs& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PlmnAndTacs& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__PlmnAndTacs& other_value) const { return !is_equal(&other_value); } +NG__PartialTai& operator[](int index_value); +NG__PartialTai& operator[](const INTEGER& index_value); +const NG__PartialTai& operator[](int index_value) const; +const NG__PartialTai& operator[](const INTEGER& index_value) const; +NG__PlmnAndTacs operator<<=(int rotate_count) const; +NG__PlmnAndTacs operator<<=(const INTEGER& rotate_count) const; +NG__PlmnAndTacs operator>>=(int rotate_count) const; +NG__PlmnAndTacs operator>>=(const INTEGER& rotate_count) const; + +NG__PlmnAndTacs operator+(const NG__PlmnAndTacs& other_value) const; + +NG__PlmnAndTacs operator+(const OPTIONAL& other_value) const; + +NG__PlmnAndTacs operator+(null_type) const; + +NG__PlmnAndTacs substr(int index, int returncount) const; + +NG__PlmnAndTacs replace(int index, int len, const NG__PlmnAndTacs& repl) const; + +NG__PlmnAndTacs replace(int index, int len, const NG__PlmnAndTacs_template& repl) const; + +Base_Type* clone() const { return new NG__PlmnAndTacs(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__PlmnAndTacs_template : public Record_Of_Template { +friend NG__PlmnAndTacs_template operator+(template_sel left_template, const NG__PlmnAndTacs_template& right_template); +friend NG__PlmnAndTacs_template operator+(const NG__PlmnAndTacs& left_value, const NG__PlmnAndTacs_template& right_template); +friend NG__PlmnAndTacs_template operator+(template_sel left_template, const NG__PlmnAndTacs& right_value); +friend NG__PlmnAndTacs_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__PlmnAndTacs_template operator+(const NG__PlmnAndTacs& left_value, template_sel right_template); + +public: +NG__PlmnAndTacs_template() {} +NG__PlmnAndTacs_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__PlmnAndTacs_template(null_type other_value); +NG__PlmnAndTacs_template(const NG__PlmnAndTacs& other_value) { copy_value(&other_value); } +NG__PlmnAndTacs_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__PlmnAndTacs_template(NG__PlmnAndTacs_template* p_precondition, NG__PlmnAndTacs_template* p_implied_template); +NG__PlmnAndTacs_template(Dynamic_Match_Interface* p_dyn_match); +NG__PlmnAndTacs_template(const NG__PlmnAndTacs_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__PlmnAndTacs_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PlmnAndTacs_template& operator=(template_sel other_value); +NG__PlmnAndTacs_template& operator=(null_type other_value); +NG__PlmnAndTacs_template& operator=(const NG__PlmnAndTacs& other_value); +NG__PlmnAndTacs_template& operator=(const OPTIONAL& other_value); +NG__PlmnAndTacs_template& operator=(const NG__PlmnAndTacs_template& other_value); + +NG__PlmnAndTacs_template operator+(const NG__PlmnAndTacs_template& other_value) const; +NG__PlmnAndTacs_template operator+(const NG__PlmnAndTacs& other_value) const; +NG__PlmnAndTacs_template operator+(template_sel other_value) const; +NG__PlmnAndTacs_template operator+(null_type) const; + +NG__PartialTai_template& operator[](int index_value); +NG__PartialTai_template& operator[](const INTEGER& index_value); +const NG__PartialTai_template& operator[](int index_value) const; +const NG__PartialTai_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__PlmnAndTacs& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__PlmnAndTacs valueof() const; +NG__PlmnAndTacs substr(int index, int returncount) const; + +NG__PlmnAndTacs replace(int index, int len, const NG__PlmnAndTacs_template& repl) const; + +NG__PlmnAndTacs replace(int index, int len, const NG__PlmnAndTacs& repl) const; + +inline NG__PlmnAndTacs_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__PlmnAndTacs& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__PlmnAndTacs_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__Type2Element : public Record_Type { + NG__PlmnAndTacs field_plmnAndTacs; + Base_Type* fld_vec[1]; + void init_vec(); +public: + NG__Type2Element(); + NG__Type2Element(const NG__Type2Element& other_value); + NG__Type2Element(const NG__PlmnAndTacs& par_plmnAndTacs); +inline NG__Type2Element& operator=(const NG__Type2Element& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__Type2Element& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__Type2Element& other_value) const + { return !is_equal(&other_value); } + + inline NG__PlmnAndTacs& plmnAndTacs() + {return field_plmnAndTacs;} + inline const NG__PlmnAndTacs& plmnAndTacs() const + {return field_plmnAndTacs;} +Base_Type* clone() const { return new NG__Type2Element(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__Type2Element_template : public Record_Template { +void set_specific(); +public: +NG__Type2Element_template(): Record_Template() {} +NG__Type2Element_template(template_sel other_value): Record_Template(other_value) {} +NG__Type2Element_template(const NG__Type2Element& other_value): Record_Template() { copy_value(&other_value); } +NG__Type2Element_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__Type2Element_template(NG__Type2Element_template* p_precondition, NG__Type2Element_template* p_implied_template); +NG__Type2Element_template(Dynamic_Match_Interface* p_dyn_match); +NG__Type2Element_template(const NG__Type2Element_template& other_value): Record_Template() { copy_template(other_value); } +~NG__Type2Element_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__Type2Element_template& operator=(template_sel other_value); +NG__Type2Element_template& operator=(const NG__Type2Element& other_value); +NG__Type2Element_template& operator=(const OPTIONAL& other_value); +NG__Type2Element_template& operator=(const NG__Type2Element_template& other_value); +inline boolean match(const NG__Type2Element& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__Type2Element& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__Type2Element valueof() const; +inline NG__Type2Element_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NG__PlmnAndTacs_template& plmnAndTacs(); +const NG__PlmnAndTacs_template& plmnAndTacs() const; +Record_Template* create() const { return new NG__Type2Element_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__Type3Element : public Record_Type { + OCTETSTRING field_plmnId; + Base_Type* fld_vec[1]; + void init_vec(); +public: + NG__Type3Element(); + NG__Type3Element(const NG__Type3Element& other_value); + NG__Type3Element(const OCTETSTRING& par_plmnId); +inline NG__Type3Element& operator=(const NG__Type3Element& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__Type3Element& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__Type3Element& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& plmnId() + {return field_plmnId;} + inline const OCTETSTRING& plmnId() const + {return field_plmnId;} +Base_Type* clone() const { return new NG__Type3Element(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__Type3Element_template : public Record_Template { +void set_specific(); +public: +NG__Type3Element_template(): Record_Template() {} +NG__Type3Element_template(template_sel other_value): Record_Template(other_value) {} +NG__Type3Element_template(const NG__Type3Element& other_value): Record_Template() { copy_value(&other_value); } +NG__Type3Element_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__Type3Element_template(NG__Type3Element_template* p_precondition, NG__Type3Element_template* p_implied_template); +NG__Type3Element_template(Dynamic_Match_Interface* p_dyn_match); +NG__Type3Element_template(const NG__Type3Element_template& other_value): Record_Template() { copy_template(other_value); } +~NG__Type3Element_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__Type3Element_template& operator=(template_sel other_value); +NG__Type3Element_template& operator=(const NG__Type3Element& other_value); +NG__Type3Element_template& operator=(const OPTIONAL& other_value); +NG__Type3Element_template& operator=(const NG__Type3Element_template& other_value); +inline boolean match(const NG__Type3Element& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__Type3Element& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__Type3Element valueof() const; +inline NG__Type3Element_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& plmnId(); +const OCTETSTRING_template& plmnId() const; +Record_Template* create() const { return new NG__Type3Element_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__ListOfPartialTaiList : public Record_Type { + BITSTRING field_allowedType; + BITSTRING field_typeOfList; + BITSTRING field_numberOfElements; + NG__PartialTaiType field_partialTaiList; + Base_Type* fld_vec[4]; + void init_vec(); +public: + NG__ListOfPartialTaiList(); + NG__ListOfPartialTaiList(const NG__ListOfPartialTaiList& other_value); + NG__ListOfPartialTaiList(const BITSTRING& par_allowedType, + const BITSTRING& par_typeOfList, + const BITSTRING& par_numberOfElements, + const NG__PartialTaiType& par_partialTaiList); +inline NG__ListOfPartialTaiList& operator=(const NG__ListOfPartialTaiList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__ListOfPartialTaiList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__ListOfPartialTaiList& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& allowedType() + {return field_allowedType;} + inline const BITSTRING& allowedType() const + {return field_allowedType;} + inline BITSTRING& typeOfList() + {return field_typeOfList;} + inline const BITSTRING& typeOfList() const + {return field_typeOfList;} + inline BITSTRING& numberOfElements() + {return field_numberOfElements;} + inline const BITSTRING& numberOfElements() const + {return field_numberOfElements;} + inline NG__PartialTaiType& partialTaiList() + {return field_partialTaiList;} + inline const NG__PartialTaiType& partialTaiList() const + {return field_partialTaiList;} +Base_Type* clone() const { return new NG__ListOfPartialTaiList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__ListOfPartialTaiList_template : public Record_Template { +void set_specific(); +public: +NG__ListOfPartialTaiList_template(): Record_Template() {} +NG__ListOfPartialTaiList_template(template_sel other_value): Record_Template(other_value) {} +NG__ListOfPartialTaiList_template(const NG__ListOfPartialTaiList& other_value): Record_Template() { copy_value(&other_value); } +NG__ListOfPartialTaiList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__ListOfPartialTaiList_template(NG__ListOfPartialTaiList_template* p_precondition, NG__ListOfPartialTaiList_template* p_implied_template); +NG__ListOfPartialTaiList_template(Dynamic_Match_Interface* p_dyn_match); +NG__ListOfPartialTaiList_template(const NG__ListOfPartialTaiList_template& other_value): Record_Template() { copy_template(other_value); } +~NG__ListOfPartialTaiList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__ListOfPartialTaiList_template& operator=(template_sel other_value); +NG__ListOfPartialTaiList_template& operator=(const NG__ListOfPartialTaiList& other_value); +NG__ListOfPartialTaiList_template& operator=(const OPTIONAL& other_value); +NG__ListOfPartialTaiList_template& operator=(const NG__ListOfPartialTaiList_template& other_value); +inline boolean match(const NG__ListOfPartialTaiList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__ListOfPartialTaiList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__ListOfPartialTaiList valueof() const; +inline NG__ListOfPartialTaiList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& allowedType(); +const BITSTRING_template& allowedType() const; +BITSTRING_template& typeOfList(); +const BITSTRING_template& typeOfList() const; +BITSTRING_template& numberOfElements(); +const BITSTRING_template& numberOfElements() const; +NG__PartialTaiType_template& partialTaiList(); +const NG__PartialTaiType_template& partialTaiList() const; +Record_Template* create() const { return new NG__ListOfPartialTaiList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__TrackingAreaIdList__LV : public Record_Type { + OCTETSTRING field_iel; + NG__TrackingAreaIdList__LV_listOfPartialTais field_listOfPartialTais; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__TrackingAreaIdList__LV(); + NG__TrackingAreaIdList__LV(const NG__TrackingAreaIdList__LV& other_value); + NG__TrackingAreaIdList__LV(const OCTETSTRING& par_iel, + const NG__TrackingAreaIdList__LV_listOfPartialTais& par_listOfPartialTais); +inline NG__TrackingAreaIdList__LV& operator=(const NG__TrackingAreaIdList__LV& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__TrackingAreaIdList__LV& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__TrackingAreaIdList__LV& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline NG__TrackingAreaIdList__LV_listOfPartialTais& listOfPartialTais() + {return field_listOfPartialTais;} + inline const NG__TrackingAreaIdList__LV_listOfPartialTais& listOfPartialTais() const + {return field_listOfPartialTais;} +Base_Type* clone() const { return new NG__TrackingAreaIdList__LV(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__TrackingAreaIdList__LV_template : public Record_Template { +void set_specific(); +public: +NG__TrackingAreaIdList__LV_template(): Record_Template() {} +NG__TrackingAreaIdList__LV_template(template_sel other_value): Record_Template(other_value) {} +NG__TrackingAreaIdList__LV_template(const NG__TrackingAreaIdList__LV& other_value): Record_Template() { copy_value(&other_value); } +NG__TrackingAreaIdList__LV_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__TrackingAreaIdList__LV_template(NG__TrackingAreaIdList__LV_template* p_precondition, NG__TrackingAreaIdList__LV_template* p_implied_template); +NG__TrackingAreaIdList__LV_template(Dynamic_Match_Interface* p_dyn_match); +NG__TrackingAreaIdList__LV_template(const NG__TrackingAreaIdList__LV_template& other_value): Record_Template() { copy_template(other_value); } +~NG__TrackingAreaIdList__LV_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__TrackingAreaIdList__LV_template& operator=(template_sel other_value); +NG__TrackingAreaIdList__LV_template& operator=(const NG__TrackingAreaIdList__LV& other_value); +NG__TrackingAreaIdList__LV_template& operator=(const OPTIONAL& other_value); +NG__TrackingAreaIdList__LV_template& operator=(const NG__TrackingAreaIdList__LV_template& other_value); +inline boolean match(const NG__TrackingAreaIdList__LV& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__TrackingAreaIdList__LV& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__TrackingAreaIdList__LV valueof() const; +inline NG__TrackingAreaIdList__LV_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +NG__TrackingAreaIdList__LV_listOfPartialTais_template& listOfPartialTais(); +const NG__TrackingAreaIdList__LV_listOfPartialTais_template& listOfPartialTais() const; +Record_Template* create() const { return new NG__TrackingAreaIdList__LV_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__TrackingAreaIdList : public Record_Type { + OPTIONAL field_iei; + NG__TrackingAreaIdList__LV field_lvPart; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__TrackingAreaIdList(); + NG__TrackingAreaIdList(const NG__TrackingAreaIdList& other_value); + NG__TrackingAreaIdList(const OPTIONAL& par_iei, + const NG__TrackingAreaIdList__LV& par_lvPart); +inline NG__TrackingAreaIdList& operator=(const NG__TrackingAreaIdList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__TrackingAreaIdList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__TrackingAreaIdList& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline NG__TrackingAreaIdList__LV& lvPart() + {return field_lvPart;} + inline const NG__TrackingAreaIdList__LV& lvPart() const + {return field_lvPart;} +Base_Type* clone() const { return new NG__TrackingAreaIdList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__TrackingAreaIdList_template : public Record_Template { +void set_specific(); +public: +NG__TrackingAreaIdList_template(): Record_Template() {} +NG__TrackingAreaIdList_template(template_sel other_value): Record_Template(other_value) {} +NG__TrackingAreaIdList_template(const NG__TrackingAreaIdList& other_value): Record_Template() { copy_value(&other_value); } +NG__TrackingAreaIdList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__TrackingAreaIdList_template(NG__TrackingAreaIdList_template* p_precondition, NG__TrackingAreaIdList_template* p_implied_template); +NG__TrackingAreaIdList_template(Dynamic_Match_Interface* p_dyn_match); +NG__TrackingAreaIdList_template(const NG__TrackingAreaIdList_template& other_value): Record_Template() { copy_template(other_value); } +~NG__TrackingAreaIdList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__TrackingAreaIdList_template& operator=(template_sel other_value); +NG__TrackingAreaIdList_template& operator=(const NG__TrackingAreaIdList& other_value); +NG__TrackingAreaIdList_template& operator=(const OPTIONAL& other_value); +NG__TrackingAreaIdList_template& operator=(const NG__TrackingAreaIdList_template& other_value); +inline boolean match(const NG__TrackingAreaIdList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__TrackingAreaIdList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__TrackingAreaIdList valueof() const; +inline NG__TrackingAreaIdList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +NG__TrackingAreaIdList__LV_template& lvPart(); +const NG__TrackingAreaIdList__LV_template& lvPart() const; +Record_Template* create() const { return new NG__TrackingAreaIdList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RejectedNSSAI_rejectS__NSSAI : public Record_Of_Type { + +static const RejectedS__NSSAI UNBOUND_ELEM; + +public: +RejectedNSSAI_rejectS__NSSAI(): Record_Of_Type() {} +RejectedNSSAI_rejectS__NSSAI(null_type other_value): Record_Of_Type(other_value) {} +RejectedNSSAI_rejectS__NSSAI(const RejectedNSSAI_rejectS__NSSAI& other_value): Record_Of_Type(other_value) {} +~RejectedNSSAI_rejectS__NSSAI() { clean_up(); } + +inline RejectedNSSAI_rejectS__NSSAI& operator=(null_type other_value) { set_val(other_value); return *this; } +inline RejectedNSSAI_rejectS__NSSAI& operator=(const RejectedNSSAI_rejectS__NSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RejectedNSSAI_rejectS__NSSAI& other_value) const { return is_equal(&other_value); } +boolean operator!=(const RejectedNSSAI_rejectS__NSSAI& other_value) const { return !is_equal(&other_value); } +RejectedS__NSSAI& operator[](int index_value); +RejectedS__NSSAI& operator[](const INTEGER& index_value); +const RejectedS__NSSAI& operator[](int index_value) const; +const RejectedS__NSSAI& operator[](const INTEGER& index_value) const; +RejectedNSSAI_rejectS__NSSAI operator<<=(int rotate_count) const; +RejectedNSSAI_rejectS__NSSAI operator<<=(const INTEGER& rotate_count) const; +RejectedNSSAI_rejectS__NSSAI operator>>=(int rotate_count) const; +RejectedNSSAI_rejectS__NSSAI operator>>=(const INTEGER& rotate_count) const; + +RejectedNSSAI_rejectS__NSSAI operator+(const RejectedNSSAI_rejectS__NSSAI& other_value) const; + +RejectedNSSAI_rejectS__NSSAI operator+(const OPTIONAL& other_value) const; + +RejectedNSSAI_rejectS__NSSAI operator+(null_type) const; + +RejectedNSSAI_rejectS__NSSAI substr(int index, int returncount) const; + +RejectedNSSAI_rejectS__NSSAI replace(int index, int len, const RejectedNSSAI_rejectS__NSSAI& repl) const; + +RejectedNSSAI_rejectS__NSSAI replace(int index, int len, const RejectedNSSAI_rejectS__NSSAI_template& repl) const; + +Base_Type* clone() const { return new RejectedNSSAI_rejectS__NSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class RejectedNSSAI_rejectS__NSSAI_template : public Record_Of_Template { +friend RejectedNSSAI_rejectS__NSSAI_template operator+(template_sel left_template, const RejectedNSSAI_rejectS__NSSAI_template& right_template); +friend RejectedNSSAI_rejectS__NSSAI_template operator+(const RejectedNSSAI_rejectS__NSSAI& left_value, const RejectedNSSAI_rejectS__NSSAI_template& right_template); +friend RejectedNSSAI_rejectS__NSSAI_template operator+(template_sel left_template, const RejectedNSSAI_rejectS__NSSAI& right_value); +friend RejectedNSSAI_rejectS__NSSAI_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend RejectedNSSAI_rejectS__NSSAI_template operator+(const RejectedNSSAI_rejectS__NSSAI& left_value, template_sel right_template); + +public: +RejectedNSSAI_rejectS__NSSAI_template() {} +RejectedNSSAI_rejectS__NSSAI_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +RejectedNSSAI_rejectS__NSSAI_template(null_type other_value); +RejectedNSSAI_rejectS__NSSAI_template(const RejectedNSSAI_rejectS__NSSAI& other_value) { copy_value(&other_value); } +RejectedNSSAI_rejectS__NSSAI_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +RejectedNSSAI_rejectS__NSSAI_template(RejectedNSSAI_rejectS__NSSAI_template* p_precondition, RejectedNSSAI_rejectS__NSSAI_template* p_implied_template); +RejectedNSSAI_rejectS__NSSAI_template(Dynamic_Match_Interface* p_dyn_match); +RejectedNSSAI_rejectS__NSSAI_template(const RejectedNSSAI_rejectS__NSSAI_template& other_value): Record_Of_Template() { copy_template(other_value); } +~RejectedNSSAI_rejectS__NSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RejectedNSSAI_rejectS__NSSAI_template& operator=(template_sel other_value); +RejectedNSSAI_rejectS__NSSAI_template& operator=(null_type other_value); +RejectedNSSAI_rejectS__NSSAI_template& operator=(const RejectedNSSAI_rejectS__NSSAI& other_value); +RejectedNSSAI_rejectS__NSSAI_template& operator=(const OPTIONAL& other_value); +RejectedNSSAI_rejectS__NSSAI_template& operator=(const RejectedNSSAI_rejectS__NSSAI_template& other_value); + +RejectedNSSAI_rejectS__NSSAI_template operator+(const RejectedNSSAI_rejectS__NSSAI_template& other_value) const; +RejectedNSSAI_rejectS__NSSAI_template operator+(const RejectedNSSAI_rejectS__NSSAI& other_value) const; +RejectedNSSAI_rejectS__NSSAI_template operator+(template_sel other_value) const; +RejectedNSSAI_rejectS__NSSAI_template operator+(null_type) const; + +RejectedS__NSSAI_template& operator[](int index_value); +RejectedS__NSSAI_template& operator[](const INTEGER& index_value); +const RejectedS__NSSAI_template& operator[](int index_value) const; +const RejectedS__NSSAI_template& operator[](const INTEGER& index_value) const; +inline boolean match(const RejectedNSSAI_rejectS__NSSAI& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +RejectedNSSAI_rejectS__NSSAI valueof() const; +RejectedNSSAI_rejectS__NSSAI substr(int index, int returncount) const; + +RejectedNSSAI_rejectS__NSSAI replace(int index, int len, const RejectedNSSAI_rejectS__NSSAI_template& repl) const; + +RejectedNSSAI_rejectS__NSSAI replace(int index, int len, const RejectedNSSAI_rejectS__NSSAI& repl) const; + +inline RejectedNSSAI_rejectS__NSSAI_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const RejectedNSSAI_rejectS__NSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new RejectedNSSAI_rejectS__NSSAI_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class RejectedS__NSSAI : public Record_Type { + BITSTRING field_len; + BITSTRING field_causeValue; + OCTETSTRING field_sst; + OPTIONAL field_sd; + Base_Type* fld_vec[4]; + void init_vec(); +public: + RejectedS__NSSAI(); + RejectedS__NSSAI(const RejectedS__NSSAI& other_value); + RejectedS__NSSAI(const BITSTRING& par_len, + const BITSTRING& par_causeValue, + const OCTETSTRING& par_sst, + const OPTIONAL& par_sd); +inline RejectedS__NSSAI& operator=(const RejectedS__NSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RejectedS__NSSAI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RejectedS__NSSAI& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& len() + {return field_len;} + inline const BITSTRING& len() const + {return field_len;} + inline BITSTRING& causeValue() + {return field_causeValue;} + inline const BITSTRING& causeValue() const + {return field_causeValue;} + inline OCTETSTRING& sst() + {return field_sst;} + inline const OCTETSTRING& sst() const + {return field_sst;} + inline OPTIONAL& sd() + {return field_sd;} + inline const OPTIONAL& sd() const + {return field_sd;} +Base_Type* clone() const { return new RejectedS__NSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RejectedS__NSSAI_template : public Record_Template { +void set_specific(); +public: +RejectedS__NSSAI_template(): Record_Template() {} +RejectedS__NSSAI_template(template_sel other_value): Record_Template(other_value) {} +RejectedS__NSSAI_template(const RejectedS__NSSAI& other_value): Record_Template() { copy_value(&other_value); } +RejectedS__NSSAI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RejectedS__NSSAI_template(RejectedS__NSSAI_template* p_precondition, RejectedS__NSSAI_template* p_implied_template); +RejectedS__NSSAI_template(Dynamic_Match_Interface* p_dyn_match); +RejectedS__NSSAI_template(const RejectedS__NSSAI_template& other_value): Record_Template() { copy_template(other_value); } +~RejectedS__NSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RejectedS__NSSAI_template& operator=(template_sel other_value); +RejectedS__NSSAI_template& operator=(const RejectedS__NSSAI& other_value); +RejectedS__NSSAI_template& operator=(const OPTIONAL& other_value); +RejectedS__NSSAI_template& operator=(const RejectedS__NSSAI_template& other_value); +inline boolean match(const RejectedS__NSSAI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RejectedS__NSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RejectedS__NSSAI valueof() const; +inline RejectedS__NSSAI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& len(); +const BITSTRING_template& len() const; +BITSTRING_template& causeValue(); +const BITSTRING_template& causeValue() const; +OCTETSTRING_template& sst(); +const OCTETSTRING_template& sst() const; +OCTETSTRING_template& sd(); +const OCTETSTRING_template& sd() const; +Record_Template* create() const { return new RejectedS__NSSAI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RejectedNSSAI : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + RejectedNSSAI_rejectS__NSSAI field_rejectS__NSSAI; + Base_Type* fld_vec[3]; + void init_vec(); +public: + RejectedNSSAI(); + RejectedNSSAI(const RejectedNSSAI& other_value); + RejectedNSSAI(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const RejectedNSSAI_rejectS__NSSAI& par_rejectS__NSSAI); +inline RejectedNSSAI& operator=(const RejectedNSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RejectedNSSAI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RejectedNSSAI& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline RejectedNSSAI_rejectS__NSSAI& rejectS__NSSAI() + {return field_rejectS__NSSAI;} + inline const RejectedNSSAI_rejectS__NSSAI& rejectS__NSSAI() const + {return field_rejectS__NSSAI;} +Base_Type* clone() const { return new RejectedNSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RejectedNSSAI_template : public Record_Template { +void set_specific(); +public: +RejectedNSSAI_template(): Record_Template() {} +RejectedNSSAI_template(template_sel other_value): Record_Template(other_value) {} +RejectedNSSAI_template(const RejectedNSSAI& other_value): Record_Template() { copy_value(&other_value); } +RejectedNSSAI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RejectedNSSAI_template(RejectedNSSAI_template* p_precondition, RejectedNSSAI_template* p_implied_template); +RejectedNSSAI_template(Dynamic_Match_Interface* p_dyn_match); +RejectedNSSAI_template(const RejectedNSSAI_template& other_value): Record_Template() { copy_template(other_value); } +~RejectedNSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RejectedNSSAI_template& operator=(template_sel other_value); +RejectedNSSAI_template& operator=(const RejectedNSSAI& other_value); +RejectedNSSAI_template& operator=(const OPTIONAL& other_value); +RejectedNSSAI_template& operator=(const RejectedNSSAI_template& other_value); +inline boolean match(const RejectedNSSAI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RejectedNSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RejectedNSSAI valueof() const; +inline RejectedNSSAI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +RejectedNSSAI_rejectS__NSSAI_template& rejectS__NSSAI(); +const RejectedNSSAI_rejectS__NSSAI_template& rejectS__NSSAI() const; +Record_Template* create() const { return new RejectedNSSAI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NetworkFeatureSupport : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_mpsi; + BITSTRING field_iwk__N26; + BITSTRING field_emf; + BITSTRING field_emc; + BITSTRING field_imsVoPS__n3GPP; + BITSTRING field_imsVoPS__3GPP; + OPTIONAL field_ng__UP__CIoT; + OPTIONAL field_ngIPHC__CP__CIoT; + OPTIONAL field_n3Data; + OPTIONAL field_ng__CP__CIoT; + OPTIONAL field_restrictEC; + OPTIONAL field_mcsi; + OPTIONAL field_emcn3; + OPTIONAL field_spareBit; + OPTIONAL field_pr; + OPTIONAL field_rpr; + OPTIONAL field_piv; + OPTIONAL field_ncr; + OPTIONAL field_ngEHC__CP__CIoT; + OPTIONAL field_atsInd; + OPTIONAL field_ngLCS; + Base_Type* fld_vec[23]; + void init_vec(); +public: + NG__NetworkFeatureSupport(); + NG__NetworkFeatureSupport(const NG__NetworkFeatureSupport& other_value); + NG__NetworkFeatureSupport(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_mpsi, + const BITSTRING& par_iwk__N26, + const BITSTRING& par_emf, + const BITSTRING& par_emc, + const BITSTRING& par_imsVoPS__n3GPP, + const BITSTRING& par_imsVoPS__3GPP, + const OPTIONAL& par_ng__UP__CIoT, + const OPTIONAL& par_ngIPHC__CP__CIoT, + const OPTIONAL& par_n3Data, + const OPTIONAL& par_ng__CP__CIoT, + const OPTIONAL& par_restrictEC, + const OPTIONAL& par_mcsi, + const OPTIONAL& par_emcn3, + const OPTIONAL& par_spareBit, + const OPTIONAL& par_pr, + const OPTIONAL& par_rpr, + const OPTIONAL& par_piv, + const OPTIONAL& par_ncr, + const OPTIONAL& par_ngEHC__CP__CIoT, + const OPTIONAL& par_atsInd, + const OPTIONAL& par_ngLCS); +inline NG__NetworkFeatureSupport& operator=(const NG__NetworkFeatureSupport& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NetworkFeatureSupport& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NetworkFeatureSupport& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& mpsi() + {return field_mpsi;} + inline const BITSTRING& mpsi() const + {return field_mpsi;} + inline BITSTRING& iwk__N26() + {return field_iwk__N26;} + inline const BITSTRING& iwk__N26() const + {return field_iwk__N26;} + inline BITSTRING& emf() + {return field_emf;} + inline const BITSTRING& emf() const + {return field_emf;} + inline BITSTRING& emc() + {return field_emc;} + inline const BITSTRING& emc() const + {return field_emc;} + inline BITSTRING& imsVoPS__n3GPP() + {return field_imsVoPS__n3GPP;} + inline const BITSTRING& imsVoPS__n3GPP() const + {return field_imsVoPS__n3GPP;} + inline BITSTRING& imsVoPS__3GPP() + {return field_imsVoPS__3GPP;} + inline const BITSTRING& imsVoPS__3GPP() const + {return field_imsVoPS__3GPP;} + inline OPTIONAL& ng__UP__CIoT() + {return field_ng__UP__CIoT;} + inline const OPTIONAL& ng__UP__CIoT() const + {return field_ng__UP__CIoT;} + inline OPTIONAL& ngIPHC__CP__CIoT() + {return field_ngIPHC__CP__CIoT;} + inline const OPTIONAL& ngIPHC__CP__CIoT() const + {return field_ngIPHC__CP__CIoT;} + inline OPTIONAL& n3Data() + {return field_n3Data;} + inline const OPTIONAL& n3Data() const + {return field_n3Data;} + inline OPTIONAL& ng__CP__CIoT() + {return field_ng__CP__CIoT;} + inline const OPTIONAL& ng__CP__CIoT() const + {return field_ng__CP__CIoT;} + inline OPTIONAL& restrictEC() + {return field_restrictEC;} + inline const OPTIONAL& restrictEC() const + {return field_restrictEC;} + inline OPTIONAL& mcsi() + {return field_mcsi;} + inline const OPTIONAL& mcsi() const + {return field_mcsi;} + inline OPTIONAL& emcn3() + {return field_emcn3;} + inline const OPTIONAL& emcn3() const + {return field_emcn3;} + inline OPTIONAL& spareBit() + {return field_spareBit;} + inline const OPTIONAL& spareBit() const + {return field_spareBit;} + inline OPTIONAL& pr() + {return field_pr;} + inline const OPTIONAL& pr() const + {return field_pr;} + inline OPTIONAL& rpr() + {return field_rpr;} + inline const OPTIONAL& rpr() const + {return field_rpr;} + inline OPTIONAL& piv() + {return field_piv;} + inline const OPTIONAL& piv() const + {return field_piv;} + inline OPTIONAL& ncr() + {return field_ncr;} + inline const OPTIONAL& ncr() const + {return field_ncr;} + inline OPTIONAL& ngEHC__CP__CIoT() + {return field_ngEHC__CP__CIoT;} + inline const OPTIONAL& ngEHC__CP__CIoT() const + {return field_ngEHC__CP__CIoT;} + inline OPTIONAL& atsInd() + {return field_atsInd;} + inline const OPTIONAL& atsInd() const + {return field_atsInd;} + inline OPTIONAL& ngLCS() + {return field_ngLCS;} + inline const OPTIONAL& ngLCS() const + {return field_ngLCS;} +Base_Type* clone() const { return new NG__NetworkFeatureSupport(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 23; } +int optional_count() const { return 17; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NetworkFeatureSupport_template : public Record_Template { +void set_specific(); +public: +NG__NetworkFeatureSupport_template(): Record_Template() {} +NG__NetworkFeatureSupport_template(template_sel other_value): Record_Template(other_value) {} +NG__NetworkFeatureSupport_template(const NG__NetworkFeatureSupport& other_value): Record_Template() { copy_value(&other_value); } +NG__NetworkFeatureSupport_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NetworkFeatureSupport_template(NG__NetworkFeatureSupport_template* p_precondition, NG__NetworkFeatureSupport_template* p_implied_template); +NG__NetworkFeatureSupport_template(Dynamic_Match_Interface* p_dyn_match); +NG__NetworkFeatureSupport_template(const NG__NetworkFeatureSupport_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NetworkFeatureSupport_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NetworkFeatureSupport_template& operator=(template_sel other_value); +NG__NetworkFeatureSupport_template& operator=(const NG__NetworkFeatureSupport& other_value); +NG__NetworkFeatureSupport_template& operator=(const OPTIONAL& other_value); +NG__NetworkFeatureSupport_template& operator=(const NG__NetworkFeatureSupport_template& other_value); +inline boolean match(const NG__NetworkFeatureSupport& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NetworkFeatureSupport& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NetworkFeatureSupport valueof() const; +inline NG__NetworkFeatureSupport_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& mpsi(); +const BITSTRING_template& mpsi() const; +BITSTRING_template& iwk__N26(); +const BITSTRING_template& iwk__N26() const; +BITSTRING_template& emf(); +const BITSTRING_template& emf() const; +BITSTRING_template& emc(); +const BITSTRING_template& emc() const; +BITSTRING_template& imsVoPS__n3GPP(); +const BITSTRING_template& imsVoPS__n3GPP() const; +BITSTRING_template& imsVoPS__3GPP(); +const BITSTRING_template& imsVoPS__3GPP() const; +BITSTRING_template& ng__UP__CIoT(); +const BITSTRING_template& ng__UP__CIoT() const; +BITSTRING_template& ngIPHC__CP__CIoT(); +const BITSTRING_template& ngIPHC__CP__CIoT() const; +BITSTRING_template& n3Data(); +const BITSTRING_template& n3Data() const; +BITSTRING_template& ng__CP__CIoT(); +const BITSTRING_template& ng__CP__CIoT() const; +BITSTRING_template& restrictEC(); +const BITSTRING_template& restrictEC() const; +BITSTRING_template& mcsi(); +const BITSTRING_template& mcsi() const; +BITSTRING_template& emcn3(); +const BITSTRING_template& emcn3() const; +BITSTRING_template& spareBit(); +const BITSTRING_template& spareBit() const; +BITSTRING_template& pr(); +const BITSTRING_template& pr() const; +BITSTRING_template& rpr(); +const BITSTRING_template& rpr() const; +BITSTRING_template& piv(); +const BITSTRING_template& piv() const; +BITSTRING_template& ncr(); +const BITSTRING_template& ncr() const; +BITSTRING_template& ngEHC__CP__CIoT(); +const BITSTRING_template& ngEHC__CP__CIoT() const; +BITSTRING_template& atsInd(); +const BITSTRING_template& atsInd() const; +BITSTRING_template& ngLCS(); +const BITSTRING_template& ngLCS() const; +Record_Template* create() const { return new NG__NetworkFeatureSupport_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDU__SessionReactivationError_errorCause : public Record_Of_Type { + +static const PDU__SessionErrorCause UNBOUND_ELEM; + +public: +PDU__SessionReactivationError_errorCause(): Record_Of_Type() {} +PDU__SessionReactivationError_errorCause(null_type other_value): Record_Of_Type(other_value) {} +PDU__SessionReactivationError_errorCause(const PDU__SessionReactivationError_errorCause& other_value): Record_Of_Type(other_value) {} +~PDU__SessionReactivationError_errorCause() { clean_up(); } + +inline PDU__SessionReactivationError_errorCause& operator=(null_type other_value) { set_val(other_value); return *this; } +inline PDU__SessionReactivationError_errorCause& operator=(const PDU__SessionReactivationError_errorCause& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDU__SessionReactivationError_errorCause& other_value) const { return is_equal(&other_value); } +boolean operator!=(const PDU__SessionReactivationError_errorCause& other_value) const { return !is_equal(&other_value); } +PDU__SessionErrorCause& operator[](int index_value); +PDU__SessionErrorCause& operator[](const INTEGER& index_value); +const PDU__SessionErrorCause& operator[](int index_value) const; +const PDU__SessionErrorCause& operator[](const INTEGER& index_value) const; +PDU__SessionReactivationError_errorCause operator<<=(int rotate_count) const; +PDU__SessionReactivationError_errorCause operator<<=(const INTEGER& rotate_count) const; +PDU__SessionReactivationError_errorCause operator>>=(int rotate_count) const; +PDU__SessionReactivationError_errorCause operator>>=(const INTEGER& rotate_count) const; + +PDU__SessionReactivationError_errorCause operator+(const PDU__SessionReactivationError_errorCause& other_value) const; + +PDU__SessionReactivationError_errorCause operator+(const OPTIONAL& other_value) const; + +PDU__SessionReactivationError_errorCause operator+(null_type) const; + +PDU__SessionReactivationError_errorCause substr(int index, int returncount) const; + +PDU__SessionReactivationError_errorCause replace(int index, int len, const PDU__SessionReactivationError_errorCause& repl) const; + +PDU__SessionReactivationError_errorCause replace(int index, int len, const PDU__SessionReactivationError_errorCause_template& repl) const; + +Base_Type* clone() const { return new PDU__SessionReactivationError_errorCause(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class PDU__SessionReactivationError_errorCause_template : public Record_Of_Template { +friend PDU__SessionReactivationError_errorCause_template operator+(template_sel left_template, const PDU__SessionReactivationError_errorCause_template& right_template); +friend PDU__SessionReactivationError_errorCause_template operator+(const PDU__SessionReactivationError_errorCause& left_value, const PDU__SessionReactivationError_errorCause_template& right_template); +friend PDU__SessionReactivationError_errorCause_template operator+(template_sel left_template, const PDU__SessionReactivationError_errorCause& right_value); +friend PDU__SessionReactivationError_errorCause_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend PDU__SessionReactivationError_errorCause_template operator+(const PDU__SessionReactivationError_errorCause& left_value, template_sel right_template); + +public: +PDU__SessionReactivationError_errorCause_template() {} +PDU__SessionReactivationError_errorCause_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +PDU__SessionReactivationError_errorCause_template(null_type other_value); +PDU__SessionReactivationError_errorCause_template(const PDU__SessionReactivationError_errorCause& other_value) { copy_value(&other_value); } +PDU__SessionReactivationError_errorCause_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +PDU__SessionReactivationError_errorCause_template(PDU__SessionReactivationError_errorCause_template* p_precondition, PDU__SessionReactivationError_errorCause_template* p_implied_template); +PDU__SessionReactivationError_errorCause_template(Dynamic_Match_Interface* p_dyn_match); +PDU__SessionReactivationError_errorCause_template(const PDU__SessionReactivationError_errorCause_template& other_value): Record_Of_Template() { copy_template(other_value); } +~PDU__SessionReactivationError_errorCause_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDU__SessionReactivationError_errorCause_template& operator=(template_sel other_value); +PDU__SessionReactivationError_errorCause_template& operator=(null_type other_value); +PDU__SessionReactivationError_errorCause_template& operator=(const PDU__SessionReactivationError_errorCause& other_value); +PDU__SessionReactivationError_errorCause_template& operator=(const OPTIONAL& other_value); +PDU__SessionReactivationError_errorCause_template& operator=(const PDU__SessionReactivationError_errorCause_template& other_value); + +PDU__SessionReactivationError_errorCause_template operator+(const PDU__SessionReactivationError_errorCause_template& other_value) const; +PDU__SessionReactivationError_errorCause_template operator+(const PDU__SessionReactivationError_errorCause& other_value) const; +PDU__SessionReactivationError_errorCause_template operator+(template_sel other_value) const; +PDU__SessionReactivationError_errorCause_template operator+(null_type) const; + +PDU__SessionErrorCause_template& operator[](int index_value); +PDU__SessionErrorCause_template& operator[](const INTEGER& index_value); +const PDU__SessionErrorCause_template& operator[](int index_value) const; +const PDU__SessionErrorCause_template& operator[](const INTEGER& index_value) const; +inline boolean match(const PDU__SessionReactivationError_errorCause& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +PDU__SessionReactivationError_errorCause valueof() const; +PDU__SessionReactivationError_errorCause substr(int index, int returncount) const; + +PDU__SessionReactivationError_errorCause replace(int index, int len, const PDU__SessionReactivationError_errorCause_template& repl) const; + +PDU__SessionReactivationError_errorCause replace(int index, int len, const PDU__SessionReactivationError_errorCause& repl) const; + +inline PDU__SessionReactivationError_errorCause_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const PDU__SessionReactivationError_errorCause& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new PDU__SessionReactivationError_errorCause_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class PDU__SessionErrorCause : public Record_Type { + OCTETSTRING field_sessionId; + OCTETSTRING field_causeValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + PDU__SessionErrorCause(); + PDU__SessionErrorCause(const PDU__SessionErrorCause& other_value); + PDU__SessionErrorCause(const OCTETSTRING& par_sessionId, + const OCTETSTRING& par_causeValue); +inline PDU__SessionErrorCause& operator=(const PDU__SessionErrorCause& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDU__SessionErrorCause& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDU__SessionErrorCause& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& sessionId() + {return field_sessionId;} + inline const OCTETSTRING& sessionId() const + {return field_sessionId;} + inline OCTETSTRING& causeValue() + {return field_causeValue;} + inline const OCTETSTRING& causeValue() const + {return field_causeValue;} +Base_Type* clone() const { return new PDU__SessionErrorCause(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDU__SessionErrorCause_template : public Record_Template { +void set_specific(); +public: +PDU__SessionErrorCause_template(): Record_Template() {} +PDU__SessionErrorCause_template(template_sel other_value): Record_Template(other_value) {} +PDU__SessionErrorCause_template(const PDU__SessionErrorCause& other_value): Record_Template() { copy_value(&other_value); } +PDU__SessionErrorCause_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDU__SessionErrorCause_template(PDU__SessionErrorCause_template* p_precondition, PDU__SessionErrorCause_template* p_implied_template); +PDU__SessionErrorCause_template(Dynamic_Match_Interface* p_dyn_match); +PDU__SessionErrorCause_template(const PDU__SessionErrorCause_template& other_value): Record_Template() { copy_template(other_value); } +~PDU__SessionErrorCause_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDU__SessionErrorCause_template& operator=(template_sel other_value); +PDU__SessionErrorCause_template& operator=(const PDU__SessionErrorCause& other_value); +PDU__SessionErrorCause_template& operator=(const OPTIONAL& other_value); +PDU__SessionErrorCause_template& operator=(const PDU__SessionErrorCause_template& other_value); +inline boolean match(const PDU__SessionErrorCause& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDU__SessionErrorCause& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDU__SessionErrorCause valueof() const; +inline PDU__SessionErrorCause_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& sessionId(); +const OCTETSTRING_template& sessionId() const; +OCTETSTRING_template& causeValue(); +const OCTETSTRING_template& causeValue() const; +Record_Template* create() const { return new PDU__SessionErrorCause_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDU__SessionReactivationError : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + PDU__SessionReactivationError_errorCause field_errorCause; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PDU__SessionReactivationError(); + PDU__SessionReactivationError(const PDU__SessionReactivationError& other_value); + PDU__SessionReactivationError(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const PDU__SessionReactivationError_errorCause& par_errorCause); +inline PDU__SessionReactivationError& operator=(const PDU__SessionReactivationError& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDU__SessionReactivationError& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDU__SessionReactivationError& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline PDU__SessionReactivationError_errorCause& errorCause() + {return field_errorCause;} + inline const PDU__SessionReactivationError_errorCause& errorCause() const + {return field_errorCause;} +Base_Type* clone() const { return new PDU__SessionReactivationError(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDU__SessionReactivationError_template : public Record_Template { +void set_specific(); +public: +PDU__SessionReactivationError_template(): Record_Template() {} +PDU__SessionReactivationError_template(template_sel other_value): Record_Template(other_value) {} +PDU__SessionReactivationError_template(const PDU__SessionReactivationError& other_value): Record_Template() { copy_value(&other_value); } +PDU__SessionReactivationError_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDU__SessionReactivationError_template(PDU__SessionReactivationError_template* p_precondition, PDU__SessionReactivationError_template* p_implied_template); +PDU__SessionReactivationError_template(Dynamic_Match_Interface* p_dyn_match); +PDU__SessionReactivationError_template(const PDU__SessionReactivationError_template& other_value): Record_Template() { copy_template(other_value); } +~PDU__SessionReactivationError_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDU__SessionReactivationError_template& operator=(template_sel other_value); +PDU__SessionReactivationError_template& operator=(const PDU__SessionReactivationError& other_value); +PDU__SessionReactivationError_template& operator=(const OPTIONAL& other_value); +PDU__SessionReactivationError_template& operator=(const PDU__SessionReactivationError_template& other_value); +inline boolean match(const PDU__SessionReactivationError& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDU__SessionReactivationError& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDU__SessionReactivationError valueof() const; +inline PDU__SessionReactivationError_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +PDU__SessionReactivationError_errorCause_template& errorCause(); +const PDU__SessionReactivationError_errorCause_template& errorCause() const; +Record_Template* create() const { return new PDU__SessionReactivationError_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class LADN__Info_listOfLADN : public Record_Of_Type { + +static const ListOfLADN UNBOUND_ELEM; + +public: +LADN__Info_listOfLADN(): Record_Of_Type() {} +LADN__Info_listOfLADN(null_type other_value): Record_Of_Type(other_value) {} +LADN__Info_listOfLADN(const LADN__Info_listOfLADN& other_value): Record_Of_Type(other_value) {} +~LADN__Info_listOfLADN() { clean_up(); } + +inline LADN__Info_listOfLADN& operator=(null_type other_value) { set_val(other_value); return *this; } +inline LADN__Info_listOfLADN& operator=(const LADN__Info_listOfLADN& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LADN__Info_listOfLADN& other_value) const { return is_equal(&other_value); } +boolean operator!=(const LADN__Info_listOfLADN& other_value) const { return !is_equal(&other_value); } +ListOfLADN& operator[](int index_value); +ListOfLADN& operator[](const INTEGER& index_value); +const ListOfLADN& operator[](int index_value) const; +const ListOfLADN& operator[](const INTEGER& index_value) const; +LADN__Info_listOfLADN operator<<=(int rotate_count) const; +LADN__Info_listOfLADN operator<<=(const INTEGER& rotate_count) const; +LADN__Info_listOfLADN operator>>=(int rotate_count) const; +LADN__Info_listOfLADN operator>>=(const INTEGER& rotate_count) const; + +LADN__Info_listOfLADN operator+(const LADN__Info_listOfLADN& other_value) const; + +LADN__Info_listOfLADN operator+(const OPTIONAL& other_value) const; + +LADN__Info_listOfLADN operator+(null_type) const; + +LADN__Info_listOfLADN substr(int index, int returncount) const; + +LADN__Info_listOfLADN replace(int index, int len, const LADN__Info_listOfLADN& repl) const; + +LADN__Info_listOfLADN replace(int index, int len, const LADN__Info_listOfLADN_template& repl) const; + +Base_Type* clone() const { return new LADN__Info_listOfLADN(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class LADN__Info_listOfLADN_template : public Record_Of_Template { +friend LADN__Info_listOfLADN_template operator+(template_sel left_template, const LADN__Info_listOfLADN_template& right_template); +friend LADN__Info_listOfLADN_template operator+(const LADN__Info_listOfLADN& left_value, const LADN__Info_listOfLADN_template& right_template); +friend LADN__Info_listOfLADN_template operator+(template_sel left_template, const LADN__Info_listOfLADN& right_value); +friend LADN__Info_listOfLADN_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend LADN__Info_listOfLADN_template operator+(const LADN__Info_listOfLADN& left_value, template_sel right_template); + +public: +LADN__Info_listOfLADN_template() {} +LADN__Info_listOfLADN_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +LADN__Info_listOfLADN_template(null_type other_value); +LADN__Info_listOfLADN_template(const LADN__Info_listOfLADN& other_value) { copy_value(&other_value); } +LADN__Info_listOfLADN_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +LADN__Info_listOfLADN_template(LADN__Info_listOfLADN_template* p_precondition, LADN__Info_listOfLADN_template* p_implied_template); +LADN__Info_listOfLADN_template(Dynamic_Match_Interface* p_dyn_match); +LADN__Info_listOfLADN_template(const LADN__Info_listOfLADN_template& other_value): Record_Of_Template() { copy_template(other_value); } +~LADN__Info_listOfLADN_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LADN__Info_listOfLADN_template& operator=(template_sel other_value); +LADN__Info_listOfLADN_template& operator=(null_type other_value); +LADN__Info_listOfLADN_template& operator=(const LADN__Info_listOfLADN& other_value); +LADN__Info_listOfLADN_template& operator=(const OPTIONAL& other_value); +LADN__Info_listOfLADN_template& operator=(const LADN__Info_listOfLADN_template& other_value); + +LADN__Info_listOfLADN_template operator+(const LADN__Info_listOfLADN_template& other_value) const; +LADN__Info_listOfLADN_template operator+(const LADN__Info_listOfLADN& other_value) const; +LADN__Info_listOfLADN_template operator+(template_sel other_value) const; +LADN__Info_listOfLADN_template operator+(null_type) const; + +ListOfLADN_template& operator[](int index_value); +ListOfLADN_template& operator[](const INTEGER& index_value); +const ListOfLADN_template& operator[](int index_value) const; +const ListOfLADN_template& operator[](const INTEGER& index_value) const; +inline boolean match(const LADN__Info_listOfLADN& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +LADN__Info_listOfLADN valueof() const; +LADN__Info_listOfLADN substr(int index, int returncount) const; + +LADN__Info_listOfLADN replace(int index, int len, const LADN__Info_listOfLADN_template& repl) const; + +LADN__Info_listOfLADN replace(int index, int len, const LADN__Info_listOfLADN& repl) const; + +inline LADN__Info_listOfLADN_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const LADN__Info_listOfLADN& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new LADN__Info_listOfLADN_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class ListOfLADN_listOfPartialTais : public Record_Of_Type { + +static const NG__ListOfPartialTaiList UNBOUND_ELEM; + +public: +ListOfLADN_listOfPartialTais(): Record_Of_Type() {} +ListOfLADN_listOfPartialTais(null_type other_value): Record_Of_Type(other_value) {} +ListOfLADN_listOfPartialTais(const ListOfLADN_listOfPartialTais& other_value): Record_Of_Type(other_value) {} +~ListOfLADN_listOfPartialTais() { clean_up(); } + +inline ListOfLADN_listOfPartialTais& operator=(null_type other_value) { set_val(other_value); return *this; } +inline ListOfLADN_listOfPartialTais& operator=(const ListOfLADN_listOfPartialTais& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ListOfLADN_listOfPartialTais& other_value) const { return is_equal(&other_value); } +boolean operator!=(const ListOfLADN_listOfPartialTais& other_value) const { return !is_equal(&other_value); } +NG__ListOfPartialTaiList& operator[](int index_value); +NG__ListOfPartialTaiList& operator[](const INTEGER& index_value); +const NG__ListOfPartialTaiList& operator[](int index_value) const; +const NG__ListOfPartialTaiList& operator[](const INTEGER& index_value) const; +ListOfLADN_listOfPartialTais operator<<=(int rotate_count) const; +ListOfLADN_listOfPartialTais operator<<=(const INTEGER& rotate_count) const; +ListOfLADN_listOfPartialTais operator>>=(int rotate_count) const; +ListOfLADN_listOfPartialTais operator>>=(const INTEGER& rotate_count) const; + +ListOfLADN_listOfPartialTais operator+(const ListOfLADN_listOfPartialTais& other_value) const; + +ListOfLADN_listOfPartialTais operator+(const OPTIONAL& other_value) const; + +ListOfLADN_listOfPartialTais operator+(null_type) const; + +ListOfLADN_listOfPartialTais substr(int index, int returncount) const; + +ListOfLADN_listOfPartialTais replace(int index, int len, const ListOfLADN_listOfPartialTais& repl) const; + +ListOfLADN_listOfPartialTais replace(int index, int len, const ListOfLADN_listOfPartialTais_template& repl) const; + +Base_Type* clone() const { return new ListOfLADN_listOfPartialTais(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class ListOfLADN_listOfPartialTais_template : public Record_Of_Template { +friend ListOfLADN_listOfPartialTais_template operator+(template_sel left_template, const ListOfLADN_listOfPartialTais_template& right_template); +friend ListOfLADN_listOfPartialTais_template operator+(const ListOfLADN_listOfPartialTais& left_value, const ListOfLADN_listOfPartialTais_template& right_template); +friend ListOfLADN_listOfPartialTais_template operator+(template_sel left_template, const ListOfLADN_listOfPartialTais& right_value); +friend ListOfLADN_listOfPartialTais_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend ListOfLADN_listOfPartialTais_template operator+(const ListOfLADN_listOfPartialTais& left_value, template_sel right_template); + +public: +ListOfLADN_listOfPartialTais_template() {} +ListOfLADN_listOfPartialTais_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +ListOfLADN_listOfPartialTais_template(null_type other_value); +ListOfLADN_listOfPartialTais_template(const ListOfLADN_listOfPartialTais& other_value) { copy_value(&other_value); } +ListOfLADN_listOfPartialTais_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +ListOfLADN_listOfPartialTais_template(ListOfLADN_listOfPartialTais_template* p_precondition, ListOfLADN_listOfPartialTais_template* p_implied_template); +ListOfLADN_listOfPartialTais_template(Dynamic_Match_Interface* p_dyn_match); +ListOfLADN_listOfPartialTais_template(const ListOfLADN_listOfPartialTais_template& other_value): Record_Of_Template() { copy_template(other_value); } +~ListOfLADN_listOfPartialTais_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ListOfLADN_listOfPartialTais_template& operator=(template_sel other_value); +ListOfLADN_listOfPartialTais_template& operator=(null_type other_value); +ListOfLADN_listOfPartialTais_template& operator=(const ListOfLADN_listOfPartialTais& other_value); +ListOfLADN_listOfPartialTais_template& operator=(const OPTIONAL& other_value); +ListOfLADN_listOfPartialTais_template& operator=(const ListOfLADN_listOfPartialTais_template& other_value); + +ListOfLADN_listOfPartialTais_template operator+(const ListOfLADN_listOfPartialTais_template& other_value) const; +ListOfLADN_listOfPartialTais_template operator+(const ListOfLADN_listOfPartialTais& other_value) const; +ListOfLADN_listOfPartialTais_template operator+(template_sel other_value) const; +ListOfLADN_listOfPartialTais_template operator+(null_type) const; + +NG__ListOfPartialTaiList_template& operator[](int index_value); +NG__ListOfPartialTaiList_template& operator[](const INTEGER& index_value); +const NG__ListOfPartialTaiList_template& operator[](int index_value) const; +const NG__ListOfPartialTaiList_template& operator[](const INTEGER& index_value) const; +inline boolean match(const ListOfLADN_listOfPartialTais& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +ListOfLADN_listOfPartialTais valueof() const; +ListOfLADN_listOfPartialTais substr(int index, int returncount) const; + +ListOfLADN_listOfPartialTais replace(int index, int len, const ListOfLADN_listOfPartialTais_template& repl) const; + +ListOfLADN_listOfPartialTais replace(int index, int len, const ListOfLADN_listOfPartialTais& repl) const; + +inline ListOfLADN_listOfPartialTais_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const ListOfLADN_listOfPartialTais& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new ListOfLADN_listOfPartialTais_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class ListOfLADN : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_dnnLength; + OCTETSTRING field_dnnValue; + ListOfLADN_listOfPartialTais field_listOfPartialTais; + Base_Type* fld_vec[4]; + void init_vec(); +public: + ListOfLADN(); + ListOfLADN(const ListOfLADN& other_value); + ListOfLADN(const OPTIONAL& par_iei, + const OCTETSTRING& par_dnnLength, + const OCTETSTRING& par_dnnValue, + const ListOfLADN_listOfPartialTais& par_listOfPartialTais); +inline ListOfLADN& operator=(const ListOfLADN& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ListOfLADN& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ListOfLADN& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& dnnLength() + {return field_dnnLength;} + inline const OCTETSTRING& dnnLength() const + {return field_dnnLength;} + inline OCTETSTRING& dnnValue() + {return field_dnnValue;} + inline const OCTETSTRING& dnnValue() const + {return field_dnnValue;} + inline ListOfLADN_listOfPartialTais& listOfPartialTais() + {return field_listOfPartialTais;} + inline const ListOfLADN_listOfPartialTais& listOfPartialTais() const + {return field_listOfPartialTais;} +Base_Type* clone() const { return new ListOfLADN(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ListOfLADN_template : public Record_Template { +void set_specific(); +public: +ListOfLADN_template(): Record_Template() {} +ListOfLADN_template(template_sel other_value): Record_Template(other_value) {} +ListOfLADN_template(const ListOfLADN& other_value): Record_Template() { copy_value(&other_value); } +ListOfLADN_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ListOfLADN_template(ListOfLADN_template* p_precondition, ListOfLADN_template* p_implied_template); +ListOfLADN_template(Dynamic_Match_Interface* p_dyn_match); +ListOfLADN_template(const ListOfLADN_template& other_value): Record_Template() { copy_template(other_value); } +~ListOfLADN_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ListOfLADN_template& operator=(template_sel other_value); +ListOfLADN_template& operator=(const ListOfLADN& other_value); +ListOfLADN_template& operator=(const OPTIONAL& other_value); +ListOfLADN_template& operator=(const ListOfLADN_template& other_value); +inline boolean match(const ListOfLADN& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ListOfLADN& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ListOfLADN valueof() const; +inline ListOfLADN_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& dnnLength(); +const OCTETSTRING_template& dnnLength() const; +OCTETSTRING_template& dnnValue(); +const OCTETSTRING_template& dnnValue() const; +ListOfLADN_listOfPartialTais_template& listOfPartialTais(); +const ListOfLADN_listOfPartialTais_template& listOfPartialTais() const; +Record_Template* create() const { return new ListOfLADN_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class LADN__Info : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + LADN__Info_listOfLADN field_listOfLADN; + Base_Type* fld_vec[3]; + void init_vec(); +public: + LADN__Info(); + LADN__Info(const LADN__Info& other_value); + LADN__Info(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const LADN__Info_listOfLADN& par_listOfLADN); +inline LADN__Info& operator=(const LADN__Info& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const LADN__Info& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const LADN__Info& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline LADN__Info_listOfLADN& listOfLADN() + {return field_listOfLADN;} + inline const LADN__Info_listOfLADN& listOfLADN() const + {return field_listOfLADN;} +Base_Type* clone() const { return new LADN__Info(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class LADN__Info_template : public Record_Template { +void set_specific(); +public: +LADN__Info_template(): Record_Template() {} +LADN__Info_template(template_sel other_value): Record_Template(other_value) {} +LADN__Info_template(const LADN__Info& other_value): Record_Template() { copy_value(&other_value); } +LADN__Info_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +LADN__Info_template(LADN__Info_template* p_precondition, LADN__Info_template* p_implied_template); +LADN__Info_template(Dynamic_Match_Interface* p_dyn_match); +LADN__Info_template(const LADN__Info_template& other_value): Record_Template() { copy_template(other_value); } +~LADN__Info_template(); +boolean match_dynamic(const Base_Type* match_value) const; +LADN__Info_template& operator=(template_sel other_value); +LADN__Info_template& operator=(const LADN__Info& other_value); +LADN__Info_template& operator=(const OPTIONAL& other_value); +LADN__Info_template& operator=(const LADN__Info_template& other_value); +inline boolean match(const LADN__Info& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const LADN__Info& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +LADN__Info valueof() const; +inline LADN__Info_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +LADN__Info_listOfLADN_template& listOfLADN(); +const LADN__Info_listOfLADN_template& listOfLADN() const; +Record_Template* create() const { return new LADN__Info_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SOR__Header : public Record_Type { + BITSTRING field_spare; + BITSTRING field_ap; + BITSTRING field_ack; + BITSTRING field_listType__MSSNPNSI; + BITSTRING field_listInd__MSSI; + BITSTRING field_dataType; + Base_Type* fld_vec[6]; + void init_vec(); +public: + SOR__Header(); + SOR__Header(const SOR__Header& other_value); + SOR__Header(const BITSTRING& par_spare, + const BITSTRING& par_ap, + const BITSTRING& par_ack, + const BITSTRING& par_listType__MSSNPNSI, + const BITSTRING& par_listInd__MSSI, + const BITSTRING& par_dataType); +inline SOR__Header& operator=(const SOR__Header& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SOR__Header& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SOR__Header& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& ap() + {return field_ap;} + inline const BITSTRING& ap() const + {return field_ap;} + inline BITSTRING& ack() + {return field_ack;} + inline const BITSTRING& ack() const + {return field_ack;} + inline BITSTRING& listType__MSSNPNSI() + {return field_listType__MSSNPNSI;} + inline const BITSTRING& listType__MSSNPNSI() const + {return field_listType__MSSNPNSI;} + inline BITSTRING& listInd__MSSI() + {return field_listInd__MSSI;} + inline const BITSTRING& listInd__MSSI() const + {return field_listInd__MSSI;} + inline BITSTRING& dataType() + {return field_dataType;} + inline const BITSTRING& dataType() const + {return field_dataType;} +Base_Type* clone() const { return new SOR__Header(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SOR__Header_template : public Record_Template { +void set_specific(); +public: +SOR__Header_template(): Record_Template() {} +SOR__Header_template(template_sel other_value): Record_Template(other_value) {} +SOR__Header_template(const SOR__Header& other_value): Record_Template() { copy_value(&other_value); } +SOR__Header_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SOR__Header_template(SOR__Header_template* p_precondition, SOR__Header_template* p_implied_template); +SOR__Header_template(Dynamic_Match_Interface* p_dyn_match); +SOR__Header_template(const SOR__Header_template& other_value): Record_Template() { copy_template(other_value); } +~SOR__Header_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SOR__Header_template& operator=(template_sel other_value); +SOR__Header_template& operator=(const SOR__Header& other_value); +SOR__Header_template& operator=(const OPTIONAL& other_value); +SOR__Header_template& operator=(const SOR__Header_template& other_value); +inline boolean match(const SOR__Header& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SOR__Header& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SOR__Header valueof() const; +inline SOR__Header_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& ap(); +const BITSTRING_template& ap() const; +BITSTRING_template& ack(); +const BITSTRING_template& ack() const; +BITSTRING_template& listType__MSSNPNSI(); +const BITSTRING_template& listType__MSSNPNSI() const; +BITSTRING_template& listInd__MSSI(); +const BITSTRING_template& listInd__MSSI() const; +BITSTRING_template& dataType(); +const BITSTRING_template& dataType() const; +Record_Template* create() const { return new SOR__Header_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SORTransparentContainer : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + SOR__Header field_header; + OCTETSTRING field_mac; + OPTIONAL field_counter; + OPTIONAL field_data; + Base_Type* fld_vec[6]; + void init_vec(); +public: + SORTransparentContainer(); + SORTransparentContainer(const SORTransparentContainer& other_value); + SORTransparentContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const SOR__Header& par_header, + const OCTETSTRING& par_mac, + const OPTIONAL& par_counter, + const OPTIONAL& par_data); +inline SORTransparentContainer& operator=(const SORTransparentContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SORTransparentContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SORTransparentContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline SOR__Header& header() + {return field_header;} + inline const SOR__Header& header() const + {return field_header;} + inline OCTETSTRING& mac() + {return field_mac;} + inline const OCTETSTRING& mac() const + {return field_mac;} + inline OPTIONAL& counter() + {return field_counter;} + inline const OPTIONAL& counter() const + {return field_counter;} + inline OPTIONAL& data() + {return field_data;} + inline const OPTIONAL& data() const + {return field_data;} +Base_Type* clone() const { return new SORTransparentContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SORTransparentContainer_template : public Record_Template { +void set_specific(); +public: +SORTransparentContainer_template(): Record_Template() {} +SORTransparentContainer_template(template_sel other_value): Record_Template(other_value) {} +SORTransparentContainer_template(const SORTransparentContainer& other_value): Record_Template() { copy_value(&other_value); } +SORTransparentContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SORTransparentContainer_template(SORTransparentContainer_template* p_precondition, SORTransparentContainer_template* p_implied_template); +SORTransparentContainer_template(Dynamic_Match_Interface* p_dyn_match); +SORTransparentContainer_template(const SORTransparentContainer_template& other_value): Record_Template() { copy_template(other_value); } +~SORTransparentContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SORTransparentContainer_template& operator=(template_sel other_value); +SORTransparentContainer_template& operator=(const SORTransparentContainer& other_value); +SORTransparentContainer_template& operator=(const OPTIONAL& other_value); +SORTransparentContainer_template& operator=(const SORTransparentContainer_template& other_value); +inline boolean match(const SORTransparentContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SORTransparentContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SORTransparentContainer valueof() const; +inline SORTransparentContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +SOR__Header_template& header(); +const SOR__Header_template& header() const; +OCTETSTRING_template& mac(); +const OCTETSTRING_template& mac() const; +OCTETSTRING_template& counter(); +const OCTETSTRING_template& counter() const; +OCTETSTRING_template& data(); +const OCTETSTRING_template& data() const; +Record_Template* create() const { return new SORTransparentContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class InclusionModeNSSAI : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_inclusionMode; + Base_Type* fld_vec[3]; + void init_vec(); +public: + InclusionModeNSSAI(); + InclusionModeNSSAI(const InclusionModeNSSAI& other_value); + InclusionModeNSSAI(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_inclusionMode); +inline InclusionModeNSSAI& operator=(const InclusionModeNSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const InclusionModeNSSAI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const InclusionModeNSSAI& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& inclusionMode() + {return field_inclusionMode;} + inline const BITSTRING& inclusionMode() const + {return field_inclusionMode;} +Base_Type* clone() const { return new InclusionModeNSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class InclusionModeNSSAI_template : public Record_Template { +void set_specific(); +public: +InclusionModeNSSAI_template(): Record_Template() {} +InclusionModeNSSAI_template(template_sel other_value): Record_Template(other_value) {} +InclusionModeNSSAI_template(const InclusionModeNSSAI& other_value): Record_Template() { copy_value(&other_value); } +InclusionModeNSSAI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +InclusionModeNSSAI_template(InclusionModeNSSAI_template* p_precondition, InclusionModeNSSAI_template* p_implied_template); +InclusionModeNSSAI_template(Dynamic_Match_Interface* p_dyn_match); +InclusionModeNSSAI_template(const InclusionModeNSSAI_template& other_value): Record_Template() { copy_template(other_value); } +~InclusionModeNSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +InclusionModeNSSAI_template& operator=(template_sel other_value); +InclusionModeNSSAI_template& operator=(const InclusionModeNSSAI& other_value); +InclusionModeNSSAI_template& operator=(const OPTIONAL& other_value); +InclusionModeNSSAI_template& operator=(const InclusionModeNSSAI_template& other_value); +inline boolean match(const InclusionModeNSSAI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const InclusionModeNSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +InclusionModeNSSAI valueof() const; +inline InclusionModeNSSAI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& inclusionMode(); +const BITSTRING_template& inclusionMode() const; +Record_Template* create() const { return new InclusionModeNSSAI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class OperatorAccessCatDefinitions_definitions : public Record_Of_Type { + +static const AccessCatDefinition UNBOUND_ELEM; + +public: +OperatorAccessCatDefinitions_definitions(): Record_Of_Type() {} +OperatorAccessCatDefinitions_definitions(null_type other_value): Record_Of_Type(other_value) {} +OperatorAccessCatDefinitions_definitions(const OperatorAccessCatDefinitions_definitions& other_value): Record_Of_Type(other_value) {} +~OperatorAccessCatDefinitions_definitions() { clean_up(); } + +inline OperatorAccessCatDefinitions_definitions& operator=(null_type other_value) { set_val(other_value); return *this; } +inline OperatorAccessCatDefinitions_definitions& operator=(const OperatorAccessCatDefinitions_definitions& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const OperatorAccessCatDefinitions_definitions& other_value) const { return is_equal(&other_value); } +boolean operator!=(const OperatorAccessCatDefinitions_definitions& other_value) const { return !is_equal(&other_value); } +AccessCatDefinition& operator[](int index_value); +AccessCatDefinition& operator[](const INTEGER& index_value); +const AccessCatDefinition& operator[](int index_value) const; +const AccessCatDefinition& operator[](const INTEGER& index_value) const; +OperatorAccessCatDefinitions_definitions operator<<=(int rotate_count) const; +OperatorAccessCatDefinitions_definitions operator<<=(const INTEGER& rotate_count) const; +OperatorAccessCatDefinitions_definitions operator>>=(int rotate_count) const; +OperatorAccessCatDefinitions_definitions operator>>=(const INTEGER& rotate_count) const; + +OperatorAccessCatDefinitions_definitions operator+(const OperatorAccessCatDefinitions_definitions& other_value) const; + +OperatorAccessCatDefinitions_definitions operator+(const OPTIONAL& other_value) const; + +OperatorAccessCatDefinitions_definitions operator+(null_type) const; + +OperatorAccessCatDefinitions_definitions substr(int index, int returncount) const; + +OperatorAccessCatDefinitions_definitions replace(int index, int len, const OperatorAccessCatDefinitions_definitions& repl) const; + +OperatorAccessCatDefinitions_definitions replace(int index, int len, const OperatorAccessCatDefinitions_definitions_template& repl) const; + +Base_Type* clone() const { return new OperatorAccessCatDefinitions_definitions(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class OperatorAccessCatDefinitions_definitions_template : public Record_Of_Template { +friend OperatorAccessCatDefinitions_definitions_template operator+(template_sel left_template, const OperatorAccessCatDefinitions_definitions_template& right_template); +friend OperatorAccessCatDefinitions_definitions_template operator+(const OperatorAccessCatDefinitions_definitions& left_value, const OperatorAccessCatDefinitions_definitions_template& right_template); +friend OperatorAccessCatDefinitions_definitions_template operator+(template_sel left_template, const OperatorAccessCatDefinitions_definitions& right_value); +friend OperatorAccessCatDefinitions_definitions_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend OperatorAccessCatDefinitions_definitions_template operator+(const OperatorAccessCatDefinitions_definitions& left_value, template_sel right_template); + +public: +OperatorAccessCatDefinitions_definitions_template() {} +OperatorAccessCatDefinitions_definitions_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +OperatorAccessCatDefinitions_definitions_template(null_type other_value); +OperatorAccessCatDefinitions_definitions_template(const OperatorAccessCatDefinitions_definitions& other_value) { copy_value(&other_value); } +OperatorAccessCatDefinitions_definitions_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +OperatorAccessCatDefinitions_definitions_template(OperatorAccessCatDefinitions_definitions_template* p_precondition, OperatorAccessCatDefinitions_definitions_template* p_implied_template); +OperatorAccessCatDefinitions_definitions_template(Dynamic_Match_Interface* p_dyn_match); +OperatorAccessCatDefinitions_definitions_template(const OperatorAccessCatDefinitions_definitions_template& other_value): Record_Of_Template() { copy_template(other_value); } +~OperatorAccessCatDefinitions_definitions_template(); +boolean match_dynamic(const Base_Type* match_value) const; +OperatorAccessCatDefinitions_definitions_template& operator=(template_sel other_value); +OperatorAccessCatDefinitions_definitions_template& operator=(null_type other_value); +OperatorAccessCatDefinitions_definitions_template& operator=(const OperatorAccessCatDefinitions_definitions& other_value); +OperatorAccessCatDefinitions_definitions_template& operator=(const OPTIONAL& other_value); +OperatorAccessCatDefinitions_definitions_template& operator=(const OperatorAccessCatDefinitions_definitions_template& other_value); + +OperatorAccessCatDefinitions_definitions_template operator+(const OperatorAccessCatDefinitions_definitions_template& other_value) const; +OperatorAccessCatDefinitions_definitions_template operator+(const OperatorAccessCatDefinitions_definitions& other_value) const; +OperatorAccessCatDefinitions_definitions_template operator+(template_sel other_value) const; +OperatorAccessCatDefinitions_definitions_template operator+(null_type) const; + +AccessCatDefinition_template& operator[](int index_value); +AccessCatDefinition_template& operator[](const INTEGER& index_value); +const AccessCatDefinition_template& operator[](int index_value) const; +const AccessCatDefinition_template& operator[](const INTEGER& index_value) const; +inline boolean match(const OperatorAccessCatDefinitions_definitions& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +OperatorAccessCatDefinitions_definitions valueof() const; +OperatorAccessCatDefinitions_definitions substr(int index, int returncount) const; + +OperatorAccessCatDefinitions_definitions replace(int index, int len, const OperatorAccessCatDefinitions_definitions_template& repl) const; + +OperatorAccessCatDefinitions_definitions replace(int index, int len, const OperatorAccessCatDefinitions_definitions& repl) const; + +inline OperatorAccessCatDefinitions_definitions_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const OperatorAccessCatDefinitions_definitions& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new OperatorAccessCatDefinitions_definitions_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class AccessCatDefinition : public Record_Type { + OCTETSTRING field_iel; + OCTETSTRING field_precendence; + BITSTRING field_psac; + BITSTRING field_spare2; + BITSTRING field_catNum; + OCTETSTRING field_criteriaLength; + OCTETSTRING field_criteria; + OPTIONAL field_spare3; + OPTIONAL field_standardAccessCat; + Base_Type* fld_vec[9]; + void init_vec(); +public: + AccessCatDefinition(); + AccessCatDefinition(const AccessCatDefinition& other_value); + AccessCatDefinition(const OCTETSTRING& par_iel, + const OCTETSTRING& par_precendence, + const BITSTRING& par_psac, + const BITSTRING& par_spare2, + const BITSTRING& par_catNum, + const OCTETSTRING& par_criteriaLength, + const OCTETSTRING& par_criteria, + const OPTIONAL& par_spare3, + const OPTIONAL& par_standardAccessCat); +inline AccessCatDefinition& operator=(const AccessCatDefinition& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AccessCatDefinition& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AccessCatDefinition& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& precendence() + {return field_precendence;} + inline const OCTETSTRING& precendence() const + {return field_precendence;} + inline BITSTRING& psac() + {return field_psac;} + inline const BITSTRING& psac() const + {return field_psac;} + inline BITSTRING& spare2() + {return field_spare2;} + inline const BITSTRING& spare2() const + {return field_spare2;} + inline BITSTRING& catNum() + {return field_catNum;} + inline const BITSTRING& catNum() const + {return field_catNum;} + inline OCTETSTRING& criteriaLength() + {return field_criteriaLength;} + inline const OCTETSTRING& criteriaLength() const + {return field_criteriaLength;} + inline OCTETSTRING& criteria() + {return field_criteria;} + inline const OCTETSTRING& criteria() const + {return field_criteria;} + inline OPTIONAL& spare3() + {return field_spare3;} + inline const OPTIONAL& spare3() const + {return field_spare3;} + inline OPTIONAL& standardAccessCat() + {return field_standardAccessCat;} + inline const OPTIONAL& standardAccessCat() const + {return field_standardAccessCat;} +Base_Type* clone() const { return new AccessCatDefinition(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 9; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AccessCatDefinition_template : public Record_Template { +void set_specific(); +public: +AccessCatDefinition_template(): Record_Template() {} +AccessCatDefinition_template(template_sel other_value): Record_Template(other_value) {} +AccessCatDefinition_template(const AccessCatDefinition& other_value): Record_Template() { copy_value(&other_value); } +AccessCatDefinition_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AccessCatDefinition_template(AccessCatDefinition_template* p_precondition, AccessCatDefinition_template* p_implied_template); +AccessCatDefinition_template(Dynamic_Match_Interface* p_dyn_match); +AccessCatDefinition_template(const AccessCatDefinition_template& other_value): Record_Template() { copy_template(other_value); } +~AccessCatDefinition_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AccessCatDefinition_template& operator=(template_sel other_value); +AccessCatDefinition_template& operator=(const AccessCatDefinition& other_value); +AccessCatDefinition_template& operator=(const OPTIONAL& other_value); +AccessCatDefinition_template& operator=(const AccessCatDefinition_template& other_value); +inline boolean match(const AccessCatDefinition& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AccessCatDefinition& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AccessCatDefinition valueof() const; +inline AccessCatDefinition_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& precendence(); +const OCTETSTRING_template& precendence() const; +BITSTRING_template& psac(); +const BITSTRING_template& psac() const; +BITSTRING_template& spare2(); +const BITSTRING_template& spare2() const; +BITSTRING_template& catNum(); +const BITSTRING_template& catNum() const; +OCTETSTRING_template& criteriaLength(); +const OCTETSTRING_template& criteriaLength() const; +OCTETSTRING_template& criteria(); +const OCTETSTRING_template& criteria() const; +BITSTRING_template& spare3(); +const BITSTRING_template& spare3() const; +BITSTRING_template& standardAccessCat(); +const BITSTRING_template& standardAccessCat() const; +Record_Template* create() const { return new AccessCatDefinition_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class OperatorAccessCatDefinitions : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OperatorAccessCatDefinitions_definitions field_definitions; + Base_Type* fld_vec[3]; + void init_vec(); +public: + OperatorAccessCatDefinitions(); + OperatorAccessCatDefinitions(const OperatorAccessCatDefinitions& other_value); + OperatorAccessCatDefinitions(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OperatorAccessCatDefinitions_definitions& par_definitions); +inline OperatorAccessCatDefinitions& operator=(const OperatorAccessCatDefinitions& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const OperatorAccessCatDefinitions& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const OperatorAccessCatDefinitions& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OperatorAccessCatDefinitions_definitions& definitions() + {return field_definitions;} + inline const OperatorAccessCatDefinitions_definitions& definitions() const + {return field_definitions;} +Base_Type* clone() const { return new OperatorAccessCatDefinitions(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class OperatorAccessCatDefinitions_template : public Record_Template { +void set_specific(); +public: +OperatorAccessCatDefinitions_template(): Record_Template() {} +OperatorAccessCatDefinitions_template(template_sel other_value): Record_Template(other_value) {} +OperatorAccessCatDefinitions_template(const OperatorAccessCatDefinitions& other_value): Record_Template() { copy_value(&other_value); } +OperatorAccessCatDefinitions_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +OperatorAccessCatDefinitions_template(OperatorAccessCatDefinitions_template* p_precondition, OperatorAccessCatDefinitions_template* p_implied_template); +OperatorAccessCatDefinitions_template(Dynamic_Match_Interface* p_dyn_match); +OperatorAccessCatDefinitions_template(const OperatorAccessCatDefinitions_template& other_value): Record_Template() { copy_template(other_value); } +~OperatorAccessCatDefinitions_template(); +boolean match_dynamic(const Base_Type* match_value) const; +OperatorAccessCatDefinitions_template& operator=(template_sel other_value); +OperatorAccessCatDefinitions_template& operator=(const OperatorAccessCatDefinitions& other_value); +OperatorAccessCatDefinitions_template& operator=(const OPTIONAL& other_value); +OperatorAccessCatDefinitions_template& operator=(const OperatorAccessCatDefinitions_template& other_value); +inline boolean match(const OperatorAccessCatDefinitions& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const OperatorAccessCatDefinitions& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +OperatorAccessCatDefinitions valueof() const; +inline OperatorAccessCatDefinitions_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OperatorAccessCatDefinitions_definitions_template& definitions(); +const OperatorAccessCatDefinitions_definitions_template& definitions() const; +Record_Template* create() const { return new OperatorAccessCatDefinitions_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__CipheringKeyData : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OPTIONAL field_listOfCipherKeyData; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NG__CipheringKeyData(); + NG__CipheringKeyData(const NG__CipheringKeyData& other_value); + NG__CipheringKeyData(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_listOfCipherKeyData); +inline NG__CipheringKeyData& operator=(const NG__CipheringKeyData& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__CipheringKeyData& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__CipheringKeyData& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OPTIONAL& listOfCipherKeyData() + {return field_listOfCipherKeyData;} + inline const OPTIONAL& listOfCipherKeyData() const + {return field_listOfCipherKeyData;} +Base_Type* clone() const { return new NG__CipheringKeyData(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__CipheringKeyData_template : public Record_Template { +void set_specific(); +public: +NG__CipheringKeyData_template(): Record_Template() {} +NG__CipheringKeyData_template(template_sel other_value): Record_Template(other_value) {} +NG__CipheringKeyData_template(const NG__CipheringKeyData& other_value): Record_Template() { copy_value(&other_value); } +NG__CipheringKeyData_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__CipheringKeyData_template(NG__CipheringKeyData_template* p_precondition, NG__CipheringKeyData_template* p_implied_template); +NG__CipheringKeyData_template(Dynamic_Match_Interface* p_dyn_match); +NG__CipheringKeyData_template(const NG__CipheringKeyData_template& other_value): Record_Template() { copy_template(other_value); } +~NG__CipheringKeyData_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__CipheringKeyData_template& operator=(template_sel other_value); +NG__CipheringKeyData_template& operator=(const NG__CipheringKeyData& other_value); +NG__CipheringKeyData_template& operator=(const OPTIONAL& other_value); +NG__CipheringKeyData_template& operator=(const NG__CipheringKeyData_template& other_value); +inline boolean match(const NG__CipheringKeyData& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__CipheringKeyData& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__CipheringKeyData valueof() const; +inline NG__CipheringKeyData_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +NG__CipheringKeyData_listOfCipherKeyData_template& listOfCipherKeyData(); +const NG__CipheringKeyData_listOfCipherKeyData_template& listOfCipherKeyData() const; +Record_Template* create() const { return new NG__CipheringKeyData_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__CipheringKeyData_listOfCipherKeyData : public Record_Of_Type { + +static const NG__CipherDataSet UNBOUND_ELEM; + +public: +NG__CipheringKeyData_listOfCipherKeyData(): Record_Of_Type() {} +NG__CipheringKeyData_listOfCipherKeyData(null_type other_value): Record_Of_Type(other_value) {} +NG__CipheringKeyData_listOfCipherKeyData(const NG__CipheringKeyData_listOfCipherKeyData& other_value): Record_Of_Type(other_value) {} +~NG__CipheringKeyData_listOfCipherKeyData() { clean_up(); } + +inline NG__CipheringKeyData_listOfCipherKeyData& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__CipheringKeyData_listOfCipherKeyData& operator=(const NG__CipheringKeyData_listOfCipherKeyData& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__CipheringKeyData_listOfCipherKeyData& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__CipheringKeyData_listOfCipherKeyData& other_value) const { return !is_equal(&other_value); } +NG__CipherDataSet& operator[](int index_value); +NG__CipherDataSet& operator[](const INTEGER& index_value); +const NG__CipherDataSet& operator[](int index_value) const; +const NG__CipherDataSet& operator[](const INTEGER& index_value) const; +NG__CipheringKeyData_listOfCipherKeyData operator<<=(int rotate_count) const; +NG__CipheringKeyData_listOfCipherKeyData operator<<=(const INTEGER& rotate_count) const; +NG__CipheringKeyData_listOfCipherKeyData operator>>=(int rotate_count) const; +NG__CipheringKeyData_listOfCipherKeyData operator>>=(const INTEGER& rotate_count) const; + +NG__CipheringKeyData_listOfCipherKeyData operator+(const NG__CipheringKeyData_listOfCipherKeyData& other_value) const; + +NG__CipheringKeyData_listOfCipherKeyData operator+(const OPTIONAL& other_value) const; + +NG__CipheringKeyData_listOfCipherKeyData operator+(null_type) const; + +NG__CipheringKeyData_listOfCipherKeyData substr(int index, int returncount) const; + +NG__CipheringKeyData_listOfCipherKeyData replace(int index, int len, const NG__CipheringKeyData_listOfCipherKeyData& repl) const; + +NG__CipheringKeyData_listOfCipherKeyData replace(int index, int len, const NG__CipheringKeyData_listOfCipherKeyData_template& repl) const; + +Base_Type* clone() const { return new NG__CipheringKeyData_listOfCipherKeyData(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__CipheringKeyData_listOfCipherKeyData_template : public Record_Of_Template { +friend NG__CipheringKeyData_listOfCipherKeyData_template operator+(template_sel left_template, const NG__CipheringKeyData_listOfCipherKeyData_template& right_template); +friend NG__CipheringKeyData_listOfCipherKeyData_template operator+(const NG__CipheringKeyData_listOfCipherKeyData& left_value, const NG__CipheringKeyData_listOfCipherKeyData_template& right_template); +friend NG__CipheringKeyData_listOfCipherKeyData_template operator+(template_sel left_template, const NG__CipheringKeyData_listOfCipherKeyData& right_value); +friend NG__CipheringKeyData_listOfCipherKeyData_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__CipheringKeyData_listOfCipherKeyData_template operator+(const NG__CipheringKeyData_listOfCipherKeyData& left_value, template_sel right_template); + +public: +NG__CipheringKeyData_listOfCipherKeyData_template() {} +NG__CipheringKeyData_listOfCipherKeyData_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__CipheringKeyData_listOfCipherKeyData_template(null_type other_value); +NG__CipheringKeyData_listOfCipherKeyData_template(const NG__CipheringKeyData_listOfCipherKeyData& other_value) { copy_value(&other_value); } +NG__CipheringKeyData_listOfCipherKeyData_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__CipheringKeyData_listOfCipherKeyData_template(NG__CipheringKeyData_listOfCipherKeyData_template* p_precondition, NG__CipheringKeyData_listOfCipherKeyData_template* p_implied_template); +NG__CipheringKeyData_listOfCipherKeyData_template(Dynamic_Match_Interface* p_dyn_match); +NG__CipheringKeyData_listOfCipherKeyData_template(const NG__CipheringKeyData_listOfCipherKeyData_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__CipheringKeyData_listOfCipherKeyData_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__CipheringKeyData_listOfCipherKeyData_template& operator=(template_sel other_value); +NG__CipheringKeyData_listOfCipherKeyData_template& operator=(null_type other_value); +NG__CipheringKeyData_listOfCipherKeyData_template& operator=(const NG__CipheringKeyData_listOfCipherKeyData& other_value); +NG__CipheringKeyData_listOfCipherKeyData_template& operator=(const OPTIONAL& other_value); +NG__CipheringKeyData_listOfCipherKeyData_template& operator=(const NG__CipheringKeyData_listOfCipherKeyData_template& other_value); + +NG__CipheringKeyData_listOfCipherKeyData_template operator+(const NG__CipheringKeyData_listOfCipherKeyData_template& other_value) const; +NG__CipheringKeyData_listOfCipherKeyData_template operator+(const NG__CipheringKeyData_listOfCipherKeyData& other_value) const; +NG__CipheringKeyData_listOfCipherKeyData_template operator+(template_sel other_value) const; +NG__CipheringKeyData_listOfCipherKeyData_template operator+(null_type) const; + +NG__CipherDataSet_template& operator[](int index_value); +NG__CipherDataSet_template& operator[](const INTEGER& index_value); +const NG__CipherDataSet_template& operator[](int index_value) const; +const NG__CipherDataSet_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__CipheringKeyData_listOfCipherKeyData& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__CipheringKeyData_listOfCipherKeyData valueof() const; +NG__CipheringKeyData_listOfCipherKeyData substr(int index, int returncount) const; + +NG__CipheringKeyData_listOfCipherKeyData replace(int index, int len, const NG__CipheringKeyData_listOfCipherKeyData_template& repl) const; + +NG__CipheringKeyData_listOfCipherKeyData replace(int index, int len, const NG__CipheringKeyData_listOfCipherKeyData& repl) const; + +inline NG__CipheringKeyData_listOfCipherKeyData_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__CipheringKeyData_listOfCipherKeyData& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__CipheringKeyData_listOfCipherKeyData_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__CipherDataSet : public Record_Type { + OCTETSTRING field_id; + OCTETSTRING field_key; + BITSTRING field_spareBits; + BITSTRING field_c0Length; + OCTETSTRING field_c0; + BITSTRING field_eSpareBits; + BITSTRING field_eSIBLength; + OPTIONAL field_eposSIB1; + OPTIONAL field_eposSIB2__O1; + OPTIONAL field_eposSIB2__O2; + OPTIONAL field_eposSIB2__O3; + OPTIONAL field_eposSIB2__SIB5; + BITSTRING field_nSpareBits; + BITSTRING field_nSIBLength; + OPTIONAL field_nposSIB1; + OPTIONAL field_nposSIB2__O1; + OPTIONAL field_nposSIB2__O2; + OPTIONAL field_nposSIB2__SIB3; + OPTIONAL field_nposSIB4__SIB6; + OCTETSTRING field_validityStartTime; + OCTETSTRING field_validityDuration; + OCTETSTRING field_taiLength; + OPTIONAL field_listOfPartialTais; + Base_Type* fld_vec[23]; + void init_vec(); +public: + NG__CipherDataSet(); + NG__CipherDataSet(const NG__CipherDataSet& other_value); + NG__CipherDataSet(const OCTETSTRING& par_id, + const OCTETSTRING& par_key, + const BITSTRING& par_spareBits, + const BITSTRING& par_c0Length, + const OCTETSTRING& par_c0, + const BITSTRING& par_eSpareBits, + const BITSTRING& par_eSIBLength, + const OPTIONAL& par_eposSIB1, + const OPTIONAL& par_eposSIB2__O1, + const OPTIONAL& par_eposSIB2__O2, + const OPTIONAL& par_eposSIB2__O3, + const OPTIONAL& par_eposSIB2__SIB5, + const BITSTRING& par_nSpareBits, + const BITSTRING& par_nSIBLength, + const OPTIONAL& par_nposSIB1, + const OPTIONAL& par_nposSIB2__O1, + const OPTIONAL& par_nposSIB2__O2, + const OPTIONAL& par_nposSIB2__SIB3, + const OPTIONAL& par_nposSIB4__SIB6, + const OCTETSTRING& par_validityStartTime, + const OCTETSTRING& par_validityDuration, + const OCTETSTRING& par_taiLength, + const OPTIONAL& par_listOfPartialTais); +inline NG__CipherDataSet& operator=(const NG__CipherDataSet& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__CipherDataSet& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__CipherDataSet& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline OCTETSTRING& key() + {return field_key;} + inline const OCTETSTRING& key() const + {return field_key;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& c0Length() + {return field_c0Length;} + inline const BITSTRING& c0Length() const + {return field_c0Length;} + inline OCTETSTRING& c0() + {return field_c0;} + inline const OCTETSTRING& c0() const + {return field_c0;} + inline BITSTRING& eSpareBits() + {return field_eSpareBits;} + inline const BITSTRING& eSpareBits() const + {return field_eSpareBits;} + inline BITSTRING& eSIBLength() + {return field_eSIBLength;} + inline const BITSTRING& eSIBLength() const + {return field_eSIBLength;} + inline OPTIONAL& eposSIB1() + {return field_eposSIB1;} + inline const OPTIONAL& eposSIB1() const + {return field_eposSIB1;} + inline OPTIONAL& eposSIB2__O1() + {return field_eposSIB2__O1;} + inline const OPTIONAL& eposSIB2__O1() const + {return field_eposSIB2__O1;} + inline OPTIONAL& eposSIB2__O2() + {return field_eposSIB2__O2;} + inline const OPTIONAL& eposSIB2__O2() const + {return field_eposSIB2__O2;} + inline OPTIONAL& eposSIB2__O3() + {return field_eposSIB2__O3;} + inline const OPTIONAL& eposSIB2__O3() const + {return field_eposSIB2__O3;} + inline OPTIONAL& eposSIB2__SIB5() + {return field_eposSIB2__SIB5;} + inline const OPTIONAL& eposSIB2__SIB5() const + {return field_eposSIB2__SIB5;} + inline BITSTRING& nSpareBits() + {return field_nSpareBits;} + inline const BITSTRING& nSpareBits() const + {return field_nSpareBits;} + inline BITSTRING& nSIBLength() + {return field_nSIBLength;} + inline const BITSTRING& nSIBLength() const + {return field_nSIBLength;} + inline OPTIONAL& nposSIB1() + {return field_nposSIB1;} + inline const OPTIONAL& nposSIB1() const + {return field_nposSIB1;} + inline OPTIONAL& nposSIB2__O1() + {return field_nposSIB2__O1;} + inline const OPTIONAL& nposSIB2__O1() const + {return field_nposSIB2__O1;} + inline OPTIONAL& nposSIB2__O2() + {return field_nposSIB2__O2;} + inline const OPTIONAL& nposSIB2__O2() const + {return field_nposSIB2__O2;} + inline OPTIONAL& nposSIB2__SIB3() + {return field_nposSIB2__SIB3;} + inline const OPTIONAL& nposSIB2__SIB3() const + {return field_nposSIB2__SIB3;} + inline OPTIONAL& nposSIB4__SIB6() + {return field_nposSIB4__SIB6;} + inline const OPTIONAL& nposSIB4__SIB6() const + {return field_nposSIB4__SIB6;} + inline OCTETSTRING& validityStartTime() + {return field_validityStartTime;} + inline const OCTETSTRING& validityStartTime() const + {return field_validityStartTime;} + inline OCTETSTRING& validityDuration() + {return field_validityDuration;} + inline const OCTETSTRING& validityDuration() const + {return field_validityDuration;} + inline OCTETSTRING& taiLength() + {return field_taiLength;} + inline const OCTETSTRING& taiLength() const + {return field_taiLength;} + inline OPTIONAL& listOfPartialTais() + {return field_listOfPartialTais;} + inline const OPTIONAL& listOfPartialTais() const + {return field_listOfPartialTais;} +Base_Type* clone() const { return new NG__CipherDataSet(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 23; } +int optional_count() const { return 11; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__CipherDataSet_template : public Record_Template { +void set_specific(); +public: +NG__CipherDataSet_template(): Record_Template() {} +NG__CipherDataSet_template(template_sel other_value): Record_Template(other_value) {} +NG__CipherDataSet_template(const NG__CipherDataSet& other_value): Record_Template() { copy_value(&other_value); } +NG__CipherDataSet_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__CipherDataSet_template(NG__CipherDataSet_template* p_precondition, NG__CipherDataSet_template* p_implied_template); +NG__CipherDataSet_template(Dynamic_Match_Interface* p_dyn_match); +NG__CipherDataSet_template(const NG__CipherDataSet_template& other_value): Record_Template() { copy_template(other_value); } +~NG__CipherDataSet_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__CipherDataSet_template& operator=(template_sel other_value); +NG__CipherDataSet_template& operator=(const NG__CipherDataSet& other_value); +NG__CipherDataSet_template& operator=(const OPTIONAL& other_value); +NG__CipherDataSet_template& operator=(const NG__CipherDataSet_template& other_value); +inline boolean match(const NG__CipherDataSet& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__CipherDataSet& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__CipherDataSet valueof() const; +inline NG__CipherDataSet_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +OCTETSTRING_template& key(); +const OCTETSTRING_template& key() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& c0Length(); +const BITSTRING_template& c0Length() const; +OCTETSTRING_template& c0(); +const OCTETSTRING_template& c0() const; +BITSTRING_template& eSpareBits(); +const BITSTRING_template& eSpareBits() const; +BITSTRING_template& eSIBLength(); +const BITSTRING_template& eSIBLength() const; +OCTETSTRING_template& eposSIB1(); +const OCTETSTRING_template& eposSIB1() const; +OCTETSTRING_template& eposSIB2__O1(); +const OCTETSTRING_template& eposSIB2__O1() const; +OCTETSTRING_template& eposSIB2__O2(); +const OCTETSTRING_template& eposSIB2__O2() const; +OCTETSTRING_template& eposSIB2__O3(); +const OCTETSTRING_template& eposSIB2__O3() const; +OCTETSTRING_template& eposSIB2__SIB5(); +const OCTETSTRING_template& eposSIB2__SIB5() const; +BITSTRING_template& nSpareBits(); +const BITSTRING_template& nSpareBits() const; +BITSTRING_template& nSIBLength(); +const BITSTRING_template& nSIBLength() const; +OCTETSTRING_template& nposSIB1(); +const OCTETSTRING_template& nposSIB1() const; +OCTETSTRING_template& nposSIB2__O1(); +const OCTETSTRING_template& nposSIB2__O1() const; +OCTETSTRING_template& nposSIB2__O2(); +const OCTETSTRING_template& nposSIB2__O2() const; +OCTETSTRING_template& nposSIB2__SIB3(); +const OCTETSTRING_template& nposSIB2__SIB3() const; +OCTETSTRING_template& nposSIB4__SIB6(); +const OCTETSTRING_template& nposSIB4__SIB6() const; +OCTETSTRING_template& validityStartTime(); +const OCTETSTRING_template& validityStartTime() const; +OCTETSTRING_template& validityDuration(); +const OCTETSTRING_template& validityDuration() const; +OCTETSTRING_template& taiLength(); +const OCTETSTRING_template& taiLength() const; +NG__CipherDataSet_listOfPartialTais_template& listOfPartialTais(); +const NG__CipherDataSet_listOfPartialTais_template& listOfPartialTais() const; +Record_Template* create() const { return new NG__CipherDataSet_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__CipherDataSet_listOfPartialTais : public Record_Of_Type { + +static const NG__ListOfPartialTaiList UNBOUND_ELEM; + +public: +NG__CipherDataSet_listOfPartialTais(): Record_Of_Type() {} +NG__CipherDataSet_listOfPartialTais(null_type other_value): Record_Of_Type(other_value) {} +NG__CipherDataSet_listOfPartialTais(const NG__CipherDataSet_listOfPartialTais& other_value): Record_Of_Type(other_value) {} +~NG__CipherDataSet_listOfPartialTais() { clean_up(); } + +inline NG__CipherDataSet_listOfPartialTais& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__CipherDataSet_listOfPartialTais& operator=(const NG__CipherDataSet_listOfPartialTais& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__CipherDataSet_listOfPartialTais& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__CipherDataSet_listOfPartialTais& other_value) const { return !is_equal(&other_value); } +NG__ListOfPartialTaiList& operator[](int index_value); +NG__ListOfPartialTaiList& operator[](const INTEGER& index_value); +const NG__ListOfPartialTaiList& operator[](int index_value) const; +const NG__ListOfPartialTaiList& operator[](const INTEGER& index_value) const; +NG__CipherDataSet_listOfPartialTais operator<<=(int rotate_count) const; +NG__CipherDataSet_listOfPartialTais operator<<=(const INTEGER& rotate_count) const; +NG__CipherDataSet_listOfPartialTais operator>>=(int rotate_count) const; +NG__CipherDataSet_listOfPartialTais operator>>=(const INTEGER& rotate_count) const; + +NG__CipherDataSet_listOfPartialTais operator+(const NG__CipherDataSet_listOfPartialTais& other_value) const; + +NG__CipherDataSet_listOfPartialTais operator+(const OPTIONAL& other_value) const; + +NG__CipherDataSet_listOfPartialTais operator+(null_type) const; + +NG__CipherDataSet_listOfPartialTais substr(int index, int returncount) const; + +NG__CipherDataSet_listOfPartialTais replace(int index, int len, const NG__CipherDataSet_listOfPartialTais& repl) const; + +NG__CipherDataSet_listOfPartialTais replace(int index, int len, const NG__CipherDataSet_listOfPartialTais_template& repl) const; + +Base_Type* clone() const { return new NG__CipherDataSet_listOfPartialTais(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__CipherDataSet_listOfPartialTais_template : public Record_Of_Template { +friend NG__CipherDataSet_listOfPartialTais_template operator+(template_sel left_template, const NG__CipherDataSet_listOfPartialTais_template& right_template); +friend NG__CipherDataSet_listOfPartialTais_template operator+(const NG__CipherDataSet_listOfPartialTais& left_value, const NG__CipherDataSet_listOfPartialTais_template& right_template); +friend NG__CipherDataSet_listOfPartialTais_template operator+(template_sel left_template, const NG__CipherDataSet_listOfPartialTais& right_value); +friend NG__CipherDataSet_listOfPartialTais_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__CipherDataSet_listOfPartialTais_template operator+(const NG__CipherDataSet_listOfPartialTais& left_value, template_sel right_template); + +public: +NG__CipherDataSet_listOfPartialTais_template() {} +NG__CipherDataSet_listOfPartialTais_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__CipherDataSet_listOfPartialTais_template(null_type other_value); +NG__CipherDataSet_listOfPartialTais_template(const NG__CipherDataSet_listOfPartialTais& other_value) { copy_value(&other_value); } +NG__CipherDataSet_listOfPartialTais_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__CipherDataSet_listOfPartialTais_template(NG__CipherDataSet_listOfPartialTais_template* p_precondition, NG__CipherDataSet_listOfPartialTais_template* p_implied_template); +NG__CipherDataSet_listOfPartialTais_template(Dynamic_Match_Interface* p_dyn_match); +NG__CipherDataSet_listOfPartialTais_template(const NG__CipherDataSet_listOfPartialTais_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__CipherDataSet_listOfPartialTais_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__CipherDataSet_listOfPartialTais_template& operator=(template_sel other_value); +NG__CipherDataSet_listOfPartialTais_template& operator=(null_type other_value); +NG__CipherDataSet_listOfPartialTais_template& operator=(const NG__CipherDataSet_listOfPartialTais& other_value); +NG__CipherDataSet_listOfPartialTais_template& operator=(const OPTIONAL& other_value); +NG__CipherDataSet_listOfPartialTais_template& operator=(const NG__CipherDataSet_listOfPartialTais_template& other_value); + +NG__CipherDataSet_listOfPartialTais_template operator+(const NG__CipherDataSet_listOfPartialTais_template& other_value) const; +NG__CipherDataSet_listOfPartialTais_template operator+(const NG__CipherDataSet_listOfPartialTais& other_value) const; +NG__CipherDataSet_listOfPartialTais_template operator+(template_sel other_value) const; +NG__CipherDataSet_listOfPartialTais_template operator+(null_type) const; + +NG__ListOfPartialTaiList_template& operator[](int index_value); +NG__ListOfPartialTaiList_template& operator[](const INTEGER& index_value); +const NG__ListOfPartialTaiList_template& operator[](int index_value) const; +const NG__ListOfPartialTaiList_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__CipherDataSet_listOfPartialTais& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__CipherDataSet_listOfPartialTais valueof() const; +NG__CipherDataSet_listOfPartialTais substr(int index, int returncount) const; + +NG__CipherDataSet_listOfPartialTais replace(int index, int len, const NG__CipherDataSet_listOfPartialTais_template& repl) const; + +NG__CipherDataSet_listOfPartialTais replace(int index, int len, const NG__CipherDataSet_listOfPartialTais& repl) const; + +inline NG__CipherDataSet_listOfPartialTais_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__CipherDataSet_listOfPartialTais& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__CipherDataSet_listOfPartialTais_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class CAGInfoList : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + OPTIONAL field_listOfCAGInfos; + Base_Type* fld_vec[3]; + void init_vec(); +public: + CAGInfoList(); + CAGInfoList(const CAGInfoList& other_value); + CAGInfoList(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_listOfCAGInfos); +inline CAGInfoList& operator=(const CAGInfoList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CAGInfoList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CAGInfoList& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OPTIONAL& listOfCAGInfos() + {return field_listOfCAGInfos;} + inline const OPTIONAL& listOfCAGInfos() const + {return field_listOfCAGInfos;} +Base_Type* clone() const { return new CAGInfoList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CAGInfoList_template : public Record_Template { +void set_specific(); +public: +CAGInfoList_template(): Record_Template() {} +CAGInfoList_template(template_sel other_value): Record_Template(other_value) {} +CAGInfoList_template(const CAGInfoList& other_value): Record_Template() { copy_value(&other_value); } +CAGInfoList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CAGInfoList_template(CAGInfoList_template* p_precondition, CAGInfoList_template* p_implied_template); +CAGInfoList_template(Dynamic_Match_Interface* p_dyn_match); +CAGInfoList_template(const CAGInfoList_template& other_value): Record_Template() { copy_template(other_value); } +~CAGInfoList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CAGInfoList_template& operator=(template_sel other_value); +CAGInfoList_template& operator=(const CAGInfoList& other_value); +CAGInfoList_template& operator=(const OPTIONAL& other_value); +CAGInfoList_template& operator=(const CAGInfoList_template& other_value); +inline boolean match(const CAGInfoList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CAGInfoList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CAGInfoList valueof() const; +inline CAGInfoList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +CAGInfoList_listOfCAGInfos_template& listOfCAGInfos(); +const CAGInfoList_listOfCAGInfos_template& listOfCAGInfos() const; +Record_Template* create() const { return new CAGInfoList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CAGInfoList_listOfCAGInfos : public Record_Of_Type { + +static const CAG__Info UNBOUND_ELEM; + +public: +CAGInfoList_listOfCAGInfos(): Record_Of_Type() {} +CAGInfoList_listOfCAGInfos(null_type other_value): Record_Of_Type(other_value) {} +CAGInfoList_listOfCAGInfos(const CAGInfoList_listOfCAGInfos& other_value): Record_Of_Type(other_value) {} +~CAGInfoList_listOfCAGInfos() { clean_up(); } + +inline CAGInfoList_listOfCAGInfos& operator=(null_type other_value) { set_val(other_value); return *this; } +inline CAGInfoList_listOfCAGInfos& operator=(const CAGInfoList_listOfCAGInfos& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CAGInfoList_listOfCAGInfos& other_value) const { return is_equal(&other_value); } +boolean operator!=(const CAGInfoList_listOfCAGInfos& other_value) const { return !is_equal(&other_value); } +CAG__Info& operator[](int index_value); +CAG__Info& operator[](const INTEGER& index_value); +const CAG__Info& operator[](int index_value) const; +const CAG__Info& operator[](const INTEGER& index_value) const; +CAGInfoList_listOfCAGInfos operator<<=(int rotate_count) const; +CAGInfoList_listOfCAGInfos operator<<=(const INTEGER& rotate_count) const; +CAGInfoList_listOfCAGInfos operator>>=(int rotate_count) const; +CAGInfoList_listOfCAGInfos operator>>=(const INTEGER& rotate_count) const; + +CAGInfoList_listOfCAGInfos operator+(const CAGInfoList_listOfCAGInfos& other_value) const; + +CAGInfoList_listOfCAGInfos operator+(const OPTIONAL& other_value) const; + +CAGInfoList_listOfCAGInfos operator+(null_type) const; + +CAGInfoList_listOfCAGInfos substr(int index, int returncount) const; + +CAGInfoList_listOfCAGInfos replace(int index, int len, const CAGInfoList_listOfCAGInfos& repl) const; + +CAGInfoList_listOfCAGInfos replace(int index, int len, const CAGInfoList_listOfCAGInfos_template& repl) const; + +Base_Type* clone() const { return new CAGInfoList_listOfCAGInfos(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class CAGInfoList_listOfCAGInfos_template : public Record_Of_Template { +friend CAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const CAGInfoList_listOfCAGInfos_template& right_template); +friend CAGInfoList_listOfCAGInfos_template operator+(const CAGInfoList_listOfCAGInfos& left_value, const CAGInfoList_listOfCAGInfos_template& right_template); +friend CAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const CAGInfoList_listOfCAGInfos& right_value); +friend CAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend CAGInfoList_listOfCAGInfos_template operator+(const CAGInfoList_listOfCAGInfos& left_value, template_sel right_template); + +public: +CAGInfoList_listOfCAGInfos_template() {} +CAGInfoList_listOfCAGInfos_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +CAGInfoList_listOfCAGInfos_template(null_type other_value); +CAGInfoList_listOfCAGInfos_template(const CAGInfoList_listOfCAGInfos& other_value) { copy_value(&other_value); } +CAGInfoList_listOfCAGInfos_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +CAGInfoList_listOfCAGInfos_template(CAGInfoList_listOfCAGInfos_template* p_precondition, CAGInfoList_listOfCAGInfos_template* p_implied_template); +CAGInfoList_listOfCAGInfos_template(Dynamic_Match_Interface* p_dyn_match); +CAGInfoList_listOfCAGInfos_template(const CAGInfoList_listOfCAGInfos_template& other_value): Record_Of_Template() { copy_template(other_value); } +~CAGInfoList_listOfCAGInfos_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CAGInfoList_listOfCAGInfos_template& operator=(template_sel other_value); +CAGInfoList_listOfCAGInfos_template& operator=(null_type other_value); +CAGInfoList_listOfCAGInfos_template& operator=(const CAGInfoList_listOfCAGInfos& other_value); +CAGInfoList_listOfCAGInfos_template& operator=(const OPTIONAL& other_value); +CAGInfoList_listOfCAGInfos_template& operator=(const CAGInfoList_listOfCAGInfos_template& other_value); + +CAGInfoList_listOfCAGInfos_template operator+(const CAGInfoList_listOfCAGInfos_template& other_value) const; +CAGInfoList_listOfCAGInfos_template operator+(const CAGInfoList_listOfCAGInfos& other_value) const; +CAGInfoList_listOfCAGInfos_template operator+(template_sel other_value) const; +CAGInfoList_listOfCAGInfos_template operator+(null_type) const; + +CAG__Info_template& operator[](int index_value); +CAG__Info_template& operator[](const INTEGER& index_value); +const CAG__Info_template& operator[](int index_value) const; +const CAG__Info_template& operator[](const INTEGER& index_value) const; +inline boolean match(const CAGInfoList_listOfCAGInfos& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +CAGInfoList_listOfCAGInfos valueof() const; +CAGInfoList_listOfCAGInfos substr(int index, int returncount) const; + +CAGInfoList_listOfCAGInfos replace(int index, int len, const CAGInfoList_listOfCAGInfos_template& repl) const; + +CAGInfoList_listOfCAGInfos replace(int index, int len, const CAGInfoList_listOfCAGInfos& repl) const; + +inline CAGInfoList_listOfCAGInfos_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const CAGInfoList_listOfCAGInfos& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new CAGInfoList_listOfCAGInfos_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class CAG__Info__V : public Record_Type { + OCTETSTRING field_plmn; + BITSTRING field_spareBits; + BITSTRING field_cagOnly; + OPTIONAL field_listOfCAGIds; + Base_Type* fld_vec[4]; + void init_vec(); +public: + CAG__Info__V(); + CAG__Info__V(const CAG__Info__V& other_value); + CAG__Info__V(const OCTETSTRING& par_plmn, + const BITSTRING& par_spareBits, + const BITSTRING& par_cagOnly, + const OPTIONAL& par_listOfCAGIds); +inline CAG__Info__V& operator=(const CAG__Info__V& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CAG__Info__V& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CAG__Info__V& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& plmn() + {return field_plmn;} + inline const OCTETSTRING& plmn() const + {return field_plmn;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& cagOnly() + {return field_cagOnly;} + inline const BITSTRING& cagOnly() const + {return field_cagOnly;} + inline OPTIONAL& listOfCAGIds() + {return field_listOfCAGIds;} + inline const OPTIONAL& listOfCAGIds() const + {return field_listOfCAGIds;} +Base_Type* clone() const { return new CAG__Info__V(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CAG__Info__V_template : public Record_Template { +void set_specific(); +public: +CAG__Info__V_template(): Record_Template() {} +CAG__Info__V_template(template_sel other_value): Record_Template(other_value) {} +CAG__Info__V_template(const CAG__Info__V& other_value): Record_Template() { copy_value(&other_value); } +CAG__Info__V_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CAG__Info__V_template(CAG__Info__V_template* p_precondition, CAG__Info__V_template* p_implied_template); +CAG__Info__V_template(Dynamic_Match_Interface* p_dyn_match); +CAG__Info__V_template(const CAG__Info__V_template& other_value): Record_Template() { copy_template(other_value); } +~CAG__Info__V_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CAG__Info__V_template& operator=(template_sel other_value); +CAG__Info__V_template& operator=(const CAG__Info__V& other_value); +CAG__Info__V_template& operator=(const OPTIONAL& other_value); +CAG__Info__V_template& operator=(const CAG__Info__V_template& other_value); +inline boolean match(const CAG__Info__V& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CAG__Info__V& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CAG__Info__V valueof() const; +inline CAG__Info__V_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& plmn(); +const OCTETSTRING_template& plmn() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& cagOnly(); +const BITSTRING_template& cagOnly() const; +CAG__Info__V_listOfCAGIds_template& listOfCAGIds(); +const CAG__Info__V_listOfCAGIds_template& listOfCAGIds() const; +Record_Template* create() const { return new CAG__Info__V_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CAG__Info : public Record_Type { + OCTETSTRING field_iel; + CAG__Info__V field_cagValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + CAG__Info(); + CAG__Info(const CAG__Info& other_value); + CAG__Info(const OCTETSTRING& par_iel, + const CAG__Info__V& par_cagValue); +inline CAG__Info& operator=(const CAG__Info& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CAG__Info& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CAG__Info& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline CAG__Info__V& cagValue() + {return field_cagValue;} + inline const CAG__Info__V& cagValue() const + {return field_cagValue;} +Base_Type* clone() const { return new CAG__Info(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CAG__Info_template : public Record_Template { +void set_specific(); +public: +CAG__Info_template(): Record_Template() {} +CAG__Info_template(template_sel other_value): Record_Template(other_value) {} +CAG__Info_template(const CAG__Info& other_value): Record_Template() { copy_value(&other_value); } +CAG__Info_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CAG__Info_template(CAG__Info_template* p_precondition, CAG__Info_template* p_implied_template); +CAG__Info_template(Dynamic_Match_Interface* p_dyn_match); +CAG__Info_template(const CAG__Info_template& other_value): Record_Template() { copy_template(other_value); } +~CAG__Info_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CAG__Info_template& operator=(template_sel other_value); +CAG__Info_template& operator=(const CAG__Info& other_value); +CAG__Info_template& operator=(const OPTIONAL& other_value); +CAG__Info_template& operator=(const CAG__Info_template& other_value); +inline boolean match(const CAG__Info& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CAG__Info& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CAG__Info valueof() const; +inline CAG__Info_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +CAG__Info__V_template& cagValue(); +const CAG__Info__V_template& cagValue() const; +Record_Template* create() const { return new CAG__Info_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class TruncatedS__TMSIConfig : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_amfSetId; + BITSTRING field_amfPointer; + Base_Type* fld_vec[4]; + void init_vec(); +public: + TruncatedS__TMSIConfig(); + TruncatedS__TMSIConfig(const TruncatedS__TMSIConfig& other_value); + TruncatedS__TMSIConfig(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_amfSetId, + const BITSTRING& par_amfPointer); +inline TruncatedS__TMSIConfig& operator=(const TruncatedS__TMSIConfig& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TruncatedS__TMSIConfig& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TruncatedS__TMSIConfig& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& amfSetId() + {return field_amfSetId;} + inline const BITSTRING& amfSetId() const + {return field_amfSetId;} + inline BITSTRING& amfPointer() + {return field_amfPointer;} + inline const BITSTRING& amfPointer() const + {return field_amfPointer;} +Base_Type* clone() const { return new TruncatedS__TMSIConfig(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TruncatedS__TMSIConfig_template : public Record_Template { +void set_specific(); +public: +TruncatedS__TMSIConfig_template(): Record_Template() {} +TruncatedS__TMSIConfig_template(template_sel other_value): Record_Template(other_value) {} +TruncatedS__TMSIConfig_template(const TruncatedS__TMSIConfig& other_value): Record_Template() { copy_value(&other_value); } +TruncatedS__TMSIConfig_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TruncatedS__TMSIConfig_template(TruncatedS__TMSIConfig_template* p_precondition, TruncatedS__TMSIConfig_template* p_implied_template); +TruncatedS__TMSIConfig_template(Dynamic_Match_Interface* p_dyn_match); +TruncatedS__TMSIConfig_template(const TruncatedS__TMSIConfig_template& other_value): Record_Template() { copy_template(other_value); } +~TruncatedS__TMSIConfig_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TruncatedS__TMSIConfig_template& operator=(template_sel other_value); +TruncatedS__TMSIConfig_template& operator=(const TruncatedS__TMSIConfig& other_value); +TruncatedS__TMSIConfig_template& operator=(const OPTIONAL& other_value); +TruncatedS__TMSIConfig_template& operator=(const TruncatedS__TMSIConfig_template& other_value); +inline boolean match(const TruncatedS__TMSIConfig& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TruncatedS__TMSIConfig& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TruncatedS__TMSIConfig valueof() const; +inline TruncatedS__TMSIConfig_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& amfSetId(); +const BITSTRING_template& amfSetId() const; +BITSTRING_template& amfPointer(); +const BITSTRING_template& amfPointer() const; +Record_Template* create() const { return new TruncatedS__TMSIConfig_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PartialXtdRejectedNSSAI__List : public Record_Of_Type { + +static const PartialXtdRejectedNSSAI UNBOUND_ELEM; + +public: +PartialXtdRejectedNSSAI__List(): Record_Of_Type() {} +PartialXtdRejectedNSSAI__List(null_type other_value): Record_Of_Type(other_value) {} +PartialXtdRejectedNSSAI__List(const PartialXtdRejectedNSSAI__List& other_value): Record_Of_Type(other_value) {} +~PartialXtdRejectedNSSAI__List() { clean_up(); } + +inline PartialXtdRejectedNSSAI__List& operator=(null_type other_value) { set_val(other_value); return *this; } +inline PartialXtdRejectedNSSAI__List& operator=(const PartialXtdRejectedNSSAI__List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PartialXtdRejectedNSSAI__List& other_value) const { return is_equal(&other_value); } +boolean operator!=(const PartialXtdRejectedNSSAI__List& other_value) const { return !is_equal(&other_value); } +PartialXtdRejectedNSSAI& operator[](int index_value); +PartialXtdRejectedNSSAI& operator[](const INTEGER& index_value); +const PartialXtdRejectedNSSAI& operator[](int index_value) const; +const PartialXtdRejectedNSSAI& operator[](const INTEGER& index_value) const; +PartialXtdRejectedNSSAI__List operator<<=(int rotate_count) const; +PartialXtdRejectedNSSAI__List operator<<=(const INTEGER& rotate_count) const; +PartialXtdRejectedNSSAI__List operator>>=(int rotate_count) const; +PartialXtdRejectedNSSAI__List operator>>=(const INTEGER& rotate_count) const; + +PartialXtdRejectedNSSAI__List operator+(const PartialXtdRejectedNSSAI__List& other_value) const; + +PartialXtdRejectedNSSAI__List operator+(const OPTIONAL& other_value) const; + +PartialXtdRejectedNSSAI__List operator+(null_type) const; + +PartialXtdRejectedNSSAI__List substr(int index, int returncount) const; + +PartialXtdRejectedNSSAI__List replace(int index, int len, const PartialXtdRejectedNSSAI__List& repl) const; + +PartialXtdRejectedNSSAI__List replace(int index, int len, const PartialXtdRejectedNSSAI__List_template& repl) const; + +Base_Type* clone() const { return new PartialXtdRejectedNSSAI__List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class PartialXtdRejectedNSSAI__List_template : public Record_Of_Template { +friend PartialXtdRejectedNSSAI__List_template operator+(template_sel left_template, const PartialXtdRejectedNSSAI__List_template& right_template); +friend PartialXtdRejectedNSSAI__List_template operator+(const PartialXtdRejectedNSSAI__List& left_value, const PartialXtdRejectedNSSAI__List_template& right_template); +friend PartialXtdRejectedNSSAI__List_template operator+(template_sel left_template, const PartialXtdRejectedNSSAI__List& right_value); +friend PartialXtdRejectedNSSAI__List_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend PartialXtdRejectedNSSAI__List_template operator+(const PartialXtdRejectedNSSAI__List& left_value, template_sel right_template); + +public: +PartialXtdRejectedNSSAI__List_template() {} +PartialXtdRejectedNSSAI__List_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +PartialXtdRejectedNSSAI__List_template(null_type other_value); +PartialXtdRejectedNSSAI__List_template(const PartialXtdRejectedNSSAI__List& other_value) { copy_value(&other_value); } +PartialXtdRejectedNSSAI__List_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +PartialXtdRejectedNSSAI__List_template(PartialXtdRejectedNSSAI__List_template* p_precondition, PartialXtdRejectedNSSAI__List_template* p_implied_template); +PartialXtdRejectedNSSAI__List_template(Dynamic_Match_Interface* p_dyn_match); +PartialXtdRejectedNSSAI__List_template(const PartialXtdRejectedNSSAI__List_template& other_value): Record_Of_Template() { copy_template(other_value); } +~PartialXtdRejectedNSSAI__List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PartialXtdRejectedNSSAI__List_template& operator=(template_sel other_value); +PartialXtdRejectedNSSAI__List_template& operator=(null_type other_value); +PartialXtdRejectedNSSAI__List_template& operator=(const PartialXtdRejectedNSSAI__List& other_value); +PartialXtdRejectedNSSAI__List_template& operator=(const OPTIONAL& other_value); +PartialXtdRejectedNSSAI__List_template& operator=(const PartialXtdRejectedNSSAI__List_template& other_value); + +PartialXtdRejectedNSSAI__List_template operator+(const PartialXtdRejectedNSSAI__List_template& other_value) const; +PartialXtdRejectedNSSAI__List_template operator+(const PartialXtdRejectedNSSAI__List& other_value) const; +PartialXtdRejectedNSSAI__List_template operator+(template_sel other_value) const; +PartialXtdRejectedNSSAI__List_template operator+(null_type) const; + +PartialXtdRejectedNSSAI_template& operator[](int index_value); +PartialXtdRejectedNSSAI_template& operator[](const INTEGER& index_value); +const PartialXtdRejectedNSSAI_template& operator[](int index_value) const; +const PartialXtdRejectedNSSAI_template& operator[](const INTEGER& index_value) const; +inline boolean match(const PartialXtdRejectedNSSAI__List& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +PartialXtdRejectedNSSAI__List valueof() const; +PartialXtdRejectedNSSAI__List substr(int index, int returncount) const; + +PartialXtdRejectedNSSAI__List replace(int index, int len, const PartialXtdRejectedNSSAI__List_template& repl) const; + +PartialXtdRejectedNSSAI__List replace(int index, int len, const PartialXtdRejectedNSSAI__List& repl) const; + +inline PartialXtdRejectedNSSAI__List_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const PartialXtdRejectedNSSAI__List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new PartialXtdRejectedNSSAI__List_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class PartialXtdRejectedNSSAI : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_type0 = 1, ALT_type1 = 2 }; +private: +union_selection_type union_selection; +union { +PartialXtdRejectedNSSAIType0 *field_type0; +PartialXtdRejectedNSSAIType1 *field_type1; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const PartialXtdRejectedNSSAI& other_value); + +public: +PartialXtdRejectedNSSAI(); +PartialXtdRejectedNSSAI(const PartialXtdRejectedNSSAI& other_value); +~PartialXtdRejectedNSSAI(); +PartialXtdRejectedNSSAI& operator=(const PartialXtdRejectedNSSAI& other_value); +boolean operator==(const PartialXtdRejectedNSSAI& other_value) const; +inline boolean operator!=(const PartialXtdRejectedNSSAI& other_value) const { return !(*this == other_value); } +PartialXtdRejectedNSSAIType0& type0(); +const PartialXtdRejectedNSSAIType0& type0() const; +PartialXtdRejectedNSSAIType1& type1(); +const PartialXtdRejectedNSSAIType1& type1() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class PartialXtdRejectedNSSAI_template : public Base_Template { +union { +struct { +PartialXtdRejectedNSSAI::union_selection_type union_selection; +union { +PartialXtdRejectedNSSAIType0_template *field_type0; +PartialXtdRejectedNSSAIType1_template *field_type1; +}; +} single_value; +struct { +unsigned int n_values; +PartialXtdRejectedNSSAI_template *list_value; +} value_list; +struct { +PartialXtdRejectedNSSAI_template* precondition; +PartialXtdRejectedNSSAI_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const PartialXtdRejectedNSSAI& other_value); + +void copy_template(const PartialXtdRejectedNSSAI_template& other_value); + +public: +PartialXtdRejectedNSSAI_template(); +PartialXtdRejectedNSSAI_template(template_sel other_value); +PartialXtdRejectedNSSAI_template(const PartialXtdRejectedNSSAI& other_value); +PartialXtdRejectedNSSAI_template(const OPTIONAL& other_value); +PartialXtdRejectedNSSAI_template(PartialXtdRejectedNSSAI_template* p_precondition, PartialXtdRejectedNSSAI_template* p_implied_template); +PartialXtdRejectedNSSAI_template(Dynamic_Match_Interface* p_dyn_match); +PartialXtdRejectedNSSAI_template(const PartialXtdRejectedNSSAI_template& other_value); +~PartialXtdRejectedNSSAI_template(); +void clean_up(); +PartialXtdRejectedNSSAI_template& operator=(template_sel other_value); +PartialXtdRejectedNSSAI_template& operator=(const PartialXtdRejectedNSSAI& other_value); +PartialXtdRejectedNSSAI_template& operator=(const OPTIONAL& other_value); +PartialXtdRejectedNSSAI_template& operator=(const PartialXtdRejectedNSSAI_template& other_value); +boolean match(const PartialXtdRejectedNSSAI& other_value, boolean legacy = FALSE) const; +boolean is_value() const;PartialXtdRejectedNSSAI valueof() const; +PartialXtdRejectedNSSAI_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +PartialXtdRejectedNSSAI::union_selection_type get_union_selection() const; +PartialXtdRejectedNSSAIType0_template& type0(); +const PartialXtdRejectedNSSAIType0_template& type0() const; +PartialXtdRejectedNSSAIType1_template& type1(); +const PartialXtdRejectedNSSAIType1_template& type1() const; +boolean ischosen(PartialXtdRejectedNSSAI::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const PartialXtdRejectedNSSAI& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class PartialXtdRejectedNSSAIType0_rejectS__NSSAI : public Record_Of_Type { + +static const XtdRejectedS__NSSAI UNBOUND_ELEM; + +public: +PartialXtdRejectedNSSAIType0_rejectS__NSSAI(): Record_Of_Type() {} +PartialXtdRejectedNSSAIType0_rejectS__NSSAI(null_type other_value): Record_Of_Type(other_value) {} +PartialXtdRejectedNSSAIType0_rejectS__NSSAI(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value): Record_Of_Type(other_value) {} +~PartialXtdRejectedNSSAIType0_rejectS__NSSAI() { clean_up(); } + +inline PartialXtdRejectedNSSAIType0_rejectS__NSSAI& operator=(null_type other_value) { set_val(other_value); return *this; } +inline PartialXtdRejectedNSSAIType0_rejectS__NSSAI& operator=(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value) const { return is_equal(&other_value); } +boolean operator!=(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value) const { return !is_equal(&other_value); } +XtdRejectedS__NSSAI& operator[](int index_value); +XtdRejectedS__NSSAI& operator[](const INTEGER& index_value); +const XtdRejectedS__NSSAI& operator[](int index_value) const; +const XtdRejectedS__NSSAI& operator[](const INTEGER& index_value) const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI operator<<=(int rotate_count) const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI operator<<=(const INTEGER& rotate_count) const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI operator>>=(int rotate_count) const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI operator>>=(const INTEGER& rotate_count) const; + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value) const; + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI operator+(const OPTIONAL& other_value) const; + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI operator+(null_type) const; + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI substr(int index, int returncount) const; + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI replace(int index, int len, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& repl) const; + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI replace(int index, int len, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& repl) const; + +Base_Type* clone() const { return new PartialXtdRejectedNSSAIType0_rejectS__NSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template : public Record_Of_Template { +friend PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(template_sel left_template, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& right_template); +friend PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& left_value, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& right_template); +friend PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(template_sel left_template, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& right_value); +friend PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& left_value, template_sel right_template); + +public: +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template() {} +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(null_type other_value); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value) { copy_value(&other_value); } +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template* p_precondition, PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template* p_implied_template); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(Dynamic_Match_Interface* p_dyn_match); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& other_value): Record_Of_Template() { copy_template(other_value); } +~PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& operator=(template_sel other_value); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& operator=(null_type other_value); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& operator=(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& operator=(const OPTIONAL& other_value); +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& operator=(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& other_value); + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& other_value) const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& other_value) const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(template_sel other_value) const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(null_type) const; + +XtdRejectedS__NSSAI_template& operator[](int index_value); +XtdRejectedS__NSSAI_template& operator[](const INTEGER& index_value); +const XtdRejectedS__NSSAI_template& operator[](int index_value) const; +const XtdRejectedS__NSSAI_template& operator[](const INTEGER& index_value) const; +inline boolean match(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +PartialXtdRejectedNSSAIType0_rejectS__NSSAI valueof() const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI substr(int index, int returncount) const; + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI replace(int index, int len, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& repl) const; + +PartialXtdRejectedNSSAIType0_rejectS__NSSAI replace(int index, int len, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& repl) const; + +inline PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class XtdRejectedS__NSSAI : public Record_Type { + BITSTRING field_len; + BITSTRING field_causeValue; + S__NSSAI__V field_snssai; + Base_Type* fld_vec[3]; + void init_vec(); +public: + XtdRejectedS__NSSAI(); + XtdRejectedS__NSSAI(const XtdRejectedS__NSSAI& other_value); + XtdRejectedS__NSSAI(const BITSTRING& par_len, + const BITSTRING& par_causeValue, + const S__NSSAI__V& par_snssai); +inline XtdRejectedS__NSSAI& operator=(const XtdRejectedS__NSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const XtdRejectedS__NSSAI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const XtdRejectedS__NSSAI& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& len() + {return field_len;} + inline const BITSTRING& len() const + {return field_len;} + inline BITSTRING& causeValue() + {return field_causeValue;} + inline const BITSTRING& causeValue() const + {return field_causeValue;} + inline S__NSSAI__V& snssai() + {return field_snssai;} + inline const S__NSSAI__V& snssai() const + {return field_snssai;} +Base_Type* clone() const { return new XtdRejectedS__NSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class XtdRejectedS__NSSAI_template : public Record_Template { +void set_specific(); +public: +XtdRejectedS__NSSAI_template(): Record_Template() {} +XtdRejectedS__NSSAI_template(template_sel other_value): Record_Template(other_value) {} +XtdRejectedS__NSSAI_template(const XtdRejectedS__NSSAI& other_value): Record_Template() { copy_value(&other_value); } +XtdRejectedS__NSSAI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +XtdRejectedS__NSSAI_template(XtdRejectedS__NSSAI_template* p_precondition, XtdRejectedS__NSSAI_template* p_implied_template); +XtdRejectedS__NSSAI_template(Dynamic_Match_Interface* p_dyn_match); +XtdRejectedS__NSSAI_template(const XtdRejectedS__NSSAI_template& other_value): Record_Template() { copy_template(other_value); } +~XtdRejectedS__NSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +XtdRejectedS__NSSAI_template& operator=(template_sel other_value); +XtdRejectedS__NSSAI_template& operator=(const XtdRejectedS__NSSAI& other_value); +XtdRejectedS__NSSAI_template& operator=(const OPTIONAL& other_value); +XtdRejectedS__NSSAI_template& operator=(const XtdRejectedS__NSSAI_template& other_value); +inline boolean match(const XtdRejectedS__NSSAI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const XtdRejectedS__NSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +XtdRejectedS__NSSAI valueof() const; +inline XtdRejectedS__NSSAI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& len(); +const BITSTRING_template& len() const; +BITSTRING_template& causeValue(); +const BITSTRING_template& causeValue() const; +S__NSSAI__V_template& snssai(); +const S__NSSAI__V_template& snssai() const; +Record_Template* create() const { return new XtdRejectedS__NSSAI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PartialXtdRejectedNSSAIType0 : public Record_Type { + BITSTRING field_spare; + BITSTRING field_typeOfList; + BITSTRING field_numOfElements; + PartialXtdRejectedNSSAIType0_rejectS__NSSAI field_rejectS__NSSAI; + Base_Type* fld_vec[4]; + void init_vec(); +public: + PartialXtdRejectedNSSAIType0(); + PartialXtdRejectedNSSAIType0(const PartialXtdRejectedNSSAIType0& other_value); + PartialXtdRejectedNSSAIType0(const BITSTRING& par_spare, + const BITSTRING& par_typeOfList, + const BITSTRING& par_numOfElements, + const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& par_rejectS__NSSAI); +inline PartialXtdRejectedNSSAIType0& operator=(const PartialXtdRejectedNSSAIType0& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PartialXtdRejectedNSSAIType0& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PartialXtdRejectedNSSAIType0& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& typeOfList() + {return field_typeOfList;} + inline const BITSTRING& typeOfList() const + {return field_typeOfList;} + inline BITSTRING& numOfElements() + {return field_numOfElements;} + inline const BITSTRING& numOfElements() const + {return field_numOfElements;} + inline PartialXtdRejectedNSSAIType0_rejectS__NSSAI& rejectS__NSSAI() + {return field_rejectS__NSSAI;} + inline const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& rejectS__NSSAI() const + {return field_rejectS__NSSAI;} +Base_Type* clone() const { return new PartialXtdRejectedNSSAIType0(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PartialXtdRejectedNSSAIType0_template : public Record_Template { +void set_specific(); +public: +PartialXtdRejectedNSSAIType0_template(): Record_Template() {} +PartialXtdRejectedNSSAIType0_template(template_sel other_value): Record_Template(other_value) {} +PartialXtdRejectedNSSAIType0_template(const PartialXtdRejectedNSSAIType0& other_value): Record_Template() { copy_value(&other_value); } +PartialXtdRejectedNSSAIType0_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PartialXtdRejectedNSSAIType0_template(PartialXtdRejectedNSSAIType0_template* p_precondition, PartialXtdRejectedNSSAIType0_template* p_implied_template); +PartialXtdRejectedNSSAIType0_template(Dynamic_Match_Interface* p_dyn_match); +PartialXtdRejectedNSSAIType0_template(const PartialXtdRejectedNSSAIType0_template& other_value): Record_Template() { copy_template(other_value); } +~PartialXtdRejectedNSSAIType0_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PartialXtdRejectedNSSAIType0_template& operator=(template_sel other_value); +PartialXtdRejectedNSSAIType0_template& operator=(const PartialXtdRejectedNSSAIType0& other_value); +PartialXtdRejectedNSSAIType0_template& operator=(const OPTIONAL& other_value); +PartialXtdRejectedNSSAIType0_template& operator=(const PartialXtdRejectedNSSAIType0_template& other_value); +inline boolean match(const PartialXtdRejectedNSSAIType0& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PartialXtdRejectedNSSAIType0& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PartialXtdRejectedNSSAIType0 valueof() const; +inline PartialXtdRejectedNSSAIType0_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& typeOfList(); +const BITSTRING_template& typeOfList() const; +BITSTRING_template& numOfElements(); +const BITSTRING_template& numOfElements() const; +PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& rejectS__NSSAI(); +const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& rejectS__NSSAI() const; +Record_Template* create() const { return new PartialXtdRejectedNSSAIType0_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class XtdRejectedS__NSSAI__List : public Record_Of_Type { + +static const XtdRejectedS__NSSAI UNBOUND_ELEM; + +public: +XtdRejectedS__NSSAI__List(): Record_Of_Type() {} +XtdRejectedS__NSSAI__List(null_type other_value): Record_Of_Type(other_value) {} +XtdRejectedS__NSSAI__List(const XtdRejectedS__NSSAI__List& other_value): Record_Of_Type(other_value) {} +~XtdRejectedS__NSSAI__List() { clean_up(); } + +inline XtdRejectedS__NSSAI__List& operator=(null_type other_value) { set_val(other_value); return *this; } +inline XtdRejectedS__NSSAI__List& operator=(const XtdRejectedS__NSSAI__List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const XtdRejectedS__NSSAI__List& other_value) const { return is_equal(&other_value); } +boolean operator!=(const XtdRejectedS__NSSAI__List& other_value) const { return !is_equal(&other_value); } +XtdRejectedS__NSSAI& operator[](int index_value); +XtdRejectedS__NSSAI& operator[](const INTEGER& index_value); +const XtdRejectedS__NSSAI& operator[](int index_value) const; +const XtdRejectedS__NSSAI& operator[](const INTEGER& index_value) const; +XtdRejectedS__NSSAI__List operator<<=(int rotate_count) const; +XtdRejectedS__NSSAI__List operator<<=(const INTEGER& rotate_count) const; +XtdRejectedS__NSSAI__List operator>>=(int rotate_count) const; +XtdRejectedS__NSSAI__List operator>>=(const INTEGER& rotate_count) const; + +XtdRejectedS__NSSAI__List operator+(const XtdRejectedS__NSSAI__List& other_value) const; + +XtdRejectedS__NSSAI__List operator+(const OPTIONAL& other_value) const; + +XtdRejectedS__NSSAI__List operator+(null_type) const; + +XtdRejectedS__NSSAI__List substr(int index, int returncount) const; + +XtdRejectedS__NSSAI__List replace(int index, int len, const XtdRejectedS__NSSAI__List& repl) const; + +XtdRejectedS__NSSAI__List replace(int index, int len, const XtdRejectedS__NSSAI__List_template& repl) const; + +Base_Type* clone() const { return new XtdRejectedS__NSSAI__List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class XtdRejectedS__NSSAI__List_template : public Record_Of_Template { +friend XtdRejectedS__NSSAI__List_template operator+(template_sel left_template, const XtdRejectedS__NSSAI__List_template& right_template); +friend XtdRejectedS__NSSAI__List_template operator+(const XtdRejectedS__NSSAI__List& left_value, const XtdRejectedS__NSSAI__List_template& right_template); +friend XtdRejectedS__NSSAI__List_template operator+(template_sel left_template, const XtdRejectedS__NSSAI__List& right_value); +friend XtdRejectedS__NSSAI__List_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend XtdRejectedS__NSSAI__List_template operator+(const XtdRejectedS__NSSAI__List& left_value, template_sel right_template); + +public: +XtdRejectedS__NSSAI__List_template() {} +XtdRejectedS__NSSAI__List_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +XtdRejectedS__NSSAI__List_template(null_type other_value); +XtdRejectedS__NSSAI__List_template(const XtdRejectedS__NSSAI__List& other_value) { copy_value(&other_value); } +XtdRejectedS__NSSAI__List_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +XtdRejectedS__NSSAI__List_template(XtdRejectedS__NSSAI__List_template* p_precondition, XtdRejectedS__NSSAI__List_template* p_implied_template); +XtdRejectedS__NSSAI__List_template(Dynamic_Match_Interface* p_dyn_match); +XtdRejectedS__NSSAI__List_template(const XtdRejectedS__NSSAI__List_template& other_value): Record_Of_Template() { copy_template(other_value); } +~XtdRejectedS__NSSAI__List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +XtdRejectedS__NSSAI__List_template& operator=(template_sel other_value); +XtdRejectedS__NSSAI__List_template& operator=(null_type other_value); +XtdRejectedS__NSSAI__List_template& operator=(const XtdRejectedS__NSSAI__List& other_value); +XtdRejectedS__NSSAI__List_template& operator=(const OPTIONAL& other_value); +XtdRejectedS__NSSAI__List_template& operator=(const XtdRejectedS__NSSAI__List_template& other_value); + +XtdRejectedS__NSSAI__List_template operator+(const XtdRejectedS__NSSAI__List_template& other_value) const; +XtdRejectedS__NSSAI__List_template operator+(const XtdRejectedS__NSSAI__List& other_value) const; +XtdRejectedS__NSSAI__List_template operator+(template_sel other_value) const; +XtdRejectedS__NSSAI__List_template operator+(null_type) const; + +XtdRejectedS__NSSAI_template& operator[](int index_value); +XtdRejectedS__NSSAI_template& operator[](const INTEGER& index_value); +const XtdRejectedS__NSSAI_template& operator[](int index_value) const; +const XtdRejectedS__NSSAI_template& operator[](const INTEGER& index_value) const; +inline boolean match(const XtdRejectedS__NSSAI__List& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +XtdRejectedS__NSSAI__List valueof() const; +XtdRejectedS__NSSAI__List substr(int index, int returncount) const; + +XtdRejectedS__NSSAI__List replace(int index, int len, const XtdRejectedS__NSSAI__List_template& repl) const; + +XtdRejectedS__NSSAI__List replace(int index, int len, const XtdRejectedS__NSSAI__List& repl) const; + +inline XtdRejectedS__NSSAI__List_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const XtdRejectedS__NSSAI__List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new XtdRejectedS__NSSAI__List_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class PartialXtdRejectedNSSAIType1 : public Record_Type { + BITSTRING field_spare; + BITSTRING field_typeOfList; + BITSTRING field_numOfElements; + OCTETSTRING field_backOffTimerValue; + XtdRejectedS__NSSAI__List field_rejectS__NSSAI; + Base_Type* fld_vec[5]; + void init_vec(); +public: + PartialXtdRejectedNSSAIType1(); + PartialXtdRejectedNSSAIType1(const PartialXtdRejectedNSSAIType1& other_value); + PartialXtdRejectedNSSAIType1(const BITSTRING& par_spare, + const BITSTRING& par_typeOfList, + const BITSTRING& par_numOfElements, + const OCTETSTRING& par_backOffTimerValue, + const XtdRejectedS__NSSAI__List& par_rejectS__NSSAI); +inline PartialXtdRejectedNSSAIType1& operator=(const PartialXtdRejectedNSSAIType1& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PartialXtdRejectedNSSAIType1& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PartialXtdRejectedNSSAIType1& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& typeOfList() + {return field_typeOfList;} + inline const BITSTRING& typeOfList() const + {return field_typeOfList;} + inline BITSTRING& numOfElements() + {return field_numOfElements;} + inline const BITSTRING& numOfElements() const + {return field_numOfElements;} + inline OCTETSTRING& backOffTimerValue() + {return field_backOffTimerValue;} + inline const OCTETSTRING& backOffTimerValue() const + {return field_backOffTimerValue;} + inline XtdRejectedS__NSSAI__List& rejectS__NSSAI() + {return field_rejectS__NSSAI;} + inline const XtdRejectedS__NSSAI__List& rejectS__NSSAI() const + {return field_rejectS__NSSAI;} +Base_Type* clone() const { return new PartialXtdRejectedNSSAIType1(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PartialXtdRejectedNSSAIType1_template : public Record_Template { +void set_specific(); +public: +PartialXtdRejectedNSSAIType1_template(): Record_Template() {} +PartialXtdRejectedNSSAIType1_template(template_sel other_value): Record_Template(other_value) {} +PartialXtdRejectedNSSAIType1_template(const PartialXtdRejectedNSSAIType1& other_value): Record_Template() { copy_value(&other_value); } +PartialXtdRejectedNSSAIType1_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PartialXtdRejectedNSSAIType1_template(PartialXtdRejectedNSSAIType1_template* p_precondition, PartialXtdRejectedNSSAIType1_template* p_implied_template); +PartialXtdRejectedNSSAIType1_template(Dynamic_Match_Interface* p_dyn_match); +PartialXtdRejectedNSSAIType1_template(const PartialXtdRejectedNSSAIType1_template& other_value): Record_Template() { copy_template(other_value); } +~PartialXtdRejectedNSSAIType1_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PartialXtdRejectedNSSAIType1_template& operator=(template_sel other_value); +PartialXtdRejectedNSSAIType1_template& operator=(const PartialXtdRejectedNSSAIType1& other_value); +PartialXtdRejectedNSSAIType1_template& operator=(const OPTIONAL& other_value); +PartialXtdRejectedNSSAIType1_template& operator=(const PartialXtdRejectedNSSAIType1_template& other_value); +inline boolean match(const PartialXtdRejectedNSSAIType1& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PartialXtdRejectedNSSAIType1& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PartialXtdRejectedNSSAIType1 valueof() const; +inline PartialXtdRejectedNSSAIType1_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& typeOfList(); +const BITSTRING_template& typeOfList() const; +BITSTRING_template& numOfElements(); +const BITSTRING_template& numOfElements() const; +OCTETSTRING_template& backOffTimerValue(); +const OCTETSTRING_template& backOffTimerValue() const; +XtdRejectedS__NSSAI__List_template& rejectS__NSSAI(); +const XtdRejectedS__NSSAI__List_template& rejectS__NSSAI() const; +Record_Template* create() const { return new PartialXtdRejectedNSSAIType1_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ExtdRejectedNSSAI : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + PartialXtdRejectedNSSAI__List field_partialXtd; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ExtdRejectedNSSAI(); + ExtdRejectedNSSAI(const ExtdRejectedNSSAI& other_value); + ExtdRejectedNSSAI(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const PartialXtdRejectedNSSAI__List& par_partialXtd); +inline ExtdRejectedNSSAI& operator=(const ExtdRejectedNSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdRejectedNSSAI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ExtdRejectedNSSAI& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline PartialXtdRejectedNSSAI__List& partialXtd() + {return field_partialXtd;} + inline const PartialXtdRejectedNSSAI__List& partialXtd() const + {return field_partialXtd;} +Base_Type* clone() const { return new ExtdRejectedNSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ExtdRejectedNSSAI_template : public Record_Template { +void set_specific(); +public: +ExtdRejectedNSSAI_template(): Record_Template() {} +ExtdRejectedNSSAI_template(template_sel other_value): Record_Template(other_value) {} +ExtdRejectedNSSAI_template(const ExtdRejectedNSSAI& other_value): Record_Template() { copy_value(&other_value); } +ExtdRejectedNSSAI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ExtdRejectedNSSAI_template(ExtdRejectedNSSAI_template* p_precondition, ExtdRejectedNSSAI_template* p_implied_template); +ExtdRejectedNSSAI_template(Dynamic_Match_Interface* p_dyn_match); +ExtdRejectedNSSAI_template(const ExtdRejectedNSSAI_template& other_value): Record_Template() { copy_template(other_value); } +~ExtdRejectedNSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdRejectedNSSAI_template& operator=(template_sel other_value); +ExtdRejectedNSSAI_template& operator=(const ExtdRejectedNSSAI& other_value); +ExtdRejectedNSSAI_template& operator=(const OPTIONAL& other_value); +ExtdRejectedNSSAI_template& operator=(const ExtdRejectedNSSAI_template& other_value); +inline boolean match(const ExtdRejectedNSSAI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ExtdRejectedNSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ExtdRejectedNSSAI valueof() const; +inline ExtdRejectedNSSAI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +PartialXtdRejectedNSSAI__List_template& partialXtd(); +const PartialXtdRejectedNSSAI__List_template& partialXtd() const; +Record_Template* create() const { return new ExtdRejectedNSSAI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__AddReqResult : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + BITSTRING field_spare; + BITSTRING field_prd; + Base_Type* fld_vec[4]; + void init_vec(); +public: + NG__AddReqResult(); + NG__AddReqResult(const NG__AddReqResult& other_value); + NG__AddReqResult(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_prd); +inline NG__AddReqResult& operator=(const NG__AddReqResult& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__AddReqResult& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__AddReqResult& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& prd() + {return field_prd;} + inline const BITSTRING& prd() const + {return field_prd;} +Base_Type* clone() const { return new NG__AddReqResult(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__AddReqResult_template : public Record_Template { +void set_specific(); +public: +NG__AddReqResult_template(): Record_Template() {} +NG__AddReqResult_template(template_sel other_value): Record_Template(other_value) {} +NG__AddReqResult_template(const NG__AddReqResult& other_value): Record_Template() { copy_value(&other_value); } +NG__AddReqResult_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__AddReqResult_template(NG__AddReqResult_template* p_precondition, NG__AddReqResult_template* p_implied_template); +NG__AddReqResult_template(Dynamic_Match_Interface* p_dyn_match); +NG__AddReqResult_template(const NG__AddReqResult_template& other_value): Record_Template() { copy_template(other_value); } +~NG__AddReqResult_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__AddReqResult_template& operator=(template_sel other_value); +NG__AddReqResult_template& operator=(const NG__AddReqResult& other_value); +NG__AddReqResult_template& operator=(const OPTIONAL& other_value); +NG__AddReqResult_template& operator=(const NG__AddReqResult_template& other_value); +inline boolean match(const NG__AddReqResult& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__AddReqResult& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__AddReqResult valueof() const; +inline NG__AddReqResult_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& prd(); +const BITSTRING_template& prd() const; +Record_Template* create() const { return new NG__AddReqResult_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NSSRG__ValueList : public Record_Of_Type { + +static const NSSRG__Value UNBOUND_ELEM; + +public: +NSSRG__ValueList(): Record_Of_Type() {} +NSSRG__ValueList(null_type other_value): Record_Of_Type(other_value) {} +NSSRG__ValueList(const NSSRG__ValueList& other_value): Record_Of_Type(other_value) {} +~NSSRG__ValueList() { clean_up(); } + +inline NSSRG__ValueList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NSSRG__ValueList& operator=(const NSSRG__ValueList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSSRG__ValueList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NSSRG__ValueList& other_value) const { return !is_equal(&other_value); } +NSSRG__Value& operator[](int index_value); +NSSRG__Value& operator[](const INTEGER& index_value); +const NSSRG__Value& operator[](int index_value) const; +const NSSRG__Value& operator[](const INTEGER& index_value) const; +NSSRG__ValueList operator<<=(int rotate_count) const; +NSSRG__ValueList operator<<=(const INTEGER& rotate_count) const; +NSSRG__ValueList operator>>=(int rotate_count) const; +NSSRG__ValueList operator>>=(const INTEGER& rotate_count) const; + +NSSRG__ValueList operator+(const NSSRG__ValueList& other_value) const; + +NSSRG__ValueList operator+(const OPTIONAL& other_value) const; + +NSSRG__ValueList operator+(null_type) const; + +NSSRG__ValueList substr(int index, int returncount) const; + +NSSRG__ValueList replace(int index, int len, const NSSRG__ValueList& repl) const; + +NSSRG__ValueList replace(int index, int len, const NSSRG__ValueList_template& repl) const; + +Base_Type* clone() const { return new NSSRG__ValueList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NSSRG__ValueList_template : public Record_Of_Template { +friend NSSRG__ValueList_template operator+(template_sel left_template, const NSSRG__ValueList_template& right_template); +friend NSSRG__ValueList_template operator+(const NSSRG__ValueList& left_value, const NSSRG__ValueList_template& right_template); +friend NSSRG__ValueList_template operator+(template_sel left_template, const NSSRG__ValueList& right_value); +friend NSSRG__ValueList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NSSRG__ValueList_template operator+(const NSSRG__ValueList& left_value, template_sel right_template); + +public: +NSSRG__ValueList_template() {} +NSSRG__ValueList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NSSRG__ValueList_template(null_type other_value); +NSSRG__ValueList_template(const NSSRG__ValueList& other_value) { copy_value(&other_value); } +NSSRG__ValueList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NSSRG__ValueList_template(NSSRG__ValueList_template* p_precondition, NSSRG__ValueList_template* p_implied_template); +NSSRG__ValueList_template(Dynamic_Match_Interface* p_dyn_match); +NSSRG__ValueList_template(const NSSRG__ValueList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NSSRG__ValueList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSSRG__ValueList_template& operator=(template_sel other_value); +NSSRG__ValueList_template& operator=(null_type other_value); +NSSRG__ValueList_template& operator=(const NSSRG__ValueList& other_value); +NSSRG__ValueList_template& operator=(const OPTIONAL& other_value); +NSSRG__ValueList_template& operator=(const NSSRG__ValueList_template& other_value); + +NSSRG__ValueList_template operator+(const NSSRG__ValueList_template& other_value) const; +NSSRG__ValueList_template operator+(const NSSRG__ValueList& other_value) const; +NSSRG__ValueList_template operator+(template_sel other_value) const; +NSSRG__ValueList_template operator+(null_type) const; + +NSSRG__Value_template& operator[](int index_value); +NSSRG__Value_template& operator[](const INTEGER& index_value); +const NSSRG__Value_template& operator[](int index_value) const; +const NSSRG__Value_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NSSRG__ValueList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NSSRG__ValueList valueof() const; +NSSRG__ValueList substr(int index, int returncount) const; + +NSSRG__ValueList replace(int index, int len, const NSSRG__ValueList_template& repl) const; + +NSSRG__ValueList replace(int index, int len, const NSSRG__ValueList& repl) const; + +inline NSSRG__ValueList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NSSRG__ValueList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NSSRG__ValueList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NSSRG__Value : public Record_Type { + OCTETSTRING field_iel; + S__NSSAI__LV field_sNSSAI; + NSSRG__Value_nssrgValues field_nssrgValues; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NSSRG__Value(); + NSSRG__Value(const NSSRG__Value& other_value); + NSSRG__Value(const OCTETSTRING& par_iel, + const S__NSSAI__LV& par_sNSSAI, + const NSSRG__Value_nssrgValues& par_nssrgValues); +inline NSSRG__Value& operator=(const NSSRG__Value& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSSRG__Value& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NSSRG__Value& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline S__NSSAI__LV& sNSSAI() + {return field_sNSSAI;} + inline const S__NSSAI__LV& sNSSAI() const + {return field_sNSSAI;} + inline NSSRG__Value_nssrgValues& nssrgValues() + {return field_nssrgValues;} + inline const NSSRG__Value_nssrgValues& nssrgValues() const + {return field_nssrgValues;} +Base_Type* clone() const { return new NSSRG__Value(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NSSRG__Value_template : public Record_Template { +void set_specific(); +public: +NSSRG__Value_template(): Record_Template() {} +NSSRG__Value_template(template_sel other_value): Record_Template(other_value) {} +NSSRG__Value_template(const NSSRG__Value& other_value): Record_Template() { copy_value(&other_value); } +NSSRG__Value_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NSSRG__Value_template(NSSRG__Value_template* p_precondition, NSSRG__Value_template* p_implied_template); +NSSRG__Value_template(Dynamic_Match_Interface* p_dyn_match); +NSSRG__Value_template(const NSSRG__Value_template& other_value): Record_Template() { copy_template(other_value); } +~NSSRG__Value_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSSRG__Value_template& operator=(template_sel other_value); +NSSRG__Value_template& operator=(const NSSRG__Value& other_value); +NSSRG__Value_template& operator=(const OPTIONAL& other_value); +NSSRG__Value_template& operator=(const NSSRG__Value_template& other_value); +inline boolean match(const NSSRG__Value& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NSSRG__Value& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NSSRG__Value valueof() const; +inline NSSRG__Value_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +S__NSSAI__LV_template& sNSSAI(); +const S__NSSAI__LV_template& sNSSAI() const; +NSSRG__Value_nssrgValues_template& nssrgValues(); +const NSSRG__Value_nssrgValues_template& nssrgValues() const; +Record_Template* create() const { return new NSSRG__Value_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NSSRG__Info : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + NSSRG__ValueList field_valueList; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NSSRG__Info(); + NSSRG__Info(const NSSRG__Info& other_value); + NSSRG__Info(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const NSSRG__ValueList& par_valueList); +inline NSSRG__Info& operator=(const NSSRG__Info& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSSRG__Info& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NSSRG__Info& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline NSSRG__ValueList& valueList() + {return field_valueList;} + inline const NSSRG__ValueList& valueList() const + {return field_valueList;} +Base_Type* clone() const { return new NSSRG__Info(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NSSRG__Info_template : public Record_Template { +void set_specific(); +public: +NSSRG__Info_template(): Record_Template() {} +NSSRG__Info_template(template_sel other_value): Record_Template(other_value) {} +NSSRG__Info_template(const NSSRG__Info& other_value): Record_Template() { copy_value(&other_value); } +NSSRG__Info_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NSSRG__Info_template(NSSRG__Info_template* p_precondition, NSSRG__Info_template* p_implied_template); +NSSRG__Info_template(Dynamic_Match_Interface* p_dyn_match); +NSSRG__Info_template(const NSSRG__Info_template& other_value): Record_Template() { copy_template(other_value); } +~NSSRG__Info_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSSRG__Info_template& operator=(template_sel other_value); +NSSRG__Info_template& operator=(const NSSRG__Info& other_value); +NSSRG__Info_template& operator=(const OPTIONAL& other_value); +NSSRG__Info_template& operator=(const NSSRG__Info_template& other_value); +inline boolean match(const NSSRG__Info& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NSSRG__Info& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NSSRG__Info valueof() const; +inline NSSRG__Info_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +NSSRG__ValueList_template& valueList(); +const NSSRG__ValueList_template& valueList() const; +Record_Template* create() const { return new NSSRG__Info_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RegistrationWaitRange : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_minWaitTime; + OCTETSTRING field_maxWaitTime; + Base_Type* fld_vec[4]; + void init_vec(); +public: + RegistrationWaitRange(); + RegistrationWaitRange(const RegistrationWaitRange& other_value); + RegistrationWaitRange(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_minWaitTime, + const OCTETSTRING& par_maxWaitTime); +inline RegistrationWaitRange& operator=(const RegistrationWaitRange& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RegistrationWaitRange& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RegistrationWaitRange& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& minWaitTime() + {return field_minWaitTime;} + inline const OCTETSTRING& minWaitTime() const + {return field_minWaitTime;} + inline OCTETSTRING& maxWaitTime() + {return field_maxWaitTime;} + inline const OCTETSTRING& maxWaitTime() const + {return field_maxWaitTime;} +Base_Type* clone() const { return new RegistrationWaitRange(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RegistrationWaitRange_template : public Record_Template { +void set_specific(); +public: +RegistrationWaitRange_template(): Record_Template() {} +RegistrationWaitRange_template(template_sel other_value): Record_Template(other_value) {} +RegistrationWaitRange_template(const RegistrationWaitRange& other_value): Record_Template() { copy_value(&other_value); } +RegistrationWaitRange_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RegistrationWaitRange_template(RegistrationWaitRange_template* p_precondition, RegistrationWaitRange_template* p_implied_template); +RegistrationWaitRange_template(Dynamic_Match_Interface* p_dyn_match); +RegistrationWaitRange_template(const RegistrationWaitRange_template& other_value): Record_Template() { copy_template(other_value); } +~RegistrationWaitRange_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RegistrationWaitRange_template& operator=(template_sel other_value); +RegistrationWaitRange_template& operator=(const RegistrationWaitRange& other_value); +RegistrationWaitRange_template& operator=(const OPTIONAL& other_value); +RegistrationWaitRange_template& operator=(const RegistrationWaitRange_template& other_value); +inline boolean match(const RegistrationWaitRange& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RegistrationWaitRange& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RegistrationWaitRange valueof() const; +inline RegistrationWaitRange_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& minWaitTime(); +const OCTETSTRING_template& minWaitTime() const; +OCTETSTRING_template& maxWaitTime(); +const OCTETSTRING_template& maxWaitTime() const; +Record_Template* create() const { return new RegistrationWaitRange_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DisasterPLMNList : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OPTIONAL field_plmnId; + Base_Type* fld_vec[3]; + void init_vec(); +public: + DisasterPLMNList(); + DisasterPLMNList(const DisasterPLMNList& other_value); + DisasterPLMNList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_plmnId); +inline DisasterPLMNList& operator=(const DisasterPLMNList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DisasterPLMNList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DisasterPLMNList& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OPTIONAL& plmnId() + {return field_plmnId;} + inline const OPTIONAL& plmnId() const + {return field_plmnId;} +Base_Type* clone() const { return new DisasterPLMNList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DisasterPLMNList_template : public Record_Template { +void set_specific(); +public: +DisasterPLMNList_template(): Record_Template() {} +DisasterPLMNList_template(template_sel other_value): Record_Template(other_value) {} +DisasterPLMNList_template(const DisasterPLMNList& other_value): Record_Template() { copy_value(&other_value); } +DisasterPLMNList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DisasterPLMNList_template(DisasterPLMNList_template* p_precondition, DisasterPLMNList_template* p_implied_template); +DisasterPLMNList_template(Dynamic_Match_Interface* p_dyn_match); +DisasterPLMNList_template(const DisasterPLMNList_template& other_value): Record_Template() { copy_template(other_value); } +~DisasterPLMNList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DisasterPLMNList_template& operator=(template_sel other_value); +DisasterPLMNList_template& operator=(const DisasterPLMNList& other_value); +DisasterPLMNList_template& operator=(const OPTIONAL& other_value); +DisasterPLMNList_template& operator=(const DisasterPLMNList_template& other_value); +inline boolean match(const DisasterPLMNList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DisasterPLMNList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DisasterPLMNList valueof() const; +inline DisasterPLMNList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +DisasterPLMNList_plmnId_template& plmnId(); +const DisasterPLMNList_plmnId_template& plmnId() const; +Record_Template* create() const { return new DisasterPLMNList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ExtdCAGInfoList : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OPTIONAL field_listOfCAGInfos; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ExtdCAGInfoList(); + ExtdCAGInfoList(const ExtdCAGInfoList& other_value); + ExtdCAGInfoList(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OPTIONAL& par_listOfCAGInfos); +inline ExtdCAGInfoList& operator=(const ExtdCAGInfoList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdCAGInfoList& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ExtdCAGInfoList& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OPTIONAL& listOfCAGInfos() + {return field_listOfCAGInfos;} + inline const OPTIONAL& listOfCAGInfos() const + {return field_listOfCAGInfos;} +Base_Type* clone() const { return new ExtdCAGInfoList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ExtdCAGInfoList_template : public Record_Template { +void set_specific(); +public: +ExtdCAGInfoList_template(): Record_Template() {} +ExtdCAGInfoList_template(template_sel other_value): Record_Template(other_value) {} +ExtdCAGInfoList_template(const ExtdCAGInfoList& other_value): Record_Template() { copy_value(&other_value); } +ExtdCAGInfoList_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ExtdCAGInfoList_template(ExtdCAGInfoList_template* p_precondition, ExtdCAGInfoList_template* p_implied_template); +ExtdCAGInfoList_template(Dynamic_Match_Interface* p_dyn_match); +ExtdCAGInfoList_template(const ExtdCAGInfoList_template& other_value): Record_Template() { copy_template(other_value); } +~ExtdCAGInfoList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdCAGInfoList_template& operator=(template_sel other_value); +ExtdCAGInfoList_template& operator=(const ExtdCAGInfoList& other_value); +ExtdCAGInfoList_template& operator=(const OPTIONAL& other_value); +ExtdCAGInfoList_template& operator=(const ExtdCAGInfoList_template& other_value); +inline boolean match(const ExtdCAGInfoList& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ExtdCAGInfoList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ExtdCAGInfoList valueof() const; +inline ExtdCAGInfoList_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +ExtdCAGInfoList_listOfCAGInfos_template& listOfCAGInfos(); +const ExtdCAGInfoList_listOfCAGInfos_template& listOfCAGInfos() const; +Record_Template* create() const { return new ExtdCAGInfoList_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ExtdCAGInfoList_listOfCAGInfos : public Record_Of_Type { + +static const ExtdCAG__Info UNBOUND_ELEM; + +public: +ExtdCAGInfoList_listOfCAGInfos(): Record_Of_Type() {} +ExtdCAGInfoList_listOfCAGInfos(null_type other_value): Record_Of_Type(other_value) {} +ExtdCAGInfoList_listOfCAGInfos(const ExtdCAGInfoList_listOfCAGInfos& other_value): Record_Of_Type(other_value) {} +~ExtdCAGInfoList_listOfCAGInfos() { clean_up(); } + +inline ExtdCAGInfoList_listOfCAGInfos& operator=(null_type other_value) { set_val(other_value); return *this; } +inline ExtdCAGInfoList_listOfCAGInfos& operator=(const ExtdCAGInfoList_listOfCAGInfos& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdCAGInfoList_listOfCAGInfos& other_value) const { return is_equal(&other_value); } +boolean operator!=(const ExtdCAGInfoList_listOfCAGInfos& other_value) const { return !is_equal(&other_value); } +ExtdCAG__Info& operator[](int index_value); +ExtdCAG__Info& operator[](const INTEGER& index_value); +const ExtdCAG__Info& operator[](int index_value) const; +const ExtdCAG__Info& operator[](const INTEGER& index_value) const; +ExtdCAGInfoList_listOfCAGInfos operator<<=(int rotate_count) const; +ExtdCAGInfoList_listOfCAGInfos operator<<=(const INTEGER& rotate_count) const; +ExtdCAGInfoList_listOfCAGInfos operator>>=(int rotate_count) const; +ExtdCAGInfoList_listOfCAGInfos operator>>=(const INTEGER& rotate_count) const; + +ExtdCAGInfoList_listOfCAGInfos operator+(const ExtdCAGInfoList_listOfCAGInfos& other_value) const; + +ExtdCAGInfoList_listOfCAGInfos operator+(const OPTIONAL& other_value) const; + +ExtdCAGInfoList_listOfCAGInfos operator+(null_type) const; + +ExtdCAGInfoList_listOfCAGInfos substr(int index, int returncount) const; + +ExtdCAGInfoList_listOfCAGInfos replace(int index, int len, const ExtdCAGInfoList_listOfCAGInfos& repl) const; + +ExtdCAGInfoList_listOfCAGInfos replace(int index, int len, const ExtdCAGInfoList_listOfCAGInfos_template& repl) const; + +Base_Type* clone() const { return new ExtdCAGInfoList_listOfCAGInfos(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class ExtdCAGInfoList_listOfCAGInfos_template : public Record_Of_Template { +friend ExtdCAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const ExtdCAGInfoList_listOfCAGInfos_template& right_template); +friend ExtdCAGInfoList_listOfCAGInfos_template operator+(const ExtdCAGInfoList_listOfCAGInfos& left_value, const ExtdCAGInfoList_listOfCAGInfos_template& right_template); +friend ExtdCAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const ExtdCAGInfoList_listOfCAGInfos& right_value); +friend ExtdCAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend ExtdCAGInfoList_listOfCAGInfos_template operator+(const ExtdCAGInfoList_listOfCAGInfos& left_value, template_sel right_template); + +public: +ExtdCAGInfoList_listOfCAGInfos_template() {} +ExtdCAGInfoList_listOfCAGInfos_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +ExtdCAGInfoList_listOfCAGInfos_template(null_type other_value); +ExtdCAGInfoList_listOfCAGInfos_template(const ExtdCAGInfoList_listOfCAGInfos& other_value) { copy_value(&other_value); } +ExtdCAGInfoList_listOfCAGInfos_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +ExtdCAGInfoList_listOfCAGInfos_template(ExtdCAGInfoList_listOfCAGInfos_template* p_precondition, ExtdCAGInfoList_listOfCAGInfos_template* p_implied_template); +ExtdCAGInfoList_listOfCAGInfos_template(Dynamic_Match_Interface* p_dyn_match); +ExtdCAGInfoList_listOfCAGInfos_template(const ExtdCAGInfoList_listOfCAGInfos_template& other_value): Record_Of_Template() { copy_template(other_value); } +~ExtdCAGInfoList_listOfCAGInfos_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdCAGInfoList_listOfCAGInfos_template& operator=(template_sel other_value); +ExtdCAGInfoList_listOfCAGInfos_template& operator=(null_type other_value); +ExtdCAGInfoList_listOfCAGInfos_template& operator=(const ExtdCAGInfoList_listOfCAGInfos& other_value); +ExtdCAGInfoList_listOfCAGInfos_template& operator=(const OPTIONAL& other_value); +ExtdCAGInfoList_listOfCAGInfos_template& operator=(const ExtdCAGInfoList_listOfCAGInfos_template& other_value); + +ExtdCAGInfoList_listOfCAGInfos_template operator+(const ExtdCAGInfoList_listOfCAGInfos_template& other_value) const; +ExtdCAGInfoList_listOfCAGInfos_template operator+(const ExtdCAGInfoList_listOfCAGInfos& other_value) const; +ExtdCAGInfoList_listOfCAGInfos_template operator+(template_sel other_value) const; +ExtdCAGInfoList_listOfCAGInfos_template operator+(null_type) const; + +ExtdCAG__Info_template& operator[](int index_value); +ExtdCAG__Info_template& operator[](const INTEGER& index_value); +const ExtdCAG__Info_template& operator[](int index_value) const; +const ExtdCAG__Info_template& operator[](const INTEGER& index_value) const; +inline boolean match(const ExtdCAGInfoList_listOfCAGInfos& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +ExtdCAGInfoList_listOfCAGInfos valueof() const; +ExtdCAGInfoList_listOfCAGInfos substr(int index, int returncount) const; + +ExtdCAGInfoList_listOfCAGInfos replace(int index, int len, const ExtdCAGInfoList_listOfCAGInfos_template& repl) const; + +ExtdCAGInfoList_listOfCAGInfos replace(int index, int len, const ExtdCAGInfoList_listOfCAGInfos& repl) const; + +inline ExtdCAGInfoList_listOfCAGInfos_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const ExtdCAGInfoList_listOfCAGInfos& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new ExtdCAGInfoList_listOfCAGInfos_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class ExtdCAG__Info : public Record_Type { + OCTETSTRING field_iel; + CAG__Info__V field_cagValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + ExtdCAG__Info(); + ExtdCAG__Info(const ExtdCAG__Info& other_value); + ExtdCAG__Info(const OCTETSTRING& par_iel, + const CAG__Info__V& par_cagValue); +inline ExtdCAG__Info& operator=(const ExtdCAG__Info& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ExtdCAG__Info& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ExtdCAG__Info& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline CAG__Info__V& cagValue() + {return field_cagValue;} + inline const CAG__Info__V& cagValue() const + {return field_cagValue;} +Base_Type* clone() const { return new ExtdCAG__Info(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ExtdCAG__Info_template : public Record_Template { +void set_specific(); +public: +ExtdCAG__Info_template(): Record_Template() {} +ExtdCAG__Info_template(template_sel other_value): Record_Template(other_value) {} +ExtdCAG__Info_template(const ExtdCAG__Info& other_value): Record_Template() { copy_value(&other_value); } +ExtdCAG__Info_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ExtdCAG__Info_template(ExtdCAG__Info_template* p_precondition, ExtdCAG__Info_template* p_implied_template); +ExtdCAG__Info_template(Dynamic_Match_Interface* p_dyn_match); +ExtdCAG__Info_template(const ExtdCAG__Info_template& other_value): Record_Template() { copy_template(other_value); } +~ExtdCAG__Info_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ExtdCAG__Info_template& operator=(template_sel other_value); +ExtdCAG__Info_template& operator=(const ExtdCAG__Info& other_value); +ExtdCAG__Info_template& operator=(const OPTIONAL& other_value); +ExtdCAG__Info_template& operator=(const ExtdCAG__Info_template& other_value); +inline boolean match(const ExtdCAG__Info& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ExtdCAG__Info& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ExtdCAG__Info valueof() const; +inline ExtdCAG__Info_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +CAG__Info__V_template& cagValue(); +const CAG__Info__V_template& cagValue() const; +Record_Template* create() const { return new ExtdCAG__Info_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NSAG__Info_nsagList : public Record_Of_Type { + +static const NSAG UNBOUND_ELEM; + +public: +NSAG__Info_nsagList(): Record_Of_Type() {} +NSAG__Info_nsagList(null_type other_value): Record_Of_Type(other_value) {} +NSAG__Info_nsagList(const NSAG__Info_nsagList& other_value): Record_Of_Type(other_value) {} +~NSAG__Info_nsagList() { clean_up(); } + +inline NSAG__Info_nsagList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NSAG__Info_nsagList& operator=(const NSAG__Info_nsagList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSAG__Info_nsagList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NSAG__Info_nsagList& other_value) const { return !is_equal(&other_value); } +NSAG& operator[](int index_value); +NSAG& operator[](const INTEGER& index_value); +const NSAG& operator[](int index_value) const; +const NSAG& operator[](const INTEGER& index_value) const; +NSAG__Info_nsagList operator<<=(int rotate_count) const; +NSAG__Info_nsagList operator<<=(const INTEGER& rotate_count) const; +NSAG__Info_nsagList operator>>=(int rotate_count) const; +NSAG__Info_nsagList operator>>=(const INTEGER& rotate_count) const; + +NSAG__Info_nsagList operator+(const NSAG__Info_nsagList& other_value) const; + +NSAG__Info_nsagList operator+(const OPTIONAL& other_value) const; + +NSAG__Info_nsagList operator+(null_type) const; + +NSAG__Info_nsagList substr(int index, int returncount) const; + +NSAG__Info_nsagList replace(int index, int len, const NSAG__Info_nsagList& repl) const; + +NSAG__Info_nsagList replace(int index, int len, const NSAG__Info_nsagList_template& repl) const; + +Base_Type* clone() const { return new NSAG__Info_nsagList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NSAG__Info_nsagList_template : public Record_Of_Template { +friend NSAG__Info_nsagList_template operator+(template_sel left_template, const NSAG__Info_nsagList_template& right_template); +friend NSAG__Info_nsagList_template operator+(const NSAG__Info_nsagList& left_value, const NSAG__Info_nsagList_template& right_template); +friend NSAG__Info_nsagList_template operator+(template_sel left_template, const NSAG__Info_nsagList& right_value); +friend NSAG__Info_nsagList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NSAG__Info_nsagList_template operator+(const NSAG__Info_nsagList& left_value, template_sel right_template); + +public: +NSAG__Info_nsagList_template() {} +NSAG__Info_nsagList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NSAG__Info_nsagList_template(null_type other_value); +NSAG__Info_nsagList_template(const NSAG__Info_nsagList& other_value) { copy_value(&other_value); } +NSAG__Info_nsagList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NSAG__Info_nsagList_template(NSAG__Info_nsagList_template* p_precondition, NSAG__Info_nsagList_template* p_implied_template); +NSAG__Info_nsagList_template(Dynamic_Match_Interface* p_dyn_match); +NSAG__Info_nsagList_template(const NSAG__Info_nsagList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NSAG__Info_nsagList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSAG__Info_nsagList_template& operator=(template_sel other_value); +NSAG__Info_nsagList_template& operator=(null_type other_value); +NSAG__Info_nsagList_template& operator=(const NSAG__Info_nsagList& other_value); +NSAG__Info_nsagList_template& operator=(const OPTIONAL& other_value); +NSAG__Info_nsagList_template& operator=(const NSAG__Info_nsagList_template& other_value); + +NSAG__Info_nsagList_template operator+(const NSAG__Info_nsagList_template& other_value) const; +NSAG__Info_nsagList_template operator+(const NSAG__Info_nsagList& other_value) const; +NSAG__Info_nsagList_template operator+(template_sel other_value) const; +NSAG__Info_nsagList_template operator+(null_type) const; + +NSAG_template& operator[](int index_value); +NSAG_template& operator[](const INTEGER& index_value); +const NSAG_template& operator[](int index_value) const; +const NSAG_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NSAG__Info_nsagList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NSAG__Info_nsagList valueof() const; +NSAG__Info_nsagList substr(int index, int returncount) const; + +NSAG__Info_nsagList replace(int index, int len, const NSAG__Info_nsagList_template& repl) const; + +NSAG__Info_nsagList replace(int index, int len, const NSAG__Info_nsagList& repl) const; + +inline NSAG__Info_nsagList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NSAG__Info_nsagList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NSAG__Info_nsagList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NSAG : public Record_Type { + OCTETSTRING field_iel; + OCTETSTRING field_id; + NSSAI__LV field_sNSSAIList; + OCTETSTRING field_priority; + NG__TrackingAreaIdList__LV field_taiList; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NSAG(); + NSAG(const NSAG& other_value); + NSAG(const OCTETSTRING& par_iel, + const OCTETSTRING& par_id, + const NSSAI__LV& par_sNSSAIList, + const OCTETSTRING& par_priority, + const NG__TrackingAreaIdList__LV& par_taiList); +inline NSAG& operator=(const NSAG& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSAG& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NSAG& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline NSSAI__LV& sNSSAIList() + {return field_sNSSAIList;} + inline const NSSAI__LV& sNSSAIList() const + {return field_sNSSAIList;} + inline OCTETSTRING& priority() + {return field_priority;} + inline const OCTETSTRING& priority() const + {return field_priority;} + inline NG__TrackingAreaIdList__LV& taiList() + {return field_taiList;} + inline const NG__TrackingAreaIdList__LV& taiList() const + {return field_taiList;} +Base_Type* clone() const { return new NSAG(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NSAG_template : public Record_Template { +void set_specific(); +public: +NSAG_template(): Record_Template() {} +NSAG_template(template_sel other_value): Record_Template(other_value) {} +NSAG_template(const NSAG& other_value): Record_Template() { copy_value(&other_value); } +NSAG_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NSAG_template(NSAG_template* p_precondition, NSAG_template* p_implied_template); +NSAG_template(Dynamic_Match_Interface* p_dyn_match); +NSAG_template(const NSAG_template& other_value): Record_Template() { copy_template(other_value); } +~NSAG_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSAG_template& operator=(template_sel other_value); +NSAG_template& operator=(const NSAG& other_value); +NSAG_template& operator=(const OPTIONAL& other_value); +NSAG_template& operator=(const NSAG_template& other_value); +inline boolean match(const NSAG& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NSAG& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NSAG valueof() const; +inline NSAG_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +NSSAI__LV_template& sNSSAIList(); +const NSSAI__LV_template& sNSSAIList() const; +OCTETSTRING_template& priority(); +const OCTETSTRING_template& priority() const; +NG__TrackingAreaIdList__LV_template& taiList(); +const NG__TrackingAreaIdList__LV_template& taiList() const; +Record_Template* create() const { return new NSAG_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NSAG__Info : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + NSAG__Info_nsagList field_nsagList; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NSAG__Info(); + NSAG__Info(const NSAG__Info& other_value); + NSAG__Info(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const NSAG__Info_nsagList& par_nsagList); +inline NSAG__Info& operator=(const NSAG__Info& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSAG__Info& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NSAG__Info& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline NSAG__Info_nsagList& nsagList() + {return field_nsagList;} + inline const NSAG__Info_nsagList& nsagList() const + {return field_nsagList;} +Base_Type* clone() const { return new NSAG__Info(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NSAG__Info_template : public Record_Template { +void set_specific(); +public: +NSAG__Info_template(): Record_Template() {} +NSAG__Info_template(template_sel other_value): Record_Template(other_value) {} +NSAG__Info_template(const NSAG__Info& other_value): Record_Template() { copy_value(&other_value); } +NSAG__Info_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NSAG__Info_template(NSAG__Info_template* p_precondition, NSAG__Info_template* p_implied_template); +NSAG__Info_template(Dynamic_Match_Interface* p_dyn_match); +NSAG__Info_template(const NSAG__Info_template& other_value): Record_Template() { copy_template(other_value); } +~NSAG__Info_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSAG__Info_template& operator=(template_sel other_value); +NSAG__Info_template& operator=(const NSAG__Info& other_value); +NSAG__Info_template& operator=(const OPTIONAL& other_value); +NSAG__Info_template& operator=(const NSAG__Info_template& other_value); +inline boolean match(const NSAG__Info& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NSAG__Info& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NSAG__Info valueof() const; +inline NSAG__Info_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +NSAG__Info_nsagList_template& nsagList(); +const NSAG__Info_nsagList_template& nsagList() const; +Record_Template* create() const { return new NSAG__Info_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__REGISTRATION__COMPLETE : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + OPTIONAL field_sorTransparentContainer; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NG__REGISTRATION__COMPLETE(); + NG__REGISTRATION__COMPLETE(const NG__REGISTRATION__COMPLETE& other_value); + NG__REGISTRATION__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_sorTransparentContainer); +inline NG__REGISTRATION__COMPLETE& operator=(const NG__REGISTRATION__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__REGISTRATION__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__REGISTRATION__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& sorTransparentContainer() + {return field_sorTransparentContainer;} + inline const OPTIONAL& sorTransparentContainer() const + {return field_sorTransparentContainer;} +Base_Type* clone() const { return new NG__REGISTRATION__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__REGISTRATION__COMPLETE_template : public Record_Template { +void set_specific(); +public: +NG__REGISTRATION__COMPLETE_template(): Record_Template() {} +NG__REGISTRATION__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +NG__REGISTRATION__COMPLETE_template(const NG__REGISTRATION__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +NG__REGISTRATION__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__REGISTRATION__COMPLETE_template(NG__REGISTRATION__COMPLETE_template* p_precondition, NG__REGISTRATION__COMPLETE_template* p_implied_template); +NG__REGISTRATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +NG__REGISTRATION__COMPLETE_template(const NG__REGISTRATION__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__REGISTRATION__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__REGISTRATION__COMPLETE_template& operator=(template_sel other_value); +NG__REGISTRATION__COMPLETE_template& operator=(const NG__REGISTRATION__COMPLETE& other_value); +NG__REGISTRATION__COMPLETE_template& operator=(const OPTIONAL& other_value); +NG__REGISTRATION__COMPLETE_template& operator=(const NG__REGISTRATION__COMPLETE_template& other_value); +inline boolean match(const NG__REGISTRATION__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__REGISTRATION__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__REGISTRATION__COMPLETE valueof() const; +inline NG__REGISTRATION__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +SORTransparentContainer_template& sorTransparentContainer(); +const SORTransparentContainer_template& sorTransparentContainer() const; +Record_Template* create() const { return new NG__REGISTRATION__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__REGISTRATION__REJECT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + GMM__GSM__Cause field_gmmCause; + OPTIONAL field_t3346; + OPTIONAL field_t3502; + OPTIONAL field_eapMessage; + OPTIONAL field_rejectedNSSAI; + OPTIONAL field_cagInfoList; + OPTIONAL field_extdRejectedNSSAI; + OPTIONAL field_disasterReturnWaitRange; + OPTIONAL field_extdCAGInfoList; + OPTIONAL field_lowerBoundTimerValue; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[16]; + void init_vec(); +public: + NG__REGISTRATION__REJECT(); + NG__REGISTRATION__REJECT(const NG__REGISTRATION__REJECT& other_value); + NG__REGISTRATION__REJECT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause, + const OPTIONAL& par_t3346, + const OPTIONAL& par_t3502, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_rejectedNSSAI, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_extdRejectedNSSAI, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline NG__REGISTRATION__REJECT& operator=(const NG__REGISTRATION__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__REGISTRATION__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__REGISTRATION__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gmmCause() + {return field_gmmCause;} + inline const GMM__GSM__Cause& gmmCause() const + {return field_gmmCause;} + inline OPTIONAL& t3346() + {return field_t3346;} + inline const OPTIONAL& t3346() const + {return field_t3346;} + inline OPTIONAL& t3502() + {return field_t3502;} + inline const OPTIONAL& t3502() const + {return field_t3502;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& rejectedNSSAI() + {return field_rejectedNSSAI;} + inline const OPTIONAL& rejectedNSSAI() const + {return field_rejectedNSSAI;} + inline OPTIONAL& cagInfoList() + {return field_cagInfoList;} + inline const OPTIONAL& cagInfoList() const + {return field_cagInfoList;} + inline OPTIONAL& extdRejectedNSSAI() + {return field_extdRejectedNSSAI;} + inline const OPTIONAL& extdRejectedNSSAI() const + {return field_extdRejectedNSSAI;} + inline OPTIONAL& disasterReturnWaitRange() + {return field_disasterReturnWaitRange;} + inline const OPTIONAL& disasterReturnWaitRange() const + {return field_disasterReturnWaitRange;} + inline OPTIONAL& extdCAGInfoList() + {return field_extdCAGInfoList;} + inline const OPTIONAL& extdCAGInfoList() const + {return field_extdCAGInfoList;} + inline OPTIONAL& lowerBoundTimerValue() + {return field_lowerBoundTimerValue;} + inline const OPTIONAL& lowerBoundTimerValue() const + {return field_lowerBoundTimerValue;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new NG__REGISTRATION__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 16; } +int optional_count() const { return 11; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__REGISTRATION__REJECT_template : public Record_Template { +void set_specific(); +public: +NG__REGISTRATION__REJECT_template(): Record_Template() {} +NG__REGISTRATION__REJECT_template(template_sel other_value): Record_Template(other_value) {} +NG__REGISTRATION__REJECT_template(const NG__REGISTRATION__REJECT& other_value): Record_Template() { copy_value(&other_value); } +NG__REGISTRATION__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__REGISTRATION__REJECT_template(NG__REGISTRATION__REJECT_template* p_precondition, NG__REGISTRATION__REJECT_template* p_implied_template); +NG__REGISTRATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +NG__REGISTRATION__REJECT_template(const NG__REGISTRATION__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__REGISTRATION__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__REGISTRATION__REJECT_template& operator=(template_sel other_value); +NG__REGISTRATION__REJECT_template& operator=(const NG__REGISTRATION__REJECT& other_value); +NG__REGISTRATION__REJECT_template& operator=(const OPTIONAL& other_value); +NG__REGISTRATION__REJECT_template& operator=(const NG__REGISTRATION__REJECT_template& other_value); +inline boolean match(const NG__REGISTRATION__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__REGISTRATION__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__REGISTRATION__REJECT valueof() const; +inline NG__REGISTRATION__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gmmCause(); +const GMM__GSM__Cause_template& gmmCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3346(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3346() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3502(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3502() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +RejectedNSSAI_template& rejectedNSSAI(); +const RejectedNSSAI_template& rejectedNSSAI() const; +CAGInfoList_template& cagInfoList(); +const CAGInfoList_template& cagInfoList() const; +ExtdRejectedNSSAI_template& extdRejectedNSSAI(); +const ExtdRejectedNSSAI_template& extdRejectedNSSAI() const; +RegistrationWaitRange_template& disasterReturnWaitRange(); +const RegistrationWaitRange_template& disasterReturnWaitRange() const; +ExtdCAGInfoList_template& extdCAGInfoList(); +const ExtdCAGInfoList_template& extdCAGInfoList() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue() const; +NG__TrackingAreaIdList_template& forbidTAIList__Roaming(); +const NG__TrackingAreaIdList_template& forbidTAIList__Roaming() const; +NG__TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const NG__TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new NG__REGISTRATION__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__UL__NAS__TRANSPORT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet2; + PayloadContainerType field_payloadContainerType; + PayloadContainer field_payload; + OPTIONAL field_pduSessionId; + OPTIONAL field_oldPDUSessionId; + OPTIONAL field_requestType; + OPTIONAL field_s__NSSAI; + OPTIONAL field_dnn; + OPTIONAL field_additionalInfo; + OPTIONAL field_maPDUSessionInfo; + OPTIONAL field_releaseAssistanceInd; + Base_Type* fld_vec[15]; + void init_vec(); +public: + NG__UL__NAS__TRANSPORT(); + NG__UL__NAS__TRANSPORT(const NG__UL__NAS__TRANSPORT& other_value); + NG__UL__NAS__TRANSPORT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const PayloadContainerType& par_payloadContainerType, + const PayloadContainer& par_payload, + const OPTIONAL& par_pduSessionId, + const OPTIONAL& par_oldPDUSessionId, + const OPTIONAL& par_requestType, + const OPTIONAL& par_s__NSSAI, + const OPTIONAL& par_dnn, + const OPTIONAL& par_additionalInfo, + const OPTIONAL& par_maPDUSessionInfo, + const OPTIONAL& par_releaseAssistanceInd); +inline NG__UL__NAS__TRANSPORT& operator=(const NG__UL__NAS__TRANSPORT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__UL__NAS__TRANSPORT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__UL__NAS__TRANSPORT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet2() + {return field_spareHalfOctet2;} + inline const HEXSTRING& spareHalfOctet2() const + {return field_spareHalfOctet2;} + inline PayloadContainerType& payloadContainerType() + {return field_payloadContainerType;} + inline const PayloadContainerType& payloadContainerType() const + {return field_payloadContainerType;} + inline PayloadContainer& payload() + {return field_payload;} + inline const PayloadContainer& payload() const + {return field_payload;} + inline OPTIONAL& pduSessionId() + {return field_pduSessionId;} + inline const OPTIONAL& pduSessionId() const + {return field_pduSessionId;} + inline OPTIONAL& oldPDUSessionId() + {return field_oldPDUSessionId;} + inline const OPTIONAL& oldPDUSessionId() const + {return field_oldPDUSessionId;} + inline OPTIONAL& requestType() + {return field_requestType;} + inline const OPTIONAL& requestType() const + {return field_requestType;} + inline OPTIONAL& s__NSSAI() + {return field_s__NSSAI;} + inline const OPTIONAL& s__NSSAI() const + {return field_s__NSSAI;} + inline OPTIONAL& dnn() + {return field_dnn;} + inline const OPTIONAL& dnn() const + {return field_dnn;} + inline OPTIONAL& additionalInfo() + {return field_additionalInfo;} + inline const OPTIONAL& additionalInfo() const + {return field_additionalInfo;} + inline OPTIONAL& maPDUSessionInfo() + {return field_maPDUSessionInfo;} + inline const OPTIONAL& maPDUSessionInfo() const + {return field_maPDUSessionInfo;} + inline OPTIONAL& releaseAssistanceInd() + {return field_releaseAssistanceInd;} + inline const OPTIONAL& releaseAssistanceInd() const + {return field_releaseAssistanceInd;} +Base_Type* clone() const { return new NG__UL__NAS__TRANSPORT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 15; } +int optional_count() const { return 8; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__UL__NAS__TRANSPORT_template : public Record_Template { +void set_specific(); +public: +NG__UL__NAS__TRANSPORT_template(): Record_Template() {} +NG__UL__NAS__TRANSPORT_template(template_sel other_value): Record_Template(other_value) {} +NG__UL__NAS__TRANSPORT_template(const NG__UL__NAS__TRANSPORT& other_value): Record_Template() { copy_value(&other_value); } +NG__UL__NAS__TRANSPORT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__UL__NAS__TRANSPORT_template(NG__UL__NAS__TRANSPORT_template* p_precondition, NG__UL__NAS__TRANSPORT_template* p_implied_template); +NG__UL__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match); +NG__UL__NAS__TRANSPORT_template(const NG__UL__NAS__TRANSPORT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__UL__NAS__TRANSPORT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__UL__NAS__TRANSPORT_template& operator=(template_sel other_value); +NG__UL__NAS__TRANSPORT_template& operator=(const NG__UL__NAS__TRANSPORT& other_value); +NG__UL__NAS__TRANSPORT_template& operator=(const OPTIONAL& other_value); +NG__UL__NAS__TRANSPORT_template& operator=(const NG__UL__NAS__TRANSPORT_template& other_value); +inline boolean match(const NG__UL__NAS__TRANSPORT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__UL__NAS__TRANSPORT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__UL__NAS__TRANSPORT valueof() const; +inline NG__UL__NAS__TRANSPORT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet2(); +const HEXSTRING_template& spareHalfOctet2() const; +PayloadContainerType_template& payloadContainerType(); +const PayloadContainerType_template& payloadContainerType() const; +PayloadContainer_template& payload(); +const PayloadContainer_template& payload() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +NG__PDU__SessionId_template& oldPDUSessionId(); +const NG__PDU__SessionId_template& oldPDUSessionId() const; +NG__Request__Type_template& requestType(); +const NG__Request__Type_template& requestType() const; +S__NSSAI__Type_template& s__NSSAI(); +const S__NSSAI__Type_template& s__NSSAI() const; +DNN_template& dnn(); +const DNN_template& dnn() const; +NAS__CommonTypeDefs::AdditionalInformation_template& additionalInfo(); +const NAS__CommonTypeDefs::AdditionalInformation_template& additionalInfo() const; +MA__PDUSessionInfo_template& maPDUSessionInfo(); +const MA__PDUSessionInfo_template& maPDUSessionInfo() const; +NAS__CommonTypeDefs::ReleaseAssistanceInd_template& releaseAssistanceInd(); +const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& releaseAssistanceInd() const; +Record_Template* create() const { return new NG__UL__NAS__TRANSPORT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SessionId : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_sessionId; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__PDU__SessionId(); + NG__PDU__SessionId(const NG__PDU__SessionId& other_value); + NG__PDU__SessionId(const OPTIONAL& par_iei, + const OCTETSTRING& par_sessionId); +inline NG__PDU__SessionId& operator=(const NG__PDU__SessionId& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SessionId& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SessionId& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& sessionId() + {return field_sessionId;} + inline const OCTETSTRING& sessionId() const + {return field_sessionId;} +Base_Type* clone() const { return new NG__PDU__SessionId(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SessionId_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SessionId_template(): Record_Template() {} +NG__PDU__SessionId_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SessionId_template(const NG__PDU__SessionId& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SessionId_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SessionId_template(NG__PDU__SessionId_template* p_precondition, NG__PDU__SessionId_template* p_implied_template); +NG__PDU__SessionId_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SessionId_template(const NG__PDU__SessionId_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SessionId_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SessionId_template& operator=(template_sel other_value); +NG__PDU__SessionId_template& operator=(const NG__PDU__SessionId& other_value); +NG__PDU__SessionId_template& operator=(const OPTIONAL& other_value); +NG__PDU__SessionId_template& operator=(const NG__PDU__SessionId_template& other_value); +inline boolean match(const NG__PDU__SessionId& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SessionId& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SessionId valueof() const; +inline NG__PDU__SessionId_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& sessionId(); +const OCTETSTRING_template& sessionId() const; +Record_Template* create() const { return new NG__PDU__SessionId_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__Request__Type : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_requestValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NG__Request__Type(); + NG__Request__Type(const NG__Request__Type& other_value); + NG__Request__Type(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_requestValue); +inline NG__Request__Type& operator=(const NG__Request__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__Request__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__Request__Type& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& requestValue() + {return field_requestValue;} + inline const BITSTRING& requestValue() const + {return field_requestValue;} +Base_Type* clone() const { return new NG__Request__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__Request__Type_template : public Record_Template { +void set_specific(); +public: +NG__Request__Type_template(): Record_Template() {} +NG__Request__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__Request__Type_template(const NG__Request__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__Request__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__Request__Type_template(NG__Request__Type_template* p_precondition, NG__Request__Type_template* p_implied_template); +NG__Request__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__Request__Type_template(const NG__Request__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__Request__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__Request__Type_template& operator=(template_sel other_value); +NG__Request__Type_template& operator=(const NG__Request__Type& other_value); +NG__Request__Type_template& operator=(const OPTIONAL& other_value); +NG__Request__Type_template& operator=(const NG__Request__Type_template& other_value); +inline boolean match(const NG__Request__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__Request__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__Request__Type valueof() const; +inline NG__Request__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& requestValue(); +const BITSTRING_template& requestValue() const; +Record_Template* create() const { return new NG__Request__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class S__NSSAI__Type : public Record_Type { + OPTIONAL field_iei; + S__NSSAI__LV field_lvPart; + Base_Type* fld_vec[2]; + void init_vec(); +public: + S__NSSAI__Type(); + S__NSSAI__Type(const S__NSSAI__Type& other_value); + S__NSSAI__Type(const OPTIONAL& par_iei, + const S__NSSAI__LV& par_lvPart); +inline S__NSSAI__Type& operator=(const S__NSSAI__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const S__NSSAI__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const S__NSSAI__Type& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline S__NSSAI__LV& lvPart() + {return field_lvPart;} + inline const S__NSSAI__LV& lvPart() const + {return field_lvPart;} +Base_Type* clone() const { return new S__NSSAI__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class S__NSSAI__Type_template : public Record_Template { +void set_specific(); +public: +S__NSSAI__Type_template(): Record_Template() {} +S__NSSAI__Type_template(template_sel other_value): Record_Template(other_value) {} +S__NSSAI__Type_template(const S__NSSAI__Type& other_value): Record_Template() { copy_value(&other_value); } +S__NSSAI__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +S__NSSAI__Type_template(S__NSSAI__Type_template* p_precondition, S__NSSAI__Type_template* p_implied_template); +S__NSSAI__Type_template(Dynamic_Match_Interface* p_dyn_match); +S__NSSAI__Type_template(const S__NSSAI__Type_template& other_value): Record_Template() { copy_template(other_value); } +~S__NSSAI__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +S__NSSAI__Type_template& operator=(template_sel other_value); +S__NSSAI__Type_template& operator=(const S__NSSAI__Type& other_value); +S__NSSAI__Type_template& operator=(const OPTIONAL& other_value); +S__NSSAI__Type_template& operator=(const S__NSSAI__Type_template& other_value); +inline boolean match(const S__NSSAI__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const S__NSSAI__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +S__NSSAI__Type valueof() const; +inline S__NSSAI__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +S__NSSAI__LV_template& lvPart(); +const S__NSSAI__LV_template& lvPart() const; +Record_Template* create() const { return new S__NSSAI__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DNN : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_dnnValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + DNN(); + DNN(const DNN& other_value); + DNN(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_dnnValue); +inline DNN& operator=(const DNN& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DNN& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DNN& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& dnnValue() + {return field_dnnValue;} + inline const OCTETSTRING& dnnValue() const + {return field_dnnValue;} +Base_Type* clone() const { return new DNN(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DNN_template : public Record_Template { +void set_specific(); +public: +DNN_template(): Record_Template() {} +DNN_template(template_sel other_value): Record_Template(other_value) {} +DNN_template(const DNN& other_value): Record_Template() { copy_value(&other_value); } +DNN_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DNN_template(DNN_template* p_precondition, DNN_template* p_implied_template); +DNN_template(Dynamic_Match_Interface* p_dyn_match); +DNN_template(const DNN_template& other_value): Record_Template() { copy_template(other_value); } +~DNN_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DNN_template& operator=(template_sel other_value); +DNN_template& operator=(const DNN& other_value); +DNN_template& operator=(const OPTIONAL& other_value); +DNN_template& operator=(const DNN_template& other_value); +inline boolean match(const DNN& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DNN& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DNN valueof() const; +inline DNN_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& dnnValue(); +const OCTETSTRING_template& dnnValue() const; +Record_Template* create() const { return new DNN_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MA__PDUSessionInfo : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_maPDUSession; + Base_Type* fld_vec[2]; + void init_vec(); +public: + MA__PDUSessionInfo(); + MA__PDUSessionInfo(const MA__PDUSessionInfo& other_value); + MA__PDUSessionInfo(const HEXSTRING& par_iei, + const BITSTRING& par_maPDUSession); +inline MA__PDUSessionInfo& operator=(const MA__PDUSessionInfo& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MA__PDUSessionInfo& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MA__PDUSessionInfo& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& maPDUSession() + {return field_maPDUSession;} + inline const BITSTRING& maPDUSession() const + {return field_maPDUSession;} +Base_Type* clone() const { return new MA__PDUSessionInfo(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MA__PDUSessionInfo_template : public Record_Template { +void set_specific(); +public: +MA__PDUSessionInfo_template(): Record_Template() {} +MA__PDUSessionInfo_template(template_sel other_value): Record_Template(other_value) {} +MA__PDUSessionInfo_template(const MA__PDUSessionInfo& other_value): Record_Template() { copy_value(&other_value); } +MA__PDUSessionInfo_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MA__PDUSessionInfo_template(MA__PDUSessionInfo_template* p_precondition, MA__PDUSessionInfo_template* p_implied_template); +MA__PDUSessionInfo_template(Dynamic_Match_Interface* p_dyn_match); +MA__PDUSessionInfo_template(const MA__PDUSessionInfo_template& other_value): Record_Template() { copy_template(other_value); } +~MA__PDUSessionInfo_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MA__PDUSessionInfo_template& operator=(template_sel other_value); +MA__PDUSessionInfo_template& operator=(const MA__PDUSessionInfo& other_value); +MA__PDUSessionInfo_template& operator=(const OPTIONAL& other_value); +MA__PDUSessionInfo_template& operator=(const MA__PDUSessionInfo_template& other_value); +inline boolean match(const MA__PDUSessionInfo& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MA__PDUSessionInfo& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MA__PDUSessionInfo valueof() const; +inline MA__PDUSessionInfo_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& maPDUSession(); +const BITSTRING_template& maPDUSession() const; +Record_Template* create() const { return new MA__PDUSessionInfo_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__DL__NAS__TRANSPORT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet2; + PayloadContainerType field_payloadContainerType; + PayloadContainer field_payload; + OPTIONAL field_pduSessionId; + OPTIONAL field_additionalInfo; + OPTIONAL field_gmmCause; + OPTIONAL field_backOffTimerValue; + OPTIONAL field_lowerBoundTimerValue; + Base_Type* fld_vec[12]; + void init_vec(); +public: + NG__DL__NAS__TRANSPORT(); + NG__DL__NAS__TRANSPORT(const NG__DL__NAS__TRANSPORT& other_value); + NG__DL__NAS__TRANSPORT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const PayloadContainerType& par_payloadContainerType, + const PayloadContainer& par_payload, + const OPTIONAL& par_pduSessionId, + const OPTIONAL& par_additionalInfo, + const OPTIONAL& par_gmmCause, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_lowerBoundTimerValue); +inline NG__DL__NAS__TRANSPORT& operator=(const NG__DL__NAS__TRANSPORT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__DL__NAS__TRANSPORT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__DL__NAS__TRANSPORT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet2() + {return field_spareHalfOctet2;} + inline const HEXSTRING& spareHalfOctet2() const + {return field_spareHalfOctet2;} + inline PayloadContainerType& payloadContainerType() + {return field_payloadContainerType;} + inline const PayloadContainerType& payloadContainerType() const + {return field_payloadContainerType;} + inline PayloadContainer& payload() + {return field_payload;} + inline const PayloadContainer& payload() const + {return field_payload;} + inline OPTIONAL& pduSessionId() + {return field_pduSessionId;} + inline const OPTIONAL& pduSessionId() const + {return field_pduSessionId;} + inline OPTIONAL& additionalInfo() + {return field_additionalInfo;} + inline const OPTIONAL& additionalInfo() const + {return field_additionalInfo;} + inline OPTIONAL& gmmCause() + {return field_gmmCause;} + inline const OPTIONAL& gmmCause() const + {return field_gmmCause;} + inline OPTIONAL& backOffTimerValue() + {return field_backOffTimerValue;} + inline const OPTIONAL& backOffTimerValue() const + {return field_backOffTimerValue;} + inline OPTIONAL& lowerBoundTimerValue() + {return field_lowerBoundTimerValue;} + inline const OPTIONAL& lowerBoundTimerValue() const + {return field_lowerBoundTimerValue;} +Base_Type* clone() const { return new NG__DL__NAS__TRANSPORT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 12; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__DL__NAS__TRANSPORT_template : public Record_Template { +void set_specific(); +public: +NG__DL__NAS__TRANSPORT_template(): Record_Template() {} +NG__DL__NAS__TRANSPORT_template(template_sel other_value): Record_Template(other_value) {} +NG__DL__NAS__TRANSPORT_template(const NG__DL__NAS__TRANSPORT& other_value): Record_Template() { copy_value(&other_value); } +NG__DL__NAS__TRANSPORT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__DL__NAS__TRANSPORT_template(NG__DL__NAS__TRANSPORT_template* p_precondition, NG__DL__NAS__TRANSPORT_template* p_implied_template); +NG__DL__NAS__TRANSPORT_template(Dynamic_Match_Interface* p_dyn_match); +NG__DL__NAS__TRANSPORT_template(const NG__DL__NAS__TRANSPORT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__DL__NAS__TRANSPORT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__DL__NAS__TRANSPORT_template& operator=(template_sel other_value); +NG__DL__NAS__TRANSPORT_template& operator=(const NG__DL__NAS__TRANSPORT& other_value); +NG__DL__NAS__TRANSPORT_template& operator=(const OPTIONAL& other_value); +NG__DL__NAS__TRANSPORT_template& operator=(const NG__DL__NAS__TRANSPORT_template& other_value); +inline boolean match(const NG__DL__NAS__TRANSPORT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__DL__NAS__TRANSPORT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__DL__NAS__TRANSPORT valueof() const; +inline NG__DL__NAS__TRANSPORT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet2(); +const HEXSTRING_template& spareHalfOctet2() const; +PayloadContainerType_template& payloadContainerType(); +const PayloadContainerType_template& payloadContainerType() const; +PayloadContainer_template& payload(); +const PayloadContainer_template& payload() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +NAS__CommonTypeDefs::AdditionalInformation_template& additionalInfo(); +const NAS__CommonTypeDefs::AdditionalInformation_template& additionalInfo() const; +GMM__GSM__Cause_template& gmmCause(); +const GMM__GSM__Cause_template& gmmCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue() const; +Record_Template* create() const { return new NG__DL__NAS__TRANSPORT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DeregisterType : public Record_Type { + BITSTRING field_switchOff; + BITSTRING field_reRegistration; + BITSTRING field_accessType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + DeregisterType(); + DeregisterType(const DeregisterType& other_value); + DeregisterType(const BITSTRING& par_switchOff, + const BITSTRING& par_reRegistration, + const BITSTRING& par_accessType); +inline DeregisterType& operator=(const DeregisterType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DeregisterType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DeregisterType& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& switchOff() + {return field_switchOff;} + inline const BITSTRING& switchOff() const + {return field_switchOff;} + inline BITSTRING& reRegistration() + {return field_reRegistration;} + inline const BITSTRING& reRegistration() const + {return field_reRegistration;} + inline BITSTRING& accessType() + {return field_accessType;} + inline const BITSTRING& accessType() const + {return field_accessType;} +Base_Type* clone() const { return new DeregisterType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DeregisterType_template : public Record_Template { +void set_specific(); +public: +DeregisterType_template(): Record_Template() {} +DeregisterType_template(template_sel other_value): Record_Template(other_value) {} +DeregisterType_template(const DeregisterType& other_value): Record_Template() { copy_value(&other_value); } +DeregisterType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DeregisterType_template(DeregisterType_template* p_precondition, DeregisterType_template* p_implied_template); +DeregisterType_template(Dynamic_Match_Interface* p_dyn_match); +DeregisterType_template(const DeregisterType_template& other_value): Record_Template() { copy_template(other_value); } +~DeregisterType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DeregisterType_template& operator=(template_sel other_value); +DeregisterType_template& operator=(const DeregisterType& other_value); +DeregisterType_template& operator=(const OPTIONAL& other_value); +DeregisterType_template& operator=(const DeregisterType_template& other_value); +inline boolean match(const DeregisterType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DeregisterType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DeregisterType valueof() const; +inline DeregisterType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& switchOff(); +const BITSTRING_template& switchOff() const; +BITSTRING_template& reRegistration(); +const BITSTRING_template& reRegistration() const; +BITSTRING_template& accessType(); +const BITSTRING_template& accessType() const; +Record_Template* create() const { return new DeregisterType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__DEREGISTRATION__REQUEST__MO : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_ngKSI; + DeregisterType field_deregistrationType; + NG__MobileIdentity field_ngMobileId; + Base_Type* fld_vec[7]; + void init_vec(); +public: + NG__DEREGISTRATION__REQUEST__MO(); + NG__DEREGISTRATION__REQUEST__MO(const NG__DEREGISTRATION__REQUEST__MO& other_value); + NG__DEREGISTRATION__REQUEST__MO(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngKSI, + const DeregisterType& par_deregistrationType, + const NG__MobileIdentity& par_ngMobileId); +inline NG__DEREGISTRATION__REQUEST__MO& operator=(const NG__DEREGISTRATION__REQUEST__MO& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__DEREGISTRATION__REQUEST__MO& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__DEREGISTRATION__REQUEST__MO& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngKSI() + {return field_ngKSI;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngKSI() const + {return field_ngKSI;} + inline DeregisterType& deregistrationType() + {return field_deregistrationType;} + inline const DeregisterType& deregistrationType() const + {return field_deregistrationType;} + inline NG__MobileIdentity& ngMobileId() + {return field_ngMobileId;} + inline const NG__MobileIdentity& ngMobileId() const + {return field_ngMobileId;} +Base_Type* clone() const { return new NG__DEREGISTRATION__REQUEST__MO(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__DEREGISTRATION__REQUEST__MO_template : public Record_Template { +void set_specific(); +public: +NG__DEREGISTRATION__REQUEST__MO_template(): Record_Template() {} +NG__DEREGISTRATION__REQUEST__MO_template(template_sel other_value): Record_Template(other_value) {} +NG__DEREGISTRATION__REQUEST__MO_template(const NG__DEREGISTRATION__REQUEST__MO& other_value): Record_Template() { copy_value(&other_value); } +NG__DEREGISTRATION__REQUEST__MO_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__DEREGISTRATION__REQUEST__MO_template(NG__DEREGISTRATION__REQUEST__MO_template* p_precondition, NG__DEREGISTRATION__REQUEST__MO_template* p_implied_template); +NG__DEREGISTRATION__REQUEST__MO_template(Dynamic_Match_Interface* p_dyn_match); +NG__DEREGISTRATION__REQUEST__MO_template(const NG__DEREGISTRATION__REQUEST__MO_template& other_value): Record_Template() { copy_template(other_value); } +~NG__DEREGISTRATION__REQUEST__MO_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__DEREGISTRATION__REQUEST__MO_template& operator=(template_sel other_value); +NG__DEREGISTRATION__REQUEST__MO_template& operator=(const NG__DEREGISTRATION__REQUEST__MO& other_value); +NG__DEREGISTRATION__REQUEST__MO_template& operator=(const OPTIONAL& other_value); +NG__DEREGISTRATION__REQUEST__MO_template& operator=(const NG__DEREGISTRATION__REQUEST__MO_template& other_value); +inline boolean match(const NG__DEREGISTRATION__REQUEST__MO& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__DEREGISTRATION__REQUEST__MO& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__DEREGISTRATION__REQUEST__MO valueof() const; +inline NG__DEREGISTRATION__REQUEST__MO_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngKSI(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngKSI() const; +DeregisterType_template& deregistrationType(); +const DeregisterType_template& deregistrationType() const; +NG__MobileIdentity_template& ngMobileId(); +const NG__MobileIdentity_template& ngMobileId() const; +Record_Template* create() const { return new NG__DEREGISTRATION__REQUEST__MO_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__DEREGISTRATION__ACCEPT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + Base_Type* fld_vec[4]; + void init_vec(); +public: + NG__DEREGISTRATION__ACCEPT(); + NG__DEREGISTRATION__ACCEPT(const NG__DEREGISTRATION__ACCEPT& other_value); + NG__DEREGISTRATION__ACCEPT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType); +inline NG__DEREGISTRATION__ACCEPT& operator=(const NG__DEREGISTRATION__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__DEREGISTRATION__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__DEREGISTRATION__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new NG__DEREGISTRATION__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__DEREGISTRATION__ACCEPT_template : public Record_Template { +void set_specific(); +public: +NG__DEREGISTRATION__ACCEPT_template(): Record_Template() {} +NG__DEREGISTRATION__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +NG__DEREGISTRATION__ACCEPT_template(const NG__DEREGISTRATION__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +NG__DEREGISTRATION__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__DEREGISTRATION__ACCEPT_template(NG__DEREGISTRATION__ACCEPT_template* p_precondition, NG__DEREGISTRATION__ACCEPT_template* p_implied_template); +NG__DEREGISTRATION__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +NG__DEREGISTRATION__ACCEPT_template(const NG__DEREGISTRATION__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__DEREGISTRATION__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__DEREGISTRATION__ACCEPT_template& operator=(template_sel other_value); +NG__DEREGISTRATION__ACCEPT_template& operator=(const NG__DEREGISTRATION__ACCEPT& other_value); +NG__DEREGISTRATION__ACCEPT_template& operator=(const OPTIONAL& other_value); +NG__DEREGISTRATION__ACCEPT_template& operator=(const NG__DEREGISTRATION__ACCEPT_template& other_value); +inline boolean match(const NG__DEREGISTRATION__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__DEREGISTRATION__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__DEREGISTRATION__ACCEPT valueof() const; +inline NG__DEREGISTRATION__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new NG__DEREGISTRATION__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__DEREGISTRATION__REQUEST__MT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet2; + DeregisterType field_deregistrationType; + OPTIONAL field_gmmCause; + OPTIONAL field_t3346; + OPTIONAL field_rejectedNSSAI; + OPTIONAL field_cagInfoList; + OPTIONAL field_extdRejectedNSSAI; + OPTIONAL field_disasterReturnWaitRange; + OPTIONAL field_extdCAGInfoList; + OPTIONAL field_lowerBoundTimerValue; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[16]; + void init_vec(); +public: + NG__DEREGISTRATION__REQUEST__MT(); + NG__DEREGISTRATION__REQUEST__MT(const NG__DEREGISTRATION__REQUEST__MT& other_value); + NG__DEREGISTRATION__REQUEST__MT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const DeregisterType& par_deregistrationType, + const OPTIONAL& par_gmmCause, + const OPTIONAL& par_t3346, + const OPTIONAL& par_rejectedNSSAI, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_extdRejectedNSSAI, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline NG__DEREGISTRATION__REQUEST__MT& operator=(const NG__DEREGISTRATION__REQUEST__MT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__DEREGISTRATION__REQUEST__MT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__DEREGISTRATION__REQUEST__MT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet2() + {return field_spareHalfOctet2;} + inline const HEXSTRING& spareHalfOctet2() const + {return field_spareHalfOctet2;} + inline DeregisterType& deregistrationType() + {return field_deregistrationType;} + inline const DeregisterType& deregistrationType() const + {return field_deregistrationType;} + inline OPTIONAL& gmmCause() + {return field_gmmCause;} + inline const OPTIONAL& gmmCause() const + {return field_gmmCause;} + inline OPTIONAL& t3346() + {return field_t3346;} + inline const OPTIONAL& t3346() const + {return field_t3346;} + inline OPTIONAL& rejectedNSSAI() + {return field_rejectedNSSAI;} + inline const OPTIONAL& rejectedNSSAI() const + {return field_rejectedNSSAI;} + inline OPTIONAL& cagInfoList() + {return field_cagInfoList;} + inline const OPTIONAL& cagInfoList() const + {return field_cagInfoList;} + inline OPTIONAL& extdRejectedNSSAI() + {return field_extdRejectedNSSAI;} + inline const OPTIONAL& extdRejectedNSSAI() const + {return field_extdRejectedNSSAI;} + inline OPTIONAL& disasterReturnWaitRange() + {return field_disasterReturnWaitRange;} + inline const OPTIONAL& disasterReturnWaitRange() const + {return field_disasterReturnWaitRange;} + inline OPTIONAL& extdCAGInfoList() + {return field_extdCAGInfoList;} + inline const OPTIONAL& extdCAGInfoList() const + {return field_extdCAGInfoList;} + inline OPTIONAL& lowerBoundTimerValue() + {return field_lowerBoundTimerValue;} + inline const OPTIONAL& lowerBoundTimerValue() const + {return field_lowerBoundTimerValue;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new NG__DEREGISTRATION__REQUEST__MT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 16; } +int optional_count() const { return 10; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__DEREGISTRATION__REQUEST__MT_template : public Record_Template { +void set_specific(); +public: +NG__DEREGISTRATION__REQUEST__MT_template(): Record_Template() {} +NG__DEREGISTRATION__REQUEST__MT_template(template_sel other_value): Record_Template(other_value) {} +NG__DEREGISTRATION__REQUEST__MT_template(const NG__DEREGISTRATION__REQUEST__MT& other_value): Record_Template() { copy_value(&other_value); } +NG__DEREGISTRATION__REQUEST__MT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__DEREGISTRATION__REQUEST__MT_template(NG__DEREGISTRATION__REQUEST__MT_template* p_precondition, NG__DEREGISTRATION__REQUEST__MT_template* p_implied_template); +NG__DEREGISTRATION__REQUEST__MT_template(Dynamic_Match_Interface* p_dyn_match); +NG__DEREGISTRATION__REQUEST__MT_template(const NG__DEREGISTRATION__REQUEST__MT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__DEREGISTRATION__REQUEST__MT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__DEREGISTRATION__REQUEST__MT_template& operator=(template_sel other_value); +NG__DEREGISTRATION__REQUEST__MT_template& operator=(const NG__DEREGISTRATION__REQUEST__MT& other_value); +NG__DEREGISTRATION__REQUEST__MT_template& operator=(const OPTIONAL& other_value); +NG__DEREGISTRATION__REQUEST__MT_template& operator=(const NG__DEREGISTRATION__REQUEST__MT_template& other_value); +inline boolean match(const NG__DEREGISTRATION__REQUEST__MT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__DEREGISTRATION__REQUEST__MT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__DEREGISTRATION__REQUEST__MT valueof() const; +inline NG__DEREGISTRATION__REQUEST__MT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet2(); +const HEXSTRING_template& spareHalfOctet2() const; +DeregisterType_template& deregistrationType(); +const DeregisterType_template& deregistrationType() const; +GMM__GSM__Cause_template& gmmCause(); +const GMM__GSM__Cause_template& gmmCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3346(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3346() const; +RejectedNSSAI_template& rejectedNSSAI(); +const RejectedNSSAI_template& rejectedNSSAI() const; +CAGInfoList_template& cagInfoList(); +const CAGInfoList_template& cagInfoList() const; +ExtdRejectedNSSAI_template& extdRejectedNSSAI(); +const ExtdRejectedNSSAI_template& extdRejectedNSSAI() const; +RegistrationWaitRange_template& disasterReturnWaitRange(); +const RegistrationWaitRange_template& disasterReturnWaitRange() const; +ExtdCAGInfoList_template& extdCAGInfoList(); +const ExtdCAGInfoList_template& extdCAGInfoList() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue() const; +NG__TrackingAreaIdList_template& forbidTAIList__Roaming(); +const NG__TrackingAreaIdList_template& forbidTAIList__Roaming() const; +NG__TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const NG__TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new NG__DEREGISTRATION__REQUEST__MT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__SERVICE__REQUEST : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + BITSTRING field_serviceType; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_ngKSI; + NG__MobileIdentity field_s__TMSI; + OPTIONAL field_ulDataStatus; + OPTIONAL field_pduSessionStatus; + OPTIONAL field_allowedPDUSessionStatus; + OPTIONAL field_nasMsg; + OPTIONAL field_ueRequestType; + OPTIONAL field_pagingRestrict; + Base_Type* fld_vec[13]; + void init_vec(); +public: + NG__SERVICE__REQUEST(); + NG__SERVICE__REQUEST(const NG__SERVICE__REQUEST& other_value); + NG__SERVICE__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const BITSTRING& par_serviceType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngKSI, + const NG__MobileIdentity& par_s__TMSI, + const OPTIONAL& par_ulDataStatus, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_allowedPDUSessionStatus, + const OPTIONAL& par_nasMsg, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestrict); +inline NG__SERVICE__REQUEST& operator=(const NG__SERVICE__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__SERVICE__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__SERVICE__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline BITSTRING& serviceType() + {return field_serviceType;} + inline const BITSTRING& serviceType() const + {return field_serviceType;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngKSI() + {return field_ngKSI;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngKSI() const + {return field_ngKSI;} + inline NG__MobileIdentity& s__TMSI() + {return field_s__TMSI;} + inline const NG__MobileIdentity& s__TMSI() const + {return field_s__TMSI;} + inline OPTIONAL& ulDataStatus() + {return field_ulDataStatus;} + inline const OPTIONAL& ulDataStatus() const + {return field_ulDataStatus;} + inline OPTIONAL& pduSessionStatus() + {return field_pduSessionStatus;} + inline const OPTIONAL& pduSessionStatus() const + {return field_pduSessionStatus;} + inline OPTIONAL& allowedPDUSessionStatus() + {return field_allowedPDUSessionStatus;} + inline const OPTIONAL& allowedPDUSessionStatus() const + {return field_allowedPDUSessionStatus;} + inline OPTIONAL& nasMsg() + {return field_nasMsg;} + inline const OPTIONAL& nasMsg() const + {return field_nasMsg;} + inline OPTIONAL& ueRequestType() + {return field_ueRequestType;} + inline const OPTIONAL& ueRequestType() const + {return field_ueRequestType;} + inline OPTIONAL& pagingRestrict() + {return field_pagingRestrict;} + inline const OPTIONAL& pagingRestrict() const + {return field_pagingRestrict;} +Base_Type* clone() const { return new NG__SERVICE__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 13; } +int optional_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__SERVICE__REQUEST_template : public Record_Template { +void set_specific(); +public: +NG__SERVICE__REQUEST_template(): Record_Template() {} +NG__SERVICE__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +NG__SERVICE__REQUEST_template(const NG__SERVICE__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +NG__SERVICE__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__SERVICE__REQUEST_template(NG__SERVICE__REQUEST_template* p_precondition, NG__SERVICE__REQUEST_template* p_implied_template); +NG__SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +NG__SERVICE__REQUEST_template(const NG__SERVICE__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~NG__SERVICE__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__SERVICE__REQUEST_template& operator=(template_sel other_value); +NG__SERVICE__REQUEST_template& operator=(const NG__SERVICE__REQUEST& other_value); +NG__SERVICE__REQUEST_template& operator=(const OPTIONAL& other_value); +NG__SERVICE__REQUEST_template& operator=(const NG__SERVICE__REQUEST_template& other_value); +inline boolean match(const NG__SERVICE__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__SERVICE__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__SERVICE__REQUEST valueof() const; +inline NG__SERVICE__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +BITSTRING_template& serviceType(); +const BITSTRING_template& serviceType() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngKSI(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngKSI() const; +NG__MobileIdentity_template& s__TMSI(); +const NG__MobileIdentity_template& s__TMSI() const; +PDU__SessionStatus_template& ulDataStatus(); +const PDU__SessionStatus_template& ulDataStatus() const; +PDU__SessionStatus_template& pduSessionStatus(); +const PDU__SessionStatus_template& pduSessionStatus() const; +PDU__SessionStatus_template& allowedPDUSessionStatus(); +const PDU__SessionStatus_template& allowedPDUSessionStatus() const; +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& nasMsg(); +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& nasMsg() const; +NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType(); +const NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType() const; +NG__PagingRestriction_template& pagingRestrict(); +const NG__PagingRestriction_template& pagingRestrict() const; +Record_Template* create() const { return new NG__SERVICE__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__SERVICE__ACCEPT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + OPTIONAL field_pduSessionStatus; + OPTIONAL field_pduSessionReactivationResult; + OPTIONAL field_pduSessionReactResultError; + OPTIONAL field_eapMessage; + OPTIONAL field_t3448; + OPTIONAL field_ngAddRequestResult; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[12]; + void init_vec(); +public: + NG__SERVICE__ACCEPT(); + NG__SERVICE__ACCEPT(const NG__SERVICE__ACCEPT& other_value); + NG__SERVICE__ACCEPT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_pduSessionReactivationResult, + const OPTIONAL& par_pduSessionReactResultError, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_t3448, + const OPTIONAL& par_ngAddRequestResult, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline NG__SERVICE__ACCEPT& operator=(const NG__SERVICE__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__SERVICE__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__SERVICE__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& pduSessionStatus() + {return field_pduSessionStatus;} + inline const OPTIONAL& pduSessionStatus() const + {return field_pduSessionStatus;} + inline OPTIONAL& pduSessionReactivationResult() + {return field_pduSessionReactivationResult;} + inline const OPTIONAL& pduSessionReactivationResult() const + {return field_pduSessionReactivationResult;} + inline OPTIONAL& pduSessionReactResultError() + {return field_pduSessionReactResultError;} + inline const OPTIONAL& pduSessionReactResultError() const + {return field_pduSessionReactResultError;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& t3448() + {return field_t3448;} + inline const OPTIONAL& t3448() const + {return field_t3448;} + inline OPTIONAL& ngAddRequestResult() + {return field_ngAddRequestResult;} + inline const OPTIONAL& ngAddRequestResult() const + {return field_ngAddRequestResult;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new NG__SERVICE__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 12; } +int optional_count() const { return 8; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__SERVICE__ACCEPT_template : public Record_Template { +void set_specific(); +public: +NG__SERVICE__ACCEPT_template(): Record_Template() {} +NG__SERVICE__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +NG__SERVICE__ACCEPT_template(const NG__SERVICE__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +NG__SERVICE__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__SERVICE__ACCEPT_template(NG__SERVICE__ACCEPT_template* p_precondition, NG__SERVICE__ACCEPT_template* p_implied_template); +NG__SERVICE__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +NG__SERVICE__ACCEPT_template(const NG__SERVICE__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__SERVICE__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__SERVICE__ACCEPT_template& operator=(template_sel other_value); +NG__SERVICE__ACCEPT_template& operator=(const NG__SERVICE__ACCEPT& other_value); +NG__SERVICE__ACCEPT_template& operator=(const OPTIONAL& other_value); +NG__SERVICE__ACCEPT_template& operator=(const NG__SERVICE__ACCEPT_template& other_value); +inline boolean match(const NG__SERVICE__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__SERVICE__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__SERVICE__ACCEPT valueof() const; +inline NG__SERVICE__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +PDU__SessionStatus_template& pduSessionStatus(); +const PDU__SessionStatus_template& pduSessionStatus() const; +PDU__SessionStatus_template& pduSessionReactivationResult(); +const PDU__SessionStatus_template& pduSessionReactivationResult() const; +PDU__SessionReactivationError_template& pduSessionReactResultError(); +const PDU__SessionReactivationError_template& pduSessionReactResultError() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3448(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3448() const; +NG__AddReqResult_template& ngAddRequestResult(); +const NG__AddReqResult_template& ngAddRequestResult() const; +NG__TrackingAreaIdList_template& forbidTAIList__Roaming(); +const NG__TrackingAreaIdList_template& forbidTAIList__Roaming() const; +NG__TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const NG__TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new NG__SERVICE__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__SERVICE__REJECT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + GMM__GSM__Cause field_gmmCause; + OPTIONAL field_pduSessionStatus; + OPTIONAL field_t3346; + OPTIONAL field_eapMessage; + OPTIONAL field_t3448; + OPTIONAL field_cagInfoList; + OPTIONAL field_disasterReturnWaitRange; + OPTIONAL field_extdCAGInfoList; + OPTIONAL field_lowerBoundTimerValue; + OPTIONAL field_forbidTAIList__Roaming; + OPTIONAL field_forbidTAIList__RegProvService; + Base_Type* fld_vec[15]; + void init_vec(); +public: + NG__SERVICE__REJECT(); + NG__SERVICE__REJECT(const NG__SERVICE__REJECT& other_value); + NG__SERVICE__REJECT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_t3346, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_t3448, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_lowerBoundTimerValue, + const OPTIONAL& par_forbidTAIList__Roaming, + const OPTIONAL& par_forbidTAIList__RegProvService); +inline NG__SERVICE__REJECT& operator=(const NG__SERVICE__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__SERVICE__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__SERVICE__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gmmCause() + {return field_gmmCause;} + inline const GMM__GSM__Cause& gmmCause() const + {return field_gmmCause;} + inline OPTIONAL& pduSessionStatus() + {return field_pduSessionStatus;} + inline const OPTIONAL& pduSessionStatus() const + {return field_pduSessionStatus;} + inline OPTIONAL& t3346() + {return field_t3346;} + inline const OPTIONAL& t3346() const + {return field_t3346;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& t3448() + {return field_t3448;} + inline const OPTIONAL& t3448() const + {return field_t3448;} + inline OPTIONAL& cagInfoList() + {return field_cagInfoList;} + inline const OPTIONAL& cagInfoList() const + {return field_cagInfoList;} + inline OPTIONAL& disasterReturnWaitRange() + {return field_disasterReturnWaitRange;} + inline const OPTIONAL& disasterReturnWaitRange() const + {return field_disasterReturnWaitRange;} + inline OPTIONAL& extdCAGInfoList() + {return field_extdCAGInfoList;} + inline const OPTIONAL& extdCAGInfoList() const + {return field_extdCAGInfoList;} + inline OPTIONAL& lowerBoundTimerValue() + {return field_lowerBoundTimerValue;} + inline const OPTIONAL& lowerBoundTimerValue() const + {return field_lowerBoundTimerValue;} + inline OPTIONAL& forbidTAIList__Roaming() + {return field_forbidTAIList__Roaming;} + inline const OPTIONAL& forbidTAIList__Roaming() const + {return field_forbidTAIList__Roaming;} + inline OPTIONAL& forbidTAIList__RegProvService() + {return field_forbidTAIList__RegProvService;} + inline const OPTIONAL& forbidTAIList__RegProvService() const + {return field_forbidTAIList__RegProvService;} +Base_Type* clone() const { return new NG__SERVICE__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 15; } +int optional_count() const { return 10; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__SERVICE__REJECT_template : public Record_Template { +void set_specific(); +public: +NG__SERVICE__REJECT_template(): Record_Template() {} +NG__SERVICE__REJECT_template(template_sel other_value): Record_Template(other_value) {} +NG__SERVICE__REJECT_template(const NG__SERVICE__REJECT& other_value): Record_Template() { copy_value(&other_value); } +NG__SERVICE__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__SERVICE__REJECT_template(NG__SERVICE__REJECT_template* p_precondition, NG__SERVICE__REJECT_template* p_implied_template); +NG__SERVICE__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +NG__SERVICE__REJECT_template(const NG__SERVICE__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__SERVICE__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__SERVICE__REJECT_template& operator=(template_sel other_value); +NG__SERVICE__REJECT_template& operator=(const NG__SERVICE__REJECT& other_value); +NG__SERVICE__REJECT_template& operator=(const OPTIONAL& other_value); +NG__SERVICE__REJECT_template& operator=(const NG__SERVICE__REJECT_template& other_value); +inline boolean match(const NG__SERVICE__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__SERVICE__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__SERVICE__REJECT valueof() const; +inline NG__SERVICE__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gmmCause(); +const GMM__GSM__Cause_template& gmmCause() const; +PDU__SessionStatus_template& pduSessionStatus(); +const PDU__SessionStatus_template& pduSessionStatus() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3346(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3346() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3448(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3448() const; +CAGInfoList_template& cagInfoList(); +const CAGInfoList_template& cagInfoList() const; +RegistrationWaitRange_template& disasterReturnWaitRange(); +const RegistrationWaitRange_template& disasterReturnWaitRange() const; +ExtdCAGInfoList_template& extdCAGInfoList(); +const ExtdCAGInfoList_template& extdCAGInfoList() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& lowerBoundTimerValue() const; +NG__TrackingAreaIdList_template& forbidTAIList__Roaming(); +const NG__TrackingAreaIdList_template& forbidTAIList__Roaming() const; +NG__TrackingAreaIdList_template& forbidTAIList__RegProvService(); +const NG__TrackingAreaIdList_template& forbidTAIList__RegProvService() const; +Record_Template* create() const { return new NG__SERVICE__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__CONFIGURATION__UPDATE__COMMAND : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + OPTIONAL field_configUpdateInd; + OPTIONAL field_guti; + OPTIONAL field_taiList; + OPTIONAL field_allowedNSSAI; + OPTIONAL field_saiList; + OPTIONAL field_fullNetworkName; + OPTIONAL field_shortNetworkName; + OPTIONAL field_localTimeZone; + OPTIONAL field_localTimeZoneAndTime; + OPTIONAL field_daylightSavingTime; + OPTIONAL field_ladnInfo; + OPTIONAL field_micoInd; + OPTIONAL field_networkSlicingInd; + OPTIONAL field_configuredNSSAI; + OPTIONAL field_rejectedNSSAI; + OPTIONAL field_operatorAccessCatDefs; + OPTIONAL field_smsInd; + OPTIONAL field_t3447Value; + OPTIONAL field_cagInfoList; + OPTIONAL field_ueRadioCapabilityId; + OPTIONAL field_ueRadioCapIdDeletionInd; + OPTIONAL field_registrationResult; + OPTIONAL field_truncatedS__TMSIConfig; + OPTIONAL field_addConfigInfo; + OPTIONAL field_extdRejectedNSSAI; + OPTIONAL field_serviceLvlAA; + OPTIONAL field_nssrgInfo; + OPTIONAL field_disasterRoamingWaitRange; + OPTIONAL field_disasterReturnWaitRange; + OPTIONAL field_disasterPLMNList; + OPTIONAL field_extdCAGInfoList; + OPTIONAL field_updatedPEIPS__AssistInfo; + OPTIONAL field_nsagInfo; + OPTIONAL field_priorityInd; + Base_Type* fld_vec[38]; + void init_vec(); +public: + NG__CONFIGURATION__UPDATE__COMMAND(); + NG__CONFIGURATION__UPDATE__COMMAND(const NG__CONFIGURATION__UPDATE__COMMAND& other_value); + NG__CONFIGURATION__UPDATE__COMMAND(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_configUpdateInd, + const OPTIONAL& par_guti, + const OPTIONAL& par_taiList, + const OPTIONAL& par_allowedNSSAI, + const OPTIONAL& par_saiList, + const OPTIONAL& par_fullNetworkName, + const OPTIONAL& par_shortNetworkName, + const OPTIONAL& par_localTimeZone, + const OPTIONAL& par_localTimeZoneAndTime, + const OPTIONAL& par_daylightSavingTime, + const OPTIONAL& par_ladnInfo, + const OPTIONAL& par_micoInd, + const OPTIONAL& par_networkSlicingInd, + const OPTIONAL& par_configuredNSSAI, + const OPTIONAL& par_rejectedNSSAI, + const OPTIONAL& par_operatorAccessCatDefs, + const OPTIONAL& par_smsInd, + const OPTIONAL& par_t3447Value, + const OPTIONAL& par_cagInfoList, + const OPTIONAL& par_ueRadioCapabilityId, + const OPTIONAL& par_ueRadioCapIdDeletionInd, + const OPTIONAL& par_registrationResult, + const OPTIONAL& par_truncatedS__TMSIConfig, + const OPTIONAL& par_addConfigInfo, + const OPTIONAL& par_extdRejectedNSSAI, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_nssrgInfo, + const OPTIONAL& par_disasterRoamingWaitRange, + const OPTIONAL& par_disasterReturnWaitRange, + const OPTIONAL& par_disasterPLMNList, + const OPTIONAL& par_extdCAGInfoList, + const OPTIONAL& par_updatedPEIPS__AssistInfo, + const OPTIONAL& par_nsagInfo, + const OPTIONAL& par_priorityInd); +inline NG__CONFIGURATION__UPDATE__COMMAND& operator=(const NG__CONFIGURATION__UPDATE__COMMAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__CONFIGURATION__UPDATE__COMMAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__CONFIGURATION__UPDATE__COMMAND& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& configUpdateInd() + {return field_configUpdateInd;} + inline const OPTIONAL& configUpdateInd() const + {return field_configUpdateInd;} + inline OPTIONAL& guti() + {return field_guti;} + inline const OPTIONAL& guti() const + {return field_guti;} + inline OPTIONAL& taiList() + {return field_taiList;} + inline const OPTIONAL& taiList() const + {return field_taiList;} + inline OPTIONAL& allowedNSSAI() + {return field_allowedNSSAI;} + inline const OPTIONAL& allowedNSSAI() const + {return field_allowedNSSAI;} + inline OPTIONAL& saiList() + {return field_saiList;} + inline const OPTIONAL& saiList() const + {return field_saiList;} + inline OPTIONAL& fullNetworkName() + {return field_fullNetworkName;} + inline const OPTIONAL& fullNetworkName() const + {return field_fullNetworkName;} + inline OPTIONAL& shortNetworkName() + {return field_shortNetworkName;} + inline const OPTIONAL& shortNetworkName() const + {return field_shortNetworkName;} + inline OPTIONAL& localTimeZone() + {return field_localTimeZone;} + inline const OPTIONAL& localTimeZone() const + {return field_localTimeZone;} + inline OPTIONAL& localTimeZoneAndTime() + {return field_localTimeZoneAndTime;} + inline const OPTIONAL& localTimeZoneAndTime() const + {return field_localTimeZoneAndTime;} + inline OPTIONAL& daylightSavingTime() + {return field_daylightSavingTime;} + inline const OPTIONAL& daylightSavingTime() const + {return field_daylightSavingTime;} + inline OPTIONAL& ladnInfo() + {return field_ladnInfo;} + inline const OPTIONAL& ladnInfo() const + {return field_ladnInfo;} + inline OPTIONAL& micoInd() + {return field_micoInd;} + inline const OPTIONAL& micoInd() const + {return field_micoInd;} + inline OPTIONAL& networkSlicingInd() + {return field_networkSlicingInd;} + inline const OPTIONAL& networkSlicingInd() const + {return field_networkSlicingInd;} + inline OPTIONAL& configuredNSSAI() + {return field_configuredNSSAI;} + inline const OPTIONAL& configuredNSSAI() const + {return field_configuredNSSAI;} + inline OPTIONAL& rejectedNSSAI() + {return field_rejectedNSSAI;} + inline const OPTIONAL& rejectedNSSAI() const + {return field_rejectedNSSAI;} + inline OPTIONAL& operatorAccessCatDefs() + {return field_operatorAccessCatDefs;} + inline const OPTIONAL& operatorAccessCatDefs() const + {return field_operatorAccessCatDefs;} + inline OPTIONAL& smsInd() + {return field_smsInd;} + inline const OPTIONAL& smsInd() const + {return field_smsInd;} + inline OPTIONAL& t3447Value() + {return field_t3447Value;} + inline const OPTIONAL& t3447Value() const + {return field_t3447Value;} + inline OPTIONAL& cagInfoList() + {return field_cagInfoList;} + inline const OPTIONAL& cagInfoList() const + {return field_cagInfoList;} + inline OPTIONAL& ueRadioCapabilityId() + {return field_ueRadioCapabilityId;} + inline const OPTIONAL& ueRadioCapabilityId() const + {return field_ueRadioCapabilityId;} + inline OPTIONAL& ueRadioCapIdDeletionInd() + {return field_ueRadioCapIdDeletionInd;} + inline const OPTIONAL& ueRadioCapIdDeletionInd() const + {return field_ueRadioCapIdDeletionInd;} + inline OPTIONAL& registrationResult() + {return field_registrationResult;} + inline const OPTIONAL& registrationResult() const + {return field_registrationResult;} + inline OPTIONAL& truncatedS__TMSIConfig() + {return field_truncatedS__TMSIConfig;} + inline const OPTIONAL& truncatedS__TMSIConfig() const + {return field_truncatedS__TMSIConfig;} + inline OPTIONAL& addConfigInfo() + {return field_addConfigInfo;} + inline const OPTIONAL& addConfigInfo() const + {return field_addConfigInfo;} + inline OPTIONAL& extdRejectedNSSAI() + {return field_extdRejectedNSSAI;} + inline const OPTIONAL& extdRejectedNSSAI() const + {return field_extdRejectedNSSAI;} + inline OPTIONAL& serviceLvlAA() + {return field_serviceLvlAA;} + inline const OPTIONAL& serviceLvlAA() const + {return field_serviceLvlAA;} + inline OPTIONAL& nssrgInfo() + {return field_nssrgInfo;} + inline const OPTIONAL& nssrgInfo() const + {return field_nssrgInfo;} + inline OPTIONAL& disasterRoamingWaitRange() + {return field_disasterRoamingWaitRange;} + inline const OPTIONAL& disasterRoamingWaitRange() const + {return field_disasterRoamingWaitRange;} + inline OPTIONAL& disasterReturnWaitRange() + {return field_disasterReturnWaitRange;} + inline const OPTIONAL& disasterReturnWaitRange() const + {return field_disasterReturnWaitRange;} + inline OPTIONAL& disasterPLMNList() + {return field_disasterPLMNList;} + inline const OPTIONAL& disasterPLMNList() const + {return field_disasterPLMNList;} + inline OPTIONAL& extdCAGInfoList() + {return field_extdCAGInfoList;} + inline const OPTIONAL& extdCAGInfoList() const + {return field_extdCAGInfoList;} + inline OPTIONAL& updatedPEIPS__AssistInfo() + {return field_updatedPEIPS__AssistInfo;} + inline const OPTIONAL& updatedPEIPS__AssistInfo() const + {return field_updatedPEIPS__AssistInfo;} + inline OPTIONAL& nsagInfo() + {return field_nsagInfo;} + inline const OPTIONAL& nsagInfo() const + {return field_nsagInfo;} + inline OPTIONAL& priorityInd() + {return field_priorityInd;} + inline const OPTIONAL& priorityInd() const + {return field_priorityInd;} +Base_Type* clone() const { return new NG__CONFIGURATION__UPDATE__COMMAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 38; } +int optional_count() const { return 34; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__CONFIGURATION__UPDATE__COMMAND_template : public Record_Template { +void set_specific(); +public: +NG__CONFIGURATION__UPDATE__COMMAND_template(): Record_Template() {} +NG__CONFIGURATION__UPDATE__COMMAND_template(template_sel other_value): Record_Template(other_value) {} +NG__CONFIGURATION__UPDATE__COMMAND_template(const NG__CONFIGURATION__UPDATE__COMMAND& other_value): Record_Template() { copy_value(&other_value); } +NG__CONFIGURATION__UPDATE__COMMAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__CONFIGURATION__UPDATE__COMMAND_template(NG__CONFIGURATION__UPDATE__COMMAND_template* p_precondition, NG__CONFIGURATION__UPDATE__COMMAND_template* p_implied_template); +NG__CONFIGURATION__UPDATE__COMMAND_template(Dynamic_Match_Interface* p_dyn_match); +NG__CONFIGURATION__UPDATE__COMMAND_template(const NG__CONFIGURATION__UPDATE__COMMAND_template& other_value): Record_Template() { copy_template(other_value); } +~NG__CONFIGURATION__UPDATE__COMMAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__CONFIGURATION__UPDATE__COMMAND_template& operator=(template_sel other_value); +NG__CONFIGURATION__UPDATE__COMMAND_template& operator=(const NG__CONFIGURATION__UPDATE__COMMAND& other_value); +NG__CONFIGURATION__UPDATE__COMMAND_template& operator=(const OPTIONAL& other_value); +NG__CONFIGURATION__UPDATE__COMMAND_template& operator=(const NG__CONFIGURATION__UPDATE__COMMAND_template& other_value); +inline boolean match(const NG__CONFIGURATION__UPDATE__COMMAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__CONFIGURATION__UPDATE__COMMAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__CONFIGURATION__UPDATE__COMMAND valueof() const; +inline NG__CONFIGURATION__UPDATE__COMMAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +ConfigUpdateInd_template& configUpdateInd(); +const ConfigUpdateInd_template& configUpdateInd() const; +NG__MobileIdentity_template& guti(); +const NG__MobileIdentity_template& guti() const; +NG__TrackingAreaIdList_template& taiList(); +const NG__TrackingAreaIdList_template& taiList() const; +NSSAI_template& allowedNSSAI(); +const NSSAI_template& allowedNSSAI() const; +NG__TrackingAreaIdList_template& saiList(); +const NG__TrackingAreaIdList_template& saiList() const; +NAS__CommonTypeDefs::NetworkName_template& fullNetworkName(); +const NAS__CommonTypeDefs::NetworkName_template& fullNetworkName() const; +NAS__CommonTypeDefs::NetworkName_template& shortNetworkName(); +const NAS__CommonTypeDefs::NetworkName_template& shortNetworkName() const; +NAS__CommonTypeDefs::TimeZone_template& localTimeZone(); +const NAS__CommonTypeDefs::TimeZone_template& localTimeZone() const; +NAS__CommonTypeDefs::TimeZoneAndTime_template& localTimeZoneAndTime(); +const NAS__CommonTypeDefs::TimeZoneAndTime_template& localTimeZoneAndTime() const; +NAS__CommonTypeDefs::DaylightSavingTime_template& daylightSavingTime(); +const NAS__CommonTypeDefs::DaylightSavingTime_template& daylightSavingTime() const; +LADN__Info_template& ladnInfo(); +const LADN__Info_template& ladnInfo() const; +MICO__Ind_template& micoInd(); +const MICO__Ind_template& micoInd() const; +NetworkSlicingInd_template& networkSlicingInd(); +const NetworkSlicingInd_template& networkSlicingInd() const; +NSSAI_template& configuredNSSAI(); +const NSSAI_template& configuredNSSAI() const; +RejectedNSSAI_template& rejectedNSSAI(); +const RejectedNSSAI_template& rejectedNSSAI() const; +OperatorAccessCatDefinitions_template& operatorAccessCatDefs(); +const OperatorAccessCatDefinitions_template& operatorAccessCatDefs() const; +SMSInd_template& smsInd(); +const SMSInd_template& smsInd() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& t3447Value(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& t3447Value() const; +CAGInfoList_template& cagInfoList(); +const CAGInfoList_template& cagInfoList() const; +NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapabilityId(); +const NAS__CommonTypeDefs::UERadioCapId_template& ueRadioCapabilityId() const; +NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeletionInd(); +const NAS__CommonTypeDefs::UERadioCapIdDeletion_template& ueRadioCapIdDeletionInd() const; +RegistrationResult_template& registrationResult(); +const RegistrationResult_template& registrationResult() const; +TruncatedS__TMSIConfig_template& truncatedS__TMSIConfig(); +const TruncatedS__TMSIConfig_template& truncatedS__TMSIConfig() const; +AddConfigInfo_template& addConfigInfo(); +const AddConfigInfo_template& addConfigInfo() const; +ExtdRejectedNSSAI_template& extdRejectedNSSAI(); +const ExtdRejectedNSSAI_template& extdRejectedNSSAI() const; +ServiceLvlAAContainer_template& serviceLvlAA(); +const ServiceLvlAAContainer_template& serviceLvlAA() const; +NSSRG__Info_template& nssrgInfo(); +const NSSRG__Info_template& nssrgInfo() const; +RegistrationWaitRange_template& disasterRoamingWaitRange(); +const RegistrationWaitRange_template& disasterRoamingWaitRange() const; +RegistrationWaitRange_template& disasterReturnWaitRange(); +const RegistrationWaitRange_template& disasterReturnWaitRange() const; +DisasterPLMNList_template& disasterPLMNList(); +const DisasterPLMNList_template& disasterPLMNList() const; +ExtdCAGInfoList_template& extdCAGInfoList(); +const ExtdCAGInfoList_template& extdCAGInfoList() const; +PEIPS__AssistInfo_template& updatedPEIPS__AssistInfo(); +const PEIPS__AssistInfo_template& updatedPEIPS__AssistInfo() const; +NSAG__Info_template& nsagInfo(); +const NSAG__Info_template& nsagInfo() const; +PriorityInd_template& priorityInd(); +const PriorityInd_template& priorityInd() const; +Record_Template* create() const { return new NG__CONFIGURATION__UPDATE__COMMAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ConfigUpdateInd : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_red; + BITSTRING field_ack; + Base_Type* fld_vec[4]; + void init_vec(); +public: + ConfigUpdateInd(); + ConfigUpdateInd(const ConfigUpdateInd& other_value); + ConfigUpdateInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_red, + const BITSTRING& par_ack); +inline ConfigUpdateInd& operator=(const ConfigUpdateInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ConfigUpdateInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ConfigUpdateInd& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& red() + {return field_red;} + inline const BITSTRING& red() const + {return field_red;} + inline BITSTRING& ack() + {return field_ack;} + inline const BITSTRING& ack() const + {return field_ack;} +Base_Type* clone() const { return new ConfigUpdateInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ConfigUpdateInd_template : public Record_Template { +void set_specific(); +public: +ConfigUpdateInd_template(): Record_Template() {} +ConfigUpdateInd_template(template_sel other_value): Record_Template(other_value) {} +ConfigUpdateInd_template(const ConfigUpdateInd& other_value): Record_Template() { copy_value(&other_value); } +ConfigUpdateInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ConfigUpdateInd_template(ConfigUpdateInd_template* p_precondition, ConfigUpdateInd_template* p_implied_template); +ConfigUpdateInd_template(Dynamic_Match_Interface* p_dyn_match); +ConfigUpdateInd_template(const ConfigUpdateInd_template& other_value): Record_Template() { copy_template(other_value); } +~ConfigUpdateInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ConfigUpdateInd_template& operator=(template_sel other_value); +ConfigUpdateInd_template& operator=(const ConfigUpdateInd& other_value); +ConfigUpdateInd_template& operator=(const OPTIONAL& other_value); +ConfigUpdateInd_template& operator=(const ConfigUpdateInd_template& other_value); +inline boolean match(const ConfigUpdateInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ConfigUpdateInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ConfigUpdateInd valueof() const; +inline ConfigUpdateInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& red(); +const BITSTRING_template& red() const; +BITSTRING_template& ack(); +const BITSTRING_template& ack() const; +Record_Template* create() const { return new ConfigUpdateInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SMSInd : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_sai; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SMSInd(); + SMSInd(const SMSInd& other_value); + SMSInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_sai); +inline SMSInd& operator=(const SMSInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SMSInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SMSInd& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& sai() + {return field_sai;} + inline const BITSTRING& sai() const + {return field_sai;} +Base_Type* clone() const { return new SMSInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SMSInd_template : public Record_Template { +void set_specific(); +public: +SMSInd_template(): Record_Template() {} +SMSInd_template(template_sel other_value): Record_Template(other_value) {} +SMSInd_template(const SMSInd& other_value): Record_Template() { copy_value(&other_value); } +SMSInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SMSInd_template(SMSInd_template* p_precondition, SMSInd_template* p_implied_template); +SMSInd_template(Dynamic_Match_Interface* p_dyn_match); +SMSInd_template(const SMSInd_template& other_value): Record_Template() { copy_template(other_value); } +~SMSInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SMSInd_template& operator=(template_sel other_value); +SMSInd_template& operator=(const SMSInd& other_value); +SMSInd_template& operator=(const OPTIONAL& other_value); +SMSInd_template& operator=(const SMSInd_template& other_value); +inline boolean match(const SMSInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SMSInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SMSInd valueof() const; +inline SMSInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& sai(); +const BITSTRING_template& sai() const; +Record_Template* create() const { return new SMSInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AddConfigInfo : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_scmr; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AddConfigInfo(); + AddConfigInfo(const AddConfigInfo& other_value); + AddConfigInfo(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_scmr); +inline AddConfigInfo& operator=(const AddConfigInfo& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AddConfigInfo& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AddConfigInfo& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& scmr() + {return field_scmr;} + inline const BITSTRING& scmr() const + {return field_scmr;} +Base_Type* clone() const { return new AddConfigInfo(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AddConfigInfo_template : public Record_Template { +void set_specific(); +public: +AddConfigInfo_template(): Record_Template() {} +AddConfigInfo_template(template_sel other_value): Record_Template(other_value) {} +AddConfigInfo_template(const AddConfigInfo& other_value): Record_Template() { copy_value(&other_value); } +AddConfigInfo_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AddConfigInfo_template(AddConfigInfo_template* p_precondition, AddConfigInfo_template* p_implied_template); +AddConfigInfo_template(Dynamic_Match_Interface* p_dyn_match); +AddConfigInfo_template(const AddConfigInfo_template& other_value): Record_Template() { copy_template(other_value); } +~AddConfigInfo_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AddConfigInfo_template& operator=(template_sel other_value); +AddConfigInfo_template& operator=(const AddConfigInfo& other_value); +AddConfigInfo_template& operator=(const OPTIONAL& other_value); +AddConfigInfo_template& operator=(const AddConfigInfo_template& other_value); +inline boolean match(const AddConfigInfo& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AddConfigInfo& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AddConfigInfo valueof() const; +inline AddConfigInfo_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& scmr(); +const BITSTRING_template& scmr() const; +Record_Template* create() const { return new AddConfigInfo_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PriorityInd : public Record_Type { + HEXSTRING field_iei; + BITSTRING field_spare; + BITSTRING field_mpsi; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PriorityInd(); + PriorityInd(const PriorityInd& other_value); + PriorityInd(const HEXSTRING& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_mpsi); +inline PriorityInd& operator=(const PriorityInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PriorityInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PriorityInd& other_value) const + { return !is_equal(&other_value); } + + inline HEXSTRING& iei() + {return field_iei;} + inline const HEXSTRING& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& mpsi() + {return field_mpsi;} + inline const BITSTRING& mpsi() const + {return field_mpsi;} +Base_Type* clone() const { return new PriorityInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PriorityInd_template : public Record_Template { +void set_specific(); +public: +PriorityInd_template(): Record_Template() {} +PriorityInd_template(template_sel other_value): Record_Template(other_value) {} +PriorityInd_template(const PriorityInd& other_value): Record_Template() { copy_value(&other_value); } +PriorityInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PriorityInd_template(PriorityInd_template* p_precondition, PriorityInd_template* p_implied_template); +PriorityInd_template(Dynamic_Match_Interface* p_dyn_match); +PriorityInd_template(const PriorityInd_template& other_value): Record_Template() { copy_template(other_value); } +~PriorityInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PriorityInd_template& operator=(template_sel other_value); +PriorityInd_template& operator=(const PriorityInd& other_value); +PriorityInd_template& operator=(const OPTIONAL& other_value); +PriorityInd_template& operator=(const PriorityInd_template& other_value); +inline boolean match(const PriorityInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PriorityInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PriorityInd valueof() const; +inline PriorityInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& mpsi(); +const BITSTRING_template& mpsi() const; +Record_Template* create() const { return new PriorityInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__CONFIGURATION__UPDATE__COMPLETE : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + Base_Type* fld_vec[4]; + void init_vec(); +public: + NG__CONFIGURATION__UPDATE__COMPLETE(); + NG__CONFIGURATION__UPDATE__COMPLETE(const NG__CONFIGURATION__UPDATE__COMPLETE& other_value); + NG__CONFIGURATION__UPDATE__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType); +inline NG__CONFIGURATION__UPDATE__COMPLETE& operator=(const NG__CONFIGURATION__UPDATE__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__CONFIGURATION__UPDATE__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__CONFIGURATION__UPDATE__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new NG__CONFIGURATION__UPDATE__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__CONFIGURATION__UPDATE__COMPLETE_template : public Record_Template { +void set_specific(); +public: +NG__CONFIGURATION__UPDATE__COMPLETE_template(): Record_Template() {} +NG__CONFIGURATION__UPDATE__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +NG__CONFIGURATION__UPDATE__COMPLETE_template(const NG__CONFIGURATION__UPDATE__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +NG__CONFIGURATION__UPDATE__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__CONFIGURATION__UPDATE__COMPLETE_template(NG__CONFIGURATION__UPDATE__COMPLETE_template* p_precondition, NG__CONFIGURATION__UPDATE__COMPLETE_template* p_implied_template); +NG__CONFIGURATION__UPDATE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +NG__CONFIGURATION__UPDATE__COMPLETE_template(const NG__CONFIGURATION__UPDATE__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__CONFIGURATION__UPDATE__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__CONFIGURATION__UPDATE__COMPLETE_template& operator=(template_sel other_value); +NG__CONFIGURATION__UPDATE__COMPLETE_template& operator=(const NG__CONFIGURATION__UPDATE__COMPLETE& other_value); +NG__CONFIGURATION__UPDATE__COMPLETE_template& operator=(const OPTIONAL& other_value); +NG__CONFIGURATION__UPDATE__COMPLETE_template& operator=(const NG__CONFIGURATION__UPDATE__COMPLETE_template& other_value); +inline boolean match(const NG__CONFIGURATION__UPDATE__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__CONFIGURATION__UPDATE__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__CONFIGURATION__UPDATE__COMPLETE valueof() const; +inline NG__CONFIGURATION__UPDATE__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new NG__CONFIGURATION__UPDATE__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__IDENTITY__REQUEST : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet2; + NAS__CommonTypeDefs::IdentityType field_identityType; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__IDENTITY__REQUEST(); + NG__IDENTITY__REQUEST(const NG__IDENTITY__REQUEST& other_value); + NG__IDENTITY__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const NAS__CommonTypeDefs::IdentityType& par_identityType); +inline NG__IDENTITY__REQUEST& operator=(const NG__IDENTITY__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__IDENTITY__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__IDENTITY__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet2() + {return field_spareHalfOctet2;} + inline const HEXSTRING& spareHalfOctet2() const + {return field_spareHalfOctet2;} + inline NAS__CommonTypeDefs::IdentityType& identityType() + {return field_identityType;} + inline const NAS__CommonTypeDefs::IdentityType& identityType() const + {return field_identityType;} +Base_Type* clone() const { return new NG__IDENTITY__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__IDENTITY__REQUEST_template : public Record_Template { +void set_specific(); +public: +NG__IDENTITY__REQUEST_template(): Record_Template() {} +NG__IDENTITY__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +NG__IDENTITY__REQUEST_template(const NG__IDENTITY__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +NG__IDENTITY__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__IDENTITY__REQUEST_template(NG__IDENTITY__REQUEST_template* p_precondition, NG__IDENTITY__REQUEST_template* p_implied_template); +NG__IDENTITY__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +NG__IDENTITY__REQUEST_template(const NG__IDENTITY__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~NG__IDENTITY__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__IDENTITY__REQUEST_template& operator=(template_sel other_value); +NG__IDENTITY__REQUEST_template& operator=(const NG__IDENTITY__REQUEST& other_value); +NG__IDENTITY__REQUEST_template& operator=(const OPTIONAL& other_value); +NG__IDENTITY__REQUEST_template& operator=(const NG__IDENTITY__REQUEST_template& other_value); +inline boolean match(const NG__IDENTITY__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__IDENTITY__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__IDENTITY__REQUEST valueof() const; +inline NG__IDENTITY__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet2(); +const HEXSTRING_template& spareHalfOctet2() const; +NAS__CommonTypeDefs::IdentityType_template& identityType(); +const NAS__CommonTypeDefs::IdentityType_template& identityType() const; +Record_Template* create() const { return new NG__IDENTITY__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__IDENTITY__RESPONSE : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + NG__MobileIdentity field_ngMobileId; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NG__IDENTITY__RESPONSE(); + NG__IDENTITY__RESPONSE(const NG__IDENTITY__RESPONSE& other_value); + NG__IDENTITY__RESPONSE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NG__MobileIdentity& par_ngMobileId); +inline NG__IDENTITY__RESPONSE& operator=(const NG__IDENTITY__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__IDENTITY__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__IDENTITY__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NG__MobileIdentity& ngMobileId() + {return field_ngMobileId;} + inline const NG__MobileIdentity& ngMobileId() const + {return field_ngMobileId;} +Base_Type* clone() const { return new NG__IDENTITY__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__IDENTITY__RESPONSE_template : public Record_Template { +void set_specific(); +public: +NG__IDENTITY__RESPONSE_template(): Record_Template() {} +NG__IDENTITY__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +NG__IDENTITY__RESPONSE_template(const NG__IDENTITY__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +NG__IDENTITY__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__IDENTITY__RESPONSE_template(NG__IDENTITY__RESPONSE_template* p_precondition, NG__IDENTITY__RESPONSE_template* p_implied_template); +NG__IDENTITY__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +NG__IDENTITY__RESPONSE_template(const NG__IDENTITY__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__IDENTITY__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__IDENTITY__RESPONSE_template& operator=(template_sel other_value); +NG__IDENTITY__RESPONSE_template& operator=(const NG__IDENTITY__RESPONSE& other_value); +NG__IDENTITY__RESPONSE_template& operator=(const OPTIONAL& other_value); +NG__IDENTITY__RESPONSE_template& operator=(const NG__IDENTITY__RESPONSE_template& other_value); +inline boolean match(const NG__IDENTITY__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__IDENTITY__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__IDENTITY__RESPONSE valueof() const; +inline NG__IDENTITY__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NG__MobileIdentity_template& ngMobileId(); +const NG__MobileIdentity_template& ngMobileId() const; +Record_Template* create() const { return new NG__IDENTITY__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AccessType : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_accessType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AccessType(); + AccessType(const AccessType& other_value); + AccessType(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_accessType); +inline AccessType& operator=(const AccessType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AccessType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AccessType& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& accessType() + {return field_accessType;} + inline const BITSTRING& accessType() const + {return field_accessType;} +Base_Type* clone() const { return new AccessType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AccessType_template : public Record_Template { +void set_specific(); +public: +AccessType_template(): Record_Template() {} +AccessType_template(template_sel other_value): Record_Template(other_value) {} +AccessType_template(const AccessType& other_value): Record_Template() { copy_value(&other_value); } +AccessType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AccessType_template(AccessType_template* p_precondition, AccessType_template* p_implied_template); +AccessType_template(Dynamic_Match_Interface* p_dyn_match); +AccessType_template(const AccessType_template& other_value): Record_Template() { copy_template(other_value); } +~AccessType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AccessType_template& operator=(template_sel other_value); +AccessType_template& operator=(const AccessType& other_value); +AccessType_template& operator=(const OPTIONAL& other_value); +AccessType_template& operator=(const AccessType_template& other_value); +inline boolean match(const AccessType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AccessType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AccessType valueof() const; +inline AccessType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& accessType(); +const BITSTRING_template& accessType() const; +Record_Template* create() const { return new AccessType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NOTIFICATION : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + HEXSTRING field_spareHalfOctet2; + AccessType field_accessType; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__NOTIFICATION(); + NG__NOTIFICATION(const NG__NOTIFICATION& other_value); + NG__NOTIFICATION(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const HEXSTRING& par_spareHalfOctet2, + const AccessType& par_accessType); +inline NG__NOTIFICATION& operator=(const NG__NOTIFICATION& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NOTIFICATION& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NOTIFICATION& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline HEXSTRING& spareHalfOctet2() + {return field_spareHalfOctet2;} + inline const HEXSTRING& spareHalfOctet2() const + {return field_spareHalfOctet2;} + inline AccessType& accessType() + {return field_accessType;} + inline const AccessType& accessType() const + {return field_accessType;} +Base_Type* clone() const { return new NG__NOTIFICATION(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NOTIFICATION_template : public Record_Template { +void set_specific(); +public: +NG__NOTIFICATION_template(): Record_Template() {} +NG__NOTIFICATION_template(template_sel other_value): Record_Template(other_value) {} +NG__NOTIFICATION_template(const NG__NOTIFICATION& other_value): Record_Template() { copy_value(&other_value); } +NG__NOTIFICATION_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NOTIFICATION_template(NG__NOTIFICATION_template* p_precondition, NG__NOTIFICATION_template* p_implied_template); +NG__NOTIFICATION_template(Dynamic_Match_Interface* p_dyn_match); +NG__NOTIFICATION_template(const NG__NOTIFICATION_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NOTIFICATION_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NOTIFICATION_template& operator=(template_sel other_value); +NG__NOTIFICATION_template& operator=(const NG__NOTIFICATION& other_value); +NG__NOTIFICATION_template& operator=(const OPTIONAL& other_value); +NG__NOTIFICATION_template& operator=(const NG__NOTIFICATION_template& other_value); +inline boolean match(const NG__NOTIFICATION& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NOTIFICATION& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NOTIFICATION valueof() const; +inline NG__NOTIFICATION_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +HEXSTRING_template& spareHalfOctet2(); +const HEXSTRING_template& spareHalfOctet2() const; +AccessType_template& accessType(); +const AccessType_template& accessType() const; +Record_Template* create() const { return new NG__NOTIFICATION_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NOTIFICATION__RESPONSE : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + OPTIONAL field_pduSessionStatus; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NG__NOTIFICATION__RESPONSE(); + NG__NOTIFICATION__RESPONSE(const NG__NOTIFICATION__RESPONSE& other_value); + NG__NOTIFICATION__RESPONSE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_pduSessionStatus); +inline NG__NOTIFICATION__RESPONSE& operator=(const NG__NOTIFICATION__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NOTIFICATION__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NOTIFICATION__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& pduSessionStatus() + {return field_pduSessionStatus;} + inline const OPTIONAL& pduSessionStatus() const + {return field_pduSessionStatus;} +Base_Type* clone() const { return new NG__NOTIFICATION__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NOTIFICATION__RESPONSE_template : public Record_Template { +void set_specific(); +public: +NG__NOTIFICATION__RESPONSE_template(): Record_Template() {} +NG__NOTIFICATION__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +NG__NOTIFICATION__RESPONSE_template(const NG__NOTIFICATION__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +NG__NOTIFICATION__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NOTIFICATION__RESPONSE_template(NG__NOTIFICATION__RESPONSE_template* p_precondition, NG__NOTIFICATION__RESPONSE_template* p_implied_template); +NG__NOTIFICATION__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +NG__NOTIFICATION__RESPONSE_template(const NG__NOTIFICATION__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NOTIFICATION__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NOTIFICATION__RESPONSE_template& operator=(template_sel other_value); +NG__NOTIFICATION__RESPONSE_template& operator=(const NG__NOTIFICATION__RESPONSE& other_value); +NG__NOTIFICATION__RESPONSE_template& operator=(const OPTIONAL& other_value); +NG__NOTIFICATION__RESPONSE_template& operator=(const NG__NOTIFICATION__RESPONSE_template& other_value); +inline boolean match(const NG__NOTIFICATION__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NOTIFICATION__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NOTIFICATION__RESPONSE valueof() const; +inline NG__NOTIFICATION__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +PDU__SessionStatus_template& pduSessionStatus(); +const PDU__SessionStatus_template& pduSessionStatus() const; +Record_Template* create() const { return new NG__NOTIFICATION__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__SecurityAlgorithms : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_cipheringType; + BITSTRING field_integrityType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NG__NAS__SecurityAlgorithms(); + NG__NAS__SecurityAlgorithms(const NG__NAS__SecurityAlgorithms& other_value); + NG__NAS__SecurityAlgorithms(const OPTIONAL& par_iei, + const BITSTRING& par_cipheringType, + const BITSTRING& par_integrityType); +inline NG__NAS__SecurityAlgorithms& operator=(const NG__NAS__SecurityAlgorithms& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__SecurityAlgorithms& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__SecurityAlgorithms& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& cipheringType() + {return field_cipheringType;} + inline const BITSTRING& cipheringType() const + {return field_cipheringType;} + inline BITSTRING& integrityType() + {return field_integrityType;} + inline const BITSTRING& integrityType() const + {return field_integrityType;} +Base_Type* clone() const { return new NG__NAS__SecurityAlgorithms(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__SecurityAlgorithms_template : public Record_Template { +void set_specific(); +public: +NG__NAS__SecurityAlgorithms_template(): Record_Template() {} +NG__NAS__SecurityAlgorithms_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__SecurityAlgorithms_template(const NG__NAS__SecurityAlgorithms& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__SecurityAlgorithms_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__SecurityAlgorithms_template(NG__NAS__SecurityAlgorithms_template* p_precondition, NG__NAS__SecurityAlgorithms_template* p_implied_template); +NG__NAS__SecurityAlgorithms_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__SecurityAlgorithms_template(const NG__NAS__SecurityAlgorithms_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__SecurityAlgorithms_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__SecurityAlgorithms_template& operator=(template_sel other_value); +NG__NAS__SecurityAlgorithms_template& operator=(const NG__NAS__SecurityAlgorithms& other_value); +NG__NAS__SecurityAlgorithms_template& operator=(const OPTIONAL& other_value); +NG__NAS__SecurityAlgorithms_template& operator=(const NG__NAS__SecurityAlgorithms_template& other_value); +inline boolean match(const NG__NAS__SecurityAlgorithms& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__SecurityAlgorithms& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__SecurityAlgorithms valueof() const; +inline NG__NAS__SecurityAlgorithms_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& cipheringType(); +const BITSTRING_template& cipheringType() const; +BITSTRING_template& integrityType(); +const BITSTRING_template& integrityType() const; +Record_Template* create() const { return new NG__NAS__SecurityAlgorithms_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__SECURITY__MODE__COMMAND : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + NG__NAS__SecurityAlgorithms field_nasSecurityAlgorithms; + HEXSTRING field_spareHalfOctet2; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_ngNasKSI; + NG__UE__SecurityCapability field_ueSecurityCapability; + OPTIONAL field_imeisvRequest; + OPTIONAL field_epsSecurityAlgorithms; + OPTIONAL field_add5GSecurityInfo; + OPTIONAL field_eapMessage; + OPTIONAL field_abba; + OPTIONAL field_replayedUESecurityCap; + Base_Type* fld_vec[14]; + void init_vec(); +public: + NG__SECURITY__MODE__COMMAND(); + NG__SECURITY__MODE__COMMAND(const NG__SECURITY__MODE__COMMAND& other_value); + NG__SECURITY__MODE__COMMAND(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NG__NAS__SecurityAlgorithms& par_nasSecurityAlgorithms, + const HEXSTRING& par_spareHalfOctet2, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngNasKSI, + const NG__UE__SecurityCapability& par_ueSecurityCapability, + const OPTIONAL& par_imeisvRequest, + const OPTIONAL& par_epsSecurityAlgorithms, + const OPTIONAL& par_add5GSecurityInfo, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_abba, + const OPTIONAL& par_replayedUESecurityCap); +inline NG__SECURITY__MODE__COMMAND& operator=(const NG__SECURITY__MODE__COMMAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__SECURITY__MODE__COMMAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__SECURITY__MODE__COMMAND& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NG__NAS__SecurityAlgorithms& nasSecurityAlgorithms() + {return field_nasSecurityAlgorithms;} + inline const NG__NAS__SecurityAlgorithms& nasSecurityAlgorithms() const + {return field_nasSecurityAlgorithms;} + inline HEXSTRING& spareHalfOctet2() + {return field_spareHalfOctet2;} + inline const HEXSTRING& spareHalfOctet2() const + {return field_spareHalfOctet2;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngNasKSI() + {return field_ngNasKSI;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngNasKSI() const + {return field_ngNasKSI;} + inline NG__UE__SecurityCapability& ueSecurityCapability() + {return field_ueSecurityCapability;} + inline const NG__UE__SecurityCapability& ueSecurityCapability() const + {return field_ueSecurityCapability;} + inline OPTIONAL& imeisvRequest() + {return field_imeisvRequest;} + inline const OPTIONAL& imeisvRequest() const + {return field_imeisvRequest;} + inline OPTIONAL& epsSecurityAlgorithms() + {return field_epsSecurityAlgorithms;} + inline const OPTIONAL& epsSecurityAlgorithms() const + {return field_epsSecurityAlgorithms;} + inline OPTIONAL& add5GSecurityInfo() + {return field_add5GSecurityInfo;} + inline const OPTIONAL& add5GSecurityInfo() const + {return field_add5GSecurityInfo;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& abba() + {return field_abba;} + inline const OPTIONAL& abba() const + {return field_abba;} + inline OPTIONAL& replayedUESecurityCap() + {return field_replayedUESecurityCap;} + inline const OPTIONAL& replayedUESecurityCap() const + {return field_replayedUESecurityCap;} +Base_Type* clone() const { return new NG__SECURITY__MODE__COMMAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 14; } +int optional_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__SECURITY__MODE__COMMAND_template : public Record_Template { +void set_specific(); +public: +NG__SECURITY__MODE__COMMAND_template(): Record_Template() {} +NG__SECURITY__MODE__COMMAND_template(template_sel other_value): Record_Template(other_value) {} +NG__SECURITY__MODE__COMMAND_template(const NG__SECURITY__MODE__COMMAND& other_value): Record_Template() { copy_value(&other_value); } +NG__SECURITY__MODE__COMMAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__SECURITY__MODE__COMMAND_template(NG__SECURITY__MODE__COMMAND_template* p_precondition, NG__SECURITY__MODE__COMMAND_template* p_implied_template); +NG__SECURITY__MODE__COMMAND_template(Dynamic_Match_Interface* p_dyn_match); +NG__SECURITY__MODE__COMMAND_template(const NG__SECURITY__MODE__COMMAND_template& other_value): Record_Template() { copy_template(other_value); } +~NG__SECURITY__MODE__COMMAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__SECURITY__MODE__COMMAND_template& operator=(template_sel other_value); +NG__SECURITY__MODE__COMMAND_template& operator=(const NG__SECURITY__MODE__COMMAND& other_value); +NG__SECURITY__MODE__COMMAND_template& operator=(const OPTIONAL& other_value); +NG__SECURITY__MODE__COMMAND_template& operator=(const NG__SECURITY__MODE__COMMAND_template& other_value); +inline boolean match(const NG__SECURITY__MODE__COMMAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__SECURITY__MODE__COMMAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__SECURITY__MODE__COMMAND valueof() const; +inline NG__SECURITY__MODE__COMMAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NG__NAS__SecurityAlgorithms_template& nasSecurityAlgorithms(); +const NG__NAS__SecurityAlgorithms_template& nasSecurityAlgorithms() const; +HEXSTRING_template& spareHalfOctet2(); +const HEXSTRING_template& spareHalfOctet2() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngNasKSI(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngNasKSI() const; +NG__UE__SecurityCapability_template& ueSecurityCapability(); +const NG__UE__SecurityCapability_template& ueSecurityCapability() const; +NAS__CommonTypeDefs::IMEISV__Request_template& imeisvRequest(); +const NAS__CommonTypeDefs::IMEISV__Request_template& imeisvRequest() const; +NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& epsSecurityAlgorithms(); +const NAS__CommonTypeDefs::NAS__SecurityAlgorithms_template& epsSecurityAlgorithms() const; +AdditionalSecurityInfo_template& add5GSecurityInfo(); +const AdditionalSecurityInfo_template& add5GSecurityInfo() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +ABBA_template& abba(); +const ABBA_template& abba() const; +S1__UE__SecurityCapability_template& replayedUESecurityCap(); +const S1__UE__SecurityCapability_template& replayedUESecurityCap() const; +Record_Template* create() const { return new NG__SECURITY__MODE__COMMAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AdditionalSecurityInfo : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spareBits; + BITSTRING field_rinmr; + BITSTRING field_hdp; + Base_Type* fld_vec[5]; + void init_vec(); +public: + AdditionalSecurityInfo(); + AdditionalSecurityInfo(const AdditionalSecurityInfo& other_value); + AdditionalSecurityInfo(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_rinmr, + const BITSTRING& par_hdp); +inline AdditionalSecurityInfo& operator=(const AdditionalSecurityInfo& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AdditionalSecurityInfo& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AdditionalSecurityInfo& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& rinmr() + {return field_rinmr;} + inline const BITSTRING& rinmr() const + {return field_rinmr;} + inline BITSTRING& hdp() + {return field_hdp;} + inline const BITSTRING& hdp() const + {return field_hdp;} +Base_Type* clone() const { return new AdditionalSecurityInfo(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AdditionalSecurityInfo_template : public Record_Template { +void set_specific(); +public: +AdditionalSecurityInfo_template(): Record_Template() {} +AdditionalSecurityInfo_template(template_sel other_value): Record_Template(other_value) {} +AdditionalSecurityInfo_template(const AdditionalSecurityInfo& other_value): Record_Template() { copy_value(&other_value); } +AdditionalSecurityInfo_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AdditionalSecurityInfo_template(AdditionalSecurityInfo_template* p_precondition, AdditionalSecurityInfo_template* p_implied_template); +AdditionalSecurityInfo_template(Dynamic_Match_Interface* p_dyn_match); +AdditionalSecurityInfo_template(const AdditionalSecurityInfo_template& other_value): Record_Template() { copy_template(other_value); } +~AdditionalSecurityInfo_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AdditionalSecurityInfo_template& operator=(template_sel other_value); +AdditionalSecurityInfo_template& operator=(const AdditionalSecurityInfo& other_value); +AdditionalSecurityInfo_template& operator=(const OPTIONAL& other_value); +AdditionalSecurityInfo_template& operator=(const AdditionalSecurityInfo_template& other_value); +inline boolean match(const AdditionalSecurityInfo& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AdditionalSecurityInfo& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AdditionalSecurityInfo valueof() const; +inline AdditionalSecurityInfo_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& rinmr(); +const BITSTRING_template& rinmr() const; +BITSTRING_template& hdp(); +const BITSTRING_template& hdp() const; +Record_Template* create() const { return new AdditionalSecurityInfo_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class S1__UE__SecurityCapability : public Record_Type { + OPTIONAL field_iei; + NAS__CommonTypeDefs::UE__SecurityCapability field_ieValue; + Base_Type* fld_vec[2]; + void init_vec(); +public: + S1__UE__SecurityCapability(); + S1__UE__SecurityCapability(const S1__UE__SecurityCapability& other_value); + S1__UE__SecurityCapability(const OPTIONAL& par_iei, + const NAS__CommonTypeDefs::UE__SecurityCapability& par_ieValue); +inline S1__UE__SecurityCapability& operator=(const S1__UE__SecurityCapability& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const S1__UE__SecurityCapability& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const S1__UE__SecurityCapability& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline NAS__CommonTypeDefs::UE__SecurityCapability& ieValue() + {return field_ieValue;} + inline const NAS__CommonTypeDefs::UE__SecurityCapability& ieValue() const + {return field_ieValue;} +Base_Type* clone() const { return new S1__UE__SecurityCapability(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class S1__UE__SecurityCapability_template : public Record_Template { +void set_specific(); +public: +S1__UE__SecurityCapability_template(): Record_Template() {} +S1__UE__SecurityCapability_template(template_sel other_value): Record_Template(other_value) {} +S1__UE__SecurityCapability_template(const S1__UE__SecurityCapability& other_value): Record_Template() { copy_value(&other_value); } +S1__UE__SecurityCapability_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +S1__UE__SecurityCapability_template(S1__UE__SecurityCapability_template* p_precondition, S1__UE__SecurityCapability_template* p_implied_template); +S1__UE__SecurityCapability_template(Dynamic_Match_Interface* p_dyn_match); +S1__UE__SecurityCapability_template(const S1__UE__SecurityCapability_template& other_value): Record_Template() { copy_template(other_value); } +~S1__UE__SecurityCapability_template(); +boolean match_dynamic(const Base_Type* match_value) const; +S1__UE__SecurityCapability_template& operator=(template_sel other_value); +S1__UE__SecurityCapability_template& operator=(const S1__UE__SecurityCapability& other_value); +S1__UE__SecurityCapability_template& operator=(const OPTIONAL& other_value); +S1__UE__SecurityCapability_template& operator=(const S1__UE__SecurityCapability_template& other_value); +inline boolean match(const S1__UE__SecurityCapability& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const S1__UE__SecurityCapability& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +S1__UE__SecurityCapability valueof() const; +inline S1__UE__SecurityCapability_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +NAS__CommonTypeDefs::UE__SecurityCapability_template& ieValue(); +const NAS__CommonTypeDefs::UE__SecurityCapability_template& ieValue() const; +Record_Template* create() const { return new S1__UE__SecurityCapability_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__SECURITY__MODE__COMPLETE : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + OPTIONAL field_imeisv; + OPTIONAL field_nasMsg; + OPTIONAL field_nonIMEISV__PEI; + Base_Type* fld_vec[7]; + void init_vec(); +public: + NG__SECURITY__MODE__COMPLETE(); + NG__SECURITY__MODE__COMPLETE(const NG__SECURITY__MODE__COMPLETE& other_value); + NG__SECURITY__MODE__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const OPTIONAL& par_imeisv, + const OPTIONAL& par_nasMsg, + const OPTIONAL& par_nonIMEISV__PEI); +inline NG__SECURITY__MODE__COMPLETE& operator=(const NG__SECURITY__MODE__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__SECURITY__MODE__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__SECURITY__MODE__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& imeisv() + {return field_imeisv;} + inline const OPTIONAL& imeisv() const + {return field_imeisv;} + inline OPTIONAL& nasMsg() + {return field_nasMsg;} + inline const OPTIONAL& nasMsg() const + {return field_nasMsg;} + inline OPTIONAL& nonIMEISV__PEI() + {return field_nonIMEISV__PEI;} + inline const OPTIONAL& nonIMEISV__PEI() const + {return field_nonIMEISV__PEI;} +Base_Type* clone() const { return new NG__SECURITY__MODE__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__SECURITY__MODE__COMPLETE_template : public Record_Template { +void set_specific(); +public: +NG__SECURITY__MODE__COMPLETE_template(): Record_Template() {} +NG__SECURITY__MODE__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +NG__SECURITY__MODE__COMPLETE_template(const NG__SECURITY__MODE__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +NG__SECURITY__MODE__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__SECURITY__MODE__COMPLETE_template(NG__SECURITY__MODE__COMPLETE_template* p_precondition, NG__SECURITY__MODE__COMPLETE_template* p_implied_template); +NG__SECURITY__MODE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +NG__SECURITY__MODE__COMPLETE_template(const NG__SECURITY__MODE__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__SECURITY__MODE__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__SECURITY__MODE__COMPLETE_template& operator=(template_sel other_value); +NG__SECURITY__MODE__COMPLETE_template& operator=(const NG__SECURITY__MODE__COMPLETE& other_value); +NG__SECURITY__MODE__COMPLETE_template& operator=(const OPTIONAL& other_value); +NG__SECURITY__MODE__COMPLETE_template& operator=(const NG__SECURITY__MODE__COMPLETE_template& other_value); +inline boolean match(const NG__SECURITY__MODE__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__SECURITY__MODE__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__SECURITY__MODE__COMPLETE valueof() const; +inline NG__SECURITY__MODE__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NG__MobileIdentity_template& imeisv(); +const NG__MobileIdentity_template& imeisv() const; +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& nasMsg(); +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& nasMsg() const; +NG__MobileIdentity_template& nonIMEISV__PEI(); +const NG__MobileIdentity_template& nonIMEISV__PEI() const; +Record_Template* create() const { return new NG__SECURITY__MODE__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__SECURITY__MODE__REJECT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + GMM__GSM__Cause field_gmmCause; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NG__SECURITY__MODE__REJECT(); + NG__SECURITY__MODE__REJECT(const NG__SECURITY__MODE__REJECT& other_value); + NG__SECURITY__MODE__REJECT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause); +inline NG__SECURITY__MODE__REJECT& operator=(const NG__SECURITY__MODE__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__SECURITY__MODE__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__SECURITY__MODE__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gmmCause() + {return field_gmmCause;} + inline const GMM__GSM__Cause& gmmCause() const + {return field_gmmCause;} +Base_Type* clone() const { return new NG__SECURITY__MODE__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__SECURITY__MODE__REJECT_template : public Record_Template { +void set_specific(); +public: +NG__SECURITY__MODE__REJECT_template(): Record_Template() {} +NG__SECURITY__MODE__REJECT_template(template_sel other_value): Record_Template(other_value) {} +NG__SECURITY__MODE__REJECT_template(const NG__SECURITY__MODE__REJECT& other_value): Record_Template() { copy_value(&other_value); } +NG__SECURITY__MODE__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__SECURITY__MODE__REJECT_template(NG__SECURITY__MODE__REJECT_template* p_precondition, NG__SECURITY__MODE__REJECT_template* p_implied_template); +NG__SECURITY__MODE__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +NG__SECURITY__MODE__REJECT_template(const NG__SECURITY__MODE__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__SECURITY__MODE__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__SECURITY__MODE__REJECT_template& operator=(template_sel other_value); +NG__SECURITY__MODE__REJECT_template& operator=(const NG__SECURITY__MODE__REJECT& other_value); +NG__SECURITY__MODE__REJECT_template& operator=(const OPTIONAL& other_value); +NG__SECURITY__MODE__REJECT_template& operator=(const NG__SECURITY__MODE__REJECT_template& other_value); +inline boolean match(const NG__SECURITY__MODE__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__SECURITY__MODE__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__SECURITY__MODE__REJECT valueof() const; +inline NG__SECURITY__MODE__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gmmCause(); +const GMM__GSM__Cause_template& gmmCause() const; +Record_Template* create() const { return new NG__SECURITY__MODE__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__SECURITY__PROTECTED__NAS__MESSAGE : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + OCTETSTRING field_messageAuthenticationCode; + OCTETSTRING field_sequenceNumber; + OCTETSTRING field_plainNASMessage; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__SECURITY__PROTECTED__NAS__MESSAGE(); + NG__SECURITY__PROTECTED__NAS__MESSAGE(const NG__SECURITY__PROTECTED__NAS__MESSAGE& other_value); + NG__SECURITY__PROTECTED__NAS__MESSAGE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const OCTETSTRING& par_messageAuthenticationCode, + const OCTETSTRING& par_sequenceNumber, + const OCTETSTRING& par_plainNASMessage); +inline NG__SECURITY__PROTECTED__NAS__MESSAGE& operator=(const NG__SECURITY__PROTECTED__NAS__MESSAGE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__SECURITY__PROTECTED__NAS__MESSAGE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__SECURITY__PROTECTED__NAS__MESSAGE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline OCTETSTRING& messageAuthenticationCode() + {return field_messageAuthenticationCode;} + inline const OCTETSTRING& messageAuthenticationCode() const + {return field_messageAuthenticationCode;} + inline OCTETSTRING& sequenceNumber() + {return field_sequenceNumber;} + inline const OCTETSTRING& sequenceNumber() const + {return field_sequenceNumber;} + inline OCTETSTRING& plainNASMessage() + {return field_plainNASMessage;} + inline const OCTETSTRING& plainNASMessage() const + {return field_plainNASMessage;} +Base_Type* clone() const { return new NG__SECURITY__PROTECTED__NAS__MESSAGE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__SECURITY__PROTECTED__NAS__MESSAGE_template : public Record_Template { +void set_specific(); +public: +NG__SECURITY__PROTECTED__NAS__MESSAGE_template(): Record_Template() {} +NG__SECURITY__PROTECTED__NAS__MESSAGE_template(template_sel other_value): Record_Template(other_value) {} +NG__SECURITY__PROTECTED__NAS__MESSAGE_template(const NG__SECURITY__PROTECTED__NAS__MESSAGE& other_value): Record_Template() { copy_value(&other_value); } +NG__SECURITY__PROTECTED__NAS__MESSAGE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__SECURITY__PROTECTED__NAS__MESSAGE_template(NG__SECURITY__PROTECTED__NAS__MESSAGE_template* p_precondition, NG__SECURITY__PROTECTED__NAS__MESSAGE_template* p_implied_template); +NG__SECURITY__PROTECTED__NAS__MESSAGE_template(Dynamic_Match_Interface* p_dyn_match); +NG__SECURITY__PROTECTED__NAS__MESSAGE_template(const NG__SECURITY__PROTECTED__NAS__MESSAGE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__SECURITY__PROTECTED__NAS__MESSAGE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__SECURITY__PROTECTED__NAS__MESSAGE_template& operator=(template_sel other_value); +NG__SECURITY__PROTECTED__NAS__MESSAGE_template& operator=(const NG__SECURITY__PROTECTED__NAS__MESSAGE& other_value); +NG__SECURITY__PROTECTED__NAS__MESSAGE_template& operator=(const OPTIONAL& other_value); +NG__SECURITY__PROTECTED__NAS__MESSAGE_template& operator=(const NG__SECURITY__PROTECTED__NAS__MESSAGE_template& other_value); +inline boolean match(const NG__SECURITY__PROTECTED__NAS__MESSAGE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__SECURITY__PROTECTED__NAS__MESSAGE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__SECURITY__PROTECTED__NAS__MESSAGE valueof() const; +inline NG__SECURITY__PROTECTED__NAS__MESSAGE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +OCTETSTRING_template& messageAuthenticationCode(); +const OCTETSTRING_template& messageAuthenticationCode() const; +OCTETSTRING_template& sequenceNumber(); +const OCTETSTRING_template& sequenceNumber() const; +OCTETSTRING_template& plainNASMessage(); +const OCTETSTRING_template& plainNASMessage() const; +Record_Template* create() const { return new NG__SECURITY__PROTECTED__NAS__MESSAGE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__GMM__STATUS : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + GMM__GSM__Cause field_gmmCause; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NG__GMM__STATUS(); + NG__GMM__STATUS(const NG__GMM__STATUS& other_value); + NG__GMM__STATUS(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gmmCause); +inline NG__GMM__STATUS& operator=(const NG__GMM__STATUS& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__GMM__STATUS& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__GMM__STATUS& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gmmCause() + {return field_gmmCause;} + inline const GMM__GSM__Cause& gmmCause() const + {return field_gmmCause;} +Base_Type* clone() const { return new NG__GMM__STATUS(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__GMM__STATUS_template : public Record_Template { +void set_specific(); +public: +NG__GMM__STATUS_template(): Record_Template() {} +NG__GMM__STATUS_template(template_sel other_value): Record_Template(other_value) {} +NG__GMM__STATUS_template(const NG__GMM__STATUS& other_value): Record_Template() { copy_value(&other_value); } +NG__GMM__STATUS_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__GMM__STATUS_template(NG__GMM__STATUS_template* p_precondition, NG__GMM__STATUS_template* p_implied_template); +NG__GMM__STATUS_template(Dynamic_Match_Interface* p_dyn_match); +NG__GMM__STATUS_template(const NG__GMM__STATUS_template& other_value): Record_Template() { copy_template(other_value); } +~NG__GMM__STATUS_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__GMM__STATUS_template& operator=(template_sel other_value); +NG__GMM__STATUS_template& operator=(const NG__GMM__STATUS& other_value); +NG__GMM__STATUS_template& operator=(const OPTIONAL& other_value); +NG__GMM__STATUS_template& operator=(const NG__GMM__STATUS_template& other_value); +inline boolean match(const NG__GMM__STATUS& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__GMM__STATUS& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__GMM__STATUS valueof() const; +inline NG__GMM__STATUS_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gmmCause(); +const GMM__GSM__Cause_template& gmmCause() const; +Record_Template* create() const { return new NG__GMM__STATUS_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CP__ServiceType : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_tsc; + BITSTRING field_nasKeySetId; + Base_Type* fld_vec[3]; + void init_vec(); +public: + CP__ServiceType(); + CP__ServiceType(const CP__ServiceType& other_value); + CP__ServiceType(const OPTIONAL& par_iei, + const BITSTRING& par_tsc, + const BITSTRING& par_nasKeySetId); +inline CP__ServiceType& operator=(const CP__ServiceType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CP__ServiceType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CP__ServiceType& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& tsc() + {return field_tsc;} + inline const BITSTRING& tsc() const + {return field_tsc;} + inline BITSTRING& nasKeySetId() + {return field_nasKeySetId;} + inline const BITSTRING& nasKeySetId() const + {return field_nasKeySetId;} +Base_Type* clone() const { return new CP__ServiceType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CP__ServiceType_template : public Record_Template { +void set_specific(); +public: +CP__ServiceType_template(): Record_Template() {} +CP__ServiceType_template(template_sel other_value): Record_Template(other_value) {} +CP__ServiceType_template(const CP__ServiceType& other_value): Record_Template() { copy_value(&other_value); } +CP__ServiceType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CP__ServiceType_template(CP__ServiceType_template* p_precondition, CP__ServiceType_template* p_implied_template); +CP__ServiceType_template(Dynamic_Match_Interface* p_dyn_match); +CP__ServiceType_template(const CP__ServiceType_template& other_value): Record_Template() { copy_template(other_value); } +~CP__ServiceType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CP__ServiceType_template& operator=(template_sel other_value); +CP__ServiceType_template& operator=(const CP__ServiceType& other_value); +CP__ServiceType_template& operator=(const OPTIONAL& other_value); +CP__ServiceType_template& operator=(const CP__ServiceType_template& other_value); +inline boolean match(const CP__ServiceType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CP__ServiceType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CP__ServiceType valueof() const; +inline CP__ServiceType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& tsc(); +const BITSTRING_template& tsc() const; +BITSTRING_template& nasKeySetId(); +const BITSTRING_template& nasKeySetId() const; +Record_Template* create() const { return new CP__ServiceType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__CP__SERVICE__REQUEST : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + NAS__CommonTypeDefs::NAS__KeySetIdentifier field_ngKSI; + CP__ServiceType field_cpServiceType; + OPTIONAL field_cIoTSmallDataContainer; + OPTIONAL field_payloadContainerType; + OPTIONAL field_payload; + OPTIONAL field_pduSessionId; + OPTIONAL field_pduSessionStatus; + OPTIONAL field_releaseAssistanceInd; + OPTIONAL field_ulDataStatus; + OPTIONAL field_nasMsg; + OPTIONAL field_additionalInfo; + OPTIONAL field_allowedPDUSessionStatus; + OPTIONAL field_ueRequestType; + OPTIONAL field_pagingRestrict; + Base_Type* fld_vec[18]; + void init_vec(); +public: + NG__CP__SERVICE__REQUEST(); + NG__CP__SERVICE__REQUEST(const NG__CP__SERVICE__REQUEST& other_value); + NG__CP__SERVICE__REQUEST(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const NAS__CommonTypeDefs::NAS__KeySetIdentifier& par_ngKSI, + const CP__ServiceType& par_cpServiceType, + const OPTIONAL& par_cIoTSmallDataContainer, + const OPTIONAL& par_payloadContainerType, + const OPTIONAL& par_payload, + const OPTIONAL& par_pduSessionId, + const OPTIONAL& par_pduSessionStatus, + const OPTIONAL& par_releaseAssistanceInd, + const OPTIONAL& par_ulDataStatus, + const OPTIONAL& par_nasMsg, + const OPTIONAL& par_additionalInfo, + const OPTIONAL& par_allowedPDUSessionStatus, + const OPTIONAL& par_ueRequestType, + const OPTIONAL& par_pagingRestrict); +inline NG__CP__SERVICE__REQUEST& operator=(const NG__CP__SERVICE__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__CP__SERVICE__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__CP__SERVICE__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngKSI() + {return field_ngKSI;} + inline const NAS__CommonTypeDefs::NAS__KeySetIdentifier& ngKSI() const + {return field_ngKSI;} + inline CP__ServiceType& cpServiceType() + {return field_cpServiceType;} + inline const CP__ServiceType& cpServiceType() const + {return field_cpServiceType;} + inline OPTIONAL& cIoTSmallDataContainer() + {return field_cIoTSmallDataContainer;} + inline const OPTIONAL& cIoTSmallDataContainer() const + {return field_cIoTSmallDataContainer;} + inline OPTIONAL& payloadContainerType() + {return field_payloadContainerType;} + inline const OPTIONAL& payloadContainerType() const + {return field_payloadContainerType;} + inline OPTIONAL& payload() + {return field_payload;} + inline const OPTIONAL& payload() const + {return field_payload;} + inline OPTIONAL& pduSessionId() + {return field_pduSessionId;} + inline const OPTIONAL& pduSessionId() const + {return field_pduSessionId;} + inline OPTIONAL& pduSessionStatus() + {return field_pduSessionStatus;} + inline const OPTIONAL& pduSessionStatus() const + {return field_pduSessionStatus;} + inline OPTIONAL& releaseAssistanceInd() + {return field_releaseAssistanceInd;} + inline const OPTIONAL& releaseAssistanceInd() const + {return field_releaseAssistanceInd;} + inline OPTIONAL& ulDataStatus() + {return field_ulDataStatus;} + inline const OPTIONAL& ulDataStatus() const + {return field_ulDataStatus;} + inline OPTIONAL& nasMsg() + {return field_nasMsg;} + inline const OPTIONAL& nasMsg() const + {return field_nasMsg;} + inline OPTIONAL& additionalInfo() + {return field_additionalInfo;} + inline const OPTIONAL& additionalInfo() const + {return field_additionalInfo;} + inline OPTIONAL& allowedPDUSessionStatus() + {return field_allowedPDUSessionStatus;} + inline const OPTIONAL& allowedPDUSessionStatus() const + {return field_allowedPDUSessionStatus;} + inline OPTIONAL& ueRequestType() + {return field_ueRequestType;} + inline const OPTIONAL& ueRequestType() const + {return field_ueRequestType;} + inline OPTIONAL& pagingRestrict() + {return field_pagingRestrict;} + inline const OPTIONAL& pagingRestrict() const + {return field_pagingRestrict;} +Base_Type* clone() const { return new NG__CP__SERVICE__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 18; } +int optional_count() const { return 12; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__CP__SERVICE__REQUEST_template : public Record_Template { +void set_specific(); +public: +NG__CP__SERVICE__REQUEST_template(): Record_Template() {} +NG__CP__SERVICE__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +NG__CP__SERVICE__REQUEST_template(const NG__CP__SERVICE__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +NG__CP__SERVICE__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__CP__SERVICE__REQUEST_template(NG__CP__SERVICE__REQUEST_template* p_precondition, NG__CP__SERVICE__REQUEST_template* p_implied_template); +NG__CP__SERVICE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +NG__CP__SERVICE__REQUEST_template(const NG__CP__SERVICE__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~NG__CP__SERVICE__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__CP__SERVICE__REQUEST_template& operator=(template_sel other_value); +NG__CP__SERVICE__REQUEST_template& operator=(const NG__CP__SERVICE__REQUEST& other_value); +NG__CP__SERVICE__REQUEST_template& operator=(const OPTIONAL& other_value); +NG__CP__SERVICE__REQUEST_template& operator=(const NG__CP__SERVICE__REQUEST_template& other_value); +inline boolean match(const NG__CP__SERVICE__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__CP__SERVICE__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__CP__SERVICE__REQUEST valueof() const; +inline NG__CP__SERVICE__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngKSI(); +const NAS__CommonTypeDefs::NAS__KeySetIdentifier_template& ngKSI() const; +CP__ServiceType_template& cpServiceType(); +const CP__ServiceType_template& cpServiceType() const; +CIoTSmallDataRxdString_template& cIoTSmallDataContainer(); +const CIoTSmallDataRxdString_template& cIoTSmallDataContainer() const; +PayloadContainerType_template& payloadContainerType(); +const PayloadContainerType_template& payloadContainerType() const; +PayloadContainer_template& payload(); +const PayloadContainer_template& payload() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +PDU__SessionStatus_template& pduSessionStatus(); +const PDU__SessionStatus_template& pduSessionStatus() const; +NAS__CommonTypeDefs::ReleaseAssistanceInd_template& releaseAssistanceInd(); +const NAS__CommonTypeDefs::ReleaseAssistanceInd_template& releaseAssistanceInd() const; +PDU__SessionStatus_template& ulDataStatus(); +const PDU__SessionStatus_template& ulDataStatus() const; +NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& nasMsg(); +const NAS__CommonTypeDefs::ReplayedNASMessageContainer_template& nasMsg() const; +NAS__CommonTypeDefs::AdditionalInformation_template& additionalInfo(); +const NAS__CommonTypeDefs::AdditionalInformation_template& additionalInfo() const; +PDU__SessionStatus_template& allowedPDUSessionStatus(); +const PDU__SessionStatus_template& allowedPDUSessionStatus() const; +NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType(); +const NAS__CommonTypeDefs::UE__RequestType_template& ueRequestType() const; +NG__PagingRestriction_template& pagingRestrict(); +const NG__PagingRestriction_template& pagingRestrict() const; +Record_Template* create() const { return new NG__CP__SERVICE__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CIoTSmallDataRxdString : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_encodedstring; + Base_Type* fld_vec[2]; + void init_vec(); +public: + CIoTSmallDataRxdString(); + CIoTSmallDataRxdString(const CIoTSmallDataRxdString& other_value); + CIoTSmallDataRxdString(const OCTETSTRING& par_iei, + const OCTETSTRING& par_encodedstring); +inline CIoTSmallDataRxdString& operator=(const CIoTSmallDataRxdString& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CIoTSmallDataRxdString& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CIoTSmallDataRxdString& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& encodedstring() + {return field_encodedstring;} + inline const OCTETSTRING& encodedstring() const + {return field_encodedstring;} +Base_Type* clone() const { return new CIoTSmallDataRxdString(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CIoTSmallDataRxdString_template : public Record_Template { +void set_specific(); +public: +CIoTSmallDataRxdString_template(): Record_Template() {} +CIoTSmallDataRxdString_template(template_sel other_value): Record_Template(other_value) {} +CIoTSmallDataRxdString_template(const CIoTSmallDataRxdString& other_value): Record_Template() { copy_value(&other_value); } +CIoTSmallDataRxdString_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CIoTSmallDataRxdString_template(CIoTSmallDataRxdString_template* p_precondition, CIoTSmallDataRxdString_template* p_implied_template); +CIoTSmallDataRxdString_template(Dynamic_Match_Interface* p_dyn_match); +CIoTSmallDataRxdString_template(const CIoTSmallDataRxdString_template& other_value): Record_Template() { copy_template(other_value); } +~CIoTSmallDataRxdString_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CIoTSmallDataRxdString_template& operator=(template_sel other_value); +CIoTSmallDataRxdString_template& operator=(const CIoTSmallDataRxdString& other_value); +CIoTSmallDataRxdString_template& operator=(const OPTIONAL& other_value); +CIoTSmallDataRxdString_template& operator=(const CIoTSmallDataRxdString_template& other_value); +inline boolean match(const CIoTSmallDataRxdString& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CIoTSmallDataRxdString& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CIoTSmallDataRxdString valueof() const; +inline CIoTSmallDataRxdString_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& encodedstring(); +const OCTETSTRING_template& encodedstring() const; +Record_Template* create() const { return new CIoTSmallDataRxdString_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + S__NSSAI__LV field_sNSSAI; + EAP__Message field_eapMessage; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND(); + NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& other_value); + NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const S__NSSAI__LV& par_sNSSAI, + const EAP__Message& par_eapMessage); +inline NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline S__NSSAI__LV& sNSSAI() + {return field_sNSSAI;} + inline const S__NSSAI__LV& sNSSAI() const + {return field_sNSSAI;} + inline EAP__Message& eapMessage() + {return field_eapMessage;} + inline const EAP__Message& eapMessage() const + {return field_eapMessage;} +Base_Type* clone() const { return new NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template : public Record_Template { +void set_specific(); +public: +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(): Record_Template() {} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(template_sel other_value): Record_Template(other_value) {} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& other_value): Record_Template() { copy_value(&other_value); } +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template* p_precondition, NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template* p_implied_template); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(Dynamic_Match_Interface* p_dyn_match); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& operator=(template_sel other_value); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& other_value); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& operator=(const OPTIONAL& other_value); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& other_value); +inline boolean match(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND valueof() const; +inline NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +S__NSSAI__LV_template& sNSSAI(); +const S__NSSAI__LV_template& sNSSAI() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +Record_Template* create() const { return new NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + S__NSSAI__LV field_sNSSAI; + EAP__Message field_eapMessage; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE(); + NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& other_value); + NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const S__NSSAI__LV& par_sNSSAI, + const EAP__Message& par_eapMessage); +inline NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline S__NSSAI__LV& sNSSAI() + {return field_sNSSAI;} + inline const S__NSSAI__LV& sNSSAI() const + {return field_sNSSAI;} + inline EAP__Message& eapMessage() + {return field_eapMessage;} + inline const EAP__Message& eapMessage() const + {return field_eapMessage;} +Base_Type* clone() const { return new NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template : public Record_Template { +void set_specific(); +public: +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(): Record_Template() {} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template* p_precondition, NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template* p_implied_template); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& operator=(template_sel other_value); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& other_value); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& operator=(const OPTIONAL& other_value); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& other_value); +inline boolean match(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE valueof() const; +inline NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +S__NSSAI__LV_template& sNSSAI(); +const S__NSSAI__LV_template& sNSSAI() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +Record_Template* create() const { return new NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT : public Record_Type { + BITSTRING field_protocolDiscriminator; + HEXSTRING field_spareHalfOctet; + BITSTRING field_securityHeaderType; + BITSTRING field_messageType; + S__NSSAI__LV field_sNSSAI; + EAP__Message field_eapMessage; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT(); + NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& other_value); + NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT(const BITSTRING& par_protocolDiscriminator, + const HEXSTRING& par_spareHalfOctet, + const BITSTRING& par_securityHeaderType, + const BITSTRING& par_messageType, + const S__NSSAI__LV& par_sNSSAI, + const EAP__Message& par_eapMessage); +inline NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline HEXSTRING& spareHalfOctet() + {return field_spareHalfOctet;} + inline const HEXSTRING& spareHalfOctet() const + {return field_spareHalfOctet;} + inline BITSTRING& securityHeaderType() + {return field_securityHeaderType;} + inline const BITSTRING& securityHeaderType() const + {return field_securityHeaderType;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline S__NSSAI__LV& sNSSAI() + {return field_sNSSAI;} + inline const S__NSSAI__LV& sNSSAI() const + {return field_sNSSAI;} + inline EAP__Message& eapMessage() + {return field_eapMessage;} + inline const EAP__Message& eapMessage() const + {return field_eapMessage;} +Base_Type* clone() const { return new NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template : public Record_Template { +void set_specific(); +public: +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(): Record_Template() {} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(template_sel other_value): Record_Template(other_value) {} +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& other_value): Record_Template() { copy_value(&other_value); } +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template* p_precondition, NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template* p_implied_template); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(Dynamic_Match_Interface* p_dyn_match); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& operator=(template_sel other_value); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& other_value); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& operator=(const OPTIONAL& other_value); +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& operator=(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& other_value); +inline boolean match(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT valueof() const; +inline NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +HEXSTRING_template& spareHalfOctet(); +const HEXSTRING_template& spareHalfOctet() const; +BITSTRING_template& securityHeaderType(); +const BITSTRING_template& securityHeaderType() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +S__NSSAI__LV_template& sNSSAI(); +const S__NSSAI__LV_template& sNSSAI() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +Record_Template* create() const { return new NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IntegrityProtMaxDataRate : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_maxDataRateUL; + OCTETSTRING field_maxDataRateDL; + Base_Type* fld_vec[3]; + void init_vec(); +public: + IntegrityProtMaxDataRate(); + IntegrityProtMaxDataRate(const IntegrityProtMaxDataRate& other_value); + IntegrityProtMaxDataRate(const OPTIONAL& par_iei, + const OCTETSTRING& par_maxDataRateUL, + const OCTETSTRING& par_maxDataRateDL); +inline IntegrityProtMaxDataRate& operator=(const IntegrityProtMaxDataRate& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IntegrityProtMaxDataRate& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IntegrityProtMaxDataRate& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& maxDataRateUL() + {return field_maxDataRateUL;} + inline const OCTETSTRING& maxDataRateUL() const + {return field_maxDataRateUL;} + inline OCTETSTRING& maxDataRateDL() + {return field_maxDataRateDL;} + inline const OCTETSTRING& maxDataRateDL() const + {return field_maxDataRateDL;} +Base_Type* clone() const { return new IntegrityProtMaxDataRate(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IntegrityProtMaxDataRate_template : public Record_Template { +void set_specific(); +public: +IntegrityProtMaxDataRate_template(): Record_Template() {} +IntegrityProtMaxDataRate_template(template_sel other_value): Record_Template(other_value) {} +IntegrityProtMaxDataRate_template(const IntegrityProtMaxDataRate& other_value): Record_Template() { copy_value(&other_value); } +IntegrityProtMaxDataRate_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IntegrityProtMaxDataRate_template(IntegrityProtMaxDataRate_template* p_precondition, IntegrityProtMaxDataRate_template* p_implied_template); +IntegrityProtMaxDataRate_template(Dynamic_Match_Interface* p_dyn_match); +IntegrityProtMaxDataRate_template(const IntegrityProtMaxDataRate_template& other_value): Record_Template() { copy_template(other_value); } +~IntegrityProtMaxDataRate_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IntegrityProtMaxDataRate_template& operator=(template_sel other_value); +IntegrityProtMaxDataRate_template& operator=(const IntegrityProtMaxDataRate& other_value); +IntegrityProtMaxDataRate_template& operator=(const OPTIONAL& other_value); +IntegrityProtMaxDataRate_template& operator=(const IntegrityProtMaxDataRate_template& other_value); +inline boolean match(const IntegrityProtMaxDataRate& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IntegrityProtMaxDataRate& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IntegrityProtMaxDataRate valueof() const; +inline IntegrityProtMaxDataRate_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& maxDataRateUL(); +const OCTETSTRING_template& maxDataRateUL() const; +OCTETSTRING_template& maxDataRateDL(); +const OCTETSTRING_template& maxDataRateDL() const; +Record_Template* create() const { return new IntegrityProtMaxDataRate_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__ESTABLISHMENT__REQUEST : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + IntegrityProtMaxDataRate field_integrityProtMaxDataRate; + OPTIONAL field_pduSessionType; + OPTIONAL field_sscMode; + OPTIONAL field_smCapability; + OPTIONAL field_maxNumPacketFilters; + OPTIONAL field_alwaysOnPDUSessionReq; + OPTIONAL field_smPDU__RequestContainer; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_ipHeaderCompressionConfig; + OPTIONAL field_ds__TT__EthernetPortMACAddr; + OPTIONAL field_ueDS__TT__ResidenceTime; + OPTIONAL field_portManagementInfoContainer; + OPTIONAL field_ethernetHeaderCompressConfig; + OPTIONAL field_suggestedInterfaceId; + OPTIONAL field_serviceLvlAA; + OPTIONAL field_requestedMBS; + OPTIONAL field_pduSessionPairId; + OPTIONAL field_rsn; + Base_Type* fld_vec[22]; + void init_vec(); +public: + NG__PDU__SESSION__ESTABLISHMENT__REQUEST(); + NG__PDU__SESSION__ESTABLISHMENT__REQUEST(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& other_value); + NG__PDU__SESSION__ESTABLISHMENT__REQUEST(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const IntegrityProtMaxDataRate& par_integrityProtMaxDataRate, + const OPTIONAL& par_pduSessionType, + const OPTIONAL& par_sscMode, + const OPTIONAL& par_smCapability, + const OPTIONAL& par_maxNumPacketFilters, + const OPTIONAL& par_alwaysOnPDUSessionReq, + const OPTIONAL& par_smPDU__RequestContainer, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_ipHeaderCompressionConfig, + const OPTIONAL& par_ds__TT__EthernetPortMACAddr, + const OPTIONAL& par_ueDS__TT__ResidenceTime, + const OPTIONAL& par_portManagementInfoContainer, + const OPTIONAL& par_ethernetHeaderCompressConfig, + const OPTIONAL& par_suggestedInterfaceId, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_requestedMBS, + const OPTIONAL& par_pduSessionPairId, + const OPTIONAL& par_rsn); +inline NG__PDU__SESSION__ESTABLISHMENT__REQUEST& operator=(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline IntegrityProtMaxDataRate& integrityProtMaxDataRate() + {return field_integrityProtMaxDataRate;} + inline const IntegrityProtMaxDataRate& integrityProtMaxDataRate() const + {return field_integrityProtMaxDataRate;} + inline OPTIONAL& pduSessionType() + {return field_pduSessionType;} + inline const OPTIONAL& pduSessionType() const + {return field_pduSessionType;} + inline OPTIONAL& sscMode() + {return field_sscMode;} + inline const OPTIONAL& sscMode() const + {return field_sscMode;} + inline OPTIONAL& smCapability() + {return field_smCapability;} + inline const OPTIONAL& smCapability() const + {return field_smCapability;} + inline OPTIONAL& maxNumPacketFilters() + {return field_maxNumPacketFilters;} + inline const OPTIONAL& maxNumPacketFilters() const + {return field_maxNumPacketFilters;} + inline OPTIONAL& alwaysOnPDUSessionReq() + {return field_alwaysOnPDUSessionReq;} + inline const OPTIONAL& alwaysOnPDUSessionReq() const + {return field_alwaysOnPDUSessionReq;} + inline OPTIONAL& smPDU__RequestContainer() + {return field_smPDU__RequestContainer;} + inline const OPTIONAL& smPDU__RequestContainer() const + {return field_smPDU__RequestContainer;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& ipHeaderCompressionConfig() + {return field_ipHeaderCompressionConfig;} + inline const OPTIONAL& ipHeaderCompressionConfig() const + {return field_ipHeaderCompressionConfig;} + inline OPTIONAL& ds__TT__EthernetPortMACAddr() + {return field_ds__TT__EthernetPortMACAddr;} + inline const OPTIONAL& ds__TT__EthernetPortMACAddr() const + {return field_ds__TT__EthernetPortMACAddr;} + inline OPTIONAL& ueDS__TT__ResidenceTime() + {return field_ueDS__TT__ResidenceTime;} + inline const OPTIONAL& ueDS__TT__ResidenceTime() const + {return field_ueDS__TT__ResidenceTime;} + inline OPTIONAL& portManagementInfoContainer() + {return field_portManagementInfoContainer;} + inline const OPTIONAL& portManagementInfoContainer() const + {return field_portManagementInfoContainer;} + inline OPTIONAL& ethernetHeaderCompressConfig() + {return field_ethernetHeaderCompressConfig;} + inline const OPTIONAL& ethernetHeaderCompressConfig() const + {return field_ethernetHeaderCompressConfig;} + inline OPTIONAL& suggestedInterfaceId() + {return field_suggestedInterfaceId;} + inline const OPTIONAL& suggestedInterfaceId() const + {return field_suggestedInterfaceId;} + inline OPTIONAL& serviceLvlAA() + {return field_serviceLvlAA;} + inline const OPTIONAL& serviceLvlAA() const + {return field_serviceLvlAA;} + inline OPTIONAL& requestedMBS() + {return field_requestedMBS;} + inline const OPTIONAL& requestedMBS() const + {return field_requestedMBS;} + inline OPTIONAL& pduSessionPairId() + {return field_pduSessionPairId;} + inline const OPTIONAL& pduSessionPairId() const + {return field_pduSessionPairId;} + inline OPTIONAL& rsn() + {return field_rsn;} + inline const OPTIONAL& rsn() const + {return field_rsn;} +Base_Type* clone() const { return new NG__PDU__SESSION__ESTABLISHMENT__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 22; } +int optional_count() const { return 17; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(): Record_Template() {} +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template* p_precondition, NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template* p_implied_template); +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& operator=(template_sel other_value); +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& operator=(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& other_value); +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& operator=(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& other_value); +inline boolean match(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__ESTABLISHMENT__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__ESTABLISHMENT__REQUEST valueof() const; +inline NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +IntegrityProtMaxDataRate_template& integrityProtMaxDataRate(); +const IntegrityProtMaxDataRate_template& integrityProtMaxDataRate() const; +PDU__SessionType_template& pduSessionType(); +const PDU__SessionType_template& pduSessionType() const; +SSC__Mode_template& sscMode(); +const SSC__Mode_template& sscMode() const; +NG__UE__SM__Cap_template& smCapability(); +const NG__UE__SM__Cap_template& smCapability() const; +MaxNumPacketFilters_template& maxNumPacketFilters(); +const MaxNumPacketFilters_template& maxNumPacketFilters() const; +AlwaysOnPDUSessionInd_template& alwaysOnPDUSessionReq(); +const AlwaysOnPDUSessionInd_template& alwaysOnPDUSessionReq() const; +SM__PDU__DN__RequestContainer_template& smPDU__RequestContainer(); +const SM__PDU__DN__RequestContainer_template& smPDU__RequestContainer() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +IPHeaderCompressionConfig_template& ipHeaderCompressionConfig(); +const IPHeaderCompressionConfig_template& ipHeaderCompressionConfig() const; +DS__TT__EthernetPortMACAddr_template& ds__TT__EthernetPortMACAddr(); +const DS__TT__EthernetPortMACAddr_template& ds__TT__EthernetPortMACAddr() const; +UE__DS__TT__ResidenceTime_template& ueDS__TT__ResidenceTime(); +const UE__DS__TT__ResidenceTime_template& ueDS__TT__ResidenceTime() const; +PortManagementInfoContainer_template& portManagementInfoContainer(); +const PortManagementInfoContainer_template& portManagementInfoContainer() const; +EthernetHeaderCompressConfig_template& ethernetHeaderCompressConfig(); +const EthernetHeaderCompressConfig_template& ethernetHeaderCompressConfig() const; +PDU__Address_template& suggestedInterfaceId(); +const PDU__Address_template& suggestedInterfaceId() const; +ServiceLvlAAContainer_template& serviceLvlAA(); +const ServiceLvlAAContainer_template& serviceLvlAA() const; +RequestedMBSContainer_template& requestedMBS(); +const RequestedMBSContainer_template& requestedMBS() const; +PDUSessionPairId_template& pduSessionPairId(); +const PDUSessionPairId_template& pduSessionPairId() const; +RSN_template& rsn(); +const RSN_template& rsn() const; +Record_Template* create() const { return new NG__PDU__SESSION__ESTABLISHMENT__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDU__SessionType : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_typeValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PDU__SessionType(); + PDU__SessionType(const PDU__SessionType& other_value); + PDU__SessionType(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_typeValue); +inline PDU__SessionType& operator=(const PDU__SessionType& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDU__SessionType& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDU__SessionType& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& typeValue() + {return field_typeValue;} + inline const BITSTRING& typeValue() const + {return field_typeValue;} +Base_Type* clone() const { return new PDU__SessionType(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDU__SessionType_template : public Record_Template { +void set_specific(); +public: +PDU__SessionType_template(): Record_Template() {} +PDU__SessionType_template(template_sel other_value): Record_Template(other_value) {} +PDU__SessionType_template(const PDU__SessionType& other_value): Record_Template() { copy_value(&other_value); } +PDU__SessionType_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDU__SessionType_template(PDU__SessionType_template* p_precondition, PDU__SessionType_template* p_implied_template); +PDU__SessionType_template(Dynamic_Match_Interface* p_dyn_match); +PDU__SessionType_template(const PDU__SessionType_template& other_value): Record_Template() { copy_template(other_value); } +~PDU__SessionType_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDU__SessionType_template& operator=(template_sel other_value); +PDU__SessionType_template& operator=(const PDU__SessionType& other_value); +PDU__SessionType_template& operator=(const OPTIONAL& other_value); +PDU__SessionType_template& operator=(const PDU__SessionType_template& other_value); +inline boolean match(const PDU__SessionType& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDU__SessionType& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDU__SessionType valueof() const; +inline PDU__SessionType_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& typeValue(); +const BITSTRING_template& typeValue() const; +Record_Template* create() const { return new PDU__SessionType_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SSC__Mode : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_sscModeValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SSC__Mode(); + SSC__Mode(const SSC__Mode& other_value); + SSC__Mode(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_sscModeValue); +inline SSC__Mode& operator=(const SSC__Mode& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SSC__Mode& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SSC__Mode& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& sscModeValue() + {return field_sscModeValue;} + inline const BITSTRING& sscModeValue() const + {return field_sscModeValue;} +Base_Type* clone() const { return new SSC__Mode(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SSC__Mode_template : public Record_Template { +void set_specific(); +public: +SSC__Mode_template(): Record_Template() {} +SSC__Mode_template(template_sel other_value): Record_Template(other_value) {} +SSC__Mode_template(const SSC__Mode& other_value): Record_Template() { copy_value(&other_value); } +SSC__Mode_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SSC__Mode_template(SSC__Mode_template* p_precondition, SSC__Mode_template* p_implied_template); +SSC__Mode_template(Dynamic_Match_Interface* p_dyn_match); +SSC__Mode_template(const SSC__Mode_template& other_value): Record_Template() { copy_template(other_value); } +~SSC__Mode_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SSC__Mode_template& operator=(template_sel other_value); +SSC__Mode_template& operator=(const SSC__Mode& other_value); +SSC__Mode_template& operator=(const OPTIONAL& other_value); +SSC__Mode_template& operator=(const SSC__Mode_template& other_value); +inline boolean match(const SSC__Mode& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SSC__Mode& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SSC__Mode valueof() const; +inline SSC__Mode_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& sscModeValue(); +const BITSTRING_template& sscModeValue() const; +Record_Template* create() const { return new SSC__Mode_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__UE__SM__Cap : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_tpmic; + BITSTRING field_atsssST; + BITSTRING field_ept__S1; + BITSTRING field_mh6__PDU; + BITSTRING field_rQoS; + OPTIONAL field_spareBits; + OPTIONAL field_apmqf; + OPTIONAL field_spare; + Base_Type* fld_vec[10]; + void init_vec(); +public: + NG__UE__SM__Cap(); + NG__UE__SM__Cap(const NG__UE__SM__Cap& other_value); + NG__UE__SM__Cap(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_tpmic, + const BITSTRING& par_atsssST, + const BITSTRING& par_ept__S1, + const BITSTRING& par_mh6__PDU, + const BITSTRING& par_rQoS, + const OPTIONAL& par_spareBits, + const OPTIONAL& par_apmqf, + const OPTIONAL& par_spare); +inline NG__UE__SM__Cap& operator=(const NG__UE__SM__Cap& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__UE__SM__Cap& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__UE__SM__Cap& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& tpmic() + {return field_tpmic;} + inline const BITSTRING& tpmic() const + {return field_tpmic;} + inline BITSTRING& atsssST() + {return field_atsssST;} + inline const BITSTRING& atsssST() const + {return field_atsssST;} + inline BITSTRING& ept__S1() + {return field_ept__S1;} + inline const BITSTRING& ept__S1() const + {return field_ept__S1;} + inline BITSTRING& mh6__PDU() + {return field_mh6__PDU;} + inline const BITSTRING& mh6__PDU() const + {return field_mh6__PDU;} + inline BITSTRING& rQoS() + {return field_rQoS;} + inline const BITSTRING& rQoS() const + {return field_rQoS;} + inline OPTIONAL& spareBits() + {return field_spareBits;} + inline const OPTIONAL& spareBits() const + {return field_spareBits;} + inline OPTIONAL& apmqf() + {return field_apmqf;} + inline const OPTIONAL& apmqf() const + {return field_apmqf;} + inline OPTIONAL& spare() + {return field_spare;} + inline const OPTIONAL& spare() const + {return field_spare;} +Base_Type* clone() const { return new NG__UE__SM__Cap(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__UE__SM__Cap_template : public Record_Template { +void set_specific(); +public: +NG__UE__SM__Cap_template(): Record_Template() {} +NG__UE__SM__Cap_template(template_sel other_value): Record_Template(other_value) {} +NG__UE__SM__Cap_template(const NG__UE__SM__Cap& other_value): Record_Template() { copy_value(&other_value); } +NG__UE__SM__Cap_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__UE__SM__Cap_template(NG__UE__SM__Cap_template* p_precondition, NG__UE__SM__Cap_template* p_implied_template); +NG__UE__SM__Cap_template(Dynamic_Match_Interface* p_dyn_match); +NG__UE__SM__Cap_template(const NG__UE__SM__Cap_template& other_value): Record_Template() { copy_template(other_value); } +~NG__UE__SM__Cap_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__UE__SM__Cap_template& operator=(template_sel other_value); +NG__UE__SM__Cap_template& operator=(const NG__UE__SM__Cap& other_value); +NG__UE__SM__Cap_template& operator=(const OPTIONAL& other_value); +NG__UE__SM__Cap_template& operator=(const NG__UE__SM__Cap_template& other_value); +inline boolean match(const NG__UE__SM__Cap& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__UE__SM__Cap& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__UE__SM__Cap valueof() const; +inline NG__UE__SM__Cap_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& tpmic(); +const BITSTRING_template& tpmic() const; +BITSTRING_template& atsssST(); +const BITSTRING_template& atsssST() const; +BITSTRING_template& ept__S1(); +const BITSTRING_template& ept__S1() const; +BITSTRING_template& mh6__PDU(); +const BITSTRING_template& mh6__PDU() const; +BITSTRING_template& rQoS(); +const BITSTRING_template& rQoS() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& apmqf(); +const BITSTRING_template& apmqf() const; +OCTETSTRING_template& spare(); +const OCTETSTRING_template& spare() const; +Record_Template* create() const { return new NG__UE__SM__Cap_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MaxNumPacketFilters : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_numOfFilters; + BITSTRING field_spareBits; + Base_Type* fld_vec[3]; + void init_vec(); +public: + MaxNumPacketFilters(); + MaxNumPacketFilters(const MaxNumPacketFilters& other_value); + MaxNumPacketFilters(const OPTIONAL& par_iei, + const BITSTRING& par_numOfFilters, + const BITSTRING& par_spareBits); +inline MaxNumPacketFilters& operator=(const MaxNumPacketFilters& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MaxNumPacketFilters& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MaxNumPacketFilters& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& numOfFilters() + {return field_numOfFilters;} + inline const BITSTRING& numOfFilters() const + {return field_numOfFilters;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} +Base_Type* clone() const { return new MaxNumPacketFilters(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MaxNumPacketFilters_template : public Record_Template { +void set_specific(); +public: +MaxNumPacketFilters_template(): Record_Template() {} +MaxNumPacketFilters_template(template_sel other_value): Record_Template(other_value) {} +MaxNumPacketFilters_template(const MaxNumPacketFilters& other_value): Record_Template() { copy_value(&other_value); } +MaxNumPacketFilters_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MaxNumPacketFilters_template(MaxNumPacketFilters_template* p_precondition, MaxNumPacketFilters_template* p_implied_template); +MaxNumPacketFilters_template(Dynamic_Match_Interface* p_dyn_match); +MaxNumPacketFilters_template(const MaxNumPacketFilters_template& other_value): Record_Template() { copy_template(other_value); } +~MaxNumPacketFilters_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MaxNumPacketFilters_template& operator=(template_sel other_value); +MaxNumPacketFilters_template& operator=(const MaxNumPacketFilters& other_value); +MaxNumPacketFilters_template& operator=(const OPTIONAL& other_value); +MaxNumPacketFilters_template& operator=(const MaxNumPacketFilters_template& other_value); +inline boolean match(const MaxNumPacketFilters& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MaxNumPacketFilters& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MaxNumPacketFilters valueof() const; +inline MaxNumPacketFilters_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +BITSTRING_template& numOfFilters(); +const BITSTRING_template& numOfFilters() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +Record_Template* create() const { return new MaxNumPacketFilters_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AlwaysOnPDUSessionInd : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_apsi; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AlwaysOnPDUSessionInd(); + AlwaysOnPDUSessionInd(const AlwaysOnPDUSessionInd& other_value); + AlwaysOnPDUSessionInd(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_apsi); +inline AlwaysOnPDUSessionInd& operator=(const AlwaysOnPDUSessionInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AlwaysOnPDUSessionInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AlwaysOnPDUSessionInd& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& apsi() + {return field_apsi;} + inline const BITSTRING& apsi() const + {return field_apsi;} +Base_Type* clone() const { return new AlwaysOnPDUSessionInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AlwaysOnPDUSessionInd_template : public Record_Template { +void set_specific(); +public: +AlwaysOnPDUSessionInd_template(): Record_Template() {} +AlwaysOnPDUSessionInd_template(template_sel other_value): Record_Template(other_value) {} +AlwaysOnPDUSessionInd_template(const AlwaysOnPDUSessionInd& other_value): Record_Template() { copy_value(&other_value); } +AlwaysOnPDUSessionInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AlwaysOnPDUSessionInd_template(AlwaysOnPDUSessionInd_template* p_precondition, AlwaysOnPDUSessionInd_template* p_implied_template); +AlwaysOnPDUSessionInd_template(Dynamic_Match_Interface* p_dyn_match); +AlwaysOnPDUSessionInd_template(const AlwaysOnPDUSessionInd_template& other_value): Record_Template() { copy_template(other_value); } +~AlwaysOnPDUSessionInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AlwaysOnPDUSessionInd_template& operator=(template_sel other_value); +AlwaysOnPDUSessionInd_template& operator=(const AlwaysOnPDUSessionInd& other_value); +AlwaysOnPDUSessionInd_template& operator=(const OPTIONAL& other_value); +AlwaysOnPDUSessionInd_template& operator=(const AlwaysOnPDUSessionInd_template& other_value); +inline boolean match(const AlwaysOnPDUSessionInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AlwaysOnPDUSessionInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AlwaysOnPDUSessionInd valueof() const; +inline AlwaysOnPDUSessionInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& apsi(); +const BITSTRING_template& apsi() const; +Record_Template* create() const { return new AlwaysOnPDUSessionInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SM__PDU__DN__RequestContainer : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_dnSpecificId; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SM__PDU__DN__RequestContainer(); + SM__PDU__DN__RequestContainer(const SM__PDU__DN__RequestContainer& other_value); + SM__PDU__DN__RequestContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_dnSpecificId); +inline SM__PDU__DN__RequestContainer& operator=(const SM__PDU__DN__RequestContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SM__PDU__DN__RequestContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SM__PDU__DN__RequestContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& dnSpecificId() + {return field_dnSpecificId;} + inline const OCTETSTRING& dnSpecificId() const + {return field_dnSpecificId;} +Base_Type* clone() const { return new SM__PDU__DN__RequestContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SM__PDU__DN__RequestContainer_template : public Record_Template { +void set_specific(); +public: +SM__PDU__DN__RequestContainer_template(): Record_Template() {} +SM__PDU__DN__RequestContainer_template(template_sel other_value): Record_Template(other_value) {} +SM__PDU__DN__RequestContainer_template(const SM__PDU__DN__RequestContainer& other_value): Record_Template() { copy_value(&other_value); } +SM__PDU__DN__RequestContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SM__PDU__DN__RequestContainer_template(SM__PDU__DN__RequestContainer_template* p_precondition, SM__PDU__DN__RequestContainer_template* p_implied_template); +SM__PDU__DN__RequestContainer_template(Dynamic_Match_Interface* p_dyn_match); +SM__PDU__DN__RequestContainer_template(const SM__PDU__DN__RequestContainer_template& other_value): Record_Template() { copy_template(other_value); } +~SM__PDU__DN__RequestContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SM__PDU__DN__RequestContainer_template& operator=(template_sel other_value); +SM__PDU__DN__RequestContainer_template& operator=(const SM__PDU__DN__RequestContainer& other_value); +SM__PDU__DN__RequestContainer_template& operator=(const OPTIONAL& other_value); +SM__PDU__DN__RequestContainer_template& operator=(const SM__PDU__DN__RequestContainer_template& other_value); +inline boolean match(const SM__PDU__DN__RequestContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SM__PDU__DN__RequestContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SM__PDU__DN__RequestContainer valueof() const; +inline SM__PDU__DN__RequestContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& dnSpecificId(); +const OCTETSTRING_template& dnSpecificId() const; +Record_Template* create() const { return new SM__PDU__DN__RequestContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IPHeaderCompressionConfig : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_profile104; + BITSTRING field_profile103; + BITSTRING field_profile102; + BITSTRING field_profile6; + BITSTRING field_profile4; + BITSTRING field_profile3; + BITSTRING field_profile2; + OCTETSTRING field_maxCID; + OPTIONAL field_addParamsType; + OPTIONAL field_addParamsContainer; + Base_Type* fld_vec[13]; + void init_vec(); +public: + IPHeaderCompressionConfig(); + IPHeaderCompressionConfig(const IPHeaderCompressionConfig& other_value); + IPHeaderCompressionConfig(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_profile104, + const BITSTRING& par_profile103, + const BITSTRING& par_profile102, + const BITSTRING& par_profile6, + const BITSTRING& par_profile4, + const BITSTRING& par_profile3, + const BITSTRING& par_profile2, + const OCTETSTRING& par_maxCID, + const OPTIONAL& par_addParamsType, + const OPTIONAL& par_addParamsContainer); +inline IPHeaderCompressionConfig& operator=(const IPHeaderCompressionConfig& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IPHeaderCompressionConfig& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IPHeaderCompressionConfig& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& profile104() + {return field_profile104;} + inline const BITSTRING& profile104() const + {return field_profile104;} + inline BITSTRING& profile103() + {return field_profile103;} + inline const BITSTRING& profile103() const + {return field_profile103;} + inline BITSTRING& profile102() + {return field_profile102;} + inline const BITSTRING& profile102() const + {return field_profile102;} + inline BITSTRING& profile6() + {return field_profile6;} + inline const BITSTRING& profile6() const + {return field_profile6;} + inline BITSTRING& profile4() + {return field_profile4;} + inline const BITSTRING& profile4() const + {return field_profile4;} + inline BITSTRING& profile3() + {return field_profile3;} + inline const BITSTRING& profile3() const + {return field_profile3;} + inline BITSTRING& profile2() + {return field_profile2;} + inline const BITSTRING& profile2() const + {return field_profile2;} + inline OCTETSTRING& maxCID() + {return field_maxCID;} + inline const OCTETSTRING& maxCID() const + {return field_maxCID;} + inline OPTIONAL& addParamsType() + {return field_addParamsType;} + inline const OPTIONAL& addParamsType() const + {return field_addParamsType;} + inline OPTIONAL& addParamsContainer() + {return field_addParamsContainer;} + inline const OPTIONAL& addParamsContainer() const + {return field_addParamsContainer;} +Base_Type* clone() const { return new IPHeaderCompressionConfig(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 13; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IPHeaderCompressionConfig_template : public Record_Template { +void set_specific(); +public: +IPHeaderCompressionConfig_template(): Record_Template() {} +IPHeaderCompressionConfig_template(template_sel other_value): Record_Template(other_value) {} +IPHeaderCompressionConfig_template(const IPHeaderCompressionConfig& other_value): Record_Template() { copy_value(&other_value); } +IPHeaderCompressionConfig_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IPHeaderCompressionConfig_template(IPHeaderCompressionConfig_template* p_precondition, IPHeaderCompressionConfig_template* p_implied_template); +IPHeaderCompressionConfig_template(Dynamic_Match_Interface* p_dyn_match); +IPHeaderCompressionConfig_template(const IPHeaderCompressionConfig_template& other_value): Record_Template() { copy_template(other_value); } +~IPHeaderCompressionConfig_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IPHeaderCompressionConfig_template& operator=(template_sel other_value); +IPHeaderCompressionConfig_template& operator=(const IPHeaderCompressionConfig& other_value); +IPHeaderCompressionConfig_template& operator=(const OPTIONAL& other_value); +IPHeaderCompressionConfig_template& operator=(const IPHeaderCompressionConfig_template& other_value); +inline boolean match(const IPHeaderCompressionConfig& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IPHeaderCompressionConfig& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IPHeaderCompressionConfig valueof() const; +inline IPHeaderCompressionConfig_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& profile104(); +const BITSTRING_template& profile104() const; +BITSTRING_template& profile103(); +const BITSTRING_template& profile103() const; +BITSTRING_template& profile102(); +const BITSTRING_template& profile102() const; +BITSTRING_template& profile6(); +const BITSTRING_template& profile6() const; +BITSTRING_template& profile4(); +const BITSTRING_template& profile4() const; +BITSTRING_template& profile3(); +const BITSTRING_template& profile3() const; +BITSTRING_template& profile2(); +const BITSTRING_template& profile2() const; +OCTETSTRING_template& maxCID(); +const OCTETSTRING_template& maxCID() const; +OCTETSTRING_template& addParamsType(); +const OCTETSTRING_template& addParamsType() const; +OCTETSTRING_template& addParamsContainer(); +const OCTETSTRING_template& addParamsContainer() const; +Record_Template* create() const { return new IPHeaderCompressionConfig_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class DS__TT__EthernetPortMACAddr : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_addressContents; + Base_Type* fld_vec[3]; + void init_vec(); +public: + DS__TT__EthernetPortMACAddr(); + DS__TT__EthernetPortMACAddr(const DS__TT__EthernetPortMACAddr& other_value); + DS__TT__EthernetPortMACAddr(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_addressContents); +inline DS__TT__EthernetPortMACAddr& operator=(const DS__TT__EthernetPortMACAddr& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const DS__TT__EthernetPortMACAddr& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const DS__TT__EthernetPortMACAddr& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& addressContents() + {return field_addressContents;} + inline const OCTETSTRING& addressContents() const + {return field_addressContents;} +Base_Type* clone() const { return new DS__TT__EthernetPortMACAddr(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class DS__TT__EthernetPortMACAddr_template : public Record_Template { +void set_specific(); +public: +DS__TT__EthernetPortMACAddr_template(): Record_Template() {} +DS__TT__EthernetPortMACAddr_template(template_sel other_value): Record_Template(other_value) {} +DS__TT__EthernetPortMACAddr_template(const DS__TT__EthernetPortMACAddr& other_value): Record_Template() { copy_value(&other_value); } +DS__TT__EthernetPortMACAddr_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +DS__TT__EthernetPortMACAddr_template(DS__TT__EthernetPortMACAddr_template* p_precondition, DS__TT__EthernetPortMACAddr_template* p_implied_template); +DS__TT__EthernetPortMACAddr_template(Dynamic_Match_Interface* p_dyn_match); +DS__TT__EthernetPortMACAddr_template(const DS__TT__EthernetPortMACAddr_template& other_value): Record_Template() { copy_template(other_value); } +~DS__TT__EthernetPortMACAddr_template(); +boolean match_dynamic(const Base_Type* match_value) const; +DS__TT__EthernetPortMACAddr_template& operator=(template_sel other_value); +DS__TT__EthernetPortMACAddr_template& operator=(const DS__TT__EthernetPortMACAddr& other_value); +DS__TT__EthernetPortMACAddr_template& operator=(const OPTIONAL& other_value); +DS__TT__EthernetPortMACAddr_template& operator=(const DS__TT__EthernetPortMACAddr_template& other_value); +inline boolean match(const DS__TT__EthernetPortMACAddr& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const DS__TT__EthernetPortMACAddr& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +DS__TT__EthernetPortMACAddr valueof() const; +inline DS__TT__EthernetPortMACAddr_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& addressContents(); +const OCTETSTRING_template& addressContents() const; +Record_Template* create() const { return new DS__TT__EthernetPortMACAddr_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__DS__TT__ResidenceTime : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_timeContents; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UE__DS__TT__ResidenceTime(); + UE__DS__TT__ResidenceTime(const UE__DS__TT__ResidenceTime& other_value); + UE__DS__TT__ResidenceTime(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_timeContents); +inline UE__DS__TT__ResidenceTime& operator=(const UE__DS__TT__ResidenceTime& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__DS__TT__ResidenceTime& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__DS__TT__ResidenceTime& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& timeContents() + {return field_timeContents;} + inline const OCTETSTRING& timeContents() const + {return field_timeContents;} +Base_Type* clone() const { return new UE__DS__TT__ResidenceTime(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__DS__TT__ResidenceTime_template : public Record_Template { +void set_specific(); +public: +UE__DS__TT__ResidenceTime_template(): Record_Template() {} +UE__DS__TT__ResidenceTime_template(template_sel other_value): Record_Template(other_value) {} +UE__DS__TT__ResidenceTime_template(const UE__DS__TT__ResidenceTime& other_value): Record_Template() { copy_value(&other_value); } +UE__DS__TT__ResidenceTime_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__DS__TT__ResidenceTime_template(UE__DS__TT__ResidenceTime_template* p_precondition, UE__DS__TT__ResidenceTime_template* p_implied_template); +UE__DS__TT__ResidenceTime_template(Dynamic_Match_Interface* p_dyn_match); +UE__DS__TT__ResidenceTime_template(const UE__DS__TT__ResidenceTime_template& other_value): Record_Template() { copy_template(other_value); } +~UE__DS__TT__ResidenceTime_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__DS__TT__ResidenceTime_template& operator=(template_sel other_value); +UE__DS__TT__ResidenceTime_template& operator=(const UE__DS__TT__ResidenceTime& other_value); +UE__DS__TT__ResidenceTime_template& operator=(const OPTIONAL& other_value); +UE__DS__TT__ResidenceTime_template& operator=(const UE__DS__TT__ResidenceTime_template& other_value); +inline boolean match(const UE__DS__TT__ResidenceTime& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__DS__TT__ResidenceTime& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__DS__TT__ResidenceTime valueof() const; +inline UE__DS__TT__ResidenceTime_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& timeContents(); +const OCTETSTRING_template& timeContents() const; +Record_Template* create() const { return new UE__DS__TT__ResidenceTime_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PortManagementInfoContainer : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_contents; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PortManagementInfoContainer(); + PortManagementInfoContainer(const PortManagementInfoContainer& other_value); + PortManagementInfoContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_contents); +inline PortManagementInfoContainer& operator=(const PortManagementInfoContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PortManagementInfoContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PortManagementInfoContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& contents() + {return field_contents;} + inline const OCTETSTRING& contents() const + {return field_contents;} +Base_Type* clone() const { return new PortManagementInfoContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PortManagementInfoContainer_template : public Record_Template { +void set_specific(); +public: +PortManagementInfoContainer_template(): Record_Template() {} +PortManagementInfoContainer_template(template_sel other_value): Record_Template(other_value) {} +PortManagementInfoContainer_template(const PortManagementInfoContainer& other_value): Record_Template() { copy_value(&other_value); } +PortManagementInfoContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PortManagementInfoContainer_template(PortManagementInfoContainer_template* p_precondition, PortManagementInfoContainer_template* p_implied_template); +PortManagementInfoContainer_template(Dynamic_Match_Interface* p_dyn_match); +PortManagementInfoContainer_template(const PortManagementInfoContainer_template& other_value): Record_Template() { copy_template(other_value); } +~PortManagementInfoContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PortManagementInfoContainer_template& operator=(template_sel other_value); +PortManagementInfoContainer_template& operator=(const PortManagementInfoContainer& other_value); +PortManagementInfoContainer_template& operator=(const OPTIONAL& other_value); +PortManagementInfoContainer_template& operator=(const PortManagementInfoContainer_template& other_value); +inline boolean match(const PortManagementInfoContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PortManagementInfoContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PortManagementInfoContainer valueof() const; +inline PortManagementInfoContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& contents(); +const OCTETSTRING_template& contents() const; +Record_Template* create() const { return new PortManagementInfoContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class EthernetHeaderCompressConfig : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spareBits; + BITSTRING field_cidLength; + Base_Type* fld_vec[4]; + void init_vec(); +public: + EthernetHeaderCompressConfig(); + EthernetHeaderCompressConfig(const EthernetHeaderCompressConfig& other_value); + EthernetHeaderCompressConfig(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_cidLength); +inline EthernetHeaderCompressConfig& operator=(const EthernetHeaderCompressConfig& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EthernetHeaderCompressConfig& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EthernetHeaderCompressConfig& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& cidLength() + {return field_cidLength;} + inline const BITSTRING& cidLength() const + {return field_cidLength;} +Base_Type* clone() const { return new EthernetHeaderCompressConfig(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EthernetHeaderCompressConfig_template : public Record_Template { +void set_specific(); +public: +EthernetHeaderCompressConfig_template(): Record_Template() {} +EthernetHeaderCompressConfig_template(template_sel other_value): Record_Template(other_value) {} +EthernetHeaderCompressConfig_template(const EthernetHeaderCompressConfig& other_value): Record_Template() { copy_value(&other_value); } +EthernetHeaderCompressConfig_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EthernetHeaderCompressConfig_template(EthernetHeaderCompressConfig_template* p_precondition, EthernetHeaderCompressConfig_template* p_implied_template); +EthernetHeaderCompressConfig_template(Dynamic_Match_Interface* p_dyn_match); +EthernetHeaderCompressConfig_template(const EthernetHeaderCompressConfig_template& other_value): Record_Template() { copy_template(other_value); } +~EthernetHeaderCompressConfig_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EthernetHeaderCompressConfig_template& operator=(template_sel other_value); +EthernetHeaderCompressConfig_template& operator=(const EthernetHeaderCompressConfig& other_value); +EthernetHeaderCompressConfig_template& operator=(const OPTIONAL& other_value); +EthernetHeaderCompressConfig_template& operator=(const EthernetHeaderCompressConfig_template& other_value); +inline boolean match(const EthernetHeaderCompressConfig& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EthernetHeaderCompressConfig& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EthernetHeaderCompressConfig valueof() const; +inline EthernetHeaderCompressConfig_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& cidLength(); +const BITSTRING_template& cidLength() const; +Record_Template* create() const { return new EthernetHeaderCompressConfig_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDU__Address : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spare; + BITSTRING field_si16LLA; + BITSTRING field_typeValue; + OCTETSTRING field_adressInfo; + OPTIONAL field_ipv6Address; + Base_Type* fld_vec[7]; + void init_vec(); +public: + PDU__Address(); + PDU__Address(const PDU__Address& other_value); + PDU__Address(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spare, + const BITSTRING& par_si16LLA, + const BITSTRING& par_typeValue, + const OCTETSTRING& par_adressInfo, + const OPTIONAL& par_ipv6Address); +inline PDU__Address& operator=(const PDU__Address& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDU__Address& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDU__Address& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& si16LLA() + {return field_si16LLA;} + inline const BITSTRING& si16LLA() const + {return field_si16LLA;} + inline BITSTRING& typeValue() + {return field_typeValue;} + inline const BITSTRING& typeValue() const + {return field_typeValue;} + inline OCTETSTRING& adressInfo() + {return field_adressInfo;} + inline const OCTETSTRING& adressInfo() const + {return field_adressInfo;} + inline OPTIONAL& ipv6Address() + {return field_ipv6Address;} + inline const OPTIONAL& ipv6Address() const + {return field_ipv6Address;} +Base_Type* clone() const { return new PDU__Address(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDU__Address_template : public Record_Template { +void set_specific(); +public: +PDU__Address_template(): Record_Template() {} +PDU__Address_template(template_sel other_value): Record_Template(other_value) {} +PDU__Address_template(const PDU__Address& other_value): Record_Template() { copy_value(&other_value); } +PDU__Address_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDU__Address_template(PDU__Address_template* p_precondition, PDU__Address_template* p_implied_template); +PDU__Address_template(Dynamic_Match_Interface* p_dyn_match); +PDU__Address_template(const PDU__Address_template& other_value): Record_Template() { copy_template(other_value); } +~PDU__Address_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDU__Address_template& operator=(template_sel other_value); +PDU__Address_template& operator=(const PDU__Address& other_value); +PDU__Address_template& operator=(const OPTIONAL& other_value); +PDU__Address_template& operator=(const PDU__Address_template& other_value); +inline boolean match(const PDU__Address& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDU__Address& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDU__Address valueof() const; +inline PDU__Address_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& si16LLA(); +const BITSTRING_template& si16LLA() const; +BITSTRING_template& typeValue(); +const BITSTRING_template& typeValue() const; +OCTETSTRING_template& adressInfo(); +const OCTETSTRING_template& adressInfo() const; +OCTETSTRING_template& ipv6Address(); +const OCTETSTRING_template& ipv6Address() const; +Record_Template* create() const { return new PDU__Address_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RequestedMBSContainer_sessionInfo : public Record_Of_Type { + +static const MBSSessionInfo UNBOUND_ELEM; + +public: +RequestedMBSContainer_sessionInfo(): Record_Of_Type() {} +RequestedMBSContainer_sessionInfo(null_type other_value): Record_Of_Type(other_value) {} +RequestedMBSContainer_sessionInfo(const RequestedMBSContainer_sessionInfo& other_value): Record_Of_Type(other_value) {} +~RequestedMBSContainer_sessionInfo() { clean_up(); } + +inline RequestedMBSContainer_sessionInfo& operator=(null_type other_value) { set_val(other_value); return *this; } +inline RequestedMBSContainer_sessionInfo& operator=(const RequestedMBSContainer_sessionInfo& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RequestedMBSContainer_sessionInfo& other_value) const { return is_equal(&other_value); } +boolean operator!=(const RequestedMBSContainer_sessionInfo& other_value) const { return !is_equal(&other_value); } +MBSSessionInfo& operator[](int index_value); +MBSSessionInfo& operator[](const INTEGER& index_value); +const MBSSessionInfo& operator[](int index_value) const; +const MBSSessionInfo& operator[](const INTEGER& index_value) const; +RequestedMBSContainer_sessionInfo operator<<=(int rotate_count) const; +RequestedMBSContainer_sessionInfo operator<<=(const INTEGER& rotate_count) const; +RequestedMBSContainer_sessionInfo operator>>=(int rotate_count) const; +RequestedMBSContainer_sessionInfo operator>>=(const INTEGER& rotate_count) const; + +RequestedMBSContainer_sessionInfo operator+(const RequestedMBSContainer_sessionInfo& other_value) const; + +RequestedMBSContainer_sessionInfo operator+(const OPTIONAL& other_value) const; + +RequestedMBSContainer_sessionInfo operator+(null_type) const; + +RequestedMBSContainer_sessionInfo substr(int index, int returncount) const; + +RequestedMBSContainer_sessionInfo replace(int index, int len, const RequestedMBSContainer_sessionInfo& repl) const; + +RequestedMBSContainer_sessionInfo replace(int index, int len, const RequestedMBSContainer_sessionInfo_template& repl) const; + +Base_Type* clone() const { return new RequestedMBSContainer_sessionInfo(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class RequestedMBSContainer_sessionInfo_template : public Record_Of_Template { +friend RequestedMBSContainer_sessionInfo_template operator+(template_sel left_template, const RequestedMBSContainer_sessionInfo_template& right_template); +friend RequestedMBSContainer_sessionInfo_template operator+(const RequestedMBSContainer_sessionInfo& left_value, const RequestedMBSContainer_sessionInfo_template& right_template); +friend RequestedMBSContainer_sessionInfo_template operator+(template_sel left_template, const RequestedMBSContainer_sessionInfo& right_value); +friend RequestedMBSContainer_sessionInfo_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend RequestedMBSContainer_sessionInfo_template operator+(const RequestedMBSContainer_sessionInfo& left_value, template_sel right_template); + +public: +RequestedMBSContainer_sessionInfo_template() {} +RequestedMBSContainer_sessionInfo_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +RequestedMBSContainer_sessionInfo_template(null_type other_value); +RequestedMBSContainer_sessionInfo_template(const RequestedMBSContainer_sessionInfo& other_value) { copy_value(&other_value); } +RequestedMBSContainer_sessionInfo_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +RequestedMBSContainer_sessionInfo_template(RequestedMBSContainer_sessionInfo_template* p_precondition, RequestedMBSContainer_sessionInfo_template* p_implied_template); +RequestedMBSContainer_sessionInfo_template(Dynamic_Match_Interface* p_dyn_match); +RequestedMBSContainer_sessionInfo_template(const RequestedMBSContainer_sessionInfo_template& other_value): Record_Of_Template() { copy_template(other_value); } +~RequestedMBSContainer_sessionInfo_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RequestedMBSContainer_sessionInfo_template& operator=(template_sel other_value); +RequestedMBSContainer_sessionInfo_template& operator=(null_type other_value); +RequestedMBSContainer_sessionInfo_template& operator=(const RequestedMBSContainer_sessionInfo& other_value); +RequestedMBSContainer_sessionInfo_template& operator=(const OPTIONAL& other_value); +RequestedMBSContainer_sessionInfo_template& operator=(const RequestedMBSContainer_sessionInfo_template& other_value); + +RequestedMBSContainer_sessionInfo_template operator+(const RequestedMBSContainer_sessionInfo_template& other_value) const; +RequestedMBSContainer_sessionInfo_template operator+(const RequestedMBSContainer_sessionInfo& other_value) const; +RequestedMBSContainer_sessionInfo_template operator+(template_sel other_value) const; +RequestedMBSContainer_sessionInfo_template operator+(null_type) const; + +MBSSessionInfo_template& operator[](int index_value); +MBSSessionInfo_template& operator[](const INTEGER& index_value); +const MBSSessionInfo_template& operator[](int index_value) const; +const MBSSessionInfo_template& operator[](const INTEGER& index_value) const; +inline boolean match(const RequestedMBSContainer_sessionInfo& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +RequestedMBSContainer_sessionInfo valueof() const; +RequestedMBSContainer_sessionInfo substr(int index, int returncount) const; + +RequestedMBSContainer_sessionInfo replace(int index, int len, const RequestedMBSContainer_sessionInfo_template& repl) const; + +RequestedMBSContainer_sessionInfo replace(int index, int len, const RequestedMBSContainer_sessionInfo& repl) const; + +inline RequestedMBSContainer_sessionInfo_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const RequestedMBSContainer_sessionInfo& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new RequestedMBSContainer_sessionInfo_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class MBSSessionInfo : public Record_Type { + BITSTRING field_spareBits; + BITSTRING field_operation; + BITSTRING field_typeOfSessionId; + OCTETSTRING field_sessionId; + Base_Type* fld_vec[4]; + void init_vec(); +public: + MBSSessionInfo(); + MBSSessionInfo(const MBSSessionInfo& other_value); + MBSSessionInfo(const BITSTRING& par_spareBits, + const BITSTRING& par_operation, + const BITSTRING& par_typeOfSessionId, + const OCTETSTRING& par_sessionId); +inline MBSSessionInfo& operator=(const MBSSessionInfo& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MBSSessionInfo& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MBSSessionInfo& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& operation() + {return field_operation;} + inline const BITSTRING& operation() const + {return field_operation;} + inline BITSTRING& typeOfSessionId() + {return field_typeOfSessionId;} + inline const BITSTRING& typeOfSessionId() const + {return field_typeOfSessionId;} + inline OCTETSTRING& sessionId() + {return field_sessionId;} + inline const OCTETSTRING& sessionId() const + {return field_sessionId;} +Base_Type* clone() const { return new MBSSessionInfo(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MBSSessionInfo_template : public Record_Template { +void set_specific(); +public: +MBSSessionInfo_template(): Record_Template() {} +MBSSessionInfo_template(template_sel other_value): Record_Template(other_value) {} +MBSSessionInfo_template(const MBSSessionInfo& other_value): Record_Template() { copy_value(&other_value); } +MBSSessionInfo_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MBSSessionInfo_template(MBSSessionInfo_template* p_precondition, MBSSessionInfo_template* p_implied_template); +MBSSessionInfo_template(Dynamic_Match_Interface* p_dyn_match); +MBSSessionInfo_template(const MBSSessionInfo_template& other_value): Record_Template() { copy_template(other_value); } +~MBSSessionInfo_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MBSSessionInfo_template& operator=(template_sel other_value); +MBSSessionInfo_template& operator=(const MBSSessionInfo& other_value); +MBSSessionInfo_template& operator=(const OPTIONAL& other_value); +MBSSessionInfo_template& operator=(const MBSSessionInfo_template& other_value); +inline boolean match(const MBSSessionInfo& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MBSSessionInfo& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MBSSessionInfo valueof() const; +inline MBSSessionInfo_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& operation(); +const BITSTRING_template& operation() const; +BITSTRING_template& typeOfSessionId(); +const BITSTRING_template& typeOfSessionId() const; +OCTETSTRING_template& sessionId(); +const OCTETSTRING_template& sessionId() const; +Record_Template* create() const { return new MBSSessionInfo_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RequestedMBSContainer : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + RequestedMBSContainer_sessionInfo field_sessionInfo; + Base_Type* fld_vec[3]; + void init_vec(); +public: + RequestedMBSContainer(); + RequestedMBSContainer(const RequestedMBSContainer& other_value); + RequestedMBSContainer(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const RequestedMBSContainer_sessionInfo& par_sessionInfo); +inline RequestedMBSContainer& operator=(const RequestedMBSContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RequestedMBSContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RequestedMBSContainer& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline RequestedMBSContainer_sessionInfo& sessionInfo() + {return field_sessionInfo;} + inline const RequestedMBSContainer_sessionInfo& sessionInfo() const + {return field_sessionInfo;} +Base_Type* clone() const { return new RequestedMBSContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RequestedMBSContainer_template : public Record_Template { +void set_specific(); +public: +RequestedMBSContainer_template(): Record_Template() {} +RequestedMBSContainer_template(template_sel other_value): Record_Template(other_value) {} +RequestedMBSContainer_template(const RequestedMBSContainer& other_value): Record_Template() { copy_value(&other_value); } +RequestedMBSContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RequestedMBSContainer_template(RequestedMBSContainer_template* p_precondition, RequestedMBSContainer_template* p_implied_template); +RequestedMBSContainer_template(Dynamic_Match_Interface* p_dyn_match); +RequestedMBSContainer_template(const RequestedMBSContainer_template& other_value): Record_Template() { copy_template(other_value); } +~RequestedMBSContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RequestedMBSContainer_template& operator=(template_sel other_value); +RequestedMBSContainer_template& operator=(const RequestedMBSContainer& other_value); +RequestedMBSContainer_template& operator=(const OPTIONAL& other_value); +RequestedMBSContainer_template& operator=(const RequestedMBSContainer_template& other_value); +inline boolean match(const RequestedMBSContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RequestedMBSContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RequestedMBSContainer valueof() const; +inline RequestedMBSContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +RequestedMBSContainer_sessionInfo_template& sessionInfo(); +const RequestedMBSContainer_sessionInfo_template& sessionInfo() const; +Record_Template* create() const { return new RequestedMBSContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class PDUSessionPairId : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_id; + Base_Type* fld_vec[3]; + void init_vec(); +public: + PDUSessionPairId(); + PDUSessionPairId(const PDUSessionPairId& other_value); + PDUSessionPairId(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_id); +inline PDUSessionPairId& operator=(const PDUSessionPairId& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const PDUSessionPairId& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const PDUSessionPairId& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} +Base_Type* clone() const { return new PDUSessionPairId(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class PDUSessionPairId_template : public Record_Template { +void set_specific(); +public: +PDUSessionPairId_template(): Record_Template() {} +PDUSessionPairId_template(template_sel other_value): Record_Template(other_value) {} +PDUSessionPairId_template(const PDUSessionPairId& other_value): Record_Template() { copy_value(&other_value); } +PDUSessionPairId_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +PDUSessionPairId_template(PDUSessionPairId_template* p_precondition, PDUSessionPairId_template* p_implied_template); +PDUSessionPairId_template(Dynamic_Match_Interface* p_dyn_match); +PDUSessionPairId_template(const PDUSessionPairId_template& other_value): Record_Template() { copy_template(other_value); } +~PDUSessionPairId_template(); +boolean match_dynamic(const Base_Type* match_value) const; +PDUSessionPairId_template& operator=(template_sel other_value); +PDUSessionPairId_template& operator=(const PDUSessionPairId& other_value); +PDUSessionPairId_template& operator=(const OPTIONAL& other_value); +PDUSessionPairId_template& operator=(const PDUSessionPairId_template& other_value); +inline boolean match(const PDUSessionPairId& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const PDUSessionPairId& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +PDUSessionPairId valueof() const; +inline PDUSessionPairId_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +Record_Template* create() const { return new PDUSessionPairId_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class RSN : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + OCTETSTRING field_rsn; + Base_Type* fld_vec[3]; + void init_vec(); +public: + RSN(); + RSN(const RSN& other_value); + RSN(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const OCTETSTRING& par_rsn); +inline RSN& operator=(const RSN& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const RSN& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const RSN& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& rsn() + {return field_rsn;} + inline const OCTETSTRING& rsn() const + {return field_rsn;} +Base_Type* clone() const { return new RSN(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class RSN_template : public Record_Template { +void set_specific(); +public: +RSN_template(): Record_Template() {} +RSN_template(template_sel other_value): Record_Template(other_value) {} +RSN_template(const RSN& other_value): Record_Template() { copy_value(&other_value); } +RSN_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +RSN_template(RSN_template* p_precondition, RSN_template* p_implied_template); +RSN_template(Dynamic_Match_Interface* p_dyn_match); +RSN_template(const RSN_template& other_value): Record_Template() { copy_template(other_value); } +~RSN_template(); +boolean match_dynamic(const Base_Type* match_value) const; +RSN_template& operator=(template_sel other_value); +RSN_template& operator=(const RSN& other_value); +RSN_template& operator=(const OPTIONAL& other_value); +RSN_template& operator=(const RSN_template& other_value); +inline boolean match(const RSN& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const RSN& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +RSN valueof() const; +inline RSN_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& rsn(); +const OCTETSTRING_template& rsn() const; +Record_Template* create() const { return new RSN_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class QoS__RuleList : public Record_Of_Type { + +static const QoS__Rule UNBOUND_ELEM; + +public: +QoS__RuleList(): Record_Of_Type() {} +QoS__RuleList(null_type other_value): Record_Of_Type(other_value) {} +QoS__RuleList(const QoS__RuleList& other_value): Record_Of_Type(other_value) {} +~QoS__RuleList() { clean_up(); } + +inline QoS__RuleList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline QoS__RuleList& operator=(const QoS__RuleList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoS__RuleList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const QoS__RuleList& other_value) const { return !is_equal(&other_value); } +QoS__Rule& operator[](int index_value); +QoS__Rule& operator[](const INTEGER& index_value); +const QoS__Rule& operator[](int index_value) const; +const QoS__Rule& operator[](const INTEGER& index_value) const; +QoS__RuleList operator<<=(int rotate_count) const; +QoS__RuleList operator<<=(const INTEGER& rotate_count) const; +QoS__RuleList operator>>=(int rotate_count) const; +QoS__RuleList operator>>=(const INTEGER& rotate_count) const; + +QoS__RuleList operator+(const QoS__RuleList& other_value) const; + +QoS__RuleList operator+(const OPTIONAL& other_value) const; + +QoS__RuleList operator+(null_type) const; + +QoS__RuleList substr(int index, int returncount) const; + +QoS__RuleList replace(int index, int len, const QoS__RuleList& repl) const; + +QoS__RuleList replace(int index, int len, const QoS__RuleList_template& repl) const; + +Base_Type* clone() const { return new QoS__RuleList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class QoS__RuleList_template : public Record_Of_Template { +friend QoS__RuleList_template operator+(template_sel left_template, const QoS__RuleList_template& right_template); +friend QoS__RuleList_template operator+(const QoS__RuleList& left_value, const QoS__RuleList_template& right_template); +friend QoS__RuleList_template operator+(template_sel left_template, const QoS__RuleList& right_value); +friend QoS__RuleList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend QoS__RuleList_template operator+(const QoS__RuleList& left_value, template_sel right_template); + +public: +QoS__RuleList_template() {} +QoS__RuleList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +QoS__RuleList_template(null_type other_value); +QoS__RuleList_template(const QoS__RuleList& other_value) { copy_value(&other_value); } +QoS__RuleList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +QoS__RuleList_template(QoS__RuleList_template* p_precondition, QoS__RuleList_template* p_implied_template); +QoS__RuleList_template(Dynamic_Match_Interface* p_dyn_match); +QoS__RuleList_template(const QoS__RuleList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~QoS__RuleList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoS__RuleList_template& operator=(template_sel other_value); +QoS__RuleList_template& operator=(null_type other_value); +QoS__RuleList_template& operator=(const QoS__RuleList& other_value); +QoS__RuleList_template& operator=(const OPTIONAL& other_value); +QoS__RuleList_template& operator=(const QoS__RuleList_template& other_value); + +QoS__RuleList_template operator+(const QoS__RuleList_template& other_value) const; +QoS__RuleList_template operator+(const QoS__RuleList& other_value) const; +QoS__RuleList_template operator+(template_sel other_value) const; +QoS__RuleList_template operator+(null_type) const; + +QoS__Rule_template& operator[](int index_value); +QoS__Rule_template& operator[](const INTEGER& index_value); +const QoS__Rule_template& operator[](int index_value) const; +const QoS__Rule_template& operator[](const INTEGER& index_value) const; +inline boolean match(const QoS__RuleList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +QoS__RuleList valueof() const; +QoS__RuleList substr(int index, int returncount) const; + +QoS__RuleList replace(int index, int len, const QoS__RuleList_template& repl) const; + +QoS__RuleList replace(int index, int len, const QoS__RuleList& repl) const; + +inline QoS__RuleList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const QoS__RuleList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new QoS__RuleList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class QoS__Rule : public Record_Type { + OCTETSTRING field_identifier; + OCTETSTRING field_iel; + BITSTRING field_ruleOperationCode; + BITSTRING field_dqrBit; + BITSTRING field_numOfPacketFilters; + OPTIONAL field_packetFilterList; + OPTIONAL field_precedence; + OPTIONAL field_spare; + OPTIONAL field_segregation; + OPTIONAL field_flowIdentifier; + Base_Type* fld_vec[10]; + void init_vec(); +public: + QoS__Rule(); + QoS__Rule(const QoS__Rule& other_value); + QoS__Rule(const OCTETSTRING& par_identifier, + const OCTETSTRING& par_iel, + const BITSTRING& par_ruleOperationCode, + const BITSTRING& par_dqrBit, + const BITSTRING& par_numOfPacketFilters, + const OPTIONAL& par_packetFilterList, + const OPTIONAL& par_precedence, + const OPTIONAL& par_spare, + const OPTIONAL& par_segregation, + const OPTIONAL& par_flowIdentifier); +inline QoS__Rule& operator=(const QoS__Rule& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoS__Rule& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const QoS__Rule& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& identifier() + {return field_identifier;} + inline const OCTETSTRING& identifier() const + {return field_identifier;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& ruleOperationCode() + {return field_ruleOperationCode;} + inline const BITSTRING& ruleOperationCode() const + {return field_ruleOperationCode;} + inline BITSTRING& dqrBit() + {return field_dqrBit;} + inline const BITSTRING& dqrBit() const + {return field_dqrBit;} + inline BITSTRING& numOfPacketFilters() + {return field_numOfPacketFilters;} + inline const BITSTRING& numOfPacketFilters() const + {return field_numOfPacketFilters;} + inline OPTIONAL& packetFilterList() + {return field_packetFilterList;} + inline const OPTIONAL& packetFilterList() const + {return field_packetFilterList;} + inline OPTIONAL& precedence() + {return field_precedence;} + inline const OPTIONAL& precedence() const + {return field_precedence;} + inline OPTIONAL& spare() + {return field_spare;} + inline const OPTIONAL& spare() const + {return field_spare;} + inline OPTIONAL& segregation() + {return field_segregation;} + inline const OPTIONAL& segregation() const + {return field_segregation;} + inline OPTIONAL& flowIdentifier() + {return field_flowIdentifier;} + inline const OPTIONAL& flowIdentifier() const + {return field_flowIdentifier;} +Base_Type* clone() const { return new QoS__Rule(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 10; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class QoS__Rule_template : public Record_Template { +void set_specific(); +public: +QoS__Rule_template(): Record_Template() {} +QoS__Rule_template(template_sel other_value): Record_Template(other_value) {} +QoS__Rule_template(const QoS__Rule& other_value): Record_Template() { copy_value(&other_value); } +QoS__Rule_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +QoS__Rule_template(QoS__Rule_template* p_precondition, QoS__Rule_template* p_implied_template); +QoS__Rule_template(Dynamic_Match_Interface* p_dyn_match); +QoS__Rule_template(const QoS__Rule_template& other_value): Record_Template() { copy_template(other_value); } +~QoS__Rule_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoS__Rule_template& operator=(template_sel other_value); +QoS__Rule_template& operator=(const QoS__Rule& other_value); +QoS__Rule_template& operator=(const OPTIONAL& other_value); +QoS__Rule_template& operator=(const QoS__Rule_template& other_value); +inline boolean match(const QoS__Rule& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const QoS__Rule& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +QoS__Rule valueof() const; +inline QoS__Rule_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& identifier(); +const OCTETSTRING_template& identifier() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& ruleOperationCode(); +const BITSTRING_template& ruleOperationCode() const; +BITSTRING_template& dqrBit(); +const BITSTRING_template& dqrBit() const; +BITSTRING_template& numOfPacketFilters(); +const BITSTRING_template& numOfPacketFilters() const; +NG__PacketFilterList_template& packetFilterList(); +const NG__PacketFilterList_template& packetFilterList() const; +OCTETSTRING_template& precedence(); +const OCTETSTRING_template& precedence() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& segregation(); +const BITSTRING_template& segregation() const; +BITSTRING_template& flowIdentifier(); +const BITSTRING_template& flowIdentifier() const; +Record_Template* create() const { return new QoS__Rule_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PacketFilterList : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_modify = 1, ALT_new_ = 2 }; +private: +union_selection_type union_selection; +union { +NG__PacketFilterList__Type1 *field_modify; +NG__PacketFilterList__Type2 *field_new_; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__PacketFilterList& other_value); + +public: +NG__PacketFilterList(); +NG__PacketFilterList(const NG__PacketFilterList& other_value); +~NG__PacketFilterList(); +NG__PacketFilterList& operator=(const NG__PacketFilterList& other_value); +boolean operator==(const NG__PacketFilterList& other_value) const; +inline boolean operator!=(const NG__PacketFilterList& other_value) const { return !(*this == other_value); } +NG__PacketFilterList__Type1& modify(); +const NG__PacketFilterList__Type1& modify() const; +NG__PacketFilterList__Type2& new_(); +const NG__PacketFilterList__Type2& new_() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NG__PacketFilterList_template : public Base_Template { +union { +struct { +NG__PacketFilterList::union_selection_type union_selection; +union { +NG__PacketFilterList__Type1_template *field_modify; +NG__PacketFilterList__Type2_template *field_new_; +}; +} single_value; +struct { +unsigned int n_values; +NG__PacketFilterList_template *list_value; +} value_list; +struct { +NG__PacketFilterList_template* precondition; +NG__PacketFilterList_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__PacketFilterList& other_value); + +void copy_template(const NG__PacketFilterList_template& other_value); + +public: +NG__PacketFilterList_template(); +NG__PacketFilterList_template(template_sel other_value); +NG__PacketFilterList_template(const NG__PacketFilterList& other_value); +NG__PacketFilterList_template(const OPTIONAL& other_value); +NG__PacketFilterList_template(NG__PacketFilterList_template* p_precondition, NG__PacketFilterList_template* p_implied_template); +NG__PacketFilterList_template(Dynamic_Match_Interface* p_dyn_match); +NG__PacketFilterList_template(const NG__PacketFilterList_template& other_value); +~NG__PacketFilterList_template(); +void clean_up(); +NG__PacketFilterList_template& operator=(template_sel other_value); +NG__PacketFilterList_template& operator=(const NG__PacketFilterList& other_value); +NG__PacketFilterList_template& operator=(const OPTIONAL& other_value); +NG__PacketFilterList_template& operator=(const NG__PacketFilterList_template& other_value); +boolean match(const NG__PacketFilterList& other_value, boolean legacy = FALSE) const; +boolean is_value() const;NG__PacketFilterList valueof() const; +NG__PacketFilterList_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +NG__PacketFilterList::union_selection_type get_union_selection() const; +NG__PacketFilterList__Type1_template& modify(); +const NG__PacketFilterList__Type1_template& modify() const; +NG__PacketFilterList__Type2_template& new_(); +const NG__PacketFilterList__Type2_template& new_() const; +boolean ischosen(NG__PacketFilterList::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NG__PacketFilterList& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class NG__PacketFilterList__Type1 : public Record_Of_Type { + +static const NG__PacketFilter__Type1 UNBOUND_ELEM; + +public: +NG__PacketFilterList__Type1(): Record_Of_Type() {} +NG__PacketFilterList__Type1(null_type other_value): Record_Of_Type(other_value) {} +NG__PacketFilterList__Type1(const NG__PacketFilterList__Type1& other_value): Record_Of_Type(other_value) {} +~NG__PacketFilterList__Type1() { clean_up(); } + +inline NG__PacketFilterList__Type1& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__PacketFilterList__Type1& operator=(const NG__PacketFilterList__Type1& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PacketFilterList__Type1& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__PacketFilterList__Type1& other_value) const { return !is_equal(&other_value); } +NG__PacketFilter__Type1& operator[](int index_value); +NG__PacketFilter__Type1& operator[](const INTEGER& index_value); +const NG__PacketFilter__Type1& operator[](int index_value) const; +const NG__PacketFilter__Type1& operator[](const INTEGER& index_value) const; +NG__PacketFilterList__Type1 operator<<=(int rotate_count) const; +NG__PacketFilterList__Type1 operator<<=(const INTEGER& rotate_count) const; +NG__PacketFilterList__Type1 operator>>=(int rotate_count) const; +NG__PacketFilterList__Type1 operator>>=(const INTEGER& rotate_count) const; + +NG__PacketFilterList__Type1 operator+(const NG__PacketFilterList__Type1& other_value) const; + +NG__PacketFilterList__Type1 operator+(const OPTIONAL& other_value) const; + +NG__PacketFilterList__Type1 operator+(null_type) const; + +NG__PacketFilterList__Type1 substr(int index, int returncount) const; + +NG__PacketFilterList__Type1 replace(int index, int len, const NG__PacketFilterList__Type1& repl) const; + +NG__PacketFilterList__Type1 replace(int index, int len, const NG__PacketFilterList__Type1_template& repl) const; + +Base_Type* clone() const { return new NG__PacketFilterList__Type1(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__PacketFilterList__Type1_template : public Record_Of_Template { +friend NG__PacketFilterList__Type1_template operator+(template_sel left_template, const NG__PacketFilterList__Type1_template& right_template); +friend NG__PacketFilterList__Type1_template operator+(const NG__PacketFilterList__Type1& left_value, const NG__PacketFilterList__Type1_template& right_template); +friend NG__PacketFilterList__Type1_template operator+(template_sel left_template, const NG__PacketFilterList__Type1& right_value); +friend NG__PacketFilterList__Type1_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__PacketFilterList__Type1_template operator+(const NG__PacketFilterList__Type1& left_value, template_sel right_template); + +public: +NG__PacketFilterList__Type1_template() {} +NG__PacketFilterList__Type1_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__PacketFilterList__Type1_template(null_type other_value); +NG__PacketFilterList__Type1_template(const NG__PacketFilterList__Type1& other_value) { copy_value(&other_value); } +NG__PacketFilterList__Type1_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__PacketFilterList__Type1_template(NG__PacketFilterList__Type1_template* p_precondition, NG__PacketFilterList__Type1_template* p_implied_template); +NG__PacketFilterList__Type1_template(Dynamic_Match_Interface* p_dyn_match); +NG__PacketFilterList__Type1_template(const NG__PacketFilterList__Type1_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__PacketFilterList__Type1_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PacketFilterList__Type1_template& operator=(template_sel other_value); +NG__PacketFilterList__Type1_template& operator=(null_type other_value); +NG__PacketFilterList__Type1_template& operator=(const NG__PacketFilterList__Type1& other_value); +NG__PacketFilterList__Type1_template& operator=(const OPTIONAL& other_value); +NG__PacketFilterList__Type1_template& operator=(const NG__PacketFilterList__Type1_template& other_value); + +NG__PacketFilterList__Type1_template operator+(const NG__PacketFilterList__Type1_template& other_value) const; +NG__PacketFilterList__Type1_template operator+(const NG__PacketFilterList__Type1& other_value) const; +NG__PacketFilterList__Type1_template operator+(template_sel other_value) const; +NG__PacketFilterList__Type1_template operator+(null_type) const; + +NG__PacketFilter__Type1_template& operator[](int index_value); +NG__PacketFilter__Type1_template& operator[](const INTEGER& index_value); +const NG__PacketFilter__Type1_template& operator[](int index_value) const; +const NG__PacketFilter__Type1_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__PacketFilterList__Type1& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__PacketFilterList__Type1 valueof() const; +NG__PacketFilterList__Type1 substr(int index, int returncount) const; + +NG__PacketFilterList__Type1 replace(int index, int len, const NG__PacketFilterList__Type1_template& repl) const; + +NG__PacketFilterList__Type1 replace(int index, int len, const NG__PacketFilterList__Type1& repl) const; + +inline NG__PacketFilterList__Type1_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__PacketFilterList__Type1& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__PacketFilterList__Type1_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__PacketFilter__Type1 : public Record_Type { + BITSTRING field_spare; + BITSTRING field_packetFilterId; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__PacketFilter__Type1(); + NG__PacketFilter__Type1(const NG__PacketFilter__Type1& other_value); + NG__PacketFilter__Type1(const BITSTRING& par_spare, + const BITSTRING& par_packetFilterId); +inline NG__PacketFilter__Type1& operator=(const NG__PacketFilter__Type1& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PacketFilter__Type1& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PacketFilter__Type1& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& packetFilterId() + {return field_packetFilterId;} + inline const BITSTRING& packetFilterId() const + {return field_packetFilterId;} +Base_Type* clone() const { return new NG__PacketFilter__Type1(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PacketFilter__Type1_template : public Record_Template { +void set_specific(); +public: +NG__PacketFilter__Type1_template(): Record_Template() {} +NG__PacketFilter__Type1_template(template_sel other_value): Record_Template(other_value) {} +NG__PacketFilter__Type1_template(const NG__PacketFilter__Type1& other_value): Record_Template() { copy_value(&other_value); } +NG__PacketFilter__Type1_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PacketFilter__Type1_template(NG__PacketFilter__Type1_template* p_precondition, NG__PacketFilter__Type1_template* p_implied_template); +NG__PacketFilter__Type1_template(Dynamic_Match_Interface* p_dyn_match); +NG__PacketFilter__Type1_template(const NG__PacketFilter__Type1_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PacketFilter__Type1_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PacketFilter__Type1_template& operator=(template_sel other_value); +NG__PacketFilter__Type1_template& operator=(const NG__PacketFilter__Type1& other_value); +NG__PacketFilter__Type1_template& operator=(const OPTIONAL& other_value); +NG__PacketFilter__Type1_template& operator=(const NG__PacketFilter__Type1_template& other_value); +inline boolean match(const NG__PacketFilter__Type1& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PacketFilter__Type1& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PacketFilter__Type1 valueof() const; +inline NG__PacketFilter__Type1_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& packetFilterId(); +const BITSTRING_template& packetFilterId() const; +Record_Template* create() const { return new NG__PacketFilter__Type1_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PacketFilterList__Type2 : public Record_Of_Type { + +static const NG__PacketFilter__Type2 UNBOUND_ELEM; + +public: +NG__PacketFilterList__Type2(): Record_Of_Type() {} +NG__PacketFilterList__Type2(null_type other_value): Record_Of_Type(other_value) {} +NG__PacketFilterList__Type2(const NG__PacketFilterList__Type2& other_value): Record_Of_Type(other_value) {} +~NG__PacketFilterList__Type2() { clean_up(); } + +inline NG__PacketFilterList__Type2& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NG__PacketFilterList__Type2& operator=(const NG__PacketFilterList__Type2& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PacketFilterList__Type2& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NG__PacketFilterList__Type2& other_value) const { return !is_equal(&other_value); } +NG__PacketFilter__Type2& operator[](int index_value); +NG__PacketFilter__Type2& operator[](const INTEGER& index_value); +const NG__PacketFilter__Type2& operator[](int index_value) const; +const NG__PacketFilter__Type2& operator[](const INTEGER& index_value) const; +NG__PacketFilterList__Type2 operator<<=(int rotate_count) const; +NG__PacketFilterList__Type2 operator<<=(const INTEGER& rotate_count) const; +NG__PacketFilterList__Type2 operator>>=(int rotate_count) const; +NG__PacketFilterList__Type2 operator>>=(const INTEGER& rotate_count) const; + +NG__PacketFilterList__Type2 operator+(const NG__PacketFilterList__Type2& other_value) const; + +NG__PacketFilterList__Type2 operator+(const OPTIONAL& other_value) const; + +NG__PacketFilterList__Type2 operator+(null_type) const; + +NG__PacketFilterList__Type2 substr(int index, int returncount) const; + +NG__PacketFilterList__Type2 replace(int index, int len, const NG__PacketFilterList__Type2& repl) const; + +NG__PacketFilterList__Type2 replace(int index, int len, const NG__PacketFilterList__Type2_template& repl) const; + +Base_Type* clone() const { return new NG__PacketFilterList__Type2(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NG__PacketFilterList__Type2_template : public Record_Of_Template { +friend NG__PacketFilterList__Type2_template operator+(template_sel left_template, const NG__PacketFilterList__Type2_template& right_template); +friend NG__PacketFilterList__Type2_template operator+(const NG__PacketFilterList__Type2& left_value, const NG__PacketFilterList__Type2_template& right_template); +friend NG__PacketFilterList__Type2_template operator+(template_sel left_template, const NG__PacketFilterList__Type2& right_value); +friend NG__PacketFilterList__Type2_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NG__PacketFilterList__Type2_template operator+(const NG__PacketFilterList__Type2& left_value, template_sel right_template); + +public: +NG__PacketFilterList__Type2_template() {} +NG__PacketFilterList__Type2_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NG__PacketFilterList__Type2_template(null_type other_value); +NG__PacketFilterList__Type2_template(const NG__PacketFilterList__Type2& other_value) { copy_value(&other_value); } +NG__PacketFilterList__Type2_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NG__PacketFilterList__Type2_template(NG__PacketFilterList__Type2_template* p_precondition, NG__PacketFilterList__Type2_template* p_implied_template); +NG__PacketFilterList__Type2_template(Dynamic_Match_Interface* p_dyn_match); +NG__PacketFilterList__Type2_template(const NG__PacketFilterList__Type2_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NG__PacketFilterList__Type2_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PacketFilterList__Type2_template& operator=(template_sel other_value); +NG__PacketFilterList__Type2_template& operator=(null_type other_value); +NG__PacketFilterList__Type2_template& operator=(const NG__PacketFilterList__Type2& other_value); +NG__PacketFilterList__Type2_template& operator=(const OPTIONAL& other_value); +NG__PacketFilterList__Type2_template& operator=(const NG__PacketFilterList__Type2_template& other_value); + +NG__PacketFilterList__Type2_template operator+(const NG__PacketFilterList__Type2_template& other_value) const; +NG__PacketFilterList__Type2_template operator+(const NG__PacketFilterList__Type2& other_value) const; +NG__PacketFilterList__Type2_template operator+(template_sel other_value) const; +NG__PacketFilterList__Type2_template operator+(null_type) const; + +NG__PacketFilter__Type2_template& operator[](int index_value); +NG__PacketFilter__Type2_template& operator[](const INTEGER& index_value); +const NG__PacketFilter__Type2_template& operator[](int index_value) const; +const NG__PacketFilter__Type2_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NG__PacketFilterList__Type2& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NG__PacketFilterList__Type2 valueof() const; +NG__PacketFilterList__Type2 substr(int index, int returncount) const; + +NG__PacketFilterList__Type2 replace(int index, int len, const NG__PacketFilterList__Type2_template& repl) const; + +NG__PacketFilterList__Type2 replace(int index, int len, const NG__PacketFilterList__Type2& repl) const; + +inline NG__PacketFilterList__Type2_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NG__PacketFilterList__Type2& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NG__PacketFilterList__Type2_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NG__PacketFilter__Type2 : public Record_Type { + BITSTRING field_spare; + BITSTRING field_direction; + BITSTRING field_packetFilterId; + OPTIONAL field_len; + OPTIONAL field_contents; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NG__PacketFilter__Type2(); + NG__PacketFilter__Type2(const NG__PacketFilter__Type2& other_value); + NG__PacketFilter__Type2(const BITSTRING& par_spare, + const BITSTRING& par_direction, + const BITSTRING& par_packetFilterId, + const OPTIONAL& par_len, + const OPTIONAL& par_contents); +inline NG__PacketFilter__Type2& operator=(const NG__PacketFilter__Type2& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PacketFilter__Type2& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PacketFilter__Type2& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& direction() + {return field_direction;} + inline const BITSTRING& direction() const + {return field_direction;} + inline BITSTRING& packetFilterId() + {return field_packetFilterId;} + inline const BITSTRING& packetFilterId() const + {return field_packetFilterId;} + inline OPTIONAL& len() + {return field_len;} + inline const OPTIONAL& len() const + {return field_len;} + inline OPTIONAL& contents() + {return field_contents;} + inline const OPTIONAL& contents() const + {return field_contents;} +Base_Type* clone() const { return new NG__PacketFilter__Type2(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PacketFilter__Type2_template : public Record_Template { +void set_specific(); +public: +NG__PacketFilter__Type2_template(): Record_Template() {} +NG__PacketFilter__Type2_template(template_sel other_value): Record_Template(other_value) {} +NG__PacketFilter__Type2_template(const NG__PacketFilter__Type2& other_value): Record_Template() { copy_value(&other_value); } +NG__PacketFilter__Type2_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PacketFilter__Type2_template(NG__PacketFilter__Type2_template* p_precondition, NG__PacketFilter__Type2_template* p_implied_template); +NG__PacketFilter__Type2_template(Dynamic_Match_Interface* p_dyn_match); +NG__PacketFilter__Type2_template(const NG__PacketFilter__Type2_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PacketFilter__Type2_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PacketFilter__Type2_template& operator=(template_sel other_value); +NG__PacketFilter__Type2_template& operator=(const NG__PacketFilter__Type2& other_value); +NG__PacketFilter__Type2_template& operator=(const OPTIONAL& other_value); +NG__PacketFilter__Type2_template& operator=(const NG__PacketFilter__Type2_template& other_value); +inline boolean match(const NG__PacketFilter__Type2& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PacketFilter__Type2& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PacketFilter__Type2 valueof() const; +inline NG__PacketFilter__Type2_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& direction(); +const BITSTRING_template& direction() const; +BITSTRING_template& packetFilterId(); +const BITSTRING_template& packetFilterId() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& contents(); +const OCTETSTRING_template& contents() const; +Record_Template* create() const { return new NG__PacketFilter__Type2_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class QoS__Rules : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + QoS__RuleList field_listofQoSRules; + Base_Type* fld_vec[3]; + void init_vec(); +public: + QoS__Rules(); + QoS__Rules(const QoS__Rules& other_value); + QoS__Rules(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const QoS__RuleList& par_listofQoSRules); +inline QoS__Rules& operator=(const QoS__Rules& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoS__Rules& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const QoS__Rules& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline QoS__RuleList& listofQoSRules() + {return field_listofQoSRules;} + inline const QoS__RuleList& listofQoSRules() const + {return field_listofQoSRules;} +Base_Type* clone() const { return new QoS__Rules(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class QoS__Rules_template : public Record_Template { +void set_specific(); +public: +QoS__Rules_template(): Record_Template() {} +QoS__Rules_template(template_sel other_value): Record_Template(other_value) {} +QoS__Rules_template(const QoS__Rules& other_value): Record_Template() { copy_value(&other_value); } +QoS__Rules_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +QoS__Rules_template(QoS__Rules_template* p_precondition, QoS__Rules_template* p_implied_template); +QoS__Rules_template(Dynamic_Match_Interface* p_dyn_match); +QoS__Rules_template(const QoS__Rules_template& other_value): Record_Template() { copy_template(other_value); } +~QoS__Rules_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoS__Rules_template& operator=(template_sel other_value); +QoS__Rules_template& operator=(const QoS__Rules& other_value); +QoS__Rules_template& operator=(const OPTIONAL& other_value); +QoS__Rules_template& operator=(const QoS__Rules_template& other_value); +inline boolean match(const QoS__Rules& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const QoS__Rules& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +QoS__Rules valueof() const; +inline QoS__Rules_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +QoS__RuleList_template& listofQoSRules(); +const QoS__RuleList_template& listofQoSRules() const; +Record_Template* create() const { return new QoS__Rules_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class Session__AMBR : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_unitDL; + OCTETSTRING field_downlink; + OCTETSTRING field_unitUL; + OCTETSTRING field_uplink; + Base_Type* fld_vec[6]; + void init_vec(); +public: + Session__AMBR(); + Session__AMBR(const Session__AMBR& other_value); + Session__AMBR(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_unitDL, + const OCTETSTRING& par_downlink, + const OCTETSTRING& par_unitUL, + const OCTETSTRING& par_uplink); +inline Session__AMBR& operator=(const Session__AMBR& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const Session__AMBR& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const Session__AMBR& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& unitDL() + {return field_unitDL;} + inline const OCTETSTRING& unitDL() const + {return field_unitDL;} + inline OCTETSTRING& downlink() + {return field_downlink;} + inline const OCTETSTRING& downlink() const + {return field_downlink;} + inline OCTETSTRING& unitUL() + {return field_unitUL;} + inline const OCTETSTRING& unitUL() const + {return field_unitUL;} + inline OCTETSTRING& uplink() + {return field_uplink;} + inline const OCTETSTRING& uplink() const + {return field_uplink;} +Base_Type* clone() const { return new Session__AMBR(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class Session__AMBR_template : public Record_Template { +void set_specific(); +public: +Session__AMBR_template(): Record_Template() {} +Session__AMBR_template(template_sel other_value): Record_Template(other_value) {} +Session__AMBR_template(const Session__AMBR& other_value): Record_Template() { copy_value(&other_value); } +Session__AMBR_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +Session__AMBR_template(Session__AMBR_template* p_precondition, Session__AMBR_template* p_implied_template); +Session__AMBR_template(Dynamic_Match_Interface* p_dyn_match); +Session__AMBR_template(const Session__AMBR_template& other_value): Record_Template() { copy_template(other_value); } +~Session__AMBR_template(); +boolean match_dynamic(const Base_Type* match_value) const; +Session__AMBR_template& operator=(template_sel other_value); +Session__AMBR_template& operator=(const Session__AMBR& other_value); +Session__AMBR_template& operator=(const OPTIONAL& other_value); +Session__AMBR_template& operator=(const Session__AMBR_template& other_value); +inline boolean match(const Session__AMBR& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const Session__AMBR& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Session__AMBR valueof() const; +inline Session__AMBR_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& unitDL(); +const OCTETSTRING_template& unitDL() const; +OCTETSTRING_template& downlink(); +const OCTETSTRING_template& downlink() const; +OCTETSTRING_template& unitUL(); +const OCTETSTRING_template& unitUL() const; +OCTETSTRING_template& uplink(); +const OCTETSTRING_template& uplink() const; +Record_Template* create() const { return new Session__AMBR_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__ESTABLISHMENT__ACCEPT : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + SSC__Mode field_sscMode; + PDU__SessionType field_pduSessionType; + QoS__Rules field_authorizedQoSRules; + Session__AMBR field_sessionAMBR; + OPTIONAL field_gsmCause; + OPTIONAL field_pduAddress; + OPTIONAL field_rqTimerValue; + OPTIONAL field_s__NSSAI; + OPTIONAL field_alwaysOnPDUSessionInd; + OPTIONAL field_mappedEPSContexts; + OPTIONAL field_eapMessage; + OPTIONAL field_authorizedQoSFlowDescr; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_dnn; + OPTIONAL field_ngs__NetworkFeatureSupport; + OPTIONAL field_servingPLMNRateControl; + OPTIONAL field_atsssContainer; + OPTIONAL field_controlPlaneOnlyIndication; + OPTIONAL field_ipHeaderCompressionConfig; + OPTIONAL field_ethernetHeaderCompressConfig; + OPTIONAL field_serviceLvlAA; + OPTIONAL field_receivedMBS; + Base_Type* fld_vec[26]; + void init_vec(); +public: + NG__PDU__SESSION__ESTABLISHMENT__ACCEPT(); + NG__PDU__SESSION__ESTABLISHMENT__ACCEPT(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& other_value); + NG__PDU__SESSION__ESTABLISHMENT__ACCEPT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const SSC__Mode& par_sscMode, + const PDU__SessionType& par_pduSessionType, + const QoS__Rules& par_authorizedQoSRules, + const Session__AMBR& par_sessionAMBR, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_pduAddress, + const OPTIONAL& par_rqTimerValue, + const OPTIONAL& par_s__NSSAI, + const OPTIONAL& par_alwaysOnPDUSessionInd, + const OPTIONAL& par_mappedEPSContexts, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_authorizedQoSFlowDescr, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_dnn, + const OPTIONAL& par_ngs__NetworkFeatureSupport, + const OPTIONAL& par_servingPLMNRateControl, + const OPTIONAL& par_atsssContainer, + const OPTIONAL& par_controlPlaneOnlyIndication, + const OPTIONAL& par_ipHeaderCompressionConfig, + const OPTIONAL& par_ethernetHeaderCompressConfig, + const OPTIONAL& par_serviceLvlAA, + const OPTIONAL& par_receivedMBS); +inline NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& operator=(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline SSC__Mode& sscMode() + {return field_sscMode;} + inline const SSC__Mode& sscMode() const + {return field_sscMode;} + inline PDU__SessionType& pduSessionType() + {return field_pduSessionType;} + inline const PDU__SessionType& pduSessionType() const + {return field_pduSessionType;} + inline QoS__Rules& authorizedQoSRules() + {return field_authorizedQoSRules;} + inline const QoS__Rules& authorizedQoSRules() const + {return field_authorizedQoSRules;} + inline Session__AMBR& sessionAMBR() + {return field_sessionAMBR;} + inline const Session__AMBR& sessionAMBR() const + {return field_sessionAMBR;} + inline OPTIONAL& gsmCause() + {return field_gsmCause;} + inline const OPTIONAL& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& pduAddress() + {return field_pduAddress;} + inline const OPTIONAL& pduAddress() const + {return field_pduAddress;} + inline OPTIONAL& rqTimerValue() + {return field_rqTimerValue;} + inline const OPTIONAL& rqTimerValue() const + {return field_rqTimerValue;} + inline OPTIONAL& s__NSSAI() + {return field_s__NSSAI;} + inline const OPTIONAL& s__NSSAI() const + {return field_s__NSSAI;} + inline OPTIONAL& alwaysOnPDUSessionInd() + {return field_alwaysOnPDUSessionInd;} + inline const OPTIONAL& alwaysOnPDUSessionInd() const + {return field_alwaysOnPDUSessionInd;} + inline OPTIONAL& mappedEPSContexts() + {return field_mappedEPSContexts;} + inline const OPTIONAL& mappedEPSContexts() const + {return field_mappedEPSContexts;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& authorizedQoSFlowDescr() + {return field_authorizedQoSFlowDescr;} + inline const OPTIONAL& authorizedQoSFlowDescr() const + {return field_authorizedQoSFlowDescr;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& dnn() + {return field_dnn;} + inline const OPTIONAL& dnn() const + {return field_dnn;} + inline OPTIONAL& ngs__NetworkFeatureSupport() + {return field_ngs__NetworkFeatureSupport;} + inline const OPTIONAL& ngs__NetworkFeatureSupport() const + {return field_ngs__NetworkFeatureSupport;} + inline OPTIONAL& servingPLMNRateControl() + {return field_servingPLMNRateControl;} + inline const OPTIONAL& servingPLMNRateControl() const + {return field_servingPLMNRateControl;} + inline OPTIONAL& atsssContainer() + {return field_atsssContainer;} + inline const OPTIONAL& atsssContainer() const + {return field_atsssContainer;} + inline OPTIONAL& controlPlaneOnlyIndication() + {return field_controlPlaneOnlyIndication;} + inline const OPTIONAL& controlPlaneOnlyIndication() const + {return field_controlPlaneOnlyIndication;} + inline OPTIONAL& ipHeaderCompressionConfig() + {return field_ipHeaderCompressionConfig;} + inline const OPTIONAL& ipHeaderCompressionConfig() const + {return field_ipHeaderCompressionConfig;} + inline OPTIONAL& ethernetHeaderCompressConfig() + {return field_ethernetHeaderCompressConfig;} + inline const OPTIONAL& ethernetHeaderCompressConfig() const + {return field_ethernetHeaderCompressConfig;} + inline OPTIONAL& serviceLvlAA() + {return field_serviceLvlAA;} + inline const OPTIONAL& serviceLvlAA() const + {return field_serviceLvlAA;} + inline OPTIONAL& receivedMBS() + {return field_receivedMBS;} + inline const OPTIONAL& receivedMBS() const + {return field_receivedMBS;} +Base_Type* clone() const { return new NG__PDU__SESSION__ESTABLISHMENT__ACCEPT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 26; } +int optional_count() const { return 18; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(): Record_Template() {} +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template* p_precondition, NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template* p_implied_template); +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& operator=(template_sel other_value); +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& operator=(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& other_value); +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& operator=(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& other_value); +inline boolean match(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__ESTABLISHMENT__ACCEPT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__ESTABLISHMENT__ACCEPT valueof() const; +inline NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +SSC__Mode_template& sscMode(); +const SSC__Mode_template& sscMode() const; +PDU__SessionType_template& pduSessionType(); +const PDU__SessionType_template& pduSessionType() const; +QoS__Rules_template& authorizedQoSRules(); +const QoS__Rules_template& authorizedQoSRules() const; +Session__AMBR_template& sessionAMBR(); +const Session__AMBR_template& sessionAMBR() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +PDU__Address_template& pduAddress(); +const PDU__Address_template& pduAddress() const; +NAS__CommonTypeDefs::GPRS__Timer_template& rqTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer_template& rqTimerValue() const; +S__NSSAI__Type_template& s__NSSAI(); +const S__NSSAI__Type_template& s__NSSAI() const; +AlwaysOnPDUSessionInd_template& alwaysOnPDUSessionInd(); +const AlwaysOnPDUSessionInd_template& alwaysOnPDUSessionInd() const; +MappedEPSBearerContexts_template& mappedEPSContexts(); +const MappedEPSBearerContexts_template& mappedEPSContexts() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +QoSFlowDescr_template& authorizedQoSFlowDescr(); +const QoSFlowDescr_template& authorizedQoSFlowDescr() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +DNN_template& dnn(); +const DNN_template& dnn() const; +NGSM__NetworkFeatureSupport_template& ngs__NetworkFeatureSupport(); +const NGSM__NetworkFeatureSupport_template& ngs__NetworkFeatureSupport() const; +NAS__CommonTypeDefs::ServingPLMNRateControl_template& servingPLMNRateControl(); +const NAS__CommonTypeDefs::ServingPLMNRateControl_template& servingPLMNRateControl() const; +ATSSSContainer_template& atsssContainer(); +const ATSSSContainer_template& atsssContainer() const; +NAS__CommonTypeDefs::ControlPlaneInd_template& controlPlaneOnlyIndication(); +const NAS__CommonTypeDefs::ControlPlaneInd_template& controlPlaneOnlyIndication() const; +IPHeaderCompressionConfig_template& ipHeaderCompressionConfig(); +const IPHeaderCompressionConfig_template& ipHeaderCompressionConfig() const; +EthernetHeaderCompressConfig_template& ethernetHeaderCompressConfig(); +const EthernetHeaderCompressConfig_template& ethernetHeaderCompressConfig() const; +ServiceLvlAAContainer_template& serviceLvlAA(); +const ServiceLvlAAContainer_template& serviceLvlAA() const; +ReceivedMBSContainer_template& receivedMBS(); +const ReceivedMBSContainer_template& receivedMBS() const; +Record_Template* create() const { return new NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MappedEPSBearerContexts_mappedContextList : public Record_Of_Type { + +static const MappedEPSContext UNBOUND_ELEM; + +public: +MappedEPSBearerContexts_mappedContextList(): Record_Of_Type() {} +MappedEPSBearerContexts_mappedContextList(null_type other_value): Record_Of_Type(other_value) {} +MappedEPSBearerContexts_mappedContextList(const MappedEPSBearerContexts_mappedContextList& other_value): Record_Of_Type(other_value) {} +~MappedEPSBearerContexts_mappedContextList() { clean_up(); } + +inline MappedEPSBearerContexts_mappedContextList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline MappedEPSBearerContexts_mappedContextList& operator=(const MappedEPSBearerContexts_mappedContextList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MappedEPSBearerContexts_mappedContextList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const MappedEPSBearerContexts_mappedContextList& other_value) const { return !is_equal(&other_value); } +MappedEPSContext& operator[](int index_value); +MappedEPSContext& operator[](const INTEGER& index_value); +const MappedEPSContext& operator[](int index_value) const; +const MappedEPSContext& operator[](const INTEGER& index_value) const; +MappedEPSBearerContexts_mappedContextList operator<<=(int rotate_count) const; +MappedEPSBearerContexts_mappedContextList operator<<=(const INTEGER& rotate_count) const; +MappedEPSBearerContexts_mappedContextList operator>>=(int rotate_count) const; +MappedEPSBearerContexts_mappedContextList operator>>=(const INTEGER& rotate_count) const; + +MappedEPSBearerContexts_mappedContextList operator+(const MappedEPSBearerContexts_mappedContextList& other_value) const; + +MappedEPSBearerContexts_mappedContextList operator+(const OPTIONAL& other_value) const; + +MappedEPSBearerContexts_mappedContextList operator+(null_type) const; + +MappedEPSBearerContexts_mappedContextList substr(int index, int returncount) const; + +MappedEPSBearerContexts_mappedContextList replace(int index, int len, const MappedEPSBearerContexts_mappedContextList& repl) const; + +MappedEPSBearerContexts_mappedContextList replace(int index, int len, const MappedEPSBearerContexts_mappedContextList_template& repl) const; + +Base_Type* clone() const { return new MappedEPSBearerContexts_mappedContextList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class MappedEPSBearerContexts_mappedContextList_template : public Record_Of_Template { +friend MappedEPSBearerContexts_mappedContextList_template operator+(template_sel left_template, const MappedEPSBearerContexts_mappedContextList_template& right_template); +friend MappedEPSBearerContexts_mappedContextList_template operator+(const MappedEPSBearerContexts_mappedContextList& left_value, const MappedEPSBearerContexts_mappedContextList_template& right_template); +friend MappedEPSBearerContexts_mappedContextList_template operator+(template_sel left_template, const MappedEPSBearerContexts_mappedContextList& right_value); +friend MappedEPSBearerContexts_mappedContextList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend MappedEPSBearerContexts_mappedContextList_template operator+(const MappedEPSBearerContexts_mappedContextList& left_value, template_sel right_template); + +public: +MappedEPSBearerContexts_mappedContextList_template() {} +MappedEPSBearerContexts_mappedContextList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +MappedEPSBearerContexts_mappedContextList_template(null_type other_value); +MappedEPSBearerContexts_mappedContextList_template(const MappedEPSBearerContexts_mappedContextList& other_value) { copy_value(&other_value); } +MappedEPSBearerContexts_mappedContextList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +MappedEPSBearerContexts_mappedContextList_template(MappedEPSBearerContexts_mappedContextList_template* p_precondition, MappedEPSBearerContexts_mappedContextList_template* p_implied_template); +MappedEPSBearerContexts_mappedContextList_template(Dynamic_Match_Interface* p_dyn_match); +MappedEPSBearerContexts_mappedContextList_template(const MappedEPSBearerContexts_mappedContextList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~MappedEPSBearerContexts_mappedContextList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MappedEPSBearerContexts_mappedContextList_template& operator=(template_sel other_value); +MappedEPSBearerContexts_mappedContextList_template& operator=(null_type other_value); +MappedEPSBearerContexts_mappedContextList_template& operator=(const MappedEPSBearerContexts_mappedContextList& other_value); +MappedEPSBearerContexts_mappedContextList_template& operator=(const OPTIONAL& other_value); +MappedEPSBearerContexts_mappedContextList_template& operator=(const MappedEPSBearerContexts_mappedContextList_template& other_value); + +MappedEPSBearerContexts_mappedContextList_template operator+(const MappedEPSBearerContexts_mappedContextList_template& other_value) const; +MappedEPSBearerContexts_mappedContextList_template operator+(const MappedEPSBearerContexts_mappedContextList& other_value) const; +MappedEPSBearerContexts_mappedContextList_template operator+(template_sel other_value) const; +MappedEPSBearerContexts_mappedContextList_template operator+(null_type) const; + +MappedEPSContext_template& operator[](int index_value); +MappedEPSContext_template& operator[](const INTEGER& index_value); +const MappedEPSContext_template& operator[](int index_value) const; +const MappedEPSContext_template& operator[](const INTEGER& index_value) const; +inline boolean match(const MappedEPSBearerContexts_mappedContextList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +MappedEPSBearerContexts_mappedContextList valueof() const; +MappedEPSBearerContexts_mappedContextList substr(int index, int returncount) const; + +MappedEPSBearerContexts_mappedContextList replace(int index, int len, const MappedEPSBearerContexts_mappedContextList_template& repl) const; + +MappedEPSBearerContexts_mappedContextList replace(int index, int len, const MappedEPSBearerContexts_mappedContextList& repl) const; + +inline MappedEPSBearerContexts_mappedContextList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const MappedEPSBearerContexts_mappedContextList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new MappedEPSBearerContexts_mappedContextList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class MappedEPSContext_epsParamsList : public Record_Of_Type { + +static const EPSParameters UNBOUND_ELEM; + +public: +MappedEPSContext_epsParamsList(): Record_Of_Type() {} +MappedEPSContext_epsParamsList(null_type other_value): Record_Of_Type(other_value) {} +MappedEPSContext_epsParamsList(const MappedEPSContext_epsParamsList& other_value): Record_Of_Type(other_value) {} +~MappedEPSContext_epsParamsList() { clean_up(); } + +inline MappedEPSContext_epsParamsList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline MappedEPSContext_epsParamsList& operator=(const MappedEPSContext_epsParamsList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MappedEPSContext_epsParamsList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const MappedEPSContext_epsParamsList& other_value) const { return !is_equal(&other_value); } +EPSParameters& operator[](int index_value); +EPSParameters& operator[](const INTEGER& index_value); +const EPSParameters& operator[](int index_value) const; +const EPSParameters& operator[](const INTEGER& index_value) const; +MappedEPSContext_epsParamsList operator<<=(int rotate_count) const; +MappedEPSContext_epsParamsList operator<<=(const INTEGER& rotate_count) const; +MappedEPSContext_epsParamsList operator>>=(int rotate_count) const; +MappedEPSContext_epsParamsList operator>>=(const INTEGER& rotate_count) const; + +MappedEPSContext_epsParamsList operator+(const MappedEPSContext_epsParamsList& other_value) const; + +MappedEPSContext_epsParamsList operator+(const OPTIONAL& other_value) const; + +MappedEPSContext_epsParamsList operator+(null_type) const; + +MappedEPSContext_epsParamsList substr(int index, int returncount) const; + +MappedEPSContext_epsParamsList replace(int index, int len, const MappedEPSContext_epsParamsList& repl) const; + +MappedEPSContext_epsParamsList replace(int index, int len, const MappedEPSContext_epsParamsList_template& repl) const; + +Base_Type* clone() const { return new MappedEPSContext_epsParamsList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class MappedEPSContext_epsParamsList_template : public Record_Of_Template { +friend MappedEPSContext_epsParamsList_template operator+(template_sel left_template, const MappedEPSContext_epsParamsList_template& right_template); +friend MappedEPSContext_epsParamsList_template operator+(const MappedEPSContext_epsParamsList& left_value, const MappedEPSContext_epsParamsList_template& right_template); +friend MappedEPSContext_epsParamsList_template operator+(template_sel left_template, const MappedEPSContext_epsParamsList& right_value); +friend MappedEPSContext_epsParamsList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend MappedEPSContext_epsParamsList_template operator+(const MappedEPSContext_epsParamsList& left_value, template_sel right_template); + +public: +MappedEPSContext_epsParamsList_template() {} +MappedEPSContext_epsParamsList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +MappedEPSContext_epsParamsList_template(null_type other_value); +MappedEPSContext_epsParamsList_template(const MappedEPSContext_epsParamsList& other_value) { copy_value(&other_value); } +MappedEPSContext_epsParamsList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +MappedEPSContext_epsParamsList_template(MappedEPSContext_epsParamsList_template* p_precondition, MappedEPSContext_epsParamsList_template* p_implied_template); +MappedEPSContext_epsParamsList_template(Dynamic_Match_Interface* p_dyn_match); +MappedEPSContext_epsParamsList_template(const MappedEPSContext_epsParamsList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~MappedEPSContext_epsParamsList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MappedEPSContext_epsParamsList_template& operator=(template_sel other_value); +MappedEPSContext_epsParamsList_template& operator=(null_type other_value); +MappedEPSContext_epsParamsList_template& operator=(const MappedEPSContext_epsParamsList& other_value); +MappedEPSContext_epsParamsList_template& operator=(const OPTIONAL& other_value); +MappedEPSContext_epsParamsList_template& operator=(const MappedEPSContext_epsParamsList_template& other_value); + +MappedEPSContext_epsParamsList_template operator+(const MappedEPSContext_epsParamsList_template& other_value) const; +MappedEPSContext_epsParamsList_template operator+(const MappedEPSContext_epsParamsList& other_value) const; +MappedEPSContext_epsParamsList_template operator+(template_sel other_value) const; +MappedEPSContext_epsParamsList_template operator+(null_type) const; + +EPSParameters_template& operator[](int index_value); +EPSParameters_template& operator[](const INTEGER& index_value); +const EPSParameters_template& operator[](int index_value) const; +const EPSParameters_template& operator[](const INTEGER& index_value) const; +inline boolean match(const MappedEPSContext_epsParamsList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +MappedEPSContext_epsParamsList valueof() const; +MappedEPSContext_epsParamsList substr(int index, int returncount) const; + +MappedEPSContext_epsParamsList replace(int index, int len, const MappedEPSContext_epsParamsList_template& repl) const; + +MappedEPSContext_epsParamsList replace(int index, int len, const MappedEPSContext_epsParamsList& repl) const; + +inline MappedEPSContext_epsParamsList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const MappedEPSContext_epsParamsList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new MappedEPSContext_epsParamsList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class EPSParameters : public Record_Type { + OCTETSTRING field_id; + OPTIONAL field_lenOfContent; + OCTETSTRING field_epsParam; + Base_Type* fld_vec[3]; + void init_vec(); +public: + EPSParameters(); + EPSParameters(const EPSParameters& other_value); + EPSParameters(const OCTETSTRING& par_id, + const OPTIONAL& par_lenOfContent, + const OCTETSTRING& par_epsParam); +inline EPSParameters& operator=(const EPSParameters& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const EPSParameters& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const EPSParameters& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& id() + {return field_id;} + inline const OCTETSTRING& id() const + {return field_id;} + inline OPTIONAL& lenOfContent() + {return field_lenOfContent;} + inline const OPTIONAL& lenOfContent() const + {return field_lenOfContent;} + inline OCTETSTRING& epsParam() + {return field_epsParam;} + inline const OCTETSTRING& epsParam() const + {return field_epsParam;} +Base_Type* clone() const { return new EPSParameters(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class EPSParameters_template : public Record_Template { +void set_specific(); +public: +EPSParameters_template(): Record_Template() {} +EPSParameters_template(template_sel other_value): Record_Template(other_value) {} +EPSParameters_template(const EPSParameters& other_value): Record_Template() { copy_value(&other_value); } +EPSParameters_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +EPSParameters_template(EPSParameters_template* p_precondition, EPSParameters_template* p_implied_template); +EPSParameters_template(Dynamic_Match_Interface* p_dyn_match); +EPSParameters_template(const EPSParameters_template& other_value): Record_Template() { copy_template(other_value); } +~EPSParameters_template(); +boolean match_dynamic(const Base_Type* match_value) const; +EPSParameters_template& operator=(template_sel other_value); +EPSParameters_template& operator=(const EPSParameters& other_value); +EPSParameters_template& operator=(const OPTIONAL& other_value); +EPSParameters_template& operator=(const EPSParameters_template& other_value); +inline boolean match(const EPSParameters& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const EPSParameters& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +EPSParameters valueof() const; +inline EPSParameters_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& id(); +const OCTETSTRING_template& id() const; +OCTETSTRING_template& lenOfContent(); +const OCTETSTRING_template& lenOfContent() const; +OCTETSTRING_template& epsParam(); +const OCTETSTRING_template& epsParam() const; +Record_Template* create() const { return new EPSParameters_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MappedEPSContext : public Record_Type { + OCTETSTRING field_epsBearerId; + OCTETSTRING field_lenOfContext; + BITSTRING field_operationCode; + BITSTRING field_spare; + BITSTRING field_eBit; + BITSTRING field_numOfParams; + MappedEPSContext_epsParamsList field_epsParamsList; + Base_Type* fld_vec[7]; + void init_vec(); +public: + MappedEPSContext(); + MappedEPSContext(const MappedEPSContext& other_value); + MappedEPSContext(const OCTETSTRING& par_epsBearerId, + const OCTETSTRING& par_lenOfContext, + const BITSTRING& par_operationCode, + const BITSTRING& par_spare, + const BITSTRING& par_eBit, + const BITSTRING& par_numOfParams, + const MappedEPSContext_epsParamsList& par_epsParamsList); +inline MappedEPSContext& operator=(const MappedEPSContext& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MappedEPSContext& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MappedEPSContext& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& epsBearerId() + {return field_epsBearerId;} + inline const OCTETSTRING& epsBearerId() const + {return field_epsBearerId;} + inline OCTETSTRING& lenOfContext() + {return field_lenOfContext;} + inline const OCTETSTRING& lenOfContext() const + {return field_lenOfContext;} + inline BITSTRING& operationCode() + {return field_operationCode;} + inline const BITSTRING& operationCode() const + {return field_operationCode;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& eBit() + {return field_eBit;} + inline const BITSTRING& eBit() const + {return field_eBit;} + inline BITSTRING& numOfParams() + {return field_numOfParams;} + inline const BITSTRING& numOfParams() const + {return field_numOfParams;} + inline MappedEPSContext_epsParamsList& epsParamsList() + {return field_epsParamsList;} + inline const MappedEPSContext_epsParamsList& epsParamsList() const + {return field_epsParamsList;} +Base_Type* clone() const { return new MappedEPSContext(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MappedEPSContext_template : public Record_Template { +void set_specific(); +public: +MappedEPSContext_template(): Record_Template() {} +MappedEPSContext_template(template_sel other_value): Record_Template(other_value) {} +MappedEPSContext_template(const MappedEPSContext& other_value): Record_Template() { copy_value(&other_value); } +MappedEPSContext_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MappedEPSContext_template(MappedEPSContext_template* p_precondition, MappedEPSContext_template* p_implied_template); +MappedEPSContext_template(Dynamic_Match_Interface* p_dyn_match); +MappedEPSContext_template(const MappedEPSContext_template& other_value): Record_Template() { copy_template(other_value); } +~MappedEPSContext_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MappedEPSContext_template& operator=(template_sel other_value); +MappedEPSContext_template& operator=(const MappedEPSContext& other_value); +MappedEPSContext_template& operator=(const OPTIONAL& other_value); +MappedEPSContext_template& operator=(const MappedEPSContext_template& other_value); +inline boolean match(const MappedEPSContext& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MappedEPSContext& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MappedEPSContext valueof() const; +inline MappedEPSContext_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& epsBearerId(); +const OCTETSTRING_template& epsBearerId() const; +OCTETSTRING_template& lenOfContext(); +const OCTETSTRING_template& lenOfContext() const; +BITSTRING_template& operationCode(); +const BITSTRING_template& operationCode() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& eBit(); +const BITSTRING_template& eBit() const; +BITSTRING_template& numOfParams(); +const BITSTRING_template& numOfParams() const; +MappedEPSContext_epsParamsList_template& epsParamsList(); +const MappedEPSContext_epsParamsList_template& epsParamsList() const; +Record_Template* create() const { return new MappedEPSContext_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MappedEPSBearerContexts : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + MappedEPSBearerContexts_mappedContextList field_mappedContextList; + Base_Type* fld_vec[3]; + void init_vec(); +public: + MappedEPSBearerContexts(); + MappedEPSBearerContexts(const MappedEPSBearerContexts& other_value); + MappedEPSBearerContexts(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const MappedEPSBearerContexts_mappedContextList& par_mappedContextList); +inline MappedEPSBearerContexts& operator=(const MappedEPSBearerContexts& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MappedEPSBearerContexts& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MappedEPSBearerContexts& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline MappedEPSBearerContexts_mappedContextList& mappedContextList() + {return field_mappedContextList;} + inline const MappedEPSBearerContexts_mappedContextList& mappedContextList() const + {return field_mappedContextList;} +Base_Type* clone() const { return new MappedEPSBearerContexts(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MappedEPSBearerContexts_template : public Record_Template { +void set_specific(); +public: +MappedEPSBearerContexts_template(): Record_Template() {} +MappedEPSBearerContexts_template(template_sel other_value): Record_Template(other_value) {} +MappedEPSBearerContexts_template(const MappedEPSBearerContexts& other_value): Record_Template() { copy_value(&other_value); } +MappedEPSBearerContexts_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MappedEPSBearerContexts_template(MappedEPSBearerContexts_template* p_precondition, MappedEPSBearerContexts_template* p_implied_template); +MappedEPSBearerContexts_template(Dynamic_Match_Interface* p_dyn_match); +MappedEPSBearerContexts_template(const MappedEPSBearerContexts_template& other_value): Record_Template() { copy_template(other_value); } +~MappedEPSBearerContexts_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MappedEPSBearerContexts_template& operator=(template_sel other_value); +MappedEPSBearerContexts_template& operator=(const MappedEPSBearerContexts& other_value); +MappedEPSBearerContexts_template& operator=(const OPTIONAL& other_value); +MappedEPSBearerContexts_template& operator=(const MappedEPSBearerContexts_template& other_value); +inline boolean match(const MappedEPSBearerContexts& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MappedEPSBearerContexts& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MappedEPSBearerContexts valueof() const; +inline MappedEPSBearerContexts_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +MappedEPSBearerContexts_mappedContextList_template& mappedContextList(); +const MappedEPSBearerContexts_mappedContextList_template& mappedContextList() const; +Record_Template* create() const { return new MappedEPSBearerContexts_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class QoSFlowDescr_listofFlows : public Record_Of_Type { + +static const QoS__Flow UNBOUND_ELEM; + +public: +QoSFlowDescr_listofFlows(): Record_Of_Type() {} +QoSFlowDescr_listofFlows(null_type other_value): Record_Of_Type(other_value) {} +QoSFlowDescr_listofFlows(const QoSFlowDescr_listofFlows& other_value): Record_Of_Type(other_value) {} +~QoSFlowDescr_listofFlows() { clean_up(); } + +inline QoSFlowDescr_listofFlows& operator=(null_type other_value) { set_val(other_value); return *this; } +inline QoSFlowDescr_listofFlows& operator=(const QoSFlowDescr_listofFlows& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoSFlowDescr_listofFlows& other_value) const { return is_equal(&other_value); } +boolean operator!=(const QoSFlowDescr_listofFlows& other_value) const { return !is_equal(&other_value); } +QoS__Flow& operator[](int index_value); +QoS__Flow& operator[](const INTEGER& index_value); +const QoS__Flow& operator[](int index_value) const; +const QoS__Flow& operator[](const INTEGER& index_value) const; +QoSFlowDescr_listofFlows operator<<=(int rotate_count) const; +QoSFlowDescr_listofFlows operator<<=(const INTEGER& rotate_count) const; +QoSFlowDescr_listofFlows operator>>=(int rotate_count) const; +QoSFlowDescr_listofFlows operator>>=(const INTEGER& rotate_count) const; + +QoSFlowDescr_listofFlows operator+(const QoSFlowDescr_listofFlows& other_value) const; + +QoSFlowDescr_listofFlows operator+(const OPTIONAL& other_value) const; + +QoSFlowDescr_listofFlows operator+(null_type) const; + +QoSFlowDescr_listofFlows substr(int index, int returncount) const; + +QoSFlowDescr_listofFlows replace(int index, int len, const QoSFlowDescr_listofFlows& repl) const; + +QoSFlowDescr_listofFlows replace(int index, int len, const QoSFlowDescr_listofFlows_template& repl) const; + +Base_Type* clone() const { return new QoSFlowDescr_listofFlows(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class QoSFlowDescr_listofFlows_template : public Record_Of_Template { +friend QoSFlowDescr_listofFlows_template operator+(template_sel left_template, const QoSFlowDescr_listofFlows_template& right_template); +friend QoSFlowDescr_listofFlows_template operator+(const QoSFlowDescr_listofFlows& left_value, const QoSFlowDescr_listofFlows_template& right_template); +friend QoSFlowDescr_listofFlows_template operator+(template_sel left_template, const QoSFlowDescr_listofFlows& right_value); +friend QoSFlowDescr_listofFlows_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend QoSFlowDescr_listofFlows_template operator+(const QoSFlowDescr_listofFlows& left_value, template_sel right_template); + +public: +QoSFlowDescr_listofFlows_template() {} +QoSFlowDescr_listofFlows_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +QoSFlowDescr_listofFlows_template(null_type other_value); +QoSFlowDescr_listofFlows_template(const QoSFlowDescr_listofFlows& other_value) { copy_value(&other_value); } +QoSFlowDescr_listofFlows_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +QoSFlowDescr_listofFlows_template(QoSFlowDescr_listofFlows_template* p_precondition, QoSFlowDescr_listofFlows_template* p_implied_template); +QoSFlowDescr_listofFlows_template(Dynamic_Match_Interface* p_dyn_match); +QoSFlowDescr_listofFlows_template(const QoSFlowDescr_listofFlows_template& other_value): Record_Of_Template() { copy_template(other_value); } +~QoSFlowDescr_listofFlows_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoSFlowDescr_listofFlows_template& operator=(template_sel other_value); +QoSFlowDescr_listofFlows_template& operator=(null_type other_value); +QoSFlowDescr_listofFlows_template& operator=(const QoSFlowDescr_listofFlows& other_value); +QoSFlowDescr_listofFlows_template& operator=(const OPTIONAL& other_value); +QoSFlowDescr_listofFlows_template& operator=(const QoSFlowDescr_listofFlows_template& other_value); + +QoSFlowDescr_listofFlows_template operator+(const QoSFlowDescr_listofFlows_template& other_value) const; +QoSFlowDescr_listofFlows_template operator+(const QoSFlowDescr_listofFlows& other_value) const; +QoSFlowDescr_listofFlows_template operator+(template_sel other_value) const; +QoSFlowDescr_listofFlows_template operator+(null_type) const; + +QoS__Flow_template& operator[](int index_value); +QoS__Flow_template& operator[](const INTEGER& index_value); +const QoS__Flow_template& operator[](int index_value) const; +const QoS__Flow_template& operator[](const INTEGER& index_value) const; +inline boolean match(const QoSFlowDescr_listofFlows& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +QoSFlowDescr_listofFlows valueof() const; +QoSFlowDescr_listofFlows substr(int index, int returncount) const; + +QoSFlowDescr_listofFlows replace(int index, int len, const QoSFlowDescr_listofFlows_template& repl) const; + +QoSFlowDescr_listofFlows replace(int index, int len, const QoSFlowDescr_listofFlows& repl) const; + +inline QoSFlowDescr_listofFlows_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const QoSFlowDescr_listofFlows& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new QoSFlowDescr_listofFlows_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class QoS__Flow : public Record_Type { + BITSTRING field_spare2; + BITSTRING field_qfi; + BITSTRING field_operationCode; + BITSTRING field_spare6; + BITSTRING field_eBit; + BITSTRING field_numOfParameters; + OPTIONAL field_parameterList; + Base_Type* fld_vec[7]; + void init_vec(); +public: + QoS__Flow(); + QoS__Flow(const QoS__Flow& other_value); + QoS__Flow(const BITSTRING& par_spare2, + const BITSTRING& par_qfi, + const BITSTRING& par_operationCode, + const BITSTRING& par_spare6, + const BITSTRING& par_eBit, + const BITSTRING& par_numOfParameters, + const OPTIONAL& par_parameterList); +inline QoS__Flow& operator=(const QoS__Flow& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoS__Flow& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const QoS__Flow& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare2() + {return field_spare2;} + inline const BITSTRING& spare2() const + {return field_spare2;} + inline BITSTRING& qfi() + {return field_qfi;} + inline const BITSTRING& qfi() const + {return field_qfi;} + inline BITSTRING& operationCode() + {return field_operationCode;} + inline const BITSTRING& operationCode() const + {return field_operationCode;} + inline BITSTRING& spare6() + {return field_spare6;} + inline const BITSTRING& spare6() const + {return field_spare6;} + inline BITSTRING& eBit() + {return field_eBit;} + inline const BITSTRING& eBit() const + {return field_eBit;} + inline BITSTRING& numOfParameters() + {return field_numOfParameters;} + inline const BITSTRING& numOfParameters() const + {return field_numOfParameters;} + inline OPTIONAL& parameterList() + {return field_parameterList;} + inline const OPTIONAL& parameterList() const + {return field_parameterList;} +Base_Type* clone() const { return new QoS__Flow(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class QoS__Flow_template : public Record_Template { +void set_specific(); +public: +QoS__Flow_template(): Record_Template() {} +QoS__Flow_template(template_sel other_value): Record_Template(other_value) {} +QoS__Flow_template(const QoS__Flow& other_value): Record_Template() { copy_value(&other_value); } +QoS__Flow_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +QoS__Flow_template(QoS__Flow_template* p_precondition, QoS__Flow_template* p_implied_template); +QoS__Flow_template(Dynamic_Match_Interface* p_dyn_match); +QoS__Flow_template(const QoS__Flow_template& other_value): Record_Template() { copy_template(other_value); } +~QoS__Flow_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoS__Flow_template& operator=(template_sel other_value); +QoS__Flow_template& operator=(const QoS__Flow& other_value); +QoS__Flow_template& operator=(const OPTIONAL& other_value); +QoS__Flow_template& operator=(const QoS__Flow_template& other_value); +inline boolean match(const QoS__Flow& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const QoS__Flow& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +QoS__Flow valueof() const; +inline QoS__Flow_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare2(); +const BITSTRING_template& spare2() const; +BITSTRING_template& qfi(); +const BITSTRING_template& qfi() const; +BITSTRING_template& operationCode(); +const BITSTRING_template& operationCode() const; +BITSTRING_template& spare6(); +const BITSTRING_template& spare6() const; +BITSTRING_template& eBit(); +const BITSTRING_template& eBit() const; +BITSTRING_template& numOfParameters(); +const BITSTRING_template& numOfParameters() const; +QoS__Flow_parameterList_template& parameterList(); +const QoS__Flow_parameterList_template& parameterList() const; +Record_Template* create() const { return new QoS__Flow_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class QoS__Flow_parameterList : public Record_Of_Type { + +static const NAS__CommonTypeDefs::QoSParameters UNBOUND_ELEM; + +public: +QoS__Flow_parameterList(): Record_Of_Type() {} +QoS__Flow_parameterList(null_type other_value): Record_Of_Type(other_value) {} +QoS__Flow_parameterList(const QoS__Flow_parameterList& other_value): Record_Of_Type(other_value) {} +~QoS__Flow_parameterList() { clean_up(); } + +inline QoS__Flow_parameterList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline QoS__Flow_parameterList& operator=(const QoS__Flow_parameterList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoS__Flow_parameterList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const QoS__Flow_parameterList& other_value) const { return !is_equal(&other_value); } +NAS__CommonTypeDefs::QoSParameters& operator[](int index_value); +NAS__CommonTypeDefs::QoSParameters& operator[](const INTEGER& index_value); +const NAS__CommonTypeDefs::QoSParameters& operator[](int index_value) const; +const NAS__CommonTypeDefs::QoSParameters& operator[](const INTEGER& index_value) const; +QoS__Flow_parameterList operator<<=(int rotate_count) const; +QoS__Flow_parameterList operator<<=(const INTEGER& rotate_count) const; +QoS__Flow_parameterList operator>>=(int rotate_count) const; +QoS__Flow_parameterList operator>>=(const INTEGER& rotate_count) const; + +QoS__Flow_parameterList operator+(const QoS__Flow_parameterList& other_value) const; + +QoS__Flow_parameterList operator+(const OPTIONAL& other_value) const; + +QoS__Flow_parameterList operator+(null_type) const; + +QoS__Flow_parameterList substr(int index, int returncount) const; + +QoS__Flow_parameterList replace(int index, int len, const QoS__Flow_parameterList& repl) const; + +QoS__Flow_parameterList replace(int index, int len, const QoS__Flow_parameterList_template& repl) const; + +Base_Type* clone() const { return new QoS__Flow_parameterList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class QoS__Flow_parameterList_template : public Record_Of_Template { +friend QoS__Flow_parameterList_template operator+(template_sel left_template, const QoS__Flow_parameterList_template& right_template); +friend QoS__Flow_parameterList_template operator+(const QoS__Flow_parameterList& left_value, const QoS__Flow_parameterList_template& right_template); +friend QoS__Flow_parameterList_template operator+(template_sel left_template, const QoS__Flow_parameterList& right_value); +friend QoS__Flow_parameterList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend QoS__Flow_parameterList_template operator+(const QoS__Flow_parameterList& left_value, template_sel right_template); + +public: +QoS__Flow_parameterList_template() {} +QoS__Flow_parameterList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +QoS__Flow_parameterList_template(null_type other_value); +QoS__Flow_parameterList_template(const QoS__Flow_parameterList& other_value) { copy_value(&other_value); } +QoS__Flow_parameterList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +QoS__Flow_parameterList_template(QoS__Flow_parameterList_template* p_precondition, QoS__Flow_parameterList_template* p_implied_template); +QoS__Flow_parameterList_template(Dynamic_Match_Interface* p_dyn_match); +QoS__Flow_parameterList_template(const QoS__Flow_parameterList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~QoS__Flow_parameterList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoS__Flow_parameterList_template& operator=(template_sel other_value); +QoS__Flow_parameterList_template& operator=(null_type other_value); +QoS__Flow_parameterList_template& operator=(const QoS__Flow_parameterList& other_value); +QoS__Flow_parameterList_template& operator=(const OPTIONAL& other_value); +QoS__Flow_parameterList_template& operator=(const QoS__Flow_parameterList_template& other_value); + +QoS__Flow_parameterList_template operator+(const QoS__Flow_parameterList_template& other_value) const; +QoS__Flow_parameterList_template operator+(const QoS__Flow_parameterList& other_value) const; +QoS__Flow_parameterList_template operator+(template_sel other_value) const; +QoS__Flow_parameterList_template operator+(null_type) const; + +NAS__CommonTypeDefs::QoSParameters_template& operator[](int index_value); +NAS__CommonTypeDefs::QoSParameters_template& operator[](const INTEGER& index_value); +const NAS__CommonTypeDefs::QoSParameters_template& operator[](int index_value) const; +const NAS__CommonTypeDefs::QoSParameters_template& operator[](const INTEGER& index_value) const; +inline boolean match(const QoS__Flow_parameterList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +QoS__Flow_parameterList valueof() const; +QoS__Flow_parameterList substr(int index, int returncount) const; + +QoS__Flow_parameterList replace(int index, int len, const QoS__Flow_parameterList_template& repl) const; + +QoS__Flow_parameterList replace(int index, int len, const QoS__Flow_parameterList& repl) const; + +inline QoS__Flow_parameterList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const QoS__Flow_parameterList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new QoS__Flow_parameterList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class QoSFlowDescr : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + QoSFlowDescr_listofFlows field_listofFlows; + Base_Type* fld_vec[3]; + void init_vec(); +public: + QoSFlowDescr(); + QoSFlowDescr(const QoSFlowDescr& other_value); + QoSFlowDescr(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const QoSFlowDescr_listofFlows& par_listofFlows); +inline QoSFlowDescr& operator=(const QoSFlowDescr& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoSFlowDescr& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const QoSFlowDescr& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline QoSFlowDescr_listofFlows& listofFlows() + {return field_listofFlows;} + inline const QoSFlowDescr_listofFlows& listofFlows() const + {return field_listofFlows;} +Base_Type* clone() const { return new QoSFlowDescr(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class QoSFlowDescr_template : public Record_Template { +void set_specific(); +public: +QoSFlowDescr_template(): Record_Template() {} +QoSFlowDescr_template(template_sel other_value): Record_Template(other_value) {} +QoSFlowDescr_template(const QoSFlowDescr& other_value): Record_Template() { copy_value(&other_value); } +QoSFlowDescr_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +QoSFlowDescr_template(QoSFlowDescr_template* p_precondition, QoSFlowDescr_template* p_implied_template); +QoSFlowDescr_template(Dynamic_Match_Interface* p_dyn_match); +QoSFlowDescr_template(const QoSFlowDescr_template& other_value): Record_Template() { copy_template(other_value); } +~QoSFlowDescr_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoSFlowDescr_template& operator=(template_sel other_value); +QoSFlowDescr_template& operator=(const QoSFlowDescr& other_value); +QoSFlowDescr_template& operator=(const OPTIONAL& other_value); +QoSFlowDescr_template& operator=(const QoSFlowDescr_template& other_value); +inline boolean match(const QoSFlowDescr& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const QoSFlowDescr& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +QoSFlowDescr valueof() const; +inline QoSFlowDescr_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +QoSFlowDescr_listofFlows_template& listofFlows(); +const QoSFlowDescr_listofFlows_template& listofFlows() const; +Record_Template* create() const { return new QoSFlowDescr_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NGSM__NetworkFeatureSupport : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spareBits; + BITSTRING field_ept__S1; + OCTETSTRING field_spare; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NGSM__NetworkFeatureSupport(); + NGSM__NetworkFeatureSupport(const NGSM__NetworkFeatureSupport& other_value); + NGSM__NetworkFeatureSupport(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_ept__S1, + const OCTETSTRING& par_spare); +inline NGSM__NetworkFeatureSupport& operator=(const NGSM__NetworkFeatureSupport& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NGSM__NetworkFeatureSupport& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NGSM__NetworkFeatureSupport& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& ept__S1() + {return field_ept__S1;} + inline const BITSTRING& ept__S1() const + {return field_ept__S1;} + inline OCTETSTRING& spare() + {return field_spare;} + inline const OCTETSTRING& spare() const + {return field_spare;} +Base_Type* clone() const { return new NGSM__NetworkFeatureSupport(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NGSM__NetworkFeatureSupport_template : public Record_Template { +void set_specific(); +public: +NGSM__NetworkFeatureSupport_template(): Record_Template() {} +NGSM__NetworkFeatureSupport_template(template_sel other_value): Record_Template(other_value) {} +NGSM__NetworkFeatureSupport_template(const NGSM__NetworkFeatureSupport& other_value): Record_Template() { copy_value(&other_value); } +NGSM__NetworkFeatureSupport_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NGSM__NetworkFeatureSupport_template(NGSM__NetworkFeatureSupport_template* p_precondition, NGSM__NetworkFeatureSupport_template* p_implied_template); +NGSM__NetworkFeatureSupport_template(Dynamic_Match_Interface* p_dyn_match); +NGSM__NetworkFeatureSupport_template(const NGSM__NetworkFeatureSupport_template& other_value): Record_Template() { copy_template(other_value); } +~NGSM__NetworkFeatureSupport_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NGSM__NetworkFeatureSupport_template& operator=(template_sel other_value); +NGSM__NetworkFeatureSupport_template& operator=(const NGSM__NetworkFeatureSupport& other_value); +NGSM__NetworkFeatureSupport_template& operator=(const OPTIONAL& other_value); +NGSM__NetworkFeatureSupport_template& operator=(const NGSM__NetworkFeatureSupport_template& other_value); +inline boolean match(const NGSM__NetworkFeatureSupport& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NGSM__NetworkFeatureSupport& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NGSM__NetworkFeatureSupport valueof() const; +inline NGSM__NetworkFeatureSupport_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& ept__S1(); +const BITSTRING_template& ept__S1() const; +OCTETSTRING_template& spare(); +const OCTETSTRING_template& spare() const; +Record_Template* create() const { return new NGSM__NetworkFeatureSupport_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ATSSSContainer : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + OCTETSTRING field_contents; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ATSSSContainer(); + ATSSSContainer(const ATSSSContainer& other_value); + ATSSSContainer(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const OCTETSTRING& par_contents); +inline ATSSSContainer& operator=(const ATSSSContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ATSSSContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ATSSSContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline OCTETSTRING& contents() + {return field_contents;} + inline const OCTETSTRING& contents() const + {return field_contents;} +Base_Type* clone() const { return new ATSSSContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ATSSSContainer_template : public Record_Template { +void set_specific(); +public: +ATSSSContainer_template(): Record_Template() {} +ATSSSContainer_template(template_sel other_value): Record_Template(other_value) {} +ATSSSContainer_template(const ATSSSContainer& other_value): Record_Template() { copy_value(&other_value); } +ATSSSContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ATSSSContainer_template(ATSSSContainer_template* p_precondition, ATSSSContainer_template* p_implied_template); +ATSSSContainer_template(Dynamic_Match_Interface* p_dyn_match); +ATSSSContainer_template(const ATSSSContainer_template& other_value): Record_Template() { copy_template(other_value); } +~ATSSSContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ATSSSContainer_template& operator=(template_sel other_value); +ATSSSContainer_template& operator=(const ATSSSContainer& other_value); +ATSSSContainer_template& operator=(const OPTIONAL& other_value); +ATSSSContainer_template& operator=(const ATSSSContainer_template& other_value); +inline boolean match(const ATSSSContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ATSSSContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ATSSSContainer valueof() const; +inline ATSSSContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& contents(); +const OCTETSTRING_template& contents() const; +Record_Template* create() const { return new ATSSSContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ReceivedMBSContainer_info : public Record_Of_Type { + +static const ReceivedMBSInfo UNBOUND_ELEM; + +public: +ReceivedMBSContainer_info(): Record_Of_Type() {} +ReceivedMBSContainer_info(null_type other_value): Record_Of_Type(other_value) {} +ReceivedMBSContainer_info(const ReceivedMBSContainer_info& other_value): Record_Of_Type(other_value) {} +~ReceivedMBSContainer_info() { clean_up(); } + +inline ReceivedMBSContainer_info& operator=(null_type other_value) { set_val(other_value); return *this; } +inline ReceivedMBSContainer_info& operator=(const ReceivedMBSContainer_info& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ReceivedMBSContainer_info& other_value) const { return is_equal(&other_value); } +boolean operator!=(const ReceivedMBSContainer_info& other_value) const { return !is_equal(&other_value); } +ReceivedMBSInfo& operator[](int index_value); +ReceivedMBSInfo& operator[](const INTEGER& index_value); +const ReceivedMBSInfo& operator[](int index_value) const; +const ReceivedMBSInfo& operator[](const INTEGER& index_value) const; +ReceivedMBSContainer_info operator<<=(int rotate_count) const; +ReceivedMBSContainer_info operator<<=(const INTEGER& rotate_count) const; +ReceivedMBSContainer_info operator>>=(int rotate_count) const; +ReceivedMBSContainer_info operator>>=(const INTEGER& rotate_count) const; + +ReceivedMBSContainer_info operator+(const ReceivedMBSContainer_info& other_value) const; + +ReceivedMBSContainer_info operator+(const OPTIONAL& other_value) const; + +ReceivedMBSContainer_info operator+(null_type) const; + +ReceivedMBSContainer_info substr(int index, int returncount) const; + +ReceivedMBSContainer_info replace(int index, int len, const ReceivedMBSContainer_info& repl) const; + +ReceivedMBSContainer_info replace(int index, int len, const ReceivedMBSContainer_info_template& repl) const; + +Base_Type* clone() const { return new ReceivedMBSContainer_info(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class ReceivedMBSContainer_info_template : public Record_Of_Template { +friend ReceivedMBSContainer_info_template operator+(template_sel left_template, const ReceivedMBSContainer_info_template& right_template); +friend ReceivedMBSContainer_info_template operator+(const ReceivedMBSContainer_info& left_value, const ReceivedMBSContainer_info_template& right_template); +friend ReceivedMBSContainer_info_template operator+(template_sel left_template, const ReceivedMBSContainer_info& right_value); +friend ReceivedMBSContainer_info_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend ReceivedMBSContainer_info_template operator+(const ReceivedMBSContainer_info& left_value, template_sel right_template); + +public: +ReceivedMBSContainer_info_template() {} +ReceivedMBSContainer_info_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +ReceivedMBSContainer_info_template(null_type other_value); +ReceivedMBSContainer_info_template(const ReceivedMBSContainer_info& other_value) { copy_value(&other_value); } +ReceivedMBSContainer_info_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +ReceivedMBSContainer_info_template(ReceivedMBSContainer_info_template* p_precondition, ReceivedMBSContainer_info_template* p_implied_template); +ReceivedMBSContainer_info_template(Dynamic_Match_Interface* p_dyn_match); +ReceivedMBSContainer_info_template(const ReceivedMBSContainer_info_template& other_value): Record_Of_Template() { copy_template(other_value); } +~ReceivedMBSContainer_info_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ReceivedMBSContainer_info_template& operator=(template_sel other_value); +ReceivedMBSContainer_info_template& operator=(null_type other_value); +ReceivedMBSContainer_info_template& operator=(const ReceivedMBSContainer_info& other_value); +ReceivedMBSContainer_info_template& operator=(const OPTIONAL& other_value); +ReceivedMBSContainer_info_template& operator=(const ReceivedMBSContainer_info_template& other_value); + +ReceivedMBSContainer_info_template operator+(const ReceivedMBSContainer_info_template& other_value) const; +ReceivedMBSContainer_info_template operator+(const ReceivedMBSContainer_info& other_value) const; +ReceivedMBSContainer_info_template operator+(template_sel other_value) const; +ReceivedMBSContainer_info_template operator+(null_type) const; + +ReceivedMBSInfo_template& operator[](int index_value); +ReceivedMBSInfo_template& operator[](const INTEGER& index_value); +const ReceivedMBSInfo_template& operator[](int index_value) const; +const ReceivedMBSInfo_template& operator[](const INTEGER& index_value) const; +inline boolean match(const ReceivedMBSContainer_info& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +ReceivedMBSContainer_info valueof() const; +ReceivedMBSContainer_info substr(int index, int returncount) const; + +ReceivedMBSContainer_info replace(int index, int len, const ReceivedMBSContainer_info_template& repl) const; + +ReceivedMBSContainer_info replace(int index, int len, const ReceivedMBSContainer_info& repl) const; + +inline ReceivedMBSContainer_info_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const ReceivedMBSContainer_info& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new ReceivedMBSContainer_info_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class TMGI__LV : public Record_Type { + OCTETSTRING field_iel; + OCTETSTRING field_serviceID; + OPTIONAL field_plmn; + Base_Type* fld_vec[3]; + void init_vec(); +public: + TMGI__LV(); + TMGI__LV(const TMGI__LV& other_value); + TMGI__LV(const OCTETSTRING& par_iel, + const OCTETSTRING& par_serviceID, + const OPTIONAL& par_plmn); +inline TMGI__LV& operator=(const TMGI__LV& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const TMGI__LV& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const TMGI__LV& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline OCTETSTRING& serviceID() + {return field_serviceID;} + inline const OCTETSTRING& serviceID() const + {return field_serviceID;} + inline OPTIONAL& plmn() + {return field_plmn;} + inline const OPTIONAL& plmn() const + {return field_plmn;} +Base_Type* clone() const { return new TMGI__LV(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class TMGI__LV_template : public Record_Template { +void set_specific(); +public: +TMGI__LV_template(): Record_Template() {} +TMGI__LV_template(template_sel other_value): Record_Template(other_value) {} +TMGI__LV_template(const TMGI__LV& other_value): Record_Template() { copy_value(&other_value); } +TMGI__LV_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +TMGI__LV_template(TMGI__LV_template* p_precondition, TMGI__LV_template* p_implied_template); +TMGI__LV_template(Dynamic_Match_Interface* p_dyn_match); +TMGI__LV_template(const TMGI__LV_template& other_value): Record_Template() { copy_template(other_value); } +~TMGI__LV_template(); +boolean match_dynamic(const Base_Type* match_value) const; +TMGI__LV_template& operator=(template_sel other_value); +TMGI__LV_template& operator=(const TMGI__LV& other_value); +TMGI__LV_template& operator=(const OPTIONAL& other_value); +TMGI__LV_template& operator=(const TMGI__LV_template& other_value); +inline boolean match(const TMGI__LV& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const TMGI__LV& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +TMGI__LV valueof() const; +inline TMGI__LV_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +OCTETSTRING_template& serviceID(); +const OCTETSTRING_template& serviceID() const; +OCTETSTRING_template& plmn(); +const OCTETSTRING_template& plmn() const; +Record_Template* create() const { return new TMGI__LV_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ReceivedMBSInfo : public Record_Type { + BITSTRING field_rejectCause; + BITSTRING field_msai; + BITSTRING field_md; + BITSTRING field_spareBits; + BITSTRING field_ipat; + BITSTRING field_msci; + BITSTRING field_mti; + BITSTRING field_ipae; + TMGI__LV field_tmgi; + OPTIONAL field_sourceIPaddr; + OPTIONAL field_destIPaddr; + OPTIONAL field_serviceArea; + OPTIONAL field_timers; + OPTIONAL field_securityContainer; + Base_Type* fld_vec[14]; + void init_vec(); +public: + ReceivedMBSInfo(); + ReceivedMBSInfo(const ReceivedMBSInfo& other_value); + ReceivedMBSInfo(const BITSTRING& par_rejectCause, + const BITSTRING& par_msai, + const BITSTRING& par_md, + const BITSTRING& par_spareBits, + const BITSTRING& par_ipat, + const BITSTRING& par_msci, + const BITSTRING& par_mti, + const BITSTRING& par_ipae, + const TMGI__LV& par_tmgi, + const OPTIONAL& par_sourceIPaddr, + const OPTIONAL& par_destIPaddr, + const OPTIONAL& par_serviceArea, + const OPTIONAL& par_timers, + const OPTIONAL& par_securityContainer); +inline ReceivedMBSInfo& operator=(const ReceivedMBSInfo& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ReceivedMBSInfo& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ReceivedMBSInfo& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& rejectCause() + {return field_rejectCause;} + inline const BITSTRING& rejectCause() const + {return field_rejectCause;} + inline BITSTRING& msai() + {return field_msai;} + inline const BITSTRING& msai() const + {return field_msai;} + inline BITSTRING& md() + {return field_md;} + inline const BITSTRING& md() const + {return field_md;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& ipat() + {return field_ipat;} + inline const BITSTRING& ipat() const + {return field_ipat;} + inline BITSTRING& msci() + {return field_msci;} + inline const BITSTRING& msci() const + {return field_msci;} + inline BITSTRING& mti() + {return field_mti;} + inline const BITSTRING& mti() const + {return field_mti;} + inline BITSTRING& ipae() + {return field_ipae;} + inline const BITSTRING& ipae() const + {return field_ipae;} + inline TMGI__LV& tmgi() + {return field_tmgi;} + inline const TMGI__LV& tmgi() const + {return field_tmgi;} + inline OPTIONAL& sourceIPaddr() + {return field_sourceIPaddr;} + inline const OPTIONAL& sourceIPaddr() const + {return field_sourceIPaddr;} + inline OPTIONAL& destIPaddr() + {return field_destIPaddr;} + inline const OPTIONAL& destIPaddr() const + {return field_destIPaddr;} + inline OPTIONAL& serviceArea() + {return field_serviceArea;} + inline const OPTIONAL& serviceArea() const + {return field_serviceArea;} + inline OPTIONAL& timers() + {return field_timers;} + inline const OPTIONAL& timers() const + {return field_timers;} + inline OPTIONAL& securityContainer() + {return field_securityContainer;} + inline const OPTIONAL& securityContainer() const + {return field_securityContainer;} +Base_Type* clone() const { return new ReceivedMBSInfo(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 14; } +int optional_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ReceivedMBSInfo_template : public Record_Template { +void set_specific(); +public: +ReceivedMBSInfo_template(): Record_Template() {} +ReceivedMBSInfo_template(template_sel other_value): Record_Template(other_value) {} +ReceivedMBSInfo_template(const ReceivedMBSInfo& other_value): Record_Template() { copy_value(&other_value); } +ReceivedMBSInfo_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ReceivedMBSInfo_template(ReceivedMBSInfo_template* p_precondition, ReceivedMBSInfo_template* p_implied_template); +ReceivedMBSInfo_template(Dynamic_Match_Interface* p_dyn_match); +ReceivedMBSInfo_template(const ReceivedMBSInfo_template& other_value): Record_Template() { copy_template(other_value); } +~ReceivedMBSInfo_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ReceivedMBSInfo_template& operator=(template_sel other_value); +ReceivedMBSInfo_template& operator=(const ReceivedMBSInfo& other_value); +ReceivedMBSInfo_template& operator=(const OPTIONAL& other_value); +ReceivedMBSInfo_template& operator=(const ReceivedMBSInfo_template& other_value); +inline boolean match(const ReceivedMBSInfo& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ReceivedMBSInfo& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ReceivedMBSInfo valueof() const; +inline ReceivedMBSInfo_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& rejectCause(); +const BITSTRING_template& rejectCause() const; +BITSTRING_template& msai(); +const BITSTRING_template& msai() const; +BITSTRING_template& md(); +const BITSTRING_template& md() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& ipat(); +const BITSTRING_template& ipat() const; +BITSTRING_template& msci(); +const BITSTRING_template& msci() const; +BITSTRING_template& mti(); +const BITSTRING_template& mti() const; +BITSTRING_template& ipae(); +const BITSTRING_template& ipae() const; +TMGI__LV_template& tmgi(); +const TMGI__LV_template& tmgi() const; +OCTETSTRING_template& sourceIPaddr(); +const OCTETSTRING_template& sourceIPaddr() const; +OCTETSTRING_template& destIPaddr(); +const OCTETSTRING_template& destIPaddr() const; +MBS__ServiceArea_template& serviceArea(); +const MBS__ServiceArea_template& serviceArea() const; +OCTETSTRING_template& timers(); +const OCTETSTRING_template& timers() const; +OCTETSTRING_template& securityContainer(); +const OCTETSTRING_template& securityContainer() const; +Record_Template* create() const { return new ReceivedMBSInfo_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class MBS__ServiceArea : public Record_Type { + OPTIONAL field_taiList; + OPTIONAL field_nrCGIList; + Base_Type* fld_vec[2]; + void init_vec(); +public: + MBS__ServiceArea(); + MBS__ServiceArea(const MBS__ServiceArea& other_value); + MBS__ServiceArea(const OPTIONAL& par_taiList, + const OPTIONAL& par_nrCGIList); +inline MBS__ServiceArea& operator=(const MBS__ServiceArea& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const MBS__ServiceArea& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const MBS__ServiceArea& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& taiList() + {return field_taiList;} + inline const OPTIONAL& taiList() const + {return field_taiList;} + inline OPTIONAL& nrCGIList() + {return field_nrCGIList;} + inline const OPTIONAL& nrCGIList() const + {return field_nrCGIList;} +Base_Type* clone() const { return new MBS__ServiceArea(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class MBS__ServiceArea_template : public Record_Template { +void set_specific(); +public: +MBS__ServiceArea_template(): Record_Template() {} +MBS__ServiceArea_template(template_sel other_value): Record_Template(other_value) {} +MBS__ServiceArea_template(const MBS__ServiceArea& other_value): Record_Template() { copy_value(&other_value); } +MBS__ServiceArea_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +MBS__ServiceArea_template(MBS__ServiceArea_template* p_precondition, MBS__ServiceArea_template* p_implied_template); +MBS__ServiceArea_template(Dynamic_Match_Interface* p_dyn_match); +MBS__ServiceArea_template(const MBS__ServiceArea_template& other_value): Record_Template() { copy_template(other_value); } +~MBS__ServiceArea_template(); +boolean match_dynamic(const Base_Type* match_value) const; +MBS__ServiceArea_template& operator=(template_sel other_value); +MBS__ServiceArea_template& operator=(const MBS__ServiceArea& other_value); +MBS__ServiceArea_template& operator=(const OPTIONAL& other_value); +MBS__ServiceArea_template& operator=(const MBS__ServiceArea_template& other_value); +inline boolean match(const MBS__ServiceArea& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const MBS__ServiceArea& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +MBS__ServiceArea valueof() const; +inline MBS__ServiceArea_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NG__TrackingAreaIdList__LV_template& taiList(); +const NG__TrackingAreaIdList__LV_template& taiList() const; +NR__CGI__List_template& nrCGIList(); +const NR__CGI__List_template& nrCGIList() const; +Record_Template* create() const { return new MBS__ServiceArea_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NR__CGI__List_nrCGI : public Record_Of_Type { + +static const NR__CGI UNBOUND_ELEM; + +public: +NR__CGI__List_nrCGI(): Record_Of_Type() {} +NR__CGI__List_nrCGI(null_type other_value): Record_Of_Type(other_value) {} +NR__CGI__List_nrCGI(const NR__CGI__List_nrCGI& other_value): Record_Of_Type(other_value) {} +~NR__CGI__List_nrCGI() { clean_up(); } + +inline NR__CGI__List_nrCGI& operator=(null_type other_value) { set_val(other_value); return *this; } +inline NR__CGI__List_nrCGI& operator=(const NR__CGI__List_nrCGI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NR__CGI__List_nrCGI& other_value) const { return is_equal(&other_value); } +boolean operator!=(const NR__CGI__List_nrCGI& other_value) const { return !is_equal(&other_value); } +NR__CGI& operator[](int index_value); +NR__CGI& operator[](const INTEGER& index_value); +const NR__CGI& operator[](int index_value) const; +const NR__CGI& operator[](const INTEGER& index_value) const; +NR__CGI__List_nrCGI operator<<=(int rotate_count) const; +NR__CGI__List_nrCGI operator<<=(const INTEGER& rotate_count) const; +NR__CGI__List_nrCGI operator>>=(int rotate_count) const; +NR__CGI__List_nrCGI operator>>=(const INTEGER& rotate_count) const; + +NR__CGI__List_nrCGI operator+(const NR__CGI__List_nrCGI& other_value) const; + +NR__CGI__List_nrCGI operator+(const OPTIONAL& other_value) const; + +NR__CGI__List_nrCGI operator+(null_type) const; + +NR__CGI__List_nrCGI substr(int index, int returncount) const; + +NR__CGI__List_nrCGI replace(int index, int len, const NR__CGI__List_nrCGI& repl) const; + +NR__CGI__List_nrCGI replace(int index, int len, const NR__CGI__List_nrCGI_template& repl) const; + +Base_Type* clone() const { return new NR__CGI__List_nrCGI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class NR__CGI__List_nrCGI_template : public Record_Of_Template { +friend NR__CGI__List_nrCGI_template operator+(template_sel left_template, const NR__CGI__List_nrCGI_template& right_template); +friend NR__CGI__List_nrCGI_template operator+(const NR__CGI__List_nrCGI& left_value, const NR__CGI__List_nrCGI_template& right_template); +friend NR__CGI__List_nrCGI_template operator+(template_sel left_template, const NR__CGI__List_nrCGI& right_value); +friend NR__CGI__List_nrCGI_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend NR__CGI__List_nrCGI_template operator+(const NR__CGI__List_nrCGI& left_value, template_sel right_template); + +public: +NR__CGI__List_nrCGI_template() {} +NR__CGI__List_nrCGI_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +NR__CGI__List_nrCGI_template(null_type other_value); +NR__CGI__List_nrCGI_template(const NR__CGI__List_nrCGI& other_value) { copy_value(&other_value); } +NR__CGI__List_nrCGI_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +NR__CGI__List_nrCGI_template(NR__CGI__List_nrCGI_template* p_precondition, NR__CGI__List_nrCGI_template* p_implied_template); +NR__CGI__List_nrCGI_template(Dynamic_Match_Interface* p_dyn_match); +NR__CGI__List_nrCGI_template(const NR__CGI__List_nrCGI_template& other_value): Record_Of_Template() { copy_template(other_value); } +~NR__CGI__List_nrCGI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NR__CGI__List_nrCGI_template& operator=(template_sel other_value); +NR__CGI__List_nrCGI_template& operator=(null_type other_value); +NR__CGI__List_nrCGI_template& operator=(const NR__CGI__List_nrCGI& other_value); +NR__CGI__List_nrCGI_template& operator=(const OPTIONAL& other_value); +NR__CGI__List_nrCGI_template& operator=(const NR__CGI__List_nrCGI_template& other_value); + +NR__CGI__List_nrCGI_template operator+(const NR__CGI__List_nrCGI_template& other_value) const; +NR__CGI__List_nrCGI_template operator+(const NR__CGI__List_nrCGI& other_value) const; +NR__CGI__List_nrCGI_template operator+(template_sel other_value) const; +NR__CGI__List_nrCGI_template operator+(null_type) const; + +NR__CGI_template& operator[](int index_value); +NR__CGI_template& operator[](const INTEGER& index_value); +const NR__CGI_template& operator[](int index_value) const; +const NR__CGI_template& operator[](const INTEGER& index_value) const; +inline boolean match(const NR__CGI__List_nrCGI& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +NR__CGI__List_nrCGI valueof() const; +NR__CGI__List_nrCGI substr(int index, int returncount) const; + +NR__CGI__List_nrCGI replace(int index, int len, const NR__CGI__List_nrCGI_template& repl) const; + +NR__CGI__List_nrCGI replace(int index, int len, const NR__CGI__List_nrCGI& repl) const; + +inline NR__CGI__List_nrCGI_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const NR__CGI__List_nrCGI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new NR__CGI__List_nrCGI_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NR__CGI : public Record_Type { + OCTETSTRING field_cellId; + OCTETSTRING field_plmn; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NR__CGI(); + NR__CGI(const NR__CGI& other_value); + NR__CGI(const OCTETSTRING& par_cellId, + const OCTETSTRING& par_plmn); +inline NR__CGI& operator=(const NR__CGI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NR__CGI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NR__CGI& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& cellId() + {return field_cellId;} + inline const OCTETSTRING& cellId() const + {return field_cellId;} + inline OCTETSTRING& plmn() + {return field_plmn;} + inline const OCTETSTRING& plmn() const + {return field_plmn;} +Base_Type* clone() const { return new NR__CGI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NR__CGI_template : public Record_Template { +void set_specific(); +public: +NR__CGI_template(): Record_Template() {} +NR__CGI_template(template_sel other_value): Record_Template(other_value) {} +NR__CGI_template(const NR__CGI& other_value): Record_Template() { copy_value(&other_value); } +NR__CGI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NR__CGI_template(NR__CGI_template* p_precondition, NR__CGI_template* p_implied_template); +NR__CGI_template(Dynamic_Match_Interface* p_dyn_match); +NR__CGI_template(const NR__CGI_template& other_value): Record_Template() { copy_template(other_value); } +~NR__CGI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NR__CGI_template& operator=(template_sel other_value); +NR__CGI_template& operator=(const NR__CGI& other_value); +NR__CGI_template& operator=(const OPTIONAL& other_value); +NR__CGI_template& operator=(const NR__CGI_template& other_value); +inline boolean match(const NR__CGI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NR__CGI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NR__CGI valueof() const; +inline NR__CGI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& cellId(); +const OCTETSTRING_template& cellId() const; +OCTETSTRING_template& plmn(); +const OCTETSTRING_template& plmn() const; +Record_Template* create() const { return new NR__CGI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NR__CGI__List : public Record_Type { + OCTETSTRING field_iel; + NR__CGI__List_nrCGI field_nrCGI; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NR__CGI__List(); + NR__CGI__List(const NR__CGI__List& other_value); + NR__CGI__List(const OCTETSTRING& par_iel, + const NR__CGI__List_nrCGI& par_nrCGI); +inline NR__CGI__List& operator=(const NR__CGI__List& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NR__CGI__List& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NR__CGI__List& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline NR__CGI__List_nrCGI& nrCGI() + {return field_nrCGI;} + inline const NR__CGI__List_nrCGI& nrCGI() const + {return field_nrCGI;} +Base_Type* clone() const { return new NR__CGI__List(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NR__CGI__List_template : public Record_Template { +void set_specific(); +public: +NR__CGI__List_template(): Record_Template() {} +NR__CGI__List_template(template_sel other_value): Record_Template(other_value) {} +NR__CGI__List_template(const NR__CGI__List& other_value): Record_Template() { copy_value(&other_value); } +NR__CGI__List_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NR__CGI__List_template(NR__CGI__List_template* p_precondition, NR__CGI__List_template* p_implied_template); +NR__CGI__List_template(Dynamic_Match_Interface* p_dyn_match); +NR__CGI__List_template(const NR__CGI__List_template& other_value): Record_Template() { copy_template(other_value); } +~NR__CGI__List_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NR__CGI__List_template& operator=(template_sel other_value); +NR__CGI__List_template& operator=(const NR__CGI__List& other_value); +NR__CGI__List_template& operator=(const OPTIONAL& other_value); +NR__CGI__List_template& operator=(const NR__CGI__List_template& other_value); +inline boolean match(const NR__CGI__List& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NR__CGI__List& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NR__CGI__List valueof() const; +inline NR__CGI__List_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +NR__CGI__List_nrCGI_template& nrCGI(); +const NR__CGI__List_nrCGI_template& nrCGI() const; +Record_Template* create() const { return new NR__CGI__List_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class ReceivedMBSContainer : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + ReceivedMBSContainer_info field_info; + Base_Type* fld_vec[3]; + void init_vec(); +public: + ReceivedMBSContainer(); + ReceivedMBSContainer(const ReceivedMBSContainer& other_value); + ReceivedMBSContainer(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const ReceivedMBSContainer_info& par_info); +inline ReceivedMBSContainer& operator=(const ReceivedMBSContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const ReceivedMBSContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const ReceivedMBSContainer& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline ReceivedMBSContainer_info& info() + {return field_info;} + inline const ReceivedMBSContainer_info& info() const + {return field_info;} +Base_Type* clone() const { return new ReceivedMBSContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class ReceivedMBSContainer_template : public Record_Template { +void set_specific(); +public: +ReceivedMBSContainer_template(): Record_Template() {} +ReceivedMBSContainer_template(template_sel other_value): Record_Template(other_value) {} +ReceivedMBSContainer_template(const ReceivedMBSContainer& other_value): Record_Template() { copy_value(&other_value); } +ReceivedMBSContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +ReceivedMBSContainer_template(ReceivedMBSContainer_template* p_precondition, ReceivedMBSContainer_template* p_implied_template); +ReceivedMBSContainer_template(Dynamic_Match_Interface* p_dyn_match); +ReceivedMBSContainer_template(const ReceivedMBSContainer_template& other_value): Record_Template() { copy_template(other_value); } +~ReceivedMBSContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +ReceivedMBSContainer_template& operator=(template_sel other_value); +ReceivedMBSContainer_template& operator=(const ReceivedMBSContainer& other_value); +ReceivedMBSContainer_template& operator=(const OPTIONAL& other_value); +ReceivedMBSContainer_template& operator=(const ReceivedMBSContainer_template& other_value); +inline boolean match(const ReceivedMBSContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const ReceivedMBSContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +ReceivedMBSContainer valueof() const; +inline ReceivedMBSContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +ReceivedMBSContainer_info_template& info(); +const ReceivedMBSContainer_info_template& info() const; +Record_Template* create() const { return new ReceivedMBSContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__ESTABLISHMENT__REJECT : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + GMM__GSM__Cause field_gsmCause; + OPTIONAL field_backOffTimerValue; + OPTIONAL field_allowedSSCMode; + OPTIONAL field_eapMessage; + OPTIONAL field_ngsmCongestionReattemptInd; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_reattemptInd; + OPTIONAL field_serviceLvlAA; + Base_Type* fld_vec[12]; + void init_vec(); +public: + NG__PDU__SESSION__ESTABLISHMENT__REJECT(); + NG__PDU__SESSION__ESTABLISHMENT__REJECT(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& other_value); + NG__PDU__SESSION__ESTABLISHMENT__REJECT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_allowedSSCMode, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_ngsmCongestionReattemptInd, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_reattemptInd, + const OPTIONAL& par_serviceLvlAA); +inline NG__PDU__SESSION__ESTABLISHMENT__REJECT& operator=(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gsmCause() + {return field_gsmCause;} + inline const GMM__GSM__Cause& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& backOffTimerValue() + {return field_backOffTimerValue;} + inline const OPTIONAL& backOffTimerValue() const + {return field_backOffTimerValue;} + inline OPTIONAL& allowedSSCMode() + {return field_allowedSSCMode;} + inline const OPTIONAL& allowedSSCMode() const + {return field_allowedSSCMode;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& ngsmCongestionReattemptInd() + {return field_ngsmCongestionReattemptInd;} + inline const OPTIONAL& ngsmCongestionReattemptInd() const + {return field_ngsmCongestionReattemptInd;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& reattemptInd() + {return field_reattemptInd;} + inline const OPTIONAL& reattemptInd() const + {return field_reattemptInd;} + inline OPTIONAL& serviceLvlAA() + {return field_serviceLvlAA;} + inline const OPTIONAL& serviceLvlAA() const + {return field_serviceLvlAA;} +Base_Type* clone() const { return new NG__PDU__SESSION__ESTABLISHMENT__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 12; } +int optional_count() const { return 7; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__ESTABLISHMENT__REJECT_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(): Record_Template() {} +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(NG__PDU__SESSION__ESTABLISHMENT__REJECT_template* p_precondition, NG__PDU__SESSION__ESTABLISHMENT__REJECT_template* p_implied_template); +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(const NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__ESTABLISHMENT__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& operator=(template_sel other_value); +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& operator=(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& other_value); +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& operator=(const NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& other_value); +inline boolean match(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__ESTABLISHMENT__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__ESTABLISHMENT__REJECT valueof() const; +inline NG__PDU__SESSION__ESTABLISHMENT__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue() const; +AllowedSSCMode_template& allowedSSCMode(); +const AllowedSSCMode_template& allowedSSCMode() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +NGSM__CongestionReattemptInd_template& ngsmCongestionReattemptInd(); +const NGSM__CongestionReattemptInd_template& ngsmCongestionReattemptInd() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd(); +const NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd() const; +ServiceLvlAAContainer_template& serviceLvlAA(); +const ServiceLvlAAContainer_template& serviceLvlAA() const; +Record_Template* create() const { return new NG__PDU__SESSION__ESTABLISHMENT__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AllowedSSCMode : public Record_Type { + OPTIONAL field_iei; + BITSTRING field_spare; + BITSTRING field_ssc3; + BITSTRING field_ssc2; + BITSTRING field_ssc1; + Base_Type* fld_vec[5]; + void init_vec(); +public: + AllowedSSCMode(); + AllowedSSCMode(const AllowedSSCMode& other_value); + AllowedSSCMode(const OPTIONAL& par_iei, + const BITSTRING& par_spare, + const BITSTRING& par_ssc3, + const BITSTRING& par_ssc2, + const BITSTRING& par_ssc1); +inline AllowedSSCMode& operator=(const AllowedSSCMode& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AllowedSSCMode& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AllowedSSCMode& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& ssc3() + {return field_ssc3;} + inline const BITSTRING& ssc3() const + {return field_ssc3;} + inline BITSTRING& ssc2() + {return field_ssc2;} + inline const BITSTRING& ssc2() const + {return field_ssc2;} + inline BITSTRING& ssc1() + {return field_ssc1;} + inline const BITSTRING& ssc1() const + {return field_ssc1;} +Base_Type* clone() const { return new AllowedSSCMode(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AllowedSSCMode_template : public Record_Template { +void set_specific(); +public: +AllowedSSCMode_template(): Record_Template() {} +AllowedSSCMode_template(template_sel other_value): Record_Template(other_value) {} +AllowedSSCMode_template(const AllowedSSCMode& other_value): Record_Template() { copy_value(&other_value); } +AllowedSSCMode_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AllowedSSCMode_template(AllowedSSCMode_template* p_precondition, AllowedSSCMode_template* p_implied_template); +AllowedSSCMode_template(Dynamic_Match_Interface* p_dyn_match); +AllowedSSCMode_template(const AllowedSSCMode_template& other_value): Record_Template() { copy_template(other_value); } +~AllowedSSCMode_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AllowedSSCMode_template& operator=(template_sel other_value); +AllowedSSCMode_template& operator=(const AllowedSSCMode& other_value); +AllowedSSCMode_template& operator=(const OPTIONAL& other_value); +AllowedSSCMode_template& operator=(const AllowedSSCMode_template& other_value); +inline boolean match(const AllowedSSCMode& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AllowedSSCMode& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AllowedSSCMode valueof() const; +inline AllowedSSCMode_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +HEXSTRING_template& iei(); +const HEXSTRING_template& iei() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& ssc3(); +const BITSTRING_template& ssc3() const; +BITSTRING_template& ssc2(); +const BITSTRING_template& ssc2() const; +BITSTRING_template& ssc1(); +const BITSTRING_template& ssc1() const; +Record_Template* create() const { return new AllowedSSCMode_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NGSM__CongestionReattemptInd : public Record_Type { + OPTIONAL field_iei; + OPTIONAL field_iel; + BITSTRING field_spareBits; + BITSTRING field_catbo; + BITSTRING field_abo; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NGSM__CongestionReattemptInd(); + NGSM__CongestionReattemptInd(const NGSM__CongestionReattemptInd& other_value); + NGSM__CongestionReattemptInd(const OPTIONAL& par_iei, + const OPTIONAL& par_iel, + const BITSTRING& par_spareBits, + const BITSTRING& par_catbo, + const BITSTRING& par_abo); +inline NGSM__CongestionReattemptInd& operator=(const NGSM__CongestionReattemptInd& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NGSM__CongestionReattemptInd& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NGSM__CongestionReattemptInd& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OPTIONAL& iel() + {return field_iel;} + inline const OPTIONAL& iel() const + {return field_iel;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& catbo() + {return field_catbo;} + inline const BITSTRING& catbo() const + {return field_catbo;} + inline BITSTRING& abo() + {return field_abo;} + inline const BITSTRING& abo() const + {return field_abo;} +Base_Type* clone() const { return new NGSM__CongestionReattemptInd(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NGSM__CongestionReattemptInd_template : public Record_Template { +void set_specific(); +public: +NGSM__CongestionReattemptInd_template(): Record_Template() {} +NGSM__CongestionReattemptInd_template(template_sel other_value): Record_Template(other_value) {} +NGSM__CongestionReattemptInd_template(const NGSM__CongestionReattemptInd& other_value): Record_Template() { copy_value(&other_value); } +NGSM__CongestionReattemptInd_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NGSM__CongestionReattemptInd_template(NGSM__CongestionReattemptInd_template* p_precondition, NGSM__CongestionReattemptInd_template* p_implied_template); +NGSM__CongestionReattemptInd_template(Dynamic_Match_Interface* p_dyn_match); +NGSM__CongestionReattemptInd_template(const NGSM__CongestionReattemptInd_template& other_value): Record_Template() { copy_template(other_value); } +~NGSM__CongestionReattemptInd_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NGSM__CongestionReattemptInd_template& operator=(template_sel other_value); +NGSM__CongestionReattemptInd_template& operator=(const NGSM__CongestionReattemptInd& other_value); +NGSM__CongestionReattemptInd_template& operator=(const OPTIONAL& other_value); +NGSM__CongestionReattemptInd_template& operator=(const NGSM__CongestionReattemptInd_template& other_value); +inline boolean match(const NGSM__CongestionReattemptInd& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NGSM__CongestionReattemptInd& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NGSM__CongestionReattemptInd valueof() const; +inline NGSM__CongestionReattemptInd_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& catbo(); +const BITSTRING_template& catbo() const; +BITSTRING_template& abo(); +const BITSTRING_template& abo() const; +Record_Template* create() const { return new NGSM__CongestionReattemptInd_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__AUTHENTICATION__COMMAND : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + EAP__Message field_eapMessage; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__PDU__SESSION__AUTHENTICATION__COMMAND(); + NG__PDU__SESSION__AUTHENTICATION__COMMAND(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& other_value); + NG__PDU__SESSION__AUTHENTICATION__COMMAND(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const EAP__Message& par_eapMessage, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline NG__PDU__SESSION__AUTHENTICATION__COMMAND& operator=(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline EAP__Message& eapMessage() + {return field_eapMessage;} + inline const EAP__Message& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new NG__PDU__SESSION__AUTHENTICATION__COMMAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__AUTHENTICATION__COMMAND_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(): Record_Template() {} +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(NG__PDU__SESSION__AUTHENTICATION__COMMAND_template* p_precondition, NG__PDU__SESSION__AUTHENTICATION__COMMAND_template* p_implied_template); +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(const NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__AUTHENTICATION__COMMAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& operator=(template_sel other_value); +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& operator=(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& other_value); +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& operator=(const NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& other_value); +inline boolean match(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__AUTHENTICATION__COMMAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__AUTHENTICATION__COMMAND valueof() const; +inline NG__PDU__SESSION__AUTHENTICATION__COMMAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new NG__PDU__SESSION__AUTHENTICATION__COMMAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__AUTHENTICATION__COMPLETE : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + EAP__Message field_eapMessage; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__PDU__SESSION__AUTHENTICATION__COMPLETE(); + NG__PDU__SESSION__AUTHENTICATION__COMPLETE(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& other_value); + NG__PDU__SESSION__AUTHENTICATION__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const EAP__Message& par_eapMessage, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline NG__PDU__SESSION__AUTHENTICATION__COMPLETE& operator=(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline EAP__Message& eapMessage() + {return field_eapMessage;} + inline const EAP__Message& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new NG__PDU__SESSION__AUTHENTICATION__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(): Record_Template() {} +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template* p_precondition, NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template* p_implied_template); +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& operator=(template_sel other_value); +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& operator=(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& other_value); +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& operator=(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& other_value); +inline boolean match(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__AUTHENTICATION__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__AUTHENTICATION__COMPLETE valueof() const; +inline NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new NG__PDU__SESSION__AUTHENTICATION__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__AUTHENTICATION__RESULT : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_eapMessage; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__PDU__SESSION__AUTHENTICATION__RESULT(); + NG__PDU__SESSION__AUTHENTICATION__RESULT(const NG__PDU__SESSION__AUTHENTICATION__RESULT& other_value); + NG__PDU__SESSION__AUTHENTICATION__RESULT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline NG__PDU__SESSION__AUTHENTICATION__RESULT& operator=(const NG__PDU__SESSION__AUTHENTICATION__RESULT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__AUTHENTICATION__RESULT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__AUTHENTICATION__RESULT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new NG__PDU__SESSION__AUTHENTICATION__RESULT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__AUTHENTICATION__RESULT_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__AUTHENTICATION__RESULT_template(): Record_Template() {} +NG__PDU__SESSION__AUTHENTICATION__RESULT_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__AUTHENTICATION__RESULT_template(const NG__PDU__SESSION__AUTHENTICATION__RESULT& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__AUTHENTICATION__RESULT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__AUTHENTICATION__RESULT_template(NG__PDU__SESSION__AUTHENTICATION__RESULT_template* p_precondition, NG__PDU__SESSION__AUTHENTICATION__RESULT_template* p_implied_template); +NG__PDU__SESSION__AUTHENTICATION__RESULT_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__AUTHENTICATION__RESULT_template(const NG__PDU__SESSION__AUTHENTICATION__RESULT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__AUTHENTICATION__RESULT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__AUTHENTICATION__RESULT_template& operator=(template_sel other_value); +NG__PDU__SESSION__AUTHENTICATION__RESULT_template& operator=(const NG__PDU__SESSION__AUTHENTICATION__RESULT& other_value); +NG__PDU__SESSION__AUTHENTICATION__RESULT_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__AUTHENTICATION__RESULT_template& operator=(const NG__PDU__SESSION__AUTHENTICATION__RESULT_template& other_value); +inline boolean match(const NG__PDU__SESSION__AUTHENTICATION__RESULT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__AUTHENTICATION__RESULT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__AUTHENTICATION__RESULT valueof() const; +inline NG__PDU__SESSION__AUTHENTICATION__RESULT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new NG__PDU__SESSION__AUTHENTICATION__RESULT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__MODIFICATION__REQUEST : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_smCapability; + OPTIONAL field_gsmCause; + OPTIONAL field_maxNumPacketFilters; + OPTIONAL field_alwaysOnPDUSessionReq; + OPTIONAL field_integrityProtMaxDataRate; + OPTIONAL field_requestedQoSRules; + OPTIONAL field_requestedQoSFlowDescr; + OPTIONAL field_mappedEPSbearerContexts; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_portManagementInfoContainer; + OPTIONAL field_ipHeaderCompressionConfig; + OPTIONAL field_ethernetHeaderCompressConfig; + OPTIONAL field_requestedMBS; + OPTIONAL field_serviceLvlAA; + Base_Type* fld_vec[18]; + void init_vec(); +public: + NG__PDU__SESSION__MODIFICATION__REQUEST(); + NG__PDU__SESSION__MODIFICATION__REQUEST(const NG__PDU__SESSION__MODIFICATION__REQUEST& other_value); + NG__PDU__SESSION__MODIFICATION__REQUEST(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_smCapability, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_maxNumPacketFilters, + const OPTIONAL& par_alwaysOnPDUSessionReq, + const OPTIONAL& par_integrityProtMaxDataRate, + const OPTIONAL& par_requestedQoSRules, + const OPTIONAL& par_requestedQoSFlowDescr, + const OPTIONAL& par_mappedEPSbearerContexts, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_portManagementInfoContainer, + const OPTIONAL& par_ipHeaderCompressionConfig, + const OPTIONAL& par_ethernetHeaderCompressConfig, + const OPTIONAL& par_requestedMBS, + const OPTIONAL& par_serviceLvlAA); +inline NG__PDU__SESSION__MODIFICATION__REQUEST& operator=(const NG__PDU__SESSION__MODIFICATION__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__MODIFICATION__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__MODIFICATION__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& smCapability() + {return field_smCapability;} + inline const OPTIONAL& smCapability() const + {return field_smCapability;} + inline OPTIONAL& gsmCause() + {return field_gsmCause;} + inline const OPTIONAL& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& maxNumPacketFilters() + {return field_maxNumPacketFilters;} + inline const OPTIONAL& maxNumPacketFilters() const + {return field_maxNumPacketFilters;} + inline OPTIONAL& alwaysOnPDUSessionReq() + {return field_alwaysOnPDUSessionReq;} + inline const OPTIONAL& alwaysOnPDUSessionReq() const + {return field_alwaysOnPDUSessionReq;} + inline OPTIONAL& integrityProtMaxDataRate() + {return field_integrityProtMaxDataRate;} + inline const OPTIONAL& integrityProtMaxDataRate() const + {return field_integrityProtMaxDataRate;} + inline OPTIONAL& requestedQoSRules() + {return field_requestedQoSRules;} + inline const OPTIONAL& requestedQoSRules() const + {return field_requestedQoSRules;} + inline OPTIONAL& requestedQoSFlowDescr() + {return field_requestedQoSFlowDescr;} + inline const OPTIONAL& requestedQoSFlowDescr() const + {return field_requestedQoSFlowDescr;} + inline OPTIONAL& mappedEPSbearerContexts() + {return field_mappedEPSbearerContexts;} + inline const OPTIONAL& mappedEPSbearerContexts() const + {return field_mappedEPSbearerContexts;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& portManagementInfoContainer() + {return field_portManagementInfoContainer;} + inline const OPTIONAL& portManagementInfoContainer() const + {return field_portManagementInfoContainer;} + inline OPTIONAL& ipHeaderCompressionConfig() + {return field_ipHeaderCompressionConfig;} + inline const OPTIONAL& ipHeaderCompressionConfig() const + {return field_ipHeaderCompressionConfig;} + inline OPTIONAL& ethernetHeaderCompressConfig() + {return field_ethernetHeaderCompressConfig;} + inline const OPTIONAL& ethernetHeaderCompressConfig() const + {return field_ethernetHeaderCompressConfig;} + inline OPTIONAL& requestedMBS() + {return field_requestedMBS;} + inline const OPTIONAL& requestedMBS() const + {return field_requestedMBS;} + inline OPTIONAL& serviceLvlAA() + {return field_serviceLvlAA;} + inline const OPTIONAL& serviceLvlAA() const + {return field_serviceLvlAA;} +Base_Type* clone() const { return new NG__PDU__SESSION__MODIFICATION__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 18; } +int optional_count() const { return 14; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__MODIFICATION__REQUEST_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__MODIFICATION__REQUEST_template(): Record_Template() {} +NG__PDU__SESSION__MODIFICATION__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__MODIFICATION__REQUEST_template(const NG__PDU__SESSION__MODIFICATION__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__MODIFICATION__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__MODIFICATION__REQUEST_template(NG__PDU__SESSION__MODIFICATION__REQUEST_template* p_precondition, NG__PDU__SESSION__MODIFICATION__REQUEST_template* p_implied_template); +NG__PDU__SESSION__MODIFICATION__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__MODIFICATION__REQUEST_template(const NG__PDU__SESSION__MODIFICATION__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__MODIFICATION__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__MODIFICATION__REQUEST_template& operator=(template_sel other_value); +NG__PDU__SESSION__MODIFICATION__REQUEST_template& operator=(const NG__PDU__SESSION__MODIFICATION__REQUEST& other_value); +NG__PDU__SESSION__MODIFICATION__REQUEST_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__MODIFICATION__REQUEST_template& operator=(const NG__PDU__SESSION__MODIFICATION__REQUEST_template& other_value); +inline boolean match(const NG__PDU__SESSION__MODIFICATION__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__MODIFICATION__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__MODIFICATION__REQUEST valueof() const; +inline NG__PDU__SESSION__MODIFICATION__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NG__UE__SM__Cap_template& smCapability(); +const NG__UE__SM__Cap_template& smCapability() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +MaxNumPacketFilters_template& maxNumPacketFilters(); +const MaxNumPacketFilters_template& maxNumPacketFilters() const; +AlwaysOnPDUSessionInd_template& alwaysOnPDUSessionReq(); +const AlwaysOnPDUSessionInd_template& alwaysOnPDUSessionReq() const; +IntegrityProtMaxDataRate_template& integrityProtMaxDataRate(); +const IntegrityProtMaxDataRate_template& integrityProtMaxDataRate() const; +QoS__Rules_template& requestedQoSRules(); +const QoS__Rules_template& requestedQoSRules() const; +QoSFlowDescr_template& requestedQoSFlowDescr(); +const QoSFlowDescr_template& requestedQoSFlowDescr() const; +MappedEPSBearerContexts_template& mappedEPSbearerContexts(); +const MappedEPSBearerContexts_template& mappedEPSbearerContexts() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +PortManagementInfoContainer_template& portManagementInfoContainer(); +const PortManagementInfoContainer_template& portManagementInfoContainer() const; +IPHeaderCompressionConfig_template& ipHeaderCompressionConfig(); +const IPHeaderCompressionConfig_template& ipHeaderCompressionConfig() const; +EthernetHeaderCompressConfig_template& ethernetHeaderCompressConfig(); +const EthernetHeaderCompressConfig_template& ethernetHeaderCompressConfig() const; +RequestedMBSContainer_template& requestedMBS(); +const RequestedMBSContainer_template& requestedMBS() const; +ServiceLvlAAContainer_template& serviceLvlAA(); +const ServiceLvlAAContainer_template& serviceLvlAA() const; +Record_Template* create() const { return new NG__PDU__SESSION__MODIFICATION__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__MODIFICATION__REJECT : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + GMM__GSM__Cause field_gsmCause; + OPTIONAL field_backOffTimerValue; + OPTIONAL field_ngsmCongestionReattemptInd; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_reattemptInd; + Base_Type* fld_vec[9]; + void init_vec(); +public: + NG__PDU__SESSION__MODIFICATION__REJECT(); + NG__PDU__SESSION__MODIFICATION__REJECT(const NG__PDU__SESSION__MODIFICATION__REJECT& other_value); + NG__PDU__SESSION__MODIFICATION__REJECT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_ngsmCongestionReattemptInd, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_reattemptInd); +inline NG__PDU__SESSION__MODIFICATION__REJECT& operator=(const NG__PDU__SESSION__MODIFICATION__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__MODIFICATION__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__MODIFICATION__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gsmCause() + {return field_gsmCause;} + inline const GMM__GSM__Cause& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& backOffTimerValue() + {return field_backOffTimerValue;} + inline const OPTIONAL& backOffTimerValue() const + {return field_backOffTimerValue;} + inline OPTIONAL& ngsmCongestionReattemptInd() + {return field_ngsmCongestionReattemptInd;} + inline const OPTIONAL& ngsmCongestionReattemptInd() const + {return field_ngsmCongestionReattemptInd;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& reattemptInd() + {return field_reattemptInd;} + inline const OPTIONAL& reattemptInd() const + {return field_reattemptInd;} +Base_Type* clone() const { return new NG__PDU__SESSION__MODIFICATION__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 9; } +int optional_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__MODIFICATION__REJECT_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__MODIFICATION__REJECT_template(): Record_Template() {} +NG__PDU__SESSION__MODIFICATION__REJECT_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__MODIFICATION__REJECT_template(const NG__PDU__SESSION__MODIFICATION__REJECT& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__MODIFICATION__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__MODIFICATION__REJECT_template(NG__PDU__SESSION__MODIFICATION__REJECT_template* p_precondition, NG__PDU__SESSION__MODIFICATION__REJECT_template* p_implied_template); +NG__PDU__SESSION__MODIFICATION__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__MODIFICATION__REJECT_template(const NG__PDU__SESSION__MODIFICATION__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__MODIFICATION__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__MODIFICATION__REJECT_template& operator=(template_sel other_value); +NG__PDU__SESSION__MODIFICATION__REJECT_template& operator=(const NG__PDU__SESSION__MODIFICATION__REJECT& other_value); +NG__PDU__SESSION__MODIFICATION__REJECT_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__MODIFICATION__REJECT_template& operator=(const NG__PDU__SESSION__MODIFICATION__REJECT_template& other_value); +inline boolean match(const NG__PDU__SESSION__MODIFICATION__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__MODIFICATION__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__MODIFICATION__REJECT valueof() const; +inline NG__PDU__SESSION__MODIFICATION__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue() const; +NGSM__CongestionReattemptInd_template& ngsmCongestionReattemptInd(); +const NGSM__CongestionReattemptInd_template& ngsmCongestionReattemptInd() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd(); +const NAS__CommonTypeDefs::ReAttemptIndicator_template& reattemptInd() const; +Record_Template* create() const { return new NG__PDU__SESSION__MODIFICATION__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__MODIFICATION__COMMAND : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_gsmCause; + OPTIONAL field_sessionAMBR; + OPTIONAL field_rqTimerValue; + OPTIONAL field_alwaysOnPDUSessionInd; + OPTIONAL field_authorizedQoSRules; + OPTIONAL field_mappedEPSContexts; + OPTIONAL field_authorizedQoSFlowDescr; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_atsssContainer; + OPTIONAL field_ipHeaderCompressionConfig; + OPTIONAL field_portManagementInfoContainer; + OPTIONAL field_servingPLMNRateControl; + OPTIONAL field_ethernetHeaderCompressConfig; + OPTIONAL field_receivedMBS; + OPTIONAL field_serviceLvlAA; + Base_Type* fld_vec[19]; + void init_vec(); +public: + NG__PDU__SESSION__MODIFICATION__COMMAND(); + NG__PDU__SESSION__MODIFICATION__COMMAND(const NG__PDU__SESSION__MODIFICATION__COMMAND& other_value); + NG__PDU__SESSION__MODIFICATION__COMMAND(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_sessionAMBR, + const OPTIONAL& par_rqTimerValue, + const OPTIONAL& par_alwaysOnPDUSessionInd, + const OPTIONAL& par_authorizedQoSRules, + const OPTIONAL& par_mappedEPSContexts, + const OPTIONAL& par_authorizedQoSFlowDescr, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_atsssContainer, + const OPTIONAL& par_ipHeaderCompressionConfig, + const OPTIONAL& par_portManagementInfoContainer, + const OPTIONAL& par_servingPLMNRateControl, + const OPTIONAL& par_ethernetHeaderCompressConfig, + const OPTIONAL& par_receivedMBS, + const OPTIONAL& par_serviceLvlAA); +inline NG__PDU__SESSION__MODIFICATION__COMMAND& operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__MODIFICATION__COMMAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__MODIFICATION__COMMAND& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& gsmCause() + {return field_gsmCause;} + inline const OPTIONAL& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& sessionAMBR() + {return field_sessionAMBR;} + inline const OPTIONAL& sessionAMBR() const + {return field_sessionAMBR;} + inline OPTIONAL& rqTimerValue() + {return field_rqTimerValue;} + inline const OPTIONAL& rqTimerValue() const + {return field_rqTimerValue;} + inline OPTIONAL& alwaysOnPDUSessionInd() + {return field_alwaysOnPDUSessionInd;} + inline const OPTIONAL& alwaysOnPDUSessionInd() const + {return field_alwaysOnPDUSessionInd;} + inline OPTIONAL& authorizedQoSRules() + {return field_authorizedQoSRules;} + inline const OPTIONAL& authorizedQoSRules() const + {return field_authorizedQoSRules;} + inline OPTIONAL& mappedEPSContexts() + {return field_mappedEPSContexts;} + inline const OPTIONAL& mappedEPSContexts() const + {return field_mappedEPSContexts;} + inline OPTIONAL& authorizedQoSFlowDescr() + {return field_authorizedQoSFlowDescr;} + inline const OPTIONAL& authorizedQoSFlowDescr() const + {return field_authorizedQoSFlowDescr;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& atsssContainer() + {return field_atsssContainer;} + inline const OPTIONAL& atsssContainer() const + {return field_atsssContainer;} + inline OPTIONAL& ipHeaderCompressionConfig() + {return field_ipHeaderCompressionConfig;} + inline const OPTIONAL& ipHeaderCompressionConfig() const + {return field_ipHeaderCompressionConfig;} + inline OPTIONAL& portManagementInfoContainer() + {return field_portManagementInfoContainer;} + inline const OPTIONAL& portManagementInfoContainer() const + {return field_portManagementInfoContainer;} + inline OPTIONAL& servingPLMNRateControl() + {return field_servingPLMNRateControl;} + inline const OPTIONAL& servingPLMNRateControl() const + {return field_servingPLMNRateControl;} + inline OPTIONAL& ethernetHeaderCompressConfig() + {return field_ethernetHeaderCompressConfig;} + inline const OPTIONAL& ethernetHeaderCompressConfig() const + {return field_ethernetHeaderCompressConfig;} + inline OPTIONAL& receivedMBS() + {return field_receivedMBS;} + inline const OPTIONAL& receivedMBS() const + {return field_receivedMBS;} + inline OPTIONAL& serviceLvlAA() + {return field_serviceLvlAA;} + inline const OPTIONAL& serviceLvlAA() const + {return field_serviceLvlAA;} +Base_Type* clone() const { return new NG__PDU__SESSION__MODIFICATION__COMMAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 19; } +int optional_count() const { return 15; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__MODIFICATION__COMMAND_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__MODIFICATION__COMMAND_template(): Record_Template() {} +NG__PDU__SESSION__MODIFICATION__COMMAND_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__MODIFICATION__COMMAND_template(const NG__PDU__SESSION__MODIFICATION__COMMAND& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__MODIFICATION__COMMAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__MODIFICATION__COMMAND_template(NG__PDU__SESSION__MODIFICATION__COMMAND_template* p_precondition, NG__PDU__SESSION__MODIFICATION__COMMAND_template* p_implied_template); +NG__PDU__SESSION__MODIFICATION__COMMAND_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__MODIFICATION__COMMAND_template(const NG__PDU__SESSION__MODIFICATION__COMMAND_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__MODIFICATION__COMMAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__MODIFICATION__COMMAND_template& operator=(template_sel other_value); +NG__PDU__SESSION__MODIFICATION__COMMAND_template& operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND& other_value); +NG__PDU__SESSION__MODIFICATION__COMMAND_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__MODIFICATION__COMMAND_template& operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND_template& other_value); +inline boolean match(const NG__PDU__SESSION__MODIFICATION__COMMAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__MODIFICATION__COMMAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__MODIFICATION__COMMAND valueof() const; +inline NG__PDU__SESSION__MODIFICATION__COMMAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +Session__AMBR_template& sessionAMBR(); +const Session__AMBR_template& sessionAMBR() const; +NAS__CommonTypeDefs::GPRS__Timer_template& rqTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer_template& rqTimerValue() const; +AlwaysOnPDUSessionInd_template& alwaysOnPDUSessionInd(); +const AlwaysOnPDUSessionInd_template& alwaysOnPDUSessionInd() const; +QoS__Rules_template& authorizedQoSRules(); +const QoS__Rules_template& authorizedQoSRules() const; +MappedEPSBearerContexts_template& mappedEPSContexts(); +const MappedEPSBearerContexts_template& mappedEPSContexts() const; +QoSFlowDescr_template& authorizedQoSFlowDescr(); +const QoSFlowDescr_template& authorizedQoSFlowDescr() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +ATSSSContainer_template& atsssContainer(); +const ATSSSContainer_template& atsssContainer() const; +IPHeaderCompressionConfig_template& ipHeaderCompressionConfig(); +const IPHeaderCompressionConfig_template& ipHeaderCompressionConfig() const; +PortManagementInfoContainer_template& portManagementInfoContainer(); +const PortManagementInfoContainer_template& portManagementInfoContainer() const; +NAS__CommonTypeDefs::ServingPLMNRateControl_template& servingPLMNRateControl(); +const NAS__CommonTypeDefs::ServingPLMNRateControl_template& servingPLMNRateControl() const; +EthernetHeaderCompressConfig_template& ethernetHeaderCompressConfig(); +const EthernetHeaderCompressConfig_template& ethernetHeaderCompressConfig() const; +ReceivedMBSContainer_template& receivedMBS(); +const ReceivedMBSContainer_template& receivedMBS() const; +ServiceLvlAAContainer_template& serviceLvlAA(); +const ServiceLvlAAContainer_template& serviceLvlAA() const; +Record_Template* create() const { return new NG__PDU__SESSION__MODIFICATION__COMMAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__MODIFICATION__COMPLETE : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_portManagementInfoContainer; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__PDU__SESSION__MODIFICATION__COMPLETE(); + NG__PDU__SESSION__MODIFICATION__COMPLETE(const NG__PDU__SESSION__MODIFICATION__COMPLETE& other_value); + NG__PDU__SESSION__MODIFICATION__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_portManagementInfoContainer); +inline NG__PDU__SESSION__MODIFICATION__COMPLETE& operator=(const NG__PDU__SESSION__MODIFICATION__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__MODIFICATION__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__MODIFICATION__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& portManagementInfoContainer() + {return field_portManagementInfoContainer;} + inline const OPTIONAL& portManagementInfoContainer() const + {return field_portManagementInfoContainer;} +Base_Type* clone() const { return new NG__PDU__SESSION__MODIFICATION__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__MODIFICATION__COMPLETE_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__MODIFICATION__COMPLETE_template(): Record_Template() {} +NG__PDU__SESSION__MODIFICATION__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__MODIFICATION__COMPLETE_template(const NG__PDU__SESSION__MODIFICATION__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__MODIFICATION__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__MODIFICATION__COMPLETE_template(NG__PDU__SESSION__MODIFICATION__COMPLETE_template* p_precondition, NG__PDU__SESSION__MODIFICATION__COMPLETE_template* p_implied_template); +NG__PDU__SESSION__MODIFICATION__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__MODIFICATION__COMPLETE_template(const NG__PDU__SESSION__MODIFICATION__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__MODIFICATION__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__MODIFICATION__COMPLETE_template& operator=(template_sel other_value); +NG__PDU__SESSION__MODIFICATION__COMPLETE_template& operator=(const NG__PDU__SESSION__MODIFICATION__COMPLETE& other_value); +NG__PDU__SESSION__MODIFICATION__COMPLETE_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__MODIFICATION__COMPLETE_template& operator=(const NG__PDU__SESSION__MODIFICATION__COMPLETE_template& other_value); +inline boolean match(const NG__PDU__SESSION__MODIFICATION__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__MODIFICATION__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__MODIFICATION__COMPLETE valueof() const; +inline NG__PDU__SESSION__MODIFICATION__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +PortManagementInfoContainer_template& portManagementInfoContainer(); +const PortManagementInfoContainer_template& portManagementInfoContainer() const; +Record_Template* create() const { return new NG__PDU__SESSION__MODIFICATION__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + GMM__GSM__Cause field_gsmCause; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT(); + NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& other_value); + NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gsmCause() + {return field_gsmCause;} + inline const GMM__GSM__Cause& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(): Record_Template() {} +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template* p_precondition, NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template* p_implied_template); +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& operator=(template_sel other_value); +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& other_value); +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& operator=(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& other_value); +inline boolean match(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT valueof() const; +inline NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__RELEASE__REQUEST : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_gsmCause; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__PDU__SESSION__RELEASE__REQUEST(); + NG__PDU__SESSION__RELEASE__REQUEST(const NG__PDU__SESSION__RELEASE__REQUEST& other_value); + NG__PDU__SESSION__RELEASE__REQUEST(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline NG__PDU__SESSION__RELEASE__REQUEST& operator=(const NG__PDU__SESSION__RELEASE__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__RELEASE__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__RELEASE__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& gsmCause() + {return field_gsmCause;} + inline const OPTIONAL& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new NG__PDU__SESSION__RELEASE__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__RELEASE__REQUEST_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__RELEASE__REQUEST_template(): Record_Template() {} +NG__PDU__SESSION__RELEASE__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__RELEASE__REQUEST_template(const NG__PDU__SESSION__RELEASE__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__RELEASE__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__RELEASE__REQUEST_template(NG__PDU__SESSION__RELEASE__REQUEST_template* p_precondition, NG__PDU__SESSION__RELEASE__REQUEST_template* p_implied_template); +NG__PDU__SESSION__RELEASE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__RELEASE__REQUEST_template(const NG__PDU__SESSION__RELEASE__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__RELEASE__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__RELEASE__REQUEST_template& operator=(template_sel other_value); +NG__PDU__SESSION__RELEASE__REQUEST_template& operator=(const NG__PDU__SESSION__RELEASE__REQUEST& other_value); +NG__PDU__SESSION__RELEASE__REQUEST_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__RELEASE__REQUEST_template& operator=(const NG__PDU__SESSION__RELEASE__REQUEST_template& other_value); +inline boolean match(const NG__PDU__SESSION__RELEASE__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__RELEASE__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__RELEASE__REQUEST valueof() const; +inline NG__PDU__SESSION__RELEASE__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new NG__PDU__SESSION__RELEASE__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__RELEASE__REJECT : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + GMM__GSM__Cause field_gsmCause; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__PDU__SESSION__RELEASE__REJECT(); + NG__PDU__SESSION__RELEASE__REJECT(const NG__PDU__SESSION__RELEASE__REJECT& other_value); + NG__PDU__SESSION__RELEASE__REJECT(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline NG__PDU__SESSION__RELEASE__REJECT& operator=(const NG__PDU__SESSION__RELEASE__REJECT& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__RELEASE__REJECT& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__RELEASE__REJECT& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gsmCause() + {return field_gsmCause;} + inline const GMM__GSM__Cause& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new NG__PDU__SESSION__RELEASE__REJECT(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__RELEASE__REJECT_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__RELEASE__REJECT_template(): Record_Template() {} +NG__PDU__SESSION__RELEASE__REJECT_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__RELEASE__REJECT_template(const NG__PDU__SESSION__RELEASE__REJECT& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__RELEASE__REJECT_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__RELEASE__REJECT_template(NG__PDU__SESSION__RELEASE__REJECT_template* p_precondition, NG__PDU__SESSION__RELEASE__REJECT_template* p_implied_template); +NG__PDU__SESSION__RELEASE__REJECT_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__RELEASE__REJECT_template(const NG__PDU__SESSION__RELEASE__REJECT_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__RELEASE__REJECT_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__RELEASE__REJECT_template& operator=(template_sel other_value); +NG__PDU__SESSION__RELEASE__REJECT_template& operator=(const NG__PDU__SESSION__RELEASE__REJECT& other_value); +NG__PDU__SESSION__RELEASE__REJECT_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__RELEASE__REJECT_template& operator=(const NG__PDU__SESSION__RELEASE__REJECT_template& other_value); +inline boolean match(const NG__PDU__SESSION__RELEASE__REJECT& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__RELEASE__REJECT& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__RELEASE__REJECT valueof() const; +inline NG__PDU__SESSION__RELEASE__REJECT_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new NG__PDU__SESSION__RELEASE__REJECT_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__RELEASE__COMMAND : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + GMM__GSM__Cause field_gsmCause; + OPTIONAL field_backOffTimerValue; + OPTIONAL field_eapMessage; + OPTIONAL field_ngsmCongestionReattemptInd; + OPTIONAL field_extdProtocolConfigurationOptions; + OPTIONAL field_accessType; + OPTIONAL field_serviceLvlAA; + Base_Type* fld_vec[11]; + void init_vec(); +public: + NG__PDU__SESSION__RELEASE__COMMAND(); + NG__PDU__SESSION__RELEASE__COMMAND(const NG__PDU__SESSION__RELEASE__COMMAND& other_value); + NG__PDU__SESSION__RELEASE__COMMAND(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause, + const OPTIONAL& par_backOffTimerValue, + const OPTIONAL& par_eapMessage, + const OPTIONAL& par_ngsmCongestionReattemptInd, + const OPTIONAL& par_extdProtocolConfigurationOptions, + const OPTIONAL& par_accessType, + const OPTIONAL& par_serviceLvlAA); +inline NG__PDU__SESSION__RELEASE__COMMAND& operator=(const NG__PDU__SESSION__RELEASE__COMMAND& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__RELEASE__COMMAND& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__RELEASE__COMMAND& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gsmCause() + {return field_gsmCause;} + inline const GMM__GSM__Cause& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& backOffTimerValue() + {return field_backOffTimerValue;} + inline const OPTIONAL& backOffTimerValue() const + {return field_backOffTimerValue;} + inline OPTIONAL& eapMessage() + {return field_eapMessage;} + inline const OPTIONAL& eapMessage() const + {return field_eapMessage;} + inline OPTIONAL& ngsmCongestionReattemptInd() + {return field_ngsmCongestionReattemptInd;} + inline const OPTIONAL& ngsmCongestionReattemptInd() const + {return field_ngsmCongestionReattemptInd;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} + inline OPTIONAL& accessType() + {return field_accessType;} + inline const OPTIONAL& accessType() const + {return field_accessType;} + inline OPTIONAL& serviceLvlAA() + {return field_serviceLvlAA;} + inline const OPTIONAL& serviceLvlAA() const + {return field_serviceLvlAA;} +Base_Type* clone() const { return new NG__PDU__SESSION__RELEASE__COMMAND(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 11; } +int optional_count() const { return 6; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__RELEASE__COMMAND_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__RELEASE__COMMAND_template(): Record_Template() {} +NG__PDU__SESSION__RELEASE__COMMAND_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__RELEASE__COMMAND_template(const NG__PDU__SESSION__RELEASE__COMMAND& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__RELEASE__COMMAND_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__RELEASE__COMMAND_template(NG__PDU__SESSION__RELEASE__COMMAND_template* p_precondition, NG__PDU__SESSION__RELEASE__COMMAND_template* p_implied_template); +NG__PDU__SESSION__RELEASE__COMMAND_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__RELEASE__COMMAND_template(const NG__PDU__SESSION__RELEASE__COMMAND_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__RELEASE__COMMAND_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__RELEASE__COMMAND_template& operator=(template_sel other_value); +NG__PDU__SESSION__RELEASE__COMMAND_template& operator=(const NG__PDU__SESSION__RELEASE__COMMAND& other_value); +NG__PDU__SESSION__RELEASE__COMMAND_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__RELEASE__COMMAND_template& operator=(const NG__PDU__SESSION__RELEASE__COMMAND_template& other_value); +inline boolean match(const NG__PDU__SESSION__RELEASE__COMMAND& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__RELEASE__COMMAND& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__RELEASE__COMMAND valueof() const; +inline NG__PDU__SESSION__RELEASE__COMMAND_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue(); +const NAS__CommonTypeDefs::GPRS__Timer2_template& backOffTimerValue() const; +EAP__Message_template& eapMessage(); +const EAP__Message_template& eapMessage() const; +NGSM__CongestionReattemptInd_template& ngsmCongestionReattemptInd(); +const NGSM__CongestionReattemptInd_template& ngsmCongestionReattemptInd() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +AccessType_template& accessType(); +const AccessType_template& accessType() const; +ServiceLvlAAContainer_template& serviceLvlAA(); +const ServiceLvlAAContainer_template& serviceLvlAA() const; +Record_Template* create() const { return new NG__PDU__SESSION__RELEASE__COMMAND_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__PDU__SESSION__RELEASE__COMPLETE : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + OPTIONAL field_gsmCause; + OPTIONAL field_extdProtocolConfigurationOptions; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NG__PDU__SESSION__RELEASE__COMPLETE(); + NG__PDU__SESSION__RELEASE__COMPLETE(const NG__PDU__SESSION__RELEASE__COMPLETE& other_value); + NG__PDU__SESSION__RELEASE__COMPLETE(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const OPTIONAL& par_gsmCause, + const OPTIONAL& par_extdProtocolConfigurationOptions); +inline NG__PDU__SESSION__RELEASE__COMPLETE& operator=(const NG__PDU__SESSION__RELEASE__COMPLETE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__PDU__SESSION__RELEASE__COMPLETE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__PDU__SESSION__RELEASE__COMPLETE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& gsmCause() + {return field_gsmCause;} + inline const OPTIONAL& gsmCause() const + {return field_gsmCause;} + inline OPTIONAL& extdProtocolConfigurationOptions() + {return field_extdProtocolConfigurationOptions;} + inline const OPTIONAL& extdProtocolConfigurationOptions() const + {return field_extdProtocolConfigurationOptions;} +Base_Type* clone() const { return new NG__PDU__SESSION__RELEASE__COMPLETE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__PDU__SESSION__RELEASE__COMPLETE_template : public Record_Template { +void set_specific(); +public: +NG__PDU__SESSION__RELEASE__COMPLETE_template(): Record_Template() {} +NG__PDU__SESSION__RELEASE__COMPLETE_template(template_sel other_value): Record_Template(other_value) {} +NG__PDU__SESSION__RELEASE__COMPLETE_template(const NG__PDU__SESSION__RELEASE__COMPLETE& other_value): Record_Template() { copy_value(&other_value); } +NG__PDU__SESSION__RELEASE__COMPLETE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__PDU__SESSION__RELEASE__COMPLETE_template(NG__PDU__SESSION__RELEASE__COMPLETE_template* p_precondition, NG__PDU__SESSION__RELEASE__COMPLETE_template* p_implied_template); +NG__PDU__SESSION__RELEASE__COMPLETE_template(Dynamic_Match_Interface* p_dyn_match); +NG__PDU__SESSION__RELEASE__COMPLETE_template(const NG__PDU__SESSION__RELEASE__COMPLETE_template& other_value): Record_Template() { copy_template(other_value); } +~NG__PDU__SESSION__RELEASE__COMPLETE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__PDU__SESSION__RELEASE__COMPLETE_template& operator=(template_sel other_value); +NG__PDU__SESSION__RELEASE__COMPLETE_template& operator=(const NG__PDU__SESSION__RELEASE__COMPLETE& other_value); +NG__PDU__SESSION__RELEASE__COMPLETE_template& operator=(const OPTIONAL& other_value); +NG__PDU__SESSION__RELEASE__COMPLETE_template& operator=(const NG__PDU__SESSION__RELEASE__COMPLETE_template& other_value); +inline boolean match(const NG__PDU__SESSION__RELEASE__COMPLETE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__PDU__SESSION__RELEASE__COMPLETE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__PDU__SESSION__RELEASE__COMPLETE valueof() const; +inline NG__PDU__SESSION__RELEASE__COMPLETE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions(); +const NAS__CommonTypeDefs::ExtdProtocolConfigOptions_template& extdProtocolConfigurationOptions() const; +Record_Template* create() const { return new NG__PDU__SESSION__RELEASE__COMPLETE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__GSM__STATUS : public Record_Type { + BITSTRING field_protocolDiscriminator; + NG__PDU__SessionId field_pduSessionId; + OCTETSTRING field_procedureTransactionIdentifier; + BITSTRING field_messageType; + GMM__GSM__Cause field_gsmCause; + Base_Type* fld_vec[5]; + void init_vec(); +public: + NG__GSM__STATUS(); + NG__GSM__STATUS(const NG__GSM__STATUS& other_value); + NG__GSM__STATUS(const BITSTRING& par_protocolDiscriminator, + const NG__PDU__SessionId& par_pduSessionId, + const OCTETSTRING& par_procedureTransactionIdentifier, + const BITSTRING& par_messageType, + const GMM__GSM__Cause& par_gsmCause); +inline NG__GSM__STATUS& operator=(const NG__GSM__STATUS& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__GSM__STATUS& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__GSM__STATUS& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline NG__PDU__SessionId& pduSessionId() + {return field_pduSessionId;} + inline const NG__PDU__SessionId& pduSessionId() const + {return field_pduSessionId;} + inline OCTETSTRING& procedureTransactionIdentifier() + {return field_procedureTransactionIdentifier;} + inline const OCTETSTRING& procedureTransactionIdentifier() const + {return field_procedureTransactionIdentifier;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline GMM__GSM__Cause& gsmCause() + {return field_gsmCause;} + inline const GMM__GSM__Cause& gsmCause() const + {return field_gsmCause;} +Base_Type* clone() const { return new NG__GSM__STATUS(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__GSM__STATUS_template : public Record_Template { +void set_specific(); +public: +NG__GSM__STATUS_template(): Record_Template() {} +NG__GSM__STATUS_template(template_sel other_value): Record_Template(other_value) {} +NG__GSM__STATUS_template(const NG__GSM__STATUS& other_value): Record_Template() { copy_value(&other_value); } +NG__GSM__STATUS_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__GSM__STATUS_template(NG__GSM__STATUS_template* p_precondition, NG__GSM__STATUS_template* p_implied_template); +NG__GSM__STATUS_template(Dynamic_Match_Interface* p_dyn_match); +NG__GSM__STATUS_template(const NG__GSM__STATUS_template& other_value): Record_Template() { copy_template(other_value); } +~NG__GSM__STATUS_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__GSM__STATUS_template& operator=(template_sel other_value); +NG__GSM__STATUS_template& operator=(const NG__GSM__STATUS& other_value); +NG__GSM__STATUS_template& operator=(const OPTIONAL& other_value); +NG__GSM__STATUS_template& operator=(const NG__GSM__STATUS_template& other_value); +inline boolean match(const NG__GSM__STATUS& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__GSM__STATUS& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__GSM__STATUS valueof() const; +inline NG__GSM__STATUS_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +NG__PDU__SessionId_template& pduSessionId(); +const NG__PDU__SessionId_template& pduSessionId() const; +OCTETSTRING_template& procedureTransactionIdentifier(); +const OCTETSTRING_template& procedureTransactionIdentifier() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +GMM__GSM__Cause_template& gsmCause(); +const GMM__GSM__Cause_template& gsmCause() const; +Record_Template* create() const { return new NG__GSM__STATUS_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class CIoTSmallDataContainer : public Record_Type { + OCTETSTRING field_iel; + BITSTRING field_dataType; + BITSTRING field_ddx; + BITSTRING field_pduSessionId; + OPTIONAL field_lengthOfAddInfo; + OPTIONAL field_addInfo; + OCTETSTRING field_dataContents; + Base_Type* fld_vec[7]; + void init_vec(); +public: + CIoTSmallDataContainer(); + CIoTSmallDataContainer(const CIoTSmallDataContainer& other_value); + CIoTSmallDataContainer(const OCTETSTRING& par_iel, + const BITSTRING& par_dataType, + const BITSTRING& par_ddx, + const BITSTRING& par_pduSessionId, + const OPTIONAL& par_lengthOfAddInfo, + const OPTIONAL& par_addInfo, + const OCTETSTRING& par_dataContents); +inline CIoTSmallDataContainer& operator=(const CIoTSmallDataContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const CIoTSmallDataContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const CIoTSmallDataContainer& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline BITSTRING& dataType() + {return field_dataType;} + inline const BITSTRING& dataType() const + {return field_dataType;} + inline BITSTRING& ddx() + {return field_ddx;} + inline const BITSTRING& ddx() const + {return field_ddx;} + inline BITSTRING& pduSessionId() + {return field_pduSessionId;} + inline const BITSTRING& pduSessionId() const + {return field_pduSessionId;} + inline OPTIONAL& lengthOfAddInfo() + {return field_lengthOfAddInfo;} + inline const OPTIONAL& lengthOfAddInfo() const + {return field_lengthOfAddInfo;} + inline OPTIONAL& addInfo() + {return field_addInfo;} + inline const OPTIONAL& addInfo() const + {return field_addInfo;} + inline OCTETSTRING& dataContents() + {return field_dataContents;} + inline const OCTETSTRING& dataContents() const + {return field_dataContents;} +Base_Type* clone() const { return new CIoTSmallDataContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 7; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class CIoTSmallDataContainer_template : public Record_Template { +void set_specific(); +public: +CIoTSmallDataContainer_template(): Record_Template() {} +CIoTSmallDataContainer_template(template_sel other_value): Record_Template(other_value) {} +CIoTSmallDataContainer_template(const CIoTSmallDataContainer& other_value): Record_Template() { copy_value(&other_value); } +CIoTSmallDataContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +CIoTSmallDataContainer_template(CIoTSmallDataContainer_template* p_precondition, CIoTSmallDataContainer_template* p_implied_template); +CIoTSmallDataContainer_template(Dynamic_Match_Interface* p_dyn_match); +CIoTSmallDataContainer_template(const CIoTSmallDataContainer_template& other_value): Record_Template() { copy_template(other_value); } +~CIoTSmallDataContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +CIoTSmallDataContainer_template& operator=(template_sel other_value); +CIoTSmallDataContainer_template& operator=(const CIoTSmallDataContainer& other_value); +CIoTSmallDataContainer_template& operator=(const OPTIONAL& other_value); +CIoTSmallDataContainer_template& operator=(const CIoTSmallDataContainer_template& other_value); +inline boolean match(const CIoTSmallDataContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const CIoTSmallDataContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +CIoTSmallDataContainer valueof() const; +inline CIoTSmallDataContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +BITSTRING_template& dataType(); +const BITSTRING_template& dataType() const; +BITSTRING_template& ddx(); +const BITSTRING_template& ddx() const; +BITSTRING_template& pduSessionId(); +const BITSTRING_template& pduSessionId() const; +OCTETSTRING_template& lengthOfAddInfo(); +const OCTETSTRING_template& lengthOfAddInfo() const; +OCTETSTRING_template& addInfo(); +const OCTETSTRING_template& addInfo() const; +OCTETSTRING_template& dataContents(); +const OCTETSTRING_template& dataContents() const; +Record_Template* create() const { return new CIoTSmallDataContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class QoS__FlowList : public Record_Of_Type { + +static const QoS__Flow UNBOUND_ELEM; + +public: +QoS__FlowList(): Record_Of_Type() {} +QoS__FlowList(null_type other_value): Record_Of_Type(other_value) {} +QoS__FlowList(const QoS__FlowList& other_value): Record_Of_Type(other_value) {} +~QoS__FlowList() { clean_up(); } + +inline QoS__FlowList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline QoS__FlowList& operator=(const QoS__FlowList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const QoS__FlowList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const QoS__FlowList& other_value) const { return !is_equal(&other_value); } +QoS__Flow& operator[](int index_value); +QoS__Flow& operator[](const INTEGER& index_value); +const QoS__Flow& operator[](int index_value) const; +const QoS__Flow& operator[](const INTEGER& index_value) const; +QoS__FlowList operator<<=(int rotate_count) const; +QoS__FlowList operator<<=(const INTEGER& rotate_count) const; +QoS__FlowList operator>>=(int rotate_count) const; +QoS__FlowList operator>>=(const INTEGER& rotate_count) const; + +QoS__FlowList operator+(const QoS__FlowList& other_value) const; + +QoS__FlowList operator+(const OPTIONAL& other_value) const; + +QoS__FlowList operator+(null_type) const; + +QoS__FlowList substr(int index, int returncount) const; + +QoS__FlowList replace(int index, int len, const QoS__FlowList& repl) const; + +QoS__FlowList replace(int index, int len, const QoS__FlowList_template& repl) const; + +Base_Type* clone() const { return new QoS__FlowList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class QoS__FlowList_template : public Record_Of_Template { +friend QoS__FlowList_template operator+(template_sel left_template, const QoS__FlowList_template& right_template); +friend QoS__FlowList_template operator+(const QoS__FlowList& left_value, const QoS__FlowList_template& right_template); +friend QoS__FlowList_template operator+(template_sel left_template, const QoS__FlowList& right_value); +friend QoS__FlowList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend QoS__FlowList_template operator+(const QoS__FlowList& left_value, template_sel right_template); + +public: +QoS__FlowList_template() {} +QoS__FlowList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +QoS__FlowList_template(null_type other_value); +QoS__FlowList_template(const QoS__FlowList& other_value) { copy_value(&other_value); } +QoS__FlowList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +QoS__FlowList_template(QoS__FlowList_template* p_precondition, QoS__FlowList_template* p_implied_template); +QoS__FlowList_template(Dynamic_Match_Interface* p_dyn_match); +QoS__FlowList_template(const QoS__FlowList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~QoS__FlowList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +QoS__FlowList_template& operator=(template_sel other_value); +QoS__FlowList_template& operator=(null_type other_value); +QoS__FlowList_template& operator=(const QoS__FlowList& other_value); +QoS__FlowList_template& operator=(const OPTIONAL& other_value); +QoS__FlowList_template& operator=(const QoS__FlowList_template& other_value); + +QoS__FlowList_template operator+(const QoS__FlowList_template& other_value) const; +QoS__FlowList_template operator+(const QoS__FlowList& other_value) const; +QoS__FlowList_template operator+(template_sel other_value) const; +QoS__FlowList_template operator+(null_type) const; + +QoS__Flow_template& operator[](int index_value); +QoS__Flow_template& operator[](const INTEGER& index_value); +const QoS__Flow_template& operator[](int index_value) const; +const QoS__Flow_template& operator[](const INTEGER& index_value) const; +inline boolean match(const QoS__FlowList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +QoS__FlowList valueof() const; +QoS__FlowList substr(int index, int returncount) const; + +QoS__FlowList replace(int index, int len, const QoS__FlowList_template& repl) const; + +QoS__FlowList replace(int index, int len, const QoS__FlowList& repl) const; + +inline QoS__FlowList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const QoS__FlowList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new QoS__FlowList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class UPU__Header : public Record_Type { + BITSTRING field_spare; + BITSTRING field_reg; + BITSTRING field_ack; + BITSTRING field_upuDataType; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UPU__Header(); + UPU__Header(const UPU__Header& other_value); + UPU__Header(const BITSTRING& par_spare, + const BITSTRING& par_reg, + const BITSTRING& par_ack, + const BITSTRING& par_upuDataType); +inline UPU__Header& operator=(const UPU__Header& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UPU__Header& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UPU__Header& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& reg() + {return field_reg;} + inline const BITSTRING& reg() const + {return field_reg;} + inline BITSTRING& ack() + {return field_ack;} + inline const BITSTRING& ack() const + {return field_ack;} + inline BITSTRING& upuDataType() + {return field_upuDataType;} + inline const BITSTRING& upuDataType() const + {return field_upuDataType;} +Base_Type* clone() const { return new UPU__Header(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UPU__Header_template : public Record_Template { +void set_specific(); +public: +UPU__Header_template(): Record_Template() {} +UPU__Header_template(template_sel other_value): Record_Template(other_value) {} +UPU__Header_template(const UPU__Header& other_value): Record_Template() { copy_value(&other_value); } +UPU__Header_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UPU__Header_template(UPU__Header_template* p_precondition, UPU__Header_template* p_implied_template); +UPU__Header_template(Dynamic_Match_Interface* p_dyn_match); +UPU__Header_template(const UPU__Header_template& other_value): Record_Template() { copy_template(other_value); } +~UPU__Header_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UPU__Header_template& operator=(template_sel other_value); +UPU__Header_template& operator=(const UPU__Header& other_value); +UPU__Header_template& operator=(const OPTIONAL& other_value); +UPU__Header_template& operator=(const UPU__Header_template& other_value); +inline boolean match(const UPU__Header& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UPU__Header& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UPU__Header valueof() const; +inline UPU__Header_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& reg(); +const BITSTRING_template& reg() const; +BITSTRING_template& ack(); +const BITSTRING_template& ack() const; +BITSTRING_template& upuDataType(); +const BITSTRING_template& upuDataType() const; +Record_Template* create() const { return new UPU__Header_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UPU__Param : public Record_Type { + BITSTRING field_spare; + BITSTRING field_dataSetType; + OCTETSTRING field_len; + OCTETSTRING field_dataSet; + Base_Type* fld_vec[4]; + void init_vec(); +public: + UPU__Param(); + UPU__Param(const UPU__Param& other_value); + UPU__Param(const BITSTRING& par_spare, + const BITSTRING& par_dataSetType, + const OCTETSTRING& par_len, + const OCTETSTRING& par_dataSet); +inline UPU__Param& operator=(const UPU__Param& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UPU__Param& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UPU__Param& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& dataSetType() + {return field_dataSetType;} + inline const BITSTRING& dataSetType() const + {return field_dataSetType;} + inline OCTETSTRING& len() + {return field_len;} + inline const OCTETSTRING& len() const + {return field_len;} + inline OCTETSTRING& dataSet() + {return field_dataSet;} + inline const OCTETSTRING& dataSet() const + {return field_dataSet;} +Base_Type* clone() const { return new UPU__Param(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 4; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UPU__Param_template : public Record_Template { +void set_specific(); +public: +UPU__Param_template(): Record_Template() {} +UPU__Param_template(template_sel other_value): Record_Template(other_value) {} +UPU__Param_template(const UPU__Param& other_value): Record_Template() { copy_value(&other_value); } +UPU__Param_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UPU__Param_template(UPU__Param_template* p_precondition, UPU__Param_template* p_implied_template); +UPU__Param_template(Dynamic_Match_Interface* p_dyn_match); +UPU__Param_template(const UPU__Param_template& other_value): Record_Template() { copy_template(other_value); } +~UPU__Param_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UPU__Param_template& operator=(template_sel other_value); +UPU__Param_template& operator=(const UPU__Param& other_value); +UPU__Param_template& operator=(const OPTIONAL& other_value); +UPU__Param_template& operator=(const UPU__Param_template& other_value); +inline boolean match(const UPU__Param& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UPU__Param& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UPU__Param valueof() const; +inline UPU__Param_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& dataSetType(); +const BITSTRING_template& dataSetType() const; +OCTETSTRING_template& len(); +const OCTETSTRING_template& len() const; +OCTETSTRING_template& dataSet(); +const OCTETSTRING_template& dataSet() const; +Record_Template* create() const { return new UPU__Param_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UPU__ParamList : public Record_Of_Type { + +static const UPU__Param UNBOUND_ELEM; + +public: +UPU__ParamList(): Record_Of_Type() {} +UPU__ParamList(null_type other_value): Record_Of_Type(other_value) {} +UPU__ParamList(const UPU__ParamList& other_value): Record_Of_Type(other_value) {} +~UPU__ParamList() { clean_up(); } + +inline UPU__ParamList& operator=(null_type other_value) { set_val(other_value); return *this; } +inline UPU__ParamList& operator=(const UPU__ParamList& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UPU__ParamList& other_value) const { return is_equal(&other_value); } +boolean operator!=(const UPU__ParamList& other_value) const { return !is_equal(&other_value); } +UPU__Param& operator[](int index_value); +UPU__Param& operator[](const INTEGER& index_value); +const UPU__Param& operator[](int index_value) const; +const UPU__Param& operator[](const INTEGER& index_value) const; +UPU__ParamList operator<<=(int rotate_count) const; +UPU__ParamList operator<<=(const INTEGER& rotate_count) const; +UPU__ParamList operator>>=(int rotate_count) const; +UPU__ParamList operator>>=(const INTEGER& rotate_count) const; + +UPU__ParamList operator+(const UPU__ParamList& other_value) const; + +UPU__ParamList operator+(const OPTIONAL& other_value) const; + +UPU__ParamList operator+(null_type) const; + +UPU__ParamList substr(int index, int returncount) const; + +UPU__ParamList replace(int index, int len, const UPU__ParamList& repl) const; + +UPU__ParamList replace(int index, int len, const UPU__ParamList_template& repl) const; + +Base_Type* clone() const { return new UPU__ParamList(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +const TTCN_Typedescriptor_t* get_elem_descr() const; +Base_Type* create_elem() const; +const Base_Type* get_unbound_elem() const; +boolean is_set() const { return FALSE; } +virtual boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) { return FALSE; } +}; + +class UPU__ParamList_template : public Record_Of_Template { +friend UPU__ParamList_template operator+(template_sel left_template, const UPU__ParamList_template& right_template); +friend UPU__ParamList_template operator+(const UPU__ParamList& left_value, const UPU__ParamList_template& right_template); +friend UPU__ParamList_template operator+(template_sel left_template, const UPU__ParamList& right_value); +friend UPU__ParamList_template operator+(template_sel left_template, const OPTIONAL& right_value); +friend UPU__ParamList_template operator+(const UPU__ParamList& left_value, template_sel right_template); + +public: +UPU__ParamList_template() {} +UPU__ParamList_template(template_sel other_value): Record_Of_Template(other_value) { check_single_selection(other_value); } +UPU__ParamList_template(null_type other_value); +UPU__ParamList_template(const UPU__ParamList& other_value) { copy_value(&other_value); } +UPU__ParamList_template(const OPTIONAL& other_value) { copy_optional(&other_value); } +UPU__ParamList_template(UPU__ParamList_template* p_precondition, UPU__ParamList_template* p_implied_template); +UPU__ParamList_template(Dynamic_Match_Interface* p_dyn_match); +UPU__ParamList_template(const UPU__ParamList_template& other_value): Record_Of_Template() { copy_template(other_value); } +~UPU__ParamList_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UPU__ParamList_template& operator=(template_sel other_value); +UPU__ParamList_template& operator=(null_type other_value); +UPU__ParamList_template& operator=(const UPU__ParamList& other_value); +UPU__ParamList_template& operator=(const OPTIONAL& other_value); +UPU__ParamList_template& operator=(const UPU__ParamList_template& other_value); + +UPU__ParamList_template operator+(const UPU__ParamList_template& other_value) const; +UPU__ParamList_template operator+(const UPU__ParamList& other_value) const; +UPU__ParamList_template operator+(template_sel other_value) const; +UPU__ParamList_template operator+(null_type) const; + +UPU__Param_template& operator[](int index_value); +UPU__Param_template& operator[](const INTEGER& index_value); +const UPU__Param_template& operator[](int index_value) const; +const UPU__Param_template& operator[](const INTEGER& index_value) const; +inline boolean match(const UPU__ParamList& match_value, boolean legacy = FALSE) const { return matchv(&match_value, legacy); } +UPU__ParamList valueof() const; +UPU__ParamList substr(int index, int returncount) const; + +UPU__ParamList replace(int index, int len, const UPU__ParamList_template& repl) const; + +UPU__ParamList replace(int index, int len, const UPU__ParamList& repl) const; + +inline UPU__ParamList_template& list_item(int list_index) { return *(static_cast(get_list_item(list_index))); } +inline void log_match(const UPU__ParamList& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +Record_Of_Template* create() const { return new UPU__ParamList_template; } +Base_Template* create_elem() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class UPU__TransparentContainer : public Record_Type { + OPTIONAL field_iei; + OCTETSTRING field_iel; + UPU__Header field_octet4; + OCTETSTRING field_upuMAC__I; + OPTIONAL field_counter; + OPTIONAL field_upuList; + Base_Type* fld_vec[6]; + void init_vec(); +public: + UPU__TransparentContainer(); + UPU__TransparentContainer(const UPU__TransparentContainer& other_value); + UPU__TransparentContainer(const OPTIONAL& par_iei, + const OCTETSTRING& par_iel, + const UPU__Header& par_octet4, + const OCTETSTRING& par_upuMAC__I, + const OPTIONAL& par_counter, + const OPTIONAL& par_upuList); +inline UPU__TransparentContainer& operator=(const UPU__TransparentContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UPU__TransparentContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UPU__TransparentContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& iei() + {return field_iei;} + inline const OPTIONAL& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline UPU__Header& octet4() + {return field_octet4;} + inline const UPU__Header& octet4() const + {return field_octet4;} + inline OCTETSTRING& upuMAC__I() + {return field_upuMAC__I;} + inline const OCTETSTRING& upuMAC__I() const + {return field_upuMAC__I;} + inline OPTIONAL& counter() + {return field_counter;} + inline const OPTIONAL& counter() const + {return field_counter;} + inline OPTIONAL& upuList() + {return field_upuList;} + inline const OPTIONAL& upuList() const + {return field_upuList;} +Base_Type* clone() const { return new UPU__TransparentContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UPU__TransparentContainer_template : public Record_Template { +void set_specific(); +public: +UPU__TransparentContainer_template(): Record_Template() {} +UPU__TransparentContainer_template(template_sel other_value): Record_Template(other_value) {} +UPU__TransparentContainer_template(const UPU__TransparentContainer& other_value): Record_Template() { copy_value(&other_value); } +UPU__TransparentContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UPU__TransparentContainer_template(UPU__TransparentContainer_template* p_precondition, UPU__TransparentContainer_template* p_implied_template); +UPU__TransparentContainer_template(Dynamic_Match_Interface* p_dyn_match); +UPU__TransparentContainer_template(const UPU__TransparentContainer_template& other_value): Record_Template() { copy_template(other_value); } +~UPU__TransparentContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UPU__TransparentContainer_template& operator=(template_sel other_value); +UPU__TransparentContainer_template& operator=(const UPU__TransparentContainer& other_value); +UPU__TransparentContainer_template& operator=(const OPTIONAL& other_value); +UPU__TransparentContainer_template& operator=(const UPU__TransparentContainer_template& other_value); +inline boolean match(const UPU__TransparentContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UPU__TransparentContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UPU__TransparentContainer valueof() const; +inline UPU__TransparentContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +UPU__Header_template& octet4(); +const UPU__Header_template& octet4() const; +OCTETSTRING_template& upuMAC__I(); +const OCTETSTRING_template& upuMAC__I() const; +OCTETSTRING_template& counter(); +const OCTETSTRING_template& counter() const; +UPU__ParamList_template& upuList(); +const UPU__ParamList_template& upuList() const; +Record_Template* create() const { return new UPU__TransparentContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NSSAI__DELETE__REQUEST : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + BITSTRING field_deleteNSSAI__Type; + OPTIONAL field_configuredNSSAI; + OPTIONAL field_allowedNSSAI; + Base_Type* fld_vec[6]; + void init_vec(); +public: + NSSAI__DELETE__REQUEST(); + NSSAI__DELETE__REQUEST(const NSSAI__DELETE__REQUEST& other_value); + NSSAI__DELETE__REQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_deleteNSSAI__Type, + const OPTIONAL& par_configuredNSSAI, + const OPTIONAL& par_allowedNSSAI); +inline NSSAI__DELETE__REQUEST& operator=(const NSSAI__DELETE__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSSAI__DELETE__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NSSAI__DELETE__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline BITSTRING& deleteNSSAI__Type() + {return field_deleteNSSAI__Type;} + inline const BITSTRING& deleteNSSAI__Type() const + {return field_deleteNSSAI__Type;} + inline OPTIONAL& configuredNSSAI() + {return field_configuredNSSAI;} + inline const OPTIONAL& configuredNSSAI() const + {return field_configuredNSSAI;} + inline OPTIONAL& allowedNSSAI() + {return field_allowedNSSAI;} + inline const OPTIONAL& allowedNSSAI() const + {return field_allowedNSSAI;} +Base_Type* clone() const { return new NSSAI__DELETE__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NSSAI__DELETE__REQUEST_template : public Record_Template { +void set_specific(); +public: +NSSAI__DELETE__REQUEST_template(): Record_Template() {} +NSSAI__DELETE__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +NSSAI__DELETE__REQUEST_template(const NSSAI__DELETE__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +NSSAI__DELETE__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NSSAI__DELETE__REQUEST_template(NSSAI__DELETE__REQUEST_template* p_precondition, NSSAI__DELETE__REQUEST_template* p_implied_template); +NSSAI__DELETE__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +NSSAI__DELETE__REQUEST_template(const NSSAI__DELETE__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~NSSAI__DELETE__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSSAI__DELETE__REQUEST_template& operator=(template_sel other_value); +NSSAI__DELETE__REQUEST_template& operator=(const NSSAI__DELETE__REQUEST& other_value); +NSSAI__DELETE__REQUEST_template& operator=(const OPTIONAL& other_value); +NSSAI__DELETE__REQUEST_template& operator=(const NSSAI__DELETE__REQUEST_template& other_value); +inline boolean match(const NSSAI__DELETE__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NSSAI__DELETE__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NSSAI__DELETE__REQUEST valueof() const; +inline NSSAI__DELETE__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +BITSTRING_template& deleteNSSAI__Type(); +const BITSTRING_template& deleteNSSAI__Type() const; +OCTETSTRING_template& configuredNSSAI(); +const OCTETSTRING_template& configuredNSSAI() const; +AllowedNSSAI_template& allowedNSSAI(); +const AllowedNSSAI_template& allowedNSSAI() const; +Record_Template* create() const { return new NSSAI__DELETE__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class AllowedNSSAI : public Record_Type { + OCTETSTRING field_allowedNSSAI; + BITSTRING field_spareBits; + BITSTRING field_accessType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + AllowedNSSAI(); + AllowedNSSAI(const AllowedNSSAI& other_value); + AllowedNSSAI(const OCTETSTRING& par_allowedNSSAI, + const BITSTRING& par_spareBits, + const BITSTRING& par_accessType); +inline AllowedNSSAI& operator=(const AllowedNSSAI& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const AllowedNSSAI& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const AllowedNSSAI& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& allowedNSSAI() + {return field_allowedNSSAI;} + inline const OCTETSTRING& allowedNSSAI() const + {return field_allowedNSSAI;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& accessType() + {return field_accessType;} + inline const BITSTRING& accessType() const + {return field_accessType;} +Base_Type* clone() const { return new AllowedNSSAI(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class AllowedNSSAI_template : public Record_Template { +void set_specific(); +public: +AllowedNSSAI_template(): Record_Template() {} +AllowedNSSAI_template(template_sel other_value): Record_Template(other_value) {} +AllowedNSSAI_template(const AllowedNSSAI& other_value): Record_Template() { copy_value(&other_value); } +AllowedNSSAI_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +AllowedNSSAI_template(AllowedNSSAI_template* p_precondition, AllowedNSSAI_template* p_implied_template); +AllowedNSSAI_template(Dynamic_Match_Interface* p_dyn_match); +AllowedNSSAI_template(const AllowedNSSAI_template& other_value): Record_Template() { copy_template(other_value); } +~AllowedNSSAI_template(); +boolean match_dynamic(const Base_Type* match_value) const; +AllowedNSSAI_template& operator=(template_sel other_value); +AllowedNSSAI_template& operator=(const AllowedNSSAI& other_value); +AllowedNSSAI_template& operator=(const OPTIONAL& other_value); +AllowedNSSAI_template& operator=(const AllowedNSSAI_template& other_value); +inline boolean match(const AllowedNSSAI& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const AllowedNSSAI& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +AllowedNSSAI valueof() const; +inline AllowedNSSAI_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& allowedNSSAI(); +const OCTETSTRING_template& allowedNSSAI() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& accessType(); +const BITSTRING_template& accessType() const; +Record_Template* create() const { return new AllowedNSSAI_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NSSAI__DELETE__RESPONSE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NSSAI__DELETE__RESPONSE(); + NSSAI__DELETE__RESPONSE(const NSSAI__DELETE__RESPONSE& other_value); + NSSAI__DELETE__RESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline NSSAI__DELETE__RESPONSE& operator=(const NSSAI__DELETE__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NSSAI__DELETE__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NSSAI__DELETE__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new NSSAI__DELETE__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NSSAI__DELETE__RESPONSE_template : public Record_Template { +void set_specific(); +public: +NSSAI__DELETE__RESPONSE_template(): Record_Template() {} +NSSAI__DELETE__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +NSSAI__DELETE__RESPONSE_template(const NSSAI__DELETE__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +NSSAI__DELETE__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NSSAI__DELETE__RESPONSE_template(NSSAI__DELETE__RESPONSE_template* p_precondition, NSSAI__DELETE__RESPONSE_template* p_implied_template); +NSSAI__DELETE__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +NSSAI__DELETE__RESPONSE_template(const NSSAI__DELETE__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~NSSAI__DELETE__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NSSAI__DELETE__RESPONSE_template& operator=(template_sel other_value); +NSSAI__DELETE__RESPONSE_template& operator=(const NSSAI__DELETE__RESPONSE& other_value); +NSSAI__DELETE__RESPONSE_template& operator=(const OPTIONAL& other_value); +NSSAI__DELETE__RESPONSE_template& operator=(const NSSAI__DELETE__RESPONSE_template& other_value); +inline boolean match(const NSSAI__DELETE__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NSSAI__DELETE__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NSSAI__DELETE__RESPONSE valueof() const; +inline NSSAI__DELETE__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new NSSAI__DELETE__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST(); + UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& other_value); + UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template : public Record_Template { +void set_specific(); +public: +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(): Record_Template() {} +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template* p_precondition, UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template* p_implied_template); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& operator=(template_sel other_value); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& other_value); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& operator=(const OPTIONAL& other_value); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& other_value); +inline boolean match(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST valueof() const; +inline UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NR__SidelinkCounter : public Record_Type { + OCTETSTRING field_iei; + OCTETSTRING field_iel; + PacketCounterValueList field_counterValue; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NR__SidelinkCounter(); + NR__SidelinkCounter(const NR__SidelinkCounter& other_value); + NR__SidelinkCounter(const OCTETSTRING& par_iei, + const OCTETSTRING& par_iel, + const PacketCounterValueList& par_counterValue); +inline NR__SidelinkCounter& operator=(const NR__SidelinkCounter& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NR__SidelinkCounter& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NR__SidelinkCounter& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& iei() + {return field_iei;} + inline const OCTETSTRING& iei() const + {return field_iei;} + inline OCTETSTRING& iel() + {return field_iel;} + inline const OCTETSTRING& iel() const + {return field_iel;} + inline PacketCounterValueList& counterValue() + {return field_counterValue;} + inline const PacketCounterValueList& counterValue() const + {return field_counterValue;} +Base_Type* clone() const { return new NR__SidelinkCounter(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NR__SidelinkCounter_template : public Record_Template { +void set_specific(); +public: +NR__SidelinkCounter_template(): Record_Template() {} +NR__SidelinkCounter_template(template_sel other_value): Record_Template(other_value) {} +NR__SidelinkCounter_template(const NR__SidelinkCounter& other_value): Record_Template() { copy_value(&other_value); } +NR__SidelinkCounter_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NR__SidelinkCounter_template(NR__SidelinkCounter_template* p_precondition, NR__SidelinkCounter_template* p_implied_template); +NR__SidelinkCounter_template(Dynamic_Match_Interface* p_dyn_match); +NR__SidelinkCounter_template(const NR__SidelinkCounter_template& other_value): Record_Template() { copy_template(other_value); } +~NR__SidelinkCounter_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NR__SidelinkCounter_template& operator=(template_sel other_value); +NR__SidelinkCounter_template& operator=(const NR__SidelinkCounter& other_value); +NR__SidelinkCounter_template& operator=(const OPTIONAL& other_value); +NR__SidelinkCounter_template& operator=(const NR__SidelinkCounter_template& other_value); +inline boolean match(const NR__SidelinkCounter& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NR__SidelinkCounter& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NR__SidelinkCounter valueof() const; +inline NR__SidelinkCounter_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& iei(); +const OCTETSTRING_template& iei() const; +OCTETSTRING_template& iel(); +const OCTETSTRING_template& iel() const; +PacketCounterValueList_template& counterValue(); +const PacketCounterValueList_template& counterValue() const; +Record_Template* create() const { return new NR__SidelinkCounter_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + OPTIONAL field_pscch; + OPTIONAL field_stch; + OPTIONAL field_pssch; + Base_Type* fld_vec[6]; + void init_vec(); +public: + UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE(); + UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& other_value); + UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const OPTIONAL& par_pscch, + const OPTIONAL& par_stch, + const OPTIONAL& par_pssch); +inline UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline OPTIONAL& pscch() + {return field_pscch;} + inline const OPTIONAL& pscch() const + {return field_pscch;} + inline OPTIONAL& stch() + {return field_stch;} + inline const OPTIONAL& stch() const + {return field_stch;} + inline OPTIONAL& pssch() + {return field_pssch;} + inline const OPTIONAL& pssch() const + {return field_pssch;} +Base_Type* clone() const { return new UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 6; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template : public Record_Template { +void set_specific(); +public: +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(): Record_Template() {} +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template* p_precondition, UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template* p_implied_template); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& operator=(template_sel other_value); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& other_value); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& operator=(const OPTIONAL& other_value); +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& operator=(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& other_value); +inline boolean match(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE valueof() const; +inline UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +NR__SidelinkCounter_template& pscch(); +const NR__SidelinkCounter_template& pscch() const; +NR__SidelinkCounter_template& stch(); +const NR__SidelinkCounter_template& stch() const; +NR__SidelinkCounter_template& pssch(); +const NR__SidelinkCounter_template& pssch() const; +Record_Template* create() const { return new UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class S1ToN1TransparentContainer : public Record_Type { + OPTIONAL field_mac; + BITSTRING field_ciphAlg; + BITSTRING field_intAlg; + BITSTRING field_spareBit; + BITSTRING field_ncc; + BITSTRING field_tsc; + BITSTRING field_ksi5G; + OCTETSTRING field_spare; + Base_Type* fld_vec[8]; + void init_vec(); +public: + S1ToN1TransparentContainer(); + S1ToN1TransparentContainer(const S1ToN1TransparentContainer& other_value); + S1ToN1TransparentContainer(const OPTIONAL& par_mac, + const BITSTRING& par_ciphAlg, + const BITSTRING& par_intAlg, + const BITSTRING& par_spareBit, + const BITSTRING& par_ncc, + const BITSTRING& par_tsc, + const BITSTRING& par_ksi5G, + const OCTETSTRING& par_spare); +inline S1ToN1TransparentContainer& operator=(const S1ToN1TransparentContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const S1ToN1TransparentContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const S1ToN1TransparentContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& mac() + {return field_mac;} + inline const OPTIONAL& mac() const + {return field_mac;} + inline BITSTRING& ciphAlg() + {return field_ciphAlg;} + inline const BITSTRING& ciphAlg() const + {return field_ciphAlg;} + inline BITSTRING& intAlg() + {return field_intAlg;} + inline const BITSTRING& intAlg() const + {return field_intAlg;} + inline BITSTRING& spareBit() + {return field_spareBit;} + inline const BITSTRING& spareBit() const + {return field_spareBit;} + inline BITSTRING& ncc() + {return field_ncc;} + inline const BITSTRING& ncc() const + {return field_ncc;} + inline BITSTRING& tsc() + {return field_tsc;} + inline const BITSTRING& tsc() const + {return field_tsc;} + inline BITSTRING& ksi5G() + {return field_ksi5G;} + inline const BITSTRING& ksi5G() const + {return field_ksi5G;} + inline OCTETSTRING& spare() + {return field_spare;} + inline const OCTETSTRING& spare() const + {return field_spare;} +Base_Type* clone() const { return new S1ToN1TransparentContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class S1ToN1TransparentContainer_template : public Record_Template { +void set_specific(); +public: +S1ToN1TransparentContainer_template(): Record_Template() {} +S1ToN1TransparentContainer_template(template_sel other_value): Record_Template(other_value) {} +S1ToN1TransparentContainer_template(const S1ToN1TransparentContainer& other_value): Record_Template() { copy_value(&other_value); } +S1ToN1TransparentContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +S1ToN1TransparentContainer_template(S1ToN1TransparentContainer_template* p_precondition, S1ToN1TransparentContainer_template* p_implied_template); +S1ToN1TransparentContainer_template(Dynamic_Match_Interface* p_dyn_match); +S1ToN1TransparentContainer_template(const S1ToN1TransparentContainer_template& other_value): Record_Template() { copy_template(other_value); } +~S1ToN1TransparentContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +S1ToN1TransparentContainer_template& operator=(template_sel other_value); +S1ToN1TransparentContainer_template& operator=(const S1ToN1TransparentContainer& other_value); +S1ToN1TransparentContainer_template& operator=(const OPTIONAL& other_value); +S1ToN1TransparentContainer_template& operator=(const S1ToN1TransparentContainer_template& other_value); +inline boolean match(const S1ToN1TransparentContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const S1ToN1TransparentContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +S1ToN1TransparentContainer valueof() const; +inline S1ToN1TransparentContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& mac(); +const OCTETSTRING_template& mac() const; +BITSTRING_template& ciphAlg(); +const BITSTRING_template& ciphAlg() const; +BITSTRING_template& intAlg(); +const BITSTRING_template& intAlg() const; +BITSTRING_template& spareBit(); +const BITSTRING_template& spareBit() const; +BITSTRING_template& ncc(); +const BITSTRING_template& ncc() const; +BITSTRING_template& tsc(); +const BITSTRING_template& tsc() const; +BITSTRING_template& ksi5G(); +const BITSTRING_template& ksi5G() const; +OCTETSTRING_template& spare(); +const OCTETSTRING_template& spare() const; +Record_Template* create() const { return new S1ToN1TransparentContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class IntraN1TransparentContainer : public Record_Type { + OPTIONAL field_mac; + BITSTRING field_ciphAlg; + BITSTRING field_intAlg; + BITSTRING field_spareBits; + BITSTRING field_kacf; + BITSTRING field_tsc; + BITSTRING field_ksi5G; + OCTETSTRING field_sequenceNum; + Base_Type* fld_vec[8]; + void init_vec(); +public: + IntraN1TransparentContainer(); + IntraN1TransparentContainer(const IntraN1TransparentContainer& other_value); + IntraN1TransparentContainer(const OPTIONAL& par_mac, + const BITSTRING& par_ciphAlg, + const BITSTRING& par_intAlg, + const BITSTRING& par_spareBits, + const BITSTRING& par_kacf, + const BITSTRING& par_tsc, + const BITSTRING& par_ksi5G, + const OCTETSTRING& par_sequenceNum); +inline IntraN1TransparentContainer& operator=(const IntraN1TransparentContainer& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const IntraN1TransparentContainer& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const IntraN1TransparentContainer& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& mac() + {return field_mac;} + inline const OPTIONAL& mac() const + {return field_mac;} + inline BITSTRING& ciphAlg() + {return field_ciphAlg;} + inline const BITSTRING& ciphAlg() const + {return field_ciphAlg;} + inline BITSTRING& intAlg() + {return field_intAlg;} + inline const BITSTRING& intAlg() const + {return field_intAlg;} + inline BITSTRING& spareBits() + {return field_spareBits;} + inline const BITSTRING& spareBits() const + {return field_spareBits;} + inline BITSTRING& kacf() + {return field_kacf;} + inline const BITSTRING& kacf() const + {return field_kacf;} + inline BITSTRING& tsc() + {return field_tsc;} + inline const BITSTRING& tsc() const + {return field_tsc;} + inline BITSTRING& ksi5G() + {return field_ksi5G;} + inline const BITSTRING& ksi5G() const + {return field_ksi5G;} + inline OCTETSTRING& sequenceNum() + {return field_sequenceNum;} + inline const OCTETSTRING& sequenceNum() const + {return field_sequenceNum;} +Base_Type* clone() const { return new IntraN1TransparentContainer(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 8; } +int optional_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class IntraN1TransparentContainer_template : public Record_Template { +void set_specific(); +public: +IntraN1TransparentContainer_template(): Record_Template() {} +IntraN1TransparentContainer_template(template_sel other_value): Record_Template(other_value) {} +IntraN1TransparentContainer_template(const IntraN1TransparentContainer& other_value): Record_Template() { copy_value(&other_value); } +IntraN1TransparentContainer_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +IntraN1TransparentContainer_template(IntraN1TransparentContainer_template* p_precondition, IntraN1TransparentContainer_template* p_implied_template); +IntraN1TransparentContainer_template(Dynamic_Match_Interface* p_dyn_match); +IntraN1TransparentContainer_template(const IntraN1TransparentContainer_template& other_value): Record_Template() { copy_template(other_value); } +~IntraN1TransparentContainer_template(); +boolean match_dynamic(const Base_Type* match_value) const; +IntraN1TransparentContainer_template& operator=(template_sel other_value); +IntraN1TransparentContainer_template& operator=(const IntraN1TransparentContainer& other_value); +IntraN1TransparentContainer_template& operator=(const OPTIONAL& other_value); +IntraN1TransparentContainer_template& operator=(const IntraN1TransparentContainer_template& other_value); +inline boolean match(const IntraN1TransparentContainer& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const IntraN1TransparentContainer& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +IntraN1TransparentContainer valueof() const; +inline IntraN1TransparentContainer_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& mac(); +const OCTETSTRING_template& mac() const; +BITSTRING_template& ciphAlg(); +const BITSTRING_template& ciphAlg() const; +BITSTRING_template& intAlg(); +const BITSTRING_template& intAlg() const; +BITSTRING_template& spareBits(); +const BITSTRING_template& spareBits() const; +BITSTRING_template& kacf(); +const BITSTRING_template& kacf() const; +BITSTRING_template& tsc(); +const BITSTRING_template& tsc() const; +BITSTRING_template& ksi5G(); +const BITSTRING_template& ksi5G() const; +OCTETSTRING_template& sequenceNum(); +const OCTETSTRING_template& sequenceNum() const; +Record_Template* create() const { return new IntraN1TransparentContainer_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SET__UAI__REQUEST : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + BITSTRING field_spare; + BITSTRING field_preferredRRCState; + Base_Type* fld_vec[5]; + void init_vec(); +public: + SET__UAI__REQUEST(); + SET__UAI__REQUEST(const SET__UAI__REQUEST& other_value); + SET__UAI__REQUEST(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType, + const BITSTRING& par_spare, + const BITSTRING& par_preferredRRCState); +inline SET__UAI__REQUEST& operator=(const SET__UAI__REQUEST& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SET__UAI__REQUEST& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SET__UAI__REQUEST& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} + inline BITSTRING& spare() + {return field_spare;} + inline const BITSTRING& spare() const + {return field_spare;} + inline BITSTRING& preferredRRCState() + {return field_preferredRRCState;} + inline const BITSTRING& preferredRRCState() const + {return field_preferredRRCState;} +Base_Type* clone() const { return new SET__UAI__REQUEST(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 5; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SET__UAI__REQUEST_template : public Record_Template { +void set_specific(); +public: +SET__UAI__REQUEST_template(): Record_Template() {} +SET__UAI__REQUEST_template(template_sel other_value): Record_Template(other_value) {} +SET__UAI__REQUEST_template(const SET__UAI__REQUEST& other_value): Record_Template() { copy_value(&other_value); } +SET__UAI__REQUEST_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SET__UAI__REQUEST_template(SET__UAI__REQUEST_template* p_precondition, SET__UAI__REQUEST_template* p_implied_template); +SET__UAI__REQUEST_template(Dynamic_Match_Interface* p_dyn_match); +SET__UAI__REQUEST_template(const SET__UAI__REQUEST_template& other_value): Record_Template() { copy_template(other_value); } +~SET__UAI__REQUEST_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SET__UAI__REQUEST_template& operator=(template_sel other_value); +SET__UAI__REQUEST_template& operator=(const SET__UAI__REQUEST& other_value); +SET__UAI__REQUEST_template& operator=(const OPTIONAL& other_value); +SET__UAI__REQUEST_template& operator=(const SET__UAI__REQUEST_template& other_value); +inline boolean match(const SET__UAI__REQUEST& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SET__UAI__REQUEST& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SET__UAI__REQUEST valueof() const; +inline SET__UAI__REQUEST_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +BITSTRING_template& spare(); +const BITSTRING_template& spare() const; +BITSTRING_template& preferredRRCState(); +const BITSTRING_template& preferredRRCState() const; +Record_Template* create() const { return new SET__UAI__REQUEST_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class SET__UAI__RESPONSE : public Record_Type { + BITSTRING field_skipIndicator; + BITSTRING field_protocolDiscriminator; + BITSTRING field_messageType; + Base_Type* fld_vec[3]; + void init_vec(); +public: + SET__UAI__RESPONSE(); + SET__UAI__RESPONSE(const SET__UAI__RESPONSE& other_value); + SET__UAI__RESPONSE(const BITSTRING& par_skipIndicator, + const BITSTRING& par_protocolDiscriminator, + const BITSTRING& par_messageType); +inline SET__UAI__RESPONSE& operator=(const SET__UAI__RESPONSE& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const SET__UAI__RESPONSE& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const SET__UAI__RESPONSE& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& skipIndicator() + {return field_skipIndicator;} + inline const BITSTRING& skipIndicator() const + {return field_skipIndicator;} + inline BITSTRING& protocolDiscriminator() + {return field_protocolDiscriminator;} + inline const BITSTRING& protocolDiscriminator() const + {return field_protocolDiscriminator;} + inline BITSTRING& messageType() + {return field_messageType;} + inline const BITSTRING& messageType() const + {return field_messageType;} +Base_Type* clone() const { return new SET__UAI__RESPONSE(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class SET__UAI__RESPONSE_template : public Record_Template { +void set_specific(); +public: +SET__UAI__RESPONSE_template(): Record_Template() {} +SET__UAI__RESPONSE_template(template_sel other_value): Record_Template(other_value) {} +SET__UAI__RESPONSE_template(const SET__UAI__RESPONSE& other_value): Record_Template() { copy_value(&other_value); } +SET__UAI__RESPONSE_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +SET__UAI__RESPONSE_template(SET__UAI__RESPONSE_template* p_precondition, SET__UAI__RESPONSE_template* p_implied_template); +SET__UAI__RESPONSE_template(Dynamic_Match_Interface* p_dyn_match); +SET__UAI__RESPONSE_template(const SET__UAI__RESPONSE_template& other_value): Record_Template() { copy_template(other_value); } +~SET__UAI__RESPONSE_template(); +boolean match_dynamic(const Base_Type* match_value) const; +SET__UAI__RESPONSE_template& operator=(template_sel other_value); +SET__UAI__RESPONSE_template& operator=(const SET__UAI__RESPONSE& other_value); +SET__UAI__RESPONSE_template& operator=(const OPTIONAL& other_value); +SET__UAI__RESPONSE_template& operator=(const SET__UAI__RESPONSE_template& other_value); +inline boolean match(const SET__UAI__RESPONSE& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const SET__UAI__RESPONSE& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +SET__UAI__RESPONSE valueof() const; +inline SET__UAI__RESPONSE_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& skipIndicator(); +const BITSTRING_template& skipIndicator() const; +BITSTRING_template& protocolDiscriminator(); +const BITSTRING_template& protocolDiscriminator() const; +BITSTRING_template& messageType(); +const BITSTRING_template& messageType() const; +Record_Template* create() const { return new SET__UAI__RESPONSE_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_NG_NAS_TypeDefs(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_NG_NAS_TypeDefs(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern S__NSSAI__TypeList_template operator+(template_sel left_template, const S__NSSAI__TypeList_template& right_template); +extern S__NSSAI__TypeList_template operator+(template_sel left_template, const S__NSSAI__TypeList& right_value); +extern S__NSSAI__TypeList_template operator+(const S__NSSAI__TypeList& left_value, template_sel right_template); +extern MappedNSSAI_s__NSSAI_template operator+(template_sel left_template, const MappedNSSAI_s__NSSAI_template& right_template); +extern MappedNSSAI_s__NSSAI_template operator+(template_sel left_template, const MappedNSSAI_s__NSSAI& right_value); +extern MappedNSSAI_s__NSSAI_template operator+(const MappedNSSAI_s__NSSAI& left_value, template_sel right_template); +extern ServiceLvlAAParamList_template operator+(template_sel left_template, const ServiceLvlAAParamList_template& right_template); +extern ServiceLvlAAParamList_template operator+(template_sel left_template, const ServiceLvlAAParamList& right_value); +extern ServiceLvlAAParamList_template operator+(const ServiceLvlAAParamList& left_value, template_sel right_template); +extern PEIPS__AssistIEList_template operator+(template_sel left_template, const PEIPS__AssistIEList_template& right_template); +extern PEIPS__AssistIEList_template operator+(template_sel left_template, const PEIPS__AssistIEList& right_value); +extern PEIPS__AssistIEList_template operator+(const PEIPS__AssistIEList& left_value, template_sel right_template); +extern NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(template_sel left_template, const NG__TrackingAreaIdList__LV_listOfPartialTais_template& right_template); +extern NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(template_sel left_template, const NG__TrackingAreaIdList__LV_listOfPartialTais& right_value); +extern NG__TrackingAreaIdList__LV_listOfPartialTais_template operator+(const NG__TrackingAreaIdList__LV_listOfPartialTais& left_value, template_sel right_template); +extern NG__Type0List_template operator+(template_sel left_template, const NG__Type0List_template& right_template); +extern NG__Type0List_template operator+(template_sel left_template, const NG__Type0List& right_value); +extern NG__Type0List_template operator+(const NG__Type0List& left_value, template_sel right_template); +extern NG__Type1List_template operator+(template_sel left_template, const NG__Type1List_template& right_template); +extern NG__Type1List_template operator+(template_sel left_template, const NG__Type1List& right_value); +extern NG__Type1List_template operator+(const NG__Type1List& left_value, template_sel right_template); +extern NG__Type2List_template operator+(template_sel left_template, const NG__Type2List_template& right_template); +extern NG__Type2List_template operator+(template_sel left_template, const NG__Type2List& right_value); +extern NG__Type2List_template operator+(const NG__Type2List& left_value, template_sel right_template); +extern NG__PlmnAndTacs_template operator+(template_sel left_template, const NG__PlmnAndTacs_template& right_template); +extern NG__PlmnAndTacs_template operator+(template_sel left_template, const NG__PlmnAndTacs& right_value); +extern NG__PlmnAndTacs_template operator+(const NG__PlmnAndTacs& left_value, template_sel right_template); +extern RejectedNSSAI_rejectS__NSSAI_template operator+(template_sel left_template, const RejectedNSSAI_rejectS__NSSAI_template& right_template); +extern RejectedNSSAI_rejectS__NSSAI_template operator+(template_sel left_template, const RejectedNSSAI_rejectS__NSSAI& right_value); +extern RejectedNSSAI_rejectS__NSSAI_template operator+(const RejectedNSSAI_rejectS__NSSAI& left_value, template_sel right_template); +extern PDU__SessionReactivationError_errorCause_template operator+(template_sel left_template, const PDU__SessionReactivationError_errorCause_template& right_template); +extern PDU__SessionReactivationError_errorCause_template operator+(template_sel left_template, const PDU__SessionReactivationError_errorCause& right_value); +extern PDU__SessionReactivationError_errorCause_template operator+(const PDU__SessionReactivationError_errorCause& left_value, template_sel right_template); +extern LADN__Info_listOfLADN_template operator+(template_sel left_template, const LADN__Info_listOfLADN_template& right_template); +extern LADN__Info_listOfLADN_template operator+(template_sel left_template, const LADN__Info_listOfLADN& right_value); +extern LADN__Info_listOfLADN_template operator+(const LADN__Info_listOfLADN& left_value, template_sel right_template); +extern ListOfLADN_listOfPartialTais_template operator+(template_sel left_template, const ListOfLADN_listOfPartialTais_template& right_template); +extern ListOfLADN_listOfPartialTais_template operator+(template_sel left_template, const ListOfLADN_listOfPartialTais& right_value); +extern ListOfLADN_listOfPartialTais_template operator+(const ListOfLADN_listOfPartialTais& left_value, template_sel right_template); +extern OperatorAccessCatDefinitions_definitions_template operator+(template_sel left_template, const OperatorAccessCatDefinitions_definitions_template& right_template); +extern OperatorAccessCatDefinitions_definitions_template operator+(template_sel left_template, const OperatorAccessCatDefinitions_definitions& right_value); +extern OperatorAccessCatDefinitions_definitions_template operator+(const OperatorAccessCatDefinitions_definitions& left_value, template_sel right_template); +extern NG__CipheringKeyData_listOfCipherKeyData_template operator+(template_sel left_template, const NG__CipheringKeyData_listOfCipherKeyData_template& right_template); +extern NG__CipheringKeyData_listOfCipherKeyData_template operator+(template_sel left_template, const NG__CipheringKeyData_listOfCipherKeyData& right_value); +extern NG__CipheringKeyData_listOfCipherKeyData_template operator+(const NG__CipheringKeyData_listOfCipherKeyData& left_value, template_sel right_template); +extern NG__CipherDataSet_listOfPartialTais_template operator+(template_sel left_template, const NG__CipherDataSet_listOfPartialTais_template& right_template); +extern NG__CipherDataSet_listOfPartialTais_template operator+(template_sel left_template, const NG__CipherDataSet_listOfPartialTais& right_value); +extern NG__CipherDataSet_listOfPartialTais_template operator+(const NG__CipherDataSet_listOfPartialTais& left_value, template_sel right_template); +extern CAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const CAGInfoList_listOfCAGInfos_template& right_template); +extern CAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const CAGInfoList_listOfCAGInfos& right_value); +extern CAGInfoList_listOfCAGInfos_template operator+(const CAGInfoList_listOfCAGInfos& left_value, template_sel right_template); +extern PartialXtdRejectedNSSAI__List_template operator+(template_sel left_template, const PartialXtdRejectedNSSAI__List_template& right_template); +extern PartialXtdRejectedNSSAI__List_template operator+(template_sel left_template, const PartialXtdRejectedNSSAI__List& right_value); +extern PartialXtdRejectedNSSAI__List_template operator+(const PartialXtdRejectedNSSAI__List& left_value, template_sel right_template); +extern PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(template_sel left_template, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template& right_template); +extern PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(template_sel left_template, const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& right_value); +extern PartialXtdRejectedNSSAIType0_rejectS__NSSAI_template operator+(const PartialXtdRejectedNSSAIType0_rejectS__NSSAI& left_value, template_sel right_template); +extern XtdRejectedS__NSSAI__List_template operator+(template_sel left_template, const XtdRejectedS__NSSAI__List_template& right_template); +extern XtdRejectedS__NSSAI__List_template operator+(template_sel left_template, const XtdRejectedS__NSSAI__List& right_value); +extern XtdRejectedS__NSSAI__List_template operator+(const XtdRejectedS__NSSAI__List& left_value, template_sel right_template); +extern NSSRG__ValueList_template operator+(template_sel left_template, const NSSRG__ValueList_template& right_template); +extern NSSRG__ValueList_template operator+(template_sel left_template, const NSSRG__ValueList& right_value); +extern NSSRG__ValueList_template operator+(const NSSRG__ValueList& left_value, template_sel right_template); +extern ExtdCAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const ExtdCAGInfoList_listOfCAGInfos_template& right_template); +extern ExtdCAGInfoList_listOfCAGInfos_template operator+(template_sel left_template, const ExtdCAGInfoList_listOfCAGInfos& right_value); +extern ExtdCAGInfoList_listOfCAGInfos_template operator+(const ExtdCAGInfoList_listOfCAGInfos& left_value, template_sel right_template); +extern NSAG__Info_nsagList_template operator+(template_sel left_template, const NSAG__Info_nsagList_template& right_template); +extern NSAG__Info_nsagList_template operator+(template_sel left_template, const NSAG__Info_nsagList& right_value); +extern NSAG__Info_nsagList_template operator+(const NSAG__Info_nsagList& left_value, template_sel right_template); +extern RequestedMBSContainer_sessionInfo_template operator+(template_sel left_template, const RequestedMBSContainer_sessionInfo_template& right_template); +extern RequestedMBSContainer_sessionInfo_template operator+(template_sel left_template, const RequestedMBSContainer_sessionInfo& right_value); +extern RequestedMBSContainer_sessionInfo_template operator+(const RequestedMBSContainer_sessionInfo& left_value, template_sel right_template); +extern QoS__RuleList_template operator+(template_sel left_template, const QoS__RuleList_template& right_template); +extern QoS__RuleList_template operator+(template_sel left_template, const QoS__RuleList& right_value); +extern QoS__RuleList_template operator+(const QoS__RuleList& left_value, template_sel right_template); +extern NG__PacketFilterList__Type1_template operator+(template_sel left_template, const NG__PacketFilterList__Type1_template& right_template); +extern NG__PacketFilterList__Type1_template operator+(template_sel left_template, const NG__PacketFilterList__Type1& right_value); +extern NG__PacketFilterList__Type1_template operator+(const NG__PacketFilterList__Type1& left_value, template_sel right_template); +extern NG__PacketFilterList__Type2_template operator+(template_sel left_template, const NG__PacketFilterList__Type2_template& right_template); +extern NG__PacketFilterList__Type2_template operator+(template_sel left_template, const NG__PacketFilterList__Type2& right_value); +extern NG__PacketFilterList__Type2_template operator+(const NG__PacketFilterList__Type2& left_value, template_sel right_template); +extern MappedEPSBearerContexts_mappedContextList_template operator+(template_sel left_template, const MappedEPSBearerContexts_mappedContextList_template& right_template); +extern MappedEPSBearerContexts_mappedContextList_template operator+(template_sel left_template, const MappedEPSBearerContexts_mappedContextList& right_value); +extern MappedEPSBearerContexts_mappedContextList_template operator+(const MappedEPSBearerContexts_mappedContextList& left_value, template_sel right_template); +extern MappedEPSContext_epsParamsList_template operator+(template_sel left_template, const MappedEPSContext_epsParamsList_template& right_template); +extern MappedEPSContext_epsParamsList_template operator+(template_sel left_template, const MappedEPSContext_epsParamsList& right_value); +extern MappedEPSContext_epsParamsList_template operator+(const MappedEPSContext_epsParamsList& left_value, template_sel right_template); +extern QoSFlowDescr_listofFlows_template operator+(template_sel left_template, const QoSFlowDescr_listofFlows_template& right_template); +extern QoSFlowDescr_listofFlows_template operator+(template_sel left_template, const QoSFlowDescr_listofFlows& right_value); +extern QoSFlowDescr_listofFlows_template operator+(const QoSFlowDescr_listofFlows& left_value, template_sel right_template); +extern QoS__Flow_parameterList_template operator+(template_sel left_template, const QoS__Flow_parameterList_template& right_template); +extern QoS__Flow_parameterList_template operator+(template_sel left_template, const QoS__Flow_parameterList& right_value); +extern QoS__Flow_parameterList_template operator+(const QoS__Flow_parameterList& left_value, template_sel right_template); +extern ReceivedMBSContainer_info_template operator+(template_sel left_template, const ReceivedMBSContainer_info_template& right_template); +extern ReceivedMBSContainer_info_template operator+(template_sel left_template, const ReceivedMBSContainer_info& right_value); +extern ReceivedMBSContainer_info_template operator+(const ReceivedMBSContainer_info& left_value, template_sel right_template); +extern NR__CGI__List_nrCGI_template operator+(template_sel left_template, const NR__CGI__List_nrCGI_template& right_template); +extern NR__CGI__List_nrCGI_template operator+(template_sel left_template, const NR__CGI__List_nrCGI& right_value); +extern NR__CGI__List_nrCGI_template operator+(const NR__CGI__List_nrCGI& left_value, template_sel right_template); +extern QoS__FlowList_template operator+(template_sel left_template, const QoS__FlowList_template& right_template); +extern QoS__FlowList_template operator+(template_sel left_template, const QoS__FlowList& right_value); +extern QoS__FlowList_template operator+(const QoS__FlowList& left_value, template_sel right_template); +extern UPU__ParamList_template operator+(template_sel left_template, const UPU__ParamList_template& right_template); +extern UPU__ParamList_template operator+(template_sel left_template, const UPU__ParamList& right_value); +extern UPU__ParamList_template operator+(const UPU__ParamList& left_value, template_sel right_template); + +/* Global variable declarations */ + +extern const TTCN_Typedescriptor_t NAS__5GC__AKA__Type_descr_; +extern const XERdescriptor_t ExtdProtocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t ExtdProtocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t ExtdProtocolDiscriminator_descr_; +extern const XERdescriptor_t NG__NAS__Message_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__Message_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__Message_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_messageType_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__REQUEST_spareHalfOctet2_xer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_spareHalfOctet2_descr_; +extern const XERdescriptor_t ABBA_abbaValue_xer_; +extern const TTCN_OERdescriptor_t ABBA_abbaValue_oer_; +extern const TTCN_Typedescriptor_t ABBA_abbaValue_descr_; +extern const TTCN_Typedescriptor_t ABBA_descr_; +extern const XERdescriptor_t ABBA_iei_xer_; +extern const TTCN_OERdescriptor_t ABBA_iei_oer_; +extern const TTCN_Typedescriptor_t ABBA_iei_descr_; +extern const XERdescriptor_t ABBA_iel_xer_; +extern const TTCN_OERdescriptor_t ABBA_iel_oer_; +extern const TTCN_Typedescriptor_t ABBA_iel_descr_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REQUEST_descr_; +extern const XERdescriptor_t EAP__Message_eapMsg_xer_; +extern const TTCN_OERdescriptor_t EAP__Message_eapMsg_oer_; +extern const TTCN_Typedescriptor_t EAP__Message_eapMsg_descr_; +extern const TTCN_Typedescriptor_t EAP__Message_descr_; +extern const XERdescriptor_t EAP__Message_iei_xer_; +extern const TTCN_OERdescriptor_t EAP__Message_iei_oer_; +extern const TTCN_Typedescriptor_t EAP__Message_iei_descr_; +extern const XERdescriptor_t EAP__Message_iel_xer_; +extern const TTCN_OERdescriptor_t EAP__Message_iel_oer_; +extern const TTCN_Typedescriptor_t EAP__Message_iel_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__RESPONSE_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__RESPONSE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESPONSE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_securityHeaderType_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESPONSE_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__RESULT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESULT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__RESULT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__RESULT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESULT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__RESULT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__RESULT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_messageType_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__RESULT_spareHalfOctet2_xer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_spareHalfOctet2_descr_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__RESULT_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__FAILURE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__FAILURE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__FAILURE_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__FAILURE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__FAILURE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_securityHeaderType_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__FAILURE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__FAILURE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_messageType_descr_; +extern const XERdescriptor_t GMM__GSM__Cause_causeValue_xer_; +extern const TTCN_OERdescriptor_t GMM__GSM__Cause_causeValue_oer_; +extern const TTCN_Typedescriptor_t GMM__GSM__Cause_causeValue_descr_; +extern const TTCN_Typedescriptor_t GMM__GSM__Cause_descr_; +extern const XERdescriptor_t GMM__GSM__Cause_iei_xer_; +extern const TTCN_OERdescriptor_t GMM__GSM__Cause_iei_oer_; +extern const TTCN_Typedescriptor_t GMM__GSM__Cause_iei_descr_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__FAILURE_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__REJECT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__REJECT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__REJECT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__AUTHENTICATION__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__AUTHENTICATION__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__AUTHENTICATION__REJECT_descr_; +extern const XERdescriptor_t NG__REGISTRATION__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__REGISTRATION__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__REGISTRATION__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t NG__REGISTRATION__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_messageType_descr_; +extern const XERdescriptor_t RegistrationType_fOR_xer_; +extern const TTCN_OERdescriptor_t RegistrationType_fOR_oer_; +extern const TTCN_Typedescriptor_t RegistrationType_fOR_descr_; +extern const XERdescriptor_t RegistrationType_registrationType_xer_; +extern const TTCN_OERdescriptor_t RegistrationType_registrationType_oer_; +extern const TTCN_Typedescriptor_t RegistrationType_registrationType_descr_; +extern const TTCN_Typedescriptor_t RegistrationType_descr_; +extern const XERdescriptor_t NG__MobileIdentity_iel_xer_; +extern const TTCN_OERdescriptor_t NG__MobileIdentity_iel_oer_; +extern const TTCN_Typedescriptor_t NG__MobileIdentity_iel_descr_; +extern const XERdescriptor_t NG__MobileIdentity_idDigit1_xer_; +extern const TTCN_OERdescriptor_t NG__MobileIdentity_idDigit1_oer_; +extern const TTCN_Typedescriptor_t NG__MobileIdentity_idDigit1_descr_; +extern const XERdescriptor_t NG__MobileIdentity_oddEvenInd_xer_; +extern const TTCN_OERdescriptor_t NG__MobileIdentity_oddEvenInd_oer_; +extern const TTCN_Typedescriptor_t NG__MobileIdentity_oddEvenInd_descr_; +extern const XERdescriptor_t NG__MobileIdentity_typeOfId_xer_; +extern const TTCN_OERdescriptor_t NG__MobileIdentity_typeOfId_oer_; +extern const TTCN_Typedescriptor_t NG__MobileIdentity_typeOfId_descr_; +extern const TTCN_Typedescriptor_t NG__MobileIdentity_descr_; +extern const XERdescriptor_t NG__MobileIdentity_iei_xer_; +extern const TTCN_OERdescriptor_t NG__MobileIdentity_iei_oer_; +extern const TTCN_Typedescriptor_t NG__MobileIdentity_iei_descr_; +extern const XERdescriptor_t NG__MobileIdentity_otherDigits_xer_; +extern const TTCN_OERdescriptor_t NG__MobileIdentity_otherDigits_oer_; +extern const TTCN_Typedescriptor_t NG__MobileIdentity_otherDigits_descr_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REQUEST_descr_; +extern const XERdescriptor_t NG__GMM__Cap_sgc_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_sgc_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_sgc_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngIPHC__CP__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngIPHC__CP__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngIPHC__CP__CIoT_descr_; +extern const XERdescriptor_t NG__GMM__Cap_n3Data_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_n3Data_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_n3Data_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ng__CP__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ng__CP__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ng__CP__CIoT_descr_; +extern const XERdescriptor_t NG__GMM__Cap_restrictEC_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_restrictEC_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_restrictEC_descr_; +extern const XERdescriptor_t NG__GMM__Cap_lpp_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_lpp_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_lpp_descr_; +extern const XERdescriptor_t NG__GMM__Cap_hoAttach_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_hoAttach_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_hoAttach_descr_; +extern const XERdescriptor_t NG__GMM__Cap_s1Cap_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_s1Cap_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_s1Cap_descr_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_descr_; +extern const XERdescriptor_t NG__GMM__Cap_iei_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_iei_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_iei_descr_; +extern const XERdescriptor_t NG__GMM__Cap_iel_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_iel_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_iel_descr_; +extern const XERdescriptor_t NG__GMM__Cap_racs_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_racs_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_racs_descr_; +extern const XERdescriptor_t NG__GMM__Cap_nssaa_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_nssaa_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_nssaa_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngLCS_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngLCS_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngLCS_descr_; +extern const XERdescriptor_t NG__GMM__Cap_v2xNPC5_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_v2xNPC5_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_v2xNPC5_descr_; +extern const XERdescriptor_t NG__GMM__Cap_v2xEPC5_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_v2xEPC5_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_v2xEPC5_descr_; +extern const XERdescriptor_t NG__GMM__Cap_v2x_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_v2x_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_v2x_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ng__UP__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ng__UP__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ng__UP__CIoT_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngSRVCC_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngSRVCC_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngSRVCC_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngProSeL2relay_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSeL2relay_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSeL2relay_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngProSe__dc_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSe__dc_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSe__dc_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngProSe__dd_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSe__dd_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSe__dd_descr_; +extern const XERdescriptor_t NG__GMM__Cap_erNSSAI_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_erNSSAI_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_erNSSAI_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngEHC__CP__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngEHC__CP__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngEHC__CP__CIoT_descr_; +extern const XERdescriptor_t NG__GMM__Cap_multipleUP_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_multipleUP_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_multipleUP_descr_; +extern const XERdescriptor_t NG__GMM__Cap_wusa_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_wusa_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_wusa_descr_; +extern const XERdescriptor_t NG__GMM__Cap_cag_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_cag_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_cag_descr_; +extern const XERdescriptor_t NG__GMM__Cap_pr_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_pr_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_pr_descr_; +extern const XERdescriptor_t NG__GMM__Cap_rpr_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_rpr_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_rpr_descr_; +extern const XERdescriptor_t NG__GMM__Cap_piv_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_piv_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_piv_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ncr_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ncr_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ncr_descr_; +extern const XERdescriptor_t NG__GMM__Cap_nrPSSI_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_nrPSSI_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_nrPSSI_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngProSeL3rmt_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSeL3rmt_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSeL3rmt_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngProSeL2rmt_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSeL2rmt_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSeL2rmt_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ngProSeL3relay_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ngProSeL3relay_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ngProSeL3relay_descr_; +extern const XERdescriptor_t NG__GMM__Cap_mpsiu_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_mpsiu_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_mpsiu_descr_; +extern const XERdescriptor_t NG__GMM__Cap_uas_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_uas_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_uas_descr_; +extern const XERdescriptor_t NG__GMM__Cap_nsag_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_nsag_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_nsag_descr_; +extern const XERdescriptor_t NG__GMM__Cap_exCAG_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_exCAG_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_exCAG_descr_; +extern const XERdescriptor_t NG__GMM__Cap_ssnpnsi_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_ssnpnsi_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_ssnpnsi_descr_; +extern const XERdescriptor_t NG__GMM__Cap_eventNotification_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_eventNotification_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_eventNotification_descr_; +extern const XERdescriptor_t NG__GMM__Cap_mint_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_mint_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_mint_descr_; +extern const XERdescriptor_t NG__GMM__Cap_nssrg_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_nssrg_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_nssrg_descr_; +extern const XERdescriptor_t NG__GMM__Cap_spareBits_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_spareBits_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_spareBits_descr_; +extern const XERdescriptor_t NG__GMM__Cap_rcman_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_rcman_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_rcman_descr_; +extern const XERdescriptor_t NG__GMM__Cap_rcmap_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_rcmap_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_rcmap_descr_; +extern const XERdescriptor_t NG__GMM__Cap_spare_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__Cap_spare_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__Cap_spare_descr_; +extern const XERdescriptor_t NG__UE__SecurityCapability_iel_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SecurityCapability_iel_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SecurityCapability_iel_descr_; +extern const XERdescriptor_t NG__UE__SecurityCapability_ngeaCap_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SecurityCapability_ngeaCap_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SecurityCapability_ngeaCap_descr_; +extern const XERdescriptor_t NG__UE__SecurityCapability_ngiaCap_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SecurityCapability_ngiaCap_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SecurityCapability_ngiaCap_descr_; +extern const TTCN_Typedescriptor_t NG__UE__SecurityCapability_descr_; +extern const XERdescriptor_t NG__UE__SecurityCapability_iei_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SecurityCapability_iei_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SecurityCapability_iei_descr_; +extern const XERdescriptor_t NG__UE__SecurityCapability_eeaCap_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SecurityCapability_eeaCap_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SecurityCapability_eeaCap_descr_; +extern const XERdescriptor_t NG__UE__SecurityCapability_eiaCap_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SecurityCapability_eiaCap_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SecurityCapability_eiaCap_descr_; +extern const XERdescriptor_t NG__UE__SecurityCapability_spare_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SecurityCapability_spare_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SecurityCapability_spare_descr_; +extern const TTCN_Typedescriptor_t S__NSSAI__TypeList_descr_; +extern const XERdescriptor_t S__NSSAI__V_sst_xer_; +extern const TTCN_OERdescriptor_t S__NSSAI__V_sst_oer_; +extern const TTCN_Typedescriptor_t S__NSSAI__V_sst_descr_; +extern const TTCN_Typedescriptor_t S__NSSAI__V_descr_; +extern const XERdescriptor_t S__NSSAI__V_sd_xer_; +extern const TTCN_OERdescriptor_t S__NSSAI__V_sd_oer_; +extern const TTCN_Typedescriptor_t S__NSSAI__V_sd_descr_; +extern const XERdescriptor_t S__NSSAI__V_mappedSST_xer_; +extern const TTCN_OERdescriptor_t S__NSSAI__V_mappedSST_oer_; +extern const TTCN_Typedescriptor_t S__NSSAI__V_mappedSST_descr_; +extern const XERdescriptor_t S__NSSAI__V_mappedSD_xer_; +extern const TTCN_OERdescriptor_t S__NSSAI__V_mappedSD_oer_; +extern const TTCN_Typedescriptor_t S__NSSAI__V_mappedSD_descr_; +extern const TTCN_Typedescriptor_t S__NSSAI__LV_descr_; +extern const XERdescriptor_t S__NSSAI__LV_iel_xer_; +extern const TTCN_OERdescriptor_t S__NSSAI__LV_iel_oer_; +extern const TTCN_Typedescriptor_t S__NSSAI__LV_iel_descr_; +extern const TTCN_Typedescriptor_t NSSAI__LV_descr_; +extern const XERdescriptor_t NSSAI__LV_iel_xer_; +extern const TTCN_OERdescriptor_t NSSAI__LV_iel_oer_; +extern const TTCN_Typedescriptor_t NSSAI__LV_iel_descr_; +extern const TTCN_Typedescriptor_t NSSAI_descr_; +extern const XERdescriptor_t NSSAI_iei_xer_; +extern const TTCN_OERdescriptor_t NSSAI_iei_oer_; +extern const TTCN_Typedescriptor_t NSSAI_iei_descr_; +extern const XERdescriptor_t NG__TrackingAreaId_plmnId_xer_; +extern const TTCN_OERdescriptor_t NG__TrackingAreaId_plmnId_oer_; +extern const TTCN_Typedescriptor_t NG__TrackingAreaId_plmnId_descr_; +extern const XERdescriptor_t NG__TrackingAreaId_tac_xer_; +extern const TTCN_OERdescriptor_t NG__TrackingAreaId_tac_oer_; +extern const TTCN_Typedescriptor_t NG__TrackingAreaId_tac_descr_; +extern const TTCN_Typedescriptor_t NG__TrackingAreaId_descr_; +extern const XERdescriptor_t NG__TrackingAreaId_iei_xer_; +extern const TTCN_OERdescriptor_t NG__TrackingAreaId_iei_oer_; +extern const TTCN_Typedescriptor_t NG__TrackingAreaId_iei_descr_; +extern const XERdescriptor_t PDU__SessionStatus_psi0__7_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionStatus_psi0__7_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionStatus_psi0__7_descr_; +extern const XERdescriptor_t PDU__SessionStatus_psi8__15_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionStatus_psi8__15_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionStatus_psi8__15_descr_; +extern const TTCN_Typedescriptor_t PDU__SessionStatus_descr_; +extern const XERdescriptor_t PDU__SessionStatus_iei_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionStatus_iei_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionStatus_iei_descr_; +extern const XERdescriptor_t PDU__SessionStatus_iel_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionStatus_iel_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionStatus_iel_descr_; +extern const XERdescriptor_t PDU__SessionStatus_spare_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionStatus_spare_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionStatus_spare_descr_; +extern const TTCN_Typedescriptor_t& ULDataStatus_descr_; +extern const XERdescriptor_t MICO__Ind_iei_xer_; +extern const TTCN_Typedescriptor_t MICO__Ind_iei_descr_; +extern const XERdescriptor_t MICO__Ind_spare_xer_; +extern const TTCN_OERdescriptor_t MICO__Ind_spare_oer_; +extern const TTCN_Typedescriptor_t MICO__Ind_spare_descr_; +extern const XERdescriptor_t MICO__Ind_sprti_xer_; +extern const TTCN_OERdescriptor_t MICO__Ind_sprti_oer_; +extern const TTCN_Typedescriptor_t MICO__Ind_sprti_descr_; +extern const XERdescriptor_t MICO__Ind_raai_xer_; +extern const TTCN_OERdescriptor_t MICO__Ind_raai_oer_; +extern const TTCN_Typedescriptor_t MICO__Ind_raai_descr_; +extern const TTCN_Typedescriptor_t MICO__Ind_descr_; +extern const TTCN_Typedescriptor_t& AllowedPDU__SessionStatus_descr_; +extern const XERdescriptor_t UE__UsageSetting_spare_xer_; +extern const TTCN_OERdescriptor_t UE__UsageSetting_spare_oer_; +extern const TTCN_Typedescriptor_t UE__UsageSetting_spare_descr_; +extern const XERdescriptor_t UE__UsageSetting_ueUsageSetting_xer_; +extern const TTCN_OERdescriptor_t UE__UsageSetting_ueUsageSetting_oer_; +extern const TTCN_Typedescriptor_t UE__UsageSetting_ueUsageSetting_descr_; +extern const TTCN_Typedescriptor_t UE__UsageSetting_descr_; +extern const XERdescriptor_t UE__UsageSetting_iei_xer_; +extern const TTCN_OERdescriptor_t UE__UsageSetting_iei_oer_; +extern const TTCN_Typedescriptor_t UE__UsageSetting_iei_descr_; +extern const XERdescriptor_t UE__UsageSetting_iel_xer_; +extern const TTCN_OERdescriptor_t UE__UsageSetting_iel_oer_; +extern const TTCN_Typedescriptor_t UE__UsageSetting_iel_descr_; +extern const TTCN_Typedescriptor_t& NG__DRXparameter_descr_; +extern const XERdescriptor_t EPS__MessageContainer_epsMsg_xer_; +extern const TTCN_OERdescriptor_t EPS__MessageContainer_epsMsg_oer_; +extern const TTCN_Typedescriptor_t EPS__MessageContainer_epsMsg_descr_; +extern const TTCN_Typedescriptor_t EPS__MessageContainer_descr_; +extern const XERdescriptor_t EPS__MessageContainer_iei_xer_; +extern const TTCN_OERdescriptor_t EPS__MessageContainer_iei_oer_; +extern const TTCN_Typedescriptor_t EPS__MessageContainer_iei_descr_; +extern const XERdescriptor_t EPS__MessageContainer_iel_xer_; +extern const TTCN_OERdescriptor_t EPS__MessageContainer_iel_oer_; +extern const TTCN_Typedescriptor_t EPS__MessageContainer_iel_descr_; +extern const XERdescriptor_t LADN__Ind_iel_xer_; +extern const TTCN_OERdescriptor_t LADN__Ind_iel_oer_; +extern const TTCN_Typedescriptor_t LADN__Ind_iel_descr_; +extern const TTCN_Typedescriptor_t LADN__Ind_descr_; +extern const XERdescriptor_t LADN__Ind_iei_xer_; +extern const TTCN_OERdescriptor_t LADN__Ind_iei_oer_; +extern const TTCN_Typedescriptor_t LADN__Ind_iei_descr_; +extern const XERdescriptor_t LADN__Ind_listOfLADN__DNNValues_xer_; +extern const TTCN_OERdescriptor_t LADN__Ind_listOfLADN__DNNValues_oer_; +extern const TTCN_Typedescriptor_t LADN__Ind_listOfLADN__DNNValues_descr_; +extern const XERdescriptor_t PayloadContainerType_container_xer_; +extern const TTCN_OERdescriptor_t PayloadContainerType_container_oer_; +extern const TTCN_Typedescriptor_t PayloadContainerType_container_descr_; +extern const TTCN_Typedescriptor_t PayloadContainerType_descr_; +extern const XERdescriptor_t PayloadContainerType_iei_xer_; +extern const TTCN_Typedescriptor_t PayloadContainerType_iei_descr_; +extern const XERdescriptor_t PayloadContainer_iel_xer_; +extern const TTCN_OERdescriptor_t PayloadContainer_iel_oer_; +extern const TTCN_Typedescriptor_t PayloadContainer_iel_descr_; +extern const XERdescriptor_t PayloadContainer_payload_xer_; +extern const TTCN_OERdescriptor_t PayloadContainer_payload_oer_; +extern const TTCN_Typedescriptor_t PayloadContainer_payload_descr_; +extern const TTCN_Typedescriptor_t PayloadContainer_descr_; +extern const XERdescriptor_t PayloadContainer_iei_xer_; +extern const TTCN_OERdescriptor_t PayloadContainer_iei_oer_; +extern const TTCN_Typedescriptor_t PayloadContainer_iei_descr_; +extern const XERdescriptor_t NetworkSlicingInd_iei_xer_; +extern const TTCN_Typedescriptor_t NetworkSlicingInd_iei_descr_; +extern const XERdescriptor_t NetworkSlicingInd_spare_xer_; +extern const TTCN_OERdescriptor_t NetworkSlicingInd_spare_oer_; +extern const TTCN_Typedescriptor_t NetworkSlicingInd_spare_descr_; +extern const XERdescriptor_t NetworkSlicingInd_dcni_xer_; +extern const TTCN_OERdescriptor_t NetworkSlicingInd_dcni_oer_; +extern const TTCN_Typedescriptor_t NetworkSlicingInd_dcni_descr_; +extern const XERdescriptor_t NetworkSlicingInd_nssci_xer_; +extern const TTCN_OERdescriptor_t NetworkSlicingInd_nssci_oer_; +extern const TTCN_Typedescriptor_t NetworkSlicingInd_nssci_descr_; +extern const TTCN_Typedescriptor_t NetworkSlicingInd_descr_; +extern const XERdescriptor_t NG__UpdateType_spare_xer_; +extern const TTCN_OERdescriptor_t NG__UpdateType_spare_oer_; +extern const TTCN_Typedescriptor_t NG__UpdateType_spare_descr_; +extern const XERdescriptor_t NG__UpdateType_eps__PNB__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__UpdateType_eps__PNB__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__UpdateType_eps__PNB__CIoT_descr_; +extern const XERdescriptor_t NG__UpdateType_ng__PNB__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__UpdateType_ng__PNB__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__UpdateType_ng__PNB__CIoT_descr_; +extern const XERdescriptor_t NG__UpdateType_ngRAN__RCU_xer_; +extern const TTCN_OERdescriptor_t NG__UpdateType_ngRAN__RCU_oer_; +extern const TTCN_Typedescriptor_t NG__UpdateType_ngRAN__RCU_descr_; +extern const XERdescriptor_t NG__UpdateType_smsRequested_xer_; +extern const TTCN_OERdescriptor_t NG__UpdateType_smsRequested_oer_; +extern const TTCN_Typedescriptor_t NG__UpdateType_smsRequested_descr_; +extern const TTCN_Typedescriptor_t NG__UpdateType_descr_; +extern const XERdescriptor_t NG__UpdateType_iei_xer_; +extern const TTCN_OERdescriptor_t NG__UpdateType_iei_oer_; +extern const TTCN_Typedescriptor_t NG__UpdateType_iei_descr_; +extern const XERdescriptor_t NG__UpdateType_iel_xer_; +extern const TTCN_OERdescriptor_t NG__UpdateType_iel_oer_; +extern const TTCN_Typedescriptor_t NG__UpdateType_iel_descr_; +extern const TTCN_Typedescriptor_t& NASMessageContainer_descr_; +extern const TTCN_Typedescriptor_t MappedNSSAI_s__NSSAI_descr_; +extern const XERdescriptor_t Mapped__S__NSSAIValue_iel_xer_; +extern const TTCN_OERdescriptor_t Mapped__S__NSSAIValue_iel_oer_; +extern const TTCN_Typedescriptor_t Mapped__S__NSSAIValue_iel_descr_; +extern const XERdescriptor_t Mapped__S__NSSAIValue_sst_xer_; +extern const TTCN_OERdescriptor_t Mapped__S__NSSAIValue_sst_oer_; +extern const TTCN_Typedescriptor_t Mapped__S__NSSAIValue_sst_descr_; +extern const TTCN_Typedescriptor_t Mapped__S__NSSAIValue_descr_; +extern const XERdescriptor_t Mapped__S__NSSAIValue_sd_xer_; +extern const TTCN_OERdescriptor_t Mapped__S__NSSAIValue_sd_oer_; +extern const TTCN_Typedescriptor_t Mapped__S__NSSAIValue_sd_descr_; +extern const TTCN_Typedescriptor_t MappedNSSAI_descr_; +extern const XERdescriptor_t MappedNSSAI_iei_xer_; +extern const TTCN_OERdescriptor_t MappedNSSAI_iei_oer_; +extern const TTCN_Typedescriptor_t MappedNSSAI_iei_descr_; +extern const XERdescriptor_t MappedNSSAI_iel_xer_; +extern const TTCN_OERdescriptor_t MappedNSSAI_iel_oer_; +extern const TTCN_Typedescriptor_t MappedNSSAI_iel_descr_; +extern const XERdescriptor_t AddInfoRequest_spareBits_xer_; +extern const TTCN_OERdescriptor_t AddInfoRequest_spareBits_oer_; +extern const TTCN_Typedescriptor_t AddInfoRequest_spareBits_descr_; +extern const XERdescriptor_t AddInfoRequest_cipherKey_xer_; +extern const TTCN_OERdescriptor_t AddInfoRequest_cipherKey_oer_; +extern const TTCN_Typedescriptor_t AddInfoRequest_cipherKey_descr_; +extern const TTCN_Typedescriptor_t AddInfoRequest_descr_; +extern const XERdescriptor_t AddInfoRequest_iei_xer_; +extern const TTCN_OERdescriptor_t AddInfoRequest_iei_oer_; +extern const TTCN_Typedescriptor_t AddInfoRequest_iei_descr_; +extern const XERdescriptor_t AddInfoRequest_iel_xer_; +extern const TTCN_OERdescriptor_t AddInfoRequest_iel_oer_; +extern const TTCN_Typedescriptor_t AddInfoRequest_iel_descr_; +extern const XERdescriptor_t N5GCInd_spare_xer_; +extern const TTCN_OERdescriptor_t N5GCInd_spare_oer_; +extern const TTCN_Typedescriptor_t N5GCInd_spare_descr_; +extern const XERdescriptor_t N5GCInd_ngReg_xer_; +extern const TTCN_OERdescriptor_t N5GCInd_ngReg_oer_; +extern const TTCN_Typedescriptor_t N5GCInd_ngReg_descr_; +extern const TTCN_Typedescriptor_t N5GCInd_descr_; +extern const XERdescriptor_t N5GCInd_iei_xer_; +extern const TTCN_Typedescriptor_t N5GCInd_iei_descr_; +extern const TTCN_Typedescriptor_t& NB__N1ModeDRXParams_descr_; +extern const XERdescriptor_t NG__PagingRestriction_iel_xer_; +extern const TTCN_OERdescriptor_t NG__PagingRestriction_iel_oer_; +extern const TTCN_Typedescriptor_t NG__PagingRestriction_iel_descr_; +extern const XERdescriptor_t NG__PagingRestriction_spareBits_xer_; +extern const TTCN_OERdescriptor_t NG__PagingRestriction_spareBits_oer_; +extern const TTCN_Typedescriptor_t NG__PagingRestriction_spareBits_descr_; +extern const XERdescriptor_t NG__PagingRestriction_typeOfRestriction_xer_; +extern const TTCN_OERdescriptor_t NG__PagingRestriction_typeOfRestriction_oer_; +extern const TTCN_Typedescriptor_t NG__PagingRestriction_typeOfRestriction_descr_; +extern const TTCN_Typedescriptor_t NG__PagingRestriction_descr_; +extern const XERdescriptor_t NG__PagingRestriction_iei_xer_; +extern const TTCN_OERdescriptor_t NG__PagingRestriction_iei_oer_; +extern const TTCN_Typedescriptor_t NG__PagingRestriction_iei_descr_; +extern const XERdescriptor_t NG__PagingRestriction_psi7__0_xer_; +extern const TTCN_OERdescriptor_t NG__PagingRestriction_psi7__0_oer_; +extern const TTCN_Typedescriptor_t NG__PagingRestriction_psi7__0_descr_; +extern const XERdescriptor_t NG__PagingRestriction_psi15__8_xer_; +extern const TTCN_OERdescriptor_t NG__PagingRestriction_psi15__8_oer_; +extern const TTCN_Typedescriptor_t NG__PagingRestriction_psi15__8_descr_; +extern const XERdescriptor_t NG__PagingRestriction_spare_xer_; +extern const TTCN_OERdescriptor_t NG__PagingRestriction_spare_oer_; +extern const TTCN_Typedescriptor_t NG__PagingRestriction_spare_descr_; +extern const TTCN_Typedescriptor_t ServiceLvlAAParamList_descr_; +extern const TTCN_Typedescriptor_t ServiceLvlAAParam_descr_; +extern const TTCN_RAWdescriptor_t SL__AA__DeviceId_iei_raw_; +extern const XERdescriptor_t SL__AA__DeviceId_iei_xer_; +extern const TTCN_OERdescriptor_t SL__AA__DeviceId_iei_oer_; +extern const TTCN_Typedescriptor_t SL__AA__DeviceId_iei_descr_; +extern const XERdescriptor_t SL__AA__DeviceId_iel_xer_; +extern const TTCN_OERdescriptor_t SL__AA__DeviceId_iel_oer_; +extern const TTCN_Typedescriptor_t SL__AA__DeviceId_iel_descr_; +extern const XERdescriptor_t SL__AA__DeviceId_id_xer_; +extern const TTCN_OERdescriptor_t SL__AA__DeviceId_id_oer_; +extern const TTCN_Typedescriptor_t SL__AA__DeviceId_id_descr_; +extern const TTCN_Typedescriptor_t SL__AA__DeviceId_descr_; +extern const TTCN_RAWdescriptor_t SL__AA__ServerAddr_iei_raw_; +extern const XERdescriptor_t SL__AA__ServerAddr_iei_xer_; +extern const TTCN_OERdescriptor_t SL__AA__ServerAddr_iei_oer_; +extern const TTCN_Typedescriptor_t SL__AA__ServerAddr_iei_descr_; +extern const XERdescriptor_t SL__AA__ServerAddr_iel_xer_; +extern const TTCN_OERdescriptor_t SL__AA__ServerAddr_iel_oer_; +extern const TTCN_Typedescriptor_t SL__AA__ServerAddr_iel_descr_; +extern const XERdescriptor_t SL__AA__ServerAddr_addrType_xer_; +extern const TTCN_OERdescriptor_t SL__AA__ServerAddr_addrType_oer_; +extern const TTCN_Typedescriptor_t SL__AA__ServerAddr_addrType_descr_; +extern const XERdescriptor_t SL__AA__ServerAddr_addr_xer_; +extern const TTCN_OERdescriptor_t SL__AA__ServerAddr_addr_oer_; +extern const TTCN_Typedescriptor_t SL__AA__ServerAddr_addr_descr_; +extern const TTCN_Typedescriptor_t SL__AA__ServerAddr_descr_; +extern const TTCN_RAWdescriptor_t SL__AA__Response_iei_raw_; +extern const XERdescriptor_t SL__AA__Response_iei_xer_; +extern const TTCN_OERdescriptor_t SL__AA__Response_iei_oer_; +extern const TTCN_Typedescriptor_t SL__AA__Response_iei_descr_; +extern const XERdescriptor_t SL__AA__Response_iel_xer_; +extern const TTCN_OERdescriptor_t SL__AA__Response_iel_oer_; +extern const TTCN_Typedescriptor_t SL__AA__Response_iel_descr_; +extern const XERdescriptor_t SL__AA__Response_spare_xer_; +extern const TTCN_OERdescriptor_t SL__AA__Response_spare_oer_; +extern const TTCN_Typedescriptor_t SL__AA__Response_spare_descr_; +extern const XERdescriptor_t SL__AA__Response_c2ar_xer_; +extern const TTCN_OERdescriptor_t SL__AA__Response_c2ar_oer_; +extern const TTCN_Typedescriptor_t SL__AA__Response_c2ar_descr_; +extern const XERdescriptor_t SL__AA__Response_slar_xer_; +extern const TTCN_OERdescriptor_t SL__AA__Response_slar_oer_; +extern const TTCN_Typedescriptor_t SL__AA__Response_slar_descr_; +extern const TTCN_Typedescriptor_t SL__AA__Response_descr_; +extern const TTCN_RAWdescriptor_t SL__AA__PayloadType_iei_raw_; +extern const XERdescriptor_t SL__AA__PayloadType_iei_xer_; +extern const TTCN_OERdescriptor_t SL__AA__PayloadType_iei_oer_; +extern const TTCN_Typedescriptor_t SL__AA__PayloadType_iei_descr_; +extern const XERdescriptor_t SL__AA__PayloadType_iel_xer_; +extern const TTCN_OERdescriptor_t SL__AA__PayloadType_iel_oer_; +extern const TTCN_Typedescriptor_t SL__AA__PayloadType_iel_descr_; +extern const XERdescriptor_t SL__AA__PayloadType_payloadType_xer_; +extern const TTCN_OERdescriptor_t SL__AA__PayloadType_payloadType_oer_; +extern const TTCN_Typedescriptor_t SL__AA__PayloadType_payloadType_descr_; +extern const TTCN_Typedescriptor_t SL__AA__PayloadType_descr_; +extern const TTCN_RAWdescriptor_t SL__AA__Payload_iei_raw_; +extern const XERdescriptor_t SL__AA__Payload_iei_xer_; +extern const TTCN_OERdescriptor_t SL__AA__Payload_iei_oer_; +extern const TTCN_Typedescriptor_t SL__AA__Payload_iei_descr_; +extern const XERdescriptor_t SL__AA__Payload_iel_xer_; +extern const TTCN_OERdescriptor_t SL__AA__Payload_iel_oer_; +extern const TTCN_Typedescriptor_t SL__AA__Payload_iel_descr_; +extern const XERdescriptor_t SL__AA__Payload_payload_xer_; +extern const TTCN_OERdescriptor_t SL__AA__Payload_payload_oer_; +extern const TTCN_Typedescriptor_t SL__AA__Payload_payload_descr_; +extern const TTCN_Typedescriptor_t SL__AA__Payload_descr_; +extern const TTCN_RAWdescriptor_t SL__AA__PendingInd_iei_raw_; +extern const XERdescriptor_t SL__AA__PendingInd_iei_xer_; +extern const TTCN_Typedescriptor_t SL__AA__PendingInd_iei_descr_; +extern const XERdescriptor_t SL__AA__PendingInd_spare_xer_; +extern const TTCN_OERdescriptor_t SL__AA__PendingInd_spare_oer_; +extern const TTCN_Typedescriptor_t SL__AA__PendingInd_spare_descr_; +extern const XERdescriptor_t SL__AA__PendingInd_slapi_xer_; +extern const TTCN_OERdescriptor_t SL__AA__PendingInd_slapi_oer_; +extern const TTCN_Typedescriptor_t SL__AA__PendingInd_slapi_descr_; +extern const TTCN_Typedescriptor_t SL__AA__PendingInd_descr_; +extern const XERdescriptor_t SL__AA__StatusInd_iei_xer_; +extern const TTCN_OERdescriptor_t SL__AA__StatusInd_iei_oer_; +extern const TTCN_Typedescriptor_t SL__AA__StatusInd_iei_descr_; +extern const XERdescriptor_t SL__AA__StatusInd_iel_xer_; +extern const TTCN_OERdescriptor_t SL__AA__StatusInd_iel_oer_; +extern const TTCN_Typedescriptor_t SL__AA__StatusInd_iel_descr_; +extern const XERdescriptor_t SL__AA__StatusInd_spare_xer_; +extern const TTCN_OERdescriptor_t SL__AA__StatusInd_spare_oer_; +extern const TTCN_Typedescriptor_t SL__AA__StatusInd_spare_descr_; +extern const XERdescriptor_t SL__AA__StatusInd_uas_xer_; +extern const TTCN_OERdescriptor_t SL__AA__StatusInd_uas_oer_; +extern const TTCN_Typedescriptor_t SL__AA__StatusInd_uas_descr_; +extern const TTCN_Typedescriptor_t SL__AA__StatusInd_descr_; +extern const TTCN_Typedescriptor_t ServiceLvlAAContainer_descr_; +extern const XERdescriptor_t ServiceLvlAAContainer_iei_xer_; +extern const TTCN_OERdescriptor_t ServiceLvlAAContainer_iei_oer_; +extern const TTCN_Typedescriptor_t ServiceLvlAAContainer_iei_descr_; +extern const XERdescriptor_t ServiceLvlAAContainer_iel_xer_; +extern const TTCN_OERdescriptor_t ServiceLvlAAContainer_iel_oer_; +extern const TTCN_Typedescriptor_t ServiceLvlAAContainer_iel_descr_; +extern const XERdescriptor_t NID_digit1_xer_; +extern const TTCN_Typedescriptor_t NID_digit1_descr_; +extern const XERdescriptor_t NID_assignmentMode_xer_; +extern const TTCN_OERdescriptor_t NID_assignmentMode_oer_; +extern const TTCN_Typedescriptor_t NID_assignmentMode_descr_; +extern const TTCN_RAWdescriptor_t NID_digits2__9_raw_; +extern const XERdescriptor_t NID_digits2__9_xer_; +extern const TTCN_Typedescriptor_t NID_digits2__9_descr_; +extern const XERdescriptor_t NID_spare_xer_; +extern const TTCN_OERdescriptor_t NID_spare_oer_; +extern const TTCN_Typedescriptor_t NID_spare_descr_; +extern const XERdescriptor_t NID_digit10_xer_; +extern const TTCN_Typedescriptor_t NID_digit10_descr_; +extern const TTCN_Typedescriptor_t NID_descr_; +extern const XERdescriptor_t NID_iei_xer_; +extern const TTCN_OERdescriptor_t NID_iei_oer_; +extern const TTCN_Typedescriptor_t NID_iei_descr_; +extern const XERdescriptor_t NID_iel_xer_; +extern const TTCN_OERdescriptor_t NID_iel_oer_; +extern const TTCN_Typedescriptor_t NID_iel_descr_; +extern const XERdescriptor_t PEIPS__AssistInfo_iei_xer_; +extern const TTCN_OERdescriptor_t PEIPS__AssistInfo_iei_oer_; +extern const TTCN_Typedescriptor_t PEIPS__AssistInfo_iei_descr_; +extern const XERdescriptor_t PEIPS__AssistInfo_iel_xer_; +extern const TTCN_OERdescriptor_t PEIPS__AssistInfo_iel_oer_; +extern const TTCN_Typedescriptor_t PEIPS__AssistInfo_iel_descr_; +extern const TTCN_Typedescriptor_t PEIPS__AssistIEList_descr_; +extern const XERdescriptor_t PEIPS__AssistIE_typeOfInfo_xer_; +extern const TTCN_OERdescriptor_t PEIPS__AssistIE_typeOfInfo_oer_; +extern const TTCN_Typedescriptor_t PEIPS__AssistIE_typeOfInfo_descr_; +extern const XERdescriptor_t PEIPS__AssistIE_peipsValue_xer_; +extern const TTCN_OERdescriptor_t PEIPS__AssistIE_peipsValue_oer_; +extern const TTCN_Typedescriptor_t PEIPS__AssistIE_peipsValue_descr_; +extern const TTCN_Typedescriptor_t PEIPS__AssistIE_descr_; +extern const TTCN_Typedescriptor_t PEIPS__AssistInfo_descr_; +extern const XERdescriptor_t NG__REGISTRATION__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__REGISTRATION__ACCEPT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__REGISTRATION__ACCEPT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__ACCEPT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__REGISTRATION__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_messageType_descr_; +extern const XERdescriptor_t RegistrationResult_spare_xer_; +extern const TTCN_OERdescriptor_t RegistrationResult_spare_oer_; +extern const TTCN_Typedescriptor_t RegistrationResult_spare_descr_; +extern const XERdescriptor_t RegistrationResult_disasterRoamingResult_xer_; +extern const TTCN_OERdescriptor_t RegistrationResult_disasterRoamingResult_oer_; +extern const TTCN_Typedescriptor_t RegistrationResult_disasterRoamingResult_descr_; +extern const XERdescriptor_t RegistrationResult_emergencyRegistered_xer_; +extern const TTCN_OERdescriptor_t RegistrationResult_emergencyRegistered_oer_; +extern const TTCN_Typedescriptor_t RegistrationResult_emergencyRegistered_descr_; +extern const XERdescriptor_t RegistrationResult_nssaaPerformed_xer_; +extern const TTCN_OERdescriptor_t RegistrationResult_nssaaPerformed_oer_; +extern const TTCN_Typedescriptor_t RegistrationResult_nssaaPerformed_descr_; +extern const XERdescriptor_t RegistrationResult_smsAllowed_xer_; +extern const TTCN_OERdescriptor_t RegistrationResult_smsAllowed_oer_; +extern const TTCN_Typedescriptor_t RegistrationResult_smsAllowed_descr_; +extern const XERdescriptor_t RegistrationResult_resultValue_xer_; +extern const TTCN_OERdescriptor_t RegistrationResult_resultValue_oer_; +extern const TTCN_Typedescriptor_t RegistrationResult_resultValue_descr_; +extern const TTCN_Typedescriptor_t RegistrationResult_descr_; +extern const XERdescriptor_t RegistrationResult_iel_xer_; +extern const TTCN_OERdescriptor_t RegistrationResult_iel_oer_; +extern const TTCN_Typedescriptor_t RegistrationResult_iel_descr_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__ACCEPT_descr_; +extern const XERdescriptor_t NG__TrackingAreaIdList__LV_iel_xer_; +extern const TTCN_OERdescriptor_t NG__TrackingAreaIdList__LV_iel_oer_; +extern const TTCN_Typedescriptor_t NG__TrackingAreaIdList__LV_iel_descr_; +extern const TTCN_Typedescriptor_t NG__TrackingAreaIdList__LV_listOfPartialTais_descr_; +extern const XERdescriptor_t NG__ListOfPartialTaiList_allowedType_xer_; +extern const TTCN_OERdescriptor_t NG__ListOfPartialTaiList_allowedType_oer_; +extern const TTCN_Typedescriptor_t NG__ListOfPartialTaiList_allowedType_descr_; +extern const XERdescriptor_t NG__ListOfPartialTaiList_typeOfList_xer_; +extern const TTCN_OERdescriptor_t NG__ListOfPartialTaiList_typeOfList_oer_; +extern const TTCN_Typedescriptor_t NG__ListOfPartialTaiList_typeOfList_descr_; +extern const XERdescriptor_t NG__ListOfPartialTaiList_numberOfElements_xer_; +extern const TTCN_OERdescriptor_t NG__ListOfPartialTaiList_numberOfElements_oer_; +extern const TTCN_Typedescriptor_t NG__ListOfPartialTaiList_numberOfElements_descr_; +extern const TTCN_Typedescriptor_t NG__PartialTaiType_descr_; +extern const TTCN_Typedescriptor_t NG__Type0List_descr_; +extern const XERdescriptor_t NG__Type0Element_plmnId_xer_; +extern const TTCN_OERdescriptor_t NG__Type0Element_plmnId_oer_; +extern const TTCN_Typedescriptor_t NG__Type0Element_plmnId_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__TacList_descr_; +extern const XERdescriptor_t NG__NAS__TacList_0_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__TacList_0_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__TacList_0_descr_; +extern const TTCN_Typedescriptor_t NG__Type0Element_descr_; +extern const TTCN_Typedescriptor_t NG__Type1List_descr_; +extern const XERdescriptor_t NG__PartialTai_plmnId_xer_; +extern const TTCN_OERdescriptor_t NG__PartialTai_plmnId_oer_; +extern const TTCN_Typedescriptor_t NG__PartialTai_plmnId_descr_; +extern const XERdescriptor_t NG__PartialTai_tac_xer_; +extern const TTCN_OERdescriptor_t NG__PartialTai_tac_oer_; +extern const TTCN_Typedescriptor_t NG__PartialTai_tac_descr_; +extern const TTCN_Typedescriptor_t NG__PartialTai_descr_; +extern const TTCN_Typedescriptor_t NG__Type1Element_descr_; +extern const TTCN_Typedescriptor_t NG__Type2List_descr_; +extern const TTCN_Typedescriptor_t NG__PlmnAndTacs_descr_; +extern const TTCN_Typedescriptor_t NG__Type2Element_descr_; +extern const XERdescriptor_t NG__Type3Element_plmnId_xer_; +extern const TTCN_OERdescriptor_t NG__Type3Element_plmnId_oer_; +extern const TTCN_Typedescriptor_t NG__Type3Element_plmnId_descr_; +extern const TTCN_Typedescriptor_t NG__Type3Element_descr_; +extern const TTCN_Typedescriptor_t NG__ListOfPartialTaiList_descr_; +extern const TTCN_Typedescriptor_t NG__TrackingAreaIdList__LV_descr_; +extern const TTCN_Typedescriptor_t NG__TrackingAreaIdList_descr_; +extern const XERdescriptor_t NG__TrackingAreaIdList_iei_xer_; +extern const TTCN_OERdescriptor_t NG__TrackingAreaIdList_iei_oer_; +extern const TTCN_Typedescriptor_t NG__TrackingAreaIdList_iei_descr_; +extern const TTCN_Typedescriptor_t RejectedNSSAI_rejectS__NSSAI_descr_; +extern const XERdescriptor_t RejectedS__NSSAI_len_xer_; +extern const TTCN_OERdescriptor_t RejectedS__NSSAI_len_oer_; +extern const TTCN_Typedescriptor_t RejectedS__NSSAI_len_descr_; +extern const XERdescriptor_t RejectedS__NSSAI_causeValue_xer_; +extern const TTCN_OERdescriptor_t RejectedS__NSSAI_causeValue_oer_; +extern const TTCN_Typedescriptor_t RejectedS__NSSAI_causeValue_descr_; +extern const XERdescriptor_t RejectedS__NSSAI_sst_xer_; +extern const TTCN_OERdescriptor_t RejectedS__NSSAI_sst_oer_; +extern const TTCN_Typedescriptor_t RejectedS__NSSAI_sst_descr_; +extern const TTCN_Typedescriptor_t RejectedS__NSSAI_descr_; +extern const XERdescriptor_t RejectedS__NSSAI_sd_xer_; +extern const TTCN_OERdescriptor_t RejectedS__NSSAI_sd_oer_; +extern const TTCN_Typedescriptor_t RejectedS__NSSAI_sd_descr_; +extern const TTCN_Typedescriptor_t RejectedNSSAI_descr_; +extern const XERdescriptor_t RejectedNSSAI_iei_xer_; +extern const TTCN_OERdescriptor_t RejectedNSSAI_iei_oer_; +extern const TTCN_Typedescriptor_t RejectedNSSAI_iei_descr_; +extern const XERdescriptor_t RejectedNSSAI_iel_xer_; +extern const TTCN_OERdescriptor_t RejectedNSSAI_iel_oer_; +extern const TTCN_Typedescriptor_t RejectedNSSAI_iel_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_mpsi_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_mpsi_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_mpsi_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_iwk__N26_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_iwk__N26_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_iwk__N26_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_emf_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_emf_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_emf_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_emc_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_emc_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_emc_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_imsVoPS__n3GPP_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_imsVoPS__n3GPP_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_imsVoPS__n3GPP_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_imsVoPS__3GPP_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_imsVoPS__3GPP_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_imsVoPS__3GPP_descr_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_iei_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_iei_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_iei_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_iel_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_iel_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_iel_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_ng__UP__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ng__UP__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ng__UP__CIoT_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_ngIPHC__CP__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ngIPHC__CP__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ngIPHC__CP__CIoT_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_n3Data_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_n3Data_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_n3Data_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_ng__CP__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ng__CP__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ng__CP__CIoT_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_restrictEC_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_restrictEC_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_restrictEC_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_mcsi_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_mcsi_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_mcsi_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_emcn3_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_emcn3_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_emcn3_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_spareBit_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_spareBit_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_spareBit_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_pr_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_pr_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_pr_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_rpr_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_rpr_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_rpr_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_piv_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_piv_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_piv_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_ncr_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ncr_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ncr_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_ngEHC__CP__CIoT_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ngEHC__CP__CIoT_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ngEHC__CP__CIoT_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_atsInd_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_atsInd_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_atsInd_descr_; +extern const XERdescriptor_t NG__NetworkFeatureSupport_ngLCS_xer_; +extern const TTCN_OERdescriptor_t NG__NetworkFeatureSupport_ngLCS_oer_; +extern const TTCN_Typedescriptor_t NG__NetworkFeatureSupport_ngLCS_descr_; +extern const TTCN_Typedescriptor_t& PDU__SessionReactivationResult_descr_; +extern const TTCN_Typedescriptor_t PDU__SessionReactivationError_errorCause_descr_; +extern const XERdescriptor_t PDU__SessionErrorCause_sessionId_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionErrorCause_sessionId_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionErrorCause_sessionId_descr_; +extern const XERdescriptor_t PDU__SessionErrorCause_causeValue_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionErrorCause_causeValue_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionErrorCause_causeValue_descr_; +extern const TTCN_Typedescriptor_t PDU__SessionErrorCause_descr_; +extern const TTCN_Typedescriptor_t PDU__SessionReactivationError_descr_; +extern const XERdescriptor_t PDU__SessionReactivationError_iei_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionReactivationError_iei_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionReactivationError_iei_descr_; +extern const XERdescriptor_t PDU__SessionReactivationError_iel_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionReactivationError_iel_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionReactivationError_iel_descr_; +extern const XERdescriptor_t LADN__Info_iel_xer_; +extern const TTCN_OERdescriptor_t LADN__Info_iel_oer_; +extern const TTCN_Typedescriptor_t LADN__Info_iel_descr_; +extern const TTCN_Typedescriptor_t LADN__Info_listOfLADN_descr_; +extern const XERdescriptor_t ListOfLADN_dnnLength_xer_; +extern const TTCN_OERdescriptor_t ListOfLADN_dnnLength_oer_; +extern const TTCN_Typedescriptor_t ListOfLADN_dnnLength_descr_; +extern const XERdescriptor_t ListOfLADN_dnnValue_xer_; +extern const TTCN_OERdescriptor_t ListOfLADN_dnnValue_oer_; +extern const TTCN_Typedescriptor_t ListOfLADN_dnnValue_descr_; +extern const TTCN_Typedescriptor_t ListOfLADN_listOfPartialTais_descr_; +extern const TTCN_Typedescriptor_t ListOfLADN_descr_; +extern const XERdescriptor_t ListOfLADN_iei_xer_; +extern const TTCN_OERdescriptor_t ListOfLADN_iei_oer_; +extern const TTCN_Typedescriptor_t ListOfLADN_iei_descr_; +extern const TTCN_Typedescriptor_t LADN__Info_descr_; +extern const XERdescriptor_t LADN__Info_iei_xer_; +extern const TTCN_OERdescriptor_t LADN__Info_iei_oer_; +extern const TTCN_Typedescriptor_t LADN__Info_iei_descr_; +extern const TTCN_Typedescriptor_t& ServiceAreaIdList_descr_; +extern const XERdescriptor_t SOR__Header_spare_xer_; +extern const TTCN_OERdescriptor_t SOR__Header_spare_oer_; +extern const TTCN_Typedescriptor_t SOR__Header_spare_descr_; +extern const XERdescriptor_t SOR__Header_ap_xer_; +extern const TTCN_OERdescriptor_t SOR__Header_ap_oer_; +extern const TTCN_Typedescriptor_t SOR__Header_ap_descr_; +extern const XERdescriptor_t SOR__Header_ack_xer_; +extern const TTCN_OERdescriptor_t SOR__Header_ack_oer_; +extern const TTCN_Typedescriptor_t SOR__Header_ack_descr_; +extern const XERdescriptor_t SOR__Header_listType__MSSNPNSI_xer_; +extern const TTCN_OERdescriptor_t SOR__Header_listType__MSSNPNSI_oer_; +extern const TTCN_Typedescriptor_t SOR__Header_listType__MSSNPNSI_descr_; +extern const XERdescriptor_t SOR__Header_listInd__MSSI_xer_; +extern const TTCN_OERdescriptor_t SOR__Header_listInd__MSSI_oer_; +extern const TTCN_Typedescriptor_t SOR__Header_listInd__MSSI_descr_; +extern const XERdescriptor_t SOR__Header_dataType_xer_; +extern const TTCN_OERdescriptor_t SOR__Header_dataType_oer_; +extern const TTCN_Typedescriptor_t SOR__Header_dataType_descr_; +extern const TTCN_Typedescriptor_t SOR__Header_descr_; +extern const XERdescriptor_t SORTransparentContainer_mac_xer_; +extern const TTCN_OERdescriptor_t SORTransparentContainer_mac_oer_; +extern const TTCN_Typedescriptor_t SORTransparentContainer_mac_descr_; +extern const TTCN_Typedescriptor_t SORTransparentContainer_descr_; +extern const XERdescriptor_t SORTransparentContainer_iei_xer_; +extern const TTCN_OERdescriptor_t SORTransparentContainer_iei_oer_; +extern const TTCN_Typedescriptor_t SORTransparentContainer_iei_descr_; +extern const XERdescriptor_t SORTransparentContainer_iel_xer_; +extern const TTCN_OERdescriptor_t SORTransparentContainer_iel_oer_; +extern const TTCN_Typedescriptor_t SORTransparentContainer_iel_descr_; +extern const XERdescriptor_t SORTransparentContainer_counter_xer_; +extern const TTCN_OERdescriptor_t SORTransparentContainer_counter_oer_; +extern const TTCN_Typedescriptor_t SORTransparentContainer_counter_descr_; +extern const XERdescriptor_t SORTransparentContainer_data_xer_; +extern const TTCN_OERdescriptor_t SORTransparentContainer_data_oer_; +extern const TTCN_Typedescriptor_t SORTransparentContainer_data_descr_; +extern const XERdescriptor_t InclusionModeNSSAI_spare_xer_; +extern const TTCN_OERdescriptor_t InclusionModeNSSAI_spare_oer_; +extern const TTCN_Typedescriptor_t InclusionModeNSSAI_spare_descr_; +extern const XERdescriptor_t InclusionModeNSSAI_inclusionMode_xer_; +extern const TTCN_OERdescriptor_t InclusionModeNSSAI_inclusionMode_oer_; +extern const TTCN_Typedescriptor_t InclusionModeNSSAI_inclusionMode_descr_; +extern const TTCN_Typedescriptor_t InclusionModeNSSAI_descr_; +extern const XERdescriptor_t InclusionModeNSSAI_iei_xer_; +extern const TTCN_Typedescriptor_t InclusionModeNSSAI_iei_descr_; +extern const XERdescriptor_t OperatorAccessCatDefinitions_iel_xer_; +extern const TTCN_OERdescriptor_t OperatorAccessCatDefinitions_iel_oer_; +extern const TTCN_Typedescriptor_t OperatorAccessCatDefinitions_iel_descr_; +extern const TTCN_Typedescriptor_t OperatorAccessCatDefinitions_definitions_descr_; +extern const XERdescriptor_t AccessCatDefinition_iel_xer_; +extern const TTCN_OERdescriptor_t AccessCatDefinition_iel_oer_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_iel_descr_; +extern const XERdescriptor_t AccessCatDefinition_precendence_xer_; +extern const TTCN_OERdescriptor_t AccessCatDefinition_precendence_oer_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_precendence_descr_; +extern const XERdescriptor_t AccessCatDefinition_psac_xer_; +extern const TTCN_OERdescriptor_t AccessCatDefinition_psac_oer_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_psac_descr_; +extern const XERdescriptor_t AccessCatDefinition_spare2_xer_; +extern const TTCN_OERdescriptor_t AccessCatDefinition_spare2_oer_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_spare2_descr_; +extern const XERdescriptor_t AccessCatDefinition_catNum_xer_; +extern const TTCN_OERdescriptor_t AccessCatDefinition_catNum_oer_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_catNum_descr_; +extern const XERdescriptor_t AccessCatDefinition_criteriaLength_xer_; +extern const TTCN_OERdescriptor_t AccessCatDefinition_criteriaLength_oer_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_criteriaLength_descr_; +extern const XERdescriptor_t AccessCatDefinition_criteria_xer_; +extern const TTCN_OERdescriptor_t AccessCatDefinition_criteria_oer_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_criteria_descr_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_descr_; +extern const XERdescriptor_t AccessCatDefinition_spare3_xer_; +extern const TTCN_OERdescriptor_t AccessCatDefinition_spare3_oer_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_spare3_descr_; +extern const XERdescriptor_t AccessCatDefinition_standardAccessCat_xer_; +extern const TTCN_OERdescriptor_t AccessCatDefinition_standardAccessCat_oer_; +extern const TTCN_Typedescriptor_t AccessCatDefinition_standardAccessCat_descr_; +extern const TTCN_Typedescriptor_t OperatorAccessCatDefinitions_descr_; +extern const XERdescriptor_t OperatorAccessCatDefinitions_iei_xer_; +extern const TTCN_OERdescriptor_t OperatorAccessCatDefinitions_iei_oer_; +extern const TTCN_Typedescriptor_t OperatorAccessCatDefinitions_iei_descr_; +extern const XERdescriptor_t NG__CipheringKeyData_iel_xer_; +extern const TTCN_OERdescriptor_t NG__CipheringKeyData_iel_oer_; +extern const TTCN_Typedescriptor_t NG__CipheringKeyData_iel_descr_; +extern const TTCN_Typedescriptor_t NG__CipheringKeyData_descr_; +extern const XERdescriptor_t NG__CipheringKeyData_iei_xer_; +extern const TTCN_OERdescriptor_t NG__CipheringKeyData_iei_oer_; +extern const TTCN_Typedescriptor_t NG__CipheringKeyData_iei_descr_; +extern const TTCN_Typedescriptor_t NG__CipheringKeyData_listOfCipherKeyData_descr_; +extern const XERdescriptor_t NG__CipherDataSet_id_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_id_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_id_descr_; +extern const XERdescriptor_t NG__CipherDataSet_key_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_key_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_key_descr_; +extern const XERdescriptor_t NG__CipherDataSet_spareBits_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_spareBits_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_spareBits_descr_; +extern const XERdescriptor_t NG__CipherDataSet_c0Length_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_c0Length_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_c0Length_descr_; +extern const XERdescriptor_t NG__CipherDataSet_c0_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_c0_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_c0_descr_; +extern const XERdescriptor_t NG__CipherDataSet_eSpareBits_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_eSpareBits_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_eSpareBits_descr_; +extern const XERdescriptor_t NG__CipherDataSet_eSIBLength_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_eSIBLength_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_eSIBLength_descr_; +extern const XERdescriptor_t NG__CipherDataSet_nSpareBits_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_nSpareBits_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_nSpareBits_descr_; +extern const XERdescriptor_t NG__CipherDataSet_nSIBLength_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_nSIBLength_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_nSIBLength_descr_; +extern const XERdescriptor_t NG__CipherDataSet_validityStartTime_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_validityStartTime_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_validityStartTime_descr_; +extern const XERdescriptor_t NG__CipherDataSet_validityDuration_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_validityDuration_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_validityDuration_descr_; +extern const XERdescriptor_t NG__CipherDataSet_taiLength_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_taiLength_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_taiLength_descr_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_descr_; +extern const XERdescriptor_t NG__CipherDataSet_eposSIB1_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB1_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB1_descr_; +extern const XERdescriptor_t NG__CipherDataSet_eposSIB2__O1_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB2__O1_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB2__O1_descr_; +extern const XERdescriptor_t NG__CipherDataSet_eposSIB2__O2_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB2__O2_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB2__O2_descr_; +extern const XERdescriptor_t NG__CipherDataSet_eposSIB2__O3_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB2__O3_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB2__O3_descr_; +extern const XERdescriptor_t NG__CipherDataSet_eposSIB2__SIB5_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_eposSIB2__SIB5_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_eposSIB2__SIB5_descr_; +extern const XERdescriptor_t NG__CipherDataSet_nposSIB1_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB1_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB1_descr_; +extern const XERdescriptor_t NG__CipherDataSet_nposSIB2__O1_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB2__O1_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB2__O1_descr_; +extern const XERdescriptor_t NG__CipherDataSet_nposSIB2__O2_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB2__O2_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB2__O2_descr_; +extern const XERdescriptor_t NG__CipherDataSet_nposSIB2__SIB3_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB2__SIB3_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB2__SIB3_descr_; +extern const XERdescriptor_t NG__CipherDataSet_nposSIB4__SIB6_xer_; +extern const TTCN_OERdescriptor_t NG__CipherDataSet_nposSIB4__SIB6_oer_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_nposSIB4__SIB6_descr_; +extern const TTCN_Typedescriptor_t NG__CipherDataSet_listOfPartialTais_descr_; +extern const XERdescriptor_t CAGInfoList_iel_xer_; +extern const TTCN_OERdescriptor_t CAGInfoList_iel_oer_; +extern const TTCN_Typedescriptor_t CAGInfoList_iel_descr_; +extern const TTCN_Typedescriptor_t CAGInfoList_descr_; +extern const XERdescriptor_t CAGInfoList_iei_xer_; +extern const TTCN_OERdescriptor_t CAGInfoList_iei_oer_; +extern const TTCN_Typedescriptor_t CAGInfoList_iei_descr_; +extern const TTCN_Typedescriptor_t CAGInfoList_listOfCAGInfos_descr_; +extern const XERdescriptor_t CAG__Info_iel_xer_; +extern const TTCN_OERdescriptor_t CAG__Info_iel_oer_; +extern const TTCN_Typedescriptor_t CAG__Info_iel_descr_; +extern const XERdescriptor_t CAG__Info__V_plmn_xer_; +extern const TTCN_OERdescriptor_t CAG__Info__V_plmn_oer_; +extern const TTCN_Typedescriptor_t CAG__Info__V_plmn_descr_; +extern const XERdescriptor_t CAG__Info__V_spareBits_xer_; +extern const TTCN_OERdescriptor_t CAG__Info__V_spareBits_oer_; +extern const TTCN_Typedescriptor_t CAG__Info__V_spareBits_descr_; +extern const XERdescriptor_t CAG__Info__V_cagOnly_xer_; +extern const TTCN_OERdescriptor_t CAG__Info__V_cagOnly_oer_; +extern const TTCN_Typedescriptor_t CAG__Info__V_cagOnly_descr_; +extern const TTCN_Typedescriptor_t CAG__Info__V_descr_; +extern const TTCN_Typedescriptor_t CAG__Info__V_listOfCAGIds_descr_; +extern const XERdescriptor_t CAG__Info__V_listOfCAGIds_0_xer_; +extern const TTCN_OERdescriptor_t CAG__Info__V_listOfCAGIds_0_oer_; +extern const TTCN_Typedescriptor_t CAG__Info__V_listOfCAGIds_0_descr_; +extern const TTCN_Typedescriptor_t CAG__Info_descr_; +extern const XERdescriptor_t TruncatedS__TMSIConfig_amfSetId_xer_; +extern const TTCN_OERdescriptor_t TruncatedS__TMSIConfig_amfSetId_oer_; +extern const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_amfSetId_descr_; +extern const XERdescriptor_t TruncatedS__TMSIConfig_amfPointer_xer_; +extern const TTCN_OERdescriptor_t TruncatedS__TMSIConfig_amfPointer_oer_; +extern const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_amfPointer_descr_; +extern const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_descr_; +extern const XERdescriptor_t TruncatedS__TMSIConfig_iei_xer_; +extern const TTCN_OERdescriptor_t TruncatedS__TMSIConfig_iei_oer_; +extern const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_iei_descr_; +extern const XERdescriptor_t TruncatedS__TMSIConfig_iel_xer_; +extern const TTCN_OERdescriptor_t TruncatedS__TMSIConfig_iel_oer_; +extern const TTCN_Typedescriptor_t TruncatedS__TMSIConfig_iel_descr_; +extern const XERdescriptor_t ExtdRejectedNSSAI_iel_xer_; +extern const TTCN_OERdescriptor_t ExtdRejectedNSSAI_iel_oer_; +extern const TTCN_Typedescriptor_t ExtdRejectedNSSAI_iel_descr_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAI__List_descr_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAI_descr_; +extern const XERdescriptor_t PartialXtdRejectedNSSAIType0_spare_xer_; +extern const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType0_spare_oer_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_spare_descr_; +extern const TTCN_RAWdescriptor_t PartialXtdRejectedNSSAIType0_typeOfList_raw_; +extern const XERdescriptor_t PartialXtdRejectedNSSAIType0_typeOfList_xer_; +extern const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType0_typeOfList_oer_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_typeOfList_descr_; +extern const XERdescriptor_t PartialXtdRejectedNSSAIType0_numOfElements_xer_; +extern const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType0_numOfElements_oer_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_numOfElements_descr_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_rejectS__NSSAI_descr_; +extern const XERdescriptor_t XtdRejectedS__NSSAI_len_xer_; +extern const TTCN_OERdescriptor_t XtdRejectedS__NSSAI_len_oer_; +extern const TTCN_Typedescriptor_t XtdRejectedS__NSSAI_len_descr_; +extern const XERdescriptor_t XtdRejectedS__NSSAI_causeValue_xer_; +extern const TTCN_OERdescriptor_t XtdRejectedS__NSSAI_causeValue_oer_; +extern const TTCN_Typedescriptor_t XtdRejectedS__NSSAI_causeValue_descr_; +extern const TTCN_Typedescriptor_t XtdRejectedS__NSSAI_descr_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType0_descr_; +extern const XERdescriptor_t PartialXtdRejectedNSSAIType1_spare_xer_; +extern const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType1_spare_oer_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_spare_descr_; +extern const TTCN_RAWdescriptor_t PartialXtdRejectedNSSAIType1_typeOfList_raw_; +extern const XERdescriptor_t PartialXtdRejectedNSSAIType1_typeOfList_xer_; +extern const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType1_typeOfList_oer_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_typeOfList_descr_; +extern const XERdescriptor_t PartialXtdRejectedNSSAIType1_numOfElements_xer_; +extern const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType1_numOfElements_oer_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_numOfElements_descr_; +extern const XERdescriptor_t PartialXtdRejectedNSSAIType1_backOffTimerValue_xer_; +extern const TTCN_OERdescriptor_t PartialXtdRejectedNSSAIType1_backOffTimerValue_oer_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_backOffTimerValue_descr_; +extern const TTCN_Typedescriptor_t XtdRejectedS__NSSAI__List_descr_; +extern const TTCN_Typedescriptor_t PartialXtdRejectedNSSAIType1_descr_; +extern const TTCN_Typedescriptor_t ExtdRejectedNSSAI_descr_; +extern const XERdescriptor_t ExtdRejectedNSSAI_iei_xer_; +extern const TTCN_OERdescriptor_t ExtdRejectedNSSAI_iei_oer_; +extern const TTCN_Typedescriptor_t ExtdRejectedNSSAI_iei_descr_; +extern const XERdescriptor_t NG__AddReqResult_iei_xer_; +extern const TTCN_OERdescriptor_t NG__AddReqResult_iei_oer_; +extern const TTCN_Typedescriptor_t NG__AddReqResult_iei_descr_; +extern const XERdescriptor_t NG__AddReqResult_iel_xer_; +extern const TTCN_OERdescriptor_t NG__AddReqResult_iel_oer_; +extern const TTCN_Typedescriptor_t NG__AddReqResult_iel_descr_; +extern const XERdescriptor_t NG__AddReqResult_spare_xer_; +extern const TTCN_OERdescriptor_t NG__AddReqResult_spare_oer_; +extern const TTCN_Typedescriptor_t NG__AddReqResult_spare_descr_; +extern const XERdescriptor_t NG__AddReqResult_prd_xer_; +extern const TTCN_OERdescriptor_t NG__AddReqResult_prd_oer_; +extern const TTCN_Typedescriptor_t NG__AddReqResult_prd_descr_; +extern const TTCN_Typedescriptor_t NG__AddReqResult_descr_; +extern const XERdescriptor_t NSSRG__Info_iei_xer_; +extern const TTCN_OERdescriptor_t NSSRG__Info_iei_oer_; +extern const TTCN_Typedescriptor_t NSSRG__Info_iei_descr_; +extern const XERdescriptor_t NSSRG__Info_iel_xer_; +extern const TTCN_OERdescriptor_t NSSRG__Info_iel_oer_; +extern const TTCN_Typedescriptor_t NSSRG__Info_iel_descr_; +extern const TTCN_Typedescriptor_t NSSRG__ValueList_descr_; +extern const XERdescriptor_t NSSRG__Value_iel_xer_; +extern const TTCN_OERdescriptor_t NSSRG__Value_iel_oer_; +extern const TTCN_Typedescriptor_t NSSRG__Value_iel_descr_; +extern const TTCN_Typedescriptor_t NSSRG__Value_nssrgValues_descr_; +extern const XERdescriptor_t NSSRG__Value_nssrgValues_0_xer_; +extern const TTCN_OERdescriptor_t NSSRG__Value_nssrgValues_0_oer_; +extern const TTCN_Typedescriptor_t NSSRG__Value_nssrgValues_0_descr_; +extern const TTCN_Typedescriptor_t NSSRG__Value_descr_; +extern const TTCN_Typedescriptor_t NSSRG__Info_descr_; +extern const XERdescriptor_t RegistrationWaitRange_iei_xer_; +extern const TTCN_OERdescriptor_t RegistrationWaitRange_iei_oer_; +extern const TTCN_Typedescriptor_t RegistrationWaitRange_iei_descr_; +extern const XERdescriptor_t RegistrationWaitRange_iel_xer_; +extern const TTCN_OERdescriptor_t RegistrationWaitRange_iel_oer_; +extern const TTCN_Typedescriptor_t RegistrationWaitRange_iel_descr_; +extern const XERdescriptor_t RegistrationWaitRange_minWaitTime_xer_; +extern const TTCN_OERdescriptor_t RegistrationWaitRange_minWaitTime_oer_; +extern const TTCN_Typedescriptor_t RegistrationWaitRange_minWaitTime_descr_; +extern const XERdescriptor_t RegistrationWaitRange_maxWaitTime_xer_; +extern const TTCN_OERdescriptor_t RegistrationWaitRange_maxWaitTime_oer_; +extern const TTCN_Typedescriptor_t RegistrationWaitRange_maxWaitTime_descr_; +extern const TTCN_Typedescriptor_t RegistrationWaitRange_descr_; +extern const XERdescriptor_t DisasterPLMNList_iei_xer_; +extern const TTCN_OERdescriptor_t DisasterPLMNList_iei_oer_; +extern const TTCN_Typedescriptor_t DisasterPLMNList_iei_descr_; +extern const XERdescriptor_t DisasterPLMNList_iel_xer_; +extern const TTCN_OERdescriptor_t DisasterPLMNList_iel_oer_; +extern const TTCN_Typedescriptor_t DisasterPLMNList_iel_descr_; +extern const TTCN_Typedescriptor_t DisasterPLMNList_descr_; +extern const TTCN_Typedescriptor_t DisasterPLMNList_plmnId_descr_; +extern const XERdescriptor_t DisasterPLMNList_plmnId_0_xer_; +extern const TTCN_OERdescriptor_t DisasterPLMNList_plmnId_0_oer_; +extern const TTCN_Typedescriptor_t DisasterPLMNList_plmnId_0_descr_; +extern const XERdescriptor_t ExtdCAGInfoList_iei_xer_; +extern const TTCN_OERdescriptor_t ExtdCAGInfoList_iei_oer_; +extern const TTCN_Typedescriptor_t ExtdCAGInfoList_iei_descr_; +extern const XERdescriptor_t ExtdCAGInfoList_iel_xer_; +extern const TTCN_OERdescriptor_t ExtdCAGInfoList_iel_oer_; +extern const TTCN_Typedescriptor_t ExtdCAGInfoList_iel_descr_; +extern const TTCN_Typedescriptor_t ExtdCAGInfoList_descr_; +extern const TTCN_Typedescriptor_t ExtdCAGInfoList_listOfCAGInfos_descr_; +extern const XERdescriptor_t ExtdCAG__Info_iel_xer_; +extern const TTCN_OERdescriptor_t ExtdCAG__Info_iel_oer_; +extern const TTCN_Typedescriptor_t ExtdCAG__Info_iel_descr_; +extern const TTCN_Typedescriptor_t ExtdCAG__Info_descr_; +extern const XERdescriptor_t NSAG__Info_iei_xer_; +extern const TTCN_OERdescriptor_t NSAG__Info_iei_oer_; +extern const TTCN_Typedescriptor_t NSAG__Info_iei_descr_; +extern const XERdescriptor_t NSAG__Info_iel_xer_; +extern const TTCN_OERdescriptor_t NSAG__Info_iel_oer_; +extern const TTCN_Typedescriptor_t NSAG__Info_iel_descr_; +extern const TTCN_Typedescriptor_t NSAG__Info_nsagList_descr_; +extern const XERdescriptor_t NSAG_iel_xer_; +extern const TTCN_OERdescriptor_t NSAG_iel_oer_; +extern const TTCN_Typedescriptor_t NSAG_iel_descr_; +extern const XERdescriptor_t NSAG_id_xer_; +extern const TTCN_OERdescriptor_t NSAG_id_oer_; +extern const TTCN_Typedescriptor_t NSAG_id_descr_; +extern const XERdescriptor_t NSAG_priority_xer_; +extern const TTCN_OERdescriptor_t NSAG_priority_oer_; +extern const TTCN_Typedescriptor_t NSAG_priority_descr_; +extern const TTCN_Typedescriptor_t NSAG_descr_; +extern const TTCN_Typedescriptor_t NSAG__Info_descr_; +extern const XERdescriptor_t NG__REGISTRATION__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__REGISTRATION__COMPLETE_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__REGISTRATION__COMPLETE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__COMPLETE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_securityHeaderType_descr_; +extern const XERdescriptor_t NG__REGISTRATION__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__COMPLETE_descr_; +extern const XERdescriptor_t NG__REGISTRATION__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__REGISTRATION__REJECT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__REGISTRATION__REJECT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__REJECT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__REGISTRATION__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__REGISTRATION__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__REGISTRATION__REJECT_descr_; +extern const XERdescriptor_t NG__UL__NAS__TRANSPORT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__UL__NAS__TRANSPORT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__UL__NAS__TRANSPORT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__UL__NAS__TRANSPORT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__UL__NAS__TRANSPORT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__UL__NAS__TRANSPORT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__UL__NAS__TRANSPORT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_messageType_descr_; +extern const XERdescriptor_t NG__UL__NAS__TRANSPORT_spareHalfOctet2_xer_; +extern const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_spareHalfOctet2_descr_; +extern const TTCN_Typedescriptor_t NG__UL__NAS__TRANSPORT_descr_; +extern const XERdescriptor_t NG__PDU__SessionId_sessionId_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SessionId_sessionId_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SessionId_sessionId_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SessionId_descr_; +extern const XERdescriptor_t NG__PDU__SessionId_iei_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SessionId_iei_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SessionId_iei_descr_; +extern const XERdescriptor_t NG__Request__Type_iei_xer_; +extern const TTCN_Typedescriptor_t NG__Request__Type_iei_descr_; +extern const XERdescriptor_t NG__Request__Type_spare_xer_; +extern const TTCN_OERdescriptor_t NG__Request__Type_spare_oer_; +extern const TTCN_Typedescriptor_t NG__Request__Type_spare_descr_; +extern const XERdescriptor_t NG__Request__Type_requestValue_xer_; +extern const TTCN_OERdescriptor_t NG__Request__Type_requestValue_oer_; +extern const TTCN_Typedescriptor_t NG__Request__Type_requestValue_descr_; +extern const TTCN_Typedescriptor_t NG__Request__Type_descr_; +extern const TTCN_Typedescriptor_t S__NSSAI__Type_descr_; +extern const XERdescriptor_t S__NSSAI__Type_iei_xer_; +extern const TTCN_OERdescriptor_t S__NSSAI__Type_iei_oer_; +extern const TTCN_Typedescriptor_t S__NSSAI__Type_iei_descr_; +extern const XERdescriptor_t DNN_dnnValue_xer_; +extern const TTCN_OERdescriptor_t DNN_dnnValue_oer_; +extern const TTCN_Typedescriptor_t DNN_dnnValue_descr_; +extern const TTCN_Typedescriptor_t DNN_descr_; +extern const XERdescriptor_t DNN_iei_xer_; +extern const TTCN_OERdescriptor_t DNN_iei_oer_; +extern const TTCN_Typedescriptor_t DNN_iei_descr_; +extern const XERdescriptor_t DNN_iel_xer_; +extern const TTCN_OERdescriptor_t DNN_iel_oer_; +extern const TTCN_Typedescriptor_t DNN_iel_descr_; +extern const XERdescriptor_t MA__PDUSessionInfo_iei_xer_; +extern const TTCN_Typedescriptor_t MA__PDUSessionInfo_iei_descr_; +extern const XERdescriptor_t MA__PDUSessionInfo_maPDUSession_xer_; +extern const TTCN_OERdescriptor_t MA__PDUSessionInfo_maPDUSession_oer_; +extern const TTCN_Typedescriptor_t MA__PDUSessionInfo_maPDUSession_descr_; +extern const TTCN_Typedescriptor_t MA__PDUSessionInfo_descr_; +extern const XERdescriptor_t NG__DL__NAS__TRANSPORT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__DL__NAS__TRANSPORT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__DL__NAS__TRANSPORT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__DL__NAS__TRANSPORT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__DL__NAS__TRANSPORT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__DL__NAS__TRANSPORT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__DL__NAS__TRANSPORT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_messageType_descr_; +extern const XERdescriptor_t NG__DL__NAS__TRANSPORT_spareHalfOctet2_xer_; +extern const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_spareHalfOctet2_descr_; +extern const TTCN_Typedescriptor_t NG__DL__NAS__TRANSPORT_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_securityHeaderType_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MO_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_messageType_descr_; +extern const XERdescriptor_t DeregisterType_switchOff_xer_; +extern const TTCN_OERdescriptor_t DeregisterType_switchOff_oer_; +extern const TTCN_Typedescriptor_t DeregisterType_switchOff_descr_; +extern const XERdescriptor_t DeregisterType_reRegistration_xer_; +extern const TTCN_OERdescriptor_t DeregisterType_reRegistration_oer_; +extern const TTCN_Typedescriptor_t DeregisterType_reRegistration_descr_; +extern const XERdescriptor_t DeregisterType_accessType_xer_; +extern const TTCN_OERdescriptor_t DeregisterType_accessType_oer_; +extern const TTCN_Typedescriptor_t DeregisterType_accessType_descr_; +extern const TTCN_Typedescriptor_t DeregisterType_descr_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MO_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__DEREGISTRATION__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__ACCEPT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__ACCEPT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__DEREGISTRATION__ACCEPT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__DEREGISTRATION__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__ACCEPT_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_messageType_descr_; +extern const XERdescriptor_t NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet2_xer_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_spareHalfOctet2_descr_; +extern const TTCN_Typedescriptor_t NG__DEREGISTRATION__REQUEST__MT_descr_; +extern const XERdescriptor_t NG__SERVICE__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__SERVICE__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__SERVICE__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t NG__SERVICE__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_messageType_descr_; +extern const XERdescriptor_t NG__SERVICE__REQUEST_serviceType_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__REQUEST_serviceType_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_serviceType_descr_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REQUEST_descr_; +extern const XERdescriptor_t NG__SERVICE__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__SERVICE__ACCEPT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__SERVICE__ACCEPT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__ACCEPT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__SERVICE__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__SERVICE__ACCEPT_descr_; +extern const XERdescriptor_t NG__SERVICE__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__SERVICE__REJECT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REJECT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__SERVICE__REJECT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__REJECT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REJECT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__SERVICE__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__SERVICE__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__SERVICE__REJECT_descr_; +extern const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_securityHeaderType_descr_; +extern const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMMAND_descr_; +extern const XERdescriptor_t ConfigUpdateInd_iei_xer_; +extern const TTCN_Typedescriptor_t ConfigUpdateInd_iei_descr_; +extern const XERdescriptor_t ConfigUpdateInd_spare_xer_; +extern const TTCN_OERdescriptor_t ConfigUpdateInd_spare_oer_; +extern const TTCN_Typedescriptor_t ConfigUpdateInd_spare_descr_; +extern const XERdescriptor_t ConfigUpdateInd_red_xer_; +extern const TTCN_OERdescriptor_t ConfigUpdateInd_red_oer_; +extern const TTCN_Typedescriptor_t ConfigUpdateInd_red_descr_; +extern const XERdescriptor_t ConfigUpdateInd_ack_xer_; +extern const TTCN_OERdescriptor_t ConfigUpdateInd_ack_oer_; +extern const TTCN_Typedescriptor_t ConfigUpdateInd_ack_descr_; +extern const TTCN_Typedescriptor_t ConfigUpdateInd_descr_; +extern const XERdescriptor_t SMSInd_iei_xer_; +extern const TTCN_Typedescriptor_t SMSInd_iei_descr_; +extern const XERdescriptor_t SMSInd_spare_xer_; +extern const TTCN_OERdescriptor_t SMSInd_spare_oer_; +extern const TTCN_Typedescriptor_t SMSInd_spare_descr_; +extern const XERdescriptor_t SMSInd_sai_xer_; +extern const TTCN_OERdescriptor_t SMSInd_sai_oer_; +extern const TTCN_Typedescriptor_t SMSInd_sai_descr_; +extern const TTCN_Typedescriptor_t SMSInd_descr_; +extern const XERdescriptor_t AddConfigInfo_spare_xer_; +extern const TTCN_OERdescriptor_t AddConfigInfo_spare_oer_; +extern const TTCN_Typedescriptor_t AddConfigInfo_spare_descr_; +extern const XERdescriptor_t AddConfigInfo_scmr_xer_; +extern const TTCN_OERdescriptor_t AddConfigInfo_scmr_oer_; +extern const TTCN_Typedescriptor_t AddConfigInfo_scmr_descr_; +extern const TTCN_Typedescriptor_t AddConfigInfo_descr_; +extern const XERdescriptor_t AddConfigInfo_iei_xer_; +extern const TTCN_Typedescriptor_t AddConfigInfo_iei_descr_; +extern const XERdescriptor_t PriorityInd_iei_xer_; +extern const TTCN_Typedescriptor_t PriorityInd_iei_descr_; +extern const XERdescriptor_t PriorityInd_spare_xer_; +extern const TTCN_OERdescriptor_t PriorityInd_spare_oer_; +extern const TTCN_Typedescriptor_t PriorityInd_spare_descr_; +extern const XERdescriptor_t PriorityInd_mpsi_xer_; +extern const TTCN_OERdescriptor_t PriorityInd_mpsi_oer_; +extern const TTCN_Typedescriptor_t PriorityInd_mpsi_descr_; +extern const TTCN_Typedescriptor_t PriorityInd_descr_; +extern const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_securityHeaderType_descr_; +extern const XERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__CONFIGURATION__UPDATE__COMPLETE_descr_; +extern const XERdescriptor_t NG__IDENTITY__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__IDENTITY__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__IDENTITY__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__IDENTITY__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__IDENTITY__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t NG__IDENTITY__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__IDENTITY__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_messageType_descr_; +extern const XERdescriptor_t NG__IDENTITY__REQUEST_spareHalfOctet2_xer_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_spareHalfOctet2_descr_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__REQUEST_descr_; +extern const XERdescriptor_t NG__IDENTITY__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__IDENTITY__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__IDENTITY__RESPONSE_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__IDENTITY__RESPONSE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__IDENTITY__RESPONSE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_securityHeaderType_descr_; +extern const XERdescriptor_t NG__IDENTITY__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__IDENTITY__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__IDENTITY__RESPONSE_descr_; +extern const XERdescriptor_t NG__NOTIFICATION_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__NOTIFICATION_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__NOTIFICATION_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__NOTIFICATION_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__NOTIFICATION_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION_securityHeaderType_descr_; +extern const XERdescriptor_t NG__NOTIFICATION_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__NOTIFICATION_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION_messageType_descr_; +extern const XERdescriptor_t NG__NOTIFICATION_spareHalfOctet2_xer_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION_spareHalfOctet2_descr_; +extern const XERdescriptor_t AccessType_spare_xer_; +extern const TTCN_OERdescriptor_t AccessType_spare_oer_; +extern const TTCN_Typedescriptor_t AccessType_spare_descr_; +extern const XERdescriptor_t AccessType_accessType_xer_; +extern const TTCN_OERdescriptor_t AccessType_accessType_oer_; +extern const TTCN_Typedescriptor_t AccessType_accessType_descr_; +extern const TTCN_Typedescriptor_t AccessType_descr_; +extern const XERdescriptor_t AccessType_iei_xer_; +extern const TTCN_Typedescriptor_t AccessType_iei_descr_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION_descr_; +extern const XERdescriptor_t NG__NOTIFICATION__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__NOTIFICATION__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__NOTIFICATION__RESPONSE_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__NOTIFICATION__RESPONSE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__NOTIFICATION__RESPONSE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_securityHeaderType_descr_; +extern const XERdescriptor_t NG__NOTIFICATION__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__NOTIFICATION__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__NOTIFICATION__RESPONSE_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__COMMAND_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMMAND_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__COMMAND_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__COMMAND_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMMAND_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_securityHeaderType_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__COMMAND_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMMAND_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_messageType_descr_; +extern const XERdescriptor_t NG__NAS__SecurityAlgorithms_cipheringType_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityAlgorithms_cipheringType_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityAlgorithms_cipheringType_descr_; +extern const XERdescriptor_t NG__NAS__SecurityAlgorithms_integrityType_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityAlgorithms_integrityType_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityAlgorithms_integrityType_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityAlgorithms_descr_; +extern const XERdescriptor_t NG__NAS__SecurityAlgorithms_iei_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityAlgorithms_iei_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityAlgorithms_iei_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__COMMAND_spareHalfOctet2_xer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_spareHalfOctet2_descr_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMMAND_descr_; +extern const XERdescriptor_t AdditionalSecurityInfo_spareBits_xer_; +extern const TTCN_OERdescriptor_t AdditionalSecurityInfo_spareBits_oer_; +extern const TTCN_Typedescriptor_t AdditionalSecurityInfo_spareBits_descr_; +extern const XERdescriptor_t AdditionalSecurityInfo_rinmr_xer_; +extern const TTCN_OERdescriptor_t AdditionalSecurityInfo_rinmr_oer_; +extern const TTCN_Typedescriptor_t AdditionalSecurityInfo_rinmr_descr_; +extern const XERdescriptor_t AdditionalSecurityInfo_hdp_xer_; +extern const TTCN_OERdescriptor_t AdditionalSecurityInfo_hdp_oer_; +extern const TTCN_Typedescriptor_t AdditionalSecurityInfo_hdp_descr_; +extern const TTCN_Typedescriptor_t AdditionalSecurityInfo_descr_; +extern const XERdescriptor_t AdditionalSecurityInfo_iei_xer_; +extern const TTCN_OERdescriptor_t AdditionalSecurityInfo_iei_oer_; +extern const TTCN_Typedescriptor_t AdditionalSecurityInfo_iei_descr_; +extern const XERdescriptor_t AdditionalSecurityInfo_iel_xer_; +extern const TTCN_OERdescriptor_t AdditionalSecurityInfo_iel_oer_; +extern const TTCN_Typedescriptor_t AdditionalSecurityInfo_iel_descr_; +extern const TTCN_Typedescriptor_t S1__UE__SecurityCapability_descr_; +extern const XERdescriptor_t S1__UE__SecurityCapability_iei_xer_; +extern const TTCN_OERdescriptor_t S1__UE__SecurityCapability_iei_oer_; +extern const TTCN_Typedescriptor_t S1__UE__SecurityCapability_iei_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__COMPLETE_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__COMPLETE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMPLETE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_securityHeaderType_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__MODE__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__COMPLETE_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__MODE__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__REJECT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__REJECT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__MODE__REJECT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__SECURITY__MODE__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__MODE__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__SECURITY__MODE__REJECT_descr_; +extern const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_securityHeaderType_descr_; +extern const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_messageAuthenticationCode_descr_; +extern const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_sequenceNumber_descr_; +extern const XERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_xer_; +extern const TTCN_OERdescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_oer_; +extern const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_plainNASMessage_descr_; +extern const TTCN_Typedescriptor_t NG__SECURITY__PROTECTED__NAS__MESSAGE_descr_; +extern const XERdescriptor_t NG__GMM__STATUS_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__STATUS_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__STATUS_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__GMM__STATUS_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__GMM__STATUS_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__GMM__STATUS_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__STATUS_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__STATUS_securityHeaderType_descr_; +extern const XERdescriptor_t NG__GMM__STATUS_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__GMM__STATUS_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__GMM__STATUS_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__GMM__STATUS_descr_; +extern const XERdescriptor_t NG__CP__SERVICE__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__CP__SERVICE__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__CP__SERVICE__REQUEST_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__CP__SERVICE__REQUEST_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__CP__SERVICE__REQUEST_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_securityHeaderType_descr_; +extern const XERdescriptor_t NG__CP__SERVICE__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__CP__SERVICE__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_messageType_descr_; +extern const XERdescriptor_t CP__ServiceType_tsc_xer_; +extern const TTCN_OERdescriptor_t CP__ServiceType_tsc_oer_; +extern const TTCN_Typedescriptor_t CP__ServiceType_tsc_descr_; +extern const XERdescriptor_t CP__ServiceType_nasKeySetId_xer_; +extern const TTCN_OERdescriptor_t CP__ServiceType_nasKeySetId_oer_; +extern const TTCN_Typedescriptor_t CP__ServiceType_nasKeySetId_descr_; +extern const TTCN_Typedescriptor_t CP__ServiceType_descr_; +extern const XERdescriptor_t CP__ServiceType_iei_xer_; +extern const TTCN_Typedescriptor_t CP__ServiceType_iei_descr_; +extern const TTCN_Typedescriptor_t NG__CP__SERVICE__REQUEST_descr_; +extern const XERdescriptor_t CIoTSmallDataRxdString_iei_xer_; +extern const TTCN_OERdescriptor_t CIoTSmallDataRxdString_iei_oer_; +extern const TTCN_Typedescriptor_t CIoTSmallDataRxdString_iei_descr_; +extern const XERdescriptor_t CIoTSmallDataRxdString_encodedstring_xer_; +extern const TTCN_OERdescriptor_t CIoTSmallDataRxdString_encodedstring_oer_; +extern const TTCN_Typedescriptor_t CIoTSmallDataRxdString_encodedstring_descr_; +extern const TTCN_Typedescriptor_t CIoTSmallDataRxdString_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_securityHeaderType_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMMAND_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_securityHeaderType_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__COMPLETE_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_spareHalfOctet_xer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_spareHalfOctet_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_securityHeaderType_xer_; +extern const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_securityHeaderType_oer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_securityHeaderType_descr_; +extern const XERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__NETWORK__SLICE__SPECIFIC__AUTHENTICATION__RESULT_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_messageType_descr_; +extern const XERdescriptor_t IntegrityProtMaxDataRate_maxDataRateUL_xer_; +extern const TTCN_OERdescriptor_t IntegrityProtMaxDataRate_maxDataRateUL_oer_; +extern const TTCN_Typedescriptor_t IntegrityProtMaxDataRate_maxDataRateUL_descr_; +extern const XERdescriptor_t IntegrityProtMaxDataRate_maxDataRateDL_xer_; +extern const TTCN_OERdescriptor_t IntegrityProtMaxDataRate_maxDataRateDL_oer_; +extern const TTCN_Typedescriptor_t IntegrityProtMaxDataRate_maxDataRateDL_descr_; +extern const TTCN_Typedescriptor_t IntegrityProtMaxDataRate_descr_; +extern const XERdescriptor_t IntegrityProtMaxDataRate_iei_xer_; +extern const TTCN_OERdescriptor_t IntegrityProtMaxDataRate_iei_oer_; +extern const TTCN_Typedescriptor_t IntegrityProtMaxDataRate_iei_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REQUEST_descr_; +extern const XERdescriptor_t PDU__SessionType_spare_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionType_spare_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionType_spare_descr_; +extern const XERdescriptor_t PDU__SessionType_typeValue_xer_; +extern const TTCN_OERdescriptor_t PDU__SessionType_typeValue_oer_; +extern const TTCN_Typedescriptor_t PDU__SessionType_typeValue_descr_; +extern const TTCN_Typedescriptor_t PDU__SessionType_descr_; +extern const XERdescriptor_t PDU__SessionType_iei_xer_; +extern const TTCN_Typedescriptor_t PDU__SessionType_iei_descr_; +extern const XERdescriptor_t SSC__Mode_spare_xer_; +extern const TTCN_OERdescriptor_t SSC__Mode_spare_oer_; +extern const TTCN_Typedescriptor_t SSC__Mode_spare_descr_; +extern const XERdescriptor_t SSC__Mode_sscModeValue_xer_; +extern const TTCN_OERdescriptor_t SSC__Mode_sscModeValue_oer_; +extern const TTCN_Typedescriptor_t SSC__Mode_sscModeValue_descr_; +extern const TTCN_Typedescriptor_t SSC__Mode_descr_; +extern const XERdescriptor_t SSC__Mode_iei_xer_; +extern const TTCN_Typedescriptor_t SSC__Mode_iei_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_tpmic_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_tpmic_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_tpmic_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_atsssST_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_atsssST_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_atsssST_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_ept__S1_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_ept__S1_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_ept__S1_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_mh6__PDU_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_mh6__PDU_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_mh6__PDU_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_rQoS_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_rQoS_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_rQoS_descr_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_iei_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_iei_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_iei_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_iel_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_iel_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_iel_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_spareBits_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_spareBits_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_spareBits_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_apmqf_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_apmqf_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_apmqf_descr_; +extern const XERdescriptor_t NG__UE__SM__Cap_spare_xer_; +extern const TTCN_OERdescriptor_t NG__UE__SM__Cap_spare_oer_; +extern const TTCN_Typedescriptor_t NG__UE__SM__Cap_spare_descr_; +extern const XERdescriptor_t MaxNumPacketFilters_numOfFilters_xer_; +extern const TTCN_OERdescriptor_t MaxNumPacketFilters_numOfFilters_oer_; +extern const TTCN_Typedescriptor_t MaxNumPacketFilters_numOfFilters_descr_; +extern const XERdescriptor_t MaxNumPacketFilters_spareBits_xer_; +extern const TTCN_OERdescriptor_t MaxNumPacketFilters_spareBits_oer_; +extern const TTCN_Typedescriptor_t MaxNumPacketFilters_spareBits_descr_; +extern const TTCN_Typedescriptor_t MaxNumPacketFilters_descr_; +extern const XERdescriptor_t MaxNumPacketFilters_iei_xer_; +extern const TTCN_OERdescriptor_t MaxNumPacketFilters_iei_oer_; +extern const TTCN_Typedescriptor_t MaxNumPacketFilters_iei_descr_; +extern const XERdescriptor_t AlwaysOnPDUSessionInd_spare_xer_; +extern const TTCN_OERdescriptor_t AlwaysOnPDUSessionInd_spare_oer_; +extern const TTCN_Typedescriptor_t AlwaysOnPDUSessionInd_spare_descr_; +extern const XERdescriptor_t AlwaysOnPDUSessionInd_apsi_xer_; +extern const TTCN_OERdescriptor_t AlwaysOnPDUSessionInd_apsi_oer_; +extern const TTCN_Typedescriptor_t AlwaysOnPDUSessionInd_apsi_descr_; +extern const TTCN_Typedescriptor_t AlwaysOnPDUSessionInd_descr_; +extern const XERdescriptor_t AlwaysOnPDUSessionInd_iei_xer_; +extern const TTCN_Typedescriptor_t AlwaysOnPDUSessionInd_iei_descr_; +extern const TTCN_Typedescriptor_t& AlwaysOnPDUSessionReq_descr_; +extern const XERdescriptor_t SM__PDU__DN__RequestContainer_dnSpecificId_xer_; +extern const TTCN_OERdescriptor_t SM__PDU__DN__RequestContainer_dnSpecificId_oer_; +extern const TTCN_Typedescriptor_t SM__PDU__DN__RequestContainer_dnSpecificId_descr_; +extern const TTCN_Typedescriptor_t SM__PDU__DN__RequestContainer_descr_; +extern const XERdescriptor_t SM__PDU__DN__RequestContainer_iei_xer_; +extern const TTCN_OERdescriptor_t SM__PDU__DN__RequestContainer_iei_oer_; +extern const TTCN_Typedescriptor_t SM__PDU__DN__RequestContainer_iei_descr_; +extern const XERdescriptor_t SM__PDU__DN__RequestContainer_iel_xer_; +extern const TTCN_OERdescriptor_t SM__PDU__DN__RequestContainer_iel_oer_; +extern const TTCN_Typedescriptor_t SM__PDU__DN__RequestContainer_iel_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_spare_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_spare_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_spare_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_profile104_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile104_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile104_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_profile103_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile103_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile103_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_profile102_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile102_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile102_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_profile6_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile6_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile6_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_profile4_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile4_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile4_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_profile3_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile3_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile3_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_profile2_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_profile2_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_profile2_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_maxCID_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_maxCID_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_maxCID_descr_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_iei_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_iei_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_iei_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_iel_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_iel_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_iel_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_addParamsType_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_addParamsType_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_addParamsType_descr_; +extern const XERdescriptor_t IPHeaderCompressionConfig_addParamsContainer_xer_; +extern const TTCN_OERdescriptor_t IPHeaderCompressionConfig_addParamsContainer_oer_; +extern const TTCN_Typedescriptor_t IPHeaderCompressionConfig_addParamsContainer_descr_; +extern const XERdescriptor_t DS__TT__EthernetPortMACAddr_addressContents_xer_; +extern const TTCN_OERdescriptor_t DS__TT__EthernetPortMACAddr_addressContents_oer_; +extern const TTCN_Typedescriptor_t DS__TT__EthernetPortMACAddr_addressContents_descr_; +extern const TTCN_Typedescriptor_t DS__TT__EthernetPortMACAddr_descr_; +extern const XERdescriptor_t DS__TT__EthernetPortMACAddr_iei_xer_; +extern const TTCN_OERdescriptor_t DS__TT__EthernetPortMACAddr_iei_oer_; +extern const TTCN_Typedescriptor_t DS__TT__EthernetPortMACAddr_iei_descr_; +extern const XERdescriptor_t DS__TT__EthernetPortMACAddr_iel_xer_; +extern const TTCN_OERdescriptor_t DS__TT__EthernetPortMACAddr_iel_oer_; +extern const TTCN_Typedescriptor_t DS__TT__EthernetPortMACAddr_iel_descr_; +extern const XERdescriptor_t UE__DS__TT__ResidenceTime_timeContents_xer_; +extern const TTCN_OERdescriptor_t UE__DS__TT__ResidenceTime_timeContents_oer_; +extern const TTCN_Typedescriptor_t UE__DS__TT__ResidenceTime_timeContents_descr_; +extern const TTCN_Typedescriptor_t UE__DS__TT__ResidenceTime_descr_; +extern const XERdescriptor_t UE__DS__TT__ResidenceTime_iei_xer_; +extern const TTCN_OERdescriptor_t UE__DS__TT__ResidenceTime_iei_oer_; +extern const TTCN_Typedescriptor_t UE__DS__TT__ResidenceTime_iei_descr_; +extern const XERdescriptor_t UE__DS__TT__ResidenceTime_iel_xer_; +extern const TTCN_OERdescriptor_t UE__DS__TT__ResidenceTime_iel_oer_; +extern const TTCN_Typedescriptor_t UE__DS__TT__ResidenceTime_iel_descr_; +extern const XERdescriptor_t PortManagementInfoContainer_contents_xer_; +extern const TTCN_OERdescriptor_t PortManagementInfoContainer_contents_oer_; +extern const TTCN_Typedescriptor_t PortManagementInfoContainer_contents_descr_; +extern const TTCN_Typedescriptor_t PortManagementInfoContainer_descr_; +extern const XERdescriptor_t PortManagementInfoContainer_iei_xer_; +extern const TTCN_OERdescriptor_t PortManagementInfoContainer_iei_oer_; +extern const TTCN_Typedescriptor_t PortManagementInfoContainer_iei_descr_; +extern const XERdescriptor_t PortManagementInfoContainer_iel_xer_; +extern const TTCN_OERdescriptor_t PortManagementInfoContainer_iel_oer_; +extern const TTCN_Typedescriptor_t PortManagementInfoContainer_iel_descr_; +extern const XERdescriptor_t EthernetHeaderCompressConfig_spareBits_xer_; +extern const TTCN_OERdescriptor_t EthernetHeaderCompressConfig_spareBits_oer_; +extern const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_spareBits_descr_; +extern const XERdescriptor_t EthernetHeaderCompressConfig_cidLength_xer_; +extern const TTCN_OERdescriptor_t EthernetHeaderCompressConfig_cidLength_oer_; +extern const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_cidLength_descr_; +extern const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_descr_; +extern const XERdescriptor_t EthernetHeaderCompressConfig_iei_xer_; +extern const TTCN_OERdescriptor_t EthernetHeaderCompressConfig_iei_oer_; +extern const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_iei_descr_; +extern const XERdescriptor_t EthernetHeaderCompressConfig_iel_xer_; +extern const TTCN_OERdescriptor_t EthernetHeaderCompressConfig_iel_oer_; +extern const TTCN_Typedescriptor_t EthernetHeaderCompressConfig_iel_descr_; +extern const XERdescriptor_t PDU__Address_spare_xer_; +extern const TTCN_OERdescriptor_t PDU__Address_spare_oer_; +extern const TTCN_Typedescriptor_t PDU__Address_spare_descr_; +extern const XERdescriptor_t PDU__Address_si16LLA_xer_; +extern const TTCN_OERdescriptor_t PDU__Address_si16LLA_oer_; +extern const TTCN_Typedescriptor_t PDU__Address_si16LLA_descr_; +extern const XERdescriptor_t PDU__Address_typeValue_xer_; +extern const TTCN_OERdescriptor_t PDU__Address_typeValue_oer_; +extern const TTCN_Typedescriptor_t PDU__Address_typeValue_descr_; +extern const XERdescriptor_t PDU__Address_adressInfo_xer_; +extern const TTCN_OERdescriptor_t PDU__Address_adressInfo_oer_; +extern const TTCN_Typedescriptor_t PDU__Address_adressInfo_descr_; +extern const TTCN_Typedescriptor_t PDU__Address_descr_; +extern const XERdescriptor_t PDU__Address_iei_xer_; +extern const TTCN_OERdescriptor_t PDU__Address_iei_oer_; +extern const TTCN_Typedescriptor_t PDU__Address_iei_descr_; +extern const XERdescriptor_t PDU__Address_iel_xer_; +extern const TTCN_OERdescriptor_t PDU__Address_iel_oer_; +extern const TTCN_Typedescriptor_t PDU__Address_iel_descr_; +extern const XERdescriptor_t PDU__Address_ipv6Address_xer_; +extern const TTCN_OERdescriptor_t PDU__Address_ipv6Address_oer_; +extern const TTCN_Typedescriptor_t PDU__Address_ipv6Address_descr_; +extern const XERdescriptor_t RequestedMBSContainer_iei_xer_; +extern const TTCN_OERdescriptor_t RequestedMBSContainer_iei_oer_; +extern const TTCN_Typedescriptor_t RequestedMBSContainer_iei_descr_; +extern const XERdescriptor_t RequestedMBSContainer_iel_xer_; +extern const TTCN_OERdescriptor_t RequestedMBSContainer_iel_oer_; +extern const TTCN_Typedescriptor_t RequestedMBSContainer_iel_descr_; +extern const TTCN_Typedescriptor_t RequestedMBSContainer_sessionInfo_descr_; +extern const XERdescriptor_t MBSSessionInfo_spareBits_xer_; +extern const TTCN_OERdescriptor_t MBSSessionInfo_spareBits_oer_; +extern const TTCN_Typedescriptor_t MBSSessionInfo_spareBits_descr_; +extern const XERdescriptor_t MBSSessionInfo_operation_xer_; +extern const TTCN_OERdescriptor_t MBSSessionInfo_operation_oer_; +extern const TTCN_Typedescriptor_t MBSSessionInfo_operation_descr_; +extern const XERdescriptor_t MBSSessionInfo_typeOfSessionId_xer_; +extern const TTCN_OERdescriptor_t MBSSessionInfo_typeOfSessionId_oer_; +extern const TTCN_Typedescriptor_t MBSSessionInfo_typeOfSessionId_descr_; +extern const XERdescriptor_t MBSSessionInfo_sessionId_xer_; +extern const TTCN_OERdescriptor_t MBSSessionInfo_sessionId_oer_; +extern const TTCN_Typedescriptor_t MBSSessionInfo_sessionId_descr_; +extern const TTCN_Typedescriptor_t MBSSessionInfo_descr_; +extern const TTCN_Typedescriptor_t RequestedMBSContainer_descr_; +extern const XERdescriptor_t PDUSessionPairId_iei_xer_; +extern const TTCN_OERdescriptor_t PDUSessionPairId_iei_oer_; +extern const TTCN_Typedescriptor_t PDUSessionPairId_iei_descr_; +extern const XERdescriptor_t PDUSessionPairId_iel_xer_; +extern const TTCN_OERdescriptor_t PDUSessionPairId_iel_oer_; +extern const TTCN_Typedescriptor_t PDUSessionPairId_iel_descr_; +extern const XERdescriptor_t PDUSessionPairId_id_xer_; +extern const TTCN_OERdescriptor_t PDUSessionPairId_id_oer_; +extern const TTCN_Typedescriptor_t PDUSessionPairId_id_descr_; +extern const TTCN_Typedescriptor_t PDUSessionPairId_descr_; +extern const XERdescriptor_t RSN_iei_xer_; +extern const TTCN_OERdescriptor_t RSN_iei_oer_; +extern const TTCN_Typedescriptor_t RSN_iei_descr_; +extern const XERdescriptor_t RSN_iel_xer_; +extern const TTCN_OERdescriptor_t RSN_iel_oer_; +extern const TTCN_Typedescriptor_t RSN_iel_descr_; +extern const XERdescriptor_t RSN_rsn_xer_; +extern const TTCN_OERdescriptor_t RSN_rsn_oer_; +extern const TTCN_Typedescriptor_t RSN_rsn_descr_; +extern const TTCN_Typedescriptor_t RSN_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_messageType_descr_; +extern const XERdescriptor_t QoS__Rules_iel_xer_; +extern const TTCN_OERdescriptor_t QoS__Rules_iel_oer_; +extern const TTCN_Typedescriptor_t QoS__Rules_iel_descr_; +extern const TTCN_Typedescriptor_t QoS__RuleList_descr_; +extern const XERdescriptor_t QoS__Rule_identifier_xer_; +extern const TTCN_OERdescriptor_t QoS__Rule_identifier_oer_; +extern const TTCN_Typedescriptor_t QoS__Rule_identifier_descr_; +extern const XERdescriptor_t QoS__Rule_iel_xer_; +extern const TTCN_OERdescriptor_t QoS__Rule_iel_oer_; +extern const TTCN_Typedescriptor_t QoS__Rule_iel_descr_; +extern const XERdescriptor_t QoS__Rule_ruleOperationCode_xer_; +extern const TTCN_OERdescriptor_t QoS__Rule_ruleOperationCode_oer_; +extern const TTCN_Typedescriptor_t QoS__Rule_ruleOperationCode_descr_; +extern const XERdescriptor_t QoS__Rule_dqrBit_xer_; +extern const TTCN_OERdescriptor_t QoS__Rule_dqrBit_oer_; +extern const TTCN_Typedescriptor_t QoS__Rule_dqrBit_descr_; +extern const XERdescriptor_t QoS__Rule_numOfPacketFilters_xer_; +extern const TTCN_OERdescriptor_t QoS__Rule_numOfPacketFilters_oer_; +extern const TTCN_Typedescriptor_t QoS__Rule_numOfPacketFilters_descr_; +extern const TTCN_Typedescriptor_t QoS__Rule_descr_; +extern const TTCN_Typedescriptor_t NG__PacketFilterList_descr_; +extern const TTCN_Typedescriptor_t NG__PacketFilterList__Type1_descr_; +extern const XERdescriptor_t NG__PacketFilter__Type1_spare_xer_; +extern const TTCN_OERdescriptor_t NG__PacketFilter__Type1_spare_oer_; +extern const TTCN_Typedescriptor_t NG__PacketFilter__Type1_spare_descr_; +extern const XERdescriptor_t NG__PacketFilter__Type1_packetFilterId_xer_; +extern const TTCN_OERdescriptor_t NG__PacketFilter__Type1_packetFilterId_oer_; +extern const TTCN_Typedescriptor_t NG__PacketFilter__Type1_packetFilterId_descr_; +extern const TTCN_Typedescriptor_t NG__PacketFilter__Type1_descr_; +extern const TTCN_Typedescriptor_t NG__PacketFilterList__Type2_descr_; +extern const XERdescriptor_t NG__PacketFilter__Type2_spare_xer_; +extern const TTCN_OERdescriptor_t NG__PacketFilter__Type2_spare_oer_; +extern const TTCN_Typedescriptor_t NG__PacketFilter__Type2_spare_descr_; +extern const XERdescriptor_t NG__PacketFilter__Type2_direction_xer_; +extern const TTCN_OERdescriptor_t NG__PacketFilter__Type2_direction_oer_; +extern const TTCN_Typedescriptor_t NG__PacketFilter__Type2_direction_descr_; +extern const XERdescriptor_t NG__PacketFilter__Type2_packetFilterId_xer_; +extern const TTCN_OERdescriptor_t NG__PacketFilter__Type2_packetFilterId_oer_; +extern const TTCN_Typedescriptor_t NG__PacketFilter__Type2_packetFilterId_descr_; +extern const TTCN_Typedescriptor_t NG__PacketFilter__Type2_descr_; +extern const XERdescriptor_t NG__PacketFilter__Type2_len_xer_; +extern const TTCN_OERdescriptor_t NG__PacketFilter__Type2_len_oer_; +extern const TTCN_Typedescriptor_t NG__PacketFilter__Type2_len_descr_; +extern const XERdescriptor_t NG__PacketFilter__Type2_contents_xer_; +extern const TTCN_OERdescriptor_t NG__PacketFilter__Type2_contents_oer_; +extern const TTCN_Typedescriptor_t NG__PacketFilter__Type2_contents_descr_; +extern const XERdescriptor_t QoS__Rule_precedence_xer_; +extern const TTCN_OERdescriptor_t QoS__Rule_precedence_oer_; +extern const TTCN_Typedescriptor_t QoS__Rule_precedence_descr_; +extern const XERdescriptor_t QoS__Rule_spare_xer_; +extern const TTCN_OERdescriptor_t QoS__Rule_spare_oer_; +extern const TTCN_Typedescriptor_t QoS__Rule_spare_descr_; +extern const XERdescriptor_t QoS__Rule_segregation_xer_; +extern const TTCN_OERdescriptor_t QoS__Rule_segregation_oer_; +extern const TTCN_Typedescriptor_t QoS__Rule_segregation_descr_; +extern const XERdescriptor_t QoS__Rule_flowIdentifier_xer_; +extern const TTCN_OERdescriptor_t QoS__Rule_flowIdentifier_oer_; +extern const TTCN_Typedescriptor_t QoS__Rule_flowIdentifier_descr_; +extern const TTCN_Typedescriptor_t QoS__Rules_descr_; +extern const XERdescriptor_t QoS__Rules_iei_xer_; +extern const TTCN_OERdescriptor_t QoS__Rules_iei_oer_; +extern const TTCN_Typedescriptor_t QoS__Rules_iei_descr_; +extern const XERdescriptor_t Session__AMBR_unitDL_xer_; +extern const TTCN_OERdescriptor_t Session__AMBR_unitDL_oer_; +extern const TTCN_Typedescriptor_t Session__AMBR_unitDL_descr_; +extern const XERdescriptor_t Session__AMBR_downlink_xer_; +extern const TTCN_OERdescriptor_t Session__AMBR_downlink_oer_; +extern const TTCN_Typedescriptor_t Session__AMBR_downlink_descr_; +extern const XERdescriptor_t Session__AMBR_unitUL_xer_; +extern const TTCN_OERdescriptor_t Session__AMBR_unitUL_oer_; +extern const TTCN_Typedescriptor_t Session__AMBR_unitUL_descr_; +extern const XERdescriptor_t Session__AMBR_uplink_xer_; +extern const TTCN_OERdescriptor_t Session__AMBR_uplink_oer_; +extern const TTCN_Typedescriptor_t Session__AMBR_uplink_descr_; +extern const TTCN_Typedescriptor_t Session__AMBR_descr_; +extern const XERdescriptor_t Session__AMBR_iei_xer_; +extern const TTCN_OERdescriptor_t Session__AMBR_iei_oer_; +extern const TTCN_Typedescriptor_t Session__AMBR_iei_descr_; +extern const XERdescriptor_t Session__AMBR_iel_xer_; +extern const TTCN_OERdescriptor_t Session__AMBR_iel_oer_; +extern const TTCN_Typedescriptor_t Session__AMBR_iel_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__ACCEPT_descr_; +extern const TTCN_Typedescriptor_t MappedEPSBearerContexts_mappedContextList_descr_; +extern const XERdescriptor_t MappedEPSContext_epsBearerId_xer_; +extern const TTCN_OERdescriptor_t MappedEPSContext_epsBearerId_oer_; +extern const TTCN_Typedescriptor_t MappedEPSContext_epsBearerId_descr_; +extern const XERdescriptor_t MappedEPSContext_lenOfContext_xer_; +extern const TTCN_OERdescriptor_t MappedEPSContext_lenOfContext_oer_; +extern const TTCN_Typedescriptor_t MappedEPSContext_lenOfContext_descr_; +extern const XERdescriptor_t MappedEPSContext_operationCode_xer_; +extern const TTCN_OERdescriptor_t MappedEPSContext_operationCode_oer_; +extern const TTCN_Typedescriptor_t MappedEPSContext_operationCode_descr_; +extern const XERdescriptor_t MappedEPSContext_spare_xer_; +extern const TTCN_OERdescriptor_t MappedEPSContext_spare_oer_; +extern const TTCN_Typedescriptor_t MappedEPSContext_spare_descr_; +extern const XERdescriptor_t MappedEPSContext_eBit_xer_; +extern const TTCN_OERdescriptor_t MappedEPSContext_eBit_oer_; +extern const TTCN_Typedescriptor_t MappedEPSContext_eBit_descr_; +extern const XERdescriptor_t MappedEPSContext_numOfParams_xer_; +extern const TTCN_OERdescriptor_t MappedEPSContext_numOfParams_oer_; +extern const TTCN_Typedescriptor_t MappedEPSContext_numOfParams_descr_; +extern const TTCN_Typedescriptor_t MappedEPSContext_epsParamsList_descr_; +extern const XERdescriptor_t EPSParameters_id_xer_; +extern const TTCN_OERdescriptor_t EPSParameters_id_oer_; +extern const TTCN_Typedescriptor_t EPSParameters_id_descr_; +extern const XERdescriptor_t EPSParameters_epsParam_xer_; +extern const TTCN_OERdescriptor_t EPSParameters_epsParam_oer_; +extern const TTCN_Typedescriptor_t EPSParameters_epsParam_descr_; +extern const TTCN_Typedescriptor_t EPSParameters_descr_; +extern const XERdescriptor_t EPSParameters_lenOfContent_xer_; +extern const TTCN_OERdescriptor_t EPSParameters_lenOfContent_oer_; +extern const TTCN_Typedescriptor_t EPSParameters_lenOfContent_descr_; +extern const TTCN_Typedescriptor_t MappedEPSContext_descr_; +extern const TTCN_Typedescriptor_t MappedEPSBearerContexts_descr_; +extern const XERdescriptor_t MappedEPSBearerContexts_iei_xer_; +extern const TTCN_OERdescriptor_t MappedEPSBearerContexts_iei_oer_; +extern const TTCN_Typedescriptor_t MappedEPSBearerContexts_iei_descr_; +extern const XERdescriptor_t MappedEPSBearerContexts_iel_xer_; +extern const TTCN_OERdescriptor_t MappedEPSBearerContexts_iel_oer_; +extern const TTCN_Typedescriptor_t MappedEPSBearerContexts_iel_descr_; +extern const XERdescriptor_t QoSFlowDescr_iei_xer_; +extern const TTCN_OERdescriptor_t QoSFlowDescr_iei_oer_; +extern const TTCN_Typedescriptor_t QoSFlowDescr_iei_descr_; +extern const XERdescriptor_t QoSFlowDescr_iel_xer_; +extern const TTCN_OERdescriptor_t QoSFlowDescr_iel_oer_; +extern const TTCN_Typedescriptor_t QoSFlowDescr_iel_descr_; +extern const TTCN_Typedescriptor_t QoSFlowDescr_listofFlows_descr_; +extern const XERdescriptor_t QoS__Flow_spare2_xer_; +extern const TTCN_OERdescriptor_t QoS__Flow_spare2_oer_; +extern const TTCN_Typedescriptor_t QoS__Flow_spare2_descr_; +extern const XERdescriptor_t QoS__Flow_qfi_xer_; +extern const TTCN_OERdescriptor_t QoS__Flow_qfi_oer_; +extern const TTCN_Typedescriptor_t QoS__Flow_qfi_descr_; +extern const XERdescriptor_t QoS__Flow_operationCode_xer_; +extern const TTCN_OERdescriptor_t QoS__Flow_operationCode_oer_; +extern const TTCN_Typedescriptor_t QoS__Flow_operationCode_descr_; +extern const XERdescriptor_t QoS__Flow_spare6_xer_; +extern const TTCN_OERdescriptor_t QoS__Flow_spare6_oer_; +extern const TTCN_Typedescriptor_t QoS__Flow_spare6_descr_; +extern const XERdescriptor_t QoS__Flow_eBit_xer_; +extern const TTCN_OERdescriptor_t QoS__Flow_eBit_oer_; +extern const TTCN_Typedescriptor_t QoS__Flow_eBit_descr_; +extern const XERdescriptor_t QoS__Flow_numOfParameters_xer_; +extern const TTCN_OERdescriptor_t QoS__Flow_numOfParameters_oer_; +extern const TTCN_Typedescriptor_t QoS__Flow_numOfParameters_descr_; +extern const TTCN_Typedescriptor_t QoS__Flow_descr_; +extern const TTCN_Typedescriptor_t QoS__Flow_parameterList_descr_; +extern const TTCN_Typedescriptor_t QoSFlowDescr_descr_; +extern const XERdescriptor_t NGSM__NetworkFeatureSupport_spareBits_xer_; +extern const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_spareBits_oer_; +extern const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_spareBits_descr_; +extern const XERdescriptor_t NGSM__NetworkFeatureSupport_ept__S1_xer_; +extern const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_ept__S1_oer_; +extern const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_ept__S1_descr_; +extern const XERdescriptor_t NGSM__NetworkFeatureSupport_spare_xer_; +extern const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_spare_oer_; +extern const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_spare_descr_; +extern const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_descr_; +extern const XERdescriptor_t NGSM__NetworkFeatureSupport_iei_xer_; +extern const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_iei_oer_; +extern const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_iei_descr_; +extern const XERdescriptor_t NGSM__NetworkFeatureSupport_iel_xer_; +extern const TTCN_OERdescriptor_t NGSM__NetworkFeatureSupport_iel_oer_; +extern const TTCN_Typedescriptor_t NGSM__NetworkFeatureSupport_iel_descr_; +extern const XERdescriptor_t ATSSSContainer_contents_xer_; +extern const TTCN_OERdescriptor_t ATSSSContainer_contents_oer_; +extern const TTCN_Typedescriptor_t ATSSSContainer_contents_descr_; +extern const TTCN_Typedescriptor_t ATSSSContainer_descr_; +extern const XERdescriptor_t ATSSSContainer_iei_xer_; +extern const TTCN_OERdescriptor_t ATSSSContainer_iei_oer_; +extern const TTCN_Typedescriptor_t ATSSSContainer_iei_descr_; +extern const XERdescriptor_t ATSSSContainer_iel_xer_; +extern const TTCN_OERdescriptor_t ATSSSContainer_iel_oer_; +extern const TTCN_Typedescriptor_t ATSSSContainer_iel_descr_; +extern const XERdescriptor_t ReceivedMBSContainer_iei_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSContainer_iei_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSContainer_iei_descr_; +extern const XERdescriptor_t ReceivedMBSContainer_iel_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSContainer_iel_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSContainer_iel_descr_; +extern const TTCN_Typedescriptor_t ReceivedMBSContainer_info_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_rejectCause_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_rejectCause_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_rejectCause_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_msai_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_msai_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_msai_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_md_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_md_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_md_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_spareBits_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_spareBits_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_spareBits_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_ipat_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_ipat_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_ipat_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_msci_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_msci_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_msci_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_mti_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_mti_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_mti_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_ipae_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_ipae_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_ipae_descr_; +extern const XERdescriptor_t TMGI__LV_iel_xer_; +extern const TTCN_OERdescriptor_t TMGI__LV_iel_oer_; +extern const TTCN_Typedescriptor_t TMGI__LV_iel_descr_; +extern const XERdescriptor_t TMGI__LV_serviceID_xer_; +extern const TTCN_OERdescriptor_t TMGI__LV_serviceID_oer_; +extern const TTCN_Typedescriptor_t TMGI__LV_serviceID_descr_; +extern const TTCN_Typedescriptor_t TMGI__LV_descr_; +extern const XERdescriptor_t TMGI__LV_plmn_xer_; +extern const TTCN_OERdescriptor_t TMGI__LV_plmn_oer_; +extern const TTCN_Typedescriptor_t TMGI__LV_plmn_descr_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_sourceIPaddr_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_sourceIPaddr_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_sourceIPaddr_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_destIPaddr_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_destIPaddr_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_destIPaddr_descr_; +extern const TTCN_Typedescriptor_t MBS__ServiceArea_descr_; +extern const XERdescriptor_t NR__CGI__List_iel_xer_; +extern const TTCN_OERdescriptor_t NR__CGI__List_iel_oer_; +extern const TTCN_Typedescriptor_t NR__CGI__List_iel_descr_; +extern const TTCN_Typedescriptor_t NR__CGI__List_nrCGI_descr_; +extern const XERdescriptor_t NR__CGI_cellId_xer_; +extern const TTCN_OERdescriptor_t NR__CGI_cellId_oer_; +extern const TTCN_Typedescriptor_t NR__CGI_cellId_descr_; +extern const XERdescriptor_t NR__CGI_plmn_xer_; +extern const TTCN_OERdescriptor_t NR__CGI_plmn_oer_; +extern const TTCN_Typedescriptor_t NR__CGI_plmn_descr_; +extern const TTCN_Typedescriptor_t NR__CGI_descr_; +extern const TTCN_Typedescriptor_t NR__CGI__List_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_timers_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_timers_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_timers_descr_; +extern const XERdescriptor_t ReceivedMBSInfo_securityContainer_xer_; +extern const TTCN_OERdescriptor_t ReceivedMBSInfo_securityContainer_oer_; +extern const TTCN_Typedescriptor_t ReceivedMBSInfo_securityContainer_descr_; +extern const TTCN_Typedescriptor_t ReceivedMBSContainer_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__ESTABLISHMENT__REJECT_descr_; +extern const XERdescriptor_t AllowedSSCMode_spare_xer_; +extern const TTCN_OERdescriptor_t AllowedSSCMode_spare_oer_; +extern const TTCN_Typedescriptor_t AllowedSSCMode_spare_descr_; +extern const XERdescriptor_t AllowedSSCMode_ssc3_xer_; +extern const TTCN_OERdescriptor_t AllowedSSCMode_ssc3_oer_; +extern const TTCN_Typedescriptor_t AllowedSSCMode_ssc3_descr_; +extern const XERdescriptor_t AllowedSSCMode_ssc2_xer_; +extern const TTCN_OERdescriptor_t AllowedSSCMode_ssc2_oer_; +extern const TTCN_Typedescriptor_t AllowedSSCMode_ssc2_descr_; +extern const XERdescriptor_t AllowedSSCMode_ssc1_xer_; +extern const TTCN_OERdescriptor_t AllowedSSCMode_ssc1_oer_; +extern const TTCN_Typedescriptor_t AllowedSSCMode_ssc1_descr_; +extern const TTCN_Typedescriptor_t AllowedSSCMode_descr_; +extern const XERdescriptor_t AllowedSSCMode_iei_xer_; +extern const TTCN_Typedescriptor_t AllowedSSCMode_iei_descr_; +extern const XERdescriptor_t NGSM__CongestionReattemptInd_spareBits_xer_; +extern const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_spareBits_oer_; +extern const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_spareBits_descr_; +extern const XERdescriptor_t NGSM__CongestionReattemptInd_catbo_xer_; +extern const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_catbo_oer_; +extern const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_catbo_descr_; +extern const XERdescriptor_t NGSM__CongestionReattemptInd_abo_xer_; +extern const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_abo_oer_; +extern const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_abo_descr_; +extern const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_descr_; +extern const XERdescriptor_t NGSM__CongestionReattemptInd_iei_xer_; +extern const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_iei_oer_; +extern const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_iei_descr_; +extern const XERdescriptor_t NGSM__CongestionReattemptInd_iel_xer_; +extern const TTCN_OERdescriptor_t NGSM__CongestionReattemptInd_iel_oer_; +extern const TTCN_Typedescriptor_t NGSM__CongestionReattemptInd_iel_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMMAND_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__COMPLETE_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__AUTHENTICATION__RESULT_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REQUEST_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__REJECT_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMPLETE_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__MODIFICATION__COMMAND__REJECT_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REQUEST_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REJECT_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REJECT_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__REJECT_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REJECT_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__REJECT_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMMAND_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__PDU__SESSION__RELEASE__COMPLETE_descr_; +extern const XERdescriptor_t NG__GSM__STATUS_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NG__GSM__STATUS_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NG__GSM__STATUS_protocolDiscriminator_descr_; +extern const XERdescriptor_t NG__GSM__STATUS_procedureTransactionIdentifier_xer_; +extern const TTCN_OERdescriptor_t NG__GSM__STATUS_procedureTransactionIdentifier_oer_; +extern const TTCN_Typedescriptor_t NG__GSM__STATUS_procedureTransactionIdentifier_descr_; +extern const XERdescriptor_t NG__GSM__STATUS_messageType_xer_; +extern const TTCN_OERdescriptor_t NG__GSM__STATUS_messageType_oer_; +extern const TTCN_Typedescriptor_t NG__GSM__STATUS_messageType_descr_; +extern const TTCN_Typedescriptor_t NG__GSM__STATUS_descr_; +extern const XERdescriptor_t CIoTSmallDataContainer_iel_xer_; +extern const TTCN_OERdescriptor_t CIoTSmallDataContainer_iel_oer_; +extern const TTCN_Typedescriptor_t CIoTSmallDataContainer_iel_descr_; +extern const XERdescriptor_t CIoTSmallDataContainer_dataType_xer_; +extern const TTCN_OERdescriptor_t CIoTSmallDataContainer_dataType_oer_; +extern const TTCN_Typedescriptor_t CIoTSmallDataContainer_dataType_descr_; +extern const XERdescriptor_t CIoTSmallDataContainer_ddx_xer_; +extern const TTCN_OERdescriptor_t CIoTSmallDataContainer_ddx_oer_; +extern const TTCN_Typedescriptor_t CIoTSmallDataContainer_ddx_descr_; +extern const XERdescriptor_t CIoTSmallDataContainer_pduSessionId_xer_; +extern const TTCN_OERdescriptor_t CIoTSmallDataContainer_pduSessionId_oer_; +extern const TTCN_Typedescriptor_t CIoTSmallDataContainer_pduSessionId_descr_; +extern const XERdescriptor_t CIoTSmallDataContainer_dataContents_xer_; +extern const TTCN_OERdescriptor_t CIoTSmallDataContainer_dataContents_oer_; +extern const TTCN_Typedescriptor_t CIoTSmallDataContainer_dataContents_descr_; +extern const TTCN_Typedescriptor_t CIoTSmallDataContainer_descr_; +extern const XERdescriptor_t CIoTSmallDataContainer_lengthOfAddInfo_xer_; +extern const TTCN_OERdescriptor_t CIoTSmallDataContainer_lengthOfAddInfo_oer_; +extern const TTCN_Typedescriptor_t CIoTSmallDataContainer_lengthOfAddInfo_descr_; +extern const XERdescriptor_t CIoTSmallDataContainer_addInfo_xer_; +extern const TTCN_OERdescriptor_t CIoTSmallDataContainer_addInfo_oer_; +extern const TTCN_Typedescriptor_t CIoTSmallDataContainer_addInfo_descr_; +extern const TTCN_Typedescriptor_t QoS__FlowList_descr_; +extern const XERdescriptor_t UPU__Header_spare_xer_; +extern const TTCN_OERdescriptor_t UPU__Header_spare_oer_; +extern const TTCN_Typedescriptor_t UPU__Header_spare_descr_; +extern const XERdescriptor_t UPU__Header_reg_xer_; +extern const TTCN_OERdescriptor_t UPU__Header_reg_oer_; +extern const TTCN_Typedescriptor_t UPU__Header_reg_descr_; +extern const XERdescriptor_t UPU__Header_ack_xer_; +extern const TTCN_OERdescriptor_t UPU__Header_ack_oer_; +extern const TTCN_Typedescriptor_t UPU__Header_ack_descr_; +extern const XERdescriptor_t UPU__Header_upuDataType_xer_; +extern const TTCN_OERdescriptor_t UPU__Header_upuDataType_oer_; +extern const TTCN_Typedescriptor_t UPU__Header_upuDataType_descr_; +extern const TTCN_Typedescriptor_t UPU__Header_descr_; +extern const XERdescriptor_t UPU__Param_spare_xer_; +extern const TTCN_OERdescriptor_t UPU__Param_spare_oer_; +extern const TTCN_Typedescriptor_t UPU__Param_spare_descr_; +extern const XERdescriptor_t UPU__Param_dataSetType_xer_; +extern const TTCN_OERdescriptor_t UPU__Param_dataSetType_oer_; +extern const TTCN_Typedescriptor_t UPU__Param_dataSetType_descr_; +extern const XERdescriptor_t UPU__Param_len_xer_; +extern const TTCN_OERdescriptor_t UPU__Param_len_oer_; +extern const TTCN_Typedescriptor_t UPU__Param_len_descr_; +extern const XERdescriptor_t UPU__Param_dataSet_xer_; +extern const TTCN_OERdescriptor_t UPU__Param_dataSet_oer_; +extern const TTCN_Typedescriptor_t UPU__Param_dataSet_descr_; +extern const TTCN_Typedescriptor_t UPU__Param_descr_; +extern const TTCN_Typedescriptor_t UPU__ParamList_descr_; +extern const XERdescriptor_t UPU__TransparentContainer_iel_xer_; +extern const TTCN_OERdescriptor_t UPU__TransparentContainer_iel_oer_; +extern const TTCN_Typedescriptor_t UPU__TransparentContainer_iel_descr_; +extern const XERdescriptor_t UPU__TransparentContainer_upuMAC__I_xer_; +extern const TTCN_OERdescriptor_t UPU__TransparentContainer_upuMAC__I_oer_; +extern const TTCN_Typedescriptor_t UPU__TransparentContainer_upuMAC__I_descr_; +extern const TTCN_Typedescriptor_t UPU__TransparentContainer_descr_; +extern const XERdescriptor_t UPU__TransparentContainer_iei_xer_; +extern const TTCN_OERdescriptor_t UPU__TransparentContainer_iei_oer_; +extern const TTCN_Typedescriptor_t UPU__TransparentContainer_iei_descr_; +extern const XERdescriptor_t UPU__TransparentContainer_counter_xer_; +extern const TTCN_OERdescriptor_t UPU__TransparentContainer_counter_oer_; +extern const TTCN_Typedescriptor_t UPU__TransparentContainer_counter_descr_; +extern const XERdescriptor_t NSSAI__DELETE__REQUEST_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_skipIndicator_descr_; +extern const XERdescriptor_t NSSAI__DELETE__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t NSSAI__DELETE__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_messageType_descr_; +extern const XERdescriptor_t NSSAI__DELETE__REQUEST_deleteNSSAI__Type_xer_; +extern const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_deleteNSSAI__Type_oer_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_deleteNSSAI__Type_descr_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_descr_; +extern const XERdescriptor_t NSSAI__DELETE__REQUEST_configuredNSSAI_xer_; +extern const TTCN_OERdescriptor_t NSSAI__DELETE__REQUEST_configuredNSSAI_oer_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__REQUEST_configuredNSSAI_descr_; +extern const XERdescriptor_t AllowedNSSAI_allowedNSSAI_xer_; +extern const TTCN_OERdescriptor_t AllowedNSSAI_allowedNSSAI_oer_; +extern const TTCN_Typedescriptor_t AllowedNSSAI_allowedNSSAI_descr_; +extern const XERdescriptor_t AllowedNSSAI_spareBits_xer_; +extern const TTCN_OERdescriptor_t AllowedNSSAI_spareBits_oer_; +extern const TTCN_Typedescriptor_t AllowedNSSAI_spareBits_descr_; +extern const XERdescriptor_t AllowedNSSAI_accessType_xer_; +extern const TTCN_OERdescriptor_t AllowedNSSAI_accessType_oer_; +extern const TTCN_Typedescriptor_t AllowedNSSAI_accessType_descr_; +extern const TTCN_Typedescriptor_t AllowedNSSAI_descr_; +extern const XERdescriptor_t NSSAI__DELETE__RESPONSE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t NSSAI__DELETE__RESPONSE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__RESPONSE_skipIndicator_descr_; +extern const XERdescriptor_t NSSAI__DELETE__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t NSSAI__DELETE__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t NSSAI__DELETE__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t NSSAI__DELETE__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t NSSAI__DELETE__RESPONSE_descr_; +extern const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_skipIndicator_descr_; +extern const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_messageType_descr_; +extern const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__REQUEST_descr_; +extern const TTCN_Typedescriptor_t PacketCounterValueList_descr_; +extern const XERdescriptor_t PacketCounterValueList_0_xer_; +extern const TTCN_OERdescriptor_t PacketCounterValueList_0_oer_; +extern const TTCN_Typedescriptor_t PacketCounterValueList_0_descr_; +extern const XERdescriptor_t NR__SidelinkCounter_iei_xer_; +extern const TTCN_OERdescriptor_t NR__SidelinkCounter_iei_oer_; +extern const TTCN_Typedescriptor_t NR__SidelinkCounter_iei_descr_; +extern const XERdescriptor_t NR__SidelinkCounter_iel_xer_; +extern const TTCN_OERdescriptor_t NR__SidelinkCounter_iel_oer_; +extern const TTCN_Typedescriptor_t NR__SidelinkCounter_iel_descr_; +extern const TTCN_Typedescriptor_t NR__SidelinkCounter_descr_; +extern const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_skipIndicator_descr_; +extern const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t UE__TEST__LOOP__NR__SIDELINK__COUNTER__RESPONSE_descr_; +extern const XERdescriptor_t S1ToN1TransparentContainer_ciphAlg_xer_; +extern const TTCN_OERdescriptor_t S1ToN1TransparentContainer_ciphAlg_oer_; +extern const TTCN_Typedescriptor_t S1ToN1TransparentContainer_ciphAlg_descr_; +extern const XERdescriptor_t S1ToN1TransparentContainer_intAlg_xer_; +extern const TTCN_OERdescriptor_t S1ToN1TransparentContainer_intAlg_oer_; +extern const TTCN_Typedescriptor_t S1ToN1TransparentContainer_intAlg_descr_; +extern const XERdescriptor_t S1ToN1TransparentContainer_spareBit_xer_; +extern const TTCN_OERdescriptor_t S1ToN1TransparentContainer_spareBit_oer_; +extern const TTCN_Typedescriptor_t S1ToN1TransparentContainer_spareBit_descr_; +extern const XERdescriptor_t S1ToN1TransparentContainer_ncc_xer_; +extern const TTCN_OERdescriptor_t S1ToN1TransparentContainer_ncc_oer_; +extern const TTCN_Typedescriptor_t S1ToN1TransparentContainer_ncc_descr_; +extern const XERdescriptor_t S1ToN1TransparentContainer_tsc_xer_; +extern const TTCN_OERdescriptor_t S1ToN1TransparentContainer_tsc_oer_; +extern const TTCN_Typedescriptor_t S1ToN1TransparentContainer_tsc_descr_; +extern const XERdescriptor_t S1ToN1TransparentContainer_ksi5G_xer_; +extern const TTCN_OERdescriptor_t S1ToN1TransparentContainer_ksi5G_oer_; +extern const TTCN_Typedescriptor_t S1ToN1TransparentContainer_ksi5G_descr_; +extern const XERdescriptor_t S1ToN1TransparentContainer_spare_xer_; +extern const TTCN_OERdescriptor_t S1ToN1TransparentContainer_spare_oer_; +extern const TTCN_Typedescriptor_t S1ToN1TransparentContainer_spare_descr_; +extern const TTCN_Typedescriptor_t S1ToN1TransparentContainer_descr_; +extern const XERdescriptor_t S1ToN1TransparentContainer_mac_xer_; +extern const TTCN_OERdescriptor_t S1ToN1TransparentContainer_mac_oer_; +extern const TTCN_Typedescriptor_t S1ToN1TransparentContainer_mac_descr_; +extern const XERdescriptor_t IntraN1TransparentContainer_ciphAlg_xer_; +extern const TTCN_OERdescriptor_t IntraN1TransparentContainer_ciphAlg_oer_; +extern const TTCN_Typedescriptor_t IntraN1TransparentContainer_ciphAlg_descr_; +extern const XERdescriptor_t IntraN1TransparentContainer_intAlg_xer_; +extern const TTCN_OERdescriptor_t IntraN1TransparentContainer_intAlg_oer_; +extern const TTCN_Typedescriptor_t IntraN1TransparentContainer_intAlg_descr_; +extern const XERdescriptor_t IntraN1TransparentContainer_spareBits_xer_; +extern const TTCN_OERdescriptor_t IntraN1TransparentContainer_spareBits_oer_; +extern const TTCN_Typedescriptor_t IntraN1TransparentContainer_spareBits_descr_; +extern const XERdescriptor_t IntraN1TransparentContainer_kacf_xer_; +extern const TTCN_OERdescriptor_t IntraN1TransparentContainer_kacf_oer_; +extern const TTCN_Typedescriptor_t IntraN1TransparentContainer_kacf_descr_; +extern const XERdescriptor_t IntraN1TransparentContainer_tsc_xer_; +extern const TTCN_OERdescriptor_t IntraN1TransparentContainer_tsc_oer_; +extern const TTCN_Typedescriptor_t IntraN1TransparentContainer_tsc_descr_; +extern const XERdescriptor_t IntraN1TransparentContainer_ksi5G_xer_; +extern const TTCN_OERdescriptor_t IntraN1TransparentContainer_ksi5G_oer_; +extern const TTCN_Typedescriptor_t IntraN1TransparentContainer_ksi5G_descr_; +extern const XERdescriptor_t IntraN1TransparentContainer_sequenceNum_xer_; +extern const TTCN_OERdescriptor_t IntraN1TransparentContainer_sequenceNum_oer_; +extern const TTCN_Typedescriptor_t IntraN1TransparentContainer_sequenceNum_descr_; +extern const TTCN_Typedescriptor_t IntraN1TransparentContainer_descr_; +extern const XERdescriptor_t IntraN1TransparentContainer_mac_xer_; +extern const TTCN_OERdescriptor_t IntraN1TransparentContainer_mac_oer_; +extern const TTCN_Typedescriptor_t IntraN1TransparentContainer_mac_descr_; +extern const XERdescriptor_t SET__UAI__REQUEST_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t SET__UAI__REQUEST_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t SET__UAI__REQUEST_skipIndicator_descr_; +extern const XERdescriptor_t SET__UAI__REQUEST_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SET__UAI__REQUEST_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SET__UAI__REQUEST_protocolDiscriminator_descr_; +extern const XERdescriptor_t SET__UAI__REQUEST_messageType_xer_; +extern const TTCN_OERdescriptor_t SET__UAI__REQUEST_messageType_oer_; +extern const TTCN_Typedescriptor_t SET__UAI__REQUEST_messageType_descr_; +extern const XERdescriptor_t SET__UAI__REQUEST_spare_xer_; +extern const TTCN_OERdescriptor_t SET__UAI__REQUEST_spare_oer_; +extern const TTCN_Typedescriptor_t SET__UAI__REQUEST_spare_descr_; +extern const XERdescriptor_t SET__UAI__REQUEST_preferredRRCState_xer_; +extern const TTCN_OERdescriptor_t SET__UAI__REQUEST_preferredRRCState_oer_; +extern const TTCN_Typedescriptor_t SET__UAI__REQUEST_preferredRRCState_descr_; +extern const TTCN_Typedescriptor_t SET__UAI__REQUEST_descr_; +extern const XERdescriptor_t SET__UAI__RESPONSE_skipIndicator_xer_; +extern const TTCN_OERdescriptor_t SET__UAI__RESPONSE_skipIndicator_oer_; +extern const TTCN_Typedescriptor_t SET__UAI__RESPONSE_skipIndicator_descr_; +extern const XERdescriptor_t SET__UAI__RESPONSE_protocolDiscriminator_xer_; +extern const TTCN_OERdescriptor_t SET__UAI__RESPONSE_protocolDiscriminator_oer_; +extern const TTCN_Typedescriptor_t SET__UAI__RESPONSE_protocolDiscriminator_descr_; +extern const XERdescriptor_t SET__UAI__RESPONSE_messageType_xer_; +extern const TTCN_OERdescriptor_t SET__UAI__RESPONSE_messageType_oer_; +extern const TTCN_Typedescriptor_t SET__UAI__RESPONSE_messageType_descr_; +extern const TTCN_Typedescriptor_t SET__UAI__RESPONSE_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/NG_NAS_TypeDefs.o b/build/Ats_NG_NAS/NG_NAS_TypeDefs.o new file mode 100644 index 0000000000000000000000000000000000000000..b2c582976ef68b7a5b1b22d8cce534f39898361d Binary files /dev/null and b/build/Ats_NG_NAS/NG_NAS_TypeDefs.o differ diff --git a/build/Ats_NG_NAS/NG_NasEmu_CtrlAspTypes.cc b/build/Ats_NG_NAS/NG_NasEmu_CtrlAspTypes.cc new file mode 100644 index 0000000000000000000000000000000000000000..52924d667c4a96f9360ce985e522ca43d065f4d7 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NasEmu_CtrlAspTypes.cc @@ -0,0 +1,3440 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NG_NasEmu_CtrlAspTypes.hh" + +namespace NG__NasEmu__CtrlAspTypes { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0xd9, 0x82, 0x19, 0xf9, 0x43, 0x9d, 0x89, 0x50, 0xe0, 0x5c, 0x0c, 0x0e, 0x9a, 0x21, 0xa4, 0xbe }; + +/* Global variable definitions */ + +const XERdescriptor_t NG__NAS__SecurityInfo__Type_Algorithm_xer_ = { {"Algorithm>\n", "Algorithm>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityInfo__Type_Algorithm_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityInfo__Type_Algorithm_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NAS_SecurityInfo_Type.Algorithm", &BITSTRING_ber_, &CommonDefs::B4__Type_raw_, NULL, &NG__NAS__SecurityInfo__Type_Algorithm_xer_, &BITSTRING_json_, &NG__NAS__SecurityInfo__Type_Algorithm_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityInfo__Type_K__NAS_xer_ = { {"K_NAS>\n", "K_NAS>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NG__NAS__SecurityInfo__Type_K__NAS_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NG__NAS__SecurityInfo__Type_K__NAS_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NAS_SecurityInfo_Type.K_NAS", &BITSTRING_ber_, &CommonDefs::B128__Type_raw_, NULL, &NG__NAS__SecurityInfo__Type_K__NAS_xer_, &BITSTRING_json_, &NG__NAS__SecurityInfo__Type_K__NAS_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__SecurityInfo__Type +const TTCN_Typedescriptor_t NG__NAS__SecurityInfo__Type_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NAS_SecurityInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__SecurityStartRestart__Type +const TTCN_Typedescriptor_t NG__NAS__SecurityStartRestart__Type_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NAS_SecurityStartRestart_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__SecurityStartRestart__Type_NasCountReset_xer_ = { {"NasCountReset>\n", "NasCountReset>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NAS__SecurityStartRestart__Type_NasCountReset_oer_ext_arr_[0] = {}; +const int NG__NAS__SecurityStartRestart__Type_NasCountReset_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NAS__SecurityStartRestart__Type_NasCountReset_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__NAS__SecurityStartRestart__Type_NasCountReset_oer_ext_arr_, 0, NG__NAS__SecurityStartRestart__Type_NasCountReset_oer_p_}; +const TTCN_Typedescriptor_t NG__NAS__SecurityStartRestart__Type_NasCountReset_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NAS_SecurityStartRestart_Type.NasCountReset", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &NG__NAS__SecurityStartRestart__Type_NasCountReset_xer_, &BOOLEAN_json_, &NG__NAS__SecurityStartRestart__Type_NasCountReset_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__Security__Type +const TTCN_Typedescriptor_t NG__NAS__Security__Type_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NG__NAS__Security__Type_Release_xer_ = { {"Release>\n", "Release>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NG__NAS__Security__Type_Release_oer_ext_arr_[0] = {}; +const int NG__NAS__Security__Type_Release_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NG__NAS__Security__Type_Release_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NG__NAS__Security__Type_Release_oer_ext_arr_, 0, NG__NAS__Security__Type_Release_oer_p_}; +const TTCN_Typedescriptor_t NG__NAS__Security__Type_Release_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type.Release", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &NG__NAS__Security__Type_Release_xer_, &BOOLEAN_json_, &NG__NAS__Security__Type_Release_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NasCtrlRequest__Type +const TTCN_Typedescriptor_t NG__NasCtrlRequest__Type_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__CTRL__REQ +const TTCN_Typedescriptor_t NG__NAS__CTRL__REQ_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NG__NAS__CTRL__CNF +const TTCN_Typedescriptor_t NG__NAS__CTRL__CNF_descr_ = { "@NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +TTCN_Module module_object("NG_NasEmu_CtrlAspTypes", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_NG_NasEmu_CtrlAspTypes(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "NG_NAS_CTRL_CNF")) { + ((const NG__NAS__CTRL__CNF*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_CTRL_CNF template")) { + ((const NG__NAS__CTRL__CNF_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_CTRL_REQ")) { + ((const NG__NAS__CTRL__REQ*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_CTRL_REQ template")) { + ((const NG__NAS__CTRL__REQ_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityInfo_Type")) { + ((const NG__NAS__SecurityInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityInfo_Type template")) { + ((const NG__NAS__SecurityInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityStartRestart_Type")) { + ((const NG__NAS__SecurityStartRestart__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityStartRestart_Type template")) { + ((const NG__NAS__SecurityStartRestart__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_Security_Type")) { + ((const NG__NAS__Security__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NAS_Security_Type template")) { + ((const NG__NAS__Security__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NasCtrlRequest_Type")) { + ((const NG__NasCtrlRequest__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NG_NasCtrlRequest_Type template")) { + ((const NG__NasCtrlRequest__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_NG_NasEmu_CtrlAspTypes(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "NG_NAS_CTRL_CNF")) { + ((NG__NAS__CTRL__CNF*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_CTRL_CNF template")) { + ((NG__NAS__CTRL__CNF_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_CTRL_REQ")) { + ((NG__NAS__CTRL__REQ*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_CTRL_REQ template")) { + ((NG__NAS__CTRL__REQ_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityInfo_Type")) { + ((NG__NAS__SecurityInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityInfo_Type template")) { + ((NG__NAS__SecurityInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityStartRestart_Type")) { + ((NG__NAS__SecurityStartRestart__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_SecurityStartRestart_Type template")) { + ((NG__NAS__SecurityStartRestart__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_Security_Type")) { + ((NG__NAS__Security__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NAS_Security_Type template")) { + ((NG__NAS__Security__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NasCtrlRequest_Type")) { + ((NG__NasCtrlRequest__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NG_NasCtrlRequest_Type template")) { + ((NG__NasCtrlRequest__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NG_NasEmu_CtrlAspTypes"); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NasEmu__Common4G5G::cr__NASEmu__CoOrd__CNF, "cr_NASEmu_CoOrd_CNF", "NASEmu_CoOrd_CNF template", "NasEmu_Common4G5G", NasEmu__Common4G5G::print_var_NasEmu_Common4G5G); + global_scope->add_variable(&NasEmu__Common4G5G::cr__NASEmu__CoOrd__REQ, "cr_NASEmu_CoOrd_REQ", "NASEmu_CoOrd_REQ template", "NasEmu_Common4G5G", NasEmu__Common4G5G::print_var_NasEmu_Common4G5G); + global_scope->add_variable(&NasEmu__Common4G5G::cr__NasCtrlCnfAspCommonPart, "cr_NasCtrlCnfAspCommonPart", "NasCtrlCnfAspCommonPart_Type template", "NasEmu_Common4G5G", NasEmu__Common4G5G::print_var_NasEmu_Common4G5G); + global_scope->add_variable(&NasEmu__Common4G5G::cs__NasCtrlCnfAspCommonPart, "cs_NasCtrlCnfAspCommonPart", "NasCtrlCnfAspCommonPart_Type template", "NasEmu_Common4G5G", NasEmu__Common4G5G::print_var_NasEmu_Common4G5G); + global_scope->add_variable(&NasEmu__Common4G5G::tsc__NasEmu__TerminateOnError, "tsc_NasEmu_TerminateOnError", "boolean", "NasEmu_Common4G5G", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void NG__NAS__SecurityInfo__Type::init_vec() { fld_vec[0]=&field_Algorithm; fld_vec[1]=&field_K__NAS; } + +NG__NAS__SecurityInfo__Type::NG__NAS__SecurityInfo__Type() : Record_Type() { init_vec(); } + +NG__NAS__SecurityInfo__Type::NG__NAS__SecurityInfo__Type(const NG__NAS__SecurityInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Algorithm.is_bound() ) + field_Algorithm = other_value.field_Algorithm; +if (other_value.field_K__NAS.is_bound() ) + field_K__NAS = other_value.field_K__NAS; +init_vec(); +} + +NG__NAS__SecurityInfo__Type::NG__NAS__SecurityInfo__Type(const BITSTRING& par_Algorithm, + const BITSTRING& par_K__NAS) : field_Algorithm(par_Algorithm), + field_K__NAS(par_K__NAS) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__SecurityInfo__Type::get_descriptor() const { return &NG__NAS__SecurityInfo__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__SecurityInfo__Type::fld_descriptors[] = { &CommonDefs::B4__Type_descr_, &CommonDefs::B128__Key__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__SecurityInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__SecurityInfo__Type::fld_names[] = { "Algorithm", "K_NAS" }; +const char* NG__NAS__SecurityInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NAS__SecurityInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +single_value.value_elements[1] = was_any ? new BITSTRING_template(ANY_VALUE) : new BITSTRING_template; +} +} + +NG__NAS__SecurityInfo__Type_template::NG__NAS__SecurityInfo__Type_template(NG__NAS__SecurityInfo__Type_template* p_precondition, NG__NAS__SecurityInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__SecurityInfo__Type_template::NG__NAS__SecurityInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__SecurityInfo__Type_template::~NG__NAS__SecurityInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__SecurityInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__SecurityInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityInfo__Type_template::operator=(const NG__NAS__SecurityInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityInfo__Type_template::operator=(const NG__NAS__SecurityInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__SecurityInfo__Type NG__NAS__SecurityInfo__Type_template::valueof() const +{ +NG__NAS__SecurityInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BITSTRING_template& NG__NAS__SecurityInfo__Type_template::Algorithm() { return *(static_cast(get_at(0))); } +const BITSTRING_template& NG__NAS__SecurityInfo__Type_template::Algorithm() const { return *(static_cast(get_at(0))); } +BITSTRING_template& NG__NAS__SecurityInfo__Type_template::K__NAS() { return *(static_cast(get_at(1))); } +const BITSTRING_template& NG__NAS__SecurityInfo__Type_template::K__NAS() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__NAS__SecurityInfo__Type_template::get_descriptor() const { return &NG__NAS__SecurityInfo__Type_descr_; } +const char* NG__NAS__SecurityInfo__Type_template::fld_name(int p_index) const { return NG__NAS__SecurityInfo__Type::fld_names[p_index]; } +void NG__NAS__SecurityStartRestart__Type::init_vec() { fld_vec[0]=&field_Integrity; fld_vec[1]=&field_Ciphering; fld_vec[2]=&field_NasCountReset; } + +NG__NAS__SecurityStartRestart__Type::NG__NAS__SecurityStartRestart__Type() : Record_Type() { init_vec(); } + +NG__NAS__SecurityStartRestart__Type::NG__NAS__SecurityStartRestart__Type(const NG__NAS__SecurityStartRestart__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Integrity.is_bound() ) + field_Integrity = other_value.field_Integrity; +if (other_value.field_Ciphering.is_bound() ) + field_Ciphering = other_value.field_Ciphering; +if (other_value.field_NasCountReset.is_bound() ) + field_NasCountReset = other_value.field_NasCountReset; +init_vec(); +} + +NG__NAS__SecurityStartRestart__Type::NG__NAS__SecurityStartRestart__Type(const OPTIONAL& par_Integrity, + const OPTIONAL& par_Ciphering, + const OPTIONAL& par_NasCountReset) : field_Integrity(par_Integrity), + field_Ciphering(par_Ciphering), + field_NasCountReset(par_NasCountReset) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__SecurityStartRestart__Type::get_descriptor() const { return &NG__NAS__SecurityStartRestart__Type_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__SecurityStartRestart__Type::fld_descriptors[] = { &NG__NAS__SecurityInfo__Type_descr_, &NG__NAS__SecurityInfo__Type_descr_, &CommonDefs::Null__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__SecurityStartRestart__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__SecurityStartRestart__Type::fld_names[] = { "Integrity", "Ciphering", "NasCountReset" }; +const char* NG__NAS__SecurityStartRestart__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NG__NAS__SecurityStartRestart__Type::optional_indexes[] = { 0, 1, 2, -1 }; +const int* NG__NAS__SecurityStartRestart__Type::get_optional_indexes() const { return optional_indexes; } + +const int NG__NAS__SecurityStartRestart__Type::optional_indexes_asn[] = { 0, 1, 2, -1 }; +const int* NG__NAS__SecurityStartRestart__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NG__NAS__SecurityStartRestart__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 3; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NG__NAS__SecurityInfo__Type_template(ANY_OR_OMIT) : new NG__NAS__SecurityInfo__Type_template; +single_value.value_elements[1] = was_any ? new NG__NAS__SecurityInfo__Type_template(ANY_OR_OMIT) : new NG__NAS__SecurityInfo__Type_template; +single_value.value_elements[2] = was_any ? new BOOLEAN_template(ANY_OR_OMIT) : new BOOLEAN_template; +} +} + +NG__NAS__SecurityStartRestart__Type_template::NG__NAS__SecurityStartRestart__Type_template(NG__NAS__SecurityStartRestart__Type_template* p_precondition, NG__NAS__SecurityStartRestart__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__SecurityStartRestart__Type_template::NG__NAS__SecurityStartRestart__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__SecurityStartRestart__Type_template::~NG__NAS__SecurityStartRestart__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__SecurityStartRestart__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__SecurityStartRestart__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__SecurityStartRestart__Type_template& NG__NAS__SecurityStartRestart__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__SecurityStartRestart__Type_template& NG__NAS__SecurityStartRestart__Type_template::operator=(const NG__NAS__SecurityStartRestart__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__SecurityStartRestart__Type_template& NG__NAS__SecurityStartRestart__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__SecurityStartRestart__Type_template& NG__NAS__SecurityStartRestart__Type_template::operator=(const NG__NAS__SecurityStartRestart__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__SecurityStartRestart__Type NG__NAS__SecurityStartRestart__Type_template::valueof() const +{ +NG__NAS__SecurityStartRestart__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityStartRestart__Type_template::Integrity() { return *(static_cast(get_at(0))); } +const NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityStartRestart__Type_template::Integrity() const { return *(static_cast(get_at(0))); } +NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityStartRestart__Type_template::Ciphering() { return *(static_cast(get_at(1))); } +const NG__NAS__SecurityInfo__Type_template& NG__NAS__SecurityStartRestart__Type_template::Ciphering() const { return *(static_cast(get_at(1))); } +BOOLEAN_template& NG__NAS__SecurityStartRestart__Type_template::NasCountReset() { return *(static_cast(get_at(2))); } +const BOOLEAN_template& NG__NAS__SecurityStartRestart__Type_template::NasCountReset() const { return *(static_cast(get_at(2))); } +const TTCN_Typedescriptor_t* NG__NAS__SecurityStartRestart__Type_template::get_descriptor() const { return &NG__NAS__SecurityStartRestart__Type_descr_; } +const char* NG__NAS__SecurityStartRestart__Type_template::fld_name(int p_index) const { return NG__NAS__SecurityStartRestart__Type::fld_names[p_index]; } +void NG__NAS__Security__Type::copy_value(const NG__NAS__Security__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_StartRestart: +field_StartRestart = new NG__NAS__SecurityStartRestart__Type(*other_value.field_StartRestart); +break; +case ALT_Release: +field_Release = new BOOLEAN(*other_value.field_Release); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +NG__NAS__Security__Type::NG__NAS__Security__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +NG__NAS__Security__Type::NG__NAS__Security__Type(const NG__NAS__Security__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +NG__NAS__Security__Type::~NG__NAS__Security__Type() +{ +clean_up(); +} + +NG__NAS__Security__Type& NG__NAS__Security__Type::operator=(const NG__NAS__Security__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean NG__NAS__Security__Type::operator==(const NG__NAS__Security__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_StartRestart: +return *field_StartRestart == *other_value.field_StartRestart; +case ALT_Release: +return *field_Release == *other_value.field_Release; +default: +return FALSE; +} +} + +NG__NAS__SecurityStartRestart__Type& NG__NAS__Security__Type::StartRestart() +{ +if (union_selection != ALT_StartRestart) { +clean_up(); +field_StartRestart = new NG__NAS__SecurityStartRestart__Type; +union_selection = ALT_StartRestart; +} +return *field_StartRestart; +} + +const NG__NAS__SecurityStartRestart__Type& NG__NAS__Security__Type::StartRestart() const +{ +if (union_selection != ALT_StartRestart) TTCN_error("Using non-selected field StartRestart in a value of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +return *field_StartRestart; +} + +BOOLEAN& NG__NAS__Security__Type::Release() +{ +if (union_selection != ALT_Release) { +clean_up(); +field_Release = new BOOLEAN; +union_selection = ALT_Release; +} +return *field_Release; +} + +const BOOLEAN& NG__NAS__Security__Type::Release() const +{ +if (union_selection != ALT_Release) TTCN_error("Using non-selected field Release in a value of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +return *field_Release; +} + +boolean NG__NAS__Security__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +return union_selection == checked_selection; +} + +boolean NG__NAS__Security__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean NG__NAS__Security__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_StartRestart: return field_StartRestart->is_value(); +case ALT_Release: return field_Release->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void NG__NAS__Security__Type::clean_up() +{ +switch (union_selection) { +case ALT_StartRestart: + delete field_StartRestart; + break; +case ALT_Release: + delete field_Release; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean NG__NAS__Security__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NG__NAS__Security__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NG__NAS__Security__Type::clone() const { return new NG__NAS__Security__Type(*this); } +const TTCN_Typedescriptor_t* NG__NAS__Security__Type::get_descriptor() const { return &NG__NAS__Security__Type_descr_; } +void NG__NAS__Security__Type::log() const +{ +switch (union_selection) { +case ALT_StartRestart: +TTCN_Logger::log_event_str("{ StartRestart := "); +field_StartRestart->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_Release: +TTCN_Logger::log_event_str("{ Release := "); +field_Release->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void NG__NAS__Security__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type'"); + } + if (strcmp("StartRestart", param_field) == 0) { + StartRestart().set_param(param); + return; + } else if (strcmp("Release", param_field) == 0) { + Release().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "StartRestart")) { + StartRestart().set_param(*mp_last); + if (!StartRestart().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "Release")) { + Release().set_param(*mp_last); + if (!Release().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type.", last_name); +} + +Module_Param* NG__NAS__Security__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type'"); + } + if (strcmp("StartRestart", param_field) == 0) { + return StartRestart().get_param(param_name); + } else if (strcmp("Release", param_field) == 0) { + return Release().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__NAS__Security__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_StartRestart: + mp_field = field_StartRestart->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("StartRestart"))); + break; + case ALT_Release: + mp_field = field_Release->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Release"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void NG__NAS__Security__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_StartRestart: +field_StartRestart->set_implicit_omit(); break; +case ALT_Release: +field_Release->set_implicit_omit(); break; +default: break; +} +} + +void NG__NAS__Security__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_StartRestart: +field_StartRestart->encode_text(text_buf); +break; +case ALT_Release: +field_Release->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +} + +void NG__NAS__Security__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_StartRestart: +StartRestart().decode_text(text_buf); +break; +case ALT_Release: +Release().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +} + +void NG__NAS__Security__Type_template::copy_value(const NG__NAS__Security__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +single_value.field_StartRestart = new NG__NAS__SecurityStartRestart__Type_template(other_value.StartRestart()); +break; +case NG__NAS__Security__Type::ALT_Release: +single_value.field_Release = new BOOLEAN_template(other_value.Release()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void NG__NAS__Security__Type_template::copy_template(const NG__NAS__Security__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +single_value.field_StartRestart = new NG__NAS__SecurityStartRestart__Type_template(*other_value.single_value.field_StartRestart); +break; +case NG__NAS__Security__Type::ALT_Release: +single_value.field_Release = new BOOLEAN_template(*other_value.single_value.field_Release); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NG__NAS__Security__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NG__NAS__Security__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NG__NAS__Security__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +NG__NAS__Security__Type_template::NG__NAS__Security__Type_template(): err_descr(NULL) +{ +} + +NG__NAS__Security__Type_template::NG__NAS__Security__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +NG__NAS__Security__Type_template::NG__NAS__Security__Type_template(const NG__NAS__Security__Type& other_value) +{ +copy_value(other_value); +} + +NG__NAS__Security__Type_template::NG__NAS__Security__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__NAS__Security__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type from an unbound optional field."); +} +} + +NG__NAS__Security__Type_template::NG__NAS__Security__Type_template(NG__NAS__Security__Type_template* p_precondition, NG__NAS__Security__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NG__NAS__Security__Type_template::NG__NAS__Security__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NG__NAS__Security__Type_template::NG__NAS__Security__Type_template(const NG__NAS__Security__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +NG__NAS__Security__Type_template::~NG__NAS__Security__Type_template() +{ +clean_up(); +} + +void NG__NAS__Security__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +delete single_value.field_StartRestart; +break; +case NG__NAS__Security__Type::ALT_Release: +delete single_value.field_Release; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NG__NAS__Security__Type_template& NG__NAS__Security__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +NG__NAS__Security__Type_template& NG__NAS__Security__Type_template::operator=(const NG__NAS__Security__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +NG__NAS__Security__Type_template& NG__NAS__Security__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__NAS__Security__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +return *this; +} + +NG__NAS__Security__Type_template& NG__NAS__Security__Type_template::operator=(const NG__NAS__Security__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NG__NAS__Security__Type_template::match(const NG__NAS__Security__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +NG__NAS__Security__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == NG__NAS__Security__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +return single_value.field_StartRestart->match(other_value.StartRestart(), legacy); +case NG__NAS__Security__Type::ALT_Release: +return single_value.field_Release->match(other_value.Release(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +return FALSE; +} + +boolean NG__NAS__Security__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +return single_value.field_StartRestart->is_value(); +case NG__NAS__Security__Type::ALT_Release: +return single_value.field_Release->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +} + +NG__NAS__Security__Type NG__NAS__Security__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +NG__NAS__Security__Type ret_val; +switch (single_value.union_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +ret_val.StartRestart() = single_value.field_StartRestart->valueof(); +break; +case NG__NAS__Security__Type::ALT_Release: +ret_val.Release() = single_value.field_Release->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +NG__NAS__Security__Type_template& NG__NAS__Security__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +return value_list.list_value[list_index]; +} +void NG__NAS__Security__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NG__NAS__Security__Type_template[list_length]; +} + +NG__NAS__Security__Type::union_selection_type NG__NAS__Security__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type"); +return single_value.union_selection; +} + +NG__NAS__SecurityStartRestart__Type_template& NG__NAS__Security__Type_template::StartRestart() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__Security__Type::ALT_StartRestart) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_StartRestart = new NG__NAS__SecurityStartRestart__Type_template(ANY_VALUE); +else single_value.field_StartRestart = new NG__NAS__SecurityStartRestart__Type_template; +single_value.union_selection = NG__NAS__Security__Type::ALT_StartRestart; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_StartRestart; +} + +const NG__NAS__SecurityStartRestart__Type_template& NG__NAS__Security__Type_template::StartRestart() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field StartRestart in a non-specific template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +if (single_value.union_selection != NG__NAS__Security__Type::ALT_StartRestart) TTCN_error("Accessing non-selected field StartRestart in a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +return *single_value.field_StartRestart; +} + +BOOLEAN_template& NG__NAS__Security__Type_template::Release() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NAS__Security__Type::ALT_Release) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Release = new BOOLEAN_template(ANY_VALUE); +else single_value.field_Release = new BOOLEAN_template; +single_value.union_selection = NG__NAS__Security__Type::ALT_Release; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Release; +} + +const BOOLEAN_template& NG__NAS__Security__Type_template::Release() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Release in a non-specific template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +if (single_value.union_selection != NG__NAS__Security__Type::ALT_Release) TTCN_error("Accessing non-selected field Release in a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +return *single_value.field_Release; +} + +boolean NG__NAS__Security__Type_template::ischosen(NG__NAS__Security__Type::union_selection_type checked_selection) const +{ +if (checked_selection == NG__NAS__Security__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == NG__NAS__Security__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void NG__NAS__Security__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NG__NAS__Security__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NG__NAS__Security__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NG__NAS__Security__Type_template::clone() const { return new NG__NAS__Security__Type_template(*this); } +const TTCN_Typedescriptor_t* NG__NAS__Security__Type_template::get_descriptor() const { return &NG__NAS__Security__Type_descr_; } +boolean NG__NAS__Security__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NG__NAS__Security__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NG__NAS__Security__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +TTCN_Logger::log_event_str("{ StartRestart := "); +single_value.field_StartRestart->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NAS__Security__Type::ALT_Release: +TTCN_Logger::log_event_str("{ Release := "); +single_value.field_Release->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void NG__NAS__Security__Type_template::log_match(const NG__NAS__Security__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".StartRestart"); +single_value.field_StartRestart->log_match(match_value.StartRestart(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ StartRestart := "); +single_value.field_StartRestart->log_match(match_value.StartRestart(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NAS__Security__Type::ALT_Release: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Release"); +single_value.field_Release->log_match(match_value.Release(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Release := "); +single_value.field_Release->log_match(match_value.Release(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void NG__NAS__Security__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +single_value.field_StartRestart->encode_text(text_buf); +break; +case NG__NAS__Security__Type::ALT_Release: +single_value.field_Release->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +} + +void NG__NAS__Security__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = NG__NAS__Security__Type::UNBOUND_VALUE; +NG__NAS__Security__Type::union_selection_type new_selection = (NG__NAS__Security__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +single_value.field_StartRestart = new NG__NAS__SecurityStartRestart__Type_template; +single_value.field_StartRestart->decode_text(text_buf); +break; +case NG__NAS__Security__Type::ALT_Release: +single_value.field_Release = new BOOLEAN_template; +single_value.field_Release->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NG__NAS__Security__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +} + +boolean NG__NAS__Security__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NG__NAS__Security__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type'"); + } + if (strcmp("StartRestart", param_field) == 0) { + StartRestart().set_param(param); + return; + } else if (strcmp("Release", param_field) == 0) { + Release().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NG__NAS__Security__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "StartRestart")) { + StartRestart().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "Release")) { + Release().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + NG__NAS__Security__Type_template* precondition = new NG__NAS__Security__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NG__NAS__Security__Type_template* implied_template = new NG__NAS__Security__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NG__NAS__Security__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NG__NAS__Security__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type'"); + } + if (strcmp("StartRestart", param_field) == 0) { + return StartRestart().get_param(param_name); + } else if (strcmp("Release", param_field) == 0) { + return Release().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__NAS__Security__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case NG__NAS__Security__Type::ALT_StartRestart: + mp_field = single_value.field_StartRestart->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("StartRestart"))); + break; + case NG__NAS__Security__Type::ALT_Release: + mp_field = single_value.field_Release->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Release"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NG__NAS__Security__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case NG__NAS__Security__Type::ALT_StartRestart: +single_value.field_StartRestart->check_restriction(t_res, t_name ? t_name : "@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type"); +return; +case NG__NAS__Security__Type::ALT_Release: +single_value.field_Release->check_restriction(t_res, t_name ? t_name : "@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NG_NasEmu_CtrlAspTypes.NG_NAS_Security_Type"); +} + +void NG__NasCtrlRequest__Type::copy_value(const NG__NasCtrlRequest__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_Security: +field_Security = new NG__NAS__Security__Type(*other_value.field_Security); +break; +case ALT_NasCount: +field_NasCount = new NasEmu__Common4G5G::NAS__CountReq__Type(*other_value.field_NasCount); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +NG__NasCtrlRequest__Type::NG__NasCtrlRequest__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +NG__NasCtrlRequest__Type::NG__NasCtrlRequest__Type(const NG__NasCtrlRequest__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +NG__NasCtrlRequest__Type::~NG__NasCtrlRequest__Type() +{ +clean_up(); +} + +NG__NasCtrlRequest__Type& NG__NasCtrlRequest__Type::operator=(const NG__NasCtrlRequest__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean NG__NasCtrlRequest__Type::operator==(const NG__NasCtrlRequest__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_Security: +return *field_Security == *other_value.field_Security; +case ALT_NasCount: +return *field_NasCount == *other_value.field_NasCount; +default: +return FALSE; +} +} + +NG__NAS__Security__Type& NG__NasCtrlRequest__Type::Security() +{ +if (union_selection != ALT_Security) { +clean_up(); +field_Security = new NG__NAS__Security__Type; +union_selection = ALT_Security; +} +return *field_Security; +} + +const NG__NAS__Security__Type& NG__NasCtrlRequest__Type::Security() const +{ +if (union_selection != ALT_Security) TTCN_error("Using non-selected field Security in a value of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +return *field_Security; +} + +NasEmu__Common4G5G::NAS__CountReq__Type& NG__NasCtrlRequest__Type::NasCount() +{ +if (union_selection != ALT_NasCount) { +clean_up(); +field_NasCount = new NasEmu__Common4G5G::NAS__CountReq__Type; +union_selection = ALT_NasCount; +} +return *field_NasCount; +} + +const NasEmu__Common4G5G::NAS__CountReq__Type& NG__NasCtrlRequest__Type::NasCount() const +{ +if (union_selection != ALT_NasCount) TTCN_error("Using non-selected field NasCount in a value of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +return *field_NasCount; +} + +boolean NG__NasCtrlRequest__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +return union_selection == checked_selection; +} + +boolean NG__NasCtrlRequest__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean NG__NasCtrlRequest__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_Security: return field_Security->is_value(); +case ALT_NasCount: return field_NasCount->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void NG__NasCtrlRequest__Type::clean_up() +{ +switch (union_selection) { +case ALT_Security: + delete field_Security; + break; +case ALT_NasCount: + delete field_NasCount; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean NG__NasCtrlRequest__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NG__NasCtrlRequest__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NG__NasCtrlRequest__Type::clone() const { return new NG__NasCtrlRequest__Type(*this); } +const TTCN_Typedescriptor_t* NG__NasCtrlRequest__Type::get_descriptor() const { return &NG__NasCtrlRequest__Type_descr_; } +void NG__NasCtrlRequest__Type::log() const +{ +switch (union_selection) { +case ALT_Security: +TTCN_Logger::log_event_str("{ Security := "); +field_Security->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_NasCount: +TTCN_Logger::log_event_str("{ NasCount := "); +field_NasCount->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void NG__NasCtrlRequest__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type'"); + } + if (strcmp("Security", param_field) == 0) { + Security().set_param(param); + return; + } else if (strcmp("NasCount", param_field) == 0) { + NasCount().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Security")) { + Security().set_param(*mp_last); + if (!Security().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "NasCount")) { + NasCount().set_param(*mp_last); + if (!NasCount().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type.", last_name); +} + +Module_Param* NG__NasCtrlRequest__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type'"); + } + if (strcmp("Security", param_field) == 0) { + return Security().get_param(param_name); + } else if (strcmp("NasCount", param_field) == 0) { + return NasCount().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__NasCtrlRequest__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_Security: + mp_field = field_Security->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Security"))); + break; + case ALT_NasCount: + mp_field = field_NasCount->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("NasCount"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void NG__NasCtrlRequest__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_Security: +field_Security->set_implicit_omit(); break; +case ALT_NasCount: +field_NasCount->set_implicit_omit(); break; +default: break; +} +} + +void NG__NasCtrlRequest__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_Security: +field_Security->encode_text(text_buf); +break; +case ALT_NasCount: +field_NasCount->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +} + +void NG__NasCtrlRequest__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_Security: +Security().decode_text(text_buf); +break; +case ALT_NasCount: +NasCount().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +} + +void NG__NasCtrlRequest__Type_template::copy_value(const NG__NasCtrlRequest__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +single_value.field_Security = new NG__NAS__Security__Type_template(other_value.Security()); +break; +case NG__NasCtrlRequest__Type::ALT_NasCount: +single_value.field_NasCount = new NasEmu__Common4G5G::NAS__CountReq__Type_template(other_value.NasCount()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void NG__NasCtrlRequest__Type_template::copy_template(const NG__NasCtrlRequest__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +single_value.field_Security = new NG__NAS__Security__Type_template(*other_value.single_value.field_Security); +break; +case NG__NasCtrlRequest__Type::ALT_NasCount: +single_value.field_NasCount = new NasEmu__Common4G5G::NAS__CountReq__Type_template(*other_value.single_value.field_NasCount); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NG__NasCtrlRequest__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NG__NasCtrlRequest__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NG__NasCtrlRequest__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +NG__NasCtrlRequest__Type_template::NG__NasCtrlRequest__Type_template(): err_descr(NULL) +{ +} + +NG__NasCtrlRequest__Type_template::NG__NasCtrlRequest__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +NG__NasCtrlRequest__Type_template::NG__NasCtrlRequest__Type_template(const NG__NasCtrlRequest__Type& other_value) +{ +copy_value(other_value); +} + +NG__NasCtrlRequest__Type_template::NG__NasCtrlRequest__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__NasCtrlRequest__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type from an unbound optional field."); +} +} + +NG__NasCtrlRequest__Type_template::NG__NasCtrlRequest__Type_template(NG__NasCtrlRequest__Type_template* p_precondition, NG__NasCtrlRequest__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NG__NasCtrlRequest__Type_template::NG__NasCtrlRequest__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NG__NasCtrlRequest__Type_template::NG__NasCtrlRequest__Type_template(const NG__NasCtrlRequest__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +NG__NasCtrlRequest__Type_template::~NG__NasCtrlRequest__Type_template() +{ +clean_up(); +} + +void NG__NasCtrlRequest__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +delete single_value.field_Security; +break; +case NG__NasCtrlRequest__Type::ALT_NasCount: +delete single_value.field_NasCount; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NG__NasCtrlRequest__Type_template& NG__NasCtrlRequest__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +NG__NasCtrlRequest__Type_template& NG__NasCtrlRequest__Type_template::operator=(const NG__NasCtrlRequest__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +NG__NasCtrlRequest__Type_template& NG__NasCtrlRequest__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NG__NasCtrlRequest__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +return *this; +} + +NG__NasCtrlRequest__Type_template& NG__NasCtrlRequest__Type_template::operator=(const NG__NasCtrlRequest__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NG__NasCtrlRequest__Type_template::match(const NG__NasCtrlRequest__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +NG__NasCtrlRequest__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == NG__NasCtrlRequest__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +return single_value.field_Security->match(other_value.Security(), legacy); +case NG__NasCtrlRequest__Type::ALT_NasCount: +return single_value.field_NasCount->match(other_value.NasCount(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +return FALSE; +} + +boolean NG__NasCtrlRequest__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +return single_value.field_Security->is_value(); +case NG__NasCtrlRequest__Type::ALT_NasCount: +return single_value.field_NasCount->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +} + +NG__NasCtrlRequest__Type NG__NasCtrlRequest__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +NG__NasCtrlRequest__Type ret_val; +switch (single_value.union_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +ret_val.Security() = single_value.field_Security->valueof(); +break; +case NG__NasCtrlRequest__Type::ALT_NasCount: +ret_val.NasCount() = single_value.field_NasCount->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +NG__NasCtrlRequest__Type_template& NG__NasCtrlRequest__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +return value_list.list_value[list_index]; +} +void NG__NasCtrlRequest__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NG__NasCtrlRequest__Type_template[list_length]; +} + +NG__NasCtrlRequest__Type::union_selection_type NG__NasCtrlRequest__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type"); +return single_value.union_selection; +} + +NG__NAS__Security__Type_template& NG__NasCtrlRequest__Type_template::Security() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NasCtrlRequest__Type::ALT_Security) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Security = new NG__NAS__Security__Type_template(ANY_VALUE); +else single_value.field_Security = new NG__NAS__Security__Type_template; +single_value.union_selection = NG__NasCtrlRequest__Type::ALT_Security; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Security; +} + +const NG__NAS__Security__Type_template& NG__NasCtrlRequest__Type_template::Security() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Security in a non-specific template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +if (single_value.union_selection != NG__NasCtrlRequest__Type::ALT_Security) TTCN_error("Accessing non-selected field Security in a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +return *single_value.field_Security; +} + +NasEmu__Common4G5G::NAS__CountReq__Type_template& NG__NasCtrlRequest__Type_template::NasCount() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NG__NasCtrlRequest__Type::ALT_NasCount) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_NasCount = new NasEmu__Common4G5G::NAS__CountReq__Type_template(ANY_VALUE); +else single_value.field_NasCount = new NasEmu__Common4G5G::NAS__CountReq__Type_template; +single_value.union_selection = NG__NasCtrlRequest__Type::ALT_NasCount; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_NasCount; +} + +const NasEmu__Common4G5G::NAS__CountReq__Type_template& NG__NasCtrlRequest__Type_template::NasCount() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field NasCount in a non-specific template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +if (single_value.union_selection != NG__NasCtrlRequest__Type::ALT_NasCount) TTCN_error("Accessing non-selected field NasCount in a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +return *single_value.field_NasCount; +} + +boolean NG__NasCtrlRequest__Type_template::ischosen(NG__NasCtrlRequest__Type::union_selection_type checked_selection) const +{ +if (checked_selection == NG__NasCtrlRequest__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == NG__NasCtrlRequest__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void NG__NasCtrlRequest__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NG__NasCtrlRequest__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NG__NasCtrlRequest__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NG__NasCtrlRequest__Type_template::clone() const { return new NG__NasCtrlRequest__Type_template(*this); } +const TTCN_Typedescriptor_t* NG__NasCtrlRequest__Type_template::get_descriptor() const { return &NG__NasCtrlRequest__Type_descr_; } +boolean NG__NasCtrlRequest__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NG__NasCtrlRequest__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NG__NasCtrlRequest__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +TTCN_Logger::log_event_str("{ Security := "); +single_value.field_Security->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NG__NasCtrlRequest__Type::ALT_NasCount: +TTCN_Logger::log_event_str("{ NasCount := "); +single_value.field_NasCount->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void NG__NasCtrlRequest__Type_template::log_match(const NG__NasCtrlRequest__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Security"); +single_value.field_Security->log_match(match_value.Security(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Security := "); +single_value.field_Security->log_match(match_value.Security(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NG__NasCtrlRequest__Type::ALT_NasCount: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".NasCount"); +single_value.field_NasCount->log_match(match_value.NasCount(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ NasCount := "); +single_value.field_NasCount->log_match(match_value.NasCount(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void NG__NasCtrlRequest__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +single_value.field_Security->encode_text(text_buf); +break; +case NG__NasCtrlRequest__Type::ALT_NasCount: +single_value.field_NasCount->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +} + +void NG__NasCtrlRequest__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = NG__NasCtrlRequest__Type::UNBOUND_VALUE; +NG__NasCtrlRequest__Type::union_selection_type new_selection = (NG__NasCtrlRequest__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +single_value.field_Security = new NG__NAS__Security__Type_template; +single_value.field_Security->decode_text(text_buf); +break; +case NG__NasCtrlRequest__Type::ALT_NasCount: +single_value.field_NasCount = new NasEmu__Common4G5G::NAS__CountReq__Type_template; +single_value.field_NasCount->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NG__NasCtrlRequest__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +} + +boolean NG__NasCtrlRequest__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NG__NasCtrlRequest__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type'"); + } + if (strcmp("Security", param_field) == 0) { + Security().set_param(param); + return; + } else if (strcmp("NasCount", param_field) == 0) { + NasCount().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NG__NasCtrlRequest__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Security")) { + Security().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "NasCount")) { + NasCount().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + NG__NasCtrlRequest__Type_template* precondition = new NG__NasCtrlRequest__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NG__NasCtrlRequest__Type_template* implied_template = new NG__NasCtrlRequest__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NG__NasCtrlRequest__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NG__NasCtrlRequest__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type'"); + } + if (strcmp("Security", param_field) == 0) { + return Security().get_param(param_name); + } else if (strcmp("NasCount", param_field) == 0) { + return NasCount().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NG__NasCtrlRequest__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case NG__NasCtrlRequest__Type::ALT_Security: + mp_field = single_value.field_Security->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Security"))); + break; + case NG__NasCtrlRequest__Type::ALT_NasCount: + mp_field = single_value.field_NasCount->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("NasCount"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NG__NasCtrlRequest__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case NG__NasCtrlRequest__Type::ALT_Security: +single_value.field_Security->check_restriction(t_res, t_name ? t_name : "@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type"); +return; +case NG__NasCtrlRequest__Type::ALT_NasCount: +single_value.field_NasCount->check_restriction(t_res, t_name ? t_name : "@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NG_NasEmu_CtrlAspTypes.NG_NasCtrlRequest_Type"); +} + +void NG__NAS__CTRL__REQ::init_vec() { fld_vec[0]=&field_Common; fld_vec[1]=&field_Request; } + +NG__NAS__CTRL__REQ::NG__NAS__CTRL__REQ() : Record_Type() { init_vec(); } + +NG__NAS__CTRL__REQ::NG__NAS__CTRL__REQ(const NG__NAS__CTRL__REQ& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Common.is_bound() ) + field_Common = other_value.field_Common; +if (other_value.field_Request.is_bound() ) + field_Request = other_value.field_Request; +init_vec(); +} + +NG__NAS__CTRL__REQ::NG__NAS__CTRL__REQ(const NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type& par_Common, + const NG__NasCtrlRequest__Type& par_Request) : field_Common(par_Common), + field_Request(par_Request) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__CTRL__REQ::get_descriptor() const { return &NG__NAS__CTRL__REQ_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__CTRL__REQ::fld_descriptors[] = { &NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type_descr_, &NG__NasCtrlRequest__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__CTRL__REQ::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__CTRL__REQ::fld_names[] = { "Common", "Request" }; +const char* NG__NAS__CTRL__REQ::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NAS__CTRL__REQ_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type_template(ANY_VALUE) : new NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type_template; +single_value.value_elements[1] = was_any ? new NG__NasCtrlRequest__Type_template(ANY_VALUE) : new NG__NasCtrlRequest__Type_template; +} +} + +NG__NAS__CTRL__REQ_template::NG__NAS__CTRL__REQ_template(NG__NAS__CTRL__REQ_template* p_precondition, NG__NAS__CTRL__REQ_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__CTRL__REQ_template::NG__NAS__CTRL__REQ_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__CTRL__REQ_template::~NG__NAS__CTRL__REQ_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__CTRL__REQ_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__CTRL__REQ* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__CTRL__REQ_template& NG__NAS__CTRL__REQ_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__CTRL__REQ_template& NG__NAS__CTRL__REQ_template::operator=(const NG__NAS__CTRL__REQ& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__CTRL__REQ_template& NG__NAS__CTRL__REQ_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__CTRL__REQ_template& NG__NAS__CTRL__REQ_template::operator=(const NG__NAS__CTRL__REQ_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__CTRL__REQ NG__NAS__CTRL__REQ_template::valueof() const +{ +NG__NAS__CTRL__REQ ret_val; +valueofv(&ret_val); +return ret_val; +} + +NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type_template& NG__NAS__CTRL__REQ_template::Common() { return *(static_cast(get_at(0))); } +const NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type_template& NG__NAS__CTRL__REQ_template::Common() const { return *(static_cast(get_at(0))); } +NG__NasCtrlRequest__Type_template& NG__NAS__CTRL__REQ_template::Request() { return *(static_cast(get_at(1))); } +const NG__NasCtrlRequest__Type_template& NG__NAS__CTRL__REQ_template::Request() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__NAS__CTRL__REQ_template::get_descriptor() const { return &NG__NAS__CTRL__REQ_descr_; } +const char* NG__NAS__CTRL__REQ_template::fld_name(int p_index) const { return NG__NAS__CTRL__REQ::fld_names[p_index]; } +void NG__NAS__CTRL__CNF::init_vec() { fld_vec[0]=&field_Common; fld_vec[1]=&field_Confirm; } + +NG__NAS__CTRL__CNF::NG__NAS__CTRL__CNF() : Record_Type() { init_vec(); } + +NG__NAS__CTRL__CNF::NG__NAS__CTRL__CNF(const NG__NAS__CTRL__CNF& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_Common.is_bound() ) + field_Common = other_value.field_Common; +if (other_value.field_Confirm.is_bound() ) + field_Confirm = other_value.field_Confirm; +init_vec(); +} + +NG__NAS__CTRL__CNF::NG__NAS__CTRL__CNF(const NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type& par_Common, + const NasEmu__Common4G5G::NasCtrlConfirm__Type& par_Confirm) : field_Common(par_Common), + field_Confirm(par_Confirm) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NG__NAS__CTRL__CNF::get_descriptor() const { return &NG__NAS__CTRL__CNF_descr_; } +const TTCN_Typedescriptor_t* NG__NAS__CTRL__CNF::fld_descriptors[] = { &NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type_descr_, &NasEmu__Common4G5G::NasCtrlConfirm__Type_descr_ }; +const TTCN_Typedescriptor_t* NG__NAS__CTRL__CNF::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NG__NAS__CTRL__CNF::fld_names[] = { "Common", "Confirm" }; +const char* NG__NAS__CTRL__CNF::fld_name(int p_index) const { return fld_names[p_index]; } + +void NG__NAS__CTRL__CNF_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type_template(ANY_VALUE) : new NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type_template; +single_value.value_elements[1] = was_any ? new NasEmu__Common4G5G::NasCtrlConfirm__Type_template(ANY_VALUE) : new NasEmu__Common4G5G::NasCtrlConfirm__Type_template; +} +} + +NG__NAS__CTRL__CNF_template::NG__NAS__CTRL__CNF_template(NG__NAS__CTRL__CNF_template* p_precondition, NG__NAS__CTRL__CNF_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NG__NAS__CTRL__CNF_template::NG__NAS__CTRL__CNF_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NG__NAS__CTRL__CNF_template::~NG__NAS__CTRL__CNF_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NG__NAS__CTRL__CNF_template::match_dynamic(const Base_Type* match_value) const +{ +const NG__NAS__CTRL__CNF* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NG__NAS__CTRL__CNF_template& NG__NAS__CTRL__CNF_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NG__NAS__CTRL__CNF_template& NG__NAS__CTRL__CNF_template::operator=(const NG__NAS__CTRL__CNF& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NG__NAS__CTRL__CNF_template& NG__NAS__CTRL__CNF_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NG__NAS__CTRL__CNF_template& NG__NAS__CTRL__CNF_template::operator=(const NG__NAS__CTRL__CNF_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NG__NAS__CTRL__CNF NG__NAS__CTRL__CNF_template::valueof() const +{ +NG__NAS__CTRL__CNF ret_val; +valueofv(&ret_val); +return ret_val; +} + +NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type_template& NG__NAS__CTRL__CNF_template::Common() { return *(static_cast(get_at(0))); } +const NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type_template& NG__NAS__CTRL__CNF_template::Common() const { return *(static_cast(get_at(0))); } +NasEmu__Common4G5G::NasCtrlConfirm__Type_template& NG__NAS__CTRL__CNF_template::Confirm() { return *(static_cast(get_at(1))); } +const NasEmu__Common4G5G::NasCtrlConfirm__Type_template& NG__NAS__CTRL__CNF_template::Confirm() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NG__NAS__CTRL__CNF_template::get_descriptor() const { return &NG__NAS__CTRL__CNF_descr_; } +const char* NG__NAS__CTRL__CNF_template::fld_name(int p_index) const { return NG__NAS__CTRL__CNF::fld_names[p_index]; } +void NG__NASCTRL__PORT_BASE::remove_msg_queue_head() +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +switch (my_head->item_selection) { +case MESSAGE_0: +delete (my_head)->message_0; +break; +default: +TTCN_error("Internal error: Invalid message selector in the queue of port %s.", port_name); +} +msg_queue_item_base *next_item = msg_queue_head->next_item; +delete (msg_queue_item*)msg_queue_head; +msg_queue_head = next_item; +if (next_item == NULL) msg_queue_tail = NULL; +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::extract__msg, port_name, 0, ++msg_head_count, CHARSTRING(0,NULL), CHARSTRING(0,NULL));} + +void NG__NASCTRL__PORT_BASE::clear_queue() +{ +while (msg_queue_head != NULL) remove_msg_queue_head(); +} + +NG__NASCTRL__PORT_BASE::NG__NASCTRL__PORT_BASE(const char *par_port_name) + : PORT(par_port_name) +{ +msg_queue_head = NULL; +msg_queue_tail = NULL; +} + +NG__NASCTRL__PORT_BASE::~NG__NASCTRL__PORT_BASE() +{ +clear_queue(); +} + +void NG__NASCTRL__PORT_BASE::send(const NG__NAS__CTRL__REQ& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +if (!is_started) TTCN_error("Sending a message on port %s, which is not started.", port_name); +if (!destination_component.is_bound()) TTCN_error("Unbound component reference in the to clause of send operation."); +const TTCN_Logger::Severity log_sev = destination_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMSEND:TTCN_Logger::PORTEVENT_MCSEND; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_send(port_name, destination_component, +(TTCN_Logger::begin_event(log_sev, TRUE), TTCN_Logger::log_event_str(" @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ : "), +send_par.log(), TTCN_Logger::end_event_log2str())); +} +if (destination_component == SYSTEM_COMPREF) { +(void)get_default_destination(); +outgoing_send(send_par); +} +else { +Text_Buf text_buf; +prepare_message(text_buf, "@NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ"); +send_par.encode_text(text_buf); +send_data(text_buf, destination_component); +} +} + +void NG__NASCTRL__PORT_BASE::send(const NG__NAS__CTRL__REQ& send_par, FLOAT* timestamp_redirect) +{ +send(send_par, COMPONENT(get_default_destination()), timestamp_redirect); +} + +void NG__NASCTRL__PORT_BASE::send(const NG__NAS__CTRL__REQ_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +const NG__NAS__CTRL__REQ& send_par_value = NG__NAS__CTRL__REQ(send_par.valueof()); +send(send_par_value, destination_component, timestamp_redirect); +} + +void NG__NASCTRL__PORT_BASE::send(const NG__NAS__CTRL__REQ_template& send_par, FLOAT* timestamp_redirect) +{ +const NG__NAS__CTRL__REQ& send_par_value = NG__NAS__CTRL__REQ(send_par.valueof()); +send(send_par_value, COMPONENT(get_default_destination()), timestamp_redirect); +} + +alt_status NG__NASCTRL__PORT_BASE::receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NG__NASCTRL__PORT_BASE::check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +return ALT_YES; +} +} + +alt_status NG__NASCTRL__PORT_BASE::trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NG__NASCTRL__PORT_BASE::receive(const NG__NAS__CTRL__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NG__NASCTRL__PORT_BASE::check_receive(const NG__NAS__CTRL__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Check-receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +return ALT_YES; +} +} + +alt_status NG__NASCTRL__PORT_BASE::trigger(const NG__NAS__CTRL__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Trigger operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s will drop a message: Type of the first message in the queue is not @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF.", port_name); +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +void NG__NASCTRL__PORT_BASE::incoming_message(const NG__NAS__CTRL__CNF& incoming_par, component sender_component) +{ +if (!is_started) { +if (is_halted) { +TTCN_warning("A message that arrived on port %s has been discarded, because the port is not started.", port_name); +return; +} +else { +TTCN_error("Port %s is not started but a message has arrived on it.", port_name); +} +} +msg_tail_count++; +if (TTCN_Logger::log_this_event(TTCN_Logger::PORTEVENT_MQUEUE)) { +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::enqueue__msg, port_name, sender_component, msg_tail_count, +CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(TTCN_Logger::PORTEVENT_MQUEUE, TRUE), TTCN_Logger::log_event_str(" @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF : "), incoming_par.log(), TTCN_Logger::end_event_log2str())); +} +msg_queue_item *new_item = new msg_queue_item; +new_item->item_selection = MESSAGE_0; +new_item->message_0 = new NG__NAS__CTRL__CNF(incoming_par); +new_item->sender_component = sender_component; +append_to_msg_queue(new_item); +} + +boolean NG__NASCTRL__PORT_BASE::process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING&) +{ +if (!strcmp(message_type, "@NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF")) { +NG__NAS__CTRL__CNF incoming_par; +incoming_par.decode_text(incoming_buf); +incoming_message(incoming_par, sender_component); +return TRUE; +} else return FALSE; +} + +void NG__NASEMU__CTRL__PORT_BASE::remove_msg_queue_head() +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +switch (my_head->item_selection) { +case MESSAGE_0: +delete (my_head)->message_0; +break; +default: +TTCN_error("Internal error: Invalid message selector in the queue of port %s.", port_name); +} +msg_queue_item_base *next_item = msg_queue_head->next_item; +delete (msg_queue_item*)msg_queue_head; +msg_queue_head = next_item; +if (next_item == NULL) msg_queue_tail = NULL; +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::extract__msg, port_name, 0, ++msg_head_count, CHARSTRING(0,NULL), CHARSTRING(0,NULL));} + +void NG__NASEMU__CTRL__PORT_BASE::clear_queue() +{ +while (msg_queue_head != NULL) remove_msg_queue_head(); +} + +NG__NASEMU__CTRL__PORT_BASE::NG__NASEMU__CTRL__PORT_BASE(const char *par_port_name) + : PORT(par_port_name) +{ +msg_queue_head = NULL; +msg_queue_tail = NULL; +} + +NG__NASEMU__CTRL__PORT_BASE::~NG__NASEMU__CTRL__PORT_BASE() +{ +clear_queue(); +} + +void NG__NASEMU__CTRL__PORT_BASE::send(const NG__NAS__CTRL__CNF& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +if (!is_started) TTCN_error("Sending a message on port %s, which is not started.", port_name); +if (!destination_component.is_bound()) TTCN_error("Unbound component reference in the to clause of send operation."); +const TTCN_Logger::Severity log_sev = destination_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMSEND:TTCN_Logger::PORTEVENT_MCSEND; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_send(port_name, destination_component, +(TTCN_Logger::begin_event(log_sev, TRUE), TTCN_Logger::log_event_str(" @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF : "), +send_par.log(), TTCN_Logger::end_event_log2str())); +} +if (destination_component == SYSTEM_COMPREF) { +(void)get_default_destination(); +outgoing_send(send_par); +} +else { +Text_Buf text_buf; +prepare_message(text_buf, "@NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_CNF"); +send_par.encode_text(text_buf); +send_data(text_buf, destination_component); +} +} + +void NG__NASEMU__CTRL__PORT_BASE::send(const NG__NAS__CTRL__CNF& send_par, FLOAT* timestamp_redirect) +{ +send(send_par, COMPONENT(get_default_destination()), timestamp_redirect); +} + +void NG__NASEMU__CTRL__PORT_BASE::send(const NG__NAS__CTRL__CNF_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +const NG__NAS__CTRL__CNF& send_par_value = NG__NAS__CTRL__CNF(send_par.valueof()); +send(send_par_value, destination_component, timestamp_redirect); +} + +void NG__NASEMU__CTRL__PORT_BASE::send(const NG__NAS__CTRL__CNF_template& send_par, FLOAT* timestamp_redirect) +{ +const NG__NAS__CTRL__CNF& send_par_value = NG__NAS__CTRL__CNF(send_par.valueof()); +send(send_par_value, COMPONENT(get_default_destination()), timestamp_redirect); +} + +alt_status NG__NASEMU__CTRL__PORT_BASE::receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NG__NASEMU__CTRL__PORT_BASE::check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +return ALT_YES; +} +} + +alt_status NG__NASEMU__CTRL__PORT_BASE::trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NG__NASEMU__CTRL__PORT_BASE::receive(const NG__NAS__CTRL__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NG__NASEMU__CTRL__PORT_BASE::check_receive(const NG__NAS__CTRL__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Check-receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +return ALT_YES; +} +} + +alt_status NG__NASEMU__CTRL__PORT_BASE::trigger(const NG__NAS__CTRL__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Trigger operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s will drop a message: Type of the first message in the queue is not @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ.", port_name); +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +void NG__NASEMU__CTRL__PORT_BASE::incoming_message(const NG__NAS__CTRL__REQ& incoming_par, component sender_component) +{ +if (!is_started) { +if (is_halted) { +TTCN_warning("A message that arrived on port %s has been discarded, because the port is not started.", port_name); +return; +} +else { +TTCN_error("Port %s is not started but a message has arrived on it.", port_name); +} +} +msg_tail_count++; +if (TTCN_Logger::log_this_event(TTCN_Logger::PORTEVENT_MQUEUE)) { +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::enqueue__msg, port_name, sender_component, msg_tail_count, +CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(TTCN_Logger::PORTEVENT_MQUEUE, TRUE), TTCN_Logger::log_event_str(" @NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ : "), incoming_par.log(), TTCN_Logger::end_event_log2str())); +} +msg_queue_item *new_item = new msg_queue_item; +new_item->item_selection = MESSAGE_0; +new_item->message_0 = new NG__NAS__CTRL__REQ(incoming_par); +new_item->sender_component = sender_component; +append_to_msg_queue(new_item); +} + +boolean NG__NASEMU__CTRL__PORT_BASE::process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING&) +{ +if (!strcmp(message_type, "@NG_NasEmu_CtrlAspTypes.NG_NAS_CTRL_REQ")) { +NG__NAS__CTRL__REQ incoming_par; +incoming_par.decode_text(incoming_buf); +incoming_message(incoming_par, sender_component); +return TRUE; +} else return FALSE; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NG_NasEmu_CtrlAspTypes.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NasEmu_CtrlAspTypes"); +NG__NasEmu__CtrlAspTypes::init_ttcn3_debugger(); +NasEmu__Common4G5G::module_object.pre_init_module(); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NG_NasEmu_CtrlAspTypes.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NG_NasEmu_CtrlAspTypes"); +NasEmu__Common4G5G::module_object.post_init_module(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NG_NasEmu_CtrlAspTypes.hh b/build/Ats_NG_NAS/NG_NasEmu_CtrlAspTypes.hh new file mode 100644 index 0000000000000000000000000000000000000000..e87417c361f3750e3167dadf61a52bb028509dc6 --- /dev/null +++ b/build/Ats_NG_NAS/NG_NasEmu_CtrlAspTypes.hh @@ -0,0 +1,684 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NG__NasEmu__CtrlAspTypes_HH +#define NG__NasEmu__CtrlAspTypes_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NasEmu_Common4G5G.hh" + +#if TTCN3_VERSION != 100000 +#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 NG__NasEmu__CtrlAspTypes_HH +#endif + +namespace NG__NasEmu__CtrlAspTypes { + +/* Forward declarations of classes */ + +class NG__NAS__SecurityInfo__Type; +class NG__NAS__SecurityInfo__Type_template; +class NG__NAS__SecurityStartRestart__Type; +class NG__NAS__SecurityStartRestart__Type_template; +class NG__NAS__Security__Type; +class NG__NAS__Security__Type_template; +class NG__NasCtrlRequest__Type; +class NG__NasCtrlRequest__Type_template; +class NG__NAS__CTRL__REQ; +class NG__NAS__CTRL__REQ_template; +class NG__NAS__CTRL__CNF; +class NG__NAS__CTRL__CNF_template; +class NG__NASCTRL__PORT_BASE; +class NG__NASCTRL__PORT; +class NG__NASEMU__CTRL__PORT_BASE; +class NG__NASEMU__CTRL__PORT; + +} /* end of namespace */ + +#ifndef NG__NasEmu__CtrlAspTypes_HH +#define NG__NasEmu__CtrlAspTypes_HH + +namespace NG__NasEmu__CtrlAspTypes { + +/* Class definitions */ + +class NG__NAS__SecurityInfo__Type : public Record_Type { + BITSTRING field_Algorithm; + BITSTRING field_K__NAS; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__NAS__SecurityInfo__Type(); + NG__NAS__SecurityInfo__Type(const NG__NAS__SecurityInfo__Type& other_value); + NG__NAS__SecurityInfo__Type(const BITSTRING& par_Algorithm, + const BITSTRING& par_K__NAS); +inline NG__NAS__SecurityInfo__Type& operator=(const NG__NAS__SecurityInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__SecurityInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__SecurityInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline BITSTRING& Algorithm() + {return field_Algorithm;} + inline const BITSTRING& Algorithm() const + {return field_Algorithm;} + inline BITSTRING& K__NAS() + {return field_K__NAS;} + inline const BITSTRING& K__NAS() const + {return field_K__NAS;} +Base_Type* clone() const { return new NG__NAS__SecurityInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__SecurityInfo__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__SecurityInfo__Type_template(): Record_Template() {} +NG__NAS__SecurityInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__SecurityInfo__Type_template(const NG__NAS__SecurityInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__SecurityInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__SecurityInfo__Type_template(NG__NAS__SecurityInfo__Type_template* p_precondition, NG__NAS__SecurityInfo__Type_template* p_implied_template); +NG__NAS__SecurityInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__SecurityInfo__Type_template(const NG__NAS__SecurityInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__SecurityInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__SecurityInfo__Type_template& operator=(template_sel other_value); +NG__NAS__SecurityInfo__Type_template& operator=(const NG__NAS__SecurityInfo__Type& other_value); +NG__NAS__SecurityInfo__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__SecurityInfo__Type_template& operator=(const NG__NAS__SecurityInfo__Type_template& other_value); +inline boolean match(const NG__NAS__SecurityInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__SecurityInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__SecurityInfo__Type valueof() const; +inline NG__NAS__SecurityInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BITSTRING_template& Algorithm(); +const BITSTRING_template& Algorithm() const; +BITSTRING_template& K__NAS(); +const BITSTRING_template& K__NAS() const; +Record_Template* create() const { return new NG__NAS__SecurityInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__SecurityStartRestart__Type : public Record_Type { + OPTIONAL field_Integrity; + OPTIONAL field_Ciphering; + OPTIONAL field_NasCountReset; + Base_Type* fld_vec[3]; + void init_vec(); +public: + NG__NAS__SecurityStartRestart__Type(); + NG__NAS__SecurityStartRestart__Type(const NG__NAS__SecurityStartRestart__Type& other_value); + NG__NAS__SecurityStartRestart__Type(const OPTIONAL& par_Integrity, + const OPTIONAL& par_Ciphering, + const OPTIONAL& par_NasCountReset); +inline NG__NAS__SecurityStartRestart__Type& operator=(const NG__NAS__SecurityStartRestart__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__SecurityStartRestart__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__SecurityStartRestart__Type& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& Integrity() + {return field_Integrity;} + inline const OPTIONAL& Integrity() const + {return field_Integrity;} + inline OPTIONAL& Ciphering() + {return field_Ciphering;} + inline const OPTIONAL& Ciphering() const + {return field_Ciphering;} + inline OPTIONAL& NasCountReset() + {return field_NasCountReset;} + inline const OPTIONAL& NasCountReset() const + {return field_NasCountReset;} +Base_Type* clone() const { return new NG__NAS__SecurityStartRestart__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 3; } +int optional_count() const { return 3; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__SecurityStartRestart__Type_template : public Record_Template { +void set_specific(); +public: +NG__NAS__SecurityStartRestart__Type_template(): Record_Template() {} +NG__NAS__SecurityStartRestart__Type_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__SecurityStartRestart__Type_template(const NG__NAS__SecurityStartRestart__Type& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__SecurityStartRestart__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__SecurityStartRestart__Type_template(NG__NAS__SecurityStartRestart__Type_template* p_precondition, NG__NAS__SecurityStartRestart__Type_template* p_implied_template); +NG__NAS__SecurityStartRestart__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__SecurityStartRestart__Type_template(const NG__NAS__SecurityStartRestart__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__SecurityStartRestart__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__SecurityStartRestart__Type_template& operator=(template_sel other_value); +NG__NAS__SecurityStartRestart__Type_template& operator=(const NG__NAS__SecurityStartRestart__Type& other_value); +NG__NAS__SecurityStartRestart__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__SecurityStartRestart__Type_template& operator=(const NG__NAS__SecurityStartRestart__Type_template& other_value); +inline boolean match(const NG__NAS__SecurityStartRestart__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__SecurityStartRestart__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__SecurityStartRestart__Type valueof() const; +inline NG__NAS__SecurityStartRestart__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NG__NAS__SecurityInfo__Type_template& Integrity(); +const NG__NAS__SecurityInfo__Type_template& Integrity() const; +NG__NAS__SecurityInfo__Type_template& Ciphering(); +const NG__NAS__SecurityInfo__Type_template& Ciphering() const; +BOOLEAN_template& NasCountReset(); +const BOOLEAN_template& NasCountReset() const; +Record_Template* create() const { return new NG__NAS__SecurityStartRestart__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__Security__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_StartRestart = 1, ALT_Release = 2 }; +private: +union_selection_type union_selection; +union { +NG__NAS__SecurityStartRestart__Type *field_StartRestart; +BOOLEAN *field_Release; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__NAS__Security__Type& other_value); + +public: +NG__NAS__Security__Type(); +NG__NAS__Security__Type(const NG__NAS__Security__Type& other_value); +~NG__NAS__Security__Type(); +NG__NAS__Security__Type& operator=(const NG__NAS__Security__Type& other_value); +boolean operator==(const NG__NAS__Security__Type& other_value) const; +inline boolean operator!=(const NG__NAS__Security__Type& other_value) const { return !(*this == other_value); } +NG__NAS__SecurityStartRestart__Type& StartRestart(); +const NG__NAS__SecurityStartRestart__Type& StartRestart() const; +BOOLEAN& Release(); +const BOOLEAN& Release() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NG__NAS__Security__Type_template : public Base_Template { +union { +struct { +NG__NAS__Security__Type::union_selection_type union_selection; +union { +NG__NAS__SecurityStartRestart__Type_template *field_StartRestart; +BOOLEAN_template *field_Release; +}; +} single_value; +struct { +unsigned int n_values; +NG__NAS__Security__Type_template *list_value; +} value_list; +struct { +NG__NAS__Security__Type_template* precondition; +NG__NAS__Security__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__NAS__Security__Type& other_value); + +void copy_template(const NG__NAS__Security__Type_template& other_value); + +public: +NG__NAS__Security__Type_template(); +NG__NAS__Security__Type_template(template_sel other_value); +NG__NAS__Security__Type_template(const NG__NAS__Security__Type& other_value); +NG__NAS__Security__Type_template(const OPTIONAL& other_value); +NG__NAS__Security__Type_template(NG__NAS__Security__Type_template* p_precondition, NG__NAS__Security__Type_template* p_implied_template); +NG__NAS__Security__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__Security__Type_template(const NG__NAS__Security__Type_template& other_value); +~NG__NAS__Security__Type_template(); +void clean_up(); +NG__NAS__Security__Type_template& operator=(template_sel other_value); +NG__NAS__Security__Type_template& operator=(const NG__NAS__Security__Type& other_value); +NG__NAS__Security__Type_template& operator=(const OPTIONAL& other_value); +NG__NAS__Security__Type_template& operator=(const NG__NAS__Security__Type_template& other_value); +boolean match(const NG__NAS__Security__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;NG__NAS__Security__Type valueof() const; +NG__NAS__Security__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +NG__NAS__Security__Type::union_selection_type get_union_selection() const; +NG__NAS__SecurityStartRestart__Type_template& StartRestart(); +const NG__NAS__SecurityStartRestart__Type_template& StartRestart() const; +BOOLEAN_template& Release(); +const BOOLEAN_template& Release() const; +boolean ischosen(NG__NAS__Security__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NG__NAS__Security__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class NG__NasCtrlRequest__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_Security = 1, ALT_NasCount = 2 }; +private: +union_selection_type union_selection; +union { +NG__NAS__Security__Type *field_Security; +NasEmu__Common4G5G::NAS__CountReq__Type *field_NasCount; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__NasCtrlRequest__Type& other_value); + +public: +NG__NasCtrlRequest__Type(); +NG__NasCtrlRequest__Type(const NG__NasCtrlRequest__Type& other_value); +~NG__NasCtrlRequest__Type(); +NG__NasCtrlRequest__Type& operator=(const NG__NasCtrlRequest__Type& other_value); +boolean operator==(const NG__NasCtrlRequest__Type& other_value) const; +inline boolean operator!=(const NG__NasCtrlRequest__Type& other_value) const { return !(*this == other_value); } +NG__NAS__Security__Type& Security(); +const NG__NAS__Security__Type& Security() const; +NasEmu__Common4G5G::NAS__CountReq__Type& NasCount(); +const NasEmu__Common4G5G::NAS__CountReq__Type& NasCount() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NG__NasCtrlRequest__Type_template : public Base_Template { +union { +struct { +NG__NasCtrlRequest__Type::union_selection_type union_selection; +union { +NG__NAS__Security__Type_template *field_Security; +NasEmu__Common4G5G::NAS__CountReq__Type_template *field_NasCount; +}; +} single_value; +struct { +unsigned int n_values; +NG__NasCtrlRequest__Type_template *list_value; +} value_list; +struct { +NG__NasCtrlRequest__Type_template* precondition; +NG__NasCtrlRequest__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NG__NasCtrlRequest__Type& other_value); + +void copy_template(const NG__NasCtrlRequest__Type_template& other_value); + +public: +NG__NasCtrlRequest__Type_template(); +NG__NasCtrlRequest__Type_template(template_sel other_value); +NG__NasCtrlRequest__Type_template(const NG__NasCtrlRequest__Type& other_value); +NG__NasCtrlRequest__Type_template(const OPTIONAL& other_value); +NG__NasCtrlRequest__Type_template(NG__NasCtrlRequest__Type_template* p_precondition, NG__NasCtrlRequest__Type_template* p_implied_template); +NG__NasCtrlRequest__Type_template(Dynamic_Match_Interface* p_dyn_match); +NG__NasCtrlRequest__Type_template(const NG__NasCtrlRequest__Type_template& other_value); +~NG__NasCtrlRequest__Type_template(); +void clean_up(); +NG__NasCtrlRequest__Type_template& operator=(template_sel other_value); +NG__NasCtrlRequest__Type_template& operator=(const NG__NasCtrlRequest__Type& other_value); +NG__NasCtrlRequest__Type_template& operator=(const OPTIONAL& other_value); +NG__NasCtrlRequest__Type_template& operator=(const NG__NasCtrlRequest__Type_template& other_value); +boolean match(const NG__NasCtrlRequest__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;NG__NasCtrlRequest__Type valueof() const; +NG__NasCtrlRequest__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +NG__NasCtrlRequest__Type::union_selection_type get_union_selection() const; +NG__NAS__Security__Type_template& Security(); +const NG__NAS__Security__Type_template& Security() const; +NasEmu__Common4G5G::NAS__CountReq__Type_template& NasCount(); +const NasEmu__Common4G5G::NAS__CountReq__Type_template& NasCount() const; +boolean ischosen(NG__NasCtrlRequest__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NG__NasCtrlRequest__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class NG__NAS__CTRL__REQ : public Record_Type { + NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type field_Common; + NG__NasCtrlRequest__Type field_Request; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__NAS__CTRL__REQ(); + NG__NAS__CTRL__REQ(const NG__NAS__CTRL__REQ& other_value); + NG__NAS__CTRL__REQ(const NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type& par_Common, + const NG__NasCtrlRequest__Type& par_Request); +inline NG__NAS__CTRL__REQ& operator=(const NG__NAS__CTRL__REQ& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__CTRL__REQ& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__CTRL__REQ& other_value) const + { return !is_equal(&other_value); } + + inline NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type& Common() + {return field_Common;} + inline const NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type& Common() const + {return field_Common;} + inline NG__NasCtrlRequest__Type& Request() + {return field_Request;} + inline const NG__NasCtrlRequest__Type& Request() const + {return field_Request;} +Base_Type* clone() const { return new NG__NAS__CTRL__REQ(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__CTRL__REQ_template : public Record_Template { +void set_specific(); +public: +NG__NAS__CTRL__REQ_template(): Record_Template() {} +NG__NAS__CTRL__REQ_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__CTRL__REQ_template(const NG__NAS__CTRL__REQ& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__CTRL__REQ_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__CTRL__REQ_template(NG__NAS__CTRL__REQ_template* p_precondition, NG__NAS__CTRL__REQ_template* p_implied_template); +NG__NAS__CTRL__REQ_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__CTRL__REQ_template(const NG__NAS__CTRL__REQ_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__CTRL__REQ_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__CTRL__REQ_template& operator=(template_sel other_value); +NG__NAS__CTRL__REQ_template& operator=(const NG__NAS__CTRL__REQ& other_value); +NG__NAS__CTRL__REQ_template& operator=(const OPTIONAL& other_value); +NG__NAS__CTRL__REQ_template& operator=(const NG__NAS__CTRL__REQ_template& other_value); +inline boolean match(const NG__NAS__CTRL__REQ& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__CTRL__REQ& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__CTRL__REQ valueof() const; +inline NG__NAS__CTRL__REQ_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type_template& Common(); +const NasEmu__Common4G5G::NasCtrlReqAspCommonPart__Type_template& Common() const; +NG__NasCtrlRequest__Type_template& Request(); +const NG__NasCtrlRequest__Type_template& Request() const; +Record_Template* create() const { return new NG__NAS__CTRL__REQ_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NAS__CTRL__CNF : public Record_Type { + NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type field_Common; + NasEmu__Common4G5G::NasCtrlConfirm__Type field_Confirm; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NG__NAS__CTRL__CNF(); + NG__NAS__CTRL__CNF(const NG__NAS__CTRL__CNF& other_value); + NG__NAS__CTRL__CNF(const NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type& par_Common, + const NasEmu__Common4G5G::NasCtrlConfirm__Type& par_Confirm); +inline NG__NAS__CTRL__CNF& operator=(const NG__NAS__CTRL__CNF& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NG__NAS__CTRL__CNF& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NG__NAS__CTRL__CNF& other_value) const + { return !is_equal(&other_value); } + + inline NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type& Common() + {return field_Common;} + inline const NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type& Common() const + {return field_Common;} + inline NasEmu__Common4G5G::NasCtrlConfirm__Type& Confirm() + {return field_Confirm;} + inline const NasEmu__Common4G5G::NasCtrlConfirm__Type& Confirm() const + {return field_Confirm;} +Base_Type* clone() const { return new NG__NAS__CTRL__CNF(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NG__NAS__CTRL__CNF_template : public Record_Template { +void set_specific(); +public: +NG__NAS__CTRL__CNF_template(): Record_Template() {} +NG__NAS__CTRL__CNF_template(template_sel other_value): Record_Template(other_value) {} +NG__NAS__CTRL__CNF_template(const NG__NAS__CTRL__CNF& other_value): Record_Template() { copy_value(&other_value); } +NG__NAS__CTRL__CNF_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NG__NAS__CTRL__CNF_template(NG__NAS__CTRL__CNF_template* p_precondition, NG__NAS__CTRL__CNF_template* p_implied_template); +NG__NAS__CTRL__CNF_template(Dynamic_Match_Interface* p_dyn_match); +NG__NAS__CTRL__CNF_template(const NG__NAS__CTRL__CNF_template& other_value): Record_Template() { copy_template(other_value); } +~NG__NAS__CTRL__CNF_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NG__NAS__CTRL__CNF_template& operator=(template_sel other_value); +NG__NAS__CTRL__CNF_template& operator=(const NG__NAS__CTRL__CNF& other_value); +NG__NAS__CTRL__CNF_template& operator=(const OPTIONAL& other_value); +NG__NAS__CTRL__CNF_template& operator=(const NG__NAS__CTRL__CNF_template& other_value); +inline boolean match(const NG__NAS__CTRL__CNF& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NG__NAS__CTRL__CNF& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NG__NAS__CTRL__CNF valueof() const; +inline NG__NAS__CTRL__CNF_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type_template& Common(); +const NasEmu__Common4G5G::NasCtrlCnfAspCommonPart__Type_template& Common() const; +NasEmu__Common4G5G::NasCtrlConfirm__Type_template& Confirm(); +const NasEmu__Common4G5G::NasCtrlConfirm__Type_template& Confirm() const; +Record_Template* create() const { return new NG__NAS__CTRL__CNF_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NG__NASCTRL__PORT_BASE : public PORT { +enum msg_selection { MESSAGE_0 }; +struct msg_queue_item : public msg_queue_item_base { +msg_selection item_selection; +union { +NG__NAS__CTRL__CNF *message_0; +}; +component sender_component; +}; + +void remove_msg_queue_head(); +protected: +void clear_queue(); +public: +NG__NASCTRL__PORT_BASE(const char *par_port_name); +~NG__NASCTRL__PORT_BASE(); +void send(const NG__NAS__CTRL__REQ& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const NG__NAS__CTRL__REQ& send_par, FLOAT* timestamp_redirect = NULL); +void send(const NG__NAS__CTRL__REQ_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const NG__NAS__CTRL__REQ_template& send_par, FLOAT* timestamp_redirect = NULL); +protected: +virtual void outgoing_send(const NG__NAS__CTRL__REQ& send_par) = 0; +public: +alt_status receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status receive(const NG__NAS__CTRL__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const NG__NAS__CTRL__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const NG__NAS__CTRL__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +private: +void incoming_message(const NG__NAS__CTRL__CNF& incoming_par, component sender_component); +protected: +inline void incoming_message(const NG__NAS__CTRL__CNF& incoming_par) { incoming_message(incoming_par, SYSTEM_COMPREF); } +boolean process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING& slider); +}; + +class NG__NASEMU__CTRL__PORT_BASE : public PORT { +enum msg_selection { MESSAGE_0 }; +struct msg_queue_item : public msg_queue_item_base { +msg_selection item_selection; +union { +NG__NAS__CTRL__REQ *message_0; +}; +component sender_component; +}; + +void remove_msg_queue_head(); +protected: +void clear_queue(); +public: +NG__NASEMU__CTRL__PORT_BASE(const char *par_port_name); +~NG__NASEMU__CTRL__PORT_BASE(); +void send(const NG__NAS__CTRL__CNF& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const NG__NAS__CTRL__CNF& send_par, FLOAT* timestamp_redirect = NULL); +void send(const NG__NAS__CTRL__CNF_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const NG__NAS__CTRL__CNF_template& send_par, FLOAT* timestamp_redirect = NULL); +protected: +virtual void outgoing_send(const NG__NAS__CTRL__CNF& send_par) = 0; +public: +alt_status receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status receive(const NG__NAS__CTRL__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const NG__NAS__CTRL__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const NG__NAS__CTRL__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +private: +void incoming_message(const NG__NAS__CTRL__REQ& incoming_par, component sender_component); +protected: +inline void incoming_message(const NG__NAS__CTRL__REQ& incoming_par) { incoming_message(incoming_par, SYSTEM_COMPREF); } +boolean process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING& slider); +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_NG_NasEmu_CtrlAspTypes(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_NG_NasEmu_CtrlAspTypes(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Global variable declarations */ + +extern const XERdescriptor_t NG__NAS__SecurityInfo__Type_Algorithm_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityInfo__Type_Algorithm_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityInfo__Type_Algorithm_descr_; +extern const XERdescriptor_t NG__NAS__SecurityInfo__Type_K__NAS_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityInfo__Type_K__NAS_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityInfo__Type_K__NAS_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityInfo__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityStartRestart__Type_descr_; +extern const XERdescriptor_t NG__NAS__SecurityStartRestart__Type_NasCountReset_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__SecurityStartRestart__Type_NasCountReset_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__SecurityStartRestart__Type_NasCountReset_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__Security__Type_descr_; +extern const XERdescriptor_t NG__NAS__Security__Type_Release_xer_; +extern const TTCN_OERdescriptor_t NG__NAS__Security__Type_Release_oer_; +extern const TTCN_Typedescriptor_t NG__NAS__Security__Type_Release_descr_; +extern const TTCN_Typedescriptor_t NG__NasCtrlRequest__Type_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__CTRL__REQ_descr_; +extern const TTCN_Typedescriptor_t NG__NAS__CTRL__CNF_descr_; +extern TTCN_Module module_object; + +} /* end of namespace */ + +/* Test port header files */ + +#include "NG_NASCTRL_PORT.hh" +#include "NG_NASEMU_CTRL_PORT.hh" + +#endif diff --git a/build/Ats_NG_NAS/NG_NasEmu_CtrlAspTypes.o b/build/Ats_NG_NAS/NG_NasEmu_CtrlAspTypes.o new file mode 100644 index 0000000000000000000000000000000000000000..daa6370917958be5822f9520c8c9ab6d0b6fedcb Binary files /dev/null and b/build/Ats_NG_NAS/NG_NasEmu_CtrlAspTypes.o differ diff --git a/build/Ats_NG_NAS/NasEmu_Common4G5G.cc b/build/Ats_NG_NAS/NasEmu_Common4G5G.cc new file mode 100644 index 0000000000000000000000000000000000000000..f48a99a1184d5444f398b365261c0c0c112f57e9 --- /dev/null +++ b/build/Ats_NG_NAS/NasEmu_Common4G5G.cc @@ -0,0 +1,4861 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "NasEmu_Common4G5G.hh" + +namespace NasEmu__Common4G5G { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); + +/* Literal string constants */ + +static const unsigned char module_checksum[] = { 0xb8, 0x32, 0x78, 0x8f, 0x5d, 0x7d, 0x01, 0xe5, 0xd9, 0x11, 0xa0, 0x2d, 0xe7, 0xfb, 0x66, 0x38 }; + +/* Global variable definitions */ + +const XERdescriptor_t NasCtrlReqAspControlInfo__Type_CnfFlag_xer_ = { {"CnfFlag>\n", "CnfFlag>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NasCtrlReqAspControlInfo__Type_CnfFlag_oer_ext_arr_[0] = {}; +const int NasCtrlReqAspControlInfo__Type_CnfFlag_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NasCtrlReqAspControlInfo__Type_CnfFlag_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NasCtrlReqAspControlInfo__Type_CnfFlag_oer_ext_arr_, 0, NasCtrlReqAspControlInfo__Type_CnfFlag_oer_p_}; +const TTCN_Typedescriptor_t NasCtrlReqAspControlInfo__Type_CnfFlag_descr_ = { "@NasEmu_Common4G5G.NasCtrlReqAspControlInfo_Type.CnfFlag", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &NasCtrlReqAspControlInfo__Type_CnfFlag_xer_, &BOOLEAN_json_, &NasCtrlReqAspControlInfo__Type_CnfFlag_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NasCtrlReqAspControlInfo__Type +const TTCN_Typedescriptor_t NasCtrlReqAspControlInfo__Type_descr_ = { "@NasEmu_Common4G5G.NasCtrlReqAspControlInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NasCtrlReqAspCommonPart__Type +const TTCN_Typedescriptor_t NasCtrlReqAspCommonPart__Type_descr_ = { "@NasEmu_Common4G5G.NasCtrlReqAspCommonPart_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NasCtrlCnfAspCommonPart__Type +const TTCN_Typedescriptor_t NasCtrlCnfAspCommonPart__Type_descr_ = { "@NasEmu_Common4G5G.NasCtrlCnfAspCommonPart_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NasCountInfo__Type +const TTCN_Typedescriptor_t NasCountInfo__Type_descr_ = { "@NasEmu_Common4G5G.NasCountInfo_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NasCountInfo__Type_UL_xer_ = { {"UL>\n", "UL>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NasCountInfo__Type_UL_oer_ext_arr_[0] = {}; +const int NasCountInfo__Type_UL_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NasCountInfo__Type_UL_oer_ = { -1, TRUE, 4, FALSE, 0, 0, NasCountInfo__Type_UL_oer_ext_arr_, 0, NasCountInfo__Type_UL_oer_p_}; +const TTCN_Typedescriptor_t NasCountInfo__Type_UL_descr_ = { "@NasEmu_Common4G5G.NasCountInfo_Type.UL", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &NasCountInfo__Type_UL_xer_, &OCTETSTRING_json_, &NasCountInfo__Type_UL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NasCountInfo__Type_DL_xer_ = { {"DL>\n", "DL>\n"}, {4, 4}, 0 |FORM_UNQUALIFIED |XER_OPTIONAL, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NasCountInfo__Type_DL_oer_ext_arr_[0] = {}; +const int NasCountInfo__Type_DL_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NasCountInfo__Type_DL_oer_ = { -1, TRUE, 4, FALSE, 0, 0, NasCountInfo__Type_DL_oer_ext_arr_, 0, NasCountInfo__Type_DL_oer_p_}; +const TTCN_Typedescriptor_t NasCountInfo__Type_DL_descr_ = { "@NasEmu_Common4G5G.NasCountInfo_Type.DL", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &NasCountInfo__Type_DL_xer_, &OCTETSTRING_json_, &NasCountInfo__Type_DL_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NAS__CountReq__Type +const TTCN_Typedescriptor_t NAS__CountReq__Type_descr_ = { "@NasEmu_Common4G5G.NAS_CountReq_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__CountReq__Type_Get_xer_ = { {"Get>\n", "Get>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__CountReq__Type_Get_oer_ext_arr_[0] = {}; +const int NAS__CountReq__Type_Get_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__CountReq__Type_Get_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NAS__CountReq__Type_Get_oer_ext_arr_, 0, NAS__CountReq__Type_Get_oer_p_}; +const TTCN_Typedescriptor_t NAS__CountReq__Type_Get_descr_ = { "@NasEmu_Common4G5G.NAS_CountReq_Type.Get", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &NAS__CountReq__Type_Get_xer_, &BOOLEAN_json_, &NAS__CountReq__Type_Get_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NAS__CountCnf__Type +const TTCN_Typedescriptor_t NAS__CountCnf__Type_descr_ = { "@NasEmu_Common4G5G.NAS_CountCnf_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NAS__CountCnf__Type_Set_xer_ = { {"Set>\n", "Set>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NAS__CountCnf__Type_Set_oer_ext_arr_[0] = {}; +const int NAS__CountCnf__Type_Set_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NAS__CountCnf__Type_Set_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NAS__CountCnf__Type_Set_oer_ext_arr_, 0, NAS__CountCnf__Type_Set_oer_p_}; +const TTCN_Typedescriptor_t NAS__CountCnf__Type_Set_descr_ = { "@NasEmu_Common4G5G.NAS_CountCnf_Type.Set", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &NAS__CountCnf__Type_Set_xer_, &BOOLEAN_json_, &NAS__CountCnf__Type_Set_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NasCtrlConfirm__Type +const TTCN_Typedescriptor_t NasCtrlConfirm__Type_descr_ = { "@NasEmu_Common4G5G.NasCtrlConfirm_Type", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NasCtrlConfirm__Type_Security_xer_ = { {"Security>\n", "Security>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NasCtrlConfirm__Type_Security_oer_ext_arr_[0] = {}; +const int NasCtrlConfirm__Type_Security_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NasCtrlConfirm__Type_Security_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NasCtrlConfirm__Type_Security_oer_ext_arr_, 0, NasCtrlConfirm__Type_Security_oer_p_}; +const TTCN_Typedescriptor_t NasCtrlConfirm__Type_Security_descr_ = { "@NasEmu_Common4G5G.NasCtrlConfirm_Type.Security", &BOOLEAN_ber_, &BOOLEAN_raw_, &BOOLEAN_text_, &NasCtrlConfirm__Type_Security_xer_, &BOOLEAN_json_, &NasCtrlConfirm__Type_Security_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +BOOLEAN const_tsc__NasEmu__TerminateOnError; +const BOOLEAN& tsc__NasEmu__TerminateOnError = const_tsc__NasEmu__TerminateOnError; +NasCtrlCnfAspCommonPart__Type_template template_cs__NasCtrlCnfAspCommonPart; +const NasCtrlCnfAspCommonPart__Type_template& cs__NasCtrlCnfAspCommonPart = template_cs__NasCtrlCnfAspCommonPart; +Erroneous_descriptor_t* template_cs__NasCtrlReqAspCommonPart_err_descr_ptr = NULL; +BOOLEAN const_cs__NasCtrlReqAspCommonPart_p__CnfFlag_defval; +const BOOLEAN& cs__NasCtrlReqAspCommonPart_p__CnfFlag_defval = const_cs__NasCtrlReqAspCommonPart_p__CnfFlag_defval; +NasCtrlCnfAspCommonPart__Type_template template_cr__NasCtrlCnfAspCommonPart; +const NasCtrlCnfAspCommonPart__Type_template& cr__NasCtrlCnfAspCommonPart = template_cr__NasCtrlCnfAspCommonPart; +const XERdescriptor_t NASEmu__CoOrd__REQ_IntegrityProtectedOctets_xer_ = { {"IntegrityProtectedOctets>\n", "IntegrityProtectedOctets>\n"}, {26, 26}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NASEmu__CoOrd__REQ_IntegrityProtectedOctets_oer_ext_arr_[0] = {}; +const int NASEmu__CoOrd__REQ_IntegrityProtectedOctets_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NASEmu__CoOrd__REQ_IntegrityProtectedOctets_oer_ = { -1, TRUE, -1, FALSE, 0, 0, NASEmu__CoOrd__REQ_IntegrityProtectedOctets_oer_ext_arr_, 0, NASEmu__CoOrd__REQ_IntegrityProtectedOctets_oer_p_}; +const TTCN_Typedescriptor_t NASEmu__CoOrd__REQ_IntegrityProtectedOctets_descr_ = { "@NasEmu_Common4G5G.NASEmu_CoOrd_REQ.IntegrityProtectedOctets", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &NASEmu__CoOrd__REQ_IntegrityProtectedOctets_xer_, &OCTETSTRING_json_, &NASEmu__CoOrd__REQ_IntegrityProtectedOctets_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NASEmu__CoOrd__REQ_SequenceNumber_xer_ = { {"SequenceNumber>\n", "SequenceNumber>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const TTCN_OERdescriptor_t NASEmu__CoOrd__REQ_SequenceNumber_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL }; +const TTCN_Typedescriptor_t NASEmu__CoOrd__REQ_SequenceNumber_descr_ = { "@NasEmu_Common4G5G.NASEmu_CoOrd_REQ.SequenceNumber", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &NASEmu__CoOrd__REQ_SequenceNumber_xer_, &INTEGER_json_, &NASEmu__CoOrd__REQ_SequenceNumber_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NASEmu__CoOrd__REQ +const TTCN_Typedescriptor_t NASEmu__CoOrd__REQ_descr_ = { "@NasEmu_Common4G5G.NASEmu_CoOrd_REQ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +const XERdescriptor_t NASEmu__CoOrd__CNF_MAC_xer_ = { {"MAC>\n", "MAC>\n"}, {5, 5}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE }; +const int NASEmu__CoOrd__CNF_MAC_oer_ext_arr_[0] = {}; +const int NASEmu__CoOrd__CNF_MAC_oer_p_[0] = {}; +const TTCN_OERdescriptor_t NASEmu__CoOrd__CNF_MAC_oer_ = { -1, TRUE, 4, FALSE, 0, 0, NASEmu__CoOrd__CNF_MAC_oer_ext_arr_, 0, NASEmu__CoOrd__CNF_MAC_oer_p_}; +const TTCN_Typedescriptor_t NASEmu__CoOrd__CNF_MAC_descr_ = { "@NasEmu_Common4G5G.NASEmu_CoOrd_CNF.MAC", &OCTETSTRING_ber_, &CommonDefs::O4__Type_raw_, &OCTETSTRING_text_, &NASEmu__CoOrd__CNF_MAC_xer_, &OCTETSTRING_json_, &NASEmu__CoOrd__CNF_MAC_oer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +// No XER for NASEmu__CoOrd__CNF +const TTCN_Typedescriptor_t NASEmu__CoOrd__CNF_descr_ = { "@NasEmu_Common4G5G.NASEmu_CoOrd_CNF", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE }; +Erroneous_descriptor_t* template_cs__NASEmu__CoOrd__REQ_err_descr_ptr = NULL; +NASEmu__CoOrd__REQ_template template_cr__NASEmu__CoOrd__REQ; +const NASEmu__CoOrd__REQ_template& cr__NASEmu__CoOrd__REQ = template_cr__NASEmu__CoOrd__REQ; +Erroneous_descriptor_t* template_cs__NASEmu__CoOrd__CNF_err_descr_ptr = NULL; +NASEmu__CoOrd__CNF_template template_cr__NASEmu__CoOrd__CNF; +const NASEmu__CoOrd__CNF_template& cr__NASEmu__CoOrd__CNF = template_cr__NASEmu__CoOrd__CNF; +TTCN_Module module_object("NasEmu_Common4G5G", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Debugger printing function for types declared in this module */ +CHARSTRING print_var_NasEmu_Common4G5G(const TTCN3_Debugger::variable_t& p_var) +{ + const void* ptr = p_var.set_function != NULL ? p_var.value : p_var.cvalue; + TTCN_Logger::begin_event_log2str(); + TTCN_Logger::ignore_sensitive_data(); + if (!strcmp(p_var.type_name, "NASEmu_CoOrd_CNF")) { + ((const NASEmu__CoOrd__CNF*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NASEmu_CoOrd_CNF template")) { + ((const NASEmu__CoOrd__CNF_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NASEmu_CoOrd_REQ")) { + ((const NASEmu__CoOrd__REQ*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NASEmu_CoOrd_REQ template")) { + ((const NASEmu__CoOrd__REQ_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_CountCnf_Type")) { + ((const NAS__CountCnf__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_CountCnf_Type template")) { + ((const NAS__CountCnf__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_CountReq_Type")) { + ((const NAS__CountReq__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NAS_CountReq_Type template")) { + ((const NAS__CountReq__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCountInfo_Type")) { + ((const NasCountInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCountInfo_Type template")) { + ((const NasCountInfo__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCtrlCnfAspCommonPart_Type")) { + ((const NasCtrlCnfAspCommonPart__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCtrlCnfAspCommonPart_Type template")) { + ((const NasCtrlCnfAspCommonPart__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCtrlConfirm_Type")) { + ((const NasCtrlConfirm__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCtrlConfirm_Type template")) { + ((const NasCtrlConfirm__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCtrlReqAspCommonPart_Type")) { + ((const NasCtrlReqAspCommonPart__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCtrlReqAspCommonPart_Type template")) { + ((const NasCtrlReqAspCommonPart__Type_template*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCtrlReqAspControlInfo_Type")) { + ((const NasCtrlReqAspControlInfo__Type*)ptr)->log(); + } + else if (!strcmp(p_var.type_name, "NasCtrlReqAspControlInfo_Type template")) { + ((const NasCtrlReqAspControlInfo__Type_template*)ptr)->log(); + } + else { + TTCN_Logger::log_event_str(""); + } + return TTCN_Logger::end_event_log2str(); +} + +/* Debugger overwriting function for types declared in this module */ +boolean set_var_NasEmu_Common4G5G(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value) +{ + if (!strcmp(p_var.type_name, "NASEmu_CoOrd_CNF")) { + ((NASEmu__CoOrd__CNF*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NASEmu_CoOrd_CNF template")) { + ((NASEmu__CoOrd__CNF_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NASEmu_CoOrd_REQ")) { + ((NASEmu__CoOrd__REQ*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NASEmu_CoOrd_REQ template")) { + ((NASEmu__CoOrd__REQ_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_CountCnf_Type")) { + ((NAS__CountCnf__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_CountCnf_Type template")) { + ((NAS__CountCnf__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_CountReq_Type")) { + ((NAS__CountReq__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NAS_CountReq_Type template")) { + ((NAS__CountReq__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCountInfo_Type")) { + ((NasCountInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCountInfo_Type template")) { + ((NasCountInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCtrlCnfAspCommonPart_Type")) { + ((NasCtrlCnfAspCommonPart__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCtrlCnfAspCommonPart_Type template")) { + ((NasCtrlCnfAspCommonPart__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCtrlConfirm_Type")) { + ((NasCtrlConfirm__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCtrlConfirm_Type template")) { + ((NasCtrlConfirm__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCtrlReqAspCommonPart_Type")) { + ((NasCtrlReqAspCommonPart__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCtrlReqAspCommonPart_Type template")) { + ((NasCtrlReqAspCommonPart__Type_template*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCtrlReqAspControlInfo_Type")) { + ((NasCtrlReqAspControlInfo__Type*)p_var.value)->set_param(p_new_value); + } + else if (!strcmp(p_var.type_name, "NasCtrlReqAspControlInfo_Type template")) { + ((NasCtrlReqAspControlInfo__Type_template*)p_var.value)->set_param(p_new_value); + } + else { + return FALSE; + } + return TRUE; +} + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("NasEmu_Common4G5G"); + global_scope->add_variable(&cr__NASEmu__CoOrd__CNF, "cr_NASEmu_CoOrd_CNF", "NASEmu_CoOrd_CNF template", "NasEmu_Common4G5G", print_var_NasEmu_Common4G5G); + global_scope->add_variable(&cr__NASEmu__CoOrd__REQ, "cr_NASEmu_CoOrd_REQ", "NASEmu_CoOrd_REQ template", "NasEmu_Common4G5G", print_var_NasEmu_Common4G5G); + global_scope->add_variable(&cr__NasCtrlCnfAspCommonPart, "cr_NasCtrlCnfAspCommonPart", "NasCtrlCnfAspCommonPart_Type template", "NasEmu_Common4G5G", print_var_NasEmu_Common4G5G); + global_scope->add_variable(&cs__NasCtrlCnfAspCommonPart, "cs_NasCtrlCnfAspCommonPart", "NasCtrlCnfAspCommonPart_Type template", "NasEmu_Common4G5G", print_var_NasEmu_Common4G5G); + global_scope->add_variable(&tsc__NasEmu__TerminateOnError, "tsc_NasEmu_TerminateOnError", "boolean", "NasEmu_Common4G5G", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); +} + +/* Member functions of C++ classes */ + +void NasCtrlReqAspControlInfo__Type::init_vec() { fld_vec[0]=&field_CnfFlag; } + +NasCtrlReqAspControlInfo__Type::NasCtrlReqAspControlInfo__Type() : Record_Type() { init_vec(); } + +NasCtrlReqAspControlInfo__Type::NasCtrlReqAspControlInfo__Type(const NasCtrlReqAspControlInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_CnfFlag.is_bound() ) + field_CnfFlag = other_value.field_CnfFlag; +init_vec(); +} + +NasCtrlReqAspControlInfo__Type::NasCtrlReqAspControlInfo__Type(const BOOLEAN& par_CnfFlag) : field_CnfFlag(par_CnfFlag) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NasCtrlReqAspControlInfo__Type::get_descriptor() const { return &NasCtrlReqAspControlInfo__Type_descr_; } +const TTCN_Typedescriptor_t* NasCtrlReqAspControlInfo__Type::fld_descriptors[] = { &BOOLEAN_descr_ }; +const TTCN_Typedescriptor_t* NasCtrlReqAspControlInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NasCtrlReqAspControlInfo__Type::fld_names[] = { "CnfFlag" }; +const char* NasCtrlReqAspControlInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NasCtrlReqAspControlInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new BOOLEAN_template(ANY_VALUE) : new BOOLEAN_template; +} +} + +NasCtrlReqAspControlInfo__Type_template::NasCtrlReqAspControlInfo__Type_template(NasCtrlReqAspControlInfo__Type_template* p_precondition, NasCtrlReqAspControlInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NasCtrlReqAspControlInfo__Type_template::NasCtrlReqAspControlInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NasCtrlReqAspControlInfo__Type_template::~NasCtrlReqAspControlInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NasCtrlReqAspControlInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NasCtrlReqAspControlInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NasCtrlReqAspControlInfo__Type_template& NasCtrlReqAspControlInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NasCtrlReqAspControlInfo__Type_template& NasCtrlReqAspControlInfo__Type_template::operator=(const NasCtrlReqAspControlInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NasCtrlReqAspControlInfo__Type_template& NasCtrlReqAspControlInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NasCtrlReqAspControlInfo__Type_template& NasCtrlReqAspControlInfo__Type_template::operator=(const NasCtrlReqAspControlInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NasCtrlReqAspControlInfo__Type NasCtrlReqAspControlInfo__Type_template::valueof() const +{ +NasCtrlReqAspControlInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +BOOLEAN_template& NasCtrlReqAspControlInfo__Type_template::CnfFlag() { return *(static_cast(get_at(0))); } +const BOOLEAN_template& NasCtrlReqAspControlInfo__Type_template::CnfFlag() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* NasCtrlReqAspControlInfo__Type_template::get_descriptor() const { return &NasCtrlReqAspControlInfo__Type_descr_; } +const char* NasCtrlReqAspControlInfo__Type_template::fld_name(int p_index) const { return NasCtrlReqAspControlInfo__Type::fld_names[p_index]; } +void NasCtrlReqAspCommonPart__Type::init_vec() { fld_vec[0]=&field_ControlInfo; } + +NasCtrlReqAspCommonPart__Type::NasCtrlReqAspCommonPart__Type() : Record_Type() { init_vec(); } + +NasCtrlReqAspCommonPart__Type::NasCtrlReqAspCommonPart__Type(const NasCtrlReqAspCommonPart__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_ControlInfo.is_bound() ) + field_ControlInfo = other_value.field_ControlInfo; +init_vec(); +} + +NasCtrlReqAspCommonPart__Type::NasCtrlReqAspCommonPart__Type(const NasCtrlReqAspControlInfo__Type& par_ControlInfo) : field_ControlInfo(par_ControlInfo) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NasCtrlReqAspCommonPart__Type::get_descriptor() const { return &NasCtrlReqAspCommonPart__Type_descr_; } +const TTCN_Typedescriptor_t* NasCtrlReqAspCommonPart__Type::fld_descriptors[] = { &NasCtrlReqAspControlInfo__Type_descr_ }; +const TTCN_Typedescriptor_t* NasCtrlReqAspCommonPart__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NasCtrlReqAspCommonPart__Type::fld_names[] = { "ControlInfo" }; +const char* NasCtrlReqAspCommonPart__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +void NasCtrlReqAspCommonPart__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new NasCtrlReqAspControlInfo__Type_template(ANY_VALUE) : new NasCtrlReqAspControlInfo__Type_template; +} +} + +NasCtrlReqAspCommonPart__Type_template::NasCtrlReqAspCommonPart__Type_template(NasCtrlReqAspCommonPart__Type_template* p_precondition, NasCtrlReqAspCommonPart__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NasCtrlReqAspCommonPart__Type_template::NasCtrlReqAspCommonPart__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NasCtrlReqAspCommonPart__Type_template::~NasCtrlReqAspCommonPart__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NasCtrlReqAspCommonPart__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NasCtrlReqAspCommonPart__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NasCtrlReqAspCommonPart__Type_template& NasCtrlReqAspCommonPart__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NasCtrlReqAspCommonPart__Type_template& NasCtrlReqAspCommonPart__Type_template::operator=(const NasCtrlReqAspCommonPart__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NasCtrlReqAspCommonPart__Type_template& NasCtrlReqAspCommonPart__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NasCtrlReqAspCommonPart__Type_template& NasCtrlReqAspCommonPart__Type_template::operator=(const NasCtrlReqAspCommonPart__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NasCtrlReqAspCommonPart__Type NasCtrlReqAspCommonPart__Type_template::valueof() const +{ +NasCtrlReqAspCommonPart__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +NasCtrlReqAspControlInfo__Type_template& NasCtrlReqAspCommonPart__Type_template::ControlInfo() { return *(static_cast(get_at(0))); } +const NasCtrlReqAspControlInfo__Type_template& NasCtrlReqAspCommonPart__Type_template::ControlInfo() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* NasCtrlReqAspCommonPart__Type_template::get_descriptor() const { return &NasCtrlReqAspCommonPart__Type_descr_; } +const char* NasCtrlReqAspCommonPart__Type_template::fld_name(int p_index) const { return NasCtrlReqAspCommonPart__Type::fld_names[p_index]; } +NasCtrlCnfAspCommonPart__Type::NasCtrlCnfAspCommonPart__Type() : Empty_Record_Type() {} + +const TTCN_Typedescriptor_t* NasCtrlCnfAspCommonPart__Type::get_descriptor() const { return &NasCtrlCnfAspCommonPart__Type_descr_; } +NasCtrlCnfAspCommonPart__Type_template::NasCtrlCnfAspCommonPart__Type_template(NasCtrlCnfAspCommonPart__Type_template* p_precondition, NasCtrlCnfAspCommonPart__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NasCtrlCnfAspCommonPart__Type_template::NasCtrlCnfAspCommonPart__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NasCtrlCnfAspCommonPart__Type_template::~NasCtrlCnfAspCommonPart__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NasCtrlCnfAspCommonPart__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NasCtrlCnfAspCommonPart__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NasCtrlCnfAspCommonPart__Type_template& NasCtrlCnfAspCommonPart__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NasCtrlCnfAspCommonPart__Type_template& NasCtrlCnfAspCommonPart__Type_template::operator=(const NasCtrlCnfAspCommonPart__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NasCtrlCnfAspCommonPart__Type_template& NasCtrlCnfAspCommonPart__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NasCtrlCnfAspCommonPart__Type_template& NasCtrlCnfAspCommonPart__Type_template::operator=(const NasCtrlCnfAspCommonPart__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NasCtrlCnfAspCommonPart__Type_template& NasCtrlCnfAspCommonPart__Type_template::operator=(null_type) +{ +clean_up(); +set_selection(SPECIFIC_VALUE); +return *this; +} + +NasCtrlCnfAspCommonPart__Type NasCtrlCnfAspCommonPart__Type_template::valueof() const +{ +NasCtrlCnfAspCommonPart__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +const TTCN_Typedescriptor_t* NasCtrlCnfAspCommonPart__Type_template::get_descriptor() const { return &NasCtrlCnfAspCommonPart__Type_descr_; } +void NasCountInfo__Type::init_vec() { fld_vec[0]=&field_UL; fld_vec[1]=&field_DL; } + +NasCountInfo__Type::NasCountInfo__Type() : Record_Type() { init_vec(); } + +NasCountInfo__Type::NasCountInfo__Type(const NasCountInfo__Type& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_UL.is_bound() ) + field_UL = other_value.field_UL; +if (other_value.field_DL.is_bound() ) + field_DL = other_value.field_DL; +init_vec(); +} + +NasCountInfo__Type::NasCountInfo__Type(const OPTIONAL& par_UL, + const OPTIONAL& par_DL) : field_UL(par_UL), + field_DL(par_DL) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NasCountInfo__Type::get_descriptor() const { return &NasCountInfo__Type_descr_; } +const TTCN_Typedescriptor_t* NasCountInfo__Type::fld_descriptors[] = { &CommonDefs::NasCount__Type_descr_, &CommonDefs::NasCount__Type_descr_ }; +const TTCN_Typedescriptor_t* NasCountInfo__Type::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NasCountInfo__Type::fld_names[] = { "UL", "DL" }; +const char* NasCountInfo__Type::fld_name(int p_index) const { return fld_names[p_index]; } + +const int NasCountInfo__Type::optional_indexes[] = { 0, 1, -1 }; +const int* NasCountInfo__Type::get_optional_indexes() const { return optional_indexes; } + +const int NasCountInfo__Type::optional_indexes_asn[] = { 0, 1, -1 }; +const int* NasCountInfo__Type::get_optional_indexes_asn() const { return optional_indexes_asn; } + +void NasCountInfo__Type_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new OCTETSTRING_template(ANY_OR_OMIT) : new OCTETSTRING_template; +} +} + +NasCountInfo__Type_template::NasCountInfo__Type_template(NasCountInfo__Type_template* p_precondition, NasCountInfo__Type_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NasCountInfo__Type_template::NasCountInfo__Type_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NasCountInfo__Type_template::~NasCountInfo__Type_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NasCountInfo__Type_template::match_dynamic(const Base_Type* match_value) const +{ +const NasCountInfo__Type* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NasCountInfo__Type_template& NasCountInfo__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NasCountInfo__Type_template& NasCountInfo__Type_template::operator=(const NasCountInfo__Type& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NasCountInfo__Type_template& NasCountInfo__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NasCountInfo__Type_template& NasCountInfo__Type_template::operator=(const NasCountInfo__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NasCountInfo__Type NasCountInfo__Type_template::valueof() const +{ +NasCountInfo__Type ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NasCountInfo__Type_template::UL() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NasCountInfo__Type_template::UL() const { return *(static_cast(get_at(0))); } +OCTETSTRING_template& NasCountInfo__Type_template::DL() { return *(static_cast(get_at(1))); } +const OCTETSTRING_template& NasCountInfo__Type_template::DL() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NasCountInfo__Type_template::get_descriptor() const { return &NasCountInfo__Type_descr_; } +const char* NasCountInfo__Type_template::fld_name(int p_index) const { return NasCountInfo__Type::fld_names[p_index]; } +void NAS__CountReq__Type::copy_value(const NAS__CountReq__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_Get: +field_Get = new BOOLEAN(*other_value.field_Get); +break; +case ALT_Set: +field_Set = new NasCountInfo__Type(*other_value.field_Set); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +NAS__CountReq__Type::NAS__CountReq__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +NAS__CountReq__Type::NAS__CountReq__Type(const NAS__CountReq__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +NAS__CountReq__Type::~NAS__CountReq__Type() +{ +clean_up(); +} + +NAS__CountReq__Type& NAS__CountReq__Type::operator=(const NAS__CountReq__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean NAS__CountReq__Type::operator==(const NAS__CountReq__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_Get: +return *field_Get == *other_value.field_Get; +case ALT_Set: +return *field_Set == *other_value.field_Set; +default: +return FALSE; +} +} + +BOOLEAN& NAS__CountReq__Type::Get() +{ +if (union_selection != ALT_Get) { +clean_up(); +field_Get = new BOOLEAN; +union_selection = ALT_Get; +} +return *field_Get; +} + +const BOOLEAN& NAS__CountReq__Type::Get() const +{ +if (union_selection != ALT_Get) TTCN_error("Using non-selected field Get in a value of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +return *field_Get; +} + +NasCountInfo__Type& NAS__CountReq__Type::Set() +{ +if (union_selection != ALT_Set) { +clean_up(); +field_Set = new NasCountInfo__Type; +union_selection = ALT_Set; +} +return *field_Set; +} + +const NasCountInfo__Type& NAS__CountReq__Type::Set() const +{ +if (union_selection != ALT_Set) TTCN_error("Using non-selected field Set in a value of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +return *field_Set; +} + +boolean NAS__CountReq__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +return union_selection == checked_selection; +} + +boolean NAS__CountReq__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean NAS__CountReq__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_Get: return field_Get->is_value(); +case ALT_Set: return field_Set->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void NAS__CountReq__Type::clean_up() +{ +switch (union_selection) { +case ALT_Get: + delete field_Get; + break; +case ALT_Set: + delete field_Set; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean NAS__CountReq__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NAS__CountReq__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NAS__CountReq__Type::clone() const { return new NAS__CountReq__Type(*this); } +const TTCN_Typedescriptor_t* NAS__CountReq__Type::get_descriptor() const { return &NAS__CountReq__Type_descr_; } +void NAS__CountReq__Type::log() const +{ +switch (union_selection) { +case ALT_Get: +TTCN_Logger::log_event_str("{ Get := "); +field_Get->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_Set: +TTCN_Logger::log_event_str("{ Set := "); +field_Set->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void NAS__CountReq__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NasEmu_Common4G5G.NAS_CountReq_Type'"); + } + if (strcmp("Get", param_field) == 0) { + Get().set_param(param); + return; + } else if (strcmp("Set", param_field) == 0) { + Set().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NasEmu_Common4G5G.NAS_CountReq_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Get")) { + Get().set_param(*mp_last); + if (!Get().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "Set")) { + Set().set_param(*mp_last); + if (!Set().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NasEmu_Common4G5G.NAS_CountReq_Type.", last_name); +} + +Module_Param* NAS__CountReq__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NasEmu_Common4G5G.NAS_CountReq_Type'"); + } + if (strcmp("Get", param_field) == 0) { + return Get().get_param(param_name); + } else if (strcmp("Set", param_field) == 0) { + return Set().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NAS__CountReq__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_Get: + mp_field = field_Get->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Get"))); + break; + case ALT_Set: + mp_field = field_Set->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Set"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void NAS__CountReq__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_Get: +field_Get->set_implicit_omit(); break; +case ALT_Set: +field_Set->set_implicit_omit(); break; +default: break; +} +} + +void NAS__CountReq__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_Get: +field_Get->encode_text(text_buf); +break; +case ALT_Set: +field_Set->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +} + +void NAS__CountReq__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_Get: +Get().decode_text(text_buf); +break; +case ALT_Set: +Set().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +} + +void NAS__CountReq__Type_template::copy_value(const NAS__CountReq__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case NAS__CountReq__Type::ALT_Get: +single_value.field_Get = new BOOLEAN_template(other_value.Get()); +break; +case NAS__CountReq__Type::ALT_Set: +single_value.field_Set = new NasCountInfo__Type_template(other_value.Set()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void NAS__CountReq__Type_template::copy_template(const NAS__CountReq__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case NAS__CountReq__Type::ALT_Get: +single_value.field_Get = new BOOLEAN_template(*other_value.single_value.field_Get); +break; +case NAS__CountReq__Type::ALT_Set: +single_value.field_Set = new NasCountInfo__Type_template(*other_value.single_value.field_Set); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NAS__CountReq__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NAS__CountReq__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NAS__CountReq__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +NAS__CountReq__Type_template::NAS__CountReq__Type_template(): err_descr(NULL) +{ +} + +NAS__CountReq__Type_template::NAS__CountReq__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +NAS__CountReq__Type_template::NAS__CountReq__Type_template(const NAS__CountReq__Type& other_value) +{ +copy_value(other_value); +} + +NAS__CountReq__Type_template::NAS__CountReq__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NAS__CountReq__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type from an unbound optional field."); +} +} + +NAS__CountReq__Type_template::NAS__CountReq__Type_template(NAS__CountReq__Type_template* p_precondition, NAS__CountReq__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NAS__CountReq__Type_template::NAS__CountReq__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NAS__CountReq__Type_template::NAS__CountReq__Type_template(const NAS__CountReq__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +NAS__CountReq__Type_template::~NAS__CountReq__Type_template() +{ +clean_up(); +} + +void NAS__CountReq__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NAS__CountReq__Type::ALT_Get: +delete single_value.field_Get; +break; +case NAS__CountReq__Type::ALT_Set: +delete single_value.field_Set; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NAS__CountReq__Type_template& NAS__CountReq__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +NAS__CountReq__Type_template& NAS__CountReq__Type_template::operator=(const NAS__CountReq__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +NAS__CountReq__Type_template& NAS__CountReq__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NAS__CountReq__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +return *this; +} + +NAS__CountReq__Type_template& NAS__CountReq__Type_template::operator=(const NAS__CountReq__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NAS__CountReq__Type_template::match(const NAS__CountReq__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +NAS__CountReq__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == NAS__CountReq__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case NAS__CountReq__Type::ALT_Get: +return single_value.field_Get->match(other_value.Get(), legacy); +case NAS__CountReq__Type::ALT_Set: +return single_value.field_Set->match(other_value.Set(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +return FALSE; +} + +boolean NAS__CountReq__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case NAS__CountReq__Type::ALT_Get: +return single_value.field_Get->is_value(); +case NAS__CountReq__Type::ALT_Set: +return single_value.field_Set->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +} + +NAS__CountReq__Type NAS__CountReq__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +NAS__CountReq__Type ret_val; +switch (single_value.union_selection) { +case NAS__CountReq__Type::ALT_Get: +ret_val.Get() = single_value.field_Get->valueof(); +break; +case NAS__CountReq__Type::ALT_Set: +ret_val.Set() = single_value.field_Set->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +NAS__CountReq__Type_template& NAS__CountReq__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +return value_list.list_value[list_index]; +} +void NAS__CountReq__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NAS__CountReq__Type_template[list_length]; +} + +NAS__CountReq__Type::union_selection_type NAS__CountReq__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NasEmu_Common4G5G.NAS_CountReq_Type"); +return single_value.union_selection; +} + +BOOLEAN_template& NAS__CountReq__Type_template::Get() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NAS__CountReq__Type::ALT_Get) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Get = new BOOLEAN_template(ANY_VALUE); +else single_value.field_Get = new BOOLEAN_template; +single_value.union_selection = NAS__CountReq__Type::ALT_Get; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Get; +} + +const BOOLEAN_template& NAS__CountReq__Type_template::Get() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Get in a non-specific template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +if (single_value.union_selection != NAS__CountReq__Type::ALT_Get) TTCN_error("Accessing non-selected field Get in a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +return *single_value.field_Get; +} + +NasCountInfo__Type_template& NAS__CountReq__Type_template::Set() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NAS__CountReq__Type::ALT_Set) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Set = new NasCountInfo__Type_template(ANY_VALUE); +else single_value.field_Set = new NasCountInfo__Type_template; +single_value.union_selection = NAS__CountReq__Type::ALT_Set; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Set; +} + +const NasCountInfo__Type_template& NAS__CountReq__Type_template::Set() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Set in a non-specific template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +if (single_value.union_selection != NAS__CountReq__Type::ALT_Set) TTCN_error("Accessing non-selected field Set in a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +return *single_value.field_Set; +} + +boolean NAS__CountReq__Type_template::ischosen(NAS__CountReq__Type::union_selection_type checked_selection) const +{ +if (checked_selection == NAS__CountReq__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == NAS__CountReq__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void NAS__CountReq__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NAS__CountReq__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NAS__CountReq__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NAS__CountReq__Type_template::clone() const { return new NAS__CountReq__Type_template(*this); } +const TTCN_Typedescriptor_t* NAS__CountReq__Type_template::get_descriptor() const { return &NAS__CountReq__Type_descr_; } +boolean NAS__CountReq__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NAS__CountReq__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NAS__CountReq__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NAS__CountReq__Type::ALT_Get: +TTCN_Logger::log_event_str("{ Get := "); +single_value.field_Get->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NAS__CountReq__Type::ALT_Set: +TTCN_Logger::log_event_str("{ Set := "); +single_value.field_Set->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void NAS__CountReq__Type_template::log_match(const NAS__CountReq__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case NAS__CountReq__Type::ALT_Get: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Get"); +single_value.field_Get->log_match(match_value.Get(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Get := "); +single_value.field_Get->log_match(match_value.Get(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NAS__CountReq__Type::ALT_Set: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Set"); +single_value.field_Set->log_match(match_value.Set(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Set := "); +single_value.field_Set->log_match(match_value.Set(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void NAS__CountReq__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case NAS__CountReq__Type::ALT_Get: +single_value.field_Get->encode_text(text_buf); +break; +case NAS__CountReq__Type::ALT_Set: +single_value.field_Set->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +} + +void NAS__CountReq__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = NAS__CountReq__Type::UNBOUND_VALUE; +NAS__CountReq__Type::union_selection_type new_selection = (NAS__CountReq__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case NAS__CountReq__Type::ALT_Get: +single_value.field_Get = new BOOLEAN_template; +single_value.field_Get->decode_text(text_buf); +break; +case NAS__CountReq__Type::ALT_Set: +single_value.field_Set = new NasCountInfo__Type_template; +single_value.field_Set->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NAS__CountReq__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +} + +boolean NAS__CountReq__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NAS__CountReq__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NasEmu_Common4G5G.NAS_CountReq_Type'"); + } + if (strcmp("Get", param_field) == 0) { + Get().set_param(param); + return; + } else if (strcmp("Set", param_field) == 0) { + Set().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NasEmu_Common4G5G.NAS_CountReq_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NAS__CountReq__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NasEmu_Common4G5G.NAS_CountReq_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Get")) { + Get().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "Set")) { + Set().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NasEmu_Common4G5G.NAS_CountReq_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + NAS__CountReq__Type_template* precondition = new NAS__CountReq__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NAS__CountReq__Type_template* implied_template = new NAS__CountReq__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NAS__CountReq__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NasEmu_Common4G5G.NAS_CountReq_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NAS__CountReq__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NasEmu_Common4G5G.NAS_CountReq_Type'"); + } + if (strcmp("Get", param_field) == 0) { + return Get().get_param(param_name); + } else if (strcmp("Set", param_field) == 0) { + return Set().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NAS__CountReq__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case NAS__CountReq__Type::ALT_Get: + mp_field = single_value.field_Get->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Get"))); + break; + case NAS__CountReq__Type::ALT_Set: + mp_field = single_value.field_Set->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Set"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NAS__CountReq__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case NAS__CountReq__Type::ALT_Get: +single_value.field_Get->check_restriction(t_res, t_name ? t_name : "@NasEmu_Common4G5G.NAS_CountReq_Type"); +return; +case NAS__CountReq__Type::ALT_Set: +single_value.field_Set->check_restriction(t_res, t_name ? t_name : "@NasEmu_Common4G5G.NAS_CountReq_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NasEmu_Common4G5G.NAS_CountReq_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NasEmu_Common4G5G.NAS_CountReq_Type"); +} + +void NAS__CountCnf__Type::copy_value(const NAS__CountCnf__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_Get: +field_Get = new NasCountInfo__Type(*other_value.field_Get); +break; +case ALT_Set: +field_Set = new BOOLEAN(*other_value.field_Set); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +NAS__CountCnf__Type::NAS__CountCnf__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +NAS__CountCnf__Type::NAS__CountCnf__Type(const NAS__CountCnf__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +NAS__CountCnf__Type::~NAS__CountCnf__Type() +{ +clean_up(); +} + +NAS__CountCnf__Type& NAS__CountCnf__Type::operator=(const NAS__CountCnf__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean NAS__CountCnf__Type::operator==(const NAS__CountCnf__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_Get: +return *field_Get == *other_value.field_Get; +case ALT_Set: +return *field_Set == *other_value.field_Set; +default: +return FALSE; +} +} + +NasCountInfo__Type& NAS__CountCnf__Type::Get() +{ +if (union_selection != ALT_Get) { +clean_up(); +field_Get = new NasCountInfo__Type; +union_selection = ALT_Get; +} +return *field_Get; +} + +const NasCountInfo__Type& NAS__CountCnf__Type::Get() const +{ +if (union_selection != ALT_Get) TTCN_error("Using non-selected field Get in a value of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +return *field_Get; +} + +BOOLEAN& NAS__CountCnf__Type::Set() +{ +if (union_selection != ALT_Set) { +clean_up(); +field_Set = new BOOLEAN; +union_selection = ALT_Set; +} +return *field_Set; +} + +const BOOLEAN& NAS__CountCnf__Type::Set() const +{ +if (union_selection != ALT_Set) TTCN_error("Using non-selected field Set in a value of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +return *field_Set; +} + +boolean NAS__CountCnf__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +return union_selection == checked_selection; +} + +boolean NAS__CountCnf__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean NAS__CountCnf__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_Get: return field_Get->is_value(); +case ALT_Set: return field_Set->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void NAS__CountCnf__Type::clean_up() +{ +switch (union_selection) { +case ALT_Get: + delete field_Get; + break; +case ALT_Set: + delete field_Set; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean NAS__CountCnf__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NAS__CountCnf__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NAS__CountCnf__Type::clone() const { return new NAS__CountCnf__Type(*this); } +const TTCN_Typedescriptor_t* NAS__CountCnf__Type::get_descriptor() const { return &NAS__CountCnf__Type_descr_; } +void NAS__CountCnf__Type::log() const +{ +switch (union_selection) { +case ALT_Get: +TTCN_Logger::log_event_str("{ Get := "); +field_Get->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_Set: +TTCN_Logger::log_event_str("{ Set := "); +field_Set->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void NAS__CountCnf__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NasEmu_Common4G5G.NAS_CountCnf_Type'"); + } + if (strcmp("Get", param_field) == 0) { + Get().set_param(param); + return; + } else if (strcmp("Set", param_field) == 0) { + Set().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NasEmu_Common4G5G.NAS_CountCnf_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Get")) { + Get().set_param(*mp_last); + if (!Get().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "Set")) { + Set().set_param(*mp_last); + if (!Set().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NasEmu_Common4G5G.NAS_CountCnf_Type.", last_name); +} + +Module_Param* NAS__CountCnf__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NasEmu_Common4G5G.NAS_CountCnf_Type'"); + } + if (strcmp("Get", param_field) == 0) { + return Get().get_param(param_name); + } else if (strcmp("Set", param_field) == 0) { + return Set().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NAS__CountCnf__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_Get: + mp_field = field_Get->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Get"))); + break; + case ALT_Set: + mp_field = field_Set->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Set"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void NAS__CountCnf__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_Get: +field_Get->set_implicit_omit(); break; +case ALT_Set: +field_Set->set_implicit_omit(); break; +default: break; +} +} + +void NAS__CountCnf__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_Get: +field_Get->encode_text(text_buf); +break; +case ALT_Set: +field_Set->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +} + +void NAS__CountCnf__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_Get: +Get().decode_text(text_buf); +break; +case ALT_Set: +Set().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +} + +void NAS__CountCnf__Type_template::copy_value(const NAS__CountCnf__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case NAS__CountCnf__Type::ALT_Get: +single_value.field_Get = new NasCountInfo__Type_template(other_value.Get()); +break; +case NAS__CountCnf__Type::ALT_Set: +single_value.field_Set = new BOOLEAN_template(other_value.Set()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void NAS__CountCnf__Type_template::copy_template(const NAS__CountCnf__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case NAS__CountCnf__Type::ALT_Get: +single_value.field_Get = new NasCountInfo__Type_template(*other_value.single_value.field_Get); +break; +case NAS__CountCnf__Type::ALT_Set: +single_value.field_Set = new BOOLEAN_template(*other_value.single_value.field_Set); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NAS__CountCnf__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NAS__CountCnf__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NAS__CountCnf__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +NAS__CountCnf__Type_template::NAS__CountCnf__Type_template(): err_descr(NULL) +{ +} + +NAS__CountCnf__Type_template::NAS__CountCnf__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +NAS__CountCnf__Type_template::NAS__CountCnf__Type_template(const NAS__CountCnf__Type& other_value) +{ +copy_value(other_value); +} + +NAS__CountCnf__Type_template::NAS__CountCnf__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NAS__CountCnf__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type from an unbound optional field."); +} +} + +NAS__CountCnf__Type_template::NAS__CountCnf__Type_template(NAS__CountCnf__Type_template* p_precondition, NAS__CountCnf__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NAS__CountCnf__Type_template::NAS__CountCnf__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NAS__CountCnf__Type_template::NAS__CountCnf__Type_template(const NAS__CountCnf__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +NAS__CountCnf__Type_template::~NAS__CountCnf__Type_template() +{ +clean_up(); +} + +void NAS__CountCnf__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NAS__CountCnf__Type::ALT_Get: +delete single_value.field_Get; +break; +case NAS__CountCnf__Type::ALT_Set: +delete single_value.field_Set; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NAS__CountCnf__Type_template& NAS__CountCnf__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +NAS__CountCnf__Type_template& NAS__CountCnf__Type_template::operator=(const NAS__CountCnf__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +NAS__CountCnf__Type_template& NAS__CountCnf__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NAS__CountCnf__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +return *this; +} + +NAS__CountCnf__Type_template& NAS__CountCnf__Type_template::operator=(const NAS__CountCnf__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NAS__CountCnf__Type_template::match(const NAS__CountCnf__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +NAS__CountCnf__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == NAS__CountCnf__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case NAS__CountCnf__Type::ALT_Get: +return single_value.field_Get->match(other_value.Get(), legacy); +case NAS__CountCnf__Type::ALT_Set: +return single_value.field_Set->match(other_value.Set(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +return FALSE; +} + +boolean NAS__CountCnf__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case NAS__CountCnf__Type::ALT_Get: +return single_value.field_Get->is_value(); +case NAS__CountCnf__Type::ALT_Set: +return single_value.field_Set->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +} + +NAS__CountCnf__Type NAS__CountCnf__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +NAS__CountCnf__Type ret_val; +switch (single_value.union_selection) { +case NAS__CountCnf__Type::ALT_Get: +ret_val.Get() = single_value.field_Get->valueof(); +break; +case NAS__CountCnf__Type::ALT_Set: +ret_val.Set() = single_value.field_Set->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +NAS__CountCnf__Type_template& NAS__CountCnf__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +return value_list.list_value[list_index]; +} +void NAS__CountCnf__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NAS__CountCnf__Type_template[list_length]; +} + +NAS__CountCnf__Type::union_selection_type NAS__CountCnf__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type"); +return single_value.union_selection; +} + +NasCountInfo__Type_template& NAS__CountCnf__Type_template::Get() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NAS__CountCnf__Type::ALT_Get) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Get = new NasCountInfo__Type_template(ANY_VALUE); +else single_value.field_Get = new NasCountInfo__Type_template; +single_value.union_selection = NAS__CountCnf__Type::ALT_Get; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Get; +} + +const NasCountInfo__Type_template& NAS__CountCnf__Type_template::Get() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Get in a non-specific template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +if (single_value.union_selection != NAS__CountCnf__Type::ALT_Get) TTCN_error("Accessing non-selected field Get in a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +return *single_value.field_Get; +} + +BOOLEAN_template& NAS__CountCnf__Type_template::Set() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NAS__CountCnf__Type::ALT_Set) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Set = new BOOLEAN_template(ANY_VALUE); +else single_value.field_Set = new BOOLEAN_template; +single_value.union_selection = NAS__CountCnf__Type::ALT_Set; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Set; +} + +const BOOLEAN_template& NAS__CountCnf__Type_template::Set() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Set in a non-specific template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +if (single_value.union_selection != NAS__CountCnf__Type::ALT_Set) TTCN_error("Accessing non-selected field Set in a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +return *single_value.field_Set; +} + +boolean NAS__CountCnf__Type_template::ischosen(NAS__CountCnf__Type::union_selection_type checked_selection) const +{ +if (checked_selection == NAS__CountCnf__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == NAS__CountCnf__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void NAS__CountCnf__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NAS__CountCnf__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NAS__CountCnf__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NAS__CountCnf__Type_template::clone() const { return new NAS__CountCnf__Type_template(*this); } +const TTCN_Typedescriptor_t* NAS__CountCnf__Type_template::get_descriptor() const { return &NAS__CountCnf__Type_descr_; } +boolean NAS__CountCnf__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NAS__CountCnf__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NAS__CountCnf__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NAS__CountCnf__Type::ALT_Get: +TTCN_Logger::log_event_str("{ Get := "); +single_value.field_Get->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NAS__CountCnf__Type::ALT_Set: +TTCN_Logger::log_event_str("{ Set := "); +single_value.field_Set->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void NAS__CountCnf__Type_template::log_match(const NAS__CountCnf__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case NAS__CountCnf__Type::ALT_Get: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Get"); +single_value.field_Get->log_match(match_value.Get(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Get := "); +single_value.field_Get->log_match(match_value.Get(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NAS__CountCnf__Type::ALT_Set: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Set"); +single_value.field_Set->log_match(match_value.Set(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Set := "); +single_value.field_Set->log_match(match_value.Set(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void NAS__CountCnf__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case NAS__CountCnf__Type::ALT_Get: +single_value.field_Get->encode_text(text_buf); +break; +case NAS__CountCnf__Type::ALT_Set: +single_value.field_Set->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +} + +void NAS__CountCnf__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = NAS__CountCnf__Type::UNBOUND_VALUE; +NAS__CountCnf__Type::union_selection_type new_selection = (NAS__CountCnf__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case NAS__CountCnf__Type::ALT_Get: +single_value.field_Get = new NasCountInfo__Type_template; +single_value.field_Get->decode_text(text_buf); +break; +case NAS__CountCnf__Type::ALT_Set: +single_value.field_Set = new BOOLEAN_template; +single_value.field_Set->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NAS__CountCnf__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +} + +boolean NAS__CountCnf__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NAS__CountCnf__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NasEmu_Common4G5G.NAS_CountCnf_Type'"); + } + if (strcmp("Get", param_field) == 0) { + Get().set_param(param); + return; + } else if (strcmp("Set", param_field) == 0) { + Set().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NasEmu_Common4G5G.NAS_CountCnf_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NAS__CountCnf__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NasEmu_Common4G5G.NAS_CountCnf_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Get")) { + Get().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "Set")) { + Set().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NasEmu_Common4G5G.NAS_CountCnf_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + NAS__CountCnf__Type_template* precondition = new NAS__CountCnf__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NAS__CountCnf__Type_template* implied_template = new NAS__CountCnf__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NAS__CountCnf__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NasEmu_Common4G5G.NAS_CountCnf_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NAS__CountCnf__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NasEmu_Common4G5G.NAS_CountCnf_Type'"); + } + if (strcmp("Get", param_field) == 0) { + return Get().get_param(param_name); + } else if (strcmp("Set", param_field) == 0) { + return Set().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NAS__CountCnf__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case NAS__CountCnf__Type::ALT_Get: + mp_field = single_value.field_Get->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Get"))); + break; + case NAS__CountCnf__Type::ALT_Set: + mp_field = single_value.field_Set->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Set"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NAS__CountCnf__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case NAS__CountCnf__Type::ALT_Get: +single_value.field_Get->check_restriction(t_res, t_name ? t_name : "@NasEmu_Common4G5G.NAS_CountCnf_Type"); +return; +case NAS__CountCnf__Type::ALT_Set: +single_value.field_Set->check_restriction(t_res, t_name ? t_name : "@NasEmu_Common4G5G.NAS_CountCnf_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NasEmu_Common4G5G.NAS_CountCnf_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NasEmu_Common4G5G.NAS_CountCnf_Type"); +} + +void NasCtrlConfirm__Type::copy_value(const NasCtrlConfirm__Type& other_value) +{ +switch (other_value.union_selection) { +case ALT_Security: +field_Security = new BOOLEAN(*other_value.field_Security); +break; +case ALT_NasCount: +field_NasCount = new NAS__CountCnf__Type(*other_value.field_NasCount); +break; +default: +TTCN_error("Assignment of an unbound union value of type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +union_selection = other_value.union_selection; +err_descr = other_value.err_descr; +} + +NasCtrlConfirm__Type::NasCtrlConfirm__Type(): err_descr(NULL) +{ +union_selection = UNBOUND_VALUE; +} + +NasCtrlConfirm__Type::NasCtrlConfirm__Type(const NasCtrlConfirm__Type& other_value) +: Base_Type(){ +copy_value(other_value); +} + +NasCtrlConfirm__Type::~NasCtrlConfirm__Type() +{ +clean_up(); +} + +NasCtrlConfirm__Type& NasCtrlConfirm__Type::operator=(const NasCtrlConfirm__Type& other_value) +{ +if (this != &other_value) { +clean_up(); +copy_value(other_value); +} +return *this; +} + +boolean NasCtrlConfirm__Type::operator==(const NasCtrlConfirm__Type& other_value) const +{ +if (union_selection == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +if (other_value.union_selection == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +if (union_selection != other_value.union_selection) return FALSE; +switch (union_selection) { +case ALT_Security: +return *field_Security == *other_value.field_Security; +case ALT_NasCount: +return *field_NasCount == *other_value.field_NasCount; +default: +return FALSE; +} +} + +BOOLEAN& NasCtrlConfirm__Type::Security() +{ +if (union_selection != ALT_Security) { +clean_up(); +field_Security = new BOOLEAN; +union_selection = ALT_Security; +} +return *field_Security; +} + +const BOOLEAN& NasCtrlConfirm__Type::Security() const +{ +if (union_selection != ALT_Security) TTCN_error("Using non-selected field Security in a value of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +return *field_Security; +} + +NAS__CountCnf__Type& NasCtrlConfirm__Type::NasCount() +{ +if (union_selection != ALT_NasCount) { +clean_up(); +field_NasCount = new NAS__CountCnf__Type; +union_selection = ALT_NasCount; +} +return *field_NasCount; +} + +const NAS__CountCnf__Type& NasCtrlConfirm__Type::NasCount() const +{ +if (union_selection != ALT_NasCount) TTCN_error("Using non-selected field NasCount in a value of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +return *field_NasCount; +} + +boolean NasCtrlConfirm__Type::ischosen(union_selection_type checked_selection) const +{ +if (checked_selection == UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +return union_selection == checked_selection; +} + +boolean NasCtrlConfirm__Type::is_bound() const +{ + return union_selection != UNBOUND_VALUE; +} + +boolean NasCtrlConfirm__Type::is_value() const +{ +switch (union_selection) { +case UNBOUND_VALUE: return FALSE; +case ALT_Security: return field_Security->is_value(); +case ALT_NasCount: return field_NasCount->is_value(); +default: TTCN_error("Invalid selection in union is_bound");} +} + +void NasCtrlConfirm__Type::clean_up() +{ +switch (union_selection) { +case ALT_Security: + delete field_Security; + break; +case ALT_NasCount: + delete field_NasCount; + break; +default: + break; +} +union_selection = UNBOUND_VALUE; +} + +boolean NasCtrlConfirm__Type::is_equal(const Base_Type* other_value) const { return *this == *(static_cast(other_value)); } +void NasCtrlConfirm__Type::set_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Type* NasCtrlConfirm__Type::clone() const { return new NasCtrlConfirm__Type(*this); } +const TTCN_Typedescriptor_t* NasCtrlConfirm__Type::get_descriptor() const { return &NasCtrlConfirm__Type_descr_; } +void NasCtrlConfirm__Type::log() const +{ +switch (union_selection) { +case ALT_Security: +TTCN_Logger::log_event_str("{ Security := "); +field_Security->log(); +TTCN_Logger::log_event_str(" }"); +break; +case ALT_NasCount: +TTCN_Logger::log_event_str("{ NasCount := "); +field_NasCount->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_unbound(); +} +if (err_descr) err_descr->log(); +} + +void NasCtrlConfirm__Type::set_param(Module_Param& param) +{ + if (dynamic_cast(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union type `@NasEmu_Common4G5G.NasCtrlConfirm_Type'"); + } + if (strcmp("Security", param_field) == 0) { + Security().set_param(param); + return; + } else if (strcmp("NasCount", param_field) == 0) { + NasCount().set_param(param); + return; + } else param.error("Field `%s' not found in union type `@NasEmu_Common4G5G.NasCtrlConfirm_Type'", param_field); + } + param.basic_check(Module_Param::BC_VALUE, "union value"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + if (m_p->get_type()==Module_Param::MP_Value_List && m_p->get_size()==0) return; + if (m_p->get_type()!=Module_Param::MP_Assignment_List) { + param.error("union value with field name was expected"); + } + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Security")) { + Security().set_param(*mp_last); + if (!Security().is_bound()) clean_up(); + return; + } + if (!strcmp(last_name, "NasCount")) { + NasCount().set_param(*mp_last); + if (!NasCount().is_bound()) clean_up(); + return; + } + mp_last->error("Field %s does not exist in type @NasEmu_Common4G5G.NasCtrlConfirm_Type.", last_name); +} + +Module_Param* NasCtrlConfirm__Type::get_param(Module_Param_Name& param_name) const +{ + if (!is_bound()) { + return new Module_Param_Unbound(); + } + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union type `@NasEmu_Common4G5G.NasCtrlConfirm_Type'"); + } + if (strcmp("Security", param_field) == 0) { + return Security().get_param(param_name); + } else if (strcmp("NasCount", param_field) == 0) { + return NasCount().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NasCtrlConfirm__Type'", param_field); + } + Module_Param* mp_field = NULL; + switch(union_selection) { + case ALT_Security: + mp_field = field_Security->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Security"))); + break; + case ALT_NasCount: + mp_field = field_NasCount->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("NasCount"))); + break; + default: + break; + } + Module_Param_Assignment_List* m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + return m_p; +} + +void NasCtrlConfirm__Type::set_implicit_omit() +{ +switch (union_selection) { +case ALT_Security: +field_Security->set_implicit_omit(); break; +case ALT_NasCount: +field_NasCount->set_implicit_omit(); break; +default: break; +} +} + +void NasCtrlConfirm__Type::encode_text(Text_Buf& text_buf) const +{ +text_buf.push_int(union_selection); +switch (union_selection) { +case ALT_Security: +field_Security->encode_text(text_buf); +break; +case ALT_NasCount: +field_NasCount->encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an unbound value of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +} + +void NasCtrlConfirm__Type::decode_text(Text_Buf& text_buf) +{ +switch ((union_selection_type)text_buf.pull_int().get_val()) { +case ALT_Security: +Security().decode_text(text_buf); +break; +case ALT_NasCount: +NasCount().decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +} + +void NasCtrlConfirm__Type_template::copy_value(const NasCtrlConfirm__Type& other_value) +{ +single_value.union_selection = other_value.get_selection(); +switch (single_value.union_selection) { +case NasCtrlConfirm__Type::ALT_Security: +single_value.field_Security = new BOOLEAN_template(other_value.Security()); +break; +case NasCtrlConfirm__Type::ALT_NasCount: +single_value.field_NasCount = new NAS__CountCnf__Type_template(other_value.NasCount()); +break; +default: +TTCN_error("Initializing a template with an unbound value of type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +set_selection(SPECIFIC_VALUE); +err_descr = other_value.get_err_descr(); +} + +void NasCtrlConfirm__Type_template::copy_template(const NasCtrlConfirm__Type_template& other_value) +{ +switch (other_value.template_selection) { +case SPECIFIC_VALUE: +single_value.union_selection = other_value.single_value.union_selection; +switch (single_value.union_selection) { +case NasCtrlConfirm__Type::ALT_Security: +single_value.field_Security = new BOOLEAN_template(*other_value.single_value.field_Security); +break; +case NasCtrlConfirm__Type::ALT_NasCount: +single_value.field_NasCount = new NAS__CountCnf__Type_template(*other_value.single_value.field_NasCount); +break; +default: +TTCN_error("Internal error: Invalid union selector in a specific value when copying a template of type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +value_list.n_values = other_value.value_list.n_values; +value_list.list_value = new NasCtrlConfirm__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].copy_template(other_value.value_list.list_value[list_count]); +break; +case IMPLICATION_MATCH: +implication_.precondition = new NasCtrlConfirm__Type_template(*other_value.implication_.precondition); +implication_.implied_template = new NasCtrlConfirm__Type_template(*other_value.implication_.implied_template); +break; +case DYNAMIC_MATCH: +dyn_match = other_value.dyn_match; +dyn_match->ref_count++; +break; +default: +TTCN_error("Copying an uninitialized template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +set_selection(other_value); +err_descr = other_value.err_descr; +} + +NasCtrlConfirm__Type_template::NasCtrlConfirm__Type_template(): err_descr(NULL) +{ +} + +NasCtrlConfirm__Type_template::NasCtrlConfirm__Type_template(template_sel other_value) + : Base_Template(other_value), err_descr(NULL) +{ +check_single_selection(other_value); +} + +NasCtrlConfirm__Type_template::NasCtrlConfirm__Type_template(const NasCtrlConfirm__Type& other_value) +{ +copy_value(other_value); +} + +NasCtrlConfirm__Type_template::NasCtrlConfirm__Type_template(const OPTIONAL& other_value) +{ +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NasCtrlConfirm__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Creating a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type from an unbound optional field."); +} +} + +NasCtrlConfirm__Type_template::NasCtrlConfirm__Type_template(NasCtrlConfirm__Type_template* p_precondition, NasCtrlConfirm__Type_template* p_implied_template) + : Base_Template(IMPLICATION_MATCH) +{ +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} + +NasCtrlConfirm__Type_template::NasCtrlConfirm__Type_template(Dynamic_Match_Interface* p_dyn_match) + : Base_Template(DYNAMIC_MATCH) +{ +dyn_match = new dynmatch_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} + +NasCtrlConfirm__Type_template::NasCtrlConfirm__Type_template(const NasCtrlConfirm__Type_template& other_value) +: Base_Template(){ +copy_template(other_value); +} + +NasCtrlConfirm__Type_template::~NasCtrlConfirm__Type_template() +{ +clean_up(); +} + +void NasCtrlConfirm__Type_template::clean_up() +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NasCtrlConfirm__Type::ALT_Security: +delete single_value.field_Security; +break; +case NasCtrlConfirm__Type::ALT_NasCount: +delete single_value.field_NasCount; +default: +break; +} +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +case CONJUNCTION_MATCH: +delete [] value_list.list_value; +break; +case IMPLICATION_MATCH: +delete implication_.precondition; +delete implication_.implied_template; +break; +case DYNAMIC_MATCH: +dyn_match->ref_count--; +if (dyn_match->ref_count == 0) { +delete dyn_match->ptr; +delete dyn_match; +} +break; +default: +break; +} +template_selection = UNINITIALIZED_TEMPLATE; +} + +NasCtrlConfirm__Type_template& NasCtrlConfirm__Type_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +err_descr = NULL; +return *this; +} + +NasCtrlConfirm__Type_template& NasCtrlConfirm__Type_template::operator=(const NasCtrlConfirm__Type& other_value) +{ +clean_up(); +copy_value(other_value); +return *this; +} + +NasCtrlConfirm__Type_template& NasCtrlConfirm__Type_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +switch (other_value.get_selection()) { +case OPTIONAL_PRESENT: +copy_value((const NasCtrlConfirm__Type&)other_value); +break; +case OPTIONAL_OMIT: +set_selection(OMIT_VALUE); +err_descr = NULL; +break; +default: +TTCN_error("Assignment of an unbound optional field to a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +return *this; +} + +NasCtrlConfirm__Type_template& NasCtrlConfirm__Type_template::operator=(const NasCtrlConfirm__Type_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +boolean NasCtrlConfirm__Type_template::match(const NasCtrlConfirm__Type& other_value, boolean legacy) const +{ +if (!other_value.is_bound()) return FALSE; +switch (template_selection) { +case ANY_VALUE: +case ANY_OR_OMIT: +return TRUE; +case OMIT_VALUE: +return FALSE; +case SPECIFIC_VALUE: +{ +NasCtrlConfirm__Type::union_selection_type value_selection = other_value.get_selection(); +if (value_selection == NasCtrlConfirm__Type::UNBOUND_VALUE) return FALSE; +if (value_selection != single_value.union_selection) return FALSE; +switch (value_selection) { +case NasCtrlConfirm__Type::ALT_Security: +return single_value.field_Security->match(other_value.Security(), legacy); +case NasCtrlConfirm__Type::ALT_NasCount: +return single_value.field_NasCount->match(other_value.NasCount(), legacy); +default: +TTCN_error("Internal error: Invalid selector in a specific value when matching a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +} +case VALUE_LIST: +case COMPLEMENTED_LIST: +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +if (value_list.list_value[list_count].match(other_value, legacy)) return template_selection == VALUE_LIST; +return template_selection == COMPLEMENTED_LIST; +case CONJUNCTION_MATCH: +for (unsigned int i = 0; i < value_list.n_values; i++) { +if (!value_list.list_value[i].match(other_value)) { +return FALSE; +} +} +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match(other_value) || implication_.implied_template->match(other_value); +case DYNAMIC_MATCH: +return dyn_match->ptr->match(other_value); +default: +TTCN_error ("Matching an uninitialized template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +return FALSE; +} + +boolean NasCtrlConfirm__Type_template::is_value() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE; +switch (single_value.union_selection) { +case NasCtrlConfirm__Type::ALT_Security: +return single_value.field_Security->is_value(); +case NasCtrlConfirm__Type::ALT_NasCount: +return single_value.field_NasCount->is_value(); +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing is_value operation on a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +} + +NasCtrlConfirm__Type NasCtrlConfirm__Type_template::valueof() const +{ +if (template_selection != SPECIFIC_VALUE || is_ifpresent) +TTCN_error("Performing a valueof or send operation on a non-specific template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +NasCtrlConfirm__Type ret_val; +switch (single_value.union_selection) { +case NasCtrlConfirm__Type::ALT_Security: +ret_val.Security() = single_value.field_Security->valueof(); +break; +case NasCtrlConfirm__Type::ALT_NasCount: +ret_val.NasCount() = single_value.field_NasCount->valueof(); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing valueof operation on a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +ret_val.set_err_descr(err_descr); +return ret_val; +} + +NasCtrlConfirm__Type_template& NasCtrlConfirm__Type_template::list_item(unsigned int list_index) const +{ +if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST && template_selection != CONJUNCTION_MATCH) TTCN_error("Internal error: Accessing a list element of a non-list template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +return value_list.list_value[list_index]; +} +void NasCtrlConfirm__Type_template::set_type(template_sel template_type, unsigned int list_length) +{ +if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST && template_type != CONJUNCTION_MATCH) TTCN_error ("Internal error: Setting an invalid list for a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +clean_up(); +set_selection(template_type); +value_list.n_values = list_length; +value_list.list_value = new NasCtrlConfirm__Type_template[list_length]; +} + +NasCtrlConfirm__Type::union_selection_type NasCtrlConfirm__Type_template::get_union_selection() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing the union selection in a non-specific template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type"); +return single_value.union_selection; +} + +BOOLEAN_template& NasCtrlConfirm__Type_template::Security() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NasCtrlConfirm__Type::ALT_Security) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_Security = new BOOLEAN_template(ANY_VALUE); +else single_value.field_Security = new BOOLEAN_template; +single_value.union_selection = NasCtrlConfirm__Type::ALT_Security; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_Security; +} + +const BOOLEAN_template& NasCtrlConfirm__Type_template::Security() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field Security in a non-specific template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +if (single_value.union_selection != NasCtrlConfirm__Type::ALT_Security) TTCN_error("Accessing non-selected field Security in a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +return *single_value.field_Security; +} + +NAS__CountCnf__Type_template& NasCtrlConfirm__Type_template::NasCount() +{ +if (template_selection != SPECIFIC_VALUE || single_value.union_selection != NasCtrlConfirm__Type::ALT_NasCount) { +template_sel old_selection = template_selection; +clean_up(); +if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) single_value.field_NasCount = new NAS__CountCnf__Type_template(ANY_VALUE); +else single_value.field_NasCount = new NAS__CountCnf__Type_template; +single_value.union_selection = NasCtrlConfirm__Type::ALT_NasCount; +set_selection(SPECIFIC_VALUE); +} +return *single_value.field_NasCount; +} + +const NAS__CountCnf__Type_template& NasCtrlConfirm__Type_template::NasCount() const +{ +if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing field NasCount in a non-specific template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +if (single_value.union_selection != NasCtrlConfirm__Type::ALT_NasCount) TTCN_error("Accessing non-selected field NasCount in a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +return *single_value.field_NasCount; +} + +boolean NasCtrlConfirm__Type_template::ischosen(NasCtrlConfirm__Type::union_selection_type checked_selection) const +{ +if (checked_selection == NasCtrlConfirm__Type::UNBOUND_VALUE) TTCN_error("Internal error: Performing ischosen() operation on an invalid field of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +switch (template_selection) { +case SPECIFIC_VALUE: +if (single_value.union_selection == NasCtrlConfirm__Type::UNBOUND_VALUE) TTCN_error("Internal error: Invalid selector in a specific value when performing ischosen() operation on a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +return single_value.union_selection == checked_selection; +case VALUE_LIST: +{ +if (value_list.n_values < 1) +TTCN_error("Internal error: Performing ischosen() operation on a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type containing an empty list."); +boolean ret_val = value_list.list_value[0].ischosen(checked_selection); +for (unsigned int list_count = 1; ret_val == TRUE && list_count < value_list.n_values; list_count++) { +ret_val = value_list.list_value[list_count].ischosen(checked_selection); +} +return ret_val; +} +default: +return FALSE; +} +return FALSE; +} + +void NasCtrlConfirm__Type_template::valueofv(Base_Type* value) const { *(static_cast(value)) = valueof(); } +void NasCtrlConfirm__Type_template::set_value(template_sel other_value) { *this = other_value; } +void NasCtrlConfirm__Type_template::copy_value(const Base_Type* other_value) { *this = *(static_cast(other_value)); } +Base_Template* NasCtrlConfirm__Type_template::clone() const { return new NasCtrlConfirm__Type_template(*this); } +const TTCN_Typedescriptor_t* NasCtrlConfirm__Type_template::get_descriptor() const { return &NasCtrlConfirm__Type_descr_; } +boolean NasCtrlConfirm__Type_template::matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast(other_value)), legacy); } +void NasCtrlConfirm__Type_template::log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast(match_value)), legacy); } +void NasCtrlConfirm__Type_template::log() const +{ +switch (template_selection) { +case SPECIFIC_VALUE: +switch (single_value.union_selection) { +case NasCtrlConfirm__Type::ALT_Security: +TTCN_Logger::log_event_str("{ Security := "); +single_value.field_Security->log(); +TTCN_Logger::log_event_str(" }"); +break; +case NasCtrlConfirm__Type::ALT_NasCount: +TTCN_Logger::log_event_str("{ NasCount := "); +single_value.field_NasCount->log(); +TTCN_Logger::log_event_str(" }"); +break; +default: +TTCN_Logger::log_event_str(""); +} +break; +case COMPLEMENTED_LIST: +TTCN_Logger::log_event_str("complement"); +case CONJUNCTION_MATCH: +if (template_selection == CONJUNCTION_MATCH) { +TTCN_Logger::log_event_str("conjunct"); +} +case VALUE_LIST: +TTCN_Logger::log_char('('); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) { +if (list_count > 0) TTCN_Logger::log_event_str(", "); +value_list.list_value[list_count].log(); +} +TTCN_Logger::log_char(')'); +break; +case IMPLICATION_MATCH: +implication_.precondition->log(); +TTCN_Logger::log_event_str(" implies "); +implication_.implied_template->log(); +break; +case DYNAMIC_MATCH: +TTCN_Logger::log_event_str("@dynamic template"); +break; +default: +log_generic(); +} +log_ifpresent(); +if (err_descr) err_descr->log(); +} + +void NasCtrlConfirm__Type_template::log_match(const NasCtrlConfirm__Type& match_value, boolean legacy) const +{ +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value, legacy)){ +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(" matched"); +return; +} +if (template_selection == SPECIFIC_VALUE && single_value.union_selection == match_value.get_selection()) { +size_t previous_size = TTCN_Logger::get_logmatch_buffer_len(); +switch (single_value.union_selection) { +case NasCtrlConfirm__Type::ALT_Security: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".Security"); +single_value.field_Security->log_match(match_value.Security(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ Security := "); +single_value.field_Security->log_match(match_value.Security(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +case NasCtrlConfirm__Type::ALT_NasCount: +if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){ +TTCN_Logger::log_logmatch_info(".NasCount"); +single_value.field_NasCount->log_match(match_value.NasCount(), legacy); +TTCN_Logger::set_logmatch_buffer_len(previous_size); +} else { +TTCN_Logger::log_event_str("{ NasCount := "); +single_value.field_NasCount->log_match(match_value.NasCount(), legacy); +TTCN_Logger::log_event_str(" }"); +} +break; +default: +TTCN_Logger::print_logmatch_buffer(); +TTCN_Logger::log_event_str(""); +} +} else { +TTCN_Logger::print_logmatch_buffer(); +match_value.log(); +TTCN_Logger::log_event_str(" with "); +log(); +if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched"); +else TTCN_Logger::log_event_str(" unmatched"); +} +} + +void NasCtrlConfirm__Type_template::encode_text(Text_Buf& text_buf) const +{ +encode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +text_buf.push_int(single_value.union_selection); +switch (single_value.union_selection) { +case NasCtrlConfirm__Type::ALT_Security: +single_value.field_Security->encode_text(text_buf); +break; +case NasCtrlConfirm__Type::ALT_NasCount: +single_value.field_NasCount->encode_text(text_buf); +break; +default: +TTCN_error("Internal error: Invalid selector in a specific value when encoding a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +text_buf.push_int(value_list.n_values); +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].encode_text(text_buf); +break; +default: +TTCN_error("Text encoder: Encoding an uninitialized template of type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +} + +void NasCtrlConfirm__Type_template::decode_text(Text_Buf& text_buf) +{ +clean_up(); +decode_text_base(text_buf); +switch (template_selection) { +case SPECIFIC_VALUE: +{ +single_value.union_selection = NasCtrlConfirm__Type::UNBOUND_VALUE; +NasCtrlConfirm__Type::union_selection_type new_selection = (NasCtrlConfirm__Type::union_selection_type)text_buf.pull_int().get_val(); +switch (new_selection) { +case NasCtrlConfirm__Type::ALT_Security: +single_value.field_Security = new BOOLEAN_template; +single_value.field_Security->decode_text(text_buf); +break; +case NasCtrlConfirm__Type::ALT_NasCount: +single_value.field_NasCount = new NAS__CountCnf__Type_template; +single_value.field_NasCount->decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized union selector was received for a template of type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +single_value.union_selection = new_selection; +} +case OMIT_VALUE: +case ANY_VALUE: +case ANY_OR_OMIT: +break; +case VALUE_LIST: +case COMPLEMENTED_LIST: +value_list.n_values = text_buf.pull_int().get_val(); +value_list.list_value = new NasCtrlConfirm__Type_template[value_list.n_values]; +for (unsigned int list_count = 0; list_count < value_list.n_values; list_count++) +value_list.list_value[list_count].decode_text(text_buf); +break; +default: +TTCN_error("Text decoder: Unrecognized selector was received in a template of type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +} + +boolean NasCtrlConfirm__Type_template::is_present(boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE; +return !match_omit(legacy); +} + +boolean NasCtrlConfirm__Type_template::match_omit(boolean legacy) const +{ +if (is_ifpresent) return TRUE; +switch (template_selection) { +case OMIT_VALUE: +case ANY_OR_OMIT: +return TRUE; +case IMPLICATION_MATCH: +return !implication_.precondition->match_omit() || implication_.implied_template->match_omit(); +case VALUE_LIST: +case COMPLEMENTED_LIST: +if (legacy) { +for (unsigned int v_idx=0; v_idx(param.get_id()) != NULL && + param.get_id()->next_name()) { + char* param_field = param.get_id()->get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + param.error("Unexpected array index in module parameter, expected a valid field" + " name for union template type `@NasEmu_Common4G5G.NasCtrlConfirm_Type'"); + } + if (strcmp("Security", param_field) == 0) { + Security().set_param(param); + return; + } else if (strcmp("NasCount", param_field) == 0) { + NasCount().set_param(param); + return; + } else param.error("Field `%s' not found in union template type `@NasEmu_Common4G5G.NasCtrlConfirm_Type'", param_field); + } + param.basic_check(Module_Param::BC_TEMPLATE, "union template"); + Module_Param_Ptr m_p = ¶m; + if (param.get_type() == Module_Param::MP_Reference) { + m_p = param.get_referenced_param(); + } + switch (m_p->get_type()) { + case Module_Param::MP_Omit: + *this = OMIT_VALUE; + break; + case Module_Param::MP_Any: + *this = ANY_VALUE; + break; + case Module_Param::MP_AnyOrNone: + *this = ANY_OR_OMIT; + break; + case Module_Param::MP_List_Template: + case Module_Param::MP_ComplementList_Template: + case Module_Param::MP_ConjunctList_Template: { + NasCtrlConfirm__Type_template new_temp; + new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : (m_p->get_type() == Module_Param::MP_ConjunctList_Template ? CONJUNCTION_MATCH : COMPLEMENTED_LIST), m_p->get_size()); + for (size_t p_i=0; p_iget_size(); p_i++) { + new_temp.list_item(p_i).set_param(*m_p->get_elem(p_i)); + } + *this = new_temp; + break; } + case Module_Param::MP_Value_List: + if (m_p->get_size()==0) break; + param.type_error("union template", "@NasEmu_Common4G5G.NasCtrlConfirm_Type"); + break; + case Module_Param::MP_Assignment_List: { + Module_Param* mp_last = m_p->get_elem(m_p->get_size()-1); + char* last_name = mp_last->get_id()->get_name(); + if (!strcmp(last_name, "Security")) { + Security().set_param(*mp_last); + break; + } + if (!strcmp(last_name, "NasCount")) { + NasCount().set_param(*mp_last); + break; + } + mp_last->error("Field %s does not exist in type @NasEmu_Common4G5G.NasCtrlConfirm_Type.", last_name); + } break; + case Module_Param::MP_Implication_Template: { + NasCtrlConfirm__Type_template* precondition = new NasCtrlConfirm__Type_template; + precondition->set_param(*m_p->get_elem(0)); + NasCtrlConfirm__Type_template* implied_template = new NasCtrlConfirm__Type_template; + implied_template->set_param(*m_p->get_elem(1)); + *this = NasCtrlConfirm__Type_template(precondition, implied_template); + } break; + default: + param.type_error("union template", "@NasEmu_Common4G5G.NasCtrlConfirm_Type"); + } + is_ifpresent = param.get_ifpresent() || m_p->get_ifpresent(); +} + +Module_Param* NasCtrlConfirm__Type_template::get_param(Module_Param_Name& param_name) const +{ + if (param_name.next_name()) { + char* param_field = param_name.get_current_name(); + if (param_field[0] >= '0' && param_field[0] <= '9') { + TTCN_error("Unexpected array index in module parameter reference, " + "expected a valid field name for union template type `@NasEmu_Common4G5G.NasCtrlConfirm_Type'"); + } + if (strcmp("Security", param_field) == 0) { + return Security().get_param(param_name); + } else if (strcmp("NasCount", param_field) == 0) { + return NasCount().get_param(param_name); + } else TTCN_error("Field `%s' not found in union type `NasCtrlConfirm__Type'", param_field); + } + Module_Param* m_p = NULL; + switch (template_selection) { + case UNINITIALIZED_TEMPLATE: + m_p = new Module_Param_Unbound(); + break; + case OMIT_VALUE: + m_p = new Module_Param_Omit(); + break; + case ANY_VALUE: + m_p = new Module_Param_Any(); + break; + case ANY_OR_OMIT: + m_p = new Module_Param_AnyOrNone(); + break; + case SPECIFIC_VALUE: { + Module_Param* mp_field = NULL; + switch(single_value.union_selection) { + case NasCtrlConfirm__Type::ALT_Security: + mp_field = single_value.field_Security->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("Security"))); + break; + case NasCtrlConfirm__Type::ALT_NasCount: + mp_field = single_value.field_NasCount->get_param(param_name); + mp_field->set_id(new Module_Param_FieldName(mcopystr("NasCount"))); + break; + default: + break; + } + m_p = new Module_Param_Assignment_List(); + m_p->add_elem(mp_field); + break; } + case VALUE_LIST: + case COMPLEMENTED_LIST: { + if (template_selection == VALUE_LIST) { + m_p = new Module_Param_List_Template(); + } + else { + m_p = new Module_Param_ComplementList_Template(); + } + for (size_t i_i = 0; i_i < value_list.n_values; ++i_i) { + m_p->add_elem(value_list.list_value[i_i].get_param(param_name)); + } + break; } + default: + break; + } + if (is_ifpresent) { + m_p->set_ifpresent(); + } + return m_p; +} + +void NasCtrlConfirm__Type_template::check_restriction(template_res t_res, const char* t_name, boolean legacy) const +{ +if (template_selection==UNINITIALIZED_TEMPLATE) return; +switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) { +case TR_OMIT: +if (template_selection==OMIT_VALUE) return; +case TR_VALUE: +if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break; +switch (single_value.union_selection) { +case NasCtrlConfirm__Type::ALT_Security: +single_value.field_Security->check_restriction(t_res, t_name ? t_name : "@NasEmu_Common4G5G.NasCtrlConfirm_Type"); +return; +case NasCtrlConfirm__Type::ALT_NasCount: +single_value.field_NasCount->check_restriction(t_res, t_name ? t_name : "@NasEmu_Common4G5G.NasCtrlConfirm_Type"); +return; +default: +TTCN_error("Internal error: Invalid selector in a specific value when performing check_restriction operation on a template of union type @NasEmu_Common4G5G.NasCtrlConfirm_Type."); +} +case TR_PRESENT: +if (!match_omit(legacy)) return; +break; +default: +return; +} +TTCN_error("Restriction `%s' on template of type %s violated.", get_res_name(t_res), t_name ? t_name : "@NasEmu_Common4G5G.NasCtrlConfirm_Type"); +} + +void NASEmu__CoOrd__REQ::init_vec() { fld_vec[0]=&field_IntegrityProtectedOctets; fld_vec[1]=&field_SequenceNumber; } + +NASEmu__CoOrd__REQ::NASEmu__CoOrd__REQ() : Record_Type() { init_vec(); } + +NASEmu__CoOrd__REQ::NASEmu__CoOrd__REQ(const NASEmu__CoOrd__REQ& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_IntegrityProtectedOctets.is_bound() ) + field_IntegrityProtectedOctets = other_value.field_IntegrityProtectedOctets; +if (other_value.field_SequenceNumber.is_bound() ) + field_SequenceNumber = other_value.field_SequenceNumber; +init_vec(); +} + +NASEmu__CoOrd__REQ::NASEmu__CoOrd__REQ(const OCTETSTRING& par_IntegrityProtectedOctets, + const INTEGER& par_SequenceNumber) : field_IntegrityProtectedOctets(par_IntegrityProtectedOctets), + field_SequenceNumber(par_SequenceNumber) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NASEmu__CoOrd__REQ::get_descriptor() const { return &NASEmu__CoOrd__REQ_descr_; } +const TTCN_Typedescriptor_t* NASEmu__CoOrd__REQ::fld_descriptors[] = { &OCTETSTRING_descr_, &INTEGER_descr_ }; +const TTCN_Typedescriptor_t* NASEmu__CoOrd__REQ::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NASEmu__CoOrd__REQ::fld_names[] = { "IntegrityProtectedOctets", "SequenceNumber" }; +const char* NASEmu__CoOrd__REQ::fld_name(int p_index) const { return fld_names[p_index]; } + +void NASEmu__CoOrd__REQ_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 2; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +single_value.value_elements[1] = was_any ? new INTEGER_template(ANY_VALUE) : new INTEGER_template; +} +} + +NASEmu__CoOrd__REQ_template::NASEmu__CoOrd__REQ_template(NASEmu__CoOrd__REQ_template* p_precondition, NASEmu__CoOrd__REQ_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NASEmu__CoOrd__REQ_template::NASEmu__CoOrd__REQ_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NASEmu__CoOrd__REQ_template::~NASEmu__CoOrd__REQ_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NASEmu__CoOrd__REQ_template::match_dynamic(const Base_Type* match_value) const +{ +const NASEmu__CoOrd__REQ* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NASEmu__CoOrd__REQ_template& NASEmu__CoOrd__REQ_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NASEmu__CoOrd__REQ_template& NASEmu__CoOrd__REQ_template::operator=(const NASEmu__CoOrd__REQ& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NASEmu__CoOrd__REQ_template& NASEmu__CoOrd__REQ_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NASEmu__CoOrd__REQ_template& NASEmu__CoOrd__REQ_template::operator=(const NASEmu__CoOrd__REQ_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NASEmu__CoOrd__REQ NASEmu__CoOrd__REQ_template::valueof() const +{ +NASEmu__CoOrd__REQ ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NASEmu__CoOrd__REQ_template::IntegrityProtectedOctets() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NASEmu__CoOrd__REQ_template::IntegrityProtectedOctets() const { return *(static_cast(get_at(0))); } +INTEGER_template& NASEmu__CoOrd__REQ_template::SequenceNumber() { return *(static_cast(get_at(1))); } +const INTEGER_template& NASEmu__CoOrd__REQ_template::SequenceNumber() const { return *(static_cast(get_at(1))); } +const TTCN_Typedescriptor_t* NASEmu__CoOrd__REQ_template::get_descriptor() const { return &NASEmu__CoOrd__REQ_descr_; } +const char* NASEmu__CoOrd__REQ_template::fld_name(int p_index) const { return NASEmu__CoOrd__REQ::fld_names[p_index]; } +void NASEmu__CoOrd__CNF::init_vec() { fld_vec[0]=&field_MAC; } + +NASEmu__CoOrd__CNF::NASEmu__CoOrd__CNF() : Record_Type() { init_vec(); } + +NASEmu__CoOrd__CNF::NASEmu__CoOrd__CNF(const NASEmu__CoOrd__CNF& other_value) : Record_Type(other_value) +{ + if(!other_value.is_bound()) TTCN_error("Copying an unbound record/set value."); +if (other_value.field_MAC.is_bound() ) + field_MAC = other_value.field_MAC; +init_vec(); +} + +NASEmu__CoOrd__CNF::NASEmu__CoOrd__CNF(const OCTETSTRING& par_MAC) : field_MAC(par_MAC) +{ +init_vec(); +} + +const TTCN_Typedescriptor_t* NASEmu__CoOrd__CNF::get_descriptor() const { return &NASEmu__CoOrd__CNF_descr_; } +const TTCN_Typedescriptor_t* NASEmu__CoOrd__CNF::fld_descriptors[] = { &CommonDefs::MessageAuthenticationCode_descr_ }; +const TTCN_Typedescriptor_t* NASEmu__CoOrd__CNF::fld_descr(int p_index) const { return fld_descriptors[p_index]; } + +const char* NASEmu__CoOrd__CNF::fld_names[] = { "MAC" }; +const char* NASEmu__CoOrd__CNF::fld_name(int p_index) const { return fld_names[p_index]; } + +void NASEmu__CoOrd__CNF_template::set_specific() +{ +if (template_selection != SPECIFIC_VALUE) { +boolean was_any = (template_selection == ANY_VALUE || template_selection == ANY_OR_OMIT); +clean_up(); +single_value.n_elements = 1; +single_value.value_elements = (Base_Template**)allocate_pointers(single_value.n_elements); +set_selection(SPECIFIC_VALUE); +single_value.value_elements[0] = was_any ? new OCTETSTRING_template(ANY_VALUE) : new OCTETSTRING_template; +} +} + +NASEmu__CoOrd__CNF_template::NASEmu__CoOrd__CNF_template(NASEmu__CoOrd__CNF_template* p_precondition, NASEmu__CoOrd__CNF_template* p_implied_template) +{ +template_selection = IMPLICATION_MATCH; +implication_.precondition = p_precondition; +implication_.implied_template = p_implied_template; +} +NASEmu__CoOrd__CNF_template::NASEmu__CoOrd__CNF_template(Dynamic_Match_Interface* p_dyn_match) +{ +template_selection = DYNAMIC_MATCH; +dyn_match = new dynmatch_dummy_struct; +dyn_match->ptr = p_dyn_match; +dyn_match->ref_count = 1; +} +NASEmu__CoOrd__CNF_template::~NASEmu__CoOrd__CNF_template() +{ +if (template_selection == DYNAMIC_MATCH && dyn_match->ref_count == 1) { +delete (static_cast*>(dyn_match->ptr)); +} +} + +boolean NASEmu__CoOrd__CNF_template::match_dynamic(const Base_Type* match_value) const +{ +const NASEmu__CoOrd__CNF* actual_value = dynamic_cast(match_value); +return (static_cast*>(dyn_match->ptr))->match(*actual_value); +} + +NASEmu__CoOrd__CNF_template& NASEmu__CoOrd__CNF_template::operator=(template_sel other_value) +{ +check_single_selection(other_value); +clean_up(); +set_selection(other_value); +return *this; +} + +NASEmu__CoOrd__CNF_template& NASEmu__CoOrd__CNF_template::operator=(const NASEmu__CoOrd__CNF& other_value) +{ +clean_up(); +copy_value(&other_value); +return *this; +} + +NASEmu__CoOrd__CNF_template& NASEmu__CoOrd__CNF_template::operator=(const OPTIONAL& other_value) +{ +clean_up(); +copy_optional(&other_value); +return *this; +} + +NASEmu__CoOrd__CNF_template& NASEmu__CoOrd__CNF_template::operator=(const NASEmu__CoOrd__CNF_template& other_value) +{ +if (&other_value != this) { +clean_up(); +copy_template(other_value); +} +return *this; +} + +NASEmu__CoOrd__CNF NASEmu__CoOrd__CNF_template::valueof() const +{ +NASEmu__CoOrd__CNF ret_val; +valueofv(&ret_val); +return ret_val; +} + +OCTETSTRING_template& NASEmu__CoOrd__CNF_template::MAC() { return *(static_cast(get_at(0))); } +const OCTETSTRING_template& NASEmu__CoOrd__CNF_template::MAC() const { return *(static_cast(get_at(0))); } +const TTCN_Typedescriptor_t* NASEmu__CoOrd__CNF_template::get_descriptor() const { return &NASEmu__CoOrd__CNF_descr_; } +const char* NASEmu__CoOrd__CNF_template::fld_name(int p_index) const { return NASEmu__CoOrd__CNF::fld_names[p_index]; } +void NASEMU4G__CO__ORD__PORT_BASE::remove_msg_queue_head() +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +switch (my_head->item_selection) { +case MESSAGE_0: +delete (my_head)->message_0; +break; +default: +TTCN_error("Internal error: Invalid message selector in the queue of port %s.", port_name); +} +msg_queue_item_base *next_item = msg_queue_head->next_item; +delete (msg_queue_item*)msg_queue_head; +msg_queue_head = next_item; +if (next_item == NULL) msg_queue_tail = NULL; +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::extract__msg, port_name, 0, ++msg_head_count, CHARSTRING(0,NULL), CHARSTRING(0,NULL));} + +void NASEMU4G__CO__ORD__PORT_BASE::clear_queue() +{ +while (msg_queue_head != NULL) remove_msg_queue_head(); +} + +NASEMU4G__CO__ORD__PORT_BASE::NASEMU4G__CO__ORD__PORT_BASE(const char *par_port_name) + : PORT(par_port_name) +{ +msg_queue_head = NULL; +msg_queue_tail = NULL; +} + +NASEMU4G__CO__ORD__PORT_BASE::~NASEMU4G__CO__ORD__PORT_BASE() +{ +clear_queue(); +} + +void NASEMU4G__CO__ORD__PORT_BASE::send(const NASEmu__CoOrd__REQ& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +if (!is_started) TTCN_error("Sending a message on port %s, which is not started.", port_name); +if (!destination_component.is_bound()) TTCN_error("Unbound component reference in the to clause of send operation."); +const TTCN_Logger::Severity log_sev = destination_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMSEND:TTCN_Logger::PORTEVENT_MCSEND; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_send(port_name, destination_component, +(TTCN_Logger::begin_event(log_sev, TRUE), TTCN_Logger::log_event_str(" @NasEmu_Common4G5G.NASEmu_CoOrd_REQ : "), +send_par.log(), TTCN_Logger::end_event_log2str())); +} +if (destination_component == SYSTEM_COMPREF) { +(void)get_default_destination(); +outgoing_send(send_par); +} +else { +Text_Buf text_buf; +prepare_message(text_buf, "@NasEmu_Common4G5G.NASEmu_CoOrd_REQ"); +send_par.encode_text(text_buf); +send_data(text_buf, destination_component); +} +} + +void NASEMU4G__CO__ORD__PORT_BASE::send(const NASEmu__CoOrd__REQ& send_par, FLOAT* timestamp_redirect) +{ +send(send_par, COMPONENT(get_default_destination()), timestamp_redirect); +} + +void NASEMU4G__CO__ORD__PORT_BASE::send(const NASEmu__CoOrd__REQ_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +const NASEmu__CoOrd__REQ& send_par_value = NASEmu__CoOrd__REQ(send_par.valueof()); +send(send_par_value, destination_component, timestamp_redirect); +} + +void NASEMU4G__CO__ORD__PORT_BASE::send(const NASEmu__CoOrd__REQ_template& send_par, FLOAT* timestamp_redirect) +{ +const NASEmu__CoOrd__REQ& send_par_value = NASEmu__CoOrd__REQ(send_par.valueof()); +send(send_par_value, COMPONENT(get_default_destination()), timestamp_redirect); +} + +alt_status NASEMU4G__CO__ORD__PORT_BASE::receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_CNF: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NASEMU4G__CO__ORD__PORT_BASE::check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_CNF: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +return ALT_YES; +} +} + +alt_status NASEMU4G__CO__ORD__PORT_BASE::trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_CNF: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NASEMU4G__CO__ORD__PORT_BASE::receive(const NASEmu__CoOrd__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @NasEmu_Common4G5G.NASEmu_CoOrd_CNF.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_CNF : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NASEMU4G__CO__ORD__PORT_BASE::check_receive(const NASEmu__CoOrd__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Check-receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @NasEmu_Common4G5G.NASEmu_CoOrd_CNF.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_CNF : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +return ALT_YES; +} +} + +alt_status NASEMU4G__CO__ORD__PORT_BASE::trigger(const NASEmu__CoOrd__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Trigger operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s will drop a message: Type of the first message in the queue is not @NasEmu_Common4G5G.NASEmu_CoOrd_CNF.", port_name); +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_CNF : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +void NASEMU4G__CO__ORD__PORT_BASE::incoming_message(const NASEmu__CoOrd__CNF& incoming_par, component sender_component) +{ +if (!is_started) { +if (is_halted) { +TTCN_warning("A message that arrived on port %s has been discarded, because the port is not started.", port_name); +return; +} +else { +TTCN_error("Port %s is not started but a message has arrived on it.", port_name); +} +} +msg_tail_count++; +if (TTCN_Logger::log_this_event(TTCN_Logger::PORTEVENT_MQUEUE)) { +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::enqueue__msg, port_name, sender_component, msg_tail_count, +CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(TTCN_Logger::PORTEVENT_MQUEUE, TRUE), TTCN_Logger::log_event_str(" @NasEmu_Common4G5G.NASEmu_CoOrd_CNF : "), incoming_par.log(), TTCN_Logger::end_event_log2str())); +} +msg_queue_item *new_item = new msg_queue_item; +new_item->item_selection = MESSAGE_0; +new_item->message_0 = new NASEmu__CoOrd__CNF(incoming_par); +new_item->sender_component = sender_component; +append_to_msg_queue(new_item); +} + +boolean NASEMU4G__CO__ORD__PORT_BASE::process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING&) +{ +if (!strcmp(message_type, "@NasEmu_Common4G5G.NASEmu_CoOrd_CNF")) { +NASEmu__CoOrd__CNF incoming_par; +incoming_par.decode_text(incoming_buf); +incoming_message(incoming_par, sender_component); +return TRUE; +} else return FALSE; +} + +void NASEMU5G__CO__ORD__PORT_BASE::remove_msg_queue_head() +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +switch (my_head->item_selection) { +case MESSAGE_0: +delete (my_head)->message_0; +break; +default: +TTCN_error("Internal error: Invalid message selector in the queue of port %s.", port_name); +} +msg_queue_item_base *next_item = msg_queue_head->next_item; +delete (msg_queue_item*)msg_queue_head; +msg_queue_head = next_item; +if (next_item == NULL) msg_queue_tail = NULL; +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::extract__msg, port_name, 0, ++msg_head_count, CHARSTRING(0,NULL), CHARSTRING(0,NULL));} + +void NASEMU5G__CO__ORD__PORT_BASE::clear_queue() +{ +while (msg_queue_head != NULL) remove_msg_queue_head(); +} + +NASEMU5G__CO__ORD__PORT_BASE::NASEMU5G__CO__ORD__PORT_BASE(const char *par_port_name) + : PORT(par_port_name) +{ +msg_queue_head = NULL; +msg_queue_tail = NULL; +} + +NASEMU5G__CO__ORD__PORT_BASE::~NASEMU5G__CO__ORD__PORT_BASE() +{ +clear_queue(); +} + +void NASEMU5G__CO__ORD__PORT_BASE::send(const NASEmu__CoOrd__CNF& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +if (!is_started) TTCN_error("Sending a message on port %s, which is not started.", port_name); +if (!destination_component.is_bound()) TTCN_error("Unbound component reference in the to clause of send operation."); +const TTCN_Logger::Severity log_sev = destination_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMSEND:TTCN_Logger::PORTEVENT_MCSEND; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_send(port_name, destination_component, +(TTCN_Logger::begin_event(log_sev, TRUE), TTCN_Logger::log_event_str(" @NasEmu_Common4G5G.NASEmu_CoOrd_CNF : "), +send_par.log(), TTCN_Logger::end_event_log2str())); +} +if (destination_component == SYSTEM_COMPREF) { +(void)get_default_destination(); +outgoing_send(send_par); +} +else { +Text_Buf text_buf; +prepare_message(text_buf, "@NasEmu_Common4G5G.NASEmu_CoOrd_CNF"); +send_par.encode_text(text_buf); +send_data(text_buf, destination_component); +} +} + +void NASEMU5G__CO__ORD__PORT_BASE::send(const NASEmu__CoOrd__CNF& send_par, FLOAT* timestamp_redirect) +{ +send(send_par, COMPONENT(get_default_destination()), timestamp_redirect); +} + +void NASEMU5G__CO__ORD__PORT_BASE::send(const NASEmu__CoOrd__CNF_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect) +{ +const NASEmu__CoOrd__CNF& send_par_value = NASEmu__CoOrd__CNF(send_par.valueof()); +send(send_par_value, destination_component, timestamp_redirect); +} + +void NASEMU5G__CO__ORD__PORT_BASE::send(const NASEmu__CoOrd__CNF_template& send_par, FLOAT* timestamp_redirect) +{ +const NASEmu__CoOrd__CNF& send_par_value = NASEmu__CoOrd__CNF(send_par.valueof()); +send(send_par_value, COMPONENT(get_default_destination()), timestamp_redirect); +} + +alt_status NASEMU5G__CO__ORD__PORT_BASE::receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_REQ: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NASEMU5G__CO__ORD__PORT_BASE::check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_REQ: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +return ALT_YES; +} +} + +alt_status NASEMU5G__CO__ORD__PORT_BASE::trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS, "Matching on port %s succeeded.", port_name); +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +switch (my_head->item_selection) { +case MESSAGE_0: +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_REQ: "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), msg_head_count+1); +break; +default: +TTCN_error("Internal error: unknown message"); +} +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NASEMU5G__CO__ORD__PORT_BASE::receive(const NASEmu__CoOrd__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @NasEmu_Common4G5G.NASEmu_CoOrd_REQ.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_REQ : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +alt_status NASEMU5G__CO__ORD__PORT_BASE::check_receive(const NASEmu__CoOrd__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Check-receive operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s failed: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +return ALT_NO; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s failed: Type of the first message in the queue is not @NasEmu_Common4G5G.NASEmu_CoOrd_REQ.", port_name); +return ALT_NO; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +return ALT_NO; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::check__receive__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_REQ : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +return ALT_YES; +} +} + +alt_status NASEMU5G__CO__ORD__PORT_BASE::trigger(const NASEmu__CoOrd__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*) +{ +if (value_template.get_selection() == ANY_OR_OMIT) TTCN_error("Trigger operation using '*' as matching template"); +msg_queue_item *my_head = (msg_queue_item*)msg_queue_head; +if (msg_queue_head == NULL) { +if (is_started) return ALT_MAYBE; +else { +TTCN_Logger::log(TTCN_Logger::MATCHING_PROBLEM, "Matching on port %s failed: Port is not started and the queue is empty.", port_name); +return ALT_NO; +} +} else if (!sender_template.match(my_head->sender_component)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::begin_event(log_sev); +TTCN_Logger::log_event("Matching on port %s will drop a message: Sender of the first message in the queue does not match the from clause: ", port_name); +sender_template.log_match(my_head->sender_component); +TTCN_Logger::end_event(); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (my_head->item_selection != MESSAGE_0) { +TTCN_Logger::log(my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMUNSUCC:TTCN_Logger::MATCHING_MCUNSUCC, "Matching on port %s will drop a message: Type of the first message in the queue is not @NasEmu_Common4G5G.NASEmu_CoOrd_REQ.", port_name); +remove_msg_queue_head(); +return ALT_REPEAT; +} else if (!value_template.match(*my_head->message_0)) { +const TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF ? TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_failure(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +remove_msg_queue_head(); +return ALT_REPEAT; +} else { +if (value_redirect != NULL) { +value_redirect->set_values(my_head->message_0); +} +if (sender_ptr != NULL) *sender_ptr = my_head->sender_component; +TTCN_Logger::Severity log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::MATCHING_MMSUCCESS:TTCN_Logger::MATCHING_MCSUCCESS; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__, +port_name, my_head->sender_component, +(TTCN_Logger::begin_event(log_sev, TRUE), value_template.log_match(*my_head->message_0), + TTCN_Logger::end_event_log2str())); +} +log_sev = my_head->sender_component==SYSTEM_COMPREF?TTCN_Logger::PORTEVENT_MMRECV:TTCN_Logger::PORTEVENT_MCRECV; +if (TTCN_Logger::log_this_event(log_sev)) { +TTCN_Logger::log_msgport_recv(port_name, TitanLoggerApiSimple::Msg__port__recv_operation::trigger__op, +my_head->sender_component, CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(": @NasEmu_Common4G5G.NASEmu_CoOrd_REQ : "), +my_head->message_0->log(), TTCN_Logger::end_event_log2str()), +msg_head_count+1); +} +remove_msg_queue_head(); +return ALT_YES; +} +} + +void NASEMU5G__CO__ORD__PORT_BASE::incoming_message(const NASEmu__CoOrd__REQ& incoming_par, component sender_component) +{ +if (!is_started) { +if (is_halted) { +TTCN_warning("A message that arrived on port %s has been discarded, because the port is not started.", port_name); +return; +} +else { +TTCN_error("Port %s is not started but a message has arrived on it.", port_name); +} +} +msg_tail_count++; +if (TTCN_Logger::log_this_event(TTCN_Logger::PORTEVENT_MQUEUE)) { +TTCN_Logger::log_port_queue(TitanLoggerApiSimple::Port__Queue_operation::enqueue__msg, port_name, sender_component, msg_tail_count, +CHARSTRING(0, NULL), +(TTCN_Logger::begin_event(TTCN_Logger::PORTEVENT_MQUEUE, TRUE), TTCN_Logger::log_event_str(" @NasEmu_Common4G5G.NASEmu_CoOrd_REQ : "), incoming_par.log(), TTCN_Logger::end_event_log2str())); +} +msg_queue_item *new_item = new msg_queue_item; +new_item->item_selection = MESSAGE_0; +new_item->message_0 = new NASEmu__CoOrd__REQ(incoming_par); +new_item->sender_component = sender_component; +append_to_msg_queue(new_item); +} + +boolean NASEMU5G__CO__ORD__PORT_BASE::process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING&) +{ +if (!strcmp(message_type, "@NasEmu_Common4G5G.NASEmu_CoOrd_REQ")) { +NASEmu__CoOrd__REQ incoming_par; +incoming_par.decode_text(incoming_buf); +incoming_message(incoming_par, sender_component); +return TRUE; +} else return FALSE; +} + + +/* Bodies of functions, altsteps and testcases */ + +OCTETSTRING f__NasCountInit() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn", 75, TTCN_Location::LOCATION_FUNCTION, "f_NasCountInit"); +charstring_list no_params = NULL_VALUE; +TTCN3_Debug_Function debug_scope("f_NasCountInit", "function", "NasEmu_Common4G5G", no_params, no_params, NULL); +debug_scope.initial_snapshot(); +current_location.update_lineno(77); +ttcn3_debugger.breakpoint_entry(77); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 77 */ +INTEGER v__CountValue(16777215); +debug_scope.add_variable(&v__CountValue, "v_CountValue", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(78); +ttcn3_debugger.breakpoint_entry(78); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 78 */ +{ +OCTETSTRING tmp_0; +return DEBUGGER_STORE_RETURN_VALUE(tmp_0, int2oct(v__CountValue, 4)); +} +} + +NasCtrlReqAspCommonPart__Type_template cs__NasCtrlReqAspCommonPart(const BOOLEAN& p__CnfFlag) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn", 90, TTCN_Location::LOCATION_TEMPLATE, "cs_NasCtrlReqAspCommonPart"); +charstring_list param_names; +param_names[0] = "p_CnfFlag"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_NasCtrlReqAspCommonPart", "template", "NasEmu_Common4G5G", param_names, param_types, NULL); +debug_scope.add_variable(&p__CnfFlag, "p_CnfFlag", "boolean", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NasCtrlReqAspCommonPart__Type_template ret_val; +ret_val.ControlInfo().CnfFlag() = p__CnfFlag; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NasCtrlReqAspCommonPart_err_descr_ptr); +return ret_val; +} + +void f__NasEmulationError(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn", 112, TTCN_Location::LOCATION_FUNCTION, "f_NasEmulationError"); +charstring_list param_names; +param_names[0] = "p_FileName"; +param_names[1] = "p_LineNo"; +param_names[2] = "p_Msg"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +param_types[2] = "in"; +TTCN3_Debug_Function debug_scope("f_NasEmulationError", "function", "NasEmu_Common4G5G", param_names, param_types, NULL); +debug_scope.add_variable(&p__FileName, "p_FileName", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__LineNo, "p_LineNo", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__Msg, "p_Msg", "charstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(116); +ttcn3_debugger.breakpoint_entry(116); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 116 */ +BOOLEAN v__TerminateOnError(TRUE); +debug_scope.add_variable(&v__TerminateOnError, "v_TerminateOnError", "boolean", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(118); +ttcn3_debugger.breakpoint_entry(118); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 118 */ +if (v__TerminateOnError) { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(119); +ttcn3_debugger.breakpoint_entry(119); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 119 */ +CommonDefs::f__SetVerdictInconc(p__FileName, p__LineNo, p__Msg); +} +else { +TTCN3_Debug_Scope debug_scope; +current_location.update_lineno(121); +ttcn3_debugger.breakpoint_entry(121); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 121 */ +CommonDefs::f__ErrorLog(p__FileName, p__LineNo, p__Msg); +} +} + +OCTETSTRING f__NasSecurity__ExtractSNfromCOUNT(const OCTETSTRING& p__Count) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn", 134, TTCN_Location::LOCATION_FUNCTION, "f_NasSecurity_ExtractSNfromCOUNT"); +charstring_list param_names; +param_names[0] = "p_Count"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_NasSecurity_ExtractSNfromCOUNT", "function", "NasEmu_Common4G5G", param_names, param_types, NULL); +debug_scope.add_variable(&p__Count, "p_Count", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(136); +ttcn3_debugger.breakpoint_entry(136); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 136 */ +{ +OCTETSTRING tmp_1; +return DEBUGGER_STORE_RETURN_VALUE(tmp_1, int2oct(mod(oct2int(p__Count), 256), 1)); +} +} + +OCTETSTRING f__NasSecurity__IncrementCOUNT(const OCTETSTRING& p__Count) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn", 146, TTCN_Location::LOCATION_FUNCTION, "f_NasSecurity_IncrementCOUNT"); +charstring_list param_names; +param_names[0] = "p_Count"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("f_NasSecurity_IncrementCOUNT", "function", "NasEmu_Common4G5G", param_names, param_types, NULL); +debug_scope.add_variable(&p__Count, "p_Count", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +current_location.update_lineno(148); +ttcn3_debugger.breakpoint_entry(148); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 148 */ +INTEGER v__CountValue(oct2int(p__Count)); +debug_scope.add_variable(&v__CountValue, "v_CountValue", "integer", NULL, TTCN3_Debugger::print_base_var, TTCN3_Debugger::set_base_var); +current_location.update_lineno(149); +ttcn3_debugger.breakpoint_entry(149); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 149 */ +{ +INTEGER tmp_2; +tmp_2 = mod((v__CountValue + 1), 16777216); +v__CountValue = tmp_2; +} +current_location.update_lineno(150); +ttcn3_debugger.breakpoint_entry(150); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 150 */ +{ +OCTETSTRING tmp_3; +return DEBUGGER_STORE_RETURN_VALUE(tmp_3, int2oct(v__CountValue, 4)); +} +} + +NASEmu__CoOrd__REQ_template cs__NASEmu__CoOrd__REQ(const OCTETSTRING& p__IntegrityProtectedOctets, const INTEGER& p__SequenceNumber) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn", 163, TTCN_Location::LOCATION_TEMPLATE, "cs_NASEmu_CoOrd_REQ"); +charstring_list param_names; +param_names[0] = "p_IntegrityProtectedOctets"; +param_names[1] = "p_SequenceNumber"; +charstring_list param_types; +param_types[0] = "in"; +param_types[1] = "in"; +TTCN3_Debug_Function debug_scope("cs_NASEmu_CoOrd_REQ", "template", "NasEmu_Common4G5G", param_names, param_types, NULL); +debug_scope.add_variable(&p__IntegrityProtectedOctets, "p_IntegrityProtectedOctets", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.add_variable(&p__SequenceNumber, "p_SequenceNumber", "integer", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NASEmu__CoOrd__REQ_template ret_val; +ret_val.IntegrityProtectedOctets() = p__IntegrityProtectedOctets; +ret_val.SequenceNumber() = p__SequenceNumber; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NASEmu__CoOrd__REQ_err_descr_ptr); +return ret_val; +} + +NASEmu__CoOrd__CNF_template cs__NASEmu__CoOrd__CNF(const OCTETSTRING& p__MAC) +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn", 174, TTCN_Location::LOCATION_TEMPLATE, "cs_NASEmu_CoOrd_CNF"); +charstring_list param_names; +param_names[0] = "p_MAC"; +charstring_list param_types; +param_types[0] = "in"; +TTCN3_Debug_Function debug_scope("cs_NASEmu_CoOrd_CNF", "template", "NasEmu_Common4G5G", param_names, param_types, NULL); +debug_scope.add_variable(&p__MAC, "p_MAC", "octetstring", NULL, TTCN3_Debugger::print_base_var); +debug_scope.initial_snapshot(); +NASEmu__CoOrd__CNF_template ret_val; +ret_val.MAC() = p__MAC; +ttcn3_debugger.set_return_value((TTCN_Logger::begin_event_log2str(), TTCN_Logger::ignore_sensitive_data(), ret_val.log(), TTCN_Logger::end_event_log2str())); +ret_val.set_err_descr(template_cs__NASEmu__CoOrd__CNF_err_descr_ptr); +return ret_val; +} + + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NasEmu_Common4G5G"); +NasEmu__Common4G5G::init_ttcn3_debugger(); +NAS__CommonTypeDefs::module_object.pre_init_module(); +current_location.update_lineno(61); +ttcn3_debugger.breakpoint_entry(61); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 61 */ +const_tsc__NasEmu__TerminateOnError = TRUE; +module_object.add_function("f_NasCountInit", (genericfunc_t)&f__NasCountInit, NULL); +module_object.add_function("f_NasEmulationError", (genericfunc_t)&f__NasEmulationError, NULL); +module_object.add_function("f_NasSecurity_ExtractSNfromCOUNT", (genericfunc_t)&f__NasSecurity__ExtractSNfromCOUNT, NULL); +module_object.add_function("f_NasSecurity_IncrementCOUNT", (genericfunc_t)&f__NasSecurity__IncrementCOUNT, NULL); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "NasEmu_Common4G5G"); +NAS__CommonTypeDefs::module_object.post_init_module(); +current_location.update_lineno(85); +ttcn3_debugger.breakpoint_entry(85); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 85 */ +template_cs__NasCtrlCnfAspCommonPart = NULL_VALUE; +current_location.update_lineno(90); +ttcn3_debugger.breakpoint_entry(90); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 90 */ +const_cs__NasCtrlReqAspCommonPart_p__CnfFlag_defval = TRUE; +current_location.update_lineno(97); +ttcn3_debugger.breakpoint_entry(97); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 97 */ +template_cr__NasCtrlCnfAspCommonPart = NULL_VALUE; +current_location.update_lineno(169); +ttcn3_debugger.breakpoint_entry(169); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 169 */ +template_cr__NASEmu__CoOrd__REQ.IntegrityProtectedOctets() = ANY_VALUE; +template_cr__NASEmu__CoOrd__REQ.SequenceNumber() = ANY_VALUE; +current_location.update_lineno(178); +ttcn3_debugger.breakpoint_entry(178); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/NasEmulation/NasEmu_Common4G5G.ttcn, line 178 */ +template_cr__NASEmu__CoOrd__CNF.MAC() = ANY_VALUE; +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/NasEmu_Common4G5G.hh b/build/Ats_NG_NAS/NasEmu_Common4G5G.hh new file mode 100644 index 0000000000000000000000000000000000000000..1827c98e2b7a77875e9cd9b33bbc3f4f35bb9c48 --- /dev/null +++ b/build/Ats_NG_NAS/NasEmu_Common4G5G.hh @@ -0,0 +1,922 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef NasEmu__Common4G5G_HH +#define NasEmu__Common4G5G_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NAS_CommonTypeDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 NasEmu__Common4G5G_HH +#endif + +namespace NasEmu__Common4G5G { + +/* Forward declarations of classes */ + +class NasCtrlReqAspControlInfo__Type; +class NasCtrlReqAspControlInfo__Type_template; +class NasCtrlReqAspCommonPart__Type; +class NasCtrlReqAspCommonPart__Type_template; +class NasCtrlCnfAspCommonPart__Type; +class NasCtrlCnfAspCommonPart__Type_template; +class NasCountInfo__Type; +class NasCountInfo__Type_template; +class NAS__CountReq__Type; +class NAS__CountReq__Type_template; +class NAS__CountCnf__Type; +class NAS__CountCnf__Type_template; +class NasCtrlConfirm__Type; +class NasCtrlConfirm__Type_template; +class NASEmu__CoOrd__REQ; +class NASEmu__CoOrd__REQ_template; +class NASEmu__CoOrd__CNF; +class NASEmu__CoOrd__CNF_template; +class NASEMU4G__CO__ORD__PORT_BASE; +class NASEMU4G__CO__ORD__PORT; +class NASEMU5G__CO__ORD__PORT_BASE; +class NASEMU5G__CO__ORD__PORT; + +} /* end of namespace */ + +#ifndef NasEmu__Common4G5G_HH +#define NasEmu__Common4G5G_HH + +namespace NasEmu__Common4G5G { + +/* Class definitions */ + +class NasCtrlReqAspControlInfo__Type : public Record_Type { + BOOLEAN field_CnfFlag; + Base_Type* fld_vec[1]; + void init_vec(); +public: + NasCtrlReqAspControlInfo__Type(); + NasCtrlReqAspControlInfo__Type(const NasCtrlReqAspControlInfo__Type& other_value); + NasCtrlReqAspControlInfo__Type(const BOOLEAN& par_CnfFlag); +inline NasCtrlReqAspControlInfo__Type& operator=(const NasCtrlReqAspControlInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NasCtrlReqAspControlInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NasCtrlReqAspControlInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline BOOLEAN& CnfFlag() + {return field_CnfFlag;} + inline const BOOLEAN& CnfFlag() const + {return field_CnfFlag;} +Base_Type* clone() const { return new NasCtrlReqAspControlInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NasCtrlReqAspControlInfo__Type_template : public Record_Template { +void set_specific(); +public: +NasCtrlReqAspControlInfo__Type_template(): Record_Template() {} +NasCtrlReqAspControlInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +NasCtrlReqAspControlInfo__Type_template(const NasCtrlReqAspControlInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +NasCtrlReqAspControlInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NasCtrlReqAspControlInfo__Type_template(NasCtrlReqAspControlInfo__Type_template* p_precondition, NasCtrlReqAspControlInfo__Type_template* p_implied_template); +NasCtrlReqAspControlInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +NasCtrlReqAspControlInfo__Type_template(const NasCtrlReqAspControlInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NasCtrlReqAspControlInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NasCtrlReqAspControlInfo__Type_template& operator=(template_sel other_value); +NasCtrlReqAspControlInfo__Type_template& operator=(const NasCtrlReqAspControlInfo__Type& other_value); +NasCtrlReqAspControlInfo__Type_template& operator=(const OPTIONAL& other_value); +NasCtrlReqAspControlInfo__Type_template& operator=(const NasCtrlReqAspControlInfo__Type_template& other_value); +inline boolean match(const NasCtrlReqAspControlInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NasCtrlReqAspControlInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NasCtrlReqAspControlInfo__Type valueof() const; +inline NasCtrlReqAspControlInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +BOOLEAN_template& CnfFlag(); +const BOOLEAN_template& CnfFlag() const; +Record_Template* create() const { return new NasCtrlReqAspControlInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NasCtrlReqAspCommonPart__Type : public Record_Type { + NasCtrlReqAspControlInfo__Type field_ControlInfo; + Base_Type* fld_vec[1]; + void init_vec(); +public: + NasCtrlReqAspCommonPart__Type(); + NasCtrlReqAspCommonPart__Type(const NasCtrlReqAspCommonPart__Type& other_value); + NasCtrlReqAspCommonPart__Type(const NasCtrlReqAspControlInfo__Type& par_ControlInfo); +inline NasCtrlReqAspCommonPart__Type& operator=(const NasCtrlReqAspCommonPart__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NasCtrlReqAspCommonPart__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NasCtrlReqAspCommonPart__Type& other_value) const + { return !is_equal(&other_value); } + + inline NasCtrlReqAspControlInfo__Type& ControlInfo() + {return field_ControlInfo;} + inline const NasCtrlReqAspControlInfo__Type& ControlInfo() const + {return field_ControlInfo;} +Base_Type* clone() const { return new NasCtrlReqAspCommonPart__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NasCtrlReqAspCommonPart__Type_template : public Record_Template { +void set_specific(); +public: +NasCtrlReqAspCommonPart__Type_template(): Record_Template() {} +NasCtrlReqAspCommonPart__Type_template(template_sel other_value): Record_Template(other_value) {} +NasCtrlReqAspCommonPart__Type_template(const NasCtrlReqAspCommonPart__Type& other_value): Record_Template() { copy_value(&other_value); } +NasCtrlReqAspCommonPart__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NasCtrlReqAspCommonPart__Type_template(NasCtrlReqAspCommonPart__Type_template* p_precondition, NasCtrlReqAspCommonPart__Type_template* p_implied_template); +NasCtrlReqAspCommonPart__Type_template(Dynamic_Match_Interface* p_dyn_match); +NasCtrlReqAspCommonPart__Type_template(const NasCtrlReqAspCommonPart__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NasCtrlReqAspCommonPart__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NasCtrlReqAspCommonPart__Type_template& operator=(template_sel other_value); +NasCtrlReqAspCommonPart__Type_template& operator=(const NasCtrlReqAspCommonPart__Type& other_value); +NasCtrlReqAspCommonPart__Type_template& operator=(const OPTIONAL& other_value); +NasCtrlReqAspCommonPart__Type_template& operator=(const NasCtrlReqAspCommonPart__Type_template& other_value); +inline boolean match(const NasCtrlReqAspCommonPart__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NasCtrlReqAspCommonPart__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NasCtrlReqAspCommonPart__Type valueof() const; +inline NasCtrlReqAspCommonPart__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +NasCtrlReqAspControlInfo__Type_template& ControlInfo(); +const NasCtrlReqAspControlInfo__Type_template& ControlInfo() const; +Record_Template* create() const { return new NasCtrlReqAspCommonPart__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NasCtrlCnfAspCommonPart__Type : public Empty_Record_Type { +public: + NasCtrlCnfAspCommonPart__Type(); + NasCtrlCnfAspCommonPart__Type(const NasCtrlCnfAspCommonPart__Type& other_value): Empty_Record_Type(other_value) {} + NasCtrlCnfAspCommonPart__Type(null_type) {bound_flag = TRUE;} +inline NasCtrlCnfAspCommonPart__Type& operator=(const NasCtrlCnfAspCommonPart__Type& other_value) { set_value(&other_value); return *this; } + +inline NasCtrlCnfAspCommonPart__Type& operator=(null_type) { bound_flag = TRUE; return *this; } +inline boolean operator==(const NasCtrlCnfAspCommonPart__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NasCtrlCnfAspCommonPart__Type& other_value) const + { return !is_equal(&other_value); } + +Base_Type* clone() const { return new NasCtrlCnfAspCommonPart__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +}; + +class NasCtrlCnfAspCommonPart__Type_template : public Empty_Record_Template { +public: +NasCtrlCnfAspCommonPart__Type_template(): Empty_Record_Template() {} +NasCtrlCnfAspCommonPart__Type_template(null_type) : Empty_Record_Template() { set_selection(SPECIFIC_VALUE); } +NasCtrlCnfAspCommonPart__Type_template(template_sel other_value): Empty_Record_Template(other_value) {} +NasCtrlCnfAspCommonPart__Type_template(const NasCtrlCnfAspCommonPart__Type& other_value): Empty_Record_Template() { copy_value(&other_value); } +NasCtrlCnfAspCommonPart__Type_template(const OPTIONAL& other_value): Empty_Record_Template() { copy_optional(&other_value); } +NasCtrlCnfAspCommonPart__Type_template(NasCtrlCnfAspCommonPart__Type_template* p_precondition, NasCtrlCnfAspCommonPart__Type_template* p_implied_template); +NasCtrlCnfAspCommonPart__Type_template(Dynamic_Match_Interface* p_dyn_match); +NasCtrlCnfAspCommonPart__Type_template(const NasCtrlCnfAspCommonPart__Type_template& other_value): Empty_Record_Template() { copy_template(other_value); } +~NasCtrlCnfAspCommonPart__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NasCtrlCnfAspCommonPart__Type_template& operator=(template_sel other_value); +NasCtrlCnfAspCommonPart__Type_template& operator=(const NasCtrlCnfAspCommonPart__Type& other_value); +NasCtrlCnfAspCommonPart__Type_template& operator=(const OPTIONAL& other_value); +NasCtrlCnfAspCommonPart__Type_template& operator=(const NasCtrlCnfAspCommonPart__Type_template& other_value); +NasCtrlCnfAspCommonPart__Type_template& operator=(null_type other_value); +inline boolean match(const NasCtrlCnfAspCommonPart__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NasCtrlCnfAspCommonPart__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NasCtrlCnfAspCommonPart__Type valueof() const; +inline NasCtrlCnfAspCommonPart__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +Empty_Record_Template* create() const { return new NasCtrlCnfAspCommonPart__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +}; + +class NasCountInfo__Type : public Record_Type { + OPTIONAL field_UL; + OPTIONAL field_DL; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NasCountInfo__Type(); + NasCountInfo__Type(const NasCountInfo__Type& other_value); + NasCountInfo__Type(const OPTIONAL& par_UL, + const OPTIONAL& par_DL); +inline NasCountInfo__Type& operator=(const NasCountInfo__Type& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NasCountInfo__Type& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NasCountInfo__Type& other_value) const + { return !is_equal(&other_value); } + + inline OPTIONAL& UL() + {return field_UL;} + inline const OPTIONAL& UL() const + {return field_UL;} + inline OPTIONAL& DL() + {return field_DL;} + inline const OPTIONAL& DL() const + {return field_DL;} +Base_Type* clone() const { return new NasCountInfo__Type(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +int optional_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +static const int optional_indexes[]; +const int* get_optional_indexes() const; + +static const int optional_indexes_asn[]; +const int* get_optional_indexes_asn() const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NasCountInfo__Type_template : public Record_Template { +void set_specific(); +public: +NasCountInfo__Type_template(): Record_Template() {} +NasCountInfo__Type_template(template_sel other_value): Record_Template(other_value) {} +NasCountInfo__Type_template(const NasCountInfo__Type& other_value): Record_Template() { copy_value(&other_value); } +NasCountInfo__Type_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NasCountInfo__Type_template(NasCountInfo__Type_template* p_precondition, NasCountInfo__Type_template* p_implied_template); +NasCountInfo__Type_template(Dynamic_Match_Interface* p_dyn_match); +NasCountInfo__Type_template(const NasCountInfo__Type_template& other_value): Record_Template() { copy_template(other_value); } +~NasCountInfo__Type_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NasCountInfo__Type_template& operator=(template_sel other_value); +NasCountInfo__Type_template& operator=(const NasCountInfo__Type& other_value); +NasCountInfo__Type_template& operator=(const OPTIONAL& other_value); +NasCountInfo__Type_template& operator=(const NasCountInfo__Type_template& other_value); +inline boolean match(const NasCountInfo__Type& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NasCountInfo__Type& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NasCountInfo__Type valueof() const; +inline NasCountInfo__Type_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& UL(); +const OCTETSTRING_template& UL() const; +OCTETSTRING_template& DL(); +const OCTETSTRING_template& DL() const; +Record_Template* create() const { return new NasCountInfo__Type_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NAS__CountReq__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_Get = 1, ALT_Set = 2 }; +private: +union_selection_type union_selection; +union { +BOOLEAN *field_Get; +NasCountInfo__Type *field_Set; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NAS__CountReq__Type& other_value); + +public: +NAS__CountReq__Type(); +NAS__CountReq__Type(const NAS__CountReq__Type& other_value); +~NAS__CountReq__Type(); +NAS__CountReq__Type& operator=(const NAS__CountReq__Type& other_value); +boolean operator==(const NAS__CountReq__Type& other_value) const; +inline boolean operator!=(const NAS__CountReq__Type& other_value) const { return !(*this == other_value); } +BOOLEAN& Get(); +const BOOLEAN& Get() const; +NasCountInfo__Type& Set(); +const NasCountInfo__Type& Set() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NAS__CountReq__Type_template : public Base_Template { +union { +struct { +NAS__CountReq__Type::union_selection_type union_selection; +union { +BOOLEAN_template *field_Get; +NasCountInfo__Type_template *field_Set; +}; +} single_value; +struct { +unsigned int n_values; +NAS__CountReq__Type_template *list_value; +} value_list; +struct { +NAS__CountReq__Type_template* precondition; +NAS__CountReq__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NAS__CountReq__Type& other_value); + +void copy_template(const NAS__CountReq__Type_template& other_value); + +public: +NAS__CountReq__Type_template(); +NAS__CountReq__Type_template(template_sel other_value); +NAS__CountReq__Type_template(const NAS__CountReq__Type& other_value); +NAS__CountReq__Type_template(const OPTIONAL& other_value); +NAS__CountReq__Type_template(NAS__CountReq__Type_template* p_precondition, NAS__CountReq__Type_template* p_implied_template); +NAS__CountReq__Type_template(Dynamic_Match_Interface* p_dyn_match); +NAS__CountReq__Type_template(const NAS__CountReq__Type_template& other_value); +~NAS__CountReq__Type_template(); +void clean_up(); +NAS__CountReq__Type_template& operator=(template_sel other_value); +NAS__CountReq__Type_template& operator=(const NAS__CountReq__Type& other_value); +NAS__CountReq__Type_template& operator=(const OPTIONAL& other_value); +NAS__CountReq__Type_template& operator=(const NAS__CountReq__Type_template& other_value); +boolean match(const NAS__CountReq__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;NAS__CountReq__Type valueof() const; +NAS__CountReq__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +NAS__CountReq__Type::union_selection_type get_union_selection() const; +BOOLEAN_template& Get(); +const BOOLEAN_template& Get() const; +NasCountInfo__Type_template& Set(); +const NasCountInfo__Type_template& Set() const; +boolean ischosen(NAS__CountReq__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NAS__CountReq__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class NAS__CountCnf__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_Get = 1, ALT_Set = 2 }; +private: +union_selection_type union_selection; +union { +NasCountInfo__Type *field_Get; +BOOLEAN *field_Set; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NAS__CountCnf__Type& other_value); + +public: +NAS__CountCnf__Type(); +NAS__CountCnf__Type(const NAS__CountCnf__Type& other_value); +~NAS__CountCnf__Type(); +NAS__CountCnf__Type& operator=(const NAS__CountCnf__Type& other_value); +boolean operator==(const NAS__CountCnf__Type& other_value) const; +inline boolean operator!=(const NAS__CountCnf__Type& other_value) const { return !(*this == other_value); } +NasCountInfo__Type& Get(); +const NasCountInfo__Type& Get() const; +BOOLEAN& Set(); +const BOOLEAN& Set() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NAS__CountCnf__Type_template : public Base_Template { +union { +struct { +NAS__CountCnf__Type::union_selection_type union_selection; +union { +NasCountInfo__Type_template *field_Get; +BOOLEAN_template *field_Set; +}; +} single_value; +struct { +unsigned int n_values; +NAS__CountCnf__Type_template *list_value; +} value_list; +struct { +NAS__CountCnf__Type_template* precondition; +NAS__CountCnf__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NAS__CountCnf__Type& other_value); + +void copy_template(const NAS__CountCnf__Type_template& other_value); + +public: +NAS__CountCnf__Type_template(); +NAS__CountCnf__Type_template(template_sel other_value); +NAS__CountCnf__Type_template(const NAS__CountCnf__Type& other_value); +NAS__CountCnf__Type_template(const OPTIONAL& other_value); +NAS__CountCnf__Type_template(NAS__CountCnf__Type_template* p_precondition, NAS__CountCnf__Type_template* p_implied_template); +NAS__CountCnf__Type_template(Dynamic_Match_Interface* p_dyn_match); +NAS__CountCnf__Type_template(const NAS__CountCnf__Type_template& other_value); +~NAS__CountCnf__Type_template(); +void clean_up(); +NAS__CountCnf__Type_template& operator=(template_sel other_value); +NAS__CountCnf__Type_template& operator=(const NAS__CountCnf__Type& other_value); +NAS__CountCnf__Type_template& operator=(const OPTIONAL& other_value); +NAS__CountCnf__Type_template& operator=(const NAS__CountCnf__Type_template& other_value); +boolean match(const NAS__CountCnf__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;NAS__CountCnf__Type valueof() const; +NAS__CountCnf__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +NAS__CountCnf__Type::union_selection_type get_union_selection() const; +NasCountInfo__Type_template& Get(); +const NasCountInfo__Type_template& Get() const; +BOOLEAN_template& Set(); +const BOOLEAN_template& Set() const; +boolean ischosen(NAS__CountCnf__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NAS__CountCnf__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class NasCtrlConfirm__Type : public Base_Type { +public: +enum union_selection_type { UNBOUND_VALUE = 0, ALT_Security = 1, ALT_NasCount = 2 }; +private: +union_selection_type union_selection; +union { +BOOLEAN *field_Security; +NAS__CountCnf__Type *field_NasCount; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NasCtrlConfirm__Type& other_value); + +public: +NasCtrlConfirm__Type(); +NasCtrlConfirm__Type(const NasCtrlConfirm__Type& other_value); +~NasCtrlConfirm__Type(); +NasCtrlConfirm__Type& operator=(const NasCtrlConfirm__Type& other_value); +boolean operator==(const NasCtrlConfirm__Type& other_value) const; +inline boolean operator!=(const NasCtrlConfirm__Type& other_value) const { return !(*this == other_value); } +BOOLEAN& Security(); +const BOOLEAN& Security() const; +NAS__CountCnf__Type& NasCount(); +const NAS__CountCnf__Type& NasCount() 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(); +boolean is_equal(const Base_Type* other_value) const; +void set_value(const Base_Type* other_value); +Base_Type* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +Erroneous_descriptor_t* get_err_descr() const { return err_descr; } +void log() const; +void set_param(Module_Param& param); +Module_Param* get_param(Module_Param_Name& param_name) const; + void set_implicit_omit(); +void encode_text(Text_Buf& text_buf) const; +void decode_text(Text_Buf& text_buf); +}; + +class NasCtrlConfirm__Type_template : public Base_Template { +union { +struct { +NasCtrlConfirm__Type::union_selection_type union_selection; +union { +BOOLEAN_template *field_Security; +NAS__CountCnf__Type_template *field_NasCount; +}; +} single_value; +struct { +unsigned int n_values; +NasCtrlConfirm__Type_template *list_value; +} value_list; +struct { +NasCtrlConfirm__Type_template* precondition; +NasCtrlConfirm__Type_template* implied_template; +} implication_; +dynmatch_struct* dyn_match; +}; +Erroneous_descriptor_t* err_descr; +void copy_value(const NasCtrlConfirm__Type& other_value); + +void copy_template(const NasCtrlConfirm__Type_template& other_value); + +public: +NasCtrlConfirm__Type_template(); +NasCtrlConfirm__Type_template(template_sel other_value); +NasCtrlConfirm__Type_template(const NasCtrlConfirm__Type& other_value); +NasCtrlConfirm__Type_template(const OPTIONAL& other_value); +NasCtrlConfirm__Type_template(NasCtrlConfirm__Type_template* p_precondition, NasCtrlConfirm__Type_template* p_implied_template); +NasCtrlConfirm__Type_template(Dynamic_Match_Interface* p_dyn_match); +NasCtrlConfirm__Type_template(const NasCtrlConfirm__Type_template& other_value); +~NasCtrlConfirm__Type_template(); +void clean_up(); +NasCtrlConfirm__Type_template& operator=(template_sel other_value); +NasCtrlConfirm__Type_template& operator=(const NasCtrlConfirm__Type& other_value); +NasCtrlConfirm__Type_template& operator=(const OPTIONAL& other_value); +NasCtrlConfirm__Type_template& operator=(const NasCtrlConfirm__Type_template& other_value); +boolean match(const NasCtrlConfirm__Type& other_value, boolean legacy = FALSE) const; +boolean is_value() const;NasCtrlConfirm__Type valueof() const; +NasCtrlConfirm__Type_template& list_item(unsigned int list_index) const; +void set_type(template_sel template_type, unsigned int list_length); +NasCtrlConfirm__Type::union_selection_type get_union_selection() const; +BOOLEAN_template& Security(); +const BOOLEAN_template& Security() const; +NAS__CountCnf__Type_template& NasCount(); +const NAS__CountCnf__Type_template& NasCount() const; +boolean ischosen(NasCtrlConfirm__Type::union_selection_type checked_selection) const; +void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; } +void valueofv(Base_Type* value) const; +void set_value(template_sel other_value); +void copy_value(const Base_Type* other_value); +Base_Template* clone() const; +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean matchv(const Base_Type* other_value, boolean legacy) const; +void log_matchv(const Base_Type* match_value, boolean legacy) const; +void log() const; +void log_match(const NasCtrlConfirm__Type& 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); +Module_Param* get_param(Module_Param_Name& param_name) const; +void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const; +}; + +class NASEmu__CoOrd__REQ : public Record_Type { + OCTETSTRING field_IntegrityProtectedOctets; + INTEGER field_SequenceNumber; + Base_Type* fld_vec[2]; + void init_vec(); +public: + NASEmu__CoOrd__REQ(); + NASEmu__CoOrd__REQ(const NASEmu__CoOrd__REQ& other_value); + NASEmu__CoOrd__REQ(const OCTETSTRING& par_IntegrityProtectedOctets, + const INTEGER& par_SequenceNumber); +inline NASEmu__CoOrd__REQ& operator=(const NASEmu__CoOrd__REQ& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NASEmu__CoOrd__REQ& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NASEmu__CoOrd__REQ& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& IntegrityProtectedOctets() + {return field_IntegrityProtectedOctets;} + inline const OCTETSTRING& IntegrityProtectedOctets() const + {return field_IntegrityProtectedOctets;} + inline INTEGER& SequenceNumber() + {return field_SequenceNumber;} + inline const INTEGER& SequenceNumber() const + {return field_SequenceNumber;} +Base_Type* clone() const { return new NASEmu__CoOrd__REQ(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 2; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NASEmu__CoOrd__REQ_template : public Record_Template { +void set_specific(); +public: +NASEmu__CoOrd__REQ_template(): Record_Template() {} +NASEmu__CoOrd__REQ_template(template_sel other_value): Record_Template(other_value) {} +NASEmu__CoOrd__REQ_template(const NASEmu__CoOrd__REQ& other_value): Record_Template() { copy_value(&other_value); } +NASEmu__CoOrd__REQ_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NASEmu__CoOrd__REQ_template(NASEmu__CoOrd__REQ_template* p_precondition, NASEmu__CoOrd__REQ_template* p_implied_template); +NASEmu__CoOrd__REQ_template(Dynamic_Match_Interface* p_dyn_match); +NASEmu__CoOrd__REQ_template(const NASEmu__CoOrd__REQ_template& other_value): Record_Template() { copy_template(other_value); } +~NASEmu__CoOrd__REQ_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NASEmu__CoOrd__REQ_template& operator=(template_sel other_value); +NASEmu__CoOrd__REQ_template& operator=(const NASEmu__CoOrd__REQ& other_value); +NASEmu__CoOrd__REQ_template& operator=(const OPTIONAL& other_value); +NASEmu__CoOrd__REQ_template& operator=(const NASEmu__CoOrd__REQ_template& other_value); +inline boolean match(const NASEmu__CoOrd__REQ& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NASEmu__CoOrd__REQ& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NASEmu__CoOrd__REQ valueof() const; +inline NASEmu__CoOrd__REQ_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& IntegrityProtectedOctets(); +const OCTETSTRING_template& IntegrityProtectedOctets() const; +INTEGER_template& SequenceNumber(); +const INTEGER_template& SequenceNumber() const; +Record_Template* create() const { return new NASEmu__CoOrd__REQ_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NASEmu__CoOrd__CNF : public Record_Type { + OCTETSTRING field_MAC; + Base_Type* fld_vec[1]; + void init_vec(); +public: + NASEmu__CoOrd__CNF(); + NASEmu__CoOrd__CNF(const NASEmu__CoOrd__CNF& other_value); + NASEmu__CoOrd__CNF(const OCTETSTRING& par_MAC); +inline NASEmu__CoOrd__CNF& operator=(const NASEmu__CoOrd__CNF& other_value) { set_value(&other_value); return *this; } + +inline boolean operator==(const NASEmu__CoOrd__CNF& other_value) const { return is_equal(&other_value); } + inline boolean operator!=(const NASEmu__CoOrd__CNF& other_value) const + { return !is_equal(&other_value); } + + inline OCTETSTRING& MAC() + {return field_MAC;} + inline const OCTETSTRING& MAC() const + {return field_MAC;} +Base_Type* clone() const { return new NASEmu__CoOrd__CNF(*this); } +const TTCN_Typedescriptor_t* get_descriptor() const; +boolean is_set() const { return FALSE; } +Base_Type* get_at(int index_value) { return fld_vec[index_value]; } +const Base_Type* get_at(int index_value) const { return fld_vec[index_value]; } + +int get_count() const { return 1; } +static const TTCN_Typedescriptor_t* fld_descriptors[]; +const TTCN_Typedescriptor_t* fld_descr(int p_index) const; + +static const char* fld_names[]; +const char* fld_name(int p_index) const; + +boolean can_start_v(const char *, const char *, XERdescriptor_t const&, unsigned int, unsigned int) +{ return FALSE; } +}; + +class NASEmu__CoOrd__CNF_template : public Record_Template { +void set_specific(); +public: +NASEmu__CoOrd__CNF_template(): Record_Template() {} +NASEmu__CoOrd__CNF_template(template_sel other_value): Record_Template(other_value) {} +NASEmu__CoOrd__CNF_template(const NASEmu__CoOrd__CNF& other_value): Record_Template() { copy_value(&other_value); } +NASEmu__CoOrd__CNF_template(const OPTIONAL& other_value): Record_Template() { copy_optional(&other_value); } +NASEmu__CoOrd__CNF_template(NASEmu__CoOrd__CNF_template* p_precondition, NASEmu__CoOrd__CNF_template* p_implied_template); +NASEmu__CoOrd__CNF_template(Dynamic_Match_Interface* p_dyn_match); +NASEmu__CoOrd__CNF_template(const NASEmu__CoOrd__CNF_template& other_value): Record_Template() { copy_template(other_value); } +~NASEmu__CoOrd__CNF_template(); +boolean match_dynamic(const Base_Type* match_value) const; +NASEmu__CoOrd__CNF_template& operator=(template_sel other_value); +NASEmu__CoOrd__CNF_template& operator=(const NASEmu__CoOrd__CNF& other_value); +NASEmu__CoOrd__CNF_template& operator=(const OPTIONAL& other_value); +NASEmu__CoOrd__CNF_template& operator=(const NASEmu__CoOrd__CNF_template& other_value); +inline boolean match(const NASEmu__CoOrd__CNF& other_value, boolean legacy = FALSE) const { return matchv(&other_value, legacy); } +inline void log_match(const NASEmu__CoOrd__CNF& match_value, boolean legacy = FALSE) const { log_matchv(&match_value, legacy); } +NASEmu__CoOrd__CNF valueof() const; +inline NASEmu__CoOrd__CNF_template& list_item(int list_index) const { return *(static_cast(get_list_item(list_index))); } +OCTETSTRING_template& MAC(); +const OCTETSTRING_template& MAC() const; +Record_Template* create() const { return new NASEmu__CoOrd__CNF_template; } +const TTCN_Typedescriptor_t* get_descriptor() const; +const char* fld_name(int p_index) const; +}; + +class NASEMU4G__CO__ORD__PORT_BASE : public PORT { +enum msg_selection { MESSAGE_0 }; +struct msg_queue_item : public msg_queue_item_base { +msg_selection item_selection; +union { +NASEmu__CoOrd__CNF *message_0; +}; +component sender_component; +}; + +void remove_msg_queue_head(); +protected: +void clear_queue(); +public: +NASEMU4G__CO__ORD__PORT_BASE(const char *par_port_name); +~NASEMU4G__CO__ORD__PORT_BASE(); +void send(const NASEmu__CoOrd__REQ& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const NASEmu__CoOrd__REQ& send_par, FLOAT* timestamp_redirect = NULL); +void send(const NASEmu__CoOrd__REQ_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const NASEmu__CoOrd__REQ_template& send_par, FLOAT* timestamp_redirect = NULL); +protected: +virtual void outgoing_send(const NASEmu__CoOrd__REQ& send_par) = 0; +public: +alt_status receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status receive(const NASEmu__CoOrd__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const NASEmu__CoOrd__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const NASEmu__CoOrd__CNF_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +private: +void incoming_message(const NASEmu__CoOrd__CNF& incoming_par, component sender_component); +protected: +inline void incoming_message(const NASEmu__CoOrd__CNF& incoming_par) { incoming_message(incoming_par, SYSTEM_COMPREF); } +boolean process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING& slider); +}; + +class NASEMU5G__CO__ORD__PORT_BASE : public PORT { +enum msg_selection { MESSAGE_0 }; +struct msg_queue_item : public msg_queue_item_base { +msg_selection item_selection; +union { +NASEmu__CoOrd__REQ *message_0; +}; +component sender_component; +}; + +void remove_msg_queue_head(); +protected: +void clear_queue(); +public: +NASEMU5G__CO__ORD__PORT_BASE(const char *par_port_name); +~NASEMU5G__CO__ORD__PORT_BASE(); +void send(const NASEmu__CoOrd__CNF& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const NASEmu__CoOrd__CNF& send_par, FLOAT* timestamp_redirect = NULL); +void send(const NASEmu__CoOrd__CNF_template& send_par, const COMPONENT& destination_component, FLOAT* timestamp_redirect = NULL); +void send(const NASEmu__CoOrd__CNF_template& send_par, FLOAT* timestamp_redirect = NULL); +protected: +virtual void outgoing_send(const NASEmu__CoOrd__CNF& send_par) = 0; +public: +alt_status receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status receive(const NASEmu__CoOrd__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status check_receive(const NASEmu__CoOrd__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +alt_status trigger(const NASEmu__CoOrd__REQ_template& value_template, Value_Redirect_Interface *value_redirect, const COMPONENT_template& sender_template, COMPONENT *sender_ptr, FLOAT* timestamp_redirect, Index_Redirect*); +private: +void incoming_message(const NASEmu__CoOrd__REQ& incoming_par, component sender_component); +protected: +inline void incoming_message(const NASEmu__CoOrd__REQ& incoming_par) { incoming_message(incoming_par, SYSTEM_COMPREF); } +boolean process_message(const char *message_type, Text_Buf& incoming_buf, component sender_component, OCTETSTRING& slider); +}; + +/* Debugger printing and overwriting functions for types declared in this module */ + +extern CHARSTRING print_var_NasEmu_Common4G5G(const TTCN3_Debugger::variable_t& p_var); +extern boolean set_var_NasEmu_Common4G5G(TTCN3_Debugger::variable_t& p_var, Module_Param& p_new_value); + +/* Function prototypes */ + +extern OCTETSTRING f__NasCountInit(); +extern NasCtrlReqAspCommonPart__Type_template cs__NasCtrlReqAspCommonPart(const BOOLEAN& p__CnfFlag); +extern void f__NasEmulationError(const CHARSTRING& p__FileName, const INTEGER& p__LineNo, const CHARSTRING& p__Msg); +extern OCTETSTRING f__NasSecurity__ExtractSNfromCOUNT(const OCTETSTRING& p__Count); +extern OCTETSTRING f__NasSecurity__IncrementCOUNT(const OCTETSTRING& p__Count); +extern NASEmu__CoOrd__REQ_template cs__NASEmu__CoOrd__REQ(const OCTETSTRING& p__IntegrityProtectedOctets, const INTEGER& p__SequenceNumber); +extern NASEmu__CoOrd__CNF_template cs__NASEmu__CoOrd__CNF(const OCTETSTRING& p__MAC); + +/* Global variable declarations */ + +extern const XERdescriptor_t NasCtrlReqAspControlInfo__Type_CnfFlag_xer_; +extern const TTCN_OERdescriptor_t NasCtrlReqAspControlInfo__Type_CnfFlag_oer_; +extern const TTCN_Typedescriptor_t NasCtrlReqAspControlInfo__Type_CnfFlag_descr_; +extern const TTCN_Typedescriptor_t NasCtrlReqAspControlInfo__Type_descr_; +extern const TTCN_Typedescriptor_t NasCtrlReqAspCommonPart__Type_descr_; +extern const TTCN_Typedescriptor_t NasCtrlCnfAspCommonPart__Type_descr_; +extern const TTCN_Typedescriptor_t NasCountInfo__Type_descr_; +extern const XERdescriptor_t NasCountInfo__Type_UL_xer_; +extern const TTCN_OERdescriptor_t NasCountInfo__Type_UL_oer_; +extern const TTCN_Typedescriptor_t NasCountInfo__Type_UL_descr_; +extern const XERdescriptor_t NasCountInfo__Type_DL_xer_; +extern const TTCN_OERdescriptor_t NasCountInfo__Type_DL_oer_; +extern const TTCN_Typedescriptor_t NasCountInfo__Type_DL_descr_; +extern const TTCN_Typedescriptor_t NAS__CountReq__Type_descr_; +extern const XERdescriptor_t NAS__CountReq__Type_Get_xer_; +extern const TTCN_OERdescriptor_t NAS__CountReq__Type_Get_oer_; +extern const TTCN_Typedescriptor_t NAS__CountReq__Type_Get_descr_; +extern const TTCN_Typedescriptor_t NAS__CountCnf__Type_descr_; +extern const XERdescriptor_t NAS__CountCnf__Type_Set_xer_; +extern const TTCN_OERdescriptor_t NAS__CountCnf__Type_Set_oer_; +extern const TTCN_Typedescriptor_t NAS__CountCnf__Type_Set_descr_; +extern const TTCN_Typedescriptor_t NasCtrlConfirm__Type_descr_; +extern const XERdescriptor_t NasCtrlConfirm__Type_Security_xer_; +extern const TTCN_OERdescriptor_t NasCtrlConfirm__Type_Security_oer_; +extern const TTCN_Typedescriptor_t NasCtrlConfirm__Type_Security_descr_; +extern const BOOLEAN& tsc__NasEmu__TerminateOnError; +extern BOOLEAN const_tsc__NasEmu__TerminateOnError; +extern const NasCtrlCnfAspCommonPart__Type_template& cs__NasCtrlCnfAspCommonPart; +extern NasCtrlCnfAspCommonPart__Type_template template_cs__NasCtrlCnfAspCommonPart; +extern Erroneous_descriptor_t* template_cs__NasCtrlReqAspCommonPart_err_descr_ptr; +extern const BOOLEAN& cs__NasCtrlReqAspCommonPart_p__CnfFlag_defval; +extern BOOLEAN const_cs__NasCtrlReqAspCommonPart_p__CnfFlag_defval; +extern const NasCtrlCnfAspCommonPart__Type_template& cr__NasCtrlCnfAspCommonPart; +extern NasCtrlCnfAspCommonPart__Type_template template_cr__NasCtrlCnfAspCommonPart; +extern const XERdescriptor_t NASEmu__CoOrd__REQ_IntegrityProtectedOctets_xer_; +extern const TTCN_OERdescriptor_t NASEmu__CoOrd__REQ_IntegrityProtectedOctets_oer_; +extern const TTCN_Typedescriptor_t NASEmu__CoOrd__REQ_IntegrityProtectedOctets_descr_; +extern const XERdescriptor_t NASEmu__CoOrd__REQ_SequenceNumber_xer_; +extern const TTCN_OERdescriptor_t NASEmu__CoOrd__REQ_SequenceNumber_oer_; +extern const TTCN_Typedescriptor_t NASEmu__CoOrd__REQ_SequenceNumber_descr_; +extern const TTCN_Typedescriptor_t NASEmu__CoOrd__REQ_descr_; +extern const XERdescriptor_t NASEmu__CoOrd__CNF_MAC_xer_; +extern const TTCN_OERdescriptor_t NASEmu__CoOrd__CNF_MAC_oer_; +extern const TTCN_Typedescriptor_t NASEmu__CoOrd__CNF_MAC_descr_; +extern const TTCN_Typedescriptor_t NASEmu__CoOrd__CNF_descr_; +extern Erroneous_descriptor_t* template_cs__NASEmu__CoOrd__REQ_err_descr_ptr; +extern const NASEmu__CoOrd__REQ_template& cr__NASEmu__CoOrd__REQ; +extern NASEmu__CoOrd__REQ_template template_cr__NASEmu__CoOrd__REQ; +extern Erroneous_descriptor_t* template_cs__NASEmu__CoOrd__CNF_err_descr_ptr; +extern const NASEmu__CoOrd__CNF_template& cr__NASEmu__CoOrd__CNF; +extern NASEmu__CoOrd__CNF_template template_cr__NASEmu__CoOrd__CNF; +extern TTCN_Module module_object; + +} /* end of namespace */ + +/* Test port header files */ + +#include "NASEMU4G_CO_ORD_PORT.hh" +#include "NASEMU5G_CO_ORD_PORT.hh" + +#endif diff --git a/build/Ats_NG_NAS/NasEmu_Common4G5G.o b/build/Ats_NG_NAS/NasEmu_Common4G5G.o new file mode 100644 index 0000000000000000000000000000000000000000..3a533b1efce64dcd29525366a99361694ec55bb1 Binary files /dev/null and b/build/Ats_NG_NAS/NasEmu_Common4G5G.o differ diff --git a/build/Ats_NG_NAS/Parameters.cc b/build/Ats_NG_NAS/Parameters.cc new file mode 100644 index 0000000000000000000000000000000000000000..5f169f7de67638dbd27061d0ca9392482af62423 --- /dev/null +++ b/build/Ats_NG_NAS/Parameters.cc @@ -0,0 +1,6144 @@ +// This C++ source file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +/* Including header files */ + +#include "Parameters.hh" + +namespace Parameters { + +/* Prototypes of static functions */ + +static void pre_init_module(); +static void post_init_module(); +static boolean set_module_param(Module_Param& param); +static Module_Param* get_module_param(Module_Param_Name& param_name); +static void log_module_param(); + +/* Literal string constants */ + +static const unsigned char bs_0_bits[] = { 0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240 }, +bs_1_bits[] = { 4 }, +bs_2_bits[] = { 197, 123, 48, 182, 108, 124, 12, 195, 38, 37, 224, 241, 216, 31, 171, 238 }; +static const BITSTRING bs_0(128, bs_0_bits), +bs_1(3, bs_1_bits), +bs_2(128, bs_2_bits); +static const unsigned char hs_0_nibbles[] = { 0, 1, 1, 33, 67, 101, 96, 3 }, +hs_1_nibbles[] = { 0, 1, 1, 86, 52, 18, 96, 3 }, +hs_2_nibbles[] = { 68, 2 }; +static const HEXSTRING hs_0(15, hs_0_nibbles), +hs_1(15, hs_1_nibbles), +hs_2(3, hs_2_nibbles); +static const unsigned char os_2_octets[] = { 18, 52, 86, 120 }, +os_3_octets[] = { 90 }, +os_1_octets[] = { 171, 18, 52 }, +os_0_octets[] = { 194, 52, 86, 120 }; +static const OCTETSTRING os_2(4, os_2_octets), +os_3(1, os_3_octets), +os_1(3, os_1_octets), +os_0(4, os_0_octets); +static const CHARSTRING cs_4('0'), +cs_1('1'), +cs_0(3, "112"), +cs_3(2, "MT"), +cs_2(2, "SM"); +static const unsigned char module_checksum[] = { 0xfe, 0x8e, 0x18, 0x83, 0x61, 0x33, 0xf7, 0xf7, 0xe8, 0x37, 0xa1, 0x06, 0x58, 0x68, 0x7d, 0xee }; + +/* Global variable definitions */ + +static NAS__CommonTypeDefs::APN__DefaultConfiguration__Type modulepar_pc__APN__Default__Configuration; +const NAS__CommonTypeDefs::APN__DefaultConfiguration__Type& pc__APN__Default__Configuration = modulepar_pc__APN__Default__Configuration; +static CHARSTRING modulepar_pc__APN__ID__Ethernet; +const CHARSTRING& pc__APN__ID__Ethernet = modulepar_pc__APN__ID__Ethernet; +static CHARSTRING modulepar_pc__APN__ID__IMS; +const CHARSTRING& pc__APN__ID__IMS = modulepar_pc__APN__ID__IMS; +static CHARSTRING modulepar_pc__APN__ID__Internet; +const CHARSTRING& pc__APN__ID__Internet = modulepar_pc__APN__ID__Internet; +static CHARSTRING modulepar_pc__APN__ID__MIOT; +const CHARSTRING& pc__APN__ID__MIOT = modulepar_pc__APN__ID__MIOT; +static CHARSTRING modulepar_pc__APN__ID__URLLC; +const CHARSTRING& pc__APN__ID__URLLC = modulepar_pc__APN__ID__URLLC; +static CHARSTRING modulepar_pc__APN__ID__V2X; +const CHARSTRING& pc__APN__ID__V2X = modulepar_pc__APN__ID__V2X; +static OCTETSTRING modulepar_px__AccessPointName; +const OCTETSTRING& px__AccessPointName = modulepar_px__AccessPointName; +static INTEGER modulepar_px__AquireGNSS__MaxTime; +const INTEGER& px__AquireGNSS__MaxTime = modulepar_px__AquireGNSS__MaxTime; +static CommonDefs::EUTRA__ATTACH__TESTED__Type modulepar_px__AttachTypeTested; +const CommonDefs::EUTRA__ATTACH__TESTED__Type& px__AttachTypeTested = modulepar_px__AttachTypeTested; +static BITSTRING modulepar_px__AuthAMF; +const BITSTRING& px__AuthAMF = modulepar_px__AuthAMF; +static BITSTRING modulepar_px__AuthK; +const BITSTRING& px__AuthK = modulepar_px__AuthK; +static OCTETSTRING modulepar_px__EllipsoidPointWithAltitude; +const OCTETSTRING& px__EllipsoidPointWithAltitude = modulepar_px__EllipsoidPointWithAltitude; +static CHARSTRING modulepar_px__EmergencyCallNumber; +const CHARSTRING& px__EmergencyCallNumber = modulepar_px__EmergencyCallNumber; +static INTEGER modulepar_px__FDD__OperationBand; +const INTEGER& px__FDD__OperationBand = modulepar_px__FDD__OperationBand; +static OCTETSTRING modulepar_px__HorizontalVelocity; +const OCTETSTRING& px__HorizontalVelocity = modulepar_px__HorizontalVelocity; +static HEXSTRING modulepar_px__IMEISV__Def; +const HEXSTRING& px__IMEISV__Def = modulepar_px__IMEISV__Def; +static HEXSTRING modulepar_px__IMEI__Def; +const HEXSTRING& px__IMEI__Def = modulepar_px__IMEI__Def; +static HEXSTRING modulepar_px__IMSI__Def; +const HEXSTRING& px__IMSI__Def = modulepar_px__IMSI__Def; +static HEXSTRING modulepar_px__IMSI__Diff; +const HEXSTRING& px__IMSI__Diff = modulepar_px__IMSI__Diff; +static INTEGER modulepar_px__IP__MTU__Size; +const INTEGER& px__IP__MTU__Size = modulepar_px__IP__MTU__Size; +static CHARSTRING modulepar_px__IPv4__Address1__NW; +const CHARSTRING& px__IPv4__Address1__NW = modulepar_px__IPv4__Address1__NW; +static CHARSTRING modulepar_px__IPv4__Address1__RemoteUE; +const CHARSTRING& px__IPv4__Address1__RemoteUE = modulepar_px__IPv4__Address1__RemoteUE; +static CHARSTRING modulepar_px__IPv4__Address1__UE; +const CHARSTRING& px__IPv4__Address1__UE = modulepar_px__IPv4__Address1__UE; +static CHARSTRING modulepar_px__IPv4__Address2__NW; +const CHARSTRING& px__IPv4__Address2__NW = modulepar_px__IPv4__Address2__NW; +static CHARSTRING modulepar_px__IPv4__Address2__RemoteUE; +const CHARSTRING& px__IPv4__Address2__RemoteUE = modulepar_px__IPv4__Address2__RemoteUE; +static CHARSTRING modulepar_px__IPv4__Address2__UE; +const CHARSTRING& px__IPv4__Address2__UE = modulepar_px__IPv4__Address2__UE; +static CHARSTRING modulepar_px__IPv4__Address2a__UE; +const CHARSTRING& px__IPv4__Address2a__UE = modulepar_px__IPv4__Address2a__UE; +static CHARSTRING modulepar_px__IPv4__Address3__NW; +const CHARSTRING& px__IPv4__Address3__NW = modulepar_px__IPv4__Address3__NW; +static CHARSTRING modulepar_px__IPv4__Address3__RemoteUE; +const CHARSTRING& px__IPv4__Address3__RemoteUE = modulepar_px__IPv4__Address3__RemoteUE; +static CHARSTRING modulepar_px__IPv4__Address3__UE; +const CHARSTRING& px__IPv4__Address3__UE = modulepar_px__IPv4__Address3__UE; +static CHARSTRING modulepar_px__IPv4__Address4__NW; +const CHARSTRING& px__IPv4__Address4__NW = modulepar_px__IPv4__Address4__NW; +static CHARSTRING modulepar_px__IPv4__Address4__UE; +const CHARSTRING& px__IPv4__Address4__UE = modulepar_px__IPv4__Address4__UE; +static CHARSTRING modulepar_px__IPv4__Address5__NW; +const CHARSTRING& px__IPv4__Address5__NW = modulepar_px__IPv4__Address5__NW; +static CHARSTRING modulepar_px__IPv4__Address5__UE; +const CHARSTRING& px__IPv4__Address5__UE = modulepar_px__IPv4__Address5__UE; +static CHARSTRING modulepar_px__IPv4__Address6__NW; +const CHARSTRING& px__IPv4__Address6__NW = modulepar_px__IPv4__Address6__NW; +static CHARSTRING modulepar_px__IPv4__Address6__UE; +const CHARSTRING& px__IPv4__Address6__UE = modulepar_px__IPv4__Address6__UE; +static CHARSTRING modulepar_px__IPv4__Address__HomeAgent; +const CHARSTRING& px__IPv4__Address__HomeAgent = modulepar_px__IPv4__Address__HomeAgent; +static CHARSTRING modulepar_px__IPv6__Address1__NW; +const CHARSTRING& px__IPv6__Address1__NW = modulepar_px__IPv6__Address1__NW; +static CHARSTRING modulepar_px__IPv6__Address1__RemoteUE; +const CHARSTRING& px__IPv6__Address1__RemoteUE = modulepar_px__IPv6__Address1__RemoteUE; +static CHARSTRING modulepar_px__IPv6__Address1__UE; +const CHARSTRING& px__IPv6__Address1__UE = modulepar_px__IPv6__Address1__UE; +static CHARSTRING modulepar_px__IPv6__Address2__NW; +const CHARSTRING& px__IPv6__Address2__NW = modulepar_px__IPv6__Address2__NW; +static CHARSTRING modulepar_px__IPv6__Address2__RemoteUE; +const CHARSTRING& px__IPv6__Address2__RemoteUE = modulepar_px__IPv6__Address2__RemoteUE; +static CHARSTRING modulepar_px__IPv6__Address2__UE; +const CHARSTRING& px__IPv6__Address2__UE = modulepar_px__IPv6__Address2__UE; +static CHARSTRING modulepar_px__IPv6__Address2a__UE; +const CHARSTRING& px__IPv6__Address2a__UE = modulepar_px__IPv6__Address2a__UE; +static CHARSTRING modulepar_px__IPv6__Address3__NW; +const CHARSTRING& px__IPv6__Address3__NW = modulepar_px__IPv6__Address3__NW; +static CHARSTRING modulepar_px__IPv6__Address3__RemoteUE; +const CHARSTRING& px__IPv6__Address3__RemoteUE = modulepar_px__IPv6__Address3__RemoteUE; +static CHARSTRING modulepar_px__IPv6__Address3__UE; +const CHARSTRING& px__IPv6__Address3__UE = modulepar_px__IPv6__Address3__UE; +static CHARSTRING modulepar_px__IPv6__Address4__NW; +const CHARSTRING& px__IPv6__Address4__NW = modulepar_px__IPv6__Address4__NW; +static CHARSTRING modulepar_px__IPv6__Address4__UE; +const CHARSTRING& px__IPv6__Address4__UE = modulepar_px__IPv6__Address4__UE; +static CHARSTRING modulepar_px__IPv6__Address5__NW; +const CHARSTRING& px__IPv6__Address5__NW = modulepar_px__IPv6__Address5__NW; +static CHARSTRING modulepar_px__IPv6__Address5__UE; +const CHARSTRING& px__IPv6__Address5__UE = modulepar_px__IPv6__Address5__UE; +static CHARSTRING modulepar_px__IPv6__Address6__NW; +const CHARSTRING& px__IPv6__Address6__NW = modulepar_px__IPv6__Address6__NW; +static CHARSTRING modulepar_px__IPv6__Address6__UE; +const CHARSTRING& px__IPv6__Address6__UE = modulepar_px__IPv6__Address6__UE; +static CHARSTRING modulepar_px__IPv6__Address__HomeAgent; +const CHARSTRING& px__IPv6__Address__HomeAgent = modulepar_px__IPv6__Address__HomeAgent; +static INTEGER modulepar_px__MFBI__UTRAN__FrequencyBand; +const INTEGER& px__MFBI__UTRAN__FrequencyBand = modulepar_px__MFBI__UTRAN__FrequencyBand; +static BITSTRING modulepar_px__NAS__CipheringAlgorithm; +const BITSTRING& px__NAS__CipheringAlgorithm = modulepar_px__NAS__CipheringAlgorithm; +static BITSTRING modulepar_px__NAS__IntegrityProtAlgorithm; +const BITSTRING& px__NAS__IntegrityProtAlgorithm = modulepar_px__NAS__IntegrityProtAlgorithm; +static OCTETSTRING modulepar_px__PTMSI__Def; +const OCTETSTRING& px__PTMSI__Def = modulepar_px__PTMSI__Def; +static OCTETSTRING modulepar_px__PTMSI__SigDef; +const OCTETSTRING& px__PTMSI__SigDef = modulepar_px__PTMSI__SigDef; +static BITSTRING modulepar_px__PWS__CB__DataCodingScheme; +const BITSTRING& px__PWS__CB__DataCodingScheme = modulepar_px__PWS__CB__DataCodingScheme; +static CHARSTRING modulepar_px__PWS__CB__DataPage1; +const CHARSTRING& px__PWS__CB__DataPage1 = modulepar_px__PWS__CB__DataPage1; +static CHARSTRING modulepar_px__PWS__CB__DataPage2; +const CHARSTRING& px__PWS__CB__DataPage2 = modulepar_px__PWS__CB__DataPage2; +static CHARSTRING modulepar_px__PWS__CB__DataPage3; +const CHARSTRING& px__PWS__CB__DataPage3 = modulepar_px__PWS__CB__DataPage3; +static CHARSTRING modulepar_px__PWS__CB__DataPage4; +const CHARSTRING& px__PWS__CB__DataPage4 = modulepar_px__PWS__CB__DataPage4; +static CommonDefs::RATComb__Tested__Type modulepar_px__RATComb__Tested; +const CommonDefs::RATComb__Tested__Type& px__RATComb__Tested = modulepar_px__RATComb__Tested; +static BOOLEAN modulepar_px__SMS__ChkMsgReceived; +const BOOLEAN& px__SMS__ChkMsgReceived = modulepar_px__SMS__ChkMsgReceived; +static INTEGER modulepar_px__SMS__IndexOffset; +const INTEGER& px__SMS__IndexOffset = modulepar_px__SMS__IndexOffset; +static CHARSTRING modulepar_px__SMS__MsgFrmt; +const CHARSTRING& px__SMS__MsgFrmt = modulepar_px__SMS__MsgFrmt; +static CHARSTRING modulepar_px__SMS__PrefMem1; +const CHARSTRING& px__SMS__PrefMem1 = modulepar_px__SMS__PrefMem1; +static CHARSTRING modulepar_px__SMS__PrefMem2; +const CHARSTRING& px__SMS__PrefMem2 = modulepar_px__SMS__PrefMem2; +static CHARSTRING modulepar_px__SMS__PrefMem3; +const CHARSTRING& px__SMS__PrefMem3 = modulepar_px__SMS__PrefMem3; +static CHARSTRING modulepar_px__SMS__Service; +const CHARSTRING& px__SMS__Service = modulepar_px__SMS__Service; +static CommonDefs::SinglePLMN__TestedType modulepar_px__SinglePLMN__Tested; +const CommonDefs::SinglePLMN__TestedType& px__SinglePLMN__Tested = modulepar_px__SinglePLMN__Tested; +static OCTETSTRING modulepar_px__TMSI__Def; +const OCTETSTRING& px__TMSI__Def = modulepar_px__TMSI__Def; +static OCTETSTRING modulepar_px__TestLoopModeB__Delay; +const OCTETSTRING& px__TestLoopModeB__Delay = modulepar_px__TestLoopModeB__Delay; +static NAS__CommonTypeDefs::CS__PS__MODE modulepar_px__UE__CS__PS__UsageSetting__Tested; +const NAS__CommonTypeDefs::CS__PS__MODE& px__UE__CS__PS__UsageSetting__Tested = modulepar_px__UE__CS__PS__UsageSetting__Tested; +static NAS__CommonTypeDefs::PS__MODE modulepar_px__UE__PS__UsageSetting__Tested; +const NAS__CommonTypeDefs::PS__MODE& px__UE__PS__UsageSetting__Tested = modulepar_px__UE__PS__UsageSetting__Tested; +static CommonDefs::UTRAN__FDD__TDD__Type modulepar_px__UTRAN__ModeUnderTest; +const CommonDefs::UTRAN__FDD__TDD__Type& px__UTRAN__ModeUnderTest = modulepar_px__UTRAN__ModeUnderTest; +static INTEGER modulepar_px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI; +const INTEGER& px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI = modulepar_px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI; +static BOOLEAN modulepar_px__WLAN__PDN1__ToOffload; +const BOOLEAN& px__WLAN__PDN1__ToOffload = modulepar_px__WLAN__PDN1__ToOffload; +static BITSTRING modulepar_px__eAuthRAND; +const BITSTRING& px__eAuthRAND = modulepar_px__eAuthRAND; +static HEXSTRING modulepar_px__eJapanMCC__Band6; +const HEXSTRING& px__eJapanMCC__Band6 = modulepar_px__eJapanMCC__Band6; +static INTEGER modulepar_px__ePrimaryFrequencyBand; +const INTEGER& px__ePrimaryFrequencyBand = modulepar_px__ePrimaryFrequencyBand; +static BOOLEAN modulepar_pc__1xCSfallback; +const BOOLEAN& pc__1xCSfallback = modulepar_pc__1xCSfallback; +static BOOLEAN modulepar_pc__1xRTT; +const BOOLEAN& pc__1xRTT = modulepar_pc__1xRTT; +static BOOLEAN modulepar_pc__A5__4__CS; +const BOOLEAN& pc__A5__4__CS = modulepar_pc__A5__4__CS; +static BOOLEAN modulepar_pc__Allowed__CSG__list; +const BOOLEAN& pc__Allowed__CSG__list = modulepar_pc__Allowed__CSG__list; +static BOOLEAN modulepar_pc__Attach; +const BOOLEAN& pc__Attach = modulepar_pc__Attach; +static BOOLEAN modulepar_pc__Auto__PDN__Connectivity; +const BOOLEAN& pc__Auto__PDN__Connectivity = modulepar_pc__Auto__PDN__Connectivity; +static BOOLEAN modulepar_pc__Automatic__EPS__Re__Attach; +const BOOLEAN& pc__Automatic__EPS__Re__Attach = modulepar_pc__Automatic__EPS__Re__Attach; +static BOOLEAN modulepar_pc__Automatic__Re__Attach; +const BOOLEAN& pc__Automatic__Re__Attach = modulepar_pc__Automatic__Re__Attach; +static BOOLEAN modulepar_pc__Available__PLMNs__AcT__Ind; +const BOOLEAN& pc__Available__PLMNs__AcT__Ind = modulepar_pc__Available__PLMNs__AcT__Ind; +static BOOLEAN modulepar_pc__BSRVCC; +const BOOLEAN& pc__BSRVCC = modulepar_pc__BSRVCC; +static BOOLEAN modulepar_pc__CMAS__Message; +const BOOLEAN& pc__CMAS__Message = modulepar_pc__CMAS__Message; +static BOOLEAN modulepar_pc__CS; +const BOOLEAN& pc__CS = modulepar_pc__CS; +static BOOLEAN modulepar_pc__CS__Em__Call__in__1xRTT; +const BOOLEAN& pc__CS__Em__Call__in__1xRTT = modulepar_pc__CS__Em__Call__in__1xRTT; +static BOOLEAN modulepar_pc__CS__Em__Call__in__GERAN; +const BOOLEAN& pc__CS__Em__Call__in__GERAN = modulepar_pc__CS__Em__Call__in__GERAN; +static BOOLEAN modulepar_pc__CS__Em__Call__in__UTRA; +const BOOLEAN& pc__CS__Em__Call__in__UTRA = modulepar_pc__CS__Em__Call__in__UTRA; +static BOOLEAN modulepar_pc__CS__Fallback; +const BOOLEAN& pc__CS__Fallback = modulepar_pc__CS__Fallback; +static BOOLEAN modulepar_pc__CS__PS__data__centric; +const BOOLEAN& pc__CS__PS__data__centric = modulepar_pc__CS__PS__data__centric; +static BOOLEAN modulepar_pc__CS__PS__voice__centric; +const BOOLEAN& pc__CS__PS__voice__centric = modulepar_pc__CS__PS__voice__centric; +static BOOLEAN modulepar_pc__Combined__Attach; +const BOOLEAN& pc__Combined__Attach = modulepar_pc__Combined__Attach; +static BOOLEAN modulepar_pc__DSMIPv6; +const BOOLEAN& pc__DSMIPv6 = modulepar_pc__DSMIPv6; +static BOOLEAN modulepar_pc__DaylightSavingTime; +const BOOLEAN& pc__DaylightSavingTime = modulepar_pc__DaylightSavingTime; +static BOOLEAN modulepar_pc__DualRM__Coding; +const BOOLEAN& pc__DualRM__Coding = modulepar_pc__DualRM__Coding; +static BOOLEAN modulepar_pc__EAB; +const BOOLEAN& pc__EAB = modulepar_pc__EAB; +static BOOLEAN modulepar_pc__EAB__override; +const BOOLEAN& pc__EAB__override = modulepar_pc__EAB__override; +static BOOLEAN modulepar_pc__EDTM; +const BOOLEAN& pc__EDTM = modulepar_pc__EDTM; +static BOOLEAN modulepar_pc__EMM__Information; +const BOOLEAN& pc__EMM__Information = modulepar_pc__EMM__Information; +static BOOLEAN modulepar_pc__EPC__RACS; +const BOOLEAN& pc__EPC__RACS = modulepar_pc__EPC__RACS; +static BOOLEAN modulepar_pc__EPS__IMS__EmergencyCall; +const BOOLEAN& pc__EPS__IMS__EmergencyCall = modulepar_pc__EPS__IMS__EmergencyCall; +static BOOLEAN modulepar_pc__EPS__Services__Disable; +const BOOLEAN& pc__EPS__Services__Disable = modulepar_pc__EPS__Services__Disable; +static BOOLEAN modulepar_pc__ESM__MO__Bearer__Allocation; +const BOOLEAN& pc__ESM__MO__Bearer__Allocation = modulepar_pc__ESM__MO__Bearer__Allocation; +static BOOLEAN modulepar_pc__ESM__MO__Bearer__Modification; +const BOOLEAN& pc__ESM__MO__Bearer__Modification = modulepar_pc__ESM__MO__Bearer__Modification; +static BOOLEAN modulepar_pc__ESM__Notification; +const BOOLEAN& pc__ESM__Notification = modulepar_pc__ESM__Notification; +static BOOLEAN modulepar_pc__ESM__UE__Modification__NW__TFT; +const BOOLEAN& pc__ESM__UE__Modification__NW__TFT = modulepar_pc__ESM__UE__Modification__NW__TFT; +static BOOLEAN modulepar_pc__ETWS__message; +const BOOLEAN& pc__ETWS__message = modulepar_pc__ETWS__message; +static BOOLEAN modulepar_pc__E__UTRAN__2__GERAN__PSHO; +const BOOLEAN& pc__E__UTRAN__2__GERAN__PSHO = modulepar_pc__E__UTRAN__2__GERAN__PSHO; +static BOOLEAN modulepar_pc__E__UTRA__WLAN__offload; +const BOOLEAN& pc__E__UTRA__WLAN__offload = modulepar_pc__E__UTRA__WLAN__offload; +static BOOLEAN modulepar_pc__EmergSpeech; +const BOOLEAN& pc__EmergSpeech = modulepar_pc__EmergSpeech; +static BOOLEAN modulepar_pc__FDD; +const BOOLEAN& pc__FDD = modulepar_pc__FDD; +static BOOLEAN modulepar_pc__FeatrGrp__101__F; +const BOOLEAN& pc__FeatrGrp__101__F = modulepar_pc__FeatrGrp__101__F; +static BOOLEAN modulepar_pc__FeatrGrp__101__T; +const BOOLEAN& pc__FeatrGrp__101__T = modulepar_pc__FeatrGrp__101__T; +static BOOLEAN modulepar_pc__FeatrGrp__102__F; +const BOOLEAN& pc__FeatrGrp__102__F = modulepar_pc__FeatrGrp__102__F; +static BOOLEAN modulepar_pc__FeatrGrp__102__T; +const BOOLEAN& pc__FeatrGrp__102__T = modulepar_pc__FeatrGrp__102__T; +static BOOLEAN modulepar_pc__FeatrGrp__103__F; +const BOOLEAN& pc__FeatrGrp__103__F = modulepar_pc__FeatrGrp__103__F; +static BOOLEAN modulepar_pc__FeatrGrp__103__T; +const BOOLEAN& pc__FeatrGrp__103__T = modulepar_pc__FeatrGrp__103__T; +static BOOLEAN modulepar_pc__FeatrGrp__104__F; +const BOOLEAN& pc__FeatrGrp__104__F = modulepar_pc__FeatrGrp__104__F; +static BOOLEAN modulepar_pc__FeatrGrp__104__T; +const BOOLEAN& pc__FeatrGrp__104__T = modulepar_pc__FeatrGrp__104__T; +static BOOLEAN modulepar_pc__FeatrGrp__105__F; +const BOOLEAN& pc__FeatrGrp__105__F = modulepar_pc__FeatrGrp__105__F; +static BOOLEAN modulepar_pc__FeatrGrp__105__T; +const BOOLEAN& pc__FeatrGrp__105__T = modulepar_pc__FeatrGrp__105__T; +static BOOLEAN modulepar_pc__FeatrGrp__106__F; +const BOOLEAN& pc__FeatrGrp__106__F = modulepar_pc__FeatrGrp__106__F; +static BOOLEAN modulepar_pc__FeatrGrp__106__T; +const BOOLEAN& pc__FeatrGrp__106__T = modulepar_pc__FeatrGrp__106__T; +static BOOLEAN modulepar_pc__FeatrGrp__107__F; +const BOOLEAN& pc__FeatrGrp__107__F = modulepar_pc__FeatrGrp__107__F; +static BOOLEAN modulepar_pc__FeatrGrp__107__T; +const BOOLEAN& pc__FeatrGrp__107__T = modulepar_pc__FeatrGrp__107__T; +static BOOLEAN modulepar_pc__FeatrGrp__108__F; +const BOOLEAN& pc__FeatrGrp__108__F = modulepar_pc__FeatrGrp__108__F; +static BOOLEAN modulepar_pc__FeatrGrp__108__T; +const BOOLEAN& pc__FeatrGrp__108__T = modulepar_pc__FeatrGrp__108__T; +static BOOLEAN modulepar_pc__FeatrGrp__109__F; +const BOOLEAN& pc__FeatrGrp__109__F = modulepar_pc__FeatrGrp__109__F; +static BOOLEAN modulepar_pc__FeatrGrp__109__T; +const BOOLEAN& pc__FeatrGrp__109__T = modulepar_pc__FeatrGrp__109__T; +static BOOLEAN modulepar_pc__FeatrGrp__10__F; +const BOOLEAN& pc__FeatrGrp__10__F = modulepar_pc__FeatrGrp__10__F; +static BOOLEAN modulepar_pc__FeatrGrp__10__T; +const BOOLEAN& pc__FeatrGrp__10__T = modulepar_pc__FeatrGrp__10__T; +static BOOLEAN modulepar_pc__FeatrGrp__110__F; +const BOOLEAN& pc__FeatrGrp__110__F = modulepar_pc__FeatrGrp__110__F; +static BOOLEAN modulepar_pc__FeatrGrp__110__T; +const BOOLEAN& pc__FeatrGrp__110__T = modulepar_pc__FeatrGrp__110__T; +static BOOLEAN modulepar_pc__FeatrGrp__111__F; +const BOOLEAN& pc__FeatrGrp__111__F = modulepar_pc__FeatrGrp__111__F; +static BOOLEAN modulepar_pc__FeatrGrp__111__T; +const BOOLEAN& pc__FeatrGrp__111__T = modulepar_pc__FeatrGrp__111__T; +static BOOLEAN modulepar_pc__FeatrGrp__112__F; +const BOOLEAN& pc__FeatrGrp__112__F = modulepar_pc__FeatrGrp__112__F; +static BOOLEAN modulepar_pc__FeatrGrp__112__T; +const BOOLEAN& pc__FeatrGrp__112__T = modulepar_pc__FeatrGrp__112__T; +static BOOLEAN modulepar_pc__FeatrGrp__113__F; +const BOOLEAN& pc__FeatrGrp__113__F = modulepar_pc__FeatrGrp__113__F; +static BOOLEAN modulepar_pc__FeatrGrp__113__T; +const BOOLEAN& pc__FeatrGrp__113__T = modulepar_pc__FeatrGrp__113__T; +static BOOLEAN modulepar_pc__FeatrGrp__114__F; +const BOOLEAN& pc__FeatrGrp__114__F = modulepar_pc__FeatrGrp__114__F; +static BOOLEAN modulepar_pc__FeatrGrp__114__T; +const BOOLEAN& pc__FeatrGrp__114__T = modulepar_pc__FeatrGrp__114__T; +static BOOLEAN modulepar_pc__FeatrGrp__115__F; +const BOOLEAN& pc__FeatrGrp__115__F = modulepar_pc__FeatrGrp__115__F; +static BOOLEAN modulepar_pc__FeatrGrp__115__T; +const BOOLEAN& pc__FeatrGrp__115__T = modulepar_pc__FeatrGrp__115__T; +static BOOLEAN modulepar_pc__FeatrGrp__116__F; +const BOOLEAN& pc__FeatrGrp__116__F = modulepar_pc__FeatrGrp__116__F; +static BOOLEAN modulepar_pc__FeatrGrp__116__T; +const BOOLEAN& pc__FeatrGrp__116__T = modulepar_pc__FeatrGrp__116__T; +static BOOLEAN modulepar_pc__FeatrGrp__11__F; +const BOOLEAN& pc__FeatrGrp__11__F = modulepar_pc__FeatrGrp__11__F; +static BOOLEAN modulepar_pc__FeatrGrp__11__T; +const BOOLEAN& pc__FeatrGrp__11__T = modulepar_pc__FeatrGrp__11__T; +static BOOLEAN modulepar_pc__FeatrGrp__12__F; +const BOOLEAN& pc__FeatrGrp__12__F = modulepar_pc__FeatrGrp__12__F; +static BOOLEAN modulepar_pc__FeatrGrp__12__T; +const BOOLEAN& pc__FeatrGrp__12__T = modulepar_pc__FeatrGrp__12__T; +static BOOLEAN modulepar_pc__FeatrGrp__13__F; +const BOOLEAN& pc__FeatrGrp__13__F = modulepar_pc__FeatrGrp__13__F; +static BOOLEAN modulepar_pc__FeatrGrp__13__T; +const BOOLEAN& pc__FeatrGrp__13__T = modulepar_pc__FeatrGrp__13__T; +static BOOLEAN modulepar_pc__FeatrGrp__14__F; +const BOOLEAN& pc__FeatrGrp__14__F = modulepar_pc__FeatrGrp__14__F; +static BOOLEAN modulepar_pc__FeatrGrp__14__T; +const BOOLEAN& pc__FeatrGrp__14__T = modulepar_pc__FeatrGrp__14__T; +static BOOLEAN modulepar_pc__FeatrGrp__15__F; +const BOOLEAN& pc__FeatrGrp__15__F = modulepar_pc__FeatrGrp__15__F; +static BOOLEAN modulepar_pc__FeatrGrp__15__T; +const BOOLEAN& pc__FeatrGrp__15__T = modulepar_pc__FeatrGrp__15__T; +static BOOLEAN modulepar_pc__FeatrGrp__16__F; +const BOOLEAN& pc__FeatrGrp__16__F = modulepar_pc__FeatrGrp__16__F; +static BOOLEAN modulepar_pc__FeatrGrp__16__T; +const BOOLEAN& pc__FeatrGrp__16__T = modulepar_pc__FeatrGrp__16__T; +static BOOLEAN modulepar_pc__FeatrGrp__17__F; +const BOOLEAN& pc__FeatrGrp__17__F = modulepar_pc__FeatrGrp__17__F; +static BOOLEAN modulepar_pc__FeatrGrp__17__T; +const BOOLEAN& pc__FeatrGrp__17__T = modulepar_pc__FeatrGrp__17__T; +static BOOLEAN modulepar_pc__FeatrGrp__18__F; +const BOOLEAN& pc__FeatrGrp__18__F = modulepar_pc__FeatrGrp__18__F; +static BOOLEAN modulepar_pc__FeatrGrp__18__T; +const BOOLEAN& pc__FeatrGrp__18__T = modulepar_pc__FeatrGrp__18__T; +static BOOLEAN modulepar_pc__FeatrGrp__19__F; +const BOOLEAN& pc__FeatrGrp__19__F = modulepar_pc__FeatrGrp__19__F; +static BOOLEAN modulepar_pc__FeatrGrp__19__T; +const BOOLEAN& pc__FeatrGrp__19__T = modulepar_pc__FeatrGrp__19__T; +static BOOLEAN modulepar_pc__FeatrGrp__1__F; +const BOOLEAN& pc__FeatrGrp__1__F = modulepar_pc__FeatrGrp__1__F; +static BOOLEAN modulepar_pc__FeatrGrp__1__T; +const BOOLEAN& pc__FeatrGrp__1__T = modulepar_pc__FeatrGrp__1__T; +static BOOLEAN modulepar_pc__FeatrGrp__20__F; +const BOOLEAN& pc__FeatrGrp__20__F = modulepar_pc__FeatrGrp__20__F; +static BOOLEAN modulepar_pc__FeatrGrp__20__T; +const BOOLEAN& pc__FeatrGrp__20__T = modulepar_pc__FeatrGrp__20__T; +static BOOLEAN modulepar_pc__FeatrGrp__21__F; +const BOOLEAN& pc__FeatrGrp__21__F = modulepar_pc__FeatrGrp__21__F; +static BOOLEAN modulepar_pc__FeatrGrp__21__T; +const BOOLEAN& pc__FeatrGrp__21__T = modulepar_pc__FeatrGrp__21__T; +static BOOLEAN modulepar_pc__FeatrGrp__22__F; +const BOOLEAN& pc__FeatrGrp__22__F = modulepar_pc__FeatrGrp__22__F; +static BOOLEAN modulepar_pc__FeatrGrp__22__T; +const BOOLEAN& pc__FeatrGrp__22__T = modulepar_pc__FeatrGrp__22__T; +static BOOLEAN modulepar_pc__FeatrGrp__23__F; +const BOOLEAN& pc__FeatrGrp__23__F = modulepar_pc__FeatrGrp__23__F; +static BOOLEAN modulepar_pc__FeatrGrp__23__T; +const BOOLEAN& pc__FeatrGrp__23__T = modulepar_pc__FeatrGrp__23__T; +static BOOLEAN modulepar_pc__FeatrGrp__24__F; +const BOOLEAN& pc__FeatrGrp__24__F = modulepar_pc__FeatrGrp__24__F; +static BOOLEAN modulepar_pc__FeatrGrp__24__T; +const BOOLEAN& pc__FeatrGrp__24__T = modulepar_pc__FeatrGrp__24__T; +static BOOLEAN modulepar_pc__FeatrGrp__25__F; +const BOOLEAN& pc__FeatrGrp__25__F = modulepar_pc__FeatrGrp__25__F; +static BOOLEAN modulepar_pc__FeatrGrp__25__T; +const BOOLEAN& pc__FeatrGrp__25__T = modulepar_pc__FeatrGrp__25__T; +static BOOLEAN modulepar_pc__FeatrGrp__26__F; +const BOOLEAN& pc__FeatrGrp__26__F = modulepar_pc__FeatrGrp__26__F; +static BOOLEAN modulepar_pc__FeatrGrp__26__T; +const BOOLEAN& pc__FeatrGrp__26__T = modulepar_pc__FeatrGrp__26__T; +static BOOLEAN modulepar_pc__FeatrGrp__27__F; +const BOOLEAN& pc__FeatrGrp__27__F = modulepar_pc__FeatrGrp__27__F; +static BOOLEAN modulepar_pc__FeatrGrp__27__T; +const BOOLEAN& pc__FeatrGrp__27__T = modulepar_pc__FeatrGrp__27__T; +static BOOLEAN modulepar_pc__FeatrGrp__28__F; +const BOOLEAN& pc__FeatrGrp__28__F = modulepar_pc__FeatrGrp__28__F; +static BOOLEAN modulepar_pc__FeatrGrp__28__T; +const BOOLEAN& pc__FeatrGrp__28__T = modulepar_pc__FeatrGrp__28__T; +static BOOLEAN modulepar_pc__FeatrGrp__29__F; +const BOOLEAN& pc__FeatrGrp__29__F = modulepar_pc__FeatrGrp__29__F; +static BOOLEAN modulepar_pc__FeatrGrp__29__T; +const BOOLEAN& pc__FeatrGrp__29__T = modulepar_pc__FeatrGrp__29__T; +static BOOLEAN modulepar_pc__FeatrGrp__2__F; +const BOOLEAN& pc__FeatrGrp__2__F = modulepar_pc__FeatrGrp__2__F; +static BOOLEAN modulepar_pc__FeatrGrp__2__T; +const BOOLEAN& pc__FeatrGrp__2__T = modulepar_pc__FeatrGrp__2__T; +static BOOLEAN modulepar_pc__FeatrGrp__30__F; +const BOOLEAN& pc__FeatrGrp__30__F = modulepar_pc__FeatrGrp__30__F; +static BOOLEAN modulepar_pc__FeatrGrp__30__T; +const BOOLEAN& pc__FeatrGrp__30__T = modulepar_pc__FeatrGrp__30__T; +static BOOLEAN modulepar_pc__FeatrGrp__31__F; +const BOOLEAN& pc__FeatrGrp__31__F = modulepar_pc__FeatrGrp__31__F; +static BOOLEAN modulepar_pc__FeatrGrp__31__T; +const BOOLEAN& pc__FeatrGrp__31__T = modulepar_pc__FeatrGrp__31__T; +static BOOLEAN modulepar_pc__FeatrGrp__33__F; +const BOOLEAN& pc__FeatrGrp__33__F = modulepar_pc__FeatrGrp__33__F; +static BOOLEAN modulepar_pc__FeatrGrp__33__T; +const BOOLEAN& pc__FeatrGrp__33__T = modulepar_pc__FeatrGrp__33__T; +static BOOLEAN modulepar_pc__FeatrGrp__34__F; +const BOOLEAN& pc__FeatrGrp__34__F = modulepar_pc__FeatrGrp__34__F; +static BOOLEAN modulepar_pc__FeatrGrp__34__T; +const BOOLEAN& pc__FeatrGrp__34__T = modulepar_pc__FeatrGrp__34__T; +static BOOLEAN modulepar_pc__FeatrGrp__35__F; +const BOOLEAN& pc__FeatrGrp__35__F = modulepar_pc__FeatrGrp__35__F; +static BOOLEAN modulepar_pc__FeatrGrp__35__T; +const BOOLEAN& pc__FeatrGrp__35__T = modulepar_pc__FeatrGrp__35__T; +static BOOLEAN modulepar_pc__FeatrGrp__36__F; +const BOOLEAN& pc__FeatrGrp__36__F = modulepar_pc__FeatrGrp__36__F; +static BOOLEAN modulepar_pc__FeatrGrp__36__T; +const BOOLEAN& pc__FeatrGrp__36__T = modulepar_pc__FeatrGrp__36__T; +static BOOLEAN modulepar_pc__FeatrGrp__37__F; +const BOOLEAN& pc__FeatrGrp__37__F = modulepar_pc__FeatrGrp__37__F; +static BOOLEAN modulepar_pc__FeatrGrp__37__T; +const BOOLEAN& pc__FeatrGrp__37__T = modulepar_pc__FeatrGrp__37__T; +static BOOLEAN modulepar_pc__FeatrGrp__38__F; +const BOOLEAN& pc__FeatrGrp__38__F = modulepar_pc__FeatrGrp__38__F; +static BOOLEAN modulepar_pc__FeatrGrp__38__T; +const BOOLEAN& pc__FeatrGrp__38__T = modulepar_pc__FeatrGrp__38__T; +static BOOLEAN modulepar_pc__FeatrGrp__39__F; +const BOOLEAN& pc__FeatrGrp__39__F = modulepar_pc__FeatrGrp__39__F; +static BOOLEAN modulepar_pc__FeatrGrp__39__T; +const BOOLEAN& pc__FeatrGrp__39__T = modulepar_pc__FeatrGrp__39__T; +static BOOLEAN modulepar_pc__FeatrGrp__3__F; +const BOOLEAN& pc__FeatrGrp__3__F = modulepar_pc__FeatrGrp__3__F; +static BOOLEAN modulepar_pc__FeatrGrp__3__T; +const BOOLEAN& pc__FeatrGrp__3__T = modulepar_pc__FeatrGrp__3__T; +static BOOLEAN modulepar_pc__FeatrGrp__40__F; +const BOOLEAN& pc__FeatrGrp__40__F = modulepar_pc__FeatrGrp__40__F; +static BOOLEAN modulepar_pc__FeatrGrp__40__T; +const BOOLEAN& pc__FeatrGrp__40__T = modulepar_pc__FeatrGrp__40__T; +static BOOLEAN modulepar_pc__FeatrGrp__41__F; +const BOOLEAN& pc__FeatrGrp__41__F = modulepar_pc__FeatrGrp__41__F; +static BOOLEAN modulepar_pc__FeatrGrp__41__T; +const BOOLEAN& pc__FeatrGrp__41__T = modulepar_pc__FeatrGrp__41__T; +static BOOLEAN modulepar_pc__FeatrGrp__42__F; +const BOOLEAN& pc__FeatrGrp__42__F = modulepar_pc__FeatrGrp__42__F; +static BOOLEAN modulepar_pc__FeatrGrp__42__T; +const BOOLEAN& pc__FeatrGrp__42__T = modulepar_pc__FeatrGrp__42__T; +static BOOLEAN modulepar_pc__FeatrGrp__4__F; +const BOOLEAN& pc__FeatrGrp__4__F = modulepar_pc__FeatrGrp__4__F; +static BOOLEAN modulepar_pc__FeatrGrp__4__T; +const BOOLEAN& pc__FeatrGrp__4__T = modulepar_pc__FeatrGrp__4__T; +static BOOLEAN modulepar_pc__FeatrGrp__5__F; +const BOOLEAN& pc__FeatrGrp__5__F = modulepar_pc__FeatrGrp__5__F; +static BOOLEAN modulepar_pc__FeatrGrp__5__T; +const BOOLEAN& pc__FeatrGrp__5__T = modulepar_pc__FeatrGrp__5__T; +static BOOLEAN modulepar_pc__FeatrGrp__6__F; +const BOOLEAN& pc__FeatrGrp__6__F = modulepar_pc__FeatrGrp__6__F; +static BOOLEAN modulepar_pc__FeatrGrp__6__T; +const BOOLEAN& pc__FeatrGrp__6__T = modulepar_pc__FeatrGrp__6__T; +static BOOLEAN modulepar_pc__FeatrGrp__7__F; +const BOOLEAN& pc__FeatrGrp__7__F = modulepar_pc__FeatrGrp__7__F; +static BOOLEAN modulepar_pc__FeatrGrp__7__T; +const BOOLEAN& pc__FeatrGrp__7__T = modulepar_pc__FeatrGrp__7__T; +static BOOLEAN modulepar_pc__FeatrGrp__8__F; +const BOOLEAN& pc__FeatrGrp__8__F = modulepar_pc__FeatrGrp__8__F; +static BOOLEAN modulepar_pc__FeatrGrp__8__T; +const BOOLEAN& pc__FeatrGrp__8__T = modulepar_pc__FeatrGrp__8__T; +static BOOLEAN modulepar_pc__FeatrGrp__9__F; +const BOOLEAN& pc__FeatrGrp__9__F = modulepar_pc__FeatrGrp__9__F; +static BOOLEAN modulepar_pc__FeatrGrp__9__T; +const BOOLEAN& pc__FeatrGrp__9__T = modulepar_pc__FeatrGrp__9__T; +static BOOLEAN modulepar_pc__FullNameNetwork; +const BOOLEAN& pc__FullNameNetwork = modulepar_pc__FullNameNetwork; +static BOOLEAN modulepar_pc__GERAN; +const BOOLEAN& pc__GERAN = modulepar_pc__GERAN; +static BOOLEAN modulepar_pc__GERAN__2__E__UTRAN__PSHO; +const BOOLEAN& pc__GERAN__2__E__UTRAN__PSHO = modulepar_pc__GERAN__2__E__UTRAN__PSHO; +static BOOLEAN modulepar_pc__GERAN__2__E__UTRAN__meas; +const BOOLEAN& pc__GERAN__2__E__UTRAN__meas = modulepar_pc__GERAN__2__E__UTRAN__meas; +static BOOLEAN modulepar_pc__GERAN__2__E__UTRAN__measreporting__CCN; +const BOOLEAN& pc__GERAN__2__E__UTRAN__measreporting__CCN = modulepar_pc__GERAN__2__E__UTRAN__measreporting__CCN; +static BOOLEAN modulepar_pc__HO__from__UTRA__to__eFDD; +const BOOLEAN& pc__HO__from__UTRA__to__eFDD = modulepar_pc__HO__from__UTRA__to__eFDD; +static BOOLEAN modulepar_pc__HO__from__UTRA__to__eTDD; +const BOOLEAN& pc__HO__from__UTRA__to__eTDD = modulepar_pc__HO__from__UTRA__to__eTDD; +static BOOLEAN modulepar_pc__HRPD; +const BOOLEAN& pc__HRPD = modulepar_pc__HRPD; +static BOOLEAN modulepar_pc__IMS; +const BOOLEAN& pc__IMS = modulepar_pc__IMS; +static BOOLEAN modulepar_pc__IMSI__Detach; +const BOOLEAN& pc__IMSI__Detach = modulepar_pc__IMSI__Detach; +static BOOLEAN modulepar_pc__IMS__APN__default; +const BOOLEAN& pc__IMS__APN__default = modulepar_pc__IMS__APN__default; +static BOOLEAN modulepar_pc__IMS__CS__PS__SRVCC; +const BOOLEAN& pc__IMS__CS__PS__SRVCC = modulepar_pc__IMS__CS__PS__SRVCC; +static BOOLEAN modulepar_pc__IMS__CS__PS__SRVCCAlert; +const BOOLEAN& pc__IMS__CS__PS__SRVCCAlert = modulepar_pc__IMS__CS__PS__SRVCCAlert; +static BOOLEAN modulepar_pc__IMS__CS__PS__SRVCCMidCall; +const BOOLEAN& pc__IMS__CS__PS__SRVCCMidCall = modulepar_pc__IMS__CS__PS__SRVCCMidCall; +static BOOLEAN modulepar_pc__IMS__SRVCCAlert; +const BOOLEAN& pc__IMS__SRVCCAlert = modulepar_pc__IMS__SRVCCAlert; +static BOOLEAN modulepar_pc__IMS__emergency__call; +const BOOLEAN& pc__IMS__emergency__call = modulepar_pc__IMS__emergency__call; +static BOOLEAN modulepar_pc__IPv4; +const BOOLEAN& pc__IPv4 = modulepar_pc__IPv4; +static BOOLEAN modulepar_pc__IPv6; +const BOOLEAN& pc__IPv6 = modulepar_pc__IPv6; +static BOOLEAN modulepar_pc__ISR; +const BOOLEAN& pc__ISR = modulepar_pc__ISR; +static BOOLEAN modulepar_pc__ImmConnect; +const BOOLEAN& pc__ImmConnect = modulepar_pc__ImmConnect; +static BOOLEAN modulepar_pc__InterFreq__ProximityIndication; +const BOOLEAN& pc__InterFreq__ProximityIndication = modulepar_pc__InterFreq__ProximityIndication; +static BOOLEAN modulepar_pc__IntraFreq__ProximityIndication; +const BOOLEAN& pc__IntraFreq__ProximityIndication = modulepar_pc__IntraFreq__ProximityIndication; +static BOOLEAN modulepar_pc__KeepEpsBearerParametersAfterNormalDetach; +const BOOLEAN& pc__KeepEpsBearerParametersAfterNormalDetach = modulepar_pc__KeepEpsBearerParametersAfterNormalDetach; +static BOOLEAN modulepar_pc__LAP; +const BOOLEAN& pc__LAP = modulepar_pc__LAP; +static BOOLEAN modulepar_pc__LAP__override; +const BOOLEAN& pc__LAP__override = modulepar_pc__LAP__override; +static BOOLEAN modulepar_pc__LocalTimeZone; +const BOOLEAN& pc__LocalTimeZone = modulepar_pc__LocalTimeZone; +static BOOLEAN modulepar_pc__LoggedMeasurementsIdle; +const BOOLEAN& pc__LoggedMeasurementsIdle = modulepar_pc__LoggedMeasurementsIdle; +static BOOLEAN modulepar_pc__Manual__CSG__Selection; +const BOOLEAN& pc__Manual__CSG__Selection = modulepar_pc__Manual__CSG__Selection; +static BOOLEAN modulepar_pc__Multiple__PDN; +const BOOLEAN& pc__Multiple__PDN = modulepar_pc__Multiple__PDN; +static BOOLEAN modulepar_pc__NG114__v1__0; +const BOOLEAN& pc__NG114__v1__0 = modulepar_pc__NG114__v1__0; +static BOOLEAN modulepar_pc__NG114__v2__0; +const BOOLEAN& pc__NG114__v2__0 = modulepar_pc__NG114__v2__0; +static BOOLEAN modulepar_pc__NG__RAN__NR; +const BOOLEAN& pc__NG__RAN__NR = modulepar_pc__NG__RAN__NR; +static BOOLEAN modulepar_pc__NR__5GC__EmergencyServices; +const BOOLEAN& pc__NR__5GC__EmergencyServices = modulepar_pc__NR__5GC__EmergencyServices; +static BOOLEAN modulepar_pc__No__USIM__TestExecution; +const BOOLEAN& pc__No__USIM__TestExecution = modulepar_pc__No__USIM__TestExecution; +static BOOLEAN modulepar_pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception; +const BOOLEAN& pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception = modulepar_pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception; +static BOOLEAN modulepar_pc__PLMN__Manual__Mode__Exception; +const BOOLEAN& pc__PLMN__Manual__Mode__Exception = modulepar_pc__PLMN__Manual__Mode__Exception; +static BOOLEAN modulepar_pc__PS; +const BOOLEAN& pc__PS = modulepar_pc__PS; +static BOOLEAN modulepar_pc__PS__data__centric; +const BOOLEAN& pc__PS__data__centric = modulepar_pc__PS__data__centric; +static BOOLEAN modulepar_pc__PS__voice__centric; +const BOOLEAN& pc__PS__voice__centric = modulepar_pc__PS__voice__centric; +static BOOLEAN modulepar_pc__PWS__UpperLayer; +const BOOLEAN& pc__PWS__UpperLayer = modulepar_pc__PWS__UpperLayer; +static BOOLEAN modulepar_pc__ProvideDST__inUse; +const BOOLEAN& pc__ProvideDST__inUse = modulepar_pc__ProvideDST__inUse; +static BOOLEAN modulepar_pc__Provide__IMS__APN; +const BOOLEAN& pc__Provide__IMS__APN = modulepar_pc__Provide__IMS__APN; +static BOOLEAN modulepar_pc__Provide__IMS__as__second__APN; +const BOOLEAN& pc__Provide__IMS__as__second__APN = modulepar_pc__Provide__IMS__as__second__APN; +static BOOLEAN modulepar_pc__Provide__Internet__as__second__APN; +const BOOLEAN& pc__Provide__Internet__as__second__APN = modulepar_pc__Provide__Internet__as__second__APN; +static BOOLEAN modulepar_pc__RLF__ReportForInterRAT__MRO; +const BOOLEAN& pc__RLF__ReportForInterRAT__MRO = modulepar_pc__RLF__ReportForInterRAT__MRO; +static BOOLEAN modulepar_pc__ROHC__profile0x0001; +const BOOLEAN& pc__ROHC__profile0x0001 = modulepar_pc__ROHC__profile0x0001; +static BOOLEAN modulepar_pc__ROHC__profile0x0002; +const BOOLEAN& pc__ROHC__profile0x0002 = modulepar_pc__ROHC__profile0x0002; +static BOOLEAN modulepar_pc__ROHC__profile0x0003; +const BOOLEAN& pc__ROHC__profile0x0003 = modulepar_pc__ROHC__profile0x0003; +static BOOLEAN modulepar_pc__ROHC__profile0x0004; +const BOOLEAN& pc__ROHC__profile0x0004 = modulepar_pc__ROHC__profile0x0004; +static BOOLEAN modulepar_pc__ROHC__profile0x0006; +const BOOLEAN& pc__ROHC__profile0x0006 = modulepar_pc__ROHC__profile0x0006; +static BOOLEAN modulepar_pc__ROHC__profile0x0101; +const BOOLEAN& pc__ROHC__profile0x0101 = modulepar_pc__ROHC__profile0x0101; +static BOOLEAN modulepar_pc__ROHC__profile0x0102; +const BOOLEAN& pc__ROHC__profile0x0102 = modulepar_pc__ROHC__profile0x0102; +static BOOLEAN modulepar_pc__ROHC__profile0x0103; +const BOOLEAN& pc__ROHC__profile0x0103 = modulepar_pc__ROHC__profile0x0103; +static BOOLEAN modulepar_pc__ROHC__profile0x0104; +const BOOLEAN& pc__ROHC__profile0x0104 = modulepar_pc__ROHC__profile0x0104; +static BOOLEAN modulepar_pc__Rach__Report; +const BOOLEAN& pc__Rach__Report = modulepar_pc__Rach__Report; +static BOOLEAN modulepar_pc__Re__Attach__AfterDetachColl; +const BOOLEAN& pc__Re__Attach__AfterDetachColl = modulepar_pc__Re__Attach__AfterDetachColl; +static BOOLEAN modulepar_pc__RequestIPv4HAAddress__DuringAttach; +const BOOLEAN& pc__RequestIPv4HAAddress__DuringAttach = modulepar_pc__RequestIPv4HAAddress__DuringAttach; +static BOOLEAN modulepar_pc__RequestIPv6HAAddress__DuringAttach; +const BOOLEAN& pc__RequestIPv6HAAddress__DuringAttach = modulepar_pc__RequestIPv6HAAddress__DuringAttach; +static BOOLEAN modulepar_pc__SI__Neighbour__UMTS__Autonomous__Gaps; +const BOOLEAN& pc__SI__Neighbour__UMTS__Autonomous__Gaps = modulepar_pc__SI__Neighbour__UMTS__Autonomous__Gaps; +static BOOLEAN modulepar_pc__SI__Neighbour__interFreq__Autonomous__Gaps; +const BOOLEAN& pc__SI__Neighbour__interFreq__Autonomous__Gaps = modulepar_pc__SI__Neighbour__interFreq__Autonomous__Gaps; +static BOOLEAN modulepar_pc__SI__Neighbour__intraFreq__Autonomous__Gaps; +const BOOLEAN& pc__SI__Neighbour__intraFreq__Autonomous__Gaps = modulepar_pc__SI__Neighbour__intraFreq__Autonomous__Gaps; +static BOOLEAN modulepar_pc__SMS__SGs; +const BOOLEAN& pc__SMS__SGs = modulepar_pc__SMS__SGs; +static BOOLEAN modulepar_pc__SMS__SGs__MO; +const BOOLEAN& pc__SMS__SGs__MO = modulepar_pc__SMS__SGs__MO; +static BOOLEAN modulepar_pc__SMS__SGs__MT; +const BOOLEAN& pc__SMS__SGs__MT = modulepar_pc__SMS__SGs__MT; +static BOOLEAN modulepar_pc__SMS__SGs__Multi__MO; +const BOOLEAN& pc__SMS__SGs__Multi__MO = modulepar_pc__SMS__SGs__Multi__MO; +static BOOLEAN modulepar_pc__SRVCC__GERAN__UTRAN; +const BOOLEAN& pc__SRVCC__GERAN__UTRAN = modulepar_pc__SRVCC__GERAN__UTRAN; +static BOOLEAN modulepar_pc__Semi__Persistence__Scheduling; +const BOOLEAN& pc__Semi__Persistence__Scheduling = modulepar_pc__Semi__Persistence__Scheduling; +static BOOLEAN modulepar_pc__ShortNameNetwork; +const BOOLEAN& pc__ShortNameNetwork = modulepar_pc__ShortNameNetwork; +static BOOLEAN modulepar_pc__Speech; +const BOOLEAN& pc__Speech = modulepar_pc__Speech; +static BOOLEAN modulepar_pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN; +const BOOLEAN& pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN = modulepar_pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN; +static BOOLEAN modulepar_pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN; +const BOOLEAN& pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN = modulepar_pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN; +static BOOLEAN modulepar_pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN; +const BOOLEAN& pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN = modulepar_pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN; +static BOOLEAN modulepar_pc__StandaloneGNSS__Location; +const BOOLEAN& pc__StandaloneGNSS__Location = modulepar_pc__StandaloneGNSS__Location; +static BOOLEAN modulepar_pc__SupportOpModeA; +const BOOLEAN& pc__SupportOpModeA = modulepar_pc__SupportOpModeA; +static BOOLEAN modulepar_pc__SwitchOnOff; +const BOOLEAN& pc__SwitchOnOff = modulepar_pc__SwitchOnOff; +static BOOLEAN modulepar_pc__TAU__connected__in__IMS; +const BOOLEAN& pc__TAU__connected__in__IMS = modulepar_pc__TAU__connected__in__IMS; +static BOOLEAN modulepar_pc__TAU__idle__in__IMS; +const BOOLEAN& pc__TAU__idle__in__IMS = modulepar_pc__TAU__idle__in__IMS; +static BOOLEAN modulepar_pc__TDD__HCR; +const BOOLEAN& pc__TDD__HCR = modulepar_pc__TDD__HCR; +static BOOLEAN modulepar_pc__TDD__LCR; +const BOOLEAN& pc__TDD__LCR = modulepar_pc__TDD__LCR; +static BOOLEAN modulepar_pc__TDD__VHCR; +const BOOLEAN& pc__TDD__VHCR = modulepar_pc__TDD__VHCR; +static BOOLEAN modulepar_pc__TTI__Bundling; +const BOOLEAN& pc__TTI__Bundling = modulepar_pc__TTI__Bundling; +static BOOLEAN modulepar_pc__TestModeforCSGproximity; +const BOOLEAN& pc__TestModeforCSGproximity = modulepar_pc__TestModeforCSGproximity; +static BOOLEAN modulepar_pc__UE__supports__user__initiated__PDN__disconnect; +const BOOLEAN& pc__UE__supports__user__initiated__PDN__disconnect = modulepar_pc__UE__supports__user__initiated__PDN__disconnect; +static BOOLEAN modulepar_pc__UL__MIMO; +const BOOLEAN& pc__UL__MIMO = modulepar_pc__UL__MIMO; +static BOOLEAN modulepar_pc__UMI__ProcNeeded__DuringCSFB; +const BOOLEAN& pc__UMI__ProcNeeded__DuringCSFB = modulepar_pc__UMI__ProcNeeded__DuringCSFB; +static BOOLEAN modulepar_pc__UMTS__GSM; +const BOOLEAN& pc__UMTS__GSM = modulepar_pc__UMTS__GSM; +static BOOLEAN modulepar_pc__USIM__Removal; +const BOOLEAN& pc__USIM__Removal = modulepar_pc__USIM__Removal; +static BOOLEAN modulepar_pc__UTRA; +const BOOLEAN& pc__UTRA = modulepar_pc__UTRA; +static BOOLEAN modulepar_pc__UTRAN__ANR; +const BOOLEAN& pc__UTRAN__ANR = modulepar_pc__UTRAN__ANR; +static BOOLEAN modulepar_pc__UTRAN__ProximityIndication; +const BOOLEAN& pc__UTRAN__ProximityIndication = modulepar_pc__UTRAN__ProximityIndication; +static BOOLEAN modulepar_pc__UTRA__FeatrGrp__1; +const BOOLEAN& pc__UTRA__FeatrGrp__1 = modulepar_pc__UTRA__FeatrGrp__1; +static BOOLEAN modulepar_pc__UTRA__FeatrGrp__2; +const BOOLEAN& pc__UTRA__FeatrGrp__2 = modulepar_pc__UTRA__FeatrGrp__2; +static BOOLEAN modulepar_pc__UTRA__FeatrGrp__3; +const BOOLEAN& pc__UTRA__FeatrGrp__3 = modulepar_pc__UTRA__FeatrGrp__3; +static BOOLEAN modulepar_pc__UTRA__FeatrGrp__4; +const BOOLEAN& pc__UTRA__FeatrGrp__4 = modulepar_pc__UTRA__FeatrGrp__4; +static BOOLEAN modulepar_pc__UeAssistedAgps; +const BOOLEAN& pc__UeAssistedAgps = modulepar_pc__UeAssistedAgps; +static BOOLEAN modulepar_pc__UeBasedAgps; +const BOOLEAN& pc__UeBasedAgps = modulepar_pc__UeBasedAgps; +static BOOLEAN modulepar_pc__UniversalAndLocalTimeZone; +const BOOLEAN& pc__UniversalAndLocalTimeZone = modulepar_pc__UniversalAndLocalTimeZone; +static BOOLEAN modulepar_pc__UpdateUE__LocationInformation; +const BOOLEAN& pc__UpdateUE__LocationInformation = modulepar_pc__UpdateUE__LocationInformation; +static BOOLEAN modulepar_pc__UserInitiatedPLMN__Reselection; +const BOOLEAN& pc__UserInitiatedPLMN__Reselection = modulepar_pc__UserInitiatedPLMN__Reselection; +static BOOLEAN modulepar_pc__VoLTE; +const BOOLEAN& pc__VoLTE = modulepar_pc__VoLTE; +static BOOLEAN modulepar_pc__WLAN__Meas__Imm__MDT; +const BOOLEAN& pc__WLAN__Meas__Imm__MDT = modulepar_pc__WLAN__Meas__Imm__MDT; +static BOOLEAN modulepar_pc__WLAN__Meas__logged__MDT; +const BOOLEAN& pc__WLAN__Meas__logged__MDT = modulepar_pc__WLAN__Meas__logged__MDT; +static BOOLEAN modulepar_pc__WLAN__voice; +const BOOLEAN& pc__WLAN__voice = modulepar_pc__WLAN__voice; +static BOOLEAN modulepar_pc__XCAP__only__APN; +const BOOLEAN& pc__XCAP__only__APN = modulepar_pc__XCAP__only__APN; +static BOOLEAN modulepar_pc__XCAP__over__Internet__APN; +const BOOLEAN& pc__XCAP__over__Internet__APN = modulepar_pc__XCAP__over__Internet__APN; +static BOOLEAN modulepar_pc__ZUC; +const BOOLEAN& pc__ZUC = modulepar_pc__ZUC; +static BOOLEAN modulepar_pc__eCall__Test__Call; +const BOOLEAN& pc__eCall__Test__Call = modulepar_pc__eCall__Test__Call; +static BOOLEAN modulepar_pc__eFDD; +const BOOLEAN& pc__eFDD = modulepar_pc__eFDD; +static BOOLEAN modulepar_pc__eFDD__MultiBand; +const BOOLEAN& pc__eFDD__MultiBand = modulepar_pc__eFDD__MultiBand; +static BOOLEAN modulepar_pc__eMBMS; +const BOOLEAN& pc__eMBMS = modulepar_pc__eMBMS; +static BOOLEAN modulepar_pc__eMBMS__SC; +const BOOLEAN& pc__eMBMS__SC = modulepar_pc__eMBMS__SC; +static BOOLEAN modulepar_pc__eMinimumPeriodicSearchTimer; +const BOOLEAN& pc__eMinimumPeriodicSearchTimer = modulepar_pc__eMinimumPeriodicSearchTimer; +static BOOLEAN modulepar_pc__eRedirectionUTRA; +const BOOLEAN& pc__eRedirectionUTRA = modulepar_pc__eRedirectionUTRA; +static BOOLEAN modulepar_pc__eTDD; +const BOOLEAN& pc__eTDD = modulepar_pc__eTDD; +static BOOLEAN modulepar_pc__eTDD__MultiBand; +const BOOLEAN& pc__eTDD__MultiBand = modulepar_pc__eTDD__MultiBand; +static BOOLEAN modulepar_pc__eWLAN; +const BOOLEAN& pc__eWLAN = modulepar_pc__eWLAN; +static BOOLEAN modulepar_pc__multipleTimingAdvance; +const BOOLEAN& pc__multipleTimingAdvance = modulepar_pc__multipleTimingAdvance; +static BOOLEAN modulepar_pc__ue__CategoryDL__0; +const BOOLEAN& pc__ue__CategoryDL__0 = modulepar_pc__ue__CategoryDL__0; +static BOOLEAN modulepar_pc__ue__CategoryDL__10; +const BOOLEAN& pc__ue__CategoryDL__10 = modulepar_pc__ue__CategoryDL__10; +static BOOLEAN modulepar_pc__ue__CategoryDL__11; +const BOOLEAN& pc__ue__CategoryDL__11 = modulepar_pc__ue__CategoryDL__11; +static BOOLEAN modulepar_pc__ue__CategoryDL__12; +const BOOLEAN& pc__ue__CategoryDL__12 = modulepar_pc__ue__CategoryDL__12; +static BOOLEAN modulepar_pc__ue__CategoryDL__13; +const BOOLEAN& pc__ue__CategoryDL__13 = modulepar_pc__ue__CategoryDL__13; +static BOOLEAN modulepar_pc__ue__CategoryDL__14; +const BOOLEAN& pc__ue__CategoryDL__14 = modulepar_pc__ue__CategoryDL__14; +static BOOLEAN modulepar_pc__ue__CategoryDL__15; +const BOOLEAN& pc__ue__CategoryDL__15 = modulepar_pc__ue__CategoryDL__15; +static BOOLEAN modulepar_pc__ue__CategoryDL__16; +const BOOLEAN& pc__ue__CategoryDL__16 = modulepar_pc__ue__CategoryDL__16; +static BOOLEAN modulepar_pc__ue__CategoryDL__17; +const BOOLEAN& pc__ue__CategoryDL__17 = modulepar_pc__ue__CategoryDL__17; +static BOOLEAN modulepar_pc__ue__CategoryDL__18; +const BOOLEAN& pc__ue__CategoryDL__18 = modulepar_pc__ue__CategoryDL__18; +static BOOLEAN modulepar_pc__ue__CategoryDL__19; +const BOOLEAN& pc__ue__CategoryDL__19 = modulepar_pc__ue__CategoryDL__19; +static BOOLEAN modulepar_pc__ue__CategoryDL__1bis; +const BOOLEAN& pc__ue__CategoryDL__1bis = modulepar_pc__ue__CategoryDL__1bis; +static BOOLEAN modulepar_pc__ue__CategoryDL__20; +const BOOLEAN& pc__ue__CategoryDL__20 = modulepar_pc__ue__CategoryDL__20; +static BOOLEAN modulepar_pc__ue__CategoryDL__21; +const BOOLEAN& pc__ue__CategoryDL__21 = modulepar_pc__ue__CategoryDL__21; +static BOOLEAN modulepar_pc__ue__CategoryDL__22; +const BOOLEAN& pc__ue__CategoryDL__22 = modulepar_pc__ue__CategoryDL__22; +static BOOLEAN modulepar_pc__ue__CategoryDL__23; +const BOOLEAN& pc__ue__CategoryDL__23 = modulepar_pc__ue__CategoryDL__23; +static BOOLEAN modulepar_pc__ue__CategoryDL__24; +const BOOLEAN& pc__ue__CategoryDL__24 = modulepar_pc__ue__CategoryDL__24; +static BOOLEAN modulepar_pc__ue__CategoryDL__25; +const BOOLEAN& pc__ue__CategoryDL__25 = modulepar_pc__ue__CategoryDL__25; +static BOOLEAN modulepar_pc__ue__CategoryDL__26; +const BOOLEAN& pc__ue__CategoryDL__26 = modulepar_pc__ue__CategoryDL__26; +static BOOLEAN modulepar_pc__ue__CategoryDL__4; +const BOOLEAN& pc__ue__CategoryDL__4 = modulepar_pc__ue__CategoryDL__4; +static BOOLEAN modulepar_pc__ue__CategoryDL__6; +const BOOLEAN& pc__ue__CategoryDL__6 = modulepar_pc__ue__CategoryDL__6; +static BOOLEAN modulepar_pc__ue__CategoryDL__7; +const BOOLEAN& pc__ue__CategoryDL__7 = modulepar_pc__ue__CategoryDL__7; +static BOOLEAN modulepar_pc__ue__CategoryDL__9; +const BOOLEAN& pc__ue__CategoryDL__9 = modulepar_pc__ue__CategoryDL__9; +static BOOLEAN modulepar_pc__ue__CategoryDL__M1; +const BOOLEAN& pc__ue__CategoryDL__M1 = modulepar_pc__ue__CategoryDL__M1; +static BOOLEAN modulepar_pc__ue__CategoryDL__M2; +const BOOLEAN& pc__ue__CategoryDL__M2 = modulepar_pc__ue__CategoryDL__M2; +static BOOLEAN modulepar_pc__ue__CategoryUL__0; +const BOOLEAN& pc__ue__CategoryUL__0 = modulepar_pc__ue__CategoryUL__0; +static BOOLEAN modulepar_pc__ue__CategoryUL__13; +const BOOLEAN& pc__ue__CategoryUL__13 = modulepar_pc__ue__CategoryUL__13; +static BOOLEAN modulepar_pc__ue__CategoryUL__14; +const BOOLEAN& pc__ue__CategoryUL__14 = modulepar_pc__ue__CategoryUL__14; +static BOOLEAN modulepar_pc__ue__CategoryUL__15; +const BOOLEAN& pc__ue__CategoryUL__15 = modulepar_pc__ue__CategoryUL__15; +static BOOLEAN modulepar_pc__ue__CategoryUL__16; +const BOOLEAN& pc__ue__CategoryUL__16 = modulepar_pc__ue__CategoryUL__16; +static BOOLEAN modulepar_pc__ue__CategoryUL__17; +const BOOLEAN& pc__ue__CategoryUL__17 = modulepar_pc__ue__CategoryUL__17; +static BOOLEAN modulepar_pc__ue__CategoryUL__18; +const BOOLEAN& pc__ue__CategoryUL__18 = modulepar_pc__ue__CategoryUL__18; +static BOOLEAN modulepar_pc__ue__CategoryUL__19; +const BOOLEAN& pc__ue__CategoryUL__19 = modulepar_pc__ue__CategoryUL__19; +static BOOLEAN modulepar_pc__ue__CategoryUL__1bis; +const BOOLEAN& pc__ue__CategoryUL__1bis = modulepar_pc__ue__CategoryUL__1bis; +static BOOLEAN modulepar_pc__ue__CategoryUL__20; +const BOOLEAN& pc__ue__CategoryUL__20 = modulepar_pc__ue__CategoryUL__20; +static BOOLEAN modulepar_pc__ue__CategoryUL__21; +const BOOLEAN& pc__ue__CategoryUL__21 = modulepar_pc__ue__CategoryUL__21; +static BOOLEAN modulepar_pc__ue__CategoryUL__22; +const BOOLEAN& pc__ue__CategoryUL__22 = modulepar_pc__ue__CategoryUL__22; +static BOOLEAN modulepar_pc__ue__CategoryUL__23; +const BOOLEAN& pc__ue__CategoryUL__23 = modulepar_pc__ue__CategoryUL__23; +static BOOLEAN modulepar_pc__ue__CategoryUL__24; +const BOOLEAN& pc__ue__CategoryUL__24 = modulepar_pc__ue__CategoryUL__24; +static BOOLEAN modulepar_pc__ue__CategoryUL__25; +const BOOLEAN& pc__ue__CategoryUL__25 = modulepar_pc__ue__CategoryUL__25; +static BOOLEAN modulepar_pc__ue__CategoryUL__26; +const BOOLEAN& pc__ue__CategoryUL__26 = modulepar_pc__ue__CategoryUL__26; +static BOOLEAN modulepar_pc__ue__CategoryUL__3; +const BOOLEAN& pc__ue__CategoryUL__3 = modulepar_pc__ue__CategoryUL__3; +static BOOLEAN modulepar_pc__ue__CategoryUL__5; +const BOOLEAN& pc__ue__CategoryUL__5 = modulepar_pc__ue__CategoryUL__5; +static BOOLEAN modulepar_pc__ue__CategoryUL__7; +const BOOLEAN& pc__ue__CategoryUL__7 = modulepar_pc__ue__CategoryUL__7; +static BOOLEAN modulepar_pc__ue__CategoryUL__8; +const BOOLEAN& pc__ue__CategoryUL__8 = modulepar_pc__ue__CategoryUL__8; +static BOOLEAN modulepar_pc__ue__CategoryUL__M1; +const BOOLEAN& pc__ue__CategoryUL__M1 = modulepar_pc__ue__CategoryUL__M1; +static BOOLEAN modulepar_pc__ue__CategoryUL__M2; +const BOOLEAN& pc__ue__CategoryUL__M2 = modulepar_pc__ue__CategoryUL__M2; +static BOOLEAN modulepar_pc__ue__Category__1; +const BOOLEAN& pc__ue__Category__1 = modulepar_pc__ue__Category__1; +static BOOLEAN modulepar_pc__ue__Category__10; +const BOOLEAN& pc__ue__Category__10 = modulepar_pc__ue__Category__10; +static BOOLEAN modulepar_pc__ue__Category__11; +const BOOLEAN& pc__ue__Category__11 = modulepar_pc__ue__Category__11; +static BOOLEAN modulepar_pc__ue__Category__12; +const BOOLEAN& pc__ue__Category__12 = modulepar_pc__ue__Category__12; +static BOOLEAN modulepar_pc__ue__Category__2; +const BOOLEAN& pc__ue__Category__2 = modulepar_pc__ue__Category__2; +static BOOLEAN modulepar_pc__ue__Category__3; +const BOOLEAN& pc__ue__Category__3 = modulepar_pc__ue__Category__3; +static BOOLEAN modulepar_pc__ue__Category__4; +const BOOLEAN& pc__ue__Category__4 = modulepar_pc__ue__Category__4; +static BOOLEAN modulepar_pc__ue__Category__5; +const BOOLEAN& pc__ue__Category__5 = modulepar_pc__ue__Category__5; +static BOOLEAN modulepar_pc__ue__Category__6; +const BOOLEAN& pc__ue__Category__6 = modulepar_pc__ue__Category__6; +static BOOLEAN modulepar_pc__ue__Category__7; +const BOOLEAN& pc__ue__Category__7 = modulepar_pc__ue__Category__7; +static BOOLEAN modulepar_pc__ue__Category__8; +const BOOLEAN& pc__ue__Category__8 = modulepar_pc__ue__Category__8; +static BOOLEAN modulepar_pc__ue__Category__9; +const BOOLEAN& pc__ue__Category__9 = modulepar_pc__ue__Category__9; +static BOOLEAN modulepar_pc__voiceOverNR; +const BOOLEAN& pc__voiceOverNR = modulepar_pc__voiceOverNR; +static BOOLEAN modulepar_pc__voice__PS__1__CS__2; +const BOOLEAN& pc__voice__PS__1__CS__2 = modulepar_pc__voice__PS__1__CS__2; +TTCN_Module module_object("Parameters", __DATE__, __TIME__, module_checksum, pre_init_module, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, post_init_module, set_module_param, get_module_param, log_module_param, NULL, NULL, NULL, NULL); + +static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_10, + current_runtime_version.requires_minor_version_0, + current_runtime_version.requires_patch_level_0, current_runtime_version.requires_runtime_2); + +/* Initializing the TTCN-3 debugger */ +void init_ttcn3_debugger() +{ + /* global variables */ + TTCN3_Debug_Scope* global_scope = ttcn3_debugger.add_global_scope("Parameters"); + global_scope->add_variable(&pc__1xCSfallback, "pc_1xCSfallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__1xRTT, "pc_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__A5__4__CS, "pc_A5_4_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__APN__Default__Configuration, "pc_APN_Default_Configuration", "APN_DefaultConfiguration_Type", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&pc__APN__ID__Ethernet, "pc_APN_ID_Ethernet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__APN__ID__IMS, "pc_APN_ID_IMS", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__APN__ID__Internet, "pc_APN_ID_Internet", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__APN__ID__MIOT, "pc_APN_ID_MIOT", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__APN__ID__URLLC, "pc_APN_ID_URLLC", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__APN__ID__V2X, "pc_APN_ID_V2X", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Allowed__CSG__list, "pc_Allowed_CSG_list", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Attach, "pc_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Auto__PDN__Connectivity, "pc_Auto_PDN_Connectivity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Automatic__EPS__Re__Attach, "pc_Automatic_EPS_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Automatic__Re__Attach, "pc_Automatic_Re_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Available__PLMNs__AcT__Ind, "pc_Available_PLMNs_AcT_Ind", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__BSRVCC, "pc_BSRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__CMAS__Message, "pc_CMAS_Message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__CS, "pc_CS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__CS__Em__Call__in__1xRTT, "pc_CS_Em_Call_in_1xRTT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__CS__Em__Call__in__GERAN, "pc_CS_Em_Call_in_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__CS__Em__Call__in__UTRA, "pc_CS_Em_Call_in_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__CS__Fallback, "pc_CS_Fallback", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__CS__PS__data__centric, "pc_CS_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__CS__PS__voice__centric, "pc_CS_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Combined__Attach, "pc_Combined_Attach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__DSMIPv6, "pc_DSMIPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__DaylightSavingTime, "pc_DaylightSavingTime", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__DualRM__Coding, "pc_DualRM_Coding", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EAB, "pc_EAB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EAB__override, "pc_EAB_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EDTM, "pc_EDTM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EMM__Information, "pc_EMM_Information", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EPC__RACS, "pc_EPC_RACS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EPS__IMS__EmergencyCall, "pc_EPS_IMS_EmergencyCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EPS__Services__Disable, "pc_EPS_Services_Disable", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ESM__MO__Bearer__Allocation, "pc_ESM_MO_Bearer_Allocation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ESM__MO__Bearer__Modification, "pc_ESM_MO_Bearer_Modification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ESM__Notification, "pc_ESM_Notification", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ESM__UE__Modification__NW__TFT, "pc_ESM_UE_Modification_NW_TFT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ETWS__message, "pc_ETWS_message", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__E__UTRAN__2__GERAN__PSHO, "pc_E_UTRAN_2_GERAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__E__UTRA__WLAN__offload, "pc_E_UTRA_WLAN_offload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__EmergSpeech, "pc_EmergSpeech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FDD, "pc_FDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__101__F, "pc_FeatrGrp_101_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__101__T, "pc_FeatrGrp_101_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__102__F, "pc_FeatrGrp_102_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__102__T, "pc_FeatrGrp_102_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__103__F, "pc_FeatrGrp_103_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__103__T, "pc_FeatrGrp_103_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__104__F, "pc_FeatrGrp_104_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__104__T, "pc_FeatrGrp_104_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__105__F, "pc_FeatrGrp_105_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__105__T, "pc_FeatrGrp_105_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__106__F, "pc_FeatrGrp_106_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__106__T, "pc_FeatrGrp_106_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__107__F, "pc_FeatrGrp_107_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__107__T, "pc_FeatrGrp_107_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__108__F, "pc_FeatrGrp_108_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__108__T, "pc_FeatrGrp_108_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__109__F, "pc_FeatrGrp_109_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__109__T, "pc_FeatrGrp_109_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__10__F, "pc_FeatrGrp_10_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__10__T, "pc_FeatrGrp_10_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__110__F, "pc_FeatrGrp_110_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__110__T, "pc_FeatrGrp_110_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__111__F, "pc_FeatrGrp_111_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__111__T, "pc_FeatrGrp_111_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__112__F, "pc_FeatrGrp_112_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__112__T, "pc_FeatrGrp_112_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__113__F, "pc_FeatrGrp_113_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__113__T, "pc_FeatrGrp_113_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__114__F, "pc_FeatrGrp_114_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__114__T, "pc_FeatrGrp_114_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__115__F, "pc_FeatrGrp_115_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__115__T, "pc_FeatrGrp_115_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__116__F, "pc_FeatrGrp_116_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__116__T, "pc_FeatrGrp_116_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__11__F, "pc_FeatrGrp_11_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__11__T, "pc_FeatrGrp_11_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__12__F, "pc_FeatrGrp_12_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__12__T, "pc_FeatrGrp_12_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__13__F, "pc_FeatrGrp_13_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__13__T, "pc_FeatrGrp_13_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__14__F, "pc_FeatrGrp_14_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__14__T, "pc_FeatrGrp_14_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__15__F, "pc_FeatrGrp_15_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__15__T, "pc_FeatrGrp_15_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__16__F, "pc_FeatrGrp_16_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__16__T, "pc_FeatrGrp_16_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__17__F, "pc_FeatrGrp_17_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__17__T, "pc_FeatrGrp_17_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__18__F, "pc_FeatrGrp_18_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__18__T, "pc_FeatrGrp_18_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__19__F, "pc_FeatrGrp_19_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__19__T, "pc_FeatrGrp_19_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__1__F, "pc_FeatrGrp_1_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__1__T, "pc_FeatrGrp_1_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__20__F, "pc_FeatrGrp_20_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__20__T, "pc_FeatrGrp_20_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__21__F, "pc_FeatrGrp_21_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__21__T, "pc_FeatrGrp_21_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__22__F, "pc_FeatrGrp_22_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__22__T, "pc_FeatrGrp_22_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__23__F, "pc_FeatrGrp_23_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__23__T, "pc_FeatrGrp_23_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__24__F, "pc_FeatrGrp_24_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__24__T, "pc_FeatrGrp_24_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__25__F, "pc_FeatrGrp_25_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__25__T, "pc_FeatrGrp_25_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__26__F, "pc_FeatrGrp_26_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__26__T, "pc_FeatrGrp_26_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__27__F, "pc_FeatrGrp_27_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__27__T, "pc_FeatrGrp_27_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__28__F, "pc_FeatrGrp_28_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__28__T, "pc_FeatrGrp_28_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__29__F, "pc_FeatrGrp_29_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__29__T, "pc_FeatrGrp_29_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__2__F, "pc_FeatrGrp_2_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__2__T, "pc_FeatrGrp_2_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__30__F, "pc_FeatrGrp_30_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__30__T, "pc_FeatrGrp_30_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__31__F, "pc_FeatrGrp_31_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__31__T, "pc_FeatrGrp_31_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__33__F, "pc_FeatrGrp_33_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__33__T, "pc_FeatrGrp_33_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__34__F, "pc_FeatrGrp_34_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__34__T, "pc_FeatrGrp_34_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__35__F, "pc_FeatrGrp_35_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__35__T, "pc_FeatrGrp_35_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__36__F, "pc_FeatrGrp_36_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__36__T, "pc_FeatrGrp_36_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__37__F, "pc_FeatrGrp_37_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__37__T, "pc_FeatrGrp_37_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__38__F, "pc_FeatrGrp_38_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__38__T, "pc_FeatrGrp_38_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__39__F, "pc_FeatrGrp_39_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__39__T, "pc_FeatrGrp_39_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__3__F, "pc_FeatrGrp_3_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__3__T, "pc_FeatrGrp_3_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__40__F, "pc_FeatrGrp_40_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__40__T, "pc_FeatrGrp_40_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__41__F, "pc_FeatrGrp_41_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__41__T, "pc_FeatrGrp_41_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__42__F, "pc_FeatrGrp_42_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__42__T, "pc_FeatrGrp_42_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__4__F, "pc_FeatrGrp_4_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__4__T, "pc_FeatrGrp_4_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__5__F, "pc_FeatrGrp_5_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__5__T, "pc_FeatrGrp_5_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__6__F, "pc_FeatrGrp_6_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__6__T, "pc_FeatrGrp_6_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__7__F, "pc_FeatrGrp_7_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__7__T, "pc_FeatrGrp_7_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__8__F, "pc_FeatrGrp_8_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__8__T, "pc_FeatrGrp_8_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__9__F, "pc_FeatrGrp_9_F", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FeatrGrp__9__T, "pc_FeatrGrp_9_T", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__FullNameNetwork, "pc_FullNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__GERAN, "pc_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__GERAN__2__E__UTRAN__PSHO, "pc_GERAN_2_E_UTRAN_PSHO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__GERAN__2__E__UTRAN__meas, "pc_GERAN_2_E_UTRAN_meas", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__GERAN__2__E__UTRAN__measreporting__CCN, "pc_GERAN_2_E_UTRAN_measreporting_CCN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__HO__from__UTRA__to__eFDD, "pc_HO_from_UTRA_to_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__HO__from__UTRA__to__eTDD, "pc_HO_from_UTRA_to_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__HRPD, "pc_HRPD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IMS, "pc_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IMSI__Detach, "pc_IMSI_Detach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IMS__APN__default, "pc_IMS_APN_default", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IMS__CS__PS__SRVCC, "pc_IMS_CS_PS_SRVCC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IMS__CS__PS__SRVCCAlert, "pc_IMS_CS_PS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IMS__CS__PS__SRVCCMidCall, "pc_IMS_CS_PS_SRVCCMidCall", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IMS__SRVCCAlert, "pc_IMS_SRVCCAlert", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IMS__emergency__call, "pc_IMS_emergency_call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IPv4, "pc_IPv4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IPv6, "pc_IPv6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ISR, "pc_ISR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ImmConnect, "pc_ImmConnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__InterFreq__ProximityIndication, "pc_InterFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__IntraFreq__ProximityIndication, "pc_IntraFreq_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__KeepEpsBearerParametersAfterNormalDetach, "pc_KeepEpsBearerParametersAfterNormalDetach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__LAP, "pc_LAP", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__LAP__override, "pc_LAP_override", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__LocalTimeZone, "pc_LocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__LoggedMeasurementsIdle, "pc_LoggedMeasurementsIdle", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Manual__CSG__Selection, "pc_Manual_CSG_Selection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Multiple__PDN, "pc_Multiple_PDN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__NG114__v1__0, "pc_NG114_v1_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__NG114__v2__0, "pc_NG114_v2_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__NG__RAN__NR, "pc_NG_RAN_NR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__NR__5GC__EmergencyServices, "pc_NR_5GC_EmergencyServices", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__No__USIM__TestExecution, "pc_No_USIM_TestExecution", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__PLMN__Manual__Mode__Exception, "pc_PLMN_Manual_Mode_Exception", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__PS, "pc_PS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__PS__data__centric, "pc_PS_data_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__PS__voice__centric, "pc_PS_voice_centric", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__PWS__UpperLayer, "pc_PWS_UpperLayer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ProvideDST__inUse, "pc_ProvideDST_inUse", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Provide__IMS__APN, "pc_Provide_IMS_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Provide__IMS__as__second__APN, "pc_Provide_IMS_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Provide__Internet__as__second__APN, "pc_Provide_Internet_as_second_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__RLF__ReportForInterRAT__MRO, "pc_RLF_ReportForInterRAT_MRO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ROHC__profile0x0001, "pc_ROHC_profile0x0001", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ROHC__profile0x0002, "pc_ROHC_profile0x0002", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ROHC__profile0x0003, "pc_ROHC_profile0x0003", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ROHC__profile0x0004, "pc_ROHC_profile0x0004", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ROHC__profile0x0006, "pc_ROHC_profile0x0006", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ROHC__profile0x0101, "pc_ROHC_profile0x0101", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ROHC__profile0x0102, "pc_ROHC_profile0x0102", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ROHC__profile0x0103, "pc_ROHC_profile0x0103", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ROHC__profile0x0104, "pc_ROHC_profile0x0104", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Rach__Report, "pc_Rach_Report", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Re__Attach__AfterDetachColl, "pc_Re_Attach_AfterDetachColl", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__RequestIPv4HAAddress__DuringAttach, "pc_RequestIPv4HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__RequestIPv6HAAddress__DuringAttach, "pc_RequestIPv6HAAddress_DuringAttach", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SI__Neighbour__UMTS__Autonomous__Gaps, "pc_SI_Neighbour_UMTS_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SI__Neighbour__interFreq__Autonomous__Gaps, "pc_SI_Neighbour_interFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SI__Neighbour__intraFreq__Autonomous__Gaps, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SMS__SGs, "pc_SMS_SGs", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SMS__SGs__MO, "pc_SMS_SGs_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SMS__SGs__MT, "pc_SMS_SGs_MT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SMS__SGs__Multi__MO, "pc_SMS_SGs_Multi_MO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SRVCC__GERAN__UTRAN, "pc_SRVCC_GERAN_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Semi__Persistence__Scheduling, "pc_Semi_Persistence_Scheduling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ShortNameNetwork, "pc_ShortNameNetwork", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Speech, "pc_Speech", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__StandaloneGNSS__Location, "pc_StandaloneGNSS_Location", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SupportOpModeA, "pc_SupportOpModeA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__SwitchOnOff, "pc_SwitchOnOff", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__TAU__connected__in__IMS, "pc_TAU_connected_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__TAU__idle__in__IMS, "pc_TAU_idle_in_IMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__TDD__HCR, "pc_TDD_HCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__TDD__LCR, "pc_TDD_LCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__TDD__VHCR, "pc_TDD_VHCR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__TTI__Bundling, "pc_TTI_Bundling", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__TestModeforCSGproximity, "pc_TestModeforCSGproximity", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UE__supports__user__initiated__PDN__disconnect, "pc_UE_supports_user_initiated_PDN_disconnect", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UL__MIMO, "pc_UL_MIMO", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UMI__ProcNeeded__DuringCSFB, "pc_UMI_ProcNeeded_DuringCSFB", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UMTS__GSM, "pc_UMTS_GSM", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__USIM__Removal, "pc_USIM_Removal", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UTRA, "pc_UTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UTRAN__ANR, "pc_UTRAN_ANR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UTRAN__ProximityIndication, "pc_UTRAN_ProximityIndication", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UTRA__FeatrGrp__1, "pc_UTRA_FeatrGrp_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UTRA__FeatrGrp__2, "pc_UTRA_FeatrGrp_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UTRA__FeatrGrp__3, "pc_UTRA_FeatrGrp_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UTRA__FeatrGrp__4, "pc_UTRA_FeatrGrp_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UeAssistedAgps, "pc_UeAssistedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UeBasedAgps, "pc_UeBasedAgps", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UniversalAndLocalTimeZone, "pc_UniversalAndLocalTimeZone", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UpdateUE__LocationInformation, "pc_UpdateUE_LocationInformation", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__UserInitiatedPLMN__Reselection, "pc_UserInitiatedPLMN_Reselection", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__VoLTE, "pc_VoLTE", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__WLAN__Meas__Imm__MDT, "pc_WLAN_Meas_Imm_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__WLAN__Meas__logged__MDT, "pc_WLAN_Meas_logged_MDT", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__WLAN__voice, "pc_WLAN_voice", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__XCAP__only__APN, "pc_XCAP_only_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__XCAP__over__Internet__APN, "pc_XCAP_over_Internet_APN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ZUC, "pc_ZUC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eCall__Test__Call, "pc_eCall_Test_Call", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eFDD, "pc_eFDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eFDD__MultiBand, "pc_eFDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eMBMS, "pc_eMBMS", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eMBMS__SC, "pc_eMBMS_SC", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eMinimumPeriodicSearchTimer, "pc_eMinimumPeriodicSearchTimer", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eRedirectionUTRA, "pc_eRedirectionUTRA", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eTDD, "pc_eTDD", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eTDD__MultiBand, "pc_eTDD_MultiBand", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__eWLAN, "pc_eWLAN", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__multipleTimingAdvance, "pc_multipleTimingAdvance", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__0, "pc_ue_CategoryDL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__10, "pc_ue_CategoryDL_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__11, "pc_ue_CategoryDL_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__12, "pc_ue_CategoryDL_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__13, "pc_ue_CategoryDL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__14, "pc_ue_CategoryDL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__15, "pc_ue_CategoryDL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__16, "pc_ue_CategoryDL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__17, "pc_ue_CategoryDL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__18, "pc_ue_CategoryDL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__19, "pc_ue_CategoryDL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__1bis, "pc_ue_CategoryDL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__20, "pc_ue_CategoryDL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__21, "pc_ue_CategoryDL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__22, "pc_ue_CategoryDL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__23, "pc_ue_CategoryDL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__24, "pc_ue_CategoryDL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__25, "pc_ue_CategoryDL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__26, "pc_ue_CategoryDL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__4, "pc_ue_CategoryDL_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__6, "pc_ue_CategoryDL_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__7, "pc_ue_CategoryDL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__9, "pc_ue_CategoryDL_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__M1, "pc_ue_CategoryDL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryDL__M2, "pc_ue_CategoryDL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__0, "pc_ue_CategoryUL_0", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__13, "pc_ue_CategoryUL_13", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__14, "pc_ue_CategoryUL_14", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__15, "pc_ue_CategoryUL_15", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__16, "pc_ue_CategoryUL_16", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__17, "pc_ue_CategoryUL_17", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__18, "pc_ue_CategoryUL_18", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__19, "pc_ue_CategoryUL_19", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__1bis, "pc_ue_CategoryUL_1bis", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__20, "pc_ue_CategoryUL_20", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__21, "pc_ue_CategoryUL_21", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__22, "pc_ue_CategoryUL_22", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__23, "pc_ue_CategoryUL_23", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__24, "pc_ue_CategoryUL_24", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__25, "pc_ue_CategoryUL_25", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__26, "pc_ue_CategoryUL_26", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__3, "pc_ue_CategoryUL_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__5, "pc_ue_CategoryUL_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__7, "pc_ue_CategoryUL_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__8, "pc_ue_CategoryUL_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__M1, "pc_ue_CategoryUL_M1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__CategoryUL__M2, "pc_ue_CategoryUL_M2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__1, "pc_ue_Category_1", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__10, "pc_ue_Category_10", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__11, "pc_ue_Category_11", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__12, "pc_ue_Category_12", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__2, "pc_ue_Category_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__3, "pc_ue_Category_3", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__4, "pc_ue_Category_4", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__5, "pc_ue_Category_5", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__6, "pc_ue_Category_6", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__7, "pc_ue_Category_7", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__8, "pc_ue_Category_8", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__ue__Category__9, "pc_ue_Category_9", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__voiceOverNR, "pc_voiceOverNR", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&pc__voice__PS__1__CS__2, "pc_voice_PS_1_CS_2", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__AccessPointName, "px_AccessPointName", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__AquireGNSS__MaxTime, "px_AquireGNSS_MaxTime", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__AttachTypeTested, "px_AttachTypeTested", "EUTRA_ATTACH_TESTED_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&px__AuthAMF, "px_AuthAMF", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__AuthK, "px_AuthK", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__EllipsoidPointWithAltitude, "px_EllipsoidPointWithAltitude", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__EmergencyCallNumber, "px_EmergencyCallNumber", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__FDD__OperationBand, "px_FDD_OperationBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__HorizontalVelocity, "px_HorizontalVelocity", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IMEISV__Def, "px_IMEISV_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IMEI__Def, "px_IMEI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IMSI__Def, "px_IMSI_Def", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IMSI__Diff, "px_IMSI_Diff", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IP__MTU__Size, "px_IP_MTU_Size", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address1__NW, "px_IPv4_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address1__RemoteUE, "px_IPv4_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address1__UE, "px_IPv4_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address2__NW, "px_IPv4_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address2__RemoteUE, "px_IPv4_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address2__UE, "px_IPv4_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address2a__UE, "px_IPv4_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address3__NW, "px_IPv4_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address3__RemoteUE, "px_IPv4_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address3__UE, "px_IPv4_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address4__NW, "px_IPv4_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address4__UE, "px_IPv4_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address5__NW, "px_IPv4_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address5__UE, "px_IPv4_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address6__NW, "px_IPv4_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address6__UE, "px_IPv4_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv4__Address__HomeAgent, "px_IPv4_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address1__NW, "px_IPv6_Address1_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address1__RemoteUE, "px_IPv6_Address1_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address1__UE, "px_IPv6_Address1_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address2__NW, "px_IPv6_Address2_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address2__RemoteUE, "px_IPv6_Address2_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address2__UE, "px_IPv6_Address2_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address2a__UE, "px_IPv6_Address2a_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address3__NW, "px_IPv6_Address3_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address3__RemoteUE, "px_IPv6_Address3_RemoteUE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address3__UE, "px_IPv6_Address3_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address4__NW, "px_IPv6_Address4_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address4__UE, "px_IPv6_Address4_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address5__NW, "px_IPv6_Address5_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address5__UE, "px_IPv6_Address5_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address6__NW, "px_IPv6_Address6_NW", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address6__UE, "px_IPv6_Address6_UE", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__IPv6__Address__HomeAgent, "px_IPv6_Address_HomeAgent", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__MFBI__UTRAN__FrequencyBand, "px_MFBI_UTRAN_FrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__NAS__CipheringAlgorithm, "px_NAS_CipheringAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__NAS__IntegrityProtAlgorithm, "px_NAS_IntegrityProtAlgorithm", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__PTMSI__Def, "px_PTMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__PTMSI__SigDef, "px_PTMSI_SigDef", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__PWS__CB__DataCodingScheme, "px_PWS_CB_DataCodingScheme", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__PWS__CB__DataPage1, "px_PWS_CB_DataPage1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__PWS__CB__DataPage2, "px_PWS_CB_DataPage2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__PWS__CB__DataPage3, "px_PWS_CB_DataPage3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__PWS__CB__DataPage4, "px_PWS_CB_DataPage4", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__RATComb__Tested, "px_RATComb_Tested", "RATComb_Tested_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&px__SMS__ChkMsgReceived, "px_SMS_ChkMsgReceived", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__SMS__IndexOffset, "px_SMS_IndexOffset", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__SMS__MsgFrmt, "px_SMS_MsgFrmt", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__SMS__PrefMem1, "px_SMS_PrefMem1", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__SMS__PrefMem2, "px_SMS_PrefMem2", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__SMS__PrefMem3, "px_SMS_PrefMem3", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__SMS__Service, "px_SMS_Service", "charstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__SinglePLMN__Tested, "px_SinglePLMN_Tested", "SinglePLMN_TestedType", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&px__TMSI__Def, "px_TMSI_Def", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__TestLoopModeB__Delay, "px_TestLoopModeB_Delay", "octetstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__UE__CS__PS__UsageSetting__Tested, "px_UE_CS_PS_UsageSetting_Tested", "CS_PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&px__UE__PS__UsageSetting__Tested, "px_UE_PS_UsageSetting_Tested", "PS_MODE", "Parameters", NAS__CommonTypeDefs::print_var_NAS_CommonTypeDefs); + global_scope->add_variable(&px__UTRAN__ModeUnderTest, "px_UTRAN_ModeUnderTest", "UTRAN_FDD_TDD_Type", "Parameters", CommonDefs::print_var_CommonDefs); + global_scope->add_variable(&px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__WLAN__PDN1__ToOffload, "px_WLAN_PDN1_ToOffload", "boolean", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__eAuthRAND, "px_eAuthRAND", "bitstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__eJapanMCC__Band6, "px_eJapanMCC_Band6", "hexstring", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&px__ePrimaryFrequencyBand, "px_ePrimaryFrequencyBand", "integer", "Parameters", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::cr__Octet10__Any, "cr_Octet10_Any", "octetstring template", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__AT__ResultOK, "tsc_AT_ResultOK", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def, "tsc_C_RNTI_Def", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def10, "tsc_C_RNTI_Def10", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def2, "tsc_C_RNTI_Def2", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def3, "tsc_C_RNTI_Def3", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def4, "tsc_C_RNTI_Def4", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def5, "tsc_C_RNTI_Def5", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def6, "tsc_C_RNTI_Def6", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def7, "tsc_C_RNTI_Def7", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def8, "tsc_C_RNTI_Def8", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Def9, "tsc_C_RNTI_Def9", "bitstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value1, "tsc_C_RNTI_Value1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value10, "tsc_C_RNTI_Value10", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value2, "tsc_C_RNTI_Value2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value3, "tsc_C_RNTI_Value3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value4, "tsc_C_RNTI_Value4", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value5, "tsc_C_RNTI_Value5", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value6, "tsc_C_RNTI_Value6", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value7, "tsc_C_RNTI_Value7", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value8, "tsc_C_RNTI_Value8", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__C__RNTI__Value9, "tsc_C_RNTI_Value9", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__CarriageReturnLineFeed, "tsc_CarriageReturnLineFeed", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionDL, "tsc_DirectionDL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__DirectionUL, "tsc_DirectionUL", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__EUTRA__MaxEARFCN, "tsc_EUTRA_MaxEARFCN", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox, "tsc_Fox", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__FoxShort, "tsc_FoxShort", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Fox__PDU, "tsc_Fox_PDU", "charstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Gsm7BitLookup, "tsc_Gsm7BitLookup", "integer[32..126][2]", "CommonDefs", TTCN3_Debugger::print_value_array, 95, 32>); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble, "tsc_GuardTimePreamble", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__GuardTimePreamble__12min, "tsc_GuardTimePreamble_12min", "float", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS1, "tsc_Index_IMS1", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Index__IMS2, "tsc_Index_IMS2", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__HMAC__SHA__256, "tsc_KDF_HMAC_SHA_256", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__KDF__Spare3, "tsc_KDF_Spare3", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__LTE__PDCP__SDU__size, "tsc_Max_LTE_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Max__NR__PDCP__SDU__size, "tsc_Max_NR_PDCP_SDU_size", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfIMSPDNs, "tsc_NoOfIMSPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__NoOfPDNs, "tsc_NoOfPDNs", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__Oct1000__0, "tsc_Oct1000_0", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__RandomPRBS, "tsc_RandomPRBS", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt16Max, "tsc_UInt16Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt20Max, "tsc_UInt20Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt24Max, "tsc_UInt24Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt32Max, "tsc_UInt32Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt7Max, "tsc_UInt7Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__UInt8Max, "tsc_UInt8Max", "integer", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&CommonDefs::tsc__WLAN__SSID__AP1, "tsc_WLAN_SSID_AP1", "octetstring", "CommonDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Def, "tsc_LAC_Def", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); + global_scope->add_variable(&NAS__CommonTypeDefs::tsc__LAC__Deleted, "tsc_LAC_Deleted", "octetstring", "NAS_CommonTypeDefs", TTCN3_Debugger::print_base_var); +} + +/* Bodies of static functions */ + +static void pre_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Parameters"); +Parameters::init_ttcn3_debugger(); +NAS__CommonTypeDefs::module_object.pre_init_module(); +current_location.update_lineno(21); +ttcn3_debugger.breakpoint_entry(21); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 21 */ +modulepar_pc__APN__Default__Configuration = NAS__CommonTypeDefs::APN__DefaultConfiguration__Type::None; +module_object.add_modulepar("pc_APN_Default_Configuration"); +module_object.add_modulepar("pc_APN_ID_Ethernet"); +module_object.add_modulepar("pc_APN_ID_IMS"); +module_object.add_modulepar("pc_APN_ID_Internet"); +module_object.add_modulepar("pc_APN_ID_MIOT"); +module_object.add_modulepar("pc_APN_ID_URLLC"); +module_object.add_modulepar("pc_APN_ID_V2X"); +module_object.add_modulepar("px_AccessPointName"); +current_location.update_lineno(57); +ttcn3_debugger.breakpoint_entry(57); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 57 */ +modulepar_px__AquireGNSS__MaxTime = 60; +module_object.add_modulepar("px_AquireGNSS_MaxTime"); +current_location.update_lineno(59); +ttcn3_debugger.breakpoint_entry(59); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 59 */ +modulepar_px__AttachTypeTested = CommonDefs::EUTRA__ATTACH__TESTED__Type::EPS__ATTACH__ONLY; +module_object.add_modulepar("px_AttachTypeTested"); +module_object.add_modulepar("px_AuthAMF"); +current_location.update_lineno(66); +ttcn3_debugger.breakpoint_entry(66); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 66 */ +modulepar_px__AuthK = bs_0; +module_object.add_modulepar("px_AuthK"); +module_object.add_modulepar("px_EllipsoidPointWithAltitude"); +current_location.update_lineno(72); +ttcn3_debugger.breakpoint_entry(72); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 72 */ +modulepar_px__EmergencyCallNumber = cs_0; +module_object.add_modulepar("px_EmergencyCallNumber"); +module_object.add_modulepar("px_FDD_OperationBand"); +module_object.add_modulepar("px_HorizontalVelocity"); +module_object.add_modulepar("px_IMEISV_Def"); +module_object.add_modulepar("px_IMEI_Def"); +current_location.update_lineno(86); +ttcn3_debugger.breakpoint_entry(86); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 86 */ +modulepar_px__IMSI__Def = hs_0; +module_object.add_modulepar("px_IMSI_Def"); +current_location.update_lineno(90); +ttcn3_debugger.breakpoint_entry(90); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 90 */ +modulepar_px__IMSI__Diff = hs_1; +module_object.add_modulepar("px_IMSI_Diff"); +current_location.update_lineno(94); +ttcn3_debugger.breakpoint_entry(94); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 94 */ +modulepar_px__IP__MTU__Size = 65535; +module_object.add_modulepar("px_IP_MTU_Size"); +module_object.add_modulepar("px_IPv4_Address1_NW"); +module_object.add_modulepar("px_IPv4_Address1_RemoteUE"); +module_object.add_modulepar("px_IPv4_Address1_UE"); +module_object.add_modulepar("px_IPv4_Address2_NW"); +module_object.add_modulepar("px_IPv4_Address2_RemoteUE"); +module_object.add_modulepar("px_IPv4_Address2_UE"); +module_object.add_modulepar("px_IPv4_Address2a_UE"); +module_object.add_modulepar("px_IPv4_Address3_NW"); +module_object.add_modulepar("px_IPv4_Address3_RemoteUE"); +module_object.add_modulepar("px_IPv4_Address3_UE"); +module_object.add_modulepar("px_IPv4_Address4_NW"); +module_object.add_modulepar("px_IPv4_Address4_UE"); +module_object.add_modulepar("px_IPv4_Address5_NW"); +module_object.add_modulepar("px_IPv4_Address5_UE"); +module_object.add_modulepar("px_IPv4_Address6_NW"); +module_object.add_modulepar("px_IPv4_Address6_UE"); +module_object.add_modulepar("px_IPv4_Address_HomeAgent"); +module_object.add_modulepar("px_IPv6_Address1_NW"); +module_object.add_modulepar("px_IPv6_Address1_RemoteUE"); +module_object.add_modulepar("px_IPv6_Address1_UE"); +module_object.add_modulepar("px_IPv6_Address2_NW"); +module_object.add_modulepar("px_IPv6_Address2_RemoteUE"); +module_object.add_modulepar("px_IPv6_Address2_UE"); +module_object.add_modulepar("px_IPv6_Address2a_UE"); +module_object.add_modulepar("px_IPv6_Address3_NW"); +module_object.add_modulepar("px_IPv6_Address3_RemoteUE"); +module_object.add_modulepar("px_IPv6_Address3_UE"); +module_object.add_modulepar("px_IPv6_Address4_NW"); +module_object.add_modulepar("px_IPv6_Address4_UE"); +module_object.add_modulepar("px_IPv6_Address5_NW"); +module_object.add_modulepar("px_IPv6_Address5_UE"); +module_object.add_modulepar("px_IPv6_Address6_NW"); +module_object.add_modulepar("px_IPv6_Address6_UE"); +module_object.add_modulepar("px_IPv6_Address_HomeAgent"); +module_object.add_modulepar("px_MFBI_UTRAN_FrequencyBand"); +current_location.update_lineno(167); +ttcn3_debugger.breakpoint_entry(167); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 167 */ +modulepar_px__NAS__CipheringAlgorithm = bs_1; +module_object.add_modulepar("px_NAS_CipheringAlgorithm"); +current_location.update_lineno(169); +ttcn3_debugger.breakpoint_entry(169); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 169 */ +modulepar_px__NAS__IntegrityProtAlgorithm = bs_1; +module_object.add_modulepar("px_NAS_IntegrityProtAlgorithm"); +current_location.update_lineno(171); +ttcn3_debugger.breakpoint_entry(171); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 171 */ +modulepar_px__PTMSI__Def = os_0; +module_object.add_modulepar("px_PTMSI_Def"); +current_location.update_lineno(174); +ttcn3_debugger.breakpoint_entry(174); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 174 */ +modulepar_px__PTMSI__SigDef = os_1; +module_object.add_modulepar("px_PTMSI_SigDef"); +module_object.add_modulepar("px_PWS_CB_DataCodingScheme"); +module_object.add_modulepar("px_PWS_CB_DataPage1"); +module_object.add_modulepar("px_PWS_CB_DataPage2"); +module_object.add_modulepar("px_PWS_CB_DataPage3"); +module_object.add_modulepar("px_PWS_CB_DataPage4"); +current_location.update_lineno(187); +ttcn3_debugger.breakpoint_entry(187); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 187 */ +modulepar_px__RATComb__Tested = CommonDefs::RATComb__Tested__Type::EUTRA__UTRA; +module_object.add_modulepar("px_RATComb_Tested"); +current_location.update_lineno(190); +ttcn3_debugger.breakpoint_entry(190); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 190 */ +modulepar_px__SMS__ChkMsgReceived = TRUE; +module_object.add_modulepar("px_SMS_ChkMsgReceived"); +current_location.update_lineno(192); +ttcn3_debugger.breakpoint_entry(192); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 192 */ +modulepar_px__SMS__IndexOffset = 0; +module_object.add_modulepar("px_SMS_IndexOffset"); +current_location.update_lineno(195); +ttcn3_debugger.breakpoint_entry(195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 195 */ +modulepar_px__SMS__MsgFrmt = cs_1; +module_object.add_modulepar("px_SMS_MsgFrmt"); +current_location.update_lineno(197); +ttcn3_debugger.breakpoint_entry(197); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 197 */ +modulepar_px__SMS__PrefMem1 = cs_2; +module_object.add_modulepar("px_SMS_PrefMem1"); +current_location.update_lineno(200); +ttcn3_debugger.breakpoint_entry(200); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 200 */ +modulepar_px__SMS__PrefMem2 = cs_2; +module_object.add_modulepar("px_SMS_PrefMem2"); +current_location.update_lineno(203); +ttcn3_debugger.breakpoint_entry(203); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 203 */ +modulepar_px__SMS__PrefMem3 = cs_3; +module_object.add_modulepar("px_SMS_PrefMem3"); +current_location.update_lineno(206); +ttcn3_debugger.breakpoint_entry(206); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 206 */ +modulepar_px__SMS__Service = cs_4; +module_object.add_modulepar("px_SMS_Service"); +current_location.update_lineno(209); +ttcn3_debugger.breakpoint_entry(209); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 209 */ +modulepar_px__SinglePLMN__Tested = CommonDefs::SinglePLMN__TestedType::MultiPLMN; +module_object.add_modulepar("px_SinglePLMN_Tested"); +current_location.update_lineno(212); +ttcn3_debugger.breakpoint_entry(212); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 212 */ +modulepar_px__TMSI__Def = os_2; +module_object.add_modulepar("px_TMSI_Def"); +current_location.update_lineno(215); +ttcn3_debugger.breakpoint_entry(215); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 215 */ +modulepar_px__TestLoopModeB__Delay = os_3; +module_object.add_modulepar("px_TestLoopModeB_Delay"); +current_location.update_lineno(217); +ttcn3_debugger.breakpoint_entry(217); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 217 */ +modulepar_px__UE__CS__PS__UsageSetting__Tested = NAS__CommonTypeDefs::CS__PS__MODE::VOICE__CENTRIC; +module_object.add_modulepar("px_UE_CS_PS_UsageSetting_Tested"); +current_location.update_lineno(221); +ttcn3_debugger.breakpoint_entry(221); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 221 */ +modulepar_px__UE__PS__UsageSetting__Tested = NAS__CommonTypeDefs::PS__MODE::VOICE__CENTRIC; +module_object.add_modulepar("px_UE_PS_UsageSetting_Tested"); +current_location.update_lineno(224); +ttcn3_debugger.breakpoint_entry(224); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 224 */ +modulepar_px__UTRAN__ModeUnderTest = CommonDefs::UTRAN__FDD__TDD__Type::UTRAN__FDD; +module_object.add_modulepar("px_UTRAN_ModeUnderTest"); +module_object.add_modulepar("px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI"); +current_location.update_lineno(230); +ttcn3_debugger.breakpoint_entry(230); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 230 */ +modulepar_px__WLAN__PDN1__ToOffload = TRUE; +module_object.add_modulepar("px_WLAN_PDN1_ToOffload"); +current_location.update_lineno(232); +ttcn3_debugger.breakpoint_entry(232); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 232 */ +modulepar_px__eAuthRAND = bs_2; +module_object.add_modulepar("px_eAuthRAND"); +current_location.update_lineno(235); +ttcn3_debugger.breakpoint_entry(235); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 235 */ +modulepar_px__eJapanMCC__Band6 = hs_2; +module_object.add_modulepar("px_eJapanMCC_Band6"); +current_location.update_lineno(237); +ttcn3_debugger.breakpoint_entry(237); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 237 */ +modulepar_px__ePrimaryFrequencyBand = 1; +module_object.add_modulepar("px_ePrimaryFrequencyBand"); +current_location.update_lineno(243); +ttcn3_debugger.breakpoint_entry(243); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 243 */ +modulepar_pc__1xCSfallback = FALSE; +module_object.add_modulepar("pc_1xCSfallback"); +current_location.update_lineno(246); +ttcn3_debugger.breakpoint_entry(246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 246 */ +modulepar_pc__1xRTT = FALSE; +module_object.add_modulepar("pc_1xRTT"); +current_location.update_lineno(249); +ttcn3_debugger.breakpoint_entry(249); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 249 */ +modulepar_pc__A5__4__CS = FALSE; +module_object.add_modulepar("pc_A5_4_CS"); +current_location.update_lineno(252); +ttcn3_debugger.breakpoint_entry(252); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 252 */ +modulepar_pc__Allowed__CSG__list = FALSE; +module_object.add_modulepar("pc_Allowed_CSG_list"); +current_location.update_lineno(255); +ttcn3_debugger.breakpoint_entry(255); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 255 */ +modulepar_pc__Attach = FALSE; +module_object.add_modulepar("pc_Attach"); +current_location.update_lineno(258); +ttcn3_debugger.breakpoint_entry(258); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 258 */ +modulepar_pc__Auto__PDN__Connectivity = FALSE; +module_object.add_modulepar("pc_Auto_PDN_Connectivity"); +current_location.update_lineno(261); +ttcn3_debugger.breakpoint_entry(261); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 261 */ +modulepar_pc__Automatic__EPS__Re__Attach = FALSE; +module_object.add_modulepar("pc_Automatic_EPS_Re_Attach"); +current_location.update_lineno(264); +ttcn3_debugger.breakpoint_entry(264); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 264 */ +modulepar_pc__Automatic__Re__Attach = FALSE; +module_object.add_modulepar("pc_Automatic_Re_Attach"); +current_location.update_lineno(267); +ttcn3_debugger.breakpoint_entry(267); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 267 */ +modulepar_pc__Available__PLMNs__AcT__Ind = FALSE; +module_object.add_modulepar("pc_Available_PLMNs_AcT_Ind"); +current_location.update_lineno(270); +ttcn3_debugger.breakpoint_entry(270); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 270 */ +modulepar_pc__BSRVCC = FALSE; +module_object.add_modulepar("pc_BSRVCC"); +current_location.update_lineno(273); +ttcn3_debugger.breakpoint_entry(273); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 273 */ +modulepar_pc__CMAS__Message = FALSE; +module_object.add_modulepar("pc_CMAS_Message"); +current_location.update_lineno(276); +ttcn3_debugger.breakpoint_entry(276); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 276 */ +modulepar_pc__CS = FALSE; +module_object.add_modulepar("pc_CS"); +current_location.update_lineno(279); +ttcn3_debugger.breakpoint_entry(279); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 279 */ +modulepar_pc__CS__Em__Call__in__1xRTT = FALSE; +module_object.add_modulepar("pc_CS_Em_Call_in_1xRTT"); +current_location.update_lineno(282); +ttcn3_debugger.breakpoint_entry(282); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 282 */ +modulepar_pc__CS__Em__Call__in__GERAN = FALSE; +module_object.add_modulepar("pc_CS_Em_Call_in_GERAN"); +current_location.update_lineno(285); +ttcn3_debugger.breakpoint_entry(285); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 285 */ +modulepar_pc__CS__Em__Call__in__UTRA = FALSE; +module_object.add_modulepar("pc_CS_Em_Call_in_UTRA"); +current_location.update_lineno(288); +ttcn3_debugger.breakpoint_entry(288); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 288 */ +modulepar_pc__CS__Fallback = FALSE; +module_object.add_modulepar("pc_CS_Fallback"); +current_location.update_lineno(291); +ttcn3_debugger.breakpoint_entry(291); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 291 */ +modulepar_pc__CS__PS__data__centric = FALSE; +module_object.add_modulepar("pc_CS_PS_data_centric"); +current_location.update_lineno(294); +ttcn3_debugger.breakpoint_entry(294); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 294 */ +modulepar_pc__CS__PS__voice__centric = FALSE; +module_object.add_modulepar("pc_CS_PS_voice_centric"); +current_location.update_lineno(297); +ttcn3_debugger.breakpoint_entry(297); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 297 */ +modulepar_pc__Combined__Attach = FALSE; +module_object.add_modulepar("pc_Combined_Attach"); +current_location.update_lineno(300); +ttcn3_debugger.breakpoint_entry(300); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 300 */ +modulepar_pc__DSMIPv6 = FALSE; +module_object.add_modulepar("pc_DSMIPv6"); +current_location.update_lineno(303); +ttcn3_debugger.breakpoint_entry(303); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 303 */ +modulepar_pc__DaylightSavingTime = FALSE; +module_object.add_modulepar("pc_DaylightSavingTime"); +current_location.update_lineno(306); +ttcn3_debugger.breakpoint_entry(306); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 306 */ +modulepar_pc__DualRM__Coding = FALSE; +module_object.add_modulepar("pc_DualRM_Coding"); +current_location.update_lineno(309); +ttcn3_debugger.breakpoint_entry(309); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 309 */ +modulepar_pc__EAB = FALSE; +module_object.add_modulepar("pc_EAB"); +current_location.update_lineno(312); +ttcn3_debugger.breakpoint_entry(312); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 312 */ +modulepar_pc__EAB__override = FALSE; +module_object.add_modulepar("pc_EAB_override"); +current_location.update_lineno(315); +ttcn3_debugger.breakpoint_entry(315); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 315 */ +modulepar_pc__EDTM = FALSE; +module_object.add_modulepar("pc_EDTM"); +current_location.update_lineno(318); +ttcn3_debugger.breakpoint_entry(318); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 318 */ +modulepar_pc__EMM__Information = FALSE; +module_object.add_modulepar("pc_EMM_Information"); +current_location.update_lineno(321); +ttcn3_debugger.breakpoint_entry(321); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 321 */ +modulepar_pc__EPC__RACS = FALSE; +module_object.add_modulepar("pc_EPC_RACS"); +current_location.update_lineno(324); +ttcn3_debugger.breakpoint_entry(324); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 324 */ +modulepar_pc__EPS__IMS__EmergencyCall = FALSE; +module_object.add_modulepar("pc_EPS_IMS_EmergencyCall"); +current_location.update_lineno(327); +ttcn3_debugger.breakpoint_entry(327); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 327 */ +modulepar_pc__EPS__Services__Disable = FALSE; +module_object.add_modulepar("pc_EPS_Services_Disable"); +current_location.update_lineno(330); +ttcn3_debugger.breakpoint_entry(330); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 330 */ +modulepar_pc__ESM__MO__Bearer__Allocation = FALSE; +module_object.add_modulepar("pc_ESM_MO_Bearer_Allocation"); +current_location.update_lineno(333); +ttcn3_debugger.breakpoint_entry(333); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 333 */ +modulepar_pc__ESM__MO__Bearer__Modification = FALSE; +module_object.add_modulepar("pc_ESM_MO_Bearer_Modification"); +current_location.update_lineno(336); +ttcn3_debugger.breakpoint_entry(336); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 336 */ +modulepar_pc__ESM__Notification = FALSE; +module_object.add_modulepar("pc_ESM_Notification"); +current_location.update_lineno(339); +ttcn3_debugger.breakpoint_entry(339); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 339 */ +modulepar_pc__ESM__UE__Modification__NW__TFT = FALSE; +module_object.add_modulepar("pc_ESM_UE_Modification_NW_TFT"); +current_location.update_lineno(342); +ttcn3_debugger.breakpoint_entry(342); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 342 */ +modulepar_pc__ETWS__message = FALSE; +module_object.add_modulepar("pc_ETWS_message"); +current_location.update_lineno(345); +ttcn3_debugger.breakpoint_entry(345); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 345 */ +modulepar_pc__E__UTRAN__2__GERAN__PSHO = FALSE; +module_object.add_modulepar("pc_E_UTRAN_2_GERAN_PSHO"); +current_location.update_lineno(348); +ttcn3_debugger.breakpoint_entry(348); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 348 */ +modulepar_pc__E__UTRA__WLAN__offload = FALSE; +module_object.add_modulepar("pc_E_UTRA_WLAN_offload"); +current_location.update_lineno(351); +ttcn3_debugger.breakpoint_entry(351); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 351 */ +modulepar_pc__EmergSpeech = FALSE; +module_object.add_modulepar("pc_EmergSpeech"); +current_location.update_lineno(354); +ttcn3_debugger.breakpoint_entry(354); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 354 */ +modulepar_pc__FDD = FALSE; +module_object.add_modulepar("pc_FDD"); +current_location.update_lineno(357); +ttcn3_debugger.breakpoint_entry(357); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 357 */ +modulepar_pc__FeatrGrp__101__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_101_F"); +current_location.update_lineno(360); +ttcn3_debugger.breakpoint_entry(360); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 360 */ +modulepar_pc__FeatrGrp__101__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_101_T"); +current_location.update_lineno(363); +ttcn3_debugger.breakpoint_entry(363); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 363 */ +modulepar_pc__FeatrGrp__102__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_102_F"); +current_location.update_lineno(366); +ttcn3_debugger.breakpoint_entry(366); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 366 */ +modulepar_pc__FeatrGrp__102__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_102_T"); +current_location.update_lineno(369); +ttcn3_debugger.breakpoint_entry(369); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 369 */ +modulepar_pc__FeatrGrp__103__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_103_F"); +current_location.update_lineno(372); +ttcn3_debugger.breakpoint_entry(372); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 372 */ +modulepar_pc__FeatrGrp__103__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_103_T"); +current_location.update_lineno(375); +ttcn3_debugger.breakpoint_entry(375); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 375 */ +modulepar_pc__FeatrGrp__104__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_104_F"); +current_location.update_lineno(378); +ttcn3_debugger.breakpoint_entry(378); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 378 */ +modulepar_pc__FeatrGrp__104__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_104_T"); +current_location.update_lineno(381); +ttcn3_debugger.breakpoint_entry(381); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 381 */ +modulepar_pc__FeatrGrp__105__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_105_F"); +current_location.update_lineno(384); +ttcn3_debugger.breakpoint_entry(384); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 384 */ +modulepar_pc__FeatrGrp__105__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_105_T"); +current_location.update_lineno(387); +ttcn3_debugger.breakpoint_entry(387); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 387 */ +modulepar_pc__FeatrGrp__106__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_106_F"); +current_location.update_lineno(390); +ttcn3_debugger.breakpoint_entry(390); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 390 */ +modulepar_pc__FeatrGrp__106__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_106_T"); +current_location.update_lineno(393); +ttcn3_debugger.breakpoint_entry(393); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 393 */ +modulepar_pc__FeatrGrp__107__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_107_F"); +current_location.update_lineno(396); +ttcn3_debugger.breakpoint_entry(396); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 396 */ +modulepar_pc__FeatrGrp__107__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_107_T"); +current_location.update_lineno(399); +ttcn3_debugger.breakpoint_entry(399); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 399 */ +modulepar_pc__FeatrGrp__108__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_108_F"); +current_location.update_lineno(402); +ttcn3_debugger.breakpoint_entry(402); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 402 */ +modulepar_pc__FeatrGrp__108__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_108_T"); +current_location.update_lineno(405); +ttcn3_debugger.breakpoint_entry(405); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 405 */ +modulepar_pc__FeatrGrp__109__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_109_F"); +current_location.update_lineno(408); +ttcn3_debugger.breakpoint_entry(408); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 408 */ +modulepar_pc__FeatrGrp__109__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_109_T"); +current_location.update_lineno(411); +ttcn3_debugger.breakpoint_entry(411); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 411 */ +modulepar_pc__FeatrGrp__10__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_10_F"); +current_location.update_lineno(414); +ttcn3_debugger.breakpoint_entry(414); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 414 */ +modulepar_pc__FeatrGrp__10__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_10_T"); +current_location.update_lineno(417); +ttcn3_debugger.breakpoint_entry(417); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 417 */ +modulepar_pc__FeatrGrp__110__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_110_F"); +current_location.update_lineno(420); +ttcn3_debugger.breakpoint_entry(420); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 420 */ +modulepar_pc__FeatrGrp__110__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_110_T"); +current_location.update_lineno(423); +ttcn3_debugger.breakpoint_entry(423); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 423 */ +modulepar_pc__FeatrGrp__111__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_111_F"); +current_location.update_lineno(426); +ttcn3_debugger.breakpoint_entry(426); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 426 */ +modulepar_pc__FeatrGrp__111__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_111_T"); +current_location.update_lineno(429); +ttcn3_debugger.breakpoint_entry(429); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 429 */ +modulepar_pc__FeatrGrp__112__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_112_F"); +current_location.update_lineno(432); +ttcn3_debugger.breakpoint_entry(432); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 432 */ +modulepar_pc__FeatrGrp__112__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_112_T"); +current_location.update_lineno(435); +ttcn3_debugger.breakpoint_entry(435); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 435 */ +modulepar_pc__FeatrGrp__113__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_113_F"); +current_location.update_lineno(438); +ttcn3_debugger.breakpoint_entry(438); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 438 */ +modulepar_pc__FeatrGrp__113__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_113_T"); +current_location.update_lineno(441); +ttcn3_debugger.breakpoint_entry(441); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 441 */ +modulepar_pc__FeatrGrp__114__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_114_F"); +current_location.update_lineno(444); +ttcn3_debugger.breakpoint_entry(444); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 444 */ +modulepar_pc__FeatrGrp__114__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_114_T"); +current_location.update_lineno(447); +ttcn3_debugger.breakpoint_entry(447); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 447 */ +modulepar_pc__FeatrGrp__115__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_115_F"); +current_location.update_lineno(450); +ttcn3_debugger.breakpoint_entry(450); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 450 */ +modulepar_pc__FeatrGrp__115__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_115_T"); +current_location.update_lineno(453); +ttcn3_debugger.breakpoint_entry(453); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 453 */ +modulepar_pc__FeatrGrp__116__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_116_F"); +current_location.update_lineno(456); +ttcn3_debugger.breakpoint_entry(456); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 456 */ +modulepar_pc__FeatrGrp__116__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_116_T"); +current_location.update_lineno(459); +ttcn3_debugger.breakpoint_entry(459); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 459 */ +modulepar_pc__FeatrGrp__11__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_11_F"); +current_location.update_lineno(462); +ttcn3_debugger.breakpoint_entry(462); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 462 */ +modulepar_pc__FeatrGrp__11__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_11_T"); +current_location.update_lineno(465); +ttcn3_debugger.breakpoint_entry(465); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 465 */ +modulepar_pc__FeatrGrp__12__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_12_F"); +current_location.update_lineno(468); +ttcn3_debugger.breakpoint_entry(468); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 468 */ +modulepar_pc__FeatrGrp__12__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_12_T"); +current_location.update_lineno(471); +ttcn3_debugger.breakpoint_entry(471); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 471 */ +modulepar_pc__FeatrGrp__13__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_13_F"); +current_location.update_lineno(474); +ttcn3_debugger.breakpoint_entry(474); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 474 */ +modulepar_pc__FeatrGrp__13__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_13_T"); +current_location.update_lineno(477); +ttcn3_debugger.breakpoint_entry(477); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 477 */ +modulepar_pc__FeatrGrp__14__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_14_F"); +current_location.update_lineno(480); +ttcn3_debugger.breakpoint_entry(480); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 480 */ +modulepar_pc__FeatrGrp__14__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_14_T"); +current_location.update_lineno(483); +ttcn3_debugger.breakpoint_entry(483); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 483 */ +modulepar_pc__FeatrGrp__15__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_15_F"); +current_location.update_lineno(486); +ttcn3_debugger.breakpoint_entry(486); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 486 */ +modulepar_pc__FeatrGrp__15__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_15_T"); +current_location.update_lineno(489); +ttcn3_debugger.breakpoint_entry(489); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 489 */ +modulepar_pc__FeatrGrp__16__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_16_F"); +current_location.update_lineno(492); +ttcn3_debugger.breakpoint_entry(492); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 492 */ +modulepar_pc__FeatrGrp__16__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_16_T"); +current_location.update_lineno(495); +ttcn3_debugger.breakpoint_entry(495); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 495 */ +modulepar_pc__FeatrGrp__17__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_17_F"); +current_location.update_lineno(498); +ttcn3_debugger.breakpoint_entry(498); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 498 */ +modulepar_pc__FeatrGrp__17__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_17_T"); +current_location.update_lineno(501); +ttcn3_debugger.breakpoint_entry(501); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 501 */ +modulepar_pc__FeatrGrp__18__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_18_F"); +current_location.update_lineno(504); +ttcn3_debugger.breakpoint_entry(504); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 504 */ +modulepar_pc__FeatrGrp__18__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_18_T"); +current_location.update_lineno(507); +ttcn3_debugger.breakpoint_entry(507); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 507 */ +modulepar_pc__FeatrGrp__19__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_19_F"); +current_location.update_lineno(510); +ttcn3_debugger.breakpoint_entry(510); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 510 */ +modulepar_pc__FeatrGrp__19__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_19_T"); +current_location.update_lineno(513); +ttcn3_debugger.breakpoint_entry(513); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 513 */ +modulepar_pc__FeatrGrp__1__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_1_F"); +current_location.update_lineno(516); +ttcn3_debugger.breakpoint_entry(516); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 516 */ +modulepar_pc__FeatrGrp__1__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_1_T"); +current_location.update_lineno(519); +ttcn3_debugger.breakpoint_entry(519); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 519 */ +modulepar_pc__FeatrGrp__20__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_20_F"); +current_location.update_lineno(522); +ttcn3_debugger.breakpoint_entry(522); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 522 */ +modulepar_pc__FeatrGrp__20__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_20_T"); +current_location.update_lineno(525); +ttcn3_debugger.breakpoint_entry(525); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 525 */ +modulepar_pc__FeatrGrp__21__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_21_F"); +current_location.update_lineno(528); +ttcn3_debugger.breakpoint_entry(528); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 528 */ +modulepar_pc__FeatrGrp__21__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_21_T"); +current_location.update_lineno(531); +ttcn3_debugger.breakpoint_entry(531); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 531 */ +modulepar_pc__FeatrGrp__22__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_22_F"); +current_location.update_lineno(534); +ttcn3_debugger.breakpoint_entry(534); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 534 */ +modulepar_pc__FeatrGrp__22__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_22_T"); +current_location.update_lineno(537); +ttcn3_debugger.breakpoint_entry(537); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 537 */ +modulepar_pc__FeatrGrp__23__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_23_F"); +current_location.update_lineno(540); +ttcn3_debugger.breakpoint_entry(540); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 540 */ +modulepar_pc__FeatrGrp__23__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_23_T"); +current_location.update_lineno(543); +ttcn3_debugger.breakpoint_entry(543); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 543 */ +modulepar_pc__FeatrGrp__24__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_24_F"); +current_location.update_lineno(546); +ttcn3_debugger.breakpoint_entry(546); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 546 */ +modulepar_pc__FeatrGrp__24__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_24_T"); +current_location.update_lineno(549); +ttcn3_debugger.breakpoint_entry(549); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 549 */ +modulepar_pc__FeatrGrp__25__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_25_F"); +current_location.update_lineno(552); +ttcn3_debugger.breakpoint_entry(552); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 552 */ +modulepar_pc__FeatrGrp__25__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_25_T"); +current_location.update_lineno(555); +ttcn3_debugger.breakpoint_entry(555); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 555 */ +modulepar_pc__FeatrGrp__26__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_26_F"); +current_location.update_lineno(558); +ttcn3_debugger.breakpoint_entry(558); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 558 */ +modulepar_pc__FeatrGrp__26__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_26_T"); +current_location.update_lineno(561); +ttcn3_debugger.breakpoint_entry(561); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 561 */ +modulepar_pc__FeatrGrp__27__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_27_F"); +current_location.update_lineno(564); +ttcn3_debugger.breakpoint_entry(564); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 564 */ +modulepar_pc__FeatrGrp__27__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_27_T"); +current_location.update_lineno(567); +ttcn3_debugger.breakpoint_entry(567); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 567 */ +modulepar_pc__FeatrGrp__28__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_28_F"); +current_location.update_lineno(570); +ttcn3_debugger.breakpoint_entry(570); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 570 */ +modulepar_pc__FeatrGrp__28__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_28_T"); +current_location.update_lineno(573); +ttcn3_debugger.breakpoint_entry(573); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 573 */ +modulepar_pc__FeatrGrp__29__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_29_F"); +current_location.update_lineno(576); +ttcn3_debugger.breakpoint_entry(576); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 576 */ +modulepar_pc__FeatrGrp__29__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_29_T"); +current_location.update_lineno(579); +ttcn3_debugger.breakpoint_entry(579); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 579 */ +modulepar_pc__FeatrGrp__2__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_2_F"); +current_location.update_lineno(582); +ttcn3_debugger.breakpoint_entry(582); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 582 */ +modulepar_pc__FeatrGrp__2__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_2_T"); +current_location.update_lineno(585); +ttcn3_debugger.breakpoint_entry(585); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 585 */ +modulepar_pc__FeatrGrp__30__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_30_F"); +current_location.update_lineno(588); +ttcn3_debugger.breakpoint_entry(588); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 588 */ +modulepar_pc__FeatrGrp__30__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_30_T"); +current_location.update_lineno(591); +ttcn3_debugger.breakpoint_entry(591); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 591 */ +modulepar_pc__FeatrGrp__31__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_31_F"); +current_location.update_lineno(594); +ttcn3_debugger.breakpoint_entry(594); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 594 */ +modulepar_pc__FeatrGrp__31__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_31_T"); +current_location.update_lineno(597); +ttcn3_debugger.breakpoint_entry(597); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 597 */ +modulepar_pc__FeatrGrp__33__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_33_F"); +current_location.update_lineno(601); +ttcn3_debugger.breakpoint_entry(601); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 601 */ +modulepar_pc__FeatrGrp__33__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_33_T"); +current_location.update_lineno(606); +ttcn3_debugger.breakpoint_entry(606); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 606 */ +modulepar_pc__FeatrGrp__34__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_34_F"); +current_location.update_lineno(611); +ttcn3_debugger.breakpoint_entry(611); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 611 */ +modulepar_pc__FeatrGrp__34__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_34_T"); +current_location.update_lineno(616); +ttcn3_debugger.breakpoint_entry(616); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 616 */ +modulepar_pc__FeatrGrp__35__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_35_F"); +current_location.update_lineno(621); +ttcn3_debugger.breakpoint_entry(621); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 621 */ +modulepar_pc__FeatrGrp__35__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_35_T"); +current_location.update_lineno(626); +ttcn3_debugger.breakpoint_entry(626); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 626 */ +modulepar_pc__FeatrGrp__36__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_36_F"); +current_location.update_lineno(631); +ttcn3_debugger.breakpoint_entry(631); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 631 */ +modulepar_pc__FeatrGrp__36__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_36_T"); +current_location.update_lineno(635); +ttcn3_debugger.breakpoint_entry(635); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 635 */ +modulepar_pc__FeatrGrp__37__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_37_F"); +current_location.update_lineno(640); +ttcn3_debugger.breakpoint_entry(640); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 640 */ +modulepar_pc__FeatrGrp__37__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_37_T"); +current_location.update_lineno(645); +ttcn3_debugger.breakpoint_entry(645); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 645 */ +modulepar_pc__FeatrGrp__38__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_38_F"); +current_location.update_lineno(648); +ttcn3_debugger.breakpoint_entry(648); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 648 */ +modulepar_pc__FeatrGrp__38__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_38_T"); +current_location.update_lineno(651); +ttcn3_debugger.breakpoint_entry(651); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 651 */ +modulepar_pc__FeatrGrp__39__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_39_F"); +current_location.update_lineno(654); +ttcn3_debugger.breakpoint_entry(654); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 654 */ +modulepar_pc__FeatrGrp__39__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_39_T"); +current_location.update_lineno(657); +ttcn3_debugger.breakpoint_entry(657); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 657 */ +modulepar_pc__FeatrGrp__3__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_3_F"); +current_location.update_lineno(660); +ttcn3_debugger.breakpoint_entry(660); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 660 */ +modulepar_pc__FeatrGrp__3__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_3_T"); +current_location.update_lineno(663); +ttcn3_debugger.breakpoint_entry(663); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 663 */ +modulepar_pc__FeatrGrp__40__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_40_F"); +current_location.update_lineno(666); +ttcn3_debugger.breakpoint_entry(666); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 666 */ +modulepar_pc__FeatrGrp__40__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_40_T"); +current_location.update_lineno(669); +ttcn3_debugger.breakpoint_entry(669); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 669 */ +modulepar_pc__FeatrGrp__41__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_41_F"); +current_location.update_lineno(672); +ttcn3_debugger.breakpoint_entry(672); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 672 */ +modulepar_pc__FeatrGrp__41__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_41_T"); +current_location.update_lineno(675); +ttcn3_debugger.breakpoint_entry(675); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 675 */ +modulepar_pc__FeatrGrp__42__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_42_F"); +current_location.update_lineno(678); +ttcn3_debugger.breakpoint_entry(678); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 678 */ +modulepar_pc__FeatrGrp__42__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_42_T"); +current_location.update_lineno(681); +ttcn3_debugger.breakpoint_entry(681); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 681 */ +modulepar_pc__FeatrGrp__4__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_4_F"); +current_location.update_lineno(684); +ttcn3_debugger.breakpoint_entry(684); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 684 */ +modulepar_pc__FeatrGrp__4__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_4_T"); +current_location.update_lineno(687); +ttcn3_debugger.breakpoint_entry(687); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 687 */ +modulepar_pc__FeatrGrp__5__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_5_F"); +current_location.update_lineno(690); +ttcn3_debugger.breakpoint_entry(690); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 690 */ +modulepar_pc__FeatrGrp__5__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_5_T"); +current_location.update_lineno(693); +ttcn3_debugger.breakpoint_entry(693); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 693 */ +modulepar_pc__FeatrGrp__6__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_6_F"); +current_location.update_lineno(696); +ttcn3_debugger.breakpoint_entry(696); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 696 */ +modulepar_pc__FeatrGrp__6__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_6_T"); +current_location.update_lineno(699); +ttcn3_debugger.breakpoint_entry(699); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 699 */ +modulepar_pc__FeatrGrp__7__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_7_F"); +current_location.update_lineno(702); +ttcn3_debugger.breakpoint_entry(702); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 702 */ +modulepar_pc__FeatrGrp__7__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_7_T"); +current_location.update_lineno(705); +ttcn3_debugger.breakpoint_entry(705); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 705 */ +modulepar_pc__FeatrGrp__8__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_8_F"); +current_location.update_lineno(708); +ttcn3_debugger.breakpoint_entry(708); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 708 */ +modulepar_pc__FeatrGrp__8__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_8_T"); +current_location.update_lineno(711); +ttcn3_debugger.breakpoint_entry(711); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 711 */ +modulepar_pc__FeatrGrp__9__F = FALSE; +module_object.add_modulepar("pc_FeatrGrp_9_F"); +current_location.update_lineno(714); +ttcn3_debugger.breakpoint_entry(714); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 714 */ +modulepar_pc__FeatrGrp__9__T = FALSE; +module_object.add_modulepar("pc_FeatrGrp_9_T"); +current_location.update_lineno(717); +ttcn3_debugger.breakpoint_entry(717); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 717 */ +modulepar_pc__FullNameNetwork = FALSE; +module_object.add_modulepar("pc_FullNameNetwork"); +current_location.update_lineno(720); +ttcn3_debugger.breakpoint_entry(720); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 720 */ +modulepar_pc__GERAN = FALSE; +module_object.add_modulepar("pc_GERAN"); +current_location.update_lineno(723); +ttcn3_debugger.breakpoint_entry(723); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 723 */ +modulepar_pc__GERAN__2__E__UTRAN__PSHO = FALSE; +module_object.add_modulepar("pc_GERAN_2_E_UTRAN_PSHO"); +current_location.update_lineno(726); +ttcn3_debugger.breakpoint_entry(726); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 726 */ +modulepar_pc__GERAN__2__E__UTRAN__meas = FALSE; +module_object.add_modulepar("pc_GERAN_2_E_UTRAN_meas"); +current_location.update_lineno(729); +ttcn3_debugger.breakpoint_entry(729); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 729 */ +modulepar_pc__GERAN__2__E__UTRAN__measreporting__CCN = FALSE; +module_object.add_modulepar("pc_GERAN_2_E_UTRAN_measreporting_CCN"); +current_location.update_lineno(732); +ttcn3_debugger.breakpoint_entry(732); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 732 */ +modulepar_pc__HO__from__UTRA__to__eFDD = FALSE; +module_object.add_modulepar("pc_HO_from_UTRA_to_eFDD"); +current_location.update_lineno(735); +ttcn3_debugger.breakpoint_entry(735); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 735 */ +modulepar_pc__HO__from__UTRA__to__eTDD = FALSE; +module_object.add_modulepar("pc_HO_from_UTRA_to_eTDD"); +current_location.update_lineno(738); +ttcn3_debugger.breakpoint_entry(738); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 738 */ +modulepar_pc__HRPD = FALSE; +module_object.add_modulepar("pc_HRPD"); +current_location.update_lineno(741); +ttcn3_debugger.breakpoint_entry(741); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 741 */ +modulepar_pc__IMS = FALSE; +module_object.add_modulepar("pc_IMS"); +current_location.update_lineno(744); +ttcn3_debugger.breakpoint_entry(744); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 744 */ +modulepar_pc__IMSI__Detach = FALSE; +module_object.add_modulepar("pc_IMSI_Detach"); +current_location.update_lineno(747); +ttcn3_debugger.breakpoint_entry(747); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 747 */ +modulepar_pc__IMS__APN__default = FALSE; +module_object.add_modulepar("pc_IMS_APN_default"); +current_location.update_lineno(750); +ttcn3_debugger.breakpoint_entry(750); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 750 */ +modulepar_pc__IMS__CS__PS__SRVCC = FALSE; +module_object.add_modulepar("pc_IMS_CS_PS_SRVCC"); +current_location.update_lineno(753); +ttcn3_debugger.breakpoint_entry(753); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 753 */ +modulepar_pc__IMS__CS__PS__SRVCCAlert = FALSE; +module_object.add_modulepar("pc_IMS_CS_PS_SRVCCAlert"); +current_location.update_lineno(756); +ttcn3_debugger.breakpoint_entry(756); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 756 */ +modulepar_pc__IMS__CS__PS__SRVCCMidCall = FALSE; +module_object.add_modulepar("pc_IMS_CS_PS_SRVCCMidCall"); +current_location.update_lineno(759); +ttcn3_debugger.breakpoint_entry(759); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 759 */ +modulepar_pc__IMS__SRVCCAlert = FALSE; +module_object.add_modulepar("pc_IMS_SRVCCAlert"); +current_location.update_lineno(762); +ttcn3_debugger.breakpoint_entry(762); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 762 */ +modulepar_pc__IMS__emergency__call = FALSE; +module_object.add_modulepar("pc_IMS_emergency_call"); +current_location.update_lineno(765); +ttcn3_debugger.breakpoint_entry(765); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 765 */ +modulepar_pc__IPv4 = FALSE; +module_object.add_modulepar("pc_IPv4"); +current_location.update_lineno(768); +ttcn3_debugger.breakpoint_entry(768); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 768 */ +modulepar_pc__IPv6 = FALSE; +module_object.add_modulepar("pc_IPv6"); +current_location.update_lineno(771); +ttcn3_debugger.breakpoint_entry(771); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 771 */ +modulepar_pc__ISR = FALSE; +module_object.add_modulepar("pc_ISR"); +current_location.update_lineno(774); +ttcn3_debugger.breakpoint_entry(774); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 774 */ +modulepar_pc__ImmConnect = FALSE; +module_object.add_modulepar("pc_ImmConnect"); +current_location.update_lineno(777); +ttcn3_debugger.breakpoint_entry(777); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 777 */ +modulepar_pc__InterFreq__ProximityIndication = FALSE; +module_object.add_modulepar("pc_InterFreq_ProximityIndication"); +current_location.update_lineno(780); +ttcn3_debugger.breakpoint_entry(780); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 780 */ +modulepar_pc__IntraFreq__ProximityIndication = FALSE; +module_object.add_modulepar("pc_IntraFreq_ProximityIndication"); +current_location.update_lineno(783); +ttcn3_debugger.breakpoint_entry(783); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 783 */ +modulepar_pc__KeepEpsBearerParametersAfterNormalDetach = FALSE; +module_object.add_modulepar("pc_KeepEpsBearerParametersAfterNormalDetach"); +current_location.update_lineno(788); +ttcn3_debugger.breakpoint_entry(788); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 788 */ +modulepar_pc__LAP = FALSE; +module_object.add_modulepar("pc_LAP"); +current_location.update_lineno(791); +ttcn3_debugger.breakpoint_entry(791); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 791 */ +modulepar_pc__LAP__override = FALSE; +module_object.add_modulepar("pc_LAP_override"); +current_location.update_lineno(794); +ttcn3_debugger.breakpoint_entry(794); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 794 */ +modulepar_pc__LocalTimeZone = FALSE; +module_object.add_modulepar("pc_LocalTimeZone"); +current_location.update_lineno(797); +ttcn3_debugger.breakpoint_entry(797); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 797 */ +modulepar_pc__LoggedMeasurementsIdle = FALSE; +module_object.add_modulepar("pc_LoggedMeasurementsIdle"); +current_location.update_lineno(800); +ttcn3_debugger.breakpoint_entry(800); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 800 */ +modulepar_pc__Manual__CSG__Selection = FALSE; +module_object.add_modulepar("pc_Manual_CSG_Selection"); +current_location.update_lineno(803); +ttcn3_debugger.breakpoint_entry(803); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 803 */ +modulepar_pc__Multiple__PDN = FALSE; +module_object.add_modulepar("pc_Multiple_PDN"); +current_location.update_lineno(806); +ttcn3_debugger.breakpoint_entry(806); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 806 */ +modulepar_pc__NG114__v1__0 = FALSE; +module_object.add_modulepar("pc_NG114_v1_0"); +current_location.update_lineno(809); +ttcn3_debugger.breakpoint_entry(809); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 809 */ +modulepar_pc__NG114__v2__0 = FALSE; +module_object.add_modulepar("pc_NG114_v2_0"); +current_location.update_lineno(812); +ttcn3_debugger.breakpoint_entry(812); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 812 */ +modulepar_pc__NG__RAN__NR = FALSE; +module_object.add_modulepar("pc_NG_RAN_NR"); +current_location.update_lineno(815); +ttcn3_debugger.breakpoint_entry(815); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 815 */ +modulepar_pc__NR__5GC__EmergencyServices = FALSE; +module_object.add_modulepar("pc_NR_5GC_EmergencyServices"); +current_location.update_lineno(818); +ttcn3_debugger.breakpoint_entry(818); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 818 */ +modulepar_pc__No__USIM__TestExecution = FALSE; +module_object.add_modulepar("pc_No_USIM_TestExecution"); +current_location.update_lineno(821); +ttcn3_debugger.breakpoint_entry(821); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 821 */ +modulepar_pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception = FALSE; +module_object.add_modulepar("pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception"); +current_location.update_lineno(825); +ttcn3_debugger.breakpoint_entry(825); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 825 */ +modulepar_pc__PLMN__Manual__Mode__Exception = FALSE; +module_object.add_modulepar("pc_PLMN_Manual_Mode_Exception"); +current_location.update_lineno(828); +ttcn3_debugger.breakpoint_entry(828); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 828 */ +modulepar_pc__PS = FALSE; +module_object.add_modulepar("pc_PS"); +current_location.update_lineno(831); +ttcn3_debugger.breakpoint_entry(831); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 831 */ +modulepar_pc__PS__data__centric = FALSE; +module_object.add_modulepar("pc_PS_data_centric"); +current_location.update_lineno(834); +ttcn3_debugger.breakpoint_entry(834); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 834 */ +modulepar_pc__PS__voice__centric = FALSE; +module_object.add_modulepar("pc_PS_voice_centric"); +current_location.update_lineno(837); +ttcn3_debugger.breakpoint_entry(837); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 837 */ +modulepar_pc__PWS__UpperLayer = FALSE; +module_object.add_modulepar("pc_PWS_UpperLayer"); +current_location.update_lineno(840); +ttcn3_debugger.breakpoint_entry(840); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 840 */ +modulepar_pc__ProvideDST__inUse = FALSE; +module_object.add_modulepar("pc_ProvideDST_inUse"); +current_location.update_lineno(843); +ttcn3_debugger.breakpoint_entry(843); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 843 */ +modulepar_pc__Provide__IMS__APN = FALSE; +module_object.add_modulepar("pc_Provide_IMS_APN"); +current_location.update_lineno(846); +ttcn3_debugger.breakpoint_entry(846); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 846 */ +modulepar_pc__Provide__IMS__as__second__APN = FALSE; +module_object.add_modulepar("pc_Provide_IMS_as_second_APN"); +current_location.update_lineno(849); +ttcn3_debugger.breakpoint_entry(849); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 849 */ +modulepar_pc__Provide__Internet__as__second__APN = FALSE; +module_object.add_modulepar("pc_Provide_Internet_as_second_APN"); +current_location.update_lineno(852); +ttcn3_debugger.breakpoint_entry(852); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 852 */ +modulepar_pc__RLF__ReportForInterRAT__MRO = FALSE; +module_object.add_modulepar("pc_RLF_ReportForInterRAT_MRO"); +current_location.update_lineno(855); +ttcn3_debugger.breakpoint_entry(855); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 855 */ +modulepar_pc__ROHC__profile0x0001 = FALSE; +module_object.add_modulepar("pc_ROHC_profile0x0001"); +current_location.update_lineno(858); +ttcn3_debugger.breakpoint_entry(858); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 858 */ +modulepar_pc__ROHC__profile0x0002 = FALSE; +module_object.add_modulepar("pc_ROHC_profile0x0002"); +current_location.update_lineno(861); +ttcn3_debugger.breakpoint_entry(861); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 861 */ +modulepar_pc__ROHC__profile0x0003 = FALSE; +module_object.add_modulepar("pc_ROHC_profile0x0003"); +current_location.update_lineno(864); +ttcn3_debugger.breakpoint_entry(864); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 864 */ +modulepar_pc__ROHC__profile0x0004 = FALSE; +module_object.add_modulepar("pc_ROHC_profile0x0004"); +current_location.update_lineno(867); +ttcn3_debugger.breakpoint_entry(867); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 867 */ +modulepar_pc__ROHC__profile0x0006 = FALSE; +module_object.add_modulepar("pc_ROHC_profile0x0006"); +current_location.update_lineno(870); +ttcn3_debugger.breakpoint_entry(870); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 870 */ +modulepar_pc__ROHC__profile0x0101 = FALSE; +module_object.add_modulepar("pc_ROHC_profile0x0101"); +current_location.update_lineno(873); +ttcn3_debugger.breakpoint_entry(873); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 873 */ +modulepar_pc__ROHC__profile0x0102 = FALSE; +module_object.add_modulepar("pc_ROHC_profile0x0102"); +current_location.update_lineno(876); +ttcn3_debugger.breakpoint_entry(876); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 876 */ +modulepar_pc__ROHC__profile0x0103 = FALSE; +module_object.add_modulepar("pc_ROHC_profile0x0103"); +current_location.update_lineno(879); +ttcn3_debugger.breakpoint_entry(879); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 879 */ +modulepar_pc__ROHC__profile0x0104 = FALSE; +module_object.add_modulepar("pc_ROHC_profile0x0104"); +current_location.update_lineno(882); +ttcn3_debugger.breakpoint_entry(882); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 882 */ +modulepar_pc__Rach__Report = FALSE; +module_object.add_modulepar("pc_Rach_Report"); +current_location.update_lineno(885); +ttcn3_debugger.breakpoint_entry(885); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 885 */ +modulepar_pc__Re__Attach__AfterDetachColl = FALSE; +module_object.add_modulepar("pc_Re_Attach_AfterDetachColl"); +current_location.update_lineno(888); +ttcn3_debugger.breakpoint_entry(888); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 888 */ +modulepar_pc__RequestIPv4HAAddress__DuringAttach = FALSE; +module_object.add_modulepar("pc_RequestIPv4HAAddress_DuringAttach"); +current_location.update_lineno(891); +ttcn3_debugger.breakpoint_entry(891); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 891 */ +modulepar_pc__RequestIPv6HAAddress__DuringAttach = FALSE; +module_object.add_modulepar("pc_RequestIPv6HAAddress_DuringAttach"); +current_location.update_lineno(894); +ttcn3_debugger.breakpoint_entry(894); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 894 */ +modulepar_pc__SI__Neighbour__UMTS__Autonomous__Gaps = FALSE; +module_object.add_modulepar("pc_SI_Neighbour_UMTS_Autonomous_Gaps"); +current_location.update_lineno(897); +ttcn3_debugger.breakpoint_entry(897); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 897 */ +modulepar_pc__SI__Neighbour__interFreq__Autonomous__Gaps = FALSE; +module_object.add_modulepar("pc_SI_Neighbour_interFreq_Autonomous_Gaps"); +current_location.update_lineno(901); +ttcn3_debugger.breakpoint_entry(901); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 901 */ +modulepar_pc__SI__Neighbour__intraFreq__Autonomous__Gaps = FALSE; +module_object.add_modulepar("pc_SI_Neighbour_intraFreq_Autonomous_Gaps"); +current_location.update_lineno(905); +ttcn3_debugger.breakpoint_entry(905); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 905 */ +modulepar_pc__SMS__SGs = FALSE; +module_object.add_modulepar("pc_SMS_SGs"); +current_location.update_lineno(909); +ttcn3_debugger.breakpoint_entry(909); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 909 */ +modulepar_pc__SMS__SGs__MO = FALSE; +module_object.add_modulepar("pc_SMS_SGs_MO"); +current_location.update_lineno(912); +ttcn3_debugger.breakpoint_entry(912); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 912 */ +modulepar_pc__SMS__SGs__MT = FALSE; +module_object.add_modulepar("pc_SMS_SGs_MT"); +current_location.update_lineno(915); +ttcn3_debugger.breakpoint_entry(915); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 915 */ +modulepar_pc__SMS__SGs__Multi__MO = FALSE; +module_object.add_modulepar("pc_SMS_SGs_Multi_MO"); +current_location.update_lineno(918); +ttcn3_debugger.breakpoint_entry(918); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 918 */ +modulepar_pc__SRVCC__GERAN__UTRAN = FALSE; +module_object.add_modulepar("pc_SRVCC_GERAN_UTRAN"); +current_location.update_lineno(921); +ttcn3_debugger.breakpoint_entry(921); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 921 */ +modulepar_pc__Semi__Persistence__Scheduling = FALSE; +module_object.add_modulepar("pc_Semi_Persistence_Scheduling"); +current_location.update_lineno(924); +ttcn3_debugger.breakpoint_entry(924); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 924 */ +modulepar_pc__ShortNameNetwork = FALSE; +module_object.add_modulepar("pc_ShortNameNetwork"); +current_location.update_lineno(927); +ttcn3_debugger.breakpoint_entry(927); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 927 */ +modulepar_pc__Speech = FALSE; +module_object.add_modulepar("pc_Speech"); +current_location.update_lineno(930); +ttcn3_debugger.breakpoint_entry(930); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 930 */ +modulepar_pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN = FALSE; +module_object.add_modulepar("pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN"); +current_location.update_lineno(934); +ttcn3_debugger.breakpoint_entry(934); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 934 */ +modulepar_pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN = FALSE; +module_object.add_modulepar("pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN"); +current_location.update_lineno(938); +ttcn3_debugger.breakpoint_entry(938); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 938 */ +modulepar_pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN = FALSE; +module_object.add_modulepar("pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN"); +current_location.update_lineno(942); +ttcn3_debugger.breakpoint_entry(942); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 942 */ +modulepar_pc__StandaloneGNSS__Location = FALSE; +module_object.add_modulepar("pc_StandaloneGNSS_Location"); +current_location.update_lineno(945); +ttcn3_debugger.breakpoint_entry(945); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 945 */ +modulepar_pc__SupportOpModeA = FALSE; +module_object.add_modulepar("pc_SupportOpModeA"); +current_location.update_lineno(948); +ttcn3_debugger.breakpoint_entry(948); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 948 */ +modulepar_pc__SwitchOnOff = FALSE; +module_object.add_modulepar("pc_SwitchOnOff"); +current_location.update_lineno(951); +ttcn3_debugger.breakpoint_entry(951); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 951 */ +modulepar_pc__TAU__connected__in__IMS = FALSE; +module_object.add_modulepar("pc_TAU_connected_in_IMS"); +current_location.update_lineno(954); +ttcn3_debugger.breakpoint_entry(954); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 954 */ +modulepar_pc__TAU__idle__in__IMS = FALSE; +module_object.add_modulepar("pc_TAU_idle_in_IMS"); +current_location.update_lineno(957); +ttcn3_debugger.breakpoint_entry(957); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 957 */ +modulepar_pc__TDD__HCR = FALSE; +module_object.add_modulepar("pc_TDD_HCR"); +current_location.update_lineno(960); +ttcn3_debugger.breakpoint_entry(960); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 960 */ +modulepar_pc__TDD__LCR = FALSE; +module_object.add_modulepar("pc_TDD_LCR"); +current_location.update_lineno(963); +ttcn3_debugger.breakpoint_entry(963); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 963 */ +modulepar_pc__TDD__VHCR = FALSE; +module_object.add_modulepar("pc_TDD_VHCR"); +current_location.update_lineno(966); +ttcn3_debugger.breakpoint_entry(966); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 966 */ +modulepar_pc__TTI__Bundling = FALSE; +module_object.add_modulepar("pc_TTI_Bundling"); +current_location.update_lineno(969); +ttcn3_debugger.breakpoint_entry(969); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 969 */ +modulepar_pc__TestModeforCSGproximity = FALSE; +module_object.add_modulepar("pc_TestModeforCSGproximity"); +current_location.update_lineno(972); +ttcn3_debugger.breakpoint_entry(972); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 972 */ +modulepar_pc__UE__supports__user__initiated__PDN__disconnect = FALSE; +module_object.add_modulepar("pc_UE_supports_user_initiated_PDN_disconnect"); +current_location.update_lineno(976); +ttcn3_debugger.breakpoint_entry(976); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 976 */ +modulepar_pc__UL__MIMO = FALSE; +module_object.add_modulepar("pc_UL_MIMO"); +current_location.update_lineno(979); +ttcn3_debugger.breakpoint_entry(979); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 979 */ +modulepar_pc__UMI__ProcNeeded__DuringCSFB = FALSE; +module_object.add_modulepar("pc_UMI_ProcNeeded_DuringCSFB"); +current_location.update_lineno(982); +ttcn3_debugger.breakpoint_entry(982); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 982 */ +modulepar_pc__UMTS__GSM = FALSE; +module_object.add_modulepar("pc_UMTS_GSM"); +current_location.update_lineno(985); +ttcn3_debugger.breakpoint_entry(985); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 985 */ +modulepar_pc__USIM__Removal = FALSE; +module_object.add_modulepar("pc_USIM_Removal"); +current_location.update_lineno(988); +ttcn3_debugger.breakpoint_entry(988); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 988 */ +modulepar_pc__UTRA = FALSE; +module_object.add_modulepar("pc_UTRA"); +current_location.update_lineno(991); +ttcn3_debugger.breakpoint_entry(991); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 991 */ +modulepar_pc__UTRAN__ANR = FALSE; +module_object.add_modulepar("pc_UTRAN_ANR"); +current_location.update_lineno(994); +ttcn3_debugger.breakpoint_entry(994); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 994 */ +modulepar_pc__UTRAN__ProximityIndication = FALSE; +module_object.add_modulepar("pc_UTRAN_ProximityIndication"); +current_location.update_lineno(997); +ttcn3_debugger.breakpoint_entry(997); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 997 */ +modulepar_pc__UTRA__FeatrGrp__1 = FALSE; +module_object.add_modulepar("pc_UTRA_FeatrGrp_1"); +current_location.update_lineno(1000); +ttcn3_debugger.breakpoint_entry(1000); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1000 */ +modulepar_pc__UTRA__FeatrGrp__2 = FALSE; +module_object.add_modulepar("pc_UTRA_FeatrGrp_2"); +current_location.update_lineno(1003); +ttcn3_debugger.breakpoint_entry(1003); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1003 */ +modulepar_pc__UTRA__FeatrGrp__3 = FALSE; +module_object.add_modulepar("pc_UTRA_FeatrGrp_3"); +current_location.update_lineno(1006); +ttcn3_debugger.breakpoint_entry(1006); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1006 */ +modulepar_pc__UTRA__FeatrGrp__4 = FALSE; +module_object.add_modulepar("pc_UTRA_FeatrGrp_4"); +current_location.update_lineno(1009); +ttcn3_debugger.breakpoint_entry(1009); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1009 */ +modulepar_pc__UeAssistedAgps = FALSE; +module_object.add_modulepar("pc_UeAssistedAgps"); +current_location.update_lineno(1012); +ttcn3_debugger.breakpoint_entry(1012); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1012 */ +modulepar_pc__UeBasedAgps = FALSE; +module_object.add_modulepar("pc_UeBasedAgps"); +current_location.update_lineno(1015); +ttcn3_debugger.breakpoint_entry(1015); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1015 */ +modulepar_pc__UniversalAndLocalTimeZone = FALSE; +module_object.add_modulepar("pc_UniversalAndLocalTimeZone"); +current_location.update_lineno(1018); +ttcn3_debugger.breakpoint_entry(1018); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1018 */ +modulepar_pc__UpdateUE__LocationInformation = FALSE; +module_object.add_modulepar("pc_UpdateUE_LocationInformation"); +current_location.update_lineno(1021); +ttcn3_debugger.breakpoint_entry(1021); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1021 */ +modulepar_pc__UserInitiatedPLMN__Reselection = FALSE; +module_object.add_modulepar("pc_UserInitiatedPLMN_Reselection"); +current_location.update_lineno(1024); +ttcn3_debugger.breakpoint_entry(1024); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1024 */ +modulepar_pc__VoLTE = FALSE; +module_object.add_modulepar("pc_VoLTE"); +current_location.update_lineno(1027); +ttcn3_debugger.breakpoint_entry(1027); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1027 */ +modulepar_pc__WLAN__Meas__Imm__MDT = FALSE; +module_object.add_modulepar("pc_WLAN_Meas_Imm_MDT"); +current_location.update_lineno(1030); +ttcn3_debugger.breakpoint_entry(1030); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1030 */ +modulepar_pc__WLAN__Meas__logged__MDT = FALSE; +module_object.add_modulepar("pc_WLAN_Meas_logged_MDT"); +current_location.update_lineno(1033); +ttcn3_debugger.breakpoint_entry(1033); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1033 */ +modulepar_pc__WLAN__voice = FALSE; +module_object.add_modulepar("pc_WLAN_voice"); +current_location.update_lineno(1036); +ttcn3_debugger.breakpoint_entry(1036); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1036 */ +modulepar_pc__XCAP__only__APN = FALSE; +module_object.add_modulepar("pc_XCAP_only_APN"); +current_location.update_lineno(1039); +ttcn3_debugger.breakpoint_entry(1039); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1039 */ +modulepar_pc__XCAP__over__Internet__APN = FALSE; +module_object.add_modulepar("pc_XCAP_over_Internet_APN"); +current_location.update_lineno(1042); +ttcn3_debugger.breakpoint_entry(1042); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1042 */ +modulepar_pc__ZUC = FALSE; +module_object.add_modulepar("pc_ZUC"); +current_location.update_lineno(1045); +ttcn3_debugger.breakpoint_entry(1045); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1045 */ +modulepar_pc__eCall__Test__Call = FALSE; +module_object.add_modulepar("pc_eCall_Test_Call"); +current_location.update_lineno(1048); +ttcn3_debugger.breakpoint_entry(1048); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1048 */ +modulepar_pc__eFDD = FALSE; +module_object.add_modulepar("pc_eFDD"); +current_location.update_lineno(1051); +ttcn3_debugger.breakpoint_entry(1051); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1051 */ +modulepar_pc__eFDD__MultiBand = FALSE; +module_object.add_modulepar("pc_eFDD_MultiBand"); +current_location.update_lineno(1054); +ttcn3_debugger.breakpoint_entry(1054); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1054 */ +modulepar_pc__eMBMS = FALSE; +module_object.add_modulepar("pc_eMBMS"); +current_location.update_lineno(1057); +ttcn3_debugger.breakpoint_entry(1057); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1057 */ +modulepar_pc__eMBMS__SC = FALSE; +module_object.add_modulepar("pc_eMBMS_SC"); +current_location.update_lineno(1060); +ttcn3_debugger.breakpoint_entry(1060); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1060 */ +modulepar_pc__eMinimumPeriodicSearchTimer = FALSE; +module_object.add_modulepar("pc_eMinimumPeriodicSearchTimer"); +current_location.update_lineno(1063); +ttcn3_debugger.breakpoint_entry(1063); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1063 */ +modulepar_pc__eRedirectionUTRA = FALSE; +module_object.add_modulepar("pc_eRedirectionUTRA"); +current_location.update_lineno(1066); +ttcn3_debugger.breakpoint_entry(1066); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1066 */ +modulepar_pc__eTDD = FALSE; +module_object.add_modulepar("pc_eTDD"); +current_location.update_lineno(1069); +ttcn3_debugger.breakpoint_entry(1069); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1069 */ +modulepar_pc__eTDD__MultiBand = FALSE; +module_object.add_modulepar("pc_eTDD_MultiBand"); +current_location.update_lineno(1072); +ttcn3_debugger.breakpoint_entry(1072); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1072 */ +modulepar_pc__eWLAN = FALSE; +module_object.add_modulepar("pc_eWLAN"); +current_location.update_lineno(1075); +ttcn3_debugger.breakpoint_entry(1075); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1075 */ +modulepar_pc__multipleTimingAdvance = FALSE; +module_object.add_modulepar("pc_multipleTimingAdvance"); +current_location.update_lineno(1078); +ttcn3_debugger.breakpoint_entry(1078); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1078 */ +modulepar_pc__ue__CategoryDL__0 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_0"); +current_location.update_lineno(1081); +ttcn3_debugger.breakpoint_entry(1081); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1081 */ +modulepar_pc__ue__CategoryDL__10 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_10"); +current_location.update_lineno(1084); +ttcn3_debugger.breakpoint_entry(1084); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1084 */ +modulepar_pc__ue__CategoryDL__11 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_11"); +current_location.update_lineno(1087); +ttcn3_debugger.breakpoint_entry(1087); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1087 */ +modulepar_pc__ue__CategoryDL__12 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_12"); +current_location.update_lineno(1090); +ttcn3_debugger.breakpoint_entry(1090); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1090 */ +modulepar_pc__ue__CategoryDL__13 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_13"); +current_location.update_lineno(1093); +ttcn3_debugger.breakpoint_entry(1093); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1093 */ +modulepar_pc__ue__CategoryDL__14 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_14"); +current_location.update_lineno(1096); +ttcn3_debugger.breakpoint_entry(1096); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1096 */ +modulepar_pc__ue__CategoryDL__15 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_15"); +current_location.update_lineno(1099); +ttcn3_debugger.breakpoint_entry(1099); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1099 */ +modulepar_pc__ue__CategoryDL__16 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_16"); +current_location.update_lineno(1102); +ttcn3_debugger.breakpoint_entry(1102); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1102 */ +modulepar_pc__ue__CategoryDL__17 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_17"); +current_location.update_lineno(1105); +ttcn3_debugger.breakpoint_entry(1105); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1105 */ +modulepar_pc__ue__CategoryDL__18 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_18"); +current_location.update_lineno(1108); +ttcn3_debugger.breakpoint_entry(1108); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1108 */ +modulepar_pc__ue__CategoryDL__19 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_19"); +current_location.update_lineno(1111); +ttcn3_debugger.breakpoint_entry(1111); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1111 */ +modulepar_pc__ue__CategoryDL__1bis = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_1bis"); +current_location.update_lineno(1114); +ttcn3_debugger.breakpoint_entry(1114); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1114 */ +modulepar_pc__ue__CategoryDL__20 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_20"); +current_location.update_lineno(1117); +ttcn3_debugger.breakpoint_entry(1117); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1117 */ +modulepar_pc__ue__CategoryDL__21 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_21"); +current_location.update_lineno(1120); +ttcn3_debugger.breakpoint_entry(1120); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1120 */ +modulepar_pc__ue__CategoryDL__22 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_22"); +current_location.update_lineno(1123); +ttcn3_debugger.breakpoint_entry(1123); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1123 */ +modulepar_pc__ue__CategoryDL__23 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_23"); +current_location.update_lineno(1126); +ttcn3_debugger.breakpoint_entry(1126); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1126 */ +modulepar_pc__ue__CategoryDL__24 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_24"); +current_location.update_lineno(1129); +ttcn3_debugger.breakpoint_entry(1129); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1129 */ +modulepar_pc__ue__CategoryDL__25 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_25"); +current_location.update_lineno(1132); +ttcn3_debugger.breakpoint_entry(1132); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1132 */ +modulepar_pc__ue__CategoryDL__26 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_26"); +current_location.update_lineno(1135); +ttcn3_debugger.breakpoint_entry(1135); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1135 */ +modulepar_pc__ue__CategoryDL__4 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_4"); +current_location.update_lineno(1138); +ttcn3_debugger.breakpoint_entry(1138); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1138 */ +modulepar_pc__ue__CategoryDL__6 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_6"); +current_location.update_lineno(1141); +ttcn3_debugger.breakpoint_entry(1141); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1141 */ +modulepar_pc__ue__CategoryDL__7 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_7"); +current_location.update_lineno(1144); +ttcn3_debugger.breakpoint_entry(1144); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1144 */ +modulepar_pc__ue__CategoryDL__9 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_9"); +current_location.update_lineno(1147); +ttcn3_debugger.breakpoint_entry(1147); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1147 */ +modulepar_pc__ue__CategoryDL__M1 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_M1"); +current_location.update_lineno(1150); +ttcn3_debugger.breakpoint_entry(1150); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1150 */ +modulepar_pc__ue__CategoryDL__M2 = FALSE; +module_object.add_modulepar("pc_ue_CategoryDL_M2"); +current_location.update_lineno(1153); +ttcn3_debugger.breakpoint_entry(1153); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1153 */ +modulepar_pc__ue__CategoryUL__0 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_0"); +current_location.update_lineno(1156); +ttcn3_debugger.breakpoint_entry(1156); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1156 */ +modulepar_pc__ue__CategoryUL__13 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_13"); +current_location.update_lineno(1159); +ttcn3_debugger.breakpoint_entry(1159); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1159 */ +modulepar_pc__ue__CategoryUL__14 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_14"); +current_location.update_lineno(1162); +ttcn3_debugger.breakpoint_entry(1162); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1162 */ +modulepar_pc__ue__CategoryUL__15 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_15"); +current_location.update_lineno(1165); +ttcn3_debugger.breakpoint_entry(1165); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1165 */ +modulepar_pc__ue__CategoryUL__16 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_16"); +current_location.update_lineno(1168); +ttcn3_debugger.breakpoint_entry(1168); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1168 */ +modulepar_pc__ue__CategoryUL__17 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_17"); +current_location.update_lineno(1171); +ttcn3_debugger.breakpoint_entry(1171); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1171 */ +modulepar_pc__ue__CategoryUL__18 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_18"); +current_location.update_lineno(1174); +ttcn3_debugger.breakpoint_entry(1174); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1174 */ +modulepar_pc__ue__CategoryUL__19 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_19"); +current_location.update_lineno(1177); +ttcn3_debugger.breakpoint_entry(1177); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1177 */ +modulepar_pc__ue__CategoryUL__1bis = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_1bis"); +current_location.update_lineno(1180); +ttcn3_debugger.breakpoint_entry(1180); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1180 */ +modulepar_pc__ue__CategoryUL__20 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_20"); +current_location.update_lineno(1183); +ttcn3_debugger.breakpoint_entry(1183); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1183 */ +modulepar_pc__ue__CategoryUL__21 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_21"); +current_location.update_lineno(1186); +ttcn3_debugger.breakpoint_entry(1186); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1186 */ +modulepar_pc__ue__CategoryUL__22 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_22"); +current_location.update_lineno(1189); +ttcn3_debugger.breakpoint_entry(1189); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1189 */ +modulepar_pc__ue__CategoryUL__23 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_23"); +current_location.update_lineno(1192); +ttcn3_debugger.breakpoint_entry(1192); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1192 */ +modulepar_pc__ue__CategoryUL__24 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_24"); +current_location.update_lineno(1195); +ttcn3_debugger.breakpoint_entry(1195); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1195 */ +modulepar_pc__ue__CategoryUL__25 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_25"); +current_location.update_lineno(1198); +ttcn3_debugger.breakpoint_entry(1198); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1198 */ +modulepar_pc__ue__CategoryUL__26 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_26"); +current_location.update_lineno(1201); +ttcn3_debugger.breakpoint_entry(1201); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1201 */ +modulepar_pc__ue__CategoryUL__3 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_3"); +current_location.update_lineno(1204); +ttcn3_debugger.breakpoint_entry(1204); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1204 */ +modulepar_pc__ue__CategoryUL__5 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_5"); +current_location.update_lineno(1207); +ttcn3_debugger.breakpoint_entry(1207); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1207 */ +modulepar_pc__ue__CategoryUL__7 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_7"); +current_location.update_lineno(1210); +ttcn3_debugger.breakpoint_entry(1210); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1210 */ +modulepar_pc__ue__CategoryUL__8 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_8"); +current_location.update_lineno(1213); +ttcn3_debugger.breakpoint_entry(1213); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1213 */ +modulepar_pc__ue__CategoryUL__M1 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_M1"); +current_location.update_lineno(1216); +ttcn3_debugger.breakpoint_entry(1216); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1216 */ +modulepar_pc__ue__CategoryUL__M2 = FALSE; +module_object.add_modulepar("pc_ue_CategoryUL_M2"); +current_location.update_lineno(1219); +ttcn3_debugger.breakpoint_entry(1219); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1219 */ +modulepar_pc__ue__Category__1 = FALSE; +module_object.add_modulepar("pc_ue_Category_1"); +current_location.update_lineno(1222); +ttcn3_debugger.breakpoint_entry(1222); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1222 */ +modulepar_pc__ue__Category__10 = FALSE; +module_object.add_modulepar("pc_ue_Category_10"); +current_location.update_lineno(1225); +ttcn3_debugger.breakpoint_entry(1225); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1225 */ +modulepar_pc__ue__Category__11 = FALSE; +module_object.add_modulepar("pc_ue_Category_11"); +current_location.update_lineno(1228); +ttcn3_debugger.breakpoint_entry(1228); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1228 */ +modulepar_pc__ue__Category__12 = FALSE; +module_object.add_modulepar("pc_ue_Category_12"); +current_location.update_lineno(1231); +ttcn3_debugger.breakpoint_entry(1231); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1231 */ +modulepar_pc__ue__Category__2 = FALSE; +module_object.add_modulepar("pc_ue_Category_2"); +current_location.update_lineno(1234); +ttcn3_debugger.breakpoint_entry(1234); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1234 */ +modulepar_pc__ue__Category__3 = FALSE; +module_object.add_modulepar("pc_ue_Category_3"); +current_location.update_lineno(1237); +ttcn3_debugger.breakpoint_entry(1237); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1237 */ +modulepar_pc__ue__Category__4 = FALSE; +module_object.add_modulepar("pc_ue_Category_4"); +current_location.update_lineno(1240); +ttcn3_debugger.breakpoint_entry(1240); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1240 */ +modulepar_pc__ue__Category__5 = FALSE; +module_object.add_modulepar("pc_ue_Category_5"); +current_location.update_lineno(1243); +ttcn3_debugger.breakpoint_entry(1243); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1243 */ +modulepar_pc__ue__Category__6 = FALSE; +module_object.add_modulepar("pc_ue_Category_6"); +current_location.update_lineno(1246); +ttcn3_debugger.breakpoint_entry(1246); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1246 */ +modulepar_pc__ue__Category__7 = FALSE; +module_object.add_modulepar("pc_ue_Category_7"); +current_location.update_lineno(1249); +ttcn3_debugger.breakpoint_entry(1249); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1249 */ +modulepar_pc__ue__Category__8 = FALSE; +module_object.add_modulepar("pc_ue_Category_8"); +current_location.update_lineno(1252); +ttcn3_debugger.breakpoint_entry(1252); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1252 */ +modulepar_pc__ue__Category__9 = FALSE; +module_object.add_modulepar("pc_ue_Category_9"); +current_location.update_lineno(1255); +ttcn3_debugger.breakpoint_entry(1255); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1255 */ +modulepar_pc__voiceOverNR = FALSE; +module_object.add_modulepar("pc_voiceOverNR"); +current_location.update_lineno(1258); +ttcn3_debugger.breakpoint_entry(1258); +/* ./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn, line 1258 */ +modulepar_pc__voice__PS__1__CS__2 = FALSE; +module_object.add_modulepar("pc_voice_PS_1_CS_2"); +} + +static void post_init_module() +{ +TTCN_Location current_location("./ttcn/Ats_NG_NAS/../Lib3GPP/PicsPixit/Parameters.ttcn", 0, TTCN_Location::LOCATION_UNKNOWN, "Parameters"); +NAS__CommonTypeDefs::module_object.post_init_module(); +} + +static boolean set_module_param(Module_Param& param) +{ +const char* const par_name = param.get_id()->get_current_name(); +if (!strcmp(par_name, "pc_APN_Default_Configuration")) { +modulepar_pc__APN__Default__Configuration.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_APN_ID_Ethernet")) { +modulepar_pc__APN__ID__Ethernet.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_APN_ID_IMS")) { +modulepar_pc__APN__ID__IMS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_APN_ID_Internet")) { +modulepar_pc__APN__ID__Internet.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_APN_ID_MIOT")) { +modulepar_pc__APN__ID__MIOT.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_APN_ID_URLLC")) { +modulepar_pc__APN__ID__URLLC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_APN_ID_V2X")) { +modulepar_pc__APN__ID__V2X.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_AccessPointName")) { +modulepar_px__AccessPointName.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_AquireGNSS_MaxTime")) { +modulepar_px__AquireGNSS__MaxTime.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_AttachTypeTested")) { +modulepar_px__AttachTypeTested.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_AuthAMF")) { +modulepar_px__AuthAMF.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_AuthK")) { +modulepar_px__AuthK.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_EllipsoidPointWithAltitude")) { +modulepar_px__EllipsoidPointWithAltitude.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_EmergencyCallNumber")) { +modulepar_px__EmergencyCallNumber.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_FDD_OperationBand")) { +modulepar_px__FDD__OperationBand.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_HorizontalVelocity")) { +modulepar_px__HorizontalVelocity.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IMEISV_Def")) { +modulepar_px__IMEISV__Def.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IMEI_Def")) { +modulepar_px__IMEI__Def.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IMSI_Def")) { +modulepar_px__IMSI__Def.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IMSI_Diff")) { +modulepar_px__IMSI__Diff.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IP_MTU_Size")) { +modulepar_px__IP__MTU__Size.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address1_NW")) { +modulepar_px__IPv4__Address1__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address1_RemoteUE")) { +modulepar_px__IPv4__Address1__RemoteUE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address1_UE")) { +modulepar_px__IPv4__Address1__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address2_NW")) { +modulepar_px__IPv4__Address2__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address2_RemoteUE")) { +modulepar_px__IPv4__Address2__RemoteUE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address2_UE")) { +modulepar_px__IPv4__Address2__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address2a_UE")) { +modulepar_px__IPv4__Address2a__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address3_NW")) { +modulepar_px__IPv4__Address3__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address3_RemoteUE")) { +modulepar_px__IPv4__Address3__RemoteUE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address3_UE")) { +modulepar_px__IPv4__Address3__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address4_NW")) { +modulepar_px__IPv4__Address4__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address4_UE")) { +modulepar_px__IPv4__Address4__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address5_NW")) { +modulepar_px__IPv4__Address5__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address5_UE")) { +modulepar_px__IPv4__Address5__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address6_NW")) { +modulepar_px__IPv4__Address6__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address6_UE")) { +modulepar_px__IPv4__Address6__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv4_Address_HomeAgent")) { +modulepar_px__IPv4__Address__HomeAgent.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address1_NW")) { +modulepar_px__IPv6__Address1__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address1_RemoteUE")) { +modulepar_px__IPv6__Address1__RemoteUE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address1_UE")) { +modulepar_px__IPv6__Address1__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address2_NW")) { +modulepar_px__IPv6__Address2__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address2_RemoteUE")) { +modulepar_px__IPv6__Address2__RemoteUE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address2_UE")) { +modulepar_px__IPv6__Address2__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address2a_UE")) { +modulepar_px__IPv6__Address2a__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address3_NW")) { +modulepar_px__IPv6__Address3__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address3_RemoteUE")) { +modulepar_px__IPv6__Address3__RemoteUE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address3_UE")) { +modulepar_px__IPv6__Address3__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address4_NW")) { +modulepar_px__IPv6__Address4__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address4_UE")) { +modulepar_px__IPv6__Address4__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address5_NW")) { +modulepar_px__IPv6__Address5__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address5_UE")) { +modulepar_px__IPv6__Address5__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address6_NW")) { +modulepar_px__IPv6__Address6__NW.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address6_UE")) { +modulepar_px__IPv6__Address6__UE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_IPv6_Address_HomeAgent")) { +modulepar_px__IPv6__Address__HomeAgent.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_MFBI_UTRAN_FrequencyBand")) { +modulepar_px__MFBI__UTRAN__FrequencyBand.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_NAS_CipheringAlgorithm")) { +modulepar_px__NAS__CipheringAlgorithm.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_NAS_IntegrityProtAlgorithm")) { +modulepar_px__NAS__IntegrityProtAlgorithm.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_PTMSI_Def")) { +modulepar_px__PTMSI__Def.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_PTMSI_SigDef")) { +modulepar_px__PTMSI__SigDef.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_PWS_CB_DataCodingScheme")) { +modulepar_px__PWS__CB__DataCodingScheme.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_PWS_CB_DataPage1")) { +modulepar_px__PWS__CB__DataPage1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_PWS_CB_DataPage2")) { +modulepar_px__PWS__CB__DataPage2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_PWS_CB_DataPage3")) { +modulepar_px__PWS__CB__DataPage3.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_PWS_CB_DataPage4")) { +modulepar_px__PWS__CB__DataPage4.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_RATComb_Tested")) { +modulepar_px__RATComb__Tested.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_SMS_ChkMsgReceived")) { +modulepar_px__SMS__ChkMsgReceived.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_SMS_IndexOffset")) { +modulepar_px__SMS__IndexOffset.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_SMS_MsgFrmt")) { +modulepar_px__SMS__MsgFrmt.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_SMS_PrefMem1")) { +modulepar_px__SMS__PrefMem1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_SMS_PrefMem2")) { +modulepar_px__SMS__PrefMem2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_SMS_PrefMem3")) { +modulepar_px__SMS__PrefMem3.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_SMS_Service")) { +modulepar_px__SMS__Service.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_SinglePLMN_Tested")) { +modulepar_px__SinglePLMN__Tested.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_TMSI_Def")) { +modulepar_px__TMSI__Def.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_TestLoopModeB_Delay")) { +modulepar_px__TestLoopModeB__Delay.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_UE_CS_PS_UsageSetting_Tested")) { +modulepar_px__UE__CS__PS__UsageSetting__Tested.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_UE_PS_UsageSetting_Tested")) { +modulepar_px__UE__PS__UsageSetting__Tested.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_UTRAN_ModeUnderTest")) { +modulepar_px__UTRAN__ModeUnderTest.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI")) { +modulepar_px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_WLAN_PDN1_ToOffload")) { +modulepar_px__WLAN__PDN1__ToOffload.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_eAuthRAND")) { +modulepar_px__eAuthRAND.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_eJapanMCC_Band6")) { +modulepar_px__eJapanMCC__Band6.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "px_ePrimaryFrequencyBand")) { +modulepar_px__ePrimaryFrequencyBand.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_1xCSfallback")) { +modulepar_pc__1xCSfallback.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_1xRTT")) { +modulepar_pc__1xRTT.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_A5_4_CS")) { +modulepar_pc__A5__4__CS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Allowed_CSG_list")) { +modulepar_pc__Allowed__CSG__list.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Attach")) { +modulepar_pc__Attach.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Auto_PDN_Connectivity")) { +modulepar_pc__Auto__PDN__Connectivity.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Automatic_EPS_Re_Attach")) { +modulepar_pc__Automatic__EPS__Re__Attach.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Automatic_Re_Attach")) { +modulepar_pc__Automatic__Re__Attach.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Available_PLMNs_AcT_Ind")) { +modulepar_pc__Available__PLMNs__AcT__Ind.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_BSRVCC")) { +modulepar_pc__BSRVCC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_CMAS_Message")) { +modulepar_pc__CMAS__Message.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_CS")) { +modulepar_pc__CS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_CS_Em_Call_in_1xRTT")) { +modulepar_pc__CS__Em__Call__in__1xRTT.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_CS_Em_Call_in_GERAN")) { +modulepar_pc__CS__Em__Call__in__GERAN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_CS_Em_Call_in_UTRA")) { +modulepar_pc__CS__Em__Call__in__UTRA.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_CS_Fallback")) { +modulepar_pc__CS__Fallback.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_CS_PS_data_centric")) { +modulepar_pc__CS__PS__data__centric.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_CS_PS_voice_centric")) { +modulepar_pc__CS__PS__voice__centric.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Combined_Attach")) { +modulepar_pc__Combined__Attach.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_DSMIPv6")) { +modulepar_pc__DSMIPv6.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_DaylightSavingTime")) { +modulepar_pc__DaylightSavingTime.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_DualRM_Coding")) { +modulepar_pc__DualRM__Coding.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EAB")) { +modulepar_pc__EAB.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EAB_override")) { +modulepar_pc__EAB__override.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EDTM")) { +modulepar_pc__EDTM.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EMM_Information")) { +modulepar_pc__EMM__Information.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EPC_RACS")) { +modulepar_pc__EPC__RACS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EPS_IMS_EmergencyCall")) { +modulepar_pc__EPS__IMS__EmergencyCall.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EPS_Services_Disable")) { +modulepar_pc__EPS__Services__Disable.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ESM_MO_Bearer_Allocation")) { +modulepar_pc__ESM__MO__Bearer__Allocation.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ESM_MO_Bearer_Modification")) { +modulepar_pc__ESM__MO__Bearer__Modification.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ESM_Notification")) { +modulepar_pc__ESM__Notification.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ESM_UE_Modification_NW_TFT")) { +modulepar_pc__ESM__UE__Modification__NW__TFT.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ETWS_message")) { +modulepar_pc__ETWS__message.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_E_UTRAN_2_GERAN_PSHO")) { +modulepar_pc__E__UTRAN__2__GERAN__PSHO.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_E_UTRA_WLAN_offload")) { +modulepar_pc__E__UTRA__WLAN__offload.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_EmergSpeech")) { +modulepar_pc__EmergSpeech.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FDD")) { +modulepar_pc__FDD.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_101_F")) { +modulepar_pc__FeatrGrp__101__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_101_T")) { +modulepar_pc__FeatrGrp__101__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_102_F")) { +modulepar_pc__FeatrGrp__102__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_102_T")) { +modulepar_pc__FeatrGrp__102__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_103_F")) { +modulepar_pc__FeatrGrp__103__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_103_T")) { +modulepar_pc__FeatrGrp__103__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_104_F")) { +modulepar_pc__FeatrGrp__104__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_104_T")) { +modulepar_pc__FeatrGrp__104__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_105_F")) { +modulepar_pc__FeatrGrp__105__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_105_T")) { +modulepar_pc__FeatrGrp__105__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_106_F")) { +modulepar_pc__FeatrGrp__106__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_106_T")) { +modulepar_pc__FeatrGrp__106__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_107_F")) { +modulepar_pc__FeatrGrp__107__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_107_T")) { +modulepar_pc__FeatrGrp__107__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_108_F")) { +modulepar_pc__FeatrGrp__108__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_108_T")) { +modulepar_pc__FeatrGrp__108__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_109_F")) { +modulepar_pc__FeatrGrp__109__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_109_T")) { +modulepar_pc__FeatrGrp__109__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_10_F")) { +modulepar_pc__FeatrGrp__10__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_10_T")) { +modulepar_pc__FeatrGrp__10__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_110_F")) { +modulepar_pc__FeatrGrp__110__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_110_T")) { +modulepar_pc__FeatrGrp__110__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_111_F")) { +modulepar_pc__FeatrGrp__111__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_111_T")) { +modulepar_pc__FeatrGrp__111__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_112_F")) { +modulepar_pc__FeatrGrp__112__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_112_T")) { +modulepar_pc__FeatrGrp__112__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_113_F")) { +modulepar_pc__FeatrGrp__113__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_113_T")) { +modulepar_pc__FeatrGrp__113__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_114_F")) { +modulepar_pc__FeatrGrp__114__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_114_T")) { +modulepar_pc__FeatrGrp__114__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_115_F")) { +modulepar_pc__FeatrGrp__115__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_115_T")) { +modulepar_pc__FeatrGrp__115__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_116_F")) { +modulepar_pc__FeatrGrp__116__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_116_T")) { +modulepar_pc__FeatrGrp__116__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_11_F")) { +modulepar_pc__FeatrGrp__11__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_11_T")) { +modulepar_pc__FeatrGrp__11__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_12_F")) { +modulepar_pc__FeatrGrp__12__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_12_T")) { +modulepar_pc__FeatrGrp__12__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_13_F")) { +modulepar_pc__FeatrGrp__13__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_13_T")) { +modulepar_pc__FeatrGrp__13__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_14_F")) { +modulepar_pc__FeatrGrp__14__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_14_T")) { +modulepar_pc__FeatrGrp__14__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_15_F")) { +modulepar_pc__FeatrGrp__15__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_15_T")) { +modulepar_pc__FeatrGrp__15__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_16_F")) { +modulepar_pc__FeatrGrp__16__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_16_T")) { +modulepar_pc__FeatrGrp__16__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_17_F")) { +modulepar_pc__FeatrGrp__17__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_17_T")) { +modulepar_pc__FeatrGrp__17__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_18_F")) { +modulepar_pc__FeatrGrp__18__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_18_T")) { +modulepar_pc__FeatrGrp__18__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_19_F")) { +modulepar_pc__FeatrGrp__19__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_19_T")) { +modulepar_pc__FeatrGrp__19__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_1_F")) { +modulepar_pc__FeatrGrp__1__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_1_T")) { +modulepar_pc__FeatrGrp__1__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_20_F")) { +modulepar_pc__FeatrGrp__20__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_20_T")) { +modulepar_pc__FeatrGrp__20__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_21_F")) { +modulepar_pc__FeatrGrp__21__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_21_T")) { +modulepar_pc__FeatrGrp__21__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_22_F")) { +modulepar_pc__FeatrGrp__22__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_22_T")) { +modulepar_pc__FeatrGrp__22__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_23_F")) { +modulepar_pc__FeatrGrp__23__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_23_T")) { +modulepar_pc__FeatrGrp__23__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_24_F")) { +modulepar_pc__FeatrGrp__24__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_24_T")) { +modulepar_pc__FeatrGrp__24__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_25_F")) { +modulepar_pc__FeatrGrp__25__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_25_T")) { +modulepar_pc__FeatrGrp__25__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_26_F")) { +modulepar_pc__FeatrGrp__26__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_26_T")) { +modulepar_pc__FeatrGrp__26__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_27_F")) { +modulepar_pc__FeatrGrp__27__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_27_T")) { +modulepar_pc__FeatrGrp__27__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_28_F")) { +modulepar_pc__FeatrGrp__28__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_28_T")) { +modulepar_pc__FeatrGrp__28__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_29_F")) { +modulepar_pc__FeatrGrp__29__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_29_T")) { +modulepar_pc__FeatrGrp__29__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_2_F")) { +modulepar_pc__FeatrGrp__2__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_2_T")) { +modulepar_pc__FeatrGrp__2__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_30_F")) { +modulepar_pc__FeatrGrp__30__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_30_T")) { +modulepar_pc__FeatrGrp__30__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_31_F")) { +modulepar_pc__FeatrGrp__31__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_31_T")) { +modulepar_pc__FeatrGrp__31__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_33_F")) { +modulepar_pc__FeatrGrp__33__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_33_T")) { +modulepar_pc__FeatrGrp__33__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_34_F")) { +modulepar_pc__FeatrGrp__34__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_34_T")) { +modulepar_pc__FeatrGrp__34__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_35_F")) { +modulepar_pc__FeatrGrp__35__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_35_T")) { +modulepar_pc__FeatrGrp__35__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_36_F")) { +modulepar_pc__FeatrGrp__36__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_36_T")) { +modulepar_pc__FeatrGrp__36__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_37_F")) { +modulepar_pc__FeatrGrp__37__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_37_T")) { +modulepar_pc__FeatrGrp__37__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_38_F")) { +modulepar_pc__FeatrGrp__38__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_38_T")) { +modulepar_pc__FeatrGrp__38__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_39_F")) { +modulepar_pc__FeatrGrp__39__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_39_T")) { +modulepar_pc__FeatrGrp__39__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_3_F")) { +modulepar_pc__FeatrGrp__3__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_3_T")) { +modulepar_pc__FeatrGrp__3__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_40_F")) { +modulepar_pc__FeatrGrp__40__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_40_T")) { +modulepar_pc__FeatrGrp__40__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_41_F")) { +modulepar_pc__FeatrGrp__41__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_41_T")) { +modulepar_pc__FeatrGrp__41__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_42_F")) { +modulepar_pc__FeatrGrp__42__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_42_T")) { +modulepar_pc__FeatrGrp__42__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_4_F")) { +modulepar_pc__FeatrGrp__4__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_4_T")) { +modulepar_pc__FeatrGrp__4__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_5_F")) { +modulepar_pc__FeatrGrp__5__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_5_T")) { +modulepar_pc__FeatrGrp__5__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_6_F")) { +modulepar_pc__FeatrGrp__6__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_6_T")) { +modulepar_pc__FeatrGrp__6__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_7_F")) { +modulepar_pc__FeatrGrp__7__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_7_T")) { +modulepar_pc__FeatrGrp__7__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_8_F")) { +modulepar_pc__FeatrGrp__8__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_8_T")) { +modulepar_pc__FeatrGrp__8__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_9_F")) { +modulepar_pc__FeatrGrp__9__F.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FeatrGrp_9_T")) { +modulepar_pc__FeatrGrp__9__T.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_FullNameNetwork")) { +modulepar_pc__FullNameNetwork.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_GERAN")) { +modulepar_pc__GERAN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_GERAN_2_E_UTRAN_PSHO")) { +modulepar_pc__GERAN__2__E__UTRAN__PSHO.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_GERAN_2_E_UTRAN_meas")) { +modulepar_pc__GERAN__2__E__UTRAN__meas.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_GERAN_2_E_UTRAN_measreporting_CCN")) { +modulepar_pc__GERAN__2__E__UTRAN__measreporting__CCN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_HO_from_UTRA_to_eFDD")) { +modulepar_pc__HO__from__UTRA__to__eFDD.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_HO_from_UTRA_to_eTDD")) { +modulepar_pc__HO__from__UTRA__to__eTDD.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_HRPD")) { +modulepar_pc__HRPD.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IMS")) { +modulepar_pc__IMS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IMSI_Detach")) { +modulepar_pc__IMSI__Detach.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IMS_APN_default")) { +modulepar_pc__IMS__APN__default.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IMS_CS_PS_SRVCC")) { +modulepar_pc__IMS__CS__PS__SRVCC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IMS_CS_PS_SRVCCAlert")) { +modulepar_pc__IMS__CS__PS__SRVCCAlert.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IMS_CS_PS_SRVCCMidCall")) { +modulepar_pc__IMS__CS__PS__SRVCCMidCall.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IMS_SRVCCAlert")) { +modulepar_pc__IMS__SRVCCAlert.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IMS_emergency_call")) { +modulepar_pc__IMS__emergency__call.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IPv4")) { +modulepar_pc__IPv4.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IPv6")) { +modulepar_pc__IPv6.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ISR")) { +modulepar_pc__ISR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ImmConnect")) { +modulepar_pc__ImmConnect.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_InterFreq_ProximityIndication")) { +modulepar_pc__InterFreq__ProximityIndication.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_IntraFreq_ProximityIndication")) { +modulepar_pc__IntraFreq__ProximityIndication.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_KeepEpsBearerParametersAfterNormalDetach")) { +modulepar_pc__KeepEpsBearerParametersAfterNormalDetach.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_LAP")) { +modulepar_pc__LAP.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_LAP_override")) { +modulepar_pc__LAP__override.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_LocalTimeZone")) { +modulepar_pc__LocalTimeZone.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_LoggedMeasurementsIdle")) { +modulepar_pc__LoggedMeasurementsIdle.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Manual_CSG_Selection")) { +modulepar_pc__Manual__CSG__Selection.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Multiple_PDN")) { +modulepar_pc__Multiple__PDN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_NG114_v1_0")) { +modulepar_pc__NG114__v1__0.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_NG114_v2_0")) { +modulepar_pc__NG114__v2__0.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_NG_RAN_NR")) { +modulepar_pc__NG__RAN__NR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_NR_5GC_EmergencyServices")) { +modulepar_pc__NR__5GC__EmergencyServices.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_No_USIM_TestExecution")) { +modulepar_pc__No__USIM__TestExecution.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception")) { +modulepar_pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_PLMN_Manual_Mode_Exception")) { +modulepar_pc__PLMN__Manual__Mode__Exception.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_PS")) { +modulepar_pc__PS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_PS_data_centric")) { +modulepar_pc__PS__data__centric.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_PS_voice_centric")) { +modulepar_pc__PS__voice__centric.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_PWS_UpperLayer")) { +modulepar_pc__PWS__UpperLayer.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ProvideDST_inUse")) { +modulepar_pc__ProvideDST__inUse.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Provide_IMS_APN")) { +modulepar_pc__Provide__IMS__APN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Provide_IMS_as_second_APN")) { +modulepar_pc__Provide__IMS__as__second__APN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Provide_Internet_as_second_APN")) { +modulepar_pc__Provide__Internet__as__second__APN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_RLF_ReportForInterRAT_MRO")) { +modulepar_pc__RLF__ReportForInterRAT__MRO.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ROHC_profile0x0001")) { +modulepar_pc__ROHC__profile0x0001.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ROHC_profile0x0002")) { +modulepar_pc__ROHC__profile0x0002.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ROHC_profile0x0003")) { +modulepar_pc__ROHC__profile0x0003.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ROHC_profile0x0004")) { +modulepar_pc__ROHC__profile0x0004.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ROHC_profile0x0006")) { +modulepar_pc__ROHC__profile0x0006.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ROHC_profile0x0101")) { +modulepar_pc__ROHC__profile0x0101.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ROHC_profile0x0102")) { +modulepar_pc__ROHC__profile0x0102.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ROHC_profile0x0103")) { +modulepar_pc__ROHC__profile0x0103.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ROHC_profile0x0104")) { +modulepar_pc__ROHC__profile0x0104.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Rach_Report")) { +modulepar_pc__Rach__Report.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Re_Attach_AfterDetachColl")) { +modulepar_pc__Re__Attach__AfterDetachColl.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_RequestIPv4HAAddress_DuringAttach")) { +modulepar_pc__RequestIPv4HAAddress__DuringAttach.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_RequestIPv6HAAddress_DuringAttach")) { +modulepar_pc__RequestIPv6HAAddress__DuringAttach.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SI_Neighbour_UMTS_Autonomous_Gaps")) { +modulepar_pc__SI__Neighbour__UMTS__Autonomous__Gaps.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SI_Neighbour_interFreq_Autonomous_Gaps")) { +modulepar_pc__SI__Neighbour__interFreq__Autonomous__Gaps.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps")) { +modulepar_pc__SI__Neighbour__intraFreq__Autonomous__Gaps.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SMS_SGs")) { +modulepar_pc__SMS__SGs.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SMS_SGs_MO")) { +modulepar_pc__SMS__SGs__MO.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SMS_SGs_MT")) { +modulepar_pc__SMS__SGs__MT.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SMS_SGs_Multi_MO")) { +modulepar_pc__SMS__SGs__Multi__MO.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SRVCC_GERAN_UTRAN")) { +modulepar_pc__SRVCC__GERAN__UTRAN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Semi_Persistence_Scheduling")) { +modulepar_pc__Semi__Persistence__Scheduling.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ShortNameNetwork")) { +modulepar_pc__ShortNameNetwork.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Speech")) { +modulepar_pc__Speech.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN")) { +modulepar_pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN")) { +modulepar_pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN")) { +modulepar_pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_StandaloneGNSS_Location")) { +modulepar_pc__StandaloneGNSS__Location.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SupportOpModeA")) { +modulepar_pc__SupportOpModeA.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_SwitchOnOff")) { +modulepar_pc__SwitchOnOff.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_TAU_connected_in_IMS")) { +modulepar_pc__TAU__connected__in__IMS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_TAU_idle_in_IMS")) { +modulepar_pc__TAU__idle__in__IMS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_TDD_HCR")) { +modulepar_pc__TDD__HCR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_TDD_LCR")) { +modulepar_pc__TDD__LCR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_TDD_VHCR")) { +modulepar_pc__TDD__VHCR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_TTI_Bundling")) { +modulepar_pc__TTI__Bundling.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_TestModeforCSGproximity")) { +modulepar_pc__TestModeforCSGproximity.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UE_supports_user_initiated_PDN_disconnect")) { +modulepar_pc__UE__supports__user__initiated__PDN__disconnect.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UL_MIMO")) { +modulepar_pc__UL__MIMO.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UMI_ProcNeeded_DuringCSFB")) { +modulepar_pc__UMI__ProcNeeded__DuringCSFB.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UMTS_GSM")) { +modulepar_pc__UMTS__GSM.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_USIM_Removal")) { +modulepar_pc__USIM__Removal.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UTRA")) { +modulepar_pc__UTRA.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UTRAN_ANR")) { +modulepar_pc__UTRAN__ANR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UTRAN_ProximityIndication")) { +modulepar_pc__UTRAN__ProximityIndication.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UTRA_FeatrGrp_1")) { +modulepar_pc__UTRA__FeatrGrp__1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UTRA_FeatrGrp_2")) { +modulepar_pc__UTRA__FeatrGrp__2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UTRA_FeatrGrp_3")) { +modulepar_pc__UTRA__FeatrGrp__3.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UTRA_FeatrGrp_4")) { +modulepar_pc__UTRA__FeatrGrp__4.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UeAssistedAgps")) { +modulepar_pc__UeAssistedAgps.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UeBasedAgps")) { +modulepar_pc__UeBasedAgps.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UniversalAndLocalTimeZone")) { +modulepar_pc__UniversalAndLocalTimeZone.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UpdateUE_LocationInformation")) { +modulepar_pc__UpdateUE__LocationInformation.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_UserInitiatedPLMN_Reselection")) { +modulepar_pc__UserInitiatedPLMN__Reselection.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_VoLTE")) { +modulepar_pc__VoLTE.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_WLAN_Meas_Imm_MDT")) { +modulepar_pc__WLAN__Meas__Imm__MDT.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_WLAN_Meas_logged_MDT")) { +modulepar_pc__WLAN__Meas__logged__MDT.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_WLAN_voice")) { +modulepar_pc__WLAN__voice.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_XCAP_only_APN")) { +modulepar_pc__XCAP__only__APN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_XCAP_over_Internet_APN")) { +modulepar_pc__XCAP__over__Internet__APN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ZUC")) { +modulepar_pc__ZUC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eCall_Test_Call")) { +modulepar_pc__eCall__Test__Call.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eFDD")) { +modulepar_pc__eFDD.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eFDD_MultiBand")) { +modulepar_pc__eFDD__MultiBand.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eMBMS")) { +modulepar_pc__eMBMS.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eMBMS_SC")) { +modulepar_pc__eMBMS__SC.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eMinimumPeriodicSearchTimer")) { +modulepar_pc__eMinimumPeriodicSearchTimer.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eRedirectionUTRA")) { +modulepar_pc__eRedirectionUTRA.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eTDD")) { +modulepar_pc__eTDD.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eTDD_MultiBand")) { +modulepar_pc__eTDD__MultiBand.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_eWLAN")) { +modulepar_pc__eWLAN.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_multipleTimingAdvance")) { +modulepar_pc__multipleTimingAdvance.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_0")) { +modulepar_pc__ue__CategoryDL__0.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_10")) { +modulepar_pc__ue__CategoryDL__10.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_11")) { +modulepar_pc__ue__CategoryDL__11.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_12")) { +modulepar_pc__ue__CategoryDL__12.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_13")) { +modulepar_pc__ue__CategoryDL__13.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_14")) { +modulepar_pc__ue__CategoryDL__14.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_15")) { +modulepar_pc__ue__CategoryDL__15.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_16")) { +modulepar_pc__ue__CategoryDL__16.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_17")) { +modulepar_pc__ue__CategoryDL__17.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_18")) { +modulepar_pc__ue__CategoryDL__18.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_19")) { +modulepar_pc__ue__CategoryDL__19.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_1bis")) { +modulepar_pc__ue__CategoryDL__1bis.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_20")) { +modulepar_pc__ue__CategoryDL__20.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_21")) { +modulepar_pc__ue__CategoryDL__21.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_22")) { +modulepar_pc__ue__CategoryDL__22.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_23")) { +modulepar_pc__ue__CategoryDL__23.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_24")) { +modulepar_pc__ue__CategoryDL__24.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_25")) { +modulepar_pc__ue__CategoryDL__25.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_26")) { +modulepar_pc__ue__CategoryDL__26.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_4")) { +modulepar_pc__ue__CategoryDL__4.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_6")) { +modulepar_pc__ue__CategoryDL__6.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_7")) { +modulepar_pc__ue__CategoryDL__7.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_9")) { +modulepar_pc__ue__CategoryDL__9.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_M1")) { +modulepar_pc__ue__CategoryDL__M1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryDL_M2")) { +modulepar_pc__ue__CategoryDL__M2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_0")) { +modulepar_pc__ue__CategoryUL__0.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_13")) { +modulepar_pc__ue__CategoryUL__13.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_14")) { +modulepar_pc__ue__CategoryUL__14.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_15")) { +modulepar_pc__ue__CategoryUL__15.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_16")) { +modulepar_pc__ue__CategoryUL__16.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_17")) { +modulepar_pc__ue__CategoryUL__17.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_18")) { +modulepar_pc__ue__CategoryUL__18.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_19")) { +modulepar_pc__ue__CategoryUL__19.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_1bis")) { +modulepar_pc__ue__CategoryUL__1bis.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_20")) { +modulepar_pc__ue__CategoryUL__20.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_21")) { +modulepar_pc__ue__CategoryUL__21.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_22")) { +modulepar_pc__ue__CategoryUL__22.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_23")) { +modulepar_pc__ue__CategoryUL__23.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_24")) { +modulepar_pc__ue__CategoryUL__24.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_25")) { +modulepar_pc__ue__CategoryUL__25.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_26")) { +modulepar_pc__ue__CategoryUL__26.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_3")) { +modulepar_pc__ue__CategoryUL__3.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_5")) { +modulepar_pc__ue__CategoryUL__5.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_7")) { +modulepar_pc__ue__CategoryUL__7.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_8")) { +modulepar_pc__ue__CategoryUL__8.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_M1")) { +modulepar_pc__ue__CategoryUL__M1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_CategoryUL_M2")) { +modulepar_pc__ue__CategoryUL__M2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_1")) { +modulepar_pc__ue__Category__1.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_10")) { +modulepar_pc__ue__Category__10.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_11")) { +modulepar_pc__ue__Category__11.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_12")) { +modulepar_pc__ue__Category__12.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_2")) { +modulepar_pc__ue__Category__2.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_3")) { +modulepar_pc__ue__Category__3.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_4")) { +modulepar_pc__ue__Category__4.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_5")) { +modulepar_pc__ue__Category__5.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_6")) { +modulepar_pc__ue__Category__6.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_7")) { +modulepar_pc__ue__Category__7.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_8")) { +modulepar_pc__ue__Category__8.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_ue_Category_9")) { +modulepar_pc__ue__Category__9.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_voiceOverNR")) { +modulepar_pc__voiceOverNR.set_param(param); +return TRUE; +} else if (!strcmp(par_name, "pc_voice_PS_1_CS_2")) { +modulepar_pc__voice__PS__1__CS__2.set_param(param); +return TRUE; +} else return FALSE; +} + +static Module_Param* get_module_param(Module_Param_Name& param_name) +{ +const char* const par_name = param_name.get_current_name(); +if (!strcmp(par_name, "pc_APN_Default_Configuration")) { +return modulepar_pc__APN__Default__Configuration.get_param(param_name); +} else if (!strcmp(par_name, "pc_APN_ID_Ethernet")) { +return modulepar_pc__APN__ID__Ethernet.get_param(param_name); +} else if (!strcmp(par_name, "pc_APN_ID_IMS")) { +return modulepar_pc__APN__ID__IMS.get_param(param_name); +} else if (!strcmp(par_name, "pc_APN_ID_Internet")) { +return modulepar_pc__APN__ID__Internet.get_param(param_name); +} else if (!strcmp(par_name, "pc_APN_ID_MIOT")) { +return modulepar_pc__APN__ID__MIOT.get_param(param_name); +} else if (!strcmp(par_name, "pc_APN_ID_URLLC")) { +return modulepar_pc__APN__ID__URLLC.get_param(param_name); +} else if (!strcmp(par_name, "pc_APN_ID_V2X")) { +return modulepar_pc__APN__ID__V2X.get_param(param_name); +} else if (!strcmp(par_name, "px_AccessPointName")) { +return modulepar_px__AccessPointName.get_param(param_name); +} else if (!strcmp(par_name, "px_AquireGNSS_MaxTime")) { +return modulepar_px__AquireGNSS__MaxTime.get_param(param_name); +} else if (!strcmp(par_name, "px_AttachTypeTested")) { +return modulepar_px__AttachTypeTested.get_param(param_name); +} else if (!strcmp(par_name, "px_AuthAMF")) { +return modulepar_px__AuthAMF.get_param(param_name); +} else if (!strcmp(par_name, "px_AuthK")) { +return modulepar_px__AuthK.get_param(param_name); +} else if (!strcmp(par_name, "px_EllipsoidPointWithAltitude")) { +return modulepar_px__EllipsoidPointWithAltitude.get_param(param_name); +} else if (!strcmp(par_name, "px_EmergencyCallNumber")) { +return modulepar_px__EmergencyCallNumber.get_param(param_name); +} else if (!strcmp(par_name, "px_FDD_OperationBand")) { +return modulepar_px__FDD__OperationBand.get_param(param_name); +} else if (!strcmp(par_name, "px_HorizontalVelocity")) { +return modulepar_px__HorizontalVelocity.get_param(param_name); +} else if (!strcmp(par_name, "px_IMEISV_Def")) { +return modulepar_px__IMEISV__Def.get_param(param_name); +} else if (!strcmp(par_name, "px_IMEI_Def")) { +return modulepar_px__IMEI__Def.get_param(param_name); +} else if (!strcmp(par_name, "px_IMSI_Def")) { +return modulepar_px__IMSI__Def.get_param(param_name); +} else if (!strcmp(par_name, "px_IMSI_Diff")) { +return modulepar_px__IMSI__Diff.get_param(param_name); +} else if (!strcmp(par_name, "px_IP_MTU_Size")) { +return modulepar_px__IP__MTU__Size.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address1_NW")) { +return modulepar_px__IPv4__Address1__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address1_RemoteUE")) { +return modulepar_px__IPv4__Address1__RemoteUE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address1_UE")) { +return modulepar_px__IPv4__Address1__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address2_NW")) { +return modulepar_px__IPv4__Address2__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address2_RemoteUE")) { +return modulepar_px__IPv4__Address2__RemoteUE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address2_UE")) { +return modulepar_px__IPv4__Address2__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address2a_UE")) { +return modulepar_px__IPv4__Address2a__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address3_NW")) { +return modulepar_px__IPv4__Address3__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address3_RemoteUE")) { +return modulepar_px__IPv4__Address3__RemoteUE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address3_UE")) { +return modulepar_px__IPv4__Address3__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address4_NW")) { +return modulepar_px__IPv4__Address4__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address4_UE")) { +return modulepar_px__IPv4__Address4__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address5_NW")) { +return modulepar_px__IPv4__Address5__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address5_UE")) { +return modulepar_px__IPv4__Address5__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address6_NW")) { +return modulepar_px__IPv4__Address6__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address6_UE")) { +return modulepar_px__IPv4__Address6__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv4_Address_HomeAgent")) { +return modulepar_px__IPv4__Address__HomeAgent.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address1_NW")) { +return modulepar_px__IPv6__Address1__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address1_RemoteUE")) { +return modulepar_px__IPv6__Address1__RemoteUE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address1_UE")) { +return modulepar_px__IPv6__Address1__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address2_NW")) { +return modulepar_px__IPv6__Address2__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address2_RemoteUE")) { +return modulepar_px__IPv6__Address2__RemoteUE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address2_UE")) { +return modulepar_px__IPv6__Address2__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address2a_UE")) { +return modulepar_px__IPv6__Address2a__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address3_NW")) { +return modulepar_px__IPv6__Address3__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address3_RemoteUE")) { +return modulepar_px__IPv6__Address3__RemoteUE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address3_UE")) { +return modulepar_px__IPv6__Address3__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address4_NW")) { +return modulepar_px__IPv6__Address4__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address4_UE")) { +return modulepar_px__IPv6__Address4__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address5_NW")) { +return modulepar_px__IPv6__Address5__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address5_UE")) { +return modulepar_px__IPv6__Address5__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address6_NW")) { +return modulepar_px__IPv6__Address6__NW.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address6_UE")) { +return modulepar_px__IPv6__Address6__UE.get_param(param_name); +} else if (!strcmp(par_name, "px_IPv6_Address_HomeAgent")) { +return modulepar_px__IPv6__Address__HomeAgent.get_param(param_name); +} else if (!strcmp(par_name, "px_MFBI_UTRAN_FrequencyBand")) { +return modulepar_px__MFBI__UTRAN__FrequencyBand.get_param(param_name); +} else if (!strcmp(par_name, "px_NAS_CipheringAlgorithm")) { +return modulepar_px__NAS__CipheringAlgorithm.get_param(param_name); +} else if (!strcmp(par_name, "px_NAS_IntegrityProtAlgorithm")) { +return modulepar_px__NAS__IntegrityProtAlgorithm.get_param(param_name); +} else if (!strcmp(par_name, "px_PTMSI_Def")) { +return modulepar_px__PTMSI__Def.get_param(param_name); +} else if (!strcmp(par_name, "px_PTMSI_SigDef")) { +return modulepar_px__PTMSI__SigDef.get_param(param_name); +} else if (!strcmp(par_name, "px_PWS_CB_DataCodingScheme")) { +return modulepar_px__PWS__CB__DataCodingScheme.get_param(param_name); +} else if (!strcmp(par_name, "px_PWS_CB_DataPage1")) { +return modulepar_px__PWS__CB__DataPage1.get_param(param_name); +} else if (!strcmp(par_name, "px_PWS_CB_DataPage2")) { +return modulepar_px__PWS__CB__DataPage2.get_param(param_name); +} else if (!strcmp(par_name, "px_PWS_CB_DataPage3")) { +return modulepar_px__PWS__CB__DataPage3.get_param(param_name); +} else if (!strcmp(par_name, "px_PWS_CB_DataPage4")) { +return modulepar_px__PWS__CB__DataPage4.get_param(param_name); +} else if (!strcmp(par_name, "px_RATComb_Tested")) { +return modulepar_px__RATComb__Tested.get_param(param_name); +} else if (!strcmp(par_name, "px_SMS_ChkMsgReceived")) { +return modulepar_px__SMS__ChkMsgReceived.get_param(param_name); +} else if (!strcmp(par_name, "px_SMS_IndexOffset")) { +return modulepar_px__SMS__IndexOffset.get_param(param_name); +} else if (!strcmp(par_name, "px_SMS_MsgFrmt")) { +return modulepar_px__SMS__MsgFrmt.get_param(param_name); +} else if (!strcmp(par_name, "px_SMS_PrefMem1")) { +return modulepar_px__SMS__PrefMem1.get_param(param_name); +} else if (!strcmp(par_name, "px_SMS_PrefMem2")) { +return modulepar_px__SMS__PrefMem2.get_param(param_name); +} else if (!strcmp(par_name, "px_SMS_PrefMem3")) { +return modulepar_px__SMS__PrefMem3.get_param(param_name); +} else if (!strcmp(par_name, "px_SMS_Service")) { +return modulepar_px__SMS__Service.get_param(param_name); +} else if (!strcmp(par_name, "px_SinglePLMN_Tested")) { +return modulepar_px__SinglePLMN__Tested.get_param(param_name); +} else if (!strcmp(par_name, "px_TMSI_Def")) { +return modulepar_px__TMSI__Def.get_param(param_name); +} else if (!strcmp(par_name, "px_TestLoopModeB_Delay")) { +return modulepar_px__TestLoopModeB__Delay.get_param(param_name); +} else if (!strcmp(par_name, "px_UE_CS_PS_UsageSetting_Tested")) { +return modulepar_px__UE__CS__PS__UsageSetting__Tested.get_param(param_name); +} else if (!strcmp(par_name, "px_UE_PS_UsageSetting_Tested")) { +return modulepar_px__UE__PS__UsageSetting__Tested.get_param(param_name); +} else if (!strcmp(par_name, "px_UTRAN_ModeUnderTest")) { +return modulepar_px__UTRAN__ModeUnderTest.get_param(param_name); +} else if (!strcmp(par_name, "px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI")) { +return modulepar_px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI.get_param(param_name); +} else if (!strcmp(par_name, "px_WLAN_PDN1_ToOffload")) { +return modulepar_px__WLAN__PDN1__ToOffload.get_param(param_name); +} else if (!strcmp(par_name, "px_eAuthRAND")) { +return modulepar_px__eAuthRAND.get_param(param_name); +} else if (!strcmp(par_name, "px_eJapanMCC_Band6")) { +return modulepar_px__eJapanMCC__Band6.get_param(param_name); +} else if (!strcmp(par_name, "px_ePrimaryFrequencyBand")) { +return modulepar_px__ePrimaryFrequencyBand.get_param(param_name); +} else if (!strcmp(par_name, "pc_1xCSfallback")) { +return modulepar_pc__1xCSfallback.get_param(param_name); +} else if (!strcmp(par_name, "pc_1xRTT")) { +return modulepar_pc__1xRTT.get_param(param_name); +} else if (!strcmp(par_name, "pc_A5_4_CS")) { +return modulepar_pc__A5__4__CS.get_param(param_name); +} else if (!strcmp(par_name, "pc_Allowed_CSG_list")) { +return modulepar_pc__Allowed__CSG__list.get_param(param_name); +} else if (!strcmp(par_name, "pc_Attach")) { +return modulepar_pc__Attach.get_param(param_name); +} else if (!strcmp(par_name, "pc_Auto_PDN_Connectivity")) { +return modulepar_pc__Auto__PDN__Connectivity.get_param(param_name); +} else if (!strcmp(par_name, "pc_Automatic_EPS_Re_Attach")) { +return modulepar_pc__Automatic__EPS__Re__Attach.get_param(param_name); +} else if (!strcmp(par_name, "pc_Automatic_Re_Attach")) { +return modulepar_pc__Automatic__Re__Attach.get_param(param_name); +} else if (!strcmp(par_name, "pc_Available_PLMNs_AcT_Ind")) { +return modulepar_pc__Available__PLMNs__AcT__Ind.get_param(param_name); +} else if (!strcmp(par_name, "pc_BSRVCC")) { +return modulepar_pc__BSRVCC.get_param(param_name); +} else if (!strcmp(par_name, "pc_CMAS_Message")) { +return modulepar_pc__CMAS__Message.get_param(param_name); +} else if (!strcmp(par_name, "pc_CS")) { +return modulepar_pc__CS.get_param(param_name); +} else if (!strcmp(par_name, "pc_CS_Em_Call_in_1xRTT")) { +return modulepar_pc__CS__Em__Call__in__1xRTT.get_param(param_name); +} else if (!strcmp(par_name, "pc_CS_Em_Call_in_GERAN")) { +return modulepar_pc__CS__Em__Call__in__GERAN.get_param(param_name); +} else if (!strcmp(par_name, "pc_CS_Em_Call_in_UTRA")) { +return modulepar_pc__CS__Em__Call__in__UTRA.get_param(param_name); +} else if (!strcmp(par_name, "pc_CS_Fallback")) { +return modulepar_pc__CS__Fallback.get_param(param_name); +} else if (!strcmp(par_name, "pc_CS_PS_data_centric")) { +return modulepar_pc__CS__PS__data__centric.get_param(param_name); +} else if (!strcmp(par_name, "pc_CS_PS_voice_centric")) { +return modulepar_pc__CS__PS__voice__centric.get_param(param_name); +} else if (!strcmp(par_name, "pc_Combined_Attach")) { +return modulepar_pc__Combined__Attach.get_param(param_name); +} else if (!strcmp(par_name, "pc_DSMIPv6")) { +return modulepar_pc__DSMIPv6.get_param(param_name); +} else if (!strcmp(par_name, "pc_DaylightSavingTime")) { +return modulepar_pc__DaylightSavingTime.get_param(param_name); +} else if (!strcmp(par_name, "pc_DualRM_Coding")) { +return modulepar_pc__DualRM__Coding.get_param(param_name); +} else if (!strcmp(par_name, "pc_EAB")) { +return modulepar_pc__EAB.get_param(param_name); +} else if (!strcmp(par_name, "pc_EAB_override")) { +return modulepar_pc__EAB__override.get_param(param_name); +} else if (!strcmp(par_name, "pc_EDTM")) { +return modulepar_pc__EDTM.get_param(param_name); +} else if (!strcmp(par_name, "pc_EMM_Information")) { +return modulepar_pc__EMM__Information.get_param(param_name); +} else if (!strcmp(par_name, "pc_EPC_RACS")) { +return modulepar_pc__EPC__RACS.get_param(param_name); +} else if (!strcmp(par_name, "pc_EPS_IMS_EmergencyCall")) { +return modulepar_pc__EPS__IMS__EmergencyCall.get_param(param_name); +} else if (!strcmp(par_name, "pc_EPS_Services_Disable")) { +return modulepar_pc__EPS__Services__Disable.get_param(param_name); +} else if (!strcmp(par_name, "pc_ESM_MO_Bearer_Allocation")) { +return modulepar_pc__ESM__MO__Bearer__Allocation.get_param(param_name); +} else if (!strcmp(par_name, "pc_ESM_MO_Bearer_Modification")) { +return modulepar_pc__ESM__MO__Bearer__Modification.get_param(param_name); +} else if (!strcmp(par_name, "pc_ESM_Notification")) { +return modulepar_pc__ESM__Notification.get_param(param_name); +} else if (!strcmp(par_name, "pc_ESM_UE_Modification_NW_TFT")) { +return modulepar_pc__ESM__UE__Modification__NW__TFT.get_param(param_name); +} else if (!strcmp(par_name, "pc_ETWS_message")) { +return modulepar_pc__ETWS__message.get_param(param_name); +} else if (!strcmp(par_name, "pc_E_UTRAN_2_GERAN_PSHO")) { +return modulepar_pc__E__UTRAN__2__GERAN__PSHO.get_param(param_name); +} else if (!strcmp(par_name, "pc_E_UTRA_WLAN_offload")) { +return modulepar_pc__E__UTRA__WLAN__offload.get_param(param_name); +} else if (!strcmp(par_name, "pc_EmergSpeech")) { +return modulepar_pc__EmergSpeech.get_param(param_name); +} else if (!strcmp(par_name, "pc_FDD")) { +return modulepar_pc__FDD.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_101_F")) { +return modulepar_pc__FeatrGrp__101__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_101_T")) { +return modulepar_pc__FeatrGrp__101__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_102_F")) { +return modulepar_pc__FeatrGrp__102__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_102_T")) { +return modulepar_pc__FeatrGrp__102__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_103_F")) { +return modulepar_pc__FeatrGrp__103__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_103_T")) { +return modulepar_pc__FeatrGrp__103__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_104_F")) { +return modulepar_pc__FeatrGrp__104__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_104_T")) { +return modulepar_pc__FeatrGrp__104__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_105_F")) { +return modulepar_pc__FeatrGrp__105__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_105_T")) { +return modulepar_pc__FeatrGrp__105__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_106_F")) { +return modulepar_pc__FeatrGrp__106__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_106_T")) { +return modulepar_pc__FeatrGrp__106__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_107_F")) { +return modulepar_pc__FeatrGrp__107__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_107_T")) { +return modulepar_pc__FeatrGrp__107__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_108_F")) { +return modulepar_pc__FeatrGrp__108__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_108_T")) { +return modulepar_pc__FeatrGrp__108__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_109_F")) { +return modulepar_pc__FeatrGrp__109__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_109_T")) { +return modulepar_pc__FeatrGrp__109__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_10_F")) { +return modulepar_pc__FeatrGrp__10__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_10_T")) { +return modulepar_pc__FeatrGrp__10__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_110_F")) { +return modulepar_pc__FeatrGrp__110__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_110_T")) { +return modulepar_pc__FeatrGrp__110__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_111_F")) { +return modulepar_pc__FeatrGrp__111__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_111_T")) { +return modulepar_pc__FeatrGrp__111__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_112_F")) { +return modulepar_pc__FeatrGrp__112__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_112_T")) { +return modulepar_pc__FeatrGrp__112__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_113_F")) { +return modulepar_pc__FeatrGrp__113__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_113_T")) { +return modulepar_pc__FeatrGrp__113__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_114_F")) { +return modulepar_pc__FeatrGrp__114__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_114_T")) { +return modulepar_pc__FeatrGrp__114__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_115_F")) { +return modulepar_pc__FeatrGrp__115__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_115_T")) { +return modulepar_pc__FeatrGrp__115__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_116_F")) { +return modulepar_pc__FeatrGrp__116__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_116_T")) { +return modulepar_pc__FeatrGrp__116__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_11_F")) { +return modulepar_pc__FeatrGrp__11__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_11_T")) { +return modulepar_pc__FeatrGrp__11__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_12_F")) { +return modulepar_pc__FeatrGrp__12__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_12_T")) { +return modulepar_pc__FeatrGrp__12__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_13_F")) { +return modulepar_pc__FeatrGrp__13__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_13_T")) { +return modulepar_pc__FeatrGrp__13__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_14_F")) { +return modulepar_pc__FeatrGrp__14__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_14_T")) { +return modulepar_pc__FeatrGrp__14__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_15_F")) { +return modulepar_pc__FeatrGrp__15__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_15_T")) { +return modulepar_pc__FeatrGrp__15__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_16_F")) { +return modulepar_pc__FeatrGrp__16__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_16_T")) { +return modulepar_pc__FeatrGrp__16__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_17_F")) { +return modulepar_pc__FeatrGrp__17__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_17_T")) { +return modulepar_pc__FeatrGrp__17__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_18_F")) { +return modulepar_pc__FeatrGrp__18__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_18_T")) { +return modulepar_pc__FeatrGrp__18__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_19_F")) { +return modulepar_pc__FeatrGrp__19__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_19_T")) { +return modulepar_pc__FeatrGrp__19__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_1_F")) { +return modulepar_pc__FeatrGrp__1__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_1_T")) { +return modulepar_pc__FeatrGrp__1__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_20_F")) { +return modulepar_pc__FeatrGrp__20__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_20_T")) { +return modulepar_pc__FeatrGrp__20__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_21_F")) { +return modulepar_pc__FeatrGrp__21__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_21_T")) { +return modulepar_pc__FeatrGrp__21__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_22_F")) { +return modulepar_pc__FeatrGrp__22__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_22_T")) { +return modulepar_pc__FeatrGrp__22__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_23_F")) { +return modulepar_pc__FeatrGrp__23__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_23_T")) { +return modulepar_pc__FeatrGrp__23__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_24_F")) { +return modulepar_pc__FeatrGrp__24__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_24_T")) { +return modulepar_pc__FeatrGrp__24__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_25_F")) { +return modulepar_pc__FeatrGrp__25__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_25_T")) { +return modulepar_pc__FeatrGrp__25__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_26_F")) { +return modulepar_pc__FeatrGrp__26__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_26_T")) { +return modulepar_pc__FeatrGrp__26__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_27_F")) { +return modulepar_pc__FeatrGrp__27__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_27_T")) { +return modulepar_pc__FeatrGrp__27__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_28_F")) { +return modulepar_pc__FeatrGrp__28__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_28_T")) { +return modulepar_pc__FeatrGrp__28__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_29_F")) { +return modulepar_pc__FeatrGrp__29__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_29_T")) { +return modulepar_pc__FeatrGrp__29__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_2_F")) { +return modulepar_pc__FeatrGrp__2__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_2_T")) { +return modulepar_pc__FeatrGrp__2__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_30_F")) { +return modulepar_pc__FeatrGrp__30__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_30_T")) { +return modulepar_pc__FeatrGrp__30__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_31_F")) { +return modulepar_pc__FeatrGrp__31__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_31_T")) { +return modulepar_pc__FeatrGrp__31__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_33_F")) { +return modulepar_pc__FeatrGrp__33__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_33_T")) { +return modulepar_pc__FeatrGrp__33__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_34_F")) { +return modulepar_pc__FeatrGrp__34__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_34_T")) { +return modulepar_pc__FeatrGrp__34__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_35_F")) { +return modulepar_pc__FeatrGrp__35__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_35_T")) { +return modulepar_pc__FeatrGrp__35__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_36_F")) { +return modulepar_pc__FeatrGrp__36__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_36_T")) { +return modulepar_pc__FeatrGrp__36__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_37_F")) { +return modulepar_pc__FeatrGrp__37__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_37_T")) { +return modulepar_pc__FeatrGrp__37__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_38_F")) { +return modulepar_pc__FeatrGrp__38__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_38_T")) { +return modulepar_pc__FeatrGrp__38__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_39_F")) { +return modulepar_pc__FeatrGrp__39__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_39_T")) { +return modulepar_pc__FeatrGrp__39__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_3_F")) { +return modulepar_pc__FeatrGrp__3__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_3_T")) { +return modulepar_pc__FeatrGrp__3__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_40_F")) { +return modulepar_pc__FeatrGrp__40__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_40_T")) { +return modulepar_pc__FeatrGrp__40__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_41_F")) { +return modulepar_pc__FeatrGrp__41__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_41_T")) { +return modulepar_pc__FeatrGrp__41__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_42_F")) { +return modulepar_pc__FeatrGrp__42__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_42_T")) { +return modulepar_pc__FeatrGrp__42__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_4_F")) { +return modulepar_pc__FeatrGrp__4__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_4_T")) { +return modulepar_pc__FeatrGrp__4__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_5_F")) { +return modulepar_pc__FeatrGrp__5__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_5_T")) { +return modulepar_pc__FeatrGrp__5__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_6_F")) { +return modulepar_pc__FeatrGrp__6__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_6_T")) { +return modulepar_pc__FeatrGrp__6__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_7_F")) { +return modulepar_pc__FeatrGrp__7__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_7_T")) { +return modulepar_pc__FeatrGrp__7__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_8_F")) { +return modulepar_pc__FeatrGrp__8__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_8_T")) { +return modulepar_pc__FeatrGrp__8__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_9_F")) { +return modulepar_pc__FeatrGrp__9__F.get_param(param_name); +} else if (!strcmp(par_name, "pc_FeatrGrp_9_T")) { +return modulepar_pc__FeatrGrp__9__T.get_param(param_name); +} else if (!strcmp(par_name, "pc_FullNameNetwork")) { +return modulepar_pc__FullNameNetwork.get_param(param_name); +} else if (!strcmp(par_name, "pc_GERAN")) { +return modulepar_pc__GERAN.get_param(param_name); +} else if (!strcmp(par_name, "pc_GERAN_2_E_UTRAN_PSHO")) { +return modulepar_pc__GERAN__2__E__UTRAN__PSHO.get_param(param_name); +} else if (!strcmp(par_name, "pc_GERAN_2_E_UTRAN_meas")) { +return modulepar_pc__GERAN__2__E__UTRAN__meas.get_param(param_name); +} else if (!strcmp(par_name, "pc_GERAN_2_E_UTRAN_measreporting_CCN")) { +return modulepar_pc__GERAN__2__E__UTRAN__measreporting__CCN.get_param(param_name); +} else if (!strcmp(par_name, "pc_HO_from_UTRA_to_eFDD")) { +return modulepar_pc__HO__from__UTRA__to__eFDD.get_param(param_name); +} else if (!strcmp(par_name, "pc_HO_from_UTRA_to_eTDD")) { +return modulepar_pc__HO__from__UTRA__to__eTDD.get_param(param_name); +} else if (!strcmp(par_name, "pc_HRPD")) { +return modulepar_pc__HRPD.get_param(param_name); +} else if (!strcmp(par_name, "pc_IMS")) { +return modulepar_pc__IMS.get_param(param_name); +} else if (!strcmp(par_name, "pc_IMSI_Detach")) { +return modulepar_pc__IMSI__Detach.get_param(param_name); +} else if (!strcmp(par_name, "pc_IMS_APN_default")) { +return modulepar_pc__IMS__APN__default.get_param(param_name); +} else if (!strcmp(par_name, "pc_IMS_CS_PS_SRVCC")) { +return modulepar_pc__IMS__CS__PS__SRVCC.get_param(param_name); +} else if (!strcmp(par_name, "pc_IMS_CS_PS_SRVCCAlert")) { +return modulepar_pc__IMS__CS__PS__SRVCCAlert.get_param(param_name); +} else if (!strcmp(par_name, "pc_IMS_CS_PS_SRVCCMidCall")) { +return modulepar_pc__IMS__CS__PS__SRVCCMidCall.get_param(param_name); +} else if (!strcmp(par_name, "pc_IMS_SRVCCAlert")) { +return modulepar_pc__IMS__SRVCCAlert.get_param(param_name); +} else if (!strcmp(par_name, "pc_IMS_emergency_call")) { +return modulepar_pc__IMS__emergency__call.get_param(param_name); +} else if (!strcmp(par_name, "pc_IPv4")) { +return modulepar_pc__IPv4.get_param(param_name); +} else if (!strcmp(par_name, "pc_IPv6")) { +return modulepar_pc__IPv6.get_param(param_name); +} else if (!strcmp(par_name, "pc_ISR")) { +return modulepar_pc__ISR.get_param(param_name); +} else if (!strcmp(par_name, "pc_ImmConnect")) { +return modulepar_pc__ImmConnect.get_param(param_name); +} else if (!strcmp(par_name, "pc_InterFreq_ProximityIndication")) { +return modulepar_pc__InterFreq__ProximityIndication.get_param(param_name); +} else if (!strcmp(par_name, "pc_IntraFreq_ProximityIndication")) { +return modulepar_pc__IntraFreq__ProximityIndication.get_param(param_name); +} else if (!strcmp(par_name, "pc_KeepEpsBearerParametersAfterNormalDetach")) { +return modulepar_pc__KeepEpsBearerParametersAfterNormalDetach.get_param(param_name); +} else if (!strcmp(par_name, "pc_LAP")) { +return modulepar_pc__LAP.get_param(param_name); +} else if (!strcmp(par_name, "pc_LAP_override")) { +return modulepar_pc__LAP__override.get_param(param_name); +} else if (!strcmp(par_name, "pc_LocalTimeZone")) { +return modulepar_pc__LocalTimeZone.get_param(param_name); +} else if (!strcmp(par_name, "pc_LoggedMeasurementsIdle")) { +return modulepar_pc__LoggedMeasurementsIdle.get_param(param_name); +} else if (!strcmp(par_name, "pc_Manual_CSG_Selection")) { +return modulepar_pc__Manual__CSG__Selection.get_param(param_name); +} else if (!strcmp(par_name, "pc_Multiple_PDN")) { +return modulepar_pc__Multiple__PDN.get_param(param_name); +} else if (!strcmp(par_name, "pc_NG114_v1_0")) { +return modulepar_pc__NG114__v1__0.get_param(param_name); +} else if (!strcmp(par_name, "pc_NG114_v2_0")) { +return modulepar_pc__NG114__v2__0.get_param(param_name); +} else if (!strcmp(par_name, "pc_NG_RAN_NR")) { +return modulepar_pc__NG__RAN__NR.get_param(param_name); +} else if (!strcmp(par_name, "pc_NR_5GC_EmergencyServices")) { +return modulepar_pc__NR__5GC__EmergencyServices.get_param(param_name); +} else if (!strcmp(par_name, "pc_No_USIM_TestExecution")) { +return modulepar_pc__No__USIM__TestExecution.get_param(param_name); +} else if (!strcmp(par_name, "pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception")) { +return modulepar_pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception.get_param(param_name); +} else if (!strcmp(par_name, "pc_PLMN_Manual_Mode_Exception")) { +return modulepar_pc__PLMN__Manual__Mode__Exception.get_param(param_name); +} else if (!strcmp(par_name, "pc_PS")) { +return modulepar_pc__PS.get_param(param_name); +} else if (!strcmp(par_name, "pc_PS_data_centric")) { +return modulepar_pc__PS__data__centric.get_param(param_name); +} else if (!strcmp(par_name, "pc_PS_voice_centric")) { +return modulepar_pc__PS__voice__centric.get_param(param_name); +} else if (!strcmp(par_name, "pc_PWS_UpperLayer")) { +return modulepar_pc__PWS__UpperLayer.get_param(param_name); +} else if (!strcmp(par_name, "pc_ProvideDST_inUse")) { +return modulepar_pc__ProvideDST__inUse.get_param(param_name); +} else if (!strcmp(par_name, "pc_Provide_IMS_APN")) { +return modulepar_pc__Provide__IMS__APN.get_param(param_name); +} else if (!strcmp(par_name, "pc_Provide_IMS_as_second_APN")) { +return modulepar_pc__Provide__IMS__as__second__APN.get_param(param_name); +} else if (!strcmp(par_name, "pc_Provide_Internet_as_second_APN")) { +return modulepar_pc__Provide__Internet__as__second__APN.get_param(param_name); +} else if (!strcmp(par_name, "pc_RLF_ReportForInterRAT_MRO")) { +return modulepar_pc__RLF__ReportForInterRAT__MRO.get_param(param_name); +} else if (!strcmp(par_name, "pc_ROHC_profile0x0001")) { +return modulepar_pc__ROHC__profile0x0001.get_param(param_name); +} else if (!strcmp(par_name, "pc_ROHC_profile0x0002")) { +return modulepar_pc__ROHC__profile0x0002.get_param(param_name); +} else if (!strcmp(par_name, "pc_ROHC_profile0x0003")) { +return modulepar_pc__ROHC__profile0x0003.get_param(param_name); +} else if (!strcmp(par_name, "pc_ROHC_profile0x0004")) { +return modulepar_pc__ROHC__profile0x0004.get_param(param_name); +} else if (!strcmp(par_name, "pc_ROHC_profile0x0006")) { +return modulepar_pc__ROHC__profile0x0006.get_param(param_name); +} else if (!strcmp(par_name, "pc_ROHC_profile0x0101")) { +return modulepar_pc__ROHC__profile0x0101.get_param(param_name); +} else if (!strcmp(par_name, "pc_ROHC_profile0x0102")) { +return modulepar_pc__ROHC__profile0x0102.get_param(param_name); +} else if (!strcmp(par_name, "pc_ROHC_profile0x0103")) { +return modulepar_pc__ROHC__profile0x0103.get_param(param_name); +} else if (!strcmp(par_name, "pc_ROHC_profile0x0104")) { +return modulepar_pc__ROHC__profile0x0104.get_param(param_name); +} else if (!strcmp(par_name, "pc_Rach_Report")) { +return modulepar_pc__Rach__Report.get_param(param_name); +} else if (!strcmp(par_name, "pc_Re_Attach_AfterDetachColl")) { +return modulepar_pc__Re__Attach__AfterDetachColl.get_param(param_name); +} else if (!strcmp(par_name, "pc_RequestIPv4HAAddress_DuringAttach")) { +return modulepar_pc__RequestIPv4HAAddress__DuringAttach.get_param(param_name); +} else if (!strcmp(par_name, "pc_RequestIPv6HAAddress_DuringAttach")) { +return modulepar_pc__RequestIPv6HAAddress__DuringAttach.get_param(param_name); +} else if (!strcmp(par_name, "pc_SI_Neighbour_UMTS_Autonomous_Gaps")) { +return modulepar_pc__SI__Neighbour__UMTS__Autonomous__Gaps.get_param(param_name); +} else if (!strcmp(par_name, "pc_SI_Neighbour_interFreq_Autonomous_Gaps")) { +return modulepar_pc__SI__Neighbour__interFreq__Autonomous__Gaps.get_param(param_name); +} else if (!strcmp(par_name, "pc_SI_Neighbour_intraFreq_Autonomous_Gaps")) { +return modulepar_pc__SI__Neighbour__intraFreq__Autonomous__Gaps.get_param(param_name); +} else if (!strcmp(par_name, "pc_SMS_SGs")) { +return modulepar_pc__SMS__SGs.get_param(param_name); +} else if (!strcmp(par_name, "pc_SMS_SGs_MO")) { +return modulepar_pc__SMS__SGs__MO.get_param(param_name); +} else if (!strcmp(par_name, "pc_SMS_SGs_MT")) { +return modulepar_pc__SMS__SGs__MT.get_param(param_name); +} else if (!strcmp(par_name, "pc_SMS_SGs_Multi_MO")) { +return modulepar_pc__SMS__SGs__Multi__MO.get_param(param_name); +} else if (!strcmp(par_name, "pc_SRVCC_GERAN_UTRAN")) { +return modulepar_pc__SRVCC__GERAN__UTRAN.get_param(param_name); +} else if (!strcmp(par_name, "pc_Semi_Persistence_Scheduling")) { +return modulepar_pc__Semi__Persistence__Scheduling.get_param(param_name); +} else if (!strcmp(par_name, "pc_ShortNameNetwork")) { +return modulepar_pc__ShortNameNetwork.get_param(param_name); +} else if (!strcmp(par_name, "pc_Speech")) { +return modulepar_pc__Speech.get_param(param_name); +} else if (!strcmp(par_name, "pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN")) { +return modulepar_pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN.get_param(param_name); +} else if (!strcmp(par_name, "pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN")) { +return modulepar_pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN.get_param(param_name); +} else if (!strcmp(par_name, "pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN")) { +return modulepar_pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN.get_param(param_name); +} else if (!strcmp(par_name, "pc_StandaloneGNSS_Location")) { +return modulepar_pc__StandaloneGNSS__Location.get_param(param_name); +} else if (!strcmp(par_name, "pc_SupportOpModeA")) { +return modulepar_pc__SupportOpModeA.get_param(param_name); +} else if (!strcmp(par_name, "pc_SwitchOnOff")) { +return modulepar_pc__SwitchOnOff.get_param(param_name); +} else if (!strcmp(par_name, "pc_TAU_connected_in_IMS")) { +return modulepar_pc__TAU__connected__in__IMS.get_param(param_name); +} else if (!strcmp(par_name, "pc_TAU_idle_in_IMS")) { +return modulepar_pc__TAU__idle__in__IMS.get_param(param_name); +} else if (!strcmp(par_name, "pc_TDD_HCR")) { +return modulepar_pc__TDD__HCR.get_param(param_name); +} else if (!strcmp(par_name, "pc_TDD_LCR")) { +return modulepar_pc__TDD__LCR.get_param(param_name); +} else if (!strcmp(par_name, "pc_TDD_VHCR")) { +return modulepar_pc__TDD__VHCR.get_param(param_name); +} else if (!strcmp(par_name, "pc_TTI_Bundling")) { +return modulepar_pc__TTI__Bundling.get_param(param_name); +} else if (!strcmp(par_name, "pc_TestModeforCSGproximity")) { +return modulepar_pc__TestModeforCSGproximity.get_param(param_name); +} else if (!strcmp(par_name, "pc_UE_supports_user_initiated_PDN_disconnect")) { +return modulepar_pc__UE__supports__user__initiated__PDN__disconnect.get_param(param_name); +} else if (!strcmp(par_name, "pc_UL_MIMO")) { +return modulepar_pc__UL__MIMO.get_param(param_name); +} else if (!strcmp(par_name, "pc_UMI_ProcNeeded_DuringCSFB")) { +return modulepar_pc__UMI__ProcNeeded__DuringCSFB.get_param(param_name); +} else if (!strcmp(par_name, "pc_UMTS_GSM")) { +return modulepar_pc__UMTS__GSM.get_param(param_name); +} else if (!strcmp(par_name, "pc_USIM_Removal")) { +return modulepar_pc__USIM__Removal.get_param(param_name); +} else if (!strcmp(par_name, "pc_UTRA")) { +return modulepar_pc__UTRA.get_param(param_name); +} else if (!strcmp(par_name, "pc_UTRAN_ANR")) { +return modulepar_pc__UTRAN__ANR.get_param(param_name); +} else if (!strcmp(par_name, "pc_UTRAN_ProximityIndication")) { +return modulepar_pc__UTRAN__ProximityIndication.get_param(param_name); +} else if (!strcmp(par_name, "pc_UTRA_FeatrGrp_1")) { +return modulepar_pc__UTRA__FeatrGrp__1.get_param(param_name); +} else if (!strcmp(par_name, "pc_UTRA_FeatrGrp_2")) { +return modulepar_pc__UTRA__FeatrGrp__2.get_param(param_name); +} else if (!strcmp(par_name, "pc_UTRA_FeatrGrp_3")) { +return modulepar_pc__UTRA__FeatrGrp__3.get_param(param_name); +} else if (!strcmp(par_name, "pc_UTRA_FeatrGrp_4")) { +return modulepar_pc__UTRA__FeatrGrp__4.get_param(param_name); +} else if (!strcmp(par_name, "pc_UeAssistedAgps")) { +return modulepar_pc__UeAssistedAgps.get_param(param_name); +} else if (!strcmp(par_name, "pc_UeBasedAgps")) { +return modulepar_pc__UeBasedAgps.get_param(param_name); +} else if (!strcmp(par_name, "pc_UniversalAndLocalTimeZone")) { +return modulepar_pc__UniversalAndLocalTimeZone.get_param(param_name); +} else if (!strcmp(par_name, "pc_UpdateUE_LocationInformation")) { +return modulepar_pc__UpdateUE__LocationInformation.get_param(param_name); +} else if (!strcmp(par_name, "pc_UserInitiatedPLMN_Reselection")) { +return modulepar_pc__UserInitiatedPLMN__Reselection.get_param(param_name); +} else if (!strcmp(par_name, "pc_VoLTE")) { +return modulepar_pc__VoLTE.get_param(param_name); +} else if (!strcmp(par_name, "pc_WLAN_Meas_Imm_MDT")) { +return modulepar_pc__WLAN__Meas__Imm__MDT.get_param(param_name); +} else if (!strcmp(par_name, "pc_WLAN_Meas_logged_MDT")) { +return modulepar_pc__WLAN__Meas__logged__MDT.get_param(param_name); +} else if (!strcmp(par_name, "pc_WLAN_voice")) { +return modulepar_pc__WLAN__voice.get_param(param_name); +} else if (!strcmp(par_name, "pc_XCAP_only_APN")) { +return modulepar_pc__XCAP__only__APN.get_param(param_name); +} else if (!strcmp(par_name, "pc_XCAP_over_Internet_APN")) { +return modulepar_pc__XCAP__over__Internet__APN.get_param(param_name); +} else if (!strcmp(par_name, "pc_ZUC")) { +return modulepar_pc__ZUC.get_param(param_name); +} else if (!strcmp(par_name, "pc_eCall_Test_Call")) { +return modulepar_pc__eCall__Test__Call.get_param(param_name); +} else if (!strcmp(par_name, "pc_eFDD")) { +return modulepar_pc__eFDD.get_param(param_name); +} else if (!strcmp(par_name, "pc_eFDD_MultiBand")) { +return modulepar_pc__eFDD__MultiBand.get_param(param_name); +} else if (!strcmp(par_name, "pc_eMBMS")) { +return modulepar_pc__eMBMS.get_param(param_name); +} else if (!strcmp(par_name, "pc_eMBMS_SC")) { +return modulepar_pc__eMBMS__SC.get_param(param_name); +} else if (!strcmp(par_name, "pc_eMinimumPeriodicSearchTimer")) { +return modulepar_pc__eMinimumPeriodicSearchTimer.get_param(param_name); +} else if (!strcmp(par_name, "pc_eRedirectionUTRA")) { +return modulepar_pc__eRedirectionUTRA.get_param(param_name); +} else if (!strcmp(par_name, "pc_eTDD")) { +return modulepar_pc__eTDD.get_param(param_name); +} else if (!strcmp(par_name, "pc_eTDD_MultiBand")) { +return modulepar_pc__eTDD__MultiBand.get_param(param_name); +} else if (!strcmp(par_name, "pc_eWLAN")) { +return modulepar_pc__eWLAN.get_param(param_name); +} else if (!strcmp(par_name, "pc_multipleTimingAdvance")) { +return modulepar_pc__multipleTimingAdvance.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_0")) { +return modulepar_pc__ue__CategoryDL__0.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_10")) { +return modulepar_pc__ue__CategoryDL__10.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_11")) { +return modulepar_pc__ue__CategoryDL__11.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_12")) { +return modulepar_pc__ue__CategoryDL__12.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_13")) { +return modulepar_pc__ue__CategoryDL__13.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_14")) { +return modulepar_pc__ue__CategoryDL__14.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_15")) { +return modulepar_pc__ue__CategoryDL__15.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_16")) { +return modulepar_pc__ue__CategoryDL__16.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_17")) { +return modulepar_pc__ue__CategoryDL__17.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_18")) { +return modulepar_pc__ue__CategoryDL__18.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_19")) { +return modulepar_pc__ue__CategoryDL__19.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_1bis")) { +return modulepar_pc__ue__CategoryDL__1bis.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_20")) { +return modulepar_pc__ue__CategoryDL__20.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_21")) { +return modulepar_pc__ue__CategoryDL__21.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_22")) { +return modulepar_pc__ue__CategoryDL__22.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_23")) { +return modulepar_pc__ue__CategoryDL__23.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_24")) { +return modulepar_pc__ue__CategoryDL__24.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_25")) { +return modulepar_pc__ue__CategoryDL__25.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_26")) { +return modulepar_pc__ue__CategoryDL__26.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_4")) { +return modulepar_pc__ue__CategoryDL__4.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_6")) { +return modulepar_pc__ue__CategoryDL__6.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_7")) { +return modulepar_pc__ue__CategoryDL__7.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_9")) { +return modulepar_pc__ue__CategoryDL__9.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_M1")) { +return modulepar_pc__ue__CategoryDL__M1.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryDL_M2")) { +return modulepar_pc__ue__CategoryDL__M2.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_0")) { +return modulepar_pc__ue__CategoryUL__0.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_13")) { +return modulepar_pc__ue__CategoryUL__13.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_14")) { +return modulepar_pc__ue__CategoryUL__14.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_15")) { +return modulepar_pc__ue__CategoryUL__15.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_16")) { +return modulepar_pc__ue__CategoryUL__16.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_17")) { +return modulepar_pc__ue__CategoryUL__17.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_18")) { +return modulepar_pc__ue__CategoryUL__18.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_19")) { +return modulepar_pc__ue__CategoryUL__19.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_1bis")) { +return modulepar_pc__ue__CategoryUL__1bis.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_20")) { +return modulepar_pc__ue__CategoryUL__20.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_21")) { +return modulepar_pc__ue__CategoryUL__21.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_22")) { +return modulepar_pc__ue__CategoryUL__22.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_23")) { +return modulepar_pc__ue__CategoryUL__23.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_24")) { +return modulepar_pc__ue__CategoryUL__24.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_25")) { +return modulepar_pc__ue__CategoryUL__25.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_26")) { +return modulepar_pc__ue__CategoryUL__26.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_3")) { +return modulepar_pc__ue__CategoryUL__3.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_5")) { +return modulepar_pc__ue__CategoryUL__5.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_7")) { +return modulepar_pc__ue__CategoryUL__7.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_8")) { +return modulepar_pc__ue__CategoryUL__8.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_M1")) { +return modulepar_pc__ue__CategoryUL__M1.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_CategoryUL_M2")) { +return modulepar_pc__ue__CategoryUL__M2.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_1")) { +return modulepar_pc__ue__Category__1.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_10")) { +return modulepar_pc__ue__Category__10.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_11")) { +return modulepar_pc__ue__Category__11.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_12")) { +return modulepar_pc__ue__Category__12.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_2")) { +return modulepar_pc__ue__Category__2.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_3")) { +return modulepar_pc__ue__Category__3.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_4")) { +return modulepar_pc__ue__Category__4.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_5")) { +return modulepar_pc__ue__Category__5.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_6")) { +return modulepar_pc__ue__Category__6.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_7")) { +return modulepar_pc__ue__Category__7.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_8")) { +return modulepar_pc__ue__Category__8.get_param(param_name); +} else if (!strcmp(par_name, "pc_ue_Category_9")) { +return modulepar_pc__ue__Category__9.get_param(param_name); +} else if (!strcmp(par_name, "pc_voiceOverNR")) { +return modulepar_pc__voiceOverNR.get_param(param_name); +} else if (!strcmp(par_name, "pc_voice_PS_1_CS_2")) { +return modulepar_pc__voice__PS__1__CS__2.get_param(param_name); +} else return NULL; +} + +static void log_module_param() +{ +TTCN_Logger::log_event_str("pc_APN_Default_Configuration := "); +pc__APN__Default__Configuration.log(); +TTCN_Logger::log_event_str(", pc_APN_ID_Ethernet := "); +pc__APN__ID__Ethernet.log(); +TTCN_Logger::log_event_str(", pc_APN_ID_IMS := "); +pc__APN__ID__IMS.log(); +TTCN_Logger::log_event_str(", pc_APN_ID_Internet := "); +pc__APN__ID__Internet.log(); +TTCN_Logger::log_event_str(", pc_APN_ID_MIOT := "); +pc__APN__ID__MIOT.log(); +TTCN_Logger::log_event_str(", pc_APN_ID_URLLC := "); +pc__APN__ID__URLLC.log(); +TTCN_Logger::log_event_str(", pc_APN_ID_V2X := "); +pc__APN__ID__V2X.log(); +TTCN_Logger::log_event_str(", px_AccessPointName := "); +px__AccessPointName.log(); +TTCN_Logger::log_event_str(", px_AquireGNSS_MaxTime := "); +px__AquireGNSS__MaxTime.log(); +TTCN_Logger::log_event_str(", px_AttachTypeTested := "); +px__AttachTypeTested.log(); +TTCN_Logger::log_event_str(", px_AuthAMF := "); +px__AuthAMF.log(); +TTCN_Logger::log_event_str(", px_AuthK := "); +px__AuthK.log(); +TTCN_Logger::log_event_str(", px_EllipsoidPointWithAltitude := "); +px__EllipsoidPointWithAltitude.log(); +TTCN_Logger::log_event_str(", px_EmergencyCallNumber := "); +px__EmergencyCallNumber.log(); +TTCN_Logger::log_event_str(", px_FDD_OperationBand := "); +px__FDD__OperationBand.log(); +TTCN_Logger::log_event_str(", px_HorizontalVelocity := "); +px__HorizontalVelocity.log(); +TTCN_Logger::log_event_str(", px_IMEISV_Def := "); +px__IMEISV__Def.log(); +TTCN_Logger::log_event_str(", px_IMEI_Def := "); +px__IMEI__Def.log(); +TTCN_Logger::log_event_str(", px_IMSI_Def := "); +px__IMSI__Def.log(); +TTCN_Logger::log_event_str(", px_IMSI_Diff := "); +px__IMSI__Diff.log(); +TTCN_Logger::log_event_str(", px_IP_MTU_Size := "); +px__IP__MTU__Size.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address1_NW := "); +px__IPv4__Address1__NW.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address1_RemoteUE := "); +px__IPv4__Address1__RemoteUE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address1_UE := "); +px__IPv4__Address1__UE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address2_NW := "); +px__IPv4__Address2__NW.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address2_RemoteUE := "); +px__IPv4__Address2__RemoteUE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address2_UE := "); +px__IPv4__Address2__UE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address2a_UE := "); +px__IPv4__Address2a__UE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address3_NW := "); +px__IPv4__Address3__NW.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address3_RemoteUE := "); +px__IPv4__Address3__RemoteUE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address3_UE := "); +px__IPv4__Address3__UE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address4_NW := "); +px__IPv4__Address4__NW.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address4_UE := "); +px__IPv4__Address4__UE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address5_NW := "); +px__IPv4__Address5__NW.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address5_UE := "); +px__IPv4__Address5__UE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address6_NW := "); +px__IPv4__Address6__NW.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address6_UE := "); +px__IPv4__Address6__UE.log(); +TTCN_Logger::log_event_str(", px_IPv4_Address_HomeAgent := "); +px__IPv4__Address__HomeAgent.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address1_NW := "); +px__IPv6__Address1__NW.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address1_RemoteUE := "); +px__IPv6__Address1__RemoteUE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address1_UE := "); +px__IPv6__Address1__UE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address2_NW := "); +px__IPv6__Address2__NW.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address2_RemoteUE := "); +px__IPv6__Address2__RemoteUE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address2_UE := "); +px__IPv6__Address2__UE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address2a_UE := "); +px__IPv6__Address2a__UE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address3_NW := "); +px__IPv6__Address3__NW.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address3_RemoteUE := "); +px__IPv6__Address3__RemoteUE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address3_UE := "); +px__IPv6__Address3__UE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address4_NW := "); +px__IPv6__Address4__NW.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address4_UE := "); +px__IPv6__Address4__UE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address5_NW := "); +px__IPv6__Address5__NW.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address5_UE := "); +px__IPv6__Address5__UE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address6_NW := "); +px__IPv6__Address6__NW.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address6_UE := "); +px__IPv6__Address6__UE.log(); +TTCN_Logger::log_event_str(", px_IPv6_Address_HomeAgent := "); +px__IPv6__Address__HomeAgent.log(); +TTCN_Logger::log_event_str(", px_MFBI_UTRAN_FrequencyBand := "); +px__MFBI__UTRAN__FrequencyBand.log(); +TTCN_Logger::log_event_str(", px_NAS_CipheringAlgorithm := "); +px__NAS__CipheringAlgorithm.log(); +TTCN_Logger::log_event_str(", px_NAS_IntegrityProtAlgorithm := "); +px__NAS__IntegrityProtAlgorithm.log(); +TTCN_Logger::log_event_str(", px_PTMSI_Def := "); +px__PTMSI__Def.log(); +TTCN_Logger::log_event_str(", px_PTMSI_SigDef := "); +px__PTMSI__SigDef.log(); +TTCN_Logger::log_event_str(", px_PWS_CB_DataCodingScheme := "); +px__PWS__CB__DataCodingScheme.log(); +TTCN_Logger::log_event_str(", px_PWS_CB_DataPage1 := "); +px__PWS__CB__DataPage1.log(); +TTCN_Logger::log_event_str(", px_PWS_CB_DataPage2 := "); +px__PWS__CB__DataPage2.log(); +TTCN_Logger::log_event_str(", px_PWS_CB_DataPage3 := "); +px__PWS__CB__DataPage3.log(); +TTCN_Logger::log_event_str(", px_PWS_CB_DataPage4 := "); +px__PWS__CB__DataPage4.log(); +TTCN_Logger::log_event_str(", px_RATComb_Tested := "); +px__RATComb__Tested.log(); +TTCN_Logger::log_event_str(", px_SMS_ChkMsgReceived := "); +px__SMS__ChkMsgReceived.log(); +TTCN_Logger::log_event_str(", px_SMS_IndexOffset := "); +px__SMS__IndexOffset.log(); +TTCN_Logger::log_event_str(", px_SMS_MsgFrmt := "); +px__SMS__MsgFrmt.log(); +TTCN_Logger::log_event_str(", px_SMS_PrefMem1 := "); +px__SMS__PrefMem1.log(); +TTCN_Logger::log_event_str(", px_SMS_PrefMem2 := "); +px__SMS__PrefMem2.log(); +TTCN_Logger::log_event_str(", px_SMS_PrefMem3 := "); +px__SMS__PrefMem3.log(); +TTCN_Logger::log_event_str(", px_SMS_Service := "); +px__SMS__Service.log(); +TTCN_Logger::log_event_str(", px_SinglePLMN_Tested := "); +px__SinglePLMN__Tested.log(); +TTCN_Logger::log_event_str(", px_TMSI_Def := "); +px__TMSI__Def.log(); +TTCN_Logger::log_event_str(", px_TestLoopModeB_Delay := "); +px__TestLoopModeB__Delay.log(); +TTCN_Logger::log_event_str(", px_UE_CS_PS_UsageSetting_Tested := "); +px__UE__CS__PS__UsageSetting__Tested.log(); +TTCN_Logger::log_event_str(", px_UE_PS_UsageSetting_Tested := "); +px__UE__PS__UsageSetting__Tested.log(); +TTCN_Logger::log_event_str(", px_UTRAN_ModeUnderTest := "); +px__UTRAN__ModeUnderTest.log(); +TTCN_Logger::log_event_str(", px_UTRAN_OverlappingNotSupportedFrequencyBandMFBI := "); +px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI.log(); +TTCN_Logger::log_event_str(", px_WLAN_PDN1_ToOffload := "); +px__WLAN__PDN1__ToOffload.log(); +TTCN_Logger::log_event_str(", px_eAuthRAND := "); +px__eAuthRAND.log(); +TTCN_Logger::log_event_str(", px_eJapanMCC_Band6 := "); +px__eJapanMCC__Band6.log(); +TTCN_Logger::log_event_str(", px_ePrimaryFrequencyBand := "); +px__ePrimaryFrequencyBand.log(); +TTCN_Logger::log_event_str(", pc_1xCSfallback := "); +pc__1xCSfallback.log(); +TTCN_Logger::log_event_str(", pc_1xRTT := "); +pc__1xRTT.log(); +TTCN_Logger::log_event_str(", pc_A5_4_CS := "); +pc__A5__4__CS.log(); +TTCN_Logger::log_event_str(", pc_Allowed_CSG_list := "); +pc__Allowed__CSG__list.log(); +TTCN_Logger::log_event_str(", pc_Attach := "); +pc__Attach.log(); +TTCN_Logger::log_event_str(", pc_Auto_PDN_Connectivity := "); +pc__Auto__PDN__Connectivity.log(); +TTCN_Logger::log_event_str(", pc_Automatic_EPS_Re_Attach := "); +pc__Automatic__EPS__Re__Attach.log(); +TTCN_Logger::log_event_str(", pc_Automatic_Re_Attach := "); +pc__Automatic__Re__Attach.log(); +TTCN_Logger::log_event_str(", pc_Available_PLMNs_AcT_Ind := "); +pc__Available__PLMNs__AcT__Ind.log(); +TTCN_Logger::log_event_str(", pc_BSRVCC := "); +pc__BSRVCC.log(); +TTCN_Logger::log_event_str(", pc_CMAS_Message := "); +pc__CMAS__Message.log(); +TTCN_Logger::log_event_str(", pc_CS := "); +pc__CS.log(); +TTCN_Logger::log_event_str(", pc_CS_Em_Call_in_1xRTT := "); +pc__CS__Em__Call__in__1xRTT.log(); +TTCN_Logger::log_event_str(", pc_CS_Em_Call_in_GERAN := "); +pc__CS__Em__Call__in__GERAN.log(); +TTCN_Logger::log_event_str(", pc_CS_Em_Call_in_UTRA := "); +pc__CS__Em__Call__in__UTRA.log(); +TTCN_Logger::log_event_str(", pc_CS_Fallback := "); +pc__CS__Fallback.log(); +TTCN_Logger::log_event_str(", pc_CS_PS_data_centric := "); +pc__CS__PS__data__centric.log(); +TTCN_Logger::log_event_str(", pc_CS_PS_voice_centric := "); +pc__CS__PS__voice__centric.log(); +TTCN_Logger::log_event_str(", pc_Combined_Attach := "); +pc__Combined__Attach.log(); +TTCN_Logger::log_event_str(", pc_DSMIPv6 := "); +pc__DSMIPv6.log(); +TTCN_Logger::log_event_str(", pc_DaylightSavingTime := "); +pc__DaylightSavingTime.log(); +TTCN_Logger::log_event_str(", pc_DualRM_Coding := "); +pc__DualRM__Coding.log(); +TTCN_Logger::log_event_str(", pc_EAB := "); +pc__EAB.log(); +TTCN_Logger::log_event_str(", pc_EAB_override := "); +pc__EAB__override.log(); +TTCN_Logger::log_event_str(", pc_EDTM := "); +pc__EDTM.log(); +TTCN_Logger::log_event_str(", pc_EMM_Information := "); +pc__EMM__Information.log(); +TTCN_Logger::log_event_str(", pc_EPC_RACS := "); +pc__EPC__RACS.log(); +TTCN_Logger::log_event_str(", pc_EPS_IMS_EmergencyCall := "); +pc__EPS__IMS__EmergencyCall.log(); +TTCN_Logger::log_event_str(", pc_EPS_Services_Disable := "); +pc__EPS__Services__Disable.log(); +TTCN_Logger::log_event_str(", pc_ESM_MO_Bearer_Allocation := "); +pc__ESM__MO__Bearer__Allocation.log(); +TTCN_Logger::log_event_str(", pc_ESM_MO_Bearer_Modification := "); +pc__ESM__MO__Bearer__Modification.log(); +TTCN_Logger::log_event_str(", pc_ESM_Notification := "); +pc__ESM__Notification.log(); +TTCN_Logger::log_event_str(", pc_ESM_UE_Modification_NW_TFT := "); +pc__ESM__UE__Modification__NW__TFT.log(); +TTCN_Logger::log_event_str(", pc_ETWS_message := "); +pc__ETWS__message.log(); +TTCN_Logger::log_event_str(", pc_E_UTRAN_2_GERAN_PSHO := "); +pc__E__UTRAN__2__GERAN__PSHO.log(); +TTCN_Logger::log_event_str(", pc_E_UTRA_WLAN_offload := "); +pc__E__UTRA__WLAN__offload.log(); +TTCN_Logger::log_event_str(", pc_EmergSpeech := "); +pc__EmergSpeech.log(); +TTCN_Logger::log_event_str(", pc_FDD := "); +pc__FDD.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_101_F := "); +pc__FeatrGrp__101__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_101_T := "); +pc__FeatrGrp__101__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_102_F := "); +pc__FeatrGrp__102__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_102_T := "); +pc__FeatrGrp__102__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_103_F := "); +pc__FeatrGrp__103__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_103_T := "); +pc__FeatrGrp__103__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_104_F := "); +pc__FeatrGrp__104__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_104_T := "); +pc__FeatrGrp__104__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_105_F := "); +pc__FeatrGrp__105__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_105_T := "); +pc__FeatrGrp__105__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_106_F := "); +pc__FeatrGrp__106__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_106_T := "); +pc__FeatrGrp__106__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_107_F := "); +pc__FeatrGrp__107__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_107_T := "); +pc__FeatrGrp__107__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_108_F := "); +pc__FeatrGrp__108__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_108_T := "); +pc__FeatrGrp__108__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_109_F := "); +pc__FeatrGrp__109__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_109_T := "); +pc__FeatrGrp__109__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_10_F := "); +pc__FeatrGrp__10__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_10_T := "); +pc__FeatrGrp__10__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_110_F := "); +pc__FeatrGrp__110__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_110_T := "); +pc__FeatrGrp__110__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_111_F := "); +pc__FeatrGrp__111__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_111_T := "); +pc__FeatrGrp__111__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_112_F := "); +pc__FeatrGrp__112__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_112_T := "); +pc__FeatrGrp__112__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_113_F := "); +pc__FeatrGrp__113__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_113_T := "); +pc__FeatrGrp__113__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_114_F := "); +pc__FeatrGrp__114__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_114_T := "); +pc__FeatrGrp__114__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_115_F := "); +pc__FeatrGrp__115__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_115_T := "); +pc__FeatrGrp__115__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_116_F := "); +pc__FeatrGrp__116__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_116_T := "); +pc__FeatrGrp__116__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_11_F := "); +pc__FeatrGrp__11__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_11_T := "); +pc__FeatrGrp__11__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_12_F := "); +pc__FeatrGrp__12__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_12_T := "); +pc__FeatrGrp__12__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_13_F := "); +pc__FeatrGrp__13__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_13_T := "); +pc__FeatrGrp__13__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_14_F := "); +pc__FeatrGrp__14__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_14_T := "); +pc__FeatrGrp__14__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_15_F := "); +pc__FeatrGrp__15__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_15_T := "); +pc__FeatrGrp__15__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_16_F := "); +pc__FeatrGrp__16__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_16_T := "); +pc__FeatrGrp__16__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_17_F := "); +pc__FeatrGrp__17__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_17_T := "); +pc__FeatrGrp__17__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_18_F := "); +pc__FeatrGrp__18__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_18_T := "); +pc__FeatrGrp__18__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_19_F := "); +pc__FeatrGrp__19__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_19_T := "); +pc__FeatrGrp__19__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_1_F := "); +pc__FeatrGrp__1__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_1_T := "); +pc__FeatrGrp__1__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_20_F := "); +pc__FeatrGrp__20__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_20_T := "); +pc__FeatrGrp__20__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_21_F := "); +pc__FeatrGrp__21__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_21_T := "); +pc__FeatrGrp__21__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_22_F := "); +pc__FeatrGrp__22__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_22_T := "); +pc__FeatrGrp__22__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_23_F := "); +pc__FeatrGrp__23__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_23_T := "); +pc__FeatrGrp__23__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_24_F := "); +pc__FeatrGrp__24__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_24_T := "); +pc__FeatrGrp__24__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_25_F := "); +pc__FeatrGrp__25__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_25_T := "); +pc__FeatrGrp__25__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_26_F := "); +pc__FeatrGrp__26__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_26_T := "); +pc__FeatrGrp__26__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_27_F := "); +pc__FeatrGrp__27__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_27_T := "); +pc__FeatrGrp__27__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_28_F := "); +pc__FeatrGrp__28__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_28_T := "); +pc__FeatrGrp__28__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_29_F := "); +pc__FeatrGrp__29__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_29_T := "); +pc__FeatrGrp__29__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_2_F := "); +pc__FeatrGrp__2__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_2_T := "); +pc__FeatrGrp__2__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_30_F := "); +pc__FeatrGrp__30__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_30_T := "); +pc__FeatrGrp__30__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_31_F := "); +pc__FeatrGrp__31__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_31_T := "); +pc__FeatrGrp__31__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_33_F := "); +pc__FeatrGrp__33__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_33_T := "); +pc__FeatrGrp__33__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_34_F := "); +pc__FeatrGrp__34__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_34_T := "); +pc__FeatrGrp__34__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_35_F := "); +pc__FeatrGrp__35__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_35_T := "); +pc__FeatrGrp__35__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_36_F := "); +pc__FeatrGrp__36__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_36_T := "); +pc__FeatrGrp__36__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_37_F := "); +pc__FeatrGrp__37__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_37_T := "); +pc__FeatrGrp__37__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_38_F := "); +pc__FeatrGrp__38__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_38_T := "); +pc__FeatrGrp__38__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_39_F := "); +pc__FeatrGrp__39__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_39_T := "); +pc__FeatrGrp__39__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_3_F := "); +pc__FeatrGrp__3__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_3_T := "); +pc__FeatrGrp__3__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_40_F := "); +pc__FeatrGrp__40__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_40_T := "); +pc__FeatrGrp__40__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_41_F := "); +pc__FeatrGrp__41__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_41_T := "); +pc__FeatrGrp__41__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_42_F := "); +pc__FeatrGrp__42__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_42_T := "); +pc__FeatrGrp__42__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_4_F := "); +pc__FeatrGrp__4__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_4_T := "); +pc__FeatrGrp__4__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_5_F := "); +pc__FeatrGrp__5__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_5_T := "); +pc__FeatrGrp__5__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_6_F := "); +pc__FeatrGrp__6__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_6_T := "); +pc__FeatrGrp__6__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_7_F := "); +pc__FeatrGrp__7__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_7_T := "); +pc__FeatrGrp__7__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_8_F := "); +pc__FeatrGrp__8__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_8_T := "); +pc__FeatrGrp__8__T.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_9_F := "); +pc__FeatrGrp__9__F.log(); +TTCN_Logger::log_event_str(", pc_FeatrGrp_9_T := "); +pc__FeatrGrp__9__T.log(); +TTCN_Logger::log_event_str(", pc_FullNameNetwork := "); +pc__FullNameNetwork.log(); +TTCN_Logger::log_event_str(", pc_GERAN := "); +pc__GERAN.log(); +TTCN_Logger::log_event_str(", pc_GERAN_2_E_UTRAN_PSHO := "); +pc__GERAN__2__E__UTRAN__PSHO.log(); +TTCN_Logger::log_event_str(", pc_GERAN_2_E_UTRAN_meas := "); +pc__GERAN__2__E__UTRAN__meas.log(); +TTCN_Logger::log_event_str(", pc_GERAN_2_E_UTRAN_measreporting_CCN := "); +pc__GERAN__2__E__UTRAN__measreporting__CCN.log(); +TTCN_Logger::log_event_str(", pc_HO_from_UTRA_to_eFDD := "); +pc__HO__from__UTRA__to__eFDD.log(); +TTCN_Logger::log_event_str(", pc_HO_from_UTRA_to_eTDD := "); +pc__HO__from__UTRA__to__eTDD.log(); +TTCN_Logger::log_event_str(", pc_HRPD := "); +pc__HRPD.log(); +TTCN_Logger::log_event_str(", pc_IMS := "); +pc__IMS.log(); +TTCN_Logger::log_event_str(", pc_IMSI_Detach := "); +pc__IMSI__Detach.log(); +TTCN_Logger::log_event_str(", pc_IMS_APN_default := "); +pc__IMS__APN__default.log(); +TTCN_Logger::log_event_str(", pc_IMS_CS_PS_SRVCC := "); +pc__IMS__CS__PS__SRVCC.log(); +TTCN_Logger::log_event_str(", pc_IMS_CS_PS_SRVCCAlert := "); +pc__IMS__CS__PS__SRVCCAlert.log(); +TTCN_Logger::log_event_str(", pc_IMS_CS_PS_SRVCCMidCall := "); +pc__IMS__CS__PS__SRVCCMidCall.log(); +TTCN_Logger::log_event_str(", pc_IMS_SRVCCAlert := "); +pc__IMS__SRVCCAlert.log(); +TTCN_Logger::log_event_str(", pc_IMS_emergency_call := "); +pc__IMS__emergency__call.log(); +TTCN_Logger::log_event_str(", pc_IPv4 := "); +pc__IPv4.log(); +TTCN_Logger::log_event_str(", pc_IPv6 := "); +pc__IPv6.log(); +TTCN_Logger::log_event_str(", pc_ISR := "); +pc__ISR.log(); +TTCN_Logger::log_event_str(", pc_ImmConnect := "); +pc__ImmConnect.log(); +TTCN_Logger::log_event_str(", pc_InterFreq_ProximityIndication := "); +pc__InterFreq__ProximityIndication.log(); +TTCN_Logger::log_event_str(", pc_IntraFreq_ProximityIndication := "); +pc__IntraFreq__ProximityIndication.log(); +TTCN_Logger::log_event_str(", pc_KeepEpsBearerParametersAfterNormalDetach := "); +pc__KeepEpsBearerParametersAfterNormalDetach.log(); +TTCN_Logger::log_event_str(", pc_LAP := "); +pc__LAP.log(); +TTCN_Logger::log_event_str(", pc_LAP_override := "); +pc__LAP__override.log(); +TTCN_Logger::log_event_str(", pc_LocalTimeZone := "); +pc__LocalTimeZone.log(); +TTCN_Logger::log_event_str(", pc_LoggedMeasurementsIdle := "); +pc__LoggedMeasurementsIdle.log(); +TTCN_Logger::log_event_str(", pc_Manual_CSG_Selection := "); +pc__Manual__CSG__Selection.log(); +TTCN_Logger::log_event_str(", pc_Multiple_PDN := "); +pc__Multiple__PDN.log(); +TTCN_Logger::log_event_str(", pc_NG114_v1_0 := "); +pc__NG114__v1__0.log(); +TTCN_Logger::log_event_str(", pc_NG114_v2_0 := "); +pc__NG114__v2__0.log(); +TTCN_Logger::log_event_str(", pc_NG_RAN_NR := "); +pc__NG__RAN__NR.log(); +TTCN_Logger::log_event_str(", pc_NR_5GC_EmergencyServices := "); +pc__NR__5GC__EmergencyServices.log(); +TTCN_Logger::log_event_str(", pc_No_USIM_TestExecution := "); +pc__No__USIM__TestExecution.log(); +TTCN_Logger::log_event_str(", pc_PLMN_EF_LRPLMNSI_Automatic_Mode_Exception := "); +pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception.log(); +TTCN_Logger::log_event_str(", pc_PLMN_Manual_Mode_Exception := "); +pc__PLMN__Manual__Mode__Exception.log(); +TTCN_Logger::log_event_str(", pc_PS := "); +pc__PS.log(); +TTCN_Logger::log_event_str(", pc_PS_data_centric := "); +pc__PS__data__centric.log(); +TTCN_Logger::log_event_str(", pc_PS_voice_centric := "); +pc__PS__voice__centric.log(); +TTCN_Logger::log_event_str(", pc_PWS_UpperLayer := "); +pc__PWS__UpperLayer.log(); +TTCN_Logger::log_event_str(", pc_ProvideDST_inUse := "); +pc__ProvideDST__inUse.log(); +TTCN_Logger::log_event_str(", pc_Provide_IMS_APN := "); +pc__Provide__IMS__APN.log(); +TTCN_Logger::log_event_str(", pc_Provide_IMS_as_second_APN := "); +pc__Provide__IMS__as__second__APN.log(); +TTCN_Logger::log_event_str(", pc_Provide_Internet_as_second_APN := "); +pc__Provide__Internet__as__second__APN.log(); +TTCN_Logger::log_event_str(", pc_RLF_ReportForInterRAT_MRO := "); +pc__RLF__ReportForInterRAT__MRO.log(); +TTCN_Logger::log_event_str(", pc_ROHC_profile0x0001 := "); +pc__ROHC__profile0x0001.log(); +TTCN_Logger::log_event_str(", pc_ROHC_profile0x0002 := "); +pc__ROHC__profile0x0002.log(); +TTCN_Logger::log_event_str(", pc_ROHC_profile0x0003 := "); +pc__ROHC__profile0x0003.log(); +TTCN_Logger::log_event_str(", pc_ROHC_profile0x0004 := "); +pc__ROHC__profile0x0004.log(); +TTCN_Logger::log_event_str(", pc_ROHC_profile0x0006 := "); +pc__ROHC__profile0x0006.log(); +TTCN_Logger::log_event_str(", pc_ROHC_profile0x0101 := "); +pc__ROHC__profile0x0101.log(); +TTCN_Logger::log_event_str(", pc_ROHC_profile0x0102 := "); +pc__ROHC__profile0x0102.log(); +TTCN_Logger::log_event_str(", pc_ROHC_profile0x0103 := "); +pc__ROHC__profile0x0103.log(); +TTCN_Logger::log_event_str(", pc_ROHC_profile0x0104 := "); +pc__ROHC__profile0x0104.log(); +TTCN_Logger::log_event_str(", pc_Rach_Report := "); +pc__Rach__Report.log(); +TTCN_Logger::log_event_str(", pc_Re_Attach_AfterDetachColl := "); +pc__Re__Attach__AfterDetachColl.log(); +TTCN_Logger::log_event_str(", pc_RequestIPv4HAAddress_DuringAttach := "); +pc__RequestIPv4HAAddress__DuringAttach.log(); +TTCN_Logger::log_event_str(", pc_RequestIPv6HAAddress_DuringAttach := "); +pc__RequestIPv6HAAddress__DuringAttach.log(); +TTCN_Logger::log_event_str(", pc_SI_Neighbour_UMTS_Autonomous_Gaps := "); +pc__SI__Neighbour__UMTS__Autonomous__Gaps.log(); +TTCN_Logger::log_event_str(", pc_SI_Neighbour_interFreq_Autonomous_Gaps := "); +pc__SI__Neighbour__interFreq__Autonomous__Gaps.log(); +TTCN_Logger::log_event_str(", pc_SI_Neighbour_intraFreq_Autonomous_Gaps := "); +pc__SI__Neighbour__intraFreq__Autonomous__Gaps.log(); +TTCN_Logger::log_event_str(", pc_SMS_SGs := "); +pc__SMS__SGs.log(); +TTCN_Logger::log_event_str(", pc_SMS_SGs_MO := "); +pc__SMS__SGs__MO.log(); +TTCN_Logger::log_event_str(", pc_SMS_SGs_MT := "); +pc__SMS__SGs__MT.log(); +TTCN_Logger::log_event_str(", pc_SMS_SGs_Multi_MO := "); +pc__SMS__SGs__Multi__MO.log(); +TTCN_Logger::log_event_str(", pc_SRVCC_GERAN_UTRAN := "); +pc__SRVCC__GERAN__UTRAN.log(); +TTCN_Logger::log_event_str(", pc_Semi_Persistence_Scheduling := "); +pc__Semi__Persistence__Scheduling.log(); +TTCN_Logger::log_event_str(", pc_ShortNameNetwork := "); +pc__ShortNameNetwork.log(); +TTCN_Logger::log_event_str(", pc_Speech := "); +pc__Speech.log(); +TTCN_Logger::log_event_str(", pc_Squal_based_CellReselection_between_E_UTRAN_and_GERAN := "); +pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN.log(); +TTCN_Logger::log_event_str(", pc_Squal_based_CellReselection_to_E_UTRAN_from_UTRAN := "); +pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN.log(); +TTCN_Logger::log_event_str(", pc_Squal_based_CellReselection_to_UTRAN_from_E_UTRAN := "); +pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN.log(); +TTCN_Logger::log_event_str(", pc_StandaloneGNSS_Location := "); +pc__StandaloneGNSS__Location.log(); +TTCN_Logger::log_event_str(", pc_SupportOpModeA := "); +pc__SupportOpModeA.log(); +TTCN_Logger::log_event_str(", pc_SwitchOnOff := "); +pc__SwitchOnOff.log(); +TTCN_Logger::log_event_str(", pc_TAU_connected_in_IMS := "); +pc__TAU__connected__in__IMS.log(); +TTCN_Logger::log_event_str(", pc_TAU_idle_in_IMS := "); +pc__TAU__idle__in__IMS.log(); +TTCN_Logger::log_event_str(", pc_TDD_HCR := "); +pc__TDD__HCR.log(); +TTCN_Logger::log_event_str(", pc_TDD_LCR := "); +pc__TDD__LCR.log(); +TTCN_Logger::log_event_str(", pc_TDD_VHCR := "); +pc__TDD__VHCR.log(); +TTCN_Logger::log_event_str(", pc_TTI_Bundling := "); +pc__TTI__Bundling.log(); +TTCN_Logger::log_event_str(", pc_TestModeforCSGproximity := "); +pc__TestModeforCSGproximity.log(); +TTCN_Logger::log_event_str(", pc_UE_supports_user_initiated_PDN_disconnect := "); +pc__UE__supports__user__initiated__PDN__disconnect.log(); +TTCN_Logger::log_event_str(", pc_UL_MIMO := "); +pc__UL__MIMO.log(); +TTCN_Logger::log_event_str(", pc_UMI_ProcNeeded_DuringCSFB := "); +pc__UMI__ProcNeeded__DuringCSFB.log(); +TTCN_Logger::log_event_str(", pc_UMTS_GSM := "); +pc__UMTS__GSM.log(); +TTCN_Logger::log_event_str(", pc_USIM_Removal := "); +pc__USIM__Removal.log(); +TTCN_Logger::log_event_str(", pc_UTRA := "); +pc__UTRA.log(); +TTCN_Logger::log_event_str(", pc_UTRAN_ANR := "); +pc__UTRAN__ANR.log(); +TTCN_Logger::log_event_str(", pc_UTRAN_ProximityIndication := "); +pc__UTRAN__ProximityIndication.log(); +TTCN_Logger::log_event_str(", pc_UTRA_FeatrGrp_1 := "); +pc__UTRA__FeatrGrp__1.log(); +TTCN_Logger::log_event_str(", pc_UTRA_FeatrGrp_2 := "); +pc__UTRA__FeatrGrp__2.log(); +TTCN_Logger::log_event_str(", pc_UTRA_FeatrGrp_3 := "); +pc__UTRA__FeatrGrp__3.log(); +TTCN_Logger::log_event_str(", pc_UTRA_FeatrGrp_4 := "); +pc__UTRA__FeatrGrp__4.log(); +TTCN_Logger::log_event_str(", pc_UeAssistedAgps := "); +pc__UeAssistedAgps.log(); +TTCN_Logger::log_event_str(", pc_UeBasedAgps := "); +pc__UeBasedAgps.log(); +TTCN_Logger::log_event_str(", pc_UniversalAndLocalTimeZone := "); +pc__UniversalAndLocalTimeZone.log(); +TTCN_Logger::log_event_str(", pc_UpdateUE_LocationInformation := "); +pc__UpdateUE__LocationInformation.log(); +TTCN_Logger::log_event_str(", pc_UserInitiatedPLMN_Reselection := "); +pc__UserInitiatedPLMN__Reselection.log(); +TTCN_Logger::log_event_str(", pc_VoLTE := "); +pc__VoLTE.log(); +TTCN_Logger::log_event_str(", pc_WLAN_Meas_Imm_MDT := "); +pc__WLAN__Meas__Imm__MDT.log(); +TTCN_Logger::log_event_str(", pc_WLAN_Meas_logged_MDT := "); +pc__WLAN__Meas__logged__MDT.log(); +TTCN_Logger::log_event_str(", pc_WLAN_voice := "); +pc__WLAN__voice.log(); +TTCN_Logger::log_event_str(", pc_XCAP_only_APN := "); +pc__XCAP__only__APN.log(); +TTCN_Logger::log_event_str(", pc_XCAP_over_Internet_APN := "); +pc__XCAP__over__Internet__APN.log(); +TTCN_Logger::log_event_str(", pc_ZUC := "); +pc__ZUC.log(); +TTCN_Logger::log_event_str(", pc_eCall_Test_Call := "); +pc__eCall__Test__Call.log(); +TTCN_Logger::log_event_str(", pc_eFDD := "); +pc__eFDD.log(); +TTCN_Logger::log_event_str(", pc_eFDD_MultiBand := "); +pc__eFDD__MultiBand.log(); +TTCN_Logger::log_event_str(", pc_eMBMS := "); +pc__eMBMS.log(); +TTCN_Logger::log_event_str(", pc_eMBMS_SC := "); +pc__eMBMS__SC.log(); +TTCN_Logger::log_event_str(", pc_eMinimumPeriodicSearchTimer := "); +pc__eMinimumPeriodicSearchTimer.log(); +TTCN_Logger::log_event_str(", pc_eRedirectionUTRA := "); +pc__eRedirectionUTRA.log(); +TTCN_Logger::log_event_str(", pc_eTDD := "); +pc__eTDD.log(); +TTCN_Logger::log_event_str(", pc_eTDD_MultiBand := "); +pc__eTDD__MultiBand.log(); +TTCN_Logger::log_event_str(", pc_eWLAN := "); +pc__eWLAN.log(); +TTCN_Logger::log_event_str(", pc_multipleTimingAdvance := "); +pc__multipleTimingAdvance.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_0 := "); +pc__ue__CategoryDL__0.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_10 := "); +pc__ue__CategoryDL__10.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_11 := "); +pc__ue__CategoryDL__11.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_12 := "); +pc__ue__CategoryDL__12.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_13 := "); +pc__ue__CategoryDL__13.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_14 := "); +pc__ue__CategoryDL__14.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_15 := "); +pc__ue__CategoryDL__15.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_16 := "); +pc__ue__CategoryDL__16.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_17 := "); +pc__ue__CategoryDL__17.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_18 := "); +pc__ue__CategoryDL__18.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_19 := "); +pc__ue__CategoryDL__19.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_1bis := "); +pc__ue__CategoryDL__1bis.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_20 := "); +pc__ue__CategoryDL__20.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_21 := "); +pc__ue__CategoryDL__21.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_22 := "); +pc__ue__CategoryDL__22.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_23 := "); +pc__ue__CategoryDL__23.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_24 := "); +pc__ue__CategoryDL__24.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_25 := "); +pc__ue__CategoryDL__25.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_26 := "); +pc__ue__CategoryDL__26.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_4 := "); +pc__ue__CategoryDL__4.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_6 := "); +pc__ue__CategoryDL__6.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_7 := "); +pc__ue__CategoryDL__7.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_9 := "); +pc__ue__CategoryDL__9.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_M1 := "); +pc__ue__CategoryDL__M1.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryDL_M2 := "); +pc__ue__CategoryDL__M2.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_0 := "); +pc__ue__CategoryUL__0.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_13 := "); +pc__ue__CategoryUL__13.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_14 := "); +pc__ue__CategoryUL__14.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_15 := "); +pc__ue__CategoryUL__15.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_16 := "); +pc__ue__CategoryUL__16.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_17 := "); +pc__ue__CategoryUL__17.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_18 := "); +pc__ue__CategoryUL__18.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_19 := "); +pc__ue__CategoryUL__19.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_1bis := "); +pc__ue__CategoryUL__1bis.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_20 := "); +pc__ue__CategoryUL__20.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_21 := "); +pc__ue__CategoryUL__21.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_22 := "); +pc__ue__CategoryUL__22.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_23 := "); +pc__ue__CategoryUL__23.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_24 := "); +pc__ue__CategoryUL__24.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_25 := "); +pc__ue__CategoryUL__25.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_26 := "); +pc__ue__CategoryUL__26.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_3 := "); +pc__ue__CategoryUL__3.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_5 := "); +pc__ue__CategoryUL__5.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_7 := "); +pc__ue__CategoryUL__7.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_8 := "); +pc__ue__CategoryUL__8.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_M1 := "); +pc__ue__CategoryUL__M1.log(); +TTCN_Logger::log_event_str(", pc_ue_CategoryUL_M2 := "); +pc__ue__CategoryUL__M2.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_1 := "); +pc__ue__Category__1.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_10 := "); +pc__ue__Category__10.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_11 := "); +pc__ue__Category__11.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_12 := "); +pc__ue__Category__12.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_2 := "); +pc__ue__Category__2.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_3 := "); +pc__ue__Category__3.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_4 := "); +pc__ue__Category__4.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_5 := "); +pc__ue__Category__5.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_6 := "); +pc__ue__Category__6.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_7 := "); +pc__ue__Category__7.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_8 := "); +pc__ue__Category__8.log(); +TTCN_Logger::log_event_str(", pc_ue_Category_9 := "); +pc__ue__Category__9.log(); +TTCN_Logger::log_event_str(", pc_voiceOverNR := "); +pc__voiceOverNR.log(); +TTCN_Logger::log_event_str(", pc_voice_PS_1_CS_2 := "); +pc__voice__PS__1__CS__2.log(); +} + + +} /* end of namespace */ diff --git a/build/Ats_NG_NAS/Parameters.hh b/build/Ats_NG_NAS/Parameters.hh new file mode 100644 index 0000000000000000000000000000000000000000..621c0443368e8ca60811af7c9de015c9ad94808f --- /dev/null +++ b/build/Ats_NG_NAS/Parameters.hh @@ -0,0 +1,454 @@ +// This C++ header file was generated by the TTCN-3 compiler +// of the TTCN-3 Test Executor version 10.0.0 +// for (yanng@FSCOM-Dev-Win) on Thu Jul 18 12:16:49 2024 + +// Copyright (c) 2000-2023 Ericsson Telecom AB + +// Do not edit this file unless you know what you are doing. + +#ifndef Parameters_HH +#define Parameters_HH + +#ifndef TITAN_RUNTIME_2 +#error Generated code does not match with used runtime.\ + Code was generated with -R option but -DTITAN_RUNTIME_2 was not used. +#endif + +/* Header file includes */ + +#include +#include "NAS_CommonTypeDefs.hh" + +#if TTCN3_VERSION != 100000 +#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 + +namespace Parameters { + +/* Global variable declarations */ + +extern const NAS__CommonTypeDefs::APN__DefaultConfiguration__Type& pc__APN__Default__Configuration; +extern const CHARSTRING& pc__APN__ID__Ethernet; +extern const CHARSTRING& pc__APN__ID__IMS; +extern const CHARSTRING& pc__APN__ID__Internet; +extern const CHARSTRING& pc__APN__ID__MIOT; +extern const CHARSTRING& pc__APN__ID__URLLC; +extern const CHARSTRING& pc__APN__ID__V2X; +extern const OCTETSTRING& px__AccessPointName; +extern const INTEGER& px__AquireGNSS__MaxTime; +extern const CommonDefs::EUTRA__ATTACH__TESTED__Type& px__AttachTypeTested; +extern const BITSTRING& px__AuthAMF; +extern const BITSTRING& px__AuthK; +extern const OCTETSTRING& px__EllipsoidPointWithAltitude; +extern const CHARSTRING& px__EmergencyCallNumber; +extern const INTEGER& px__FDD__OperationBand; +extern const OCTETSTRING& px__HorizontalVelocity; +extern const HEXSTRING& px__IMEISV__Def; +extern const HEXSTRING& px__IMEI__Def; +extern const HEXSTRING& px__IMSI__Def; +extern const HEXSTRING& px__IMSI__Diff; +extern const INTEGER& px__IP__MTU__Size; +extern const CHARSTRING& px__IPv4__Address1__NW; +extern const CHARSTRING& px__IPv4__Address1__RemoteUE; +extern const CHARSTRING& px__IPv4__Address1__UE; +extern const CHARSTRING& px__IPv4__Address2__NW; +extern const CHARSTRING& px__IPv4__Address2__RemoteUE; +extern const CHARSTRING& px__IPv4__Address2__UE; +extern const CHARSTRING& px__IPv4__Address2a__UE; +extern const CHARSTRING& px__IPv4__Address3__NW; +extern const CHARSTRING& px__IPv4__Address3__RemoteUE; +extern const CHARSTRING& px__IPv4__Address3__UE; +extern const CHARSTRING& px__IPv4__Address4__NW; +extern const CHARSTRING& px__IPv4__Address4__UE; +extern const CHARSTRING& px__IPv4__Address5__NW; +extern const CHARSTRING& px__IPv4__Address5__UE; +extern const CHARSTRING& px__IPv4__Address6__NW; +extern const CHARSTRING& px__IPv4__Address6__UE; +extern const CHARSTRING& px__IPv4__Address__HomeAgent; +extern const CHARSTRING& px__IPv6__Address1__NW; +extern const CHARSTRING& px__IPv6__Address1__RemoteUE; +extern const CHARSTRING& px__IPv6__Address1__UE; +extern const CHARSTRING& px__IPv6__Address2__NW; +extern const CHARSTRING& px__IPv6__Address2__RemoteUE; +extern const CHARSTRING& px__IPv6__Address2__UE; +extern const CHARSTRING& px__IPv6__Address2a__UE; +extern const CHARSTRING& px__IPv6__Address3__NW; +extern const CHARSTRING& px__IPv6__Address3__RemoteUE; +extern const CHARSTRING& px__IPv6__Address3__UE; +extern const CHARSTRING& px__IPv6__Address4__NW; +extern const CHARSTRING& px__IPv6__Address4__UE; +extern const CHARSTRING& px__IPv6__Address5__NW; +extern const CHARSTRING& px__IPv6__Address5__UE; +extern const CHARSTRING& px__IPv6__Address6__NW; +extern const CHARSTRING& px__IPv6__Address6__UE; +extern const CHARSTRING& px__IPv6__Address__HomeAgent; +extern const INTEGER& px__MFBI__UTRAN__FrequencyBand; +extern const BITSTRING& px__NAS__CipheringAlgorithm; +extern const BITSTRING& px__NAS__IntegrityProtAlgorithm; +extern const OCTETSTRING& px__PTMSI__Def; +extern const OCTETSTRING& px__PTMSI__SigDef; +extern const BITSTRING& px__PWS__CB__DataCodingScheme; +extern const CHARSTRING& px__PWS__CB__DataPage1; +extern const CHARSTRING& px__PWS__CB__DataPage2; +extern const CHARSTRING& px__PWS__CB__DataPage3; +extern const CHARSTRING& px__PWS__CB__DataPage4; +extern const CommonDefs::RATComb__Tested__Type& px__RATComb__Tested; +extern const BOOLEAN& px__SMS__ChkMsgReceived; +extern const INTEGER& px__SMS__IndexOffset; +extern const CHARSTRING& px__SMS__MsgFrmt; +extern const CHARSTRING& px__SMS__PrefMem1; +extern const CHARSTRING& px__SMS__PrefMem2; +extern const CHARSTRING& px__SMS__PrefMem3; +extern const CHARSTRING& px__SMS__Service; +extern const CommonDefs::SinglePLMN__TestedType& px__SinglePLMN__Tested; +extern const OCTETSTRING& px__TMSI__Def; +extern const OCTETSTRING& px__TestLoopModeB__Delay; +extern const NAS__CommonTypeDefs::CS__PS__MODE& px__UE__CS__PS__UsageSetting__Tested; +extern const NAS__CommonTypeDefs::PS__MODE& px__UE__PS__UsageSetting__Tested; +extern const CommonDefs::UTRAN__FDD__TDD__Type& px__UTRAN__ModeUnderTest; +extern const INTEGER& px__UTRAN__OverlappingNotSupportedFrequencyBandMFBI; +extern const BOOLEAN& px__WLAN__PDN1__ToOffload; +extern const BITSTRING& px__eAuthRAND; +extern const HEXSTRING& px__eJapanMCC__Band6; +extern const INTEGER& px__ePrimaryFrequencyBand; +extern const BOOLEAN& pc__1xCSfallback; +extern const BOOLEAN& pc__1xRTT; +extern const BOOLEAN& pc__A5__4__CS; +extern const BOOLEAN& pc__Allowed__CSG__list; +extern const BOOLEAN& pc__Attach; +extern const BOOLEAN& pc__Auto__PDN__Connectivity; +extern const BOOLEAN& pc__Automatic__EPS__Re__Attach; +extern const BOOLEAN& pc__Automatic__Re__Attach; +extern const BOOLEAN& pc__Available__PLMNs__AcT__Ind; +extern const BOOLEAN& pc__BSRVCC; +extern const BOOLEAN& pc__CMAS__Message; +extern const BOOLEAN& pc__CS; +extern const BOOLEAN& pc__CS__Em__Call__in__1xRTT; +extern const BOOLEAN& pc__CS__Em__Call__in__GERAN; +extern const BOOLEAN& pc__CS__Em__Call__in__UTRA; +extern const BOOLEAN& pc__CS__Fallback; +extern const BOOLEAN& pc__CS__PS__data__centric; +extern const BOOLEAN& pc__CS__PS__voice__centric; +extern const BOOLEAN& pc__Combined__Attach; +extern const BOOLEAN& pc__DSMIPv6; +extern const BOOLEAN& pc__DaylightSavingTime; +extern const BOOLEAN& pc__DualRM__Coding; +extern const BOOLEAN& pc__EAB; +extern const BOOLEAN& pc__EAB__override; +extern const BOOLEAN& pc__EDTM; +extern const BOOLEAN& pc__EMM__Information; +extern const BOOLEAN& pc__EPC__RACS; +extern const BOOLEAN& pc__EPS__IMS__EmergencyCall; +extern const BOOLEAN& pc__EPS__Services__Disable; +extern const BOOLEAN& pc__ESM__MO__Bearer__Allocation; +extern const BOOLEAN& pc__ESM__MO__Bearer__Modification; +extern const BOOLEAN& pc__ESM__Notification; +extern const BOOLEAN& pc__ESM__UE__Modification__NW__TFT; +extern const BOOLEAN& pc__ETWS__message; +extern const BOOLEAN& pc__E__UTRAN__2__GERAN__PSHO; +extern const BOOLEAN& pc__E__UTRA__WLAN__offload; +extern const BOOLEAN& pc__EmergSpeech; +extern const BOOLEAN& pc__FDD; +extern const BOOLEAN& pc__FeatrGrp__101__F; +extern const BOOLEAN& pc__FeatrGrp__101__T; +extern const BOOLEAN& pc__FeatrGrp__102__F; +extern const BOOLEAN& pc__FeatrGrp__102__T; +extern const BOOLEAN& pc__FeatrGrp__103__F; +extern const BOOLEAN& pc__FeatrGrp__103__T; +extern const BOOLEAN& pc__FeatrGrp__104__F; +extern const BOOLEAN& pc__FeatrGrp__104__T; +extern const BOOLEAN& pc__FeatrGrp__105__F; +extern const BOOLEAN& pc__FeatrGrp__105__T; +extern const BOOLEAN& pc__FeatrGrp__106__F; +extern const BOOLEAN& pc__FeatrGrp__106__T; +extern const BOOLEAN& pc__FeatrGrp__107__F; +extern const BOOLEAN& pc__FeatrGrp__107__T; +extern const BOOLEAN& pc__FeatrGrp__108__F; +extern const BOOLEAN& pc__FeatrGrp__108__T; +extern const BOOLEAN& pc__FeatrGrp__109__F; +extern const BOOLEAN& pc__FeatrGrp__109__T; +extern const BOOLEAN& pc__FeatrGrp__10__F; +extern const BOOLEAN& pc__FeatrGrp__10__T; +extern const BOOLEAN& pc__FeatrGrp__110__F; +extern const BOOLEAN& pc__FeatrGrp__110__T; +extern const BOOLEAN& pc__FeatrGrp__111__F; +extern const BOOLEAN& pc__FeatrGrp__111__T; +extern const BOOLEAN& pc__FeatrGrp__112__F; +extern const BOOLEAN& pc__FeatrGrp__112__T; +extern const BOOLEAN& pc__FeatrGrp__113__F; +extern const BOOLEAN& pc__FeatrGrp__113__T; +extern const BOOLEAN& pc__FeatrGrp__114__F; +extern const BOOLEAN& pc__FeatrGrp__114__T; +extern const BOOLEAN& pc__FeatrGrp__115__F; +extern const BOOLEAN& pc__FeatrGrp__115__T; +extern const BOOLEAN& pc__FeatrGrp__116__F; +extern const BOOLEAN& pc__FeatrGrp__116__T; +extern const BOOLEAN& pc__FeatrGrp__11__F; +extern const BOOLEAN& pc__FeatrGrp__11__T; +extern const BOOLEAN& pc__FeatrGrp__12__F; +extern const BOOLEAN& pc__FeatrGrp__12__T; +extern const BOOLEAN& pc__FeatrGrp__13__F; +extern const BOOLEAN& pc__FeatrGrp__13__T; +extern const BOOLEAN& pc__FeatrGrp__14__F; +extern const BOOLEAN& pc__FeatrGrp__14__T; +extern const BOOLEAN& pc__FeatrGrp__15__F; +extern const BOOLEAN& pc__FeatrGrp__15__T; +extern const BOOLEAN& pc__FeatrGrp__16__F; +extern const BOOLEAN& pc__FeatrGrp__16__T; +extern const BOOLEAN& pc__FeatrGrp__17__F; +extern const BOOLEAN& pc__FeatrGrp__17__T; +extern const BOOLEAN& pc__FeatrGrp__18__F; +extern const BOOLEAN& pc__FeatrGrp__18__T; +extern const BOOLEAN& pc__FeatrGrp__19__F; +extern const BOOLEAN& pc__FeatrGrp__19__T; +extern const BOOLEAN& pc__FeatrGrp__1__F; +extern const BOOLEAN& pc__FeatrGrp__1__T; +extern const BOOLEAN& pc__FeatrGrp__20__F; +extern const BOOLEAN& pc__FeatrGrp__20__T; +extern const BOOLEAN& pc__FeatrGrp__21__F; +extern const BOOLEAN& pc__FeatrGrp__21__T; +extern const BOOLEAN& pc__FeatrGrp__22__F; +extern const BOOLEAN& pc__FeatrGrp__22__T; +extern const BOOLEAN& pc__FeatrGrp__23__F; +extern const BOOLEAN& pc__FeatrGrp__23__T; +extern const BOOLEAN& pc__FeatrGrp__24__F; +extern const BOOLEAN& pc__FeatrGrp__24__T; +extern const BOOLEAN& pc__FeatrGrp__25__F; +extern const BOOLEAN& pc__FeatrGrp__25__T; +extern const BOOLEAN& pc__FeatrGrp__26__F; +extern const BOOLEAN& pc__FeatrGrp__26__T; +extern const BOOLEAN& pc__FeatrGrp__27__F; +extern const BOOLEAN& pc__FeatrGrp__27__T; +extern const BOOLEAN& pc__FeatrGrp__28__F; +extern const BOOLEAN& pc__FeatrGrp__28__T; +extern const BOOLEAN& pc__FeatrGrp__29__F; +extern const BOOLEAN& pc__FeatrGrp__29__T; +extern const BOOLEAN& pc__FeatrGrp__2__F; +extern const BOOLEAN& pc__FeatrGrp__2__T; +extern const BOOLEAN& pc__FeatrGrp__30__F; +extern const BOOLEAN& pc__FeatrGrp__30__T; +extern const BOOLEAN& pc__FeatrGrp__31__F; +extern const BOOLEAN& pc__FeatrGrp__31__T; +extern const BOOLEAN& pc__FeatrGrp__33__F; +extern const BOOLEAN& pc__FeatrGrp__33__T; +extern const BOOLEAN& pc__FeatrGrp__34__F; +extern const BOOLEAN& pc__FeatrGrp__34__T; +extern const BOOLEAN& pc__FeatrGrp__35__F; +extern const BOOLEAN& pc__FeatrGrp__35__T; +extern const BOOLEAN& pc__FeatrGrp__36__F; +extern const BOOLEAN& pc__FeatrGrp__36__T; +extern const BOOLEAN& pc__FeatrGrp__37__F; +extern const BOOLEAN& pc__FeatrGrp__37__T; +extern const BOOLEAN& pc__FeatrGrp__38__F; +extern const BOOLEAN& pc__FeatrGrp__38__T; +extern const BOOLEAN& pc__FeatrGrp__39__F; +extern const BOOLEAN& pc__FeatrGrp__39__T; +extern const BOOLEAN& pc__FeatrGrp__3__F; +extern const BOOLEAN& pc__FeatrGrp__3__T; +extern const BOOLEAN& pc__FeatrGrp__40__F; +extern const BOOLEAN& pc__FeatrGrp__40__T; +extern const BOOLEAN& pc__FeatrGrp__41__F; +extern const BOOLEAN& pc__FeatrGrp__41__T; +extern const BOOLEAN& pc__FeatrGrp__42__F; +extern const BOOLEAN& pc__FeatrGrp__42__T; +extern const BOOLEAN& pc__FeatrGrp__4__F; +extern const BOOLEAN& pc__FeatrGrp__4__T; +extern const BOOLEAN& pc__FeatrGrp__5__F; +extern const BOOLEAN& pc__FeatrGrp__5__T; +extern const BOOLEAN& pc__FeatrGrp__6__F; +extern const BOOLEAN& pc__FeatrGrp__6__T; +extern const BOOLEAN& pc__FeatrGrp__7__F; +extern const BOOLEAN& pc__FeatrGrp__7__T; +extern const BOOLEAN& pc__FeatrGrp__8__F; +extern const BOOLEAN& pc__FeatrGrp__8__T; +extern const BOOLEAN& pc__FeatrGrp__9__F; +extern const BOOLEAN& pc__FeatrGrp__9__T; +extern const BOOLEAN& pc__FullNameNetwork; +extern const BOOLEAN& pc__GERAN; +extern const BOOLEAN& pc__GERAN__2__E__UTRAN__PSHO; +extern const BOOLEAN& pc__GERAN__2__E__UTRAN__meas; +extern const BOOLEAN& pc__GERAN__2__E__UTRAN__measreporting__CCN; +extern const BOOLEAN& pc__HO__from__UTRA__to__eFDD; +extern const BOOLEAN& pc__HO__from__UTRA__to__eTDD; +extern const BOOLEAN& pc__HRPD; +extern const BOOLEAN& pc__IMS; +extern const BOOLEAN& pc__IMSI__Detach; +extern const BOOLEAN& pc__IMS__APN__default; +extern const BOOLEAN& pc__IMS__CS__PS__SRVCC; +extern const BOOLEAN& pc__IMS__CS__PS__SRVCCAlert; +extern const BOOLEAN& pc__IMS__CS__PS__SRVCCMidCall; +extern const BOOLEAN& pc__IMS__SRVCCAlert; +extern const BOOLEAN& pc__IMS__emergency__call; +extern const BOOLEAN& pc__IPv4; +extern const BOOLEAN& pc__IPv6; +extern const BOOLEAN& pc__ISR; +extern const BOOLEAN& pc__ImmConnect; +extern const BOOLEAN& pc__InterFreq__ProximityIndication; +extern const BOOLEAN& pc__IntraFreq__ProximityIndication; +extern const BOOLEAN& pc__KeepEpsBearerParametersAfterNormalDetach; +extern const BOOLEAN& pc__LAP; +extern const BOOLEAN& pc__LAP__override; +extern const BOOLEAN& pc__LocalTimeZone; +extern const BOOLEAN& pc__LoggedMeasurementsIdle; +extern const BOOLEAN& pc__Manual__CSG__Selection; +extern const BOOLEAN& pc__Multiple__PDN; +extern const BOOLEAN& pc__NG114__v1__0; +extern const BOOLEAN& pc__NG114__v2__0; +extern const BOOLEAN& pc__NG__RAN__NR; +extern const BOOLEAN& pc__NR__5GC__EmergencyServices; +extern const BOOLEAN& pc__No__USIM__TestExecution; +extern const BOOLEAN& pc__PLMN__EF__LRPLMNSI__Automatic__Mode__Exception; +extern const BOOLEAN& pc__PLMN__Manual__Mode__Exception; +extern const BOOLEAN& pc__PS; +extern const BOOLEAN& pc__PS__data__centric; +extern const BOOLEAN& pc__PS__voice__centric; +extern const BOOLEAN& pc__PWS__UpperLayer; +extern const BOOLEAN& pc__ProvideDST__inUse; +extern const BOOLEAN& pc__Provide__IMS__APN; +extern const BOOLEAN& pc__Provide__IMS__as__second__APN; +extern const BOOLEAN& pc__Provide__Internet__as__second__APN; +extern const BOOLEAN& pc__RLF__ReportForInterRAT__MRO; +extern const BOOLEAN& pc__ROHC__profile0x0001; +extern const BOOLEAN& pc__ROHC__profile0x0002; +extern const BOOLEAN& pc__ROHC__profile0x0003; +extern const BOOLEAN& pc__ROHC__profile0x0004; +extern const BOOLEAN& pc__ROHC__profile0x0006; +extern const BOOLEAN& pc__ROHC__profile0x0101; +extern const BOOLEAN& pc__ROHC__profile0x0102; +extern const BOOLEAN& pc__ROHC__profile0x0103; +extern const BOOLEAN& pc__ROHC__profile0x0104; +extern const BOOLEAN& pc__Rach__Report; +extern const BOOLEAN& pc__Re__Attach__AfterDetachColl; +extern const BOOLEAN& pc__RequestIPv4HAAddress__DuringAttach; +extern const BOOLEAN& pc__RequestIPv6HAAddress__DuringAttach; +extern const BOOLEAN& pc__SI__Neighbour__UMTS__Autonomous__Gaps; +extern const BOOLEAN& pc__SI__Neighbour__interFreq__Autonomous__Gaps; +extern const BOOLEAN& pc__SI__Neighbour__intraFreq__Autonomous__Gaps; +extern const BOOLEAN& pc__SMS__SGs; +extern const BOOLEAN& pc__SMS__SGs__MO; +extern const BOOLEAN& pc__SMS__SGs__MT; +extern const BOOLEAN& pc__SMS__SGs__Multi__MO; +extern const BOOLEAN& pc__SRVCC__GERAN__UTRAN; +extern const BOOLEAN& pc__Semi__Persistence__Scheduling; +extern const BOOLEAN& pc__ShortNameNetwork; +extern const BOOLEAN& pc__Speech; +extern const BOOLEAN& pc__Squal__based__CellReselection__between__E__UTRAN__and__GERAN; +extern const BOOLEAN& pc__Squal__based__CellReselection__to__E__UTRAN__from__UTRAN; +extern const BOOLEAN& pc__Squal__based__CellReselection__to__UTRAN__from__E__UTRAN; +extern const BOOLEAN& pc__StandaloneGNSS__Location; +extern const BOOLEAN& pc__SupportOpModeA; +extern const BOOLEAN& pc__SwitchOnOff; +extern const BOOLEAN& pc__TAU__connected__in__IMS; +extern const BOOLEAN& pc__TAU__idle__in__IMS; +extern const BOOLEAN& pc__TDD__HCR; +extern const BOOLEAN& pc__TDD__LCR; +extern const BOOLEAN& pc__TDD__VHCR; +extern const BOOLEAN& pc__TTI__Bundling; +extern const BOOLEAN& pc__TestModeforCSGproximity; +extern const BOOLEAN& pc__UE__supports__user__initiated__PDN__disconnect; +extern const BOOLEAN& pc__UL__MIMO; +extern const BOOLEAN& pc__UMI__ProcNeeded__DuringCSFB; +extern const BOOLEAN& pc__UMTS__GSM; +extern const BOOLEAN& pc__USIM__Removal; +extern const BOOLEAN& pc__UTRA; +extern const BOOLEAN& pc__UTRAN__ANR; +extern const BOOLEAN& pc__UTRAN__ProximityIndication; +extern const BOOLEAN& pc__UTRA__FeatrGrp__1; +extern const BOOLEAN& pc__UTRA__FeatrGrp__2; +extern const BOOLEAN& pc__UTRA__FeatrGrp__3; +extern const BOOLEAN& pc__UTRA__FeatrGrp__4; +extern const BOOLEAN& pc__UeAssistedAgps; +extern const BOOLEAN& pc__UeBasedAgps; +extern const BOOLEAN& pc__UniversalAndLocalTimeZone; +extern const BOOLEAN& pc__UpdateUE__LocationInformation; +extern const BOOLEAN& pc__UserInitiatedPLMN__Reselection; +extern const BOOLEAN& pc__VoLTE; +extern const BOOLEAN& pc__WLAN__Meas__Imm__MDT; +extern const BOOLEAN& pc__WLAN__Meas__logged__MDT; +extern const BOOLEAN& pc__WLAN__voice; +extern const BOOLEAN& pc__XCAP__only__APN; +extern const BOOLEAN& pc__XCAP__over__Internet__APN; +extern const BOOLEAN& pc__ZUC; +extern const BOOLEAN& pc__eCall__Test__Call; +extern const BOOLEAN& pc__eFDD; +extern const BOOLEAN& pc__eFDD__MultiBand; +extern const BOOLEAN& pc__eMBMS; +extern const BOOLEAN& pc__eMBMS__SC; +extern const BOOLEAN& pc__eMinimumPeriodicSearchTimer; +extern const BOOLEAN& pc__eRedirectionUTRA; +extern const BOOLEAN& pc__eTDD; +extern const BOOLEAN& pc__eTDD__MultiBand; +extern const BOOLEAN& pc__eWLAN; +extern const BOOLEAN& pc__multipleTimingAdvance; +extern const BOOLEAN& pc__ue__CategoryDL__0; +extern const BOOLEAN& pc__ue__CategoryDL__10; +extern const BOOLEAN& pc__ue__CategoryDL__11; +extern const BOOLEAN& pc__ue__CategoryDL__12; +extern const BOOLEAN& pc__ue__CategoryDL__13; +extern const BOOLEAN& pc__ue__CategoryDL__14; +extern const BOOLEAN& pc__ue__CategoryDL__15; +extern const BOOLEAN& pc__ue__CategoryDL__16; +extern const BOOLEAN& pc__ue__CategoryDL__17; +extern const BOOLEAN& pc__ue__CategoryDL__18; +extern const BOOLEAN& pc__ue__CategoryDL__19; +extern const BOOLEAN& pc__ue__CategoryDL__1bis; +extern const BOOLEAN& pc__ue__CategoryDL__20; +extern const BOOLEAN& pc__ue__CategoryDL__21; +extern const BOOLEAN& pc__ue__CategoryDL__22; +extern const BOOLEAN& pc__ue__CategoryDL__23; +extern const BOOLEAN& pc__ue__CategoryDL__24; +extern const BOOLEAN& pc__ue__CategoryDL__25; +extern const BOOLEAN& pc__ue__CategoryDL__26; +extern const BOOLEAN& pc__ue__CategoryDL__4; +extern const BOOLEAN& pc__ue__CategoryDL__6; +extern const BOOLEAN& pc__ue__CategoryDL__7; +extern const BOOLEAN& pc__ue__CategoryDL__9; +extern const BOOLEAN& pc__ue__CategoryDL__M1; +extern const BOOLEAN& pc__ue__CategoryDL__M2; +extern const BOOLEAN& pc__ue__CategoryUL__0; +extern const BOOLEAN& pc__ue__CategoryUL__13; +extern const BOOLEAN& pc__ue__CategoryUL__14; +extern const BOOLEAN& pc__ue__CategoryUL__15; +extern const BOOLEAN& pc__ue__CategoryUL__16; +extern const BOOLEAN& pc__ue__CategoryUL__17; +extern const BOOLEAN& pc__ue__CategoryUL__18; +extern const BOOLEAN& pc__ue__CategoryUL__19; +extern const BOOLEAN& pc__ue__CategoryUL__1bis; +extern const BOOLEAN& pc__ue__CategoryUL__20; +extern const BOOLEAN& pc__ue__CategoryUL__21; +extern const BOOLEAN& pc__ue__CategoryUL__22; +extern const BOOLEAN& pc__ue__CategoryUL__23; +extern const BOOLEAN& pc__ue__CategoryUL__24; +extern const BOOLEAN& pc__ue__CategoryUL__25; +extern const BOOLEAN& pc__ue__CategoryUL__26; +extern const BOOLEAN& pc__ue__CategoryUL__3; +extern const BOOLEAN& pc__ue__CategoryUL__5; +extern const BOOLEAN& pc__ue__CategoryUL__7; +extern const BOOLEAN& pc__ue__CategoryUL__8; +extern const BOOLEAN& pc__ue__CategoryUL__M1; +extern const BOOLEAN& pc__ue__CategoryUL__M2; +extern const BOOLEAN& pc__ue__Category__1; +extern const BOOLEAN& pc__ue__Category__10; +extern const BOOLEAN& pc__ue__Category__11; +extern const BOOLEAN& pc__ue__Category__12; +extern const BOOLEAN& pc__ue__Category__2; +extern const BOOLEAN& pc__ue__Category__3; +extern const BOOLEAN& pc__ue__Category__4; +extern const BOOLEAN& pc__ue__Category__5; +extern const BOOLEAN& pc__ue__Category__6; +extern const BOOLEAN& pc__ue__Category__7; +extern const BOOLEAN& pc__ue__Category__8; +extern const BOOLEAN& pc__ue__Category__9; +extern const BOOLEAN& pc__voiceOverNR; +extern const BOOLEAN& pc__voice__PS__1__CS__2; +extern TTCN_Module module_object; + +} /* end of namespace */ + +#endif diff --git a/build/Ats_NG_NAS/Parameters.o b/build/Ats_NG_NAS/Parameters.o new file mode 100644 index 0000000000000000000000000000000000000000..e2aaacbd920660cfa4b3c790f7ef724a818a1941 Binary files /dev/null and b/build/Ats_NG_NAS/Parameters.o differ diff --git a/build/Ats_NG_NAS/ccsrc/EncDec/NAS_EncDec.o b/build/Ats_NG_NAS/ccsrc/EncDec/NAS_EncDec.o new file mode 100644 index 0000000000000000000000000000000000000000..f354a708fa587a2fa2eac78a6dcb50973be633f3 Binary files /dev/null and b/build/Ats_NG_NAS/ccsrc/EncDec/NAS_EncDec.o differ diff --git a/build/Ats_NG_NAS/ccsrc/EncDec/NG_NAS_EncDec.o b/build/Ats_NG_NAS/ccsrc/EncDec/NG_NAS_EncDec.o new file mode 100644 index 0000000000000000000000000000000000000000..972c3240bc5728b7369543e6375efd43cb667c5b Binary files /dev/null and b/build/Ats_NG_NAS/ccsrc/EncDec/NG_NAS_EncDec.o differ diff --git a/build/Ats_NG_NAS/ccsrc/Externals/NG_security_ext.o b/build/Ats_NG_NAS/ccsrc/Externals/NG_security_ext.o new file mode 100644 index 0000000000000000000000000000000000000000..4338199975b5da748a5ea5e371b840349d7fc48a Binary files /dev/null and b/build/Ats_NG_NAS/ccsrc/Externals/NG_security_ext.o differ diff --git a/build/Ats_NG_NAS/ccsrc/Externals/common_ext.o b/build/Ats_NG_NAS/ccsrc/Externals/common_ext.o new file mode 100644 index 0000000000000000000000000000000000000000..d2483c8d13f0efad69d203a193d7ee7569746ff8 Binary files /dev/null and b/build/Ats_NG_NAS/ccsrc/Externals/common_ext.o differ diff --git a/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NASEMU4G_CO_ORD_PORT.o b/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NASEMU4G_CO_ORD_PORT.o new file mode 100644 index 0000000000000000000000000000000000000000..d78772bc59299d8c0805f325393804dceaa3ffb4 Binary files /dev/null and b/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NASEMU4G_CO_ORD_PORT.o differ diff --git a/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NASEMU5G_CO_ORD_PORT.o b/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NASEMU5G_CO_ORD_PORT.o new file mode 100644 index 0000000000000000000000000000000000000000..f21aec8da73564918ed26bc5f662a2f1d6c3d272 Binary files /dev/null and b/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NASEMU5G_CO_ORD_PORT.o differ diff --git a/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NG_NASCTRL_PORT.o b/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NG_NASCTRL_PORT.o new file mode 100644 index 0000000000000000000000000000000000000000..eeed444f99cb0c1920ec443bdc57e72631403112 Binary files /dev/null and b/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NG_NASCTRL_PORT.o differ diff --git a/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NG_NASEMU_CTRL_PORT.o b/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NG_NASEMU_CTRL_PORT.o new file mode 100644 index 0000000000000000000000000000000000000000..6aa4d76227cd22f80c12acf14a58d1fa89497450 Binary files /dev/null and b/build/Ats_NG_NAS/ccsrc/Ports/LibNAS/NG_NASEMU_CTRL_PORT.o differ diff --git a/build/Ats_NG_NAS/ccsrc/framework/src/params_nas.o b/build/Ats_NG_NAS/ccsrc/framework/src/params_nas.o new file mode 100644 index 0000000000000000000000000000000000000000..6fc57b959936df0450c3c7dcbd5d2bcd7990887f Binary files /dev/null and b/build/Ats_NG_NAS/ccsrc/framework/src/params_nas.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/base_time.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/base_time.o new file mode 100644 index 0000000000000000000000000000000000000000..14206a760ed08d42f1d4dc0ca5593af138dcf4b2 Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/base_time.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/codec_stack_builder.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/codec_stack_builder.o new file mode 100644 index 0000000000000000000000000000000000000000..882bb30d5c102d1467adc80d73e1618b4ee8b9d9 Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/codec_stack_builder.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/converter.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/converter.o new file mode 100644 index 0000000000000000000000000000000000000000..80860e774d7f50f46e08db68beaea4e3991b810b Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/converter.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/layer_factory.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/layer_factory.o new file mode 100644 index 0000000000000000000000000000000000000000..0110b9af48d37256c81d5f7ede97b01ea236a85d Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/layer_factory.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/params.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/params.o new file mode 100644 index 0000000000000000000000000000000000000000..764bec293bc43b62536180150f4f14cb873dbdde Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Framework/src/params.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/ETH/ethernet_layer.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/ETH/ethernet_layer.o new file mode 100644 index 0000000000000000000000000000000000000000..c16e11522b98d7c40eae8735cd0cfd658afb04de Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/ETH/ethernet_layer.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_cygwin_layer.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_cygwin_layer.o new file mode 100644 index 0000000000000000000000000000000000000000..48b74abb0c71a033a07d1ec42ac260bbb40826ad Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_cygwin_layer.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_layer.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_layer.o new file mode 100644 index 0000000000000000000000000000000000000000..3a72ab650b72ac0a1b8acf93be39016b925ed5fd Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_layer.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_linux_layer.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_linux_layer.o new file mode 100644 index 0000000000000000000000000000000000000000..d1a32e3ef7d4c1ff44d8939f155a3c21c2db5131 Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_linux_layer.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_offline_layer.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_offline_layer.o new file mode 100644 index 0000000000000000000000000000000000000000..dbd2138f62e6e999aea84475f2cd3f28a37fcf03 Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/Protocols/Pcap/pcap_offline_layer.o differ diff --git a/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/loggers/loggers.o b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/loggers/loggers.o new file mode 100644 index 0000000000000000000000000000000000000000..1dd0324a8342cef9c20271179bbc8a6740dd6e27 Binary files /dev/null and b/build/Ats_NG_NAS/titan-test-system-framework/ccsrc/loggers/loggers.o differ diff --git a/build/Ats_NG_NAS/ttcn/modules/titan.TestPorts.Common_Components.Abstract_Socket/module/src/Abstract_Socket.o b/build/Ats_NG_NAS/ttcn/modules/titan.TestPorts.Common_Components.Abstract_Socket/module/src/Abstract_Socket.o new file mode 100644 index 0000000000000000000000000000000000000000..c79041cc1bdbfb7e76b65d92644ba8f982df05b9 Binary files /dev/null and b/build/Ats_NG_NAS/ttcn/modules/titan.TestPorts.Common_Components.Abstract_Socket/module/src/Abstract_Socket.o differ diff --git a/ttcn/LibCommon b/ttcn/LibCommon new file mode 160000 index 0000000000000000000000000000000000000000..21bad7c51917d19bebdff5b36983e22922421976 --- /dev/null +++ b/ttcn/LibCommon @@ -0,0 +1 @@ +Subproject commit 21bad7c51917d19bebdff5b36983e22922421976